From 05ece723405c9f56a921a19362284f0adf63c0ae Mon Sep 17 00:00:00 2001 From: anisurov Date: Sat, 14 Feb 2026 07:42:27 +0600 Subject: [PATCH 01/13] chore: packages version updated --- .../Controllers/FileManagerController.php | 3 +- .../app/Http/Controllers/LogController.php | 4 +- .../Http/Controllers/SettingsController.php | 2 +- .../Permissions/PermissionsUpdateRequest.php | 4 +- .../Permissions/SearchUserRequest.php | 1 - .../Requests/Settings/LangUpdateRequest.php | 2 +- .../Requests/Settings/ThemeUpdateRequest.php | 2 +- .../app/Http/Rules/ValidateCommandsRule.php | 2 +- backend/app/Http/Rules/ValidateLangRule.php | 2 +- backend/app/Http/Rules/ValidateRolesRule.php | 2 +- backend/app/Http/Rules/ValidateThemeRule.php | 2 +- backend/app/Http/Rules/ValidateUsersRule.php | 2 +- backend/app/Model/Log.php | 7 +- backend/app/Model/User.php | 6 +- .../app/Providers/AccessControlProvider.php | 74 +- backend/app/Providers/FileEditValidator.php | 6 +- .../FileManager/FileManagerProvider.php | 1 - .../Providers/FileManager/FinderConnector.php | 35 +- backend/app/Providers/InstallerProvider.php | 1 - backend/app/Providers/Logger.php | 13 +- backend/app/Providers/MediaSynchronizer.php | 2 +- backend/app/Providers/PreferenceProvider.php | 10 +- .../Providers/VersionMigrationProvider.php | 2 +- backend/app/Views/Shortcode.php | 8 +- .../db/Migrations/BFMLogsTableMigration.php | 2 +- composer.json | 4 +- composer.lock | 415 +- .../src/components/utilities/Tabs/Tabs.tsx | 9 +- .../TelemetryPopup/TelemetryPopup.module.css | 44 +- .../TopNavigation/TopNavigation.module.css | 3 +- frontend/src/resource/styles/global.css | 2 +- frontend/src/resource/styles/plugin.css | 107 +- libs/elFinder/css/elfinder.full.css | 4 +- libs/elFinder/css/elfinder.min.css | 4 +- libs/elFinder/js/cdn/amrnb.js | 38 +- libs/elFinder/js/cdn/bzip2.js | 494 +- libs/elFinder/js/cdn/dash.all.min.js | 4 +- libs/elFinder/js/cdn/flv.js | 10592 +----- libs/elFinder/js/cdn/flv.min.js | 15 +- libs/elFinder/js/cdn/gunzip.min.js | 48 +- libs/elFinder/js/cdn/hls.js | 26402 +------------- libs/elFinder/js/cdn/hls.min.js | 4 +- libs/elFinder/js/cdn/marked.min.js | 7 +- libs/elFinder/js/cdn/psd.js | 29429 +--------------- libs/elFinder/js/cdn/psd.min.js | 22 +- libs/elFinder/js/cdn/run_prettify.js | 2 +- libs/elFinder/js/cdn/sha.js | 23 +- libs/elFinder/js/cdn/sha.min.js | 2 +- libs/elFinder/js/cdn/tiff.min.js | 2 +- libs/elFinder/js/cdn/unzip.min.js | 2 +- libs/elFinder/js/elfinder.full.js | 274 +- libs/elFinder/js/elfinder.min.js | 40 +- libs/elFinder/js/i18n/elfinder.LANG.js | 7 + libs/elFinder/js/i18n/elfinder.ar.js | 7 + libs/elFinder/js/i18n/elfinder.bg.js | 7 + libs/elFinder/js/i18n/elfinder.ca.js | 7 + libs/elFinder/js/i18n/elfinder.cs.js | 7 + libs/elFinder/js/i18n/elfinder.da.js | 7 + libs/elFinder/js/i18n/elfinder.de.js | 9 +- libs/elFinder/js/i18n/elfinder.el.js | 7 + libs/elFinder/js/i18n/elfinder.en.js | 7 + libs/elFinder/js/i18n/elfinder.es.js | 7 + libs/elFinder/js/i18n/elfinder.fa.js | 7 + libs/elFinder/js/i18n/elfinder.fo.js | 7 + libs/elFinder/js/i18n/elfinder.fr.js | 7 + libs/elFinder/js/i18n/elfinder.fr_CA.js | 7 + libs/elFinder/js/i18n/elfinder.he.js | 7 + libs/elFinder/js/i18n/elfinder.hr.js | 7 + libs/elFinder/js/i18n/elfinder.hu.js | 7 + libs/elFinder/js/i18n/elfinder.id.js | 7 + libs/elFinder/js/i18n/elfinder.it.js | 7 + libs/elFinder/js/i18n/elfinder.ja.js | 7 + libs/elFinder/js/i18n/elfinder.ko.js | 16 +- libs/elFinder/js/i18n/elfinder.nl.js | 9 +- libs/elFinder/js/i18n/elfinder.no.js | 7 + libs/elFinder/js/i18n/elfinder.pl.js | 7 + libs/elFinder/js/i18n/elfinder.pt_BR.js | 7 + libs/elFinder/js/i18n/elfinder.ro.js | 7 + libs/elFinder/js/i18n/elfinder.ru.js | 22 +- libs/elFinder/js/i18n/elfinder.si.js | 7 + libs/elFinder/js/i18n/elfinder.sk.js | 15 +- libs/elFinder/js/i18n/elfinder.sl.js | 7 + libs/elFinder/js/i18n/elfinder.sr.js | 7 + libs/elFinder/js/i18n/elfinder.sv.js | 7 + libs/elFinder/js/i18n/elfinder.tr.js | 183 +- libs/elFinder/js/i18n/elfinder.ug_CN.js | 7 + libs/elFinder/js/i18n/elfinder.uk.js | 7 + libs/elFinder/js/i18n/elfinder.vi.js | 7 + libs/elFinder/js/i18n/elfinder.zh_CN.js | 7 + libs/elFinder/js/i18n/elfinder.zh_TW.js | 7 + libs/elFinder/php/elFinder.class.php | 290 +- .../php/elFinderVolumeDriver.class.php | 19 +- .../php/elFinderVolumeDropbox2.class.php | 2 +- .../elFinderVolumeLocalFileSystem.class.php | 2 +- .../php/elFinderVolumeOneDrive.class.php | 5 +- .../php/elFinderVolumeSFTPphpseclib.class.php | 40 +- submodule/sources/elFinder | 2 +- tools/build_elfinder.sh | 11 +- 98 files changed, 1700 insertions(+), 67336 deletions(-) diff --git a/backend/app/Http/Controllers/FileManagerController.php b/backend/app/Http/Controllers/FileManagerController.php index d38577a..b05ace6 100644 --- a/backend/app/Http/Controllers/FileManagerController.php +++ b/backend/app/Http/Controllers/FileManagerController.php @@ -9,7 +9,6 @@ use BitApps\FM\Providers\FileManager\FileRoot; use BitApps\FM\Providers\FileManager\Options; use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; -use Error; use Exception; final class FileManagerController @@ -68,7 +67,7 @@ public function getFinderOptions() 'zipdl.pre file.pre rename.pre put.pre rm.pre chmod.pre mkdir.pre mkfile.pre extract.pre', [Plugin::instance()->logger(), 'log'] ); - + $finderOptions->setBind( 'upload', [Plugin::instance()->logger(), 'logUpload'] diff --git a/backend/app/Http/Controllers/LogController.php b/backend/app/Http/Controllers/LogController.php index 1928502..adc7763 100644 --- a/backend/app/Http/Controllers/LogController.php +++ b/backend/app/Http/Controllers/LogController.php @@ -32,7 +32,9 @@ public function all(Request $request) public function delete(DeleteLogRequest $request) { - $validatedIds = array_map(function($id) { return intval($id);}, $request->ids); + $validatedIds = array_map(function ($id) { + return \intval($id); + }, $request->ids); $status = $this->logger->delete($validatedIds); if ($status) { return Response::success([])->message('log deleted successfully'); diff --git a/backend/app/Http/Controllers/SettingsController.php b/backend/app/Http/Controllers/SettingsController.php index 23c8233..32b5cad 100644 --- a/backend/app/Http/Controllers/SettingsController.php +++ b/backend/app/Http/Controllers/SettingsController.php @@ -2,7 +2,6 @@ namespace BitApps\FM\Http\Controllers; -use BitApps\FM\Vendor\BitApps\WPKit\Http\Response; use BitApps\FM\Http\Requests\Settings\LangUpdateRequest; use BitApps\FM\Http\Requests\Settings\SettingsRequest; use BitApps\FM\Http\Requests\Settings\SettingsUpdateRequest; @@ -10,6 +9,7 @@ use BitApps\FM\Http\Requests\Settings\ToggleViewRequest; use BitApps\FM\Plugin; use BitApps\FM\Providers\PreferenceProvider; +use BitApps\FM\Vendor\BitApps\WPKit\Http\Response; final class SettingsController { diff --git a/backend/app/Http/Requests/Permissions/PermissionsUpdateRequest.php b/backend/app/Http/Requests/Permissions/PermissionsUpdateRequest.php index 6bcabf3..4d3f24c 100644 --- a/backend/app/Http/Requests/Permissions/PermissionsUpdateRequest.php +++ b/backend/app/Http/Requests/Permissions/PermissionsUpdateRequest.php @@ -2,12 +2,12 @@ namespace BitApps\FM\Http\Requests\Permissions; -use BitApps\FM\Vendor\BitApps\WPKit\Http\Request\Request; -use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; use BitApps\FM\Http\Rules\ValidateCommandsRule; use BitApps\FM\Http\Rules\ValidateRolesRule; use BitApps\FM\Http\Rules\ValidateUsersRule; use BitApps\FM\Http\Rules\ValidPathRule; +use BitApps\FM\Vendor\BitApps\WPKit\Http\Request\Request; +use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; class PermissionsUpdateRequest extends Request { diff --git a/backend/app/Http/Requests/Permissions/SearchUserRequest.php b/backend/app/Http/Requests/Permissions/SearchUserRequest.php index 2143201..bf97a89 100644 --- a/backend/app/Http/Requests/Permissions/SearchUserRequest.php +++ b/backend/app/Http/Requests/Permissions/SearchUserRequest.php @@ -14,7 +14,6 @@ class SearchUserRequest extends Request public function authorize() { return Capabilities::filter('bitapps_fm_can_search_user', 'list_users'); - } public function rules() diff --git a/backend/app/Http/Requests/Settings/LangUpdateRequest.php b/backend/app/Http/Requests/Settings/LangUpdateRequest.php index 8606cec..92c5dc1 100644 --- a/backend/app/Http/Requests/Settings/LangUpdateRequest.php +++ b/backend/app/Http/Requests/Settings/LangUpdateRequest.php @@ -2,9 +2,9 @@ namespace BitApps\FM\Http\Requests\Settings; +use BitApps\FM\Http\Rules\ValidateLangRule; use BitApps\FM\Vendor\BitApps\WPKit\Http\Request\Request; use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; -use BitApps\FM\Http\Rules\ValidateLangRule; class LangUpdateRequest extends Request { diff --git a/backend/app/Http/Requests/Settings/ThemeUpdateRequest.php b/backend/app/Http/Requests/Settings/ThemeUpdateRequest.php index c6f5ed8..1060700 100644 --- a/backend/app/Http/Requests/Settings/ThemeUpdateRequest.php +++ b/backend/app/Http/Requests/Settings/ThemeUpdateRequest.php @@ -2,9 +2,9 @@ namespace BitApps\FM\Http\Requests\Settings; +use BitApps\FM\Http\Rules\ValidateThemeRule; use BitApps\FM\Vendor\BitApps\WPKit\Http\Request\Request; use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; -use BitApps\FM\Http\Rules\ValidateThemeRule; class ThemeUpdateRequest extends Request { diff --git a/backend/app/Http/Rules/ValidateCommandsRule.php b/backend/app/Http/Rules/ValidateCommandsRule.php index c17a6a3..8480bff 100644 --- a/backend/app/Http/Rules/ValidateCommandsRule.php +++ b/backend/app/Http/Rules/ValidateCommandsRule.php @@ -2,8 +2,8 @@ namespace BitApps\FM\Http\Rules; -use BitApps\FM\Vendor\BitApps\WPValidator\Rule; use BitApps\FM\Plugin; +use BitApps\FM\Vendor\BitApps\WPValidator\Rule; class ValidateCommandsRule extends Rule { diff --git a/backend/app/Http/Rules/ValidateLangRule.php b/backend/app/Http/Rules/ValidateLangRule.php index 50d9e87..d74a717 100644 --- a/backend/app/Http/Rules/ValidateLangRule.php +++ b/backend/app/Http/Rules/ValidateLangRule.php @@ -2,8 +2,8 @@ namespace BitApps\FM\Http\Rules; -use BitApps\FM\Vendor\BitApps\WPValidator\Rule; use BitApps\FM\Plugin; +use BitApps\FM\Vendor\BitApps\WPValidator\Rule; class ValidateLangRule extends Rule { diff --git a/backend/app/Http/Rules/ValidateRolesRule.php b/backend/app/Http/Rules/ValidateRolesRule.php index 2c2e00a..d3e4878 100644 --- a/backend/app/Http/Rules/ValidateRolesRule.php +++ b/backend/app/Http/Rules/ValidateRolesRule.php @@ -2,8 +2,8 @@ namespace BitApps\FM\Http\Rules; -use BitApps\FM\Vendor\BitApps\WPValidator\Rule; use BitApps\FM\Plugin; +use BitApps\FM\Vendor\BitApps\WPValidator\Rule; class ValidateRolesRule extends Rule { diff --git a/backend/app/Http/Rules/ValidateThemeRule.php b/backend/app/Http/Rules/ValidateThemeRule.php index 0cc95df..b71f824 100644 --- a/backend/app/Http/Rules/ValidateThemeRule.php +++ b/backend/app/Http/Rules/ValidateThemeRule.php @@ -2,8 +2,8 @@ namespace BitApps\FM\Http\Rules; -use BitApps\FM\Vendor\BitApps\WPValidator\Rule; use BitApps\FM\Plugin; +use BitApps\FM\Vendor\BitApps\WPValidator\Rule; class ValidateThemeRule extends Rule { diff --git a/backend/app/Http/Rules/ValidateUsersRule.php b/backend/app/Http/Rules/ValidateUsersRule.php index c05de9e..761f879 100644 --- a/backend/app/Http/Rules/ValidateUsersRule.php +++ b/backend/app/Http/Rules/ValidateUsersRule.php @@ -2,8 +2,8 @@ namespace BitApps\FM\Http\Rules; -use BitApps\FM\Vendor\BitApps\WPValidator\Rule; use BitApps\FM\Plugin; +use BitApps\FM\Vendor\BitApps\WPValidator\Rule; class ValidateUsersRule extends Rule { diff --git a/backend/app/Model/Log.php b/backend/app/Model/Log.php index 1b166b3..9821301 100644 --- a/backend/app/Model/Log.php +++ b/backend/app/Model/Log.php @@ -17,10 +17,10 @@ class Log extends Model { public $timestamps = false; - protected $prefix = Config::VAR_PREFIX; - public $casts = ['details' => 'object']; + protected $prefix = Config::VAR_PREFIX; + protected $fillable = [ 'user_id', 'command', @@ -28,7 +28,8 @@ class Log extends Model 'created_at', ]; - public function user() { + public function user() + { return $this->hasOne(User::class, 'ID', 'user_id'); } } diff --git a/backend/app/Model/User.php b/backend/app/Model/User.php index ce6974d..2c8f1c2 100644 --- a/backend/app/Model/User.php +++ b/backend/app/Model/User.php @@ -2,7 +2,6 @@ namespace BitApps\FM\Model; -use BitApps\FM\Config; use BitApps\FM\Vendor\BitApps\WPDatabase\Model; /** @@ -20,4 +19,9 @@ class User extends Model protected $prefix = ''; protected $fillable = []; + + public function log() + { + return $this->hasMany(Log::class, 'user_id', 'ID'); + } } diff --git a/backend/app/Providers/AccessControlProvider.php b/backend/app/Providers/AccessControlProvider.php index ed549f3..f6f7415 100644 --- a/backend/app/Providers/AccessControlProvider.php +++ b/backend/app/Providers/AccessControlProvider.php @@ -6,6 +6,7 @@ use BitApps\FM\Plugin; use elFinder; +use Exception; \defined('ABSPATH') || exit(); @@ -149,26 +150,6 @@ public function isNotRequiredCommandForAllPermission($cmd, $permissionProvider) return $isNotRequired; } - private function isFileAllowedToOpen($args) - { - if (isset($args[1]) && $args[1] instanceof elFinder) { - $volume = $args[1]->getVolume($args[0]['target']); - $file = $volume->getPath($args[0]['target']); - $fileName = wp_basename($file); - $fileTypeAndExt = wp_check_filetype_and_ext($file, $fileName); - if (isset($fileTypeAndExt['ext'], $fileTypeAndExt['type'])) { - $fileType = str_replace('/' . $fileTypeAndExt['ext'], '', $fileTypeAndExt['type']); - $enabledFileType = Plugin::instance()->permissions()->getEnabledFileType(); - - if (\in_array($fileType, $enabledFileType)) { - return true; - } - } - } - - return false; - } - public function scanFile($command, $args) { if (!\in_array($command, ['put', 'upload']) || \in_array('javascript', Plugin::instance()->permissions()->getEnabledFileType())) { @@ -180,16 +161,16 @@ public function scanFile($command, $args) } if ( - $command === 'upload' && - !empty($args[0]['FILES']['upload']['tmp_name']) && - is_array($args[0]['FILES']['upload']['tmp_name']) + $command === 'upload' + && !empty($args[0]['FILES']['upload']['tmp_name']) + && \is_array($args[0]['FILES']['upload']['tmp_name']) ) { $filePath = ''; $fileName = ''; - $uploadedFiles = $args[0]['FILES']['upload']['tmp_name']; - + $uploadedFiles = $args[0]['FILES']['upload']['tmp_name']; + foreach ($uploadedFiles as $index => $tmpName) { - $content = ''; + $content = ''; $filePath = $args[0]['FILES']['upload']['tmp_name'][$index]; $fileName = $args[0]['FILES']['upload']['name'][$index]; if (empty($filePath)) { @@ -198,19 +179,19 @@ public function scanFile($command, $args) $fileTypeAndExt = wp_check_filetype_and_ext($filePath, $fileName); if (!empty($fileTypeAndExt['type'])) { if (stripos($fileTypeAndExt['type'], 'javascript') !== false) { - $this->scannedResult[] = sprintf(__('This file %s type is not allowed', 'file-manager'), $fileName); + $this->scannedResult[] = \sprintf(__('This file %s type is not allowed', 'file-manager'), $fileName); } if ( - stripos($fileTypeAndExt['type'], 'text') !== false || - stripos($fileTypeAndExt['type'], 'pdf') !== false + stripos($fileTypeAndExt['type'], 'text') !== false + || stripos($fileTypeAndExt['type'], 'pdf') !== false ) { $content = file_get_contents($filePath); } } else { try { $content = file_get_contents($filePath); - } catch (\Exception $e) { - $this->scannedResult[] = sprintf(__('Failed to process this file %s', 'file-manager'), $fileName); + } catch (Exception $e) { + $this->scannedResult[] = \sprintf(__('Failed to process this file %s', 'file-manager'), $fileName); } } @@ -222,12 +203,29 @@ public function scanFile($command, $args) $this->scanForPattern($_REQUEST['content'], ''); } - if (count($this->scannedResult) > 0) { - throw new PreCommandException( - implode('. >> ', $this->scannedResult) - ); + if (\count($this->scannedResult) > 0) { + throw new PreCommandException(implode('. >> ', $this->scannedResult)); } + } + private function isFileAllowedToOpen($args) + { + if (isset($args[1]) && $args[1] instanceof elFinder) { + $volume = $args[1]->getVolume($args[0]['target']); + $file = $volume->getPath($args[0]['target']); + $fileName = wp_basename($file); + $fileTypeAndExt = wp_check_filetype_and_ext($file, $fileName); + if (isset($fileTypeAndExt['ext'], $fileTypeAndExt['type'])) { + $fileType = str_replace('/' . $fileTypeAndExt['ext'], '', $fileTypeAndExt['type']); + $enabledFileType = Plugin::instance()->permissions()->getEnabledFileType(); + + if (\in_array($fileType, $enabledFileType)) { + return true; + } + } + } + + return false; } private function scanForPattern($content, $fileName) @@ -236,15 +234,13 @@ private function scanForPattern($content, $fileName) foreach ($this->maliciousPatterns as $pattern) { if (preg_match($pattern, $content)) { $containsJs = true; - + break; } } if ($containsJs) { - $this->scannedResult[] = sprintf(__('This file %s contains JS code. Please remove the code and try again. Or allow js mimetype', 'file-manager'), $fileName); + $this->scannedResult[] = \sprintf(__('This file %s contains JS code. Please remove the code and try again. Or allow js mimetype', 'file-manager'), $fileName); } } } - - diff --git a/backend/app/Providers/FileEditValidator.php b/backend/app/Providers/FileEditValidator.php index 345405f..83e7572 100644 --- a/backend/app/Providers/FileEditValidator.php +++ b/backend/app/Providers/FileEditValidator.php @@ -37,9 +37,9 @@ public function checkSyntax($content, $fileName) if ( (!\function_exists('exec') && Capabilities::check('install_plugins')) || (\defined('BFM_DISABLE_SYNTAX_CHECK') && BFM_DISABLE_SYNTAX_CHECK) - ) { + ) { return; - } else if (!\function_exists('exec')) { + } elseif (!\function_exists('exec')) { $error = __('exec() is required for php syntax check'); } else { $fp = tmpfile(); @@ -48,7 +48,7 @@ public function checkSyntax($content, $fileName) fwrite($fp, $content); exec('php -l ' . escapeshellarg($tempFilePath), $output, $return); fclose($fp); - + $errorMessages = []; foreach ($output as $result) { diff --git a/backend/app/Providers/FileManager/FileManagerProvider.php b/backend/app/Providers/FileManager/FileManagerProvider.php index 613efe1..8925c28 100644 --- a/backend/app/Providers/FileManager/FileManagerProvider.php +++ b/backend/app/Providers/FileManager/FileManagerProvider.php @@ -6,7 +6,6 @@ use BitApps\FM\Providers\FileManager\Options as FinderOptions; use elFinder; -use elFinderConnector; class FileManagerProvider { diff --git a/backend/app/Providers/FileManager/FinderConnector.php b/backend/app/Providers/FileManager/FinderConnector.php index ed05585..f416596 100644 --- a/backend/app/Providers/FileManager/FinderConnector.php +++ b/backend/app/Providers/FileManager/FinderConnector.php @@ -11,12 +11,14 @@ class FinderConnector extends elFinderConnector /** * Output json * This function is overridden. Some servers disable `fpassthru` function - * which is used in this function + * which is used in this function * * @param array data to output * - * @return void * @throws elFinderAbortException + * + * @return void + * * @author Dmitry (dio) Levashov */ protected function output(array $data) @@ -40,28 +42,27 @@ protected function output(array $data) } // clear output buffer - while (ob_get_level() && ob_end_clean()) { - } + while (ob_get_level() && ob_end_clean()); - $toEnd = true; - $fp = $data['pointer']; + $toEnd = true; + $fp = $data['pointer']; $sendData = !($this->reqMethod === 'HEAD' || !empty($data['info']['xsendfile'])); - $psize = null; + $psize = null; if (($this->reqMethod === 'GET' || !$sendData) && (elFinder::isSeekableStream($fp) || elFinder::isSeekableUrl($fp)) && (array_search('Accept-Ranges: none', headers_list()) === false)) { header('Accept-Ranges: bytes'); if (!empty($_SERVER['HTTP_RANGE'])) { $size = $data['info']['size']; - $end = $size - 1; + $end = $size - 1; if (preg_match('/bytes=(\d*)-(\d*)(,?)/i', $_SERVER['HTTP_RANGE'], $matches)) { if (empty($matches[3])) { if (empty($matches[1]) && $matches[1] !== '0') { $start = $size - $matches[2]; } else { - $start = intval($matches[1]); + $start = \intval($matches[1]); if (!empty($matches[2])) { - $end = intval($matches[2]); + $end = \intval($matches[2]); if ($end >= $size) { $end = $size - 1; } @@ -76,7 +77,7 @@ protected function output(array $data) // Apache mod_xsendfile dose not support range request if (isset($data['info']['xsendfile']) && strtolower($data['info']['xsendfile']) === 'x-sendfile') { - if (function_exists('header_remove')) { + if (\function_exists('header_remove')) { header_remove($data['info']['xsendfile']); } else { header($data['info']['xsendfile'] . ':'); @@ -91,13 +92,13 @@ protected function output(array $data) } } } - if ($sendData && is_null($psize)) { + if ($sendData && \is_null($psize)) { elFinder::rewind($fp); } } else { header('Accept-Ranges: none'); if (isset($data['info']) && !$data['info']['size']) { - if (function_exists('header_remove')) { + if (\function_exists('header_remove')) { header_remove('Content-Length'); } else { header('Content-Length:'); @@ -106,7 +107,7 @@ protected function output(array $data) } if ($sendData) { - if (function_exists('fpassthru') && ($toEnd || elFinder::isSeekableUrl($fp))) { + if (\function_exists('fpassthru') && ($toEnd || elFinder::isSeekableUrl($fp))) { // PHP < 5.6 has a bug of fpassthru // see https://bugs.php.net/bug.php?id=66736 if (version_compare(PHP_VERSION, '5.6', '<')) { @@ -127,10 +128,8 @@ protected function output(array $data) fclose($fp); } exit(); - } else { - self::outputJson($data); - exit(0); } + self::outputJson($data); + exit(0); } - } diff --git a/backend/app/Providers/InstallerProvider.php b/backend/app/Providers/InstallerProvider.php index 772e6a4..7acb8ee 100644 --- a/backend/app/Providers/InstallerProvider.php +++ b/backend/app/Providers/InstallerProvider.php @@ -3,7 +3,6 @@ namespace BitApps\FM\Providers; use BitApps\FM\Config; -use BitApps\FM\Vendor\BitApps\WPDatabase\Connection; use BitApps\FM\Vendor\BitApps\WPKit\Installer; class InstallerProvider diff --git a/backend/app/Providers/Logger.php b/backend/app/Providers/Logger.php index 53ae482..3260873 100644 --- a/backend/app/Providers/Logger.php +++ b/backend/app/Providers/Logger.php @@ -52,12 +52,12 @@ public function log($command, $target, $finder, $volume) $this->_logger->save($command, $commandDetails); } } - + public function logUpload($command, $status, $target, $finder, $volume) { $commandDetails = []; - $commandDetails = $this->processFileHashForUpload($target, $volume); - + $commandDetails = $this->processFileHashForUpload($target, $volume); + if (isset($commandDetails['files'])) { $this->_logger->save($command, $commandDetails); } @@ -103,7 +103,7 @@ private function processFileHash($command, $target, $volume) */ private function processFileHashForUpload($target, $volume) { - if(!empty($target['chunk'])) { + if (!empty($target['chunk'])) { return []; } $details['driver'] = \get_class($volume); @@ -122,9 +122,9 @@ private function processFileHashForUpload($target, $volume) break; } } - } else if (isset($target["FILES"]["upload"]["full_path"])) { + } elseif (isset($target['FILES']['upload']['full_path'])) { $uploadBase = $details['folder']['path']; - $files = $target["FILES"]["upload"]["full_path"]; + $files = $target['FILES']['upload']['full_path']; foreach ($files as $index => $file) { if ($index > 300 || $file === 'blob') { break; @@ -134,7 +134,6 @@ private function processFileHashForUpload($target, $volume) 'hash' => '', ]; } - } return $details; diff --git a/backend/app/Providers/MediaSynchronizer.php b/backend/app/Providers/MediaSynchronizer.php index b16a0f1..24ec093 100644 --- a/backend/app/Providers/MediaSynchronizer.php +++ b/backend/app/Providers/MediaSynchronizer.php @@ -20,7 +20,7 @@ function __construct() public function onFileUpload($cmd, &$result, $args, $elfinder, $volume) { $targetPath = $volume->getPath($args['target']); - + if (strpos($targetPath, $this->wpUploadBaseDirectory) !== false && Plugin::instance()->preferences()->isWpMediaSyncEnabled()) { $images = []; for ($file = 0; $file < \count($args['FILES']['upload']['name']); $file++) { diff --git a/backend/app/Providers/PreferenceProvider.php b/backend/app/Providers/PreferenceProvider.php index 3c26a76..67f0bda 100644 --- a/backend/app/Providers/PreferenceProvider.php +++ b/backend/app/Providers/PreferenceProvider.php @@ -3,10 +3,10 @@ namespace BitApps\FM\Providers; use BitApps\FM\Config; -use BitApps\FM\Vendor\BitApps\WPKit\Http\RequestType; -use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; use BitApps\FM\Plugin; use BitApps\FM\Providers\FileManager\ClientOptions; +use BitApps\FM\Vendor\BitApps\WPKit\Http\RequestType; +use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; \defined('ABSPATH') || exit(); class PreferenceProvider @@ -153,7 +153,7 @@ public function setTheme($theme) { $this->preferences['theme'] = $theme; } - + /** * Sets Link Path Visibility * @@ -423,7 +423,7 @@ public function getLangCode() { $selectedCode = $this->getDefaultLangCode(); if (isset($this->preferences['language']) - && is_string($this->preferences['language']) + && \is_string($this->preferences['language']) && isset($this->availableLanguages()[$this->preferences['language']]) ) { $selectedCode = esc_attr($this->preferences['language']); @@ -587,7 +587,7 @@ public function isWpMediaSyncEnabled() public function toggleWpMediaSync($sync) { - $this->preferences['wp_media_sync'] = (bool)$sync; + $this->preferences['wp_media_sync'] = (bool) $sync; } public function setPermissionForTrashCreation($permission) diff --git a/backend/app/Providers/VersionMigrationProvider.php b/backend/app/Providers/VersionMigrationProvider.php index dfb7155..a5a9b7d 100644 --- a/backend/app/Providers/VersionMigrationProvider.php +++ b/backend/app/Providers/VersionMigrationProvider.php @@ -3,10 +3,10 @@ namespace BitApps\FM\Providers; use BitApps\FM\Config; +use BitApps\FM\Vendor\BitApps\WPDatabase\Connection; use BitApps\FM\Vendor\BitApps\WPDatabase\Schema; use BitApps\FM\Vendor\BitApps\WPKit\Migration\MigrationHelper; use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; -use BitApps\FM\Vendor\BitApps\WPDatabase\Connection; \defined('ABSPATH') || exit(); diff --git a/backend/app/Views/Shortcode.php b/backend/app/Views/Shortcode.php index 0186a0c..0359df5 100644 --- a/backend/app/Views/Shortcode.php +++ b/backend/app/Views/Shortcode.php @@ -5,13 +5,15 @@ namespace BitApps\FM\Views; use BitApps\FM\Config; -use BitApps\FM\Vendor\BitApps\WPKit\Hooks\Hooks; -use BitApps\FM\Vendor\BitApps\WPKit\Shortcode\Shortcode as SWrapper; use function BitApps\FM\Functions\view; use BitApps\FM\Plugin; +use BitApps\FM\Vendor\BitApps\WPKit\Hooks\Hooks; + +use BitApps\FM\Vendor\BitApps\WPKit\Shortcode\Shortcode as SWrapper; + /** * The admin Layout and page handler class. */ @@ -27,7 +29,7 @@ public function __construct() public function filterConfigVariable($config) { $options = Plugin::instance()->preferences()->finderOptions(); - if (count($options['commands'])) { + if (\count($options['commands'])) { $options['commands'][] = 'sort'; $options['commands'][] = 'fullscreen'; $options['commands'][] = 'view'; diff --git a/backend/db/Migrations/BFMLogsTableMigration.php b/backend/db/Migrations/BFMLogsTableMigration.php index ef13ed3..55f9071 100644 --- a/backend/db/Migrations/BFMLogsTableMigration.php +++ b/backend/db/Migrations/BFMLogsTableMigration.php @@ -2,9 +2,9 @@ use BitApps\FM\Config; use BitApps\FM\Vendor\BitApps\WPDatabase\Blueprint; +use BitApps\FM\Vendor\BitApps\WPDatabase\Connection; use BitApps\FM\Vendor\BitApps\WPDatabase\Schema; use BitApps\FM\Vendor\BitApps\WPKit\Migration\Migration; -use BitApps\FM\Vendor\BitApps\WPDatabase\Connection; if (! \defined('ABSPATH')) { exit; diff --git a/composer.json b/composer.json index a5529b3..2de0036 100644 --- a/composer.json +++ b/composer.json @@ -26,8 +26,8 @@ }, "require": { "bitapps/wp-validator": "^1.1.0", - "bitapps/wp-kit": "^1.7", - "bitapps/wp-database": "^1.6", + "bitapps/wp-kit": "^2.2", + "bitapps/wp-database": "^1.11", "bitapps/wp-telemetry": "^0.0.9", "typisttech/imposter-plugin": "^0.6.2" }, diff --git a/composer.lock b/composer.lock index 68c9816..f17b7e8 100644 --- a/composer.lock +++ b/composer.lock @@ -9,15 +9,19 @@ { "name": "bitapps/wp-database", "version": "1.11", + "version": "1.11", "source": { "type": "git", "url": "https://github.com/Bit-Apps-Pro/wp-database.git", "reference": "1617ab1dac3f4946e72deb68d3c52ae526658e37" + "reference": "1617ab1dac3f4946e72deb68d3c52ae526658e37" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/Bit-Apps-Pro/wp-database/zipball/1617ab1dac3f4946e72deb68d3c52ae526658e37", "reference": "1617ab1dac3f4946e72deb68d3c52ae526658e37", + "url": "https://api.github.com/repos/Bit-Apps-Pro/wp-database/zipball/1617ab1dac3f4946e72deb68d3c52ae526658e37", + "reference": "1617ab1dac3f4946e72deb68d3c52ae526658e37", "shasum": "" }, "require": { @@ -61,19 +65,24 @@ "source": "https://github.com/Bit-Apps-Pro/wp-database" }, "time": "2025-02-15T08:05:59+00:00" + "time": "2025-02-15T08:05:59+00:00" }, { "name": "bitapps/wp-kit", "version": "1.9", + "version": "1.9", "source": { "type": "git", "url": "https://github.com/Bit-Apps-Pro/wp-kit.git", "reference": "13f0da30e00d9d4c02ce5ea2e9e624fd4a8ac7d2" + "reference": "13f0da30e00d9d4c02ce5ea2e9e624fd4a8ac7d2" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/Bit-Apps-Pro/wp-kit/zipball/13f0da30e00d9d4c02ce5ea2e9e624fd4a8ac7d2", "reference": "13f0da30e00d9d4c02ce5ea2e9e624fd4a8ac7d2", + "url": "https://api.github.com/repos/Bit-Apps-Pro/wp-kit/zipball/13f0da30e00d9d4c02ce5ea2e9e624fd4a8ac7d2", + "reference": "13f0da30e00d9d4c02ce5ea2e9e624fd4a8ac7d2", "shasum": "" }, "require": { @@ -109,8 +118,10 @@ "support": { "issues": "https://github.com/Bit-Apps-Pro/wp-kit/issues", "source": "https://github.com/Bit-Apps-Pro/wp-kit/tree/1.9" + "source": "https://github.com/Bit-Apps-Pro/wp-kit/tree/1.9" }, "time": "2025-03-13T08:40:35+00:00" + "time": "2025-03-13T08:40:35+00:00" }, { "name": "bitapps/wp-telemetry", @@ -166,16 +177,16 @@ }, { "name": "bitapps/wp-validator", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/Bit-Apps-Pro/wp-validator.git", - "reference": "294d6a7c35436419060dc067f58a9c5a0d72b37e" + "reference": "856b3685c6e6673af4e3f7fea5083500ce011b99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Bit-Apps-Pro/wp-validator/zipball/294d6a7c35436419060dc067f58a9c5a0d72b37e", - "reference": "294d6a7c35436419060dc067f58a9c5a0d72b37e", + "url": "https://api.github.com/repos/Bit-Apps-Pro/wp-validator/zipball/856b3685c6e6673af4e3f7fea5083500ce011b99", + "reference": "856b3685c6e6673af4e3f7fea5083500ce011b99", "shasum": "" }, "require": { @@ -221,7 +232,7 @@ "issues": "https://github.com/Bit-Apps-Pro/wp-validator/issues", "source": "https://github.com/Bit-Apps-Pro/wp-validator" }, - "time": "2024-10-31T05:50:19+00:00" + "time": "2026-02-02T07:09:21+00:00" }, { "name": "typisttech/imposter", @@ -339,10 +350,12 @@ }, "type": "composer-plugin", "extra": { + "class": "TypistTech\\Imposter\\Plugin\\ImposterPlugin", "class": "TypistTech\\Imposter\\Plugin\\ImposterPlugin", "branch-alias": { "dev-master": "0.6.x-dev" } + } }, "autoload": { "psr-4": { @@ -495,6 +508,9 @@ "extension.neon" ] }, + "branch-alias": { + "dev-main": "3.x-dev" + }, "branch-alias": { "dev-main": "3.x-dev" } @@ -545,15 +561,19 @@ { "name": "composer/semver", "version": "3.4.4", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/composer/semver.git", "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", "shasum": "" }, "require": { @@ -606,6 +626,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", "source": "https://github.com/composer/semver/tree/3.4.4" + "source": "https://github.com/composer/semver/tree/3.4.4" }, "funding": [ { @@ -618,6 +639,7 @@ } ], "time": "2025-08-20T19:15:30+00:00" + "time": "2025-08-20T19:15:30+00:00" }, { "name": "composer/xdebug-handler", @@ -810,15 +832,19 @@ { "name": "fidry/cpu-core-counter", "version": "1.3.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", "reference": "db9508f7b1474469d9d3c53b86f817e344732678" + "reference": "db9508f7b1474469d9d3c53b86f817e344732678" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", "reference": "db9508f7b1474469d9d3c53b86f817e344732678", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678", "shasum": "" }, "require": { @@ -832,6 +858,10 @@ "phpstan/phpstan-deprecation-rules": "^2.0.0", "phpstan/phpstan-phpunit": "^2.0", "phpstan/phpstan-strict-rules": "^2.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", "phpunit/phpunit": "^8.5.31 || ^9.5.26", "webmozarts/strict-phpunit": "^7.5" }, @@ -859,6 +889,7 @@ "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" }, "funding": [ { @@ -867,6 +898,7 @@ } ], "time": "2025-08-14T07:29:31+00:00" + "time": "2025-08-14T07:29:31+00:00" }, { "name": "friendsofphp/php-cs-fixer", @@ -883,14 +915,18 @@ "shasum": "" }, "require": { + "clue/ndjson-react": "^1.3", "clue/ndjson-react": "^1.3", "composer/semver": "^3.4", "composer/xdebug-handler": "^3.0.5", + "composer/xdebug-handler": "^3.0.5", "ext-filter": "*", "ext-hash": "*", + "ext-hash": "*", "ext-json": "*", "ext-tokenizer": "*", "fidry/cpu-core-counter": "^1.3", + "fidry/cpu-core-counter": "^1.3", "php": "^7.4 || ^8.0", "react/child-process": "^0.6.6", "react/event-loop": "^1.5", @@ -935,7 +971,7 @@ "PhpCsFixer\\": "src/" }, "exclude-from-classmap": [ - "src/Fixer/Internal/*" + "src/**/Internal/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1036,15 +1072,19 @@ { "name": "phpcompatibility/phpcompatibility-paragonie", "version": "1.3.4", + "version": "1.3.4", "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf" + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", "shasum": "" }, "require": { @@ -1102,31 +1142,42 @@ "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" + }, { "url": "https://thanks.dev/u/gh/phpcompatibility", "type": "thanks_dev" } ], "time": "2025-09-19T17:43:28+00:00" + "time": "2025-09-19T17:43:28+00:00" }, { "name": "phpcompatibility/phpcompatibility-wp", "version": "2.1.8", + "version": "2.1.8", "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa" + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/7c8d18b4d90dac9e86b0869a608fa09158e168fa", "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/7c8d18b4d90dac9e86b0869a608fa09158e168fa", + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa", "shasum": "" }, "require": { "phpcompatibility/php-compatibility": "^9.0", "phpcompatibility/phpcompatibility-paragonie": "^1.0", "squizlabs/php_codesniffer": "^3.3" + "phpcompatibility/phpcompatibility-paragonie": "^1.0", + "squizlabs/php_codesniffer": "^3.3" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^1.0" @@ -1177,12 +1228,17 @@ "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" + }, { "url": "https://thanks.dev/u/gh/phpcompatibility", "type": "thanks_dev" } ], "time": "2025-10-18T00:05:59+00:00" + "time": "2025-10-18T00:05:59+00:00" }, { "name": "psr/container", @@ -1428,8 +1484,11 @@ "php": ">=5.3.0", "react/event-loop": "^1.2", "react/stream": "^1.4" + "react/stream": "^1.4" }, "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/socket": "^1.16", "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", "react/socket": "^1.16", "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0" @@ -1438,6 +1497,7 @@ "autoload": { "psr-4": { "React\\ChildProcess\\": "src/" + "React\\ChildProcess\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1480,22 +1540,24 @@ { "url": "https://opencollective.com/reactphp", "type": "open_collective" + "url": "https://opencollective.com/reactphp", + "type": "open_collective" } ], "time": "2025-01-01T16:37:48+00:00" }, { "name": "react/dns", - "version": "v1.13.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/reactphp/dns.git", - "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5" + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", - "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", + "url": "https://api.github.com/repos/reactphp/dns/zipball/7562c05391f42701c1fccf189c8225fece1cd7c3", + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3", "shasum": "" }, "require": { @@ -1550,7 +1612,7 @@ ], "support": { "issues": "https://github.com/reactphp/dns/issues", - "source": "https://github.com/reactphp/dns/tree/v1.13.0" + "source": "https://github.com/reactphp/dns/tree/v1.14.0" }, "funding": [ { @@ -1558,20 +1620,20 @@ "type": "open_collective" } ], - "time": "2024-06-13T14:18:03+00:00" + "time": "2025-11-18T19:34:28+00:00" }, { "name": "react/event-loop", - "version": "v1.5.0", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/reactphp/event-loop.git", - "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354" + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", - "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/ba276bda6083df7e0050fd9b33f66ad7a4ac747a", + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a", "shasum": "" }, "require": { @@ -1622,7 +1684,7 @@ ], "support": { "issues": "https://github.com/reactphp/event-loop/issues", - "source": "https://github.com/reactphp/event-loop/tree/v1.5.0" + "source": "https://github.com/reactphp/event-loop/tree/v1.6.0" }, "funding": [ { @@ -1630,26 +1692,31 @@ "type": "open_collective" } ], - "time": "2023-11-13T13:48:05+00:00" + "time": "2025-11-17T20:46:25+00:00" }, { "name": "react/promise", "version": "v3.3.0", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", "reference": "23444f53a813a3296c1368bb104793ce8d88f04a" + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a", "reference": "23444f53a813a3296c1368bb104793ce8d88f04a", + "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a", + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a", "shasum": "" }, "require": { "php": ">=7.1.0" }, "require-dev": { + "phpstan/phpstan": "1.12.28 || 1.4.10", "phpstan/phpstan": "1.12.28 || 1.4.10", "phpunit/phpunit": "^9.6 || ^7.5" }, @@ -1696,6 +1763,7 @@ "support": { "issues": "https://github.com/reactphp/promise/issues", "source": "https://github.com/reactphp/promise/tree/v3.3.0" + "source": "https://github.com/reactphp/promise/tree/v3.3.0" }, "funding": [ { @@ -1704,19 +1772,20 @@ } ], "time": "2025-08-19T18:57:03+00:00" + "time": "2025-08-19T18:57:03+00:00" }, { "name": "react/socket", - "version": "v1.16.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/reactphp/socket.git", - "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1" + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", - "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", + "url": "https://api.github.com/repos/reactphp/socket/zipball/ef5b17b81f6f60504c539313f94f2d826c5faa08", + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08", "shasum": "" }, "require": { @@ -1775,7 +1844,7 @@ ], "support": { "issues": "https://github.com/reactphp/socket/issues", - "source": "https://github.com/reactphp/socket/tree/v1.16.0" + "source": "https://github.com/reactphp/socket/tree/v1.17.0" }, "funding": [ { @@ -1783,7 +1852,7 @@ "type": "open_collective" } ], - "time": "2024-07-26T10:38:09+00:00" + "time": "2025-11-19T20:47:34+00:00" }, { "name": "react/stream", @@ -1926,6 +1995,18 @@ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/diff", + "type": "tidelift" } ], "time": "2025-02-07T04:55:46+00:00" @@ -1933,26 +2014,34 @@ { "name": "sirbrillig/phpcs-variable-analysis", "version": "v2.13.0", + "version": "v2.13.0", "source": { "type": "git", "url": "https://github.com/sirbrillig/phpcs-variable-analysis.git", "reference": "a15e970b8a0bf64cfa5e86d941f5e6b08855f369" + "reference": "a15e970b8a0bf64cfa5e86d941f5e6b08855f369" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/a15e970b8a0bf64cfa5e86d941f5e6b08855f369", "reference": "a15e970b8a0bf64cfa5e86d941f5e6b08855f369", + "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/a15e970b8a0bf64cfa5e86d941f5e6b08855f369", + "reference": "a15e970b8a0bf64cfa5e86d941f5e6b08855f369", "shasum": "" }, "require": { "php": ">=5.4.0", "squizlabs/php_codesniffer": "^3.5.7 || ^4.0.0" + "squizlabs/php_codesniffer": "^3.5.7 || ^4.0.0" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.0", "phpstan/phpstan": "^1.7 || ^2.0", "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.5 || ^7.0 || ^8.0 || ^9.0 || ^10.5.32 || ^11.3.3", "vimeo/psalm": "^0.2 || ^0.3 || ^1.1 || ^4.24 || ^5.0 || ^6.0 || ^7.0" + "phpstan/phpstan": "^1.7 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.5 || ^7.0 || ^8.0 || ^9.0 || ^10.5.32 || ^11.3.3", + "vimeo/psalm": "^0.2 || ^0.3 || ^1.1 || ^4.24 || ^5.0 || ^6.0 || ^7.0" }, "type": "phpcodesniffer-standard", "autoload": { @@ -1985,6 +2074,7 @@ "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" }, "time": "2025-09-30T22:22:48+00:00" + "time": "2025-09-30T22:22:48+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -2014,11 +2104,6 @@ "bin/phpcs" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" @@ -2063,6 +2148,10 @@ "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + }, { "url": "https://thanks.dev/u/gh/phpcsstandards", "type": "thanks_dev" @@ -2103,16 +2192,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -2161,6 +2250,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2171,15 +2264,19 @@ { "name": "symfony/deprecation-contracts", "version": "v3.6.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -2191,6 +2288,11 @@ "url": "https://github.com/symfony/contracts", "name": "symfony/contracts" }, + "branch-alias": { + "dev-main": "3.6-dev" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.6-dev" } @@ -2218,6 +2320,7 @@ "homepage": "https://symfony.com", "support": { "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -2234,6 +2337,7 @@ } ], "time": "2024-09-25T14:21:43+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/event-dispatcher", @@ -2250,11 +2354,11 @@ "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<6.4", + "symfony/security-http": "<7.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -2263,13 +2367,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/error-handler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" + "symfony/stopwatch": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -2312,6 +2417,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2322,15 +2431,19 @@ { "name": "symfony/event-dispatcher-contracts", "version": "v3.6.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", "reference": "59eb412e93815df44f05f342958efa9f46b1e586" + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", "reference": "59eb412e93815df44f05f342958efa9f46b1e586", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", "shasum": "" }, "require": { @@ -2343,6 +2456,11 @@ "url": "https://github.com/symfony/contracts", "name": "symfony/contracts" }, + "branch-alias": { + "dev-main": "3.6-dev" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.6-dev" } @@ -2378,6 +2496,7 @@ ], "support": { "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" }, "funding": [ { @@ -2394,6 +2513,7 @@ } ], "time": "2024-09-25T14:21:43+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/filesystem", @@ -2410,12 +2530,12 @@ "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "symfony/process": "^6.4|^7.0" + "symfony/process": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -2458,6 +2578,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2480,10 +2604,10 @@ "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0" + "symfony/filesystem": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -2526,6 +2650,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2548,7 +2676,7 @@ "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "symfony/deprecation-contracts": "^2.5|^3" }, "type": "library", @@ -2597,6 +2725,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2607,6 +2739,7 @@ { "name": "symfony/polyfill-ctype", "version": "v1.33.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -2632,6 +2765,8 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2666,6 +2801,7 @@ ], "support": { "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -2680,6 +2816,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2690,15 +2830,19 @@ { "name": "symfony/polyfill-intl-grapheme", "version": "v1.33.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { @@ -2712,6 +2856,8 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2748,6 +2894,7 @@ ], "support": { "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -2762,16 +2909,22 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], "time": "2025-06-27T09:58:17+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-normalizer", "version": "v1.33.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -2794,6 +2947,8 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2833,6 +2988,7 @@ ], "support": { "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -2847,6 +3003,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2857,18 +3017,23 @@ { "name": "symfony/polyfill-mbstring", "version": "v1.33.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { + "ext-iconv": "*", "ext-iconv": "*", "php": ">=7.2" }, @@ -2883,6 +3048,8 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2918,6 +3085,7 @@ ], "support": { "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -2932,25 +3100,34 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], "time": "2024-12-23T08:48:59+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php80", "version": "v1.33.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "shasum": "" }, "require": { @@ -2961,6 +3138,8 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -3002,6 +3181,7 @@ ], "support": { "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" }, "funding": [ { @@ -3016,16 +3196,22 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], "time": "2025-01-02T08:10:11+00:00" + "time": "2025-01-02T08:10:11+00:00" }, { "name": "symfony/polyfill-php81", "version": "v1.33.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -3045,6 +3231,8 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -3082,6 +3270,7 @@ ], "support": { "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0" }, "funding": [ { @@ -3096,6 +3285,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -3183,6 +3376,86 @@ ], "time": "2025-06-24T13:30:11+00:00" }, + { + "name": "symfony/polyfill-php84", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php84\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-24T13:30:11+00:00" + }, { "name": "symfony/process", "version": "v7.3.4", @@ -3198,7 +3471,7 @@ "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4" }, "type": "library", "autoload": { @@ -3241,6 +3514,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -3276,6 +3553,11 @@ "url": "https://github.com/symfony/contracts", "name": "symfony/contracts" }, + "branch-alias": { + "dev-main": "3.6-dev" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.6-dev" } @@ -3324,6 +3606,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -3346,7 +3632,7 @@ "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -3386,6 +3672,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -3408,11 +3698,11 @@ "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.4", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-intl-grapheme": "^1.33", + "symfony/polyfill-intl-normalizer": "^1.0", + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { "symfony/translation-contracts": "<2.5" @@ -3422,7 +3712,7 @@ "symfony/http-client": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -3476,6 +3766,10 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -3487,6 +3781,7 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": {}, + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": {}, diff --git a/frontend/src/components/utilities/Tabs/Tabs.tsx b/frontend/src/components/utilities/Tabs/Tabs.tsx index 59ca147..b419214 100644 --- a/frontend/src/components/utilities/Tabs/Tabs.tsx +++ b/frontend/src/components/utilities/Tabs/Tabs.tsx @@ -37,9 +37,12 @@ export default function Tabs({ const [pref, setPref] = useState(null) const directionNum = prevTabIndex < tabIndex ? 1 : -1 - const ActiveTabPanel = cloneElement(children?.find((c: ReactElement) => c.props.value === tabValue), { - panelRef: (r: HTMLDivElement | null) => setPref(r) - }) + const ActiveTabPanel = cloneElement( + children?.find((c: ReactElement) => c.props.value === tabValue), + { + panelRef: (r: HTMLDivElement | null) => setPref(r) + } + ) const segmentOnchange = (v: SegmentedValue) => { setPrevTabIndex(findIndexByValue(tabValue, options)) diff --git a/frontend/src/components/utilities/TelemetryPopup/TelemetryPopup.module.css b/frontend/src/components/utilities/TelemetryPopup/TelemetryPopup.module.css index a9ef2a8..edf89ae 100644 --- a/frontend/src/components/utilities/TelemetryPopup/TelemetryPopup.module.css +++ b/frontend/src/components/utilities/TelemetryPopup/TelemetryPopup.module.css @@ -1,11 +1,11 @@ /* stylelint-disable no-descending-specificity */ -.popupContent{ +.popupContent { margin-block: 20px; } -.popupContent ul{ +.popupContent ul { list-style-type: disc; - margin-left: 15px; + margin-left: 15px; } .improvementsTitle { @@ -42,11 +42,12 @@ color: white; } -.bitSocialReleaseBanner a:focus{ +.bitSocialReleaseBanner a:focus { box-shadow: none; } -.improvements, .fixed { +.improvements, +.fixed { display: flex; flex-direction: column; margin: 8px; @@ -57,33 +58,33 @@ color: #000; } -.telemetryContent span{ - color:#000; +.telemetryContent span { + color: #000; } -.telemetryContent h3{ +.telemetryContent h3 { margin-bottom: 0; } -.telemetryContent button{ - margin-top: 10px; - border: none; - background: none; - color: black; - padding: 0; - cursor: pointer; - text-decoration: underline; +.telemetryContent button { + margin-top: 10px; + border: none; + background: none; + color: black; + padding: 0; + cursor: pointer; + text-decoration: underline; } -.telemetryContent a:hover{ +.telemetryContent a:hover { color: #1577ff; } -.telemetryContent a:focus{ +.telemetryContent a:focus { box-shadow: none; } -.bitSocialReleaseBanner img{ +.bitSocialReleaseBanner img { height: 400px; } @@ -106,13 +107,10 @@ } .footerBtn a:hover { - background-color: #500cce!important; + background-color: #500cce !important; color: white; } .footerBtn a:focus { box-shadow: none; } - - - diff --git a/frontend/src/pages/Layout/ui/Navigation/TopNavigation/TopNavigation.module.css b/frontend/src/pages/Layout/ui/Navigation/TopNavigation/TopNavigation.module.css index f4579ac..932ce9e 100644 --- a/frontend/src/pages/Layout/ui/Navigation/TopNavigation/TopNavigation.module.css +++ b/frontend/src/pages/Layout/ui/Navigation/TopNavigation/TopNavigation.module.css @@ -7,7 +7,6 @@ .reviewUs { border: 2px solid !important; - color:rgba(255, 149, 41, 100%) !important; + color: rgba(255, 149, 41, 100%) !important; padding: 8px 16px; /* Adjust padding as needed */ } - diff --git a/frontend/src/resource/styles/global.css b/frontend/src/resource/styles/global.css index dbc3817..9fe7435 100644 --- a/frontend/src/resource/styles/global.css +++ b/frontend/src/resource/styles/global.css @@ -160,4 +160,4 @@ svg { .capitalize { text-transform: capitalize; -} \ No newline at end of file +} diff --git a/frontend/src/resource/styles/plugin.css b/frontend/src/resource/styles/plugin.css index 2d010e9..996c241 100644 --- a/frontend/src/resource/styles/plugin.css +++ b/frontend/src/resource/styles/plugin.css @@ -95,8 +95,8 @@ } .ui-helper-clearfix.ui-dialog-buttonpane.ui-widget-content -.ui-dialog-buttonset.elfinder-edit-extras -.ui-corner-all { + .ui-dialog-buttonset.elfinder-edit-extras + .ui-corner-all { margin-top: 0; } @@ -130,127 +130,124 @@ } } - /* --Telemetry-Popup-ant-modal-custom-css-- */ -.telemetry-popup .ant-modal-content{ - background-color: white!important; +.telemetry-popup .ant-modal-content { + background-color: white !important; } -.telemetry-popup .ant-modal-header{ - background: white!important; +.telemetry-popup .ant-modal-header { + background: white !important; } -.telemetry-popup .ant-modal-title{ - color: #000!important; +.telemetry-popup .ant-modal-title { + color: #000 !important; } -.telemetry-popup .ant-modal-body p{ +.telemetry-popup .ant-modal-body p { color: #000; } - -.telemetry-popup .ant-btn-primary{ +.telemetry-popup .ant-btn-primary { background: #1677ff; box-shadow: none; } -.telemetry-popup .ant-btn-primary:hover{ - background: #4096ff!important; +.telemetry-popup .ant-btn-primary:hover { + background: #4096ff !important; } -.telemetry-popup .ant-btn-default{ - background: none!important; +.telemetry-popup .ant-btn-default { + background: none !important; border: none; padding: 0; } -.telemetry-popup .ant-btn-default:hover{ +.telemetry-popup .ant-btn-default:hover { background: none; transition: none; } -.telemetry-popup .ant-steps-item-process .ant-steps-item-icon{ - background-color: #1677ff!important; - border-color: #1677ff!important; +.telemetry-popup .ant-steps-item-process .ant-steps-item-icon { + background-color: #1677ff !important; + border-color: #1677ff !important; } -.telemetry-popup .ant-steps-item-wait .ant-steps-item-icon{ - background-color: #F0F0F0!important; - border-color: transparent!important; - +.telemetry-popup .ant-steps-item-wait .ant-steps-item-icon { + background-color: #f0f0f0 !important; + border-color: transparent !important; } -.telemetry-popup .ant-steps-item-wait .ant-steps-item-icon span{ - color: rgba(0, 0, 0, 0.65)!important; +.telemetry-popup .ant-steps-item-wait .ant-steps-item-icon span { + color: rgba(0, 0, 0, 0.65) !important; } - -.telemetry-popup .ant-steps-item-finish .ant-steps-item-icon{ - background-color: #e6f4ff!important; - border-color: #e6f4ff!important; +.telemetry-popup .ant-steps-item-finish .ant-steps-item-icon { + background-color: #e6f4ff !important; + border-color: #e6f4ff !important; } -.telemetry-popup .ant-checkbox-inner{ - background-color: #fff!important; - border-color: #d9d9d9!important; +.telemetry-popup .ant-checkbox-inner { + background-color: #fff !important; + border-color: #d9d9d9 !important; } /* .telemetry-popup .ant-checkbox-wrapper span{ color: rgba(0, 0, 0, 0.88)!important; } */ -.telemetry-popup .ant-checkbox-checked .ant-checkbox-inner{ - background-color: #4096ff!important; +.telemetry-popup .ant-checkbox-checked .ant-checkbox-inner { + background-color: #4096ff !important; } -.telemetry-popconfirm .ant-popover-content .ant-popover-inner{ +.telemetry-popconfirm .ant-popover-content .ant-popover-inner { width: 450px; - background-color: #fff!important; + background-color: #fff !important; } -.telemetry-popconfirm .ant-popconfirm-title, .ant-popconfirm-description{ - color: #000!important; +.telemetry-popconfirm .ant-popconfirm-title, +.ant-popconfirm-description { + color: #000 !important; } -.telemetry-popconfirm .ant-popconfirm-buttons{ +.telemetry-popconfirm .ant-popconfirm-buttons { display: flex; justify-content: space-between; margin-top: 15px; flex-flow: row-reverse; } -.telemetry-popconfirm .ant-popconfirm-buttons .ant-btn-default{ +.telemetry-popconfirm .ant-popconfirm-buttons .ant-btn-default { background: #1677ff; box-shadow: none; - border-color: transparent!important; + border-color: transparent !important; } -.telemetry-popconfirm .ant-popconfirm-buttons .ant-btn-default:hover{ - background: #4096ff!important; - color:#fff!important; +.telemetry-popconfirm .ant-popconfirm-buttons .ant-btn-default:hover { + background: #4096ff !important; + color: #fff !important; border-color: none; } -.telemetry-popconfirm .ant-popconfirm-buttons .ant-btn-primary{ +.telemetry-popconfirm .ant-popconfirm-buttons .ant-btn-primary { background: none; border: none; box-shadow: none; - color:#776d6d; + color: #776d6d; } -.telemetry-popconfirm .ant-popconfirm-buttons .ant-btn-primary:hover{ - background: none!important; - color:#534e4e!important; +.telemetry-popconfirm .ant-popconfirm-buttons .ant-btn-primary:hover { + background: none !important; + color: #534e4e !important; } /* --Telemetry-Popup-ant-modal-custom-css-- */ /*--ant-header--*/ -.ant-layout-header{ - line-height: 10px!important; - padding-top: 20px!important; +.ant-layout-header { + line-height: 10px !important; + padding-top: 20px !important; } /*--ant-header--*/ @@ -267,8 +264,8 @@ text-align: center; } -.bit-social-release-modal .ant-modal-close-x{ +.bit-social-release-modal .ant-modal-close-x { color: black; } -/*--bit-social-release-modal--*/ \ No newline at end of file +/*--bit-social-release-modal--*/ diff --git a/libs/elFinder/css/elfinder.full.css b/libs/elFinder/css/elfinder.full.css index 1e77268..9f606f7 100644 --- a/libs/elFinder/css/elfinder.full.css +++ b/libs/elFinder/css/elfinder.full.css @@ -1,9 +1,9 @@ /*! * elFinder - file manager for web - * Version 2.1.65 (2024-03-07) + * Version 2.1.66 (2026-02-14) * http://elfinder.org * - * Copyright 2009-2024, Studio 42 + * Copyright 2009-2026, Studio 42 * Licensed under a 3-clauses BSD license */ diff --git a/libs/elFinder/css/elfinder.min.css b/libs/elFinder/css/elfinder.min.css index a3affc4..d84feec 100644 --- a/libs/elFinder/css/elfinder.min.css +++ b/libs/elFinder/css/elfinder.min.css @@ -1,9 +1,9 @@ /*! * elFinder - file manager for web - * Version 2.1.65 (2024-03-07) + * Version 2.1.66 (2026-02-14) * http://elfinder.org * - * Copyright 2009-2024, Studio 42 + * Copyright 2009-2026, Studio 42 * Licensed under a 3-clauses BSD license */ .elfinder-resize-container{margin-top:.3em}.elfinder-resize-type{float:left;margin-bottom:.4em}.elfinder-resize-control{float:left}.elfinder-resize-control input[type=number]{border:1px solid #aaa;text-align:right;width:4.5em}.elfinder-resize-control input.elfinder-resize-bg{text-align:center;width:5em;direction:ltr}.elfinder-dialog-resize .elfinder-resize-control-panel{margin-top:10px}.elfinder-dialog-resize .elfinder-resize-imgrotate,.elfinder-dialog-resize .elfinder-resize-pallet{cursor:pointer}.elfinder-dialog-resize .elfinder-resize-picking{cursor:crosshair}.elfinder-dialog-resize .elfinder-resize-grid8+button{padding-top:2px;padding-bottom:2px}.elfinder-resize-preview{width:400px;height:400px;padding:10px;background:#fff;border:1px solid #aaa;float:right;position:relative;overflow:hidden;text-align:left;direction:ltr}.elfinder-resize-handle,div.elfinder-cwd-wrapper-list tr.ui-state-default td{position:relative}.elfinder-resize-handle-hline,.elfinder-resize-handle-vline{position:absolute;background-image:url(../img/crop.gif)}.elfinder-resize-handle-hline{width:100%;height:1px!important;background-repeat:repeat-x}.elfinder-resize-handle-vline{width:1px!important;height:100%;background-repeat:repeat-y}.elfinder-resize-handle-hline-top{top:0;left:0}.elfinder-resize-handle-hline-bottom{bottom:0;left:0}.elfinder-resize-handle-vline-left{top:0;left:0}.elfinder-resize-handle-vline-right{top:0;right:0}.elfinder-resize-handle-point{position:absolute;width:8px;height:8px;border:1px solid #777;background:0 0}.elfinder-resize-handle-point-n{top:0;left:50%;margin-top:-5px;margin-left:-5px}.elfinder-resize-handle-point-e,.elfinder-resize-handle-point-ne{top:0;right:0;margin-top:-5px;margin-right:-5px}.elfinder-resize-handle-point-e{top:50%}.elfinder-resize-handle-point-se{bottom:0;right:0;margin-bottom:-5px;margin-right:-5px}.elfinder-resize-handle-point-s,.elfinder-resize-handle-point-sw{bottom:0;left:50%;margin-bottom:-5px;margin-left:-5px}.elfinder-resize-handle-point-sw{left:0}.elfinder-resize-handle-point-nw,.elfinder-resize-handle-point-w{top:50%;left:0;margin-top:-5px;margin-left:-5px}.elfinder-resize-handle-point-nw{top:0}.elfinder-dialog.elfinder-dialog-resize .ui-resizable-e{width:10px;height:100%}.elfinder-dialog.elfinder-dialog-resize .ui-resizable-s{width:100%;height:10px}.elfinder-resize-loading{position:absolute;width:200px;height:30px;top:50%;margin-top:-25px;left:50%;margin-left:-100px;text-align:center;background:url(../img/progress.gif) center bottom repeat-x}.elfinder-resize-row{margin-bottom:9px;position:relative}.elfinder-resize-label{float:left;width:80px;padding-top:3px}.elfinder-resize-checkbox-label{border:1px solid transparent}.elfinder-dialog-resize .elfinder-resize-whctrls{margin:-20px 5px 0}.elfinder-ltr .elfinder-dialog-resize .elfinder-resize-whctrls{float:right}.elfinder-help-team div,.elfinder-rtl .elfinder-dialog-resize .elfinder-resize-whctrls{float:left}.elfinder-dialog-resize .ui-resizable-e,.elfinder-dialog-resize .ui-resizable-w{height:100%;width:10px}.elfinder-dialog-resize .ui-resizable-n,.elfinder-dialog-resize .ui-resizable-s{width:100%;height:10px}.elfinder-dialog-resize .ui-resizable-e{margin-right:-7px}.elfinder-dialog-resize .ui-resizable-w{margin-left:-7px}.elfinder-dialog-resize .ui-resizable-s{margin-bottom:-7px}.elfinder-dialog-resize .ui-resizable-n{margin-top:-7px}.elfinder-dialog-resize .ui-resizable-ne,.elfinder-dialog-resize .ui-resizable-nw,.elfinder-dialog-resize .ui-resizable-se,.elfinder-dialog-resize .ui-resizable-sw{width:10px;height:10px}.elfinder-dialog-resize .ui-resizable-se{background:0 0;bottom:0;right:0;margin-right:-7px;margin-bottom:-7px}.elfinder-dialog-resize .ui-resizable-sw{margin-left:-7px;margin-bottom:-7px}.elfinder-dialog-resize .ui-resizable-ne{margin-right:-7px;margin-top:-7px}.elfinder-dialog-resize .ui-resizable-nw{margin-left:-7px;margin-top:-7px}.elfinder-touch .elfinder-dialog-resize .ui-resizable-n,.elfinder-touch .elfinder-dialog-resize .ui-resizable-s{height:20px}.elfinder-touch .elfinder-dialog-resize .ui-resizable-e,.elfinder-touch .elfinder-dialog-resize .ui-resizable-w{width:20px}.elfinder-touch .elfinder-dialog-resize .ui-resizable-ne,.elfinder-touch .elfinder-dialog-resize .ui-resizable-nw,.elfinder-touch .elfinder-dialog-resize .ui-resizable-se,.elfinder-touch .elfinder-dialog-resize .ui-resizable-sw{width:30px;height:30px}.elfinder-touch .elfinder-dialog-resize .elfinder-resize-preview .ui-resizable-se{width:30px;height:30px;margin:0}.elfinder-dialog-resize .ui-icon-grip-solid-vertical{position:absolute;top:50%;right:0;margin-top:-8px;margin-right:-11px}.elfinder-dialog-resize .ui-icon-grip-solid-horizontal{position:absolute;left:50%;bottom:0;margin-left:-8px;margin-bottom:-11px}.elfinder-dialog-resize .elfinder-resize-row .ui-buttonset{float:right}.elfinder-dialog-resize .elfinder-resize-degree input,.elfinder-dialog-resize input.elfinder-resize-quality,.elfinder-mobile .elfinder-resize-control input[type=number]{width:3.5em}.elfinder-mobile .elfinder-dialog-resize .elfinder-resize-degree input,.elfinder-mobile .elfinder-dialog-resize input.elfinder-resize-quality{width:2.5em}.elfinder-dialog-resize .elfinder-resize-degree button.ui-button{padding:6px 8px}.elfinder-dialog-resize button.ui-button span{padding:0}.elfinder-dialog-resize .elfinder-resize-jpgsize{font-size:90%}.ui-widget-content .elfinder-resize-container .elfinder-resize-rotate-slider{width:195px;margin:10px 7px;background-color:#fafafa}.elfinder-dialog-resize .elfinder-resize-type span.ui-checkboxradio-icon{display:none}.elfinder-resize-preset-container{box-sizing:border-box;border-radius:5px}.elfinder-file-edit{width:100%;height:100%;margin:0;padding:2px;border:1px solid #ccc;box-sizing:border-box;resize:none}.elfinder-touch .elfinder-file-edit{font-size:16px}.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor{background-color:#fff}.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor{width:100%;height:300px;max-height:100%;text-align:center}.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;user-select:none}.elfinder-edit-imageeditor .tui-image-editor-main-container .tui-image-editor-main{top:0}.elfinder-edit-imageeditor .tui-image-editor-main-container .tui-image-editor-header{display:none}.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-crop .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-draw .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-filter .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-flip .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-icon .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-mask .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-rotate .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-shape .tui-image-editor-wrap,.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-text .tui-image-editor-wrap{height:calc(100% - 150px)}.elfinder-touch.elfinder-fullscreen-native textarea.elfinder-file-edit{padding-bottom:20em;margin-bottom:-20em}.elfinder-dialog-edit .ui-dialog-buttonpane .elfinder-dialog-confirm-encoding{font-size:12px}.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras{margin:0 1em 0 .2em;float:left}.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras-quality{padding-top:6px}.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras select{font-size:12px;margin-top:8px}.elfinder-dialog-edit .ui-dialog-buttonpane .ui-icon,.elfinder-edit-onlineconvert-bottom-btn button,.elfinder-edit-onlineconvert-button button,.elfinder-preference dt label{cursor:pointer}.elfinder-edit-spinner{position:absolute;top:50%;text-align:center;width:100%;font-size:16pt}.elfinder-dialog-edit .elfinder-edit-spinner .elfinder-spinner,.elfinder-dialog-edit .elfinder-edit-spinner .elfinder-spinner-text{float:none}.elfinder-dialog-edit .elfinder-toast>div{width:280px}.elfinder-edit-onlineconvert-button{display:inline-block;width:180px;min-height:30px;vertical-align:top}.elfinder-edit-onlineconvert-bottom-btn button.elfinder-button-ios-multiline{-webkit-appearance:none;border-radius:16px;color:#000;text-align:center;padding:8px;background-color:#eee;background-image:-webkit-linear-gradient(top,#fafafa 0%,#c4c4c4 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#c4c4c4 100%)}.elfinder-edit-onlineconvert-button .elfinder-button-icon{margin:0 10px;vertical-align:middle;cursor:pointer}.elfinder-edit-onlineconvert-bottom-btn{text-align:center;margin:10px 0 0}.elfinder-edit-onlineconvert-link{margin-top:1em;text-align:center}.elfinder-edit-onlineconvert-link .elfinder-button-icon{background-image:url(../img/editor-icons.png);background-repeat:no-repeat;background-position:0 -144px;margin-bottom:-3px}.elfinder-edit-onlineconvert-link a,ul.elfinder-help-integrations a{text-decoration:none}div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon{position:absolute;top:4px;left:0;right:0;margin:auto 0 auto auto}.elfinder-touch div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon{top:7px}.elfinder-rtl div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon{margin:auto auto auto 0}.elfinder-help{margin-bottom:.5em;-webkit-overflow-scrolling:touch}.elfinder-help .ui-tabs-panel{overflow:auto;padding:10px}.elfinder-dialog .ui-tabs .ui-tabs-nav li{overflow:hidden}.elfinder-dialog .ui-tabs .ui-tabs-nav li a{padding:.2em .8em;display:inline-block}.elfinder-touch .elfinder-dialog .ui-tabs .ui-tabs-nav li a{padding:.5em}.elfinder-dialog .ui-tabs-active a{background:inherit}.elfinder-help-shortcuts{height:auto;padding:10px;margin:0;box-sizing:border-box}.elfinder-help-shortcut{white-space:nowrap;clear:both}.elfinder-help-shortcut-pattern{float:left;width:160px}.elfinder-help-logo{width:100px;height:96px;float:left;margin-right:1em;background:url(../img/logo.png) center center no-repeat}.elfinder-help h3{font-size:1.5em;margin:.2em 0 .3em}.elfinder-help-separator{clear:both;padding:.5em}.elfinder-help-link{display:inline-block;margin-right:12px;padding:2px 0;white-space:nowrap}.elfinder-rtl .elfinder-help-link{margin-right:0;margin-left:12px}.elfinder-help .ui-priority-secondary{font-size:.9em}.elfinder-help .ui-priority-primary{margin-bottom:7px}.elfinder-help-team{clear:both;text-align:right;border-bottom:1px solid #ccc;margin:.5em 0;font-size:.9em}.elfinder-help-license{font-size:.9em}.elfinder-help-disabled{font-weight:700;text-align:center;margin:90px 0}.elfinder-help .elfinder-dont-panic{display:block;border:1px solid transparent;width:200px;height:200px;margin:30px auto;text-decoration:none;text-align:center;position:relative;background:#d90004;-moz-box-shadow:5px 5px 9px #111;-webkit-box-shadow:5px 5px 9px #111;box-shadow:5px 5px 9px #111;background:-moz-radial-gradient(80px 80px,circle farthest-corner,#d90004 35%,#960004 100%);background:-webkit-gradient(radial,80 80,60,80 80,120,from(#d90004),to(#960004));-moz-border-radius:100px;-webkit-border-radius:100px;border-radius:100px;outline:none}.elfinder-help .elfinder-dont-panic span{font-size:3em;font-weight:700;text-align:center;color:#fff;position:absolute;left:0;top:45px}ul.elfinder-help-integrations ul{padding:0;margin:0 1em 1em}ul.elfinder-help-integrations a:hover{text-decoration:underline}.elfinder-help-debug{height:100%;padding:0;margin:0;overflow:none;border:none}.elfinder-help-debug .ui-tabs-panel{padding:0;margin:0;overflow:auto}.elfinder-help-debug fieldset{margin-bottom:10px;border-color:#789;border-radius:10px}.elfinder-help-debug legend{font-size:1.2em;font-weight:700;color:#2e8b57}.elfinder-help-debug dl{margin:0}.elfinder-help-debug dt{color:#789}.elfinder-help-debug dt:before{content:"["}.elfinder-help-debug dt:after{content:"]"}.elfinder-help-debug dd{margin-left:1em}.elfinder-dialog .elfinder-preference .ui-tabs-nav{margin-bottom:1px;height:auto}.elfinder-preference .ui-tabs-panel{padding:10px 10px 0;overflow:auto;box-sizing:border-box;-webkit-overflow-scrolling:touch}.elfinder-preference a.ui-state-hover,.elfinder-preference label.ui-state-hover{border:none}.elfinder-preference dl{width:100%;display:inline-block;margin:.5em 0}.elfinder-preference dt{display:block;width:200px;clear:left;float:left;max-width:50%}.elfinder-rtl .elfinder-preference dt{clear:right;float:right}.elfinder-preference dd{margin-bottom:1em}.elfinder-preference dd input[type=checkbox],.elfinder-preference dd label{white-space:nowrap;display:inline-block;cursor:pointer}.elfinder-preference dt.elfinder-preference-checkboxes{width:100%;max-width:none}.elfinder-preference dd.elfinder-preference-checkboxes{padding-top:3ex}.elfinder-preference select{max-width:100%}.elfinder-preference dd.elfinder-preference-iconSize .ui-slider{width:50%;max-width:100px;display:inline-block;margin:0 10px}.elfinder-preference button{margin:0 16px}.elfinder-preference button+button{margin:0 -10px}.elfinder-preference .elfinder-preference-taball .elfinder-reference-hide-taball{display:none}.elfinder-preference-theme fieldset{margin-bottom:10px}.elfinder-preference-theme legend a{font-size:1.8em;text-decoration:none;cursor:pointer}.elfinder-preference-theme dt{width:20%;word-break:break-all}.elfinder-preference-theme dt:after{content:" :"}.elfinder-preference-theme dd{margin-inline-start:20%}.elfinder-preference img.elfinder-preference-theme-image{display:block;margin-left:auto;margin-right:auto;max-width:90%;max-height:200px;cursor:pointer}.elfinder-preference-theme-btn,.elfinder-rename-batch-type{text-align:center}.elfinder-preference-theme button.elfinder-preference-theme-default{display:inline;margin:0 10px;font-size:8pt}.elfinder-rtl .elfinder-info-title .elfinder-cwd-icon:before{right:33px;left:auto}.elfinder-info-title .elfinder-cwd-icon.elfinder-cwd-bgurl:after{content:none}.elfinder-upload-dialog-wrapper .elfinder-upload-dirselect{position:absolute;bottom:2px;width:16px;height:16px;padding:10px;border:none;overflow:hidden;cursor:pointer}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-item .ui-icon,.elfinder-ltr .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect{left:2px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-item .ui-icon,.elfinder-rtl .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect{right:2px}.elfinder-ltr .elfinder-rm-title .elfinder-cwd-icon:before{left:38px}.elfinder-rtl .elfinder-rm-title .elfinder-cwd-icon:before{right:86px;left:auto}.elfinder-rm-title .elfinder-cwd-icon.elfinder-cwd-bgurl:after{content:none}.elfinder-rename-batch div{margin:5px 8px}.elfinder-rename-batch .elfinder-rename-batch-name input{width:100%;font-size:1.6em}.elfinder-rename-batch .elfinder-rename-batch-type label{margin:2px;font-size:.9em}.elfinder-rename-batch-preview{padding:0 8px;font-size:1.1em;min-height:4ex}.ui-front{z-index:100}.elfinder .elfinder-cwd table td div,.elfinder-cwd table td,div.elfinder *,div.elfinder :after,div.elfinder :before{box-sizing:content-box}div.elfinder fieldset{display:block;margin-inline-start:2px;margin-inline-end:2px;padding-block-start:.35em;padding-inline-start:.75em;padding-inline-end:.75em;padding-block-end:.625em;min-inline-size:min-content;border-width:2px;border-style:groove;border-color:threedface;border-image:initial}div.elfinder legend{display:block;padding-inline-start:2px;padding-inline-end:2px;border-width:initial;border-style:none;border-color:initial;border-image:initial;width:auto;margin-bottom:0}div.elfinder{padding:0;position:relative;display:block;visibility:visible;font-size:18px;font-family:Verdana,Arial,Helvetica,sans-serif}.elfinder-ios input,.elfinder-ios select,.elfinder-ios textarea{font-size:16px!important}.elfinder.elfinder-fullscreen>.ui-resizable-handle{display:none}.elfinder-font-mono{line-height:2ex}.elfinder.elfinder-processing *{cursor:progress!important}.elfinder.elfinder-processing.elfinder-touch .elfinder-workzone:after{position:absolute;top:0;width:100%;height:3px;content:'';left:0;background-image:url(../img/progress.gif);opacity:.6;pointer-events:none}.elfinder :not(input):not(textarea):not(select):not([contenteditable=true]),.elfinder-contextmenu :not(input):not(textarea):not(select):not([contenteditable=true]){-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;user-select:none}.elfinder .overflow-scrolling-touch{-webkit-overflow-scrolling:touch}.elfinder-rtl{text-align:right;direction:rtl}.elfinder-workzone{padding:0;position:relative;overflow:hidden}.elfinder-lock,.elfinder-perms,.elfinder-symlink{position:absolute;width:16px;height:16px;background-image:url(../img/toolbar.png);background-repeat:no-repeat}.elfinder-perms,.elfinder-symlink{background-position:0 -528px}.elfinder-na .elfinder-perms{background-position:0 -96px}.elfinder-ro .elfinder-perms{background-position:0 -64px}.elfinder-wo .elfinder-perms{background-position:0 -80px}.elfinder-group .elfinder-perms{background-position:0 0}.elfinder-lock{background-position:0 -656px}.elfinder-drag-helper{top:0;left:0;width:70px;height:60px;padding:0 0 0 25px;z-index:100000;will-change:left,top}.elfinder-drag-helper.html5-native{position:absolute;top:-1000px;left:-1000px}.elfinder-drag-helper-icon-status{position:absolute;width:16px;height:16px;left:42px;top:60px;background:url(../img/toolbar.png) 0 -96px no-repeat;display:block}.elfinder-drag-helper-move .elfinder-drag-helper-icon-status{background-position:0 -720px}.elfinder-drag-helper-plus .elfinder-drag-helper-icon-status{background-position:0 -544px}.elfinder-drag-num{display:inline-box;position:absolute;top:0;left:0;width:auto;height:14px;text-align:center;padding:1px 3px;font-weight:700;color:#fff;background-color:red;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.elfinder-drag-helper .elfinder-cwd-icon{margin:0 0 0 -24px;float:left}.elfinder-overlay{position:absolute;opacity:.2;filter:Alpha(Opacity=20)}.elfinder .elfinder-panel{position:relative;background-image:none;padding:7px 12px}[draggable=true]{-khtml-user-drag:element}.elfinder [contentEditable=true]:empty:not(:focus):before{content:attr(data-ph)}.elfinder div.elfinder-bottomtray{position:fixed;bottom:0;max-width:100%;opacity:.8}.elfinder div.elfinder-bottomtray>div{top:initial;right:initial;left:initial}.elfinder.elfinder-ltr div.elfinder-bottomtray{left:0}.elfinder.elfinder-rtl div.elfinder-bottomtray{right:0}.elfinder .elfinder-ui-tooltip,.elfinder-ui-tooltip{font-size:14px;padding:2px 4px}.elfinder-ui-progressbar{pointer-events:none;position:absolute;width:0;height:2px;top:0;border-radius:2px;filter:blur(1px)}.elfinder-ltr .elfinder-ui-progressbar{left:0}.elfinder-rtl .elfinder-ui-progressbar{right:0}.elfinder .elfinder-contextmenu,.elfinder .elfinder-contextmenu-sub{position:absolute;border:1px solid #aaa;background:#fff;color:#555;padding:4px 0;top:0;left:0}.elfinder .elfinder-contextmenu-sub{top:5px}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-sub{margin-left:-5px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-sub{margin-right:-5px}.elfinder .elfinder-contextmenu-header{margin-top:-4px;padding:0 .5em .2ex;border:none;text-align:center}.elfinder .elfinder-contextmenu-header span{font-size:.8em;font-weight:bolder}.elfinder .elfinder-contextmenu-item{position:relative;display:block;padding:4px 30px;text-decoration:none;white-space:nowrap;cursor:default}.elfinder .elfinder-contextmenu-item.ui-state-active{border:none}.elfinder .elfinder-contextmenu-item .ui-icon{width:16px;height:16px;position:absolute;left:auto;right:auto;top:50%;margin-top:-8px}.elfinder-touch .elfinder-contextmenu-item{padding:12px 38px}.elfinder-navbar-root-local.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_local.svg);background-size:contain}.elfinder-navbar-root-trash.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_trash.svg);background-size:contain}.elfinder-navbar-root-ftp.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_ftp.svg);background-size:contain}.elfinder-navbar-root-sql.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_sql.svg);background-size:contain}.elfinder-navbar-root-dropbox.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_dropbox.svg);background-size:contain}.elfinder-navbar-root-googledrive.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_googledrive.svg);background-size:contain}.elfinder-navbar-root-onedrive.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_onedrive.svg);background-size:contain}.elfinder-navbar-root-box.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_box.svg);background-size:contain}.elfinder-navbar-root-zip.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_zip.svg);background-size:contain}.elfinder-navbar-root-network.elfinder-contextmenu-icon{background-image:url(../img/volume_icon_network.svg);background-size:contain}.elfinder .elfinder-contextmenu .elfinder-contextmenu-item span{display:block}.elfinder .elfinder-contextmenu-sub .elfinder-contextmenu-item{padding-left:12px;padding-right:12px}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-item{text-align:left}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-item{text-align:right}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon{padding-left:28px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon{padding-right:28px}.elfinder-touch .elfinder-contextmenu-ltr .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon{padding-left:36px}.elfinder-touch .elfinder-contextmenu-rtl .elfinder-contextmenu-sub .elfinder-contextsubmenu-item-icon{padding-right:36px}.elfinder .elfinder-contextmenu-arrow,.elfinder .elfinder-contextmenu-extra-icon,.elfinder .elfinder-contextmenu-icon{position:absolute;top:50%;margin-top:-8px;overflow:hidden}.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-icon{transform-origin:center center}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-icon{left:8px}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-extra-icon,.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-icon{right:8px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-extra-icon{left:8px}.elfinder .elfinder-contextmenu-arrow{width:16px;height:16px;background:url(../img/arrows-normal.png) 5px 4px no-repeat}.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-arrow{right:5px}.elfinder .elfinder-contextmenu-rtl .elfinder-contextmenu-arrow{left:5px;background-position:0 -10px}.elfinder .elfinder-contextmenu-extra-icon a,.elfinder .elfinder-contextmenu-extra-icon span{position:relative;width:100%;height:100%;margin:0;color:transparent!important;text-decoration:none;cursor:pointer}.elfinder .elfinder-contextmenu .ui-state-hover{border:0 solid;background-image:none}.elfinder .elfinder-contextmenu-separator{height:0;border-top:1px solid #ccc;margin:0 1px}.elfinder .elfinder-contextmenu-item .elfinder-button-icon.ui-state-disabled{background-image:url(../img/toolbar.png)}.elfinder-cwd-wrapper{overflow:auto;position:relative;padding:2px;margin:0}.elfinder-cwd-wrapper-list{padding:0}.elfinder-cwd{position:absolute;top:0;cursor:default;padding:0;margin:0;-ms-touch-action:auto;touch-action:auto;min-width:100%}.elfinder-ltr .elfinder-cwd{left:0}.elfinder-rtl .elfinder-cwd{right:0}.elfinder-cwd.elfinder-table-header-sticky{position:-webkit-sticky;position:-ms-sticky;position:sticky;top:0;left:auto;right:auto;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:max-content;height:0;overflow:visible}.elfinder-cwd.elfinder-table-header-sticky table{border-top:2px solid;padding-top:0}.elfinder-cwd.elfinder-table-header-sticky td{display:inline-block}.elfinder-droppable-active .elfinder-cwd.elfinder-table-header-sticky table{border-top:2px solid transparent}.elfinder .elfinder-cwd table tbody.elfinder-cwd-fixheader,.elfinder-cwd-fixheader .elfinder-cwd{position:relative}.elfinder .elfinder-cwd-wrapper.elfinder-droppable-active{outline:2px solid #8cafed;outline-offset:-2px}.elfinder-cwd-wrapper-empty .elfinder-cwd:after{display:block;height:auto;width:90%;width:calc(100% - 20px);position:absolute;top:50%;left:50%;-ms-transform:translateY(-50%) translateX(-50%);-webkit-transform:translateY(-50%) translateX(-50%);transform:translateY(-50%) translateX(-50%);line-height:1.5em;text-align:center;white-space:pre-wrap;opacity:.6;filter:Alpha(Opacity=60);font-weight:700}.elfinder-cwd-file .elfinder-cwd-select{position:absolute;top:0;left:0;background-color:transparent;opacity:.4;filter:Alpha(Opacity=40)}.elfinder-mobile .elfinder-cwd-file .elfinder-cwd-select{width:30px;height:30px}.elfinder .elfinder-cwd-selectall,.elfinder-cwd-file.ui-selected .elfinder-cwd-select{opacity:.8;filter:Alpha(Opacity=80)}.elfinder-rtl .elfinder-cwd-file .elfinder-cwd-select{left:auto;right:0}.elfinder .elfinder-cwd-selectall{position:absolute;width:30px;height:30px;top:0}.elfinder .elfinder-workzone.elfinder-cwd-wrapper-empty .elfinder-cwd-selectall{display:none}.elfinder-ltr .elfinder-workzone .elfinder-cwd-selectall{text-align:right;right:18px;left:auto}.elfinder-rtl .elfinder-workzone .elfinder-cwd-selectall{text-align:left;right:auto;left:18px}.elfinder-ltr.elfinder-mobile .elfinder-workzone .elfinder-cwd-selectall{right:0}.elfinder-rtl.elfinder-mobile .elfinder-workzone .elfinder-cwd-selectall{left:0}.elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-select.ui-state-hover{background-color:transparent}.elfinder-cwd-view-icons .elfinder-cwd-file{width:120px;height:90px;padding-bottom:2px;cursor:default;border:none;position:relative}.elfinder .std42-dialog .ui-dialog-content label,.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-active{border:none}.elfinder-ltr .elfinder-cwd-view-icons .elfinder-cwd-file{float:left;margin:0 3px 2px 0}.elfinder-rtl .elfinder-cwd-view-icons .elfinder-cwd-file{float:right;margin:0 0 5px 3px}.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover{border:0 solid}.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper{width:52px;height:52px;margin:1px auto;padding:2px;position:relative}.elfinder-cwd-size1 .elfinder-cwd-icon:before,.elfinder-cwd-size2 .elfinder-cwd-icon:before,.elfinder-cwd-size3 .elfinder-cwd-icon:before{top:3px;display:block}.elfinder-cwd-size1.elfinder-cwd-view-icons .elfinder-cwd-file{width:120px;height:112px}.elfinder-cwd-size1.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper{width:74px;height:74px}.elfinder-cwd-size1 .elfinder-cwd-icon,.elfinder-cwd-size2 .elfinder-cwd-icon,.elfinder-cwd-size3 .elfinder-cwd-icon{-ms-transform-origin:top center;-ms-transform:scale(1.5);-webkit-transform-origin:top center;-webkit-transform:scale(1.5);transform-origin:top center;transform:scale(1.5)}.elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:before{-ms-transform-origin:top left;-ms-transform:scale(1.35) translate(-4px,15%);-webkit-transform-origin:top left;-webkit-transform:scale(1.35) translate(-4px,15%);transform-origin:top left;transform:scale(1.35) translate(-4px,15%)}.elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:after{-ms-transform:scale(1) translate(10px,-5px);-webkit-transform:scale(1) translate(10px,-5px);transform:scale(1) translate(10px,-5px)}.elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl{-ms-transform-origin:center center;-ms-transform:scale(1);-webkit-transform-origin:center center;-webkit-transform:scale(1);transform-origin:center center;transform:scale(1);width:72px;height:72px;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px}.elfinder-cwd-size2.elfinder-cwd-view-icons .elfinder-cwd-file{width:140px;height:134px}.elfinder-cwd-size2.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper{width:98px;height:98px}.elfinder-cwd-size2 .elfinder-cwd-icon,.elfinder-cwd-size3 .elfinder-cwd-icon{-ms-transform:scale(2);-webkit-transform:scale(2);transform:scale(2)}.elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:before{-ms-transform-origin:top left;-ms-transform:scale(1.8) translate(-5px,18%);-webkit-transform-origin:top left;-webkit-transform:scale(1.8) translate(-5px,18%);transform-origin:top left;transform:scale(1.8) translate(-5px,18%)}.elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:after{-ms-transform:scale(1.1) translate(0,10px);-webkit-transform:scale(1.1) translate(0,10px);transform:scale(1.1) translate(0,10px)}.elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl{-ms-transform-origin:center center;-ms-transform:scale(1);-webkit-transform-origin:center center;-webkit-transform:scale(1);transform-origin:center center;transform:scale(1);width:96px;height:96px;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.elfinder-cwd-size3.elfinder-cwd-view-icons .elfinder-cwd-file{width:174px;height:158px}.elfinder-cwd-size3.elfinder-cwd-view-icons .elfinder-cwd-file-wrapper{width:122px;height:122px}.elfinder-cwd-size3 .elfinder-cwd-icon{-ms-transform:scale(2.5);-webkit-transform:scale(2.5);transform:scale(2.5)}.elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:before{-ms-transform-origin:top left;-ms-transform:scale(2.25) translate(-6px,20%);-webkit-transform-origin:top left;-webkit-transform:scale(2.25) translate(-6px,20%);transform-origin:top left;transform:scale(2.25) translate(-6px,20%)}.elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:after{-ms-transform:scale(1.2) translate(-9px,22px);-webkit-transform:scale(1.2) translate(-9px,22px);transform:scale(1.2) translate(-9px,22px)}.elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl{-ms-transform-origin:center center;-ms-transform:scale(1);-webkit-transform-origin:center center;-webkit-transform:scale(1);transform-origin:center center;transform:scale(1);width:120px;height:120px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}.elfinder-cwd-view-icons .elfinder-cwd-filename{text-align:center;max-height:2.4em;line-height:1.2em;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;margin:3px 1px 0;padding:1px;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;word-break:break-word;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.elfinder-cwd-view-icons .elfinder-perms{bottom:4px;right:2px}.elfinder-cwd-view-icons .elfinder-lock{top:-3px;right:-2px}.elfinder-cwd-view-icons .elfinder-symlink{bottom:6px;left:0}.elfinder-cwd-icon{display:block;width:48px;height:48px;margin:0 auto;background-image:url(../img/icons-big.svg);background-image:url(../img/icons-big.png) \9;background-position:0 0;background-repeat:no-repeat;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.elfinder-cwd .elfinder-navbar-root-local.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon,.elfinder-navbar-root-local .elfinder-cwd-icon{background-image:url(../img/volume_icon_local.svg);background-image:url(../img/volume_icon_local.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-local.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-trash.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon,.elfinder-navbar-root-trash .elfinder-cwd-icon{background-image:url(../img/volume_icon_trash.svg);background-image:url(../img/volume_icon_trash.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-trash.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-ftp.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon,.elfinder-navbar-root-ftp .elfinder-cwd-icon{background-image:url(../img/volume_icon_ftp.svg);background-image:url(../img/volume_icon_ftp.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-ftp.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-sql.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon,.elfinder-navbar-root-sql .elfinder-cwd-icon{background-image:url(../img/volume_icon_sql.svg);background-image:url(../img/volume_icon_sql.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-sql.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-dropbox.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon,.elfinder-navbar-root-dropbox .elfinder-cwd-icon{background-image:url(../img/volume_icon_dropbox.svg);background-image:url(../img/volume_icon_dropbox.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-dropbox.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon,.elfinder-navbar-root-googledrive .elfinder-cwd-icon{background-position:0 0}.elfinder-cwd .elfinder-navbar-root-googledrive.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon,.elfinder-navbar-root-googledrive .elfinder-cwd-icon{background-image:url(../img/volume_icon_googledrive.svg);background-image:url(../img/volume_icon_googledrive.png) \9;background-size:contain}.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon,.elfinder-navbar-root-onedrive .elfinder-cwd-icon{background-position:0 0}.elfinder-cwd .elfinder-navbar-root-onedrive.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon,.elfinder-navbar-root-onedrive .elfinder-cwd-icon{background-image:url(../img/volume_icon_onedrive.svg);background-image:url(../img/volume_icon_onedrive.png) \9;background-size:contain}.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon,.elfinder-navbar-root-box .elfinder-cwd-icon{background-position:0 0}.elfinder-cwd .elfinder-navbar-root-box.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon,.elfinder-navbar-root-box .elfinder-cwd-icon{background-image:url(../img/volume_icon_box.svg);background-image:url(../img/volume_icon_box.png) \9;background-size:contain}.elfinder-cwd .elfinder-navbar-root-zip.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon,.elfinder-navbar-root-zip .elfinder-cwd-icon{background-image:url(../img/volume_icon_zip.svg);background-image:url(../img/volume_icon_zip.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-box.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd .elfinder-navbar-root-googledrive.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd .elfinder-navbar-root-onedrive.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd .elfinder-navbar-root-network.elfinder-droppable-active .elfinder-cwd-icon,.elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon,.elfinder-navbar-root-network .elfinder-cwd-icon{background-image:url(../img/volume_icon_network.svg);background-image:url(../img/volume_icon_network.png) \9;background-position:0 0;background-size:contain}.elfinder-cwd .elfinder-navbar-root-network.elfinder-droppable-active .elfinder-cwd-icon{background-position:1px -1px}.elfinder-cwd-icon:before{content:none;position:absolute;left:0;top:5px;min-width:20px;max-width:84px;text-align:center;padding:0 4px 1px;border-radius:4px;font-family:Verdana;font-size:10px;line-height:1.3em;-webkit-transform:scale(.9);-moz-transform:scale(.9);-ms-transform:scale(.9);-o-transform:scale(.9);transform:scale(.9)}.elfinder-cwd-view-icons .elfinder-cwd-icon.elfinder-cwd-bgurl:before{left:-10px}.elfinder-cwd-icon.elfinder-cwd-icon-mp2t:before{content:'ts'}.elfinder-cwd-icon.elfinder-cwd-icon-dash-xml:before{content:'dash'}.elfinder-cwd-icon.elfinder-cwd-icon-x-mpegurl:before{content:'hls'}.elfinder-cwd-icon.elfinder-cwd-icon-x-c:before{content:'c++'}.elfinder-cwd-icon.elfinder-cwd-bgurl{background-position:center center;background-repeat:no-repeat}.elfinder-cwd-icon.elfinder-cwd-bgurl,.elfinder-cwd-icon.elfinder-cwd-bgurl.elfinder-cwd-bgself{-moz-background-size:cover;background-size:cover}.elfinder-cwd-icon.elfinder-cwd-bgurl:after{content:' '}.elfinder-cwd-bgurl:after{position:relative;display:inline-block;top:36px;left:-38px;width:48px;height:48px;background-image:url(../img/icons-big.svg);background-image:url(../img/icons-big.png) \9;background-repeat:no-repeat;background-size:auto!important;opacity:.8;filter:Alpha(Opacity=60);-webkit-transform-origin:54px -24px;-webkit-transform:scale(.6);-moz-transform-origin:54px -24px;-moz-transform:scale(.6);-ms-transform-origin:54px -24px;-ms-transform:scale(.6);-o-transform-origin:54px -24px;-o-transform:scale(.6);transform-origin:54px -24px;transform:scale(.6)}.elfinder-cwd-icon.elfinder-cwd-icon-drag{width:48px;height:48px}.elfinder-cwd-icon-directory.elfinder-cwd-bgurl:after,.elfinder-cwd-icon-image.elfinder-cwd-bgurl:after,.elfinder-cwd-icon.elfinder-cwd-icon-drag:after,.elfinder-cwd-icon.elfinder-cwd-icon-drag:before{content:none}.elfinder-cwd .elfinder-droppable-active .elfinder-cwd-icon{background-position:0 -100px}.elfinder-cwd .elfinder-droppable-active{outline:2px solid #8cafed;outline-offset:-2px}.elfinder-cwd-icon-directory{background-position:0 -50px}.elfinder-cwd-icon-application,.elfinder-cwd-icon-application:after{background-position:0 -150px}.elfinder-cwd-icon-text,.elfinder-cwd-icon-text:after{background-position:0 -1350px}.elfinder-cwd-icon-plain,.elfinder-cwd-icon-plain:after,.elfinder-cwd-icon-x-empty,.elfinder-cwd-icon-x-empty:after{background-position:0 -200px}.elfinder-cwd-icon-image,.elfinder-cwd-icon-image:after,.elfinder-cwd-icon-vnd-adobe-photoshop,.elfinder-cwd-icon-vnd-adobe-photoshop:after{background-position:0 -250px}.elfinder-cwd-icon-postscript,.elfinder-cwd-icon-postscript:after{background-position:0 -1550px}.elfinder-cwd-icon-audio,.elfinder-cwd-icon-audio:after{background-position:0 -300px}.elfinder-cwd-icon-dash-xml,.elfinder-cwd-icon-flash-video,.elfinder-cwd-icon-video,.elfinder-cwd-icon-video:after,.elfinder-cwd-icon-vnd-apple-mpegurl,.elfinder-cwd-icon-x-mpegurl{background-position:0 -350px}.elfinder-cwd-icon-rtf,.elfinder-cwd-icon-rtf:after,.elfinder-cwd-icon-rtfd,.elfinder-cwd-icon-rtfd:after{background-position:0 -400px}.elfinder-cwd-icon-pdf,.elfinder-cwd-icon-pdf:after{background-position:0 -450px}.elfinder-cwd-icon-ms-excel,.elfinder-cwd-icon-ms-excel:after,.elfinder-cwd-icon-vnd-ms-excel,.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-excel:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template:after{background-position:0 -1450px}.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template:after,.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet:after{background-position:0 -1700px}.elfinder-cwd-icon-vnd-ms-powerpoint,.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-powerpoint:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template:after{background-position:0 -1400px}.elfinder-cwd-icon-vnd-oasis-opendocument-presentation,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template:after,.elfinder-cwd-icon-vnd-oasis-opendocument-presentation:after{background-position:0 -1650px}.elfinder-cwd-icon-msword,.elfinder-cwd-icon-msword:after,.elfinder-cwd-icon-vnd-ms-word,.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12,.elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12:after,.elfinder-cwd-icon-vnd-ms-word:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document:after,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template,.elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template:after{background-position:0 -1500px}.elfinder-cwd-icon-vnd-oasis-opendocument-text,.elfinder-cwd-icon-vnd-oasis-opendocument-text-master,.elfinder-cwd-icon-vnd-oasis-opendocument-text-master:after,.elfinder-cwd-icon-vnd-oasis-opendocument-text-template,.elfinder-cwd-icon-vnd-oasis-opendocument-text-template:after,.elfinder-cwd-icon-vnd-oasis-opendocument-text-web,.elfinder-cwd-icon-vnd-oasis-opendocument-text-web:after,.elfinder-cwd-icon-vnd-oasis-opendocument-text:after{background-position:0 -1750px}.elfinder-cwd-icon-vnd-ms-office,.elfinder-cwd-icon-vnd-ms-office:after{background-position:0 -500px}.elfinder-cwd-icon-vnd-oasis-opendocument-chart,.elfinder-cwd-icon-vnd-oasis-opendocument-chart:after,.elfinder-cwd-icon-vnd-oasis-opendocument-database,.elfinder-cwd-icon-vnd-oasis-opendocument-database:after,.elfinder-cwd-icon-vnd-oasis-opendocument-formula,.elfinder-cwd-icon-vnd-oasis-opendocument-formula:after,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template:after,.elfinder-cwd-icon-vnd-oasis-opendocument-graphics:after,.elfinder-cwd-icon-vnd-oasis-opendocument-image,.elfinder-cwd-icon-vnd-oasis-opendocument-image:after,.elfinder-cwd-icon-vnd-openofficeorg-extension,.elfinder-cwd-icon-vnd-openofficeorg-extension:after{background-position:0 -1600px}.elfinder-cwd-icon-html,.elfinder-cwd-icon-html:after{background-position:0 -550px}.elfinder-cwd-icon-css,.elfinder-cwd-icon-css:after{background-position:0 -600px}.elfinder-cwd-icon-javascript,.elfinder-cwd-icon-javascript:after,.elfinder-cwd-icon-x-javascript,.elfinder-cwd-icon-x-javascript:after{background-position:0 -650px}.elfinder-cwd-icon-x-perl,.elfinder-cwd-icon-x-perl:after{background-position:0 -700px}.elfinder-cwd-icon-x-python,.elfinder-cwd-icon-x-python:after{background-position:0 -750px}.elfinder-cwd-icon-x-ruby,.elfinder-cwd-icon-x-ruby:after{background-position:0 -800px}.elfinder-cwd-icon-x-sh,.elfinder-cwd-icon-x-sh:after,.elfinder-cwd-icon-x-shellscript,.elfinder-cwd-icon-x-shellscript:after{background-position:0 -850px}.elfinder-cwd-icon-x-c,.elfinder-cwd-icon-x-c--,.elfinder-cwd-icon-x-c--:after,.elfinder-cwd-icon-x-c--hdr,.elfinder-cwd-icon-x-c--hdr:after,.elfinder-cwd-icon-x-c--src,.elfinder-cwd-icon-x-c--src:after,.elfinder-cwd-icon-x-c:after,.elfinder-cwd-icon-x-chdr,.elfinder-cwd-icon-x-chdr:after,.elfinder-cwd-icon-x-csrc,.elfinder-cwd-icon-x-csrc:after,.elfinder-cwd-icon-x-java,.elfinder-cwd-icon-x-java-source,.elfinder-cwd-icon-x-java-source:after,.elfinder-cwd-icon-x-java:after{background-position:0 -900px}.elfinder-cwd-icon-x-php,.elfinder-cwd-icon-x-php:after{background-position:0 -950px}.elfinder-cwd-icon-xml,.elfinder-cwd-icon-xml:after{background-position:0 -1000px}.elfinder-cwd-icon-x-7z-compressed,.elfinder-cwd-icon-x-7z-compressed:after,.elfinder-cwd-icon-x-xz,.elfinder-cwd-icon-x-xz:after,.elfinder-cwd-icon-x-zip,.elfinder-cwd-icon-x-zip:after,.elfinder-cwd-icon-zip,.elfinder-cwd-icon-zip:after{background-position:0 -1050px}.elfinder-cwd-icon-x-gzip,.elfinder-cwd-icon-x-gzip:after,.elfinder-cwd-icon-x-tar,.elfinder-cwd-icon-x-tar:after{background-position:0 -1100px}.elfinder-cwd-icon-x-bzip,.elfinder-cwd-icon-x-bzip2,.elfinder-cwd-icon-x-bzip2:after,.elfinder-cwd-icon-x-bzip:after{background-position:0 -1150px}.elfinder-cwd-icon-x-rar,.elfinder-cwd-icon-x-rar-compressed,.elfinder-cwd-icon-x-rar-compressed:after,.elfinder-cwd-icon-x-rar:after{background-position:0 -1200px}.elfinder-cwd-icon-x-shockwave-flash,.elfinder-cwd-icon-x-shockwave-flash:after{background-position:0 -1250px}.elfinder-cwd-icon-group{background-position:0 -1300px}.elfinder-cwd-filename input{width:100%;border:none;margin:0;padding:0}.elfinder-cwd-view-icons,.elfinder-cwd-view-icons input{text-align:center}.elfinder-cwd-view-icons textarea{width:100%;border:0 solid;margin:0;padding:0;text-align:center;overflow:hidden;resize:none}.elfinder-cwd-wrapper.elfinder-cwd-fixheader .elfinder-cwd::after,.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar select{display:none}.elfinder-cwd table{width:100%;border-collapse:separate;border:0 solid;margin:0 0 10px;border-spacing:0;box-sizing:padding-box;padding:2px;position:relative}.elfinder-cwd-wrapper-list.elfinder-cwd-fixheader{position:absolute;overflow:hidden}.elfinder-cwd-wrapper-list.elfinder-cwd-fixheader:before{content:'';position:absolute;width:100%;top:0;height:3px;background-color:#fff}.elfinder-droppable-active+.elfinder-cwd-wrapper-list.elfinder-cwd-fixheader:before{background-color:#8cafed}.elfinder .elfinder-workzone div.elfinder-cwd-fixheader table{table-layout:fixed}.elfinder-ltr .elfinder-cwd thead .elfinder-cwd-selectall{text-align:left;right:auto;left:0;padding-top:3px}.elfinder-rtl .elfinder-cwd thead .elfinder-cwd-selectall{text-align:right;right:0;left:auto;padding-top:3px}.elfinder-touch .elfinder-cwd thead .elfinder-cwd-selectall{padding-top:4px}.elfinder .elfinder-cwd table thead tr{border-left:0 solid;border-top:0 solid;border-right:0 solid}.elfinder .elfinder-cwd table thead td{padding:4px 14px}.elfinder-ltr .elfinder-cwd.elfinder-has-checkbox table thead td:first-child{padding:4px 14px 4px 22px}.elfinder-rtl .elfinder-cwd.elfinder-has-checkbox table thead td:first-child{padding:4px 22px 4px 14px}.elfinder-touch .elfinder-cwd table thead td,.elfinder-touch .elfinder-cwd.elfinder-has-checkbox table thead td:first-child{padding-top:8px;padding-bottom:8px}.elfinder .elfinder-cwd table thead td.ui-state-active{background:#ebf1f6;background:-moz-linear-gradient(top,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebf1f6),color-stop(50%,#abd3ee),color-stop(51%,#89c3eb),color-stop(100%,#d5ebfb));background:-webkit-linear-gradient(top,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);background:-o-linear-gradient(top,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);background:-ms-linear-gradient(top,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);background:linear-gradient(to bottom,#ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebf1f6', endColorstr='#d5ebfb', GradientType=0)}.elfinder .elfinder-cwd table td{padding:0 12px;white-space:pre;overflow:hidden;text-align:right;cursor:default;border:0 solid}.elfinder .elfinder-cwd table tbody td:first-child{position:relative}tr.elfinder-cwd-file td .elfinder-cwd-select{padding-top:3px}.elfinder-mobile tr.elfinder-cwd-file td .elfinder-cwd-select{width:40px}.elfinder-touch tr.elfinder-cwd-file td .elfinder-cwd-select{padding-top:10px}.elfinder-touch .elfinder-cwd tr td{padding:10px 12px}.elfinder-touch .elfinder-cwd tr.elfinder-cwd-file td{padding:13px 12px}.elfinder-ltr .elfinder-cwd table td{text-align:right}.elfinder-ltr .elfinder-cwd table td:first-child{text-align:left}.elfinder-rtl .elfinder-cwd table td{text-align:left}.elfinder-ltr .elfinder-info-tb tr td:first-child,.elfinder-rtl .elfinder-cwd table td:first-child{text-align:right}.elfinder-odd-row{background:#eee}.elfinder-cwd-view-list .elfinder-cwd-file-wrapper{width:97%;position:relative}.elfinder-ltr .elfinder-cwd-view-list.elfinder-has-checkbox .elfinder-cwd-file-wrapper{margin-left:8px}.elfinder-rtl .elfinder-cwd-view-list.elfinder-has-checkbox .elfinder-cwd-file-wrapper{margin-right:8px}.elfinder-cwd-view-list .elfinder-cwd-filename{padding-top:4px;padding-bottom:4px;display:inline-block}.elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-filename{padding-left:23px}.elfinder-rtl .elfinder-cwd-view-list .elfinder-cwd-filename{padding-right:23px}.elfinder-cwd-view-list .elfinder-lock,.elfinder-cwd-view-list .elfinder-perms,.elfinder-cwd-view-list .elfinder-symlink{margin-top:-6px;opacity:.6;filter:Alpha(Opacity=60)}.elfinder-cwd-view-list .elfinder-perms{bottom:-4px}.elfinder-cwd-view-list .elfinder-lock{top:0}.elfinder-cwd-view-list .elfinder-symlink{bottom:-4px}.elfinder-ltr .elfinder-cwd-view-list .elfinder-perms{left:8px}.elfinder-rtl .elfinder-cwd-view-list .elfinder-perms{right:-8px}.elfinder-ltr .elfinder-cwd-view-list .elfinder-lock{left:10px}.elfinder-rtl .elfinder-cwd-view-list .elfinder-lock{right:-10px}.elfinder-ltr .elfinder-cwd-view-list .elfinder-symlink{left:-7px}.elfinder-rtl .elfinder-cwd-view-list .elfinder-symlink{right:7px}.elfinder-cwd-view-list td .elfinder-cwd-icon{width:16px;height:16px;position:absolute;top:50%;margin-top:-8px;background-image:url(../img/icons-small.png)}.elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-icon{left:0}.elfinder-rtl .elfinder-cwd-view-list .elfinder-cwd-icon{right:0}.elfinder-cwd-view-list .elfinder-cwd-icon:after,.elfinder-cwd-view-list .elfinder-cwd-icon:before{content:none}.elfinder-cwd-view-list thead td .ui-resizable-handle{height:100%;top:6px}.elfinder-touch .elfinder-cwd-view-list thead td .ui-resizable-handle{top:-4px;margin:10px}.elfinder-cwd-view-list thead td .ui-resizable-e{right:-7px}.elfinder-cwd-view-list thead td .ui-resizable-w{left:-7px}.elfinder-touch .elfinder-cwd-view-list thead td .ui-resizable-e{right:-16px}.elfinder-touch .elfinder-cwd-view-list thead td .ui-resizable-w{left:-16px}.elfinder-cwd-wrapper-empty .elfinder-cwd-view-list.elfinder-cwd:after{margin-top:0}.elfinder-cwd-message-board{position:-webkit-sticky;position:sticky;width:100%;height:calc(100% - .01px);top:0;left:0;margin:0;padding:0;pointer-events:none;background-color:transparent}.elfinder-cwd-wrapper-trash .elfinder-cwd-message-board{background-image:url(../img/trashmesh.png)}.elfinder-cwd-message-board .elfinder-cwd-trash{position:absolute;bottom:0;font-size:30px;width:100%;text-align:right;display:none}.elfinder-rtl .elfinder-cwd-message-board .elfinder-cwd-trash{text-align:left}.elfinder-mobile .elfinder-cwd-message-board .elfinder-cwd-trash{font-size:20px}.elfinder-cwd-wrapper-trash .elfinder-cwd-message-board .elfinder-cwd-trash{display:block;opacity:.3}.elfinder-cwd-message-board .elfinder-cwd-expires{position:absolute;bottom:0;font-size:24px;width:100%;text-align:right;opacity:.25}.elfinder-rtl .elfinder-cwd-message-board .elfinder-cwd-expires{text-align:left}.elfinder-mobile .elfinder-cwd-message-board .elfinder-cwd-expires{font-size:20px}.std42-dialog{padding:0;position:absolute;left:auto;right:auto;box-sizing:border-box}.std42-dialog.elfinder-dialog-minimized{overFlow:hidden;position:relative;float:left;width:auto;cursor:pointer}.elfinder-rtl .std42-dialog.elfinder-dialog-minimized{float:right}.std42-dialog input{border:1px solid}.std42-dialog .ui-dialog-titlebar{border-left:0 solid transparent;border-top:0 solid transparent;border-right:0 solid transparent;font-weight:400;padding:.2em 1em}.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar{padding:0 .5em;height:20px}.elfinder-touch .std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar{padding:.3em .5em}.std42-dialog.ui-draggable-disabled .ui-dialog-titlebar{cursor:default}.std42-dialog .ui-dialog-titlebar .ui-widget-header{border:none;cursor:pointer}.std42-dialog .ui-dialog-titlebar span.elfinder-dialog-title{display:inherit;word-break:break-all}.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar span.elfinder-dialog-title{display:list-item;display:-moz-inline-box;white-space:nowrap;word-break:normal;overflow:hidden;word-wrap:normal;overflow-wrap:normal;max-width:-webkit-calc(100% - 24px);max-width:-moz-calc(100% - 24px);max-width:calc(100% - 24px)}.elfinder-touch .std42-dialog .ui-dialog-titlebar span.elfinder-dialog-title{padding-top:.15em}.elfinder-touch .std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar span.elfinder-dialog-title{max-width:-webkit-calc(100% - 36px);max-width:-moz-calc(100% - 36px);max-width:calc(100% - 36px)}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button{position:relative;float:left;top:10px;left:-10px;right:10px;width:20px;height:20px;padding:1px;margin:-10px 1px 0;background-color:transparent;background-image:none}.elfinder-touch .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button{-moz-transform:scale(1.2);zoom:1.2;padding-left:6px;padding-right:6px;height:24px}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button-right{float:right}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button.elfinder-titlebar-button-right{left:10px;right:-10px}.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon{width:17px;height:17px;border-width:1px;opacity:.7;filter:Alpha(Opacity=70);-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon{opacity:.5;filter:Alpha(Opacity=50)}.std42-dialog.elfinder-dialog-minimized .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon{opacity:1;filter:Alpha(Opacity=100)}.elfinder-spinner{width:14px;height:14px;background:url(../img/spinner-mini.gif) center center no-repeat;margin:0 5px;display:inline-block;vertical-align:middle}.elfinder-ltr .elfinder-info-tb span,.elfinder-ltr .elfinder-spinner,.elfinder-ltr .elfinder-spinner-text{float:left}.elfinder-rtl .elfinder-info-tb span,.elfinder-rtl .elfinder-spinner,.elfinder-rtl .elfinder-spinner-text{float:right}.elfinder-touch .std42-dialog.ui-dialog:not(ui-resizable-disabled) .ui-resizable-se{width:12px;height:12px;-moz-transform-origin:bottom right;-moz-transform:scale(1.5);zoom:1.5;right:-7px;bottom:-7px;margin:3px 7px 7px 3px;background-position:-64px -224px}.elfinder-rtl .elfinder-dialog .ui-dialog-titlebar{text-align:right}.std42-dialog .ui-dialog-content{padding:.3em .5em}.elfinder .std42-dialog .ui-dialog-content,.elfinder .std42-dialog .ui-dialog-content *{-webkit-user-select:auto;-moz-user-select:text;-khtml-user-select:text;user-select:text}.std42-dialog .ui-dialog-buttonpane{border:0 solid;margin:0;padding:.5em;text-align:right}.elfinder-rtl .std42-dialog .ui-dialog-buttonpane{text-align:left}.std42-dialog .ui-dialog-buttonpane button{margin:.2em 0 0 .4em;padding:.2em;outline:0 solid}.std42-dialog .ui-dialog-buttonpane button span{padding:2px 9px}.std42-dialog .ui-dialog-buttonpane button span.ui-icon{padding:2px}.elfinder-dialog .ui-resizable-e,.elfinder-dialog .ui-resizable-s{width:0;height:0}.std42-dialog .ui-button input{cursor:pointer}.std42-dialog select{border:1px solid #ccc}.elfinder-dialog-icon{position:absolute;width:32px;height:32px;left:10px;top:50%;margin-top:-15px;background:url(../img/dialogs.png) 0 0 no-repeat}.elfinder-rtl .elfinder-dialog-icon{left:auto;right:10px}.elfinder-dialog-confirm .ui-dialog-content,.elfinder-dialog-error .ui-dialog-content{padding-left:56px;min-height:35px}.elfinder-rtl .elfinder-dialog-confirm .ui-dialog-content,.elfinder-rtl .elfinder-dialog-error .ui-dialog-content{padding-left:0;padding-right:56px}.elfinder-dialog-error .elfinder-err-var{word-break:break-all}.elfinder-dialog-notify{top:36px;width:280px}.elfinder-ltr .elfinder-dialog-notify{right:12px}.elfinder-rtl .elfinder-dialog-notify{left:12px}.elfinder-dialog-notify .ui-dialog-titlebar{height:5px;overflow:hidden}.elfinder.elfinder-touch>.elfinder-dialog-notify .ui-dialog-titlebar{height:10px}.elfinder>.elfinder-dialog-notify .ui-dialog-titlebar .elfinder-titlebar-button{top:2px;left:-18px;right:18px}.elfinder.elfinder-touch>.elfinder-dialog-notify .ui-dialog-titlebar .elfinder-titlebar-button{top:4px}.elfinder>.elfinder-dialog-notify .ui-dialog-titlebar .elfinder-titlebar-button.elfinder-titlebar-button-right{left:18px;right:-18px}.ui-dialog-titlebar .elfinder-ui-progressbar{position:absolute;top:17px}.elfinder-touch .ui-dialog-titlebar .elfinder-ui-progressbar{top:26px}.elfinder-dialog-notify.elfinder-titlebar-button-hide .ui-dialog-titlebar-close,.elfinder-rm-title+br{display:none}.elfinder-dialog-notify.elfinder-dialog-minimized.elfinder-titlebar-button-hide .ui-dialog-titlebar span.elfinder-dialog-title{max-width:initial}.elfinder-dialog-notify .ui-dialog-content{padding:0}.elfinder-notify{border-bottom:1px solid #ccc;position:relative;padding:.5em;text-align:center;overflow:hidden}.elfinder-ltr .elfinder-notify{padding-left:36px}.elfinder-rtl .elfinder-notify{padding-right:36px}.elfinder-notify:last-child{border:0 solid}.elfinder-notify-progressbar{width:180px;height:8px;border:1px solid #aaa;background:#f5f5f5;margin:5px auto;overflow:hidden}.elfinder-notify-progress{width:100%;height:8px;background:url(../img/progress.gif) center center repeat-x}.elfinder-notify-progress,.elfinder-notify-progressbar{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.elfinder-notify-cancel{position:relative;top:-18px;right:calc(-50% + 15px)}.elfinder-notify-cancel .ui-icon-close{width:18px;height:18px;border-radius:9px;border:none;background-position:-80px -128px;cursor:pointer}.elfinder-dialog-icon-file,.elfinder-dialog-icon-open,.elfinder-dialog-icon-readdir,.elfinder-dialog-icon-reload{background-position:0 -225px}.elfinder-dialog-icon-mkdir{background-position:0 -64px}.elfinder-dialog-icon-mkfile{background-position:0 -96px}.elfinder-dialog-icon-copy,.elfinder-dialog-icon-move,.elfinder-dialog-icon-prepare{background-position:0 -128px}.elfinder-dialog-icon-chunkmerge,.elfinder-dialog-icon-upload{background-position:0 -160px}.elfinder-dialog-icon-rm{background-position:0 -192px}.elfinder-dialog-icon-download{background-position:0 -260px}.elfinder-dialog-icon-save{background-position:0 -295px}.elfinder-dialog-icon-chkcontent,.elfinder-dialog-icon-rename{background-position:0 -330px}.elfinder-dialog-icon-archive,.elfinder-dialog-icon-extract,.elfinder-dialog-icon-zipdl{background-position:0 -365px}.elfinder-dialog-icon-search{background-position:0 -402px}.elfinder-dialog-icon-chmod,.elfinder-dialog-icon-dim,.elfinder-dialog-icon-loadimg,.elfinder-dialog-icon-netmount,.elfinder-dialog-icon-netunmount,.elfinder-dialog-icon-preupload,.elfinder-dialog-icon-resize,.elfinder-dialog-icon-url{background-position:0 -434px}.elfinder-dialog-confirm-applyall,.elfinder-dialog-confirm-encoding{padding:0 1em;margin:0}.elfinder-ltr .elfinder-dialog-confirm-applyall,.elfinder-ltr .elfinder-dialog-confirm-encoding{text-align:left}.elfinder-rtl .elfinder-dialog-confirm-applyall,.elfinder-rtl .elfinder-dialog-confirm-encoding{text-align:right}.elfinder-dialog-confirm .elfinder-dialog-icon{background-position:0 -32px}.elfinder-dialog-confirm .ui-dialog-buttonset{width:auto}.elfinder-info-title .elfinder-cwd-icon{float:left;width:48px;height:48px;margin-right:1em}.elfinder-rtl .elfinder-info-title .elfinder-cwd-icon,.elfinder-rtl .elfinder-rm-title .elfinder-cwd-icon{float:right;margin-right:0;margin-left:1em}.elfinder-info-title strong{display:block;padding:.3em 0 .5em}.elfinder-info-tb{min-width:200px;border:0 solid;margin:1em .2em;width:100%}.elfinder-info-tb td{white-space:pre-wrap;padding:2px}.elfinder-info-tb td.elfinder-info-label{white-space:nowrap}.elfinder-info-tb td.elfinder-info-hash{display:inline-block;word-break:break-all;max-width:32ch}.elfinder-rtl .elfinder-info-tb tr td:first-child{text-align:left}.elfinder-info-tb a{outline:none;text-decoration:underline}.elfinder-info-tb a:hover{text-decoration:none}.elfinder-netmount-tb{margin:0 auto}.elfinder-netmount-tb .elfinder-button-icon,.elfinder-netmount-tb select{cursor:pointer}button.elfinder-info-button{margin:-3.5px 0;cursor:pointer}.elfinder-upload-dropbox{display:table-cell;text-align:center;vertical-align:middle;padding:.5em;border:3px dashed #aaa;width:9999px;height:80px;overflow:hidden;word-break:keep-all}.elfinder-upload-dropbox.ui-state-hover{background:#dfdfdf;border:3px dashed #555}.elfinder-upload-dialog-or{margin:.3em 0;text-align:center}.elfinder-upload-dialog-wrapper{text-align:center}.elfinder-upload-dialog-wrapper .ui-button{position:relative;overflow:hidden}.elfinder-upload-dialog-wrapper .ui-button form{position:absolute;right:0;top:0;width:100%;opacity:0;filter:Alpha(Opacity=0)}.elfinder-upload-dialog-wrapper .ui-button form input{padding:50px 0 0;font-size:3em;width:100%}.dialogelfinder .dialogelfinder-drag{border-left:0 solid;border-top:0 solid;border-right:0 solid;font-weight:400;padding:2px 12px;cursor:move;position:relative;text-align:left}.elfinder-rtl .dialogelfinder-drag{text-align:right}.dialogelfinder-drag-close{position:absolute;top:50%;margin-top:-8px}.elfinder-ltr .dialogelfinder-drag-close{right:12px}.elfinder-rtl .dialogelfinder-drag-close{left:12px}.elfinder-rm-title{margin-bottom:.5ex}.elfinder-rm-title .elfinder-cwd-icon{float:left;width:48px;height:48px;margin-right:1em}.elfinder-rm-title strong{display:block;white-space:pre-wrap;word-break:normal;overflow:hidden;text-overflow:ellipsis}.dialogelfinder .dialogelfinder-drag,.elfinder-info-tb,.elfinder-place-drag .elfinder-navbar-dir,.elfinder-quicklook-preview-text-wrapper{font-size:.9em}.std42-dialog .ui-dialog-titlebar{font-size:.82em}.elfinder-button-search input{font-size:.8em}.elfinder-toast,.std42-dialog .ui-dialog-buttonpane{font-size:.76em}.elfinder .elfinder-navbar,.elfinder-button-menu-item,.elfinder-contextmenu .elfinder-contextmenu-item span,.elfinder-quicklook-info-data,.std42-dialog .ui-dialog-content{font-size:.72em}.elfinder-cwd-view-icons .elfinder-cwd-filename,.elfinder-cwd-view-list td,.elfinder-quicklook-title,.elfinder-statusbar div{font-size:.7em}.elfinder-upload-dialog-or,.elfinder-upload-dropbox{font-size:1.2em}.elfinder-font-mono{font-family:"Ricty Diminished","Myrica M",Consolas,"Courier New",Courier,Monaco,monospace;font-size:1.1em}.elfinder-drag-num{font-size:12px}.elfinder-quicklook-title{font-weight:400}.elfinder .elfinder-navbar{width:230px;padding:3px 5px;background-image:none;border-top:0 solid;border-bottom:0 solid;overflow:auto;position:relative}.elfinder .elfinder-navdock{box-sizing:border-box;width:230px;height:auto;position:absolute;bottom:0;overflow:auto}.elfinder-navdock .ui-resizable-n{top:0;height:20px}.elfinder-ltr .elfinder-navbar{float:left;border-left:0 solid}.elfinder-rtl .elfinder-navbar{float:right;border-right:0 solid}.elfinder-ltr .ui-resizable-e,.elfinder-touch .elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right .ui-icon{margin-left:10px}.elfinder-tree{display:table;width:100%;margin:0 0 .5em;-webkit-tap-highlight-color:rgba(0,0,0,0)}.elfinder-navbar-dir{position:relative;display:block;white-space:nowrap;padding:3px 12px;margin:0;outline:0 solid;border:1px solid transparent;cursor:default}.elfinder-touch .elfinder-navbar-dir{padding:12px}.elfinder-ltr .elfinder-navbar-dir{padding-left:35px}.elfinder-rtl .elfinder-navbar-dir{padding-right:35px}.elfinder-navbar-arrow,.elfinder-navbar-icon{position:absolute;top:50%;margin-top:-8px;background-repeat:no-repeat}.elfinder-navbar-arrow{display:none;width:12px;height:14px;background-image:url(../img/arrows-normal.png)}.elfinder-ltr .elfinder-navbar-arrow{left:0}.elfinder-rtl .elfinder-navbar-arrow{right:0}.elfinder-touch .elfinder-navbar-arrow{-moz-transform-origin:top left;-moz-transform:scale(1.4);zoom:1.4;margin-bottom:7px}.elfinder-ltr.elfinder-touch .elfinder-navbar-arrow{left:-3px;margin-right:20px}.elfinder-rtl.elfinder-touch .elfinder-navbar-arrow{right:-3px;margin-left:20px}.ui-state-active .elfinder-navbar-arrow{background-image:url(../img/arrows-active.png)}.elfinder-navbar-collapsed .elfinder-navbar-arrow{display:block}.elfinder-subtree-chksubdir .elfinder-navbar-arrow{opacity:.25;filter:Alpha(Opacity=25)}.elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow{background-position:0 4px}.elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow{background-position:0 -10px}.elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow,.elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow{background-position:0 -21px}.elfinder-navbar-icon{width:16px;height:16px;background-image:url(../img/toolbar.png);background-position:0 -16px}.elfinder-ltr .elfinder-navbar-icon{left:14px}.elfinder-rtl .elfinder-navbar-icon{right:14px}.elfinder-places .elfinder-navbar-root .elfinder-navbar-icon{background-position:0 -704px}.elfinder-tree .elfinder-navbar-root-box .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-dropbox .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-ftp .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-googledrive .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-local .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-network .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-onedrive .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-sql .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-trash .elfinder-navbar-icon,.elfinder-tree .elfinder-navbar-root-zip .elfinder-navbar-icon{background-position:0 0;background-size:contain}.elfinder-tree .elfinder-navbar-root-local .elfinder-navbar-icon{background-image:url(../img/volume_icon_local.svg);background-image:url(../img/volume_icon_local.png) \9}.elfinder-tree .elfinder-navbar-root-trash .elfinder-navbar-icon{background-image:url(../img/volume_icon_trash.svg);background-image:url(../img/volume_icon_trash.png) \9}.elfinder-tree .elfinder-navbar-root-ftp .elfinder-navbar-icon{background-image:url(../img/volume_icon_ftp.svg);background-image:url(../img/volume_icon_ftp.png) \9}.elfinder-tree .elfinder-navbar-root-sql .elfinder-navbar-icon{background-image:url(../img/volume_icon_sql.svg);background-image:url(../img/volume_icon_sql.png) \9}.elfinder-tree .elfinder-navbar-root-dropbox .elfinder-navbar-icon{background-image:url(../img/volume_icon_dropbox.svg);background-image:url(../img/volume_icon_dropbox.png) \9}.elfinder-tree .elfinder-navbar-root-googledrive .elfinder-navbar-icon{background-image:url(../img/volume_icon_googledrive.svg);background-image:url(../img/volume_icon_googledrive.png) \9}.elfinder-tree .elfinder-navbar-root-onedrive .elfinder-navbar-icon{background-image:url(../img/volume_icon_onedrive.svg);background-image:url(../img/volume_icon_onedrive.png) \9}.elfinder-tree .elfinder-navbar-root-box .elfinder-navbar-icon{background-image:url(../img/volume_icon_box.svg);background-image:url(../img/volume_icon_box.png) \9}.elfinder-tree .elfinder-navbar-root-zip .elfinder-navbar-icon{background-image:url(../img/volume_icon_zip.svg);background-image:url(../img/volume_icon_zip.png) \9}.elfinder-tree .elfinder-navbar-root-network .elfinder-navbar-icon{background-image:url(../img/volume_icon_network.svg);background-image:url(../img/volume_icon_network.png) \9}.elfinder-droppable-active .elfinder-navbar-icon,.ui-state-active .elfinder-navbar-icon,.ui-state-hover .elfinder-navbar-icon{background-position:0 -32px}.elfinder-ltr .elfinder-navbar-subtree{margin-left:12px}.elfinder-rtl .elfinder-navbar-subtree{margin-right:12px}.elfinder-tree .elfinder-spinner{position:absolute;top:50%;margin:-7px 0 0}.elfinder-ltr .elfinder-tree .elfinder-spinner{left:0;margin-left:-2px}.elfinder-rtl .elfinder-tree .elfinder-spinner{right:0;margin-right:-2px}.elfinder-navbar .elfinder-lock,.elfinder-navbar .elfinder-perms,.elfinder-navbar .elfinder-symlink{opacity:.6;filter:Alpha(Opacity=60)}.elfinder-navbar .elfinder-perms{bottom:-1px;margin-top:-8px}.elfinder-navbar .elfinder-lock{top:-2px}.elfinder-ltr .elfinder-navbar .elfinder-perms{left:20px;transform:scale(.8)}.elfinder-rtl .elfinder-navbar .elfinder-perms{right:20px;transform:scale(.8)}.elfinder-ltr .elfinder-navbar .elfinder-lock{left:20px;transform:scale(.8)}.elfinder-rtl .elfinder-navbar .elfinder-lock{right:20px;transform:scale(.8)}.elfinder-ltr .elfinder-navbar .elfinder-symlink{left:8px;transform:scale(.8)}.elfinder-rtl .elfinder-navbar .elfinder-symlink{right:8px;transform:scale(.8)}.elfinder-navbar input{width:100%;border:0 solid;margin:0;padding:0}.elfinder-navbar .ui-resizable-handle{width:12px;background:url(../img/resize.png) center center no-repeat}.elfinder-nav-handle-icon{position:absolute;top:50%;margin:-8px 2px 0;opacity:.5;filter:Alpha(Opacity=50)}.elfinder-navbar-pager{width:100%;box-sizing:border-box;padding-top:3px;padding-bottom:3px}.elfinder-touch .elfinder-navbar-pager{padding-top:10px;padding-bottom:10px}.elfinder-places{border:none;margin:0;padding:0}.elfinder-navbar-swipe-handle{position:absolute;top:0;height:100%;width:50px;pointer-events:none}.elfinder-ltr .elfinder-navbar-swipe-handle{left:0;background:linear-gradient(to right,#dde4eb 0,rgba(221,228,235,.8) 5px,rgba(216,223,230,.3) 8px,rgba(0,0,0,.1) 95%,rgba(0,0,0,0) 100%)}.elfinder-rtl .elfinder-navbar-swipe-handle{right:0;background:linear-gradient(to left,#dde4eb 0,rgba(221,228,235,.8) 5px,rgba(216,223,230,.3) 8px,rgba(0,0,0,.1) 95%,rgba(0,0,0,0) 100%)}.elfinder-navbar-root .elfinder-places-root-icon{position:absolute;top:50%;margin-top:-9px;cursor:pointer}.elfinder-ltr .elfinder-places-root-icon{right:10px}.elfinder-rtl .elfinder-places-root-icon{left:10px}.elfinder-navbar-expanded .elfinder-places-root-icon{display:block}.elfinder-place-drag{font-size:.8em}.elfinder-quicklook{position:absolute;background:url(../img/quicklook-bg.png);overflow:hidden;-moz-border-radius:7px;-webkit-border-radius:7px;border-radius:7px;padding:20px 0 40px}.elfinder-navdock .elfinder-quicklook{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;font-size:90%;overflow:auto}.elfinder-quicklook.elfinder-touch{padding:30px 0 40px}.elfinder-quicklook .ui-resizable-se{width:14px;height:14px;right:5px;bottom:3px;background:url(../img/toolbar.png) 0 -496px no-repeat}.elfinder-quicklook.elfinder-touch .ui-resizable-se{-moz-transform-origin:bottom right;-moz-transform:scale(1.5);zoom:1.5}.elfinder-quicklook.elfinder-quicklook-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;margin:0;box-sizing:border-box;width:100%;height:100%;object-fit:contain;border-radius:0;-moz-border-radius:0;-webkit-border-radius:0;-webkit-background-clip:padding-box;padding:0;background:#000;display:block}.elfinder-quicklook-fullscreen .elfinder-quicklook-titlebar,.elfinder-quicklook-fullscreen.elfinder-quicklook .ui-resizable-handle{display:none}.elfinder-quicklook-fullscreen .elfinder-quicklook-preview{border:0 solid}.elfinder-quicklook-cover,.elfinder-quicklook-titlebar{width:100%;height:100%;top:0;left:0;position:absolute}.elfinder-quicklook-cover.elfinder-quicklook-coverbg{background-color:#fff;opacity:.000001;filter:Alpha(Opacity=.0001)}.elfinder-quicklook-titlebar{text-align:center;background:#777;height:20px;-moz-border-radius-topleft:7px;-webkit-border-top-left-radius:7px;border-top-left-radius:7px;-moz-border-radius-topright:7px;-webkit-border-top-right-radius:7px;border-top-right-radius:7px;border:none;line-height:1.2}.elfinder-navdock .elfinder-quicklook-titlebar{-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;cursor:default}.elfinder-touch .elfinder-quicklook-titlebar{height:30px}.elfinder-quicklook-title{display:inline-block;white-space:nowrap;overflow:hidden}.elfinder-touch .elfinder-quicklook-title{padding:8px 0}.elfinder-quicklook-titlebar-icon{position:absolute;left:4px;top:50%;margin-top:-8px;height:16px;border:none}.elfinder-touch .elfinder-quicklook-titlebar-icon{height:22px}.elfinder-quicklook-titlebar-icon .ui-icon{position:relative;margin:-9px 3px 0 0;cursor:pointer;border-radius:10px;border:1px solid;opacity:.7;filter:Alpha(Opacity=70)}.elfinder-quicklook-titlebar-icon .ui-icon.ui-icon-closethick{padding-left:1px}.elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon{opacity:.6;filter:Alpha(Opacity=60)}.elfinder-touch .elfinder-quicklook-titlebar-icon .ui-icon{margin-top:-5px}.elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right{left:auto;right:4px;direction:rtl}.elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right .ui-icon{margin:-9px 0 0 3px}.elfinder-touch .elfinder-quicklook-titlebar .ui-icon{-moz-transform-origin:center center;-moz-transform:scale(1.2);zoom:1.2}.elfinder-touch .elfinder-quicklook-titlebar-icon .ui-icon{margin-right:10px}.elfinder-quicklook-preview{overflow:hidden;position:relative;border:0 solid;border-left:1px solid transparent;border-right:1px solid transparent;height:100%}.elfinder-navdock .elfinder-quicklook-preview{border-left:0;border-right:0}.elfinder-quicklook-preview.elfinder-overflow-auto{overflow:auto;-webkit-overflow-scrolling:touch}.elfinder-quicklook-info-wrapper{display:table;position:absolute;width:100%;height:100%;height:calc(100% - 80px);left:0;top:20px}.elfinder-navdock .elfinder-quicklook-info-wrapper{height:calc(100% - 20px)}.elfinder-quicklook-info{display:table-cell;vertical-align:middle}.elfinder-ltr .elfinder-quicklook-info{padding:0 12px 0 112px}.elfinder-rtl .elfinder-quicklook-info{padding:0 112px 0 12px}.elfinder-ltr .elfinder-navdock .elfinder-quicklook-info{padding:0 0 0 80px}.elfinder-rtl .elfinder-navdock .elfinder-quicklook-info{padding:0 80px 0 0}.elfinder-quicklook-info .elfinder-quicklook-info-data:first-child{color:#fff;font-weight:700;padding-bottom:.5em}.elfinder-quicklook-info-data{clear:both;padding-bottom:.2em;color:#fff}.elfinder-quicklook-info-progress{width:0;height:4px;border-radius:2px}.elfinder-quicklook .elfinder-cwd-icon{position:absolute;left:32px;top:50%;margin-top:-20px}.elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon{left:16px}.elfinder-rtl .elfinder-quicklook .elfinder-cwd-icon{left:auto;right:32px}.elfinder-rtl .elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon{right:6px}.elfinder-quicklook .elfinder-cwd-icon:before{top:-10px}.elfinder-ltr .elfinder-quicklook .elfinder-cwd-icon:before{left:-20px}.elfinder-ltr .elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon:before{left:-14px}.elfinder-ltr .elfinder-quicklook .elfinder-cwd-icon:after{left:-42px}.elfinder-ltr .elfinder-navdock .elfinder-quicklook .elfinder-cwd-icon:after{left:-12px}.elfinder-rtl .elfinder-quicklook .elfinder-cwd-icon:before{left:auto;right:40px}.elfinder-rtl .elfinder-quicklook .elfinder-cwd-icon:after{left:auto;right:42px}.elfinder-quicklook-preview>div>canvas,.elfinder-quicklook-preview>img{display:block;margin:auto}.elfinder-quicklook-navbar{position:absolute;left:50%;bottom:4px;width:140px;height:32px;padding:0;margin-left:-70px;border:1px solid transparent;border-radius:19px;-moz-border-radius:19px;-webkit-border-radius:19px}.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar{width:188px;margin-left:-94px;padding:5px;border:1px solid #eee;background:#000;opacity:.4;filter:Alpha(Opacity=40)}.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar-icon-close,.elfinder-quicklook-fullscreen .elfinder-quicklook-navbar-separator{display:inline}.elfinder-quicklook-navbar-icon{width:32px;height:32px;margin:0 7px;float:left;background:url(../img/quicklook-icons.png) 0 0 no-repeat}.elfinder-quicklook-navbar-icon-fullscreen{background-position:0 -64px}.elfinder-quicklook-navbar-icon-fullscreen-off{background-position:0 -96px}.elfinder-quicklook-navbar-icon-prev{background-position:0 0}.elfinder-quicklook-navbar-icon-next{background-position:0 -32px}.elfinder-quicklook-navbar-icon-close{background-position:0 -128px;display:none}.elfinder-quicklook-navbar-separator{width:1px;height:32px;float:left;border-left:1px solid #fff;display:none}.elfinder-quicklook-encoding{height:40px}.elfinder-quicklook-encoding>select{color:#fff;background:#000;border:0;font-size:12px;max-width:100px;display:inline-block;position:relative;top:6px;left:5px}.elfinder-navdock .elfinder-quicklook .elfinder-quicklook-encoding,.elfinder-statusbar:after,.elfinder-statusbar:before{display:none}.elfinder-quicklook-preview-archive-wrapper,.elfinder-quicklook-preview-text-wrapper{width:100%;height:100%;background:#fff;color:#222;overflow:auto;-webkit-overflow-scrolling:touch}.elfinder-quicklook-preview-archive-wrapper{font-size:90%}.elfinder-quicklook-preview-archive-wrapper strong{padding:0 5px}pre.elfinder-quicklook-preview-text,pre.elfinder-quicklook-preview-text.prettyprint{width:auto;height:auto;margin:0;padding:3px 9px;border:none;overflow:visible;-o-tab-size:4;-moz-tab-size:4;tab-size:4}.elfinder-quicklook-preview-charsleft hr{border:none;border-top:dashed 1px}.elfinder-quicklook-preview-charsleft span{font-size:90%;font-style:italic;cursor:pointer}.elfinder-quicklook-preview-html,.elfinder-quicklook-preview-iframe,.elfinder-quicklook-preview-pdf{width:100%;height:100%;background:#fff;margin:0;border:none;display:block}.elfinder-quicklook-preview-flash{width:100%;height:100%}.elfinder-quicklook-preview-audio{width:100%;position:absolute;bottom:0;left:0}embed.elfinder-quicklook-preview-audio{height:30px;background:0 0}.elfinder-quicklook-preview-video{width:100%;height:100%}.elfinder-quicklook-preview .vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:12pt;padding:0;color:#fff}.elfinder .elfinder-quicklook .elfinder-quicklook-info *,.elfinder .elfinder-quicklook .elfinder-quicklook-preview *{-webkit-user-select:auto;-moz-user-select:text;-khtml-user-select:text;user-select:text}.elfinder-statusbar{display:flex;justify-content:space-between;cursor:default;text-align:center;font-weight:400;padding:.2em .5em;border-right:0 solid transparent;border-bottom:0 solid transparent;border-left:0 solid transparent}.elfinder-path,.elfinder-statusbar span{overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.elfinder-statusbar span{vertical-align:bottom}.elfinder-statusbar span.elfinder-path-other{flex-shrink:0;text-overflow:clip;-o-text-overflow:clip}.elfinder-statusbar span.ui-state-active,.elfinder-statusbar span.ui-state-hover{border:none}.elfinder-statusbar span.elfinder-path-cwd{cursor:default}.elfinder-path{display:flex;order:1;flex-grow:1;cursor:pointer;white-space:nowrap;max-width:30%\9}.elfinder-ltr .elfinder-path{text-align:left;float:left\9}.elfinder-rtl .elfinder-path{text-align:right;float:right\9}.elfinder-workzone-path{position:relative}.elfinder-workzone-path .elfinder-path{position:relative;font-size:.75em;font-weight:400;float:none;max-width:none;overflow:hidden;overflow-x:hidden;text-overflow:initial;-o-text-overflow:initial}.elfinder-mobile .elfinder-workzone-path .elfinder-path{overflow:auto;overflow-x:scroll}.elfinder-ltr .elfinder-workzone-path .elfinder-path{margin-left:24px}.elfinder-rtl .elfinder-workzone-path .elfinder-path{margin-right:24px}.elfinder-workzone-path .elfinder-path span{display:inline-block;padding:5px 3px}.elfinder-workzone-path .elfinder-path span.elfinder-path-cwd{font-weight:700}.elfinder-workzone-path .elfinder-path span.ui-state-active,.elfinder-workzone-path .elfinder-path span.ui-state-hover{border:none}.elfinder-workzone-path .elfinder-path-roots{position:absolute;top:0;width:24px;height:20px;padding:2px;border:none;overflow:hidden}.elfinder-ltr .elfinder-workzone-path .elfinder-path-roots{left:0}.elfinder-rtl .elfinder-workzone-path .elfinder-path-roots{right:0}.elfinder-stat-size{order:3;flex-grow:1;overflow:hidden;white-space:nowrap}.elfinder-ltr .elfinder-stat-size{text-align:right;float:right\9}.elfinder-rtl .elfinder-stat-size{text-align:left;float:left\9}.elfinder-stat-selected{order:2;margin:0 .5em;white-space:nowrap;overflow:hidden}.elfinder .elfinder-toast{position:absolute;top:12px;right:12px;max-width:90%;cursor:default}.elfinder .elfinder-toast>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:8px 16px 8px 50px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.9;filter:alpha(opacity=90);background-color:#030303;text-align:center}.elfinder .elfinder-toast>.toast-info{background-color:#2f96b4;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}.elfinder .elfinder-toast>.toast-error{background-color:#bd362f;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}.elfinder .elfinder-toast>.toast-success{background-color:#51a351;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}.elfinder .elfinder-toast>.toast-warning{background-color:#f89406;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}.elfinder .elfinder-toast>div button.ui-button{background-image:none;margin-top:8px;padding:.5em .8em}.elfinder .elfinder-toast>.toast-success button.ui-button{background-color:green;color:#fff}.elfinder .elfinder-toast>.toast-success button.ui-button.ui-state-hover{background-color:#add6ad;color:#254b25}.elfinder .elfinder-toast>.toast-info button.ui-button{background-color:#046580;color:#fff}.elfinder .elfinder-toast>.toast-info button.ui-button.ui-state-hover{background-color:#7dc6db;color:#046580}.elfinder .elfinder-toast>.toast-warning button.ui-button{background-color:#dd8c1a;color:#fff}.elfinder .elfinder-toast>.toast-warning button.ui-button.ui-state-hover{background-color:#e7ae5e;color:#422a07}.elfinder-toolbar{padding:4px 0 3px;border-left:0 solid transparent;border-top:0 solid transparent;border-right:0 solid transparent;max-height:50%;overflow-y:auto}.elfinder-buttonset{margin:1px 4px;float:left;background:0 0;padding:0;overflow:hidden}.elfinder .elfinder-button{min-width:16px;height:16px;margin:0;padding:4px;float:left;overflow:hidden;position:relative;border:0 solid;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;line-height:1;cursor:default}.elfinder-rtl .elfinder-button{float:right}.elfinder-touch .elfinder-button{min-width:20px;height:20px}.elfinder .ui-icon-search{cursor:pointer}.elfinder-toolbar-button-separator{float:left;padding:0;height:24px;border-top:0 solid;border-right:0 solid;border-bottom:0 solid;width:0}.elfinder-rtl .elfinder-toolbar-button-separator{float:right}.elfinder-touch .elfinder-toolbar-button-separator{height:28px}.elfinder .elfinder-button.ui-state-disabled{opacity:1;filter:Alpha(Opacity=100)}.elfinder .elfinder-button.ui-state-disabled .elfinder-button-icon,.elfinder .elfinder-button.ui-state-disabled .elfinder-button-text{opacity:.4;filter:Alpha(Opacity=40)}.elfinder-rtl .elfinder-buttonset{float:right}.elfinder-button-icon{width:16px;height:16px;display:inline-block;background:url(../img/toolbar.png) no-repeat}.elfinder-button-text{position:relative;display:inline-block;top:-4px;margin:0 2px;font-size:12px}.elfinder-touch .elfinder-button-icon{transform:scale(1.25);transform-origin:top left}.elfinder-rtl.elfinder-touch .elfinder-button-icon{transform-origin:top right}.elfinder-touch .elfinder-button-text{transform:translate(3px,3px);top:-5px}.elfinder-rtl.elfinder-touch .elfinder-button-text{transform:translate(-3px,3px)}.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-extra-icon{transform:scale(2);transform-origin:12px 8px}.elfinder-rtl.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-extra-icon{transform-origin:4px 8px}.elfinder-button-icon-home{background-position:0 0}.elfinder-button-icon-back{background-position:0 -112px}.elfinder-button-icon-forward{background-position:0 -128px}.elfinder-button-icon-up{background-position:0 -144px}.elfinder-button-icon-dir{background-position:0 -16px}.elfinder-button-icon-opendir{background-position:0 -32px}.elfinder-button-icon-reload{background-position:0 -160px}.elfinder-button-icon-open{background-position:0 -176px}.elfinder-button-icon-mkdir{background-position:0 -192px}.elfinder-button-icon-mkfile{background-position:0 -208px}.elfinder-button-icon-rm{background-position:0 -832px}.elfinder-button-icon-trash{background-position:0 -224px}.elfinder-button-icon-restore{background-position:0 -816px}.elfinder-button-icon-copy{background-position:0 -240px}.elfinder-button-icon-cut{background-position:0 -256px}.elfinder-button-icon-paste{background-position:0 -272px}.elfinder-button-icon-getfile{background-position:0 -288px}.elfinder-button-icon-duplicate{background-position:0 -304px}.elfinder-button-icon-rename{background-position:0 -320px}.elfinder-button-icon-edit{background-position:0 -336px}.elfinder-button-icon-quicklook{background-position:0 -352px}.elfinder-button-icon-upload{background-position:0 -368px}.elfinder-button-icon-download{background-position:0 -384px}.elfinder-button-icon-info{background-position:0 -400px}.elfinder-button-icon-extract{background-position:0 -416px}.elfinder-button-icon-archive{background-position:0 -432px}.elfinder-button-icon-view{background-position:0 -448px}.elfinder-button-icon-view-list{background-position:0 -464px}.elfinder-button-icon-help{background-position:0 -480px}.elfinder-button-icon-resize{background-position:0 -512px}.elfinder-button-icon-link{background-position:0 -528px}.elfinder-button-icon-search{background-position:0 -561px}.elfinder-button-icon-sort{background-position:0 -577px}.elfinder-button-icon-rotate-r{background-position:0 -625px}.elfinder-button-icon-rotate-l{background-position:0 -641px}.elfinder-button-icon-netmount{background-position:0 -688px}.elfinder-button-icon-netunmount{background-position:0 -96px}.elfinder-button-icon-places{background-position:0 -704px}.elfinder-button-icon-chmod{background-position:0 -48px}.elfinder-button-icon-accept{background-position:0 -736px}.elfinder-button-icon-menu{background-position:0 -752px}.elfinder-button-icon-colwidth{background-position:0 -768px}.elfinder-button-icon-fullscreen{background-position:0 -784px}.elfinder-button-icon-unfullscreen{background-position:0 -800px}.elfinder-button-icon-empty{background-position:0 -848px}.elfinder-button-icon-undo{background-position:0 -864px}.elfinder-button-icon-redo{background-position:0 -880px}.elfinder-button-icon-preference{background-position:0 -896px}.elfinder-button-icon-mkdirin{background-position:0 -912px}.elfinder-button-icon-selectall{background-position:0 -928px}.elfinder-button-icon-selectnone{background-position:0 -944px}.elfinder-button-icon-selectinvert{background-position:0 -960px}.elfinder-button-icon-opennew{background-position:0 -976px}.elfinder-button-icon-hide{background-position:0 -992px}.elfinder-button-icon-text{background-position:0 -1008px}.elfinder-rtl .elfinder-button-icon-back,.elfinder-rtl .elfinder-button-icon-forward,.elfinder-rtl .elfinder-button-icon-getfile,.elfinder-rtl .elfinder-button-icon-help,.elfinder-rtl .elfinder-button-icon-redo,.elfinder-rtl .elfinder-button-icon-rename,.elfinder-rtl .elfinder-button-icon-search,.elfinder-rtl .elfinder-button-icon-undo,.elfinder-rtl .elfinder-button-icon-view-list,.elfinder-rtl .ui-icon-search{-ms-transform:scale(-1,1);-webkit-transform:scale(-1,1);transform:scale(-1,1)}.elfinder-rtl.elfinder-touch .elfinder-button-icon-back,.elfinder-rtl.elfinder-touch .elfinder-button-icon-forward,.elfinder-rtl.elfinder-touch .elfinder-button-icon-getfile,.elfinder-rtl.elfinder-touch .elfinder-button-icon-help,.elfinder-rtl.elfinder-touch .elfinder-button-icon-redo,.elfinder-rtl.elfinder-touch .elfinder-button-icon-rename,.elfinder-rtl.elfinder-touch .elfinder-button-icon-search,.elfinder-rtl.elfinder-touch .elfinder-button-icon-undo,.elfinder-rtl.elfinder-touch .elfinder-button-icon-view-list,.elfinder-rtl.elfinder-touch .ui-icon-search{-ms-transform:scale(-1.25,1.25) translateX(16px);-webkit-transform:scale(-1.25,1.25) translateX(16px);transform:scale(-1.25,1.25) translateX(16px)}.elfinder .elfinder-menubutton{overflow:visible}.elfinder-button-icon-spinner{background:url(../img/spinner-mini.gif) center center no-repeat}.elfinder-button-menu{position:absolute;margin-top:24px;padding:3px 0;overflow-y:auto}.elfinder-touch .elfinder-button-menu{margin-top:30px}.elfinder-button-menu-item{white-space:nowrap;cursor:default;padding:5px 19px;position:relative}.elfinder-touch .elfinder-button-menu-item{padding:12px 19px}.elfinder-button-menu .ui-state-hover{border:0 solid}.elfinder-button-menu-item-separated{border-top:1px solid #ccc}.elfinder-button-menu-item .ui-icon{width:16px;height:16px;position:absolute;left:2px;top:50%;margin-top:-8px;display:none}.elfinder-button-menu-item-selected .ui-icon{display:block}.elfinder-button-menu-item-selected-asc .ui-icon-arrowthick-1-s,.elfinder-button-menu-item-selected-desc .ui-icon-arrowthick-1-n{display:none}.elfinder-button form{position:absolute;top:0;right:0;opacity:0;filter:Alpha(Opacity=0);cursor:pointer}.elfinder .elfinder-button form input{background:0 0;cursor:default}.elfinder .elfinder-button-search{border:0 solid;background:0 0;padding:0;margin:1px 4px;height:auto;min-height:26px;width:70px;overflow:visible}.elfinder .elfinder-button-search.ui-state-active{width:220px}.elfinder .elfinder-button-search-menu{font-size:8pt;text-align:center;width:auto;min-width:180px;position:absolute;top:30px;padding-right:5px;padding-left:5px}.elfinder-ltr .elfinder-button-search-menu{right:22px;left:auto}.elfinder-rtl .elfinder-button-search-menu{right:auto;left:22px}.elfinder-touch .elfinder-button-search-menu{top:34px}.elfinder .elfinder-button-search-menu div{margin:5px auto;display:table}.elfinder .elfinder-button-search-menu div .ui-state-hover{border:1px solid}.elfinder-ltr .elfinder-button-search{float:right;margin-right:10px}.elfinder-rtl .elfinder-button-search{float:left;margin-left:10px}.elfinder-rtl .ui-controlgroup>.ui-controlgroup-item{float:right}.elfinder-button-search input[type=text]{box-sizing:border-box;width:100%;height:26px;padding:0 20px;line-height:22px;border:1px solid #aaa;-moz-border-radius:12px;-webkit-border-radius:12px;border-radius:12px;outline:0 solid}.elfinder-button-search input::-ms-clear{display:none}.elfinder-touch .elfinder-button-search input{height:30px;line-height:28px}.elfinder-rtl .elfinder-button-search input{direction:rtl}.elfinder-button-search .ui-icon{position:absolute;height:18px;top:50%;margin:-8px 4px 0;opacity:.6;filter:Alpha(Opacity=60)}.elfinder-button-search-menu .ui-checkboxradio-icon{display:none}.elfinder-ltr .elfinder-button-search .ui-icon-search{left:0}.elfinder-ltr .elfinder-button-search .ui-icon-close,.elfinder-rtl .elfinder-button-search .ui-icon-search{right:0}.elfinder-rtl .elfinder-button-search .ui-icon-close{left:0}.elfinder-toolbar-swipe-handle{position:absolute;top:0;left:0;height:50px;width:100%;pointer-events:none;background:linear-gradient(to bottom,#dde4eb 0,rgba(221,228,235,.8) 2px,rgba(216,223,230,.3) 5px,rgba(0,0,0,.1) 95%,rgba(0,0,0,0) 100%)} \ No newline at end of file diff --git a/libs/elFinder/js/cdn/amrnb.js b/libs/elFinder/js/cdn/amrnb.js index 2caf5b3..b3b6f2c 100644 --- a/libs/elFinder/js/cdn/amrnb.js +++ b/libs/elFinder/js/cdn/amrnb.js @@ -1,20 +1,20 @@ var AMR = (function() { -var AMR={toWAV:(function(amr){var decoded=this._decode(amr);if(!decoded){return null}var raw=new Uint8Array(decoded.buffer,decoded.byteOffset,decoded.byteLength);var out=new Uint8Array(raw.length+this.WAV_HEADER_SIZE);var offset=0;var write_int16=(function(value){var a=new Uint8Array(2);(new Int16Array(a.buffer))[0]=value;out.set(a,offset);offset+=2});var write_int32=(function(value){var a=new Uint8Array(4);(new Int32Array(a.buffer))[0]=value;out.set(a,offset);offset+=4});var write_string=(function(value){var d=(new TextEncoder("utf-8")).encode(value);out.set(d,offset);offset+=d.length});write_string("RIFF");write_int32(4+8+16+8+raw.length);write_string("WAVEfmt ");write_int32(16);var bits_per_sample=16;var sample_rate=8e3;var channels=1;var bytes_per_frame=bits_per_sample/8*channels;var bytes_per_sec=bytes_per_frame*sample_rate;write_int16(1);write_int16(1);write_int32(sample_rate);write_int32(bytes_per_sec);write_int16(bytes_per_frame);write_int16(bits_per_sample);write_string("data");write_int32(raw.length);out.set(raw,offset);return out}),decode:(function(amr){var raw=this._decode(amr);if(!raw){return null}var out=new Float32Array(raw.length);for(var i=0;i>3&15];if(inOffset+size+1>amr.length){break}decodeInBuffer.set(amr.subarray(inOffset,inOffset+size+1));this.Decoder_Interface_Decode(decoder,decodeInBuffer.byteOffset,decodeOutBuffer.byteOffset,0);if(outOffset+this.PCM_BUFFER_COUNT>out.length){var newOut=new Int16Array(out.length*2);newOut.set(out.subarray(0,outOffset));out=newOut}out.set(decodeOutBuffer,outOffset);outOffset+=this.PCM_BUFFER_COUNT;inOffset+=size+1}Module._free(decodeInBuffer.byteOffset);Module._free(decodeOutBuffer.byteOffset);this.Decoder_Interface_exit(decoder);return out.subarray(0,outOffset)}),encode:(function(pcm,pcmSampleRate,mode){if(pcmSampleRate<8e3){console.error("pcmSampleRate should not be less than 8000.");return null}if(typeof mode==="undefined"){mode=this.Mode.MR795}var encoder=this.Encoder_Interface_init();if(!encoder){return null}var buf=Module._malloc(this.PCM_BUFFER_COUNT*2);var encodeInBuffer=new Int16Array(Module.HEAPU8.buffer,buf,this.PCM_BUFFER_COUNT);buf=Module._malloc(this.AMR_BUFFER_COUNT);var encodeOutBuffer=new Uint8Array(Module.HEAPU8.buffer,buf,this.AMR_BUFFER_COUNT);var ratio=pcmSampleRate/8e3;var inLength=Math.floor(pcm.length/ratio);var inData=new Int16Array(inLength);for(var i=0;i1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var 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}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(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 Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(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)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(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 Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){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)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;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}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;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}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(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()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){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 ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}var TOTAL_STACK=Module["TOTAL_STACK"]||65536;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||524288;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.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)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}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"];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_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;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["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+31776;__ATINIT__.push();allocate([154,14,0,0,188,14,0,0,226,14,0,0,8,15,0,0,46,15,0,0,84,15,0,0,130,15,0,0,208,15,0,0,66,16,0,0,108,16,0,0,42,17,0,0,248,17,0,0,228,18,0,0,240,19,0,0,24,21,0,0,86,22,0,0,238,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,13,0,15,0,17,0,19,0,20,0,26,0,31,0,5,0,6,0,5,0,5,0,0,0,0,0,0,0,0,0,1,252,146,252,36,253,182,253,72,254,218,254,108,255,0,0,0,0,32,78,32,78,32,78,32,78,32,78,80,70,0,64,0,32,0,0,0,0,255,127,112,125,112,125,112,125,112,125,112,125,153,89,255,127,112,125,112,125,102,102,102,38,153,25,153,25,154,89,185,62,232,43,188,30,132,21,16,15,139,10,97,7,42,5,157,3,0,96,0,72,0,54,128,40,96,30,200,22,22,17,209,12,157,9,54,7,102,70,184,38,75,21,182,11,113,6,139,3,243,1,18,1,151,0,83,0,154,89,185,62,232,43,188,30,132,21,16,15,139,10,97,7,42,5,157,3,44,3,128,0,30,2,140,0,57,11,111,4,218,8,74,13,19,8,51,2,133,49,135,2,36,16,6,7,225,21,165,20,9,30,118,1,151,14,185,1,160,42,78,10,31,46,190,9,10,80,29,3,98,20,163,2,68,26,162,32,162,20,160,6,208,5,172,1,250,22,196,1,212,20,232,15,255,13,244,4,165,9,133,3,22,62,237,3,134,58,199,12,91,40,250,18,51,14,229,7,36,10,67,3,72,48,28,19,174,47,168,6,120,52,68,6,158,35,37,9,128,15,2,6,103,21,208,38,211,14,161,1,79,5,158,1,56,14,33,6,59,31,213,13,141,44,133,2,104,33,123,2,216,15,97,5,224,64,236,23,156,44,188,2,215,7,95,2,127,48,42,6,111,43,46,18,112,53,172,6,214,46,205,4,60,31,129,28,175,51,83,22,124,9,135,4,25,8,149,7,74,24,233,23,218,13,12,7,221,34,10,7,231,33,44,6,111,54,248,13,1,52,93,24,254,23,106,4,106,23,198,6,61,55,54,18,7,44,249,12,194,47,15,6,107,54,199,11,217,19,224,40,228,36,50,26,153,6,171,2,156,5,26,5,44,28,93,15,242,15,153,10,113,30,192,2,222,58,34,3,155,24,92,20,241,16,237,20,20,26,29,2,174,23,114,2,83,53,116,14,234,44,104,9,28,63,204,2,145,47,239,2,129,31,225,44,170,24,208,8,114,17,240,1,125,28,11,2,229,39,249,14,202,32,221,11,211,32,198,3,148,55,88,7,255,33,33,21,11,64,255,18,252,28,187,7,201,23,206,4,155,36,46,17,222,56,35,13,247,52,57,11,107,51,185,5,158,21,142,6,82,51,179,57,170,28,88,2,38,5,36,2,156,16,211,13,60,39,60,9,91,41,110,2,32,51,157,2,46,55,198,13,175,19,56,38,234,59,107,2,43,12,78,2,58,64,197,11,182,60,72,16,177,60,75,6,45,60,204,4,151,62,83,36,110,29,112,19,198,7,189,4,183,44,133,4,224,48,143,21,3,37,84,10,36,30,242,7,224,51,191,8,139,62,229,19,130,31,105,26,99,39,133,5,138,19,43,9,235,48,87,23,22,59,83,11,88,71,241,8,211,61,223,9,137,63,14,40,59,57,55,44,5,7,81,1,43,12,141,1,182,13,112,11,240,17,110,10,95,29,116,2,151,44,144,2,58,23,131,9,144,25,199,28,46,32,61,3,160,15,95,3,48,39,188,9,185,62,223,13,28,71,30,4,215,23,174,5,252,22,220,30,64,73,140,13,72,7,32,2,238,35,171,2,103,45,64,16,242,17,108,6,86,12,133,4,81,62,0,10,61,48,149,14,12,68,140,20,218,23,212,7,101,11,206,6,83,64,137,20,147,65,144,6,53,67,223,6,165,18,159,12,218,28,147,23,6,56,28,39,195,15,186,1,98,16,202,1,254,35,194,8,3,29,121,16,60,50,33,3,178,43,57,3,104,49,36,8,156,50,154,25,33,37,228,3,229,25,217,3,41,41,198,9,185,59,142,19,58,49,7,8,124,60,117,6,66,63,9,27,151,55,158,22,66,10,60,3,239,21,150,6,95,53,146,22,84,14,18,6,49,44,73,10,42,38,179,5,179,54,125,18,25,62,147,24,134,24,78,7,230,30,237,8,82,66,219,17,192,64,9,15,144,59,7,9,151,62,172,12,123,56,144,69,71,46,203,10,189,7,127,5,120,5,108,3,239,16,219,13,39,17,114,16,29,21,168,2,53,68,13,3,101,25,254,19,155,31,253,29,187,28,26,3,141,32,158,4,193,58,88,12,80,58,223,11,197,79,112,3,209,56,84,3,49,48,116,57,248,26,128,7,129,16,165,3,26,32,63,4,163,41,244,15,98,39,181,17,175,10,72,3,177,80,57,4,71,65,78,23,1,62,226,17,119,42,14,10,189,14,142,4,183,56,204,15,219,80,67,10,115,59,174,10,170,59,138,8,113,24,154,12,69,51,24,76,28,28,162,3,158,9,82,6,163,17,20,12,28,54,181,16,220,40,65,3,187,67,42,3,251,65,241,8,186,60,25,32,35,53,148,6,125,12,42,7,76,62,4,11,196,61,207,20,110,66,134,9,148,65,46,5,55,61,220,31,206,45,108,33,178,14,5,8,91,37,37,5,249,52,134,26,195,47,144,7,244,31,222,13,231,51,242,6,171,63,199,25,163,63,78,30,73,33,247,9,57,28,85,10,93,71,65,29,245,65,200,8,218,69,68,11,113,67,0,13,201,36,194,78,34,43,128,32,6,5,108,2,151,5,71,2,105,23,241,8,138,15,42,14,24,20,240,2,97,52,62,3,177,21,44,11,244,45,20,23,241,41,48,2,70,21,52,2,9,52,192,11,170,46,99,14,175,77,30,3,97,38,216,2,95,53,44,34,223,28,237,11,211,9,10,3,162,23,65,3,69,25,210,19,113,32,159,9,253,23,73,7,204,59,238,4,72,56,195,17,95,53,163,17,65,12,167,11,175,9,235,4,240,58,39,18,22,60,47,10,156,56,88,9,174,48,233,9,115,29,133,11,109,50,28,47,92,21,172,2,69,12,210,2,217,19,250,4,188,49,104,16,198,59,169,2,139,30,80,2,134,25,229,7,94,64,33,34,52,52,114,3,21,21,131,3,64,57,130,8,149,57,131,16,190,55,18,5,105,54,237,7,117,60,58,29,199,61,220,17,217,9,221,7,198,19,12,7,39,20,182,25,218,27,13,14,168,42,75,6,209,45,172,6,7,66,127,13,140,63,240,25,90,36,239,3,153,36,58,8,238,74,173,19,153,48,173,16,47,62,52,5,253,59,184,13,122,46,61,55,229,62,198,26,218,7,225,2,195,14,93,3,190,44,64,11,236,13,212,13,97,35,217,4,103,48,128,3,98,33,21,18,41,45,144,22,193,31,77,2,26,32,76,2,40,73,171,14,173,50,77,12,113,61,246,2,250,64,242,2,118,59,130,43,255,61,160,8,65,18,98,2,234,39,166,2,153,59,50,16,97,22,255,12,185,32,134,6,150,77,17,9,90,60,135,21,230,54,105,21,96,22,72,11,156,29,66,5,48,56,205,20,108,63,110,15,14,59,160,14,202,59,155,5,5,57,230,15,13,48,80,61,193,29,163,6,122,8,116,3,107,17,215,17,174,70,234,12,198,49,47,3,78,58,139,3,168,58,185,16,158,60,176,32,74,70,63,4,54,9,97,3,153,63,203,14,63,61,244,17,228,63,254,5,200,64,162,8,193,65,225,37,57,62,161,17,205,12,61,4,171,37,139,8,197,46,180,23,239,35,110,17,251,34,93,6,49,40,246,11,97,64,35,20,106,60,154,27,110,53,239,9,153,20,229,8,106,65,69,24,15,65,80,13,80,79,35,13,0,73,193,7,92,55,67,50,50,59,87,61,121,17,252,3,145,6,118,3,215,16,205,16,248,34,73,14,5,23,123,4,127,45,172,5,14,62,179,8,230,17,244,25,17,27,181,4,76,24,31,3,127,48,81,13,96,62,37,15,147,77,61,8,217,37,93,8,150,57,126,34,144,56,39,10,25,7,214,4,91,30,45,3,135,74,58,17,178,21,16,8,103,14,28,11,27,68,208,8,57,65,134,17,71,63,12,21,92,31,203,10,77,13,71,8,18,68,101,21,130,53,226,10,167,77,160,10,138,35,40,15,252,70,225,18,184,67,175,47,252,19,228,3,71,19,220,3,160,38,9,12,126,23,251,20,9,62,131,6,213,32,159,4,239,58,62,9,65,77,90,27,187,46,26,6,111,28,104,4,219,65,252,5,146,61,5,21,116,57,17,8,137,78,107,8,6,67,53,32,247,69,174,24,91,21,224,5,4,16,14,10,13,68,154,26,41,22,72,11,252,64,54,13,15,35,39,7,191,78,129,18,94,76,126,28,2,26,221,10,208,44,249,12,197,75,190,19,190,73,114,18,55,64,69,9,206,79,34,17,89,44,158,103,73,45,252,11,50,11,30,6,244,19,46,4,142,37,51,19,75,19,208,13,117,29,110,3,237,80,83,3,26,27,43,17,159,65,53,30,153,39,251,3,117,38,196,3,134,60,115,15,99,60,102,13,175,73,214,3,152,78,195,3,236,65,87,50,254,55,104,16,199,25,196,4,6,36,46,3,46,66,14,20,29,22,34,19,112,21,6,7,34,79,122,15,109,66,34,24,9,70,41,23,149,36,92,13,50,29,179,7,81,76,57,20,59,74,190,11,70,64,204,14,198,62,63,9,216,33,183,10,229,36,246,102,104,42,7,5,227,13,241,3,230,21,38,14,253,75,136,21,165,48,29,3,154,80,143,3,67,60,250,11,141,66,35,40,195,73,73,10,73,15,244,4,63,76,43,13,132,70,110,20,91,75,142,6,52,76,100,12,152,70,2,42,241,64,189,26,62,12,250,8,117,42,133,9,220,60,1,27,53,49,53,13,108,43,225,12,122,65,120,9,165,73,59,26,19,67,159,38,199,49,45,10,233,34,68,12,89,74,84,30,171,71,40,15,251,79,98,14,146,76,52,13,244,50,173,75,30,41,84,90,1,0,3,0,0,0,1,0,2,0,4,0,82,120,26,113,81,106,240,99,241,93,78,88,2,83,7,78,89,73,242,68,51,115,174,103,80,93,251,83,149,75,6,68,56,61,25,55,150,49,161,44,205,76,21,46,166,27,151,16,244,9,249,5,149,3,38,2,74,1,198,0,249,79,26,80,59,80,92,80,125,80,164,80,197,80,236,80,13,81,52,81,85,81,124,81,157,81,196,81,236,81,19,82,58,82,97,82,137,82,176,82,215,82,255,82,38,83,84,83,123,83,169,83,208,83,254,83,38,84,84,84,129,84,175,84,221,84,11,85,57,85,103,85,149,85,201,85,247,85,43,86,89,86,142,86,194,86,247,86,43,87,95,87,148,87,200,87,3,88,56,88,115,88,174,88,233,88,36,89,95,89,154,89,219,89,22,90,88,90,153,90,212,90,28,91,94,91,159,91,231,91,48,92,113,92,192,92,8,93,80,93,159,93,237,93,60,94,138,94,224,94,46,95,131,95,217,95,52,96,138,96,229,96,72,97,163,97,6,98,104,98,209,98,51,99,156,99,11,100,123,100,234,100,96,101,214,101,76,102,201,102,76,103,207,103,82,104,220,104,108,105,252,105,147,106,48,107,205,107,113,108,27,109,204,109,125,110,59,111,249,111,197,112,150,113,111,114,84,115,64,116,50,117,50,118,63,119,88,120,225,122,255,127,255,127,255,127,255,127,255,127,255,127,255,127,225,122,88,120,63,119,50,118,50,117,64,116,84,115,111,114,150,113,197,112,249,111,59,111,125,110,204,109,27,109,113,108,205,107,48,107,147,106,252,105,108,105,220,104,82,104,207,103,76,103,201,102,76,102,214,101,96,101,234,100,123,100,11,100,156,99,51,99,209,98,104,98,6,98,163,97,72,97,229,96,138,96,52,96,217,95,131,95,46,95,224,94,138,94,60,94,237,93,159,93,80,93,8,93,192,92,113,92,48,92,231,91,159,91,94,91,28,91,212,90,153,90,88,90,22,90,219,89,154,89,95,89,36,89,233,88,174,88,115,88,56,88,3,88,200,87,148,87,95,87,43,87,247,86,194,86,142,86,89,86,43,86,247,85,201,85,149,85,103,85,57,85,11,85,221,84,175,84,129,84,84,84,38,84,254,83,208,83,169,83,123,83,84,83,38,83,255,82,215,82,176,82,137,82,97,82,58,82,19,82,236,81,196,81,157,81,124,81,85,81,52,81,13,81,236,80,197,80,164,80,125,80,92,80,59,80,26,80,249,79,210,79,177,79,145,79,112,79,13,0,14,0,16,0,18,0,20,0,21,0,27,0,32,0,6,0,7,0,6,0,6,0,0,0,0,0,0,0,1,0,13,0,14,0,16,0,18,0,19,0,21,0,26,0,31,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,1,0,79,115,156,110,74,97,126,77,72,54,9,31,195,10,153,251,125,242,48,239,127,240,173,244,231,249,176,254,22,2,202,3,255,3,55,3,4,2,220,0,0,0,125,255,62,255,41,255,0,0,216,127,107,127,182,126,187,125,123,124,248,122,53,121,53,119,250,116,137,114,128,46,128,67,0,120,0,101,128,94,64,113,64,95,192,28,64,76,192,57,84,0,1,0,254,255,2,0,5,0,10,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,5,0,10,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,10,0,19,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,94,0,0,0,253,255,3,0,3,0,6,0,5,0,9,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,19,0,19,0,19,0,19,0,23,0,39,0,57,0,5,0,8,0,8,0,7,0,8,0,7,0,2,0,8,0,4,0,7,0,2,0,4,0,7,0,2,0,8,0,4,0,7,0,2,0,8,0,8,0,7,0,8,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,8,0,9,0,9,0,8,0,9,0,2,0,6,0,4,0,9,0,2,0,6,0,8,0,9,0,2,0,6,0,4,0,9,0,2,0,6,0,8,0,9,0,9,0,8,0,11,0,3,0,7,0,4,0,11,0,3,0,7,0,8,0,11,0,3,0,7,0,4,0,11,0,3,0,7,0,8,0,9,0,9,0,8,0,13,0,4,0,7,0,5,0,13,0,4,0,7,0,8,0,13,0,4,0,7,0,5,0,13,0,4,0,7,0,9,0,9,0,9,0,8,0,13,0,4,0,4,0,5,0,6,0,13,0,4,0,4,0,5,0,8,0,13,0,4,0,4,0,5,0,6,0,13,0,4,0,4,0,5,0,8,0,9,0,9,0,8,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,5,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,8,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,5,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,7,0,8,0,9,0,8,0,6,0,9,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,9,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,3,0,8,0,9,0,9,0,6,0,95,0,103,0,118,0,134,0,148,0,159,0,204,0,244,0,39,0,43,0,38,0,37,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0,23,0,24,0,25,0,26,0,27,0,28,0,48,0,49,0,61,0,62,0,82,0,83,0,47,0,46,0,45,0,44,0,81,0,80,0,79,0,78,0,17,0,18,0,20,0,22,0,77,0,76,0,75,0,74,0,29,0,30,0,43,0,42,0,41,0,40,0,38,0,39,0,16,0,19,0,21,0,50,0,51,0,59,0,60,0,63,0,64,0,72,0,73,0,84,0,85,0,93,0,94,0,32,0,33,0,35,0,36,0,53,0,54,0,56,0,57,0,66,0,67,0,69,0,70,0,87,0,88,0,90,0,91,0,34,0,55,0,68,0,89,0,37,0,58,0,71,0,92,0,31,0,52,0,65,0,86,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,23,0,24,0,25,0,26,0,27,0,46,0,65,0,84,0,45,0,44,0,43,0,64,0,63,0,62,0,83,0,82,0,81,0,102,0,101,0,100,0,42,0,61,0,80,0,99,0,28,0,47,0,66,0,85,0,18,0,41,0,60,0,79,0,98,0,29,0,48,0,67,0,17,0,20,0,22,0,40,0,59,0,78,0,97,0,21,0,30,0,49,0,68,0,86,0,19,0,16,0,87,0,39,0,38,0,58,0,57,0,77,0,35,0,54,0,73,0,92,0,76,0,96,0,95,0,36,0,55,0,74,0,93,0,32,0,51,0,33,0,52,0,70,0,71,0,89,0,90,0,31,0,50,0,69,0,88,0,37,0,56,0,75,0,94,0,34,0,53,0,72,0,91,0,0,0,1,0,4,0,5,0,3,0,6,0,7,0,2,0,13,0,15,0,8,0,9,0,11,0,12,0,14,0,10,0,16,0,28,0,74,0,29,0,75,0,27,0,73,0,26,0,72,0,30,0,76,0,51,0,97,0,50,0,71,0,96,0,117,0,31,0,77,0,52,0,98,0,49,0,70,0,95,0,116,0,53,0,99,0,32,0,78,0,33,0,79,0,48,0,69,0,94,0,115,0,47,0,68,0,93,0,114,0,46,0,67,0,92,0,113,0,19,0,21,0,23,0,22,0,18,0,17,0,20,0,24,0,111,0,43,0,89,0,110,0,64,0,65,0,44,0,90,0,25,0,45,0,66,0,91,0,112,0,54,0,100,0,40,0,61,0,86,0,107,0,39,0,60,0,85,0,106,0,36,0,57,0,82,0,103,0,35,0,56,0,81,0,102,0,34,0,55,0,80,0,101,0,42,0,63,0,88,0,109,0,41,0,62,0,87,0,108,0,38,0,59,0,84,0,105,0,37,0,58,0,83,0,104,0,0,0,1,0,4,0,3,0,5,0,6,0,13,0,7,0,2,0,8,0,9,0,11,0,15,0,12,0,14,0,10,0,28,0,82,0,29,0,83,0,27,0,81,0,26,0,80,0,30,0,84,0,16,0,55,0,109,0,56,0,110,0,31,0,85,0,57,0,111,0,48,0,73,0,102,0,127,0,32,0,86,0,51,0,76,0,105,0,130,0,52,0,77,0,106,0,131,0,58,0,112,0,33,0,87,0,19,0,23,0,53,0,78,0,107,0,132,0,21,0,22,0,18,0,17,0,20,0,24,0,25,0,50,0,75,0,104,0,129,0,47,0,72,0,101,0,126,0,54,0,79,0,108,0,133,0,46,0,71,0,100,0,125,0,128,0,103,0,74,0,49,0,45,0,70,0,99,0,124,0,42,0,67,0,96,0,121,0,39,0,64,0,93,0,118,0,38,0,63,0,92,0,117,0,35,0,60,0,89,0,114,0,34,0,59,0,88,0,113,0,44,0,69,0,98,0,123,0,43,0,68,0,97,0,122,0,41,0,66,0,95,0,120,0,40,0,65,0,94,0,119,0,37,0,62,0,91,0,116,0,36,0,61,0,90,0,115,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0,16,0,26,0,87,0,27,0,88,0,28,0,89,0,29,0,90,0,30,0,91,0,51,0,80,0,112,0,141,0,52,0,81,0,113,0,142,0,54,0,83,0,115,0,144,0,55,0,84,0,116,0,145,0,58,0,119,0,59,0,120,0,21,0,22,0,23,0,17,0,18,0,19,0,31,0,60,0,92,0,121,0,56,0,85,0,117,0,146,0,20,0,24,0,25,0,50,0,79,0,111,0,140,0,57,0,86,0,118,0,147,0,49,0,78,0,110,0,139,0,48,0,77,0,53,0,82,0,114,0,143,0,109,0,138,0,47,0,76,0,108,0,137,0,32,0,33,0,61,0,62,0,93,0,94,0,122,0,123,0,41,0,42,0,43,0,44,0,45,0,46,0,70,0,71,0,72,0,73,0,74,0,75,0,102,0,103,0,104,0,105,0,106,0,107,0,131,0,132,0,133,0,134,0,135,0,136,0,34,0,63,0,95,0,124,0,35,0,64,0,96,0,125,0,36,0,65,0,97,0,126,0,37,0,66,0,98,0,127,0,38,0,67,0,99,0,128,0,39,0,68,0,100,0,129,0,40,0,69,0,101,0,130,0,8,0,7,0,6,0,5,0,4,0,3,0,2,0,14,0,16,0,9,0,10,0,12,0,13,0,15,0,11,0,17,0,20,0,22,0,24,0,23,0,19,0,18,0,21,0,56,0,88,0,122,0,154,0,57,0,89,0,123,0,155,0,58,0,90,0,124,0,156,0,52,0,84,0,118,0,150,0,53,0,85,0,119,0,151,0,27,0,93,0,28,0,94,0,29,0,95,0,30,0,96,0,31,0,97,0,61,0,127,0,62,0,128,0,63,0,129,0,59,0,91,0,125,0,157,0,32,0,98,0,64,0,130,0,1,0,0,0,25,0,26,0,33,0,99,0,34,0,100,0,65,0,131,0,66,0,132,0,54,0,86,0,120,0,152,0,60,0,92,0,126,0,158,0,55,0,87,0,121,0,153,0,117,0,116,0,115,0,46,0,78,0,112,0,144,0,43,0,75,0,109,0,141,0,40,0,72,0,106,0,138,0,36,0,68,0,102,0,134,0,114,0,149,0,148,0,147,0,146,0,83,0,82,0,81,0,80,0,51,0,50,0,49,0,48,0,47,0,45,0,44,0,42,0,39,0,35,0,79,0,77,0,76,0,74,0,71,0,67,0,113,0,111,0,110,0,108,0,105,0,101,0,145,0,143,0,142,0,140,0,137,0,133,0,41,0,73,0,107,0,139,0,37,0,69,0,103,0,135,0,38,0,70,0,104,0,136,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,26,0,27,0,28,0,29,0,30,0,31,0,115,0,116,0,117,0,118,0,119,0,120,0,72,0,73,0,161,0,162,0,65,0,68,0,69,0,108,0,111,0,112,0,154,0,157,0,158,0,197,0,200,0,201,0,32,0,33,0,121,0,122,0,74,0,75,0,163,0,164,0,66,0,109,0,155,0,198,0,19,0,23,0,21,0,22,0,18,0,17,0,20,0,24,0,25,0,37,0,36,0,35,0,34,0,80,0,79,0,78,0,77,0,126,0,125,0,124,0,123,0,169,0,168,0,167,0,166,0,70,0,67,0,71,0,113,0,110,0,114,0,159,0,156,0,160,0,202,0,199,0,203,0,76,0,165,0,81,0,82,0,92,0,91,0,93,0,83,0,95,0,85,0,84,0,94,0,101,0,102,0,96,0,104,0,86,0,103,0,87,0,97,0,127,0,128,0,138,0,137,0,139,0,129,0,141,0,131,0,130,0,140,0,147,0,148,0,142,0,150,0,132,0,149,0,133,0,143,0,170,0,171,0,181,0,180,0,182,0,172,0,184,0,174,0,173,0,183,0,190,0,191,0,185,0,193,0,175,0,192,0,176,0,186,0,38,0,39,0,49,0,48,0,50,0,40,0,52,0,42,0,41,0,51,0,58,0,59,0,53,0,61,0,43,0,60,0,44,0,54,0,194,0,179,0,189,0,196,0,177,0,195,0,178,0,187,0,188,0,151,0,136,0,146,0,153,0,134,0,152,0,135,0,144,0,145,0,105,0,90,0,100,0,107,0,88,0,106,0,89,0,98,0,99,0,62,0,47,0,57,0,64,0,45,0,63,0,46,0,55,0,56,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,23,0,15,0,16,0,17,0,18,0,19,0,20,0,21,0,22,0,24,0,25,0,26,0,27,0,28,0,38,0,141,0,39,0,142,0,40,0,143,0,41,0,144,0,42,0,145,0,43,0,146,0,44,0,147,0,45,0,148,0,46,0,149,0,47,0,97,0,150,0,200,0,48,0,98,0,151,0,201,0,49,0,99,0,152,0,202,0,86,0,136,0,189,0,239,0,87,0,137,0,190,0,240,0,88,0,138,0,191,0,241,0,91,0,194,0,92,0,195,0,93,0,196,0,94,0,197,0,95,0,198,0,29,0,30,0,31,0,32,0,33,0,34,0,35,0,50,0,100,0,153,0,203,0,89,0,139,0,192,0,242,0,51,0,101,0,154,0,204,0,55,0,105,0,158,0,208,0,90,0,140,0,193,0,243,0,59,0,109,0,162,0,212,0,63,0,113,0,166,0,216,0,67,0,117,0,170,0,220,0,36,0,37,0,54,0,53,0,52,0,58,0,57,0,56,0,62,0,61,0,60,0,66,0,65,0,64,0,70,0,69,0,68,0,104,0,103,0,102,0,108,0,107,0,106,0,112,0,111,0,110,0,116,0,115,0,114,0,120,0,119,0,118,0,157,0,156,0,155,0,161,0,160,0,159,0,165,0,164,0,163,0,169,0,168,0,167,0,173,0,172,0,171,0,207,0,206,0,205,0,211,0,210,0,209,0,215,0,214,0,213,0,219,0,218,0,217,0,223,0,222,0,221,0,73,0,72,0,71,0,76,0,75,0,74,0,79,0,78,0,77,0,82,0,81,0,80,0,85,0,84,0,83,0,123,0,122,0,121,0,126,0,125,0,124,0,129,0,128,0,127,0,132,0,131,0,130,0,135,0,134,0,133,0,176,0,175,0,174,0,179,0,178,0,177,0,182,0,181,0,180,0,185,0,184,0,183,0,188,0,187,0,186,0,226,0,225,0,224,0,229,0,228,0,227,0,232,0,231,0,230,0,235,0,234,0,233,0,238,0,237,0,236,0,96,0,199,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,1,0,3,0,2,0,4,0,1,0,4,0,1,0,4,0,0,0,205,12,156,25,0,32,102,38,205,44,0,48,51,51,102,54,154,57,205,60,0,64,51,67,102,70,154,73,205,76,159,0,64,241,53,167,206,0,190,242,52,176,12,1,67,244,88,185,93,1,201,245,133,194,163,1,215,246,223,200,226,1,166,247,189,205,42,2,116,248,147,210,125,2,66,249,109,215,221,2,18,250,77,220,74,3,222,250,30,225,201,3,174,251,0,230,90,4,124,252,216,234,1,5,74,253,179,239,193,5,25,254,141,244,158,6,231,254,104,249,156,7,181,255,67,254,193,8,133,0,33,3,17,10,83,1,252,7,147,11,33,2,213,12,80,13,240,2,178,17,79,15,190,3,140,22,155,17,141,4,104,27,63,20,91,5,67,32,72,23,41,6,29,37,199,26,248,6,249,41,203,30,199,7,212,46,105,35,149,8,175,51,185,40,100,9,138,56,222,48,113,10,224,62,135,63,244,11,253,71,150,82,120,13,27,81,93,107,252,14,57,90,93,107,252,14,57,90,0,0,1,0,3,0,2,0,6,0,4,0,5,0,7,0,0,0,1,0,3,0,2,0,5,0,6,0,4,0,7,0,248,127,211,127,76,127,108,126,51,125,163,123,188,121,127,119,239,116,12,114,217,110,89,107,141,103,121,99,31,95,130,90,166,85,141,80,60,75,182,69,0,64,28,58,15,52,223,45,141,39,32,33,156,26,6,20,97,13,178,6,0,0,78,249,159,242,250,235,100,229,224,222,115,216,33,210,241,203,228,197,0,192,74,186,196,180,115,175,90,170,126,165,225,160,135,156,115,152,167,148,39,145,244,141,17,139,129,136,68,134,93,132,205,130,148,129,180,128,45,128,8,128,255,127,46,124,174,120,118,117,125,114,186,111,41,109,194,106,131,104,102,102,105,100,137,98,194,96,19,95,122,93,245,91,130,90,33,89,207,87,139,86,85,85,44,84,15,83,252,81,244,80,246,79,1,79,20,78,48,77,83,76,126,75,175,74,231,73,37,73,104,72,178,71,0,71,84,70,173,69,10,69,107,68,209,67,59,67,168,66,25,66,142,65,6,65,130,64,0,64,0,0,175,5,50,11,140,16,192,21,207,26,188,31,136,36,53,41,196,45,55,50,143,54,206,58,245,62,4,67,252,70,223,74,174,78,105,82,17,86,167,89,44,93,159,96,3,100,87,103,155,106,209,109,250,112,20,116,33,119,34,122,23,125,255,127,255,127,217,127,98,127,157,126,138,125,42,124,125,122,133,120,66,118,182,115,227,112,202,109,110,106,208,102,242,98,215,94,130,90,246,85,52,81,64,76,29,71,206,65,87,60,186,54,252,48,31,43,40,37,26,31,249,24,200,18,140,12,72,6,0,0,184,249,116,243,56,237,7,231,230,224,216,218,225,212,4,207,70,201,169,195,50,190,227,184,192,179,204,174,10,170,126,165,41,161,14,157,48,153,146,149,54,146,29,143,74,140,190,137,123,135,131,133,214,131,118,130,99,129,158,128,39,128,0,128,249,150,148,221,53,235,27,241,93,244,116,246,223,247,237,248,184,249,86,250,214,250,61,251,148,251,221,251,26,252,78,252,123,252,163,252,197,252,227,252,252,252,18,253,38,253,55,253,69,253,81,253,91,253,100,253,106,253,111,253,114,253,116,253,116,253,114,253,111,253,106,253,100,253,91,253,81,253,69,253,55,253,38,253,18,253,252,252,227,252,197,252,163,252,123,252,78,252,26,252,221,251,148,251,61,251,214,250,86,250,184,249,237,248,223,247,116,246,93,244,27,241,53,235,148,221,249,150,48,117,144,101,8,82,152,58,64,31,0,0,192,224,104,197,248,173,112,154,153,104,33,3,201,9,85,253,154,250,70,2,92,2,6,251,183,13,250,232,182,17,13,254,108,248,195,11,62,236,238,21,58,248,219,251,77,250,90,17,68,253,41,235,1,18,196,1,179,253,232,242,137,11,243,4,68,251,226,245,195,6,86,14,133,238,49,252,39,17,23,246,181,3,173,250,45,252,102,22,66,118,247,14,60,240,156,11,232,251,22,252,173,9,29,244,255,10,73,247,217,6,181,249,178,6,17,249,7,6,16,252,173,1,87,255,216,1,16,251,128,8,110,245,219,9,171,249,88,1,58,3,7,250,188,6,135,249,165,6,241,247,84,10,12,244,81,11,70,248,45,2,12,3,167,250,74,3,143,2,98,57,254,44,244,4,55,245,217,233,90,29,221,255,9,245,32,244,215,18,136,11,24,223,201,14,175,5,131,8,67,222,115,31,201,247,82,250,9,3,84,4,175,246,206,8,149,254,94,253,201,247,158,23,207,233,48,4,51,12,62,236,192,20,231,246,112,241,12,27,207,240,163,2,17,249,29,0,161,39,66,118,247,14,60,240,156,11,232,251,22,252,173,9,29,244,255,10,73,247,217,6,181,249,178,6,17,249,7,6,16,252,173,1,87,255,216,1,16,251,128,8,110,245,219,9,171,249,88,1,58,3,7,250,188,6,135,249,165,6,241,247,84,10,12,244,81,11,70,248,45,2,12,3,167,250,74,3,143,2,0,64,103,65,213,66,76,68,203,69,82,71,226,72,122,74,28,76,199,77,123,79,56,81,255,82,209,84,172,86,146,88,130,90,126,92,132,94,150,96,180,98,221,100,18,103,84,105,162,107,254,109,102,112,221,114,96,117,242,119,147,122,66,125,255,127,3,115,186,110,119,98,225,79,109,57,245,33,71,12,184,250,206,238,23,233,38,233,191,237,33,245,96,253,187,4,232,9,58,12,175,11,211,8,146,4,0,0,23,252,140,249,180,248,126,249,133,251,48,254,218,0,244,2,36,4,75,4,136,3,38,2,135,0,11,255,254,253,134,253,166,253,61,254,25,255,0,0,191,0,52,1,84,1,40,1,198,0,78,0,220,255,136,255,93,255,91,255,124,255,177,255,237,255,34,0,73,0,91,0,89,0,70,0,38,0,0,0,254,254,194,254,73,254,134,253,112,253,251,252,57,253,10,254,244,254,63,255,254,255,125,0,122,0,217,255,247,255,105,0,129,0,27,1,116,1,63,2,235,254,188,254,59,255,25,254,67,254,150,254,220,254,229,255,177,0,31,2,86,1,5,2,4,2,130,0,27,0,152,255,136,255,116,255,182,255,200,255,204,253,81,252,16,250,59,252,210,252,242,253,190,254,254,255,159,0,145,2,200,254,228,254,126,254,171,253,19,254,242,253,94,254,27,255,105,0,193,1,211,253,154,252,205,251,105,252,74,252,16,253,59,253,196,254,62,0,230,1,198,254,65,255,53,255,182,254,96,255,153,255,205,255,131,0,82,1,3,2,10,6,224,8,194,14,112,21,60,27,190,32,63,39,221,43,222,49,146,53,84,37,17,42,27,49,236,51,45,56,131,45,92,41,39,38,145,33,84,25,6,0,82,0,125,255,154,0,200,255,33,253,183,0,191,255,247,254,9,0,46,255,151,254,113,0,206,2,25,7,242,3,190,4,37,6,89,3,53,5,228,8,59,3,32,6,141,7,205,2,197,7,158,8,70,3,148,4,31,7,209,2,232,3,106,8,30,1,220,1,229,5,9,255,237,253,230,0,147,0,174,255,57,2,26,0,79,255,80,252,229,255,239,254,180,2,92,255,248,254,73,255,224,0,22,3,15,4,131,3,178,3,89,2,229,1,3,3,126,4,12,2,165,2,135,3,116,255,119,1,10,3,154,1,164,2,173,1,45,1,18,2,241,3,207,2,134,2,38,0,226,0,111,1,40,0,145,0,211,255,7,254,34,1,121,0,135,255,46,1,127,0,166,0,132,255,129,254,68,252,154,254,57,254,47,252,203,2,110,3,126,3,210,3,155,3,211,0,221,1,16,1,64,0,188,0,178,255,17,0,113,255,191,255,38,0,131,2,74,2,109,2,122,255,86,254,117,253,91,1,33,2,4,11,164,4,166,10,138,9,142,0,176,255,199,6,27,1,130,0,205,1,250,254,113,254,135,251,101,254,155,0,174,1,73,1,119,1,11,3,53,0,30,255,117,255,127,255,20,255,146,6,29,1,232,2,47,5,226,2,185,2,128,6,56,1,153,1,10,1,69,1,208,2,135,0,1,0,221,0,197,1,8,0,203,0,145,0,43,1,128,2,248,2,29,0,212,1,126,2,103,0,173,1,123,1,164,1,186,3,164,3,46,5,186,4,234,4,192,2,244,3,128,4,90,255,68,254,246,254,196,254,126,255,136,254,191,0,127,4,112,7,16,255,225,253,20,251,144,255,12,1,183,4,70,0,38,4,47,6,22,1,80,5,38,6,254,254,240,254,0,253,19,0,51,2,192,8,253,255,247,254,135,0,217,254,177,253,124,254,140,0,98,1,50,255,252,254,8,254,229,252,79,254,50,253,217,250,109,0,75,1,194,3,83,254,169,255,140,2,216,254,170,1,251,3,17,255,7,3,83,3,233,1,54,5,49,4,178,254,180,254,25,0,31,2,182,4,15,7,70,1,61,0,215,2,66,2,81,3,125,5,48,255,235,254,73,1,104,255,64,0,157,2,78,254,90,253,41,253,58,254,185,255,251,0,93,2,224,1,254,0,30,254,11,0,228,3,223,254,139,1,230,1,210,2,25,4,160,5,226,255,196,254,238,252,150,255,141,255,149,253,93,3,194,5,132,5,31,4,86,5,160,4,44,3,213,4,157,3,42,0,5,255,192,253,86,1,141,0,58,254,88,255,176,255,79,5,170,254,112,253,29,249,100,0,53,3,213,2,222,3,235,2,32,3,76,1,184,1,56,2,151,2,123,1,84,3,112,0,165,0,143,254,85,2,142,3,26,1,248,255,66,3,1,5,160,254,60,2,183,2,206,1,198,8,14,7,89,1,190,0,94,5,160,1,147,3,118,8,168,0,174,255,24,1,252,253,66,254,72,3,47,0,21,2,44,0,150,254,57,253,137,251,22,0,193,0,192,5,171,255,233,0,21,7,194,255,67,2,224,5,38,2,176,3,213,6,211,2,138,2,124,4,204,3,116,3,115,5,87,254,131,2,0,0,232,3,184,3,74,4,249,0,166,5,160,2,178,254,169,255,124,8,214,253,90,7,112,10,140,0,34,7,61,7,152,3,213,6,30,10,52,4,141,7,246,7,119,255,69,254,237,249,245,4,150,4,212,1,19,254,134,255,241,5,61,254,9,4,190,4,226,1,159,6,94,4,47,3,137,2,128,1,66,254,76,253,107,0,193,254,163,253,138,255,49,255,7,254,13,2,44,254,244,255,176,10,75,0,142,7,25,5,112,3,54,9,219,8,5,5,39,6,212,7,208,255,208,254,94,251,77,254,51,254,5,255,146,254,108,254,221,253,223,254,163,253,171,253,230,253,214,252,91,255,136,255,3,0,100,1,127,2,217,4,222,5,96,0,177,0,238,2,77,254,183,253,106,251,156,254,109,0,177,255,27,254,32,1,213,7,9,0,92,4,219,2,112,3,86,8,178,3,247,254,49,6,41,4,133,4,186,4,75,3,14,254,100,253,175,1,118,1,65,1,27,255,160,5,53,8,101,5,193,1,205,1,131,4,151,255,39,0,128,254,249,254,111,1,182,0,141,254,108,253,5,3,68,255,127,4,203,3,53,5,96,6,155,5,6,3,243,4,197,4,30,254,192,252,47,250,19,255,46,255,92,3,122,3,79,6,40,4,216,1,38,4,168,4,185,0,53,4,221,3,200,253,32,252,88,249,63,254,122,252,5,248,114,255,135,254,54,254,46,255,214,253,251,251,245,255,109,4,217,8,183,254,93,253,131,252,6,255,145,2,163,4,7,2,230,5,243,6,8,2,27,2,123,5,15,2,141,5,22,5,205,253,153,252,32,251,109,255,49,254,111,3,180,255,30,9,24,11,51,2,13,10,81,9,120,2,134,7,104,11,207,2,231,7,48,7,223,253,45,253,84,4,129,0,131,255,116,3,137,5,96,6,157,3,162,255,30,6,215,6,171,254,253,5,15,6,79,2,139,1,238,254,180,255,213,3,15,11,153,0,169,11,52,7,8,4,5,10,189,10,228,5,16,11,87,7,23,3,175,4,26,2,66,255,59,254,209,5,234,254,220,253,134,4,11,255,149,7,252,7,0,4,24,6,114,6,0,2,253,0,210,1,194,255,189,254,127,4,39,254,136,254,251,1,79,254,100,5,114,8,131,3,151,7,165,5,134,0,192,2,184,1,204,1,13,2,228,255,62,254,23,1,58,5,0,0,203,3,252,0,67,254,141,253,33,252,164,254,166,253,112,250,142,1,200,2,120,6,149,255,58,1,78,255,93,0,178,8,190,8,6,2,81,3,144,2,50,254,57,253,65,254,174,0,222,255,167,4,137,255,42,0,237,3,140,254,18,1,246,2,12,4,48,9,46,7,163,2,188,6,218,5,174,1,6,5,85,8,127,255,73,254,0,0,139,254,32,3,96,8,6,0,51,6,174,9,222,1,84,2,80,8,84,254,32,253,225,5,129,1,178,0,212,3,139,0,193,1,201,4,242,253,182,252,42,252,145,0,18,6,218,4,111,2,168,5,144,2,93,1,248,3,202,5,31,0,232,254,159,1,196,254,212,2,105,6,104,1,34,4,44,2,76,254,154,254,177,4,157,254,99,4,147,7,145,1,48,6,200,8,241,253,12,252,99,1,233,0,238,0,185,8,218,253,127,252,129,253,147,254,11,254,165,7,133,1,68,7,85,6,162,0,108,4,240,4,19,255,150,4,110,5,128,253,101,254,116,0,28,255,158,6,250,8,103,6,138,8,219,8,50,2,249,4,98,10,67,1,82,1,238,6,66,2,83,4,84,3,22,0,82,2,166,3,113,255,206,2,190,1,50,0,71,0,247,255,174,254,70,253,129,250,102,0,118,255,204,252,202,254,43,254,133,251,158,1,67,0,245,254,36,4,46,3,161,5,12,6,80,5,248,4,218,6,103,7,125,6,227,7,85,8,28,7,16,7,14,9,53,7,132,2,163,255,198,1,90,3,73,1,120,255,233,1,254,254,128,255,58,255,23,253,215,255,204,255,247,254,39,252,90,1,137,0,223,1,51,249,20,253,84,253,117,251,67,249,145,254,129,252,135,251,240,252,24,254,78,252,56,252,171,255,122,254,43,253,215,0,172,254,85,255,252,3,148,3,177,7,52,2,179,0,234,2,150,2,209,3,198,6,119,3,110,2,146,3,171,3,88,3,141,4,53,1,176,2,35,3,149,3,161,0,58,2,118,0,236,255,229,254,208,252,214,255,204,0,52,251,187,254,50,254,61,252,54,255,113,255,36,252,28,254,151,254,66,253,46,252,35,254,210,254,234,252,92,251,156,255,238,252,192,251,226,251,77,252,108,249,54,255,181,252,242,252,241,251,158,250,123,252,144,253,146,255,171,255,100,1,213,0,246,255,19,254,108,1,6,3,169,1,54,3,223,1,173,255,45,2,8,2,32,252,232,249,196,253,165,253,27,253,230,255,10,254,130,253,121,252,209,0,50,1,147,0,196,254,175,253,172,253,171,255,45,255,31,255,106,252,239,253,117,0,233,0,73,254,30,253,77,4,239,2,121,2,177,5,180,6,231,5,229,6,177,5,142,3,98,4,132,4,81,3,74,5,100,3,214,1,153,252,130,251,252,248,153,252,163,252,32,252,138,255,155,0,212,0,229,251,175,252,162,253,163,251,199,248,66,245,5,252,109,250,179,248,114,1,72,255,98,254,191,3,237,1,104,0,190,3,15,4,31,2,154,0,141,2,201,0,225,4,251,1,150,0,151,2,247,1,230,0,111,2,9,3,163,2,147,2,88,0,146,255,75,3,244,0,224,0,126,1,29,2,46,1,212,2,177,1,154,2,142,4,222,2,85,1,118,255,20,0,115,254,97,251,88,254,210,255,191,254,160,254,132,255,53,5,253,3,56,4,6,1,110,1,211,2,154,3,27,1,217,253,31,0,132,253,157,253,79,253,71,253,97,254,72,252,245,252,55,255,207,250,170,253,153,254,71,252,251,250,166,0,237,1,49,1,221,0,78,3,191,2],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([98,2,72,3,168,3,6,3,45,253,212,250,19,251,155,254,255,251,148,250,184,251,160,250,147,254,120,250,167,248,160,253,250,248,65,249,94,253,223,253,107,251,65,253,166,2,18,3,148,0,133,255,184,2,8,5,132,2,94,1,246,255,158,1,102,2,15,0,137,0,88,1,45,255,210,252,24,250,205,252,121,254,94,252,180,253,47,0,177,253,126,252,115,252,183,251,93,255,8,251,113,251,99,255,72,250,11,250,123,254,6,251,92,251,144,253,159,2,213,0,198,1,124,0,238,254,243,253,39,253,16,254,104,255,192,250,122,0,135,0,167,244,179,253,118,254,64,249,185,1,206,255,196,5,136,3,19,3,60,1,236,0,72,254,165,254,217,0,157,1,113,252,107,252,121,0,57,254,92,252,202,0,164,255,47,254,137,254,232,1,134,1,218,1,108,3,217,2,60,1,233,248,224,250,99,253,87,0,194,3,176,1,51,2,7,255,222,251,250,0,29,1,81,4,117,4,171,1,184,2,242,251,128,249,210,249,76,252,90,1,160,0,203,254,240,254,166,252,158,2,112,2,226,4,80,252,104,254,102,253,162,253,192,254,128,254,20,254,230,0,65,0,78,1,206,255,240,255,240,255,78,253,139,250,255,6,180,6,119,5,174,9,15,8,124,5,221,4,191,5,146,5,130,254,243,251,254,255,173,0,114,254,121,4,211,5,232,7,9,7,4,3,250,4,226,5,149,5,199,6,209,7,55,4,194,4,249,4,126,251,197,248,207,250,216,252,147,251,184,251,61,254,247,251,70,249,65,0,66,2,172,255,60,250,126,246,14,249,3,253,170,250,18,254,38,255,174,253,93,252,81,1,20,255,50,2,53,9,102,10,146,7,209,5,252,4,106,3,189,0,102,1,118,1,17,250,23,247,214,246,57,252,9,251,209,247,140,253,92,251,250,249,125,6,19,4,34,2,53,2,37,4,220,2,192,255,188,252,78,254,76,254,160,255,203,0,54,4,192,4,100,6,139,3,254,5,218,3,70,1,197,3,77,3,142,0,172,255,197,0,214,1,75,9,34,6,109,4,214,1,190,4,139,1,96,5,176,4,101,4,18,4,92,1,225,253,46,251,136,254,41,255,75,255,225,1,101,248,171,249,46,255,18,253,95,251,134,1,29,0,113,254,27,0,52,3,212,4,243,2,183,2,211,3,153,1,82,255,173,4,11,4,144,3,76,5,54,7,32,252,99,250,228,1,51,250,92,249,208,0,100,254,180,4,152,5,241,254,128,3,120,4,96,254,241,6,154,5,96,249,172,245,52,255,3,249,241,249,9,4,136,249,233,249,23,5,27,251,203,249,57,4,99,253,185,251,190,255,86,253,64,1,167,254,147,2,49,1,45,4,244,250,220,252,237,255,157,249,245,250,29,0,109,249,15,254,71,0,225,254,249,255,156,255,18,254,62,252,19,255,84,3,89,7,204,6,63,251,149,250,227,0,108,253,46,1,117,1,96,0,63,4,233,4,206,251,123,249,160,0,229,1,28,8,6,7,90,252,36,255,40,2,172,253,156,253,237,0,80,1,184,6,111,3,131,2,117,2,178,1,243,4,10,2,97,6,15,0,244,0,71,254,195,5,205,2,184,0,27,7,54,6,173,6,220,3,5,1,169,3,45,8,41,9,240,5,91,8,66,7,70,6,191,253,189,253,77,251,68,252,135,0,24,254,48,254,51,0,174,254,139,253,164,254,45,253,122,4,25,8,162,5,144,8,186,5,143,3,92,250,220,249,26,247,120,5,198,2,17,5,55,5,121,2,160,3,154,5,146,8,34,10,118,9,156,8,89,7,214,3,194,8,62,7,124,1,24,3,121,4,193,255,229,253,158,1,4,255,60,252,198,254,19,251,85,253,244,252,193,252,242,253,19,252,126,249,145,251,88,254,181,249,60,254,213,254,244,4,24,4,130,2,123,4,85,3,88,3,93,253,176,254,139,0,220,8,63,5,138,5,29,0,0,3,29,3,56,251,167,1,52,2,218,250,198,251,245,0,234,250,212,252,61,2,238,250,175,249,134,2,56,252,66,3,211,2,225,3,116,6,235,7,65,255,207,252,176,1,150,2,60,0,198,0,114,2,229,3,50,5,112,6,171,7,9,5,195,249,163,255,211,255,192,251,37,0,172,255,117,6,47,10,33,9,41,4,248,7,73,9,115,4,22,9,70,8,91,3,101,1,230,5,152,2,203,4,75,4,223,1,80,5,144,3,105,7,218,6,227,7,144,4,117,7,248,6,143,1,34,0,0,1,175,253,208,254,227,251,35,2,158,6,127,5,135,2,157,255,171,254,212,5,111,6,166,4,38,0,124,253,44,255,139,1,78,3,222,0,64,253,3,253,52,253,44,253,84,248,12,245,106,255,35,1,174,255,209,4,179,5,239,3,116,255,101,255,153,0,183,1,41,1,32,6,7,250,102,254,132,253,0,6,199,1,19,255,208,250,117,255,252,254,19,2,42,2,100,3,13,1,240,4,94,2,23,255,115,3,207,1,230,2,88,2,136,255,183,255,165,1,212,0,73,254,198,255,36,3,250,250,39,251,216,2,38,1,22,254,50,0,177,253,119,252,26,251,42,0,81,253,147,0,231,255,17,1,84,2,201,254,189,4,89,2,14,253,81,3,72,2,173,1,95,2,75,2,166,253,90,255,205,1,228,252,201,252,9,3,100,5,142,3,219,6,119,0,137,5,204,3,37,255,144,252,196,249,231,251,14,252,182,1,55,253,157,250,78,0,0,0,65,254,101,251,144,251,217,250,219,249,200,8,231,6,29,5,178,3,47,6,152,5,126,4,226,1,180,1,43,254,172,251,106,2,65,254,58,252,64,4,28,251,21,250,142,255,176,251,40,248,189,253,210,0,101,2,241,1,73,248,99,250,130,2,11,251,168,252,243,3,146,249,95,251,39,4,237,249,96,253,180,4,100,249,166,251,111,2,45,252,210,250,3,251,27,2,109,255,126,3,182,250,127,252,78,254,120,3,219,1,172,1,153,0,128,254,82,1,44,250,1,254,103,1,50,252,165,251,42,254,105,0,218,253,165,2,87,252,135,251,109,3,124,1,252,254,210,0,149,6,156,3,232,4,239,6,166,4,71,4,139,5,119,2,21,2,115,2,43,1,165,254,101,254,234,253,135,2,118,253,29,0,173,253,134,254,169,250,27,6,122,5,97,4,185,5,65,4,130,5,136,2,208,247,190,251,250,255,55,1,62,255,155,252,129,253,193,252,160,1,118,251,56,251,69,5,33,251,83,252,21,7,111,247,61,248,197,1,149,253,169,250,68,252,186,249,76,248,29,250,105,251,223,251,176,251,135,254,89,2,201,0,84,7,57,3,118,1,82,254,213,250,29,0,139,250,31,251,205,250,17,252,32,250,192,3,135,250,39,248,197,0,157,250,99,248,20,255,203,251,123,0,166,1,103,2,245,4,34,2,206,254,246,5,136,3,170,4,252,6,153,4,142,253,140,252,10,250,199,0,254,2,224,5,215,251,94,3,197,0,246,251,19,249,137,252,224,252,145,0,87,2,146,251,249,253,114,2,75,251,122,248,244,1,114,252,239,251,141,250,60,250,225,249,55,252,245,253,74,3,34,0,2,7,134,2,94,3,73,251,160,248,22,252,178,255,247,255,96,253,20,4,247,2,80,0,168,253,115,4,251,3,57,0,208,7,142,5,191,252,134,5,97,4,78,251,94,6,236,4,51,254,140,5,220,4,1,6,207,3,253,0,229,254,68,1,153,254,87,2,61,255,106,0,76,2,62,0,181,253,11,253,133,2,205,0,51,0,177,4,246,2,71,251,161,2,122,254,144,253,45,6,173,3,105,255,255,3,223,2,4,11,21,5,178,2,210,254,12,2,157,255,124,252,204,249,91,251,60,4,251,0,238,0,222,7,0,7,242,3,221,4,97,6,205,6,53,251,252,249,72,251,147,253,200,1,147,255,40,0,191,255,20,3,219,252,69,253,186,250,185,253,136,3,64,3,223,252,20,2,82,2,180,7,128,5,71,5,103,251,168,248,190,247,251,252,56,2,180,3,9,252,55,4,236,4,169,251,226,1,126,255,242,6,20,4,12,3,45,250,245,0,144,3,196,254,139,251,107,252,232,253,94,250,214,246,239,252,246,249,60,248,45,248,1,1,141,3,199,248,135,253,71,251,254,249,130,248,226,251,70,6,191,8,40,6,201,253,36,250,248,249,1,251,195,0,89,5,207,252,37,1,195,4,243,253,118,2,173,4,94,249,135,246,208,248,209,254,219,2,235,2,111,251,5,255,13,1,74,252,181,255,148,6,98,251,59,254,237,3,193,249,73,2,122,1,229,247,197,253,85,254,239,253,121,251,109,251,229,254,51,255,204,253,228,252,222,4,205,2,229,8,159,3,27,2,58,254,47,2,184,1,51,253,180,5,79,6,250,251,28,4,74,6,111,251,118,255,79,3,226,0,39,0,156,253,29,251,150,255,39,253,117,253,200,3,22,5,54,253,132,253,191,6,97,1,45,4,154,1,226,252,100,255,75,4,194,253,150,3,190,1,226,250,244,3,210,1,128,5,55,6,253,2,149,5,100,5,221,6,157,7,164,7,74,9,42,6,255,7,100,8,148,3,98,0,249,255,101,7,138,5,93,8,92,1,125,5,43,6,152,0,110,4,9,7,245,254,154,0,115,5,114,251,213,1,30,4,138,251,107,254,207,251,195,250,40,247,211,249,148,254,101,3,170,6,118,251,37,2,14,6,55,251,116,248,126,249,51,250,71,248,249,247,65,249,118,252,158,255,151,248,233,0,212,5,124,3,108,0,181,254,64,249,110,251,92,249,220,251,188,7,254,6,210,251,51,249,139,248,245,255,3,6,37,5,192,249,94,0,241,1,165,1,187,1,59,255,214,249,163,254,30,252,169,253,229,253,116,4,59,252,117,250,127,255,195,250,175,0,65,254,137,254,31,5,7,8,141,254,118,253,205,254,207,251,93,2,109,1,247,247,143,255,174,1,140,2,146,3,199,3,12,252,206,249,237,246,225,5,224,4,47,2,6,1,26,254,111,254,65,249,62,5,10,6,50,0,56,0,176,1,182,254,119,0,164,253,19,250,200,251,214,252,178,3,103,4,31,4,136,250,89,249,80,249,10,251,64,253,219,250,39,3,29,7,119,4,200,10,70,6,123,8,96,4,153,1,106,255,109,255,148,1,191,3,135,9,119,7,141,8,118,252,115,255,158,252,120,252,114,255,54,254,211,253,60,253,113,249,194,252,105,250,209,249,206,248,190,250,194,251,188,249,240,254,147,3,84,251,4,3,32,4,130,253,46,251,151,248,12,254,175,255,202,252,247,250,179,249,33,253,139,255,17,3,168,0,190,251,109,4,154,3,184,251,22,253,104,5,31,1,221,253,217,251,160,250,103,247,76,251,128,247,222,249,35,249,25,250,63,247,253,252,55,249,75,4,62,3,204,249,212,2,219,4,250,249,181,2,37,3,102,249,16,255,129,6,92,249,252,255,100,253,101,8,48,3,18,4,206,252,207,248,22,0,4,253,5,254,193,1,129,251,151,253,33,1,181,252,196,249,16,255,242,1,22,255,111,253,16,253,224,1,142,6,193,254,31,254,193,0,213,252,171,0,137,255,176,247,54,255,176,252,181,6,116,4,164,6,67,0,239,255,66,0,244,255,102,249,187,253,152,255,240,254,204,251,94,251,203,248,136,254,140,251,98,252,92,254,198,255,253,254,112,253,146,251,215,253,252,6,203,4,199,1,129,0,206,1,185,1,16,255,240,253,72,3,2,2,130,0,181,255,90,4,111,2,153,0,216,0,44,4,52,2,250,255,236,254,95,4,215,2,190,0,188,255,192,2,50,1,119,0,248,254,73,1,61,0,156,255,156,0,108,1,123,0,183,0,48,255,85,255,133,255,220,0,191,255,206,254,194,255,146,1,17,0,108,253,86,252,246,254,0,0,129,1,235,0,20,1,29,1,64,1,12,1,176,254,56,255,44,253,17,0,172,255,125,1,224,253,173,1,238,1,7,2,139,255,32,1,48,1,73,1,131,2,157,0,189,2,252,1,176,4,113,2,28,3,96,2,230,3,165,1,236,1,120,2,180,4,12,3,190,1,132,0,233,4,76,3,35,2,193,1,61,3,146,2,29,2,214,1,108,4,234,4,150,3,127,2,35,2,51,0,167,1,23,1,9,0,136,1,83,0,94,0,30,2,31,2,229,0,109,255,58,255,129,0,194,0,71,255,161,252,215,250,210,254,30,0,171,253,139,253,237,255,114,0,124,252,199,251,210,1,97,1,53,250,219,249,15,0,113,255,84,249,245,247,17,253,196,0,172,248,237,247,126,253,254,254,225,246,66,250,62,254,204,253,184,253,70,255,152,252,98,254,243,248,36,252,155,251,226,250,42,253,151,251,28,0,169,0,241,251,160,252,50,253,10,255,228,1,36,0,23,255,207,255,9,1,67,0,33,1,211,1,178,0,31,2,42,3,28,2,84,0,26,1,160,2,191,2,49,252,247,252,129,0,31,1,86,252,29,255,187,3,83,2,175,249,223,254,68,3,137,2,201,248,41,255,82,4,206,2,14,248,195,251,138,2,184,1,203,247,239,253,139,3,63,2,37,248,176,254,158,2,204,0,171,246,76,253,104,1,137,0,148,247,100,247,247,255,24,1,246,254,119,0,39,0,193,0,78,0,197,255,136,255,226,0,49,252,166,252,243,252,185,251,149,253,99,254,61,254,182,252,64,251,215,250,211,252,141,252,160,250,177,249,118,254,84,254,31,253,167,251,219,253,234,252,144,252,49,252,57,252,126,253,39,252,138,252,7,251,175,250,39,254,220,252,135,250,129,250,160,0,247,254,105,252,237,254,8,255,6,255,50,253,132,254,97,0,153,255,137,254,27,255,97,254,63,255,121,255,213,253,116,2,105,1,119,0,216,0,67,2,108,1,135,1,209,0,122,2,10,2,102,255,108,255,14,2,133,1,170,0,33,0,105,0,11,1,64,0,124,1,33,250,24,252,226,255,143,254,210,251,58,0,135,2,223,0,16,250,221,254,109,2,51,1,5,250,156,0,250,2,148,1,19,248,141,0,222,2,243,1,199,248,118,253,50,1,0,2,69,255,152,255,197,255,182,1,134,0,26,255,156,0,70,255,195,255,252,254,240,255,10,0,199,253,253,255,91,254,215,254,67,249,247,253,166,254,178,0,174,250,197,255,212,255,157,0,158,247,51,254,42,254,163,254,134,247,255,255,143,254,135,255,213,249,139,254,124,252,9,252,163,251,177,253,155,253,240,252,207,253,122,0,181,255,63,254,252,255,85,255,133,255,140,254,192,0,168,0,180,255,124,255,252,0,149,255,84,1,210,0,136,1,253,1,16,1,181,0,147,255,145,0,218,0,119,0,96,254,249,254,229,1,9,1,75,255,248,255,226,254,226,0,12,255,38,255,69,0,222,254,98,255,191,0,255,255,192,255,176,253,166,255,213,0,160,255,255,0,179,1,178,0,176,255,143,254,238,255,223,255,176,255,214,255,159,1,140,0,34,255,119,4,139,2,137,2,73,1,255,2,44,2,249,0,235,0,180,3,157,1,186,1,23,1,141,0,83,1,100,1,45,2,42,254,86,255,99,0,237,0,199,253,224,252,96,1,53,2,26,1,217,1,214,1,76,1,57,255,78,253,252,250,107,252,63,255,86,254,224,252,158,251,230,255,141,254,22,254,63,255,125,2,83,2,7,2,74,1,152,1,141,255,79,0,12,0,221,1,87,0,153,255,136,254,102,253,165,254,235,254,221,254,2,254,31,254,169,0,41,1,195,252,30,253,51,255,85,255,192,254,228,253,72,1,27,1,165,252,66,252,186,1,254,255,44,2,174,2,130,0,56,0,103,5,244,3,243,2,171,1,100,2,229,2,116,2,41,2,173,254,228,252,134,0,21,1,135,253,195,251,254,255,10,255,144,252,245,251,185,249,216,251,30,252,38,254,142,251,24,254,98,254,229,252,73,0,50,255,248,255,117,255,183,1,204,0,80,255,190,253,23,0,131,0,243,254,11,253,65,255,245,0,147,255,174,254,112,0,60,1,120,0,106,254,138,255,99,2,76,255,70,255,123,253,115,0,83,255,34,0,250,253,23,254,105,255,61,0,185,253,180,252,220,0,118,255,87,253,4,252,135,1,239,255,170,253,191,254,157,0,217,254,129,0,155,0,98,252,149,252,37,252,29,1,241,0,173,255,131,255,131,255,108,2,85,2,176,1,92,0,137,1,78,0,153,1,61,0,119,254,29,253,99,254,20,253,83,0,54,0,105,1,27,0,196,251,130,0,175,254,74,253,227,249,41,1,62,1,237,255,175,248,36,0,51,0,195,254,237,246,10,255,231,0,172,255,254,246,241,252,40,0,77,255,71,247,94,252,38,254,50,254,14,253,170,255,224,254,142,253,149,246,57,254,193,255,171,0,181,251,186,251,230,255,113,255,87,251,57,254,106,254,131,254,163,253,46,255,160,255,205,255,188,253,36,254,236,254,241,255,85,251,134,253,77,251,143,252,134,254,35,255,99,253,72,252,82,2,178,0,109,254,92,253,251,2,71,1,89,2,34,1,172,0,44,1,203,0,157,0,200,255,176,254,100,1,24,0,28,255,216,254,253,254,227,255,70,255,7,1,160,1,14,0,159,254,117,1,244,255,40,255,1,1,96,0,174,0,57,0,10,250,152,253,70,252,13,254,15,254,104,255,179,254,125,0,105,0,200,0,179,0,159,255,181,254,32,255,253,2,185,2,248,2,0,1,45,1,59,0,199,1,171,255,204,0,32,1,254,253,240,0,251,0,147,255,0,1,161,1,222,255,99,254,101,0,174,1,128,1,156,0,225,255,246,255,206,0,170,1,77,2,145,0,143,0,71,0,40,3,138,3,77,1,93,1,218,3,170,3,77,2,75,1,20,5,56,3,187,0,253,1,38,4,141,2,123,1,210,1,182,5,169,3,145,1,18,1,19,3,93,3,9,1,2,0,97,2,41,2,28,0,49,1,158,3,84,1,106,0,130,1,241,0,245,254,109,255,225,0,78,255,234,253,91,1,246,1,125,253,131,254,141,1,30,0,117,253,35,253,77,254,142,1,105,254,42,253,28,254,8,255,235,252,110,252,74,254,36,254,14,254,122,254,75,0,217,254,60,252,178,253,162,253,150,0,135,255,207,255,101,255,178,255,167,3,38,2,133,1,38,0,191,254,127,0,168,1,59,1,227,254,143,255,27,1,3,1,146,2,203,0,66,1,230,1,135,3,249,1,236,2,161,1,99,2,167,1,43,2,0,2,239,0,173,255,190,253,237,255,173,254,37,253,93,1,13,0,90,252,137,250,142,255,152,254,107,0,180,2,182,0,90,0,37,251,254,249,241,249,43,253,200,253,121,252,173,250,243,253,251,253,171,252,163,252,20,252,88,255,78,253,189,252,63,0,119,255,212,253,221,253,144,0,226,254,207,252,229,1,63,1,109,255,104,254,14,2,246,0,165,254,78,254,41,1,228,255,222,254,41,254,170,251,251,250,52,254,153,254,36,252,230,252,67,5,19,5,178,2,11,2,192,4,44,4,70,4,245,2,57,3,116,4,240,2,238,1,228,4,85,5,171,4,130,3,9,2,29,4,20,2,176,1,178,254,40,255,199,254,249,254,96,255,52,0,40,254,101,255,127,0,136,0,132,254,44,0,83,3,154,1,94,255,23,254,123,0,1,255,228,252,101,253,66,4,149,3,21,3,237,1,117,5,173,4,46,2,202,0,205,255,138,255,170,254,67,253,83,0,108,0,214,255,71,254,61,0,95,0,31,1,0,1,229,255,89,0,12,2,19,2,95,1,227,0,80,2,33,2,185,2,155,0,92,255,51,1,126,2,18,1,23,254,206,255,242,2,240,0,90,255,132,255,140,255,189,253,68,251,193,255,190,0,217,254,240,251,240,250,147,0,136,254,79,255,143,255,73,3,217,4,27,4,156,2,2,0,37,1,39,2,48,1,184,251,71,252,8,255,120,1,18,253,59,252,87,0,4,2,237,254,252,253,177,2,135,1,133,254,125,253,108,3,82,2,122,254,11,252,123,253,61,2,149,255,200,253,79,253,198,252,255,251,229,255,184,254,53,255,93,3,237,2,36,2,233,0,132,249,237,251,195,1,108,0,108,253,148,253,174,1,236,0,21,0,116,254,122,251,137,253,92,5,18,5,199,3,65,2,101,4,101,4,77,2,198,1,189,254,159,252,45,254,153,0,44,254,69,253,220,252,3,254,120,254,50,253,52,255,221,255,165,253,187,251,201,253,94,255,7,254,20,252,154,255,94,1,219,0,224,0,167,1,252,0,139,1,79,2,96,2,107,1,22,253,160,255,117,1,172,0,171,0,39,1,202,2,83,1,233,0,77,0,107,0,21,1,157,0,153,0,13,254,156,254,11,6,49,4,64,2,238,1,220,254,173,254,8,254,176,253,121,252,184,255,149,253,31,254,198,249,163,251,201,253,2,255,231,252,5,254,204,253,221,254,20,254,236,253,246,1,48,2,130,254,171,1,88,2,230,0,29,255,221,1,251,0,75,0,29,1,74,3,45,3,220,1,226,250,203,250,186,0,121,1,181,253,107,252,131,2,125,1,94,251,215,253,155,1,82,0,153,251,204,252,82,255,228,253,164,253,119,0,31,2,205,0,132,254,145,2,141,3,55,2,112,0,214,254,138,254,114,0,167,252,5,255,56,0,159,0,145,1,89,1,222,255,116,255,145,255,161,253,41,0,102,2,99,1,142,255,179,255,218,1,66,2,56,0,170,5,156,3,74,4,140,5,229,2,144,1,246,0,22,0,76,2,57,1,135,255,71,1,63,3,216,1,142,251,160,253,88,3,40,2,39,251,208,251,126,2,88,2,154,254,254,0,179,254,209,254,122,253,227,2,102,1,74,0,202,4,135,6,197,4,81,3,193,8,88,6,215,3,124,2,49,7,197,5,237,2,128,1,94,1,7,1,87,0,128,0,146,248,83,252,112,255,192,255,58,249,1,255,32,1,225,255,172,245,42,251,110,1,235,0,149,249,188,251,192,250,208,254,227,253,205,251,164,251,123,0,102,251,4,255,208,252,76,255,8,252,21,2,53,2,233,0,25,254,82,254,68,255,78,1,99,3,212,4,22,2,171,0,202,249,185,249,123,2,118,2,108,247,54,1,156,3,156,1,202,246,184,254,188,3,17,2,177,245,135,254,118,2,22,1,214,245,61,1,31,3,43,1,154,246,133,0,84,1,31,0,148,247,68,250,131,0,125,0,96,251,22,254,117,255,46,0,24,253,191,1,123,3,52,2,67,0,61,254,134,2,92,2,215,253,83,254,148,252,140,1,162,0,190,255,25,5,147,3,223,1,67,2,64,4,26,3,194,1,22,1,54,2,68,1,223,251,102,255,148,0,79,255,15,246,168,0,46,4,80,2,209,246,214,255,51,3,89,1,216,246,61,253,209,2,250,0,129,247,39,250,203,254,122,0,178,255,183,255,120,0,173,0,252,255,6,1,249,254,251,254,81,254,192,255,107,254,36,253,207,245,116,0,173,255,63,255,11,250,80,252,35,254,43,253,4,254,51,1,170,0,172,0,64,3,161,1,64,3,174,2,31,255,177,0,126,3,50,3,30,254,123,254,255,4,15,4,129,254,201,0,162,254,40,0,218,2,123,2,226,0,14,2,247,1,206,1,82,1,142,1,23,2,202,2,40,0,230,254,202,5,191,5,61,4,219,2,25,6,48,4,141,3,181,2,139,5,2,5,121,3,111,3,129,4,216,2,162,4,72,3,30,255,106,4,181,3,177,2,18,254,38,252,236,249,128,255,200,253,47,253,55,253,230,255,61,1,12,2,70,0,135,0,107,254,159,252,26,249,116,253,82,255,223,252,117,3,5,3,103,255,165,255,75,4,239,2,6,254,131,251,85,3,134,2,241,0,14,3,7,2,27,2,61,7,164,6,77,4,172,2,31,251,50,250,48,254,188,0,131,252,127,250,224,250,171,254,121,255,182,1,81,255,18,0,87,4,208,3,63,1,208,0,106,250,24,249,83,0,202,1,238,253,24,252,51,1,129,0,184,252,241,255,227,255,156,254,113,252,100,252,133,251,14,255,137,255,240,253,127,0,123,255,7,253,3,253,190,0,173,255,197,254,127,3,10,2,231,0,34,255,102,0,193,255,84,254,60,1,187,2,123,1,70,0,25,0,204,2,58,1,148,255,251,1,106,3,54,2,238,0,108,0,173,3,7,2,195,0,169,1,196,255,85,254,1,1,139,0,153,255,138,253,190,1,78,1,114,1,156,1,48,0,84,255,78,253,229,254,45,2,187,0,226,254,158,0,227,1,140,0,14,1,168,254,137,253,156,3,67,2,140,255,132,0,142,0,210,1,188,255,192,255,230,0,111,255,210,254,226,253,221,252,112,252,250,3,225,2,251,252,247,3,118,2,41,1,220,245,95,0,189,1,80,1,182,247,235,1,254,1,191,0,27,251,161,0,254,255,188,254,86,250,135,253,56,253,151,255,182,252,2,255,101,254,100,0,128,253,222,254,242,3,251,2,118,253,57,1,145,4,218,2,140,0,249,1,6,4,254,2,4,3,31,1,43,4,55,3,239,1,237,2,49,1,67,1,92,255,206,1,78,0,143,1,170,254,150,252,69,0,85,2,240,255,108,2,109,2,81,1,118,255,68,254,247,254,218,0,84,0,62,254,185,3,154,2,34,255,221,252,29,2,92,2,103,252,160,250,244,0,116,0,183,252,45,253,118,2,76,2,140,0,151,2,38,1,112,1,167,3,22,4,113,3,247,2,210,6,184,5,148,3,116,2,180,1,195,3,25,1,1,0,137,255,74,0,30,2,213,0,1,0,201,253,45,1,241,0,4,1,179,1,222,0,140,1,168,3,189,3,84,4,191,2,254,1,250,1,40,3,222,1,89,2,182,2,192,3,108,2,204,3,229,2,212,3,88,2,66,3,205,2,255,2,172,2,131,2,204,3,167,3,126,2,245,1,149,2,208,2,83,3,151,255,136,253,209,254,139,255,83,254,130,0,21,3,186,1,246,253,68,255,192,2,117,1,9,253,42,0,46,3,11,2,237,253,143,251,117,1,66,2,86,253,77,251,57,254,29,1,117,251,215,249,182,251,44,0,81,0,174,255,200,2,107,1,221,1,246,0,186,3,110,2,68,6,86,6,253,4,123,3,129,5,91,3,156,3,124,3,6,3,17,4,179,3,118,4,40,0,222,253,181,255,32,1,152,253,150,255,71,253,230,255,87,255,96,255,133,252,29,253,233,254,128,254,251,251,162,254,245,6,28,5,22,4,48,3,44,6,253,5,192,5,154,4,225,5,52,4,192,4,131,3,122,3,136,3,52,2,142,2,152,3,180,2,253,3,88,3,19,254,132,0,177,0,249,1,71,0,195,0,228,255,97,0,200,1,95,1,92,255,88,0,183,1,22,1,216,255,94,1,115,5,181,3,234,0,161,255,219,252,40,254,38,0,93,255,111,1,158,255,233,1,11,2,1,4,154,4,188,4,138,3,63,1,34,5,46,3,205,1,133,255,225,253,220,252,191,1,20,253,188,254,127,252,153,251,31,253,11,254,235,252,55,253,203,2,9,3,215,4,154,3,157,7,147,7,88,5,97,3,218,2,112,3,246,2,132,1,153,252,198,1,17,0,5,255,131,254,214,252,209,249,239,0,247,253,58,252,232,252,3,1,134,252,178,250,254,252,183,255,166,0,93,1,44,255,67,1,184,252,211,254,217,1,179,1,89,253,48,254,216,2,95,1,100,255,57,255,155,2,176,1,29,0,4,255,159,1,224,1,37,253,133,254,145,0,47,2,240,253,137,253,122,251,97,255,189,1,17,1,123,0,127,2,117,1,130,255,32,3,56,2,84,0,94,255,208,2,200,2,194,252,232,253,71,255,222,0,152,1,196,1,245,1,3,3,127,252,181,250,189,255,186,1,232,252,130,250,54,2,90,2,167,0,186,254,253,1,74,1,161,255,142,253,38,253,168,254,132,6,193,4,11,3,199,1,36,5,60,3,72,2,207,2,148,1,225,255,245,3,21,3,89,0,107,0,123,3,37,2,103,3,45,6,149,3,159,2,98,3,199,5,9,5,86,3,135,1,44,4,98,4,44,3,78,0,206,253,89,1,51,2,173,1,153,255,161,1,19,3,134,255,75,254,155,1,20,3,111,252,95,254,90,2,242,2,30,255,240,255,151,0,248,2,68,253,118,0,152,255,242,255,152,251,48,0,28,1,137,1,122,254,93,254,129,253,140,255,114,252,50,1,60,1,243,255,183,4,216,3,53,3,157,2,85,251,75,253,140,0,43,255,140,252,96,254,57,255,210,253,152,253,245,0,108,254,104,253,6,1,56,0,151,253,44,253,171,255,21,254,192,254,112,253,198,253,193,252,127,255,240,253,30,250,193,255,145,254,127,254,154,254,191,254,4,0,51,0,146,254,42,255,63,1,255,1,146,0,159,2,239,255,221,254,146,255,208,1,117,255,16,254,54,255,220,0,200,254,137,253,108,253,183,255,113,253,204,252,106,253,115,253,248,250,167,252,82,254,71,252,65,252,248,254,207,255,44,254,184,255,131,254,162,254,205,253,63,255,105,254,55,0,104,254,221,252,11,0,203,254,137,2,188,0,58,255,0,254,205,1,177,255,54,254,218,250,249,254,122,255,245,253,135,249,77,254,17,254,3,253,57,0,165,254,98,254,178,1,139,251,14,255,104,253,167,252,34,0,188,255,61,253,174,254,163,1,163,0,226,255,250,254,57,254,235,252,106,250,47,253,238,3,152,2,13,1,25,0,107,2,4,1,183,0,96,0,56,252,178,250,124,254,135,0,75,253,67,3,200,1,154,0,81,4,191,2,57,2,107,1,89,6,46,5,217,3,236,2,36,255,219,0,76,0,48,255,81,250,130,249,49,0,149,0,60,252,84,255,16,253,176,254,113,2,209,0,6,255,190,255,7,252,186,252,254,255,61,1,136,247,51,250,118,255,123,0,172,248,205,247,247,253,85,0,57,252,146,254,73,253,143,252,103,252,13,252,5,253,75,252,132,255,0,255,160,254,108,253,178,0,207,1,98,1,48,1,48,249,177,253,230,254,79,0,55,247,175,0,99,3,243,1,118,255,76,255,75,255,235,255,13,247,39,251,52,254,248,253,253,252,195,1,246,255,204,254,15,1,191,255,4,0,214,0,233,254,77,254,213,255,164,254,98,253,35,0,191,255,45,255,38,3,23,2,85,0,41,1,57,0,239,0,210,2,237,1,225,0,149,2,72,3,35,2,228,253,136,254,14,0,93,1,213,1,209,2,75,1,162,0,224,253,16,253,194,255,246,255,142,1,168,255,212,2,189,2,237,255,235,253,162,255,89,2,136,0,185,255,87,253,21,253,90,255,168,254,5,1,206,255,161,0,204,255,229,1,81,1,117,249,50,0,190,0,163,255,22,247,25,255,62,255,174,255,161,255,173,253,102,255,128,0,126,3,245,1,76,2,201,1,167,254,206,0,122,0,110,0,137,253,29,255,199,253,3,0,152,1,239,0,141,1,226,0,59,255,254,255,128,0,235,1,1,5,136,3,36,1,215,0,26,2,50,1,3,1,253,1,91,253,233,251,13,0,65,1,89,253,180,253,154,254,44,255,210,253,243,0,134,2,223,1,230,1,86,1,122,2,20,2,107,0,34,3,75,1,136,0,144,255,114,254,249,251,226,254,186,254,63,253,32,1,16,1,19,5,120,4,154,4,92,3,89,254,121,0,127,254,108,255,217,254,210,254,190,252,205,252,16,0,232,255,55,255,36,254,43,2,91,0,11,255,38,1,218,255,133,254,62,252,59,251,89,251,18,250,239,254,117,254,122,254,11,252,123,253,61,2,205,248,250,251,249,1,212,1,232,2,179,3,97,2,237,1,79,253,108,251,140,253,121,255,254,251,195,0,155,1,196,0,46,6,123,4,63,2,81,1,41,251,247,252,120,253,114,255,83,2,57,3,199,3,223,2,74,251,54,252,175,255,170,254,23,253,13,0,184,255,119,1,198,1,19,0,127,5,153,3,145,249,84,255,93,3,50,2,160,3,1,6,39,4,228,2,88,246,72,252,8,1,82,0,10,254,59,252,202,250,123,0,99,3,212,4,22,2,171,0,240,246,52,254,12,3,107,1,90,251,151,253,252,0,195,255,82,255,34,0,243,3,20,3,227,246,247,0,167,1,153,0,240,255,157,254,6,1,193,1,216,249,207,251,224,253,141,254,153,253,207,254,27,4,37,3,175,2,16,2,6,0,74,255,167,3,107,3,234,3,41,3,199,0,1,1,126,0,76,0,184,253,142,251,87,2,44,2,175,251,145,250,201,249,249,253,47,252,211,250,108,0,91,1,46,253,49,252,109,1,101,0,111,255,169,2,249,0,103,255,0,0,178,254,198,253,159,0,156,1,29,1,176,254,151,253,71,252,58,252,119,3,177,2,29,251,84,0,71,255,114,254,176,253,177,1,20,4,141,2,85,0,73,1,216,255,105,1,79,254,63,253,210,1,62,2,102,255,142,2,80,2,34,1,89,255,72,0,93,1,175,0,162,2,41,1,209,3,208,2,211,4,180,4,245,2,232,1,112,254,243,254,26,2,116,1,186,250,149,250,86,251,165,255,238,4,108,3,7,3,188,2,169,253,218,255,82,254,46,253,184,7,94,6,223,3,96,2,111,0,20,1,30,255,160,255,77,252,124,254,245,255,249,255,209,254,237,253,185,252,82,1,198,6,174,6,125,5,245,3,252,253,169,252,123,253,210,0,80,253,96,254,1,2,230,0,202,252,131,253,134,251,192,254,72,252,110,253,74,253,183,0,142,255,145,253,50,3,162,2,65,255,52,255,219,2,123,2,51,0,197,4,115,3,64,2,70,252,81,254,58,3,86,2,170,254,13,253,124,252,105,254,154,251,158,254,50,255,0,254,221,253,214,252,155,254,148,253,66,0,3,2,183,255,102,254,152,252,79,252,92,250,53,251,191,0,239,255,224,253,25,255,252,249,224,253,123,252,138,252,134,252,242,249,19,246,205,252,54,252,175,0,198,252,46,251,6,253,169,253,234,255,122,2,213,252,37,252,122,252,189,254,203,0,26,0,129,254,21,255,243,252,113,254,238,4,138,3,92,252,137,250,156,250,144,253,93,0,87,0,98,254,229,253,77,253,37,0,121,2,254,1,125,254,36,254,206,250,143,1,66,0,7,1,105,254,207,255,177,254,95,254,17,4,73,7,245,252,191,251,96,250,22,253,166,252,64,3,187,253,9,253,141,254,95,253,6,254,40,8,208,253,134,253,101,251,15,1,241,0,14,0,74,254,12,255,115,254,207,1,178,4,23,4,162,253,227,252,98,250,205,255,189,254,225,1,32,255,184,253,241,253,238,1,113,3,170,2,79,254,206,254,22,252,42,2,147,2,222,0,171,0,96,255,159,254,169,2,6,7,29,6,172,252,99,251,97,249,176,254,102,253,114,0,187,253,12,253,24,253,61,255,119,1,241,1,47,254,220,252,182,251,154,0,26,1,125,255,206,255,65,255,49,253,67,1,220,2,6,6,46,253,205,252,132,250,105,0,6,255,185,0,78,255,10,254,26,253,65,1,254,1,87,4,189,254,201,253,58,252,127,0,228,1,82,1,96,255,52,0,174,254,220,2,87,5,18,6,142,253,222,252,96,249,226,254,182,253,164,2,73,253,169,254,142,254,22,254,39,1,101,7,138,253,194,253,10,252,176,255,133,2,187,255,250,255,194,254,148,254,14,3,170,5,14,4,199,254,35,253,141,250,120,0,60,0,221,1,248,254,183,253,133,255,199,2,221,4,121,2,165,255,157,254,8,252,3,3,246,2,5,1,253,0,81,0,38,254,162,3,167,8,184,6,216,252,181,251,123,248,208,253,242,252,169,0,220,252,206,251,68,255,142,253,201,255,125,5,74,253,52,253,86,251,108,253,98,1,73,1,254,253,201,255,225,253,110,1,9,4,158,4,110,253,65,252,179,250,201,255,72,255,93,0,163,253,226,254,106,253,148,1,193,1,59,3,226,254,162,254,17,251,116,2,50,1,227,0,240,255,147,0,145,253,186,0,155,3,98,8,94,253,134,252,186,249,69,254,28,255,83,1,143,254,234,252,103,254,231,0,86,0,189,5,64,254,187,253,219,251,82,2,194,1,79,255,132,255,86,255,65,254,159,2,135,4,124,5,36,254,101,253,25,250,179,255,118,255,204,2,79,255,140,254,131,254,195,1,166,3,147,3,6,255,80,254,202,252,16,1,60,3,190,1,26,0,19,0,225,255,186,2,156,6,120,8,122,253,47,252,124,248,77,255,39,254,12,1,133,254,23,253,77,253,11,0,127,0,9,4,24,254,107,252,199,252,61,0,67,1,135,0,147,0,111,255,82,253,173,2,18,3,146,6,6,254,176,252,239,250,35,0,90,0,222,0,233,255,166,254,98,253,199,1,79,2,7,5,53,255,175,253,194,251,140,2,96,1,181,1,39,0,63,0,55,254,73,3,241,4,57,8,248,253,142,252,208,249,184,254,57,253,141,5,172,253,170,254,186,255,209,0,173,0,136,7,89,254,170,253,103,252,165,1,93,2,218,255,254,255,11,255,129,255,128,3,177,7,111,4,133,254,250,253,213,249,173,0,118,0,241,2,201,255,131,254,204,255,217,3,253,3,241,2,254,255,221,254,133,252,241,2,224,3,167,1,8,1,131,0,60,255,127,3,226,8,239,9,133,253,192,251,61,246,239,253,42,252,14,2,4,253,194,252,220,253,76,254,60,1,87,2,93,253,84,252,22,253,199,255,236,0,245,255,55,255,175,255,226,252,16,0,77,3,22,6,31,253,39,252,68,251,44,254,17,0,34,1,233,254,184,253,68,253,183,0,54,3,193,2,247,254,20,254,93,251,165,1,152,0,212,1,122,254,166,0,244,254,39,0,14,6,76,7,133,253,58,252,221,249,59,254,20,254,142,3,228,254,253,251,181,255,75,255,123,255,60,7,67,254,144,253,106,251,164,1,111,1,207,255,123,254,44,255,87,255,195,2,49,4,184,4,229,253,58,253,87,250,83,0,93,255,228,1,20,255,225,253,157,254,82,1,151,4,46,3,10,255,203,254,66,252,94,2,248,2,60,0,166,0,248,255,93,255,206,254,57,7,3,10,21,253,255,251,9,249,93,254,66,254,209,0,50,253,202,253,234,253,6,254,181,2,89,3,49,254,71,253,198,251,69,1,175,1,50,255,241,255,248,255,5,253,33,2,151,3,238,5,157,253,241,252,223,250,0,1,201,255,208,0,91,255,164,254,106,253,65,1,168,2,162,3,186,254,83,254,73,252,228,1,190,1,58,2,59,255,72,0,183,255,141,3,175,5,205,6,205,253,31,253,74,248,132,255,96,254,206,2,34,254,108,254,198,254,240,255,190,1,100,6,217,253,231,253,18,253,198,255,126,2,214,0,55,0,71,255,241,254,124,4,21,5,188,4,29,254,97,253,16,251,117,0,29,1,31,2,52,255,121,254,145,255,1,2,2,6,86,3,142,255,66,255,46,252,109,3,83,2,208,1,4,1,4,1,201,254,236,2,235,8,168,8,251,253,79,252,133,247,186,254,60,253,122,1,212,252,77,253,24,255,208,253,175,2,129,5,36,253,78,253,188,252,153,254,133,2,130,1,247,254,62,0,90,253,145,0,108,6,184,4,213,253,36,252,47,251,178,255,14,0,114,0,185,254,154,254,23,254,136,1,165,2,185,2,55,255,20,255,140,251,181,2,193,1,178,0,13,255,0,1,79,254,99,2,105,5,152,9,156,253,123,252,72,250,205,254,239,255,243,1,197,254,101,253,2,255,0,1,172,1,183,5,26,254,90,254,224,251,143,2,114,1,18,0,154,255,71,255,236,254,243,2,42,6,55,5,24,254,165,253,118,250,182,0,163,255,102,3,183,255,54,254,164,254,67,3,94,3,189,3,230,254,179,254,22,253,35,2,71,3,172,1,17,1,167,255,13,0,172,3,172,6,16,10,94,254,196,251,34,249,212,255,154,254,3,1,15,254,125,253,208,253,99,0,45,2,193,3,91,254,2,253,107,252,39,1,70,1,184,0,175,0,15,0,142,253,20,2,110,3,189,7,69,254,0,253,5,251,221,0,156,0,12,1,39,0,149,254,7,254,183,2,4,3,116,4,94,255,53,254,112,252,197,2,188,1,146,2,25,0,47,1,200,254,244,4,130,5,179,6,215,254,2,253,212,248,249,254,148,255,46,4,106,254,243,255,127,255,57,0,182,1,174,10,138,254,25,254,189,252,48,1,184,2,164,0,104,0,21,255,5,0,75,6,108,7,119,5,27,255,186,253,211,250,149,1,192,0,49,3,169,255,74,254,111,0,4,4,175,4,225,3,68,0,81,255,90,252,9,4,93,4,195,1,222,1,200,0,8,255,79,8,136,10,250,7,189,252,213,250,173,247,225,252,76,253,210,1,212,252,248,251,43,254,146,253,32,1,152,3,67,253,183,252,210,251,101,254,0,2,8,0,122,254,165,255,24,253,226,255,19,4,137,4,202,252,132,251,124,251,218,254,210,255,110,0,101,254,138,254,90,253,214,0,19,2,156,2,106,254,92,254,86,251,231,1,232,0,47,1,194,254,91,0,40,254,123,0,208,4,141,9,46,253,72,252,41,250,30,253,93,253,52,5,225,253,162,253,45,255,161,255,158,255,228,5,219,253,254,253,87,251,217,1,211,0,73,0,224,254,144,255,123,254,25,2,52,5,234,4,201,253,13,253,247,249,71,0,229,254,120,2,86,255,31,254,19,254,169,2,234,3,49,3,156,254,181,254,147,252,163,1,194,2,90,1,241,0,222,255,186,254,121,1,158,7,91,7,41,253,205,251,167,249,23,255,225,253,116,0,244,253,218,252,183,253,183,255,222,1,217,2,224,254,99,252,137,251,173,0,191,1,204,255,68,0,27,255,162,253,193,1,17,2,5,7,177,253,149,252,173,250,183,0,112,255,68,1,153,255,60,254,102,253,111,2,232,1,152,4,18,255,1,254,20,252,70,1,40,2,202,1,136,0,108,0,193,254,114,2,63,5,91,7,22,254,122,253,62,249,70,255,63,254,216,3,30,253,180,255,86,255,218,253,243,2,0,10,16,254,2,254,77,252,210,0,182,2,204,255,84,0,190,254,57,255,66,4,89,6,200,4,136,254,165,253,140,250,87,1,74,0,120,2,81,255,10,254,224,255,204,3,52,5,222,2,52,0,217,254,167,251,41,4,150,3,160,0,137,1,107,0,115,254,190,4,89,10,205,6,136,253,79,251,157,248,49,253,235,254,97,1,117,253,144,252,134,255,45,255,209,0,58,5,206,253,54,253,221,251,48,255,132,1,159,0,192,254,195,255,217,253,37,1,68,4,163,5,120,253,159,252,27,251,207,255,113,255,49,1,111,254,29,255,183,253,49,2,20,2,159,3,139,255,69,254,92,251,251,1,180,1,36,1,177,255,233,0,54,254,159,2,1,4,92,9,135,253,182,252,11,250,204,254,226,254,128,2,139,254,147,253,105,254,162,1,253,0,25,5,197,254,187,253,143,251,60,2,173,2,231,254,61,0,188,255,141,254,223,3,77,4,218,5,19,254,85,253,174,250,209,255,164,0,192,2,0,255,198,254,244,254,119,2,181,3,28,4,138,255,164,254,191,252,68,0,156,4,56,2,152,0,117,0,34,0,89,4,110,7,191,8,167,253,65,252,86,249,113,255,23,254,224,1,180,254,113,253,194,253,54,0,97,1,168,4,50,254,116,253,228,252,150,0,37,2,112,0,195,0,145,255,253,253,167,2,84,4,111,6,210,253,19,253,63,251,247,255,16,1,85,1,203,255,247,254,233,253,233,1,75,3,18,5,136,255,30,254,248,251,120,2,31,2,152,1,179,0,50,1,242,253,100,4,184,5,196,8,95,254,238,252,230,249,32,255,128,254,84,5,135,254,53,254,231,255,129,1,233,1,126,8,180,254,117,253,195,252,32,2,41,2,61,0,22,0,143,255,167,255,104,4,189,6,244,5,40,255,139,254,139,249,161,0,60,1,140,3,91,255,34,255,189,255,82,5,151,4,21,3,73,0,4,255,1,253,226,2,164,3,104,2,106,1,246,0,130,255,19,3,94,10,211,11,77,253,174,251,114,247,203,253,180,253,12,2,178,253,45,252,22,254,249,254,141,1,214,3,191,253,187,252,79,252,234,255,179,1,207,255,66,255,138,255,139,253,168,255,216,4,233,5,132,253,229,251,5,252,221,254,189,0,3,1,255,254,42,254,139,253,145,0,177,3,126,3,186,254,148,254,186,251,31,2,4,1,118,2,54,255,189,0,47,255,101,1,99,5,43,8,199,253,205,251,87,250,54,253,17,255,151,3,92,254,63,253,172,255,147,255,142,255,103,9,99,254,239,253,103,251,226,1,112,1,131,0,70,255,184,255,125,255,93,3,231,4,196,4,157,253,110,253,195,250,227,0,135,255,119,2,80,255,23,254,38,255,233,2,151,4,189,3,191,254,108,255,88,252,159,2,198,3,216,0,84,1,253,255,113,255,213,1,56,7,133,9,39,253,63,252,109,249,43,255,2,255,65,1,1,254,74,254,247,253,130,255,213,2,135,3,172,254,83,253,248,251,60,1,224,1,20,0,23,0,167,255,217,253,97,1,27,4,253,6,224,253,11,253,172,250,42,1,231,255,180,1,156,255,120,254,249,253,211,1,242,2,54,4,46,255,114,254,202,251,108,2,146,2,118,2],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([33,0,147,0,78,255,153,3,151,6,129,7,187,254,240,253,70,248,2,0,227,254,142,3,141,254,22,254,26,255,0,0,85,2,218,7,16,254,117,254,190,252,37,0,177,3,245,0,181,0,96,255,112,255,201,5,93,5,77,5,157,254,167,253,10,251,42,1,66,1,160,2,63,255,176,254,77,0,65,4,253,5,154,3,177,0,217,255,155,251,228,3,13,3,24,2,200,1,110,1,80,254,135,5,136,9,231,8,46,254,10,253,235,246,209,254,3,254,131,1,41,253,211,253,66,0,111,255,131,2,224,4,224,253,92,253,108,252,31,255,94,3,76,2,104,255,40,0,235,253,167,1,143,5,22,6,196,253,181,252,135,251,128,255,85,0,205,1,18,255,255,254,184,253,93,2,236,2,93,3,24,0,54,255,127,250,29,3,231,1,47,1,75,255,108,1,74,255,104,2,98,5,126,11,18,254,172,252,95,250,220,254,61,0,44,3,172,255,45,253,74,255,43,2,20,2,226,5,147,254,19,254,223,251,54,3,76,2,11,0,242,255,238,255,26,255,233,3,121,5,171,5,38,254,199,253,244,250,46,1,62,0,38,4,186,255,136,254,34,255,214,3,206,3,125,4,60,255,22,255,229,252,223,1,74,4,243,1,106,1,58,0,70,0,123,4,21,8,41,11,25,254,146,252,224,248,73,0,224,254,92,1,154,254,12,254,4,254,199,0,209,2,218,4,178,255,71,253,229,252,105,1,24,2,196,0,118,1,110,0,33,253,79,3,27,4,104,7,146,254,55,253,98,251,59,1,64,1,173,1,72,0,41,255,62,254,247,2,118,3,83,5,226,255,84,254,190,252,93,3,115,2,28,3,118,0,212,1,233,254,75,5,91,7,101,7,68,255,126,253,180,249,63,0,81,255,174,4,94,254,45,255,51,0,158,1,75,2,41,10,22,255,211,253,166,252,168,1,121,3,222,0,136,0,155,255,83,0,133,5,230,8,103,5,172,255,67,254,147,250,158,1,57,1,21,4,29,0,169,254,65,0,16,6,111,6,212,3,183,0,165,255,195,252,249,4,133,5,104,1,41,2,16,1,149,255,51,6,77,12,43,10,104,5,29,8,92,13,244,19,86,26,186,31,135,38,84,43,170,49,133,53,61,254,215,251,239,253,231,250,62,254,12,253,15,254,161,252,128,254,149,253,99,254,99,253,195,254,230,253,181,254,212,253,98,254,4,254,88,254,134,254,238,254,188,254,78,254,154,253,30,255,12,254,24,255,254,253,249,254,135,254,214,254,102,254,105,255,58,253,82,255,206,252,107,255,100,254,100,255,83,254,224,254,50,254,70,255,53,255,86,255,210,254,65,255,191,254,125,255,109,255,215,254,117,254,28,255,42,255,11,255,64,255,189,255,196,254,185,255,185,254,152,255,51,255,162,255,73,255,113,255,218,255,63,255,161,255,16,0,180,255,132,255,8,255,23,0,19,255,24,0,12,255,18,0,120,255,44,0,145,255,223,255,232,255,231,255,0,0,149,0,19,0,23,0,113,255,158,0,87,255,174,0,75,255,133,0,201,255,165,0,230,255,111,0,84,0,98,0,75,0,87,0,183,0,141,255,245,255,248,255,130,0,11,0,170,0,254,0,77,0,205,0,17,0,183,0,112,0,6,1,194,0,202,0,31,1,95,0,189,0,214,255,151,255,234,0,179,0,39,0,186,0,163,0,89,1,76,1,199,0,43,1,161,0,202,255,29,1,178,255,25,1,123,255,141,0,74,255,111,0,249,0,85,1,15,1,108,1,93,0,147,1,75,0,135,1,92,0,254,1,118,255,220,0,71,255,227,255,222,255,105,1,141,255,64,1,3,0,42,2,99,0,30,1,218,0,79,2,11,255,150,1,244,254,197,1,0,0,68,2,25,0,94,2,19,1,20,2,148,0,194,1,183,255,227,2,227,254,6,2,224,254,94,0,53,255,162,2,116,255,182,255,205,0,202,2,142,255,43,1,176,0,155,3,182,0,45,2,240,0,193,2,240,255,1,2,229,1,81,2,37,1,128,1,195,1,105,2,218,255,50,0,51,2,17,2,47,1,209,0,203,1,107,1,177,1,196,1,194,1,198,1,111,1,94,2,221,1,229,2,176,1,97,1,112,1,11,1,105,1,204,2,17,1,71,2,197,1,166,0,254,1,172,0,201,0,117,2,18,1,191,0,56,2,127,2,46,1,42,1,122,2,131,1,131,2,94,1,75,2,48,2,100,2,53,2,88,2,20,3,231,1,160,2,0,2,247,3,65,1,77,1,101,1,86,3,131,255,157,1,218,1,200,2,17,0,105,255,52,2,29,1,14,1,15,255,203,3,121,3,233,1,220,0,254,1,128,3,37,2,156,3,71,1,57,3,34,1,143,3,28,2,84,4,158,0,37,3,199,0,189,3,255,1,218,2,100,0,106,3,13,0,23,3,179,1,120,2,164,2,204,3,249,0,132,3,211,1,194,4,13,3,50,4,73,2,17,3,233,255,157,2,11,1,19,4,107,2,60,4,103,2,121,4,110,2,137,3,148,3,25,4,80,0,75,1,72,2,51,4,89,0,127,2,220,3,193,3,2,3,208,2,30,3,187,2,236,1,191,1,131,3,115,2,15,1,164,4,213,2,53,5,87,0,91,2,64,3,67,6,104,2,103,4,122,3,225,5,232,3,132,4,98,3,241,3,227,3,59,3,125,4,90,3,49,3,170,5,5,3,40,5,244,1,109,5,56,1,129,4,236,255,60,4,64,0,3,5,2,0,148,4,143,1,77,7,2,2,170,6,246,1,100,6,118,3,242,5,160,1,88,2,107,4,70,5,251,4,110,5,121,3,3,7,146,3,230,6,227,0,159,4,226,4,34,7,249,1,62,7,151,3,49,9,57,255,175,1,152,0,199,6,43,255,228,255,136,1,54,5,103,255,204,255,210,3,127,4,189,254,112,254,45,3,167,6,120,255,84,0,169,5,223,7,181,254,113,255,119,255,168,4,0,255,22,2,99,255,7,4,205,254,73,254,30,2,219,2,183,254,92,254,159,255,104,2,150,254,88,255,190,254,110,1,9,255,146,255,45,255,89,0,60,255,203,254,20,0,59,0,148,254,49,254,226,254,89,0,176,254,175,0,80,254,141,0,133,254,66,255,78,254,60,255,177,255,150,0,234,254,29,255,232,254,166,0,213,253,90,254,101,255,29,2,146,254,54,0,227,255,173,255,211,254,250,252,186,0,116,2,115,254,248,254,242,0,37,1,59,255,183,253,124,0,154,1,53,0,123,255,10,0,84,1,198,253,215,251,65,0,66,254,68,0,19,254,127,1,169,3,155,254,57,253,153,254,6,255,91,253,212,251,36,1,230,255,107,1,6,0,95,2,33,5,129,255,246,255,233,5,94,7,201,2,204,3,189,5,133,8,163,5,224,7,161,249,192,249,252,248,14,247,253,251,22,249,180,251,23,248,3,251,148,250,169,250,2,250,77,252,75,250,52,252,12,250,25,252,58,251,4,252,108,251,209,252,37,252,32,252,165,250,64,251,18,252,247,250,186,251,24,253,12,251,13,253,243,250,162,252,101,252,119,252,40,252,90,253,229,251,83,253,230,251,193,251,39,252,218,251,89,253,35,252,127,253,153,251,48,252,6,253,114,253,134,252,218,252,191,252,189,251,62,253,139,253,147,253,218,252,128,253,212,252,249,252,134,253,245,252,225,253,28,252,203,253,205,251,188,253,222,253,157,253,196,253,149,253,8,253,222,254,145,252,242,253,201,252,50,254,229,252,3,255,215,253,97,254,179,253,73,254,235,253,172,254,76,253,89,252,7,254,252,252,66,253,149,251,249,254,206,254,53,252,29,254,67,254,182,255,213,253,220,253,154,253,127,255,75,253,22,255,116,254,10,255,37,254,6,255,247,254,108,254,136,254,254,253,95,254,2,254,212,254,199,254,178,254,104,253,49,254,210,252,126,254,64,253,175,254,153,253,22,255,55,255,23,255,17,255,89,255,201,253,53,255,149,253,109,255,97,254,141,255,160,254,90,255,18,253,85,255,7,253,242,254,145,252,248,254,121,252,145,254,24,253,43,0,37,254,14,0,115,253,43,0,98,253,11,0,64,254,197,255,247,253,130,255,137,255,101,255,155,253,214,255,161,252,229,255,93,252,136,0,29,254,183,0,44,254,55,0,214,254,55,0,208,254,57,1,159,253,57,1,48,253,66,1,89,255,100,0,227,253,253,255,137,255,145,255,69,255,233,0,20,255,4,1,22,255,26,0,91,255,134,0,211,255,216,255,219,253,104,1,53,255,122,1,124,254,194,1,129,254,19,1,20,0,182,0,153,255,246,0,145,255,175,1,37,0,206,1,110,255,231,1,99,255,228,254,197,255,247,1,72,255,24,0,53,0,253,255,54,0,122,0,3,1,77,1,66,0,228,1,104,0,180,1,68,0,195,0,116,0,190,0,206,0,13,1,247,255,226,1,96,1,126,1,29,1,143,1,21,1,196,1,0,1,69,0,186,0,13,0,41,1,243,255,3,1,161,255,30,0,56,0,138,1,196,0,169,1,205,0,200,1,25,1,65,2,15,0,191,0,119,1,34,1,151,1,64,2,200,255,227,0,32,2,149,1,0,0,37,2,164,255,16,2,27,255,95,1,11,255,82,1,150,254,179,1,167,0,15,2,181,255,46,1,91,0,56,3,129,0,87,2,240,1,167,2,186,0,237,2,153,0,225,2,231,254,88,2,164,254,103,2,20,255,1,3,41,0,113,3,38,0,122,3,36,255,73,3,155,254,115,3,119,254,135,3,134,253,218,1,68,254,82,3,81,255,166,2,19,254,242,0,249,253,17,3,54,253,70,2,227,253,110,1,225,253,178,1,171,253,244,1,3,253,222,0,66,253,149,3,25,253,194,3,155,252,245,1,125,252,36,2,133,254,200,0,77,254,157,0,205,252,214,0,163,252,157,0,154,253,40,0,136,253,94,0,141,252,202,255,27,253,4,2,11,254,42,1,154,253,85,255,154,252,95,255,159,252,233,255,206,252,93,0,9,252,245,254,106,253,153,254,219,253,2,0,70,254,135,255,135,254,0,0,29,255,33,0,98,254,130,255,127,255,212,0,90,252,34,0,198,251,230,254,161,251,244,254,58,253,199,252,92,254,65,255,204,251,96,252,107,252,163,255,140,253,154,254,97,0,7,0,50,255,119,254,155,255,24,0,53,255,38,0,88,255,83,0,169,253,89,254,233,254,170,1,68,253,118,0,181,255,206,0,43,252,95,253,88,253,161,1,145,254,37,0,233,254,218,1,127,255,194,254,63,1,40,1,142,253,217,255,87,1,90,2,72,253,217,255,209,254,172,3,104,0,233,0,132,254,137,0,220,255,13,1,181,255,42,255,120,0,43,0,239,253,35,254,203,1,164,0,54,255,27,255,207,255,89,255,97,2,24,3,98,0,36,255,147,3,148,0,37,1,27,1,101,3,91,0,63,2,138,1,70,1,178,255,205,2,67,0,109,1,189,254,104,2,220,255,219,2,27,0,107,2,238,0,120,2,17,1,192,1,99,0,33,3,220,1,101,3,17,1,173,2,64,0,21,3,72,0,253,3,217,0,25,3,203,1,222,2,104,1,134,2,224,1,104,1,66,1,173,1,208,1,126,2,174,1,244,2,107,1,232,3,148,1,171,2,16,2,90,2,103,2,143,2,157,1,178,3,175,2,169,3,90,2,136,3,92,2,43,2,225,2,18,3,150,2,211,1,142,2,106,1,77,2,161,3,198,2,242,1,222,1,159,1,164,1,181,2,115,3,45,3,171,2,13,3,157,3,145,3,171,3,214,2,220,2,235,1,85,3,19,2,180,3,222,2,195,3,59,1,40,3,249,2,243,2,120,4,248,2,143,2,52,4,58,3,33,4,67,4,70,3,235,3,40,3,23,4,109,4,147,2,77,4,224,3,26,4,50,4,51,4,203,3,182,2,202,4,30,4,59,2,73,3,116,3,124,5,99,5,72,4,56,4,93,3,207,4,223,2,4,5,248,2,248,4,223,3,87,5,29,4,233,4,188,2,26,4,22,2,220,3,197,1,240,4,87,2,116,4,167,2,85,6,47,3,104,5,9,2,37,5,137,1,28,6,37,3,168,5,174,2,44,4,136,2,107,3,51,1,59,4,105,1,23,4,61,1,137,5,196,3,163,2,59,2,128,4,79,0,90,4,209,255,250,5,55,1,185,6,58,1,142,4,177,2,2,2,162,255,93,1,26,1,132,5,72,1,1,4,231,1,191,255,57,0,37,3,202,3,36,0,62,0,1,3,249,254,23,3,166,254,125,2,187,2,119,255,108,2,22,2,29,2,33,253,194,0,199,2,44,1,244,254,161,252,158,3,1,3,60,253,84,254,250,1,174,0,132,252,138,253,179,1,35,2,101,250,254,254,109,2,215,1,6,252,168,250,119,254,9,2,104,252,82,253,231,255,20,0,42,252,124,251,84,1,9,0,234,249,145,251,160,254,48,0,213,249,110,254,137,252,6,0,124,251,136,252,220,253,160,254,149,249,112,251,97,255,98,2,24,248,61,252,31,255,193,0,136,249,88,248,11,255,19,254,60,252,112,249,88,252,133,253,237,250,48,249,148,250,164,253,252,249,189,252,139,250,121,255,204,249,222,254,122,249,56,253,37,248,160,249,129,249,229,255,46,247,213,252,123,251,184,0,15,251,189,0,169,250,74,2,37,248,201,0,234,252,200,2,70,251,3,0,247,251,40,3,29,251,62,3,145,255,123,2,156,249,191,1,49,254,75,252,67,254,96,252,8,254,118,251,11,254,69,251,144,0,161,254,140,254,228,251,229,254,221,251,233,254,157,251,193,253,98,250,181,253,178,249,89,252,40,252,229,0,178,2,103,252,49,253,109,254,82,5,83,253,47,254,106,3,141,1,3,254,210,255,61,1,54,5,27,254,200,1,45,3,183,1,101,254,83,1,130,3,43,4,87,254,46,0,161,5,241,1,115,252,224,252,185,5,22,4,2,255,191,254,150,5,141,4,68,0,94,1,10,4,154,2,114,1,11,0,31,5,22,3,143,0,232,0,17,4,26,6,142,255,151,2,80,6,54,4,198,1,67,2,251,4,16,4,180,255,141,3,240,2,43,4,153,0,0,2,92,1,190,4,102,2,129,1,51,7,40,3,13,1,10,4,203,0,62,4,140,2,249,3,247,6,106,4,173,1,47,5,131,1,104,5,207,255,159,4,184,255,191,4,96,254,233,3,32,2,213,6,160,254,199,4,10,254,175,4,179,253,57,2,29,255,94,6,114,255,42,6,26,255,179,6,54,253,8,5,186,252,118,5,107,4,77,5,48,255,208,4,181,1,197,3,95,252,50,3,43,3,130,5,91,3,227,5,164,0,188,4,107,5,1,7,228,1,82,7,200,1,15,8,228,3,146,4,46,5,122,5,36,5,80,5,111,4,238,4,210,4,82,6,81,5,232,6,141,5,203,4,48,6,67,5,86,3,160,2,149,6,30,6,115,4,246,4,224,7,33,7,237,6,45,6,252,5,180,5,207,5,178,3,123,6,253,3,208,6,188,4,112,5,209,3,236,6,137,4,34,7,140,4,182,6,149,5,181,7,55,6,161,4,96,3,84,8,37,4,7,7,46,3,46,7,245,2,56,8,35,5,6,8,234,4,65,8,147,3,27,9,162,3,187,5,123,4,30,10,159,5,197,8,208,6,42,8,84,6,54,9,174,5,106,10,226,5,84,7,45,7,22,8,183,7,203,6,41,6,170,2,9,5,48,6,253,7,174,5,50,8,194,9,212,7,151,10,18,8,214,2,52,6,196,10,32,9,228,0,79,3,152,9,123,6,36,0,45,1,150,7,165,7,66,254,160,255,106,8,116,5,253,5,77,4,14,0,96,2,101,252,36,253,103,5,190,7,65,5,184,3,88,253,65,1,1,5,244,4,198,249,109,1,173,3,178,3,55,249,202,252,70,9,227,10,29,7,228,10,236,248,29,247,169,248,23,246,152,249,200,248,97,249,44,248,60,251,136,248,59,251,198,247,233,249,204,249,219,249,236,249,85,251,177,249,56,251,65,249,177,250,129,251,176,249,100,248,6,251,145,250,231,250,133,250,185,249,101,251,116,249,225,250,93,250,58,250,169,250,126,252,24,251,221,251,205,250,146,251,42,252,147,251,131,251,32,250,200,251,228,250,4,252,97,251,44,252,50,250,57,252,41,250,36,252,102,252,233,251,203,251,186,252,101,251,166,252,58,251,149,251,239,251,216,251,1,253,152,252,123,251,67,253,144,252,62,253,118,252,250,252,8,252,190,253,200,251,223,252,58,250,177,253,169,251,176,253,134,251,55,253,148,250,128,253,160,250,171,253,221,251,96,254,121,252,82,253,192,252,107,253,60,253,68,254,156,252,22,254,103,252,138,254,248,252,149,253,110,251,183,253,219,253,255,252,229,252,77,254,109,253,238,253,27,253,14,254,187,252,155,254,171,253,233,254,153,252,13,255,137,252,230,254,103,253,232,254,101,253,91,255,208,253,118,254,121,252,150,254,102,254,64,254,185,253,103,254,194,253,199,254,155,254,131,253,220,253,198,253,76,254,128,252,8,254,130,254,11,253,198,255,31,254,91,255,150,253,65,255,138,254,22,255,130,254,34,255,85,253,231,255,32,254,94,254,153,254,38,253,159,254,188,254,99,255,80,254,190,254,118,254,209,254,228,254,152,255,167,253,223,254,212,253,60,255,180,253,106,255,109,253,160,253,39,254,232,255,188,255,64,254,38,254,248,255,6,254,211,255,20,253,72,255,180,252,4,255,123,252,165,255,184,253,159,255,116,253,138,0,4,253,125,255,90,253,244,255,98,253,165,0,253,254,253,255,184,252,149,255,115,252,37,0,32,252,44,0,170,252,97,254,185,252,13,0,23,252,241,254,254,251,203,254,226,252,34,254,192,252,24,254,81,252,168,0,168,251,125,254,95,251,155,255,97,251,216,255,83,252,196,254,250,251,254,252,236,251,143,253,199,251,230,253,56,251,213,254,224,250,76,254,83,251,105,253,113,251,95,255,64,251,78,253,43,251,193,252,104,250,48,253,133,250,19,254,126,252,28,253,102,252,223,252,178,251,110,254,213,249,60,252,219,251,130,253,11,251,98,250,37,250,90,252,34,250,129,252,194,249,204,253,69,249,51,253,162,253,171,253,114,251,195,251,167,250,44,254,102,248,43,250,210,248,71,252,116,248,93,252,37,250,68,255,157,249,91,254,79,250,174,254,88,250,234,255,106,248,90,254,42,248,7,255,16,254,142,255,138,248,13,253,247,250,174,0,85,250,147,255,30,254,255,254,59,251,4,254,175,249,151,0,98,249,208,0,114,253,107,0,141,249,29,0,139,251,23,1,65,251,50,1,52,251,6,254,38,253,81,255,44,251,155,255,55,252,39,2,154,252,22,1,201,252,59,1,205,253,120,1,229,251,228,0,5,254,24,1,169,253,25,1,10,253,253,0,207,254,123,1,13,253,122,255,157,253,148,2,200,252,24,2,207,252,134,2,99,254,49,0,171,254,177,0,59,254,14,2,30,254,77,2,185,255,83,1,111,253,8,1,12,255,39,1,19,255,59,1,125,254,57,2,6,254,247,255,135,254,14,0,96,255,149,2,40,255,40,0,204,254,210,255,95,0,214,0,14,255,167,0,170,255,192,0,200,255,27,0,180,255,31,0,36,0,53,1,150,255,74,255,143,255,74,0,71,254,234,255,23,0,139,0,81,0,245,255,44,0,15,0,169,255,119,255,138,255,49,255,98,255,198,255,16,1,164,255,100,255,71,254,8,0,120,255,128,0,35,255,101,0,38,255,40,0,59,255,180,255,56,254,9,0,67,254,33,0,89,254,226,0,60,0,73,0,34,255,156,0,113,254,24,1,194,254,245,0,171,254,166,0,13,254,83,1,66,255,71,1,37,255,69,1,119,255,167,255,172,253,100,0,141,253,144,0,91,253,231,1,28,0,252,0,121,254,214,0,215,255,26,1,228,255,99,0,226,254,75,1,49,0,203,1,124,254,53,2,143,254,180,1,28,0,80,1,247,255,141,1,89,255,106,2,34,0,84,2,239,255,49,2,116,255,43,1,79,0,10,2,125,0,203,0,2,0,244,0,32,1,255,0,211,0,175,0,82,0,84,2,187,0,5,2,108,0,125,1,255,0,109,1,41,1,241,1,96,1,71,1,174,255,25,0,210,0,115,1,245,0,5,1,3,0,33,2,193,1,140,0,38,1,44,0,39,1,212,0,91,1,244,0,238,1,75,1,16,2,201,0,51,1,93,1,155,1,101,2,28,1,102,2,157,1,208,1,66,1,112,2,141,1,97,0,200,0,96,255,128,1,149,0,106,1,239,1,13,2,13,1,73,2,33,0,235,1,135,255,177,1,171,1,99,2,242,1,4,2,171,0,187,1,241,1,154,2,184,1,19,1,54,2,63,2,146,0,127,2,155,0,158,2,223,255,173,0,212,0,184,2,90,255,89,2,65,255,183,2,23,254,247,1,175,0,230,2,214,0,220,1,116,1,59,4,66,2,18,2,74,2,9,3,169,1,106,3,59,1,73,3,118,1,80,3,91,255,53,2,35,0,223,3,217,255,38,4,73,1,200,2,18,3,72,3,133,2,27,3,149,2,164,2,59,2,150,3,120,2,55,4,161,2,49,3,62,1,132,1,106,3,244,3,52,2,80,3,112,3,108,2,45,2,223,1,159,2,197,1,180,2,212,1,72,3,130,2,76,3,133,2,250,1,172,1,129,3,55,2,69,3,131,1,194,3,243,1,179,2,49,2,171,3,158,3,15,3,40,1,22,3,12,1,4,4,18,2,106,3,73,1,36,2,143,0,163,2,35,1,247,1,66,0,17,4,103,1,18,3,97,0,37,3,33,0,69,3,214,1,255,1,49,0,68,4,71,1,150,4,67,1,3,0,242,0,104,3,218,1,177,2,173,1,49,5,166,2,18,4,108,2,85,4,152,2,65,1,193,0,121,3,182,3,129,4,106,3,125,3,123,2,109,3,94,3,180,3,145,3,13,5,153,2,40,5,127,2,229,3,25,3,122,5,6,4,152,4,244,3,86,4,191,3,130,5,157,3,123,5,147,3,31,2,94,3,92,4,198,4,67,3,166,4,67,3,166,4,191,3,124,4,123,4,96,5,20,5,169,4,135,5,207,4,55,5,61,5,234,2,68,4,175,6,3,5,109,5,49,4,54,5,30,6,129,4,195,5,109,6,113,4,33,7,196,4,32,4,102,5,241,5,194,6,96,6,9,6,84,6,6,6,87,3,60,6,97,3,131,6,181,2,117,3,180,6,239,5,143,4,16,5,161,8,224,6,160,7,213,5,228,7,202,5,254,5,74,7,158,6,216,7,30,6,236,2,225,6,57,3,38,1,112,5,60,4,10,8,109,2,35,5,109,1,7,5,198,0,4,4,232,1,128,5,249,0,147,1,246,3,25,6,68,1,107,1,109,6,20,4,193,0,111,1,242,7,67,7,5,255,67,2,238,2,226,3,13,255,30,0,45,5,111,3,228,255,87,255,112,2,149,3,59,254,159,0,186,0,90,5,154,253,6,0,25,2,136,1,162,255,221,254,13,3,229,0,128,255,214,254,245,0,235,1,67,253,120,253,204,3,21,3,11,254,128,253,178,0,255,0,147,254,122,254,1,255,61,1,66,252,218,254,65,255,228,0,249,252,65,254,157,0,19,255,111,253,48,253,105,254,92,0,139,255,157,253,78,1,26,255,89,253,196,251,112,255,195,254,123,252,163,252,30,253,152,254,171,255,41,253,166,255,237,252,100,0,234,255,121,254,249,254,200,255,183,255,175,254,14,253,5,0,67,255,62,253,144,253,89,0,168,254,121,255,167,251,159,254,19,255,84,253,145,251,237,254,178,251,243,254,77,251,152,0,145,0,46,253,48,251,49,0,80,0,32,251,248,252,8,255,135,1,36,253,221,253,213,1,218,0,1,255,160,252,69,0,110,1,90,255,27,254,80,253,191,0,68,251,84,251,86,255,87,255,228,250,161,249,65,1,214,1,117,250,37,251,192,255,16,1,175,250,8,255,236,1,53,2,47,253,159,253,195,0,229,1,195,253,123,255,171,1,202,0,85,255,138,255,199,0,63,2,2,0,225,255,182,2,243,2,170,250,217,255,40,2,45,2,23,254,15,1,168,2,25,2,13,0,59,254,87,3,186,3,123,255,204,255,175,255,226,2,111,251,125,2,31,4,35,4,161,255,164,2,235,4,57,4,233,1,49,1,63,254,186,3,234,253,228,3,55,252,98,3,222,251,35,4,242,250,106,2,120,250,105,2,54,254,86,5,97,255,29,7,250,252,240,253,242,255,86,4,78,251,123,252,252,252,177,1,24,251,25,251,13,252,210,254,166,253,183,253,9,253,174,249,8,253,243,249,184,252,127,248,208,252,229,253,23,249,69,247,29,255,220,255,14,248,217,248,197,247,154,251,89,246,232,248,66,250,252,0,115,245,97,254,197,253,45,254,229,5,18,6,132,8,183,7,22,9,228,7,191,248,111,249,191,248,37,249,248,247,130,251,170,247,138,249,173,249,181,251,88,249,149,251,191,250,184,249,177,250,154,249,198,250,243,250,211,250,15,251,128,249,143,249,49,250,173,252,190,250,216,248,123,250,116,247,254,250,87,253,7,249,143,249,58,252,198,251,97,251,116,249,226,251,207,251,138,251,122,251,73,251,24,253,6,251,27,252,90,252,153,250,97,252,120,250,14,252,231,250,241,252,69,252,231,251,124,252,31,252,207,252,31,253,201,252,52,252,91,251,30,253,186,251,30,253,126,251,240,252,223,252,214,252,238,252,132,252,248,253,24,252,206,252,124,253,59,252,191,253,142,252,227,253,74,253,97,253,107,252,173,253,126,253,122,253,153,253,68,252,147,253,99,252,253,253,41,253,29,254,209,252,27,254,184,252,190,253,72,254,55,253,190,253,187,254,111,253,98,253,126,254,198,253,71,254,102,253,254,253,237,252,120,254,239,253,246,253,59,254,25,254,89,254,152,253,183,253,151,253,99,255,106,253,244,254,88,253,164,254,190,254,189,254,136,253,68,254,208,254,82,254,180,254,54,254,235,254,44,254,109,253,231,252,193,254,132,253,29,255,214,253,139,254,165,254,178,254,46,255,56,254,64,255,238,253,14,255,40,255,58,255,146,254,142,254,174,254,95,255,103,254,20,253,149,255,132,254,218,254,125,253,33,255,103,253,22,255,27,253,115,255,16,254,126,255,2,254,117,255,185,254,84,255,207,254,206,254,188,253,92,255,249,254,250,254,84,255,189,255,110,254,31,0,146,254,246,255,76,254,170,255,241,253,71,0,135,254,234,255,159,253,244,255,90,253,189,255,193,254,63,0,65,255,35,0,75,255,217,255,14,255,126,0,89,255,116,255,224,253,155,0,215,254,174,0,215,254,38,0,248,255,117,0,132,254,197,0,60,254,240,0,246,253,223,0,153,255,110,0,69,255,87,0,101,255,169,0,209,255,157,0,26,0,173,255,156,255,128,0,80,0,209,0,194,255,6,0,7,0,22,0,5,0,62,1,236,255,248,0,211,255,56,255,193,255,156,0,187,255,250,0,73,255,113,1,130,255,143,255,180,255,114,255,134,255,192,255,2,255,225,255,35,0,79,255,185,255,249,255,171,0,93,0,27,0,108,0,212,0,182,254,47,255,133,255,186,255,233,254,95,0,160,255,20,0,68,255,195,255,198,254,87,0,212,254,178,255,158,254,122,255,11,0,122,0,116,255,122,0,237,254,152,0,219,254,140,0,174,255,138,0,191,254,145,255,32,254,100,255,153,254,76,0,2,255,216,255,133,253,160,255,246,253,79,0,5,254,8,0,244,254,47,1,229,253,68,0,66,254,61,0,246,253,50,1,111,0,189,0,77,254,122,0,133,254,166,0,197,253,114,254,136,253,182,255,21,253,161,255,57,254,194,0,72,252,83,0,226,252,192,0,13,253,192,0,243,252,94,255,149,253,234,0,105,253,215,254,24,254,147,255,60,252,124,255,186,252,188,255,181,252,58,0,168,251,170,255,219,252,213,254,80,252,3,255,246,252,206,255,59,252,219,253,160,254,158,255,32,252,169,254,163,251,197,254,163,251,205,254,125,251,138,254,131,253,26,255,114,251,213,255,237,250,156,255,99,252,119,254,6,251,168,253,79,253,126,255,57,250,200,254,215,250,2,255,72,250,70,254,244,250,155,253,19,251,9,254,35,250,144,254,214,250,26,0,104,250,190,255,49,249,95,255,148,249,45,254,32,249,220,253,143,250,200,253,236,249,153,252,41,250,246,251,149,250,197,253,131,248,240,253,9,249,133,255,151,248,25,255,250,247,189,254,252,247,118,252,72,248,201,253,131,248,148,253,1,248,35,252,203,251,142,254,17,248,64,253,205,246,19,253,76,245,191,251,139,248,159,0,36,248,248,0,142,253,133,255,221,246,62,252,99,253,104,254,157,250,106,251,60,254,148,254,236,251,33,253,124,255,183,0,172,249,16,253,221,253,205,254,247,252,19,251,158,255,41,0,144,252,189,251,255,254,97,0,190,249,215,248,31,0,230,255,124,253,207,253,76,255,222,253,127,254,185,251,102,254,222,252,98,254,197,252,55,254,54,252,22,254,171,251,41,255,108,252,112,255,87,252,19,254,11,251,251,253,29,250,181,0,101,0,180,254,135,252,188,252,87,252,209,253,83,254,139,253,221,253,73,255,175,254,223,253,174,255,6,255,226,254,5,0,124,255,164,254,4,255,219,254,40,254,98,255,100,0,227,255,197,0,20,255,88,254,163,252,43,255,116,255,249,255,85,254,69,254,187,0,159,255,84,253,32,253,219,254,2,1,144,254,104,255,106,255,136,1,159,253,175,0,114,255,43,1,118,255,152,0,137,255,73,1,26,254,204,255,37,1,198,0,73,255,117,0,175,0,75,1,198,255,238,254,231,0,44,1,224,254,74,1,207,254,116,1,145,255,153,1,247,255,167,1,83,0,0,1,67,0,111,1,237,255,248,0,91,0,113,0,221,255,150,1,65,255,154,0,238,0,40,1,5,0,197,0,141,0,221,0,57,1,198,0,211,0,165,1,244,0,78,1,88,0,170,1,13,255,198,1,202,0,40,2,251,255,147,1,35,1,185,0,219,0,45,1,251,0,138,0,128,0,69,0,197,0,32,1,116,255,195,255,188,0,105,1,197,0,86,2,186,1,17,1,34,1,143,0,216,1,226,1,157,0,114,1,159,1,65,1,116,1,129,1,146,1,40,2,155,0,24,0,38,2,7,1,245,255,21,0,104,1,227,0,147,0,2,255,168,1,97,0,110,1,243,255,119,1,141,0,193,1,232,0,140,1,251,1,218,1,16,1,189,2,68,1,106,1,209,255,75,2,148,0,31,2,69,0,144,1,205,255,49,2,59,0,220,0,246,255,96,1,147,0,206,0,211,0,141,2,185,0,51,2,41,1,53,2,28,1,82,2,121,0,254,2,192,0,142,1,118,0,130,2,178,1,233,0,8,1,225,1,211,1,129,0,91,255,187,2,239,0,90,0,26,0,86,1,218,1,201,255,27,0,132,1,94,0,84,255,0,0,213,2,123,1,196,255,81,1,114,1,209,1,95,0,63,1,38,3,83,2,78,0,4,1,241,1,83,3,210,0,48,2,202,1,62,2,48,254,202,0,241,1,113,2,54,255,152,0,48,0,200,2,236,255,54,2,100,0,203,2,199,1,212,1,155,1,93,2,63,1,134,2,195,0,103,2,145,1,26,2,168,2,227,2,201,0,155,2,178,1,186,3,198,1,169,1,134,2,235,1,94,2,169,2,160,1,252,1,241,1,54,3,170,1,47,3,148,2,135,2,116,2,204,2,185,2,210,1,106,2,201,1,173,2,204,1,109,1,53,1,209,2,55,2,68,3,89,2,97,2,44,1,57,3,203,1,175,3,175,2,169,2,21,2,147,3,86,2,79,2,243,0,108,3,195,1,106,3,164,1,18,3,61,1,220,2,220,0,154,3,61,1,84,4,111,1,19,2,210,1,4,4,137,2,29,4,103,2,10,4,41,2,61,3,90,2,253,3,31,3,159,3,35,3,110,3,251,2,31,3,240,1,93,5,5,3,73,2,2,3,35,3,162,3,75,4,25,3,198,4,94,3,185,4,127,3,1,4,215,2,4,3,77,3,148,4,91,4,99,3,253,3,62,3,245,3,73,3,142,3,250,1,191,2,215,4,53,4,108,2,51,3,172,4,59,4,131,4,57,4,118,4,139,3,11,6,97,4,29,5,136,2,63,5,100,2,204,5,220,3,199,5,169,3,217,3,48,5,187,3,61,5,173,1,142,3,73,3,58,5,52,2,155,4,156,1,132,4,147,5,40,5,154,5,50,5,128,2,248,2,190,6,130,5,190,0,43,2,49,4,237,3,170,1,1,1,71,3,212,3,235,0,231,0,240,5,143,4,109,0,37,1,246,3,33,6,49,1,142,0,124,4,27,2,221,254,148,255,189,4,204,3,22,0,40,255,155,2,60,3,30,254,182,1,197,1,151,5,187,253,90,254,21,3,131,1,154,254,58,254,174,0,12,3,220,255,140,254,134,1,122,255,139,253,160,0,206,254,239,2,22,251,181,254,177,0,10,2,8,255,62,2,5,255,127,2,237,253,151,1,172,253,138,1,93,254,21,3,151,253,33,3,38,252,143,1,167,252,215,2,249,255,6,2,65,253,54,1,137,251,232,255,22,252,31,1,64,252,107,1,237,250,56,1,2,250,245,0,235,249,49,1,28,0,153,0,165,252,81,255,223,255,76,1,138,250,102,255,212,0,154,1,175,253,59,255,188,251,64,253,120,252,191,255,26,1,111,1,106,252,82,253,89,1,93,0,254,254,155,254,184,2,132,2,75,253,228,255,192,1,237,1,239,254,193,0,15,2,34,2,13,255,255,253,128,1,120,255,17,1,159,254,0,2,114,255,25,2,58,255,173,3,238,2,83,0,248,0,66,2,93,3,200,255,80,2,74,3,44,0,124,3,24,0,33,0,122,3,240,255,214,3,63,3,118,5,255,5,106,7,180,6,96,5,156,7,185,5,22,252,95,252,184,251,77,251,127,253,93,252,164,253,63,252,245,252,95,253,189,252,236,252,96,254,104,253,54,254,2,253,116,253,247,253,106,253,17,254,1,252,3,254,1,252,84,254,68,254,216,253,144,254,63,254,33,254,45,255,226,251,121,252,196,254,7,255,199,253,177,253,199,253,237,254,227,253,65,255,52,253,68,255,182,252,248,254,179,254,8,255,194,254,28,255,237,254,1,0,201,253,28,255,141,255,35,255,18,255,138,254,59,255,5,254,34,255,189,253,254,254,80,254,195,255,12,255,167,254,2,0,174,254,39,0,41,255,87,255,198,255,0,0,200,255,250,255,53,255,125,255,1,0,70,255,251,255,45,255,6,0,132,254,11,0,94,254,140,255,131,0,122,255,113,0,89,0,252,255,71,0,254,255,237,255,64,255,6,1,24,0,189,0,151,0,123,255,147,255,186,0,103,255,166,0,37,255,37,0,139,0,193,0,171,0,81,1,124,0,158,0,195,255,141,0,226,0,243,255,190,0,231,0,34,0,98,1,109,0,60,1,201,0,244,0,164,0,74,1,171,255,134,1,172,255,254,0,71,1,1,1,79,1,235,1,147,0,220,1,105,0,54,0,77,0,181,1,114,1,165,1,58,1,193,1,86,1,73,1,126,0,161,2,36,1,59,2,132,1,243,0,193,0,141,2,64,1,109,2,24,1,194,0,124,1,5,2,69,2,45,0,67,1,111,0,166,1,233,1,139,1,222,2,22,2,110,2,34,2,230,1,246,1,62,1,60,2,189,0,38,2,129,1,166,1,99,255,153,0,131,255,126,1,59,255,130,1,249,254,78,1,228,0,185,2,68,255,1,0,51,0,41,1,5,254,213,0,136,254,141,1,232,255,255,0,221,253,89,0,10,254,162,255,131,1,179,0,148,253,68,0,84,253,112,0,126,253,162,254,252,254,172,0,74,254,188,254,8,1,136,2,60,252,252,255,159,251,7,0,122,255,134,0,147,251,206,254,143,0,96,0,92,254,15,254,59,251,162,254,9,250,83,253,95,255,72,0,105,3,179,2,220,2,27,1,153,3,97,1,78,1,219,1,71,4,53,3,96,3,12,2,75,3,241,1,202,2,199,2,20,3,238,2,52,4,202,2,180,4,241,2,65,2,150,2,124,245,170,192,38,3,44,7,95,251,33,228,37,12,28,4,40,248,202,208,85,16,107,5,192,249,99,218,69,9,145,5,232,249,78,219,176,12,193,7,210,251,214,230,35,7,16,9,184,252,64,236,173,3,242,12,199,254,163,248,47,9,161,11,41,254,234,244,32,14,116,9,247,252,183,237,123,13,24,12,98,254,70,246,139,11,205,16,72,0,178,1,56,7,148,17,139,0,68,3,44,15,40,21,157,1,180,9,163,4,42,28,67,3,166,19,11,12,40,35,139,4,90,27,216,28,115,3,37,247,177,202,74,23,226,5,58,250,60,221,35,20,86,8,61,252,88,233,8,31,217,7,228,251,65,231,107,25,202,8,139,252,49,235,246,29,192,10,180,253,47,242,64,23,200,11,60,254,92,245,34,19,180,14,131,255,17,253,77,27,4,14,60,255,103,251,238,31,138,15,213,255,252,254,176,23,52,17,107,0,133,2,29,30,223,19,64,1,136,7,147,21,133,23,57,2,98,13,89,30,214,27,50,3,62,19,172,23,2,31,209,3,253,22,218,21,223,44,243,5,212,35,85,41,76,5,159,249,153,217,89,35,61,6,145,250,68,223,66,38,243,7,247,251,180,231,242,34,111,9,244,252,164,237,56,40,24,10,87,253,253,239,191,36,174,10,171,253,245,241,252,33,146,12,156,254,160,247,29,38,67,13,235,254,123,249,193,39,52,15,181,255,58,254,210,35,176,17,148,0,123,3,168,39,140,19,40,1,245,6,154,35,103,22,241,1,177,11,4,41,122,24,116,2,198,14,126,39,207,29,151,3,158,21,140,34,23,34,93,4,72,26,252,34,208,48,112,6,193,38,124,50,208,3,185,247,47,206,171,44,219,6,28,251,141,226,106,47,24,9,189,252,96,236,124,44,64,9,214,252,248,236,204,41,248,11,83,254,236,245,44,48,45,11,238,253,136,243,202,45,255,12,205,254,200,248,6,44,116,14,106,255,120,252,109,42,61,17,110,0,151,2,50,47,181,17,150,0,134,3,19,44,85,20,98,1,84,8,184,46,161,24,125,2,253,14,159,43,110,29,132,3,44,21,96,47,137,32,25,4,168,24,217,42,25,42,149,5,156,33,60,40,224,67,87,8,53,50,75,54,145,6,220,250,15,225,36,49,253,7,254,251,221,231,209,51,135,9,2,253,254,237,209,54,173,11,47,254,14,245,140,52,26,12,99,254,78,246,108,48,74,14,89,255,18,252,198,52,196,14,137,255,55,253,80,50,176,16,62,0,118,1,221,52,253,18,253,0,243,5,123,49,81,21,168,1,248,9,30,54,218,23,78,2,223,13,231,50,83,25,166,2,244,15,245,52,41,30,169,3,7,22,157,50,95,36,189,4,136,28,146,53,31,45,252,5,5,36,47,49,102,59,146,7,147,45,9,59,4,6,91,250,4,222,224,58,29,9,192,252,113,236,191,56,207,9,45,253,0,239,100,57,127,12,147,254,107,247,22,60,232,13,49,255,33,251,53,55,120,15,206,255,212,254,254,58,140,16,50,0,42,1,252,55,216,18,242,0,174,5,254,57,75,21,166,1,238,9,202,59,195,23,72,2,190,13,249,55,232,26,0,3,15,18,212,58,9,30,162,3,226,21,70,56,210,36,207,4,245,28,27,60,13,38,0,5,26,30,232,57,191,55,52,7,94,43,32,53,107,97,109,10,195,62,12,64,177,7,198,251,139,230,177,65,16,11,223,253,45,243,97,61,27,11,229,253,80,243,232,62,8,13,209,254,223,248,0,64,123,15,207,255,218,254,44,66,227,17,165,0,224,3,95,61,247,17,171,0,6,4,94,63,72,21,165,1,233,9,192,65,238,24,143,2,105,15,129,61,229,27,53,3,80,19,198,63,45,29,120,3,223,20,227,64,176,33,76,4,222,25,132,66,178,40,99,5,111,32,33,62,41,46,29,6,207,36,238,65,98,57,95,7,96,44,131,64,134,81,102,9,147,56,222,70,35,8,25,252,131,232,201,75,106,12,137,254,47,247,100,68,98,13,248,254,203,249,86,78,187,15,231,255,105,255,149,70,153,16,54,0,70,1,8,74,202,19,58,1,98,7,47,69,26,21,153,1,157,9,123,77,48,24,98,2,92,14,30,70,102,27,27,3,176,18,70,83,197,30,198,3,184,22,246,69,73,36,186,4,115,28,200,74,74,36,186,4,116,28,37,80,117,44,230,5,129,35,155,70,149,56,74,7,226,43,31,78,218,69,129,8,52,51,154,73,252,127,0,12,62,72,61,42,81,112,63,11,181,67,0,80,225,10,198,253,153,242,153,73,194,25,191,2,139,16,81,24,245,28,108,3,156,20,51,67,204,40,103,5,133,32,122,84,245,4,61,249,74,215,143,82,71,17,113,0,171,2,40,44,20,6,106,250,95,222,61,74,20,50,150,6,164,39,215,67,194,9,37,253,210,238,194,69,225,18,244,0,192,5,10,39,194,9,37,253,210,238,122,68,184,30,196,3,170,22,174,55,92,7,133,251,5,229,20,62,81,12,125,254,233,246,61,26,10,7,67,251,121,227,10,71,225,78,53,9,109,55,102,70,215,11,67,254,138,245,71,65,225,22,16,2,109,12,143,34,174,15,226,255,76,255,20,62,10,35,134,4,60,27,102,70,112,5,198,249,129,218,71,65,0,16,0,0,0,0,0,32,143,2,108,245,79,192,133,59,102,54,16,7,132,42,174,55,40,12,106,254,116,246,10,55,61,18,193,0,141,4,30,21,143,10,154,253,143,241,122,52,153,25,182,2,84,16,163,48,133,3,67,247,100,203,163,48,102,10,131,253,7,241,184,14,143,2,108,245,79,192,153,57,215,91,22,10,183,60,225,74,153,9,13,253,62,238,184,78,215,19,62,1,121,7,225,26,0,16,0,0,0,0,0,80,112,33,65,4,156,25,204,76,225,2,26,246,105,196,61,74,163,16,58,0,91,1,184,30,40,8,29,252,151,232,204,44,0,48,87,6,43,38,20,62,194,5,26,250,126,220,112,61,20,18,180,0,62,4,215,35,153,5,240,249,131,219,184,62,92,27,25,3,164,18,235,57,225,2,26,246,105,196,225,58,204,8,140,252,55,235,215,19,204,4,12,249,38,214,215,51,174,67,83,8,27,50,163,64,30,9,193,252,118,236,225,58,184,22,6,2,46,12,92,15,102,14,100,255,86,252,174,55,153,33,72,4,198,25,235,65,10,3,106,246,74,198,225,58,225,14,149,255,122,253,174,23,102,2,12,245,17,190,122,36,40,36,180,4,83,28,215,51,225,6,33,251,172,226,215,51,194,13,33,255,193,250,153,9,174,7,196,251,127,230,204,44,153,21,187,1,108,10,245,40,225,2,26,246,105,196,112,45,122,12,145,254,92,247,194,5,10,3,106,246,74,198,0,64,248,65,226,67,190,69,142,71,82,73,12,75,188,76,98,78,0,80,150,81,35,83,170,84,42,86,163,87,22,89,130,90,234,91,76,93,168,94,0,96,83,97,161,98,236,99,49,101,115,102,177,103,235,104,34,106,85,107,132,108,177,109,218,110,0,112,35,113,67,114,97,115,123,116,147,117,169,118,188,119,204,120,218,121,230,122,239,123,247,124,252,125,255,126,255,127,255,127,61,10,63,10,69,10,78,10,91,10,108,10,129,10,153,10,181,10,212,10,248,10,31,11,74,11,120,11,170,11,224,11,25,12,86,12,151,12,219,12,35,13,110,13,189,13,15,14,101,14,190,14,27,15,123,15,223,15,70,16,176,16,30,17,143,17,3,18,123,18,245,18,115,19,244,19,120,20,0,21,138,21,23,22,168,22,59,23,209,23,106,24,6,25,165,25,70,26,234,26,145,27,59,28,231,28,149,29,70,30,250,30,176,31,104,32,35,33,224,33,159,34,97,35,36,36,234,36,178,37,124,38,71,39,21,40,228,40,181,41,136,42,93,43,51,44,11,45,228,45,191,46,155,47,121,48,88,49,56,50,26,51,252,51,224,52,196,53,170,54,145,55,120,56,96,57,73,58,51,59,29,60,8,61,243,61,223,62,203,63,184,64,165,65,146,66,127,67,108,68,90,69,71,70,52,71,33,72,14,73,251,73,231,74,211,75,191,76,170,77,149,78,126,79,104,80,80,81,56,82,31,83,5,84,234,84,207,85,178,86,148,87,116,88,84,89,50,90,15,91,235,91,197,92,157,93,117,94,74,95,30,96,240,96,192,97,143,98,91,99,38,100,239,100,181,101,122,102,60,103,253,103,187,104,119,105,48,106,232,106,156,107,79,108,255,108,172,109,87,110,255,110,165,111,71,112,231,112,133,113,31,114,183,114,75,115,221,115,108,116,248,116,129,117,6,118,137,118,8,119,133,119,254,119,116,120,230,120,86,121,194,121,42,122,144,122,242,122,80,123,171,123,3,124,87,124,167,124,244,124,62,125,132,125,198,125,5,126,64,126,120,126,172,126,220,126,9,127,49,127,87,127,120,127,150,127,176,127,199,127,217,127,232,127,243,127,251,127,255,127,255,127,229,127,153,127,25,127,103,126,129,125],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);allocate([106,124,33,123,167,121,252,119,34,118,24,116,223,113,122,111,231,108,41,106,65,103,47,100,245,96,149,93,15,90,101,86,153,82,171,78,158,74,116,70,45,66,204,61,82,57,193,52,27,48,98,43,151,38,189,33,213,28,226,23,230,18,226,13,216,8,203,3,61,10,64,10,73,10,88,10,108,10,135,10,167,10,205,10,249,10,43,11,99,11,160,11,227,11,44,12,122,12,207,12,40,13,136,13,237,13,87,14,199,14,60,15,183,15,55,16,189,16,71,17,215,17,108,18,6,19,165,19,73,20,242,20,159,21,82,22,9,23,196,23,133,24,73,25,18,26,224,26,177,27,135,28,97,29,62,30,32,31,5,32,238,32,219,33,203,34,191,35,182,36,176,37,174,38,174,39,177,40,184,41,193,42,204,43,218,44,235,45,254,46,19,48,42,49,67,50,94,51,123,52,154,53,186,54,219,55,254,56,34,58,71,59,109,60,148,61,188,62,228,63,13,65,54,66,96,67,138,68,180,69,221,70,7,72,48,73,89,74,130,75,169,76,208,77,246,78,27,80,63,81,98,82,132,83,164,84,194,85,223,86,250,87,19,89,43,90,64,91,83,92,99,93,113,94,125,95,134,96,140,97,143,98,144,99,141,100,135,101,126,102,114,103,98,104,79,105,56,106,30,107,255,107,221,108,183,109,140,110,94,111,43,112,244,112,185,113,121,114,53,115,236,115,158,116,76,117,245,117,153,118,55,119,209,119,102,120,246,120,129,121,6,122,134,122,1,123,118,123,230,123,81,124,182,124,21,125,111,125,195,125,17,126,90,126,157,126,219,126,18,127,68,127,112,127,150,127,183,127,209,127,230,127,244,127,253,127,255,127,255,127,244,127,208,127,149,127,66,127,215,126,85,126,188,125,12,125,69,124,104,123,117,122,108,121,78,120,28,119,213,117,122,116,13,115,140,113,250,111,87,110,162,108,222,106,11,105,40,103,57,101,60,99,51,97,30,95,255,92,215,90,165,88,108,86,44,84,229,81,154,79,74,77,247,74,161,72,74,70,243,67,156,65,71,63,244,60,164,58,88,56,18,54,209,51,152,49,103,47,62,45,31,43,11,41,2,39,5,37,21,35,51,33,95,31,155,29,231,27,67,26,177,24,49,23,195,21,105,20,34,19,239,17,209,16,201,15,214,14,249,13,50,13,130,12,232,11,102,11,252,10,169,10,109,10,73,10,61,10,61,10,63,10,67,10,74,10,84,10,96,10,111,10,129,10,150,10,174,10,200,10,229,10,5,11,39,11,77,11,117,11,159,11,205,11,253,11,48,12,101,12,157,12,216,12,22,13,86,13,153,13,222,13,38,14,113,14,190,14,13,15,96,15,181,15,12,16,102,16,194,16,33,17,130,17,230,17,76,18,180,18,31,19,140,19,252,19,110,20,226,20,88,21,209,21,76,22,201,22,72,23,202,23,77,24,211,24,91,25,229,25,113,26,254,26,142,27,32,28,180,28,74,29,225,29,123,30,22,31,179,31,82,32,242,32,149,33,57,34,222,34,133,35,46,36,216,36,132,37,50,38,224,38,145,39,66,40,245,40,169,41,95,42,22,43,206,43,135,44,66,45,253,45,186,46,120,47,54,48,246,48,183,49,120,50,59,51,254,51,194,52,135,53,77,54,19,55,218,55,161,56,106,57,50,58,252,58,197,59,144,60,90,61,37,62,240,62,188,63,136,64,84,65,32,66,236,66,185,67,133,68,82,69,30,70,235,70,183,71,132,72,80,73,28,74,231,74,179,75,126,76,73,77,19,78,221,78,166,79,111,80,56,81,0,82,199,82,142,83,84,84,25,85,221,85,161,86,100,87,38,88,231,88,167,89,103,90,37,91,226,91,158,92,89,93,19,94,204,94,131,95,57,96,238,96,162,97,84,98,5,99,181,99,99,100,15,101,186,101,100,102,12,103,178,103,87,104,250,104,155,105,59,106,217,106,117,107,16,108,168,108,63,109,211,109,102,110,247,110,134,111,19,112,158,112,39,113,174,113,50,114,181,114,53,115,179,115,47,116,169,116,33,117,150,117,9,118,122,118,232,118,84,119,190,119,37,120,138,120,236,120,76,121,170,121,5,122,94,122,180,122,7,123,88,123,167,123,242,123,60,124,130,124,198,124,8,125,71,125,131,125,188,125,243,125,39,126,89,126,136,126,180,126,221,126,4,127,40,127,73,127,103,127,131,127,156,127,178,127,197,127,214,127,228,127,239,127,247,127,253,127,255,127,255,127,97,125,160,117,15,105,48,88,181,67,116,44,98,19,68,101,99,111,100,101,114,0,101,110,99,111,100,101,114,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_memmove"]=_memmove;Module["_memset"]=_memset;function _abort(){Module["abort"]()}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(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)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2]=ret}return ret}function _pthread_self(){return 0}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function sa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function ta(a){a=a|0;B=a}function ua(){return B|0}function va(){var a=0,b=0;b=i;i=i+16|0;a=b;c[a>>2]=0;Db(a,31756)|0;i=b;return c[a>>2]|0}function wa(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Eb(d);i=b;return}function xa(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;Ea(a,(e|0)==0?(d[b>>0]|0)>>>3&15:15,b+1|0,c,2)|0;return}function ya(a){a=a|0;var b=0;b=Je(8)|0;Hb(b,b+4|0,a)|0;return b|0}function za(a){a=a|0;Ib(a,a+4|0);Ke(a);return}function Aa(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0;h=i;i=i+16|0;j=h;c[j>>2]=e;f=(Jb(c[b>>2]|0,c[b+4>>2]|0,e,f,g,j,3)|0)<<16>>16;a[g>>0]=d[g>>0]|0|4;i=h;return f|0}function Ba(a){a=a|0;if(!a)a=-1;else{b[a>>1]=4096;a=0}return a|0}function Ca(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=c[h>>2]|0;q=g<<16>>16>0;if(q){i=0;j=0;do{l=b[e+(i<<1)>>1]|0;l=Z(l,l)|0;if((l|0)!=1073741824){k=(l<<1)+j|0;if((l^j|0)>0&(k^j|0)<0){c[h>>2]=1;j=(j>>>31)+2147483647|0}else j=k}else{c[h>>2]=1;j=2147483647}i=i+1|0}while((i&65535)<<16>>16!=g<<16>>16);if((j|0)==2147483647){c[h>>2]=m;l=0;k=0;do{j=b[e+(l<<1)>>1]>>2;j=Z(j,j)|0;if((j|0)!=1073741824){i=(j<<1)+k|0;if((j^k|0)>0&(i^k|0)<0){c[h>>2]=1;k=(k>>>31)+2147483647|0}else k=i}else{c[h>>2]=1;k=2147483647}l=l+1|0}while((l&65535)<<16>>16!=g<<16>>16)}else p=8}else{j=0;p=8}if((p|0)==8)k=j>>4;if(!k){b[a>>1]=0;return}o=((pe(k)|0)&65535)+65535|0;j=o<<16>>16;if((o&65535)<<16>>16>0){i=k<>j|0)==(k|0))k=i;else k=k>>31^2147483647}else{j=0-j<<16;if((j|0)<2031616)k=k>>(j>>16);else k=0}n=Ce(k,h)|0;i=c[h>>2]|0;if(q){j=0;k=0;do{m=b[d+(j<<1)>>1]|0;m=Z(m,m)|0;if((m|0)!=1073741824){l=(m<<1)+k|0;if((m^k|0)>0&(l^k|0)<0){c[h>>2]=1;k=(k>>>31)+2147483647|0}else k=l}else{c[h>>2]=1;k=2147483647}j=j+1|0}while((j&65535)<<16>>16!=g<<16>>16);if((k|0)==2147483647){c[h>>2]=i;m=0;k=0;do{l=b[d+(m<<1)>>1]>>2;l=Z(l,l)|0;if((l|0)!=1073741824){j=(l<<1)+k|0;if((l^k|0)>0&(j^k|0)<0){c[h>>2]=1;k=(k>>>31)+2147483647|0}else k=j}else{c[h>>2]=1;k=2147483647}m=m+1|0}while((m&65535)<<16>>16!=g<<16>>16)}else p=29}else{k=0;p=29}if((p|0)==29)k=k>>4;if(!k)l=0;else{j=(pe(k)|0)<<16>>16;i=o-j|0;l=i&65535;k=(Td(n,Ce(k<>16;j=k<<7;i=i<<16>>16;if(l<<16>>16>0)i=l<<16>>16<31?j>>i:0;else{p=0-i<<16>>16;i=j<>p|0)==(j|0)?i:k>>24^2147483647}l=(Z(((ce(i,h)|0)<<9)+32768>>16,32767-(f&65535)<<16>>16)|0)>>>15<<16>>16}i=b[a>>1]|0;if(q){k=f<<16>>16;j=0;while(1){f=((Z(i<<16>>16,k)|0)>>>15&65535)+l|0;i=f&65535;b[e>>1]=(Z(b[e>>1]|0,f<<16>>16)|0)>>>12;j=j+1<<16>>16;if(j<<16>>16>=g<<16>>16)break;else e=e+2|0}}b[a>>1]=i;return}function Da(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=c[f>>2]|0;g=e<<16>>16>0;if(g){j=0;h=0;do{l=b[d+(j<<1)>>1]|0;l=Z(l,l)|0;if((l|0)!=1073741824){k=(l<<1)+h|0;if((l^h|0)>0&(k^h|0)<0){c[f>>2]=1;h=(h>>>31)+2147483647|0}else h=k}else{c[f>>2]=1;h=2147483647}j=j+1|0}while((j&65535)<<16>>16!=e<<16>>16);if((h|0)==2147483647){c[f>>2]=i;l=0;i=0;do{k=b[d+(l<<1)>>1]>>2;k=Z(k,k)|0;if((k|0)!=1073741824){j=(k<<1)+i|0;if((k^i|0)>0&(j^i|0)<0){c[f>>2]=1;i=(i>>>31)+2147483647|0}else i=j}else{c[f>>2]=1;i=2147483647}l=l+1|0}while((l&65535)<<16>>16!=e<<16>>16)}else o=8}else{h=0;o=8}if((o|0)==8)i=h>>4;if(!i)return;n=((pe(i)|0)&65535)+65535|0;k=n<<16>>16;if((n&65535)<<16>>16>0){j=i<>k|0)==(i|0))i=j;else i=i>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)i=i>>(k>>16);else i=0}m=Ce(i,f)|0;i=c[f>>2]|0;if(g){j=0;h=0;do{l=b[a+(j<<1)>>1]|0;l=Z(l,l)|0;if((l|0)!=1073741824){k=(l<<1)+h|0;if((l^h|0)>0&(k^h|0)<0){c[f>>2]=1;h=(h>>>31)+2147483647|0}else h=k}else{c[f>>2]=1;h=2147483647}j=j+1|0}while((j&65535)<<16>>16!=e<<16>>16);if((h|0)==2147483647){c[f>>2]=i;i=0;j=0;do{l=b[a+(i<<1)>>1]>>2;l=Z(l,l)|0;if((l|0)!=1073741824){k=(l<<1)+j|0;if((l^j|0)>0&(k^j|0)<0){c[f>>2]=1;j=(j>>>31)+2147483647|0}else j=k}else{c[f>>2]=1;j=2147483647}i=i+1|0}while((i&65535)<<16>>16!=e<<16>>16)}else o=28}else{h=0;o=28}if((o|0)==28)j=h>>4;if(!j)g=0;else{l=pe(j)|0;k=l<<16>>16;if(l<<16>>16>0){i=j<>k|0)==(j|0))j=i;else j=j>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)j=j>>(k>>16);else j=0}i=n-(l&65535)|0;k=i&65535;h=(Td(m,Ce(j,f)|0)|0)<<16>>16;g=h<<7;i=i<<16>>16;if(k<<16>>16>0)g=k<<16>>16<31?g>>i:0;else{n=0-i<<16>>16;a=g<>n|0)==(g|0)?a:h>>24^2147483647}g=ce(g,f)|0;if((g|0)>4194303)g=2147483647;else g=(g|0)<-4194304?-2147483648:g<<9;g=Ce(g,f)|0}h=(e&65535)+65535&65535;if(h<<16>>16<=-1)return;l=g<<16>>16;k=e+-1<<16>>16<<16>>16;while(1){i=d+(k<<1)|0;g=Z(b[i>>1]|0,l)|0;do if((g|0)!=1073741824){j=g<<1;if((j|0)<=268435455)if((j|0)<-268435456){b[i>>1]=-32768;break}else{b[i>>1]=g>>>12;break}else o=52}else{c[f>>2]=1;o=52}while(0);if((o|0)==52){o=0;b[i>>1]=32767}h=h+-1<<16>>16;if(h<<16>>16<=-1)break;else k=k+-1|0}return}function Ea(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+496|0;k=l;j=(g|0)==2;do if(!(j&1|(g|0)==4)){if(g){a=-1;i=l;return a|0}j=b[e>>1]|0;d=e+490|0;g=e+2|0;h=0;while(1){b[k+(h<<1)>>1]=b[g>>1]|0;h=h+1|0;if((h|0)==244)break;else g=g+2|0}h=j<<16>>16;if(j<<16>>16==7){g=492;d=c[a+1760>>2]|0;break}else{g=492;d=b[d>>1]|0;break}}else{h=a+1168|0;if(j){Gb(d,e,k,h);h=604}else{pb(d,e,k,h);h=3436}g=b[h+(d<<1)>>1]|0;do if(d>>>0>=8){if((d|0)==8){d=b[k+76>>1]<<2|(b[k+74>>1]<<1|b[k+72>>1]);h=(b[k+70>>1]|0)==0?4:5;break}if(d>>>0<15){a=-1;i=l;return a|0}else{d=c[a+1760>>2]|0;h=7;break}}else h=0;while(0);if(g<<16>>16==-1){a=-1;i=l;return a|0}}while(0);Fb(a,d,k,h,f);c[a+1760>>2]=d;a=g;i=l;return a|0}function Fa(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;r=t+20|0;s=t;h=r;g=h+20|0;do{b[h>>1]=b[a>>1]|0;h=h+2|0;a=a+2|0}while((h|0)<(g|0));a=b[r+18>>1]|0;q=(a&65535)-((a&65535)>>>15&65535)|0;a:do if(((q<<16>>31^q)&65535)<<16>>16<=4095){g=9;q=9;while(1){a=a<<16>>16;a=(a<<19>>19|0)==(a|0)?a<<3:a>>>15^32767;p=d+(g<<1)|0;b[p>>1]=a;a=a<<16>>16;a=Z(a,a)|0;if((a|0)==1073741824){c[f>>2]=1;h=2147483647}else h=a<<1;a=2147483647-h|0;if((a&h|0)<0){c[f>>2]=1;a=2147483647}n=pe(a)|0;o=15-(n&65535)&65535;j=n<<16>>16;if(n<<16>>16>0){h=a<>j|0)!=(a|0))h=a>>31^2147483647}else{h=0-j<<16;if((h|0)<2031616)h=a>>(h>>16);else h=0}h=Td(16384,Ce(h,f)|0)|0;do if(q<<16>>16>0){n=g+-1|0;k=h<<16>>16;l=q<<16>>16;m=0;while(1){g=e[r+(m<<1)>>1]|0;a=g<<16;j=Z(b[r+(n-m<<1)>>1]|0,b[p>>1]|0)|0;if((j|0)==1073741824){c[f>>2]=1;h=2147483647}else h=j<<1;j=a-h|0;if(((j^a)&(h^a)|0)<0){c[f>>2]=1;j=(g>>>15)+2147483647|0}j=Z((Ce(j,f)|0)<<16>>16,k)|0;if((j|0)==1073741824){c[f>>2]=1;j=2147483647}else j=j<<1;j=ge(j,o,f)|0;h=j-(j>>>31)|0;if((h>>31^h|0)>32767){j=24;break}b[s+(m<<1)>>1]=j;m=m+1|0;if((l|0)<=(m|0)){j=26;break}}if((j|0)==24){j=0;h=d;g=h+20|0;do{b[h>>1]=0;h=h+2|0}while((h|0)<(g|0));a=10}else if((j|0)==26){j=0;if(q<<16>>16>0)a=q;else{j=28;break}}h=a+-1<<16>>16;Oe(r|0,s|0,((h&65535)<<1)+2|0)|0;g=h<<16>>16}else j=28;while(0);if((j|0)==28){a=q+-1<<16>>16;if(a<<16>>16>-1){g=a<<16>>16;h=32767}else break}a=b[r+(g<<1)>>1]|0;q=(a&65535)-((a&65535)>>>15&65535)|0;if(((q<<16>>31^q)&65535)<<16>>16>4095)break a;else q=h}i=t;return}while(0);h=d;g=h+20|0;do{b[h>>1]=0;h=h+2|0}while((h|0)<(g|0));i=t;return}function Ga(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if(b<<16>>16<=0){a=0;return a|0}e=c[a>>2]|0;f=0;d=0;do{h=e&1;d=h|d<<1&131070;g=e>>1;e=(h|0)==(e>>>28&1|0)?g:g|1073741824;f=f+1<<16>>16}while(f<<16>>16>16);c[a>>2]=e;h=d&65535;return h|0}function Ha(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;g=d;f=g+80|0;do{b[g>>1]=0;g=g+2|0}while((g|0)<(f|0));f=0;g=c[a>>2]|0;do{k=g&1;j=g>>1;j=(k|0)==(g>>>28&1|0)?j:j|1073741824;h=j&1;i=j>>1;c[a>>2]=(h|0)==(j>>>28&1|0)?i:i|1073741824;h=Rd((Z(k<<1|h,1310720)|0)>>>17&65535,f,e)|0;k=c[a>>2]|0;i=k&1;j=k>>1;g=(i|0)==(k>>>28&1|0)?j:j|1073741824;c[a>>2]=g;b[d+(h<<16>>16<<1)>>1]=((i&65535)<<13&65535)+-4096<<16>>16;f=f+1<<16>>16}while(f<<16>>16<10);return}function Ia(a,d,f,g,h,i){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;j=b[a>>1]|0;if((j*31821|0)==1073741824){c[i>>2]=1;k=1073741823}else k=j*63642>>1;j=k+13849|0;if((k|0)>-1&(j^k|0)<0){c[i>>2]=1;j=(k>>>31)+2147483647|0}b[a>>1]=j;if(d<<16>>16<=0)return;k=0;j=h+((j&127)<<1)|0;while(1){b[g+(k<<1)>>1]=(-65536<>1]>>>16^65535)&e[j>>1];k=k+1|0;if((k&65535)<<16>>16==d<<16>>16)break;else j=j+2|0}return}function Ja(a){a=a|0;var c=0;if(!a){c=-1;return c|0}c=a+122|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function Ka(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=159;j=0;while(1){m=b[f+(k<<1)>>1]|0;m=Z(m,m)|0;m=(m|0)==1073741824?2147483647:m<<1;i=m+j|0;if((m^j|0)>-1&(i^j|0)<0){c[h>>2]=1;j=(j>>>31)+2147483647|0}else j=i;if((k|0)>0)k=k+-1|0;else{k=j;break}}h=k>>>14&65535;j=32767;i=59;while(1){m=b[a+(i<<1)>>1]|0;j=m<<16>>16>16?m:j;if((i|0)>0)i=i+-1|0;else break}m=(k|0)>536870911?32767:h;h=j<<16>>16;i=h<<20>>16;k=j<<16>>16>0?32767:-32768;f=55;j=b[a>>1]|0;while(1){l=b[a+(f<<1)>>1]|0;j=j<<16>>16>16?l:j;if((f|0)>1)f=f+-1|0;else break}f=b[a+80>>1]|0;l=b[a+82>>1]|0;f=f<<16>>16>16?l:f;l=b[a+84>>1]|0;f=f<<16>>16>16?l:f;l=b[a+86>>1]|0;f=f<<16>>16>16?l:f;l=b[a+88>>1]|0;f=f<<16>>16>16?l:f;l=b[a+90>>1]|0;f=f<<16>>16>16?l:f;l=b[a+92>>1]|0;f=f<<16>>16>16?l:f;l=b[a+94>>1]|0;f=f<<16>>16>16?l:f;l=b[a+96>>1]|0;f=f<<16>>16>16?l:f;l=b[a+98>>1]|0;f=f<<16>>16>16?l:f;l=b[a+100>>1]|0;f=f<<16>>16>16?l:f;l=b[a+102>>1]|0;f=f<<16>>16>16?l:f;l=b[a+104>>1]|0;f=f<<16>>16>16?l:f;l=b[a+106>>1]|0;f=f<<16>>16>16?l:f;l=b[a+108>>1]|0;f=f<<16>>16>16?l:f;l=b[a+110>>1]|0;f=f<<16>>16>16?l:f;l=b[a+112>>1]|0;f=f<<16>>16>16?l:f;l=b[a+114>>1]|0;f=f<<16>>16>16?l:f;l=b[a+116>>1]|0;f=f<<16>>16>16?l:f;l=a+118|0;o=b[l>>1]|0;do if((m+-21&65535)<17557&j<<16>>16>20?((m<<16>>16|0)<(((h<<4|0)==(i|0)?i:k)|0)?1:(f<<16>>16>16?o:f)<<16>>16<1953):0){j=a+120|0;i=b[j>>1]|0;if(i<<16>>16>29){b[j>>1]=30;f=j;k=1;break}else{k=(i&65535)+1&65535;b[j>>1]=k;f=j;k=k<<16>>16>1&1;break}}else n=14;while(0);if((n|0)==14){f=a+120|0;b[f>>1]=0;k=0}j=0;do{o=j;j=j+1|0;b[a+(o<<1)>>1]=b[a+(j<<1)>>1]|0}while((j|0)!=59);b[l>>1]=m;j=b[f>>1]|0;j=j<<16>>16>15?16383:j<<16>>16>8?15565:13926;i=Zd(d+8|0,5)|0;if((b[f>>1]|0)>20){if(((Zd(d,9)|0)<<16>>16|0)>(j|0))n=20}else if((i<<16>>16|0)>(j|0))n=20;if((n|0)==20){b[g>>1]=0;return k|0}i=(e[g>>1]|0)+1&65535;if(i<<16>>16>10){b[g>>1]=10;return k|0}else{b[g>>1]=i;return k|0}return 0}function La(a){a=a|0;var c=0;if(!a){c=-1;return c|0}c=a+18|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function Ma(a,d,f,g,h,i,j,k,l,m,n,o){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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;y=a+2|0;b[a>>1]=b[y>>1]|0;z=a+4|0;b[y>>1]=b[z>>1]|0;A=a+6|0;b[z>>1]=b[A>>1]|0;B=a+8|0;b[A>>1]=b[B>>1]|0;C=a+10|0;b[B>>1]=b[C>>1]|0;D=a+12|0;b[C>>1]=b[D>>1]|0;b[D>>1]=f;t=0;x=0;do{p=h+(x<<1)|0;r=Ge(b[p>>1]|0,b[g+(x<<1)>>1]|0,o)|0;r=(r&65535)-((r&65535)>>>15&65535)|0;r=r<<16>>31^r;w=((qe(r&65535)|0)&65535)+65535|0;q=w<<16>>16;if((w&65535)<<16>>16<0){s=0-q<<16;if((s|0)<983040)u=r<<16>>16>>(s>>16)&65535;else u=0}else{s=r<<16>>16;r=s<>16>>q|0)==(s|0))u=r&65535;else u=(s>>>15^32767)&65535}v=qe(b[p>>1]|0)|0;r=b[p>>1]|0;q=v<<16>>16;if(v<<16>>16<0){s=0-q<<16;if((s|0)<983040)s=r<<16>>16>>(s>>16)&65535;else s=0}else{s=r<<16>>16;r=s<>16>>q|0)==(s|0))s=r&65535;else s=(s>>>15^32767)&65535}q=Td(u,s)|0;s=(w&65535)+2-(v&65535)|0;r=s&65535;do if(s&32768){if(r<<16>>16!=-32768){w=0-s|0;s=w<<16>>16;if((w&65535)<<16>>16<0){s=0-s<<16;if((s|0)>=983040){s=0;break}s=q<<16>>16>>(s>>16)&65535;break}}else s=32767;r=q<<16>>16;q=r<>16>>s|0)==(r|0))s=q&65535;else s=(r>>>15^32767)&65535}else s=De(q,r,o)|0;while(0);t=Rd(t,s,o)|0;x=x+1|0}while((x|0)!=10);s=t&65535;r=t<<16>>16>5325;t=a+14|0;if(r){h=(e[t>>1]|0)+1&65535;b[t>>1]=h;if(h<<16>>16>10)b[a+16>>1]=0}else b[t>>1]=0;switch(d|0){case 0:case 1:case 2:case 3:case 6:break;default:{D=a+16|0;o=f;f=b[D>>1]|0;f=f&65535;f=f+1|0;f=f&65535;b[D>>1]=f;return o|0}}u=(j|i)<<16>>16==0;v=m<<16>>16==0;w=d>>>0<3;t=s+(w&((v|(u&(k<<16>>16==0|l<<16>>16==0)|n<<16>>16<2))^1)?61030:62259)&65535;t=t<<16>>16>0?t:0;if(t<<16>>16<=2048){t=t<<16>>16;if((t<<18>>18|0)==(t|0))l=t<<2;else l=t>>>15^32767}else l=8192;k=a+16|0;n=r|(b[k>>1]|0)<40;t=b[z>>1]|0;if((t*6554|0)==1073741824){c[o>>2]=1;r=2147483647}else r=t*13108|0;t=b[A>>1]|0;s=t*6554|0;if((s|0)!=1073741824){t=(t*13108|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;t=(r>>>31)+2147483647|0}}else{c[o>>2]=1;t=2147483647}s=b[B>>1]|0;r=s*6554|0;if((r|0)!=1073741824){s=(s*13108|0)+t|0;if((r^t|0)>0&(s^t|0)<0){c[o>>2]=1;s=(t>>>31)+2147483647|0}}else{c[o>>2]=1;s=2147483647}t=b[C>>1]|0;r=t*6554|0;if((r|0)!=1073741824){t=(t*13108|0)+s|0;if((r^s|0)>0&(t^s|0)<0){c[o>>2]=1;r=(s>>>31)+2147483647|0}else r=t}else{c[o>>2]=1;r=2147483647}t=b[D>>1]|0;s=t*6554|0;if((s|0)!=1073741824){t=(t*13108|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;t=(r>>>31)+2147483647|0}}else{c[o>>2]=1;t=2147483647}r=Ce(t,o)|0;if(w&((u|v)^1)){t=b[a>>1]|0;if((t*4681|0)==1073741824){c[o>>2]=1;r=2147483647}else r=t*9362|0;t=b[y>>1]|0;s=t*4681|0;if((s|0)!=1073741824){t=(t*9362|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;r=(r>>>31)+2147483647|0}else r=t}else{c[o>>2]=1;r=2147483647}t=b[z>>1]|0;s=t*4681|0;if((s|0)!=1073741824){t=(t*9362|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;r=(r>>>31)+2147483647|0}else r=t}else{c[o>>2]=1;r=2147483647}t=b[A>>1]|0;s=t*4681|0;if((s|0)!=1073741824){t=(t*9362|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;t=(r>>>31)+2147483647|0}}else{c[o>>2]=1;t=2147483647}s=b[B>>1]|0;r=s*4681|0;if((r|0)!=1073741824){s=(s*9362|0)+t|0;if((r^t|0)>0&(s^t|0)<0){c[o>>2]=1;t=(t>>>31)+2147483647|0}else t=s}else{c[o>>2]=1;t=2147483647}s=b[C>>1]|0;r=s*4681|0;if((r|0)!=1073741824){s=(s*9362|0)+t|0;if((r^t|0)>0&(s^t|0)<0){c[o>>2]=1;s=(t>>>31)+2147483647|0}}else{c[o>>2]=1;s=2147483647}r=b[D>>1]|0;p=r*4681|0;if((p|0)!=1073741824){q=(r*9362|0)+s|0;if((p^s|0)>0&(q^s|0)<0){c[o>>2]=1;q=(s>>>31)+2147483647|0}}else{c[o>>2]=1;q=2147483647}r=Ce(q,o)|0}t=n?8192:l<<16>>16;p=Z(t,f<<16>>16)|0;if((p|0)==1073741824){c[o>>2]=1;s=2147483647}else s=p<<1;r=r<<16>>16;q=r<<13;if((q|0)!=1073741824){p=s+(r<<14)|0;if((s^q|0)>0&(p^s|0)<0){c[o>>2]=1;s=(s>>>31)+2147483647|0}else s=p}else{c[o>>2]=1;s=2147483647}p=Z(r,t)|0;if((p|0)==1073741824){c[o>>2]=1;q=2147483647}else q=p<<1;p=s-q|0;if(((p^s)&(q^s)|0)<0){c[o>>2]=1;p=(s>>>31)+2147483647|0}D=p<<2;f=k;o=Ce((D>>2|0)==(p|0)?D:p>>31^2147483647,o)|0;D=b[f>>1]|0;D=D&65535;D=D+1|0;D=D&65535;b[f>>1]=D;return o|0}function Na(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;f=c;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));f=0;do{i=b[a+(f<<1)>>1]|0;g=((i&8)<<10&65535^8192)+-4096<<16>>16;h=f<<16;i=((b[d+((i&7)<<1)>>1]|0)*327680|0)+h>>16;b[c+(i<<1)>>1]=g;h=((b[d+((e[a+(f+5<<1)>>1]&7)<<1)>>1]|0)*327680|0)+h>>16;if((h|0)<(i|0))g=0-(g&65535)&65535;i=c+(h<<1)|0;b[i>>1]=(e[i>>1]|0)+(g&65535);f=f+1|0}while((f|0)!=5);return}function Oa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=c<<16>>16;e=(f<<1&2|1)+((f>>>1&7)*5|0)|0;c=f>>>4&3;c=((f>>>6&7)*5|0)+((c|0)==3?4:c)|0;f=d;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));a=a<<16>>16;b[d+(e<<1)>>1]=(0-(a&1)&16383)+57344;b[d+(c<<1)>>1]=(0-(a>>>1&1)&16383)+57344;return}function Pa(a,c,d,f,g,h){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;h=d<<16>>16;j=h>>>3;a=a<<16>>16;a=((a<<17>>17|0)==(a|0)?a<<1:a>>>15^32767)+(j&8)<<16;j=(e[f+(a+65536>>16<<1)>>1]|0)+((j&7)*5|0)|0;d=c<<16>>16;i=(0-(d&1)&16383)+57344&65535;a=g+((e[f+(a>>16<<1)>>1]|0)+((h&7)*5|0)<<16>>16<<1)|0;c=g;h=c+80|0;do{b[c>>1]=0;c=c+2|0}while((c|0)<(h|0));b[a>>1]=i;b[g+(j<<16>>16<<1)>>1]=(0-(d>>>1&1)&16383)+57344;return}function Qa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;c=c<<16>>16;e=(c&7)*5|0;f=(c>>>2&2|1)+((c>>>4&7)*5|0)|0;c=(c>>>6&2)+2+((c>>>8&7)*5|0)|0;g=d;h=g+80|0;do{b[g>>1]=0;g=g+2|0}while((g|0)<(h|0));a=a<<16>>16;b[d+(e<<1)>>1]=(0-(a&1)&16383)+57344;b[d+(f<<1)>>1]=(0-(a>>>1&1)&16383)+57344;b[d+(c<<1)>>1]=(0-(a>>>2&1)&16383)+57344;return}function Ra(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;c=c<<16>>16;h=b[d+((c&7)<<1)>>1]|0;i=b[d+((c>>>3&7)<<1)>>1]|0;g=b[d+((c>>>6&7)<<1)>>1]|0;d=(c>>>9&1)+3+((b[d+((c>>>10&7)<<1)>>1]|0)*5|0)|0;c=e;f=c+80|0;do{b[c>>1]=0;c=c+2|0}while((c|0)<(f|0));a=a<<16>>16;b[e+(h*327680>>16<<1)>>1]=(0-(a&1)&16383)+57344;b[e+((i*327680|0)+65536>>16<<1)>>1]=(0-(a>>>1&1)&16383)+57344;b[e+((g*327680|0)+131072>>16<<1)>>1]=(0-(a>>>2&1)&16383)+57344;b[e+(d<<16>>16<<1)>>1]=(0-(a>>>3&1)&16383)+57344;return}function Sa(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;p=q+16|0;o=q;j=d;h=j+80|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(h|0));h=b[a>>1]|0;b[p>>1]=h;b[p+2>>1]=b[a+2>>1]|0;b[p+4>>1]=b[a+4>>1]|0;b[p+6>>1]=b[a+6>>1]|0;m=b[a+8>>1]|0;Ta(m>>>3&65535,m&7,0,4,1,o,f);m=b[a+10>>1]|0;Ta(m>>>3&65535,m&7,2,6,5,o,f);m=b[a+12>>1]|0;g=m>>2;do if((g*25|0)!=1073741824){j=(Z(g,1638400)|0)+786432>>21;g=j*6554>>15;if((g|0)>32767){c[f>>2]=1;k=1;l=1;a=163835;n=6;break}a=(g<<16>>16)*5|0;k=g&1;if((a|0)==1073741824){c[f>>2]=1;l=0;a=65535}else{l=0;n=6}}else{c[f>>2]=1;k=0;g=0;l=0;j=0;a=0;n=6}while(0);if((n|0)==6)a=a&65535;n=j-a|0;k=k<<16>>16==0?n:4-n|0;n=k<<16>>16;b[o+6>>1]=Rd(((k<<17>>17|0)==(n|0)?k<<1:n>>>15^32767)&65535,m&1,f)|0;if(l){c[f>>2]=1;g=32767}n=g<<16>>16;b[o+14>>1]=((g<<17>>17|0)==(n|0)?g<<1:n>>>15^32767)+(m>>>1&1);g=0;while(1){h=h<<16>>16==0?8191:-8191;n=(b[o+(g<<1)>>1]<<2)+g<<16;j=n>>16;if((n|0)<2621440)b[d+(j<<1)>>1]=h;k=(b[o+(g+4<<1)>>1]<<2)+g<<16;a=k>>16;if((a|0)<(j|0))h=0-(h&65535)&65535;if((k|0)<2621440){n=d+(a<<1)|0;b[n>>1]=(e[n>>1]|0)+(h&65535)}g=g+1|0;if((g|0)==4)break;h=b[p+(g<<1)>>1]|0}i=q;return}function Ta(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=a<<16>>16>124?124:a;a=(k<<16>>16)*1311>>15;p=(a|0)>32767;if(!p){j=a<<16>>16;if((j*25|0)==1073741824){c[i>>2]=1;j=1073741823}else o=4}else{c[i>>2]=1;j=32767;o=4}if((o|0)==4)j=(j*50|0)>>>1;m=(k&65535)-j|0;j=(m<<16>>16)*6554>>15;n=(j|0)>32767;if(!n){k=j<<16>>16;if((k*5|0)==1073741824){c[i>>2]=1;l=1073741823}else o=9}else{c[i>>2]=1;k=32767;o=9}if((o|0)==9)l=(k*10|0)>>>1;m=m-l|0;o=m<<16>>16;k=d<<16>>16;l=k>>2;k=k-(l<<2)|0;b[h+(e<<16>>16<<1)>>1]=((m<<17>>17|0)==(o|0)?m<<1:o>>>15^32767)+(k&1);if(n){c[i>>2]=1;j=32767}e=j<<16>>16;b[h+(f<<16>>16<<1)>>1]=((j<<17>>17|0)==(e|0)?j<<1:e>>>15^32767)+(k<<16>>17);if(p){c[i>>2]=1;a=32767}f=a<<16>>16;b[h+(g<<16>>16<<1)>>1]=Rd(l&65535,((a<<17>>17|0)==(f|0)?a<<1:f>>>15^32767)&65535,i)|0;return}function Ua(a){a=a|0;var d=0,e=0,f=0,g=0;if(!a){g=-1;return g|0}Yd(a+1168|0);b[a+460>>1]=40;c[a+1164>>2]=0;d=a+646|0;e=a+1216|0;f=a+462|0;g=f+22|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));db(d,c[e>>2]|0)|0;mb(a+686|0)|0;ib(a+700|0)|0;La(a+608|0)|0;rb(a+626|0,c[e>>2]|0)|0;Ja(a+484|0)|0;tb(a+730|0)|0;eb(a+748|0)|0;Ud(a+714|0)|0;Va(a,0)|0;g=0;return g|0}function Va(a,d){a=a|0;d=d|0;var e=0,f=0;if(!a){a=-1;return a|0}c[a+388>>2]=a+308;Qe(a|0,0,308)|0;d=(d|0)!=8;if(d){e=a+412|0;f=e+20|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));b[a+392>>1]=3e4;b[a+394>>1]=26e3;b[a+396>>1]=21e3;b[a+398>>1]=15e3;b[a+400>>1]=8e3;b[a+402>>1]=0;b[a+404>>1]=-8e3;b[a+406>>1]=-15e3;b[a+408>>1]=-21e3;b[a+410>>1]=-26e3}b[a+432>>1]=0;b[a+434>>1]=40;c[a+1164>>2]=0;b[a+436>>1]=0;b[a+438>>1]=0;b[a+440>>1]=0;b[a+460>>1]=40;b[a+462>>1]=0;b[a+464>>1]=0;if(d){e=a+442|0;f=e+18|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));e=a+466|0;f=e+18|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));La(a+608|0)|0;f=a+1216|0;rb(a+626|0,c[f>>2]|0)|0;db(a+646|0,c[f>>2]|0)|0;mb(a+686|0)|0;ib(a+700|0)|0;Ud(a+714|0)|0}else{e=a+466|0;f=e+18|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));La(a+608|0)|0;db(a+646|0,c[a+1216>>2]|0)|0;mb(a+686|0)|0;ib(a+700|0)|0}Ja(a+484|0)|0;b[a+606>>1]=21845;tb(a+730|0)|0;if(!d){a=0;return a|0}eb(a+748|0)|0;a=0;return a|0}function Wa(d,f,g,h,j,k){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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,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,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,La=0,Ta=0,Ua=0,Wa=0,bb=0,db=0,eb=0,ib=0,mb=0,pb=0,rb=0,tb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0;Bb=i;i=i+336|0;r=Bb+236|0;q=Bb+216|0;zb=Bb+112|0;yb=Bb+12|0;mb=Bb+256|0;rb=Bb+136|0;pb=Bb+32|0;eb=Bb+8|0;ib=Bb+6|0;xb=Bb+4|0;tb=Bb+2|0;Ab=Bb;Ta=d+1164|0;Ua=d+748|0;Wa=hb(Ua,h,Ta)|0;if(Wa){Va(d,8)|0;fb(Ua,d+412|0,d+646|0,d+714|0,d+608|0,Wa,f,g,d+1168|0,j,k,Ta);Ab=d+666|0;me(Ab,d+392|0,10,Ta);sb(d+626|0,Ab,Ta);Ab=d+1156|0;c[Ab>>2]=Wa;i=Bb;return}switch(h|0){case 1:{l=1;x=6;break}case 2:case 7:{Ia(d+606|0,b[(c[d+1256>>2]|0)+(f<<1)>>1]|0,c[(c[d+1260>>2]|0)+(f<<2)>>2]|0,g,c[d+1276>>2]|0,Ta);x=9;break}case 3:{x=9;break}default:{l=0;x=6}}do if((x|0)==6){h=d+440|0;if((b[h>>1]|0)==6){b[h>>1]=5;Ja=0;La=0;break}else{b[h>>1]=0;Ja=0;La=0;break}}else if((x|0)==9){h=d+440|0;Ja=(e[h>>1]|0)+1&65535;b[h>>1]=Ja<<16>>16>6?6:Ja;Ja=1;La=1;l=0}while(0);Ea=d+1156|0;switch(c[Ea>>2]|0){case 1:{b[h>>1]=5;b[d+436>>1]=0;break}case 2:{b[h>>1]=5;b[d+436>>1]=1;break}default:{}}n=d+646|0;Fa=d+666|0;m=zb;o=Fa;p=m+20|0;do{a[m>>0]=a[o>>0]|0;m=m+1|0;o=o+1|0}while((m|0)<(p|0));Ga=(f|0)!=7;Ha=d+1168|0;if(Ga){ab(n,f,La,g,Ha,r,Ta);m=d+392|0;ae(m,r,k,Ta);g=g+6|0}else{cb(n,La,g,Ha,q,r,Ta);m=d+392|0;_d(m,q,r,k,Ta);g=g+10|0}o=r;p=m+20|0;do{b[m>>1]=b[o>>1]|0;m=m+2|0;o=o+2|0}while((m|0)<(p|0));Ca=f>>>0>1;B=f>>>0<4&1;Ba=(f|0)==5;Aa=Ba?10:5;Ba=Ba?19:9;E=d+434|0;F=143-Ba&65535;G=d+460|0;H=d+462|0;I=d+464|0;C=f>>>0>2;J=d+388|0;K=(f|0)==0;L=f>>>0<2;M=d+1244|0;N=d+432|0;O=f>>>0<6;P=d+1168|0;Q=(f|0)==6;R=La<<16>>16==0;S=d+714|0;T=d+686|0;U=d+436|0;V=d+700|0;W=(f|0)==7;X=d+482|0;Y=f>>>0<3;_=d+608|0;$=d+626|0;aa=d+438|0;ba=f>>>0<7;ca=d+730|0;D=Ja^1;da=l<<16>>16!=0;za=da?La^1:0;ea=d+442|0;fa=d+458|0;ga=d+412|0;ha=d+80|0;ia=d+1236|0;ja=d+1240|0;ka=d+468|0;la=d+466|0;ma=d+470|0;na=d+472|0;oa=d+474|0;pa=d+476|0;qa=d+478|0;ra=d+480|0;sa=d+444|0;ta=d+446|0;ua=d+448|0;va=d+450|0;wa=d+452|0;xa=d+454|0;ya=d+456|0;y=0;z=0;s=0;t=0;A=-1;while(1){A=(A<<16>>16)+1|0;p=A&65535;z=1-(z<<16>>16)|0;v=z&65535;q=Ca&s<<16>>16==80?0:s;u=g+2|0;r=b[g>>1]|0;a:do if(Ga){w=b[E>>1]|0;m=(w&65535)-Aa&65535;m=m<<16>>16<20?20:m;o=(m&65535)+Ba&65535;n=o<<16>>16>143;Ya(r,n?F:m,n?143:o,q,w,eb,ib,B,Ta);q=b[eb>>1]|0;b[G>>1]=q;if(Ja){r=b[E>>1]|0;if(r<<16>>16<143){r=(r&65535)+1&65535;b[E>>1]=r}b[eb>>1]=r;b[ib>>1]=0;if((b[H>>1]|0)!=0?!(C|(b[I>>1]|0)<5):0){b[eb>>1]=q;r=q;q=0}else q=0}else{r=q;q=b[ib>>1]|0}se(c[J>>2]|0,r,q,40,1,Ta);if(L){q=g+6|0;Pa(p,b[g+4>>1]|0,b[u>>1]|0,c[M>>2]|0,mb,Ta);g=b[N>>1]|0;w=g<<16>>16;r=w<<1;if((r|0)==(w<<17>>16|0)){o=K;break}o=K;r=g<<16>>16>0?32767:-32768;break}switch(f|0){case 2:{q=g+6|0;Oa(b[g+4>>1]|0,b[u>>1]|0,mb);g=b[N>>1]|0;w=g<<16>>16;r=w<<1;if((r|0)==(w<<17>>16|0)){o=K;break a}o=K;r=g<<16>>16>0?32767:-32768;break a}case 3:{q=g+6|0;Qa(b[g+4>>1]|0,b[u>>1]|0,mb);g=b[N>>1]|0;w=g<<16>>16;r=w<<1;if((r|0)==(w<<17>>16|0)){o=K;break a}o=K;r=g<<16>>16>0?32767:-32768;break a}default:{if(O){q=g+6|0;Ra(b[g+4>>1]|0,b[u>>1]|0,c[P>>2]|0,mb);g=b[N>>1]|0;w=g<<16>>16;r=w<<1;if((r|0)==(w<<17>>16|0)){o=K;break a}o=K;r=g<<16>>16>0?32767:-32768;break a}if(!Q){o=K;x=44;break a}Sa(u,mb,Ta);r=g+16|0;g=b[N>>1]|0;w=g<<16>>16;p=w<<1;if((p|0)==(w<<17>>16|0)){q=r;o=K;r=p;break a}q=r;o=K;r=g<<16>>16>0?32767:-32768;break a}}}else{Za(r,18,143,q,eb,ib,Ta);if(R?q<<16>>16==0|r<<16>>16<61:0){r=b[eb>>1]|0;q=b[ib>>1]|0}else{b[G>>1]=b[eb>>1]|0;r=b[E>>1]|0;b[eb>>1]=r;b[ib>>1]=0;q=0}se(c[J>>2]|0,r,q,40,0,Ta);o=0;x=44}while(0);if((x|0)==44){x=0;if(Ja)lb(T,b[h>>1]|0,xb,Ta);else b[xb>>1]=$a(f,b[u>>1]|0,c[ja>>2]|0)|0;nb(T,La,b[U>>1]|0,xb,Ta);Na(g+4|0,mb,c[P>>2]|0);r=g+24|0;g=b[xb>>1]|0;w=g<<16>>16;p=w<<1;if((p|0)==(w<<17>>16|0)){q=r;r=p}else{q=r;r=g<<16>>16>0?32767:-32768}}g=b[eb>>1]|0;b:do if(g<<16>>16<40){m=r<<16>>16;n=g;r=g<<16>>16;while(1){p=mb+(r<<1)|0;g=(Z(b[mb+(r-(n<<16>>16)<<1)>>1]|0,m)|0)>>15;if((g|0)>32767){c[Ta>>2]=1;g=32767}w=g&65535;b[Ab>>1]=w;b[p>>1]=Rd(b[p>>1]|0,w,Ta)|0;r=r+1|0;if((r&65535)<<16>>16==40)break b;n=b[eb>>1]|0}}while(0);c:do if(o){o=(z&65535|0)==0;if(o){g=q;p=t}else{g=q+2|0;p=b[q>>1]|0}if(R)Xa(S,f,p,mb,v,xb,tb,Ha,Ta);else{lb(T,b[h>>1]|0,xb,Ta);jb(V,S,b[h>>1]|0,tb,Ta)}nb(T,La,b[U>>1]|0,xb,Ta);kb(V,La,b[U>>1]|0,tb,Ta);q=b[xb>>1]|0;r=q<<16>>16>13017?13017:q;if(o)x=80;else w=p}else{g=q+2|0;r=b[q>>1]|0;switch(f|0){case 1:case 2:case 3:case 4:case 6:{if(R)Xa(S,f,r,mb,v,xb,tb,Ha,Ta);else{lb(T,b[h>>1]|0,xb,Ta);jb(V,S,b[h>>1]|0,tb,Ta)}nb(T,La,b[U>>1]|0,xb,Ta);kb(V,La,b[U>>1]|0,tb,Ta);q=b[xb>>1]|0;r=q<<16>>16>13017?13017:q;if(!Q){p=t;x=80;break c}if((b[E>>1]|0)<=45){p=t;x=80;break c}p=t;r=r<<16>>16>>>2&65535;x=80;break c}case 5:{if(Ja)lb(T,b[h>>1]|0,xb,Ta);else b[xb>>1]=$a(5,r,c[ja>>2]|0)|0;nb(T,La,b[U>>1]|0,xb,Ta);if(R)_a(S,5,b[g>>1]|0,mb,c[ia>>2]|0,tb,Ta);else jb(V,S,b[h>>1]|0,tb,Ta);kb(V,La,b[U>>1]|0,tb,Ta);r=b[xb>>1]|0;g=q+4|0;q=r;p=t;r=r<<16>>16>13017?13017:r;x=80;break c}default:{if(R)_a(S,f,r,mb,c[ia>>2]|0,tb,Ta);else jb(V,S,b[h>>1]|0,tb,Ta);kb(V,La,b[U>>1]|0,tb,Ta);r=b[xb>>1]|0;q=r;p=t;x=80;break c}}}while(0);if((x|0)==80){x=0;b[N>>1]=q<<16>>16>13017?13017:q;w=p}r=r<<16>>16;r=(r<<17>>17|0)==(r|0)?r<<1:r>>>15^32767;v=(r&65535)<<16>>16>16384;d:do if(v){u=r<<16>>16;if(W)q=0;else{q=0;while(1){r=(Z(b[(c[J>>2]|0)+(q<<1)>>1]|0,u)|0)>>15;if((r|0)>32767){c[Ta>>2]=1;r=32767}b[Ab>>1]=r;r=Z(b[xb>>1]|0,r<<16>>16)|0;if((r|0)==1073741824){c[Ta>>2]=1;r=2147483647}else r=r<<1;b[rb+(q<<1)>>1]=Ce(r,Ta)|0;q=q+1|0;if((q|0)==40)break d}}do{r=(Z(b[(c[J>>2]|0)+(q<<1)>>1]|0,u)|0)>>15;if((r|0)>32767){c[Ta>>2]=1;r=32767}b[Ab>>1]=r;r=Z(b[xb>>1]|0,r<<16>>16)|0;if((r|0)!=1073741824){r=r<<1;if((r|0)<0)r=~((r^-2)>>1);else x=88}else{c[Ta>>2]=1;r=2147483647;x=88}if((x|0)==88){x=0;r=r>>1}b[rb+(q<<1)>>1]=Ce(r,Ta)|0;q=q+1|0}while((q|0)!=40)}while(0);if(R){b[la>>1]=b[ka>>1]|0;b[ka>>1]=b[ma>>1]|0;b[ma>>1]=b[na>>1]|0;b[na>>1]=b[oa>>1]|0;b[oa>>1]=b[pa>>1]|0;b[pa>>1]=b[qa>>1]|0;b[qa>>1]=b[ra>>1]|0;b[ra>>1]=b[X>>1]|0;b[X>>1]=b[xb>>1]|0}if((Ja|(b[U>>1]|0)!=0?Y&(b[H>>1]|0)!=0:0)?(bb=b[xb>>1]|0,bb<<16>>16>12288):0){x=(((bb<<16>>16)+118784|0)>>>1)+12288&65535;b[xb>>1]=x<<16>>16>14745?14745:x}qb(zb,Fa,s,yb,Ta);r=Ma(_,f,b[tb>>1]|0,yb,$,La,b[U>>1]|0,l,b[aa>>1]|0,b[H>>1]|0,b[I>>1]|0,Ta)|0;switch(f|0){case 0:case 1:case 2:case 3:case 6:{p=b[xb>>1]|0;u=1;break}default:{r=b[tb>>1]|0;p=b[xb>>1]|0;if(ba)u=1;else{q=p<<16>>16;if(p<<16>>16<0)q=~((q^-2)>>1);else q=q>>>1;p=q&65535;u=2}}}m=p<<16>>16;s=u&65535;q=c[J>>2]|0;t=0;do{q=q+(t<<1)|0;b[pb+(t<<1)>>1]=b[q>>1]|0;q=Z(b[q>>1]|0,m)|0;if((q|0)==1073741824){c[Ta>>2]=1;n=2147483647}else n=q<<1;o=Z(b[tb>>1]|0,b[mb+(t<<1)>>1]|0)|0;if((o|0)!=1073741824){q=(o<<1)+n|0;if((o^n|0)>0&(q^n|0)<0){c[Ta>>2]=1;q=(n>>>31)+2147483647|0}}else{c[Ta>>2]=1;q=2147483647}x=q<>s|0)==(q|0)?x:q>>31^2147483647,Ta)|0;q=c[J>>2]|0;b[q+(t<<1)>>1]=x;t=t+1|0}while((t|0)!=40);vb(ca);if((Y?(b[I>>1]|0)>3:0)?!((b[H>>1]|0)==0|D):0)ub(ca);wb(ca,f,pb,r,b[xb>>1]|0,mb,p,u,Ha,Ta);r=0;o=0;do{q=b[pb+(o<<1)>>1]|0;q=Z(q,q)|0;if((q|0)!=1073741824){p=(q<<1)+r|0;if((q^r|0)>0&(p^r|0)<0){c[Ta>>2]=1;r=(r>>>31)+2147483647|0}else r=p}else{c[Ta>>2]=1;r=2147483647}o=o+1|0}while((o|0)!=40);if((r|0)<0)r=~((r^-2)>>1);else r=r>>1;r=Fe(r,Ab,Ta)|0;p=((b[Ab>>1]|0)>>>1)+15|0;q=p&65535;p=p<<16>>16;if(q<<16>>16>0)if(q<<16>>16<31){r=r>>p;x=135}else{r=0;x=137}else{u=0-p<<16>>16;x=r<>u|0)==(r|0)?x:r>>31^2147483647;x=135}if((x|0)==135){x=0;if((r|0)<0)r=~((r^-4)>>2);else x=137}if((x|0)==137){x=0;r=r>>>2}r=r&65535;do if(Y?(db=b[I>>1]|0,db<<16>>16>5):0)if(b[H>>1]|0)if((b[h>>1]|0)<4){if(da){if(!(Ja|(b[aa>>1]|0)!=0))x=145}else if(!Ja)x=145;if((x|0)==145?(0,(b[U>>1]|0)==0):0){x=147;break}ob(pb,r,ea,db,b[U>>1]|0,za,Ta)|0;x=147}else x=147;else x=151;else x=147;while(0);do if((x|0)==147){x=0;if(b[H>>1]|0){if(!Ja?(b[U>>1]|0)==0:0){x=151;break}if((b[h>>1]|0)>=4)x=151}else x=151}while(0);if((x|0)==151){x=0;b[ea>>1]=b[sa>>1]|0;b[sa>>1]=b[ta>>1]|0;b[ta>>1]=b[ua>>1]|0;b[ua>>1]=b[va>>1]|0;b[va>>1]=b[wa>>1]|0;b[wa>>1]=b[xa>>1]|0;b[xa>>1]=b[ya>>1]|0;b[ya>>1]=b[fa>>1]|0;b[fa>>1]=r}if(v){r=0;do{v=rb+(r<<1)|0;b[v>>1]=Rd(b[v>>1]|0,b[pb+(r<<1)>>1]|0,Ta)|0;r=r+1|0}while((r|0)!=40);Da(pb,rb,40,Ta);c[Ta>>2]=0;He(k,rb,j+(y<<1)|0,40,ga,0)}else{c[Ta>>2]=0;He(k,pb,j+(y<<1)|0,40,ga,0)}if(!(c[Ta>>2]|0))Pe(ga|0,j+(y+30<<1)|0,20)|0;else{p=193;while(1){q=d+(p<<1)|0;v=b[q>>1]|0;r=v<<16>>16;if(v<<16>>16<0)r=~((r^-4)>>2);else r=r>>>2;b[q>>1]=r;if((p|0)>0)p=p+-1|0;else{p=39;break}}while(1){q=pb+(p<<1)|0;v=b[q>>1]|0;r=v<<16>>16;if(v<<16>>16<0)r=~((r^-4)>>2);else r=r>>>2;b[q>>1]=r;if((p|0)>0)p=p+-1|0;else break}He(k,pb,j+(y<<1)|0,40,ga,1)}Pe(d|0,ha|0,308)|0;b[E>>1]=b[eb>>1]|0;r=y+40|0;s=r&65535;if(s<<16>>16>=160)break;else{y=r<<16>>16;k=k+22|0;t=w}}b[H>>1]=Ka(d+484|0,d+466|0,j,I,Ta)|0;gb(Ua,Fa,j,Ta);b[U>>1]=La;b[aa>>1]=l;sb(d+626|0,Fa,Ta);Ab=Ea;c[Ab>>2]=Wa;i=Bb;return}function Xa(a,d,f,g,h,j,k,l,m){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0;r=i;i=i+16|0;p=r+2|0;q=r;f=f<<16>>16;f=(f<<18>>18|0)==(f|0)?f<<2:f>>>15^32767;switch(d|0){case 3:case 4:case 6:{o=f<<16>>16;f=c[l+84>>2]|0;b[j>>1]=b[f+(o<<1)>>1]|0;l=b[f+(o+1<<1)>>1]|0;n=b[f+(o+3<<1)>>1]|0;j=b[f+(o+2<<1)>>1]|0;break}case 0:{l=(f&65535)+(h<<16>>16<<1^2)|0;l=(l&65535)<<16>>16>1022?1022:l<<16>>16;b[j>>1]=b[782+(l<<1)>>1]|0;j=b[782+(l+1<<1)>>1]|0;de(j<<16>>16,q,p,m);b[q>>1]=(e[q>>1]|0)+65524;l=Ee(b[p>>1]|0,5,m)|0;o=b[q>>1]|0;o=Rd(l,((o<<26>>26|0)==(o|0)?o<<10:o>>>15^32767)&65535,m)|0;l=b[p>>1]|0;f=b[q>>1]|0;if((f*24660|0)==1073741824){c[m>>2]=1;h=2147483647}else h=f*49320|0;n=(l<<16>>16)*24660>>15;f=h+(n<<1)|0;if((h^n|0)>0&(f^h|0)<0){c[m>>2]=1;f=(h>>>31)+2147483647|0}n=f<<13;l=j;n=Ce((n>>13|0)==(f|0)?n:f>>31^2147483647,m)|0;j=o;break}default:{o=f<<16>>16;f=c[l+80>>2]|0;b[j>>1]=b[f+(o<<1)>>1]|0;l=b[f+(o+1<<1)>>1]|0;n=b[f+(o+3<<1)>>1]|0;j=b[f+(o+2<<1)>>1]|0}}Vd(a,d,g,q,p,0,0,m);h=Z((re(14,b[p>>1]|0,m)|0)<<16>>16,l<<16>>16)|0;if((h|0)==1073741824){c[m>>2]=1;f=2147483647}else f=h<<1;l=10-(e[q>>1]|0)|0;h=l&65535;l=l<<16>>16;if(h<<16>>16>0){q=h<<16>>16<31?f>>l:0;q=q>>>16;q=q&65535;b[k>>1]=q;Wd(a,j,n);i=r;return}else{m=0-l<<16>>16;q=f<>m|0)==(f|0)?q:f>>31^2147483647;q=q>>>16;q=q&65535;b[k>>1]=q;Wd(a,j,n);i=r;return}}function Ya(a,d,e,f,g,h,i,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;if(!(f<<16>>16)){j=a<<16>>16;if(a<<16>>16>=197){b[h>>1]=j+65424;b[i>>1]=0;return}g=((j<<16)+131072>>16)*10923>>15;if((g|0)>32767){c[k>>2]=1;g=32767}a=(g&65535)+19|0;b[h>>1]=a;b[i>>1]=j+58-((a*196608|0)>>>16);return}if(!(j<<16>>16)){k=a<<16>>16<<16;a=((k+131072>>16)*21846|0)+-65536>>16;b[h>>1]=a+(d&65535);b[i>>1]=((k+-131072|0)>>>16)-((a*196608|0)>>>16);return}if((Ge(g,d,k)|0)<<16>>16>5)g=(d&65535)+5&65535;j=e<<16>>16;j=(j-(g&65535)&65535)<<16>>16>4?j+65532&65535:g;g=a<<16>>16;if(a<<16>>16<4){b[h>>1]=((((j&65535)<<16)+-327680|0)>>>16)+g;b[i>>1]=0;return}g=g<<16;if(a<<16>>16<12){k=(((g+-327680>>16)*10923|0)>>>15<<16)+-65536|0;a=k>>16;b[h>>1]=(j&65535)+a;b[i>>1]=((g+-589824|0)>>>16)-(k>>>15)-a;return}else{b[h>>1]=((g+-786432+((j&65535)<<16)|0)>>>16)+1;b[i>>1]=0;return}}function Za(a,c,d,f,g,h,i){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;if(f<<16>>16){i=(e[g>>1]|0)+65531|0;i=(i<<16>>16|0)<(c<<16>>16|0)?c:i&65535;d=d<<16>>16;c=a<<16>>16<<16;a=((c+327680>>16)*10924|0)+-65536>>16;b[g>>1]=(((((i&65535)<<16)+589824>>16|0)>(d|0)?d+65527&65535:i)&65535)+a;b[h>>1]=((c+-196608|0)>>>16)-((a*393216|0)>>>16);return}f=a<<16>>16;if(a<<16>>16<463){a=((((f<<16)+327680>>16)*10924|0)>>>16)+17|0;b[g>>1]=a;b[h>>1]=f+105-((a*393216|0)>>>16);return}else{b[g>>1]=f+65168;b[h>>1]=0;return}}function _a(a,d,e,f,g,h,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0;n=i;i=i+16|0;l=n+6|0;k=n+4|0;Vd(a,d,f,l,k,n+2|0,n,j);m=(e&31)*3|0;f=g+(m<<1)|0;if(!((Ge(d&65535,7,j)|0)<<16>>16)){l=re(b[l>>1]|0,b[k>>1]|0,j)|0;k=l<<16>>16;k=(Z(((l<<20>>20|0)==(k|0)?l<<4:k>>>15^32767)<<16>>16,b[f>>1]|0)|0)>>15;if((k|0)>32767){c[j>>2]=1;k=32767}f=k<<16;e=f>>16;if((k<<17>>17|0)==(e|0))k=f>>15;else k=e>>>15^32767}else{e=re(14,b[k>>1]|0,j)|0;e=Z(e<<16>>16,b[f>>1]|0)|0;if((e|0)==1073741824){c[j>>2]=1;f=2147483647}else f=e<<1;e=Ge(9,b[l>>1]|0,j)|0;k=e<<16>>16;if(e<<16>>16>0)k=e<<16>>16<31?f>>k:0;else{j=0-k<<16>>16;k=f<>j|0)==(f|0)?k:f>>31^2147483647}k=k>>>16}b[h>>1]=k;Wd(a,b[g+(m+1<<1)>>1]|0,b[g+(m+2<<1)>>1]|0);i=n;return}function $a(a,c,d){a=a|0;c=c|0;d=d|0;c=b[d+(c<<16>>16<<1)>>1]|0;if((a|0)!=7){a=c;return a|0}a=c&65532;return a|0}function ab(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+48|0;r=v+20|0;u=v;t=c[h+44>>2]|0;s=c[h+64>>2]|0;l=c[h+4>>2]|0;q=c[h+12>>2]|0;n=c[h+20>>2]|0;m=c[h+56>>2]|0;if(!(f<<16>>16)){o=e>>>0<2;if(o){f=765;p=508;n=c[h+52>>2]|0}else{h=(e|0)==5;f=h?1533:765;p=2044;l=h?m:l}m=b[g>>1]|0;f=((m*196608>>16|0)>(f&65535|0)?f:m*3&65535)<<16>>16;m=b[l+(f<<1)>>1]|0;b[r>>1]=m;b[r+2>>1]=b[l+(f+1<<1)>>1]|0;b[r+4>>1]=b[l+(f+2<<1)>>1]|0;f=b[g+2>>1]|0;if(o)f=f<<16>>16<<1&65535;o=(f<<16>>16)*196608|0;o=(o|0)>100466688?1533:o>>16;b[r+6>>1]=b[q+(o<<1)>>1]|0;b[r+8>>1]=b[q+(o+1<<1)>>1]|0;b[r+10>>1]=b[q+(o+2<<1)>>1]|0;g=b[g+4>>1]|0;g=((g<<18>>16|0)>(p&65535|0)?p:g<<2&65535)<<16>>16;b[r+12>>1]=b[n+(g<<1)>>1]|0;b[r+14>>1]=b[n+((g|1)<<1)>>1]|0;b[r+16>>1]=b[n+((g|2)<<1)>>1]|0;b[r+18>>1]=b[n+((g|3)<<1)>>1]|0;if((e|0)==8){f=0;while(1){s=d+(f<<1)|0;b[u+(f<<1)>>1]=Rd(m,Rd(b[t+(f<<1)>>1]|0,b[s>>1]|0,k)|0,k)|0;b[s>>1]=m;f=f+1|0;if((f|0)==10)break;m=b[r+(f<<1)>>1]|0}Ae(u,205,10,k);l=d+20|0;m=u;f=l+20|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(f|0));me(u,j,10,k);i=v;return}else l=0;do{m=d+(l<<1)|0;f=(Z(b[s+(l<<1)>>1]|0,b[m>>1]|0)|0)>>15;if((f|0)>32767){c[k>>2]=1;f=32767}g=Rd(b[t+(l<<1)>>1]|0,f&65535,k)|0;e=b[r+(l<<1)>>1]|0;b[u+(l<<1)>>1]=Rd(e,g,k)|0;b[m>>1]=e;l=l+1|0}while((l|0)!=10);Ae(u,205,10,k);l=d+20|0;m=u;f=l+20|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(f|0));me(u,j,10,k);i=v;return}else{l=0;do{f=(b[d+20+(l<<1)>>1]|0)*29491>>15;if((f|0)>32767){c[k>>2]=1;f=32767}m=(b[t+(l<<1)>>1]|0)*3277>>15;if((m|0)>32767){c[k>>2]=1;m=32767}b[u+(l<<1)>>1]=Rd(m&65535,f&65535,k)|0;l=l+1|0}while((l|0)!=10);if((e|0)==8){l=0;do{s=d+(l<<1)|0;r=Rd(b[t+(l<<1)>>1]|0,b[s>>1]|0,k)|0;b[s>>1]=Ge(b[u+(l<<1)>>1]|0,r,k)|0;l=l+1|0}while((l|0)!=10);Ae(u,205,10,k);l=d+20|0;m=u;f=l+20|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(f|0));me(u,j,10,k);i=v;return}else l=0;do{m=d+(l<<1)|0;f=(Z(b[s+(l<<1)>>1]|0,b[m>>1]|0)|0)>>15;if((f|0)>32767){c[k>>2]=1;f=32767}r=Rd(b[t+(l<<1)>>1]|0,f&65535,k)|0;b[m>>1]=Ge(b[u+(l<<1)>>1]|0,r,k)|0;l=l+1|0}while((l|0)!=10);Ae(u,205,10,k);l=d+20|0;m=u;f=l+20|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(f|0));me(u,j,10,k);i=v;return}}function bb(a,b,c){a=a|0;b=b|0;c=c|0;Pe(a|0,c+((b<<16>>16)*10<<1)|0,20)|0;return}function cb(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+80|0;q=v+60|0;r=v+40|0;t=v+20|0;u=v;s=c[g+48>>2]|0;n=c[g+24>>2]|0;o=c[g+28>>2]|0;p=c[g+32>>2]|0;if(e<<16>>16){l=0;do{q=s+(l<<1)|0;f=Rd(((b[q>>1]|0)*1639|0)>>>15&65535,((b[d+20+(l<<1)>>1]|0)*31128|0)>>>15&65535,k)|0;b[t+(l<<1)>>1]=f;b[u+(l<<1)>>1]=f;r=d+(l<<1)|0;b[r>>1]=Ge(f,Rd(b[q>>1]|0,((b[r>>1]|0)*21299|0)>>>15&65535,k)|0,k)|0;l=l+1|0}while((l|0)!=10);Ae(t,205,10,k);Ae(u,205,10,k);l=d+20|0;g=u;e=l+20|0;do{a[l>>0]=a[g>>0]|0;l=l+1|0;g=g+1|0}while((l|0)<(e|0));me(t,h,10,k);me(u,j,10,k);i=v;return}e=c[g+16>>2]|0;g=c[g+8>>2]|0;m=b[f>>1]|0;m=((m<<18>>18|0)==(m|0)?m<<2:m>>>15^32767)<<16>>16;b[q>>1]=b[g+(m<<1)>>1]|0;b[q+2>>1]=b[g+(m+1<<1)>>1]|0;b[r>>1]=b[g+(m+2<<1)>>1]|0;b[r+2>>1]=b[g+(m+3<<1)>>1]|0;m=b[f+2>>1]|0;m=((m<<18>>18|0)==(m|0)?m<<2:m>>>15^32767)<<16>>16;b[q+4>>1]=b[e+(m<<1)>>1]|0;b[q+6>>1]=b[e+(m+1<<1)>>1]|0;b[r+4>>1]=b[e+(m+2<<1)>>1]|0;b[r+6>>1]=b[e+(m+3<<1)>>1]|0;m=b[f+4>>1]|0;g=m<<16>>16;if(m<<16>>16<0)e=~((g^-2)>>1);else e=g>>>1;m=e<<16>>16;m=((e<<18>>18|0)==(m|0)?e<<2:m>>>15^32767)<<16>>16;l=n+(m+1<<1)|0;e=b[n+(m<<1)>>1]|0;if(!(g&1)){b[q+8>>1]=e;b[q+10>>1]=b[l>>1]|0;b[r+8>>1]=b[n+(m+2<<1)>>1]|0;b[r+10>>1]=b[n+(m+3<<1)>>1]|0}else{if(e<<16>>16==-32768)e=32767;else e=0-(e&65535)&65535;b[q+8>>1]=e;e=b[l>>1]|0;if(e<<16>>16==-32768)e=32767;else e=0-(e&65535)&65535;b[q+10>>1]=e;e=b[n+(m+2<<1)>>1]|0;if(e<<16>>16==-32768)e=32767;else e=0-(e&65535)&65535;b[r+8>>1]=e;e=b[n+(m+3<<1)>>1]|0;if(e<<16>>16==-32768)e=32767;else e=0-(e&65535)&65535;b[r+10>>1]=e}l=b[f+6>>1]|0;l=((l<<18>>18|0)==(l|0)?l<<2:l>>>15^32767)<<16>>16;b[q+12>>1]=b[o+(l<<1)>>1]|0;b[q+14>>1]=b[o+(l+1<<1)>>1]|0;b[r+12>>1]=b[o+(l+2<<1)>>1]|0;b[r+14>>1]=b[o+(l+3<<1)>>1]|0;l=b[f+8>>1]|0;l=((l<<18>>18|0)==(l|0)?l<<2:l>>>15^32767)<<16>>16;b[q+16>>1]=b[p+(l<<1)>>1]|0;b[q+18>>1]=b[p+(l+1<<1)>>1]|0;b[r+16>>1]=b[p+(l+2<<1)>>1]|0;b[r+18>>1]=b[p+(l+3<<1)>>1]|0;l=0;do{g=d+(l<<1)|0;e=(b[g>>1]|0)*21299>>15;if((e|0)>32767){c[k>>2]=1;e=32767}p=Rd(b[s+(l<<1)>>1]|0,e&65535,k)|0;b[t+(l<<1)>>1]=Rd(b[q+(l<<1)>>1]|0,p,k)|0;f=b[r+(l<<1)>>1]|0;b[u+(l<<1)>>1]=Rd(f,p,k)|0;b[g>>1]=f;l=l+1|0}while((l|0)!=10);Ae(t,205,10,k);Ae(u,205,10,k);l=d+20|0;g=u;e=l+20|0;do{a[l>>0]=a[g>>0]|0;l=l+1|0;g=g+1|0}while((l|0)<(e|0));me(t,h,10,k);me(u,j,10,k);i=v;return}function db(a,c){a=a|0;c=c|0;var d=0,e=0;if(!a){e=-1;return e|0}d=a;e=d+20|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(e|0));Pe(a+20|0,c|0,20)|0;e=0;return e|0}function eb(d){d=d|0;var e=0,f=0,g=0,h=0,i=0;if(!d){i=-1;return i|0}b[d>>1]=0;b[d+2>>1]=8192;e=d+4|0;b[e>>1]=3500;b[d+6>>1]=3500;c[d+8>>2]=1887529304;b[d+12>>1]=3e4;b[d+14>>1]=26e3;b[d+16>>1]=21e3;b[d+18>>1]=15e3;b[d+20>>1]=8e3;b[d+22>>1]=0;b[d+24>>1]=-8e3;b[d+26>>1]=-15e3;b[d+28>>1]=-21e3;b[d+30>>1]=-26e3;b[d+32>>1]=3e4;b[d+34>>1]=26e3;b[d+36>>1]=21e3;b[d+38>>1]=15e3;b[d+40>>1]=8e3;b[d+42>>1]=0;b[d+44>>1]=-8e3;b[d+46>>1]=-15e3;b[d+48>>1]=-21e3;b[d+50>>1]=-26e3;b[d+212>>1]=0;b[d+374>>1]=0;b[d+392>>1]=0;f=d+52|0;b[f>>1]=1384;b[d+54>>1]=2077;b[d+56>>1]=3420;b[d+58>>1]=5108;b[d+60>>1]=6742;b[d+62>>1]=8122;b[d+64>>1]=9863;b[d+66>>1]=11092;b[d+68>>1]=12714;b[d+70>>1]=13701;g=d+72|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+92|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+112|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+132|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+152|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+172|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+192|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));Qe(d+214|0,0,160)|0;b[d+376>>1]=3500;b[d+378>>1]=3500;i=b[e>>1]|0;b[d+380>>1]=i;b[d+382>>1]=i;b[d+384>>1]=i;b[d+386>>1]=i;b[d+388>>1]=i;b[d+390>>1]=i;b[d+394>>1]=0;b[d+396>>1]=7;b[d+398>>1]=32767;b[d+400>>1]=0;b[d+402>>1]=0;b[d+404>>1]=0;c[d+408>>2]=1;b[d+412>>1]=0;i=0;return i|0}function fb(d,f,g,h,j,k,l,m,n,o,p,q){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0;_=i;i=i+304|0;Q=_+192|0;N=_+168|0;S=_+148|0;W=_+216|0;T=_+146|0;U=_+144|0;O=_+124|0;P=_+104|0;R=_+84|0;V=_+60|0;L=_+40|0;K=_;Y=d+404|0;X=d+400|0;if((b[Y>>1]|0)!=0?(b[X>>1]|0)!=0:0){J=d+394|0;b[J>>1]=b[636+(l<<1)>>1]|0;z=b[d+212>>1]|0;y=z+10|0;Pe(d+52+(((y&65535|0)==80?0:y<<16>>16)<<1)|0,d+52+(z<<1)|0,20)|0;z=b[d+392>>1]|0;y=z+1|0;b[d+376+(((y&65535|0)==8?0:y<<16>>16)<<1)>>1]=b[d+376+(z<<1)>>1]|0;y=d+4|0;b[y>>1]=0;z=K+36|0;A=K+32|0;B=K+28|0;C=K+24|0;D=K+20|0;E=K+16|0;F=K+12|0;G=K+8|0;H=K+4|0;I=d+52|0;t=K;M=t+40|0;do{c[t>>2]=0;t=t+4|0}while((t|0)<(M|0));s=0;r=7;while(1){M=b[d+376+(r<<1)>>1]|0;x=M<<16>>16;if(M<<16>>16<0)x=~((x^-8)>>3);else x=x>>>3;s=Rd(s,x&65535,q)|0;b[y>>1]=s;v=r*10|0;t=9;while(1){u=K+(t<<2)|0;w=c[u>>2]|0;M=b[d+52+(t+v<<1)>>1]|0;x=M+w|0;if((M^w|0)>-1&(x^w|0)<0){c[q>>2]=1;x=(w>>>31)+2147483647|0}c[u>>2]=x;if((t|0)>0)t=t+-1|0;else break}if((r|0)<=0)break;else r=r+-1|0}b[L+18>>1]=(c[z>>2]|0)>>>3;b[L+16>>1]=(c[A>>2]|0)>>>3;b[L+14>>1]=(c[B>>2]|0)>>>3;b[L+12>>1]=(c[C>>2]|0)>>>3;b[L+10>>1]=(c[D>>2]|0)>>>3;b[L+8>>1]=(c[E>>2]|0)>>>3;b[L+6>>1]=(c[F>>2]|0)>>>3;b[L+4>>1]=(c[G>>2]|0)>>>3;b[L+2>>1]=(c[H>>2]|0)>>>3;b[L>>1]=(c[K>>2]|0)>>>3;me(L,d+12|0,10,q);b[y>>1]=Ge(b[y>>1]|0,b[J>>1]|0,q)|0;Oe(d+214|0,I|0,160)|0;L=9;while(1){M=b[d+214+(L+70<<1)>>1]|0;u=M<<16>>16;K=b[d+214+(L+60<<1)>>1]|0;t=(K<<16>>16)+u|0;if((K^M)<<16>>16>-1&(t^u|0)<0){c[q>>2]=1;t=(u>>>31)+2147483647|0}M=b[d+214+(L+50<<1)>>1]|0;u=M+t|0;if((M^t|0)>-1&(u^t|0)<0){c[q>>2]=1;u=(t>>>31)+2147483647|0}M=b[d+214+(L+40<<1)>>1]|0;t=M+u|0;if((M^u|0)>-1&(t^u|0)<0){c[q>>2]=1;t=(u>>>31)+2147483647|0}M=b[d+214+(L+30<<1)>>1]|0;u=M+t|0;if((M^t|0)>-1&(u^t|0)<0){c[q>>2]=1;u=(t>>>31)+2147483647|0}M=b[d+214+(L+20<<1)>>1]|0;t=M+u|0;if((M^u|0)>-1&(t^u|0)<0){c[q>>2]=1;t=(u>>>31)+2147483647|0}M=b[d+214+(L+10<<1)>>1]|0;u=M+t|0;if((M^t|0)>-1&(u^t|0)<0){c[q>>2]=1;t=(t>>>31)+2147483647|0}else t=u;M=b[d+214+(L<<1)>>1]|0;u=M+t|0;if((M^t|0)>-1&(u^t|0)<0){c[q>>2]=1;u=(t>>>31)+2147483647|0}if((u|0)<0)u=~((u^-8)>>3);else u=u>>>3;x=u&65535;v=b[654+(L<<1)>>1]|0;w=7;while(1){r=d+214+((w*10|0)+L<<1)|0;u=Ge(b[r>>1]|0,x,q)|0;b[r>>1]=u;u=(Z(v,u<<16>>16)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[r>>1]=u;s=(u&65535)-(u>>>15&1)|0;s=s<<16>>31^s;t=s&65535;if(t<<16>>16>655)t=(((s<<16>>16)+261489|0)>>>2)+655&65535;t=t<<16>>16>1310?1310:t;if(!(u&32768))u=t;else u=0-(t&65535)&65535;b[r>>1]=u;if((w|0)>0)w=w+-1|0;else break}if((L|0)>0)L=L+-1|0;else break}}if(b[X>>1]|0){x=d+32|0;w=d+12|0;t=x;v=w;M=t+20|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));v=d+4|0;s=b[v>>1]|0;r=d+6|0;b[r>>1]=s;do if(b[d+402>>1]|0){t=b[d>>1]|0;b[d>>1]=0;t=t<<16>>16<32?t:32;M=t<<16>>16;u=M<<10;if((u|0)!=(M<<26>>16|0)){c[q>>2]=1;u=t<<16>>16>0?32767:-32768}if(t<<16>>16>1)u=Td(1024,u&65535)|0;else u=16384;b[d+2>>1]=u;bb(g,b[m>>1]|0,c[n+60>>2]|0);ab(g,8,0,m+2|0,n,w,q);t=g;M=t+20|0;do{a[t>>0]=0;t=t+1|0}while((t|0)<(M|0));s=b[m+8>>1]|0;s=s<<16>>16==0?-32768:((s+64&65535)>127?(s<<16>>16>0?32767:32768):s<<16>>16<<9)+60416&65535;b[v>>1]=s;if((b[d+412>>1]|0)!=0?(c[d+408>>2]|0)!=0:0)break;t=x;v=w;M=t+20|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));b[r>>1]=s}while(0);t=s<<16>>16;if(s<<16>>16<0)t=~((t^-2)>>1);else t=t>>>1;t=t+56536|0;u=t<<16;if((u|0)>0)t=0;else t=(u|0)<-946077696?-14436:t&65535;b[h>>1]=t;b[h+2>>1]=t;b[h+4>>1]=t;b[h+6>>1]=t;m=((t<<16>>16)*5443|0)>>>15&65535;b[h+8>>1]=m;b[h+10>>1]=m;b[h+12>>1]=m;b[h+14>>1]=m}t=((b[636+(l<<1)>>1]|0)*104864|0)>>>15<<16;if((t|0)<0)t=~((t>>16^-32)>>5);else t=t>>21;l=d+394|0;b[l>>1]=Rd(((b[l>>1]|0)*29491|0)>>>15&65535,t&65535,q)|0;h=(e[d>>1]<<16)+65536|0;t=h>>16;n=d+2|0;t=(Z(((h<<10>>26|0)==(t|0)?h>>>6:t>>>15^32767)<<16>>16,b[n>>1]|0)|0)>>15;if((t|0)>32767){c[q>>2]=1;t=32767}s=t&65535;if(s<<16>>16<=1024)if(s<<16>>16<-2048)w=-32768;else w=t<<4&65535;else w=16384;m=d+4|0;x=w<<16>>16;u=Z(b[m>>1]|0,x)|0;if((u|0)==1073741824){c[q>>2]=1;L=2147483647}else L=u<<1;u=(Z(b[d+30>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}y=u&65535;b[Q+18>>1]=y;u=(Z(b[d+28>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+16>>1]=u;u=(Z(b[d+26>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+14>>1]=u;u=(Z(b[d+24>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+12>>1]=u;u=(Z(b[d+22>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+10>>1]=u;u=(Z(b[d+20>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+8>>1]=u;u=(Z(b[d+18>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+6>>1]=u;u=(Z(b[d+16>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+4>>1]=u;u=(Z(b[d+14>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+2>>1]=u;u=(Z(b[d+12>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q>>1]=u;h=d+6|0;x=16384-(w&65535)<<16>>16;u=Z(b[h>>1]|0,x)|0;if((u|0)!=1073741824){t=(u<<1)+L|0;if((u^L|0)>0&(t^L|0)<0){c[q>>2]=1;K=(L>>>31)+2147483647|0}else K=t}else{c[q>>2]=1;K=2147483647}t=y;v=9;while(1){s=Q+(v<<1)|0;u=(Z(b[d+32+(v<<1)>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}t=Rd(t,u&65535,q)|0;b[s>>1]=t;M=t<<16>>16;u=M<<1;if((u|0)!=(M<<17>>16|0)){c[q>>2]=1;u=t<<16>>16>0?32767:-32768}b[s>>1]=u;u=v+-1|0;if((v|0)<=0)break;t=b[Q+(u<<1)>>1]|0;v=u}L=d+374|0;u=((e[L>>1]<<16)+-161021952>>16)*9830>>15;if((u|0)>32767){c[q>>2]=1;u=32767}u=4096-(u&65535)|0;t=u<<16;if((t|0)>268369920)x=32767;else x=(t|0)<0?0:u<<19>>16;J=d+8|0;u=Ga(J,3)|0;ne(Q,O,10,q);t=P;v=O;M=t+20|0;do{b[t>>1]=b[v>>1]|0;t=t+2|0;v=v+2|0}while((t|0)<(M|0));t=(u<<16>>16)*10|0;v=9;while(1){s=P+(v<<1)|0;r=b[s>>1]|0;u=(Z(b[d+214+(v+t<<1)>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[s>>1]=Rd(r,u&65535,q)|0;if((v|0)>0)v=v+-1|0;else break}Ae(O,205,10,q);Ae(P,205,10,q);t=g+20|0;v=O;M=t+20|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));me(O,Q,10,q);me(P,R,10,q);he(Q,N,q);he(R,V,q);t=p;v=N;M=t+22|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));t=p+22|0;v=N;M=t+22|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));t=p+44|0;v=N;M=t+22|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));t=p+66|0;v=N;M=t+22|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));Fa(N+2|0,S,q);u=0;t=32767;do{s=b[S+(u<<1)>>1]|0;s=Z(s,s)|0;if(s>>>0<1073741824)s=32767-(s>>>15)|0;else{c[q>>2]=1;s=0}t=(Z(s<<16>>16,t<<16>>16)|0)>>15;if((t|0)>32767){c[q>>2]=1;t=32767}u=u+1|0}while((u|0)!=10);de(t<<16>>16,T,U,q);t=(e[T>>1]<<16)+-983040|0;s=t>>16;s=De(Ge(0,Rd(((t<<12>>28|0)==(s|0)?t>>>4:s>>>15^32767)&65535,De(b[U>>1]|0,3,q)|0,q)|0,q)|0,1,q)|0;t=(b[L>>1]|0)*29491>>15;if((t|0)>32767){c[q>>2]=1;t=32767}u=s<<16>>16;s=u*3277>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[L>>1]=Rd(t&65535,s&65535,q)|0;s=K>>10;r=s+262144|0;if((s|0)>-1&(r^s|0)<0){c[q>>2]=1;r=(s>>>31)+2147483647|0}U=u<<4;s=r-U|0;if(((s^r)&(r^U)|0)<0){c[q>>2]=1;r=(r>>>31)+2147483647|0}else r=s;U=b[l>>1]<<5;s=U+r|0;if((U^r|0)>-1&(s^r|0)<0){c[q>>2]=1;s=(r>>>31)+2147483647|0}u=(re(s>>>16&65535,s>>>1&32767,q)|0)<<16>>16;Ha(J,W,q);r=39;while(1){t=W+(r<<1)|0;s=(Z(b[t>>1]|0,u)|0)>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[t>>1]=s;if((r|0)>0)r=r+-1|0;else break}He(V,W,o,40,f,1);Ha(J,W,q);r=39;while(1){t=W+(r<<1)|0;s=(Z(b[t>>1]|0,u)|0)>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[t>>1]=s;if((r|0)>0)r=r+-1|0;else break}He(V,W,o+80|0,40,f,1);Ha(J,W,q);r=39;while(1){t=W+(r<<1)|0;s=(Z(b[t>>1]|0,u)|0)>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[t>>1]=s;if((r|0)>0)r=r+-1|0;else break}He(V,W,o+160|0,40,f,1);Ha(J,W,q);t=39;while(1){r=W+(t<<1)|0;s=(Z(b[r>>1]|0,u)|0)>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[r>>1]=s;if((t|0)>0)t=t+-1|0;else break}He(V,W,o+240|0,40,f,1);b[j+14>>1]=20;b[j+16>>1]=0;if((k|0)==2){s=b[d>>1]|0;s=s<<16>>16>32?32:s<<16>>16<1?8:s;o=s<<16>>16;r=o<<10;if((r|0)!=(o<<26>>16|0)){c[q>>2]=1;r=s<<16>>16>0?32767:-32768}b[n>>1]=Td(1024,r&65535)|0;b[d>>1]=0;t=d+32|0;v=d+12|0;M=t+20|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));q=b[m>>1]|0;b[h>>1]=q;b[m>>1]=(q&65535)+65280}if(!(b[X>>1]|0)){i=_;return}do if(!(b[d+402>>1]|0)){if(b[Y>>1]|0)break;i=_;return}while(0);b[d>>1]=0;b[d+412>>1]=1;i=_;return}function gb(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;k=m+2|0;l=m;b[l>>1]=0;j=a+212|0;h=(e[j>>1]|0)+10|0;h=(h&65535|0)==80?0:h&65535;b[j>>1]=h;Pe(a+52+(h<<16>>16<<1)|0,d|0,20)|0;h=0;j=159;while(1){n=b[f+(j<<1)>>1]|0;n=Z(n,n)|0;n=(n|0)==1073741824?2147483647:n<<1;d=n+h|0;if((n^h|0)>-1&(d^h|0)<0){c[g>>2]=1;h=(h>>>31)+2147483647|0}else h=d;if((j|0)>0)j=j+-1|0;else break}de(h,k,l,g);h=b[k>>1]|0;n=h<<16>>16;d=n<<10;if((d|0)!=(n<<26>>16|0)){c[g>>2]=1;d=h<<16>>16>0?32767:-32768}b[k>>1]=d;n=b[l>>1]|0;h=n<<16>>16;if(n<<16>>16<0)h=~((h^-32)>>5);else h=h>>>5;l=a+392|0;n=(e[l>>1]|0)+1|0;n=(n&65535|0)==8?0:n&65535;b[l>>1]=n;b[a+376+(n<<16>>16<<1)>>1]=h+57015+d;i=m;return}function hb(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=(d|0)==4;m=(d|0)==5;n=(d|0)==6;g=c[a+408>>2]|0;a:do if((d+-4|0)>>>0<3)k=4;else{if((g+-1|0)>>>0<2)switch(d|0){case 2:case 3:case 7:{k=4;break a}default:{}}b[a>>1]=0;j=0}while(0);if((k|0)==4){b:do if((g|0)==2){switch(d|0){case 2:case 4:case 6:case 7:break;default:{h=1;break b}}h=2}else h=1;while(0);j=(e[a>>1]|0)+1&65535;b[a>>1]=j;j=(d|0)!=5&j<<16>>16>50?2:h}i=a+398|0;if(m&(b[a+412>>1]|0)==0){b[i>>1]=0;h=0}else h=b[i>>1]|0;h=Rd(h,1,f)|0;b[i>>1]=h;f=a+404|0;b[f>>1]=0;c:do switch(d|0){case 2:case 4:case 5:case 6:case 7:{if(!((d|0)==7&(j|0)==0)){if(h<<16>>16>30){b[f>>1]=1;b[i>>1]=0;b[a+396>>1]=0;break c}h=a+396|0;g=b[h>>1]|0;if(!(g<<16>>16)){b[i>>1]=0;break c}else{b[h>>1]=(g&65535)+65535;break c}}else k=14;break}default:k=14}while(0);if((k|0)==14)b[a+396>>1]=7;if(!j)return j|0;h=a+400|0;b[h>>1]=0;g=a+402|0;b[g>>1]=0;if(l){b[h>>1]=1;return j|0}if(m){b[h>>1]=1;b[g>>1]=1;return j|0}if(!n)return j|0;b[h>>1]=1;b[f>>1]=0;return j|0}function ib(a){a=a|0;if(!a){a=-1;return a|0}b[a>>1]=1;b[a+2>>1]=1;b[a+4>>1]=1;b[a+6>>1]=1;b[a+8>>1]=1;b[a+10>>1]=0;b[a+12>>1]=1;a=0;return a|0}function jb(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l+2|0;j=l;h=Zd(a,5)|0;a=a+10|0;if((Ge(h,b[a>>1]|0,g)|0)<<16>>16>0)h=b[a>>1]|0;h=(Z(b[674+(e<<16>>16<<1)>>1]|0,h<<16>>16)|0)>>15;if((h|0)>32767){c[g>>2]=1;h=32767}b[f>>1]=h;Xd(d,k,j,g);Wd(d,b[k>>1]|0,b[j>>1]|0);i=l;return}function kb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!(c<<16>>16)){if(d<<16>>16){c=a+12|0;if((Ge(b[e>>1]|0,b[c>>1]|0,f)|0)<<16>>16>0)b[e>>1]=b[c>>1]|0}else c=a+12|0;b[c>>1]=b[e>>1]|0}b[a+10>>1]=b[e>>1]|0;f=a+2|0;b[a>>1]=b[f>>1]|0;d=a+4|0;b[f>>1]=b[d>>1]|0;f=a+6|0;b[d>>1]=b[f>>1]|0;a=a+8|0;b[f>>1]=b[a>>1]|0;b[a>>1]=b[e>>1]|0;return}function lb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0;g=Zd(a,5)|0;a=a+10|0;if((Ge(g,b[a>>1]|0,f)|0)<<16>>16>0)g=b[a>>1]|0;g=(Z(b[688+(d<<16>>16<<1)>>1]|0,g<<16>>16)|0)>>15;if((g|0)<=32767){f=g;f=f&65535;b[e>>1]=f;return}c[f>>2]=1;f=32767;f=f&65535;b[e>>1]=f;return}function mb(a){a=a|0;if(!a){a=-1;return a|0}b[a>>1]=1640;b[a+2>>1]=1640;b[a+4>>1]=1640;b[a+6>>1]=1640;b[a+8>>1]=1640;b[a+10>>1]=0;b[a+12>>1]=16384;a=0;return a|0}function nb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!(c<<16>>16)){if(d<<16>>16){c=a+12|0;if((Ge(b[e>>1]|0,b[c>>1]|0,f)|0)<<16>>16>0)b[e>>1]=b[c>>1]|0}else c=a+12|0;b[c>>1]=b[e>>1]|0}e=b[e>>1]|0;c=a+10|0;b[c>>1]=e;if((Ge(e,16384,f)|0)<<16>>16>0){b[c>>1]=16384;c=16384}else c=b[c>>1]|0;f=a+2|0;b[a>>1]=b[f>>1]|0;e=a+4|0;b[f>>1]=b[e>>1]|0;f=a+6|0;b[e>>1]=b[f>>1]|0;a=a+8|0;b[f>>1]=b[a>>1]|0;b[a>>1]=c;return}function ob(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;k=Zd(e,9)|0;l=b[e+16>>1]|0;j=l<<16>>16;e=(j+(b[e+14>>1]|0)|0)>>>1;e=(j|0)<(e<<16>>16|0)?l:e&65535;if(!(d<<16>>16>5?k<<16>>16>d<<16>>16:0))return 0;j=e<<16>>16;j=((j<<18>>18|0)==(j|0)?j<<2:j>>>15^32767)&65535;if(!(f<<16>>16>6&g<<16>>16==0))j=Ge(j,e,i)|0;k=k<<16>>16>j<<16>>16?j:k;l=qe(d)|0;j=l<<16>>16;if(l<<16>>16<0){e=0-j<<16;if((e|0)<983040)j=d<<16>>16>>(e>>16)&65535;else j=0}else{e=d<<16>>16;g=e<>16>>j|0)==(e|0))j=g&65535;else j=(e>>>15^32767)&65535}f=Z((Td(16383,j)|0)<<16>>16,k<<16>>16)|0;if((f|0)==1073741824){c[i>>2]=1;g=2147483647}else g=f<<1;f=Ge(20,l,i)|0;j=f<<16>>16;if(f<<16>>16>0)f=f<<16>>16<31?g>>j:0;else{d=0-j<<16>>16;f=g<>d|0)==(g|0)?f:g>>31^2147483647}f=(f|0)>32767?32767:f&65535;f=h<<16>>16!=0&f<<16>>16>3072?3072:f<<16>>16;e=0;do{g=a+(e<<1)|0;j=Z(b[g>>1]|0,f)|0;if((j|0)==1073741824){c[i>>2]=1;j=2147483647}else j=j<<1;b[g>>1]=j>>>11;e=e+1|0}while((e|0)!=40);return 0}function pb(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;h=c[g+104>>2]|0;i=c[g+96>>2]|0;if(a>>>0>=8){b[f>>1]=(d[e>>0]|0)>>>4&1;b[f+2>>1]=(d[e>>0]|0)>>>5&1;b[f+4>>1]=(d[e>>0]|0)>>>6&1;b[f+6>>1]=(d[e>>0]|0)>>>7&255;h=h+(a<<1)|0;if((b[h>>1]|0)>1){a=1;g=1;i=4}else return;while(1){j=e+a|0;a=i|1;b[f+(i<<16>>16<<1)>>1]=d[j>>0]&1;b[f+(a<<16>>16<<1)>>1]=(d[j>>0]|0)>>>1&1;k=i|3;b[f+(a+1<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>2&1;b[f+(k<<16>>16<<1)>>1]=(d[j>>0]|0)>>>3&1;b[f+(k+1<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>4&1;b[f+(k+2<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>5&1;b[f+(k+3<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>6&1;b[f+(k+4<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>7&255;g=g+1<<16>>16;if(g<<16>>16<(b[h>>1]|0)){a=g<<16>>16;i=i+8<<16>>16}else break}return}k=c[(c[g+100>>2]|0)+(a<<2)>>2]|0;b[f+(b[k>>1]<<1)>>1]=(d[e>>0]|0)>>>4&1;b[f+(b[k+2>>1]<<1)>>1]=(d[e>>0]|0)>>>5&1;b[f+(b[k+4>>1]<<1)>>1]=(d[e>>0]|0)>>>6&1;b[f+(b[k+6>>1]<<1)>>1]=(d[e>>0]|0)>>>7&255;j=h+(a<<1)|0;if((b[j>>1]|0)<=1)return;g=i+(a<<1)|0;h=1;a=1;i=4;while(1){h=e+h|0;i=i<<16>>16;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=d[h>>0]&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>1&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>2&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>3&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>4&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>5&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>6&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>7&1;i=i+1|0}}}}}}}}a=a+1<<16>>16;if(a<<16>>16<(b[j>>1]|0))h=a<<16>>16;else break}return}function qb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;switch(d<<16>>16){case 0:{j=9;while(1){i=b[a+(j<<1)>>1]|0;d=i<<16>>16;if(i<<16>>16<0)d=~((d^-4)>>2);else d=d>>>2;h=b[c+(j<<1)>>1]|0;g=h<<16>>16;if(h<<16>>16<0)h=~((g^-4)>>2);else h=g>>>2;b[e+(j<<1)>>1]=Rd((i&65535)-d&65535,h&65535,f)|0;if((j|0)>0)j=j+-1|0;else break}return}case 40:{h=9;while(1){f=b[a+(h<<1)>>1]|0;d=f<<16>>16;if(f<<16>>16<0)g=~((d^-2)>>1);else g=d>>>1;f=b[c+(h<<1)>>1]|0;d=f<<16>>16;if(f<<16>>16<0)d=~((d^-2)>>1);else d=d>>>1;b[e+(h<<1)>>1]=d+g;if((h|0)>0)h=h+-1|0;else break}return}case 80:{j=9;while(1){i=b[a+(j<<1)>>1]|0;d=i<<16>>16;if(i<<16>>16<0)i=~((d^-4)>>2);else i=d>>>2;d=b[c+(j<<1)>>1]|0;g=d<<16>>16;if(d<<16>>16<0)h=~((g^-4)>>2);else h=g>>>2;b[e+(j<<1)>>1]=Rd(i&65535,(d&65535)-h&65535,f)|0;if((j|0)>0)j=j+-1|0;else break}return}case 120:{b[e+18>>1]=b[c+18>>1]|0;b[e+16>>1]=b[c+16>>1]|0;b[e+14>>1]=b[c+14>>1]|0;b[e+12>>1]=b[c+12>>1]|0;b[e+10>>1]=b[c+10>>1]|0;b[e+8>>1]=b[c+8>>1]|0;b[e+6>>1]=b[c+6>>1]|0;b[e+4>>1]=b[c+4>>1]|0;b[e+2>>1]=b[c+2>>1]|0;b[e>>1]=b[c>>1]|0;return}default:return}}function rb(a,b){a=a|0;b=b|0;if(!a){a=-1;return a|0}Pe(a|0,b|0,20)|0;a=0;return a|0}function sb(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=0;do{k=a+(l<<1)|0;f=b[k>>1]|0;i=f&65535;j=i<<16;f=f<<16>>16;if((f*5243|0)==1073741824){c[e>>2]=1;h=2147483647}else h=f*10486|0;g=j-h|0;if(((g^j)&(h^j)|0)<0){c[e>>2]=1;h=(i>>>15)+2147483647|0}else h=g;f=b[d+(l<<1)>>1]|0;g=f*5243|0;if((g|0)!=1073741824){f=(f*10486|0)+h|0;if((g^h|0)>0&(f^h|0)<0){c[e>>2]=1;f=(h>>>31)+2147483647|0}}else{c[e>>2]=1;f=2147483647}b[k>>1]=Ce(f,e)|0;l=l+1|0}while((l|0)!=10);return}function tb(a){a=a|0;var c=0;if(!a){c=-1;return c|0}c=a+18|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function ub(a){a=a|0;b[a+14>>1]=1;return}function vb(a){a=a|0;b[a+14>>1]=0;return}function wb(a,d,e,f,g,h,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var 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;C=i;i=i+160|0;z=C+80|0;A=C;v=c[l+120>>2]|0;w=c[l+124>>2]|0;x=c[l+128>>2]|0;u=c[l+132>>2]|0;o=a+6|0;t=a+8|0;b[t>>1]=b[o>>1]|0;r=a+4|0;b[o>>1]=b[r>>1]|0;s=a+2|0;b[r>>1]=b[s>>1]|0;b[s>>1]=b[a>>1]|0;b[a>>1]=g;l=g<<16>>16<14746?g<<16>>16>9830&1:2;n=a+12|0;g=b[n>>1]|0;p=g<<15;do if((p|0)<=536870911)if((p|0)<-536870912){c[m>>2]=1;g=-2147483648;break}else{g=g<<17;break}else{c[m>>2]=1;g=2147483647}while(0);y=f<<16>>16;q=a+16|0;if((Ce(g,m)|0)<<16>>16>=f<<16>>16){p=b[q>>1]|0;if(p<<16>>16>0){p=(p&65535)+65535&65535;b[q>>1]=p}if(!(p<<16>>16)){g=(b[a>>1]|0)<9830;g=(b[s>>1]|0)<9830?(g?2:1):g&1;if((b[r>>1]|0)<9830)g=(g&65535)+1&65535;if((b[o>>1]|0)<9830)g=(g&65535)+1&65535;if((b[t>>1]|0)<9830)g=(g&65535)+1&65535;p=0;l=g<<16>>16>2?0:l}}else{b[q>>1]=2;p=2}s=l<<16>>16;t=a+10|0;s=(p<<16>>16==0?(s|0)>((b[t>>1]|0)+1|0):0)?s+65535&65535:l;a=(b[a+14>>1]|0)==1?0:f<<16>>16<10?2:s<<16>>16<2&p<<16>>16>0?(s&65535)+1&65535:s;b[t>>1]=a;b[n>>1]=f;switch(d|0){case 4:case 6:case 7:break;default:if(a<<16>>16<2){p=0;l=0;o=h;n=z;while(1){if(!(b[o>>1]|0))g=0;else{l=l<<16>>16;b[A+(l<<1)>>1]=p;g=b[o>>1]|0;l=l+1&65535}b[n>>1]=g;b[o>>1]=0;p=p+1<<16>>16;if(p<<16>>16>=40){t=l;break}else{o=o+2|0;n=n+2|0}}s=a<<16>>16==0;s=(d|0)==5?(s?v:w):s?x:u;if(t<<16>>16>0){r=0;do{q=b[A+(r<<1)>>1]|0;l=q<<16>>16;a=b[z+(l<<1)>>1]|0;if(q<<16>>16<40){p=a<<16>>16;o=39-q&65535;n=q;l=h+(l<<1)|0;g=s;while(1){d=(Z(b[g>>1]|0,p)|0)>>>15&65535;b[l>>1]=Rd(b[l>>1]|0,d,m)|0;n=n+1<<16>>16;if(n<<16>>16>=40)break;else{l=l+2|0;g=g+2|0}}if(q<<16>>16>0){l=s+(o+1<<1)|0;B=36}}else{l=s;B=36}if((B|0)==36){B=0;g=a<<16>>16;p=0;o=h;while(1){d=(Z(b[l>>1]|0,g)|0)>>>15&65535;b[o>>1]=Rd(b[o>>1]|0,d,m)|0;p=p+1<<16>>16;if(p<<16>>16>=q<<16>>16)break;else{o=o+2|0;l=l+2|0}}}r=r+1|0}while((r&65535)<<16>>16!=t<<16>>16)}}}r=j<<16>>16;s=y<<1;g=k<<16>>16;n=0-g<<16;l=n>>16;if(k<<16>>16>0){p=0;o=e;while(1){a=Z(b[e+(p<<1)>>1]|0,r)|0;if((a|0)==1073741824){c[m>>2]=1;n=2147483647}else n=a<<1;k=Z(s,b[h>>1]|0)|0;a=k+n|0;if((k^n|0)>-1&(a^n|0)<0){c[m>>2]=1;a=(n>>>31)+2147483647|0}k=a<>1]=Ce((k>>g|0)==(a|0)?k:a>>31^2147483647,m)|0;p=p+1|0;if((p|0)==40)break;else{h=h+2|0;o=o+2|0}}i=C;return}if((n|0)<2031616){p=0;o=e;while(1){a=Z(b[e+(p<<1)>>1]|0,r)|0;if((a|0)==1073741824){c[m>>2]=1;n=2147483647}else n=a<<1;k=Z(s,b[h>>1]|0)|0;a=k+n|0;if((k^n|0)>-1&(a^n|0)<0){c[m>>2]=1;a=(n>>>31)+2147483647|0}b[o>>1]=Ce(a>>l,m)|0;p=p+1|0;if((p|0)==40)break;else{h=h+2|0;o=o+2|0}}i=C;return}else{o=0;n=e;while(1){a=Z(b[e+(o<<1)>>1]|0,r)|0;if((a|0)==1073741824){c[m>>2]=1;a=2147483647}else a=a<<1;k=Z(s,b[h>>1]|0)|0;if((k^a|0)>-1&(k+a^a|0)<0)c[m>>2]=1;b[n>>1]=Ce(0,m)|0;o=o+1|0;if((o|0)==40)break;else{h=h+2|0;n=n+2|0}}i=C;return}}function xb(a){a=a|0;if(!a){a=-1;return a|0};b[a>>1]=0;b[a+2>>1]=0;b[a+4>>1]=0;b[a+6>>1]=0;b[a+8>>1]=0;b[a+10>>1]=0;a=0;return a|0}function yb(a,c,d,e){a=a|0;c=c|0;d=d|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;if(d<<16>>16<=0)return;f=a+10|0;j=a+8|0;l=a+4|0;m=a+6|0;n=a+2|0;g=b[l>>1]|0;h=b[m>>1]|0;i=b[a>>1]|0;k=b[n>>1]|0;o=0;while(1){p=b[f>>1]|0;q=b[j>>1]|0;b[f>>1]=q;r=b[c>>1]|0;b[j>>1]=r;p=((r<<16>>16)*7699|0)+((Z(i<<16>>16,-7667)|0)+(((g<<16>>16)*15836|0)+((h<<16>>16)*15836>>15))+((Z(k<<16>>16,-7667)|0)>>15))+(Z(q<<16>>16,-15398)|0)+((p<<16>>16)*7699|0)|0;q=p<<3;p=(q>>3|0)==(p|0)?q:p>>31^2147483647;q=p<<1;b[c>>1]=Ce((q>>1|0)==(p|0)?q:p>>31^2147483647,e)|0;i=b[l>>1]|0;b[a>>1]=i;k=b[m>>1]|0;b[n>>1]=k;g=p>>>16&65535;b[l>>1]=g;h=(p>>>1)-(p>>16<<15)&65535;b[m>>1]=h;o=o+1<<16>>16;if(o<<16>>16>=d<<16>>16)break;else c=c+2|0}return}function zb(a){a=a|0;if(!a)a=-1;else{b[a>>1]=0;a=0}return a|0}function Ab(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=f<<16>>16;h=d+(j+-1<<1)|0;j=j+-2|0;k=b[h>>1]|0;if(f<<16>>16<2)f=e<<16>>16;else{f=e<<16>>16;i=0;d=d+(j<<1)|0;while(1){e=(Z(b[d>>1]|0,f)|0)>>15;if((e|0)>32767){c[g>>2]=1;e=32767}b[h>>1]=Ge(b[h>>1]|0,e&65535,g)|0;h=h+-2|0;i=i+1<<16>>16;if((i<<16>>16|0)>(j|0))break;else d=d+-2|0}}f=(Z(b[a>>1]|0,f)|0)>>15;if((f|0)<=32767){j=f;j=j&65535;i=b[h>>1]|0;g=Ge(i,j,g)|0;b[h>>1]=g;b[a>>1]=k;return}c[g>>2]=1;j=32767;j=j&65535;i=b[h>>1]|0;g=Ge(i,j,g)|0;b[h>>1]=g;b[a>>1]=k;return}function Bb(a){a=a|0;var c=0,d=0,e=0;if(!a){e=-1;return e|0}Qe(a+104|0,0,340)|0;c=a+102|0;d=a;e=d+100|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(e|0));Ba(c)|0;zb(a+100|0)|0;e=0;return e|0}function Cb(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var 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;w=i;i=i+96|0;s=w+22|0;t=w;u=w+44|0;Pe(d+124|0,f|0,320)|0;o=u+22|0;p=d+100|0;q=d+80|0;r=d+102|0;if((e&-2|0)==6){n=0;while(1){Ie(g,702,s);Ie(g,722,t);m=d+104+(n+10<<1)|0;Be(s,m,d,40);k=u;j=s;e=k+22|0;do{b[k>>1]=b[j>>1]|0;k=k+2|0;j=j+2|0}while((k|0)<(e|0));k=o;e=k+22|0;do{b[k>>1]=0;k=k+2|0}while((k|0)<(e|0));He(t,u,u,22,o,0);e=0;k=21;do{j=b[u+(k<<16>>16<<1)>>1]|0;j=Z(j,j)|0;if((j|0)==1073741824){v=7;break}l=j<<1;j=l+e|0;if((l^e|0)>-1&(j^e|0)<0){c[h>>2]=1;e=(e>>>31)+2147483647|0}else e=j;k=k+-1<<16>>16}while(k<<16>>16>-1);if((v|0)==7){v=0;c[h>>2]=1}l=e>>>16&65535;j=20;e=0;k=20;while(1){j=Z(b[u+(j+1<<1)>>1]|0,b[u+(j<<1)>>1]|0)|0;if((j|0)==1073741824){v=13;break}x=j<<1;j=x+e|0;if((x^e|0)>-1&(j^e|0)<0){c[h>>2]=1;e=(e>>>31)+2147483647|0}else e=j;j=(k&65535)+-1<<16>>16;if(j<<16>>16>-1){j=j<<16>>16;k=k+-1|0}else break}if((v|0)==13){v=0;c[h>>2]=1}e=e>>16;if((e|0)<1)e=0;else e=Td((e*26214|0)>>>15&65535,l)|0;Ab(p,d,e,40,h);e=f+(n<<1)|0;He(t,d,e,40,q,1);Ca(r,m,e,29491,40,h);e=(n<<16)+2621440|0;if((e|0)<10485760){n=e>>16;g=g+22|0}else break}k=d+104|0;j=d+424|0;e=k+20|0;do{a[k>>0]=a[j>>0]|0;k=k+1|0;j=j+1|0}while((k|0)<(e|0));i=w;return}else{n=0;while(1){Ie(g,742,s);Ie(g,762,t);m=d+104+(n+10<<1)|0;Be(s,m,d,40);k=u;j=s;e=k+22|0;do{b[k>>1]=b[j>>1]|0;k=k+2|0;j=j+2|0}while((k|0)<(e|0));k=o;e=k+22|0;do{b[k>>1]=0;k=k+2|0}while((k|0)<(e|0));He(t,u,u,22,o,0);e=0;k=21;do{j=b[u+(k<<16>>16<<1)>>1]|0;j=Z(j,j)|0;if((j|0)==1073741824){v=22;break}x=j<<1;j=x+e|0;if((x^e|0)>-1&(j^e|0)<0){c[h>>2]=1;e=(e>>>31)+2147483647|0}else e=j;k=k+-1<<16>>16}while(k<<16>>16>-1);if((v|0)==22){v=0;c[h>>2]=1}l=e>>>16&65535;j=20;e=0;k=20;while(1){j=Z(b[u+(j+1<<1)>>1]|0,b[u+(j<<1)>>1]|0)|0;if((j|0)==1073741824){v=28;break}x=j<<1;j=x+e|0;if((x^e|0)>-1&(j^e|0)<0){c[h>>2]=1;e=(e>>>31)+2147483647|0}else e=j;j=(k&65535)+-1<<16>>16;if(j<<16>>16>-1){j=j<<16>>16;k=k+-1|0}else break}if((v|0)==28){v=0;c[h>>2]=1}e=e>>16;if((e|0)<1)e=0;else e=Td((e*26214|0)>>>15&65535,l)|0;Ab(p,d,e,40,h);e=f+(n<<1)|0;He(t,d,e,40,q,1);Ca(r,m,e,29491,40,h);e=(n<<16)+2621440|0;if((e|0)<10485760){n=e>>16;g=g+22|0}else break}k=d+104|0;j=d+424|0;e=k+20|0;do{a[k>>0]=a[j>>0]|0;k=k+1|0;j=j+1|0}while((k|0)<(e|0));i=w;return}}function Db(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(1764)|0;if(!d){a=-1;return a|0}if((Ua(d)|0)<<16>>16==0?(e=d+1748|0,(xb(e)|0)<<16>>16==0):0){Va(d,0)|0;Bb(d+1304|0)|0;xb(e)|0;c[d+1760>>2]=0;c[a>>2]=d;a=0;return a|0}b=c[d>>2]|0;if(!b){a=-1;return a|0}Ke(b);c[d>>2]=0;a=-1;return a|0}function Eb(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Fb(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var 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;v=i;i=i+208|0;u=v+88|0;t=v;s=a+1164|0;j=c[a+1256>>2]|0;if((g+-5|0)>>>0<2){r=j+16|0;if((b[r>>1]|0)>0){q=c[(c[a+1260>>2]|0)+32>>2]|0;p=0;j=0;while(1){o=q+(p<<1)|0;m=b[o>>1]|0;if(m<<16>>16>0){l=f;n=0;k=0;while(1){k=e[l>>1]|k<<1&131070;n=n+1<<16>>16;if(n<<16>>16>=m<<16>>16)break;else l=l+2|0}k=k&65535}else k=0;b[u+(p<<1)>>1]=k;j=j+1<<16>>16;if(j<<16>>16<(b[r>>1]|0)){f=f+(b[o>>1]<<1)|0;p=j<<16>>16}else break}}}else{q=j+(d<<1)|0;if((b[q>>1]|0)>0){r=c[(c[a+1260>>2]|0)+(d<<2)>>2]|0;o=0;j=0;while(1){p=r+(o<<1)|0;m=b[p>>1]|0;if(m<<16>>16>0){l=f;n=0;k=0;while(1){k=e[l>>1]|k<<1&131070;n=n+1<<16>>16;if(n<<16>>16>=m<<16>>16)break;else l=l+2|0}k=k&65535}else k=0;b[u+(o<<1)>>1]=k;j=j+1<<16>>16;if(j<<16>>16<(b[q>>1]|0)){f=f+(b[p>>1]<<1)|0;o=j<<16>>16}else break}}}Wa(a,d,u,g,h,t);Cb(a+1304|0,d,h,t,s);yb(a+1748|0,h,160,s);j=0;do{a=h+(j<<1)|0;b[a>>1]=e[a>>1]&65528;j=j+1|0}while((j|0)!=160);i=v;return}function Gb(a,f,g,h){a=a|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;j=c[h+100>>2]|0;k=(e[(c[h+96>>2]|0)+(a<<1)>>1]|0)+65535|0;h=k&65535;i=h<<16>>16>-1;if(a>>>0<8){if(!i)return;j=c[j+(a<<2)>>2]|0;i=k<<16>>16;while(1){b[g+(b[j+(i<<1)>>1]<<1)>>1]=(d[f+(i>>3)>>0]|0)>>>(i&7^7)&1;h=h+-1<<16>>16;if(h<<16>>16>-1)i=h<<16>>16;else break}return}else{if(!i)return;i=k<<16>>16;while(1){b[g+(i<<1)>>1]=(d[f+(i>>3)>>0]|0)>>>(i&7^7)&1;h=h+-1<<16>>16;if(h<<16>>16>-1)i=h<<16>>16;else break}return}}function Hb(a,b,c){a=a|0;b=b|0;c=c|0;a=vd(a,c,31764)|0;return ((sd(b)|0|a)<<16>>16!=0)<<31>>31|0}function Ib(a,b){a=a|0;b=b|0;wd(a);td(b);return}function Jb(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0;q=i;i=i+512|0;m=q+8|0;n=q+4|0;o=q;c[o>>2]=0;p=l<<16>>16==3;if(!((l&65535)<2|p&1)){if(l<<16>>16!=2){j=-1;i=q;return j|0}xd(d,g,h,m+2|0,o);d=c[o>>2]|0;c[k>>2]=d;ud(f,d,n);f=c[n>>2]|0;b[m>>1]=f;b[m+490>>1]=(f|0)==3?-1:g&65535;a[j>>0]=f;f=1;do{m=m+1|0;a[j+f>>0]=a[m>>0]|0;f=f+1|0}while((f|0)!=492);m=492;i=q;return m|0}xd(d,g,h,m,o);ud(f,c[o>>2]|0,n);h=c[n>>2]|0;if((h|0)!=3){f=c[o>>2]|0;c[k>>2]=f;if((f|0)==8){switch(h|0){case 1:{b[m+70>>1]=0;break}case 2:{o=m+70|0;b[o>>1]=e[o>>1]|0|1;break}default:{}}b[m+72>>1]=g&1;b[m+74>>1]=g>>>1&1;b[m+76>>1]=g>>>2&1;f=8}}else{c[k>>2]=15;f=15}if(p){tc(f,m,j,(c[d+4>>2]|0)+2392|0);j=b[3404+(c[k>>2]<<16>>16<<1)>>1]|0;i=q;return j|0}switch(l<<16>>16){case 0:{sc(f,m,j,(c[d+4>>2]|0)+2392|0);j=b[3404+(c[k>>2]<<16>>16<<1)>>1]|0;i=q;return j|0}case 1:{rc(f,m,j,(c[d+4>>2]|0)+2392|0);j=b[3436+(c[k>>2]<<16>>16<<1)>>1]|0;i=q;return j|0}default:{j=-1;i=q;return j|0}}return 0}function Kb(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=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;y=i;i=i+480|0;x=y;g=240;l=f;k=a;j=x;h=0;while(1){w=((Z(b[l>>1]|0,b[k>>1]|0)|0)+16384|0)>>>15;b[j>>1]=w;w=w<<16;h=(Z(w>>15,w>>16)|0)+h|0;if((h|0)<0){m=4;break}g=g+-1|0;if(!((g&65535)<<16>>16)){g=0;break}else{l=l+2|0;k=k+2|0;j=j+2|0}}if((m|0)==4){h=g&65535;j=240-g|0;if(!(h<<16>>16))g=0;else{l=h;k=f+(j<<1)|0;g=a+(j<<1)|0;h=x+(j<<1)|0;while(1){b[h>>1]=((Z(b[k>>1]|0,b[g>>1]|0)|0)+16384|0)>>>15;l=l+-1<<16>>16;if(!(l<<16>>16)){g=0;break}else{k=k+2|0;g=g+2|0;h=h+2|0}}}do{k=g&65535;g=120;j=x;h=0;while(1){w=(b[j>>1]|0)>>>2;u=j+2|0;b[j>>1]=w;w=w<<16>>16;w=Z(w,w)|0;v=(b[u>>1]|0)>>>2;b[u>>1]=v;v=v<<16>>16;h=((Z(v,v)|0)+w<<1)+h|0;g=g+-1<<16>>16;if(!(g<<16>>16))break;else j=j+4|0}g=k+4|0}while((h|0)<1)}w=h+1|0;v=(pe(w)|0)<<16>>16;w=w<>1]=w>>>16;b[e>>1]=(w>>>1)-(w>>16<<15);w=x+478|0;l=c<<16>>16;if(c<<16>>16<=0){x=v-g|0;x=x&65535;i=y;return x|0}r=x+476|0;s=v+1|0;t=239-l|0;u=x+(236-l<<1)|0;c=l;d=d+(l<<1)|0;e=e+(l<<1)|0;while(1){m=Z((t>>>1)+65535&65535,-2)|0;k=x+(m+236<<1)|0;m=u+(m<<1)|0;f=240-c|0;q=f+-1|0;j=x+(q<<1)|0;a=q>>>1&65535;f=x+(f+-2<<1)|0;l=Z(b[w>>1]|0,b[j>>1]|0)|0;if(!(a<<16>>16)){m=f;k=r}else{p=r;o=w;while(1){h=j+-4|0;n=o+-4|0;l=(Z(b[p>>1]|0,b[f>>1]|0)|0)+l|0;a=a+-1<<16>>16;l=(Z(b[n>>1]|0,b[h>>1]|0)|0)+l|0;if(!(a<<16>>16))break;else{f=j+-6|0;p=o+-6|0;j=h;o=n}}}if(q&1)l=(Z(b[k>>1]|0,b[m>>1]|0)|0)+l|0;q=l<>1]=q>>>16;b[e>>1]=(q>>>1)-(q>>16<<15);if((c&65535)+-1<<16>>16<<16>>16>0){t=t+1|0;u=u+2|0;c=c+-1|0;d=d+-2|0;e=e+-2|0}else break}x=v-g|0;x=x&65535;i=y;return x|0}function Lb(a,c,d,f,g,h,j,k){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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,G=0,H=0,I=0,J=0,K=0;E=i;i=i+3440|0;D=E+3420|0;z=E+3400|0;A=E+3224|0;C=E;x=E+3320|0;B=E+3240|0;y=E+24|0;hc(d,a,x,2,k);rd(x,c,B,A,5,z,5,k);fc(d,B,y,k);pd(10,5,5,x,y,z,A,C,k);c=f;k=c+80|0;do{b[c>>1]=0;c=c+2|0}while((c|0)<(k|0));b[h>>1]=65535;b[h+2>>1]=65535;b[h+4>>1]=65535;b[h+6>>1]=65535;b[h+8>>1]=65535;p=0;q=C;r=D;do{a=b[q>>1]|0;q=q+2|0;l=(a*6554|0)>>>15;m=l<<16>>16;c=f+(a<<1)|0;k=b[c>>1]|0;if((b[B+(a<<1)>>1]|0)>0){b[c>>1]=k+4096;b[r>>1]=8192;n=l}else{b[c>>1]=k+61440;b[r>>1]=-8192;n=m+8|0}r=r+2|0;o=n&65535;c=a-(l<<2)-m<<16>>16;l=h+(c<<1)|0;k=b[l>>1]|0;a=k<<16>>16;do if(k<<16>>16>=0){m=n<<16>>16;if(!((m^a)&8)){c=h+(c+5<<1)|0;if((a|0)>(m|0)){b[c>>1]=k;b[l>>1]=o;break}else{b[c>>1]=o;break}}else{c=h+(c+5<<1)|0;if((a&7)>>>0>(m&7)>>>0){b[c>>1]=o;break}else{b[c>>1]=k;b[l>>1]=o;break}}}else b[l>>1]=o;while(0);p=p+1<<16>>16}while(p<<16>>16<10);r=D+2|0;p=D+4|0;n=D+6|0;m=D+8|0;l=D+10|0;c=D+12|0;k=D+14|0;a=D+16|0;s=D+18|0;t=40;u=d+(0-(b[C>>1]|0)<<1)|0;v=d+(0-(b[C+2>>1]|0)<<1)|0;w=d+(0-(b[C+4>>1]|0)<<1)|0;x=d+(0-(b[C+6>>1]|0)<<1)|0;y=d+(0-(b[C+8>>1]|0)<<1)|0;z=d+(0-(b[C+10>>1]|0)<<1)|0;A=d+(0-(b[C+12>>1]|0)<<1)|0;B=d+(0-(b[C+14>>1]|0)<<1)|0;f=d+(0-(b[C+16>>1]|0)<<1)|0;q=d+(0-(b[C+18>>1]|0)<<1)|0;o=g;while(1){K=(Z(b[D>>1]|0,b[u>>1]|0)|0)>>7;J=(Z(b[r>>1]|0,b[v>>1]|0)|0)>>7;I=(Z(b[p>>1]|0,b[w>>1]|0)|0)>>7;H=(Z(b[n>>1]|0,b[x>>1]|0)|0)>>7;G=(Z(b[m>>1]|0,b[y>>1]|0)|0)>>7;F=(Z(b[l>>1]|0,b[z>>1]|0)|0)>>7;C=(Z(b[c>>1]|0,b[A>>1]|0)|0)>>7;d=(Z(b[k>>1]|0,b[B>>1]|0)|0)>>>7;g=(Z(b[a>>1]|0,b[f>>1]|0)|0)>>>7;b[o>>1]=(K+128+J+I+H+G+F+C+d+g+((Z(b[s>>1]|0,b[q>>1]|0)|0)>>>7)|0)>>>8;t=t+-1<<16>>16;if(!(t<<16>>16))break;else{u=u+2|0;v=v+2|0;w=w+2|0;x=x+2|0;y=y+2|0;z=z+2|0;A=A+2|0;B=B+2|0;f=f+2|0;q=q+2|0;o=o+2|0}}c=0;do{k=h+(c<<1)|0;a=b[k>>1]|0;if((c|0)<5)a=(e[j+((a&7)<<1)>>1]|a&8)&65535;else a=b[j+((a&7)<<1)>>1]|0;b[k>>1]=a;c=c+1|0}while((c|0)!=10);i=E;return}function Mb(a,d,e,f,g,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+3456|0;I=N+3448|0;G=N+3360|0;E=N+3368|0;p=N+3280|0;H=N+3200|0;F=N;K=(f&65535)<<17;M=e<<16>>16;J=e<<16>>16<40;if(J){f=K>>16;e=M;do{m=(Z(b[d+(e-M<<1)>>1]|0,f)|0)>>15;if((m|0)>32767){c[k>>2]=1;m=32767}D=d+(e<<1)|0;b[D>>1]=Rd(b[D>>1]|0,m&65535,k)|0;e=e+1|0}while((e&65535)<<16>>16!=40)}hc(d,a,E,1,k);qd(E,H,p,8);fc(d,H,F,k);D=G+2|0;b[G>>1]=0;b[D>>1]=1;a=1;m=0;o=1;p=0;n=-1;do{B=b[2830+(p<<1)>>1]|0;C=B<<16>>16;A=0;do{y=b[2834+(A<<1)>>1]|0;z=y<<16>>16;x=a;v=C;u=o;w=B;t=n;while(1){l=b[E+(v<<1)>>1]|0;r=b[F+(v*80|0)+(v<<1)>>1]|0;e=z;o=1;s=y;a=y;n=-1;while(1){f=Rd(l,b[E+(e<<1)>>1]|0,k)|0;f=f<<16>>16;f=(Z(f,f)|0)>>>15;q=(b[F+(v*80|0)+(e<<1)>>1]<<15)+32768+((b[F+(e*80|0)+(e<<1)>>1]|0)+r<<14)|0;if(((Z(f<<16>>16,o<<16>>16)|0)-(Z(q>>16,n<<16>>16)|0)<<1|0)>0){o=q>>>16&65535;a=s;n=f&65535}q=e+5|0;s=q&65535;if(s<<16>>16>=40)break;else e=q<<16>>16}if(((Z(n<<16>>16,u<<16>>16)|0)-(Z(o<<16>>16,t<<16>>16)|0)<<1|0)>0){b[G>>1]=w;b[D>>1]=a;m=w}else{a=x;o=u;n=t}q=v+5|0;w=q&65535;if(w<<16>>16>=40)break;else{x=a;v=q<<16>>16;u=o;t=n}}A=A+1|0}while((A|0)!=4);p=p+1|0}while((p|0)!=2);r=a;s=m;f=g;e=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(e|0));o=s;e=0;q=0;f=0;while(1){m=o<<16>>16;l=b[H+(m<<1)>>1]|0;a=(m*6554|0)>>>15;o=a<<16;p=o>>15;n=m-(p+(a<<3)<<16>>17)|0;switch(n<<16>>16|0){case 0:{p=o>>10;a=1;break}case 1:{if(!((e&65535)<<16>>16))a=0;else{p=a<<22>>16|16;a=1}break}case 2:{p=a<<22>>16|32;a=1;break}case 3:{p=a<<17>>16|1;a=0;break}case 4:{p=a<<22>>16|48;a=1;break}default:{p=a;a=n&65535}}p=p&65535;n=g+(m<<1)|0;if(l<<16>>16>0){b[n>>1]=8191;b[I+(e<<1)>>1]=32767;m=a<<16>>16;if(a<<16>>16<0){m=0-m<<16;if((m|0)<983040)m=1>>>(m>>16)&65535;else m=0}else{F=1<>16>>m|0)==1?F&65535:32767}f=Rd(f,m,k)|0}else{b[n>>1]=-8192;b[I+(e<<1)>>1]=-32768}m=Rd(q,p,k)|0;e=e+1|0;if((e|0)==2){q=m;break}o=b[G+(e<<1)>>1]|0;q=m}b[j>>1]=f;p=I+2|0;o=b[I>>1]|0;a=0;n=d+(0-(s<<16>>16)<<1)|0;m=d+(0-(r<<16>>16)<<1)|0;do{f=Z(b[n>>1]|0,o)|0;n=n+2|0;if((f|0)!=1073741824?(L=f<<1,!((f|0)>0&(L|0)<0)):0)l=L;else{c[k>>2]=1;l=2147483647}e=Z(b[p>>1]|0,b[m>>1]|0)|0;m=m+2|0;if((e|0)!=1073741824){f=(e<<1)+l|0;if((e^l|0)>0&(f^l|0)<0){c[k>>2]=1;f=(l>>>31)+2147483647|0}}else{c[k>>2]=1;f=2147483647}b[h+(a<<1)>>1]=Ce(f,k)|0;a=a+1|0}while((a|0)!=40);if(!J){i=N;return q|0}e=K>>16;f=M;do{l=(Z(b[g+(f-M<<1)>>1]|0,e)|0)>>15;if((l|0)>32767){c[k>>2]=1;l=32767}h=g+(f<<1)|0;b[h>>1]=Rd(b[h>>1]|0,l&65535,k)|0;f=f+1|0}while((f&65535)<<16>>16!=40);i=N;return q|0}function Nb(a,d,e,f,g,h,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+3456|0;r=x+3360|0;s=x+3368|0;t=x+3280|0;u=x+3200|0;v=x;w=g<<16>>16;p=w<<1;if((p|0)==(w<<17>>16|0))q=p;else{c[m>>2]=1;q=g<<16>>16>0?32767:-32768}w=f<<16>>16;n=f<<16>>16<40;if(n){g=q<<16>>16;o=w;do{f=e+(o<<1)|0;p=(Z(b[e+(o-w<<1)>>1]|0,g)|0)>>15;if((p|0)>32767){c[m>>2]=1;p=32767}b[f>>1]=Rd(b[f>>1]|0,p&65535,m)|0;o=o+1|0}while((o&65535)<<16>>16!=40)}hc(e,d,s,1,m);qd(s,u,t,8);fc(e,u,v,m);Ob(a,s,v,l,r);p=Pb(a,r,u,h,e,j,k,m)|0;if(!n){i=x;return p|0}o=q<<16>>16;g=w;do{f=h+(g<<1)|0;n=(Z(b[h+(g-w<<1)>>1]|0,o)|0)>>15;if((n|0)>32767){c[m>>2]=1;n=32767}b[f>>1]=Rd(b[f>>1]|0,n&65535,m)|0;g=g+1|0}while((g&65535)<<16>>16!=40);i=x;return p|0}function Ob(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var 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,v=0,w=0,x=0;x=g+2|0;b[g>>1]=0;b[x>>1]=1;v=a<<16>>16<<1;h=1;w=0;a=-1;do{u=(w<<3)+v<<16>>16;k=b[f+(u<<1)>>1]|0;u=b[f+((u|1)<<1)>>1]|0;i=k<<16>>16;a:do if(k<<16>>16<40){t=u<<16>>16;if(u<<16>>16<40)s=h;else while(1){if((a<<16>>16|0)<(0-(h<<16>>16)|0)){b[g>>1]=k;b[x>>1]=u;j=1;a=-1}else j=h;h=i+5|0;k=h&65535;if(k<<16>>16>=40){h=j;break a}else{i=h<<16>>16;h=j}}while(1){q=b[d+(i*80|0)+(i<<1)>>1]|0;p=e[c+(i<<1)>>1]|0;o=t;h=1;r=u;j=u;l=-1;while(1){n=(e[c+(o<<1)>>1]|0)+p<<16>>16;n=(Z(n,n)|0)>>>15;m=(b[d+(i*80|0)+(o<<1)>>1]<<15)+32768+((b[d+(o*80|0)+(o<<1)>>1]|0)+q<<14)|0;if(((Z(n<<16>>16,h<<16>>16)|0)-(Z(m>>16,l<<16>>16)|0)<<1|0)>0){h=m>>>16&65535;j=r;l=n&65535}m=o+5|0;r=m&65535;if(r<<16>>16>=40)break;else o=m<<16>>16}if(((Z(l<<16>>16,s<<16>>16)|0)-(Z(h<<16>>16,a<<16>>16)|0)<<1|0)>0){b[g>>1]=k;b[x>>1]=j;a=l}else h=s;i=i+5|0;k=i&65535;if(k<<16>>16>=40)break;else{i=i<<16>>16;s=h}}}while(0);w=w+1|0}while((w|0)!=2);return}function Pb(a,d,e,f,g,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;k=f;l=k+80|0;do{b[k>>1]=0;k=k+2|0}while((k|0)<(l|0));k=b[d>>1]|0;o=(k*6554|0)>>>15;l=o<<16>>16;n=(748250>>>((k+(Z(l,-5)|0)<<16>>16)+((a<<16>>16)*5|0)|0)&1|0)==0;m=(b[e+(k<<1)>>1]|0)>0;p=m?32767:-32768;b[f+(k<<1)>>1]=m?8191:-8192;k=d+2|0;a=b[k>>1]|0;f=f+(a<<1)|0;if((b[e+(a<<1)>>1]|0)>0){b[f>>1]=8191;e=32767;f=(m&1|2)&65535}else{b[f>>1]=-8192;e=-32768;f=m&1}o=((a*6554|0)>>>15<<3)+(n?o:l+64|0)&65535;b[i>>1]=f;n=0;m=g+(0-(b[d>>1]|0)<<1)|0;f=g+(0-(b[k>>1]|0)<<1)|0;do{k=Z(p,b[m>>1]|0)|0;m=m+2|0;if((k|0)==1073741824){c[j>>2]=1;a=2147483647}else a=k<<1;l=Z(e,b[f>>1]|0)|0;f=f+2|0;if((l|0)!=1073741824){k=(l<<1)+a|0;if((l^a|0)>0&(k^a|0)<0){c[j>>2]=1;k=(a>>>31)+2147483647|0}}else{c[j>>2]=1;k=2147483647}b[h+(n<<1)>>1]=Ce(k,j)|0;n=n+1|0}while((n|0)!=40);return o|0}function Qb(a,d,f,g,h,j,k,l){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var 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,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;U=i;i=i+3440|0;M=U+3360|0;N=U+3280|0;P=U+3200|0;O=U;R=(g&65535)<<17;T=f<<16>>16;Q=f<<16>>16<40;if(Q){f=R>>16;m=T;do{g=(Z(b[d+(m-T<<1)>>1]|0,f)|0)>>15;if((g|0)>32767){c[l>>2]=1;g=32767}L=d+(m<<1)|0;b[L>>1]=Rd(b[L>>1]|0,g&65535,l)|0;m=m+1|0}while((m&65535)<<16>>16!=40)}hc(d,a,M,1,l);qd(M,P,N,6);fc(d,P,O,l);L=1;n=2;o=1;g=0;m=1;a=-1;p=1;while(1){K=2;s=2;while(1){H=0;I=0;J=p;G=s;while(1){if(I<<16>>16<40){C=J<<16>>16;D=J<<16>>16<40;E=G<<16>>16;F=G<<16>>16<40;A=I<<16>>16;B=I;while(1){if((b[N+(A<<1)>>1]|0)>-1){x=b[O+(A*80|0)+(A<<1)>>1]|0;if(D){y=e[M+(A<<1)>>1]|0;w=C;r=1;z=J;f=J;s=0;q=-1;while(1){u=(e[M+(w<<1)>>1]|0)+y|0;v=u<<16>>16;v=(Z(v,v)|0)>>>15;t=(b[O+(A*80|0)+(w<<1)>>1]<<15)+32768+((b[O+(w*80|0)+(w<<1)>>1]|0)+x<<14)|0;if(((Z(v<<16>>16,r<<16>>16)|0)-(Z(t>>16,q<<16>>16)|0)<<1|0)>0){r=t>>>16&65535;f=z;s=u&65535;q=v&65535}t=w+5|0;z=t&65535;if(z<<16>>16>=40)break;else w=t<<16>>16}}else{r=1;f=J;s=0}if(F){y=s&65535;z=f<<16>>16;w=(r<<16>>16<<14)+32768|0;v=E;s=1;x=G;q=G;r=-1;while(1){u=(e[M+(v<<1)>>1]|0)+y<<16>>16;u=(Z(u,u)|0)>>>15;t=w+(b[O+(v*80|0)+(v<<1)>>1]<<12)+((b[O+(A*80|0)+(v<<1)>>1]|0)+(b[O+(z*80|0)+(v<<1)>>1]|0)<<13)|0;if(((Z(u<<16>>16,s<<16>>16)|0)-(Z(t>>16,r<<16>>16)|0)<<1|0)>0){s=t>>>16&65535;q=x;r=u&65535}t=v+5|0;x=t&65535;if(x<<16>>16>=40){w=s;v=r;break}else v=t<<16>>16}}else{w=1;q=G;v=-1}s=Z(v<<16>>16,m<<16>>16)|0;if((s|0)==1073741824){c[l>>2]=1;t=2147483647}else t=s<<1;s=Z(w<<16>>16,a<<16>>16)|0;if((s|0)==1073741824){c[l>>2]=1;r=2147483647}else r=s<<1;s=t-r|0;if(((s^t)&(r^t)|0)<0){c[l>>2]=1;s=(t>>>31)+2147483647|0}z=(s|0)>0;n=z?q:n;o=z?f:o;g=z?B:g;m=z?w:m;a=z?v:a}s=A+5|0;B=s&65535;if(B<<16>>16>=40)break;else A=s<<16>>16}}H=H+1<<16>>16;if(H<<16>>16>=3)break;else{F=G;G=J;J=I;I=F}}f=K+2|0;s=f&65535;if(s<<16>>16>=5)break;else K=f&65535}f=L+2|0;p=f&65535;if(p<<16>>16<4)L=f&65535;else{s=n;n=o;break}}f=h;m=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(m|0));v=g<<16>>16;a=b[P+(v<<1)>>1]|0;g=(v*6554|0)>>>15;f=g<<16;m=v-(((f>>16)*327680|0)>>>16)|0;switch(m<<16>>16|0){case 1:{g=f>>12;break}case 2:{g=f>>8;m=2;break}case 3:{g=g<<20>>16|8;m=1;break}case 4:{g=g<<24>>16|128;m=2;break}default:{}}f=h+(v<<1)|0;if(a<<16>>16>0){b[f>>1]=8191;z=32767;o=65536<<(m<<16>>16)>>>16&65535}else{b[f>>1]=-8192;z=-32768;o=0}t=n<<16>>16;n=b[P+(t<<1)>>1]|0;f=(t*6554|0)>>>15;m=f<<16;a=t-(((m>>16)*327680|0)>>>16)|0;switch(a<<16>>16|0){case 1:{f=m>>12;break}case 2:{f=m>>8;a=2;break}case 3:{f=f<<20>>16|8;a=1;break}case 4:{f=f<<24>>16|128;a=2;break}default:{}}m=h+(t<<1)|0;if(n<<16>>16>0){b[m>>1]=8191;u=32767;o=(65536<<(a<<16>>16)>>>16)+(o&65535)&65535}else{b[m>>1]=-8192;u=-32768}p=f+g|0;r=s<<16>>16;n=b[P+(r<<1)>>1]|0;g=(r*6554|0)>>>15;f=g<<16;m=r-(((f>>16)*327680|0)>>>16)|0;switch(m<<16>>16|0){case 1:{f=f>>12;break}case 2:{f=f>>8;m=2;break}case 3:{f=g<<20>>16|8;m=1;break}case 4:{f=g<<24>>16|128;m=2;break}default:f=g}g=h+(r<<1)|0;if(n<<16>>16>0){b[g>>1]=8191;s=32767;g=(65536<<(m<<16>>16)>>>16)+(o&65535)&65535}else{b[g>>1]=-8192;s=-32768;g=o}q=p+f|0;b[k>>1]=g;o=0;p=d+(0-v<<1)|0;a=d+(0-t<<1)|0;n=d+(0-r<<1)|0;do{g=Z(b[p>>1]|0,z)|0;p=p+2|0;if((g|0)!=1073741824?(S=g<<1,!((g|0)>0&(S|0)<0)):0)m=S;else{c[l>>2]=1;m=2147483647}g=Z(b[a>>1]|0,u)|0;a=a+2|0;if((g|0)!=1073741824){f=(g<<1)+m|0;if((g^m|0)>0&(f^m|0)<0){c[l>>2]=1;f=(m>>>31)+2147483647|0}}else{c[l>>2]=1;f=2147483647}m=Z(b[n>>1]|0,s)|0;n=n+2|0;if((m|0)!=1073741824){g=(m<<1)+f|0;if((m^f|0)>0&(g^f|0)<0){c[l>>2]=1;g=(f>>>31)+2147483647|0}}else{c[l>>2]=1;g=2147483647}b[j+(o<<1)>>1]=Ce(g,l)|0;o=o+1|0}while((o|0)!=40);g=q&65535;if(!Q){i=U;return g|0}m=R>>16;f=T;do{a=(Z(b[h+(f-T<<1)>>1]|0,m)|0)>>15;if((a|0)>32767){c[l>>2]=1;a=32767}j=h+(f<<1)|0;b[j>>1]=Rd(b[j>>1]|0,a&65535,l)|0;f=f+1|0}while((f&65535)<<16>>16!=40);i=U;return g|0}function Rb(a,d,f,g,h,j,k,l,m){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var 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,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,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;da=i;i=i+3456|0;_=da+3448|0;X=da+3360|0;U=da+3368|0;V=da+3280|0;Y=da+3200|0;W=da;aa=(g&65535)<<17;ca=f<<16>>16;$=f<<16>>16<40;if($){f=aa>>16;n=ca;do{g=(Z(b[d+(n-ca<<1)>>1]|0,f)|0)>>15;if((g|0)>32767){c[m>>2]=1;g=32767}T=d+(n<<1)|0;b[T>>1]=Rd(b[T>>1]|0,g&65535,m)|0;n=n+1|0}while((n&65535)<<16>>16!=40)}hc(d,a,U,1,m);qd(U,Y,V,4);fc(d,Y,W,m);R=X+2|0;b[X>>1]=0;S=X+4|0;b[R>>1]=1;T=X+6|0;b[S>>1]=2;b[T>>1]=3;r=3;p=2;o=1;g=0;f=1;n=-1;q=3;do{M=0;N=0;O=q;P=1;Q=2;while(1){if(N<<16>>16<40){G=P<<16>>16;H=P<<16>>16<40;I=Q<<16>>16;J=Q<<16>>16<40;K=O<<16>>16;L=O<<16>>16<40;F=N<<16>>16;E=p;C=o;B=f;D=N;while(1){if((b[V+(F<<1)>>1]|0)>-1){t=b[W+(F*80|0)+(F<<1)>>1]|0;if(H){s=e[U+(F<<1)>>1]|0;u=G;z=1;p=P;o=P;x=0;y=-1;while(1){w=(e[U+(u<<1)>>1]|0)+s|0;v=w<<16>>16;v=(Z(v,v)|0)>>>15;A=(b[W+(F*80|0)+(u<<1)>>1]<<15)+32768+((b[W+(u*80|0)+(u<<1)>>1]|0)+t<<14)|0;if(((Z(v<<16>>16,z<<16>>16)|0)-(Z(A>>16,y<<16>>16)|0)<<1|0)>0){z=A>>>16&65535;o=p;x=w&65535;y=v&65535}A=u+5|0;p=A&65535;if(p<<16>>16>=40)break;else u=A<<16>>16}}else{z=1;o=P;x=0}if(J){f=x&65535;a=o<<16>>16;t=(z<<16>>16<<14)+32768|0;u=I;A=1;s=Q;p=Q;y=0;x=-1;while(1){w=(e[U+(u<<1)>>1]|0)+f|0;v=w<<16>>16;v=(Z(v,v)|0)>>>15;z=t+(b[W+(u*80|0)+(u<<1)>>1]<<12)+((b[W+(F*80|0)+(u<<1)>>1]|0)+(b[W+(a*80|0)+(u<<1)>>1]|0)<<13)|0;if(((Z(v<<16>>16,A<<16>>16)|0)-(Z(z>>16,x<<16>>16)|0)<<1|0)>0){A=z>>>16&65535;p=s;y=w&65535;x=v&65535}z=u+5|0;s=z&65535;if(s<<16>>16>=40)break;else u=z<<16>>16}}else{A=1;p=Q;y=0}if(L){t=y&65535;s=p<<16>>16;a=o<<16>>16;v=(A&65535)<<16|32768;w=K;f=1;u=O;z=O;A=-1;while(1){x=(e[U+(w<<1)>>1]|0)+t<<16>>16;x=(Z(x,x)|0)>>>15;y=(b[W+(w*80|0)+(w<<1)>>1]<<12)+v+((b[W+(a*80|0)+(w<<1)>>1]|0)+(b[W+(s*80|0)+(w<<1)>>1]|0)+(b[W+(F*80|0)+(w<<1)>>1]|0)<<13)|0;if(((Z(x<<16>>16,f<<16>>16)|0)-(Z(y>>16,A<<16>>16)|0)<<1|0)>0){f=y>>>16&65535;z=u;A=x&65535}y=w+5|0;u=y&65535;if(u<<16>>16>=40)break;else w=y<<16>>16}}else{f=1;z=O;A=-1}if(((Z(A<<16>>16,B<<16>>16)|0)-(Z(f<<16>>16,n<<16>>16)|0)<<1|0)>0){b[X>>1]=D;b[R>>1]=o;b[S>>1]=p;b[T>>1]=z;r=z;g=D;n=A}else{p=E;o=C;f=B}}else{p=E;o=C;f=B}w=F+5|0;D=w&65535;if(D<<16>>16>=40)break;else{F=w<<16>>16;E=p;C=o;B=f}}}M=M+1<<16>>16;if(M<<16>>16>=4)break;else{K=Q;L=O;Q=P;P=N;O=K;N=L}}q=q+1<<16>>16}while(q<<16>>16<5);A=r;z=p;y=o;x=g;g=h;f=g+80|0;do{b[g>>1]=0;g=g+2|0}while((g|0)<(f|0));a=x;f=0;n=0;g=0;while(1){p=a<<16>>16;q=b[Y+(p<<1)>>1]|0;a=p*13108>>16;o=p-((a*327680|0)>>>16)|0;a=b[l+(a<<1)>>1]|0;switch(o<<16>>16|0){case 1:{r=a<<16>>16<<3&65535;break}case 2:{r=a<<16>>16<<6&65535;break}case 3:{r=a<<16>>16<<10&65535;break}case 4:{r=((a&65535)<<10|512)&65535;o=3;break}default:r=a}a=h+(p<<1)|0;if(q<<16>>16>0){b[a>>1]=8191;a=32767;g=(65536<<(o<<16>>16)>>>16)+(g&65535)&65535}else{b[a>>1]=-8192;a=-32768}b[_+(f<<1)>>1]=a;n=(r&65535)+(n&65535)|0;f=f+1|0;if((f|0)==4){w=n;break}a=b[X+(f<<1)>>1]|0}b[k>>1]=g;t=_+2|0;u=_+4|0;v=_+6|0;a=b[_>>1]|0;s=0;o=d+(0-(x<<16>>16)<<1)|0;p=d+(0-(y<<16>>16)<<1)|0;q=d+(0-(z<<16>>16)<<1)|0;r=d+(0-(A<<16>>16)<<1)|0;do{g=Z(b[o>>1]|0,a)|0;o=o+2|0;if((g|0)!=1073741824?(ba=g<<1,!((g|0)>0&(ba|0)<0)):0)n=ba;else{c[m>>2]=1;n=2147483647}g=Z(b[t>>1]|0,b[p>>1]|0)|0;p=p+2|0;if((g|0)!=1073741824){f=(g<<1)+n|0;if((g^n|0)>0&(f^n|0)<0){c[m>>2]=1;f=(n>>>31)+2147483647|0}}else{c[m>>2]=1;f=2147483647}g=Z(b[u>>1]|0,b[q>>1]|0)|0;q=q+2|0;if((g|0)!=1073741824){n=(g<<1)+f|0;if((g^f|0)>0&(n^f|0)<0){c[m>>2]=1;n=(f>>>31)+2147483647|0}}else{c[m>>2]=1;n=2147483647}f=Z(b[v>>1]|0,b[r>>1]|0)|0;r=r+2|0;if((f|0)!=1073741824){g=(f<<1)+n|0;if((f^n|0)>0&(g^n|0)<0){c[m>>2]=1;g=(n>>>31)+2147483647|0}}else{c[m>>2]=1;g=2147483647}b[j+(s<<1)>>1]=Ce(g,m)|0;s=s+1|0}while((s|0)!=40);g=w&65535;if(((ca<<16)+-2621440|0)>-1|$^1){i=da;return g|0}n=aa>>16;f=ca;do{a=(Z(b[h+(f-ca<<1)>>1]|0,n)|0)>>15;if((a|0)>32767){c[m>>2]=1;a=32767}j=h+(f<<1)|0;b[j>>1]=Rd(b[j>>1]|0,a&65535,m)|0;f=f+1|0}while((f&65535)<<16>>16!=40);i=da;return g|0}function Sb(a,d,f,g,h,j,k){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+3440|0;t=L+3424|0;G=L+3408|0;H=L+3240|0;u=L+3224|0;E=L+3328|0;s=L+3248|0;F=L+24|0;K=L+16|0;J=L;gc(f,a,E,2,4,4,k);rd(E,d,s,H,4,G,4,k);fc(f,s,F,k);pd(8,4,4,E,F,G,H,u,k);d=g;a=d+80|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(a|0));b[J>>1]=-1;b[K>>1]=-1;C=J+2|0;b[C>>1]=-1;D=K+2|0;b[D>>1]=-1;E=J+4|0;b[E>>1]=-1;F=K+4|0;b[F>>1]=-1;H=J+6|0;b[H>>1]=-1;G=K+6|0;b[G>>1]=-1;q=0;do{o=b[u+(q<<1)>>1]|0;d=o>>>2;m=d&65535;a=o&3;n=(b[s+(o<<1)>>1]|0)>0;o=g+(o<<1)|0;r=n&1^1;b[o>>1]=(e[o>>1]|0)+(n?8191:57345);b[t+(q<<1)>>1]=n?32767:-32768;n=J+(a<<1)|0;o=b[n>>1]|0;do if(o<<16>>16>=0){p=K+(a<<1)|0;l=(o<<16>>16|0)<=(d<<16>>16|0);d=J+((a|4)<<1)|0;if((r&65535|0)==(e[p>>1]&1|0))if(l){b[d>>1]=m;break}else{b[d>>1]=o;b[n>>1]=m;b[p>>1]=r;break}else if(l){b[d>>1]=o;b[n>>1]=m;b[p>>1]=r;break}else{b[d>>1]=m;break}}else{b[n>>1]=m;b[K+(a<<1)>>1]=r}while(0);q=q+1|0}while((q|0)!=8);v=t+2|0;w=t+4|0;x=t+6|0;y=t+8|0;z=t+10|0;A=t+12|0;B=t+14|0;t=b[t>>1]|0;q=0;p=f+(0-(b[u>>1]|0)<<1)|0;o=f+(0-(b[u+2>>1]|0)<<1)|0;n=f+(0-(b[u+4>>1]|0)<<1)|0;m=f+(0-(b[u+6>>1]|0)<<1)|0;d=f+(0-(b[u+8>>1]|0)<<1)|0;a=f+(0-(b[u+10>>1]|0)<<1)|0;l=f+(0-(b[u+12>>1]|0)<<1)|0;f=f+(0-(b[u+14>>1]|0)<<1)|0;do{r=Z(b[p>>1]|0,t)|0;p=p+2|0;if((r|0)!=1073741824?(I=r<<1,!((r|0)>0&(I|0)<0)):0)r=I;else{c[k>>2]=1;r=2147483647}s=Z(b[v>>1]|0,b[o>>1]|0)|0;o=o+2|0;if((s|0)!=1073741824){g=(s<<1)+r|0;if((s^r|0)>0&(g^r|0)<0){c[k>>2]=1;r=(r>>>31)+2147483647|0}else r=g}else{c[k>>2]=1;r=2147483647}s=Z(b[w>>1]|0,b[n>>1]|0)|0;n=n+2|0;if((s|0)!=1073741824){g=(s<<1)+r|0;if((s^r|0)>0&(g^r|0)<0){c[k>>2]=1;g=(r>>>31)+2147483647|0}}else{c[k>>2]=1;g=2147483647}s=Z(b[x>>1]|0,b[m>>1]|0)|0;m=m+2|0;if((s|0)!=1073741824){r=(s<<1)+g|0;if((s^g|0)>0&(r^g|0)<0){c[k>>2]=1;r=(g>>>31)+2147483647|0}}else{c[k>>2]=1;r=2147483647}s=Z(b[y>>1]|0,b[d>>1]|0)|0;d=d+2|0;if((s|0)!=1073741824){g=(s<<1)+r|0;if((s^r|0)>0&(g^r|0)<0){c[k>>2]=1;g=(r>>>31)+2147483647|0}}else{c[k>>2]=1;g=2147483647}s=Z(b[z>>1]|0,b[a>>1]|0)|0;a=a+2|0;if((s|0)!=1073741824){r=(s<<1)+g|0;if((s^g|0)>0&(r^g|0)<0){c[k>>2]=1;r=(g>>>31)+2147483647|0}}else{c[k>>2]=1;r=2147483647}s=Z(b[A>>1]|0,b[l>>1]|0)|0;l=l+2|0;if((s|0)!=1073741824){g=(s<<1)+r|0;if((s^r|0)>0&(g^r|0)<0){c[k>>2]=1;g=(r>>>31)+2147483647|0}}else{c[k>>2]=1;g=2147483647}s=Z(b[B>>1]|0,b[f>>1]|0)|0;f=f+2|0;if((s|0)!=1073741824){r=(s<<1)+g|0;if((s^g|0)>0&(r^g|0)<0){c[k>>2]=1;r=(g>>>31)+2147483647|0}}else{c[k>>2]=1;r=2147483647}b[h+(q<<1)>>1]=Ce(r,k)|0;q=q+1|0}while((q|0)!=40);b[j>>1]=b[K>>1]|0;b[j+2>>1]=b[D>>1]|0;b[j+4>>1]=b[F>>1]|0;b[j+6>>1]=b[G>>1]|0;a=b[J>>1]|0;d=b[J+8>>1]|0;l=b[C>>1]|0;b[j+8>>1]=d<<1&2|a&1|l<<2&4|(((d>>1)*327680|0)+(a>>>1<<16)+(Z(l>>1,1638400)|0)|0)>>>13&65528;l=b[E>>1]|0;a=b[J+12>>1]|0;d=b[J+10>>1]|0;b[j+10>>1]=a<<1&2|l&1|d<<2&4|(((a>>1)*327680|0)+(l>>>1<<16)+(Z(d>>1,1638400)|0)|0)>>>13&65528;d=b[J+14>>1]|0;l=b[H>>1]|0;a=l<<16>>16>>>1;if(!(d&2)){h=a;k=d<<16>>16;K=k>>1;K=K*327680|0;h=h<<16;K=h+K|0;K=K<<5;K=K>>16;K=K|12;K=K*2622|0;K=K>>>16;h=l&65535;h=h&1;k=k<<17;k=k&131072;K=K<<18;k=K|k;k=k>>>16;h=k|h;h=h&65535;j=j+12|0;b[j>>1]=h;i=L;return}h=4-(a<<16>>16)|0;k=d<<16>>16;K=k>>1;K=K*327680|0;h=h<<16;K=h+K|0;K=K<<5;K=K>>16;K=K|12;K=K*2622|0;K=K>>>16;h=l&65535;h=h&1;k=k<<17;k=k&131072;K=K<<18;k=K|k;k=k>>>16;h=k|h;h=h&65535;j=j+12|0;b[j>>1]=h;i=L;return}function Tb(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var 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;r=e<<16>>16;h=0-r|0;e=g+(h<<2)|0;g=((r-(f<<16>>16)|0)>>>2)+1&65535;if(g<<16>>16<=0)return;r=d<<16>>16>>>1&65535;if(!(r<<16>>16)){while(1){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;if(g<<16>>16>1){e=e+16|0;g=g+-1<<16>>16}else break}return}q=a+(h<<1)|0;while(1){l=q+4|0;n=b[l>>1]|0;j=b[q>>1]|0;m=n;k=r;o=a;p=q;q=q+8|0;i=0;h=0;f=0;d=0;while(1){t=b[o>>1]|0;s=(Z(j<<16>>16,t)|0)+i|0;i=b[p+2>>1]|0;h=(Z(i,t)|0)+h|0;j=(Z(m<<16>>16,t)|0)+f|0;f=b[p+6>>1]|0;m=(Z(f,t)|0)+d|0;d=b[o+2>>1]|0;i=s+(Z(d,i)|0)|0;h=h+(Z(n<<16>>16,d)|0)|0;l=l+4|0;f=j+(Z(d,f)|0)|0;j=b[l>>1]|0;d=m+(Z(j<<16>>16,d)|0)|0;k=k+-1<<16>>16;if(!(k<<16>>16))break;t=n;m=j;n=b[p+8>>1]|0;o=o+4|0;p=p+4|0;j=t}c[e>>2]=i<<1;c[e+4>>2]=h<<1;c[e+8>>2]=f<<1;c[e+12>>2]=d<<1;if(g<<16>>16<=1)break;else{e=e+16|0;g=g+-1<<16>>16}}return}function Ub(a,d,f,g,h,j,k,l,m){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+16|0;w=y+2|0;x=y;do if(h<<16>>16>0){s=g<<16>>16;u=0;p=0;g=0;o=0;t=0;while(1){n=b[a+(u<<1)>>1]|0;q=n<<16>>16;p=(Z(q,q)|0)+p|0;q=b[d+(u<<1)>>1]|0;g=(Z(q,q)|0)+g|0;o=(Z(b[f+(u<<1)>>1]|0,q)|0)+o|0;q=Z(q,s)|0;if((q|0)==1073741824){c[m>>2]=1;r=2147483647}else r=q<<1;q=r<<1;q=(Ge(n,Ce((q>>1|0)==(r|0)?q:r>>31^2147483647,m)|0,m)|0)<<16>>16;q=Z(q,q)|0;if((q|0)!=1073741824){n=(q<<1)+t|0;if((q^t|0)>0&(n^t|0)<0){c[m>>2]=1;n=(t>>>31)+2147483647|0}}else{c[m>>2]=1;n=2147483647}u=u+1|0;if((u&65535)<<16>>16==h<<16>>16){t=n;break}else t=n}p=p<<1;g=g<<1;o=o<<1;if((p|0)>=0){if((p|0)<400){n=t;v=14;break}}else{c[m>>2]=1;p=2147483647}r=pe(p)|0;q=r<<16>>16;if(r<<16>>16>0){n=p<>q|0)!=(p|0))n=p>>31^2147483647}else{n=0-q<<16;if((n|0)<2031616)n=p>>(n>>16);else n=0}b[j>>1]=n>>>16;p=g;s=o;n=t;g=15-(r&65535)&65535}else{g=0;o=0;n=0;v=14}while(0);if((v|0)==14){b[j>>1]=0;p=g;s=o;g=-15}b[k>>1]=g;if((p|0)<0){c[m>>2]=1;p=2147483647}q=pe(p)|0;o=q<<16>>16;if(q<<16>>16>0){g=p<>o|0)!=(p|0))g=p>>31^2147483647}else{g=0-o<<16;if((g|0)<2031616)g=p>>(g>>16);else g=0}b[j+2>>1]=g>>>16;b[k+2>>1]=15-(q&65535);p=pe(s)|0;o=p<<16>>16;if(p<<16>>16>0){g=s<>o|0)!=(s|0))g=s>>31^2147483647}else{g=0-o<<16;if((g|0)<2031616)g=s>>(g>>16);else g=0}b[j+4>>1]=g>>>16;b[k+4>>1]=2-(p&65535);p=pe(n)|0;g=p<<16>>16;if(p<<16>>16>0){o=n<>g|0)!=(n|0))o=n>>31^2147483647}else{g=0-g<<16;if((g|0)<2031616)o=n>>(g>>16);else o=0}g=o>>>16&65535;n=15-(p&65535)&65535;b[j+6>>1]=g;b[k+6>>1]=n;if((o>>16|0)<=0){m=0;b[l>>1]=m;i=y;return}o=b[j>>1]|0;if(!(o<<16>>16)){m=0;b[l>>1]=m;i=y;return}g=Td(De(o,1,m)|0,g)|0;g=(g&65535)<<16;o=((Ge(n,b[k>>1]|0,m)|0)&65535)+3|0;n=o&65535;o=o<<16>>16;if(n<<16>>16>0)n=n<<16>>16<31?g>>o:0;else{k=0-o<<16>>16;n=g<>k|0)==(g|0)?n:g>>31^2147483647}de(n,w,x,m);x=Ic((e[w>>1]|0)+65509&65535,b[x>>1]|0,m)|0;w=x<<13;m=Ce((w>>13|0)==(x|0)?w:x>>31^2147483647,m)|0;b[l>>1]=m;i=y;return}function Vb(a,d,f,g,h,j,k,l,m,n,o){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+80|0;v=y;b[k>>1]=b[j>>1]|0;b[l>>1]=b[j+2>>1]|0;r=b[j+4>>1]|0;if(r<<16>>16==-32768)r=32767;else r=0-(r&65535)&65535;b[k+2>>1]=r;b[l+2>>1]=(e[j+6>>1]|0)+1;switch(a|0){case 0:case 5:{u=0;q=0;p=0;t=0;break}default:{u=0;q=1;p=1;t=1}}while(1){s=(b[h+(u<<1)>>1]|0)>>>3;b[v+(u<<1)>>1]=s;s=s<<16>>16;r=Z(s,s)|0;if((r|0)!=1073741824){j=(r<<1)+q|0;if((r^q|0)>0&(j^q|0)<0){c[o>>2]=1;q=(q>>>31)+2147483647|0}else q=j}else{c[o>>2]=1;q=2147483647}r=Z(b[d+(u<<1)>>1]|0,s)|0;if((r|0)!=1073741824){j=(r<<1)+p|0;if((r^p|0)>0&(j^p|0)<0){c[o>>2]=1;p=(p>>>31)+2147483647|0}else p=j}else{c[o>>2]=1;p=2147483647}r=Z(b[g+(u<<1)>>1]|0,s)|0;if((r|0)!=1073741824){j=(r<<1)+t|0;if((r^t|0)>0&(j^t|0)<0){c[o>>2]=1;j=(t>>>31)+2147483647|0}}else{c[o>>2]=1;j=2147483647}u=u+1|0;if((u|0)==40){g=j;s=p;break}else t=j}p=pe(q)|0;j=p<<16>>16;if(p<<16>>16>0){r=q<>j|0)!=(q|0))r=q>>31^2147483647}else{r=0-j<<16;if((r|0)<2031616)r=q>>(r>>16);else r=0}h=k+4|0;b[h>>1]=r>>>16;d=l+4|0;b[d>>1]=-3-(p&65535);q=pe(s)|0;j=q<<16>>16;if(q<<16>>16>0){r=s<>j|0)!=(s|0))r=s>>31^2147483647}else{r=0-j<<16;if((r|0)<2031616)r=s>>(r>>16);else r=0}j=r>>>16;b[k+6>>1]=(j|0)==32768?32767:0-j&65535;b[l+6>>1]=7-(q&65535);q=pe(g)|0;j=q<<16>>16;if(q<<16>>16>0){r=g<>j|0)!=(g|0))r=g>>31^2147483647}else{r=0-j<<16;if((r|0)<2031616)r=g>>(r>>16);else r=0}b[k+8>>1]=r>>>16;b[l+8>>1]=7-(q&65535);switch(a|0){case 0:case 5:{r=0;p=0;break}default:{i=y;return}}do{p=(Z(b[v+(r<<1)>>1]|0,b[f+(r<<1)>>1]|0)|0)+p|0;r=r+1|0}while((r|0)!=40);j=p<<1;r=pe(j)|0;q=r<<16>>16;if(r<<16>>16>0){p=j<>q|0)==(j|0)){w=p;x=40}else{w=j>>31^2147483647;x=40}}else{p=0-q<<16;if((p|0)<2031616){w=j>>(p>>16);x=40}}if((x|0)==40?(w>>16|0)>=1:0){o=De(w>>>16&65535,1,o)|0;b[m>>1]=Td(o,b[h>>1]|0)|0;b[n>>1]=65528-(r&65535)-(e[d>>1]|0);i=y;return}b[m>>1]=0;b[n>>1]=0;i=y;return}function Wb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=0;g=0;do{i=b[a+(h<<1)>>1]|0;g=(Z(i,i)|0)+g|0;h=h+1|0}while((h|0)!=40);if((g|0)<0){c[f>>2]=1;g=2147483647}f=pe(g)|0;a=f<<16>>16;if(f<<16>>16>0){h=g<>a|0)==(g|0))g=h;else g=g>>31^2147483647}else{a=0-a<<16;if((a|0)<2031616)g=g>>(a>>16);else g=0}b[e>>1]=g>>>16;b[d>>1]=16-(f&65535);return}function Xb(a,d,e,f,g,h,j,k,l,m,n,o,p){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0;r=i;i=i+16|0;q=r;if(m>>>0<2){j=Nb(n,a,d,e,f,j,k,q,c[o+76>>2]|0,p)|0;p=c[l>>2]|0;b[p>>1]=j;j=b[q>>1]|0;c[l>>2]=p+4;b[p+2>>1]=j;i=r;return}switch(m|0){case 2:{j=Mb(a,d,e,f,j,k,q,p)|0;p=c[l>>2]|0;b[p>>1]=j;j=b[q>>1]|0;c[l>>2]=p+4;b[p+2>>1]=j;i=r;return}case 3:{j=Qb(a,d,e,f,j,k,q,p)|0;p=c[l>>2]|0;b[p>>1]=j;j=b[q>>1]|0;c[l>>2]=p+4;b[p+2>>1]=j;i=r;return}default:{if((m&-2|0)==4){j=Rb(a,d,e,f,j,k,q,c[o+36>>2]|0,p)|0;p=c[l>>2]|0;b[p>>1]=j;j=b[q>>1]|0;c[l>>2]=p+4;b[p+2>>1]=j;i=r;return}if((m|0)!=6){n=g<<16>>16;n=(n<<17>>17|0)==(n|0)?n<<1:n>>>15^32767;g=e<<16>>16<40;if(!g){Lb(a,h,d,j,k,c[l>>2]|0,c[o+36>>2]|0,p);c[l>>2]=(c[l>>2]|0)+20;i=r;return}q=e<<16>>16;m=n<<16>>16;f=q;do{t=(Z(b[d+(f-q<<1)>>1]|0,m)|0)>>>15&65535;s=d+(f<<1)|0;b[s>>1]=Rd(b[s>>1]|0,t,p)|0;f=f+1|0}while((f&65535)<<16>>16!=40);Lb(a,h,d,j,k,c[l>>2]|0,c[o+36>>2]|0,p);c[l>>2]=(c[l>>2]|0)+20;if(!g){i=r;return}g=e<<16>>16;m=n<<16>>16;q=g;do{f=(Z(b[j+(q-g<<1)>>1]|0,m)|0)>>15;if((f|0)>32767){c[p>>2]=1;f=32767}t=j+(q<<1)|0;b[t>>1]=Rd(b[t>>1]|0,f&65535,p)|0;q=q+1|0}while((q&65535)<<16>>16!=40);i=r;return}o=f<<16>>16;o=(o<<17>>17|0)==(o|0)?o<<1:o>>>15^32767;n=e<<16>>16<40;if(!n){Sb(a,h,d,j,k,c[l>>2]|0,p);c[l>>2]=(c[l>>2]|0)+14;i=r;return}q=e<<16>>16;m=o<<16>>16;f=q;do{g=(Z(b[d+(f-q<<1)>>1]|0,m)|0)>>15;if((g|0)>32767){c[p>>2]=1;g=32767}t=d+(f<<1)|0;b[t>>1]=Rd(b[t>>1]|0,g&65535,p)|0;f=f+1|0}while((f&65535)<<16>>16!=40);Sb(a,h,d,j,k,c[l>>2]|0,p);c[l>>2]=(c[l>>2]|0)+14;if(!n){i=r;return}g=e<<16>>16;m=o<<16>>16;q=g;do{f=(Z(b[j+(q-g<<1)>>1]|0,m)|0)>>15;if((f|0)>32767){c[p>>2]=1;f=32767}t=j+(q<<1)|0;b[t>>1]=Rd(b[t>>1]|0,f&65535,p)|0;q=q+1|0}while((q&65535)<<16>>16!=40);i=r;return}}}function Yb(a){a=a|0;var b=0;if(!a){a=-1;return a|0}c[a>>2]=0;b=Je(4)|0;if(!b){a=-1;return a|0}if(!((Uc(b)|0)<<16>>16)){Vc(c[b>>2]|0)|0;c[a>>2]=b;a=0;return a|0}else{Wc(b);Ke(b);a=-1;return a|0}return 0}function Zb(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Wc(b);Ke(c[a>>2]|0);c[a>>2]=0;return}function _b(a){a=a|0;if(!a){a=-1;return a|0}Vc(c[a>>2]|0)|0;a=0;return a|0}function $b(a,d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;var y=0,z=0,A=0,B=0;z=i;i=i+16|0;B=z+2|0;A=z;b[q>>1]=Xc(c[a>>2]|0,f,h,k,m,j,40,g,r,A,B,x)|0;a=b[B>>1]|0;g=c[u>>2]|0;c[u>>2]=g+2;b[g>>1]=a;se(k,b[q>>1]|0,b[r>>1]|0,40,b[A>>1]|0,x);ec(k,j,p,40);b[s>>1]=Dc(f,m,p,t,40,x)|0;b[v>>1]=32767;if(n<<16>>16!=0?(y=b[s>>1]|0,y<<16>>16>15565):0)y=Ed(d,y,x)|0;else y=0;if(f>>>0<2){B=b[s>>1]|0;b[s>>1]=B<<16>>16>13926?13926:B;if(y<<16>>16)b[v>>1]=15565}else{if(y<<16>>16){b[v>>1]=15565;b[s>>1]=15565}if((f|0)==7){A=nd(7,b[v>>1]|0,s,0,0,w,x)|0;B=c[u>>2]|0;c[u>>2]=B+2;b[B>>1]=A}}q=b[s>>1]|0;y=0;while(1){A=Z(b[p>>1]|0,q)|0;b[o>>1]=(e[m>>1]|0)-(A>>>14);A=(Z(b[k>>1]|0,q)|0)>>>14;B=l+(y<<1)|0;b[B>>1]=(e[B>>1]|0)-A;y=y+1|0;if((y|0)==40)break;else{k=k+2|0;m=m+2|0;o=o+2|0;p=p+2|0}}i=z;return}function ac(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g;if(!a){a=-1;i=g;return a|0}c[a>>2]=0;d=Je(2532)|0;c[f>>2]=d;if(!d){a=-1;i=g;return a|0}Yd(d+2392|0);c[d+2188>>2]=0;c[(c[f>>2]|0)+2192>>2]=0;c[(c[f>>2]|0)+2196>>2]=0;c[(c[f>>2]|0)+2200>>2]=0;c[(c[f>>2]|0)+2204>>2]=0;c[(c[f>>2]|0)+2208>>2]=0;c[(c[f>>2]|0)+2212>>2]=0;c[(c[f>>2]|0)+2220>>2]=0;e=c[f>>2]|0;c[e+2216>>2]=b;c[e+2528>>2]=0;d=e;if((((((((Yb(e+2196|0)|0)<<16>>16==0?(ie(e+2192|0)|0)<<16>>16==0:0)?(yc(e+2200|0)|0)<<16>>16==0:0)?(_c(e+2204|0)|0)<<16>>16==0:0)?(Ad(e+2208|0)|0)<<16>>16==0:0)?(Gd(e+2212|0)|0)<<16>>16==0:0)?(jc(e+2220|0,c[e+2432>>2]|0)|0)<<16>>16==0:0)?(Pc(e+2188|0)|0)<<16>>16==0:0){cc(e)|0;c[a>>2]=d;a=0;i=g;return a|0}bc(f);a=-1;i=g;return a|0}function bc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Qc(b+2188|0);ke((c[a>>2]|0)+2192|0);zc((c[a>>2]|0)+2200|0);Zb((c[a>>2]|0)+2196|0);ad((c[a>>2]|0)+2204|0);Cd((c[a>>2]|0)+2208|0);Id((c[a>>2]|0)+2212|0);lc((c[a>>2]|0)+2220|0);Ke(c[a>>2]|0);c[a>>2]=0;return}function cc(a){a=a|0;var d=0,e=0,f=0,g=0;if(!a){g=-1;return g|0}c[a+652>>2]=a+320;c[a+640>>2]=a+240;c[a+644>>2]=a+160;c[a+648>>2]=a+80;c[a+1264>>2]=a+942;c[a+1912>>2]=a+1590;f=a+1938|0;c[a+2020>>2]=f;c[a+2384>>2]=a+2304;d=a+2028|0;c[a+2024>>2]=a+2108;c[a+2528>>2]=0;Qe(a|0,0,640)|0;Qe(a+1282|0,0,308)|0;Qe(a+656|0,0,286)|0;e=a+2224|0;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));f=d;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));d=a+1268|0;f=e;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));b[d>>1]=40;b[a+1270>>1]=40;b[a+1272>>1]=40;b[a+1274>>1]=40;b[a+1276>>1]=40;Rc(c[a+2188>>2]|0)|0;je(c[a+2192>>2]|0)|0;_b(c[a+2196>>2]|0)|0;Ac(c[a+2200>>2]|0)|0;$c(c[a+2204>>2]|0)|0;Bd(c[a+2208>>2]|0)|0;Hd(c[a+2212>>2]|0)|0;kc(c[a+2220>>2]|0,c[a+2432>>2]|0)|0;b[a+2388>>1]=0;g=0;return g|0}function dc(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var 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,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,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0;qa=i;i=i+1184|0;T=qa;n=qa+1096|0;o=qa+1008|0;l=qa+904|0;ka=qa+928|0;la=qa+824|0;X=qa+744|0;na=qa+664|0;oa=qa+584|0;Z=qa+328|0;ha=qa+504|0;ia=qa+424|0;ma=qa+344|0;pa=qa+248|0;Y=qa+168|0;da=qa+88|0;fa=qa+68|0;ga=qa+48|0;ea=qa+28|0;ja=qa+24|0;ba=qa+22|0;$=qa+20|0;W=qa+16|0;U=qa+12|0;V=qa+10|0;aa=qa+8|0;_=qa+6|0;ca=qa+4|0;c[T>>2]=f;S=a+2528|0;j=a+652|0;Oe(c[j>>2]|0,e|0,320)|0;c[g>>2]=d;m=a+2216|0;if(!(c[m>>2]|0)){e=a+2220|0;f=0}else{f=Nd(c[a+2212>>2]|0,c[j>>2]|0,S)|0;R=a+2220|0;e=R;f=oc(c[R>>2]|0,f,g,S)|0}R=a+2392|0;Sc(c[a+2188>>2]|0,d,c[a+644>>2]|0,c[a+648>>2]|0,n,R,S);k=a+2192|0;le(c[k>>2]|0,d,c[g>>2]|0,n,o,l,T,S);nc(c[e>>2]|0,l,c[j>>2]|0,S);if((c[g>>2]|0)==8){mc(c[e>>2]|0,f,c[(c[k>>2]|0)+40>>2]|0,(c[a+2200>>2]|0)+32|0,T,S);Qe(a+1282|0,0,308)|0;j=a+2244|0;q=j+20|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(q|0));j=a+2284|0;q=j+20|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(q|0));j=c[a+2020>>2]|0;q=j+80|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(q|0));j=a+2028|0;q=j+80|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(q|0));je(c[k>>2]|0)|0;j=c[k>>2]|0;e=l;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=(c[k>>2]|0)+20|0;e=l;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));_b(c[a+2196>>2]|0)|0;b[a+2388>>1]=0;Q=0}else Q=Dd(c[a+2208>>2]|0,c[k>>2]|0,S)|0;N=a+640|0;k=a+2264|0;j=a+1264|0;e=a+2204|0;f=a+2212|0;O=a+1268|0;P=a+1278|0;cd(d,2842,2862,2882,n,0,c[N>>2]|0,k,c[j>>2]|0,S);if(d>>>0>1){Tc(c[e>>2]|0,c[f>>2]|0,d,c[j>>2]|0,W,O,P,0,c[m>>2]|0,S);cd(d,2842,2862,2882,n,80,c[N>>2]|0,k,c[j>>2]|0,S);Tc(c[e>>2]|0,c[f>>2]|0,d,(c[j>>2]|0)+160|0,W+2|0,O,P,1,c[m>>2]|0,S)}else{cd(d,2842,2862,2882,n,80,c[N>>2]|0,k,c[j>>2]|0,S);Tc(c[e>>2]|0,c[f>>2]|0,d,c[j>>2]|0,W,O,P,1,c[m>>2]|0,S);b[W+2>>1]=b[W>>1]|0}if(c[m>>2]|0)Md(c[f>>2]|0,W,S);if((c[g>>2]|0)==8){oa=a+656|0;pa=a+976|0;Oe(oa|0,pa|0,286)|0;pa=a+320|0;Oe(a|0,pa|0,320)|0;i=qa;return 0}z=a+2224|0;A=a+2244|0;B=a+2284|0;C=a+2388|0;D=a+2020|0;E=a+1916|0;F=a+1912|0;G=a+2024|0;H=a+2384|0;I=a+2196|0;J=a+2208|0;K=a+2464|0;L=a+2200|0;M=a+2224|0;w=a+2244|0;x=a+1270|0;y=a+1280|0;v=0;m=0;l=0;s=0;t=0;k=0;u=-1;while(1){p=u;u=u+1<<16>>16;s=1-(s<<16>>16)|0;f=s&65535;r=(s&65535|0)!=0;e=c[g>>2]|0;j=(e|0)==0;do if(r)if(j){j=fa;e=z;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=ga;e=A;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=ea;e=B;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));b[ja>>1]=b[C>>1]|0;d=(c[N>>2]|0)+(v<<1)|0;j=20;break}else{d=(c[N>>2]|0)+(v<<1)|0;j=19;break}else{d=(c[N>>2]|0)+(v<<1)|0;if(j)j=20;else j=19}while(0);if((j|0)==19)yd(e,2842,2862,2882,n,o,d,B,w,c[D>>2]|0,E,(c[F>>2]|0)+(v<<1)|0,c[G>>2]|0,ka,ha,c[H>>2]|0);else if((j|0)==20?(0,yd(0,2842,2862,2882,n,o,d,B,ga,c[D>>2]|0,E,(c[F>>2]|0)+(v<<1)|0,c[G>>2]|0,ka,ha,c[H>>2]|0),r):0){j=da;e=c[G>>2]|0;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0))}j=ia;e=ha;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));$b(c[I>>2]|0,c[J>>2]|0,c[g>>2]|0,t,W,c[G>>2]|0,(c[F>>2]|0)+(v<<1)|0,ia,ka,Q,la,na,U,V,aa,Z,T,ca,c[K>>2]|0,S);switch(p<<16>>16){case -1:{if((b[P>>1]|0)>0)b[x>>1]=b[U>>1]|0;break}case 2:{if((b[y>>1]|0)>0)b[O>>1]=b[U>>1]|0;break}default:{}}Xb(la,c[G>>2]|0,b[U>>1]|0,b[C>>1]|0,b[aa>>1]|0,ia,X,oa,T,c[g>>2]|0,u,R,S);Bc(c[L>>2]|0,c[g>>2]|0,ha,(c[F>>2]|0)+(v<<1)|0,X,ka,la,na,oa,Z,f,b[ca>>1]|0,ba,$,aa,_,T,R,S);Fd(c[J>>2]|0,b[aa>>1]|0,S);d=c[g>>2]|0;do if(!d)if(r){j=ma;e=ka;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=pa;e=oa;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=Y;e=X;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));l=b[U>>1]|0;m=b[V>>1]|0;zd(c[N>>2]|0,0,t,b[aa>>1]|0,b[_>>1]|0,o,h,ka,X,na,oa,fa,B,ga,c[F>>2]|0,C,S);b[C>>1]=b[ja>>1]|0;k=t;break}else{j=B;e=ea;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));r=k<<16>>16;se((c[F>>2]|0)+(r<<1)|0,l,m,40,1,S);ec((c[F>>2]|0)+(r<<1)|0,da,na,40);zd(c[N>>2]|0,c[g>>2]|0,k,b[ba>>1]|0,b[$>>1]|0,o+-22|0,h,ma,Y,na,pa,M,B,w,c[F>>2]|0,ja,S);yd(c[g>>2]|0,2842,2862,2882,n,o,(c[N>>2]|0)+(v<<1)|0,B,w,c[D>>2]|0,E,(c[F>>2]|0)+(v<<1)|0,c[G>>2]|0,ka,ha,c[H>>2]|0);se((c[F>>2]|0)+(v<<1)|0,b[U>>1]|0,b[V>>1]|0,40,1,S);ec((c[F>>2]|0)+(v<<1)|0,c[G>>2]|0,na,40);zd(c[N>>2]|0,c[g>>2]|0,t,b[aa>>1]|0,b[_>>1]|0,o,h,ka,X,na,oa,M,B,w,c[F>>2]|0,C,S);break}else zd(c[N>>2]|0,d,t,b[aa>>1]|0,b[_>>1]|0,o,h,ka,X,na,oa,M,B,w,c[F>>2]|0,C,S);while(0);d=v+40|0;t=d&65535;if(t<<16>>16>=160)break;else{v=d<<16>>16;n=n+22|0;o=o+22|0}}Oe(a+1282|0,a+1602|0,308)|0;oa=a+656|0;pa=a+976|0;Oe(oa|0,pa|0,286)|0;pa=a+320|0;Oe(a|0,pa|0,320)|0;i=qa;return 0}function ec(a,c,d,e){a=a|0;c=c|0;d=d|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;o=e<<16>>16;if(e<<16>>16>1)n=1;else return;while(1){f=b[a>>1]|0;i=c+(n+-1<<1)|0;e=Z(b[c+(n<<1)>>1]|0,f)|0;k=b[i>>1]|0;f=Z(k<<16>>16,f)|0;h=(n+131071|0)>>>1;j=h&65535;g=b[a+2>>1]|0;if(!(j<<16>>16)){c=i;h=k}else{l=(h<<1)+131070&131070;m=n-l|0;h=a;do{q=(Z(k<<16>>16,g)|0)+e|0;p=h;h=h+4|0;e=b[i+-2>>1]|0;g=(Z(e,g)|0)+f|0;f=b[h>>1]|0;i=i+-4|0;e=q+(Z(f,e)|0)|0;k=b[i>>1]|0;f=g+(Z(k<<16>>16,f)|0)|0;j=j+-1<<16>>16;g=b[p+6>>1]|0}while(j<<16>>16!=0);h=c+(m+-3<<1)|0;a=a+(l+2<<1)|0;c=h;h=b[h>>1]|0}e=(Z(h<<16>>16,g)|0)+e|0;b[d>>1]=f>>>12;b[d+2>>1]=e>>>12;e=(n<<16)+131072>>16;if((e|0)<(o|0)){d=d+4|0;a=a+(1-n<<1)|0;n=e}else break}return}function fc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=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;z=i;i=i+80|0;y=z;h=20;g=a;f=1;while(1){x=b[g>>1]|0;x=(Z(x,x)|0)+f|0;f=b[g+2>>1]|0;f=x+(Z(f,f)|0)|0;h=h+-1<<16>>16;if(!(h<<16>>16))break;else g=g+4|0}f=f<<1;if((f|0)<0){g=20;f=a;e=y;while(1){b[e>>1]=(b[f>>1]|0)>>>1;b[e+2>>1]=(b[f+2>>1]|0)>>>1;g=g+-1<<16>>16;if(!(g<<16>>16)){x=y;break}else{f=f+4|0;e=e+4|0}}}else{f=ce(f>>1,e)|0;if((f|0)<16777215)f=((f>>9)*32440|0)>>>15<<16>>16;else f=32440;h=20;g=a;e=y;while(1){b[e>>1]=((Z(b[g>>1]|0,f)|0)+32|0)>>>6;b[e+2>>1]=((Z(b[g+2>>1]|0,f)|0)+32|0)>>>6;h=h+-1<<16>>16;if(!(h<<16>>16)){x=y;break}else{g=g+4|0;e=e+4|0}}}h=20;g=x;e=d+3198|0;f=0;while(1){w=b[g>>1]|0;w=(Z(w,w)|0)+f|0;b[e>>1]=(w+16384|0)>>>15;v=b[g+2>>1]|0;f=(Z(v,v)|0)+w|0;b[e+-82>>1]=(f+16384|0)>>>15;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{g=g+4|0;e=e+-164|0}}w=c+78|0;v=1;while(1){f=39-v|0;a=d+3120+(f<<1)|0;e=d+(f*80|0)+78|0;f=c+(f<<1)|0;k=y+(v<<1)|0;g=65575-v|0;j=g&65535;h=b[x>>1]|0;if(!(j<<16>>16)){j=w;g=0}else{r=g+65535&65535;t=r*41|0;u=(Z(v,-40)|0)-t|0;s=0-v|0;t=s-t|0;s=s-r|0;q=v+r|0;p=b[k>>1]|0;n=x;o=w;l=d+((38-v|0)*80|0)+78|0;g=0;m=0;while(1){k=k+2|0;g=(Z(p<<16>>16,h)|0)+g|0;n=n+2|0;p=b[k>>1]|0;m=(Z(p<<16>>16,h)|0)+m|0;B=f;f=f+-2|0;h=b[f>>1]|0;A=b[o>>1]<<1;B=(Z((Z(A,b[B>>1]|0)|0)>>16,(g<<1)+32768>>16)|0)>>>15&65535;b[e>>1]=B;b[a>>1]=B;h=(Z((Z(A,h)|0)>>16,(m<<1)+32768>>16)|0)>>>15&65535;b[a+-2>>1]=h;b[l>>1]=h;j=j+-1<<16>>16;h=b[n>>1]|0;if(!(j<<16>>16))break;else{o=o+-2|0;a=a+-82|0;e=e+-82|0;l=l+-82|0}}k=y+(q+1<<1)|0;j=c+(38-r<<1)|0;f=c+(s+38<<1)|0;a=d+3040+(t+38<<1)|0;e=d+3040+(u+38<<1)|0}B=(Z(b[k>>1]|0,h)|0)+g|0;B=(Z((B<<1)+32768>>16,(Z(b[j>>1]<<1,b[f>>1]|0)|0)>>16)|0)>>>15&65535;b[a>>1]=B;b[e>>1]=B;e=(v<<16)+131072|0;if((e|0)<2621440)v=e>>16;else break}i=z;return}function gc(a,d,e,f,g,h,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+160|0;q=r;if(g<<16>>16>0){o=h&65535;p=0;k=5;do{if((p|0)<40){n=p;m=p&65535;h=0;while(1){if(m<<16>>16<40){m=m<<16>>16;l=0;do{l=(Z(b[a+(m-n<<1)>>1]|0,b[d+(m<<1)>>1]|0)|0)+l|0;m=m+1|0}while((m&65535)<<16>>16!=40)}else l=0;l=l<<1;c[q+(n<<2)>>2]=l;l=Gc(l)|0;h=(l|0)>(h|0)?l:h;l=n+o|0;m=l&65535;if(m<<16>>16>=40)break;else n=l<<16>>16}}else h=0;k=(h>>1)+k|0;p=p+1|0}while((p&65535)<<16>>16!=g<<16>>16)}else k=5;f=((pe(k)|0)&65535)-(f&65535)|0;h=f<<16>>16;l=0-h<<16;k=(l|0)<2031616;l=l>>16;if((f&65535)<<16>>16>0)if(k){k=0;do{f=c[q+(k<<2)>>2]|0;d=f<>1]=Ce((d>>h|0)==(f|0)?d:f>>31^2147483647,j)|0;k=k+1|0}while((k|0)!=40);i=r;return}else{k=0;do{f=c[q+(k<<2)>>2]|0;d=f<>1]=Ce((d>>h|0)==(f|0)?d:f>>31^2147483647,j)|0;k=k+1|0}while((k|0)!=40);i=r;return}else if(k){k=0;do{b[e+(k<<1)>>1]=Ce(c[q+(k<<2)>>2]>>l,j)|0;k=k+1|0}while((k|0)!=40);i=r;return}else{k=0;do{b[e+(k<<1)>>1]=Ce(0,j)|0;k=k+1|0}while((k|0)!=40);i=r;return}}function hc(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=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;z=i;i=i+160|0;y=z;v=a+2|0;w=b[a>>1]|0;x=0;g=5;do{u=x;k=0;while(1){n=d+(u<<1)|0;t=40-u|0;h=(t+131071|0)>>>1&65535;l=d+(u+1<<1)|0;j=Z(b[n>>1]<<1,w)|0;if(!(h<<16>>16))h=v;else{s=131111-u+131070&131070;r=u+s|0;q=v;p=a;o=n;while(1){m=o+4|0;n=p+4|0;j=(Z(b[l>>1]<<1,b[q>>1]|0)|0)+j|0;h=h+-1<<16>>16;j=(Z(b[m>>1]<<1,b[n>>1]|0)|0)+j|0;if(!(h<<16>>16))break;else{l=o+6|0;q=p+6|0;p=n;o=m}}l=d+(r+3<<1)|0;h=a+(s+3<<1)|0}if(!(t&1))j=(Z(b[l>>1]<<1,b[h>>1]|0)|0)+j|0;c[y+(u<<2)>>2]=j;j=(j|0)<0?0-j|0:j;k=(j|0)>(k|0)?j:k;j=u+5|0;if((j&65535)<<16>>16<40)u=j<<16>>16;else break}g=(k>>1)+g|0;x=x+1|0}while((x|0)!=5);f=((pe(g)|0)&65535)-(f&65535)|0;j=f<<16>>16;g=0-j<<16;k=g>>16;if((f&65535)<<16>>16>0){h=20;g=y;while(1){y=c[g>>2]|0;f=y<>1]=(((f>>j|0)==(y|0)?f:y>>31^2147483647)+32768|0)>>>16;y=c[g+4>>2]|0;f=y<>1]=(((f>>j|0)==(y|0)?f:y>>31^2147483647)+32768|0)>>>16;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{e=e+4|0;g=g+8|0}}i=z;return}if((g|0)<2031616){h=20;g=y;while(1){b[e>>1]=((c[g>>2]>>k)+32768|0)>>>16;b[e+2>>1]=((c[g+4>>2]>>k)+32768|0)>>>16;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{e=e+4|0;g=g+8|0}}i=z;return}else{b[e>>1]=0;y=e+4|0;b[e+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;b[y+2>>1]=0;i=z;return}}function ic(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=(Td(16383,b)|0)<<16>>16;b=Z(h,b<<16>>16)|0;if((b|0)==1073741824){c[e>>2]=1;f=2147483647}else f=b<<1;g=(Z(h,d<<16>>16)|0)>>15;b=f+(g<<1)|0;if((f^g|0)>0&(b^f|0)<0){c[e>>2]=1;b=(f>>>31)+2147483647|0}f=2147483647-b|0;d=f>>16;b=Z(d,h)|0;if((b|0)==1073741824){c[e>>2]=1;g=2147483647}else g=b<<1;h=(Z((f>>>1)-(d<<15)<<16>>16,h)|0)>>15;b=g+(h<<1)|0;if((g^h|0)>0&(b^g|0)<0){c[e>>2]=1;b=(g>>>31)+2147483647|0}g=b>>16;h=a>>16;d=Z(g,h)|0;d=(d|0)==1073741824?2147483647:d<<1;f=(Z((b>>>1)-(g<<15)<<16>>16,h)|0)>>15;e=(f<<1)+d|0;e=(f^d|0)>0&(e^d|0)<0?(d>>>31)+2147483647|0:e;h=(Z(g,(a>>>1)-(h<<15)<<16>>16)|0)>>15;a=e+(h<<1)|0;a=(e^h|0)>0&(a^e|0)<0?(e>>>31)+2147483647|0:a;e=a<<2;return ((e>>2|0)==(a|0)?e:a>>31^2147483647)|0}function jc(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;if(!a){h=-1;return h|0}c[a>>2]=0;e=Je(192)|0;if(!e){h=-1;return h|0}f=e+176|0;b[f>>1]=0;b[f+2>>1]=0;b[f+4>>1]=0;b[f+6>>1]=0;b[f+8>>1]=0;b[f+10>>1]=0;f=e;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+20|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+40|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+60|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+80|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+100|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+120|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+140|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+160|0;h=f+20|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(h|0));b[e+188>>1]=7;b[e+190>>1]=32767;c[a>>2]=e;h=0;return h|0}function kc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}d=a+176|0;b[d>>1]=0;b[d+2>>1]=0;b[d+4>>1]=0;b[d+6>>1]=0;b[d+8>>1]=0;b[d+10>>1]=0;d=a;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+20|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+40|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+60|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+80|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+100|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+120|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+140|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+160|0;f=d+20|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(f|0));b[a+188>>1]=7;b[a+190>>1]=32767;f=1;return f|0}function lc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function mc(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var 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;C=i;i=i+112|0;z=C+80|0;A=C+60|0;B=C+40|0;y=C;if(d<<16>>16==0?(j=a+178|0,(b[j>>1]|0)!=0):0){B=a+180|0;h=a+182|0;e=j;B=b[B>>1]|0;f=c[g>>2]|0;A=f+2|0;b[f>>1]=B;h=b[h>>1]|0;B=f+4|0;b[A>>1]=h;A=a+184|0;A=b[A>>1]|0;h=f+6|0;b[B>>1]=A;B=a+186|0;B=b[B>>1]|0;a=f+8|0;b[h>>1]=B;e=b[e>>1]|0;f=f+10|0;c[g>>2]=f;b[a>>1]=e;i=C;return}s=y+36|0;t=y+32|0;u=y+28|0;v=y+24|0;w=y+20|0;x=y+16|0;p=y+12|0;q=y+8|0;r=y+4|0;d=y;j=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(j|0));o=7;d=0;while(1){n=b[a+160+(o<<1)>>1]|0;j=n<<16>>16;if(n<<16>>16<0)j=~((j^-4)>>2);else j=j>>>2;d=Rd(d,j&65535,h)|0;l=o*10|0;n=9;while(1){m=y+(n<<2)|0;k=c[m>>2]|0;D=b[a+(n+l<<1)>>1]|0;j=D+k|0;if((D^k|0)>-1&(j^k|0)<0){c[h>>2]=1;j=(k>>>31)+2147483647|0}c[m>>2]=j;if((n|0)>0)n=n+-1|0;else break}if((o|0)>0)o=o+-1|0;else break}j=d<<16>>16;if(d<<16>>16<0)j=~((j^-2)>>1);else j=j>>>1;b[A+18>>1]=(c[s>>2]|0)>>>3;b[A+16>>1]=(c[t>>2]|0)>>>3;b[A+14>>1]=(c[u>>2]|0)>>>3;b[A+12>>1]=(c[v>>2]|0)>>>3;b[A+10>>1]=(c[w>>2]|0)>>>3;b[A+8>>1]=(c[x>>2]|0)>>>3;b[A+6>>1]=(c[p>>2]|0)>>>3;b[A+4>>1]=(c[q>>2]|0)>>>3;b[A+2>>1]=(c[r>>2]|0)>>>3;b[A>>1]=(c[y>>2]|0)>>>3;d=a+178|0;j=(((j<<16)+167772160|0)>>>16)+128|0;b[d>>1]=j;j=j<<16;if((j|0)<0)j=~((j>>16^-256)>>8);else j=j>>24;b[d>>1]=j;if((j|0)<=63){if((j|0)<0){b[d>>1]=0;j=0}}else{b[d>>1]=63;j=63}D=Ge(j<<8&65535,11560,h)|0;D=D<<16>>16>0?0:D<<16>>16<-14436?-14436:D;b[f>>1]=D;b[f+2>>1]=D;b[f+4>>1]=D;b[f+6>>1]=D;D=((D<<16>>16)*5443|0)>>>15&65535;b[f+8>>1]=D;b[f+10>>1]=D;b[f+12>>1]=D;b[f+14>>1]=D;ne(A,z,10,h);Ae(z,205,10,h);me(z,A,10,h);f=a+182|0;D=a+180|0;te(e,8,A,B,f,D,h);h=f;f=d;D=b[D>>1]|0;e=c[g>>2]|0;B=e+2|0;b[e>>1]=D;h=b[h>>1]|0;D=e+4|0;b[B>>1]=h;B=a+184|0;B=b[B>>1]|0;h=e+6|0;b[D>>1]=B;a=a+186|0;a=b[a>>1]|0;D=e+8|0;b[h>>1]=a;a=b[f>>1]|0;e=e+10|0;c[g>>2]=e;b[D>>1]=a;i=C;return}function nc(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;k=n+2|0;m=n;l=a+176|0;j=(e[l>>1]|0)+1|0;j=(j&65535|0)==8?0:j&65535;b[l>>1]=j;j=a+((j<<16>>16)*10<<1)|0;h=j+20|0;do{b[j>>1]=b[d>>1]|0;j=j+2|0;d=d+2|0}while((j|0)<(h|0));d=0;h=160;while(1){j=b[f>>1]|0;d=(Z(j<<1,j)|0)+d|0;if((d|0)<0){d=2147483647;break}h=h+-1<<16>>16;if(!(h<<16>>16))break;else f=f+2|0}de(d,k,m,g);d=b[k>>1]|0;k=d<<16>>16;f=k<<10;if((f|0)!=(k<<26>>16|0)){c[g>>2]=1;f=d<<16>>16>0?32767:-32768}b[a+160+(b[l>>1]<<1)>>1]=(((b[m>>1]|0)>>>5)+f<<16)+-558432256>>17;i=n;return}function oc(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=a+190|0;i=Rd(b[h>>1]|0,1,f)|0;b[h>>1]=i;g=a+188|0;do if(!(d<<16>>16)){a=b[g>>1]|0;if(!(a<<16>>16)){b[h>>1]=0;c[e>>2]=8;a=1;break}h=(a&65535)+65535&65535;b[g>>1]=h;if((Rd(i,h,f)|0)<<16>>16<30){c[e>>2]=8;a=0}else a=0}else{b[g>>1]=7;a=0}while(0);return a|0}function pc(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;if(!(f<<16>>16)){f=a<<16>>16;if(((f<<16)+-5570560|0)<65536){b=(f*3|0)+-58+(b<<16>>16)|0;b=b&65535;return b|0}else{b=f+112|0;b=b&65535;return b|0}}if(!(g<<16>>16)){h=(a&65535)-(d&65535)<<16;b=(b<<16>>16)+2+(h>>15)+(h>>16)|0;b=b&65535;return b|0}d=d<<16>>16;d=(((c&65535)-d<<16)+-327680|0)>0?d+5&65535:c;e=e<<16>>16;c=a<<16>>16;d=(((e-(d&65535)<<16)+-262144|0)>0?e+65532&65535:d)<<16>>16;e=d*196608|0;a=e+-393216>>16;f=((b&65535)<<16)+(c*196608|0)>>16;if(!(a-f&32768)){b=c+5-d|0;b=b&65535;return b|0}if((e+196608>>16|0)>(f|0)){b=f+3-a|0;b=b&65535;return b|0}else{b=c+11-d|0;b=b&65535;return b|0}return 0}function qc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;e=a<<16>>16;do if(!(d<<16>>16))if(a<<16>>16<95){e=((e*393216|0)+-6881280>>16)+(b<<16>>16)|0;break}else{e=e+368|0;break}else e=((((e-(c&65535)|0)*393216|0)+196608|0)>>>16)+(b&65535)|0;while(0);return e&65535|0} -function rc(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;i=c[h+96>>2]|0;if(d>>>0<8){m=(c[h+100>>2]|0)+(d<<2)|0;l=c[m>>2]|0;a[g>>0]=b[f+(b[l>>1]<<1)>>1]<<4|d|b[f+(b[l+2>>1]<<1)>>1]<<5|b[f+(b[l+4>>1]<<1)>>1]<<6|b[f+(b[l+6>>1]<<1)>>1]<<7;l=i+(d<<1)|0;h=b[l>>1]|0;if((h+-7|0)>4){i=4;k=4;d=1;while(1){n=b[f+(b[(c[m>>2]|0)+(i<<1)>>1]<<1)>>1]|0;h=g+(d<<16>>16)|0;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+((k|1)<<16>>16<<1)>>1]<<1)>>1]<<1|n&65535;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+((k|2)<<16>>16<<1)>>1]<<1)>>1]<<2|n;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+((k|3)<<16>>16<<1)>>1]<<1)>>1]<<3|n;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+(k+4<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<4|n;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+(k+5<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<5|n;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+(k+6<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<6|n;a[h>>0]=n;j=k+8<<16>>16;d=d+1<<16>>16;a[h>>0]=e[f+(b[(c[m>>2]|0)+(k+7<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<7|n;i=j<<16>>16;h=b[l>>1]|0;if((i|0)>=(h+-7|0))break;else k=j}}else{j=4;d=1}l=h+4&7;if(!l)return;i=g+(d<<16>>16)|0;a[i>>0]=0;h=0;k=0;d=0;while(1){k=(e[f+(b[(c[m>>2]|0)+(j<<16>>16<<1)>>1]<<1)>>1]&255)<>0]=k;d=d+1<<16>>16;h=d<<16>>16;if((h|0)>=(l|0))break;else j=j+1<<16>>16}return}if((d|0)==15){a[g>>0]=15;return}a[g>>0]=b[f>>1]<<4|d|b[f+2>>1]<<5|b[f+4>>1]<<6|b[f+6>>1]<<7;h=i+(d<<1)|0;d=b[h>>1]|0;i=((d&65535)<<16)+262144>>16;m=i&-8;k=(m+524281|0)>>>3&65535;if(k<<16>>16>0){i=((i&-8)+524281|0)>>>3;l=((i<<3)+524280&524280)+12|0;j=1;d=f+8|0;while(1){a[g+(j<<16>>16)>>0]=e[d+2>>1]<<1|e[d>>1]|e[d+4>>1]<<2|e[d+6>>1]<<3|e[d+8>>1]<<4|e[d+10>>1]<<5|e[d+12>>1]<<6|e[d+14>>1]<<7;if(k<<16>>16>1){k=k+-1<<16>>16;j=j+1<<16>>16;d=d+16|0}else break}d=b[h>>1]|0;j=(i<<16)+65536>>16}else{l=4;j=1}d=(0-m|4)+(d&65535)<<16;k=d>>16;if(!k)return;j=g+j|0;a[j>>0]=0;if((d|0)>0){d=0;i=0;h=0}else return;do{i=i&255|b[f+(l+d<<1)>>1]<>0]=i;h=h+1<<16>>16;d=h<<16>>16}while((d|0)<(k|0));return}function sc(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=c[h+100>>2]|0;n=c[h+96>>2]|0;a[g>>0]=d&15;n=n+(d<<1)|0;i=b[n>>1]|0;if(d>>>0>=8){l=((i&65535)<<16)+-458752|0;if((l|0)>0){m=1;k=f;while(1){f=k+16|0;h=m+1<<16>>16;a[g+(m<<16>>16)>>0]=e[k+14>>1]|e[k+12>>1]<<1|((e[k+2>>1]<<6|e[k>>1]<<7|e[k+4>>1]<<5|e[k+6>>1]<<4)&240|e[k+8>>1]<<3|e[k+10>>1]<<2)&252;l=l+-524288&-65536;if((l|0)<=0)break;else{m=h;k=f}}i=b[n>>1]|0}else h=1;m=i&7;i=g+(h<<16>>16)|0;a[i>>0]=0;if(!m)return;else{j=0;k=0;l=0;h=f}while(1){k=k&255|b[h>>1]<<7-j;a[i>>0]=k;l=l+1<<16>>16;j=l<<16>>16;if((j|0)>=(m|0))break;else h=h+2|0}return}k=i<<16>>16;if(i<<16>>16>7){i=o+(d<<2)|0;h=0;m=0;j=1;while(1){p=e[f+(b[(c[i>>2]|0)+(h<<1)>>1]<<1)>>1]<<7;k=g+(j<<16>>16)|0;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|1)<<16>>16<<1)>>1]<<1)>>1]<<6|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|2)<<16>>16<<1)>>1]<<1)>>1]<<5|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|3)<<16>>16<<1)>>1]<<1)>>1]<<4|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|4)<<16>>16<<1)>>1]<<1)>>1]<<3|p&240;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|5)<<16>>16<<1)>>1]<<1)>>1]<<2|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|6)<<16>>16<<1)>>1]<<1)>>1]<<1|p;a[k>>0]=p;l=m+8<<16>>16;j=j+1<<16>>16;a[k>>0]=p&254|e[f+(b[(c[i>>2]|0)+((m|7)<<16>>16<<1)>>1]<<1)>>1];h=l<<16>>16;k=b[n>>1]|0;if((h|0)>=(k+-7|0))break;else m=l}}else{l=0;j=1}n=k&7;m=g+(j<<16>>16)|0;a[m>>0]=0;if(!n)return;j=o+(d<<2)|0;i=0;h=0;k=0;while(1){h=(e[f+(b[(c[j>>2]|0)+(l<<16>>16<<1)>>1]<<1)>>1]&255)<<7-i|h&255;a[m>>0]=h;k=k+1<<16>>16;i=k<<16>>16;if((i|0)>=(n|0))break;else l=l+1<<16>>16}return}function tc(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=c[h+100>>2]|0;n=c[h+96>>2]|0;a[g>>0]=d<<3;n=n+(d<<1)|0;i=b[n>>1]|0;if(d>>>0>=8){l=((i&65535)<<16)+-458752|0;if((l|0)>0){m=1;k=f;while(1){f=k+16|0;h=m+1<<16>>16;a[g+(m<<16>>16)>>0]=e[k+14>>1]|e[k+12>>1]<<1|((e[k+2>>1]<<6|e[k>>1]<<7|e[k+4>>1]<<5|e[k+6>>1]<<4)&240|e[k+8>>1]<<3|e[k+10>>1]<<2)&252;l=l+-524288&-65536;if((l|0)<=0)break;else{m=h;k=f}}i=b[n>>1]|0}else h=1;m=i&7;i=g+(h<<16>>16)|0;a[i>>0]=0;if(!m)return;else{j=0;k=0;l=0;h=f}while(1){k=k&255|b[h>>1]<<7-j;a[i>>0]=k;l=l+1<<16>>16;j=l<<16>>16;if((j|0)>=(m|0))break;else h=h+2|0}return}k=i<<16>>16;if(i<<16>>16>7){i=o+(d<<2)|0;h=0;m=0;j=1;while(1){p=e[f+(b[(c[i>>2]|0)+(h<<1)>>1]<<1)>>1]<<7;k=g+(j<<16>>16)|0;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|1)<<16>>16<<1)>>1]<<1)>>1]<<6|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|2)<<16>>16<<1)>>1]<<1)>>1]<<5|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|3)<<16>>16<<1)>>1]<<1)>>1]<<4|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|4)<<16>>16<<1)>>1]<<1)>>1]<<3|p&240;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|5)<<16>>16<<1)>>1]<<1)>>1]<<2|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|6)<<16>>16<<1)>>1]<<1)>>1]<<1|p;a[k>>0]=p;l=m+8<<16>>16;j=j+1<<16>>16;a[k>>0]=p&254|e[f+(b[(c[i>>2]|0)+((m|7)<<16>>16<<1)>>1]<<1)>>1];h=l<<16>>16;k=b[n>>1]|0;if((h|0)>=(k+-7|0))break;else m=l}}else{l=0;j=1}n=k&7;m=g+(j<<16>>16)|0;a[m>>0]=0;if(!n)return;j=o+(d<<2)|0;i=0;h=0;k=0;while(1){h=(e[f+(b[(c[j>>2]|0)+(l<<16>>16<<1)>>1]<<1)>>1]&255)<<7-i|h&255;a[m>>0]=h;k=k+1<<16>>16;i=k<<16>>16;if((i|0)>=(n|0))break;else l=l+1<<16>>16}return}function uc(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(16)|0;if(!d){a=-1;return a|0};b[d>>1]=0;b[d+2>>1]=0;b[d+4>>1]=0;b[d+6>>1]=0;b[d+8>>1]=0;b[d+10>>1]=0;b[d+12>>1]=0;b[d+14>>1]=0;c[a>>2]=d;a=0;return a|0}function vc(a){a=a|0;if(!a){a=-1;return a|0};b[a>>1]=0;b[a+2>>1]=0;b[a+4>>1]=0;b[a+6>>1]=0;b[a+8>>1]=0;b[a+10>>1]=0;b[a+12>>1]=0;b[a+14>>1]=0;a=0;return a|0}function wc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function xc(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;j=d<<16>>16<2722?0:d<<16>>16<5444?1:2;i=Ee(e,1,g)|0;l=a+4|0;if(!(e<<16>>16>200?i<<16>>16>(b[l>>1]|0):0)){i=b[a>>1]|0;if(i<<16>>16){h=i+-1<<16>>16;b[a>>1]=h;h=h<<16>>16!=0;k=5}}else{b[a>>1]=8;h=1;k=5}if((k|0)==5)if((j&65535)<2&h)j=(j&65535)+1&65535;k=a+6|0;b[k>>1]=d;h=Zd(k,5)|0;if(!(j<<16>>16!=0|h<<16>>16>5443))if(h<<16>>16<0)h=16384;else{h=h<<16>>16;h=(((h<<18>>18|0)==(h|0)?h<<2:h>>>15^32767)<<16>>16)*24660>>15;if((h|0)>32767){c[g>>2]=1;h=32767}h=16384-h&65535}else h=0;i=a+2|0;if(!(b[i>>1]|0))h=De(h,1,g)|0;b[f>>1]=h;b[i>>1]=h;b[l>>1]=e;f=a+12|0;b[a+14>>1]=b[f>>1]|0;e=a+10|0;b[f>>1]=b[e>>1]|0;a=a+8|0;b[e>>1]=b[a>>1]|0;b[a>>1]=b[k>>1]|0;return}function yc(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(68)|0;f=d;if(!d){a=-1;return a|0}c[d+28>>2]=0;g=d+64|0;c[g>>2]=0;h=d+32|0;if(((Ud(h)|0)<<16>>16==0?(i=d+48|0,(Ud(i)|0)<<16>>16==0):0)?(uc(g)|0)<<16>>16==0:0){e=d+32|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(e|0));Ud(h)|0;Ud(i)|0;vc(c[g>>2]|0)|0;c[a>>2]=f;a=0;return a|0}wc(g);Ke(d);a=-1;return a|0}function zc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;wc(b+64|0);Ke(c[a>>2]|0);c[a>>2]=0;return}function Ac(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}d=a+32|0;e=a;f=e+32|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));Ud(d)|0;Ud(a+48|0)|0;vc(c[a+64>>2]|0)|0;f=0;return f|0}function Bc(a,d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;var x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=i;i=i+48|0;y=H+34|0;A=H+32|0;C=H+30|0;B=H+28|0;z=H+18|0;x=H+8|0;D=H+6|0;E=H+4|0;F=H+2|0;G=H;if(d){o=a+32|0;Vd(o,d,h,y,A,D,E,w);do if((d|0)!=7){Vb(d,j,k,l,m,n,z,x,G,F,w);if((d|0)==5){ld(c[a+64>>2]|0,f,g,h,z,x,b[D>>1]|0,b[E>>1]|0,b[y>>1]|0,b[A>>1]|0,40,b[G>>1]|0,b[F>>1]|0,p,s,t,C,B,u,v,w);break}else{a=od(d,b[y>>1]|0,b[A>>1]|0,z,x,p,s,t,C,B,v,w)|0;j=c[u>>2]|0;c[u>>2]=j+2;b[j>>1]=a;break}}else{b[t>>1]=Cc(k,m,w)|0;a=md(7,b[y>>1]|0,b[A>>1]|0,t,C,B,c[v+68>>2]|0,w)|0;j=c[u>>2]|0;c[u>>2]=j+2;b[j>>1]=a}while(0);Wd(o,b[C>>1]|0,b[B>>1]|0);i=H;return}if(!(o<<16>>16)){Vd(a+48|0,0,h,y,A,D,E,w);Vb(0,j,k,l,m,n,z,x,G,F,w);Wb(j,D,E,w);j=jd(a+32|0,b[a>>1]|0,b[a+2>>1]|0,a+8|0,a+18|0,b[a+4>>1]|0,b[a+6>>1]|0,h,b[y>>1]|0,b[A>>1]|0,x,z,b[D>>1]|0,b[E>>1]|0,p,q,r,s,t,w)|0;b[c[a+28>>2]>>1]=j;i=H;return}o=c[u>>2]|0;c[u>>2]=o+2;c[a+28>>2]=o;o=a+48|0;f=a+32|0;q=f;q=e[q>>1]|e[q+2>>1]<<16;f=f+4|0;f=e[f>>1]|e[f+2>>1]<<16;u=o;r=u;b[r>>1]=q;b[r+2>>1]=q>>>16;u=u+4|0;b[u>>1]=f;b[u+2>>1]=f>>>16;u=a+40|0;f=u;f=e[f>>1]|e[f+2>>1]<<16;u=u+4|0;u=e[u>>1]|e[u+2>>1]<<16;r=a+56|0;q=r;b[q>>1]=f;b[q+2>>1]=f>>>16;r=r+4|0;b[r>>1]=u;b[r+2>>1]=u>>>16;r=a+2|0;Vd(o,0,h,a,r,D,E,w);Vb(0,j,k,l,m,n,a+18|0,a+8|0,G,F,w);l=(e[F>>1]|0)+1|0;u=b[G>>1]|0;q=l<<16>>16;if((l&65535)<<16>>16<0){v=0-q<<16;if((v|0)<983040)v=u<<16>>16>>(v>>16)&65535;else v=0}else{u=u<<16>>16;v=u<>16>>q|0)==(u|0))v=v&65535;else v=(u>>>15^32767)&65535}b[t>>1]=v;Wb(j,a+4|0,a+6|0,w);id(o,b[a>>1]|0,b[r>>1]|0,b[F>>1]|0,b[G>>1]|0,w);i=H;return}function Cc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=10;d=a;e=c;a=0;while(1){a=(Z(b[e>>1]>>1,b[d>>1]|0)|0)+a|0;a=a+(Z(b[e+2>>1]>>1,b[d+2>>1]|0)|0)|0;a=a+(Z(b[e+4>>1]>>1,b[d+4>>1]|0)|0)|0;a=a+(Z(b[e+6>>1]>>1,b[d+6>>1]|0)|0)|0;f=f+-1<<16>>16;if(!(f<<16>>16))break;else{d=d+8|0;e=e+8|0}}d=a<<1;f=pe(d|1)|0;g=f<<16>>16;d=(f<<16>>16<17?d>>17-g:d<>16<1){c=0;return c|0}else{f=20;e=c;a=0}while(1){c=b[e>>1]>>1;c=((Z(c,c)|0)>>>2)+a|0;a=b[e+2>>1]>>1;a=c+((Z(a,a)|0)>>>2)|0;f=f+-1<<16>>16;if(!(f<<16>>16))break;else e=e+4|0}a=a<<3;f=pe(a)|0;c=f<<16>>16;d=Td(d,(f<<16>>16<16?a>>16-c:a<>16;if((c|0)>65536)a=d<<16>>16>>a+-1;else a=d<<16>>16<<1-a;c=a&65535;return c|0}function Dc(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c[h>>2]=0;m=g<<16>>16;k=m>>>2&65535;o=k<<16>>16==0;if(o)j=0;else{l=k;i=e;j=0;while(1){p=b[i>>1]|0;p=(Z(p,p)|0)+j|0;j=b[i+2>>1]|0;j=p+(Z(j,j)|0)|0;p=b[i+4>>1]|0;p=j+(Z(p,p)|0)|0;j=b[i+6>>1]|0;j=p+(Z(j,j)|0)|0;l=l+-1<<16>>16;if(!(l<<16>>16))break;else i=i+8|0}}if(!((j>>>31^1)&(j|0)<1073741824)){j=m>>>1&65535;if(!(j<<16>>16))j=1;else{i=j;l=e;j=0;while(1){p=b[l>>1]>>2;p=(Z(p,p)|0)+j|0;j=b[l+2>>1]>>2;j=p+(Z(j,j)|0)|0;i=i+-1<<16>>16;if(!(i<<16>>16))break;else l=l+4|0}j=j<<1|1}p=(pe(j)|0)<<16>>16;n=p+65532&65535;p=Ce(j<>16),h)|0}c[h>>2]=0;do if(!(g<<16>>16)){j=1;q=14}else{m=g;l=d;j=e;g=0;while(1){r=Z(b[j>>1]|0,b[l>>1]|0)|0;i=r+g|0;if((r^g|0)>0&(i^g|0)<0)break;m=m+-1<<16>>16;if(!(m<<16>>16)){q=13;break}else{l=l+2|0;j=j+2|0;g=i}}if((q|0)==13){j=i<<1|1;q=14;break}c[h>>2]=1;if(o)j=1;else{j=d;i=0;while(1){i=(Z(b[e>>1]>>2,b[j>>1]|0)|0)+i|0;i=i+(Z(b[e+2>>1]>>2,b[j+2>>1]|0)|0)|0;i=i+(Z(b[e+4>>1]>>2,b[j+4>>1]|0)|0)|0;i=i+(Z(b[e+6>>1]>>2,b[j+6>>1]|0)|0)|0;k=k+-1<<16>>16;if(!(k<<16>>16))break;else{j=j+8|0;e=e+8|0}}j=i<<1|1}e=(pe(j)|0)<<16>>16;i=e+65532&65535;e=Ce(j<>16),h)|0}b[f>>1]=p;j=n<<16>>16;b[f+2>>1]=15-j;b[f+4>>1]=e;i=i<<16>>16;b[f+6>>1]=15-i;if(e<<16>>16<4){r=0;return r|0}i=De(Td(e<<16>>16>>>1&65535,p)|0,i-j&65535,h)|0;i=i<<16>>16>19661?19661:i;if((a|0)!=7){r=i;return r|0}r=i&65532;return r|0}function Ec(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0;k=(f&65535)+65535&65535;if(k<<16>>16>g<<16>>16){n=f+-1<<16>>16<<16>>16;f=-2147483648;while(1){l=c[a+(0-n<<2)>>2]|0;j=l<<1;l=(j>>1|0)==(l|0)?j:l>>31^2147483647;j=c[a+(~n<<2)>>2]|0;m=l-j|0;if(((m^l)&(l^j)|0)<0){c[i>>2]=1;m=(l>>>31)+2147483647|0}l=c[a+(1-n<<2)>>2]|0;j=m-l|0;if(((j^m)&(l^m)|0)<0){c[i>>2]=1;j=(m>>>31)+2147483647|0}m=Gc(j)|0;f=(m|0)<(f|0)?f:m;k=k+-1<<16>>16;if(k<<16>>16<=g<<16>>16){g=f;break}else n=n+-1|0}}else g=-2147483648;a=e<<16>>16>0;if(a){f=0;j=d;k=0;while(1){m=b[j>>1]|0;m=Z(m,m)|0;if((m|0)!=1073741824){l=(m<<1)+k|0;if((m^k|0)>0&(l^k|0)<0){c[i>>2]=1;k=(k>>>31)+2147483647|0}else k=l}else{c[i>>2]=1;k=2147483647}f=f+1<<16>>16;if(f<<16>>16>=e<<16>>16)break;else j=j+2|0}if(a){a=0;n=d;f=d+-2|0;j=0;while(1){m=Z(b[f>>1]|0,b[n>>1]|0)|0;if((m|0)!=1073741824){l=(m<<1)+j|0;if((m^j|0)>0&(l^j|0)<0){c[i>>2]=1;j=(j>>>31)+2147483647|0}else j=l}else{c[i>>2]=1;j=2147483647}a=a+1<<16>>16;if(a<<16>>16>=e<<16>>16)break;else{n=n+2|0;f=f+2|0}}}else j=0}else{k=0;j=0}f=k<<1;f=(f>>1|0)==(k|0)?f:k>>31^2147483647;e=j<<1;e=(e>>1|0)==(j|0)?e:j>>31^2147483647;k=f-e|0;if(((k^f)&(e^f)|0)<0){c[i>>2]=1;k=(f>>>31)+2147483647|0}a=Gc(k)|0;n=((pe(g)|0)&65535)+65535|0;k=n<<16>>16;if((n&65535)<<16>>16>0){f=g<>k|0)!=(g|0))f=g>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)f=g>>(k>>16);else f=0}m=pe(a)|0;j=m<<16>>16;if(m<<16>>16>0){k=a<>j|0)==(a|0))o=33;else{k=a>>31^2147483647;o=33}}else{k=0-j<<16;if((k|0)<2031616){k=a>>(k>>16);o=33}else l=0}if((o|0)==33)if(k>>>0>65535)l=Td(f>>>16&65535,k>>>16&65535)|0;else l=0;k=m&65535;o=(n&65535)-k|0;f=o&65535;if(!(o&32768)){i=De(l,f,i)|0;b[h>>1]=i;return 0}if(f<<16>>16!=-32768){i=k-n|0;j=i<<16>>16;if((i&65535)<<16>>16<0){j=0-j<<16;if((j|0)>=983040){i=0;b[h>>1]=i;return 0}i=l<<16>>16>>(j>>16)&65535;b[h>>1]=i;return 0}}else j=32767;f=l<<16>>16;k=f<>16>>j|0)==(f|0)){i=k&65535;b[h>>1]=i;return 0}i=(f>>>15^32767)&65535;b[h>>1]=i;return 0}function Fc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;if(d<<16>>16)c=c<<16>>16<<1&65535;if(c<<16>>16<0){a=a+-2|0;c=(c&65535)+6&65535}d=c<<16>>16;e=6-d<<16>>16;c=(Z(b[3468+(d<<1)>>1]|0,b[a>>1]|0)|0)+16384|0;c=c+(Z(b[3468+(e<<1)>>1]|0,b[a+2>>1]|0)|0)|0;c=c+(Z(b[3468+(d+6<<1)>>1]|0,b[a+-2>>1]|0)|0)|0;c=c+(Z(b[3468+(e+6<<1)>>1]|0,b[a+4>>1]|0)|0)|0;c=(Z(b[3468+(d+12<<1)>>1]|0,b[a+-4>>1]|0)|0)+c|0;c=c+(Z(b[3468+(e+12<<1)>>1]|0,b[a+6>>1]|0)|0)|0;d=c+(Z(b[3468+(d+18<<1)>>1]|0,b[a+-6>>1]|0)|0)|0;return (d+(Z(b[3468+(e+18<<1)>>1]|0,b[a+8>>1]|0)|0)|0)>>>15&65535|0}function Gc(a){a=a|0;a=a-(a>>>31)|0;return a>>31^a|0}function Hc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if(!(a<<16>>16))return;else{f=3518;g=3538;e=d}while(1){e=e+2|0;c=c+2|0;j=b[c>>1]|0;i=b[f>>1]|0;d=Z(i,j)|0;d=(d|0)==1073741824?2147483647:d<<1;j=(Z(b[g>>1]|0,j)|0)>>15;h=(j<<1)+d|0;h=(d^j|0)>0&(h^d|0)<0?(d>>>31)+2147483647|0:h;i=(Z(i,b[e>>1]|0)|0)>>15;d=h+(i<<1)|0;d=(h^i|0)>0&(d^h|0)<0?(h>>>31)+2147483647|0:d;b[c>>1]=d>>>16;b[e>>1]=(d>>>1)-(d>>16<<15);a=a+-1<<16>>16;if(!(a<<16>>16))break;else{f=f+2|0;g=g+2|0}}return}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a&65535;f=e<<16;b=b<<16>>16;a=(b<<1)+f|0;if(!((b^f|0)>0&(a^f|0)<0)){f=a;return f|0}c[d>>2]=1;f=(e>>>15)+2147483647|0;return f|0}function Jc(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}c[a>>2]=0;d=Je(22)|0;if(!d){f=-1;return f|0}b[d>>1]=4096;e=d+2|0;f=e+20|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));c[a>>2]=d;f=0;return f|0}function Kc(a){a=a|0;var c=0;if(!a){c=-1;return c|0}b[a>>1]=4096;a=a+2|0;c=a+20|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function Lc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Mc(a,c,d,f,g,h){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;var 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,G=0,H=0,I=0,J=0,K=0,L=0,M=0;K=i;i=i+96|0;I=K+66|0;J=K+44|0;H=K+22|0;k=K;D=c+2|0;G=d+2|0;F=(b[G>>1]<<1)+(e[D>>1]<<16)|0;j=Gc(F)|0;j=ic(j,b[c>>1]|0,b[d>>1]|0,h)|0;if((F|0)>0)j=Oc(j)|0;B=j>>16;b[g>>1]=Ce(j,h)|0;v=j>>20;E=I+2|0;b[E>>1]=v;F=J+2|0;b[F>>1]=(j>>>5)-(v<<15);v=Z(B,B)|0;v=(v|0)==1073741824?2147483647:v<<1;B=(Z((j>>>1)-(B<<15)<<16>>16,B)|0)>>15;C=B<<1;A=C+v|0;A=(B^v|0)>0&(A^v|0)<0?(v>>>31)+2147483647|0:A;C=A+C|0;C=2147483647-(Gc((A^B|0)>0&(C^A|0)<0?(A>>>31)+2147483647|0:C)|0)|0;A=C>>16;B=b[c>>1]|0;v=Z(A,B)|0;v=(v|0)==1073741824?2147483647:v<<1;B=(Z((C>>>1)-(A<<15)<<16>>16,B)|0)>>15;C=(B<<1)+v|0;C=(B^v|0)>0&(C^v|0)<0?(v>>>31)+2147483647|0:C;A=(Z(b[d>>1]|0,A)|0)>>15;v=C+(A<<1)|0;v=(C^A|0)>0&(v^C|0)<0?(C>>>31)+2147483647|0:v;C=pe(v)|0;v=v<<(C<<16>>16);A=H+2|0;B=k+2|0;l=v;v=(v>>>1)-(v>>16<<15)|0;w=k+4|0;x=H+4|0;y=2;z=2;while(1){u=l>>>16;j=u&65535;r=v&65535;s=z+-1|0;n=I+(s<<1)|0;t=J+(s<<1)|0;q=1;p=n;o=t;m=D;k=G;l=0;while(1){L=b[m>>1]|0;M=((Z(b[o>>1]|0,L)|0)>>15)+l|0;l=b[p>>1]|0;l=M+(Z(l,L)|0)+((Z(l,b[k>>1]|0)|0)>>15)|0;q=q+1<<16>>16;if((q<<16>>16|0)>=(z|0))break;else{p=p+-2|0;o=o+-2|0;m=m+2|0;k=k+2|0}}M=(e[c+(z<<1)>>1]<<16)+(l<<5)+(b[d+(z<<1)>>1]<<1)|0;l=ic(Gc(M)|0,j,r,h)|0;if((M|0)>0)l=Oc(l)|0;k=C<<16>>16;if(C<<16>>16>0){j=l<>k|0)!=(l|0))j=l>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)j=l>>(k>>16);else j=0}q=j>>16;if((z|0)<5)b[g+(s<<1)>>1]=(j+32768|0)>>>16;M=(j>>>16)-(j>>>31)|0;if(((M<<16>>31^M)&65535)<<16>>16>32750){j=16;break}o=(j>>>1)-(q<<15)<<16>>16;p=1;l=t;k=A;m=B;while(1){L=(Z(b[l>>1]|0,q)|0)>>15;t=b[n>>1]|0;M=(Z(t,o)|0)>>15;t=Z(t,q)|0;M=t+L+(b[J+(p<<1)>>1]|0)+(b[I+(p<<1)>>1]<<15)+M|0;b[k>>1]=M>>>15;b[m>>1]=M&32767;p=p+1|0;if((p&65535)<<16>>16==y<<16>>16)break;else{n=n+-2|0;l=l+-2|0;k=k+2|0;m=m+2|0}}b[x>>1]=j>>20;b[w>>1]=(j>>>5)-(b[H+(z<<1)>>1]<<15);L=Z(q,q)|0;L=(L|0)==1073741824?2147483647:L<<1;j=(Z(o,q)|0)>>15;M=j<<1;k=M+L|0;k=(j^L|0)>0&(k^L|0)<0?(L>>>31)+2147483647|0:k;M=k+M|0;M=2147483647-(Gc((k^j|0)>0&(M^k|0)<0?(k>>>31)+2147483647|0:M)|0)|0;k=M>>16;j=u<<16>>16;j=((Z(k,v<<16>>16)|0)>>15)+(Z(k,j)|0)+((Z((M>>>1)-(k<<15)<<16>>16,j)|0)>>15)<<1;k=(pe(j)|0)<<16>>16;j=j<=11){j=20;break}else{C=k+(C&65535)&65535;l=j;v=(j>>1)-(j>>16<<15)|0;w=w+2|0;x=x+2|0;y=y+1<<16>>16}}if((j|0)==16){j=f+22|0;do{b[f>>1]=b[a>>1]|0;f=f+2|0;a=a+2|0}while((f|0)<(j|0));M=g;L=M;b[L>>1]=0;b[L+2>>1]=0>>>16;M=M+4|0;b[M>>1]=0;b[M+2>>1]=0>>>16;i=K;return 0}else if((j|0)==20){b[f>>1]=4096;M=((b[F>>1]|0)+8192+(b[E>>1]<<15)|0)>>>14&65535;b[f+2>>1]=M;b[a+2>>1]=M;M=((b[J+4>>1]|0)+8192+(b[I+4>>1]<<15)|0)>>>14&65535;b[f+4>>1]=M;b[a+4>>1]=M;M=((b[J+6>>1]|0)+8192+(b[I+6>>1]<<15)|0)>>>14&65535;b[f+6>>1]=M;b[a+6>>1]=M;M=((b[J+8>>1]|0)+8192+(b[I+8>>1]<<15)|0)>>>14&65535;b[f+8>>1]=M;b[a+8>>1]=M;M=((b[J+10>>1]|0)+8192+(b[I+10>>1]<<15)|0)>>>14&65535;b[f+10>>1]=M;b[a+10>>1]=M;M=((b[J+12>>1]|0)+8192+(b[I+12>>1]<<15)|0)>>>14&65535;b[f+12>>1]=M;b[a+12>>1]=M;M=((b[J+14>>1]|0)+8192+(b[I+14>>1]<<15)|0)>>>14&65535;b[f+14>>1]=M;b[a+14>>1]=M;M=((b[J+16>>1]|0)+8192+(b[I+16>>1]<<15)|0)>>>14&65535;b[f+16>>1]=M;b[a+16>>1]=M;M=((b[J+18>>1]|0)+8192+(b[I+18>>1]<<15)|0)>>>14&65535;b[f+18>>1]=M;b[a+18>>1]=M;M=((b[J+20>>1]|0)+8192+(b[I+20>>1]<<15)|0)>>>14&65535;b[f+20>>1]=M;b[a+20>>1]=M;i=K;return 0}return 0}function Nc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;e=a>>16;b[c>>1]=e;b[d>>1]=(a>>>1)-(e<<15);return}function Oc(a){a=a|0;return ((a|0)==-2147483648?2147483647:0-a|0)|0}function Pc(a){a=a|0;var b=0;if(!a){a=-1;return a|0}c[a>>2]=0;b=Je(4)|0;if(!b){a=-1;return a|0}c[b>>2]=0;if(!((Jc(b)|0)<<16>>16)){Kc(c[b>>2]|0)|0;c[a>>2]=b;a=0;return a|0}else{Lc(b);Ke(b);a=-1;return a|0}return 0}function Qc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Lc(b);Ke(c[a>>2]|0);c[a>>2]=0;return}function Rc(a){a=a|0;if(!a){a=-1;return a|0}Kc(c[a>>2]|0)|0;a=0;return a|0}function Sc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;m=i;i=i+64|0;l=m+48|0;k=m+22|0;j=m;if((b|0)==7){d=c[g+116>>2]|0;Kb(e,10,j,k,c[g+112>>2]|0,h)|0;Hc(10,j,k,h);Mc(c[a>>2]|0,j,k,f+22|0,l,h)|0;Kb(e,10,j,k,d,h)|0;Hc(10,j,k,h);Mc(c[a>>2]|0,j,k,f+66|0,l,h)|0;i=m;return}else{Kb(d,10,j,k,c[g+108>>2]|0,h)|0;Hc(10,j,k,h);Mc(c[a>>2]|0,j,k,f+66|0,l,h)|0;i=m;return}}function Tc(a,c,d,e,f,g,h,i,j,k){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;if((d|0)==6){b[f>>1]=bd(a,c,e,20,143,80,g,h,i,j,k)|0;return}b[h>>1]=0;b[h+2>>1]=0;if(d>>>0<2){b[f>>1]=Yc(c,d,e,20,143,160,i,j,k)|0;return}if(d>>>0<6){b[f>>1]=Yc(c,d,e,20,143,80,i,j,k)|0;return}else{b[f>>1]=Yc(c,d,e,18,143,80,i,j,k)|0;return}}function Uc(a){a=a|0;var d=0;if((a|0)!=0?(c[a>>2]=0,d=Je(2)|0,(d|0)!=0):0){b[d>>1]=0;c[a>>2]=d;d=0}else d=-1;return d|0}function Vc(a){a=a|0;if(!a)a=-1;else{b[a>>1]=0;a=0}return a|0}function Wc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Xc(a,c,d,f,g,h,j,k,l,m,n,o){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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,R=0,S=0,T=0,U=0;U=i;i=i+240|0;u=U+160|0;v=U+80|0;O=U;N=b[3558+(c*18|0)>>1]|0;T=b[3558+(c*18|0)+2>>1]|0;p=b[3558+(c*18|0)+4>>1]|0;P=b[3558+(c*18|0)+6>>1]|0;s=b[3558+(c*18|0)+12>>1]|0;r=b[3558+(c*18|0)+14>>1]|0;q=b[3558+(c*18|0)+16>>1]|0;a:do switch(k<<16>>16){case 0:case 80:if(c>>>0<2&k<<16>>16==80){Q=(e[a>>1]|0)-(s&65535)|0;Q=(Q<<16>>16|0)<(q<<16>>16|0)?q:Q&65535;M=r<<16>>16;R=(Q&65535)+M&65535;S=R<<16>>16>143;Q=S?143-M&65535:Q;R=S?143:R;S=1;break a}else{Q=(e[d+((k<<16>>16!=0&1)<<1)>>1]|0)-(e[3558+(c*18|0)+8>>1]|0)|0;Q=(Q<<16>>16|0)<(q<<16>>16|0)?q:Q&65535;M=b[3558+(c*18|0)+10>>1]|0;R=(Q&65535)+M&65535;S=R<<16>>16>143;Q=S?143-M&65535:Q;R=S?143:R;S=0;break a}default:{Q=(e[a>>1]|0)-(s&65535)|0;Q=(Q<<16>>16|0)<(q<<16>>16|0)?q:Q&65535;M=r<<16>>16;R=(Q&65535)+M&65535;S=R<<16>>16>143;Q=S?143-M&65535:Q;R=S?143:R;S=1}}while(0);L=Q&65535;k=L+65532|0;t=k&65535;K=(R&65535)+4&65535;M=k<<16>>16;k=0-(k&65535)|0;s=k&65535;ec(f+(k<<16>>16<<1)|0,h,u,j);k=j<<16>>16;B=k>>>1&65535;w=B<<16>>16==0;if(w)j=1;else{j=B;q=u;d=v;r=0;while(1){J=b[q>>1]|0;b[d>>1]=J>>>2;J=(Z(J,J)|0)+r|0;r=b[q+2>>1]|0;b[d+2>>1]=r>>>2;r=J+(Z(r,r)|0)|0;j=j+-1<<16>>16;if(!(j<<16>>16))break;else{q=q+4|0;d=d+4|0}}j=(r|0)<33554433}J=j?0:2;A=j?u:v;x=j?u:v;b:do if(t<<16>>16<=K<<16>>16){y=k+-1|0;G=A+(y<<1)|0;H=h+(y<<1)|0;I=A+(k+-2<<1)|0;D=y>>>1;E=D&65535;z=E<<16>>16==0;F=j?12:14;D=(D<<1)+131070&131070;d=k+-3-D|0;C=A+(d<<1)|0;D=A+(k+-4-D<<1)|0;h=h+(d<<1)|0;if(!w){w=M;while(1){v=B;u=x;q=g;r=0;j=0;while(1){v=v+-1<<16>>16;k=b[u>>1]|0;r=(Z(k,b[q>>1]|0)|0)+r|0;k=(Z(k,k)|0)+j|0;j=b[u+2>>1]|0;r=r+(Z(j,b[q+2>>1]|0)|0)|0;j=k+(Z(j,j)|0)|0;if(!(v<<16>>16))break;else{u=u+4|0;q=q+4|0}}u=ce(j<<1,o)|0;j=u>>16;q=r<<1>>16;v=Z(j,q)|0;v=(v|0)==1073741824?2147483647:v<<1;q=(Z((u>>>1)-(j<<15)<<16>>16,q)|0)>>15;u=(q<<1)+v|0;u=(q^v|0)>0&(u^v|0)<0?(v>>>31)+2147483647|0:u;j=(Z(j,r&32767)|0)>>15;v=u+(j<<1)|0;b[O+(w-M<<1)>>1]=(u^j|0)>0&(v^u|0)<0?(u>>>31)+65535|0:v;if(t<<16>>16!=K<<16>>16){s=s+-1<<16>>16;v=b[f+(s<<16>>16<<1)>>1]|0;if(z){u=y;j=I;r=H;q=G}else{u=E;j=I;r=H;q=G;while(1){w=(Z(b[r>>1]|0,v)|0)>>F;b[q>>1]=w+(e[j>>1]|0);w=(Z(b[r+-2>>1]|0,v)|0)>>F;b[q+-2>>1]=w+(e[j+-2>>1]|0);u=u+-1<<16>>16;if(!(u<<16>>16)){u=d;j=D;r=h;q=C;break}else{j=j+-4|0;r=r+-4|0;q=q+-4|0}}}w=(Z(b[r>>1]|0,v)|0)>>F;b[q>>1]=w+(e[j>>1]|0);b[A+(u+-1<<1)>>1]=v>>J}t=t+1<<16>>16;if(t<<16>>16>K<<16>>16)break b;else w=t<<16>>16}}if(z){j=A+(k+-2<<1)|0;r=M;while(1){ce(0,o)|0;b[O+(r-M<<1)>>1]=0;if(t<<16>>16!=K<<16>>16){s=s+-1<<16>>16;g=b[f+(s<<16>>16<<1)>>1]|0;E=(Z(b[H>>1]|0,g)|0)>>F;b[G>>1]=E+(e[I>>1]|0);b[j>>1]=g>>J}t=t+1<<16>>16;if(t<<16>>16>K<<16>>16)break b;else r=t<<16>>16}}u=A+(d+-1<<1)|0;j=M;while(1){ce(0,o)|0;b[O+(j-M<<1)>>1]=0;if(t<<16>>16!=K<<16>>16){s=s+-1<<16>>16;j=b[f+(s<<16>>16<<1)>>1]|0;r=E;q=I;d=H;k=G;while(1){g=(Z(b[d>>1]|0,j)|0)>>F;b[k>>1]=g+(e[q>>1]|0);g=(Z(b[d+-2>>1]|0,j)|0)>>F;b[k+-2>>1]=g+(e[q+-2>>1]|0);r=r+-1<<16>>16;if(!(r<<16>>16))break;else{q=q+-4|0;d=d+-4|0;k=k+-4|0}}g=(Z(b[h>>1]|0,j)|0)>>F;b[C>>1]=g+(e[D>>1]|0);b[u>>1]=j>>J}t=t+1<<16>>16;if(t<<16>>16>K<<16>>16)break;else j=t<<16>>16}}while(0);t=Q<<16>>16;d=L+1&65535;if(d<<16>>16>R<<16>>16)h=Q;else{s=Q;k=b[O+(t-M<<1)>>1]|0;while(1){r=b[O+((d<<16>>16)-M<<1)>>1]|0;q=r<<16>>16>16;s=q?s:d;d=d+1<<16>>16;if(d<<16>>16>R<<16>>16){h=s;break}else k=q?k:r}}c:do if(!(S<<16>>16==0?h<<16>>16>N<<16>>16:0)){if(!(c>>>0<4&S<<16>>16!=0)){s=O+((h<<16>>16)-M<<1)|0;r=Fc(s,p,T,o)|0;d=(p&65535)+1&65535;if(d<<16>>16<=P<<16>>16)while(1){q=Fc(s,d,T,o)|0;k=q<<16>>16>r<<16>>16;p=k?d:p;d=d+1<<16>>16;if(d<<16>>16>P<<16>>16)break;else r=k?q:r}if((c+-7|0)>>>0<2){P=p<<16>>16==-3;d=(P<<31>>31)+h<<16>>16;p=P?3:p;break}switch(p<<16>>16){case -2:{d=h+-1<<16>>16;p=1;break c}case 2:{d=h+1<<16>>16;p=-1;break c}default:{d=h;break c}}}N=b[a>>1]|0;N=((N<<16>>16)-t|0)>5?t+5&65535:N;k=R<<16>>16;N=(k-(N<<16>>16)|0)>4?k+65532&65535:N;k=h<<16>>16;d=N<<16>>16;if((k|0)==(d+-1|0)?1:h<<16>>16==N<<16>>16){s=O+(k-M<<1)|0;k=Fc(s,p,T,o)|0;d=(p&65535)+1&65535;if(d<<16>>16<=P<<16>>16)while(1){r=Fc(s,d,T,o)|0;q=r<<16>>16>k<<16>>16;p=q?d:p;d=d+1<<16>>16;if(d<<16>>16>P<<16>>16)break;else k=q?r:k}if((c+-7|0)>>>0<2){P=p<<16>>16==-3;d=(P<<31>>31)+h<<16>>16;p=P?3:p;break}switch(p<<16>>16){case -2:{d=h+-1<<16>>16;p=1;break c}case 2:{d=h+1<<16>>16;p=-1;break c}default:{d=h;break c}}}if((k|0)==(d+-2|0)){d=O+(k-M<<1)|0;k=Fc(d,0,T,o)|0;if((c|0)!=8){p=0;s=1;while(1){r=Fc(d,s,T,o)|0;q=r<<16>>16>k<<16>>16;p=q?s:p;s=s+1<<16>>16;if(s<<16>>16>P<<16>>16)break;else k=q?r:k}if((c+-7|0)>>>0>=2)switch(p<<16>>16){case -2:{d=h+-1<<16>>16;p=1;break c}case 2:{d=h+1<<16>>16;p=-1;break c}default:{d=h;break c}}}else p=0;P=p<<16>>16==-3;d=(P<<31>>31)+h<<16>>16;p=P?3:p;break}if((k|0)==(d+1|0)){s=O+(k-M<<1)|0;d=Fc(s,p,T,o)|0;k=(p&65535)+1&65535;if(k<<16>>16<=0)while(1){q=Fc(s,k,T,o)|0;r=q<<16>>16>d<<16>>16;p=r?k:p;k=k+1<<16>>16;if(k<<16>>16>0)break;else d=r?q:d}if((c+-7|0)>>>0<2){P=p<<16>>16==-3;d=(P<<31>>31)+h<<16>>16;p=P?3:p;break}switch(p<<16>>16){case -2:{d=h+-1<<16>>16;p=1;break c}case 2:{d=h+1<<16>>16;p=-1;break c}default:{d=h;break c}}}else{d=h;p=0}}else{d=h;p=0}while(0);if((c+-7|0)>>>0>1){P=a;a=pc(d,p,b[a>>1]|0,Q,R,S,c>>>0<4&1,o)|0;b[n>>1]=a;b[P>>1]=d;b[m>>1]=T;b[l>>1]=p;i=U;return d|0}else{o=qc(d,p,Q,S,o)|0;b[n>>1]=o;b[a>>1]=d;b[m>>1]=T;b[l>>1]=p;i=U;return d|0}return 0}function Yc(a,d,e,f,g,h,j,k,l){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var 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;D=i;i=i+1200|0;B=D+1188|0;A=D+580|0;C=D+578|0;z=D+576|0;v=D;x=D+582|0;y=(k|0)!=0;do if(y)if(d>>>0<2){Ld(a,1,l);break}else{Ld(a,0,l);break}while(0);w=g<<16>>16;o=0-w|0;n=e+(o<<1)|0;o=o&65535;s=h<<16>>16;do if(o<<16>>16>16){r=o;q=n;o=0;while(1){t=b[q>>1]|0;o=(Z(t<<1,t)|0)+o|0;if((o|0)<0)break;r=r+1<<16>>16;if(r<<16>>16>=h<<16>>16){u=14;break}else q=q+2|0}if((u|0)==14){if((o|0)<1048576){u=15;break}Oe(x|0,n|0,s+w<<1|0)|0;t=0;break}m=s+w|0;p=m>>>1;r=p&65535;if(!(r<<16>>16))o=x;else{t=((p<<1)+131070&131070)+2|0;s=t-w|0;q=x;while(1){b[q>>1]=(b[n>>1]|0)>>>3;b[q+2>>1]=(b[n+2>>1]|0)>>>3;r=r+-1<<16>>16;if(!(r<<16>>16))break;else{n=n+4|0;q=q+4|0}}n=e+(s<<1)|0;o=x+(t<<1)|0}if(!(m&1))t=3;else{b[o>>1]=(b[n>>1]|0)>>>3;t=3}}else u=15;while(0);if((u|0)==15){t=s+w|0;o=t>>>1;p=o&65535;if(!(p<<16>>16))o=x;else{s=((o<<1)+131070&131070)+2|0;q=s-w|0;r=x;while(1){b[r>>1]=b[n>>1]<<3;b[r+2>>1]=b[n+2>>1]<<3;p=p+-1<<16>>16;if(!(p<<16>>16))break;else{n=n+4|0;r=r+4|0}}n=e+(q<<1)|0;o=x+(s<<1)|0}if(!(t&1))t=-3;else{b[o>>1]=b[n>>1]<<3;t=-3}}s=v+(w<<2)|0;q=x+(w<<1)|0;Tb(q,h,g,f,s);m=(d|0)==7&1;o=f<<16>>16;n=o<<2;if((n|0)!=(o<<18>>16|0)){c[l>>2]=1;n=f<<16>>16>0?32767:-32768}r=Zc(a,s,q,t,m,h,g,n&65535,B,k,l)|0;o=o<<1;p=Zc(a,s,q,t,m,h,n+65535&65535,o&65535,A,k,l)|0;o=Zc(a,s,q,t,m,h,o+65535&65535,f,C,k,l)|0;if(j<<16>>16==1&y){Ec(s,q,h,g,f,z,l)|0;Jd(a,b[z>>1]|0)}n=b[B>>1]|0;m=b[A>>1]|0;if(((n<<16>>16)*55706>>16|0)>=(m<<16>>16|0)){A=n;B=r;A=A<<16>>16;A=A*55706|0;A=A>>16;C=b[C>>1]|0;C=C<<16>>16;C=(A|0)<(C|0);C=C?o:B;i=D;return C|0}b[B>>1]=m;A=m;B=p;A=A<<16>>16;A=A*55706|0;A=A>>16;C=b[C>>1]|0;C=C<<16>>16;C=(A|0)<(C|0);C=C?o:B;i=D;return C|0}function Zc(a,d,e,f,g,h,i,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0;if(i<<16>>16>16){j=-2147483648;p=i}else{p=i;n=-2147483648;o=d+(0-(i<<16>>16)<<2)|0;d=i;while(1){i=c[o>>2]|0;r=(i|0)<(n|0);d=r?d:p;n=r?n:i;p=p+-1<<16>>16;if(p<<16>>16>16){j=n;p=d;break}else o=o+4|0}}d=h<<16>>16>>>2&65535;if(!(d<<16>>16))d=0;else{n=d;i=e+(0-(p<<16>>16)<<1)|0;d=0;while(1){r=b[i>>1]|0;r=(Z(r,r)|0)+d|0;d=b[i+2>>1]|0;d=r+(Z(d,d)|0)|0;r=b[i+4>>1]|0;r=d+(Z(r,r)|0)|0;d=b[i+6>>1]|0;d=r+(Z(d,d)|0)|0;n=n+-1<<16>>16;if(!(n<<16>>16))break;else i=i+8|0}d=d<<1}if(l)Kd(a,j,d,m);d=ce(d,m)|0;i=g<<16>>16!=0;if(i)d=(d|0)>1073741823?2147483647:d<<1;g=j>>16;a=d>>16;m=Z(a,g)|0;m=(m|0)==1073741824?2147483647:m<<1;d=(Z((d>>>1)-(a<<15)<<16>>16,g)|0)>>15;r=(d<<1)+m|0;r=(d^m|0)>0&(r^m|0)<0?(m>>>31)+2147483647|0:r;g=(Z(a,(j>>>1)-(g<<15)<<16>>16)|0)>>15;d=r+(g<<1)|0;d=(r^g|0)>0&(d^r|0)<0?(r>>>31)+2147483647|0:d;if(!i){b[k>>1]=d;return p|0}i=f<<16>>16;if(f<<16>>16>0)if(f<<16>>16<31){i=d>>i;q=16}else i=0;else{q=0-i<<16>>16;i=d<>q|0)==(d|0)?i:d>>31^2147483647;q=16}if((q|0)==16){if((i|0)>65535){b[k>>1]=32767;return p|0}if((i|0)<-65536){b[k>>1]=-32768;return p|0}}b[k>>1]=i>>>1;return p|0}function _c(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(6)|0;if(!d){a=-1;return a|0}b[d>>1]=40;b[d+2>>1]=0;b[d+4>>1]=0;c[a>>2]=d;a=0;return a|0}function $c(a){a=a|0;if(!a){a=-1;return a|0}b[a>>1]=40;b[a+2>>1]=0;b[a+4>>1]=0;a=0;return a|0}function ad(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function bd(a,d,e,f,g,h,j,k,l,m,n){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;F=i;i=i+1200|0;w=F+1186|0;x=F+1184|0;E=F+1182|0;v=F;z=F+576|0;y=g<<16>>16;D=z+(y<<1)|0;o=(0-y&65535)<<16>>16>16;if(o){s=0-g<<16>>16<<16>>16;p=0;do{r=b[e+(s<<1)>>1]|0;r=Z(r,r)|0;if((r|0)!=1073741824){q=(r<<1)+p|0;if((r^p|0)>0&(q^p|0)<0){c[n>>2]=1;p=(p>>>31)+2147483647|0}else p=q}else{c[n>>2]=1;p=2147483647}s=s+1|0}while((s&65535)<<16>>16!=h<<16>>16)}else p=0;if((2147483646-p&p|0)>=0)if((p|0)==2147483647){if(o){p=0-g<<16>>16<<16>>16;do{b[z+(p+y<<1)>>1]=De(b[e+(p<<1)>>1]|0,3,n)|0;p=p+1|0}while((p&65535)<<16>>16!=h<<16>>16)}}else t=14;else{c[n>>2]=1;t=14}do if((t|0)==14){if((1048575-p&p|0)<0){c[n>>2]=1;p=(p>>>31)+2147483647|0}else p=p+-1048576|0;if((p|0)>=0){if(!o)break;C=0-g<<16>>16<<16>>16;Oe(z+(y+C<<1)|0,e+(C<<1)|0,(((h+g<<16>>16)+-1&65535)<<1)+2|0)|0;break}if(o){p=0-g<<16>>16<<16>>16;do{C=b[e+(p<<1)>>1]|0;b[z+(p+y<<1)>>1]=(C<<19>>19|0)==(C|0)?C<<3:C>>>15^32767;p=p+1|0}while((p&65535)<<16>>16!=h<<16>>16)}}while(0);B=v+(y<<2)|0;Tb(D,h,g,f,B);s=b[a>>1]|0;C=a+4|0;A=k+(l<<16>>16<<1)|0;a:do if(g<<16>>16>16)u=g;else{if((b[C>>1]|0)<=0){e=g;k=-2147483648;r=g;t=3402;while(1){Nc(c[v+(y-(e<<16>>16)<<2)>>2]|0,w,x,n);q=b[x>>1]|0;p=b[t>>1]|0;s=Z(p,b[w>>1]|0)|0;if((s|0)==1073741824){c[n>>2]=1;o=2147483647}else o=s<<1;u=(Z(p,q<<16>>16)|0)>>15;s=o+(u<<1)|0;if((o^u|0)>0&(s^o|0)<0){c[n>>2]=1;s=(o>>>31)+2147483647|0}q=(s|0)<(k|0);r=q?r:e;e=e+-1<<16>>16;if(e<<16>>16>16){u=r;break a}else{k=q?k:s;t=t+-2|0}}}k=g;o=-2147483648;r=g;u=2902+(y+123-(s<<16>>16)<<1)|0;e=3402;while(1){Nc(c[v+(y-(k<<16>>16)<<2)>>2]|0,w,x,n);t=b[x>>1]|0;q=b[e>>1]|0;s=Z(q,b[w>>1]|0)|0;if((s|0)==1073741824){c[n>>2]=1;p=2147483647}else p=s<<1;t=(Z(q,t<<16>>16)|0)>>15;s=p+(t<<1)|0;if((p^t|0)>0&(s^p|0)<0){c[n>>2]=1;s=(p>>>31)+2147483647|0}Nc(s,w,x,n);t=b[x>>1]|0;q=b[u>>1]|0;s=Z(q,b[w>>1]|0)|0;if((s|0)==1073741824){c[n>>2]=1;p=2147483647}else p=s<<1;t=(Z(q,t<<16>>16)|0)>>15;s=p+(t<<1)|0;if((p^t|0)>0&(s^p|0)<0){c[n>>2]=1;s=(p>>>31)+2147483647|0}q=(s|0)<(o|0);r=q?r:k;k=k+-1<<16>>16;if(k<<16>>16>16){u=r;break}else{o=q?o:s;u=u+-2|0;e=e+-2|0}}}while(0);if(h<<16>>16>0){k=0;e=D;t=z+(y-(u<<16>>16)<<1)|0;r=0;p=0;while(1){s=b[t>>1]|0;q=Z(s,b[e>>1]|0)|0;if((q|0)!=1073741824){o=(q<<1)+r|0;if((q^r|0)>0&(o^r|0)<0){c[n>>2]=1;r=(r>>>31)+2147483647|0}else r=o}else{c[n>>2]=1;r=2147483647}o=Z(s,s)|0;if((o|0)!=1073741824){q=(o<<1)+p|0;if((o^p|0)>0&(q^p|0)<0){c[n>>2]=1;p=(p>>>31)+2147483647|0}else p=q}else{c[n>>2]=1;p=2147483647}k=k+1<<16>>16;if(k<<16>>16>=h<<16>>16)break;else{e=e+2|0;t=t+2|0}}}else{r=0;p=0}q=(m|0)==0;if(!q){Ld(d,0,n);Kd(d,r,p,n)}o=(Ce(p,n)|0)<<16>>16;if((o*13107|0)==1073741824){c[n>>2]=1;p=2147483647}else p=o*26214|0;o=r-p|0;if(((o^r)&(p^r)|0)<0){c[n>>2]=1;o=(r>>>31)+2147483647|0}m=Ce(o,n)|0;b[A>>1]=m;if(m<<16>>16>0){o=j+6|0;b[j+8>>1]=b[o>>1]|0;m=j+4|0;b[o>>1]=b[m>>1]|0;o=j+2|0;b[m>>1]=b[o>>1]|0;b[o>>1]=b[j>>1]|0;b[j>>1]=u;b[a>>1]=Zd(j,5)|0;b[a+2>>1]=32767;o=32767}else{b[a>>1]=u;a=a+2|0;o=((b[a>>1]|0)*29491|0)>>>15&65535;b[a>>1]=o}b[C>>1]=((Ge(o,9830,n)|0)&65535)>>>15^1;if(q){i=F;return u|0}if((Ge(l,1,n)|0)<<16>>16){i=F;return u|0}Ec(B,D,h,g,f,E,n)|0;Jd(d,b[E>>1]|0);i=F;return u|0}function cd(a,b,c,d,e,f,g,h,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0;k=i;i=i+48|0;m=k+22|0;l=k;b=a>>>0<6?b:c;c=f<<16>>16>0?22:0;a=e+(c<<1)|0;Ie(a,b,m);Ie(a,d,l);a=f<<16>>16;f=j+(a<<1)|0;Be(m,g+(a<<1)|0,f,40);He(l,f,f,40,h,1);c=e+(((c<<16)+720896|0)>>>16<<1)|0;Ie(c,b,m);Ie(c,d,l);a=(a<<16)+2621440>>16;j=j+(a<<1)|0;Be(m,g+(a<<1)|0,j,40);He(l,j,j,40,h,1);i=k;return}function dd(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(12)|0;if(!d){a=-1;return a|0};b[d>>1]=0;b[d+2>>1]=0;b[d+4>>1]=0;b[d+6>>1]=0;b[d+8>>1]=0;b[d+10>>1]=0;c[a>>2]=d;a=0;return a|0}function ed(a){a=a|0;if(!a){a=-1;return a|0};b[a>>1]=0;b[a+2>>1]=0;b[a+4>>1]=0;b[a+6>>1]=0;b[a+8>>1]=0;b[a+10>>1]=0;a=0;return a|0}function fd(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function gd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=a+10|0;f=b[m>>1]|0;n=a+8|0;e=b[n>>1]|0;if(!(d<<16>>16)){a=e;l=f;b[m>>1]=l;b[n>>1]=a;return}i=a+4|0;j=a+6|0;k=a+2|0;h=b[j>>1]|0;l=b[i>>1]|0;g=d;d=f;while(1){o=(Z(b[a>>1]|0,-3733)|0)+(((l<<16>>16)*7807|0)+((h<<16>>16)*7807>>15))|0;b[a>>1]=l;o=o+((Z(b[k>>1]|0,-3733)|0)>>15)|0;b[k>>1]=h;o=((d<<16>>16)*1899|0)+o+(Z(e<<16>>16,-3798)|0)|0;d=b[c>>1]|0;o=o+((d<<16>>16)*1899|0)|0;b[c>>1]=(o+2048|0)>>>12;f=o>>>12;l=f&65535;b[i>>1]=l;h=(o<<3)-(f<<15)&65535;b[j>>1]=h;g=g+-1<<16>>16;if(!(g<<16>>16))break;else{o=e;c=c+2|0;e=d;d=o}}b[m>>1]=e;b[n>>1]=d;return}function hd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=b[(c[f+88>>2]|0)+(a<<1)>>1]|0;if(!(g<<16>>16))return;j=e;i=c[(c[f+92>>2]|0)+(a<<2)>>2]|0;while(1){e=b[i>>1]|0;if(!(e<<16>>16))e=0;else{a=b[d>>1]|0;h=e;f=j+((e<<16>>16)+-1<<1)|0;while(1){e=a<<16>>16;b[f>>1]=e&1;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{a=e>>>1&65535;f=f+-2|0}}e=b[i>>1]|0}d=d+2|0;g=g+-1<<16>>16;if(!(g<<16>>16))break;else{j=j+(e<<16>>16<<1)|0;i=i+2|0}}return}function id(a,d,f,g,h,j){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;m=o+2|0;n=o;k=h<<16>>16;if(h<<16>>16<1){j=-5443;n=-32768;Wd(a,n,j);i=o;return}l=re(14,f,j)|0;if((k|0)<(l<<16>>16|0))f=g;else{f=(g&65535)+1&65535;h=k>>>1&65535}g=Td(h,l&65535)|0;b[n>>1]=g;de(g<<16>>16,m,n,j);b[m>>1]=((((f&65535)-(d&65535)<<16)+-65536|0)>>>16)+(e[m>>1]|0);g=Ee(b[n>>1]|0,5,j)|0;k=b[m>>1]|0;g=((k&65535)<<10)+(g&65535)&65535;if(g<<16>>16>18284){j=3037;n=18284;Wd(a,n,j);i=o;return}h=b[n>>1]|0;k=k<<16>>16;if((k*24660|0)==1073741824){c[j>>2]=1;f=2147483647}else f=k*49320|0;n=(h<<16>>16)*24660>>15;k=f+(n<<1)|0;if((f^n|0)>0&(k^f|0)<0){c[j>>2]=1;k=(f>>>31)+2147483647|0}n=k<<13;j=Ce((n>>13|0)==(k|0)?n:k>>31^2147483647,j)|0;n=g;Wd(a,n,j);i=o;return}function jd(a,d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;var 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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+80|0;da=ha+66|0;ea=ha+64|0;fa=ha+62|0;ga=ha+60|0;O=ha+40|0;P=ha+20|0;M=ha;b[da>>1]=d;b[ea>>1]=m;b[fa>>1]=n;L=re(14,f,x)|0;ca=L&65535;b[ga>>1]=ca;N=re(14,n,x)|0;K=(e[g>>1]|0)+65523|0;b[M>>1]=K;E=(e[g+2>>1]|0)+65522|0;F=M+2|0;b[F>>1]=E;G=((d&65535)<<16)+-720896|0;B=G>>16;G=(G>>>15)+15+(e[g+4>>1]|0)|0;H=M+4|0;b[H>>1]=G;I=(e[g+6>>1]|0)+B|0;J=M+6|0;b[J>>1]=I;B=B+1+(e[g+8>>1]|0)|0;C=M+8|0;b[C>>1]=B;y=(e[o>>1]|0)+65523&65535;b[M+10>>1]=y;D=(e[o+2>>1]|0)+65522&65535;b[M+12>>1]=D;z=((m&65535)<<16)+-720896|0;g=z>>16;z=(z>>>15)+15+(e[o+4>>1]|0)&65535;b[M+14>>1]=z;A=(e[o+6>>1]|0)+g&65535;b[M+16>>1]=A;g=g+1+(e[o+8>>1]|0)&65535;b[M+18>>1]=g;aa=(j&65535)-(q&65535)<<16;m=aa>>16;if((aa|0)>0){n=k;f=r<<16>>16>>m&65535}else{n=k<<16>>16>>0-m&65535;f=r}if((Ee(f,1,x)|0)<<16>>16>n<<16>>16)f=1;else f=(((n<<16>>16)+3>>2|0)>(f<<16>>16|0))<<31>>31;o=K+f&65535;b[M>>1]=o;aa=E+f&65535;b[F>>1]=aa;$=G+f&65535;b[H>>1]=$;_=I+f&65535;b[J>>1]=_;Y=B+f&65535;b[C>>1]=Y;m=g<<16>>16>o<<16>>16?g:o;m=A<<16>>16>m<<16>>16?A:m;m=z<<16>>16>m<<16>>16?z:m;m=D<<16>>16>m<<16>>16?D:m;m=y<<16>>16>m<<16>>16?y:m;m=Y<<16>>16>m<<16>>16?Y:m;m=_<<16>>16>m<<16>>16?_:m;m=$<<16>>16>m<<16>>16?$:m;m=(aa<<16>>16>m<<16>>16?aa:m)+1&65535;g=0;while(1){f=m-(o&65535)|0;o=f&65535;n=e[h>>1]<<16;f=f<<16>>16;if(o<<16>>16>0)o=o<<16>>16<31?n>>f:0;else{aa=0-f<<16>>16;o=n<>aa|0)==(n|0)?o:n>>31^2147483647}aa=o>>16;b[O+(g<<1)>>1]=aa;b[P+(g<<1)>>1]=(o>>>1)-(aa<<15);g=g+1|0;if((g|0)==5){f=5;n=p;break}o=b[M+(g<<1)>>1]|0;h=h+2|0}while(1){g=m-(y&65535)|0;y=g&65535;o=e[n>>1]<<16;g=g<<16>>16;if(y<<16>>16>0)o=y<<16>>16<31?o>>g:0;else{$=0-g<<16>>16;aa=o<<$;o=(aa>>$|0)==(o|0)?aa:o>>31^2147483647}aa=o>>16;b[O+(f<<1)>>1]=aa;b[P+(f<<1)>>1]=(o>>>1)-(aa<<15);o=f+1|0;if((o&65535)<<16>>16==10)break;y=b[M+(o<<1)>>1]|0;f=o;n=n+2|0}Q=L<<16>>16;R=b[O>>1]|0;S=b[P>>1]|0;T=b[O+2>>1]|0;U=b[P+2>>1]|0;V=b[O+4>>1]|0;W=b[P+4>>1]|0;X=b[O+6>>1]|0;Y=b[P+6>>1]|0;_=b[O+8>>1]|0;$=b[P+8>>1]|0;aa=s&65535;q=N<<16>>16;j=b[O+10>>1]|0;A=b[P+10>>1]|0;z=b[O+12>>1]|0;h=b[P+12>>1]|0;f=b[O+14>>1]|0;n=b[P+14>>1]|0;g=b[O+16>>1]|0;y=b[P+16>>1]|0;B=b[O+18>>1]|0;P=b[P+18>>1]|0;m=2147483647;O=0;o=0;C=782;do{M=b[C>>1]|0;I=(Z(Q,b[C+2>>1]|0)|0)>>>15<<16;p=I>>16;G=M<<1;K=(Z(G,M)|0)>>16;r=Z(K,R)|0;if((r|0)==1073741824){c[x>>2]=1;J=2147483647}else J=r<<1;N=(Z(S,K)|0)>>15;r=J+(N<<1)|0;if((J^N|0)>0&(r^J|0)<0){c[x>>2]=1;r=(J>>>31)+2147483647|0}K=Z(T,M)|0;if((K|0)==1073741824){c[x>>2]=1;J=2147483647}else J=K<<1;N=(Z(U,M)|0)>>15;K=J+(N<<1)|0;if((J^N|0)>0&(K^J|0)<0){c[x>>2]=1;K=(J>>>31)+2147483647|0}I=(Z(I>>15,p)|0)>>16;J=Z(V,I)|0;if((J|0)==1073741824){c[x>>2]=1;H=2147483647}else H=J<<1;N=(Z(W,I)|0)>>15;J=H+(N<<1)|0;if((H^N|0)>0&(J^H|0)<0){c[x>>2]=1;J=(H>>>31)+2147483647|0}I=Z(X,p)|0;if((I|0)==1073741824){c[x>>2]=1;H=2147483647}else H=I<<1;N=(Z(Y,p)|0)>>15;I=H+(N<<1)|0;if((H^N|0)>0&(I^H|0)<0){c[x>>2]=1;N=(H>>>31)+2147483647|0}else N=I;H=(Z(G,p)|0)>>16;I=Z(_,H)|0;if((I|0)==1073741824){c[x>>2]=1;G=2147483647}else G=I<<1;L=(Z($,H)|0)>>15;I=G+(L<<1)|0;if((G^L|0)>0&(I^G|0)<0){c[x>>2]=1;I=(G>>>31)+2147483647|0}H=b[C+4>>1]|0;G=b[C+6>>1]|0;C=C+8|0;if((M-aa&65535)<<16>>16<1?(ba=H<<16>>16,H<<16>>16<=s<<16>>16):0){E=(Z(G<<16>>16,q)|0)>>>15<<16;M=E>>16;D=ba<<1;G=(Z(D,ba)|0)>>16;H=Z(j,G)|0;if((H|0)==1073741824){c[x>>2]=1;F=2147483647}else F=H<<1;L=(Z(A,G)|0)>>15;H=F+(L<<1)|0;if((F^L|0)>0&(H^F|0)<0){c[x>>2]=1;H=(F>>>31)+2147483647|0}G=Z(z,ba)|0;if((G|0)==1073741824){c[x>>2]=1;F=2147483647}else F=G<<1;L=(Z(h,ba)|0)>>15;G=F+(L<<1)|0;if((F^L|0)>0&(G^F|0)<0){c[x>>2]=1;L=(F>>>31)+2147483647|0}else L=G;F=(Z(E>>15,M)|0)>>16;G=Z(f,F)|0;if((G|0)==1073741824){c[x>>2]=1;E=2147483647}else E=G<<1;p=(Z(n,F)|0)>>15;G=E+(p<<1)|0;if((E^p|0)>0&(G^E|0)<0){c[x>>2]=1;p=(E>>>31)+2147483647|0}else p=G;G=Z(g,M)|0;if((G|0)==1073741824){c[x>>2]=1;F=2147483647}else F=G<<1;E=(Z(y,M)|0)>>15;G=F+(E<<1)|0;if((F^E|0)>0&(G^F|0)<0){c[x>>2]=1;k=(F>>>31)+2147483647|0}else k=G;F=(Z(D,M)|0)>>16;G=Z(B,F)|0;if((G|0)==1073741824){c[x>>2]=1;E=2147483647}else E=G<<1;M=(Z(P,F)|0)>>15;G=E+(M<<1)|0;if((E^M|0)>0&(G^E|0)<0){c[x>>2]=1;G=(E>>>31)+2147483647|0}M=K+r+J+N+I+H+L+p+k+G|0;N=(M|0)<(m|0);m=N?M:m;o=N?O:o}O=O+1<<16>>16}while(O<<16>>16<256);s=(o&65535)<<18>>16;kd(a,782+(s<<1)|0,ca,d,t,u,x);Vd(a,0,l,ea,fa,da,ga,x);l=(re(14,b[fa>>1]|0,x)|0)&65535;kd(a,782+((s|2)<<1)|0,l,b[ea>>1]|0,v,w,x);i=ha;return o|0}function kd(a,d,f,g,h,j,k){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0;o=i;i=i+16|0;m=o+2|0;n=o;b[h>>1]=b[d>>1]|0;l=b[d+2>>1]|0;f=Z(f<<16>>16<<1,l)|0;h=10-(g&65535)|0;d=h&65535;h=h<<16>>16;if(d<<16>>16>0)d=d<<16>>16<31?f>>h:0;else{h=0-h<<16>>16;d=f<>h|0)==(f|0)?d:f>>31^2147483647}b[j>>1]=d>>>16;de(l,m,n,k);b[m>>1]=(e[m>>1]|0)+65524;h=Ee(b[n>>1]|0,5,k)|0;g=b[m>>1]|0;h=((g&65535)<<10)+(h&65535)&65535;f=b[n>>1]|0;g=g<<16>>16;if((g*24660|0)==1073741824){c[k>>2]=1;d=2147483647}else d=g*49320|0;n=(f<<16>>16)*24660>>15;g=d+(n<<1)|0;if(!((d^n|0)>0&(g^d|0)<0)){k=g;k=k<<13;k=k+32768|0;k=k>>>16;k=k&65535;Wd(a,h,k);i=o;return}c[k>>2]=1;k=(d>>>31)+2147483647|0;k=k<<13;k=k+32768|0;k=k>>>16;k=k&65535;Wd(a,h,k);i=o;return}function ld(a,d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;var 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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0;la=i;i=i+80|0;ia=la+72|0;ja=la+70|0;ka=la+68|0;ga=la+66|0;ha=la+56|0;_=la+24|0;Y=la+12|0;W=la+48|0;X=la+40|0;R=la+34|0;T=la+22|0;P=la+6|0;Q=la;nd(5,r,s,P,Q,c[x+72>>2]|0,y)|0;B=re(14,n,y)|0;S=x+68|0;O=c[S>>2]|0;V=m<<16>>16;U=V+65526|0;r=(e[j>>1]|0)+65523&65535;b[ha>>1]=r;x=(e[j+2>>1]|0)+65522&65535;b[ha+2>>1]=x;da=U<<16>>16;ea=((U<<17>>17|0)==(da|0)?U<<1:da>>>15^32767)+15+(e[j+4>>1]|0)&65535;b[ha+4>>1]=ea;fa=(e[j+6>>1]|0)+da&65535;b[ha+6>>1]=fa;j=da+1+(e[j+8>>1]|0)&65535;b[ha+8>>1]=j;x=x<<16>>16>r<<16>>16?x:r;x=ea<<16>>16>x<<16>>16?ea:x;x=fa<<16>>16>x<<16>>16?fa:x;x=(Rd(j<<16>>16>x<<16>>16?j:x,1,y)|0)&65535;j=r;r=0;while(1){n=x-(j&65535)|0;j=n&65535;A=e[h+(r<<1)>>1]<<16;n=n<<16>>16;if(j<<16>>16>0)n=j<<16>>16<31?A>>n:0;else{fa=0-n<<16>>16;n=A<>fa|0)==(A|0)?n:A>>31^2147483647}Nc(n,_+(r<<1)|0,Y+(r<<1)|0,y);n=r+1|0;if((n|0)==5)break;j=b[ha+(n<<1)>>1]|0;r=n}M=_+2|0;N=Y+2|0;fa=B<<16>>16;$=_+4|0;aa=Y+4|0;ba=_+6|0;ca=Y+6|0;da=_+8|0;ea=Y+8|0;E=0;j=2147483647;h=0;n=0;while(1){L=b[P+(h<<1)>>1]|0;B=Z(L,L)|0;if(B>>>0>1073741823){c[y>>2]=1;B=32767}else B=B>>>15;x=b[Y>>1]|0;A=B<<16>>16;B=Z(A,b[_>>1]|0)|0;if((B|0)==1073741824){c[y>>2]=1;r=2147483647}else r=B<<1;K=(Z(x<<16>>16,A)|0)>>15;B=r+(K<<1)|0;if((r^K|0)>0&(B^r|0)<0){c[y>>2]=1;B=(r>>>31)+2147483647|0}x=b[N>>1]|0;A=Z(b[M>>1]|0,L)|0;if((A|0)!=1073741824){r=(A<<1)+B|0;if((A^B|0)>0&(r^B|0)<0){c[y>>2]=1;r=(B>>>31)+2147483647|0}}else{c[y>>2]=1;r=2147483647}B=(Z(x<<16>>16,L)|0)>>15;if((B|0)>32767){c[y>>2]=1;B=32767}K=B<<16;B=(K>>15)+r|0;if((K>>16^r|0)>0&(B^r|0)<0){c[y>>2]=1;K=(r>>>31)+2147483647|0}else K=B;I=(K>>>31)+2147483647|0;J=h&65535;B=E;G=0;H=O;do{A=(Z(b[H>>1]|0,fa)|0)>>15;H=H+6|0;if((A|0)>32767){c[y>>2]=1;A=32767}F=A<<16>>16;A=Z(F,F)|0;if((A|0)==1073741824){c[y>>2]=1;D=2147483647}else D=A<<1;Nc(D,ia,ja,y);A=Z(F,L)|0;if((A|0)==1073741824){c[y>>2]=1;D=2147483647}else D=A<<1;Nc(D,ka,ga,y);r=b[aa>>1]|0;C=b[ja>>1]|0;A=b[$>>1]|0;x=b[ia>>1]|0;E=Z(x,A)|0;if((E|0)!=1073741824){D=(E<<1)+K|0;if((E^K|0)>0&(D^K|0)<0){c[y>>2]=1;D=I}}else{c[y>>2]=1;D=2147483647}E=(Z(C<<16>>16,A)|0)>>15;if((E|0)>32767){c[y>>2]=1;E=32767}C=E<<16;E=(C>>15)+D|0;if((C>>16^D|0)>0&(E^D|0)<0){c[y>>2]=1;E=(D>>>31)+2147483647|0}D=(Z(x,r<<16>>16)|0)>>15;if((D|0)>32767){c[y>>2]=1;D=32767}C=D<<16;D=(C>>15)+E|0;if((C>>16^E|0)>0&(D^E|0)<0){c[y>>2]=1;D=(E>>>31)+2147483647|0}A=b[ca>>1]|0;E=Z(b[ba>>1]|0,F)|0;if((E|0)!=1073741824){C=(E<<1)+D|0;if((E^D|0)>0&(C^D|0)<0){c[y>>2]=1;C=(D>>>31)+2147483647|0}}else{c[y>>2]=1;C=2147483647}A=(Z(A<<16>>16,F)|0)>>15;if((A|0)>32767){c[y>>2]=1;A=32767}F=A<<16;A=(F>>15)+C|0;if((F>>16^C|0)>0&(A^C|0)<0){c[y>>2]=1;A=(C>>>31)+2147483647|0}x=b[ea>>1]|0;C=b[ga>>1]|0;r=b[da>>1]|0;z=b[ka>>1]|0;E=Z(z,r)|0;do if((E|0)==1073741824){c[y>>2]=1;E=2147483647}else{D=(E<<1)+A|0;if(!((E^A|0)>0&(D^A|0)<0)){E=D;break}c[y>>2]=1;E=(A>>>31)+2147483647|0}while(0);D=(Z(C<<16>>16,r)|0)>>15;if((D|0)>32767){c[y>>2]=1;D=32767}F=D<<16;D=(F>>15)+E|0;if((F>>16^E|0)>0&(D^E|0)<0){c[y>>2]=1;D=(E>>>31)+2147483647|0}A=(Z(z,x<<16>>16)|0)>>15;if((A|0)>32767){c[y>>2]=1;A=32767}F=A<<16;A=(F>>15)+D|0;if((F>>16^D|0)>0&(A^D|0)<0){c[y>>2]=1;A=(D>>>31)+2147483647|0}F=(A|0)<(j|0);B=F?G:B;n=F?J:n;j=F?A:j;G=G+1<<16>>16}while(G<<16>>16<32);h=h+1|0;if((h|0)==3){A=B;h=n;break}else E=B}N=(A<<16>>16)*3|0;j=b[O+(N<<1)>>1]|0;b[u>>1]=b[O+(N+1<<1)>>1]|0;b[v>>1]=b[O+(N+2<<1)>>1]|0;j=Z(j<<16>>16,fa)|0;if((j|0)==1073741824){c[y>>2]=1;B=2147483647}else B=j<<1;N=9-V|0;O=N&65535;N=N<<16>>16;M=O<<16>>16>0;if(M)B=O<<16>>16<31?B>>N:0;else{K=0-N<<16>>16;L=B<>K|0)==(B|0)?L:B>>31^2147483647}b[t>>1]=B>>>16;L=h<<16>>16;P=b[P+(L<<1)>>1]|0;b[s>>1]=P;Q=b[Q+(L<<1)>>1]|0;Ub(d,f,g,P,o,W,X,R,y);xc(a,b[R>>1]|0,b[t>>1]|0,T,y);if(!((b[W>>1]|0)!=0&(b[T>>1]|0)>0)){y=A;u=c[w>>2]|0;t=u+2|0;b[u>>1]=Q;u=u+4|0;c[w>>2]=u;b[t>>1]=y;i=la;return}F=W+6|0;b[F>>1]=l;D=X+6|0;b[D>>1]=k;m=((Ge(q,m,y)|0)&65535)+10|0;x=m<<16>>16;if((m&65535)<<16>>16<0){n=0-x<<16;if((n|0)<983040)p=p<<16>>16>>(n>>16)&65535;else p=0}else{n=p<<16>>16;r=n<>16>>x|0)==(n|0))p=r&65535;else p=(n>>>15^32767)&65535}j=b[s>>1]|0;B=b[T>>1]|0;S=c[S>>2]|0;r=b[t>>1]|0;T=10-V|0;x=T<<16>>16;if((T&65535)<<16>>16<0){n=0-x<<16;if((n|0)<983040)l=r<<16>>16>>(n>>16)&65535;else l=0}else{n=r<<16>>16;r=n<>16>>x|0)==(n|0))l=r&65535;else l=(n>>>15^32767)&65535}h=j<<16>>16;n=Z(h,h)|0;if(n>>>0>1073741823){c[y>>2]=1;j=32767}else j=n>>>15;A=Rd(32767-(B&65535)&65535,1,y)|0;B=B<<16>>16;n=Z(b[W+2>>1]|0,B)|0;if((n|0)==1073741824){c[y>>2]=1;n=2147483647}else n=n<<1;T=n<<1;n=Z(((T>>1|0)==(n|0)?T:n>>31^2147418112)>>16,j<<16>>16)|0;if((n|0)==1073741824){c[y>>2]=1;E=2147483647}else E=n<<1;C=(e[X+2>>1]|0)+65521|0;x=C&65535;n=Z(b[W+4>>1]|0,B)|0;if((n|0)==1073741824){c[y>>2]=1;j=2147483647}else j=n<<1;n=j<<1;n=(Z(((n>>1|0)==(j|0)?n:j>>31^2147418112)>>16,h)|0)>>15;if((n|0)>32767){c[y>>2]=1;n=32767}b[$>>1]=n;j=U&65535;b[ia>>1]=j;j=Rd(b[X+4>>1]|0,j,y)|0;n=Z(b[F>>1]|0,B)|0;if((n|0)==1073741824){c[y>>2]=1;n=2147483647}else n=n<<1;z=n<<1;b[ba>>1]=((z>>1|0)==(n|0)?z:n>>31^2147418112)>>>16;z=((V<<17>>17|0)==(V|0)?V<<1:V>>>15^32767)+65529&65535;b[ia>>1]=z;z=Rd(b[D>>1]|0,z,y)|0;n=(Z(b[F>>1]|0,A<<16>>16)|0)>>15;if((n|0)>32767){c[y>>2]=1;n=32767}b[da>>1]=n;A=Rd(z,1,y)|0;r=Z(b[W>>1]|0,B)|0;if((r|0)==1073741824){c[y>>2]=1;n=2147483647}else n=r<<1;D=Fe(n,ia,y)|0;h=(e[ia>>1]|0)+47|0;b[ia>>1]=h;h=(e[X>>1]|0)-(h&65535)|0;B=h+31&65535;B=x<<16>>16>B<<16>>16?x:B;B=j<<16>>16>B<<16>>16?j:B;B=z<<16>>16>B<<16>>16?z:B;B=(A<<16>>16>B<<16>>16?A:B)<<16>>16;r=B-(C&65535)|0;n=r&65535;r=r<<16>>16;if(n<<16>>16>0)K=n<<16>>16<31?E>>r:0;else{X=0-r<<16>>16;K=E<>X|0)==(E|0)?K:E>>31^2147483647}x=B-(j&65535)|0;n=x&65535;r=e[$>>1]<<16;x=x<<16>>16;if(n<<16>>16>0)r=n<<16>>16<31?r>>x:0;else{W=0-x<<16>>16;X=r<>W|0)==(r|0)?X:r>>31^2147483647}Nc(r,$,aa,y);z=B-(z&65535)|0;r=z&65535;x=e[ba>>1]<<16;z=z<<16>>16;if(r<<16>>16>0)r=r<<16>>16<31?x>>z:0;else{X=0-z<<16>>16;r=x<>X|0)==(x|0)?r:x>>31^2147483647}Nc(r,ba,ca,y);z=B-(A&65535)|0;r=z&65535;x=e[da>>1]<<16;z=z<<16>>16;if(r<<16>>16>0)r=r<<16>>16<31?x>>z:0;else{X=0-z<<16>>16;r=x<>X|0)==(x|0)?r:x>>31^2147483647}Nc(r,da,ea,y);z=B+65505|0;b[ia>>1]=z;z=z-(h&65535)|0;r=De(z&65535,1,y)|0;x=r<<16>>16;if(r<<16>>16>0)x=r<<16>>16<31?D>>x:0;else{X=0-x<<16>>16;x=D<>X|0)==(D|0)?x:D>>31^2147483647}do if(!(z&1))E=x;else{Nc(x,_,Y,y);r=b[Y>>1]|0;x=b[_>>1]|0;if((x*23170|0)==1073741824){c[y>>2]=1;z=2147483647}else z=x*46340|0;_=(r<<16>>16)*23170>>15;x=z+(_<<1)|0;if(!((z^_|0)>0&(x^z|0)<0)){E=x;break}c[y>>2]=1;E=(z>>>31)+2147483647|0}while(0);F=(K>>>31)+2147483647|0;D=2147483647;C=0;x=0;G=S;while(1){r=(Z(b[G>>1]|0,fa)|0)>>15;G=G+6|0;if((r|0)>32767){c[y>>2]=1;r=32767}z=r&65535;if(z<<16>>16>=l<<16>>16)break;j=r<<16>>16;r=Z(j,j)|0;if((r|0)==1073741824){c[y>>2]=1;n=2147483647}else n=r<<1;Nc(n,ja,ka,y);r=(Ge(z,p,y)|0)<<16>>16;r=Z(r,r)|0;if((r|0)==1073741824){c[y>>2]=1;r=2147483647}else r=r<<1;Nc(r,ga,ha,y);z=b[aa>>1]|0;n=Z(b[$>>1]|0,j)|0;do if((n|0)==1073741824){c[y>>2]=1;n=2147483647}else{r=(n<<1)+K|0;if(!((n^K|0)>0&(r^K|0)<0)){n=r;break}c[y>>2]=1;n=F}while(0);r=(Z(z<<16>>16,j)|0)>>15;if((r|0)>32767){c[y>>2]=1;r=32767}_=r<<16;r=(_>>15)+n|0;if((_>>16^n|0)>0&(r^n|0)<0){c[y>>2]=1;r=(n>>>31)+2147483647|0}h=b[ca>>1]|0;A=b[ka>>1]|0;j=b[ba>>1]|0;B=b[ja>>1]|0;n=Z(B,j)|0;do if((n|0)==1073741824){c[y>>2]=1;z=2147483647}else{z=(n<<1)+r|0;if(!((n^r|0)>0&(z^r|0)<0))break;c[y>>2]=1;z=(r>>>31)+2147483647|0}while(0);n=(Z(A<<16>>16,j)|0)>>15;if((n|0)>32767){c[y>>2]=1;n=32767}_=n<<16;n=(_>>15)+z|0;if((_>>16^z|0)>0&(n^z|0)<0){c[y>>2]=1;n=(z>>>31)+2147483647|0}r=(Z(B,h<<16>>16)|0)>>15;if((r|0)>32767){c[y>>2]=1;r=32767}_=r<<16;r=(_>>15)+n|0;if((_>>16^n|0)>0&(r^n|0)<0){c[y>>2]=1;r=(n>>>31)+2147483647|0}r=Fe(r,ia,y)|0;z=De(b[ia>>1]|0,1,y)|0;n=z<<16>>16;if(z<<16>>16>0)z=z<<16>>16<31?r>>n:0;else{_=0-n<<16>>16;z=r<<_;z=(z>>_|0)==(r|0)?z:r>>31^2147483647}r=z-E|0;if(((r^z)&(z^E)|0)<0){c[y>>2]=1;r=(z>>>31)+2147483647|0}r=(Ce(r,y)|0)<<16>>16;r=Z(r,r)|0;if((r|0)==1073741824){c[y>>2]=1;z=2147483647}else z=r<<1;B=b[ea>>1]|0;j=b[ha>>1]|0;A=b[da>>1]|0;h=b[ga>>1]|0;n=Z(h,A)|0;do if((n|0)==1073741824){c[y>>2]=1;r=2147483647}else{r=(n<<1)+z|0;if(!((n^z|0)>0&(r^z|0)<0))break;c[y>>2]=1;r=(z>>>31)+2147483647|0}while(0);n=(Z(j<<16>>16,A)|0)>>15;if((n|0)>32767){c[y>>2]=1;n=32767}_=n<<16;n=(_>>15)+r|0;if((_>>16^r|0)>0&(n^r|0)<0){c[y>>2]=1;n=(r>>>31)+2147483647|0}r=(Z(h,B<<16>>16)|0)>>15;if((r|0)>32767){c[y>>2]=1;r=32767}_=r<<16;r=(_>>15)+n|0;if((_>>16^n|0)>0&(r^n|0)<0){c[y>>2]=1;r=(n>>>31)+2147483647|0}n=(r|0)<(D|0);x=n?C:x;C=C+1<<16>>16;if(C<<16>>16>=32)break;else D=n?r:D}ka=(x<<16>>16)*3|0;z=b[S+(ka<<1)>>1]|0;b[u>>1]=b[S+(ka+1<<1)>>1]|0;b[v>>1]=b[S+(ka+2<<1)>>1]|0;z=Z(z<<16>>16,fa)|0;if((z|0)==1073741824){c[y>>2]=1;z=2147483647}else z=z<<1;if(M)z=O<<16>>16<31?z>>N:0;else{u=0-N<<16>>16;y=z<>u|0)==(z|0)?y:z>>31^2147483647}b[t>>1]=z>>>16;y=x;u=c[w>>2]|0;t=u+2|0;b[u>>1]=Q;u=u+4|0;c[w>>2]=u;b[t>>1]=y;i=la;return}function md(a,c,d,e,f,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0;n=(a|0)==7;j=b[e>>1]|0;if(n){j=j<<16>>16>>>1&65535;m=re(c,d,i)|0;c=m<<16;a=c>>16;if((m<<20>>20|0)==(a|0))a=c>>12;else a=a>>>15^32767}else{m=re(c,d,i)|0;c=m<<16;a=c>>16;if((m<<21>>21|0)==(a|0))a=c>>11;else a=a>>>15^32767}m=a<<16>>16;i=j<<16>>16;c=i-((Z(m,b[h>>1]|0)|0)>>>15&65535)|0;c=((c&32768|0)!=0?0-c|0:c)&65535;k=1;a=0;l=h;while(1){l=l+6|0;j=i-((Z(b[l>>1]|0,m)|0)>>>15&65535)|0;d=j<<16;j=(d|0)<0?0-(d>>16)|0:j;d=(j<<16>>16|0)<(c<<16>>16|0);a=d?k:a;k=k+1<<16>>16;if(k<<16>>16>=32)break;else c=d?j&65535:c}l=(a<<16>>16)*196608>>16;b[e>>1]=(Z(b[h+(l<<1)>>1]|0,m)|0)>>>15<<(n&1);b[f>>1]=b[h+(l+1<<1)>>1]|0;b[g>>1]=b[h+(l+2<<1)>>1]|0;return a|0}function nd(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;i=Ge(b[d>>1]|0,b[g>>1]|0,h)|0;i=(i&65535)-((i&65535)>>>15&65535)|0;i=(i<<16>>31^i)&65535;k=0;l=1;while(1){j=b[g+(l<<1)>>1]|0;if(j<<16>>16>c<<16>>16)j=i;else{j=Ge(b[d>>1]|0,j,h)|0;j=(j&65535)-((j&65535)>>>15&65535)|0;j=(j<<16>>31^j)&65535;n=j<<16>>16>16;j=n?j:i;k=n?l&65535:k}l=l+1|0;if((l|0)==16)break;else i=j}if((a|0)!=5){i=b[g+(k<<16>>16<<1)>>1]|0;if((a|0)==7){b[d>>1]=i&65532;return k|0}else{b[d>>1]=i;return k|0}}j=k<<16>>16;switch(k<<16>>16){case 0:{i=0;break}case 15:{m=8;break}default:if((b[g+(j+1<<1)>>1]|0)>c<<16>>16)m=8;else i=j+65535&65535}if((m|0)==8)i=j+65534&65535;b[f>>1]=i;n=i<<16>>16;b[e>>1]=b[g+(n<<1)>>1]|0;n=n+1|0;b[f+2>>1]=n;n=n<<16>>16;b[e+2>>1]=b[g+(n<<1)>>1]|0;n=n+1|0;b[f+4>>1]=n;b[e+4>>1]=b[g+(n<<16>>16<<1)>>1]|0;b[d>>1]=b[g+(j<<1)>>1]|0;return k|0}function od(a,d,f,g,h,j,k,l,m,n,o,p){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var 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;K=i;i=i+32|0;s=K+20|0;t=K+10|0;r=K;switch(a|0){case 3:case 4:case 6:{o=o+84|0;J=128;break}default:{o=o+80|0;J=64}}I=c[o>>2]|0;q=re(14,f,p)|0;H=d<<16>>16;G=H+65525|0;a=(e[h>>1]|0)+65523&65535;b[r>>1]=a;d=(e[h+2>>1]|0)+65522&65535;b[r+2>>1]=d;F=G<<16>>16;F=Rd(b[h+4>>1]|0,((G<<17>>17|0)==(F|0)?G<<1:F>>>15^32767)+15&65535,p)|0;b[r+4>>1]=F;G=Rd(b[h+6>>1]|0,G&65535,p)|0;b[r+6>>1]=G;h=Rd(b[h+8>>1]|0,H+65526&65535,p)|0;b[r+8>>1]=h;d=d<<16>>16>a<<16>>16?d:a;d=F<<16>>16>d<<16>>16?F:d;d=G<<16>>16>d<<16>>16?G:d;d=(h<<16>>16>d<<16>>16?h:d)+1&65535;h=0;while(1){f=d-(a&65535)|0;o=f&65535;a=e[g+(h<<1)>>1]<<16;f=f<<16>>16;if(o<<16>>16>0)o=o<<16>>16<31?a>>f:0;else{G=0-f<<16>>16;o=a<>G|0)==(a|0)?o:a>>31^2147483647}Nc(o,s+(h<<1)|0,t+(h<<1)|0,p);o=h+1|0;if((o|0)==5)break;a=b[r+(o<<1)>>1]|0;h=o}G=q<<16>>16;y=b[s>>1]|0;z=b[t>>1]|0;A=b[s+2>>1]|0;B=b[t+2>>1]|0;C=b[s+4>>1]|0;D=b[t+4>>1]|0;E=b[s+6>>1]|0;F=b[t+6>>1]|0;x=b[s+8>>1]|0;u=b[t+8>>1]|0;d=2147483647;v=0;o=0;w=I;while(1){h=b[w>>1]|0;if(h<<16>>16>j<<16>>16)q=d;else{q=(Z(b[w+2>>1]|0,G)|0)>>15;if((q|0)>32767){c[p>>2]=1;q=32767}t=h<<16>>16;h=Z(t,t)|0;if(h>>>0>1073741823){c[p>>2]=1;r=32767}else r=h>>>15;f=q<<16>>16;q=Z(f,f)|0;if(q>>>0>1073741823){c[p>>2]=1;s=32767}else s=q>>>15;g=(Z(f,t)|0)>>15;if((g|0)>32767){c[p>>2]=1;g=32767}q=r<<16>>16;r=Z(y,q)|0;if((r|0)==1073741824){c[p>>2]=1;h=2147483647}else h=r<<1;q=(Z(z,q)|0)>>15;r=h+(q<<1)|0;if((h^q|0)>0&(r^h|0)<0){c[p>>2]=1;r=(h>>>31)+2147483647|0}q=Z(A,t)|0;if((q|0)==1073741824){c[p>>2]=1;h=2147483647}else h=q<<1;t=(Z(B,t)|0)>>15;q=h+(t<<1)|0;if((h^t|0)>0&(q^h|0)<0){c[p>>2]=1;q=(h>>>31)+2147483647|0}h=q+r|0;if((q^r|0)>-1&(h^r|0)<0){c[p>>2]=1;h=(r>>>31)+2147483647|0}q=s<<16>>16;r=Z(C,q)|0;if((r|0)==1073741824){c[p>>2]=1;a=2147483647}else a=r<<1;t=(Z(D,q)|0)>>15;r=a+(t<<1)|0;if((a^t|0)>0&(r^a|0)<0){c[p>>2]=1;r=(a>>>31)+2147483647|0}q=r+h|0;if((r^h|0)>-1&(q^h|0)<0){c[p>>2]=1;a=(h>>>31)+2147483647|0}else a=q;q=Z(E,f)|0;if((q|0)==1073741824){c[p>>2]=1;r=2147483647}else r=q<<1;t=(Z(F,f)|0)>>15;q=r+(t<<1)|0;if((r^t|0)>0&(q^r|0)<0){c[p>>2]=1;q=(r>>>31)+2147483647|0}h=q+a|0;if((q^a|0)>-1&(h^a|0)<0){c[p>>2]=1;r=(a>>>31)+2147483647|0}else r=h;h=g<<16>>16;q=Z(x,h)|0;if((q|0)==1073741824){c[p>>2]=1;a=2147483647}else a=q<<1;t=(Z(u,h)|0)>>15;q=a+(t<<1)|0;if((a^t|0)>0&(q^a|0)<0){c[p>>2]=1;h=(a>>>31)+2147483647|0}else h=q;q=h+r|0;if((h^r|0)>-1&(q^r|0)<0){c[p>>2]=1;q=(r>>>31)+2147483647|0}t=(q|0)<(d|0);q=t?q:d;o=t?v:o}w=w+8|0;v=v+1<<16>>16;if((v<<16>>16|0)>=(J|0))break;else d=q}j=o<<16>>16;j=((j<<18>>18|0)==(j|0)?j<<2:j>>>15^32767)<<16>>16;b[k>>1]=b[I+(j<<1)>>1]|0;d=b[I+(j+1<<1)>>1]|0;b[m>>1]=b[I+(j+2<<1)>>1]|0;b[n>>1]=b[I+(j+3<<1)>>1]|0;d=Z(d<<16>>16,G)|0;if((d|0)==1073741824){c[p>>2]=1;a=2147483647}else a=d<<1;f=10-H|0;d=f&65535;f=f<<16>>16;if(d<<16>>16>0){p=d<<16>>16<31?a>>f:0;p=p>>>16;p=p&65535;b[l>>1]=p;i=K;return o|0}else{m=0-f<<16>>16;p=a<>m|0)==(a|0)?p:a>>31^2147483647;p=p>>>16;p=p&65535;b[l>>1]=p;i=K;return o|0}return 0}function pd(a,c,d,f,g,h,j,k,l){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var 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,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,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;wa=i;i=i+160|0;va=wa;n=a<<16>>16;ta=a<<16>>16==10;ua=b[j+(b[h>>1]<<1)>>1]|0;if(a<<16>>16>0){l=0;m=k;while(1){b[m>>1]=l;l=l+1<<16>>16;if(l<<16>>16>=a<<16>>16)break;else m=m+2|0}}if(d<<16>>16<=1){i=wa;return}ra=h+2|0;sa=ua<<16>>16;oa=f+(sa<<1)|0;pa=g+(sa*80|0)+(sa<<1)|0;qa=h+6|0;X=c&65535;Y=h+4|0;_=h+10|0;$=h+8|0;aa=h+14|0;ba=h+12|0;ca=h+18|0;da=h+16|0;ea=k+2|0;fa=k+4|0;ga=k+6|0;ha=k+8|0;ia=k+10|0;ja=k+12|0;ka=k+14|0;la=k+16|0;ma=k+18|0;na=a<<16>>16>2;V=h+(n+-1<<1)|0;T=1;W=1;N=0;O=0;U=-1;while(1){S=b[j+(b[ra>>1]<<1)>>1]|0;R=S<<16>>16;c=(e[f+(R<<1)>>1]|0)+(e[oa>>1]|0)|0;m=(b[g+(sa*80|0)+(R<<1)>>1]<<13)+32768+((b[g+(R*80|0)+(R<<1)>>1]|0)+(b[pa>>1]|0)<<12)|0;n=b[qa>>1]|0;if(n<<16>>16<40){n=n<<16>>16;o=va;while(1){P=(b[g+(n*80|0)+(n<<1)>>1]|0)>>>1;M=b[g+(n*80|0)+(sa<<1)>>1]|0;Q=b[g+(n*80|0)+(R<<1)>>1]|0;b[o>>1]=c+(e[f+(n<<1)>>1]|0);b[o+2>>1]=(M+2+P+Q|0)>>>2;n=n+X|0;if((n&65535)<<16>>16<40){n=n<<16>>16;o=o+4|0}else break}B=b[qa>>1]|0}else B=n;c=b[Y>>1]|0;A=m>>12;n=c<<16>>16;a:do if(c<<16>>16<40){z=B<<16>>16;if(B<<16>>16<40){o=1;q=c;s=B;r=0;p=-1}else while(1){n=n+X|0;if((n&65535)<<16>>16<40)n=n<<16>>16;else{o=1;Q=c;P=B;n=0;break a}}while(1){y=((b[g+(n*80|0)+(n<<1)>>1]|0)+A>>1)+(b[g+(n*80|0)+(sa<<1)>>1]|0)+(b[g+(n*80|0)+(R<<1)>>1]|0)|0;x=e[f+(n<<1)>>1]|0;v=z;w=B;u=va;t=r;while(1){m=(e[u>>1]|0)+x|0;l=m<<16>>16;l=(Z(l,l)|0)>>>15;r=(y+(b[g+(n*80|0)+(v<<1)>>1]|0)>>2)+(b[u+2>>1]|0)>>1;if((Z(l<<16>>16,o<<16>>16)|0)>(Z(r,p<<16>>16)|0)){o=r&65535;q=c;s=w;r=m&65535;p=l&65535}else r=t;m=v+X|0;w=m&65535;if(w<<16>>16>=40)break;else{v=m<<16>>16;u=u+4|0;t=r}}n=n+X|0;c=n&65535;if(c<<16>>16<40)n=n<<16>>16;else{Q=q;P=s;n=r;break}}}else{o=1;Q=c;P=B;n=0}while(0);q=o<<16>>16<<15;o=b[_>>1]|0;if(o<<16>>16<40){m=Q<<16>>16;l=P<<16>>16;c=n&65535;o=o<<16>>16;n=va;while(1){J=b[g+(o*80|0)+(o<<1)>>1]>>1;I=b[g+(o*80|0)+(sa<<1)>>1]|0;K=b[g+(o*80|0)+(R<<1)>>1]|0;L=b[g+(o*80|0)+(m<<1)>>1]|0;M=b[g+(o*80|0)+(l<<1)>>1]|0;b[n>>1]=(e[f+(o<<1)>>1]|0)+c;b[n+2>>1]=(I+2+J+K+L+M|0)>>>2;o=o+X|0;if((o&65535)<<16>>16<40){o=o<<16>>16;n=n+4|0}else break}J=b[_>>1]|0}else J=o;p=b[$>>1]|0;o=p<<16>>16;b:do if(p<<16>>16<40){C=Q<<16>>16;D=P<<16>>16;E=J<<16>>16;B=q+32768|0;if(J<<16>>16<40){r=1;q=p;c=J;s=p;n=0;p=-1}else while(1){o=o+X|0;if((o&65535)<<16>>16<40)o=o<<16>>16;else{o=1;M=p;L=J;n=0;break b}}while(1){l=e[f+(o<<1)>>1]|0;A=(b[g+(o*80|0)+(R<<1)>>1]|0)+(b[g+(o*80|0)+(sa<<1)>>1]|0)+(b[g+(o*80|0)+(C<<1)>>1]|0)+(b[g+(o*80|0)+(D<<1)>>1]|0)|0;z=B+(b[g+(o*80|0)+(o<<1)>>1]<<11)|0;x=E;v=J;y=va;while(1){t=(e[y>>1]|0)+l|0;m=z+(b[y+2>>1]<<14)+(A+(b[g+(o*80|0)+(x<<1)>>1]|0)<<12)|0;u=t<<16>>16;u=(Z(u,u)|0)>>>15;if((Z(u<<16>>16,r<<16>>16)|0)>(Z(m>>16,p<<16>>16)|0)){r=m>>>16&65535;w=s;c=v;n=t&65535;p=u&65535}else w=q;q=x+X|0;v=q&65535;if(v<<16>>16>=40){q=w;break}else{x=q<<16>>16;q=w;y=y+4|0}}o=o+X|0;s=o&65535;if(s<<16>>16<40)o=o<<16>>16;else{o=r;M=q;L=c;break}}}else{o=1;M=p;L=J;n=0}while(0);r=o<<16>>16<<15;o=b[aa>>1]|0;if(o<<16>>16<40){m=Q<<16>>16;l=P<<16>>16;p=M<<16>>16;q=L<<16>>16;c=n&65535;o=o<<16>>16;n=va;while(1){F=b[g+(o*80|0)+(o<<1)>>1]>>1;E=b[g+(sa*80|0)+(o<<1)>>1]|0;G=b[g+(R*80|0)+(o<<1)>>1]|0;H=b[g+(m*80|0)+(o<<1)>>1]|0;I=b[g+(l*80|0)+(o<<1)>>1]|0;J=b[g+(p*80|0)+(o<<1)>>1]|0;K=b[g+(q*80|0)+(o<<1)>>1]|0;b[n>>1]=(e[f+(o<<1)>>1]|0)+c;b[n+2>>1]=(E+4+F+G+H+I+J+K|0)>>>3;o=o+X|0;if((o&65535)<<16>>16<40){o=o<<16>>16;n=n+4|0}else break}c=b[aa>>1]|0}else c=o;s=b[ba>>1]|0;if(s<<16>>16<40){J=Q<<16>>16;F=P<<16>>16;E=M<<16>>16;D=L<<16>>16;C=c<<16>>16;B=c<<16>>16<40;G=r+32768|0;I=s<<16>>16;l=1;w=s;v=c;H=s;q=0;o=-1;while(1){if(B){r=e[f+(I<<1)>>1]|0;n=(b[g+(I*80|0)+(R<<1)>>1]|0)+(b[g+(I*80|0)+(sa<<1)>>1]|0)+(b[g+(I*80|0)+(J<<1)>>1]|0)+(b[g+(I*80|0)+(F<<1)>>1]|0)+(b[g+(I*80|0)+(E<<1)>>1]|0)+(b[g+(I*80|0)+(D<<1)>>1]|0)|0;p=G+(b[g+(I*80|0)+(I<<1)>>1]<<10)|0;u=C;s=c;z=v;A=va;while(1){y=(e[A>>1]|0)+r|0;v=p+(b[A+2>>1]<<14)+(n+(b[g+(I*80|0)+(u<<1)>>1]|0)<<11)|0;x=y<<16>>16;x=(Z(x,x)|0)>>>15;if((Z(x<<16>>16,l<<16>>16)|0)>(Z(v>>16,o<<16>>16)|0)){l=v>>>16&65535;w=H;v=s;q=y&65535;o=x&65535}else v=z;t=u+X|0;s=t&65535;if(s<<16>>16>=40)break;else{u=t<<16>>16;z=v;A=A+4|0}}}s=I+X|0;H=s&65535;if(H<<16>>16>=40){K=v;break}else I=s<<16>>16}}else{l=1;w=s;K=c;q=0;o=-1}if(ta){u=l<<16>>16<<15;o=b[ca>>1]|0;if(o<<16>>16<40){n=Q<<16>>16;c=P<<16>>16;m=M<<16>>16;l=L<<16>>16;r=w<<16>>16;s=K<<16>>16;p=q&65535;o=o<<16>>16;q=va;while(1){E=b[g+(o*80|0)+(o<<1)>>1]>>1;D=b[g+(sa*80|0)+(o<<1)>>1]|0;F=b[g+(R*80|0)+(o<<1)>>1]|0;G=b[g+(n*80|0)+(o<<1)>>1]|0;H=b[g+(c*80|0)+(o<<1)>>1]|0;I=b[g+(m*80|0)+(o<<1)>>1]|0;J=b[g+(l*80|0)+(o<<1)>>1]|0;N=b[g+(r*80|0)+(o<<1)>>1]|0;O=b[g+(s*80|0)+(o<<1)>>1]|0;b[q>>1]=(e[f+(o<<1)>>1]|0)+p;b[q+2>>1]=(D+4+E+F+G+H+I+J+N+O|0)>>>3;o=o+X|0;if((o&65535)<<16>>16<40){o=o<<16>>16;q=q+4|0}else break}J=b[ca>>1]|0}else J=o;r=b[da>>1]|0;if(r<<16>>16<40){E=Q<<16>>16;D=P<<16>>16;C=M<<16>>16;m=L<<16>>16;F=w<<16>>16;G=K<<16>>16;H=J<<16>>16;I=J<<16>>16<40;B=u+32768|0;n=r<<16>>16;l=1;s=r;q=J;c=r;o=-1;while(1){if(I){u=e[f+(n<<1)>>1]|0;p=(b[g+(R*80|0)+(n<<1)>>1]|0)+(b[g+(sa*80|0)+(n<<1)>>1]|0)+(b[g+(E*80|0)+(n<<1)>>1]|0)+(b[g+(D*80|0)+(n<<1)>>1]|0)+(b[g+(C*80|0)+(n<<1)>>1]|0)+(b[g+(m*80|0)+(n<<1)>>1]|0)+(b[g+(F*80|0)+(n<<1)>>1]|0)+(b[g+(G*80|0)+(n<<1)>>1]|0)|0;r=B+(b[g+(n*80|0)+(n<<1)>>1]<<9)|0;A=H;x=J;z=va;while(1){y=(e[z>>1]|0)+u<<16>>16;y=(Z(y,y)|0)>>>15;v=r+(b[z+2>>1]<<13)+(p+(b[g+(n*80|0)+(A<<1)>>1]|0)<<10)|0;if((Z(y<<16>>16,l<<16>>16)|0)>(Z(v>>16,o<<16>>16)|0)){l=v>>>16&65535;s=c;q=x;o=y&65535}t=A+X|0;x=t&65535;if(x<<16>>16>=40)break;else{A=t<<16>>16;z=z+4|0}}}r=n+X|0;c=r&65535;if(c<<16>>16>=40)break;else n=r<<16>>16}}else{l=1;s=r;q=J;o=-1}}else{s=N;q=O}if((Z(o<<16>>16,T<<16>>16)|0)>(Z(l<<16>>16,U<<16>>16)|0)){b[k>>1]=ua;b[ea>>1]=S;b[fa>>1]=Q;b[ga>>1]=P;b[ha>>1]=M;b[ia>>1]=L;b[ja>>1]=w;b[ka>>1]=K;if(ta){b[la>>1]=s;b[ma>>1]=q}}else{l=T;o=U}n=b[ra>>1]|0;if(na){c=1;m=2;while(1){b[h+(c<<1)>>1]=b[h+(m<<1)>>1]|0;m=m+1|0;if((m&65535)<<16>>16==a<<16>>16)break;else c=c+1|0}}b[V>>1]=n;W=W+1<<16>>16;if(W<<16>>16>=d<<16>>16)break;else{T=l;N=s;O=q;U=o}}i=wa;return}function qd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=39;while(1){h=a+(i<<1)|0;g=b[h>>1]|0;f=c+(i<<1)|0;if(g<<16>>16>-1)b[f>>1]=32767;else{b[f>>1]=-32767;if(g<<16>>16==-32768)g=32767;else g=0-(g&65535)&65535;b[h>>1]=g}b[d+(i<<1)>>1]=g;if((i|0)>0)i=i+-1|0;else break}k=8-(e<<16>>16)|0;if((k|0)>0){j=0;f=0}else return;do{e=0;a=0;h=32767;while(1){c=b[d+(e<<1)>>1]|0;i=c<<16>>16>-1?c<<16>>16>16:0;f=i?a:f;g=e+5|0;a=g&65535;if(a<<16>>16>=40)break;else{e=g<<16>>16;h=i?c:h}}b[d+(f<<16>>16<<1)>>1]=-1;j=j+1<<16>>16}while((j<<16>>16|0)<(k|0));j=0;do{c=1;a=1;g=32767;while(1){e=b[d+(c<<1)>>1]|0;i=e<<16>>16>-1?e<<16>>16>16:0;f=i?a:f;h=c+5|0;a=h&65535;if(a<<16>>16>=40)break;else{c=h<<16>>16;g=i?e:g}}b[d+(f<<16>>16<<1)>>1]=-1;j=j+1<<16>>16}while((j<<16>>16|0)<(k|0));j=0;do{c=2;a=2;g=32767;while(1){e=b[d+(c<<1)>>1]|0;i=e<<16>>16>-1?e<<16>>16>16:0;f=i?a:f;h=c+5|0;a=h&65535;if(a<<16>>16>=40)break;else{c=h<<16>>16;g=i?e:g}}b[d+(f<<16>>16<<1)>>1]=-1;j=j+1<<16>>16}while((j<<16>>16|0)<(k|0));j=0;while(1){c=3;a=3;g=32767;while(1){e=b[d+(c<<1)>>1]|0;i=e<<16>>16>-1?e<<16>>16>16:0;f=i?a:f;h=c+5|0;a=h&65535;if(a<<16>>16>=40){g=f;break}else{c=h<<16>>16;g=i?e:g}}b[d+(g<<16>>16<<1)>>1]=-1;j=j+1<<16>>16;if((j<<16>>16|0)>=(k|0)){f=0;break}else f=g}do{c=4;a=4;j=32767;while(1){e=b[d+(c<<1)>>1]|0;i=e<<16>>16>-1?e<<16>>16>16:0;g=i?a:g;h=c+5|0;a=h&65535;if(a<<16>>16>=40)break;else{c=h<<16>>16;j=i?e:j}}b[d+(g<<16>>16<<1)>>1]=-1;f=f+1<<16>>16}while((f<<16>>16|0)<(k|0));return}function rd(a,d,e,f,g,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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;y=i;i=i+80|0;x=y;p=40;q=d;r=a;m=256;n=256;while(1){l=b[q>>1]|0;q=q+2|0;l=Z(l,l)|0;if((l|0)!=1073741824){o=(l<<1)+m|0;if((l^m|0)>0&(o^m|0)<0){c[k>>2]=1;m=(m>>>31)+2147483647|0}else m=o}else{c[k>>2]=1;m=2147483647}w=b[r>>1]|0;n=(Z(w<<1,w)|0)+n|0;p=p+-1<<16>>16;if(!(p<<16>>16))break;else r=r+2|0}w=ce(m,k)|0;u=w<<5;w=((u>>5|0)==(w|0)?u:w>>31^2147418112)>>16;u=(ce(n,k)|0)<<5>>16;v=39;s=d+78|0;t=x+78|0;l=e+78|0;while(1){r=Z(b[s>>1]|0,w)|0;s=s+-2|0;q=r<<1;d=a+(v<<1)|0;m=b[d>>1]|0;p=Z(m<<16>>16,u)|0;if((p|0)!=1073741824){o=(p<<1)+q|0;if((p^q|0)>0&(o^q|0)<0){c[k>>2]=1;o=(r>>>30&1)+2147483647|0}}else{c[k>>2]=1;o=2147483647}n=o<<10;n=Ce((n>>10|0)==(o|0)?n:o>>31^2147483647,k)|0;if(n<<16>>16>-1)b[l>>1]=32767;else{b[l>>1]=-32767;if(n<<16>>16==-32768)n=32767;else n=0-(n&65535)&65535;if(m<<16>>16==-32768)o=32767;else o=0-(m&65535)&65535;b[d>>1]=o}l=l+-2|0;b[t>>1]=n;if((v|0)<=0)break;else{v=v+-1|0;t=t+-2|0}}d=g<<16>>16;if(g<<16>>16<=0){b[h+(d<<1)>>1]=b[h>>1]|0;i=y;return}r=j&65535;q=0;p=-1;l=0;while(1){if((q|0)<40){n=q;o=q&65535;m=-1;while(1){k=b[x+(n<<1)>>1]|0;j=k<<16>>16>m<<16>>16;m=j?k:m;l=j?o:l;n=n+r|0;o=n&65535;if(o<<16>>16>=40)break;else n=n<<16>>16}}else m=-1;b[f+(q<<1)>>1]=l;if(m<<16>>16>p<<16>>16)b[h>>1]=q;else m=p;q=q+1|0;if((q&65535)<<16>>16==g<<16>>16)break;else p=m}l=b[h>>1]|0;b[h+(d<<1)>>1]=l;if(g<<16>>16>1)m=1;else{i=y;return}do{f=l+1<<16>>16;l=f<<16>>16>=g<<16>>16?0:f;b[h+(m<<1)>>1]=l;b[h+(m+d<<1)>>1]=l;m=m+1|0}while((m&65535)<<16>>16!=g<<16>>16);i=y;return}function sd(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(12)|0;if(!d){a=-1;return a|0}b[d>>1]=8;c[a>>2]=d;b[d+2>>1]=3;b[d+4>>1]=0;c[d+8>>2]=0;a=0;return a|0}function td(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function ud(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;do if((d|0)==8){f=a+2|0;g=(b[f>>1]|0)+-1<<16>>16;b[f>>1]=g;d=a+8|0;if(!(c[d>>2]|0)){c[e>>2]=1;b[f>>1]=3;break}h=a+4|0;if(g<<16>>16>2&(b[h>>1]|0)>0){c[e>>2]=2;b[h>>1]=(b[h>>1]|0)+-1<<16>>16;break}if(!(g<<16>>16)){c[e>>2]=2;b[f>>1]=b[a>>1]|0;break}else{c[e>>2]=3;break}}else{b[a+2>>1]=b[a>>1]|0;c[e>>2]=0;d=a+8|0}while(0);c[d>>2]=c[e>>2];return}function vd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(12)|0;e=d;if(!d){a=-1;return a|0}c[d>>2]=0;f=d+4|0;c[f>>2]=0;g=d+8|0;c[g>>2]=b;if((dd(d)|0)<<16>>16==0?(ac(f,c[g>>2]|0)|0)<<16>>16==0:0){ed(c[d>>2]|0)|0;cc(c[f>>2]|0)|0;c[a>>2]=e;a=0;return a|0}fd(d);bc(f);Ke(d);a=-1;return a|0}function wd(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;fd(b);bc((c[a>>2]|0)+4|0);Ke(c[a>>2]|0);c[a>>2]=0;return}function xd(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;m=i;i=i+448|0;k=m+320|0;l=m;Qe(g|0,0,488)|0;j=0;do{n=f+(j<<1)|0;b[n>>1]=(e[n>>1]|0)&65528;j=j+1|0}while((j|0)!=160);gd(c[a>>2]|0,f,160);n=a+4|0;dc(c[n>>2]|0,d,f,k,h,l)|0;hd(c[h>>2]|0,k,g,(c[n>>2]|0)+2392|0);i=m;return}function yd(a,c,d,e,f,g,h,j,k,l,m,n,o,p,q,r){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0;u=i;i=i+48|0;s=u+22|0;t=u;Ie(f,(a&-2|0)==6?d:c,s);Ie(f,e,t);d=m;c=s;f=d+22|0;do{b[d>>1]=b[c>>1]|0;d=d+2|0;c=c+2|0}while((d|0)<(f|0));He(g,m,o,40,l,0);He(t,o,o,40,l,0);Be(g,h,q,40);d=n;c=q;f=d+80|0;do{b[d>>1]=b[c>>1]|0;d=d+2|0;c=c+2|0}while((d|0)<(f|0));He(g,n,r,40,j,0);Be(s,r,p,40);He(t,p,p,40,k,0);i=u;return}function zd(a,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0,u=0,v=0,w=0,x=0;if((c|0)==7){v=11;c=f<<16>>16>>>1&65535;t=2}else{v=13;c=f;t=1}b[r>>1]=f<<16>>16<13017?f:13017;u=d<<16>>16;q=q+(u<<1)|0;r=c<<16>>16;g=g<<16>>16;d=20;c=k;s=q;while(1){k=s+2|0;x=Z(b[s>>1]|0,r)|0;w=Z(b[k>>1]|0,r)|0;x=(Z(b[c>>1]|0,g)|0)+x<<1;w=(Z(b[c+2>>1]|0,g)|0)+w<<1<>1]=((x<>>16;b[k>>1]=(w+32768|0)>>>16;d=d+-1<<16>>16;if(!(d<<16>>16))break;else{c=c+4|0;s=s+4|0}}c=f<<16>>16;He(h,q,i+(u<<1)|0,40,n,1);d=30;s=0;while(1){w=d+u|0;b[o+(s<<1)>>1]=(e[a+(w<<1)>>1]|0)-(e[i+(w<<1)>>1]|0);w=Z(b[l+(d<<1)>>1]|0,c)|0;x=(Z(b[m+(d<<1)>>1]|0,g)|0)>>v;b[p+(s<<1)>>1]=(e[j+(d<<1)>>1]|0)-(w>>>14)-x;s=s+1|0;if((s|0)==10)break;else d=d+1|0}return}function Ad(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(16)|0;if(!d){a=-1;return a|0};b[d>>1]=0;b[d+2>>1]=0;b[d+4>>1]=0;b[d+6>>1]=0;b[d+8>>1]=0;b[d+10>>1]=0;b[d+12>>1]=0;b[d+14>>1]=0;c[a>>2]=d;a=0;return a|0}function Bd(a){a=a|0;if(!a){a=-1;return a|0};b[a>>1]=0;b[a+2>>1]=0;b[a+4>>1]=0;b[a+6>>1]=0;b[a+8>>1]=0;b[a+10>>1]=0;b[a+12>>1]=0;b[a+14>>1]=0;a=0;return a|0}function Cd(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Dd(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;f=e[c+6>>1]|0;d=e[c+8>>1]|0;g=f-d|0;g=(g&65535|0)!=32767?g&65535:32767;h=e[c+10>>1]|0;d=d-h|0;g=(d<<16>>16|0)<(g<<16>>16|0)?d&65535:g;d=e[c+12>>1]|0;h=h-d|0;g=(h<<16>>16|0)<(g<<16>>16|0)?h&65535:g;h=e[c+14>>1]|0;d=d-h|0;g=(d<<16>>16|0)<(g<<16>>16|0)?d&65535:g;h=h-(e[c+16>>1]|0)|0;d=b[c+2>>1]|0;i=e[c+4>>1]|0;c=(d&65535)-i|0;c=(c&65535|0)!=32767?c&65535:32767;f=i-f|0;if(((h<<16>>16|0)<(g<<16>>16|0)?h&65535:g)<<16>>16<1500?1:(((f<<16>>16|0)<(c<<16>>16|0)?f&65535:c)<<16>>16|0)<((d<<16>>16>32e3?600:d<<16>>16>30500?800:1100)|0)){h=(b[a>>1]|0)+1<<16>>16;i=h<<16>>16>11;b[a>>1]=i?12:h;return i&1|0}else{b[a>>1]=0;return 0}return 0}function Ed(a,c,d){a=a|0;c=c|0;d=d|0;c=De(c,3,d)|0;c=Rd(c,b[a+2>>1]|0,d)|0;c=Rd(c,b[a+4>>1]|0,d)|0;c=Rd(c,b[a+6>>1]|0,d)|0;c=Rd(c,b[a+8>>1]|0,d)|0;c=Rd(c,b[a+10>>1]|0,d)|0;c=Rd(c,b[a+12>>1]|0,d)|0;return (Rd(c,b[a+14>>1]|0,d)|0)<<16>>16>15565|0}function Fd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;d=a+4|0;b[a+2>>1]=b[d>>1]|0;e=a+6|0;b[d>>1]=b[e>>1]|0;d=a+8|0;b[e>>1]=b[d>>1]|0;e=a+10|0;b[d>>1]=b[e>>1]|0;d=a+12|0;b[e>>1]=b[d>>1]|0;a=a+14|0;b[d>>1]=b[a>>1]|0;b[a>>1]=c<<16>>16>>>3;return}function Gd(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}c[a>>2]=0;d=Je(128)|0;if(!d){f=-1;return f|0}e=d+72|0;f=e+46|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));b[d>>1]=150;b[d+36>>1]=150;b[d+18>>1]=150;b[d+54>>1]=0;b[d+2>>1]=150;b[d+38>>1]=150;b[d+20>>1]=150;b[d+56>>1]=0;b[d+4>>1]=150;b[d+40>>1]=150;b[d+22>>1]=150;b[d+58>>1]=0;b[d+6>>1]=150;b[d+42>>1]=150;b[d+24>>1]=150;b[d+60>>1]=0;b[d+8>>1]=150;b[d+44>>1]=150;b[d+26>>1]=150;b[d+62>>1]=0;b[d+10>>1]=150;b[d+46>>1]=150;b[d+28>>1]=150;b[d+64>>1]=0;b[d+12>>1]=150;b[d+48>>1]=150;b[d+30>>1]=150;b[d+66>>1]=0;b[d+14>>1]=150;b[d+50>>1]=150;b[d+32>>1]=150;b[d+68>>1]=0;b[d+16>>1]=150;b[d+52>>1]=150;b[d+34>>1]=150;b[d+70>>1]=0;b[d+118>>1]=13106;b[d+120>>1]=0;b[d+122>>1]=0;b[d+124>>1]=0;b[d+126>>1]=13106;c[a>>2]=d;f=0;return f|0}function Hd(a){a=a|0;var c=0,d=0;if(!a){d=-1;return d|0}c=a+72|0;d=c+46|0;do{b[c>>1]=0;c=c+2|0}while((c|0)<(d|0));b[a>>1]=150;b[a+36>>1]=150;b[a+18>>1]=150;b[a+54>>1]=0;b[a+2>>1]=150;b[a+38>>1]=150;b[a+20>>1]=150;b[a+56>>1]=0;b[a+4>>1]=150;b[a+40>>1]=150;b[a+22>>1]=150;b[a+58>>1]=0;b[a+6>>1]=150;b[a+42>>1]=150;b[a+24>>1]=150;b[a+60>>1]=0;b[a+8>>1]=150;b[a+44>>1]=150;b[a+26>>1]=150;b[a+62>>1]=0;b[a+10>>1]=150;b[a+46>>1]=150;b[a+28>>1]=150;b[a+64>>1]=0;b[a+12>>1]=150;b[a+48>>1]=150;b[a+30>>1]=150;b[a+66>>1]=0;b[a+14>>1]=150;b[a+50>>1]=150;b[a+32>>1]=150;b[a+68>>1]=0;b[a+16>>1]=150;b[a+52>>1]=150;b[a+34>>1]=150;b[a+70>>1]=0;b[a+118>>1]=13106;b[a+120>>1]=0;b[a+122>>1]=0;b[a+124>>1]=0;b[a+126>>1]=13106;d=0;return d|0}function Id(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Jd(a,c){a=a|0;c=c|0;b[a+118>>1]=c;return}function Kd(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0;f=Ce(f,g)|0;if(f<<16>>16<=0)return;f=f<<16>>16;if((f*21298|0)==1073741824){c[g>>2]=1;h=2147483647}else h=f*42596|0;f=d-h|0;if(((f^d)&(h^d)|0)<0){c[g>>2]=1;f=(d>>>31)+2147483647|0}if((f|0)<=0)return;a=a+104|0;b[a>>1]=e[a>>1]|0|16384;return}function Ld(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;a=a+104|0;e=De(b[a>>1]|0,1,d)|0;b[a>>1]=e;if(!(c<<16>>16))return;b[a>>1]=(De(e,1,d)|0)&65535|8192;return}function Md(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0;g=a+112|0;f=Ge(b[g>>1]|0,b[c>>1]|0,d)|0;f=(f&65535)-((f&65535)>>>15&65535)|0;f=((f<<16>>31^f)&65535)<<16>>16<4;h=b[c>>1]|0;b[g>>1]=h;c=c+2|0;h=Ge(h,b[c>>1]|0,d)|0;h=(h&65535)-((h&65535)>>>15&65535)|0;f=((h<<16>>31^h)&65535)<<16>>16<4?(f?2:1):f&1;b[g>>1]=b[c>>1]|0;g=a+102|0;b[g>>1]=De(b[g>>1]|0,1,d)|0;c=a+110|0;if((Rd(b[c>>1]|0,f,d)|0)<<16>>16<=3){b[c>>1]=f;return}b[g>>1]=e[g>>1]|0|16384;b[c>>1]=f;return}function Nd(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=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;D=i;i=i+352|0;n=D+24|0;B=D;k=0;h=0;do{g=b[d+(k+-40<<1)>>1]|0;g=Z(g,g)|0;if((g|0)!=1073741824){j=(g<<1)+h|0;if((g^h|0)>0&(j^h|0)<0){c[f>>2]=1;h=(h>>>31)+2147483647|0}else h=j}else{c[f>>2]=1;h=2147483647}k=k+1|0}while((k|0)!=160);o=h;if((343039-o&o|0)<0){c[f>>2]=1;h=(o>>>31)+2147483647|0}else h=o+-343040|0;if((h|0)<0){A=a+102|0;b[A>>1]=e[A>>1]&16383}m=o+-15e3|0;p=(14999-o&o|0)<0;if(p){c[f>>2]=1;j=(o>>>31)+2147483647|0}else j=m;if((j|0)<0){A=a+108|0;b[A>>1]=e[A>>1]&16383}g=a+72|0;l=a+74|0;j=b[g>>1]|0;k=b[l>>1]|0;h=0;do{A=h<<2;y=Ge((b[d+(A<<1)>>1]|0)>>>2&65535,((j<<16>>16)*21955|0)>>>15&65535,f)|0;v=((y<<16>>16)*21955|0)>>>15&65535;u=Rd(j,v,f)|0;x=A|1;z=Ge((b[d+(x<<1)>>1]|0)>>>2&65535,((k<<16>>16)*6390|0)>>>15&65535,f)|0;w=((z<<16>>16)*6390|0)>>>15&65535;j=Rd(k,w,f)|0;b[n+(A<<1)>>1]=Rd(u,j,f)|0;b[n+(x<<1)>>1]=Ge(u,j,f)|0;x=A|2;j=Ge((b[d+(x<<1)>>1]|0)>>>2&65535,v,f)|0;y=Rd(y,((j<<16>>16)*21955|0)>>>15&65535,f)|0;A=A|3;k=Ge((b[d+(A<<1)>>1]|0)>>>2&65535,w,f)|0;z=Rd(z,((k<<16>>16)*6390|0)>>>15&65535,f)|0;b[n+(x<<1)>>1]=Rd(y,z,f)|0;b[n+(A<<1)>>1]=Ge(y,z,f)|0;h=h+1|0}while((h|0)!=40);b[g>>1]=j;b[l>>1]=k;k=a+76|0;j=a+80|0;h=0;do{A=h<<2;Od(n+(A<<1)|0,n+((A|2)<<1)|0,k,f);Od(n+((A|1)<<1)|0,n+((A|3)<<1)|0,j,f);h=h+1|0}while((h|0)!=40);k=a+84|0;j=a+86|0;h=a+92|0;g=0;do{A=g<<3;Pd(n+(A<<1)|0,n+((A|4)<<1)|0,k,f);Pd(n+((A|2)<<1)|0,n+((A|6)<<1)|0,j,f);Pd(n+((A|3)<<1)|0,n+((A|7)<<1)|0,h,f);g=g+1|0}while((g|0)!=20);k=a+88|0;j=a+90|0;h=0;do{A=h<<4;Pd(n+(A<<1)|0,n+((A|8)<<1)|0,k,f);Pd(n+((A|4)<<1)|0,n+((A|12)<<1)|0,j,f);h=h+1|0}while((h|0)!=10);t=Qd(n,a+70|0,32,40,4,1,15,f)|0;b[B+16>>1]=t;u=Qd(n,a+68|0,16,20,8,7,16,f)|0;b[B+14>>1]=u;v=Qd(n,a+66|0,16,20,8,3,16,f)|0;b[B+12>>1]=v;w=Qd(n,a+64|0,16,20,8,2,16,f)|0;b[B+10>>1]=w;x=Qd(n,a+62|0,16,20,8,6,16,f)|0;b[B+8>>1]=x;y=Qd(n,a+60|0,8,10,16,4,16,f)|0;b[B+6>>1]=y;z=Qd(n,a+58|0,8,10,16,12,16,f)|0;b[B+4>>1]=z;A=Qd(n,a+56|0,8,10,16,8,16,f)|0;b[B+2>>1]=A;s=Qd(n,a+54|0,8,10,16,0,16,f)|0;b[B>>1]=s;k=0;g=0;do{j=a+(g<<1)|0;d=qe(b[j>>1]|0)|0;j=b[j>>1]|0;h=d<<16>>16;if(d<<16>>16<0){l=0-h<<16;if((l|0)<983040)l=j<<16>>16>>(l>>16)&65535;else l=0}else{l=j<<16>>16;j=l<>16>>h|0)==(l|0))l=j&65535;else l=(l>>>15^32767)&65535}j=Td(De(b[B+(g<<1)>>1]|0,1,f)|0,l)|0;r=Ge(d,5,f)|0;h=r<<16>>16;if(r<<16>>16<0){l=0-h<<16;if((l|0)<983040)l=j<<16>>16>>(l>>16);else l=0}else{j=j<<16>>16;l=j<>16>>h|0)!=(j|0))l=j>>>15^32767}l=l<<16>>16;l=Z(l,l)|0;if((l|0)!=1073741824){j=(l<<1)+k|0;if((l^k|0)>0&(j^k|0)<0){c[f>>2]=1;k=(k>>>31)+2147483647|0}else k=j}else{c[f>>2]=1;k=2147483647}g=g+1|0}while((g|0)!=9);r=k<<6;k=(((r>>6|0)==(k|0)?r:k>>31^2147418112)>>16)*3641>>15;if((k|0)>32767){c[f>>2]=1;k=32767}r=b[a>>1]|0;l=r<<16>>16;q=b[a+2>>1]|0;j=(q<<16>>16)+l|0;if((q^r)<<16>>16>-1&(j^l|0)<0){c[f>>2]=1;j=(l>>>31)+2147483647|0}r=b[a+4>>1]|0;l=r+j|0;if((r^j|0)>-1&(l^j|0)<0){c[f>>2]=1;l=(j>>>31)+2147483647|0}r=b[a+6>>1]|0;j=r+l|0;if((r^l|0)>-1&(j^l|0)<0){c[f>>2]=1;j=(l>>>31)+2147483647|0}r=b[a+8>>1]|0;l=r+j|0;if((r^j|0)>-1&(l^j|0)<0){c[f>>2]=1;l=(j>>>31)+2147483647|0}r=b[a+10>>1]|0;j=r+l|0;if((r^l|0)>-1&(j^l|0)<0){c[f>>2]=1;j=(l>>>31)+2147483647|0}r=b[a+12>>1]|0;l=r+j|0;if((r^j|0)>-1&(l^j|0)<0){c[f>>2]=1;l=(j>>>31)+2147483647|0}r=b[a+14>>1]|0;j=r+l|0;if((r^l|0)>-1&(j^l|0)<0){c[f>>2]=1;j=(l>>>31)+2147483647|0}r=b[a+16>>1]|0;l=r+j|0;if((r^j|0)>-1&(l^j|0)<0){c[f>>2]=1;l=(j>>>31)+2147483647|0}q=l<<13;q=((q>>13|0)==(l|0)?q:l>>31^2147418112)>>>16&65535;l=(Z((Ge(q,0,f)|0)<<16>>16,-2808)|0)>>15;if((l|0)>32767){c[f>>2]=1;l=32767}n=Rd(l&65535,1260,f)|0;r=a+100|0;l=De(b[r>>1]|0,1,f)|0;if((k<<16>>16|0)>((n<<16>>16<720?720:n<<16>>16)|0))l=(l&65535|16384)&65535;b[r>>1]=l;if(p){c[f>>2]=1;m=(o>>>31)+2147483647|0}h=b[a+118>>1]|0;p=a+126|0;l=b[p>>1]|0;g=l<<16>>16<19660;g=h<<16>>16>16?(g?2621:6553):g?2621:655;d=l&65535;k=d<<16;l=Z(g,l<<16>>16)|0;if((l|0)==1073741824){c[f>>2]=1;l=2147483647}else l=l<<1;j=k-l|0;if(((j^k)&(l^k)|0)<0){c[f>>2]=1;j=(d>>>15)+2147483647|0}k=Z(g,h<<16>>16)|0;do if((k|0)==1073741824){c[f>>2]=1;l=2147483647}else{l=j+(k<<1)|0;if(!((j^k|0)>0&(l^j|0)<0))break;c[f>>2]=1;l=(j>>>31)+2147483647|0}while(0);d=Ce(l,f)|0;o=(m|0)>-1;b[p>>1]=o?(d<<16>>16<13106?13106:d):13106;d=a+106|0;b[d>>1]=De(b[d>>1]|0,1,f)|0;j=a+108|0;l=De(b[j>>1]|0,1,f)|0;b[j>>1]=l;k=b[p>>1]|0;a:do if(o){do if(k<<16>>16>19660)b[d>>1]=e[d>>1]|16384;else{if(k<<16>>16>16383)break;k=a+116|0;l=0;break a}while(0);b[j>>1]=l&65535|16384;C=62}else C=62;while(0);do if((C|0)==62){l=a+116|0;if(k<<16>>16<=22936){k=l;l=0;break}k=l;l=Rd(b[l>>1]|0,1,f)|0}while(0);b[k>>1]=l;if((b[d>>1]&32640)!=32640){n=(b[j>>1]&32767)==32767;b[a+122>>1]=n&1;if(n)C=67}else{b[a+122>>1]=1;C=67}do if((C|0)==67){k=a+98|0;if((b[k>>1]|0)>=5)break;b[k>>1]=5}while(0);n=a+102|0;do if((b[n>>1]&24576)==24576)C=71;else{if((b[a+104>>1]&31744)==31744){C=71;break}if(!(b[r>>1]&32640)){b[a+98>>1]=20;j=32767;break}else{j=s;k=0;l=0}while(1){g=b[a+18+(k<<1)>>1]|0;h=j<<16>>16>g<<16>>16;m=h?j:g;j=h?g:j;m=m<<16>>16<184?184:m;j=j<<16>>16<184?184:j;g=qe(j)|0;h=g<<16>>16;do if(g<<16>>16<0){d=0-h<<16;if((d|0)>=983040){d=0;break}d=j<<16>>16>>(d>>16)&65535}else{d=j<<16>>16;j=d<>16>>h|0)==(d|0)){d=j&65535;break}d=(d>>>15^32767)&65535}while(0);m=Td(De(m,1,f)|0,d)|0;l=Rd(l,De(m,Ge(8,g,f)|0,f)|0,f)|0;k=k+1|0;if((k|0)==9)break;j=b[B+(k<<1)>>1]|0}if(l<<16>>16>1e3){b[a+98>>1]=20;j=32767;break}j=b[r>>1]|0;k=a+98|0;l=b[k>>1]|0;do if(!(j&16384))C=86;else{if(!(l<<16>>16)){l=j;break}l=Ge(l,1,f)|0;b[k>>1]=l;C=86}while(0);if((C|0)==86){if(l<<16>>16==20){j=32767;break}l=b[r>>1]|0}j=(l&16384)==0?16383:3276}while(0);if((C|0)==71){b[a+98>>1]=20;j=32767}k=s;l=0;while(1){m=a+18+(l<<1)|0;d=oe(j,Ge(k,b[m>>1]|0,f)|0,f)|0;b[m>>1]=Rd(b[m>>1]|0,d,f)|0;l=l+1|0;if((l|0)==9)break;k=b[B+(l<<1)>>1]|0}do if(!(b[r>>1]&30720)){if(b[n>>1]&30720){C=95;break}if(!(b[a+114>>1]|0)){h=2097;g=1638;d=2}else C=95}else C=95;while(0);do if((C|0)==95){if((b[a+98>>1]|0)==0?(b[a+114>>1]|0)==0:0){h=1867;g=491;d=2;break}h=1638;g=0;d=0}while(0);j=0;do{k=a+(j<<1)|0;l=Ge(b[a+36+(j<<1)>>1]|0,b[k>>1]|0,f)|0;if(l<<16>>16<0){l=oe(h,l,f)|0;l=Rd(-2,Rd(b[k>>1]|0,l,f)|0,f)|0;l=l<<16>>16<40?40:l}else{l=oe(g,l,f)|0;l=Rd(d,Rd(b[k>>1]|0,l,f)|0,f)|0;l=l<<16>>16>16e3?16e3:l}b[k>>1]=l;j=j+1|0}while((j|0)!=9);b[a+36>>1]=s;b[a+38>>1]=A;b[a+40>>1]=z;b[a+42>>1]=y;b[a+44>>1]=x;b[a+46>>1]=w;b[a+48>>1]=v;b[a+50>>1]=u;b[a+52>>1]=t;k=q<<16>>16>100;j=k?7:4;k=k?4:5;if(!o){b[a+94>>1]=0;b[a+96>>1]=0;b[a+114>>1]=0;b[a+116>>1]=0;f=0;a=a+120|0;b[a>>1]=f;i=D;return f|0}h=a+114|0;g=b[h>>1]|0;do if((b[a+116>>1]|0)<=100){if(g<<16>>16)break;g=b[r>>1]|0;do if(!(g&16368)){if((b[p>>1]|0)>21298)g=1;else break;a=a+120|0;b[a>>1]=g;i=D;return g|0}while(0);h=a+94|0;if(!(g&16384)){b[h>>1]=0;g=a+96|0;h=b[g>>1]|0;if(h<<16>>16<=0){f=0;a=a+120|0;b[a>>1]=f;i=D;return f|0}b[g>>1]=Ge(h,1,f)|0;f=1;a=a+120|0;b[a>>1]=f;i=D;return f|0}else{f=Rd(b[h>>1]|0,1,f)|0;b[h>>1]=f;if((f<<16>>16|0)<(k|0)){f=1;a=a+120|0;b[a>>1]=f;i=D;return f|0}b[a+96>>1]=j;f=1;a=a+120|0;b[a>>1]=f;i=D;return f|0}}else{if(g<<16>>16>=250)break;b[h>>1]=250;g=250}while(0);b[a+94>>1]=4;b[h>>1]=Ge(g,1,f)|0;f=1;a=a+120|0;b[a>>1]=f;i=D;return f|0}function Od(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=(b[e>>1]|0)*21955>>15;if((g|0)>32767){c[f>>2]=1;g=32767}h=Ge(b[a>>1]|0,g&65535,f)|0;g=(h<<16>>16)*21955>>15;if((g|0)>32767){c[f>>2]=1;g=32767}i=Rd(b[e>>1]|0,g&65535,f)|0;b[e>>1]=h;e=e+2|0;g=(b[e>>1]|0)*6390>>15;if((g|0)>32767){c[f>>2]=1;g=32767}h=Ge(b[d>>1]|0,g&65535,f)|0;g=(h<<16>>16)*6390>>15;if((g|0)>32767){c[f>>2]=1;g=32767}g=Rd(b[e>>1]|0,g&65535,f)|0;b[e>>1]=h;b[a>>1]=De(Rd(i,g,f)|0,1,f)|0;b[d>>1]=De(Ge(i,g,f)|0,1,f)|0;return}function Pd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=(b[e>>1]|0)*13363>>15;if((g|0)>32767){c[f>>2]=1;g=32767}h=Ge(b[d>>1]|0,g&65535,f)|0;g=(h<<16>>16)*13363>>15;if((g|0)>32767){c[f>>2]=1;g=32767}g=Rd(b[e>>1]|0,g&65535,f)|0;b[e>>1]=h;b[d>>1]=De(Ge(b[a>>1]|0,g,f)|0,1,f)|0;b[a>>1]=De(Rd(b[a>>1]|0,g,f)|0,1,f)|0;return}function Qd(a,d,e,f,g,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;if(e<<16>>16>16){n=g<<16>>16;k=h<<16>>16;o=e<<16>>16;l=0;do{p=b[a+((Z(o,n)|0)+k<<1)>>1]|0;p=(p&65535)-((p&65535)>>>15&65535)|0;p=(p<<16>>31^p)<<16;m=(p>>15)+l|0;if((p>>16^l|0)>0&(m^l|0)<0){c[j>>2]=1;l=(l>>>31)+2147483647|0}else l=m;o=o+1|0}while((o&65535)<<16>>16!=f<<16>>16);o=l}else o=0;l=b[d>>1]|0;p=Ge(16,i,j)|0;k=p<<16>>16;if(p<<16>>16>0){f=l<>k|0)!=(l|0))f=l>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)f=l>>(k>>16);else f=0}k=f+o|0;if((f^o|0)>-1&(k^o|0)<0){c[j>>2]=1;k=(o>>>31)+2147483647|0}p=i<<16>>16;i=i<<16>>16>0;if(i){f=o<>p|0)!=(o|0))f=o>>31^2147483647}else{f=0-p<<16;if((f|0)<2031616)f=o>>(f>>16);else f=0}b[d>>1]=f>>>16;if(e<<16>>16>0){n=g<<16>>16;l=h<<16>>16;m=0;do{h=b[a+((Z(m,n)|0)+l<<1)>>1]|0;h=(h&65535)-((h&65535)>>>15&65535)|0;h=(h<<16>>31^h)<<16;f=(h>>15)+k|0;if((h>>16^k|0)>0&(f^k|0)<0){c[j>>2]=1;k=(k>>>31)+2147483647|0}else k=f;m=m+1|0}while((m&65535)<<16>>16!=e<<16>>16)}if(i){f=k<>p|0)==(k|0)){j=f;j=j>>>16;j=j&65535;return j|0}j=k>>31^2147483647;j=j>>>16;j=j&65535;return j|0}else{f=0-p<<16;if((f|0)>=2031616){j=0;j=j>>>16;j=j&65535;return j|0}j=k>>(f>>16);j=j>>>16;j=j&65535;return j|0}return 0}function Rd(a,b,d){a=a|0;b=b|0;d=d|0;a=(b<<16>>16)+(a<<16>>16)|0;if((a|0)<=32767){if((a|0)<-32768){c[d>>2]=1;a=-32768}}else{c[d>>2]=1;a=32767}return a&65535|0}function Sd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=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;y=i;i=i+32|0;w=y+12|0;x=y;b[w>>1]=1024;b[x>>1]=1024;k=b[a+2>>1]|0;h=b[a+20>>1]|0;e=((h+k|0)>>>2)+64512|0;b[w+2>>1]=e;h=((k-h|0)>>>2)+1024|0;b[x+2>>1]=h;k=b[a+4>>1]|0;f=b[a+18>>1]|0;e=((f+k|0)>>>2)-e|0;b[w+4>>1]=e;h=((k-f|0)>>>2)+h|0;b[x+4>>1]=h;f=b[a+6>>1]|0;k=b[a+16>>1]|0;e=((k+f|0)>>>2)-e|0;b[w+6>>1]=e;h=((f-k|0)>>>2)+h|0;b[x+6>>1]=h;k=b[a+8>>1]|0;f=b[a+14>>1]|0;e=((f+k|0)>>>2)-e|0;b[w+8>>1]=e;h=((k-f|0)>>>2)+h|0;b[x+8>>1]=h;f=b[a+10>>1]|0;k=b[a+12>>1]|0;e=((k+f|0)>>>2)-e|0;b[w+10>>1]=e;b[x+10>>1]=((f-k|0)>>>2)+h;h=b[3454]|0;k=h<<16>>16;a=b[w+2>>1]|0;f=(a<<16>>16<<14)+(k<<10)|0;s=f&-65536;f=(f>>>1)-(f>>16<<15)<<16;v=(((Z(f>>16,k)|0)>>15)+(Z(s>>16,k)|0)<<2)+-16777216|0;v=(b[w+4>>1]<<14)+v|0;j=v>>16;v=(v>>>1)-(j<<15)<<16;s=(((Z(v>>16,k)|0)>>15)+(Z(j,k)|0)<<2)-((f>>15)+s)|0;s=(b[w+6>>1]<<14)+s|0;f=s>>16;s=(s>>>1)-(f<<15)<<16;j=(((Z(s>>16,k)|0)>>15)+(Z(f,k)|0)<<2)-((v>>15)+(j<<16))|0;j=(b[w+8>>1]<<14)+j|0;v=j>>16;f=(e<<16>>3)+((((Z((j>>>1)-(v<<15)<<16>>16,k)|0)>>15)+(Z(v,k)|0)<<1)-((s>>15)+(f<<16)))|0;s=w+4|0;k=w;v=0;j=0;e=0;r=w+10|0;f=(f+33554432|0)>>>0<67108863?f>>>10&65535:(f|0)>33554431?32767:-32768;a:while(1){t=a<<16>>16<<14;q=k+6|0;p=k+8|0;o=j<<16>>16;while(1){if((o|0)>=60)break a;k=(o&65535)+1<<16>>16;l=b[6908+(k<<16>>16<<1)>>1]|0;u=l<<16>>16;j=t+(u<<10)|0;g=j&-65536;j=(j>>>1)-(j>>16<<15)<<16;m=(((Z(j>>16,u)|0)>>15)+(Z(g>>16,u)|0)<<2)+-16777216|0;n=b[s>>1]|0;m=(n<<16>>16<<14)+m|0;B=m>>16;m=(m>>>1)-(B<<15)<<16;g=(((Z(m>>16,u)|0)>>15)+(Z(B,u)|0)<<2)-((j>>15)+g)|0;j=b[q>>1]|0;g=(j<<16>>16<<14)+g|0;a=g>>16;g=(g>>>1)-(a<<15)<<16;B=(((Z(g>>16,u)|0)>>15)+(Z(a,u)|0)<<2)-((m>>15)+(B<<16))|0;m=b[p>>1]|0;B=(m<<16>>16<<14)+B|0;A=B>>16;a=(((Z((B>>>1)-(A<<15)<<16>>16,u)|0)>>15)+(Z(A,u)|0)<<1)-((g>>15)+(a<<16))|0;g=b[r>>1]|0;a=(g<<16>>16<<13)+a|0;a=(a+33554432|0)>>>0<67108863?a>>>10&65535:(a|0)>33554431?32767:-32768;if((Z(a<<16>>16,f<<16>>16)|0)<1){u=k;k=n;break}else{o=o+1|0;h=l;f=a}}s=g<<16>>16<<13;r=k<<16>>16<<14;n=j<<16>>16<<14;p=m<<16>>16<<14;g=l<<16>>16;o=4;while(1){A=(h<<16>>16>>>1)+(g>>>1)|0;g=A<<16;q=g>>16;g=t+(g>>6)|0;B=g&-65536;g=(g>>>1)-(g>>16<<15)<<16;m=r+((((Z(g>>16,q)|0)>>15)+(Z(B>>16,q)|0)<<2)+-16777216)|0;k=m>>16;m=(m>>>1)-(k<<15)<<16;B=n+((((Z(m>>16,q)|0)>>15)+(Z(k,q)|0)<<2)-((g>>15)+B))|0;g=B>>16;B=(B>>>1)-(g<<15)<<16;k=p+((((Z(B>>16,q)|0)>>15)+(Z(g,q)|0)<<2)-((m>>15)+(k<<16)))|0;m=k>>16;A=A&65535;g=s+((((Z((k>>>1)-(m<<15)<<16>>16,q)|0)>>15)+(Z(m,q)|0)<<1)-((B>>15)+(g<<16)))|0;g=(g+33554432|0)>>>0<67108863?g>>>10&65535:(g|0)>33554431?32767:-32768;B=(Z(g<<16>>16,a<<16>>16)|0)<1;q=B?l:A;a=B?a:g;h=B?A:h;f=B?g:f;o=o+-1<<16>>16;g=q<<16>>16;if(!(o<<16>>16)){l=g;j=h;h=q;break}else l=q}k=e<<16>>16;g=a<<16>>16;a=(f&65535)-g|0;f=a<<16;if(f){B=(a&65535)-(a>>>15&1)|0;B=B<<16>>31^B;a=(qe(B&65535)|0)<<16>>16;a=(Z((Td(16383,B<<16>>16<>16,(j&65535)-l<<16>>16)|0)>>19-a;if((f|0)<0)a=0-(a<<16>>16)|0;h=l-((Z(a<<16>>16,g)|0)>>>10)&65535}b[c+(k<<1)>>1]=h;f=v<<16>>16==0?x:w;A=h<<16>>16;a=b[f+2>>1]|0;g=(a<<16>>16<<14)+(A<<10)|0;B=g&-65536;g=(g>>>1)-(g>>16<<15)<<16;t=(((Z(g>>16,A)|0)>>15)+(Z(B>>16,A)|0)<<2)+-16777216|0;t=(b[f+4>>1]<<14)+t|0;s=t>>16;t=(t>>>1)-(s<<15)<<16;B=(((Z(t>>16,A)|0)>>15)+(Z(s,A)|0)<<2)-((g>>15)+B)|0;B=(b[f+6>>1]<<14)+B|0;g=B>>16;B=(B>>>1)-(g<<15)<<16;s=(((Z(B>>16,A)|0)>>15)+(Z(g,A)|0)<<2)-((t>>15)+(s<<16))|0;s=(b[f+8>>1]<<14)+s|0;t=s>>16;e=e+1<<16>>16;g=(((Z((s>>>1)-(t<<15)<<16>>16,A)|0)>>15)+(Z(t,A)|0)<<1)-((B>>15)+(g<<16))|0;g=(b[f+10>>1]<<13)+g|0;if(e<<16>>16<10){s=f+4|0;k=f;v=v^1;j=u;r=f+10|0;f=(g+33554432|0)>>>0<67108863?g>>>10&65535:(g|0)>33554431?32767:-32768}else{z=13;break}}if((z|0)==13){i=y;return}b[c>>1]=b[d>>1]|0;b[c+2>>1]=b[d+2>>1]|0;b[c+4>>1]=b[d+4>>1]|0;b[c+6>>1]=b[d+6>>1]|0;b[c+8>>1]=b[d+8>>1]|0;b[c+10>>1]=b[d+10>>1]|0;b[c+12>>1]=b[d+12>>1]|0;b[c+14>>1]=b[d+14>>1]|0;b[c+16>>1]=b[d+16>>1]|0;b[c+18>>1]=b[d+18>>1]|0;i=y;return}function Td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=b<<16>>16;if(a<<16>>16<1?1:a<<16>>16>b<<16>>16){e=0;return e|0}if(a<<16>>16==b<<16>>16){e=32767;return e|0}d=e<<1;c=e<<2;f=a<<16>>16<<3;a=(f|0)<(c|0);f=f-(a?0:c)|0;a=a?0:4;g=(f|0)<(d|0);f=f-(g?0:d)|0;b=(f|0)<(e|0);a=(b&1|(g?a:a|2))<<3^8;b=f-(b?0:e)<<3;if((b|0)>=(c|0)){b=b-c|0;a=a&65528|4}f=(b|0)<(d|0);g=b-(f?0:d)|0;b=(g|0)<(e|0);a=(b&1^1|(f?a:a|2))<<16>>13;b=g-(b?0:e)<<3;if((b|0)>=(c|0)){b=b-c|0;a=a&65528|4}f=(b|0)<(d|0);g=b-(f?0:d)|0;b=(g|0)<(e|0);a=(b&1^1|(f?a:a|2))<<16>>13;b=g-(b?0:e)<<3;if((b|0)>=(c|0)){b=b-c|0;a=a&65528|4}h=(b|0)<(d|0);f=b-(h?0:d)|0;g=(f|0)<(e|0);b=(g&1^1|(h?a:a|2))<<16>>13;a=f-(g?0:e)<<3;if((a|0)>=(c|0)){a=a-c|0;b=b&65528|4}h=(a|0)<(d|0);h=((a-(h?0:d)|0)>=(e|0)|(h?b:b|2))&65535;return h|0}function Ud(a){a=a|0;if(!a){a=-1;return a|0}b[a>>1]=-14336;b[a+8>>1]=-2381;b[a+2>>1]=-14336;b[a+10>>1]=-2381;b[a+4>>1]=-14336;b[a+12>>1]=-2381;b[a+6>>1]=-14336;b[a+14>>1]=-2381;a=0;return a|0}function Vd(a,d,f,g,h,j,k,l){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+16|0;p=r+2|0;q=r;m=0;n=10;while(1){o=b[f>>1]|0;o=((Z(o,o)|0)>>>3)+m|0;m=b[f+2>>1]|0;m=o+((Z(m,m)|0)>>>3)|0;o=b[f+4>>1]|0;o=m+((Z(o,o)|0)>>>3)|0;m=b[f+6>>1]|0;m=o+((Z(m,m)|0)>>>3)|0;n=n+-1<<16>>16;if(!(n<<16>>16))break;else f=f+8|0}n=m<<4;n=(n|0)<0?2147483647:n;if((d|0)==7){de(((Ce(n,l)|0)<<16>>16)*52428|0,p,q,l);o=e[p>>1]<<16;n=b[q>>1]<<1;d=b[a+8>>1]|0;m=(d<<16>>16)*88|0;if(d<<16>>16>-1&(m|0)<-783741){c[l>>2]=1;f=2147483647}else f=m+783741|0;d=(b[a+10>>1]|0)*74|0;m=d+f|0;if((d^f|0)>-1&(m^f|0)<0){c[l>>2]=1;f=(f>>>31)+2147483647|0}else f=m;d=(b[a+12>>1]|0)*44|0;m=d+f|0;if((d^f|0)>-1&(m^f|0)<0){c[l>>2]=1;f=(f>>>31)+2147483647|0}else f=m;a=(b[a+14>>1]|0)*24|0;m=a+f|0;if((a^f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}a=o+-1966080+n|0;f=m-a|0;if(((f^m)&(m^a)|0)<0){c[l>>2]=1;f=(m>>>31)+2147483647|0}l=f>>17;b[g>>1]=l;l=(f>>2)-(l<<15)|0;l=l&65535;b[h>>1]=l;i=r;return}o=pe(n)|0;m=o<<16>>16;if(o<<16>>16>0){f=n<>m|0)==(n|0))n=f;else n=n>>31^2147483647}else{m=0-m<<16;if((m|0)<2031616)n=n>>(m>>16);else n=0}ee(n,o,p,q);p=Z(b[p>>1]|0,-49320)|0;m=(Z(b[q>>1]|0,-24660)|0)>>15;m=(m&65536|0)==0?m:m|-65536;q=m<<1;f=q+p|0;if((q^p|0)>-1&(f^q|0)<0){c[l>>2]=1;f=(m>>>30&1)+2147483647|0}switch(d|0){case 6:{m=f+2134784|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}break}case 5:{b[k>>1]=n>>>16;b[j>>1]=-11-(o&65535);m=f+2183936|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}break}case 4:{m=f+2085632|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}break}case 3:{m=f+2065152|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}break}default:{m=f+2134784|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}}}do if((m|0)<=2097151)if((m|0)<-2097152){c[l>>2]=1;f=-2147483648;break}else{f=m<<10;break}else{c[l>>2]=1;f=2147483647}while(0);k=(b[a>>1]|0)*11142|0;m=k+f|0;if((k^f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}k=(b[a+2>>1]|0)*9502|0;f=k+m|0;if((k^m|0)>-1&(f^m|0)<0){c[l>>2]=1;f=(m>>>31)+2147483647|0}k=(b[a+4>>1]|0)*5570|0;m=k+f|0;if((k^f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}a=(b[a+6>>1]|0)*3112|0;f=a+m|0;if((a^m|0)>-1&(f^m|0)<0){c[l>>2]=1;f=(m>>>31)+2147483647|0}f=Z(f>>16,(d|0)==4?10878:10886)|0;if((f|0)<0)f=~((f^-256)>>8);else f=f>>8;b[g>>1]=f>>>16;if((f|0)<0)m=~((f^-2)>>1);else m=f>>1;g=f>>16<<15;f=m-g|0;if(((f^m)&(g^m)|0)>=0){l=f;l=l&65535;b[h>>1]=l;i=r;return}c[l>>2]=1;l=(m>>>31)+2147483647|0;l=l&65535;b[h>>1]=l;i=r;return}function Wd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=a+4|0;b[a+6>>1]=b[f>>1]|0;g=a+12|0;b[a+14>>1]=b[g>>1]|0;e=a+2|0;b[f>>1]=b[e>>1]|0;f=a+10|0;b[g>>1]=b[f>>1]|0;b[e>>1]=b[a>>1]|0;e=a+8|0;b[f>>1]=b[e>>1]|0;b[e>>1]=c;b[a>>1]=d;return}function Xd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=Rd(0,b[a+8>>1]|0,e)|0;g=Rd(g,b[a+10>>1]|0,e)|0;g=Rd(g,b[a+12>>1]|0,e)|0;g=Rd(g,b[a+14>>1]|0,e)|0;f=g<<16>>16>>2;f=(g<<16>>16<0?f|49152:f)&65535;b[c>>1]=f<<16>>16<-2381?-2381:f;c=Rd(0,b[a>>1]|0,e)|0;c=Rd(c,b[a+2>>1]|0,e)|0;c=Rd(c,b[a+4>>1]|0,e)|0;e=Rd(c,b[a+6>>1]|0,e)|0;a=e<<16>>16>>2;a=(e<<16>>16<0?a|49152:a)&65535;b[d>>1]=a<<16>>16<-14336?-14336:a;return}function Yd(a){a=a|0;c[a>>2]=6892;c[a+4>>2]=8180;c[a+8>>2]=21e3;c[a+12>>2]=9716;c[a+16>>2]=22024;c[a+20>>2]=12788;c[a+24>>2]=24072;c[a+28>>2]=26120;c[a+32>>2]=28168;c[a+36>>2]=6876;c[a+40>>2]=7452;c[a+44>>2]=8140;c[a+48>>2]=20980;c[a+52>>2]=16884;c[a+56>>2]=17908;c[a+60>>2]=7980;c[a+64>>2]=8160;c[a+68>>2]=6678;c[a+72>>2]=6646;c[a+76>>2]=6614;c[a+80>>2]=29704;c[a+84>>2]=28680;c[a+88>>2]=3720;c[a+92>>2]=8;c[a+96>>2]=4172;c[a+100>>2]=44;c[a+104>>2]=3436;c[a+108>>2]=30316;c[a+112>>2]=30796;c[a+116>>2]=31276;c[a+120>>2]=7472;c[a+124>>2]=7552;c[a+128>>2]=7632;c[a+132>>2]=7712;return}function Zd(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;l=n+18|0;m=n;k=c<<16>>16;Oe(m|0,a|0,k<<1|0)|0;if(c<<16>>16>0){d=0;e=0}else{m=k>>1;m=l+(m<<1)|0;m=b[m>>1]|0;m=m<<16>>16;m=a+(m<<1)|0;m=b[m>>1]|0;i=n;return m|0}do{j=0;h=-32767;while(1){f=b[m+(j<<1)>>1]|0;g=f<<16>>16>16;e=g?e:j&65535;j=j+1|0;if((j&65535)<<16>>16==c<<16>>16)break;else h=g?h:f}b[m+(e<<16>>16<<1)>>1]=-32768;b[l+(d<<1)>>1]=e;d=d+1|0}while((d&65535)<<16>>16!=c<<16>>16);m=k>>1;m=l+(m<<1)|0;m=b[m>>1]|0;m=m<<16>>16;m=a+(m<<1)|0;m=b[m>>1]|0;i=n;return m|0}function _d(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=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;g=i;i=i+32|0;h=g;A=c+2|0;z=h+2|0;b[h>>1]=((b[c>>1]|0)>>>1)+((b[a>>1]|0)>>>1);y=c+4|0;x=h+4|0;b[z>>1]=((b[A>>1]|0)>>>1)+((b[a+2>>1]|0)>>>1);w=c+6|0;v=h+6|0;b[x>>1]=((b[y>>1]|0)>>>1)+((b[a+4>>1]|0)>>>1);u=c+8|0;t=h+8|0;b[v>>1]=((b[w>>1]|0)>>>1)+((b[a+6>>1]|0)>>>1);s=c+10|0;r=h+10|0;b[t>>1]=((b[u>>1]|0)>>>1)+((b[a+8>>1]|0)>>>1);q=c+12|0;p=h+12|0;b[r>>1]=((b[s>>1]|0)>>>1)+((b[a+10>>1]|0)>>>1);o=c+14|0;n=h+14|0;b[p>>1]=((b[q>>1]|0)>>>1)+((b[a+12>>1]|0)>>>1);m=c+16|0;l=h+16|0;b[n>>1]=((b[o>>1]|0)>>>1)+((b[a+14>>1]|0)>>>1);k=c+18|0;j=h+18|0;b[l>>1]=((b[m>>1]|0)>>>1)+((b[a+16>>1]|0)>>>1);b[j>>1]=((b[k>>1]|0)>>>1)+((b[a+18>>1]|0)>>>1);he(h,e,f);he(c,e+22|0,f);b[h>>1]=((b[d>>1]|0)>>>1)+((b[c>>1]|0)>>>1);b[z>>1]=((b[d+2>>1]|0)>>>1)+((b[A>>1]|0)>>>1);b[x>>1]=((b[d+4>>1]|0)>>>1)+((b[y>>1]|0)>>>1);b[v>>1]=((b[d+6>>1]|0)>>>1)+((b[w>>1]|0)>>>1);b[t>>1]=((b[d+8>>1]|0)>>>1)+((b[u>>1]|0)>>>1);b[r>>1]=((b[d+10>>1]|0)>>>1)+((b[s>>1]|0)>>>1);b[p>>1]=((b[d+12>>1]|0)>>>1)+((b[q>>1]|0)>>>1);b[n>>1]=((b[d+14>>1]|0)>>>1)+((b[o>>1]|0)>>>1);b[l>>1]=((b[d+16>>1]|0)>>>1)+((b[m>>1]|0)>>>1);b[j>>1]=((b[d+18>>1]|0)>>>1)+((b[k>>1]|0)>>>1);he(h,e+44|0,f);he(d,e+66|0,f);i=g;return}function $d(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=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;g=i;i=i+32|0;h=g;A=c+2|0;z=h+2|0;b[h>>1]=((b[c>>1]|0)>>>1)+((b[a>>1]|0)>>>1);y=c+4|0;x=h+4|0;b[z>>1]=((b[A>>1]|0)>>>1)+((b[a+2>>1]|0)>>>1);w=c+6|0;v=h+6|0;b[x>>1]=((b[y>>1]|0)>>>1)+((b[a+4>>1]|0)>>>1);u=c+8|0;t=h+8|0;b[v>>1]=((b[w>>1]|0)>>>1)+((b[a+6>>1]|0)>>>1);s=c+10|0;r=h+10|0;b[t>>1]=((b[u>>1]|0)>>>1)+((b[a+8>>1]|0)>>>1);q=c+12|0;p=h+12|0;b[r>>1]=((b[s>>1]|0)>>>1)+((b[a+10>>1]|0)>>>1);o=c+14|0;n=h+14|0;b[p>>1]=((b[q>>1]|0)>>>1)+((b[a+12>>1]|0)>>>1);m=c+16|0;l=h+16|0;b[n>>1]=((b[o>>1]|0)>>>1)+((b[a+14>>1]|0)>>>1);k=c+18|0;j=h+18|0;b[l>>1]=((b[m>>1]|0)>>>1)+((b[a+16>>1]|0)>>>1);b[j>>1]=((b[k>>1]|0)>>>1)+((b[a+18>>1]|0)>>>1);he(h,e,f);b[h>>1]=((b[d>>1]|0)>>>1)+((b[c>>1]|0)>>>1);b[z>>1]=((b[d+2>>1]|0)>>>1)+((b[A>>1]|0)>>>1);b[x>>1]=((b[d+4>>1]|0)>>>1)+((b[y>>1]|0)>>>1);b[v>>1]=((b[d+6>>1]|0)>>>1)+((b[w>>1]|0)>>>1);b[t>>1]=((b[d+8>>1]|0)>>>1)+((b[u>>1]|0)>>>1);b[r>>1]=((b[d+10>>1]|0)>>>1)+((b[s>>1]|0)>>>1);b[p>>1]=((b[d+12>>1]|0)>>>1)+((b[q>>1]|0)>>>1);b[n>>1]=((b[d+14>>1]|0)>>>1)+((b[o>>1]|0)>>>1);b[l>>1]=((b[d+16>>1]|0)>>>1)+((b[m>>1]|0)>>>1);b[j>>1]=((b[d+18>>1]|0)>>>1)+((b[k>>1]|0)>>>1);he(h,e+44|0,f);i=g;return}function ae(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=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,G=0,H=0,I=0,J=0;f=i;i=i+32|0;g=f;H=b[a>>1]|0;b[g>>1]=H-(H>>>2)+((b[c>>1]|0)>>>2);H=a+2|0;E=b[H>>1]|0;I=c+2|0;G=g+2|0;b[G>>1]=E-(E>>>2)+((b[I>>1]|0)>>>2);E=a+4|0;B=b[E>>1]|0;F=c+4|0;D=g+4|0;b[D>>1]=B-(B>>>2)+((b[F>>1]|0)>>>2);B=a+6|0;y=b[B>>1]|0;C=c+6|0;A=g+6|0;b[A>>1]=y-(y>>>2)+((b[C>>1]|0)>>>2);y=a+8|0;v=b[y>>1]|0;z=c+8|0;x=g+8|0;b[x>>1]=v-(v>>>2)+((b[z>>1]|0)>>>2);v=a+10|0;s=b[v>>1]|0;w=c+10|0;u=g+10|0;b[u>>1]=s-(s>>>2)+((b[w>>1]|0)>>>2);s=a+12|0;p=b[s>>1]|0;t=c+12|0;r=g+12|0;b[r>>1]=p-(p>>>2)+((b[t>>1]|0)>>>2);p=a+14|0;m=b[p>>1]|0;q=c+14|0;o=g+14|0;b[o>>1]=m-(m>>>2)+((b[q>>1]|0)>>>2);m=a+16|0;j=b[m>>1]|0;n=c+16|0;l=g+16|0;b[l>>1]=j-(j>>>2)+((b[n>>1]|0)>>>2);j=a+18|0;J=b[j>>1]|0;k=c+18|0;h=g+18|0;b[h>>1]=J-(J>>>2)+((b[k>>1]|0)>>>2);he(g,d,e);b[g>>1]=((b[a>>1]|0)>>>1)+((b[c>>1]|0)>>>1);b[G>>1]=((b[H>>1]|0)>>>1)+((b[I>>1]|0)>>>1);b[D>>1]=((b[E>>1]|0)>>>1)+((b[F>>1]|0)>>>1);b[A>>1]=((b[B>>1]|0)>>>1)+((b[C>>1]|0)>>>1);b[x>>1]=((b[y>>1]|0)>>>1)+((b[z>>1]|0)>>>1);b[u>>1]=((b[v>>1]|0)>>>1)+((b[w>>1]|0)>>>1);b[r>>1]=((b[s>>1]|0)>>>1)+((b[t>>1]|0)>>>1);b[o>>1]=((b[p>>1]|0)>>>1)+((b[q>>1]|0)>>>1);b[l>>1]=((b[m>>1]|0)>>>1)+((b[n>>1]|0)>>>1);b[h>>1]=((b[j>>1]|0)>>>1)+((b[k>>1]|0)>>>1);he(g,d+22|0,e);J=b[c>>1]|0;b[g>>1]=J-(J>>>2)+((b[a>>1]|0)>>>2);a=b[I>>1]|0;b[G>>1]=a-(a>>>2)+((b[H>>1]|0)>>>2);a=b[F>>1]|0;b[D>>1]=a-(a>>>2)+((b[E>>1]|0)>>>2);a=b[C>>1]|0;b[A>>1]=a-(a>>>2)+((b[B>>1]|0)>>>2);a=b[z>>1]|0;b[x>>1]=a-(a>>>2)+((b[y>>1]|0)>>>2);a=b[w>>1]|0;b[u>>1]=a-(a>>>2)+((b[v>>1]|0)>>>2);a=b[t>>1]|0;b[r>>1]=a-(a>>>2)+((b[s>>1]|0)>>>2);a=b[q>>1]|0;b[o>>1]=a-(a>>>2)+((b[p>>1]|0)>>>2);a=b[n>>1]|0;b[l>>1]=a-(a>>>2)+((b[m>>1]|0)>>>2);a=b[k>>1]|0;b[h>>1]=a-(a>>>2)+((b[j>>1]|0)>>>2);he(g,d+44|0,e);he(c,d+66|0,e);i=f;return}function be(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=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,G=0,H=0,I=0,J=0;f=i;i=i+32|0;g=f;H=b[a>>1]|0;b[g>>1]=H-(H>>>2)+((b[c>>1]|0)>>>2);H=a+2|0;E=b[H>>1]|0;I=c+2|0;G=g+2|0;b[G>>1]=E-(E>>>2)+((b[I>>1]|0)>>>2);E=a+4|0;B=b[E>>1]|0;F=c+4|0;D=g+4|0;b[D>>1]=B-(B>>>2)+((b[F>>1]|0)>>>2);B=a+6|0;y=b[B>>1]|0;C=c+6|0;A=g+6|0;b[A>>1]=y-(y>>>2)+((b[C>>1]|0)>>>2);y=a+8|0;v=b[y>>1]|0;z=c+8|0;x=g+8|0;b[x>>1]=v-(v>>>2)+((b[z>>1]|0)>>>2);v=a+10|0;s=b[v>>1]|0;w=c+10|0;u=g+10|0;b[u>>1]=s-(s>>>2)+((b[w>>1]|0)>>>2);s=a+12|0;p=b[s>>1]|0;t=c+12|0;r=g+12|0;b[r>>1]=p-(p>>>2)+((b[t>>1]|0)>>>2);p=a+14|0;m=b[p>>1]|0;q=c+14|0;o=g+14|0;b[o>>1]=m-(m>>>2)+((b[q>>1]|0)>>>2);m=a+16|0;j=b[m>>1]|0;n=c+16|0;l=g+16|0;b[l>>1]=j-(j>>>2)+((b[n>>1]|0)>>>2);j=a+18|0;J=b[j>>1]|0;k=c+18|0;h=g+18|0;b[h>>1]=J-(J>>>2)+((b[k>>1]|0)>>>2);he(g,d,e);b[g>>1]=((b[a>>1]|0)>>>1)+((b[c>>1]|0)>>>1);b[G>>1]=((b[H>>1]|0)>>>1)+((b[I>>1]|0)>>>1);b[D>>1]=((b[E>>1]|0)>>>1)+((b[F>>1]|0)>>>1);b[A>>1]=((b[B>>1]|0)>>>1)+((b[C>>1]|0)>>>1);b[x>>1]=((b[y>>1]|0)>>>1)+((b[z>>1]|0)>>>1);b[u>>1]=((b[v>>1]|0)>>>1)+((b[w>>1]|0)>>>1);b[r>>1]=((b[s>>1]|0)>>>1)+((b[t>>1]|0)>>>1);b[o>>1]=((b[p>>1]|0)>>>1)+((b[q>>1]|0)>>>1);b[l>>1]=((b[m>>1]|0)>>>1)+((b[n>>1]|0)>>>1);b[h>>1]=((b[j>>1]|0)>>>1)+((b[k>>1]|0)>>>1);he(g,d+22|0,e);c=b[c>>1]|0;b[g>>1]=c-(c>>>2)+((b[a>>1]|0)>>>2);a=b[I>>1]|0;b[G>>1]=a-(a>>>2)+((b[H>>1]|0)>>>2);a=b[F>>1]|0;b[D>>1]=a-(a>>>2)+((b[E>>1]|0)>>>2);a=b[C>>1]|0;b[A>>1]=a-(a>>>2)+((b[B>>1]|0)>>>2);a=b[z>>1]|0;b[x>>1]=a-(a>>>2)+((b[y>>1]|0)>>>2);a=b[w>>1]|0;b[u>>1]=a-(a>>>2)+((b[v>>1]|0)>>>2);a=b[t>>1]|0;b[r>>1]=a-(a>>>2)+((b[s>>1]|0)>>>2);a=b[q>>1]|0;b[o>>1]=a-(a>>>2)+((b[p>>1]|0)>>>2);a=b[n>>1]|0;b[l>>1]=a-(a>>>2)+((b[m>>1]|0)>>>2);a=b[k>>1]|0;b[h>>1]=a-(a>>>2)+((b[j>>1]|0)>>>2);he(g,d+44|0,e);i=f;return}function ce(a,c){a=a|0;c=c|0;var d=0,f=0;if((a|0)<1){c=1073741823;return c|0}d=(pe(a)|0)<<16>>16;c=30-d|0;a=a<>(c&1^1);d=(a>>25<<16)+-1048576>>16;f=b[7030+(d<<1)>>1]|0;c=(f<<16)-(Z(f-(e[7030+(d+1<<1)>>1]|0)<<16>>15,a>>>10&32767)|0)>>(c<<16>>17)+1;return c|0}function de(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=pe(a)|0;ee(a<<(d<<16>>16),d,b,c);return}function ee(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;if((a|0)<1){b[d>>1]=0;d=0;b[f>>1]=d;return}else{b[d>>1]=30-(c&65535);d=(a>>25<<16)+-2097152>>16;c=b[7128+(d<<1)>>1]|0;d=((c<<16)-(Z(a>>>9&65534,c-(e[7128+(d+1<<1)>>1]|0)<<16>>16)|0)|0)>>>16&65535;b[f>>1]=d;return}}function fe(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0;f=a+2|0;d=b[f>>1]|0;b[c>>1]=d;g=a+4|0;b[c+2>>1]=(e[g>>1]|0)-(e[a>>1]|0);b[c+4>>1]=(e[a+6>>1]|0)-(e[f>>1]|0);f=a+8|0;b[c+6>>1]=(e[f>>1]|0)-(e[g>>1]|0);b[c+8>>1]=(e[a+10>>1]|0)-(e[a+6>>1]|0);g=a+12|0;b[c+10>>1]=(e[g>>1]|0)-(e[f>>1]|0);b[c+12>>1]=(e[a+14>>1]|0)-(e[a+10>>1]|0);b[c+14>>1]=(e[a+16>>1]|0)-(e[g>>1]|0);b[c+16>>1]=(e[a+18>>1]|0)-(e[a+14>>1]|0);b[c+18>>1]=16384-(e[a+16>>1]|0);a=10;g=c;while(1){d=d<<16>>16;c=(d<<16)+-120782848|0;if((c|0)>0)c=1843-((c>>16)*12484>>16)|0;else c=3427-((d*56320|0)>>>16)|0;f=g+2|0;b[g>>1]=c<<3;a=a+-1<<16>>16;if(!(a<<16>>16))break;d=b[f>>1]|0;g=f}return}function ge(a,b,c){a=a|0;b=b|0;c=c|0;c=b<<16>>16;if(b<<16>>16>31){b=0;return b|0}if(b<<16>>16>0)return ((1<>16<31?a>>c:0)|0;c=0-c<<16>>16;b=a<>c|0)==(a|0)?b:a>>31^2147483647;return b|0}function he(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;q=s+24|0;r=s;o=q+4|0;c[q>>2]=16777216;f=0-(b[a>>1]|0)|0;p=q+8|0;c[o>>2]=f<<10;g=b[a+4>>1]|0;l=f>>6;c[p>>2]=33554432-(((Z((f<<9)-(l<<15)<<16>>16,g)|0)>>15)+(Z(l,g)|0)<<2);l=q+4|0;g=(c[l>>2]|0)-(g<<10)|0;c[l>>2]=g;l=q+12|0;f=q+4|0;c[l>>2]=g;e=b[a+8>>1]|0;h=g;m=1;while(1){k=l+-4|0;j=c[k>>2]|0;n=j>>16;c[l>>2]=h+g-(((Z((j>>>1)-(n<<15)<<16>>16,e)|0)>>15)+(Z(n,e)|0)<<2);if((m|0)==2)break;h=c[l+-12>>2]|0;l=k;g=j;m=m+1|0}c[f>>2]=(c[f>>2]|0)-(e<<10);e=q+16|0;f=c[q+8>>2]|0;c[e>>2]=f;k=b[a+12>>1]|0;g=f;l=1;while(1){j=e+-4|0;h=c[j>>2]|0;n=h>>16;c[e>>2]=g+f-(((Z((h>>>1)-(n<<15)<<16>>16,k)|0)>>15)+(Z(n,k)|0)<<2);if((l|0)==3)break;g=c[e+-12>>2]|0;e=j;f=h;l=l+1|0}e=q+4|0;c[e>>2]=(c[e>>2]|0)-(k<<10);e=q+20|0;g=c[q+12>>2]|0;c[e>>2]=g;f=b[a+16>>1]|0;h=g;l=1;while(1){k=e+-4|0;j=c[k>>2]|0;n=j>>16;c[e>>2]=h+g-(((Z((j>>>1)-(n<<15)<<16>>16,f)|0)>>15)+(Z(n,f)|0)<<2);if((l|0)==4)break;h=c[e+-12>>2]|0;e=k;g=j;l=l+1|0}l=q+4|0;c[l>>2]=(c[l>>2]|0)-(f<<10);c[r>>2]=16777216;l=0-(b[a+2>>1]|0)|0;n=r+8|0;c[r+4>>2]=l<<10;f=b[a+6>>1]|0;m=l>>6;c[n>>2]=33554432-(((Z((l<<9)-(m<<15)<<16>>16,f)|0)>>15)+(Z(m,f)|0)<<2);m=r+4|0;f=(c[m>>2]|0)-(f<<10)|0;c[m>>2]=f;m=r+12|0;l=r+4|0;c[m>>2]=f;k=b[a+10>>1]|0;g=f;e=1;while(1){j=m+-4|0;h=c[j>>2]|0;t=h>>16;c[m>>2]=g+f-(((Z((h>>>1)-(t<<15)<<16>>16,k)|0)>>15)+(Z(t,k)|0)<<2);if((e|0)==2)break;g=c[m+-12>>2]|0;m=j;f=h;e=e+1|0}c[l>>2]=(c[l>>2]|0)-(k<<10);l=r+16|0;f=c[r+8>>2]|0;c[l>>2]=f;k=b[a+14>>1]|0;g=f;e=1;while(1){j=l+-4|0;h=c[j>>2]|0;t=h>>16;c[l>>2]=g+f-(((Z((h>>>1)-(t<<15)<<16>>16,k)|0)>>15)+(Z(t,k)|0)<<2);if((e|0)==3)break;g=c[l+-12>>2]|0;l=j;f=h;e=e+1|0}e=r+4|0;c[e>>2]=(c[e>>2]|0)-(k<<10);e=r+20|0;k=c[r+12>>2]|0;c[e>>2]=k;f=b[a+18>>1]|0;j=k;l=1;while(1){g=e+-4|0;h=c[g>>2]|0;t=h>>16;c[e>>2]=j+k-(((Z((h>>>1)-(t<<15)<<16>>16,f)|0)>>15)+(Z(t,f)|0)<<2);if((l|0)==4)break;j=c[e+-12>>2]|0;e=g;k=h;l=l+1|0}j=(c[r+4>>2]|0)-(f<<10)|0;m=q+20|0;k=r+20|0;l=c[q+16>>2]|0;a=(c[m>>2]|0)+l|0;c[m>>2]=a;m=c[r+16>>2]|0;t=(c[k>>2]|0)-m|0;c[k>>2]=t;k=c[q+12>>2]|0;l=l+k|0;c[q+16>>2]=l;h=c[r+12>>2]|0;m=m-h|0;c[r+16>>2]=m;f=c[p>>2]|0;k=k+f|0;c[q+12>>2]=k;g=c[n>>2]|0;p=h-g|0;c[r+12>>2]=p;h=c[o>>2]|0;n=f+h|0;c[q+8>>2]=n;o=g-j|0;c[r+8>>2]=o;q=h+(c[q>>2]|0)|0;r=j-(c[r>>2]|0)|0;b[d>>1]=4096;q=q+4096|0;b[d+2>>1]=(q+r|0)>>>13;b[d+20>>1]=(q-r|0)>>>13;r=n+4096|0;b[d+4>>1]=(r+o|0)>>>13;b[d+18>>1]=(r-o|0)>>>13;r=k+4096|0;b[d+6>>1]=(r+p|0)>>>13;b[d+16>>1]=(r-p|0)>>>13;r=l+4096|0;b[d+8>>1]=(r+m|0)>>>13;b[d+14>>1]=(r-m|0)>>>13;r=a+4096|0;b[d+10>>1]=(r+t|0)>>>13;b[d+12>>1]=(r-t|0)>>>13;i=s;return}function ie(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;if(!a){h=-1;return h|0}c[a>>2]=0;d=Je(44)|0;if(!d){h=-1;return h|0}e=d+40|0;if((xe(e)|0)<<16>>16){h=-1;return h|0}f=d;g=7452;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=d+20|0;g=7452;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));ye(c[e>>2]|0)|0;c[a>>2]=d;h=0;return h|0}function je(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}d=a;e=7452;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+20|0;e=7452;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));ye(c[a+40>>2]|0)|0;f=0;return f|0}function ke(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;ze(b+40|0);Ke(c[a>>2]|0);c[a>>2]=0;return}function le(a,d,e,f,g,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;p=i;i=i+64|0;o=p+44|0;l=p+24|0;m=p+4|0;n=p;if((d|0)==7){Sd(f+22|0,l,a,k);Sd(f+66|0,h,l,k);$d(a,l,h,f,k);if((e|0)==8)f=6;else{ve(c[a+40>>2]|0,l,h,m,o,c[j>>2]|0,k);_d(a+20|0,m,o,g,k);g=(c[j>>2]|0)+10|0;f=7}}else{Sd(f+66|0,h,a,k);be(a,h,f,k);if((e|0)==8)f=6;else{te(c[a+40>>2]|0,d,h,o,c[j>>2]|0,n,k);ae(a+20|0,o,g,k);g=(c[j>>2]|0)+6|0;f=7}}if((f|0)==6){f=a;g=f+20|0;do{b[f>>1]=b[h>>1]|0;f=f+2|0;h=h+2|0}while((f|0)<(g|0));i=p;return}else if((f|0)==7){c[j>>2]=g;f=a;g=f+20|0;do{b[f>>1]=b[h>>1]|0;f=f+2|0;h=h+2|0}while((f|0)<(g|0));f=a+20|0;h=o;g=f+20|0;do{b[f>>1]=b[h>>1]|0;f=f+2|0;h=h+2|0}while((f|0)<(g|0));i=p;return}}function me(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(d<<16>>16>0)e=0;else return;do{g=b[a+(e<<1)>>1]|0;h=g>>8;f=b[7194+(h<<1)>>1]|0;b[c+(e<<1)>>1]=((Z((b[7194+(h+1<<1)>>1]|0)-f|0,g&255)|0)>>>8)+f;e=e+1|0}while((e&65535)<<16>>16!=d<<16>>16);return}function ne(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;e=(d<<16>>16)+-1|0;d=e&65535;if(d<<16>>16<=-1)return;f=63;h=c+(e<<1)|0;g=a+(e<<1)|0;while(1){a=b[g>>1]|0;c=f;while(1){e=c<<16>>16;f=b[7194+(e<<1)>>1]|0;if(a<<16>>16>f<<16>>16)c=c+-1<<16>>16;else break}b[h>>1]=(((Z(b[7324+(e<<1)>>1]|0,(a<<16>>16)-(f<<16>>16)|0)|0)+2048|0)>>>12)+(e<<8);d=d+-1<<16>>16;if(d<<16>>16>-1){f=c;h=h+-2|0;g=g+-2|0}else break}return}function oe(a,b,d){a=a|0;b=b|0;d=d|0;a=(Z(b<<16>>16,a<<16>>16)|0)+16384>>15;a=a|0-(a&65536);if((a|0)<=32767){if((a|0)<-32768){c[d>>2]=1;a=-32768}}else{c[d>>2]=1;a=32767}return a&65535|0}function pe(a){a=a|0;var b=0;a:do if((a|0)!=0?(b=a-(a>>>31)|0,b=b>>31^b,(b&1073741824|0)==0):0){a=b;b=0;while(1){if(a&536870912){a=7;break}if(a&268435456){a=8;break}if(a&134217728){a=9;break}b=b+4<<16>>16;a=a<<4;if(a&1073741824)break a}if((a|0)==7){b=b|1;break}else if((a|0)==8){b=b|2;break}else if((a|0)==9){b=b|3;break}}else b=0;while(0);return b|0}function qe(a){a=a|0;var b=0,c=0;if(!(a<<16>>16)){c=0;return c|0}b=(a&65535)-((a&65535)>>>15&65535)|0;b=(b<<16>>31^b)<<16;a=b>>16;if(!(a&16384)){c=b;b=0}else{c=0;return c|0}while(1){if(a&8192){a=b;c=7;break}if(a&4096){a=b;c=8;break}if(a&2048){a=b;c=9;break}b=b+4<<16>>16;c=c<<4;a=c>>16;if(a&16384){a=b;c=10;break}}if((c|0)==7){c=a|1;return c|0}else if((c|0)==8){c=a|2;return c|0}else if((c|0)==9){c=a|3;return c|0}else if((c|0)==10)return a|0;return 0}function re(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0;d=d<<16>>16;if((d&134217727|0)==33554432){c[f>>2]=1;d=2147483647}else d=d<<6;g=d>>>16&31;i=b[7792+(g<<1)>>1]|0;h=i<<16;d=Z(i-(e[7792+(g+1<<1)>>1]|0)<<16>>16,d>>>1&32767)|0;if((d|0)==1073741824){c[f>>2]=1;g=2147483647}else g=d<<1;d=h-g|0;if(((d^h)&(g^h)|0)>=0){i=d;a=a&65535;a=30-a|0;a=a&65535;f=ge(i,a,f)|0;return f|0}c[f>>2]=1;i=(i>>>15&1)+2147483647|0;a=a&65535;a=30-a|0;a=a&65535;f=ge(i,a,f)|0;return f|0}function se(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;o=i;i=i+48|0;n=o;m=0-(d&65535)|0;m=f<<16>>16==0?m:m<<1&131070;d=m&65535;m=(d<<16>>16<0?m+6|0:m)<<16>>16;g=6-m|0;b[n>>1]=b[7858+(m<<1)>>1]|0;b[n+2>>1]=b[7858+(g<<1)>>1]|0;b[n+4>>1]=b[7858+(m+6<<1)>>1]|0;b[n+6>>1]=b[7858+(g+6<<1)>>1]|0;b[n+8>>1]=b[7858+(m+12<<1)>>1]|0;b[n+10>>1]=b[7858+(g+12<<1)>>1]|0;b[n+12>>1]=b[7858+(m+18<<1)>>1]|0;b[n+14>>1]=b[7858+(g+18<<1)>>1]|0;b[n+16>>1]=b[7858+(m+24<<1)>>1]|0;b[n+18>>1]=b[7858+(g+24<<1)>>1]|0;b[n+20>>1]=b[7858+(m+30<<1)>>1]|0;b[n+22>>1]=b[7858+(g+30<<1)>>1]|0;b[n+24>>1]=b[7858+(m+36<<1)>>1]|0;b[n+26>>1]=b[7858+(g+36<<1)>>1]|0;b[n+28>>1]=b[7858+(m+42<<1)>>1]|0;b[n+30>>1]=b[7858+(g+42<<1)>>1]|0;b[n+32>>1]=b[7858+(m+48<<1)>>1]|0;b[n+34>>1]=b[7858+(g+48<<1)>>1]|0;b[n+36>>1]=b[7858+(m+54<<1)>>1]|0;b[n+38>>1]=b[7858+(g+54<<1)>>1]|0;g=e<<16>>16>>>1&65535;if(!(g<<16>>16)){i=o;return}m=a+((d<<16>>16>>15<<16>>16)-(c<<16>>16)<<1)|0;while(1){l=m+2|0;h=b[l>>1]|0;c=h;e=m;j=5;k=n;f=16384;d=16384;while(1){q=b[k>>1]|0;r=(Z(q,c<<16>>16)|0)+d|0;p=b[l+-2>>1]|0;d=(Z(p,q)|0)+f|0;q=e;e=e+4|0;s=b[k+2>>1]|0;d=d+(Z(s,h<<16>>16)|0)|0;f=b[e>>1]|0;s=r+(Z(f,s)|0)|0;l=l+-4|0;r=b[k+4>>1]|0;p=s+(Z(r,p)|0)|0;c=b[l>>1]|0;r=d+(Z(c<<16>>16,r)|0)|0;d=b[k+6>>1]|0;f=r+(Z(d,f)|0)|0;h=b[q+6>>1]|0;d=p+(Z(h<<16>>16,d)|0)|0;if(j<<16>>16<=1)break;else{j=j+-1<<16>>16;k=k+8|0}}b[a>>1]=f>>>15;b[a+2>>1]=d>>>15;g=g+-1<<16>>16;if(!(g<<16>>16))break;else{m=m+4|0;a=a+4|0}}i=o;return} -function te(a,c,d,f,g,h,j){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var 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;C=i;i=i+144|0;t=C+120|0;y=C+100|0;A=C+80|0;B=C+60|0;z=C+40|0;q=C+20|0;r=C;ne(d,t,10,j);fe(t,y,j);if((c|0)==8){b[h>>1]=0;l=2147483647;s=0;while(1){n=s*10|0;d=0;m=0;do{x=(e[7980+(m+n<<1)>>1]|0)+(e[8140+(m<<1)>>1]|0)|0;b[r+(m<<1)>>1]=x;x=(e[t+(m<<1)>>1]|0)-(x&65535)|0;b[q+(m<<1)>>1]=x;x=x<<16;d=(Z(x>>15,x>>16)|0)+d|0;m=m+1|0}while((m|0)!=10);if((d|0)<(l|0)){u=B;p=q;o=u+20|0;do{b[u>>1]=b[p>>1]|0;u=u+2|0;p=p+2|0}while((u|0)<(o|0));u=A;p=r;o=u+20|0;do{b[u>>1]=b[p>>1]|0;u=u+2|0;p=p+2|0}while((u|0)<(o|0));u=a;p=7980+(n<<1)|0;o=u+20|0;do{b[u>>1]=b[p>>1]|0;u=u+2|0;p=p+2|0}while((u|0)<(o|0));b[h>>1]=s}else d=l;s=s+1|0;if((s|0)==8)break;else l=d}}else{d=0;do{x=Z(b[8160+(d<<1)>>1]|0,b[a+(d<<1)>>1]|0)|0;x=(x>>>15)+(e[8140+(d<<1)>>1]|0)|0;b[A+(d<<1)>>1]=x;b[B+(d<<1)>>1]=(e[t+(d<<1)>>1]|0)-x;d=d+1|0}while((d|0)!=10)}do if(c>>>0>=2){x=B+2|0;w=B+4|0;v=e[B>>1]|0;u=b[y>>1]<<1;t=e[x>>1]|0;q=b[y+2>>1]<<1;p=e[w>>1]|0;o=b[y+4>>1]<<1;if((c|0)==5){r=2147483647;h=0;d=0;s=17908;while(1){m=(Z(v-(e[s>>1]|0)<<16>>16,u)|0)>>16;m=Z(m,m)|0;n=(Z(t-(e[s+2>>1]|0)<<16>>16,q)|0)>>16;m=(Z(n,n)|0)+m|0;n=(Z(p-(e[s+4>>1]|0)<<16>>16,o)|0)>>16;n=m+(Z(n,n)|0)|0;m=(n|0)<(r|0);d=m?h:d;h=h+1<<16>>16;if(h<<16>>16>=512)break;else{r=m?n:r;s=s+6|0}}n=(d<<16>>16)*3|0;b[B>>1]=b[17908+(n<<1)>>1]|0;b[x>>1]=b[17908+(n+1<<1)>>1]|0;b[w>>1]=b[17908+(n+2<<1)>>1]|0;b[g>>1]=d;n=B+6|0;m=B+8|0;v=B+10|0;s=e[n>>1]|0;h=b[y+6>>1]<<1;r=e[m>>1]|0;q=b[y+8>>1]<<1;p=e[v>>1]|0;o=b[y+10>>1]<<1;k=2147483647;t=0;d=0;u=9716;while(1){l=(Z(h,s-(e[u>>1]|0)<<16>>16)|0)>>16;l=Z(l,l)|0;c=(Z(q,r-(e[u+2>>1]|0)<<16>>16)|0)>>16;l=(Z(c,c)|0)+l|0;c=(Z(o,p-(e[u+4>>1]|0)<<16>>16)|0)>>16;c=l+(Z(c,c)|0)|0;l=(c|0)<(k|0);d=l?t:d;t=t+1<<16>>16;if(t<<16>>16>=512)break;else{k=l?c:k;u=u+6|0}}k=(d<<16>>16)*3|0;b[n>>1]=b[9716+(k<<1)>>1]|0;b[m>>1]=b[9716+(k+1<<1)>>1]|0;b[v>>1]=b[9716+(k+2<<1)>>1]|0;b[g+2>>1]=d;k=B+12|0;b[g+4>>1]=ue(k,12788,y+12|0,512)|0;t=x;s=w;d=v;l=B;break}else{r=2147483647;h=0;d=0;s=8180;while(1){m=(Z(v-(e[s>>1]|0)<<16>>16,u)|0)>>16;m=Z(m,m)|0;n=(Z(t-(e[s+2>>1]|0)<<16>>16,q)|0)>>16;m=(Z(n,n)|0)+m|0;n=(Z(p-(e[s+4>>1]|0)<<16>>16,o)|0)>>16;n=m+(Z(n,n)|0)|0;m=(n|0)<(r|0);d=m?h:d;h=h+1<<16>>16;if(h<<16>>16>=256)break;else{r=m?n:r;s=s+6|0}}n=(d<<16>>16)*3|0;b[B>>1]=b[8180+(n<<1)>>1]|0;b[x>>1]=b[8180+(n+1<<1)>>1]|0;b[w>>1]=b[8180+(n+2<<1)>>1]|0;b[g>>1]=d;n=B+6|0;m=B+8|0;v=B+10|0;s=e[n>>1]|0;h=b[y+6>>1]<<1;r=e[m>>1]|0;q=b[y+8>>1]<<1;p=e[v>>1]|0;o=b[y+10>>1]<<1;k=2147483647;t=0;d=0;u=9716;while(1){l=(Z(h,s-(e[u>>1]|0)<<16>>16)|0)>>16;l=Z(l,l)|0;c=(Z(q,r-(e[u+2>>1]|0)<<16>>16)|0)>>16;l=(Z(c,c)|0)+l|0;c=(Z(o,p-(e[u+4>>1]|0)<<16>>16)|0)>>16;c=l+(Z(c,c)|0)|0;l=(c|0)<(k|0);d=l?t:d;t=t+1<<16>>16;if(t<<16>>16>=512)break;else{k=l?c:k;u=u+6|0}}k=(d<<16>>16)*3|0;b[n>>1]=b[9716+(k<<1)>>1]|0;b[m>>1]=b[9716+(k+1<<1)>>1]|0;b[v>>1]=b[9716+(k+2<<1)>>1]|0;b[g+2>>1]=d;k=B+12|0;b[g+4>>1]=ue(k,12788,y+12|0,512)|0;t=x;s=w;d=v;l=B;break}}else{w=B+2|0;x=B+4|0;n=e[B>>1]|0;m=b[y>>1]<<1;l=e[w>>1]|0;k=b[y+2>>1]<<1;c=e[x>>1]|0;o=b[y+4>>1]<<1;r=2147483647;h=0;d=0;s=8180;while(1){q=(Z(m,n-(e[s>>1]|0)<<16>>16)|0)>>16;q=Z(q,q)|0;p=(Z(k,l-(e[s+2>>1]|0)<<16>>16)|0)>>16;q=(Z(p,p)|0)+q|0;p=(Z(o,c-(e[s+4>>1]|0)<<16>>16)|0)>>16;p=q+(Z(p,p)|0)|0;q=(p|0)<(r|0);d=q?h:d;h=h+1<<16>>16;if(h<<16>>16>=256)break;else{r=q?p:r;s=s+6|0}}n=(d<<16>>16)*3|0;b[B>>1]=b[8180+(n<<1)>>1]|0;b[w>>1]=b[8180+(n+1<<1)>>1]|0;b[x>>1]=b[8180+(n+2<<1)>>1]|0;b[g>>1]=d;n=B+6|0;m=B+8|0;v=B+10|0;s=e[n>>1]|0;h=b[y+6>>1]<<1;r=e[m>>1]|0;q=b[y+8>>1]<<1;p=e[v>>1]|0;o=b[y+10>>1]<<1;k=2147483647;t=0;d=0;u=9716;while(1){l=(Z(h,s-(e[u>>1]|0)<<16>>16)|0)>>16;l=Z(l,l)|0;c=(Z(q,r-(e[u+2>>1]|0)<<16>>16)|0)>>16;l=(Z(c,c)|0)+l|0;c=(Z(o,p-(e[u+4>>1]|0)<<16>>16)|0)>>16;c=l+(Z(c,c)|0)|0;l=(c|0)<(k|0);d=l?t:d;t=t+1<<16>>16;if(t<<16>>16>=256)break;else{k=l?c:k;u=u+12|0}}k=(d<<16>>16)*6|0;b[n>>1]=b[9716+(k<<1)>>1]|0;b[m>>1]=b[9716+((k|1)<<1)>>1]|0;b[v>>1]=b[9716+(k+2<<1)>>1]|0;b[g+2>>1]=d;k=B+12|0;b[g+4>>1]=ue(k,16884,y+12|0,128)|0;t=w;s=x;d=v;l=B}while(0);u=a;p=B;o=u+20|0;do{b[u>>1]=b[p>>1]|0;u=u+2|0;p=p+2|0}while((u|0)<(o|0));b[z>>1]=(e[A>>1]|0)+(e[l>>1]|0);b[z+2>>1]=(e[A+2>>1]|0)+(e[t>>1]|0);b[z+4>>1]=(e[A+4>>1]|0)+(e[s>>1]|0);b[z+6>>1]=(e[A+6>>1]|0)+(e[n>>1]|0);b[z+8>>1]=(e[A+8>>1]|0)+(e[m>>1]|0);b[z+10>>1]=(e[A+10>>1]|0)+(e[d>>1]|0);b[z+12>>1]=(e[A+12>>1]|0)+(e[k>>1]|0);b[z+14>>1]=(e[A+14>>1]|0)+(e[B+14>>1]|0);b[z+16>>1]=(e[A+16>>1]|0)+(e[B+16>>1]|0);b[z+18>>1]=(e[A+18>>1]|0)+(e[B+18>>1]|0);Ae(z,205,10,j);me(z,f,10,j);i=C;return}function ue(a,c,d,f){a=a|0;c=c|0;d=d|0;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,t=0,u=0,v=0;t=a+2|0;u=a+4|0;v=a+6|0;if(f<<16>>16>0){m=e[a>>1]|0;n=b[d>>1]<<1;o=e[t>>1]|0;p=b[d+2>>1]<<1;q=e[u>>1]|0;r=b[d+4>>1]<<1;s=e[v>>1]|0;g=b[d+6>>1]<<1;j=2147483647;k=0;d=0;l=c;while(1){h=(Z(n,m-(e[l>>1]|0)<<16>>16)|0)>>16;h=Z(h,h)|0;i=(Z(p,o-(e[l+2>>1]|0)<<16>>16)|0)>>16;h=(Z(i,i)|0)+h|0;i=(Z(r,q-(e[l+4>>1]|0)<<16>>16)|0)>>16;i=h+(Z(i,i)|0)|0;h=(Z(g,s-(e[l+6>>1]|0)<<16>>16)|0)>>16;h=i+(Z(h,h)|0)|0;i=(h|0)<(j|0);d=i?k:d;k=k+1<<16>>16;if(k<<16>>16>=f<<16>>16)break;else{j=i?h:j;l=l+8|0}}}else d=0;f=d<<16>>16<<2;s=f|1;b[a>>1]=b[c+(f<<1)>>1]|0;b[t>>1]=b[c+(s<<1)>>1]|0;b[u>>1]=b[c+(s+1<<1)>>1]|0;b[v>>1]=b[c+((f|3)<<1)>>1]|0;return d|0}function ve(a,c,d,f,g,h,j){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var 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,G=0,H=0,I=0,J=0,K=0;I=i;i=i+192|0;m=I+160|0;l=I+140|0;C=I+120|0;D=I+100|0;E=I+80|0;F=I+60|0;k=I+40|0;G=I+20|0;H=I;ne(c,m,10,j);ne(d,l,10,j);fe(m,C,j);fe(l,D,j);n=0;d=E;c=F;o=k;while(1){B=(((b[a+(n<<1)>>1]|0)*21299|0)>>>15)+(e[20980+(n<<1)>>1]|0)|0;b[d>>1]=B;b[c>>1]=(e[m>>1]|0)-B;b[o>>1]=(e[l>>1]|0)-B;n=n+1|0;if((n|0)==10)break;else{m=m+2|0;l=l+2|0;d=d+2|0;c=c+2|0;o=o+2|0}}b[h>>1]=we(F,k,21e3,b[C>>1]|0,b[C+2>>1]|0,b[D>>1]|0,b[D+2>>1]|0,128)|0;b[h+2>>1]=we(F+4|0,k+4|0,22024,b[C+4>>1]|0,b[C+6>>1]|0,b[D+4>>1]|0,b[D+6>>1]|0,256)|0;y=F+8|0;z=k+8|0;A=F+10|0;B=k+10|0;d=b[y>>1]|0;p=b[C+8>>1]<<1;q=b[A>>1]|0;r=b[C+10>>1]<<1;s=b[z>>1]|0;t=b[D+8>>1]<<1;u=b[B>>1]|0;v=b[D+10>>1]<<1;l=2147483647;w=0;o=0;x=24072;c=0;while(1){m=b[x>>1]|0;n=(Z(d-m<<16>>16,p)|0)>>16;n=Z(n,n)|0;m=(Z(m+d<<16>>16,p)|0)>>16;m=Z(m,m)|0;J=b[x+2>>1]|0;K=(Z(q-J<<16>>16,r)|0)>>16;n=(Z(K,K)|0)+n|0;J=(Z(J+q<<16>>16,r)|0)>>16;m=(Z(J,J)|0)+m|0;if((n|0)<(l|0)|(m|0)<(l|0)){K=b[x+4>>1]|0;J=(Z(s-K<<16>>16,t)|0)>>16;J=(Z(J,J)|0)+n|0;K=(Z(K+s<<16>>16,t)|0)>>16;K=(Z(K,K)|0)+m|0;m=b[x+6>>1]|0;n=(Z(u-m<<16>>16,v)|0)>>16;n=J+(Z(n,n)|0)|0;m=(Z(m+u<<16>>16,v)|0)>>16;m=K+(Z(m,m)|0)|0;K=(n|0)<(l|0);n=K?n:l;J=(m|0)<(n|0);n=J?m:n;o=K|J?w:o;c=J?1:K?0:c}else n=l;w=w+1<<16>>16;if(w<<16>>16>=256)break;else{l=n;x=x+8|0}}n=o<<16>>16;m=n<<2;o=m|1;l=24072+(o<<1)|0;d=b[24072+(m<<1)>>1]|0;if(!(c<<16>>16)){b[y>>1]=d;b[A>>1]=b[l>>1]|0;b[z>>1]=b[24072+(o+1<<1)>>1]|0;b[B>>1]=b[24072+((m|3)<<1)>>1]|0;c=n<<1}else{b[y>>1]=0-(d&65535);b[A>>1]=0-(e[l>>1]|0);b[z>>1]=0-(e[24072+(o+1<<1)>>1]|0);b[B>>1]=0-(e[24072+((m|3)<<1)>>1]|0);c=n<<1&65534|1}b[h+4>>1]=c;b[h+6>>1]=we(F+12|0,k+12|0,26120,b[C+12>>1]|0,b[C+14>>1]|0,b[D+12>>1]|0,b[D+14>>1]|0,256)|0;b[h+8>>1]=we(F+16|0,k+16|0,28168,b[C+16>>1]|0,b[C+18>>1]|0,b[D+16>>1]|0,b[D+18>>1]|0,64)|0;l=0;m=G;n=H;d=E;c=F;while(1){J=e[d>>1]|0;b[m>>1]=J+(e[c>>1]|0);K=b[k>>1]|0;b[n>>1]=J+(K&65535);b[a+(l<<1)>>1]=K;l=l+1|0;if((l|0)==10)break;else{m=m+2|0;n=n+2|0;d=d+2|0;c=c+2|0;k=k+2|0}}Ae(G,205,10,j);Ae(H,205,10,j);me(G,f,10,j);me(H,g,10,j);i=I;return}function we(a,c,d,e,f,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var 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;o=b[a>>1]|0;u=a+2|0;q=b[u>>1]|0;s=b[c>>1]|0;v=c+2|0;t=b[v>>1]|0;if(i<<16>>16>0){n=e<<16>>16<<1;m=f<<16>>16<<1;l=g<<16>>16<<1;f=h<<16>>16<<1;g=2147483647;j=0;e=0;k=d;while(1){h=(Z(n,o-(b[k>>1]|0)|0)|0)>>16;h=Z(h,h)|0;if(((h|0)<(g|0)?(p=(Z(m,q-(b[k+2>>1]|0)|0)|0)>>16,p=(Z(p,p)|0)+h|0,(p|0)<(g|0)):0)?(r=(Z(l,s-(b[k+4>>1]|0)|0)|0)>>16,r=(Z(r,r)|0)+p|0,(r|0)<(g|0)):0){h=(Z(f,t-(b[k+6>>1]|0)|0)|0)>>16;h=(Z(h,h)|0)+r|0;w=(h|0)<(g|0);h=w?h:g;e=w?j:e}else h=g;j=j+1<<16>>16;if(j<<16>>16>=i<<16>>16)break;else{g=h;k=k+8|0}}}else e=0;w=e<<16>>16<<2;i=w|1;b[a>>1]=b[d+(w<<1)>>1]|0;b[u>>1]=b[d+(i<<1)>>1]|0;b[c>>1]=b[d+(i+1<<1)>>1]|0;b[v>>1]=b[d+((w|3)<<1)>>1]|0;return e|0}function xe(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}c[a>>2]=0;d=Je(20)|0;if(!d){f=-1;return f|0}e=d;f=e+20|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));c[a>>2]=d;f=0;return f|0}function ye(a){a=a|0;var c=0;if(!a){c=-1;return c|0}c=a+20|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function ze(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Ae(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(d<<16>>16<=0)return;f=c<<16>>16;g=c&65535;h=0;while(1){e=b[a>>1]|0;if(e<<16>>16>16){b[a>>1]=c;e=(c<<16>>16)+f|0}else e=(e&65535)+g|0;h=h+1<<16>>16;if(h<<16>>16>=d<<16>>16)break;else{c=e&65535;a=a+2|0}}return}function Be(a,c,d,e){a=a|0;c=c|0;d=d|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,t=0;f=e<<16>>16;e=f>>>2&65535;if(!(e<<16>>16))return;n=f+-1|0;t=a+20|0;p=c+(f+-4<<1)|0;q=c+(f+-3<<1)|0;r=c+(f+-2<<1)|0;s=c+(n<<1)|0;o=c+(f+-11<<1)|0;n=d+(n<<1)|0;while(1){c=b[t>>1]|0;h=5;i=t;j=o;k=o+-2|0;l=o+-4|0;m=o+-6|0;g=2048;a=2048;f=2048;d=2048;while(1){g=(Z(b[j>>1]|0,c)|0)+g|0;a=(Z(b[k>>1]|0,c)|0)+a|0;f=(Z(b[l>>1]|0,c)|0)+f|0;c=(Z(b[m>>1]|0,c)|0)+d|0;d=b[i+-2>>1]|0;g=g+(Z(b[j+2>>1]|0,d)|0)|0;a=a+(Z(b[k+2>>1]|0,d)|0)|0;f=f+(Z(b[l+2>>1]|0,d)|0)|0;i=i+-4|0;d=c+(Z(b[m+2>>1]|0,d)|0)|0;h=h+-1<<16>>16;c=b[i>>1]|0;if(!(h<<16>>16))break;else{j=j+4|0;k=k+4|0;l=l+4|0;m=m+4|0}}j=(Z(b[s>>1]|0,c)|0)+g|0;k=(Z(b[r>>1]|0,c)|0)+a|0;l=(Z(b[q>>1]|0,c)|0)+f|0;m=(Z(b[p>>1]|0,c)|0)+d|0;b[n>>1]=j>>>12;b[n+-2>>1]=k>>>12;b[n+-4>>1]=l>>>12;b[n+-6>>1]=m>>>12;e=e+-1<<16>>16;if(!(e<<16>>16))break;else{p=p+-8|0;q=q+-8|0;r=r+-8|0;s=s+-8|0;o=o+-8|0;n=n+-8|0}}return}function Ce(a,b){a=a|0;b=b|0;var d=0;d=a+32768|0;if((a|0)>-1&(d^a|0)<0){c[b>>2]=1;d=(a>>>31)+2147483647|0}return d>>>16&65535|0}function De(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=b<<16>>16;if(!(b<<16>>16))return a|0;if(b<<16>>16>0){a=a<<16>>16>>(b<<16>>16>15?15:e)&65535;return a|0}f=0-e|0;b=a<<16>>16;f=(f&65535)<<16>>16>15?15:f<<16>>16;e=b<>16>>f|0)==(b|0)){f=e&65535;return f|0}c[d>>2]=1;f=a<<16>>16>0?32767:-32768;return f|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;if(b<<16>>16>15){b=0;return b|0}c=De(a,b,c)|0;if(b<<16>>16>0)return c+((1<<(b<<16>>16)+-1&a<<16>>16|0)!=0&1)<<16>>16|0;else{b=c;return b|0}return 0}function Fe(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0;if((a|0)<1){b[d>>1]=0;f=0;return f|0}h=(pe(a)|0)&65534;i=h&65535;h=h<<16>>16;if(i<<16>>16>0){g=a<>h|0)!=(a|0))g=a>>31^2147483647}else{h=0-h<<16;if((h|0)<2031616)g=a>>(h>>16);else g=0}b[d>>1]=i;d=g>>>25&63;d=d>>>0>15?d+-16|0:d;i=b[30216+(d<<1)>>1]|0;a=i<<16;g=Z(i-(e[30216+(d+1<<1)>>1]|0)<<16>>16,g>>>10&32767)|0;if((g|0)==1073741824){c[f>>2]=1;h=2147483647}else h=g<<1;g=a-h|0;if(((g^a)&(h^a)|0)>=0){f=g;return f|0}c[f>>2]=1;f=(i>>>15&1)+2147483647|0;return f|0}function Ge(a,b,d){a=a|0;b=b|0;d=d|0;a=(a<<16>>16)-(b<<16>>16)|0;if((a+32768|0)>>>0<=65535){d=a;d=d&65535;return d|0}c[d>>2]=1;d=(a|0)>32767?32767:-32768;d=d&65535;return d|0}function He(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=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;A=i;i=i+48|0;o=A;k=o;h=f;j=k+20|0;do{b[k>>1]=b[h>>1]|0;k=k+2|0;h=h+2|0}while((k|0)<(j|0));n=o+18|0;s=a+2|0;t=a+4|0;p=c+20|0;u=a+6|0;v=a+8|0;w=a+10|0;x=a+12|0;y=a+14|0;z=a+16|0;q=a+18|0;r=a+20|0;j=b[n>>1]|0;h=5;l=c;m=d;k=o+20|0;while(1){D=b[a>>1]|0;C=(Z(D,b[l>>1]|0)|0)+2048|0;D=(Z(b[l+2>>1]|0,D)|0)+2048|0;o=j<<16>>16;C=C-(Z(o,b[s>>1]|0)|0)|0;B=b[t>>1]|0;o=D-(Z(o,B)|0)|0;D=b[n+-2>>1]|0;B=C-(Z(D,B)|0)|0;C=b[u>>1]|0;D=o-(Z(C,D)|0)|0;o=b[n+-4>>1]|0;C=B-(Z(o,C)|0)|0;B=b[v>>1]|0;o=D-(Z(B,o)|0)|0;D=b[n+-6>>1]|0;B=C-(Z(D,B)|0)|0;C=b[w>>1]|0;D=o-(Z(D,C)|0)|0;o=b[n+-8>>1]|0;C=B-(Z(o,C)|0)|0;B=b[x>>1]|0;o=D-(Z(B,o)|0)|0;D=b[n+-10>>1]|0;B=C-(Z(D,B)|0)|0;C=b[y>>1]|0;D=o-(Z(C,D)|0)|0;o=b[n+-12>>1]|0;C=B-(Z(o,C)|0)|0;B=b[z>>1]|0;o=D-(Z(o,B)|0)|0;D=b[n+-14>>1]|0;B=C-(Z(D,B)|0)|0;C=b[q>>1]|0;D=o-(Z(C,D)|0)|0;o=b[n+-16>>1]|0;C=B-(Z(o,C)|0)|0;B=b[r>>1]|0;o=D-(Z(B,o)|0)|0;B=C-(Z(b[n+-18>>1]|0,B)|0)|0;B=(B+134217728|0)>>>0<268435455?B>>>12&65535:(B|0)>134217727?32767:-32768;o=o-(Z(b[s>>1]|0,B<<16>>16)|0)|0;n=k+2|0;b[k>>1]=B;b[m>>1]=B;j=(o+134217728|0)>>>0<268435455?o>>>12&65535:(o|0)>134217727?32767:-32768;b[n>>1]=j;b[m+2>>1]=j;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{l=l+4|0;m=m+4|0;k=k+4|0}}e=(e<<16>>16)+-10|0;k=e>>>1&65535;if(k<<16>>16){o=d+18|0;j=c+16|0;n=b[o>>1]|0;l=p;h=d+20|0;while(1){B=b[a>>1]|0;m=(Z(B,b[l>>1]|0)|0)+2048|0;B=(Z(b[j+6>>1]|0,B)|0)+2048|0;j=b[s>>1]|0;C=n<<16>>16;m=m-(Z(C,j)|0)|0;D=b[t>>1]|0;C=B-(Z(C,D)|0)|0;B=b[o+-2>>1]|0;D=m-(Z(B,D)|0)|0;m=b[u>>1]|0;B=C-(Z(m,B)|0)|0;C=b[o+-4>>1]|0;m=D-(Z(C,m)|0)|0;D=b[v>>1]|0;C=B-(Z(D,C)|0)|0;B=b[o+-6>>1]|0;D=m-(Z(B,D)|0)|0;m=b[w>>1]|0;B=C-(Z(B,m)|0)|0;C=b[o+-8>>1]|0;m=D-(Z(C,m)|0)|0;D=b[x>>1]|0;C=B-(Z(D,C)|0)|0;B=b[o+-10>>1]|0;D=m-(Z(B,D)|0)|0;m=b[y>>1]|0;B=C-(Z(m,B)|0)|0;C=b[o+-12>>1]|0;m=D-(Z(C,m)|0)|0;D=b[z>>1]|0;C=B-(Z(C,D)|0)|0;B=b[o+-14>>1]|0;D=m-(Z(B,D)|0)|0;m=b[q>>1]|0;B=C-(Z(m,B)|0)|0;C=b[o+-16>>1]|0;m=D-(Z(C,m)|0)|0;D=b[r>>1]|0;C=B-(Z(D,C)|0)|0;D=m-(Z(b[o+-18>>1]|0,D)|0)|0;m=l+4|0;D=(D+134217728|0)>>>0<268435455?D>>>12&65535:(D|0)>134217727?32767:-32768;j=C-(Z(j,D<<16>>16)|0)|0;o=h+2|0;b[h>>1]=D;do if((j+134217728|0)>>>0>=268435455){h=h+4|0;if((j|0)>134217727){b[o>>1]=32767;j=32767;break}else{b[o>>1]=-32768;j=-32768;break}}else{j=j>>>12&65535;b[o>>1]=j;h=h+4|0}while(0);k=k+-1<<16>>16;if(!(k<<16>>16))break;else{D=l;n=j;l=m;j=D}}}if(!(g<<16>>16)){i=A;return}k=f;h=d+(e<<1)|0;j=k+20|0;do{b[k>>1]=b[h>>1]|0;k=k+2|0;h=h+2|0}while((k|0)<(j|0));i=A;return}function Ie(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>1]=b[a>>1]|0;b[d+2>>1]=((Z(b[c>>1]|0,b[a+2>>1]|0)|0)+16384|0)>>>15;b[d+4>>1]=((Z(b[c+2>>1]|0,b[a+4>>1]|0)|0)+16384|0)>>>15;b[d+6>>1]=((Z(b[c+4>>1]|0,b[a+6>>1]|0)|0)+16384|0)>>>15;b[d+8>>1]=((Z(b[c+6>>1]|0,b[a+8>>1]|0)|0)+16384|0)>>>15;b[d+10>>1]=((Z(b[c+8>>1]|0,b[a+10>>1]|0)|0)+16384|0)>>>15;b[d+12>>1]=((Z(b[c+10>>1]|0,b[a+12>>1]|0)|0)+16384|0)>>>15;b[d+14>>1]=((Z(b[c+12>>1]|0,b[a+14>>1]|0)|0)+16384|0)>>>15;b[d+16>>1]=((Z(b[c+14>>1]|0,b[a+16>>1]|0)|0)+16384|0)>>>15;b[d+18>>1]=((Z(b[c+16>>1]|0,b[a+18>>1]|0)|0)+16384|0)>>>15;b[d+20>>1]=((Z(b[c+18>>1]|0,b[a+20>>1]|0)|0)+16384|0)>>>15;return}function Je(a){a=a|0;var b=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,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,R=0,S=0,T=0,U=0,V=0;do if(a>>>0<245){s=a>>>0<11?16:a+11&-8;a=s>>>3;m=c[26]|0;j=m>>>a;if(j&3){e=(j&1^1)+a|0;b=e<<1;d=144+(b<<2)|0;b=144+(b+2<<2)|0;f=c[b>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)==(h|0))c[26]=m&~(1<>>0>=(c[30]|0)>>>0?(l=h+12|0,(c[l>>2]|0)==(f|0)):0){c[l>>2]=d;c[b>>2]=h;break}ea()}while(0);U=e<<3;c[f+4>>2]=U|3;U=f+(U|4)|0;c[U>>2]=c[U>>2]|1;break}b=c[28]|0;if(s>>>0>b>>>0){if(j){f=2<>>12&16;f=f>>>g;e=f>>>5&8;f=f>>>e;d=f>>>2&4;f=f>>>d;h=f>>>1&2;f=f>>>h;i=f>>>1&1;i=(e|g|d|h|i)+(f>>>i)|0;f=i<<1;h=144+(f<<2)|0;f=144+(f+2<<2)|0;d=c[f>>2]|0;g=d+8|0;e=c[g>>2]|0;do if((h|0)==(e|0)){c[26]=m&~(1<>>0>=(c[30]|0)>>>0?(k=e+12|0,(c[k>>2]|0)==(d|0)):0){c[k>>2]=h;c[f>>2]=e;n=c[28]|0;break}ea()}while(0);U=i<<3;b=U-s|0;c[d+4>>2]=s|3;j=d+s|0;c[d+(s|4)>>2]=b|1;c[d+U>>2]=b;if(n){d=c[31]|0;e=n>>>3;h=e<<1;i=144+(h<<2)|0;f=c[26]|0;e=1<>2]|0;if(h>>>0<(c[30]|0)>>>0)ea();else{p=f;q=h}}else{c[26]=f|e;p=144+(h+2<<2)|0;q=i}c[p>>2]=d;c[q+12>>2]=d;c[d+8>>2]=q;c[d+12>>2]=i}c[28]=b;c[31]=j;break}a=c[27]|0;if(a){f=(a&0-a)+-1|0;T=f>>>12&16;f=f>>>T;S=f>>>5&8;f=f>>>S;U=f>>>2&4;f=f>>>U;h=f>>>1&2;f=f>>>h;j=f>>>1&1;j=c[408+((S|T|U|h|j)+(f>>>j)<<2)>>2]|0;f=(c[j+4>>2]&-8)-s|0;h=j;while(1){i=c[h+16>>2]|0;if(!i){i=c[h+20>>2]|0;if(!i){b=f;break}}h=(c[i+4>>2]&-8)-s|0;U=h>>>0>>0;f=U?h:f;h=i;j=U?i:j}a=c[30]|0;if(j>>>0>=a>>>0?(v=j+s|0,j>>>0>>0):0){e=c[j+24>>2]|0;i=c[j+12>>2]|0;do if((i|0)==(j|0)){h=j+20|0;i=c[h>>2]|0;if(!i){h=j+16|0;i=c[h>>2]|0;if(!i){t=0;break}}while(1){g=i+20|0;f=c[g>>2]|0;if(f){i=f;h=g;continue}g=i+16|0;f=c[g>>2]|0;if(!f)break;else{i=f;h=g}}if(h>>>0>>0)ea();else{c[h>>2]=0;t=i;break}}else{h=c[j+8>>2]|0;if((h>>>0>=a>>>0?(d=h+12|0,(c[d>>2]|0)==(j|0)):0)?(o=i+8|0,(c[o>>2]|0)==(j|0)):0){c[d>>2]=i;c[o>>2]=h;t=i;break}ea()}while(0);do if(e){h=c[j+28>>2]|0;g=408+(h<<2)|0;if((j|0)==(c[g>>2]|0)){c[g>>2]=t;if(!t){c[27]=c[27]&~(1<>>0<(c[30]|0)>>>0)ea();h=e+16|0;if((c[h>>2]|0)==(j|0))c[h>>2]=t;else c[e+20>>2]=t;if(!t)break}g=c[30]|0;if(t>>>0>>0)ea();c[t+24>>2]=e;h=c[j+16>>2]|0;do if(h)if(h>>>0>>0)ea();else{c[t+16>>2]=h;c[h+24>>2]=t;break}while(0);h=c[j+20>>2]|0;if(h)if(h>>>0<(c[30]|0)>>>0)ea();else{c[t+20>>2]=h;c[h+24>>2]=t;break}}while(0);if(b>>>0<16){U=b+s|0;c[j+4>>2]=U|3;U=j+(U+4)|0;c[U>>2]=c[U>>2]|1}else{c[j+4>>2]=s|3;c[j+(s|4)>>2]=b|1;c[j+(b+s)>>2]=b;e=c[28]|0;if(e){d=c[31]|0;f=e>>>3;h=f<<1;i=144+(h<<2)|0;g=c[26]|0;f=1<>2]|0;if(g>>>0<(c[30]|0)>>>0)ea();else{u=h;w=g}}else{c[26]=g|f;u=144+(h+2<<2)|0;w=i}c[u>>2]=d;c[w+12>>2]=d;c[d+8>>2]=w;c[d+12>>2]=i}c[28]=b;c[31]=v}g=j+8|0;break}ea()}else V=154}else V=154}else if(a>>>0<=4294967231){a=a+11|0;w=a&-8;m=c[27]|0;if(m){j=0-w|0;a=a>>>8;if(a)if(w>>>0>16777215)l=31;else{v=(a+1048320|0)>>>16&8;V=a<>>16&4;V=V<>>16&2;l=14-(u|v|l)+(V<>>15)|0;l=w>>>(l+7|0)&1|l<<1}else l=0;a=c[408+(l<<2)>>2]|0;a:do if(!a){i=0;a=0;V=86}else{d=j;i=0;b=w<<((l|0)==31?0:25-(l>>>1)|0);k=a;a=0;while(1){e=c[k+4>>2]&-8;j=e-w|0;if(j>>>0>>0)if((e|0)==(w|0)){e=k;a=k;V=90;break a}else a=k;else j=d;V=c[k+20>>2]|0;k=c[k+16+(b>>>31<<2)>>2]|0;i=(V|0)==0|(V|0)==(k|0)?i:V;if(!k){V=86;break}else{d=j;b=b<<1}}}while(0);if((V|0)==86){if((i|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>t;q=a>>>5&8;a=a>>>q;u=a>>>2&4;a=a>>>u;v=a>>>1&2;a=a>>>v;i=a>>>1&1;i=c[408+((q|t|u|v|i)+(a>>>i)<<2)>>2]|0;a=0}if(!i){q=j;p=a}else{e=i;V=90}}if((V|0)==90)while(1){V=0;v=(c[e+4>>2]&-8)-w|0;i=v>>>0>>0;j=i?v:j;a=i?e:a;i=c[e+16>>2]|0;if(i){e=i;V=90;continue}e=c[e+20>>2]|0;if(!e){q=j;p=a;break}else V=90}if((p|0)!=0?q>>>0<((c[28]|0)-w|0)>>>0:0){a=c[30]|0;if(p>>>0>=a>>>0?(H=p+w|0,p>>>0>>0):0){j=c[p+24>>2]|0;i=c[p+12>>2]|0;do if((i|0)==(p|0)){h=p+20|0;i=c[h>>2]|0;if(!i){h=p+16|0;i=c[h>>2]|0;if(!i){y=0;break}}while(1){g=i+20|0;f=c[g>>2]|0;if(f){i=f;h=g;continue}g=i+16|0;f=c[g>>2]|0;if(!f)break;else{i=f;h=g}}if(h>>>0>>0)ea();else{c[h>>2]=0;y=i;break}}else{h=c[p+8>>2]|0;if((h>>>0>=a>>>0?(r=h+12|0,(c[r>>2]|0)==(p|0)):0)?(s=i+8|0,(c[s>>2]|0)==(p|0)):0){c[r>>2]=i;c[s>>2]=h;y=i;break}ea()}while(0);do if(j){i=c[p+28>>2]|0;h=408+(i<<2)|0;if((p|0)==(c[h>>2]|0)){c[h>>2]=y;if(!y){c[27]=c[27]&~(1<>>0<(c[30]|0)>>>0)ea();h=j+16|0;if((c[h>>2]|0)==(p|0))c[h>>2]=y;else c[j+20>>2]=y;if(!y)break}i=c[30]|0;if(y>>>0>>0)ea();c[y+24>>2]=j;h=c[p+16>>2]|0;do if(h)if(h>>>0>>0)ea();else{c[y+16>>2]=h;c[h+24>>2]=y;break}while(0);h=c[p+20>>2]|0;if(h)if(h>>>0<(c[30]|0)>>>0)ea();else{c[y+20>>2]=h;c[h+24>>2]=y;break}}while(0);b:do if(q>>>0>=16){c[p+4>>2]=w|3;c[p+(w|4)>>2]=q|1;c[p+(q+w)>>2]=q;i=q>>>3;if(q>>>0<256){g=i<<1;e=144+(g<<2)|0;f=c[26]|0;h=1<>2]|0;if(g>>>0<(c[30]|0)>>>0)ea();else{z=h;A=g}}else{c[26]=f|h;z=144+(g+2<<2)|0;A=e}c[z>>2]=H;c[A+12>>2]=H;c[p+(w+8)>>2]=A;c[p+(w+12)>>2]=e;break}d=q>>>8;if(d)if(q>>>0>16777215)i=31;else{T=(d+1048320|0)>>>16&8;U=d<>>16&4;U=U<>>16&2;i=14-(S|T|i)+(U<>>15)|0;i=q>>>(i+7|0)&1|i<<1}else i=0;h=408+(i<<2)|0;c[p+(w+28)>>2]=i;c[p+(w+20)>>2]=0;c[p+(w+16)>>2]=0;g=c[27]|0;f=1<>2]=H;c[p+(w+24)>>2]=h;c[p+(w+12)>>2]=H;c[p+(w+8)>>2]=H;break}d=c[h>>2]|0;c:do if((c[d+4>>2]&-8|0)!=(q|0)){i=q<<((i|0)==31?0:25-(i>>>1)|0);while(1){b=d+16+(i>>>31<<2)|0;h=c[b>>2]|0;if(!h)break;if((c[h+4>>2]&-8|0)==(q|0)){C=h;break c}else{i=i<<1;d=h}}if(b>>>0<(c[30]|0)>>>0)ea();else{c[b>>2]=H;c[p+(w+24)>>2]=d;c[p+(w+12)>>2]=H;c[p+(w+8)>>2]=H;break b}}else C=d;while(0);d=C+8|0;b=c[d>>2]|0;U=c[30]|0;if(b>>>0>=U>>>0&C>>>0>=U>>>0){c[b+12>>2]=H;c[d>>2]=H;c[p+(w+8)>>2]=b;c[p+(w+12)>>2]=C;c[p+(w+24)>>2]=0;break}else ea()}else{U=q+w|0;c[p+4>>2]=U|3;U=p+(U+4)|0;c[U>>2]=c[U>>2]|1}while(0);g=p+8|0;break}ea()}else{s=w;V=154}}else{s=w;V=154}}else{s=-1;V=154}while(0);d:do if((V|0)==154){a=c[28]|0;if(a>>>0>=s>>>0){b=a-s|0;d=c[31]|0;if(b>>>0>15){c[31]=d+s;c[28]=b;c[d+(s+4)>>2]=b|1;c[d+a>>2]=b;c[d+4>>2]=s|3}else{c[28]=0;c[31]=0;c[d+4>>2]=a|3;V=d+(a+4)|0;c[V>>2]=c[V>>2]|1}g=d+8|0;break}a=c[29]|0;if(a>>>0>s>>>0){V=a-s|0;c[29]=V;g=c[32]|0;c[32]=g+s;c[g+(s+4)>>2]=V|1;c[g+4>>2]=s|3;g=g+8|0;break}if(!(c[144]|0))Me();m=s+48|0;d=c[146]|0;l=s+47|0;e=d+l|0;d=0-d|0;k=e&d;if(k>>>0>s>>>0){a=c[136]|0;if((a|0)!=0?(C=c[134]|0,H=C+k|0,H>>>0<=C>>>0|H>>>0>a>>>0):0){g=0;break}e:do if(!(c[137]&4)){a=c[32]|0;f:do if(a){i=552;while(1){j=c[i>>2]|0;if(j>>>0<=a>>>0?(x=i+4|0,(j+(c[x>>2]|0)|0)>>>0>a>>>0):0){g=i;a=x;break}i=c[i+8>>2]|0;if(!i){V=172;break f}}j=e-(c[29]|0)&d;if(j>>>0<2147483647){i=ga(j|0)|0;H=(i|0)==((c[g>>2]|0)+(c[a>>2]|0)|0);a=H?j:0;if(H){if((i|0)!=(-1|0)){A=i;t=a;V=192;break e}}else V=182}else a=0}else V=172;while(0);do if((V|0)==172){g=ga(0)|0;if((g|0)!=(-1|0)){a=g;j=c[145]|0;i=j+-1|0;if(!(i&a))j=k;else j=k-a+(i+a&0-j)|0;a=c[134]|0;i=a+j|0;if(j>>>0>s>>>0&j>>>0<2147483647){H=c[136]|0;if((H|0)!=0?i>>>0<=a>>>0|i>>>0>H>>>0:0){a=0;break}i=ga(j|0)|0;V=(i|0)==(g|0);a=V?j:0;if(V){A=g;t=a;V=192;break e}else V=182}else a=0}else a=0}while(0);g:do if((V|0)==182){g=0-j|0;do if(m>>>0>j>>>0&(j>>>0<2147483647&(i|0)!=(-1|0))?(B=c[146]|0,B=l-j+B&0-B,B>>>0<2147483647):0)if((ga(B|0)|0)==(-1|0)){ga(g|0)|0;break g}else{j=B+j|0;break}while(0);if((i|0)!=(-1|0)){A=i;t=j;V=192;break e}}while(0);c[137]=c[137]|4;V=189}else{a=0;V=189}while(0);if((((V|0)==189?k>>>0<2147483647:0)?(D=ga(k|0)|0,E=ga(0)|0,D>>>0>>0&((D|0)!=(-1|0)&(E|0)!=(-1|0))):0)?(F=E-D|0,G=F>>>0>(s+40|0)>>>0,G):0){A=D;t=G?F:a;V=192}if((V|0)==192){j=(c[134]|0)+t|0;c[134]=j;if(j>>>0>(c[135]|0)>>>0)c[135]=j;q=c[32]|0;h:do if(q){g=552;do{a=c[g>>2]|0;j=g+4|0;i=c[j>>2]|0;if((A|0)==(a+i|0)){I=a;J=j;K=i;L=g;V=202;break}g=c[g+8>>2]|0}while((g|0)!=0);if(((V|0)==202?(c[L+12>>2]&8|0)==0:0)?q>>>0>>0&q>>>0>=I>>>0:0){c[J>>2]=K+t;V=(c[29]|0)+t|0;U=q+8|0;U=(U&7|0)==0?0:0-U&7;T=V-U|0;c[32]=q+U;c[29]=T;c[q+(U+4)>>2]=T|1;c[q+(V+4)>>2]=40;c[33]=c[148];break}j=c[30]|0;if(A>>>0>>0){c[30]=A;j=A}i=A+t|0;a=552;while(1){if((c[a>>2]|0)==(i|0)){g=a;i=a;V=210;break}a=c[a+8>>2]|0;if(!a){i=552;break}}if((V|0)==210)if(!(c[i+12>>2]&8)){c[g>>2]=A;o=i+4|0;c[o>>2]=(c[o>>2]|0)+t;o=A+8|0;o=(o&7|0)==0?0:0-o&7;l=A+(t+8)|0;l=(l&7|0)==0?0:0-l&7;i=A+(l+t)|0;p=o+s|0;n=A+p|0;a=i-(A+o)-s|0;c[A+(o+4)>>2]=s|3;i:do if((i|0)!=(q|0)){if((i|0)==(c[31]|0)){V=(c[28]|0)+a|0;c[28]=V;c[31]=n;c[A+(p+4)>>2]=V|1;c[A+(V+p)>>2]=V;break}b=t+4|0;h=c[A+(b+l)>>2]|0;if((h&3|0)==1){k=h&-8;e=h>>>3;j:do if(h>>>0>=256){d=c[A+((l|24)+t)>>2]|0;g=c[A+(t+12+l)>>2]|0;k:do if((g|0)==(i|0)){f=l|16;g=A+(b+f)|0;h=c[g>>2]|0;if(!h){g=A+(f+t)|0;h=c[g>>2]|0;if(!h){R=0;break}}while(1){f=h+20|0;e=c[f>>2]|0;if(e){h=e;g=f;continue}f=h+16|0;e=c[f>>2]|0;if(!e)break;else{h=e;g=f}}if(g>>>0>>0)ea();else{c[g>>2]=0;R=h;break}}else{f=c[A+((l|8)+t)>>2]|0;do if(f>>>0>=j>>>0){j=f+12|0;if((c[j>>2]|0)!=(i|0))break;h=g+8|0;if((c[h>>2]|0)!=(i|0))break;c[j>>2]=g;c[h>>2]=f;R=g;break k}while(0);ea()}while(0);if(!d)break;j=c[A+(t+28+l)>>2]|0;h=408+(j<<2)|0;do if((i|0)!=(c[h>>2]|0)){if(d>>>0<(c[30]|0)>>>0)ea();h=d+16|0;if((c[h>>2]|0)==(i|0))c[h>>2]=R;else c[d+20>>2]=R;if(!R)break j}else{c[h>>2]=R;if(R)break;c[27]=c[27]&~(1<>>0>>0)ea();c[R+24>>2]=d;i=l|16;h=c[A+(i+t)>>2]|0;do if(h)if(h>>>0>>0)ea();else{c[R+16>>2]=h;c[h+24>>2]=R;break}while(0);i=c[A+(b+i)>>2]|0;if(!i)break;if(i>>>0<(c[30]|0)>>>0)ea();else{c[R+20>>2]=i;c[i+24>>2]=R;break}}else{h=c[A+((l|8)+t)>>2]|0;g=c[A+(t+12+l)>>2]|0;f=144+(e<<1<<2)|0;do if((h|0)!=(f|0)){if(h>>>0>=j>>>0?(c[h+12>>2]|0)==(i|0):0)break;ea()}while(0);if((g|0)==(h|0)){c[26]=c[26]&~(1<>>0>=j>>>0?(N=g+8|0,(c[N>>2]|0)==(i|0)):0){M=N;break}ea()}while(0);c[h+12>>2]=g;c[M>>2]=h}while(0);i=A+((k|l)+t)|0;a=k+a|0}i=i+4|0;c[i>>2]=c[i>>2]&-2;c[A+(p+4)>>2]=a|1;c[A+(a+p)>>2]=a;i=a>>>3;if(a>>>0<256){g=i<<1;e=144+(g<<2)|0;f=c[26]|0;h=1<>2]|0;if(g>>>0>=(c[30]|0)>>>0){S=h;T=g;break}ea()}while(0);c[S>>2]=n;c[T+12>>2]=n;c[A+(p+8)>>2]=T;c[A+(p+12)>>2]=e;break}d=a>>>8;do if(!d)i=0;else{if(a>>>0>16777215){i=31;break}T=(d+1048320|0)>>>16&8;V=d<>>16&4;V=V<>>16&2;i=14-(S|T|i)+(V<>>15)|0;i=a>>>(i+7|0)&1|i<<1}while(0);h=408+(i<<2)|0;c[A+(p+28)>>2]=i;c[A+(p+20)>>2]=0;c[A+(p+16)>>2]=0;g=c[27]|0;f=1<>2]=n;c[A+(p+24)>>2]=h;c[A+(p+12)>>2]=n;c[A+(p+8)>>2]=n;break}d=c[h>>2]|0;l:do if((c[d+4>>2]&-8|0)!=(a|0)){i=a<<((i|0)==31?0:25-(i>>>1)|0);while(1){b=d+16+(i>>>31<<2)|0;h=c[b>>2]|0;if(!h)break;if((c[h+4>>2]&-8|0)==(a|0)){U=h;break l}else{i=i<<1;d=h}}if(b>>>0<(c[30]|0)>>>0)ea();else{c[b>>2]=n;c[A+(p+24)>>2]=d;c[A+(p+12)>>2]=n;c[A+(p+8)>>2]=n;break i}}else U=d;while(0);d=U+8|0;b=c[d>>2]|0;V=c[30]|0;if(b>>>0>=V>>>0&U>>>0>=V>>>0){c[b+12>>2]=n;c[d>>2]=n;c[A+(p+8)>>2]=b;c[A+(p+12)>>2]=U;c[A+(p+24)>>2]=0;break}else ea()}else{V=(c[29]|0)+a|0;c[29]=V;c[32]=n;c[A+(p+4)>>2]=V|1}while(0);g=A+(o|8)|0;break d}else i=552;while(1){g=c[i>>2]|0;if(g>>>0<=q>>>0?(h=c[i+4>>2]|0,f=g+h|0,f>>>0>q>>>0):0)break;i=c[i+8>>2]|0}i=g+(h+-39)|0;i=g+(h+-47+((i&7|0)==0?0:0-i&7))|0;j=q+16|0;i=i>>>0>>0?q:i;h=i+8|0;g=A+8|0;g=(g&7|0)==0?0:0-g&7;V=t+-40-g|0;c[32]=A+g;c[29]=V;c[A+(g+4)>>2]=V|1;c[A+(t+-36)>>2]=40;c[33]=c[148];g=i+4|0;c[g>>2]=27;c[h>>2]=c[138];c[h+4>>2]=c[139];c[h+8>>2]=c[140];c[h+12>>2]=c[141];c[138]=A;c[139]=t;c[141]=0;c[140]=h;h=i+28|0;c[h>>2]=7;if((i+32|0)>>>0>>0)do{V=h;h=h+4|0;c[h>>2]=7}while((V+8|0)>>>0>>0);if((i|0)!=(q|0)){a=i-q|0;c[g>>2]=c[g>>2]&-2;c[q+4>>2]=a|1;c[i>>2]=a;f=a>>>3;if(a>>>0<256){h=f<<1;i=144+(h<<2)|0;g=c[26]|0;e=1<>2]|0;if(b>>>0<(c[30]|0)>>>0)ea();else{O=d;P=b}}else{c[26]=g|e;O=144+(h+2<<2)|0;P=i}c[O>>2]=q;c[P+12>>2]=q;c[q+8>>2]=P;c[q+12>>2]=i;break}d=a>>>8;if(d)if(a>>>0>16777215)h=31;else{U=(d+1048320|0)>>>16&8;V=d<>>16&4;V=V<>>16&2;h=14-(T|U|h)+(V<>>15)|0;h=a>>>(h+7|0)&1|h<<1}else h=0;e=408+(h<<2)|0;c[q+28>>2]=h;c[q+20>>2]=0;c[j>>2]=0;d=c[27]|0;b=1<>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q;break}d=c[e>>2]|0;m:do if((c[d+4>>2]&-8|0)!=(a|0)){h=a<<((h|0)==31?0:25-(h>>>1)|0);while(1){b=d+16+(h>>>31<<2)|0;e=c[b>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(a|0)){Q=e;break m}else{h=h<<1;d=e}}if(b>>>0<(c[30]|0)>>>0)ea();else{c[b>>2]=q;c[q+24>>2]=d;c[q+12>>2]=q;c[q+8>>2]=q;break h}}else Q=d;while(0);d=Q+8|0;b=c[d>>2]|0;V=c[30]|0;if(b>>>0>=V>>>0&Q>>>0>=V>>>0){c[b+12>>2]=q;c[d>>2]=q;c[q+8>>2]=b;c[q+12>>2]=Q;c[q+24>>2]=0;break}else ea()}}else{V=c[30]|0;if((V|0)==0|A>>>0>>0)c[30]=A;c[138]=A;c[139]=t;c[141]=0;c[35]=c[144];c[34]=-1;d=0;do{V=d<<1;U=144+(V<<2)|0;c[144+(V+3<<2)>>2]=U;c[144+(V+2<<2)>>2]=U;d=d+1|0}while((d|0)!=32);V=A+8|0;V=(V&7|0)==0?0:0-V&7;U=t+-40-V|0;c[32]=A+V;c[29]=U;c[A+(V+4)>>2]=U|1;c[A+(t+-36)>>2]=40;c[33]=c[148]}while(0);b=c[29]|0;if(b>>>0>s>>>0){V=b-s|0;c[29]=V;g=c[32]|0;c[32]=g+s;c[g+(s+4)>>2]=V|1;c[g+4>>2]=s|3;g=g+8|0;break}}c[(Le()|0)>>2]=12;g=0}else g=0}while(0);return g|0}function Ke(a){a=a|0;var b=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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;a:do if(a){f=a+-8|0;k=c[30]|0;b:do if(f>>>0>=k>>>0?(e=c[a+-4>>2]|0,d=e&3,(d|0)!=1):0){v=e&-8;w=a+(v+-8)|0;do if(!(e&1)){f=c[f>>2]|0;if(!d)break a;l=-8-f|0;n=a+l|0;o=f+v|0;if(n>>>0>>0)break b;if((n|0)==(c[31]|0)){g=a+(v+-4)|0;f=c[g>>2]|0;if((f&3|0)!=3){B=n;g=o;break}c[28]=o;c[g>>2]=f&-2;c[a+(l+4)>>2]=o|1;c[w>>2]=o;break a}d=f>>>3;if(f>>>0<256){e=c[a+(l+8)>>2]|0;g=c[a+(l+12)>>2]|0;f=144+(d<<1<<2)|0;do if((e|0)!=(f|0)){if(e>>>0>=k>>>0?(c[e+12>>2]|0)==(n|0):0)break;ea()}while(0);if((g|0)==(e|0)){c[26]=c[26]&~(1<>>0>=k>>>0?(h=g+8|0,(c[h>>2]|0)==(n|0)):0){b=h;break}ea()}while(0);c[e+12>>2]=g;c[b>>2]=e;B=n;g=o;break}h=c[a+(l+24)>>2]|0;f=c[a+(l+12)>>2]|0;do if((f|0)==(n|0)){e=a+(l+20)|0;f=c[e>>2]|0;if(!f){e=a+(l+16)|0;f=c[e>>2]|0;if(!f){m=0;break}}while(1){d=f+20|0;b=c[d>>2]|0;if(b){f=b;e=d;continue}d=f+16|0;b=c[d>>2]|0;if(!b)break;else{f=b;e=d}}if(e>>>0>>0)ea();else{c[e>>2]=0;m=f;break}}else{e=c[a+(l+8)>>2]|0;if((e>>>0>=k>>>0?(i=e+12|0,(c[i>>2]|0)==(n|0)):0)?(j=f+8|0,(c[j>>2]|0)==(n|0)):0){c[i>>2]=f;c[j>>2]=e;m=f;break}ea()}while(0);if(h){f=c[a+(l+28)>>2]|0;e=408+(f<<2)|0;if((n|0)==(c[e>>2]|0)){c[e>>2]=m;if(!m){c[27]=c[27]&~(1<>>0<(c[30]|0)>>>0)ea();f=h+16|0;if((c[f>>2]|0)==(n|0))c[f>>2]=m;else c[h+20>>2]=m;if(!m){B=n;g=o;break}}e=c[30]|0;if(m>>>0>>0)ea();c[m+24>>2]=h;f=c[a+(l+16)>>2]|0;do if(f)if(f>>>0>>0)ea();else{c[m+16>>2]=f;c[f+24>>2]=m;break}while(0);f=c[a+(l+20)>>2]|0;if(f)if(f>>>0<(c[30]|0)>>>0)ea();else{c[m+20>>2]=f;c[f+24>>2]=m;B=n;g=o;break}else{B=n;g=o}}else{B=n;g=o}}else{B=f;g=v}while(0);if(B>>>0>>0?(p=a+(v+-4)|0,q=c[p>>2]|0,(q&1|0)!=0):0){if(!(q&2)){if((w|0)==(c[32]|0)){A=(c[29]|0)+g|0;c[29]=A;c[32]=B;c[B+4>>2]=A|1;if((B|0)!=(c[31]|0))break a;c[31]=0;c[28]=0;break a}if((w|0)==(c[31]|0)){A=(c[28]|0)+g|0;c[28]=A;c[31]=B;c[B+4>>2]=A|1;c[B+A>>2]=A;break a}j=(q&-8)+g|0;d=q>>>3;do if(q>>>0>=256){b=c[a+(v+16)>>2]|0;g=c[a+(v|4)>>2]|0;do if((g|0)==(w|0)){f=a+(v+12)|0;g=c[f>>2]|0;if(!g){f=a+(v+8)|0;g=c[f>>2]|0;if(!g){x=0;break}}while(1){e=g+20|0;d=c[e>>2]|0;if(d){g=d;f=e;continue}e=g+16|0;d=c[e>>2]|0;if(!d)break;else{g=d;f=e}}if(f>>>0<(c[30]|0)>>>0)ea();else{c[f>>2]=0;x=g;break}}else{f=c[a+v>>2]|0;if((f>>>0>=(c[30]|0)>>>0?(t=f+12|0,(c[t>>2]|0)==(w|0)):0)?(u=g+8|0,(c[u>>2]|0)==(w|0)):0){c[t>>2]=g;c[u>>2]=f;x=g;break}ea()}while(0);if(b){g=c[a+(v+20)>>2]|0;f=408+(g<<2)|0;if((w|0)==(c[f>>2]|0)){c[f>>2]=x;if(!x){c[27]=c[27]&~(1<>>0<(c[30]|0)>>>0)ea();g=b+16|0;if((c[g>>2]|0)==(w|0))c[g>>2]=x;else c[b+20>>2]=x;if(!x)break}g=c[30]|0;if(x>>>0>>0)ea();c[x+24>>2]=b;f=c[a+(v+8)>>2]|0;do if(f)if(f>>>0>>0)ea();else{c[x+16>>2]=f;c[f+24>>2]=x;break}while(0);d=c[a+(v+12)>>2]|0;if(d)if(d>>>0<(c[30]|0)>>>0)ea();else{c[x+20>>2]=d;c[d+24>>2]=x;break}}}else{e=c[a+v>>2]|0;g=c[a+(v|4)>>2]|0;f=144+(d<<1<<2)|0;do if((e|0)!=(f|0)){if(e>>>0>=(c[30]|0)>>>0?(c[e+12>>2]|0)==(w|0):0)break;ea()}while(0);if((g|0)==(e|0)){c[26]=c[26]&~(1<>>0>=(c[30]|0)>>>0?(s=g+8|0,(c[s>>2]|0)==(w|0)):0){r=s;break}ea()}while(0);c[e+12>>2]=g;c[r>>2]=e}while(0);c[B+4>>2]=j|1;c[B+j>>2]=j;if((B|0)==(c[31]|0)){c[28]=j;break a}else g=j}else{c[p>>2]=q&-2;c[B+4>>2]=g|1;c[B+g>>2]=g}f=g>>>3;if(g>>>0<256){e=f<<1;g=144+(e<<2)|0;b=c[26]|0;d=1<>2]|0;if(b>>>0<(c[30]|0)>>>0)ea();else{y=d;z=b}}else{c[26]=b|d;y=144+(e+2<<2)|0;z=g}c[y>>2]=B;c[z+12>>2]=B;c[B+8>>2]=z;c[B+12>>2]=g;break a}b=g>>>8;if(b)if(g>>>0>16777215)f=31;else{y=(b+1048320|0)>>>16&8;z=b<>>16&4;z=z<>>16&2;f=14-(a|y|f)+(z<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;d=408+(f<<2)|0;c[B+28>>2]=f;c[B+20>>2]=0;c[B+16>>2]=0;b=c[27]|0;e=1<>2]|0;d:do if((c[d+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){b=d+16+(f>>>31<<2)|0;e=c[b>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(g|0)){A=e;break d}else{f=f<<1;d=e}}if(b>>>0<(c[30]|0)>>>0)ea();else{c[b>>2]=B;c[B+24>>2]=d;c[B+12>>2]=B;c[B+8>>2]=B;break c}}else A=d;while(0);b=A+8|0;d=c[b>>2]|0;z=c[30]|0;if(d>>>0>=z>>>0&A>>>0>=z>>>0){c[d+12>>2]=B;c[b>>2]=B;c[B+8>>2]=d;c[B+12>>2]=A;c[B+24>>2]=0;break}else ea()}else{c[27]=b|e;c[d>>2]=B;c[B+24>>2]=d;c[B+12>>2]=B;c[B+8>>2]=B}while(0);B=(c[34]|0)+-1|0;c[34]=B;if(!B)b=560;else break a;while(1){b=c[b>>2]|0;if(!b)break;else b=b+8|0}c[34]=-1;break a}}while(0);ea()}while(0);return}function Le(){var a=0;if(!0)a=600;else a=c[(da()|0)+60>>2]|0;return a|0}function Me(){var a=0;do if(!(c[144]|0)){a=ca(30)|0;if(!(a+-1&a)){c[146]=a;c[145]=a;c[147]=-1;c[148]=-1;c[149]=0;c[137]=0;c[144]=(ha(0)|0)&-16^1431655768;break}else ea()}while(0);return}function Ne(){}function Oe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ja(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Pe(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 Oe(b,c,d)|0;return b|0}function Qe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0} - -// EMSCRIPTEN_END_FUNCS -return{_free:Ke,___errno_location:Le,_memmove:Pe,_Decoder_Interface_Decode:xa,_Decoder_Interface_exit:wa,_Encoder_Interface_init:ya,_memset:Qe,_malloc:Je,_memcpy:Oe,_Encoder_Interface_exit:za,_Decoder_Interface_init:va,_Encoder_Interface_Encode:Aa,runPostSets:Ne,stackAlloc:ma,stackSave:na,stackRestore:oa,establishStackSpace:pa,setThrew:qa,setTempRet0:ta,getTempRet0:ua}}) - - -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _Encoder_Interface_Encode=Module["_Encoder_Interface_Encode"]=asm["_Encoder_Interface_Encode"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _memmove=Module["_memmove"]=asm["_memmove"];var _Decoder_Interface_exit=Module["_Decoder_Interface_exit"]=asm["_Decoder_Interface_exit"];var _Encoder_Interface_init=Module["_Encoder_Interface_init"]=asm["_Encoder_Interface_init"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _Decoder_Interface_Decode=Module["_Decoder_Interface_Decode"]=asm["_Decoder_Interface_Decode"];var _Decoder_Interface_init=Module["_Decoder_Interface_init"]=asm["_Decoder_Interface_init"];var _Encoder_Interface_exit=Module["_Encoder_Interface_exit"]=asm["_Encoder_Interface_exit"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];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;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){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"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() - - - - -return AMR; })(); + var AMR={toWAV:(function(amr){var decoded=this._decode(amr);if(!decoded){return null}var raw=new Uint8Array(decoded.buffer,decoded.byteOffset,decoded.byteLength);var out=new Uint8Array(raw.length+this.WAV_HEADER_SIZE);var offset=0;var write_int16=(function(value){var a=new Uint8Array(2);(new Int16Array(a.buffer))[0]=value;out.set(a,offset);offset+=2});var write_int32=(function(value){var a=new Uint8Array(4);(new Int32Array(a.buffer))[0]=value;out.set(a,offset);offset+=4});var write_string=(function(value){var d=(new TextEncoder("utf-8")).encode(value);out.set(d,offset);offset+=d.length});write_string("RIFF");write_int32(4+8+16+8+raw.length);write_string("WAVEfmt ");write_int32(16);var bits_per_sample=16;var sample_rate=8e3;var channels=1;var bytes_per_frame=bits_per_sample/8*channels;var bytes_per_sec=bytes_per_frame*sample_rate;write_int16(1);write_int16(1);write_int32(sample_rate);write_int32(bytes_per_sec);write_int16(bytes_per_frame);write_int16(bits_per_sample);write_string("data");write_int32(raw.length);out.set(raw,offset);return out}),decode:(function(amr){var raw=this._decode(amr);if(!raw){return null}var out=new Float32Array(raw.length);for(var i=0;i>3&15];if(inOffset+size+1>amr.length){break}decodeInBuffer.set(amr.subarray(inOffset,inOffset+size+1));this.Decoder_Interface_Decode(decoder,decodeInBuffer.byteOffset,decodeOutBuffer.byteOffset,0);if(outOffset+this.PCM_BUFFER_COUNT>out.length){var newOut=new Int16Array(out.length*2);newOut.set(out.subarray(0,outOffset));out=newOut}out.set(decodeOutBuffer,outOffset);outOffset+=this.PCM_BUFFER_COUNT;inOffset+=size+1}Module._free(decodeInBuffer.byteOffset);Module._free(decodeOutBuffer.byteOffset);this.Decoder_Interface_exit(decoder);return out.subarray(0,outOffset)}),encode:(function(pcm,pcmSampleRate,mode){if(pcmSampleRate<8e3){console.error("pcmSampleRate should not be less than 8000.");return null}if(typeof mode==="undefined"){mode=this.Mode.MR795}var encoder=this.Encoder_Interface_init();if(!encoder){return null}var buf=Module._malloc(this.PCM_BUFFER_COUNT*2);var encodeInBuffer=new Int16Array(Module.HEAPU8.buffer,buf,this.PCM_BUFFER_COUNT);buf=Module._malloc(this.AMR_BUFFER_COUNT);var encodeOutBuffer=new Uint8Array(Module.HEAPU8.buffer,buf,this.AMR_BUFFER_COUNT);var ratio=pcmSampleRate/8e3;var inLength=Math.floor(pcm.length/ratio);var inData=new Int16Array(inLength);for(var i=0;i1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var 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}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(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 Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(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)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(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 Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){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)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;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}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;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}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(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()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){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 ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}var TOTAL_STACK=Module["TOTAL_STACK"]||65536;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||524288;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.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)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}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"];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_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;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["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+31776;__ATINIT__.push();allocate([154,14,0,0,188,14,0,0,226,14,0,0,8,15,0,0,46,15,0,0,84,15,0,0,130,15,0,0,208,15,0,0,66,16,0,0,108,16,0,0,42,17,0,0,248,17,0,0,228,18,0,0,240,19,0,0,24,21,0,0,86,22,0,0,238,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,13,0,15,0,17,0,19,0,20,0,26,0,31,0,5,0,6,0,5,0,5,0,0,0,0,0,0,0,0,0,1,252,146,252,36,253,182,253,72,254,218,254,108,255,0,0,0,0,32,78,32,78,32,78,32,78,32,78,80,70,0,64,0,32,0,0,0,0,255,127,112,125,112,125,112,125,112,125,112,125,153,89,255,127,112,125,112,125,102,102,102,38,153,25,153,25,154,89,185,62,232,43,188,30,132,21,16,15,139,10,97,7,42,5,157,3,0,96,0,72,0,54,128,40,96,30,200,22,22,17,209,12,157,9,54,7,102,70,184,38,75,21,182,11,113,6,139,3,243,1,18,1,151,0,83,0,154,89,185,62,232,43,188,30,132,21,16,15,139,10,97,7,42,5,157,3,44,3,128,0,30,2,140,0,57,11,111,4,218,8,74,13,19,8,51,2,133,49,135,2,36,16,6,7,225,21,165,20,9,30,118,1,151,14,185,1,160,42,78,10,31,46,190,9,10,80,29,3,98,20,163,2,68,26,162,32,162,20,160,6,208,5,172,1,250,22,196,1,212,20,232,15,255,13,244,4,165,9,133,3,22,62,237,3,134,58,199,12,91,40,250,18,51,14,229,7,36,10,67,3,72,48,28,19,174,47,168,6,120,52,68,6,158,35,37,9,128,15,2,6,103,21,208,38,211,14,161,1,79,5,158,1,56,14,33,6,59,31,213,13,141,44,133,2,104,33,123,2,216,15,97,5,224,64,236,23,156,44,188,2,215,7,95,2,127,48,42,6,111,43,46,18,112,53,172,6,214,46,205,4,60,31,129,28,175,51,83,22,124,9,135,4,25,8,149,7,74,24,233,23,218,13,12,7,221,34,10,7,231,33,44,6,111,54,248,13,1,52,93,24,254,23,106,4,106,23,198,6,61,55,54,18,7,44,249,12,194,47,15,6,107,54,199,11,217,19,224,40,228,36,50,26,153,6,171,2,156,5,26,5,44,28,93,15,242,15,153,10,113,30,192,2,222,58,34,3,155,24,92,20,241,16,237,20,20,26,29,2,174,23,114,2,83,53,116,14,234,44,104,9,28,63,204,2,145,47,239,2,129,31,225,44,170,24,208,8,114,17,240,1,125,28,11,2,229,39,249,14,202,32,221,11,211,32,198,3,148,55,88,7,255,33,33,21,11,64,255,18,252,28,187,7,201,23,206,4,155,36,46,17,222,56,35,13,247,52,57,11,107,51,185,5,158,21,142,6,82,51,179,57,170,28,88,2,38,5,36,2,156,16,211,13,60,39,60,9,91,41,110,2,32,51,157,2,46,55,198,13,175,19,56,38,234,59,107,2,43,12,78,2,58,64,197,11,182,60,72,16,177,60,75,6,45,60,204,4,151,62,83,36,110,29,112,19,198,7,189,4,183,44,133,4,224,48,143,21,3,37,84,10,36,30,242,7,224,51,191,8,139,62,229,19,130,31,105,26,99,39,133,5,138,19,43,9,235,48,87,23,22,59,83,11,88,71,241,8,211,61,223,9,137,63,14,40,59,57,55,44,5,7,81,1,43,12,141,1,182,13,112,11,240,17,110,10,95,29,116,2,151,44,144,2,58,23,131,9,144,25,199,28,46,32,61,3,160,15,95,3,48,39,188,9,185,62,223,13,28,71,30,4,215,23,174,5,252,22,220,30,64,73,140,13,72,7,32,2,238,35,171,2,103,45,64,16,242,17,108,6,86,12,133,4,81,62,0,10,61,48,149,14,12,68,140,20,218,23,212,7,101,11,206,6,83,64,137,20,147,65,144,6,53,67,223,6,165,18,159,12,218,28,147,23,6,56,28,39,195,15,186,1,98,16,202,1,254,35,194,8,3,29,121,16,60,50,33,3,178,43,57,3,104,49,36,8,156,50,154,25,33,37,228,3,229,25,217,3,41,41,198,9,185,59,142,19,58,49,7,8,124,60,117,6,66,63,9,27,151,55,158,22,66,10,60,3,239,21,150,6,95,53,146,22,84,14,18,6,49,44,73,10,42,38,179,5,179,54,125,18,25,62,147,24,134,24,78,7,230,30,237,8,82,66,219,17,192,64,9,15,144,59,7,9,151,62,172,12,123,56,144,69,71,46,203,10,189,7,127,5,120,5,108,3,239,16,219,13,39,17,114,16,29,21,168,2,53,68,13,3,101,25,254,19,155,31,253,29,187,28,26,3,141,32,158,4,193,58,88,12,80,58,223,11,197,79,112,3,209,56,84,3,49,48,116,57,248,26,128,7,129,16,165,3,26,32,63,4,163,41,244,15,98,39,181,17,175,10,72,3,177,80,57,4,71,65,78,23,1,62,226,17,119,42,14,10,189,14,142,4,183,56,204,15,219,80,67,10,115,59,174,10,170,59,138,8,113,24,154,12,69,51,24,76,28,28,162,3,158,9,82,6,163,17,20,12,28,54,181,16,220,40,65,3,187,67,42,3,251,65,241,8,186,60,25,32,35,53,148,6,125,12,42,7,76,62,4,11,196,61,207,20,110,66,134,9,148,65,46,5,55,61,220,31,206,45,108,33,178,14,5,8,91,37,37,5,249,52,134,26,195,47,144,7,244,31,222,13,231,51,242,6,171,63,199,25,163,63,78,30,73,33,247,9,57,28,85,10,93,71,65,29,245,65,200,8,218,69,68,11,113,67,0,13,201,36,194,78,34,43,128,32,6,5,108,2,151,5,71,2,105,23,241,8,138,15,42,14,24,20,240,2,97,52,62,3,177,21,44,11,244,45,20,23,241,41,48,2,70,21,52,2,9,52,192,11,170,46,99,14,175,77,30,3,97,38,216,2,95,53,44,34,223,28,237,11,211,9,10,3,162,23,65,3,69,25,210,19,113,32,159,9,253,23,73,7,204,59,238,4,72,56,195,17,95,53,163,17,65,12,167,11,175,9,235,4,240,58,39,18,22,60,47,10,156,56,88,9,174,48,233,9,115,29,133,11,109,50,28,47,92,21,172,2,69,12,210,2,217,19,250,4,188,49,104,16,198,59,169,2,139,30,80,2,134,25,229,7,94,64,33,34,52,52,114,3,21,21,131,3,64,57,130,8,149,57,131,16,190,55,18,5,105,54,237,7,117,60,58,29,199,61,220,17,217,9,221,7,198,19,12,7,39,20,182,25,218,27,13,14,168,42,75,6,209,45,172,6,7,66,127,13,140,63,240,25,90,36,239,3,153,36,58,8,238,74,173,19,153,48,173,16,47,62,52,5,253,59,184,13,122,46,61,55,229,62,198,26,218,7,225,2,195,14,93,3,190,44,64,11,236,13,212,13,97,35,217,4,103,48,128,3,98,33,21,18,41,45,144,22,193,31,77,2,26,32,76,2,40,73,171,14,173,50,77,12,113,61,246,2,250,64,242,2,118,59,130,43,255,61,160,8,65,18,98,2,234,39,166,2,153,59,50,16,97,22,255,12,185,32,134,6,150,77,17,9,90,60,135,21,230,54,105,21,96,22,72,11,156,29,66,5,48,56,205,20,108,63,110,15,14,59,160,14,202,59,155,5,5,57,230,15,13,48,80,61,193,29,163,6,122,8,116,3,107,17,215,17,174,70,234,12,198,49,47,3,78,58,139,3,168,58,185,16,158,60,176,32,74,70,63,4,54,9,97,3,153,63,203,14,63,61,244,17,228,63,254,5,200,64,162,8,193,65,225,37,57,62,161,17,205,12,61,4,171,37,139,8,197,46,180,23,239,35,110,17,251,34,93,6,49,40,246,11,97,64,35,20,106,60,154,27,110,53,239,9,153,20,229,8,106,65,69,24,15,65,80,13,80,79,35,13,0,73,193,7,92,55,67,50,50,59,87,61,121,17,252,3,145,6,118,3,215,16,205,16,248,34,73,14,5,23,123,4,127,45,172,5,14,62,179,8,230,17,244,25,17,27,181,4,76,24,31,3,127,48,81,13,96,62,37,15,147,77,61,8,217,37,93,8,150,57,126,34,144,56,39,10,25,7,214,4,91,30,45,3,135,74,58,17,178,21,16,8,103,14,28,11,27,68,208,8,57,65,134,17,71,63,12,21,92,31,203,10,77,13,71,8,18,68,101,21,130,53,226,10,167,77,160,10,138,35,40,15,252,70,225,18,184,67,175,47,252,19,228,3,71,19,220,3,160,38,9,12,126,23,251,20,9,62,131,6,213,32,159,4,239,58,62,9,65,77,90,27,187,46,26,6,111,28,104,4,219,65,252,5,146,61,5,21,116,57,17,8,137,78,107,8,6,67,53,32,247,69,174,24,91,21,224,5,4,16,14,10,13,68,154,26,41,22,72,11,252,64,54,13,15,35,39,7,191,78,129,18,94,76,126,28,2,26,221,10,208,44,249,12,197,75,190,19,190,73,114,18,55,64,69,9,206,79,34,17,89,44,158,103,73,45,252,11,50,11,30,6,244,19,46,4,142,37,51,19,75,19,208,13,117,29,110,3,237,80,83,3,26,27,43,17,159,65,53,30,153,39,251,3,117,38,196,3,134,60,115,15,99,60,102,13,175,73,214,3,152,78,195,3,236,65,87,50,254,55,104,16,199,25,196,4,6,36,46,3,46,66,14,20,29,22,34,19,112,21,6,7,34,79,122,15,109,66,34,24,9,70,41,23,149,36,92,13,50,29,179,7,81,76,57,20,59,74,190,11,70,64,204,14,198,62,63,9,216,33,183,10,229,36,246,102,104,42,7,5,227,13,241,3,230,21,38,14,253,75,136,21,165,48,29,3,154,80,143,3,67,60,250,11,141,66,35,40,195,73,73,10,73,15,244,4,63,76,43,13,132,70,110,20,91,75,142,6,52,76,100,12,152,70,2,42,241,64,189,26,62,12,250,8,117,42,133,9,220,60,1,27,53,49,53,13,108,43,225,12,122,65,120,9,165,73,59,26,19,67,159,38,199,49,45,10,233,34,68,12,89,74,84,30,171,71,40,15,251,79,98,14,146,76,52,13,244,50,173,75,30,41,84,90,1,0,3,0,0,0,1,0,2,0,4,0,82,120,26,113,81,106,240,99,241,93,78,88,2,83,7,78,89,73,242,68,51,115,174,103,80,93,251,83,149,75,6,68,56,61,25,55,150,49,161,44,205,76,21,46,166,27,151,16,244,9,249,5,149,3,38,2,74,1,198,0,249,79,26,80,59,80,92,80,125,80,164,80,197,80,236,80,13,81,52,81,85,81,124,81,157,81,196,81,236,81,19,82,58,82,97,82,137,82,176,82,215,82,255,82,38,83,84,83,123,83,169,83,208,83,254,83,38,84,84,84,129,84,175,84,221,84,11,85,57,85,103,85,149,85,201,85,247,85,43,86,89,86,142,86,194,86,247,86,43,87,95,87,148,87,200,87,3,88,56,88,115,88,174,88,233,88,36,89,95,89,154,89,219,89,22,90,88,90,153,90,212,90,28,91,94,91,159,91,231,91,48,92,113,92,192,92,8,93,80,93,159,93,237,93,60,94,138,94,224,94,46,95,131,95,217,95,52,96,138,96,229,96,72,97,163,97,6,98,104,98,209,98,51,99,156,99,11,100,123,100,234,100,96,101,214,101,76,102,201,102,76,103,207,103,82,104,220,104,108,105,252,105,147,106,48,107,205,107,113,108,27,109,204,109,125,110,59,111,249,111,197,112,150,113,111,114,84,115,64,116,50,117,50,118,63,119,88,120,225,122,255,127,255,127,255,127,255,127,255,127,255,127,255,127,225,122,88,120,63,119,50,118,50,117,64,116,84,115,111,114,150,113,197,112,249,111,59,111,125,110,204,109,27,109,113,108,205,107,48,107,147,106,252,105,108,105,220,104,82,104,207,103,76,103,201,102,76,102,214,101,96,101,234,100,123,100,11,100,156,99,51,99,209,98,104,98,6,98,163,97,72,97,229,96,138,96,52,96,217,95,131,95,46,95,224,94,138,94,60,94,237,93,159,93,80,93,8,93,192,92,113,92,48,92,231,91,159,91,94,91,28,91,212,90,153,90,88,90,22,90,219,89,154,89,95,89,36,89,233,88,174,88,115,88,56,88,3,88,200,87,148,87,95,87,43,87,247,86,194,86,142,86,89,86,43,86,247,85,201,85,149,85,103,85,57,85,11,85,221,84,175,84,129,84,84,84,38,84,254,83,208,83,169,83,123,83,84,83,38,83,255,82,215,82,176,82,137,82,97,82,58,82,19,82,236,81,196,81,157,81,124,81,85,81,52,81,13,81,236,80,197,80,164,80,125,80,92,80,59,80,26,80,249,79,210,79,177,79,145,79,112,79,13,0,14,0,16,0,18,0,20,0,21,0,27,0,32,0,6,0,7,0,6,0,6,0,0,0,0,0,0,0,1,0,13,0,14,0,16,0,18,0,19,0,21,0,26,0,31,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,1,0,79,115,156,110,74,97,126,77,72,54,9,31,195,10,153,251,125,242,48,239,127,240,173,244,231,249,176,254,22,2,202,3,255,3,55,3,4,2,220,0,0,0,125,255,62,255,41,255,0,0,216,127,107,127,182,126,187,125,123,124,248,122,53,121,53,119,250,116,137,114,128,46,128,67,0,120,0,101,128,94,64,113,64,95,192,28,64,76,192,57,84,0,1,0,254,255,2,0,5,0,10,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,5,0,10,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,10,0,19,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,94,0,0,0,253,255,3,0,3,0,6,0,5,0,9,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,19,0,19,0,19,0,19,0,23,0,39,0,57,0,5,0,8,0,8,0,7,0,8,0,7,0,2,0,8,0,4,0,7,0,2,0,4,0,7,0,2,0,8,0,4,0,7,0,2,0,8,0,8,0,7,0,8,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,8,0,9,0,9,0,8,0,9,0,2,0,6,0,4,0,9,0,2,0,6,0,8,0,9,0,2,0,6,0,4,0,9,0,2,0,6,0,8,0,9,0,9,0,8,0,11,0,3,0,7,0,4,0,11,0,3,0,7,0,8,0,11,0,3,0,7,0,4,0,11,0,3,0,7,0,8,0,9,0,9,0,8,0,13,0,4,0,7,0,5,0,13,0,4,0,7,0,8,0,13,0,4,0,7,0,5,0,13,0,4,0,7,0,9,0,9,0,9,0,8,0,13,0,4,0,4,0,5,0,6,0,13,0,4,0,4,0,5,0,8,0,13,0,4,0,4,0,5,0,6,0,13,0,4,0,4,0,5,0,8,0,9,0,9,0,8,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,5,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,8,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,5,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,7,0,8,0,9,0,8,0,6,0,9,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,9,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,3,0,8,0,9,0,9,0,6,0,95,0,103,0,118,0,134,0,148,0,159,0,204,0,244,0,39,0,43,0,38,0,37,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0,23,0,24,0,25,0,26,0,27,0,28,0,48,0,49,0,61,0,62,0,82,0,83,0,47,0,46,0,45,0,44,0,81,0,80,0,79,0,78,0,17,0,18,0,20,0,22,0,77,0,76,0,75,0,74,0,29,0,30,0,43,0,42,0,41,0,40,0,38,0,39,0,16,0,19,0,21,0,50,0,51,0,59,0,60,0,63,0,64,0,72,0,73,0,84,0,85,0,93,0,94,0,32,0,33,0,35,0,36,0,53,0,54,0,56,0,57,0,66,0,67,0,69,0,70,0,87,0,88,0,90,0,91,0,34,0,55,0,68,0,89,0,37,0,58,0,71,0,92,0,31,0,52,0,65,0,86,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,23,0,24,0,25,0,26,0,27,0,46,0,65,0,84,0,45,0,44,0,43,0,64,0,63,0,62,0,83,0,82,0,81,0,102,0,101,0,100,0,42,0,61,0,80,0,99,0,28,0,47,0,66,0,85,0,18,0,41,0,60,0,79,0,98,0,29,0,48,0,67,0,17,0,20,0,22,0,40,0,59,0,78,0,97,0,21,0,30,0,49,0,68,0,86,0,19,0,16,0,87,0,39,0,38,0,58,0,57,0,77,0,35,0,54,0,73,0,92,0,76,0,96,0,95,0,36,0,55,0,74,0,93,0,32,0,51,0,33,0,52,0,70,0,71,0,89,0,90,0,31,0,50,0,69,0,88,0,37,0,56,0,75,0,94,0,34,0,53,0,72,0,91,0,0,0,1,0,4,0,5,0,3,0,6,0,7,0,2,0,13,0,15,0,8,0,9,0,11,0,12,0,14,0,10,0,16,0,28,0,74,0,29,0,75,0,27,0,73,0,26,0,72,0,30,0,76,0,51,0,97,0,50,0,71,0,96,0,117,0,31,0,77,0,52,0,98,0,49,0,70,0,95,0,116,0,53,0,99,0,32,0,78,0,33,0,79,0,48,0,69,0,94,0,115,0,47,0,68,0,93,0,114,0,46,0,67,0,92,0,113,0,19,0,21,0,23,0,22,0,18,0,17,0,20,0,24,0,111,0,43,0,89,0,110,0,64,0,65,0,44,0,90,0,25,0,45,0,66,0,91,0,112,0,54,0,100,0,40,0,61,0,86,0,107,0,39,0,60,0,85,0,106,0,36,0,57,0,82,0,103,0,35,0,56,0,81,0,102,0,34,0,55,0,80,0,101,0,42,0,63,0,88,0,109,0,41,0,62,0,87,0,108,0,38,0,59,0,84,0,105,0,37,0,58,0,83,0,104,0,0,0,1,0,4,0,3,0,5,0,6,0,13,0,7,0,2,0,8,0,9,0,11,0,15,0,12,0,14,0,10,0,28,0,82,0,29,0,83,0,27,0,81,0,26,0,80,0,30,0,84,0,16,0,55,0,109,0,56,0,110,0,31,0,85,0,57,0,111,0,48,0,73,0,102,0,127,0,32,0,86,0,51,0,76,0,105,0,130,0,52,0,77,0,106,0,131,0,58,0,112,0,33,0,87,0,19,0,23,0,53,0,78,0,107,0,132,0,21,0,22,0,18,0,17,0,20,0,24,0,25,0,50,0,75,0,104,0,129,0,47,0,72,0,101,0,126,0,54,0,79,0,108,0,133,0,46,0,71,0,100,0,125,0,128,0,103,0,74,0,49,0,45,0,70,0,99,0,124,0,42,0,67,0,96,0,121,0,39,0,64,0,93,0,118,0,38,0,63,0,92,0,117,0,35,0,60,0,89,0,114,0,34,0,59,0,88,0,113,0,44,0,69,0,98,0,123,0,43,0,68,0,97,0,122,0,41,0,66,0,95,0,120,0,40,0,65,0,94,0,119,0,37,0,62,0,91,0,116,0,36,0,61,0,90,0,115,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0,16,0,26,0,87,0,27,0,88,0,28,0,89,0,29,0,90,0,30,0,91,0,51,0,80,0,112,0,141,0,52,0,81,0,113,0,142,0,54,0,83,0,115,0,144,0,55,0,84,0,116,0,145,0,58,0,119,0,59,0,120,0,21,0,22,0,23,0,17,0,18,0,19,0,31,0,60,0,92,0,121,0,56,0,85,0,117,0,146,0,20,0,24,0,25,0,50,0,79,0,111,0,140,0,57,0,86,0,118,0,147,0,49,0,78,0,110,0,139,0,48,0,77,0,53,0,82,0,114,0,143,0,109,0,138,0,47,0,76,0,108,0,137,0,32,0,33,0,61,0,62,0,93,0,94,0,122,0,123,0,41,0,42,0,43,0,44,0,45,0,46,0,70,0,71,0,72,0,73,0,74,0,75,0,102,0,103,0,104,0,105,0,106,0,107,0,131,0,132,0,133,0,134,0,135,0,136,0,34,0,63,0,95,0,124,0,35,0,64,0,96,0,125,0,36,0,65,0,97,0,126,0,37,0,66,0,98,0,127,0,38,0,67,0,99,0,128,0,39,0,68,0,100,0,129,0,40,0,69,0,101,0,130,0,8,0,7,0,6,0,5,0,4,0,3,0,2,0,14,0,16,0,9,0,10,0,12,0,13,0,15,0,11,0,17,0,20,0,22,0,24,0,23,0,19,0,18,0,21,0,56,0,88,0,122,0,154,0,57,0,89,0,123,0,155,0,58,0,90,0,124,0,156,0,52,0,84,0,118,0,150,0,53,0,85,0,119,0,151,0,27,0,93,0,28,0,94,0,29,0,95,0,30,0,96,0,31,0,97,0,61,0,127,0,62,0,128,0,63,0,129,0,59,0,91,0,125,0,157,0,32,0,98,0,64,0,130,0,1,0,0,0,25,0,26,0,33,0,99,0,34,0,100,0,65,0,131,0,66,0,132,0,54,0,86,0,120,0,152,0,60,0,92,0,126,0,158,0,55,0,87,0,121,0,153,0,117,0,116,0,115,0,46,0,78,0,112,0,144,0,43,0,75,0,109,0,141,0,40,0,72,0,106,0,138,0,36,0,68,0,102,0,134,0,114,0,149,0,148,0,147,0,146,0,83,0,82,0,81,0,80,0,51,0,50,0,49,0,48,0,47,0,45,0,44,0,42,0,39,0,35,0,79,0,77,0,76,0,74,0,71,0,67,0,113,0,111,0,110,0,108,0,105,0,101,0,145,0,143,0,142,0,140,0,137,0,133,0,41,0,73,0,107,0,139,0,37,0,69,0,103,0,135,0,38,0,70,0,104,0,136,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,26,0,27,0,28,0,29,0,30,0,31,0,115,0,116,0,117,0,118,0,119,0,120,0,72,0,73,0,161,0,162,0,65,0,68,0,69,0,108,0,111,0,112,0,154,0,157,0,158,0,197,0,200,0,201,0,32,0,33,0,121,0,122,0,74,0,75,0,163,0,164,0,66,0,109,0,155,0,198,0,19,0,23,0,21,0,22,0,18,0,17,0,20,0,24,0,25,0,37,0,36,0,35,0,34,0,80,0,79,0,78,0,77,0,126,0,125,0,124,0,123,0,169,0,168,0,167,0,166,0,70,0,67,0,71,0,113,0,110,0,114,0,159,0,156,0,160,0,202,0,199,0,203,0,76,0,165,0,81,0,82,0,92,0,91,0,93,0,83,0,95,0,85,0,84,0,94,0,101,0,102,0,96,0,104,0,86,0,103,0,87,0,97,0,127,0,128,0,138,0,137,0,139,0,129,0,141,0,131,0,130,0,140,0,147,0,148,0,142,0,150,0,132,0,149,0,133,0,143,0,170,0,171,0,181,0,180,0,182,0,172,0,184,0,174,0,173,0,183,0,190,0,191,0,185,0,193,0,175,0,192,0,176,0,186,0,38,0,39,0,49,0,48,0,50,0,40,0,52,0,42,0,41,0,51,0,58,0,59,0,53,0,61,0,43,0,60,0,44,0,54,0,194,0,179,0,189,0,196,0,177,0,195,0,178,0,187,0,188,0,151,0,136,0,146,0,153,0,134,0,152,0,135,0,144,0,145,0,105,0,90,0,100,0,107,0,88,0,106,0,89,0,98,0,99,0,62,0,47,0,57,0,64,0,45,0,63,0,46,0,55,0,56,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,23,0,15,0,16,0,17,0,18,0,19,0,20,0,21,0,22,0,24,0,25,0,26,0,27,0,28,0,38,0,141,0,39,0,142,0,40,0,143,0,41,0,144,0,42,0,145,0,43,0,146,0,44,0,147,0,45,0,148,0,46,0,149,0,47,0,97,0,150,0,200,0,48,0,98,0,151,0,201,0,49,0,99,0,152,0,202,0,86,0,136,0,189,0,239,0,87,0,137,0,190,0,240,0,88,0,138,0,191,0,241,0,91,0,194,0,92,0,195,0,93,0,196,0,94,0,197,0,95,0,198,0,29,0,30,0,31,0,32,0,33,0,34,0,35,0,50,0,100,0,153,0,203,0,89,0,139,0,192,0,242,0,51,0,101,0,154,0,204,0,55,0,105,0,158,0,208,0,90,0,140,0,193,0,243,0,59,0,109,0,162,0,212,0,63,0,113,0,166,0,216,0,67,0,117,0,170,0,220,0,36,0,37,0,54,0,53,0,52,0,58,0,57,0,56,0,62,0,61,0,60,0,66,0,65,0,64,0,70,0,69,0,68,0,104,0,103,0,102,0,108,0,107,0,106,0,112,0,111,0,110,0,116,0,115,0,114,0,120,0,119,0,118,0,157,0,156,0,155,0,161,0,160,0,159,0,165,0,164,0,163,0,169,0,168,0,167,0,173,0,172,0,171,0,207,0,206,0,205,0,211,0,210,0,209,0,215,0,214,0,213,0,219,0,218,0,217,0,223,0,222,0,221,0,73,0,72,0,71,0,76,0,75,0,74,0,79,0,78,0,77,0,82,0,81,0,80,0,85,0,84,0,83,0,123,0,122,0,121,0,126,0,125,0,124,0,129,0,128,0,127,0,132,0,131,0,130,0,135,0,134,0,133,0,176,0,175,0,174,0,179,0,178,0,177,0,182,0,181,0,180,0,185,0,184,0,183,0,188,0,187,0,186,0,226,0,225,0,224,0,229,0,228,0,227,0,232,0,231,0,230,0,235,0,234,0,233,0,238,0,237,0,236,0,96,0,199,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,1,0,3,0,2,0,4,0,1,0,4,0,1,0,4,0,0,0,205,12,156,25,0,32,102,38,205,44,0,48,51,51,102,54,154,57,205,60,0,64,51,67,102,70,154,73,205,76,159,0,64,241,53,167,206,0,190,242,52,176,12,1,67,244,88,185,93,1,201,245,133,194,163,1,215,246,223,200,226,1,166,247,189,205,42,2,116,248,147,210,125,2,66,249,109,215,221,2,18,250,77,220,74,3,222,250,30,225,201,3,174,251,0,230,90,4,124,252,216,234,1,5,74,253,179,239,193,5,25,254,141,244,158,6,231,254,104,249,156,7,181,255,67,254,193,8,133,0,33,3,17,10,83,1,252,7,147,11,33,2,213,12,80,13,240,2,178,17,79,15,190,3,140,22,155,17,141,4,104,27,63,20,91,5,67,32,72,23,41,6,29,37,199,26,248,6,249,41,203,30,199,7,212,46,105,35,149,8,175,51,185,40,100,9,138,56,222,48,113,10,224,62,135,63,244,11,253,71,150,82,120,13,27,81,93,107,252,14,57,90,93,107,252,14,57,90,0,0,1,0,3,0,2,0,6,0,4,0,5,0,7,0,0,0,1,0,3,0,2,0,5,0,6,0,4,0,7,0,248,127,211,127,76,127,108,126,51,125,163,123,188,121,127,119,239,116,12,114,217,110,89,107,141,103,121,99,31,95,130,90,166,85,141,80,60,75,182,69,0,64,28,58,15,52,223,45,141,39,32,33,156,26,6,20,97,13,178,6,0,0,78,249,159,242,250,235,100,229,224,222,115,216,33,210,241,203,228,197,0,192,74,186,196,180,115,175,90,170,126,165,225,160,135,156,115,152,167,148,39,145,244,141,17,139,129,136,68,134,93,132,205,130,148,129,180,128,45,128,8,128,255,127,46,124,174,120,118,117,125,114,186,111,41,109,194,106,131,104,102,102,105,100,137,98,194,96,19,95,122,93,245,91,130,90,33,89,207,87,139,86,85,85,44,84,15,83,252,81,244,80,246,79,1,79,20,78,48,77,83,76,126,75,175,74,231,73,37,73,104,72,178,71,0,71,84,70,173,69,10,69,107,68,209,67,59,67,168,66,25,66,142,65,6,65,130,64,0,64,0,0,175,5,50,11,140,16,192,21,207,26,188,31,136,36,53,41,196,45,55,50,143,54,206,58,245,62,4,67,252,70,223,74,174,78,105,82,17,86,167,89,44,93,159,96,3,100,87,103,155,106,209,109,250,112,20,116,33,119,34,122,23,125,255,127,255,127,217,127,98,127,157,126,138,125,42,124,125,122,133,120,66,118,182,115,227,112,202,109,110,106,208,102,242,98,215,94,130,90,246,85,52,81,64,76,29,71,206,65,87,60,186,54,252,48,31,43,40,37,26,31,249,24,200,18,140,12,72,6,0,0,184,249,116,243,56,237,7,231,230,224,216,218,225,212,4,207,70,201,169,195,50,190,227,184,192,179,204,174,10,170,126,165,41,161,14,157,48,153,146,149,54,146,29,143,74,140,190,137,123,135,131,133,214,131,118,130,99,129,158,128,39,128,0,128,249,150,148,221,53,235,27,241,93,244,116,246,223,247,237,248,184,249,86,250,214,250,61,251,148,251,221,251,26,252,78,252,123,252,163,252,197,252,227,252,252,252,18,253,38,253,55,253,69,253,81,253,91,253,100,253,106,253,111,253,114,253,116,253,116,253,114,253,111,253,106,253,100,253,91,253,81,253,69,253,55,253,38,253,18,253,252,252,227,252,197,252,163,252,123,252,78,252,26,252,221,251,148,251,61,251,214,250,86,250,184,249,237,248,223,247,116,246,93,244,27,241,53,235,148,221,249,150,48,117,144,101,8,82,152,58,64,31,0,0,192,224,104,197,248,173,112,154,153,104,33,3,201,9,85,253,154,250,70,2,92,2,6,251,183,13,250,232,182,17,13,254,108,248,195,11,62,236,238,21,58,248,219,251,77,250,90,17,68,253,41,235,1,18,196,1,179,253,232,242,137,11,243,4,68,251,226,245,195,6,86,14,133,238,49,252,39,17,23,246,181,3,173,250,45,252,102,22,66,118,247,14,60,240,156,11,232,251,22,252,173,9,29,244,255,10,73,247,217,6,181,249,178,6,17,249,7,6,16,252,173,1,87,255,216,1,16,251,128,8,110,245,219,9,171,249,88,1,58,3,7,250,188,6,135,249,165,6,241,247,84,10,12,244,81,11,70,248,45,2,12,3,167,250,74,3,143,2,98,57,254,44,244,4,55,245,217,233,90,29,221,255,9,245,32,244,215,18,136,11,24,223,201,14,175,5,131,8,67,222,115,31,201,247,82,250,9,3,84,4,175,246,206,8,149,254,94,253,201,247,158,23,207,233,48,4,51,12,62,236,192,20,231,246,112,241,12,27,207,240,163,2,17,249,29,0,161,39,66,118,247,14,60,240,156,11,232,251,22,252,173,9,29,244,255,10,73,247,217,6,181,249,178,6,17,249,7,6,16,252,173,1,87,255,216,1,16,251,128,8,110,245,219,9,171,249,88,1,58,3,7,250,188,6,135,249,165,6,241,247,84,10,12,244,81,11,70,248,45,2,12,3,167,250,74,3,143,2,0,64,103,65,213,66,76,68,203,69,82,71,226,72,122,74,28,76,199,77,123,79,56,81,255,82,209,84,172,86,146,88,130,90,126,92,132,94,150,96,180,98,221,100,18,103,84,105,162,107,254,109,102,112,221,114,96,117,242,119,147,122,66,125,255,127,3,115,186,110,119,98,225,79,109,57,245,33,71,12,184,250,206,238,23,233,38,233,191,237,33,245,96,253,187,4,232,9,58,12,175,11,211,8,146,4,0,0,23,252,140,249,180,248,126,249,133,251,48,254,218,0,244,2,36,4,75,4,136,3,38,2,135,0,11,255,254,253,134,253,166,253,61,254,25,255,0,0,191,0,52,1,84,1,40,1,198,0,78,0,220,255,136,255,93,255,91,255,124,255,177,255,237,255,34,0,73,0,91,0,89,0,70,0,38,0,0,0,254,254,194,254,73,254,134,253,112,253,251,252,57,253,10,254,244,254,63,255,254,255,125,0,122,0,217,255,247,255,105,0,129,0,27,1,116,1,63,2,235,254,188,254,59,255,25,254,67,254,150,254,220,254,229,255,177,0,31,2,86,1,5,2,4,2,130,0,27,0,152,255,136,255,116,255,182,255,200,255,204,253,81,252,16,250,59,252,210,252,242,253,190,254,254,255,159,0,145,2,200,254,228,254,126,254,171,253,19,254,242,253,94,254,27,255,105,0,193,1,211,253,154,252,205,251,105,252,74,252,16,253,59,253,196,254,62,0,230,1,198,254,65,255,53,255,182,254,96,255,153,255,205,255,131,0,82,1,3,2,10,6,224,8,194,14,112,21,60,27,190,32,63,39,221,43,222,49,146,53,84,37,17,42,27,49,236,51,45,56,131,45,92,41,39,38,145,33,84,25,6,0,82,0,125,255,154,0,200,255,33,253,183,0,191,255,247,254,9,0,46,255,151,254,113,0,206,2,25,7,242,3,190,4,37,6,89,3,53,5,228,8,59,3,32,6,141,7,205,2,197,7,158,8,70,3,148,4,31,7,209,2,232,3,106,8,30,1,220,1,229,5,9,255,237,253,230,0,147,0,174,255,57,2,26,0,79,255,80,252,229,255,239,254,180,2,92,255,248,254,73,255,224,0,22,3,15,4,131,3,178,3,89,2,229,1,3,3,126,4,12,2,165,2,135,3,116,255,119,1,10,3,154,1,164,2,173,1,45,1,18,2,241,3,207,2,134,2,38,0,226,0,111,1,40,0,145,0,211,255,7,254,34,1,121,0,135,255,46,1,127,0,166,0,132,255,129,254,68,252,154,254,57,254,47,252,203,2,110,3,126,3,210,3,155,3,211,0,221,1,16,1,64,0,188,0,178,255,17,0,113,255,191,255,38,0,131,2,74,2,109,2,122,255,86,254,117,253,91,1,33,2,4,11,164,4,166,10,138,9,142,0,176,255,199,6,27,1,130,0,205,1,250,254,113,254,135,251,101,254,155,0,174,1,73,1,119,1,11,3,53,0,30,255,117,255,127,255,20,255,146,6,29,1,232,2,47,5,226,2,185,2,128,6,56,1,153,1,10,1,69,1,208,2,135,0,1,0,221,0,197,1,8,0,203,0,145,0,43,1,128,2,248,2,29,0,212,1,126,2,103,0,173,1,123,1,164,1,186,3,164,3,46,5,186,4,234,4,192,2,244,3,128,4,90,255,68,254,246,254,196,254,126,255,136,254,191,0,127,4,112,7,16,255,225,253,20,251,144,255,12,1,183,4,70,0,38,4,47,6,22,1,80,5,38,6,254,254,240,254,0,253,19,0,51,2,192,8,253,255,247,254,135,0,217,254,177,253,124,254,140,0,98,1,50,255,252,254,8,254,229,252,79,254,50,253,217,250,109,0,75,1,194,3,83,254,169,255,140,2,216,254,170,1,251,3,17,255,7,3,83,3,233,1,54,5,49,4,178,254,180,254,25,0,31,2,182,4,15,7,70,1,61,0,215,2,66,2,81,3,125,5,48,255,235,254,73,1,104,255,64,0,157,2,78,254,90,253,41,253,58,254,185,255,251,0,93,2,224,1,254,0,30,254,11,0,228,3,223,254,139,1,230,1,210,2,25,4,160,5,226,255,196,254,238,252,150,255,141,255,149,253,93,3,194,5,132,5,31,4,86,5,160,4,44,3,213,4,157,3,42,0,5,255,192,253,86,1,141,0,58,254,88,255,176,255,79,5,170,254,112,253,29,249,100,0,53,3,213,2,222,3,235,2,32,3,76,1,184,1,56,2,151,2,123,1,84,3,112,0,165,0,143,254,85,2,142,3,26,1,248,255,66,3,1,5,160,254,60,2,183,2,206,1,198,8,14,7,89,1,190,0,94,5,160,1,147,3,118,8,168,0,174,255,24,1,252,253,66,254,72,3,47,0,21,2,44,0,150,254,57,253,137,251,22,0,193,0,192,5,171,255,233,0,21,7,194,255,67,2,224,5,38,2,176,3,213,6,211,2,138,2,124,4,204,3,116,3,115,5,87,254,131,2,0,0,232,3,184,3,74,4,249,0,166,5,160,2,178,254,169,255,124,8,214,253,90,7,112,10,140,0,34,7,61,7,152,3,213,6,30,10,52,4,141,7,246,7,119,255,69,254,237,249,245,4,150,4,212,1,19,254,134,255,241,5,61,254,9,4,190,4,226,1,159,6,94,4,47,3,137,2,128,1,66,254,76,253,107,0,193,254,163,253,138,255,49,255,7,254,13,2,44,254,244,255,176,10,75,0,142,7,25,5,112,3,54,9,219,8,5,5,39,6,212,7,208,255,208,254,94,251,77,254,51,254,5,255,146,254,108,254,221,253,223,254,163,253,171,253,230,253,214,252,91,255,136,255,3,0,100,1,127,2,217,4,222,5,96,0,177,0,238,2,77,254,183,253,106,251,156,254,109,0,177,255,27,254,32,1,213,7,9,0,92,4,219,2,112,3,86,8,178,3,247,254,49,6,41,4,133,4,186,4,75,3,14,254,100,253,175,1,118,1,65,1,27,255,160,5,53,8,101,5,193,1,205,1,131,4,151,255,39,0,128,254,249,254,111,1,182,0,141,254,108,253,5,3,68,255,127,4,203,3,53,5,96,6,155,5,6,3,243,4,197,4,30,254,192,252,47,250,19,255,46,255,92,3,122,3,79,6,40,4,216,1,38,4,168,4,185,0,53,4,221,3,200,253,32,252,88,249,63,254,122,252,5,248,114,255,135,254,54,254,46,255,214,253,251,251,245,255,109,4,217,8,183,254,93,253,131,252,6,255,145,2,163,4,7,2,230,5,243,6,8,2,27,2,123,5,15,2,141,5,22,5,205,253,153,252,32,251,109,255,49,254,111,3,180,255,30,9,24,11,51,2,13,10,81,9,120,2,134,7,104,11,207,2,231,7,48,7,223,253,45,253,84,4,129,0,131,255,116,3,137,5,96,6,157,3,162,255,30,6,215,6,171,254,253,5,15,6,79,2,139,1,238,254,180,255,213,3,15,11,153,0,169,11,52,7,8,4,5,10,189,10,228,5,16,11,87,7,23,3,175,4,26,2,66,255,59,254,209,5,234,254,220,253,134,4,11,255,149,7,252,7,0,4,24,6,114,6,0,2,253,0,210,1,194,255,189,254,127,4,39,254,136,254,251,1,79,254,100,5,114,8,131,3,151,7,165,5,134,0,192,2,184,1,204,1,13,2,228,255,62,254,23,1,58,5,0,0,203,3,252,0,67,254,141,253,33,252,164,254,166,253,112,250,142,1,200,2,120,6,149,255,58,1,78,255,93,0,178,8,190,8,6,2,81,3,144,2,50,254,57,253,65,254,174,0,222,255,167,4,137,255,42,0,237,3,140,254,18,1,246,2,12,4,48,9,46,7,163,2,188,6,218,5,174,1,6,5,85,8,127,255,73,254,0,0,139,254,32,3,96,8,6,0,51,6,174,9,222,1,84,2,80,8,84,254,32,253,225,5,129,1,178,0,212,3,139,0,193,1,201,4,242,253,182,252,42,252,145,0,18,6,218,4,111,2,168,5,144,2,93,1,248,3,202,5,31,0,232,254,159,1,196,254,212,2,105,6,104,1,34,4,44,2,76,254,154,254,177,4,157,254,99,4,147,7,145,1,48,6,200,8,241,253,12,252,99,1,233,0,238,0,185,8,218,253,127,252,129,253,147,254,11,254,165,7,133,1,68,7,85,6,162,0,108,4,240,4,19,255,150,4,110,5,128,253,101,254,116,0,28,255,158,6,250,8,103,6,138,8,219,8,50,2,249,4,98,10,67,1,82,1,238,6,66,2,83,4,84,3,22,0,82,2,166,3,113,255,206,2,190,1,50,0,71,0,247,255,174,254,70,253,129,250,102,0,118,255,204,252,202,254,43,254,133,251,158,1,67,0,245,254,36,4,46,3,161,5,12,6,80,5,248,4,218,6,103,7,125,6,227,7,85,8,28,7,16,7,14,9,53,7,132,2,163,255,198,1,90,3,73,1,120,255,233,1,254,254,128,255,58,255,23,253,215,255,204,255,247,254,39,252,90,1,137,0,223,1,51,249,20,253,84,253,117,251,67,249,145,254,129,252,135,251,240,252,24,254,78,252,56,252,171,255,122,254,43,253,215,0,172,254,85,255,252,3,148,3,177,7,52,2,179,0,234,2,150,2,209,3,198,6,119,3,110,2,146,3,171,3,88,3,141,4,53,1,176,2,35,3,149,3,161,0,58,2,118,0,236,255,229,254,208,252,214,255,204,0,52,251,187,254,50,254,61,252,54,255,113,255,36,252,28,254,151,254,66,253,46,252,35,254,210,254,234,252,92,251,156,255,238,252,192,251,226,251,77,252,108,249,54,255,181,252,242,252,241,251,158,250,123,252,144,253,146,255,171,255,100,1,213,0,246,255,19,254,108,1,6,3,169,1,54,3,223,1,173,255,45,2,8,2,32,252,232,249,196,253,165,253,27,253,230,255,10,254,130,253,121,252,209,0,50,1,147,0,196,254,175,253,172,253,171,255,45,255,31,255,106,252,239,253,117,0,233,0,73,254,30,253,77,4,239,2,121,2,177,5,180,6,231,5,229,6,177,5,142,3,98,4,132,4,81,3,74,5,100,3,214,1,153,252,130,251,252,248,153,252,163,252,32,252,138,255,155,0,212,0,229,251,175,252,162,253,163,251,199,248,66,245,5,252,109,250,179,248,114,1,72,255,98,254,191,3,237,1,104,0,190,3,15,4,31,2,154,0,141,2,201,0,225,4,251,1,150,0,151,2,247,1,230,0,111,2,9,3,163,2,147,2,88,0,146,255,75,3,244,0,224,0,126,1,29,2,46,1,212,2,177,1,154,2,142,4,222,2,85,1,118,255,20,0,115,254,97,251,88,254,210,255,191,254,160,254,132,255,53,5,253,3,56,4,6,1,110,1,211,2,154,3,27,1,217,253,31,0,132,253,157,253,79,253,71,253,97,254,72,252,245,252,55,255,207,250,170,253,153,254,71,252,251,250,166,0,237,1,49,1,221,0,78,3,191,2],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([98,2,72,3,168,3,6,3,45,253,212,250,19,251,155,254,255,251,148,250,184,251,160,250,147,254,120,250,167,248,160,253,250,248,65,249,94,253,223,253,107,251,65,253,166,2,18,3,148,0,133,255,184,2,8,5,132,2,94,1,246,255,158,1,102,2,15,0,137,0,88,1,45,255,210,252,24,250,205,252,121,254,94,252,180,253,47,0,177,253,126,252,115,252,183,251,93,255,8,251,113,251,99,255,72,250,11,250,123,254,6,251,92,251,144,253,159,2,213,0,198,1,124,0,238,254,243,253,39,253,16,254,104,255,192,250,122,0,135,0,167,244,179,253,118,254,64,249,185,1,206,255,196,5,136,3,19,3,60,1,236,0,72,254,165,254,217,0,157,1,113,252,107,252,121,0,57,254,92,252,202,0,164,255,47,254,137,254,232,1,134,1,218,1,108,3,217,2,60,1,233,248,224,250,99,253,87,0,194,3,176,1,51,2,7,255,222,251,250,0,29,1,81,4,117,4,171,1,184,2,242,251,128,249,210,249,76,252,90,1,160,0,203,254,240,254,166,252,158,2,112,2,226,4,80,252,104,254,102,253,162,253,192,254,128,254,20,254,230,0,65,0,78,1,206,255,240,255,240,255,78,253,139,250,255,6,180,6,119,5,174,9,15,8,124,5,221,4,191,5,146,5,130,254,243,251,254,255,173,0,114,254,121,4,211,5,232,7,9,7,4,3,250,4,226,5,149,5,199,6,209,7,55,4,194,4,249,4,126,251,197,248,207,250,216,252,147,251,184,251,61,254,247,251,70,249,65,0,66,2,172,255,60,250,126,246,14,249,3,253,170,250,18,254,38,255,174,253,93,252,81,1,20,255,50,2,53,9,102,10,146,7,209,5,252,4,106,3,189,0,102,1,118,1,17,250,23,247,214,246,57,252,9,251,209,247,140,253,92,251,250,249,125,6,19,4,34,2,53,2,37,4,220,2,192,255,188,252,78,254,76,254,160,255,203,0,54,4,192,4,100,6,139,3,254,5,218,3,70,1,197,3,77,3,142,0,172,255,197,0,214,1,75,9,34,6,109,4,214,1,190,4,139,1,96,5,176,4,101,4,18,4,92,1,225,253,46,251,136,254,41,255,75,255,225,1,101,248,171,249,46,255,18,253,95,251,134,1,29,0,113,254,27,0,52,3,212,4,243,2,183,2,211,3,153,1,82,255,173,4,11,4,144,3,76,5,54,7,32,252,99,250,228,1,51,250,92,249,208,0,100,254,180,4,152,5,241,254,128,3,120,4,96,254,241,6,154,5,96,249,172,245,52,255,3,249,241,249,9,4,136,249,233,249,23,5,27,251,203,249,57,4,99,253,185,251,190,255,86,253,64,1,167,254,147,2,49,1,45,4,244,250,220,252,237,255,157,249,245,250,29,0,109,249,15,254,71,0,225,254,249,255,156,255,18,254,62,252,19,255,84,3,89,7,204,6,63,251,149,250,227,0,108,253,46,1,117,1,96,0,63,4,233,4,206,251,123,249,160,0,229,1,28,8,6,7,90,252,36,255,40,2,172,253,156,253,237,0,80,1,184,6,111,3,131,2,117,2,178,1,243,4,10,2,97,6,15,0,244,0,71,254,195,5,205,2,184,0,27,7,54,6,173,6,220,3,5,1,169,3,45,8,41,9,240,5,91,8,66,7,70,6,191,253,189,253,77,251,68,252,135,0,24,254,48,254,51,0,174,254,139,253,164,254,45,253,122,4,25,8,162,5,144,8,186,5,143,3,92,250,220,249,26,247,120,5,198,2,17,5,55,5,121,2,160,3,154,5,146,8,34,10,118,9,156,8,89,7,214,3,194,8,62,7,124,1,24,3,121,4,193,255,229,253,158,1,4,255,60,252,198,254,19,251,85,253,244,252,193,252,242,253,19,252,126,249,145,251,88,254,181,249,60,254,213,254,244,4,24,4,130,2,123,4,85,3,88,3,93,253,176,254,139,0,220,8,63,5,138,5,29,0,0,3,29,3,56,251,167,1,52,2,218,250,198,251,245,0,234,250,212,252,61,2,238,250,175,249,134,2,56,252,66,3,211,2,225,3,116,6,235,7,65,255,207,252,176,1,150,2,60,0,198,0,114,2,229,3,50,5,112,6,171,7,9,5,195,249,163,255,211,255,192,251,37,0,172,255,117,6,47,10,33,9,41,4,248,7,73,9,115,4,22,9,70,8,91,3,101,1,230,5,152,2,203,4,75,4,223,1,80,5,144,3,105,7,218,6,227,7,144,4,117,7,248,6,143,1,34,0,0,1,175,253,208,254,227,251,35,2,158,6,127,5,135,2,157,255,171,254,212,5,111,6,166,4,38,0,124,253,44,255,139,1,78,3,222,0,64,253,3,253,52,253,44,253,84,248,12,245,106,255,35,1,174,255,209,4,179,5,239,3,116,255,101,255,153,0,183,1,41,1,32,6,7,250,102,254,132,253,0,6,199,1,19,255,208,250,117,255,252,254,19,2,42,2,100,3,13,1,240,4,94,2,23,255,115,3,207,1,230,2,88,2,136,255,183,255,165,1,212,0,73,254,198,255,36,3,250,250,39,251,216,2,38,1,22,254,50,0,177,253,119,252,26,251,42,0,81,253,147,0,231,255,17,1,84,2,201,254,189,4,89,2,14,253,81,3,72,2,173,1,95,2,75,2,166,253,90,255,205,1,228,252,201,252,9,3,100,5,142,3,219,6,119,0,137,5,204,3,37,255,144,252,196,249,231,251,14,252,182,1,55,253,157,250,78,0,0,0,65,254,101,251,144,251,217,250,219,249,200,8,231,6,29,5,178,3,47,6,152,5,126,4,226,1,180,1,43,254,172,251,106,2,65,254,58,252,64,4,28,251,21,250,142,255,176,251,40,248,189,253,210,0,101,2,241,1,73,248,99,250,130,2,11,251,168,252,243,3,146,249,95,251,39,4,237,249,96,253,180,4,100,249,166,251,111,2,45,252,210,250,3,251,27,2,109,255,126,3,182,250,127,252,78,254,120,3,219,1,172,1,153,0,128,254,82,1,44,250,1,254,103,1,50,252,165,251,42,254,105,0,218,253,165,2,87,252,135,251,109,3,124,1,252,254,210,0,149,6,156,3,232,4,239,6,166,4,71,4,139,5,119,2,21,2,115,2,43,1,165,254,101,254,234,253,135,2,118,253,29,0,173,253,134,254,169,250,27,6,122,5,97,4,185,5,65,4,130,5,136,2,208,247,190,251,250,255,55,1,62,255,155,252,129,253,193,252,160,1,118,251,56,251,69,5,33,251,83,252,21,7,111,247,61,248,197,1,149,253,169,250,68,252,186,249,76,248,29,250,105,251,223,251,176,251,135,254,89,2,201,0,84,7,57,3,118,1,82,254,213,250,29,0,139,250,31,251,205,250,17,252,32,250,192,3,135,250,39,248,197,0,157,250,99,248,20,255,203,251,123,0,166,1,103,2,245,4,34,2,206,254,246,5,136,3,170,4,252,6,153,4,142,253,140,252,10,250,199,0,254,2,224,5,215,251,94,3,197,0,246,251,19,249,137,252,224,252,145,0,87,2,146,251,249,253,114,2,75,251,122,248,244,1,114,252,239,251,141,250,60,250,225,249,55,252,245,253,74,3,34,0,2,7,134,2,94,3,73,251,160,248,22,252,178,255,247,255,96,253,20,4,247,2,80,0,168,253,115,4,251,3,57,0,208,7,142,5,191,252,134,5,97,4,78,251,94,6,236,4,51,254,140,5,220,4,1,6,207,3,253,0,229,254,68,1,153,254,87,2,61,255,106,0,76,2,62,0,181,253,11,253,133,2,205,0,51,0,177,4,246,2,71,251,161,2,122,254,144,253,45,6,173,3,105,255,255,3,223,2,4,11,21,5,178,2,210,254,12,2,157,255,124,252,204,249,91,251,60,4,251,0,238,0,222,7,0,7,242,3,221,4,97,6,205,6,53,251,252,249,72,251,147,253,200,1,147,255,40,0,191,255,20,3,219,252,69,253,186,250,185,253,136,3,64,3,223,252,20,2,82,2,180,7,128,5,71,5,103,251,168,248,190,247,251,252,56,2,180,3,9,252,55,4,236,4,169,251,226,1,126,255,242,6,20,4,12,3,45,250,245,0,144,3,196,254,139,251,107,252,232,253,94,250,214,246,239,252,246,249,60,248,45,248,1,1,141,3,199,248,135,253,71,251,254,249,130,248,226,251,70,6,191,8,40,6,201,253,36,250,248,249,1,251,195,0,89,5,207,252,37,1,195,4,243,253,118,2,173,4,94,249,135,246,208,248,209,254,219,2,235,2,111,251,5,255,13,1,74,252,181,255,148,6,98,251,59,254,237,3,193,249,73,2,122,1,229,247,197,253,85,254,239,253,121,251,109,251,229,254,51,255,204,253,228,252,222,4,205,2,229,8,159,3,27,2,58,254,47,2,184,1,51,253,180,5,79,6,250,251,28,4,74,6,111,251,118,255,79,3,226,0,39,0,156,253,29,251,150,255,39,253,117,253,200,3,22,5,54,253,132,253,191,6,97,1,45,4,154,1,226,252,100,255,75,4,194,253,150,3,190,1,226,250,244,3,210,1,128,5,55,6,253,2,149,5,100,5,221,6,157,7,164,7,74,9,42,6,255,7,100,8,148,3,98,0,249,255,101,7,138,5,93,8,92,1,125,5,43,6,152,0,110,4,9,7,245,254,154,0,115,5,114,251,213,1,30,4,138,251,107,254,207,251,195,250,40,247,211,249,148,254,101,3,170,6,118,251,37,2,14,6,55,251,116,248,126,249,51,250,71,248,249,247,65,249,118,252,158,255,151,248,233,0,212,5,124,3,108,0,181,254,64,249,110,251,92,249,220,251,188,7,254,6,210,251,51,249,139,248,245,255,3,6,37,5,192,249,94,0,241,1,165,1,187,1,59,255,214,249,163,254,30,252,169,253,229,253,116,4,59,252,117,250,127,255,195,250,175,0,65,254,137,254,31,5,7,8,141,254,118,253,205,254,207,251,93,2,109,1,247,247,143,255,174,1,140,2,146,3,199,3,12,252,206,249,237,246,225,5,224,4,47,2,6,1,26,254,111,254,65,249,62,5,10,6,50,0,56,0,176,1,182,254,119,0,164,253,19,250,200,251,214,252,178,3,103,4,31,4,136,250,89,249,80,249,10,251,64,253,219,250,39,3,29,7,119,4,200,10,70,6,123,8,96,4,153,1,106,255,109,255,148,1,191,3,135,9,119,7,141,8,118,252,115,255,158,252,120,252,114,255,54,254,211,253,60,253,113,249,194,252,105,250,209,249,206,248,190,250,194,251,188,249,240,254,147,3,84,251,4,3,32,4,130,253,46,251,151,248,12,254,175,255,202,252,247,250,179,249,33,253,139,255,17,3,168,0,190,251,109,4,154,3,184,251,22,253,104,5,31,1,221,253,217,251,160,250,103,247,76,251,128,247,222,249,35,249,25,250,63,247,253,252,55,249,75,4,62,3,204,249,212,2,219,4,250,249,181,2,37,3,102,249,16,255,129,6,92,249,252,255,100,253,101,8,48,3,18,4,206,252,207,248,22,0,4,253,5,254,193,1,129,251,151,253,33,1,181,252,196,249,16,255,242,1,22,255,111,253,16,253,224,1,142,6,193,254,31,254,193,0,213,252,171,0,137,255,176,247,54,255,176,252,181,6,116,4,164,6,67,0,239,255,66,0,244,255,102,249,187,253,152,255,240,254,204,251,94,251,203,248,136,254,140,251,98,252,92,254,198,255,253,254,112,253,146,251,215,253,252,6,203,4,199,1,129,0,206,1,185,1,16,255,240,253,72,3,2,2,130,0,181,255,90,4,111,2,153,0,216,0,44,4,52,2,250,255,236,254,95,4,215,2,190,0,188,255,192,2,50,1,119,0,248,254,73,1,61,0,156,255,156,0,108,1,123,0,183,0,48,255,85,255,133,255,220,0,191,255,206,254,194,255,146,1,17,0,108,253,86,252,246,254,0,0,129,1,235,0,20,1,29,1,64,1,12,1,176,254,56,255,44,253,17,0,172,255,125,1,224,253,173,1,238,1,7,2,139,255,32,1,48,1,73,1,131,2,157,0,189,2,252,1,176,4,113,2,28,3,96,2,230,3,165,1,236,1,120,2,180,4,12,3,190,1,132,0,233,4,76,3,35,2,193,1,61,3,146,2,29,2,214,1,108,4,234,4,150,3,127,2,35,2,51,0,167,1,23,1,9,0,136,1,83,0,94,0,30,2,31,2,229,0,109,255,58,255,129,0,194,0,71,255,161,252,215,250,210,254,30,0,171,253,139,253,237,255,114,0,124,252,199,251,210,1,97,1,53,250,219,249,15,0,113,255,84,249,245,247,17,253,196,0,172,248,237,247,126,253,254,254,225,246,66,250,62,254,204,253,184,253,70,255,152,252,98,254,243,248,36,252,155,251,226,250,42,253,151,251,28,0,169,0,241,251,160,252,50,253,10,255,228,1,36,0,23,255,207,255,9,1,67,0,33,1,211,1,178,0,31,2,42,3,28,2,84,0,26,1,160,2,191,2,49,252,247,252,129,0,31,1,86,252,29,255,187,3,83,2,175,249,223,254,68,3,137,2,201,248,41,255,82,4,206,2,14,248,195,251,138,2,184,1,203,247,239,253,139,3,63,2,37,248,176,254,158,2,204,0,171,246,76,253,104,1,137,0,148,247,100,247,247,255,24,1,246,254,119,0,39,0,193,0,78,0,197,255,136,255,226,0,49,252,166,252,243,252,185,251,149,253,99,254,61,254,182,252,64,251,215,250,211,252,141,252,160,250,177,249,118,254,84,254,31,253,167,251,219,253,234,252,144,252,49,252,57,252,126,253,39,252,138,252,7,251,175,250,39,254,220,252,135,250,129,250,160,0,247,254,105,252,237,254,8,255,6,255,50,253,132,254,97,0,153,255,137,254,27,255,97,254,63,255,121,255,213,253,116,2,105,1,119,0,216,0,67,2,108,1,135,1,209,0,122,2,10,2,102,255,108,255,14,2,133,1,170,0,33,0,105,0,11,1,64,0,124,1,33,250,24,252,226,255,143,254,210,251,58,0,135,2,223,0,16,250,221,254,109,2,51,1,5,250,156,0,250,2,148,1,19,248,141,0,222,2,243,1,199,248,118,253,50,1,0,2,69,255,152,255,197,255,182,1,134,0,26,255,156,0,70,255,195,255,252,254,240,255,10,0,199,253,253,255,91,254,215,254,67,249,247,253,166,254,178,0,174,250,197,255,212,255,157,0,158,247,51,254,42,254,163,254,134,247,255,255,143,254,135,255,213,249,139,254,124,252,9,252,163,251,177,253,155,253,240,252,207,253,122,0,181,255,63,254,252,255,85,255,133,255,140,254,192,0,168,0,180,255,124,255,252,0,149,255,84,1,210,0,136,1,253,1,16,1,181,0,147,255,145,0,218,0,119,0,96,254,249,254,229,1,9,1,75,255,248,255,226,254,226,0,12,255,38,255,69,0,222,254,98,255,191,0,255,255,192,255,176,253,166,255,213,0,160,255,255,0,179,1,178,0,176,255,143,254,238,255,223,255,176,255,214,255,159,1,140,0,34,255,119,4,139,2,137,2,73,1,255,2,44,2,249,0,235,0,180,3,157,1,186,1,23,1,141,0,83,1,100,1,45,2,42,254,86,255,99,0,237,0,199,253,224,252,96,1,53,2,26,1,217,1,214,1,76,1,57,255,78,253,252,250,107,252,63,255,86,254,224,252,158,251,230,255,141,254,22,254,63,255,125,2,83,2,7,2,74,1,152,1,141,255,79,0,12,0,221,1,87,0,153,255,136,254,102,253,165,254,235,254,221,254,2,254,31,254,169,0,41,1,195,252,30,253,51,255,85,255,192,254,228,253,72,1,27,1,165,252,66,252,186,1,254,255,44,2,174,2,130,0,56,0,103,5,244,3,243,2,171,1,100,2,229,2,116,2,41,2,173,254,228,252,134,0,21,1,135,253,195,251,254,255,10,255,144,252,245,251,185,249,216,251,30,252,38,254,142,251,24,254,98,254,229,252,73,0,50,255,248,255,117,255,183,1,204,0,80,255,190,253,23,0,131,0,243,254,11,253,65,255,245,0,147,255,174,254,112,0,60,1,120,0,106,254,138,255,99,2,76,255,70,255,123,253,115,0,83,255,34,0,250,253,23,254,105,255,61,0,185,253,180,252,220,0,118,255,87,253,4,252,135,1,239,255,170,253,191,254,157,0,217,254,129,0,155,0,98,252,149,252,37,252,29,1,241,0,173,255,131,255,131,255,108,2,85,2,176,1,92,0,137,1,78,0,153,1,61,0,119,254,29,253,99,254,20,253,83,0,54,0,105,1,27,0,196,251,130,0,175,254,74,253,227,249,41,1,62,1,237,255,175,248,36,0,51,0,195,254,237,246,10,255,231,0,172,255,254,246,241,252,40,0,77,255,71,247,94,252,38,254,50,254,14,253,170,255,224,254,142,253,149,246,57,254,193,255,171,0,181,251,186,251,230,255,113,255,87,251,57,254,106,254,131,254,163,253,46,255,160,255,205,255,188,253,36,254,236,254,241,255,85,251,134,253,77,251,143,252,134,254,35,255,99,253,72,252,82,2,178,0,109,254,92,253,251,2,71,1,89,2,34,1,172,0,44,1,203,0,157,0,200,255,176,254,100,1,24,0,28,255,216,254,253,254,227,255,70,255,7,1,160,1,14,0,159,254,117,1,244,255,40,255,1,1,96,0,174,0,57,0,10,250,152,253,70,252,13,254,15,254,104,255,179,254,125,0,105,0,200,0,179,0,159,255,181,254,32,255,253,2,185,2,248,2,0,1,45,1,59,0,199,1,171,255,204,0,32,1,254,253,240,0,251,0,147,255,0,1,161,1,222,255,99,254,101,0,174,1,128,1,156,0,225,255,246,255,206,0,170,1,77,2,145,0,143,0,71,0,40,3,138,3,77,1,93,1,218,3,170,3,77,2,75,1,20,5,56,3,187,0,253,1,38,4,141,2,123,1,210,1,182,5,169,3,145,1,18,1,19,3,93,3,9,1,2,0,97,2,41,2,28,0,49,1,158,3,84,1,106,0,130,1,241,0,245,254,109,255,225,0,78,255,234,253,91,1,246,1,125,253,131,254,141,1,30,0,117,253,35,253,77,254,142,1,105,254,42,253,28,254,8,255,235,252,110,252,74,254,36,254,14,254,122,254,75,0,217,254,60,252,178,253,162,253,150,0,135,255,207,255,101,255,178,255,167,3,38,2,133,1,38,0,191,254,127,0,168,1,59,1,227,254,143,255,27,1,3,1,146,2,203,0,66,1,230,1,135,3,249,1,236,2,161,1,99,2,167,1,43,2,0,2,239,0,173,255,190,253,237,255,173,254,37,253,93,1,13,0,90,252,137,250,142,255,152,254,107,0,180,2,182,0,90,0,37,251,254,249,241,249,43,253,200,253,121,252,173,250,243,253,251,253,171,252,163,252,20,252,88,255,78,253,189,252,63,0,119,255,212,253,221,253,144,0,226,254,207,252,229,1,63,1,109,255,104,254,14,2,246,0,165,254,78,254,41,1,228,255,222,254,41,254,170,251,251,250,52,254,153,254,36,252,230,252,67,5,19,5,178,2,11,2,192,4,44,4,70,4,245,2,57,3,116,4,240,2,238,1,228,4,85,5,171,4,130,3,9,2,29,4,20,2,176,1,178,254,40,255,199,254,249,254,96,255,52,0,40,254,101,255,127,0,136,0,132,254,44,0,83,3,154,1,94,255,23,254,123,0,1,255,228,252,101,253,66,4,149,3,21,3,237,1,117,5,173,4,46,2,202,0,205,255,138,255,170,254,67,253,83,0,108,0,214,255,71,254,61,0,95,0,31,1,0,1,229,255,89,0,12,2,19,2,95,1,227,0,80,2,33,2,185,2,155,0,92,255,51,1,126,2,18,1,23,254,206,255,242,2,240,0,90,255,132,255,140,255,189,253,68,251,193,255,190,0,217,254,240,251,240,250,147,0,136,254,79,255,143,255,73,3,217,4,27,4,156,2,2,0,37,1,39,2,48,1,184,251,71,252,8,255,120,1,18,253,59,252,87,0,4,2,237,254,252,253,177,2,135,1,133,254,125,253,108,3,82,2,122,254,11,252,123,253,61,2,149,255,200,253,79,253,198,252,255,251,229,255,184,254,53,255,93,3,237,2,36,2,233,0,132,249,237,251,195,1,108,0,108,253,148,253,174,1,236,0,21,0,116,254,122,251,137,253,92,5,18,5,199,3,65,2,101,4,101,4,77,2,198,1,189,254,159,252,45,254,153,0,44,254,69,253,220,252,3,254,120,254,50,253,52,255,221,255,165,253,187,251,201,253,94,255,7,254,20,252,154,255,94,1,219,0,224,0,167,1,252,0,139,1,79,2,96,2,107,1,22,253,160,255,117,1,172,0,171,0,39,1,202,2,83,1,233,0,77,0,107,0,21,1,157,0,153,0,13,254,156,254,11,6,49,4,64,2,238,1,220,254,173,254,8,254,176,253,121,252,184,255,149,253,31,254,198,249,163,251,201,253,2,255,231,252,5,254,204,253,221,254,20,254,236,253,246,1,48,2,130,254,171,1,88,2,230,0,29,255,221,1,251,0,75,0,29,1,74,3,45,3,220,1,226,250,203,250,186,0,121,1,181,253,107,252,131,2,125,1,94,251,215,253,155,1,82,0,153,251,204,252,82,255,228,253,164,253,119,0,31,2,205,0,132,254,145,2,141,3,55,2,112,0,214,254,138,254,114,0,167,252,5,255,56,0,159,0,145,1,89,1,222,255,116,255,145,255,161,253,41,0,102,2,99,1,142,255,179,255,218,1,66,2,56,0,170,5,156,3,74,4,140,5,229,2,144,1,246,0,22,0,76,2,57,1,135,255,71,1,63,3,216,1,142,251,160,253,88,3,40,2,39,251,208,251,126,2,88,2,154,254,254,0,179,254,209,254,122,253,227,2,102,1,74,0,202,4,135,6,197,4,81,3,193,8,88,6,215,3,124,2,49,7,197,5,237,2,128,1,94,1,7,1,87,0,128,0,146,248,83,252,112,255,192,255,58,249,1,255,32,1,225,255,172,245,42,251,110,1,235,0,149,249,188,251,192,250,208,254,227,253,205,251,164,251,123,0,102,251,4,255,208,252,76,255,8,252,21,2,53,2,233,0,25,254,82,254,68,255,78,1,99,3,212,4,22,2,171,0,202,249,185,249,123,2,118,2,108,247,54,1,156,3,156,1,202,246,184,254,188,3,17,2,177,245,135,254,118,2,22,1,214,245,61,1,31,3,43,1,154,246,133,0,84,1,31,0,148,247,68,250,131,0,125,0,96,251,22,254,117,255,46,0,24,253,191,1,123,3,52,2,67,0,61,254,134,2,92,2,215,253,83,254,148,252,140,1,162,0,190,255,25,5,147,3,223,1,67,2,64,4,26,3,194,1,22,1,54,2,68,1,223,251,102,255,148,0,79,255,15,246,168,0,46,4,80,2,209,246,214,255,51,3,89,1,216,246,61,253,209,2,250,0,129,247,39,250,203,254,122,0,178,255,183,255,120,0,173,0,252,255,6,1,249,254,251,254,81,254,192,255,107,254,36,253,207,245,116,0,173,255,63,255,11,250,80,252,35,254,43,253,4,254,51,1,170,0,172,0,64,3,161,1,64,3,174,2,31,255,177,0,126,3,50,3,30,254,123,254,255,4,15,4,129,254,201,0,162,254,40,0,218,2,123,2,226,0,14,2,247,1,206,1,82,1,142,1,23,2,202,2,40,0,230,254,202,5,191,5,61,4,219,2,25,6,48,4,141,3,181,2,139,5,2,5,121,3,111,3,129,4,216,2,162,4,72,3,30,255,106,4,181,3,177,2,18,254,38,252,236,249,128,255,200,253,47,253,55,253,230,255,61,1,12,2,70,0,135,0,107,254,159,252,26,249,116,253,82,255,223,252,117,3,5,3,103,255,165,255,75,4,239,2,6,254,131,251,85,3,134,2,241,0,14,3,7,2,27,2,61,7,164,6,77,4,172,2,31,251,50,250,48,254,188,0,131,252,127,250,224,250,171,254,121,255,182,1,81,255,18,0,87,4,208,3,63,1,208,0,106,250,24,249,83,0,202,1,238,253,24,252,51,1,129,0,184,252,241,255,227,255,156,254,113,252,100,252,133,251,14,255,137,255,240,253,127,0,123,255,7,253,3,253,190,0,173,255,197,254,127,3,10,2,231,0,34,255,102,0,193,255,84,254,60,1,187,2,123,1,70,0,25,0,204,2,58,1,148,255,251,1,106,3,54,2,238,0,108,0,173,3,7,2,195,0,169,1,196,255,85,254,1,1,139,0,153,255,138,253,190,1,78,1,114,1,156,1,48,0,84,255,78,253,229,254,45,2,187,0,226,254,158,0,227,1,140,0,14,1,168,254,137,253,156,3,67,2,140,255,132,0,142,0,210,1,188,255,192,255,230,0,111,255,210,254,226,253,221,252,112,252,250,3,225,2,251,252,247,3,118,2,41,1,220,245,95,0,189,1,80,1,182,247,235,1,254,1,191,0,27,251,161,0,254,255,188,254,86,250,135,253,56,253,151,255,182,252,2,255,101,254,100,0,128,253,222,254,242,3,251,2,118,253,57,1,145,4,218,2,140,0,249,1,6,4,254,2,4,3,31,1,43,4,55,3,239,1,237,2,49,1,67,1,92,255,206,1,78,0,143,1,170,254,150,252,69,0,85,2,240,255,108,2,109,2,81,1,118,255,68,254,247,254,218,0,84,0,62,254,185,3,154,2,34,255,221,252,29,2,92,2,103,252,160,250,244,0,116,0,183,252,45,253,118,2,76,2,140,0,151,2,38,1,112,1,167,3,22,4,113,3,247,2,210,6,184,5,148,3,116,2,180,1,195,3,25,1,1,0,137,255,74,0,30,2,213,0,1,0,201,253,45,1,241,0,4,1,179,1,222,0,140,1,168,3,189,3,84,4,191,2,254,1,250,1,40,3,222,1,89,2,182,2,192,3,108,2,204,3,229,2,212,3,88,2,66,3,205,2,255,2,172,2,131,2,204,3,167,3,126,2,245,1,149,2,208,2,83,3,151,255,136,253,209,254,139,255,83,254,130,0,21,3,186,1,246,253,68,255,192,2,117,1,9,253,42,0,46,3,11,2,237,253,143,251,117,1,66,2,86,253,77,251,57,254,29,1,117,251,215,249,182,251,44,0,81,0,174,255,200,2,107,1,221,1,246,0,186,3,110,2,68,6,86,6,253,4,123,3,129,5,91,3,156,3,124,3,6,3,17,4,179,3,118,4,40,0,222,253,181,255,32,1,152,253,150,255,71,253,230,255,87,255,96,255,133,252,29,253,233,254,128,254,251,251,162,254,245,6,28,5,22,4,48,3,44,6,253,5,192,5,154,4,225,5,52,4,192,4,131,3,122,3,136,3,52,2,142,2,152,3,180,2,253,3,88,3,19,254,132,0,177,0,249,1,71,0,195,0,228,255,97,0,200,1,95,1,92,255,88,0,183,1,22,1,216,255,94,1,115,5,181,3,234,0,161,255,219,252,40,254,38,0,93,255,111,1,158,255,233,1,11,2,1,4,154,4,188,4,138,3,63,1,34,5,46,3,205,1,133,255,225,253,220,252,191,1,20,253,188,254,127,252,153,251,31,253,11,254,235,252,55,253,203,2,9,3,215,4,154,3,157,7,147,7,88,5,97,3,218,2,112,3,246,2,132,1,153,252,198,1,17,0,5,255,131,254,214,252,209,249,239,0,247,253,58,252,232,252,3,1,134,252,178,250,254,252,183,255,166,0,93,1,44,255,67,1,184,252,211,254,217,1,179,1,89,253,48,254,216,2,95,1,100,255,57,255,155,2,176,1,29,0,4,255,159,1,224,1,37,253,133,254,145,0,47,2,240,253,137,253,122,251,97,255,189,1,17,1,123,0,127,2,117,1,130,255,32,3,56,2,84,0,94,255,208,2,200,2,194,252,232,253,71,255,222,0,152,1,196,1,245,1,3,3,127,252,181,250,189,255,186,1,232,252,130,250,54,2,90,2,167,0,186,254,253,1,74,1,161,255,142,253,38,253,168,254,132,6,193,4,11,3,199,1,36,5,60,3,72,2,207,2,148,1,225,255,245,3,21,3,89,0,107,0,123,3,37,2,103,3,45,6,149,3,159,2,98,3,199,5,9,5,86,3,135,1,44,4,98,4,44,3,78,0,206,253,89,1,51,2,173,1,153,255,161,1,19,3,134,255,75,254,155,1,20,3,111,252,95,254,90,2,242,2,30,255,240,255,151,0,248,2,68,253,118,0,152,255,242,255,152,251,48,0,28,1,137,1,122,254,93,254,129,253,140,255,114,252,50,1,60,1,243,255,183,4,216,3,53,3,157,2,85,251,75,253,140,0,43,255,140,252,96,254,57,255,210,253,152,253,245,0,108,254,104,253,6,1,56,0,151,253,44,253,171,255,21,254,192,254,112,253,198,253,193,252,127,255,240,253,30,250,193,255,145,254,127,254,154,254,191,254,4,0,51,0,146,254,42,255,63,1,255,1,146,0,159,2,239,255,221,254,146,255,208,1,117,255,16,254,54,255,220,0,200,254,137,253,108,253,183,255,113,253,204,252,106,253,115,253,248,250,167,252,82,254,71,252,65,252,248,254,207,255,44,254,184,255,131,254,162,254,205,253,63,255,105,254,55,0,104,254,221,252,11,0,203,254,137,2,188,0,58,255,0,254,205,1,177,255,54,254,218,250,249,254,122,255,245,253,135,249,77,254,17,254,3,253,57,0,165,254,98,254,178,1,139,251,14,255,104,253,167,252,34,0,188,255,61,253,174,254,163,1,163,0,226,255,250,254,57,254,235,252,106,250,47,253,238,3,152,2,13,1,25,0,107,2,4,1,183,0,96,0,56,252,178,250,124,254,135,0,75,253,67,3,200,1,154,0,81,4,191,2,57,2,107,1,89,6,46,5,217,3,236,2,36,255,219,0,76,0,48,255,81,250,130,249,49,0,149,0,60,252,84,255,16,253,176,254,113,2,209,0,6,255,190,255,7,252,186,252,254,255,61,1,136,247,51,250,118,255,123,0,172,248,205,247,247,253,85,0,57,252,146,254,73,253,143,252,103,252,13,252,5,253,75,252,132,255,0,255,160,254,108,253,178,0,207,1,98,1,48,1,48,249,177,253,230,254,79,0,55,247,175,0,99,3,243,1,118,255,76,255,75,255,235,255,13,247,39,251,52,254,248,253,253,252,195,1,246,255,204,254,15,1,191,255,4,0,214,0,233,254,77,254,213,255,164,254,98,253,35,0,191,255,45,255,38,3,23,2,85,0,41,1,57,0,239,0,210,2,237,1,225,0,149,2,72,3,35,2,228,253,136,254,14,0,93,1,213,1,209,2,75,1,162,0,224,253,16,253,194,255,246,255,142,1,168,255,212,2,189,2,237,255,235,253,162,255,89,2,136,0,185,255,87,253,21,253,90,255,168,254,5,1,206,255,161,0,204,255,229,1,81,1,117,249,50,0,190,0,163,255,22,247,25,255,62,255,174,255,161,255,173,253,102,255,128,0,126,3,245,1,76,2,201,1,167,254,206,0,122,0,110,0,137,253,29,255,199,253,3,0,152,1,239,0,141,1,226,0,59,255,254,255,128,0,235,1,1,5,136,3,36,1,215,0,26,2,50,1,3,1,253,1,91,253,233,251,13,0,65,1,89,253,180,253,154,254,44,255,210,253,243,0,134,2,223,1,230,1,86,1,122,2,20,2,107,0,34,3,75,1,136,0,144,255,114,254,249,251,226,254,186,254,63,253,32,1,16,1,19,5,120,4,154,4,92,3,89,254,121,0,127,254,108,255,217,254,210,254,190,252,205,252,16,0,232,255,55,255,36,254,43,2,91,0,11,255,38,1,218,255,133,254,62,252,59,251,89,251,18,250,239,254,117,254,122,254,11,252,123,253,61,2,205,248,250,251,249,1,212,1,232,2,179,3,97,2,237,1,79,253,108,251,140,253,121,255,254,251,195,0,155,1,196,0,46,6,123,4,63,2,81,1,41,251,247,252,120,253,114,255,83,2,57,3,199,3,223,2,74,251,54,252,175,255,170,254,23,253,13,0,184,255,119,1,198,1,19,0,127,5,153,3,145,249,84,255,93,3,50,2,160,3,1,6,39,4,228,2,88,246,72,252,8,1,82,0,10,254,59,252,202,250,123,0,99,3,212,4,22,2,171,0,240,246,52,254,12,3,107,1,90,251,151,253,252,0,195,255,82,255,34,0,243,3,20,3,227,246,247,0,167,1,153,0,240,255,157,254,6,1,193,1,216,249,207,251,224,253,141,254,153,253,207,254,27,4,37,3,175,2,16,2,6,0,74,255,167,3,107,3,234,3,41,3,199,0,1,1,126,0,76,0,184,253,142,251,87,2,44,2,175,251,145,250,201,249,249,253,47,252,211,250,108,0,91,1,46,253,49,252,109,1,101,0,111,255,169,2,249,0,103,255,0,0,178,254,198,253,159,0,156,1,29,1,176,254,151,253,71,252,58,252,119,3,177,2,29,251,84,0,71,255,114,254,176,253,177,1,20,4,141,2,85,0,73,1,216,255,105,1,79,254,63,253,210,1,62,2,102,255,142,2,80,2,34,1,89,255,72,0,93,1,175,0,162,2,41,1,209,3,208,2,211,4,180,4,245,2,232,1,112,254,243,254,26,2,116,1,186,250,149,250,86,251,165,255,238,4,108,3,7,3,188,2,169,253,218,255,82,254,46,253,184,7,94,6,223,3,96,2,111,0,20,1,30,255,160,255,77,252,124,254,245,255,249,255,209,254,237,253,185,252,82,1,198,6,174,6,125,5,245,3,252,253,169,252,123,253,210,0,80,253,96,254,1,2,230,0,202,252,131,253,134,251,192,254,72,252,110,253,74,253,183,0,142,255,145,253,50,3,162,2,65,255,52,255,219,2,123,2,51,0,197,4,115,3,64,2,70,252,81,254,58,3,86,2,170,254,13,253,124,252,105,254,154,251,158,254,50,255,0,254,221,253,214,252,155,254,148,253,66,0,3,2,183,255,102,254,152,252,79,252,92,250,53,251,191,0,239,255,224,253,25,255,252,249,224,253,123,252,138,252,134,252,242,249,19,246,205,252,54,252,175,0,198,252,46,251,6,253,169,253,234,255,122,2,213,252,37,252,122,252,189,254,203,0,26,0,129,254,21,255,243,252,113,254,238,4,138,3,92,252,137,250,156,250,144,253,93,0,87,0,98,254,229,253,77,253,37,0,121,2,254,1,125,254,36,254,206,250,143,1,66,0,7,1,105,254,207,255,177,254,95,254,17,4,73,7,245,252,191,251,96,250,22,253,166,252,64,3,187,253,9,253,141,254,95,253,6,254,40,8,208,253,134,253,101,251,15,1,241,0,14,0,74,254,12,255,115,254,207,1,178,4,23,4,162,253,227,252,98,250,205,255,189,254,225,1,32,255,184,253,241,253,238,1,113,3,170,2,79,254,206,254,22,252,42,2,147,2,222,0,171,0,96,255,159,254,169,2,6,7,29,6,172,252,99,251,97,249,176,254,102,253,114,0,187,253,12,253,24,253,61,255,119,1,241,1,47,254,220,252,182,251,154,0,26,1,125,255,206,255,65,255,49,253,67,1,220,2,6,6,46,253,205,252,132,250,105,0,6,255,185,0,78,255,10,254,26,253,65,1,254,1,87,4,189,254,201,253,58,252,127,0,228,1,82,1,96,255,52,0,174,254,220,2,87,5,18,6,142,253,222,252,96,249,226,254,182,253,164,2,73,253,169,254,142,254,22,254,39,1,101,7,138,253,194,253,10,252,176,255,133,2,187,255,250,255,194,254,148,254,14,3,170,5,14,4,199,254,35,253,141,250,120,0,60,0,221,1,248,254,183,253,133,255,199,2,221,4,121,2,165,255,157,254,8,252,3,3,246,2,5,1,253,0,81,0,38,254,162,3,167,8,184,6,216,252,181,251,123,248,208,253,242,252,169,0,220,252,206,251,68,255,142,253,201,255,125,5,74,253,52,253,86,251,108,253,98,1,73,1,254,253,201,255,225,253,110,1,9,4,158,4,110,253,65,252,179,250,201,255,72,255,93,0,163,253,226,254,106,253,148,1,193,1,59,3,226,254,162,254,17,251,116,2,50,1,227,0,240,255,147,0,145,253,186,0,155,3,98,8,94,253,134,252,186,249,69,254,28,255,83,1,143,254,234,252,103,254,231,0,86,0,189,5,64,254,187,253,219,251,82,2,194,1,79,255,132,255,86,255,65,254,159,2,135,4,124,5,36,254,101,253,25,250,179,255,118,255,204,2,79,255,140,254,131,254,195,1,166,3,147,3,6,255,80,254,202,252,16,1,60,3,190,1,26,0,19,0,225,255,186,2,156,6,120,8,122,253,47,252,124,248,77,255,39,254,12,1,133,254,23,253,77,253,11,0,127,0,9,4,24,254,107,252,199,252,61,0,67,1,135,0,147,0,111,255,82,253,173,2,18,3,146,6,6,254,176,252,239,250,35,0,90,0,222,0,233,255,166,254,98,253,199,1,79,2,7,5,53,255,175,253,194,251,140,2,96,1,181,1,39,0,63,0,55,254,73,3,241,4,57,8,248,253,142,252,208,249,184,254,57,253,141,5,172,253,170,254,186,255,209,0,173,0,136,7,89,254,170,253,103,252,165,1,93,2,218,255,254,255,11,255,129,255,128,3,177,7,111,4,133,254,250,253,213,249,173,0,118,0,241,2,201,255,131,254,204,255,217,3,253,3,241,2,254,255,221,254,133,252,241,2,224,3,167,1,8,1,131,0,60,255,127,3,226,8,239,9,133,253,192,251,61,246,239,253,42,252,14,2,4,253,194,252,220,253,76,254,60,1,87,2,93,253,84,252,22,253,199,255,236,0,245,255,55,255,175,255,226,252,16,0,77,3,22,6,31,253,39,252,68,251,44,254,17,0,34,1,233,254,184,253,68,253,183,0,54,3,193,2,247,254,20,254,93,251,165,1,152,0,212,1,122,254,166,0,244,254,39,0,14,6,76,7,133,253,58,252,221,249,59,254,20,254,142,3,228,254,253,251,181,255,75,255,123,255,60,7,67,254,144,253,106,251,164,1,111,1,207,255,123,254,44,255,87,255,195,2,49,4,184,4,229,253,58,253,87,250,83,0,93,255,228,1,20,255,225,253,157,254,82,1,151,4,46,3,10,255,203,254,66,252,94,2,248,2,60,0,166,0,248,255,93,255,206,254,57,7,3,10,21,253,255,251,9,249,93,254,66,254,209,0,50,253,202,253,234,253,6,254,181,2,89,3,49,254,71,253,198,251,69,1,175,1,50,255,241,255,248,255,5,253,33,2,151,3,238,5,157,253,241,252,223,250,0,1,201,255,208,0,91,255,164,254,106,253,65,1,168,2,162,3,186,254,83,254,73,252,228,1,190,1,58,2,59,255,72,0,183,255,141,3,175,5,205,6,205,253,31,253,74,248,132,255,96,254,206,2,34,254,108,254,198,254,240,255,190,1,100,6,217,253,231,253,18,253,198,255,126,2,214,0,55,0,71,255,241,254,124,4,21,5,188,4,29,254,97,253,16,251,117,0,29,1,31,2,52,255,121,254,145,255,1,2,2,6,86,3,142,255,66,255,46,252,109,3,83,2,208,1,4,1,4,1,201,254,236,2,235,8,168,8,251,253,79,252,133,247,186,254,60,253,122,1,212,252,77,253,24,255,208,253,175,2,129,5,36,253,78,253,188,252,153,254,133,2,130,1,247,254,62,0,90,253,145,0,108,6,184,4,213,253,36,252,47,251,178,255,14,0,114,0,185,254,154,254,23,254,136,1,165,2,185,2,55,255,20,255,140,251,181,2,193,1,178,0,13,255,0,1,79,254,99,2,105,5,152,9,156,253,123,252,72,250,205,254,239,255,243,1,197,254,101,253,2,255,0,1,172,1,183,5,26,254,90,254,224,251,143,2,114,1,18,0,154,255,71,255,236,254,243,2,42,6,55,5,24,254,165,253,118,250,182,0,163,255,102,3,183,255,54,254,164,254,67,3,94,3,189,3,230,254,179,254,22,253,35,2,71,3,172,1,17,1,167,255,13,0,172,3,172,6,16,10,94,254,196,251,34,249,212,255,154,254,3,1,15,254,125,253,208,253,99,0,45,2,193,3,91,254,2,253,107,252,39,1,70,1,184,0,175,0,15,0,142,253,20,2,110,3,189,7,69,254,0,253,5,251,221,0,156,0,12,1,39,0,149,254,7,254,183,2,4,3,116,4,94,255,53,254,112,252,197,2,188,1,146,2,25,0,47,1,200,254,244,4,130,5,179,6,215,254,2,253,212,248,249,254,148,255,46,4,106,254,243,255,127,255,57,0,182,1,174,10,138,254,25,254,189,252,48,1,184,2,164,0,104,0,21,255,5,0,75,6,108,7,119,5,27,255,186,253,211,250,149,1,192,0,49,3,169,255,74,254,111,0,4,4,175,4,225,3,68,0,81,255,90,252,9,4,93,4,195,1,222,1,200,0,8,255,79,8,136,10,250,7,189,252,213,250,173,247,225,252,76,253,210,1,212,252,248,251,43,254,146,253,32,1,152,3,67,253,183,252,210,251,101,254,0,2,8,0,122,254,165,255,24,253,226,255,19,4,137,4,202,252,132,251,124,251,218,254,210,255,110,0,101,254,138,254,90,253,214,0,19,2,156,2,106,254,92,254,86,251,231,1,232,0,47,1,194,254,91,0,40,254,123,0,208,4,141,9,46,253,72,252,41,250,30,253,93,253,52,5,225,253,162,253,45,255,161,255,158,255,228,5,219,253,254,253,87,251,217,1,211,0,73,0,224,254,144,255,123,254,25,2,52,5,234,4,201,253,13,253,247,249,71,0,229,254,120,2,86,255,31,254,19,254,169,2,234,3,49,3,156,254,181,254,147,252,163,1,194,2,90,1,241,0,222,255,186,254,121,1,158,7,91,7,41,253,205,251,167,249,23,255,225,253,116,0,244,253,218,252,183,253,183,255,222,1,217,2,224,254,99,252,137,251,173,0,191,1,204,255,68,0,27,255,162,253,193,1,17,2,5,7,177,253,149,252,173,250,183,0,112,255,68,1,153,255,60,254,102,253,111,2,232,1,152,4,18,255,1,254,20,252,70,1,40,2,202,1,136,0,108,0,193,254,114,2,63,5,91,7,22,254,122,253,62,249,70,255,63,254,216,3,30,253,180,255,86,255,218,253,243,2,0,10,16,254,2,254,77,252,210,0,182,2,204,255,84,0,190,254,57,255,66,4,89,6,200,4,136,254,165,253,140,250,87,1,74,0,120,2,81,255,10,254,224,255,204,3,52,5,222,2,52,0,217,254,167,251,41,4,150,3,160,0,137,1,107,0,115,254,190,4,89,10,205,6,136,253,79,251,157,248,49,253,235,254,97,1,117,253,144,252,134,255,45,255,209,0,58,5,206,253,54,253,221,251,48,255,132,1,159,0,192,254,195,255,217,253,37,1,68,4,163,5,120,253,159,252,27,251,207,255,113,255,49,1,111,254,29,255,183,253,49,2,20,2,159,3,139,255,69,254,92,251,251,1,180,1,36,1,177,255,233,0,54,254,159,2,1,4,92,9,135,253,182,252,11,250,204,254,226,254,128,2,139,254,147,253,105,254,162,1,253,0,25,5,197,254,187,253,143,251,60,2,173,2,231,254,61,0,188,255,141,254,223,3,77,4,218,5,19,254,85,253,174,250,209,255,164,0,192,2,0,255,198,254,244,254,119,2,181,3,28,4,138,255,164,254,191,252,68,0,156,4,56,2,152,0,117,0,34,0,89,4,110,7,191,8,167,253,65,252,86,249,113,255,23,254,224,1,180,254,113,253,194,253,54,0,97,1,168,4,50,254,116,253,228,252,150,0,37,2,112,0,195,0,145,255,253,253,167,2,84,4,111,6,210,253,19,253,63,251,247,255,16,1,85,1,203,255,247,254,233,253,233,1,75,3,18,5,136,255,30,254,248,251,120,2,31,2,152,1,179,0,50,1,242,253,100,4,184,5,196,8,95,254,238,252,230,249,32,255,128,254,84,5,135,254,53,254,231,255,129,1,233,1,126,8,180,254,117,253,195,252,32,2,41,2,61,0,22,0,143,255,167,255,104,4,189,6,244,5,40,255,139,254,139,249,161,0,60,1,140,3,91,255,34,255,189,255,82,5,151,4,21,3,73,0,4,255,1,253,226,2,164,3,104,2,106,1,246,0,130,255,19,3,94,10,211,11,77,253,174,251,114,247,203,253,180,253,12,2,178,253,45,252,22,254,249,254,141,1,214,3,191,253,187,252,79,252,234,255,179,1,207,255,66,255,138,255,139,253,168,255,216,4,233,5,132,253,229,251,5,252,221,254,189,0,3,1,255,254,42,254,139,253,145,0,177,3,126,3,186,254,148,254,186,251,31,2,4,1,118,2,54,255,189,0,47,255,101,1,99,5,43,8,199,253,205,251,87,250,54,253,17,255,151,3,92,254,63,253,172,255,147,255,142,255,103,9,99,254,239,253,103,251,226,1,112,1,131,0,70,255,184,255,125,255,93,3,231,4,196,4,157,253,110,253,195,250,227,0,135,255,119,2,80,255,23,254,38,255,233,2,151,4,189,3,191,254,108,255,88,252,159,2,198,3,216,0,84,1,253,255,113,255,213,1,56,7,133,9,39,253,63,252,109,249,43,255,2,255,65,1,1,254,74,254,247,253,130,255,213,2,135,3,172,254,83,253,248,251,60,1,224,1,20,0,23,0,167,255,217,253,97,1,27,4,253,6,224,253,11,253,172,250,42,1,231,255,180,1,156,255,120,254,249,253,211,1,242,2,54,4,46,255,114,254,202,251,108,2,146,2,118,2],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([33,0,147,0,78,255,153,3,151,6,129,7,187,254,240,253,70,248,2,0,227,254,142,3,141,254,22,254,26,255,0,0,85,2,218,7,16,254,117,254,190,252,37,0,177,3,245,0,181,0,96,255,112,255,201,5,93,5,77,5,157,254,167,253,10,251,42,1,66,1,160,2,63,255,176,254,77,0,65,4,253,5,154,3,177,0,217,255,155,251,228,3,13,3,24,2,200,1,110,1,80,254,135,5,136,9,231,8,46,254,10,253,235,246,209,254,3,254,131,1,41,253,211,253,66,0,111,255,131,2,224,4,224,253,92,253,108,252,31,255,94,3,76,2,104,255,40,0,235,253,167,1,143,5,22,6,196,253,181,252,135,251,128,255,85,0,205,1,18,255,255,254,184,253,93,2,236,2,93,3,24,0,54,255,127,250,29,3,231,1,47,1,75,255,108,1,74,255,104,2,98,5,126,11,18,254,172,252,95,250,220,254,61,0,44,3,172,255,45,253,74,255,43,2,20,2,226,5,147,254,19,254,223,251,54,3,76,2,11,0,242,255,238,255,26,255,233,3,121,5,171,5,38,254,199,253,244,250,46,1,62,0,38,4,186,255,136,254,34,255,214,3,206,3,125,4,60,255,22,255,229,252,223,1,74,4,243,1,106,1,58,0,70,0,123,4,21,8,41,11,25,254,146,252,224,248,73,0,224,254,92,1,154,254,12,254,4,254,199,0,209,2,218,4,178,255,71,253,229,252,105,1,24,2,196,0,118,1,110,0,33,253,79,3,27,4,104,7,146,254,55,253,98,251,59,1,64,1,173,1,72,0,41,255,62,254,247,2,118,3,83,5,226,255,84,254,190,252,93,3,115,2,28,3,118,0,212,1,233,254,75,5,91,7,101,7,68,255,126,253,180,249,63,0,81,255,174,4,94,254,45,255,51,0,158,1,75,2,41,10,22,255,211,253,166,252,168,1,121,3,222,0,136,0,155,255,83,0,133,5,230,8,103,5,172,255,67,254,147,250,158,1,57,1,21,4,29,0,169,254,65,0,16,6,111,6,212,3,183,0,165,255,195,252,249,4,133,5,104,1,41,2,16,1,149,255,51,6,77,12,43,10,104,5,29,8,92,13,244,19,86,26,186,31,135,38,84,43,170,49,133,53,61,254,215,251,239,253,231,250,62,254,12,253,15,254,161,252,128,254,149,253,99,254,99,253,195,254,230,253,181,254,212,253,98,254,4,254,88,254,134,254,238,254,188,254,78,254,154,253,30,255,12,254,24,255,254,253,249,254,135,254,214,254,102,254,105,255,58,253,82,255,206,252,107,255,100,254,100,255,83,254,224,254,50,254,70,255,53,255,86,255,210,254,65,255,191,254,125,255,109,255,215,254,117,254,28,255,42,255,11,255,64,255,189,255,196,254,185,255,185,254,152,255,51,255,162,255,73,255,113,255,218,255,63,255,161,255,16,0,180,255,132,255,8,255,23,0,19,255,24,0,12,255,18,0,120,255,44,0,145,255,223,255,232,255,231,255,0,0,149,0,19,0,23,0,113,255,158,0,87,255,174,0,75,255,133,0,201,255,165,0,230,255,111,0,84,0,98,0,75,0,87,0,183,0,141,255,245,255,248,255,130,0,11,0,170,0,254,0,77,0,205,0,17,0,183,0,112,0,6,1,194,0,202,0,31,1,95,0,189,0,214,255,151,255,234,0,179,0,39,0,186,0,163,0,89,1,76,1,199,0,43,1,161,0,202,255,29,1,178,255,25,1,123,255,141,0,74,255,111,0,249,0,85,1,15,1,108,1,93,0,147,1,75,0,135,1,92,0,254,1,118,255,220,0,71,255,227,255,222,255,105,1,141,255,64,1,3,0,42,2,99,0,30,1,218,0,79,2,11,255,150,1,244,254,197,1,0,0,68,2,25,0,94,2,19,1,20,2,148,0,194,1,183,255,227,2,227,254,6,2,224,254,94,0,53,255,162,2,116,255,182,255,205,0,202,2,142,255,43,1,176,0,155,3,182,0,45,2,240,0,193,2,240,255,1,2,229,1,81,2,37,1,128,1,195,1,105,2,218,255,50,0,51,2,17,2,47,1,209,0,203,1,107,1,177,1,196,1,194,1,198,1,111,1,94,2,221,1,229,2,176,1,97,1,112,1,11,1,105,1,204,2,17,1,71,2,197,1,166,0,254,1,172,0,201,0,117,2,18,1,191,0,56,2,127,2,46,1,42,1,122,2,131,1,131,2,94,1,75,2,48,2,100,2,53,2,88,2,20,3,231,1,160,2,0,2,247,3,65,1,77,1,101,1,86,3,131,255,157,1,218,1,200,2,17,0,105,255,52,2,29,1,14,1,15,255,203,3,121,3,233,1,220,0,254,1,128,3,37,2,156,3,71,1,57,3,34,1,143,3,28,2,84,4,158,0,37,3,199,0,189,3,255,1,218,2,100,0,106,3,13,0,23,3,179,1,120,2,164,2,204,3,249,0,132,3,211,1,194,4,13,3,50,4,73,2,17,3,233,255,157,2,11,1,19,4,107,2,60,4,103,2,121,4,110,2,137,3,148,3,25,4,80,0,75,1,72,2,51,4,89,0,127,2,220,3,193,3,2,3,208,2,30,3,187,2,236,1,191,1,131,3,115,2,15,1,164,4,213,2,53,5,87,0,91,2,64,3,67,6,104,2,103,4,122,3,225,5,232,3,132,4,98,3,241,3,227,3,59,3,125,4,90,3,49,3,170,5,5,3,40,5,244,1,109,5,56,1,129,4,236,255,60,4,64,0,3,5,2,0,148,4,143,1,77,7,2,2,170,6,246,1,100,6,118,3,242,5,160,1,88,2,107,4,70,5,251,4,110,5,121,3,3,7,146,3,230,6,227,0,159,4,226,4,34,7,249,1,62,7,151,3,49,9,57,255,175,1,152,0,199,6,43,255,228,255,136,1,54,5,103,255,204,255,210,3,127,4,189,254,112,254,45,3,167,6,120,255,84,0,169,5,223,7,181,254,113,255,119,255,168,4,0,255,22,2,99,255,7,4,205,254,73,254,30,2,219,2,183,254,92,254,159,255,104,2,150,254,88,255,190,254,110,1,9,255,146,255,45,255,89,0,60,255,203,254,20,0,59,0,148,254,49,254,226,254,89,0,176,254,175,0,80,254,141,0,133,254,66,255,78,254,60,255,177,255,150,0,234,254,29,255,232,254,166,0,213,253,90,254,101,255,29,2,146,254,54,0,227,255,173,255,211,254,250,252,186,0,116,2,115,254,248,254,242,0,37,1,59,255,183,253,124,0,154,1,53,0,123,255,10,0,84,1,198,253,215,251,65,0,66,254,68,0,19,254,127,1,169,3,155,254,57,253,153,254,6,255,91,253,212,251,36,1,230,255,107,1,6,0,95,2,33,5,129,255,246,255,233,5,94,7,201,2,204,3,189,5,133,8,163,5,224,7,161,249,192,249,252,248,14,247,253,251,22,249,180,251,23,248,3,251,148,250,169,250,2,250,77,252,75,250,52,252,12,250,25,252,58,251,4,252,108,251,209,252,37,252,32,252,165,250,64,251,18,252,247,250,186,251,24,253,12,251,13,253,243,250,162,252,101,252,119,252,40,252,90,253,229,251,83,253,230,251,193,251,39,252,218,251,89,253,35,252,127,253,153,251,48,252,6,253,114,253,134,252,218,252,191,252,189,251,62,253,139,253,147,253,218,252,128,253,212,252,249,252,134,253,245,252,225,253,28,252,203,253,205,251,188,253,222,253,157,253,196,253,149,253,8,253,222,254,145,252,242,253,201,252,50,254,229,252,3,255,215,253,97,254,179,253,73,254,235,253,172,254,76,253,89,252,7,254,252,252,66,253,149,251,249,254,206,254,53,252,29,254,67,254,182,255,213,253,220,253,154,253,127,255,75,253,22,255,116,254,10,255,37,254,6,255,247,254,108,254,136,254,254,253,95,254,2,254,212,254,199,254,178,254,104,253,49,254,210,252,126,254,64,253,175,254,153,253,22,255,55,255,23,255,17,255,89,255,201,253,53,255,149,253,109,255,97,254,141,255,160,254,90,255,18,253,85,255,7,253,242,254,145,252,248,254,121,252,145,254,24,253,43,0,37,254,14,0,115,253,43,0,98,253,11,0,64,254,197,255,247,253,130,255,137,255,101,255,155,253,214,255,161,252,229,255,93,252,136,0,29,254,183,0,44,254,55,0,214,254,55,0,208,254,57,1,159,253,57,1,48,253,66,1,89,255,100,0,227,253,253,255,137,255,145,255,69,255,233,0,20,255,4,1,22,255,26,0,91,255,134,0,211,255,216,255,219,253,104,1,53,255,122,1,124,254,194,1,129,254,19,1,20,0,182,0,153,255,246,0,145,255,175,1,37,0,206,1,110,255,231,1,99,255,228,254,197,255,247,1,72,255,24,0,53,0,253,255,54,0,122,0,3,1,77,1,66,0,228,1,104,0,180,1,68,0,195,0,116,0,190,0,206,0,13,1,247,255,226,1,96,1,126,1,29,1,143,1,21,1,196,1,0,1,69,0,186,0,13,0,41,1,243,255,3,1,161,255,30,0,56,0,138,1,196,0,169,1,205,0,200,1,25,1,65,2,15,0,191,0,119,1,34,1,151,1,64,2,200,255,227,0,32,2,149,1,0,0,37,2,164,255,16,2,27,255,95,1,11,255,82,1,150,254,179,1,167,0,15,2,181,255,46,1,91,0,56,3,129,0,87,2,240,1,167,2,186,0,237,2,153,0,225,2,231,254,88,2,164,254,103,2,20,255,1,3,41,0,113,3,38,0,122,3,36,255,73,3,155,254,115,3,119,254,135,3,134,253,218,1,68,254,82,3,81,255,166,2,19,254,242,0,249,253,17,3,54,253,70,2,227,253,110,1,225,253,178,1,171,253,244,1,3,253,222,0,66,253,149,3,25,253,194,3,155,252,245,1,125,252,36,2,133,254,200,0,77,254,157,0,205,252,214,0,163,252,157,0,154,253,40,0,136,253,94,0,141,252,202,255,27,253,4,2,11,254,42,1,154,253,85,255,154,252,95,255,159,252,233,255,206,252,93,0,9,252,245,254,106,253,153,254,219,253,2,0,70,254,135,255,135,254,0,0,29,255,33,0,98,254,130,255,127,255,212,0,90,252,34,0,198,251,230,254,161,251,244,254,58,253,199,252,92,254,65,255,204,251,96,252,107,252,163,255,140,253,154,254,97,0,7,0,50,255,119,254,155,255,24,0,53,255,38,0,88,255,83,0,169,253,89,254,233,254,170,1,68,253,118,0,181,255,206,0,43,252,95,253,88,253,161,1,145,254,37,0,233,254,218,1,127,255,194,254,63,1,40,1,142,253,217,255,87,1,90,2,72,253,217,255,209,254,172,3,104,0,233,0,132,254,137,0,220,255,13,1,181,255,42,255,120,0,43,0,239,253,35,254,203,1,164,0,54,255,27,255,207,255,89,255,97,2,24,3,98,0,36,255,147,3,148,0,37,1,27,1,101,3,91,0,63,2,138,1,70,1,178,255,205,2,67,0,109,1,189,254,104,2,220,255,219,2,27,0,107,2,238,0,120,2,17,1,192,1,99,0,33,3,220,1,101,3,17,1,173,2,64,0,21,3,72,0,253,3,217,0,25,3,203,1,222,2,104,1,134,2,224,1,104,1,66,1,173,1,208,1,126,2,174,1,244,2,107,1,232,3,148,1,171,2,16,2,90,2,103,2,143,2,157,1,178,3,175,2,169,3,90,2,136,3,92,2,43,2,225,2,18,3,150,2,211,1,142,2,106,1,77,2,161,3,198,2,242,1,222,1,159,1,164,1,181,2,115,3,45,3,171,2,13,3,157,3,145,3,171,3,214,2,220,2,235,1,85,3,19,2,180,3,222,2,195,3,59,1,40,3,249,2,243,2,120,4,248,2,143,2,52,4,58,3,33,4,67,4,70,3,235,3,40,3,23,4,109,4,147,2,77,4,224,3,26,4,50,4,51,4,203,3,182,2,202,4,30,4,59,2,73,3,116,3,124,5,99,5,72,4,56,4,93,3,207,4,223,2,4,5,248,2,248,4,223,3,87,5,29,4,233,4,188,2,26,4,22,2,220,3,197,1,240,4,87,2,116,4,167,2,85,6,47,3,104,5,9,2,37,5,137,1,28,6,37,3,168,5,174,2,44,4,136,2,107,3,51,1,59,4,105,1,23,4,61,1,137,5,196,3,163,2,59,2,128,4,79,0,90,4,209,255,250,5,55,1,185,6,58,1,142,4,177,2,2,2,162,255,93,1,26,1,132,5,72,1,1,4,231,1,191,255,57,0,37,3,202,3,36,0,62,0,1,3,249,254,23,3,166,254,125,2,187,2,119,255,108,2,22,2,29,2,33,253,194,0,199,2,44,1,244,254,161,252,158,3,1,3,60,253,84,254,250,1,174,0,132,252,138,253,179,1,35,2,101,250,254,254,109,2,215,1,6,252,168,250,119,254,9,2,104,252,82,253,231,255,20,0,42,252,124,251,84,1,9,0,234,249,145,251,160,254,48,0,213,249,110,254,137,252,6,0,124,251,136,252,220,253,160,254,149,249,112,251,97,255,98,2,24,248,61,252,31,255,193,0,136,249,88,248,11,255,19,254,60,252,112,249,88,252,133,253,237,250,48,249,148,250,164,253,252,249,189,252,139,250,121,255,204,249,222,254,122,249,56,253,37,248,160,249,129,249,229,255,46,247,213,252,123,251,184,0,15,251,189,0,169,250,74,2,37,248,201,0,234,252,200,2,70,251,3,0,247,251,40,3,29,251,62,3,145,255,123,2,156,249,191,1,49,254,75,252,67,254,96,252,8,254,118,251,11,254,69,251,144,0,161,254,140,254,228,251,229,254,221,251,233,254,157,251,193,253,98,250,181,253,178,249,89,252,40,252,229,0,178,2,103,252,49,253,109,254,82,5,83,253,47,254,106,3,141,1,3,254,210,255,61,1,54,5,27,254,200,1,45,3,183,1,101,254,83,1,130,3,43,4,87,254,46,0,161,5,241,1,115,252,224,252,185,5,22,4,2,255,191,254,150,5,141,4,68,0,94,1,10,4,154,2,114,1,11,0,31,5,22,3,143,0,232,0,17,4,26,6,142,255,151,2,80,6,54,4,198,1,67,2,251,4,16,4,180,255,141,3,240,2,43,4,153,0,0,2,92,1,190,4,102,2,129,1,51,7,40,3,13,1,10,4,203,0,62,4,140,2,249,3,247,6,106,4,173,1,47,5,131,1,104,5,207,255,159,4,184,255,191,4,96,254,233,3,32,2,213,6,160,254,199,4,10,254,175,4,179,253,57,2,29,255,94,6,114,255,42,6,26,255,179,6,54,253,8,5,186,252,118,5,107,4,77,5,48,255,208,4,181,1,197,3,95,252,50,3,43,3,130,5,91,3,227,5,164,0,188,4,107,5,1,7,228,1,82,7,200,1,15,8,228,3,146,4,46,5,122,5,36,5,80,5,111,4,238,4,210,4,82,6,81,5,232,6,141,5,203,4,48,6,67,5,86,3,160,2,149,6,30,6,115,4,246,4,224,7,33,7,237,6,45,6,252,5,180,5,207,5,178,3,123,6,253,3,208,6,188,4,112,5,209,3,236,6,137,4,34,7,140,4,182,6,149,5,181,7,55,6,161,4,96,3,84,8,37,4,7,7,46,3,46,7,245,2,56,8,35,5,6,8,234,4,65,8,147,3,27,9,162,3,187,5,123,4,30,10,159,5,197,8,208,6,42,8,84,6,54,9,174,5,106,10,226,5,84,7,45,7,22,8,183,7,203,6,41,6,170,2,9,5,48,6,253,7,174,5,50,8,194,9,212,7,151,10,18,8,214,2,52,6,196,10,32,9,228,0,79,3,152,9,123,6,36,0,45,1,150,7,165,7,66,254,160,255,106,8,116,5,253,5,77,4,14,0,96,2,101,252,36,253,103,5,190,7,65,5,184,3,88,253,65,1,1,5,244,4,198,249,109,1,173,3,178,3,55,249,202,252,70,9,227,10,29,7,228,10,236,248,29,247,169,248,23,246,152,249,200,248,97,249,44,248,60,251,136,248,59,251,198,247,233,249,204,249,219,249,236,249,85,251,177,249,56,251,65,249,177,250,129,251,176,249,100,248,6,251,145,250,231,250,133,250,185,249,101,251,116,249,225,250,93,250,58,250,169,250,126,252,24,251,221,251,205,250,146,251,42,252,147,251,131,251,32,250,200,251,228,250,4,252,97,251,44,252,50,250,57,252,41,250,36,252,102,252,233,251,203,251,186,252,101,251,166,252,58,251,149,251,239,251,216,251,1,253,152,252,123,251,67,253,144,252,62,253,118,252,250,252,8,252,190,253,200,251,223,252,58,250,177,253,169,251,176,253,134,251,55,253,148,250,128,253,160,250,171,253,221,251,96,254,121,252,82,253,192,252,107,253,60,253,68,254,156,252,22,254,103,252,138,254,248,252,149,253,110,251,183,253,219,253,255,252,229,252,77,254,109,253,238,253,27,253,14,254,187,252,155,254,171,253,233,254,153,252,13,255,137,252,230,254,103,253,232,254,101,253,91,255,208,253,118,254,121,252,150,254,102,254,64,254,185,253,103,254,194,253,199,254,155,254,131,253,220,253,198,253,76,254,128,252,8,254,130,254,11,253,198,255,31,254,91,255,150,253,65,255,138,254,22,255,130,254,34,255,85,253,231,255,32,254,94,254,153,254,38,253,159,254,188,254,99,255,80,254,190,254,118,254,209,254,228,254,152,255,167,253,223,254,212,253,60,255,180,253,106,255,109,253,160,253,39,254,232,255,188,255,64,254,38,254,248,255,6,254,211,255,20,253,72,255,180,252,4,255,123,252,165,255,184,253,159,255,116,253,138,0,4,253,125,255,90,253,244,255,98,253,165,0,253,254,253,255,184,252,149,255,115,252,37,0,32,252,44,0,170,252,97,254,185,252,13,0,23,252,241,254,254,251,203,254,226,252,34,254,192,252,24,254,81,252,168,0,168,251,125,254,95,251,155,255,97,251,216,255,83,252,196,254,250,251,254,252,236,251,143,253,199,251,230,253,56,251,213,254,224,250,76,254,83,251,105,253,113,251,95,255,64,251,78,253,43,251,193,252,104,250,48,253,133,250,19,254,126,252,28,253,102,252,223,252,178,251,110,254,213,249,60,252,219,251,130,253,11,251,98,250,37,250,90,252,34,250,129,252,194,249,204,253,69,249,51,253,162,253,171,253,114,251,195,251,167,250,44,254,102,248,43,250,210,248,71,252,116,248,93,252,37,250,68,255,157,249,91,254,79,250,174,254,88,250,234,255,106,248,90,254,42,248,7,255,16,254,142,255,138,248,13,253,247,250,174,0,85,250,147,255,30,254,255,254,59,251,4,254,175,249,151,0,98,249,208,0,114,253,107,0,141,249,29,0,139,251,23,1,65,251,50,1,52,251,6,254,38,253,81,255,44,251,155,255,55,252,39,2,154,252,22,1,201,252,59,1,205,253,120,1,229,251,228,0,5,254,24,1,169,253,25,1,10,253,253,0,207,254,123,1,13,253,122,255,157,253,148,2,200,252,24,2,207,252,134,2,99,254,49,0,171,254,177,0,59,254,14,2,30,254,77,2,185,255,83,1,111,253,8,1,12,255,39,1,19,255,59,1,125,254,57,2,6,254,247,255,135,254,14,0,96,255,149,2,40,255,40,0,204,254,210,255,95,0,214,0,14,255,167,0,170,255,192,0,200,255,27,0,180,255,31,0,36,0,53,1,150,255,74,255,143,255,74,0,71,254,234,255,23,0,139,0,81,0,245,255,44,0,15,0,169,255,119,255,138,255,49,255,98,255,198,255,16,1,164,255,100,255,71,254,8,0,120,255,128,0,35,255,101,0,38,255,40,0,59,255,180,255,56,254,9,0,67,254,33,0,89,254,226,0,60,0,73,0,34,255,156,0,113,254,24,1,194,254,245,0,171,254,166,0,13,254,83,1,66,255,71,1,37,255,69,1,119,255,167,255,172,253,100,0,141,253,144,0,91,253,231,1,28,0,252,0,121,254,214,0,215,255,26,1,228,255,99,0,226,254,75,1,49,0,203,1,124,254,53,2,143,254,180,1,28,0,80,1,247,255,141,1,89,255,106,2,34,0,84,2,239,255,49,2,116,255,43,1,79,0,10,2,125,0,203,0,2,0,244,0,32,1,255,0,211,0,175,0,82,0,84,2,187,0,5,2,108,0,125,1,255,0,109,1,41,1,241,1,96,1,71,1,174,255,25,0,210,0,115,1,245,0,5,1,3,0,33,2,193,1,140,0,38,1,44,0,39,1,212,0,91,1,244,0,238,1,75,1,16,2,201,0,51,1,93,1,155,1,101,2,28,1,102,2,157,1,208,1,66,1,112,2,141,1,97,0,200,0,96,255,128,1,149,0,106,1,239,1,13,2,13,1,73,2,33,0,235,1,135,255,177,1,171,1,99,2,242,1,4,2,171,0,187,1,241,1,154,2,184,1,19,1,54,2,63,2,146,0,127,2,155,0,158,2,223,255,173,0,212,0,184,2,90,255,89,2,65,255,183,2,23,254,247,1,175,0,230,2,214,0,220,1,116,1,59,4,66,2,18,2,74,2,9,3,169,1,106,3,59,1,73,3,118,1,80,3,91,255,53,2,35,0,223,3,217,255,38,4,73,1,200,2,18,3,72,3,133,2,27,3,149,2,164,2,59,2,150,3,120,2,55,4,161,2,49,3,62,1,132,1,106,3,244,3,52,2,80,3,112,3,108,2,45,2,223,1,159,2,197,1,180,2,212,1,72,3,130,2,76,3,133,2,250,1,172,1,129,3,55,2,69,3,131,1,194,3,243,1,179,2,49,2,171,3,158,3,15,3,40,1,22,3,12,1,4,4,18,2,106,3,73,1,36,2,143,0,163,2,35,1,247,1,66,0,17,4,103,1,18,3,97,0,37,3,33,0,69,3,214,1,255,1,49,0,68,4,71,1,150,4,67,1,3,0,242,0,104,3,218,1,177,2,173,1,49,5,166,2,18,4,108,2,85,4,152,2,65,1,193,0,121,3,182,3,129,4,106,3,125,3,123,2,109,3,94,3,180,3,145,3,13,5,153,2,40,5,127,2,229,3,25,3,122,5,6,4,152,4,244,3,86,4,191,3,130,5,157,3,123,5,147,3,31,2,94,3,92,4,198,4,67,3,166,4,67,3,166,4,191,3,124,4,123,4,96,5,20,5,169,4,135,5,207,4,55,5,61,5,234,2,68,4,175,6,3,5,109,5,49,4,54,5,30,6,129,4,195,5,109,6,113,4,33,7,196,4,32,4,102,5,241,5,194,6,96,6,9,6,84,6,6,6,87,3,60,6,97,3,131,6,181,2,117,3,180,6,239,5,143,4,16,5,161,8,224,6,160,7,213,5,228,7,202,5,254,5,74,7,158,6,216,7,30,6,236,2,225,6,57,3,38,1,112,5,60,4,10,8,109,2,35,5,109,1,7,5,198,0,4,4,232,1,128,5,249,0,147,1,246,3,25,6,68,1,107,1,109,6,20,4,193,0,111,1,242,7,67,7,5,255,67,2,238,2,226,3,13,255,30,0,45,5,111,3,228,255,87,255,112,2,149,3,59,254,159,0,186,0,90,5,154,253,6,0,25,2,136,1,162,255,221,254,13,3,229,0,128,255,214,254,245,0,235,1,67,253,120,253,204,3,21,3,11,254,128,253,178,0,255,0,147,254,122,254,1,255,61,1,66,252,218,254,65,255,228,0,249,252,65,254,157,0,19,255,111,253,48,253,105,254,92,0,139,255,157,253,78,1,26,255,89,253,196,251,112,255,195,254,123,252,163,252,30,253,152,254,171,255,41,253,166,255,237,252,100,0,234,255,121,254,249,254,200,255,183,255,175,254,14,253,5,0,67,255,62,253,144,253,89,0,168,254,121,255,167,251,159,254,19,255,84,253,145,251,237,254,178,251,243,254,77,251,152,0,145,0,46,253,48,251,49,0,80,0,32,251,248,252,8,255,135,1,36,253,221,253,213,1,218,0,1,255,160,252,69,0,110,1,90,255,27,254,80,253,191,0,68,251,84,251,86,255,87,255,228,250,161,249,65,1,214,1,117,250,37,251,192,255,16,1,175,250,8,255,236,1,53,2,47,253,159,253,195,0,229,1,195,253,123,255,171,1,202,0,85,255,138,255,199,0,63,2,2,0,225,255,182,2,243,2,170,250,217,255,40,2,45,2,23,254,15,1,168,2,25,2,13,0,59,254,87,3,186,3,123,255,204,255,175,255,226,2,111,251,125,2,31,4,35,4,161,255,164,2,235,4,57,4,233,1,49,1,63,254,186,3,234,253,228,3,55,252,98,3,222,251,35,4,242,250,106,2,120,250,105,2,54,254,86,5,97,255,29,7,250,252,240,253,242,255,86,4,78,251,123,252,252,252,177,1,24,251,25,251,13,252,210,254,166,253,183,253,9,253,174,249,8,253,243,249,184,252,127,248,208,252,229,253,23,249,69,247,29,255,220,255,14,248,217,248,197,247,154,251,89,246,232,248,66,250,252,0,115,245,97,254,197,253,45,254,229,5,18,6,132,8,183,7,22,9,228,7,191,248,111,249,191,248,37,249,248,247,130,251,170,247,138,249,173,249,181,251,88,249,149,251,191,250,184,249,177,250,154,249,198,250,243,250,211,250,15,251,128,249,143,249,49,250,173,252,190,250,216,248,123,250,116,247,254,250,87,253,7,249,143,249,58,252,198,251,97,251,116,249,226,251,207,251,138,251,122,251,73,251,24,253,6,251,27,252,90,252,153,250,97,252,120,250,14,252,231,250,241,252,69,252,231,251,124,252,31,252,207,252,31,253,201,252,52,252,91,251,30,253,186,251,30,253,126,251,240,252,223,252,214,252,238,252,132,252,248,253,24,252,206,252,124,253,59,252,191,253,142,252,227,253,74,253,97,253,107,252,173,253,126,253,122,253,153,253,68,252,147,253,99,252,253,253,41,253,29,254,209,252,27,254,184,252,190,253,72,254,55,253,190,253,187,254,111,253,98,253,126,254,198,253,71,254,102,253,254,253,237,252,120,254,239,253,246,253,59,254,25,254,89,254,152,253,183,253,151,253,99,255,106,253,244,254,88,253,164,254,190,254,189,254,136,253,68,254,208,254,82,254,180,254,54,254,235,254,44,254,109,253,231,252,193,254,132,253,29,255,214,253,139,254,165,254,178,254,46,255,56,254,64,255,238,253,14,255,40,255,58,255,146,254,142,254,174,254,95,255,103,254,20,253,149,255,132,254,218,254,125,253,33,255,103,253,22,255,27,253,115,255,16,254,126,255,2,254,117,255,185,254,84,255,207,254,206,254,188,253,92,255,249,254,250,254,84,255,189,255,110,254,31,0,146,254,246,255,76,254,170,255,241,253,71,0,135,254,234,255,159,253,244,255,90,253,189,255,193,254,63,0,65,255,35,0,75,255,217,255,14,255,126,0,89,255,116,255,224,253,155,0,215,254,174,0,215,254,38,0,248,255,117,0,132,254,197,0,60,254,240,0,246,253,223,0,153,255,110,0,69,255,87,0,101,255,169,0,209,255,157,0,26,0,173,255,156,255,128,0,80,0,209,0,194,255,6,0,7,0,22,0,5,0,62,1,236,255,248,0,211,255,56,255,193,255,156,0,187,255,250,0,73,255,113,1,130,255,143,255,180,255,114,255,134,255,192,255,2,255,225,255,35,0,79,255,185,255,249,255,171,0,93,0,27,0,108,0,212,0,182,254,47,255,133,255,186,255,233,254,95,0,160,255,20,0,68,255,195,255,198,254,87,0,212,254,178,255,158,254,122,255,11,0,122,0,116,255,122,0,237,254,152,0,219,254,140,0,174,255,138,0,191,254,145,255,32,254,100,255,153,254,76,0,2,255,216,255,133,253,160,255,246,253,79,0,5,254,8,0,244,254,47,1,229,253,68,0,66,254,61,0,246,253,50,1,111,0,189,0,77,254,122,0,133,254,166,0,197,253,114,254,136,253,182,255,21,253,161,255,57,254,194,0,72,252,83,0,226,252,192,0,13,253,192,0,243,252,94,255,149,253,234,0,105,253,215,254,24,254,147,255,60,252,124,255,186,252,188,255,181,252,58,0,168,251,170,255,219,252,213,254,80,252,3,255,246,252,206,255,59,252,219,253,160,254,158,255,32,252,169,254,163,251,197,254,163,251,205,254,125,251,138,254,131,253,26,255,114,251,213,255,237,250,156,255,99,252,119,254,6,251,168,253,79,253,126,255,57,250,200,254,215,250,2,255,72,250,70,254,244,250,155,253,19,251,9,254,35,250,144,254,214,250,26,0,104,250,190,255,49,249,95,255,148,249,45,254,32,249,220,253,143,250,200,253,236,249,153,252,41,250,246,251,149,250,197,253,131,248,240,253,9,249,133,255,151,248,25,255,250,247,189,254,252,247,118,252,72,248,201,253,131,248,148,253,1,248,35,252,203,251,142,254,17,248,64,253,205,246,19,253,76,245,191,251,139,248,159,0,36,248,248,0,142,253,133,255,221,246,62,252,99,253,104,254,157,250,106,251,60,254,148,254,236,251,33,253,124,255,183,0,172,249,16,253,221,253,205,254,247,252,19,251,158,255,41,0,144,252,189,251,255,254,97,0,190,249,215,248,31,0,230,255,124,253,207,253,76,255,222,253,127,254,185,251,102,254,222,252,98,254,197,252,55,254,54,252,22,254,171,251,41,255,108,252,112,255,87,252,19,254,11,251,251,253,29,250,181,0,101,0,180,254,135,252,188,252,87,252,209,253,83,254,139,253,221,253,73,255,175,254,223,253,174,255,6,255,226,254,5,0,124,255,164,254,4,255,219,254,40,254,98,255,100,0,227,255,197,0,20,255,88,254,163,252,43,255,116,255,249,255,85,254,69,254,187,0,159,255,84,253,32,253,219,254,2,1,144,254,104,255,106,255,136,1,159,253,175,0,114,255,43,1,118,255,152,0,137,255,73,1,26,254,204,255,37,1,198,0,73,255,117,0,175,0,75,1,198,255,238,254,231,0,44,1,224,254,74,1,207,254,116,1,145,255,153,1,247,255,167,1,83,0,0,1,67,0,111,1,237,255,248,0,91,0,113,0,221,255,150,1,65,255,154,0,238,0,40,1,5,0,197,0,141,0,221,0,57,1,198,0,211,0,165,1,244,0,78,1,88,0,170,1,13,255,198,1,202,0,40,2,251,255,147,1,35,1,185,0,219,0,45,1,251,0,138,0,128,0,69,0,197,0,32,1,116,255,195,255,188,0,105,1,197,0,86,2,186,1,17,1,34,1,143,0,216,1,226,1,157,0,114,1,159,1,65,1,116,1,129,1,146,1,40,2,155,0,24,0,38,2,7,1,245,255,21,0,104,1,227,0,147,0,2,255,168,1,97,0,110,1,243,255,119,1,141,0,193,1,232,0,140,1,251,1,218,1,16,1,189,2,68,1,106,1,209,255,75,2,148,0,31,2,69,0,144,1,205,255,49,2,59,0,220,0,246,255,96,1,147,0,206,0,211,0,141,2,185,0,51,2,41,1,53,2,28,1,82,2,121,0,254,2,192,0,142,1,118,0,130,2,178,1,233,0,8,1,225,1,211,1,129,0,91,255,187,2,239,0,90,0,26,0,86,1,218,1,201,255,27,0,132,1,94,0,84,255,0,0,213,2,123,1,196,255,81,1,114,1,209,1,95,0,63,1,38,3,83,2,78,0,4,1,241,1,83,3,210,0,48,2,202,1,62,2,48,254,202,0,241,1,113,2,54,255,152,0,48,0,200,2,236,255,54,2,100,0,203,2,199,1,212,1,155,1,93,2,63,1,134,2,195,0,103,2,145,1,26,2,168,2,227,2,201,0,155,2,178,1,186,3,198,1,169,1,134,2,235,1,94,2,169,2,160,1,252,1,241,1,54,3,170,1,47,3,148,2,135,2,116,2,204,2,185,2,210,1,106,2,201,1,173,2,204,1,109,1,53,1,209,2,55,2,68,3,89,2,97,2,44,1,57,3,203,1,175,3,175,2,169,2,21,2,147,3,86,2,79,2,243,0,108,3,195,1,106,3,164,1,18,3,61,1,220,2,220,0,154,3,61,1,84,4,111,1,19,2,210,1,4,4,137,2,29,4,103,2,10,4,41,2,61,3,90,2,253,3,31,3,159,3,35,3,110,3,251,2,31,3,240,1,93,5,5,3,73,2,2,3,35,3,162,3,75,4,25,3,198,4,94,3,185,4,127,3,1,4,215,2,4,3,77,3,148,4,91,4,99,3,253,3,62,3,245,3,73,3,142,3,250,1,191,2,215,4,53,4,108,2,51,3,172,4,59,4,131,4,57,4,118,4,139,3,11,6,97,4,29,5,136,2,63,5,100,2,204,5,220,3,199,5,169,3,217,3,48,5,187,3,61,5,173,1,142,3,73,3,58,5,52,2,155,4,156,1,132,4,147,5,40,5,154,5,50,5,128,2,248,2,190,6,130,5,190,0,43,2,49,4,237,3,170,1,1,1,71,3,212,3,235,0,231,0,240,5,143,4,109,0,37,1,246,3,33,6,49,1,142,0,124,4,27,2,221,254,148,255,189,4,204,3,22,0,40,255,155,2,60,3,30,254,182,1,197,1,151,5,187,253,90,254,21,3,131,1,154,254,58,254,174,0,12,3,220,255,140,254,134,1,122,255,139,253,160,0,206,254,239,2,22,251,181,254,177,0,10,2,8,255,62,2,5,255,127,2,237,253,151,1,172,253,138,1,93,254,21,3,151,253,33,3,38,252,143,1,167,252,215,2,249,255,6,2,65,253,54,1,137,251,232,255,22,252,31,1,64,252,107,1,237,250,56,1,2,250,245,0,235,249,49,1,28,0,153,0,165,252,81,255,223,255,76,1,138,250,102,255,212,0,154,1,175,253,59,255,188,251,64,253,120,252,191,255,26,1,111,1,106,252,82,253,89,1,93,0,254,254,155,254,184,2,132,2,75,253,228,255,192,1,237,1,239,254,193,0,15,2,34,2,13,255,255,253,128,1,120,255,17,1,159,254,0,2,114,255,25,2,58,255,173,3,238,2,83,0,248,0,66,2,93,3,200,255,80,2,74,3,44,0,124,3,24,0,33,0,122,3,240,255,214,3,63,3,118,5,255,5,106,7,180,6,96,5,156,7,185,5,22,252,95,252,184,251,77,251,127,253,93,252,164,253,63,252,245,252,95,253,189,252,236,252,96,254,104,253,54,254,2,253,116,253,247,253,106,253,17,254,1,252,3,254,1,252,84,254,68,254,216,253,144,254,63,254,33,254,45,255,226,251,121,252,196,254,7,255,199,253,177,253,199,253,237,254,227,253,65,255,52,253,68,255,182,252,248,254,179,254,8,255,194,254,28,255,237,254,1,0,201,253,28,255,141,255,35,255,18,255,138,254,59,255,5,254,34,255,189,253,254,254,80,254,195,255,12,255,167,254,2,0,174,254,39,0,41,255,87,255,198,255,0,0,200,255,250,255,53,255,125,255,1,0,70,255,251,255,45,255,6,0,132,254,11,0,94,254,140,255,131,0,122,255,113,0,89,0,252,255,71,0,254,255,237,255,64,255,6,1,24,0,189,0,151,0,123,255,147,255,186,0,103,255,166,0,37,255,37,0,139,0,193,0,171,0,81,1,124,0,158,0,195,255,141,0,226,0,243,255,190,0,231,0,34,0,98,1,109,0,60,1,201,0,244,0,164,0,74,1,171,255,134,1,172,255,254,0,71,1,1,1,79,1,235,1,147,0,220,1,105,0,54,0,77,0,181,1,114,1,165,1,58,1,193,1,86,1,73,1,126,0,161,2,36,1,59,2,132,1,243,0,193,0,141,2,64,1,109,2,24,1,194,0,124,1,5,2,69,2,45,0,67,1,111,0,166,1,233,1,139,1,222,2,22,2,110,2,34,2,230,1,246,1,62,1,60,2,189,0,38,2,129,1,166,1,99,255,153,0,131,255,126,1,59,255,130,1,249,254,78,1,228,0,185,2,68,255,1,0,51,0,41,1,5,254,213,0,136,254,141,1,232,255,255,0,221,253,89,0,10,254,162,255,131,1,179,0,148,253,68,0,84,253,112,0,126,253,162,254,252,254,172,0,74,254,188,254,8,1,136,2,60,252,252,255,159,251,7,0,122,255,134,0,147,251,206,254,143,0,96,0,92,254,15,254,59,251,162,254,9,250,83,253,95,255,72,0,105,3,179,2,220,2,27,1,153,3,97,1,78,1,219,1,71,4,53,3,96,3,12,2,75,3,241,1,202,2,199,2,20,3,238,2,52,4,202,2,180,4,241,2,65,2,150,2,124,245,170,192,38,3,44,7,95,251,33,228,37,12,28,4,40,248,202,208,85,16,107,5,192,249,99,218,69,9,145,5,232,249,78,219,176,12,193,7,210,251,214,230,35,7,16,9,184,252,64,236,173,3,242,12,199,254,163,248,47,9,161,11,41,254,234,244,32,14,116,9,247,252,183,237,123,13,24,12,98,254,70,246,139,11,205,16,72,0,178,1,56,7,148,17,139,0,68,3,44,15,40,21,157,1,180,9,163,4,42,28,67,3,166,19,11,12,40,35,139,4,90,27,216,28,115,3,37,247,177,202,74,23,226,5,58,250,60,221,35,20,86,8,61,252,88,233,8,31,217,7,228,251,65,231,107,25,202,8,139,252,49,235,246,29,192,10,180,253,47,242,64,23,200,11,60,254,92,245,34,19,180,14,131,255,17,253,77,27,4,14,60,255,103,251,238,31,138,15,213,255,252,254,176,23,52,17,107,0,133,2,29,30,223,19,64,1,136,7,147,21,133,23,57,2,98,13,89,30,214,27,50,3,62,19,172,23,2,31,209,3,253,22,218,21,223,44,243,5,212,35,85,41,76,5,159,249,153,217,89,35,61,6,145,250,68,223,66,38,243,7,247,251,180,231,242,34,111,9,244,252,164,237,56,40,24,10,87,253,253,239,191,36,174,10,171,253,245,241,252,33,146,12,156,254,160,247,29,38,67,13,235,254,123,249,193,39,52,15,181,255,58,254,210,35,176,17,148,0,123,3,168,39,140,19,40,1,245,6,154,35,103,22,241,1,177,11,4,41,122,24,116,2,198,14,126,39,207,29,151,3,158,21,140,34,23,34,93,4,72,26,252,34,208,48,112,6,193,38,124,50,208,3,185,247,47,206,171,44,219,6,28,251,141,226,106,47,24,9,189,252,96,236,124,44,64,9,214,252,248,236,204,41,248,11,83,254,236,245,44,48,45,11,238,253,136,243,202,45,255,12,205,254,200,248,6,44,116,14,106,255,120,252,109,42,61,17,110,0,151,2,50,47,181,17,150,0,134,3,19,44,85,20,98,1,84,8,184,46,161,24,125,2,253,14,159,43,110,29,132,3,44,21,96,47,137,32,25,4,168,24,217,42,25,42,149,5,156,33,60,40,224,67,87,8,53,50,75,54,145,6,220,250,15,225,36,49,253,7,254,251,221,231,209,51,135,9,2,253,254,237,209,54,173,11,47,254,14,245,140,52,26,12,99,254,78,246,108,48,74,14,89,255,18,252,198,52,196,14,137,255,55,253,80,50,176,16,62,0,118,1,221,52,253,18,253,0,243,5,123,49,81,21,168,1,248,9,30,54,218,23,78,2,223,13,231,50,83,25,166,2,244,15,245,52,41,30,169,3,7,22,157,50,95,36,189,4,136,28,146,53,31,45,252,5,5,36,47,49,102,59,146,7,147,45,9,59,4,6,91,250,4,222,224,58,29,9,192,252,113,236,191,56,207,9,45,253,0,239,100,57,127,12,147,254,107,247,22,60,232,13,49,255,33,251,53,55,120,15,206,255,212,254,254,58,140,16,50,0,42,1,252,55,216,18,242,0,174,5,254,57,75,21,166,1,238,9,202,59,195,23,72,2,190,13,249,55,232,26,0,3,15,18,212,58,9,30,162,3,226,21,70,56,210,36,207,4,245,28,27,60,13,38,0,5,26,30,232,57,191,55,52,7,94,43,32,53,107,97,109,10,195,62,12,64,177,7,198,251,139,230,177,65,16,11,223,253,45,243,97,61,27,11,229,253,80,243,232,62,8,13,209,254,223,248,0,64,123,15,207,255,218,254,44,66,227,17,165,0,224,3,95,61,247,17,171,0,6,4,94,63,72,21,165,1,233,9,192,65,238,24,143,2,105,15,129,61,229,27,53,3,80,19,198,63,45,29,120,3,223,20,227,64,176,33,76,4,222,25,132,66,178,40,99,5,111,32,33,62,41,46,29,6,207,36,238,65,98,57,95,7,96,44,131,64,134,81,102,9,147,56,222,70,35,8,25,252,131,232,201,75,106,12,137,254,47,247,100,68,98,13,248,254,203,249,86,78,187,15,231,255,105,255,149,70,153,16,54,0,70,1,8,74,202,19,58,1,98,7,47,69,26,21,153,1,157,9,123,77,48,24,98,2,92,14,30,70,102,27,27,3,176,18,70,83,197,30,198,3,184,22,246,69,73,36,186,4,115,28,200,74,74,36,186,4,116,28,37,80,117,44,230,5,129,35,155,70,149,56,74,7,226,43,31,78,218,69,129,8,52,51,154,73,252,127,0,12,62,72,61,42,81,112,63,11,181,67,0,80,225,10,198,253,153,242,153,73,194,25,191,2,139,16,81,24,245,28,108,3,156,20,51,67,204,40,103,5,133,32,122,84,245,4,61,249,74,215,143,82,71,17,113,0,171,2,40,44,20,6,106,250,95,222,61,74,20,50,150,6,164,39,215,67,194,9,37,253,210,238,194,69,225,18,244,0,192,5,10,39,194,9,37,253,210,238,122,68,184,30,196,3,170,22,174,55,92,7,133,251,5,229,20,62,81,12,125,254,233,246,61,26,10,7,67,251,121,227,10,71,225,78,53,9,109,55,102,70,215,11,67,254,138,245,71,65,225,22,16,2,109,12,143,34,174,15,226,255,76,255,20,62,10,35,134,4,60,27,102,70,112,5,198,249,129,218,71,65,0,16,0,0,0,0,0,32,143,2,108,245,79,192,133,59,102,54,16,7,132,42,174,55,40,12,106,254,116,246,10,55,61,18,193,0,141,4,30,21,143,10,154,253,143,241,122,52,153,25,182,2,84,16,163,48,133,3,67,247,100,203,163,48,102,10,131,253,7,241,184,14,143,2,108,245,79,192,153,57,215,91,22,10,183,60,225,74,153,9,13,253,62,238,184,78,215,19,62,1,121,7,225,26,0,16,0,0,0,0,0,80,112,33,65,4,156,25,204,76,225,2,26,246,105,196,61,74,163,16,58,0,91,1,184,30,40,8,29,252,151,232,204,44,0,48,87,6,43,38,20,62,194,5,26,250,126,220,112,61,20,18,180,0,62,4,215,35,153,5,240,249,131,219,184,62,92,27,25,3,164,18,235,57,225,2,26,246,105,196,225,58,204,8,140,252,55,235,215,19,204,4,12,249,38,214,215,51,174,67,83,8,27,50,163,64,30,9,193,252,118,236,225,58,184,22,6,2,46,12,92,15,102,14,100,255,86,252,174,55,153,33,72,4,198,25,235,65,10,3,106,246,74,198,225,58,225,14,149,255,122,253,174,23,102,2,12,245,17,190,122,36,40,36,180,4,83,28,215,51,225,6,33,251,172,226,215,51,194,13,33,255,193,250,153,9,174,7,196,251,127,230,204,44,153,21,187,1,108,10,245,40,225,2,26,246,105,196,112,45,122,12,145,254,92,247,194,5,10,3,106,246,74,198,0,64,248,65,226,67,190,69,142,71,82,73,12,75,188,76,98,78,0,80,150,81,35,83,170,84,42,86,163,87,22,89,130,90,234,91,76,93,168,94,0,96,83,97,161,98,236,99,49,101,115,102,177,103,235,104,34,106,85,107,132,108,177,109,218,110,0,112,35,113,67,114,97,115,123,116,147,117,169,118,188,119,204,120,218,121,230,122,239,123,247,124,252,125,255,126,255,127,255,127,61,10,63,10,69,10,78,10,91,10,108,10,129,10,153,10,181,10,212,10,248,10,31,11,74,11,120,11,170,11,224,11,25,12,86,12,151,12,219,12,35,13,110,13,189,13,15,14,101,14,190,14,27,15,123,15,223,15,70,16,176,16,30,17,143,17,3,18,123,18,245,18,115,19,244,19,120,20,0,21,138,21,23,22,168,22,59,23,209,23,106,24,6,25,165,25,70,26,234,26,145,27,59,28,231,28,149,29,70,30,250,30,176,31,104,32,35,33,224,33,159,34,97,35,36,36,234,36,178,37,124,38,71,39,21,40,228,40,181,41,136,42,93,43,51,44,11,45,228,45,191,46,155,47,121,48,88,49,56,50,26,51,252,51,224,52,196,53,170,54,145,55,120,56,96,57,73,58,51,59,29,60,8,61,243,61,223,62,203,63,184,64,165,65,146,66,127,67,108,68,90,69,71,70,52,71,33,72,14,73,251,73,231,74,211,75,191,76,170,77,149,78,126,79,104,80,80,81,56,82,31,83,5,84,234,84,207,85,178,86,148,87,116,88,84,89,50,90,15,91,235,91,197,92,157,93,117,94,74,95,30,96,240,96,192,97,143,98,91,99,38,100,239,100,181,101,122,102,60,103,253,103,187,104,119,105,48,106,232,106,156,107,79,108,255,108,172,109,87,110,255,110,165,111,71,112,231,112,133,113,31,114,183,114,75,115,221,115,108,116,248,116,129,117,6,118,137,118,8,119,133,119,254,119,116,120,230,120,86,121,194,121,42,122,144,122,242,122,80,123,171,123,3,124,87,124,167,124,244,124,62,125,132,125,198,125,5,126,64,126,120,126,172,126,220,126,9,127,49,127,87,127,120,127,150,127,176,127,199,127,217,127,232,127,243,127,251,127,255,127,255,127,229,127,153,127,25,127,103,126,129,125],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);allocate([106,124,33,123,167,121,252,119,34,118,24,116,223,113,122,111,231,108,41,106,65,103,47,100,245,96,149,93,15,90,101,86,153,82,171,78,158,74,116,70,45,66,204,61,82,57,193,52,27,48,98,43,151,38,189,33,213,28,226,23,230,18,226,13,216,8,203,3,61,10,64,10,73,10,88,10,108,10,135,10,167,10,205,10,249,10,43,11,99,11,160,11,227,11,44,12,122,12,207,12,40,13,136,13,237,13,87,14,199,14,60,15,183,15,55,16,189,16,71,17,215,17,108,18,6,19,165,19,73,20,242,20,159,21,82,22,9,23,196,23,133,24,73,25,18,26,224,26,177,27,135,28,97,29,62,30,32,31,5,32,238,32,219,33,203,34,191,35,182,36,176,37,174,38,174,39,177,40,184,41,193,42,204,43,218,44,235,45,254,46,19,48,42,49,67,50,94,51,123,52,154,53,186,54,219,55,254,56,34,58,71,59,109,60,148,61,188,62,228,63,13,65,54,66,96,67,138,68,180,69,221,70,7,72,48,73,89,74,130,75,169,76,208,77,246,78,27,80,63,81,98,82,132,83,164,84,194,85,223,86,250,87,19,89,43,90,64,91,83,92,99,93,113,94,125,95,134,96,140,97,143,98,144,99,141,100,135,101,126,102,114,103,98,104,79,105,56,106,30,107,255,107,221,108,183,109,140,110,94,111,43,112,244,112,185,113,121,114,53,115,236,115,158,116,76,117,245,117,153,118,55,119,209,119,102,120,246,120,129,121,6,122,134,122,1,123,118,123,230,123,81,124,182,124,21,125,111,125,195,125,17,126,90,126,157,126,219,126,18,127,68,127,112,127,150,127,183,127,209,127,230,127,244,127,253,127,255,127,255,127,244,127,208,127,149,127,66,127,215,126,85,126,188,125,12,125,69,124,104,123,117,122,108,121,78,120,28,119,213,117,122,116,13,115,140,113,250,111,87,110,162,108,222,106,11,105,40,103,57,101,60,99,51,97,30,95,255,92,215,90,165,88,108,86,44,84,229,81,154,79,74,77,247,74,161,72,74,70,243,67,156,65,71,63,244,60,164,58,88,56,18,54,209,51,152,49,103,47,62,45,31,43,11,41,2,39,5,37,21,35,51,33,95,31,155,29,231,27,67,26,177,24,49,23,195,21,105,20,34,19,239,17,209,16,201,15,214,14,249,13,50,13,130,12,232,11,102,11,252,10,169,10,109,10,73,10,61,10,61,10,63,10,67,10,74,10,84,10,96,10,111,10,129,10,150,10,174,10,200,10,229,10,5,11,39,11,77,11,117,11,159,11,205,11,253,11,48,12,101,12,157,12,216,12,22,13,86,13,153,13,222,13,38,14,113,14,190,14,13,15,96,15,181,15,12,16,102,16,194,16,33,17,130,17,230,17,76,18,180,18,31,19,140,19,252,19,110,20,226,20,88,21,209,21,76,22,201,22,72,23,202,23,77,24,211,24,91,25,229,25,113,26,254,26,142,27,32,28,180,28,74,29,225,29,123,30,22,31,179,31,82,32,242,32,149,33,57,34,222,34,133,35,46,36,216,36,132,37,50,38,224,38,145,39,66,40,245,40,169,41,95,42,22,43,206,43,135,44,66,45,253,45,186,46,120,47,54,48,246,48,183,49,120,50,59,51,254,51,194,52,135,53,77,54,19,55,218,55,161,56,106,57,50,58,252,58,197,59,144,60,90,61,37,62,240,62,188,63,136,64,84,65,32,66,236,66,185,67,133,68,82,69,30,70,235,70,183,71,132,72,80,73,28,74,231,74,179,75,126,76,73,77,19,78,221,78,166,79,111,80,56,81,0,82,199,82,142,83,84,84,25,85,221,85,161,86,100,87,38,88,231,88,167,89,103,90,37,91,226,91,158,92,89,93,19,94,204,94,131,95,57,96,238,96,162,97,84,98,5,99,181,99,99,100,15,101,186,101,100,102,12,103,178,103,87,104,250,104,155,105,59,106,217,106,117,107,16,108,168,108,63,109,211,109,102,110,247,110,134,111,19,112,158,112,39,113,174,113,50,114,181,114,53,115,179,115,47,116,169,116,33,117,150,117,9,118,122,118,232,118,84,119,190,119,37,120,138,120,236,120,76,121,170,121,5,122,94,122,180,122,7,123,88,123,167,123,242,123,60,124,130,124,198,124,8,125,71,125,131,125,188,125,243,125,39,126,89,126,136,126,180,126,221,126,4,127,40,127,73,127,103,127,131,127,156,127,178,127,197,127,214,127,228,127,239,127,247,127,253,127,255,127,255,127,97,125,160,117,15,105,48,88,181,67,116,44,98,19,68,101,99,111,100,101,114,0,101,110,99,111,100,101,114,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_memmove"]=_memmove;Module["_memset"]=_memset;function _abort(){Module["abort"]()}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(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)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2]=ret}return ret}function _pthread_self(){return 0}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function sa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function ta(a){a=a|0;B=a}function ua(){return B|0}function va(){var a=0,b=0;b=i;i=i+16|0;a=b;c[a>>2]=0;Db(a,31756)|0;i=b;return c[a>>2]|0}function wa(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Eb(d);i=b;return}function xa(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;Ea(a,(e|0)==0?(d[b>>0]|0)>>>3&15:15,b+1|0,c,2)|0;return}function ya(a){a=a|0;var b=0;b=Je(8)|0;Hb(b,b+4|0,a)|0;return b|0}function za(a){a=a|0;Ib(a,a+4|0);Ke(a);return}function Aa(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0;h=i;i=i+16|0;j=h;c[j>>2]=e;f=(Jb(c[b>>2]|0,c[b+4>>2]|0,e,f,g,j,3)|0)<<16>>16;a[g>>0]=d[g>>0]|0|4;i=h;return f|0}function Ba(a){a=a|0;if(!a)a=-1;else{b[a>>1]=4096;a=0}return a|0}function Ca(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=c[h>>2]|0;q=g<<16>>16>0;if(q){i=0;j=0;do{l=b[e+(i<<1)>>1]|0;l=Z(l,l)|0;if((l|0)!=1073741824){k=(l<<1)+j|0;if((l^j|0)>0&(k^j|0)<0){c[h>>2]=1;j=(j>>>31)+2147483647|0}else j=k}else{c[h>>2]=1;j=2147483647}i=i+1|0}while((i&65535)<<16>>16!=g<<16>>16);if((j|0)==2147483647){c[h>>2]=m;l=0;k=0;do{j=b[e+(l<<1)>>1]>>2;j=Z(j,j)|0;if((j|0)!=1073741824){i=(j<<1)+k|0;if((j^k|0)>0&(i^k|0)<0){c[h>>2]=1;k=(k>>>31)+2147483647|0}else k=i}else{c[h>>2]=1;k=2147483647}l=l+1|0}while((l&65535)<<16>>16!=g<<16>>16)}else p=8}else{j=0;p=8}if((p|0)==8)k=j>>4;if(!k){b[a>>1]=0;return}o=((pe(k)|0)&65535)+65535|0;j=o<<16>>16;if((o&65535)<<16>>16>0){i=k<>j|0)==(k|0))k=i;else k=k>>31^2147483647}else{j=0-j<<16;if((j|0)<2031616)k=k>>(j>>16);else k=0}n=Ce(k,h)|0;i=c[h>>2]|0;if(q){j=0;k=0;do{m=b[d+(j<<1)>>1]|0;m=Z(m,m)|0;if((m|0)!=1073741824){l=(m<<1)+k|0;if((m^k|0)>0&(l^k|0)<0){c[h>>2]=1;k=(k>>>31)+2147483647|0}else k=l}else{c[h>>2]=1;k=2147483647}j=j+1|0}while((j&65535)<<16>>16!=g<<16>>16);if((k|0)==2147483647){c[h>>2]=i;m=0;k=0;do{l=b[d+(m<<1)>>1]>>2;l=Z(l,l)|0;if((l|0)!=1073741824){j=(l<<1)+k|0;if((l^k|0)>0&(j^k|0)<0){c[h>>2]=1;k=(k>>>31)+2147483647|0}else k=j}else{c[h>>2]=1;k=2147483647}m=m+1|0}while((m&65535)<<16>>16!=g<<16>>16)}else p=29}else{k=0;p=29}if((p|0)==29)k=k>>4;if(!k)l=0;else{j=(pe(k)|0)<<16>>16;i=o-j|0;l=i&65535;k=(Td(n,Ce(k<>16;j=k<<7;i=i<<16>>16;if(l<<16>>16>0)i=l<<16>>16<31?j>>i:0;else{p=0-i<<16>>16;i=j<>p|0)==(j|0)?i:k>>24^2147483647}l=(Z(((ce(i,h)|0)<<9)+32768>>16,32767-(f&65535)<<16>>16)|0)>>>15<<16>>16}i=b[a>>1]|0;if(q){k=f<<16>>16;j=0;while(1){f=((Z(i<<16>>16,k)|0)>>>15&65535)+l|0;i=f&65535;b[e>>1]=(Z(b[e>>1]|0,f<<16>>16)|0)>>>12;j=j+1<<16>>16;if(j<<16>>16>=g<<16>>16)break;else e=e+2|0}}b[a>>1]=i;return}function Da(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=c[f>>2]|0;g=e<<16>>16>0;if(g){j=0;h=0;do{l=b[d+(j<<1)>>1]|0;l=Z(l,l)|0;if((l|0)!=1073741824){k=(l<<1)+h|0;if((l^h|0)>0&(k^h|0)<0){c[f>>2]=1;h=(h>>>31)+2147483647|0}else h=k}else{c[f>>2]=1;h=2147483647}j=j+1|0}while((j&65535)<<16>>16!=e<<16>>16);if((h|0)==2147483647){c[f>>2]=i;l=0;i=0;do{k=b[d+(l<<1)>>1]>>2;k=Z(k,k)|0;if((k|0)!=1073741824){j=(k<<1)+i|0;if((k^i|0)>0&(j^i|0)<0){c[f>>2]=1;i=(i>>>31)+2147483647|0}else i=j}else{c[f>>2]=1;i=2147483647}l=l+1|0}while((l&65535)<<16>>16!=e<<16>>16)}else o=8}else{h=0;o=8}if((o|0)==8)i=h>>4;if(!i)return;n=((pe(i)|0)&65535)+65535|0;k=n<<16>>16;if((n&65535)<<16>>16>0){j=i<>k|0)==(i|0))i=j;else i=i>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)i=i>>(k>>16);else i=0}m=Ce(i,f)|0;i=c[f>>2]|0;if(g){j=0;h=0;do{l=b[a+(j<<1)>>1]|0;l=Z(l,l)|0;if((l|0)!=1073741824){k=(l<<1)+h|0;if((l^h|0)>0&(k^h|0)<0){c[f>>2]=1;h=(h>>>31)+2147483647|0}else h=k}else{c[f>>2]=1;h=2147483647}j=j+1|0}while((j&65535)<<16>>16!=e<<16>>16);if((h|0)==2147483647){c[f>>2]=i;i=0;j=0;do{l=b[a+(i<<1)>>1]>>2;l=Z(l,l)|0;if((l|0)!=1073741824){k=(l<<1)+j|0;if((l^j|0)>0&(k^j|0)<0){c[f>>2]=1;j=(j>>>31)+2147483647|0}else j=k}else{c[f>>2]=1;j=2147483647}i=i+1|0}while((i&65535)<<16>>16!=e<<16>>16)}else o=28}else{h=0;o=28}if((o|0)==28)j=h>>4;if(!j)g=0;else{l=pe(j)|0;k=l<<16>>16;if(l<<16>>16>0){i=j<>k|0)==(j|0))j=i;else j=j>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)j=j>>(k>>16);else j=0}i=n-(l&65535)|0;k=i&65535;h=(Td(m,Ce(j,f)|0)|0)<<16>>16;g=h<<7;i=i<<16>>16;if(k<<16>>16>0)g=k<<16>>16<31?g>>i:0;else{n=0-i<<16>>16;a=g<>n|0)==(g|0)?a:h>>24^2147483647}g=ce(g,f)|0;if((g|0)>4194303)g=2147483647;else g=(g|0)<-4194304?-2147483648:g<<9;g=Ce(g,f)|0}h=(e&65535)+65535&65535;if(h<<16>>16<=-1)return;l=g<<16>>16;k=e+-1<<16>>16<<16>>16;while(1){i=d+(k<<1)|0;g=Z(b[i>>1]|0,l)|0;do if((g|0)!=1073741824){j=g<<1;if((j|0)<=268435455)if((j|0)<-268435456){b[i>>1]=-32768;break}else{b[i>>1]=g>>>12;break}else o=52}else{c[f>>2]=1;o=52}while(0);if((o|0)==52){o=0;b[i>>1]=32767}h=h+-1<<16>>16;if(h<<16>>16<=-1)break;else k=k+-1|0}return}function Ea(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+496|0;k=l;j=(g|0)==2;do if(!(j&1|(g|0)==4)){if(g){a=-1;i=l;return a|0}j=b[e>>1]|0;d=e+490|0;g=e+2|0;h=0;while(1){b[k+(h<<1)>>1]=b[g>>1]|0;h=h+1|0;if((h|0)==244)break;else g=g+2|0}h=j<<16>>16;if(j<<16>>16==7){g=492;d=c[a+1760>>2]|0;break}else{g=492;d=b[d>>1]|0;break}}else{h=a+1168|0;if(j){Gb(d,e,k,h);h=604}else{pb(d,e,k,h);h=3436}g=b[h+(d<<1)>>1]|0;do if(d>>>0>=8){if((d|0)==8){d=b[k+76>>1]<<2|(b[k+74>>1]<<1|b[k+72>>1]);h=(b[k+70>>1]|0)==0?4:5;break}if(d>>>0<15){a=-1;i=l;return a|0}else{d=c[a+1760>>2]|0;h=7;break}}else h=0;while(0);if(g<<16>>16==-1){a=-1;i=l;return a|0}}while(0);Fb(a,d,k,h,f);c[a+1760>>2]=d;a=g;i=l;return a|0}function Fa(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;r=t+20|0;s=t;h=r;g=h+20|0;do{b[h>>1]=b[a>>1]|0;h=h+2|0;a=a+2|0}while((h|0)<(g|0));a=b[r+18>>1]|0;q=(a&65535)-((a&65535)>>>15&65535)|0;a:do if(((q<<16>>31^q)&65535)<<16>>16<=4095){g=9;q=9;while(1){a=a<<16>>16;a=(a<<19>>19|0)==(a|0)?a<<3:a>>>15^32767;p=d+(g<<1)|0;b[p>>1]=a;a=a<<16>>16;a=Z(a,a)|0;if((a|0)==1073741824){c[f>>2]=1;h=2147483647}else h=a<<1;a=2147483647-h|0;if((a&h|0)<0){c[f>>2]=1;a=2147483647}n=pe(a)|0;o=15-(n&65535)&65535;j=n<<16>>16;if(n<<16>>16>0){h=a<>j|0)!=(a|0))h=a>>31^2147483647}else{h=0-j<<16;if((h|0)<2031616)h=a>>(h>>16);else h=0}h=Td(16384,Ce(h,f)|0)|0;do if(q<<16>>16>0){n=g+-1|0;k=h<<16>>16;l=q<<16>>16;m=0;while(1){g=e[r+(m<<1)>>1]|0;a=g<<16;j=Z(b[r+(n-m<<1)>>1]|0,b[p>>1]|0)|0;if((j|0)==1073741824){c[f>>2]=1;h=2147483647}else h=j<<1;j=a-h|0;if(((j^a)&(h^a)|0)<0){c[f>>2]=1;j=(g>>>15)+2147483647|0}j=Z((Ce(j,f)|0)<<16>>16,k)|0;if((j|0)==1073741824){c[f>>2]=1;j=2147483647}else j=j<<1;j=ge(j,o,f)|0;h=j-(j>>>31)|0;if((h>>31^h|0)>32767){j=24;break}b[s+(m<<1)>>1]=j;m=m+1|0;if((l|0)<=(m|0)){j=26;break}}if((j|0)==24){j=0;h=d;g=h+20|0;do{b[h>>1]=0;h=h+2|0}while((h|0)<(g|0));a=10}else if((j|0)==26){j=0;if(q<<16>>16>0)a=q;else{j=28;break}}h=a+-1<<16>>16;Oe(r|0,s|0,((h&65535)<<1)+2|0)|0;g=h<<16>>16}else j=28;while(0);if((j|0)==28){a=q+-1<<16>>16;if(a<<16>>16>-1){g=a<<16>>16;h=32767}else break}a=b[r+(g<<1)>>1]|0;q=(a&65535)-((a&65535)>>>15&65535)|0;if(((q<<16>>31^q)&65535)<<16>>16>4095)break a;else q=h}i=t;return}while(0);h=d;g=h+20|0;do{b[h>>1]=0;h=h+2|0}while((h|0)<(g|0));i=t;return}function Ga(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if(b<<16>>16<=0){a=0;return a|0}e=c[a>>2]|0;f=0;d=0;do{h=e&1;d=h|d<<1&131070;g=e>>1;e=(h|0)==(e>>>28&1|0)?g:g|1073741824;f=f+1<<16>>16}while(f<<16>>16>16);c[a>>2]=e;h=d&65535;return h|0}function Ha(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;g=d;f=g+80|0;do{b[g>>1]=0;g=g+2|0}while((g|0)<(f|0));f=0;g=c[a>>2]|0;do{k=g&1;j=g>>1;j=(k|0)==(g>>>28&1|0)?j:j|1073741824;h=j&1;i=j>>1;c[a>>2]=(h|0)==(j>>>28&1|0)?i:i|1073741824;h=Rd((Z(k<<1|h,1310720)|0)>>>17&65535,f,e)|0;k=c[a>>2]|0;i=k&1;j=k>>1;g=(i|0)==(k>>>28&1|0)?j:j|1073741824;c[a>>2]=g;b[d+(h<<16>>16<<1)>>1]=((i&65535)<<13&65535)+-4096<<16>>16;f=f+1<<16>>16}while(f<<16>>16<10);return}function Ia(a,d,f,g,h,i){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;j=b[a>>1]|0;if((j*31821|0)==1073741824){c[i>>2]=1;k=1073741823}else k=j*63642>>1;j=k+13849|0;if((k|0)>-1&(j^k|0)<0){c[i>>2]=1;j=(k>>>31)+2147483647|0}b[a>>1]=j;if(d<<16>>16<=0)return;k=0;j=h+((j&127)<<1)|0;while(1){b[g+(k<<1)>>1]=(-65536<>1]>>>16^65535)&e[j>>1];k=k+1|0;if((k&65535)<<16>>16==d<<16>>16)break;else j=j+2|0}return}function Ja(a){a=a|0;var c=0;if(!a){c=-1;return c|0}c=a+122|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function Ka(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=159;j=0;while(1){m=b[f+(k<<1)>>1]|0;m=Z(m,m)|0;m=(m|0)==1073741824?2147483647:m<<1;i=m+j|0;if((m^j|0)>-1&(i^j|0)<0){c[h>>2]=1;j=(j>>>31)+2147483647|0}else j=i;if((k|0)>0)k=k+-1|0;else{k=j;break}}h=k>>>14&65535;j=32767;i=59;while(1){m=b[a+(i<<1)>>1]|0;j=m<<16>>16>16?m:j;if((i|0)>0)i=i+-1|0;else break}m=(k|0)>536870911?32767:h;h=j<<16>>16;i=h<<20>>16;k=j<<16>>16>0?32767:-32768;f=55;j=b[a>>1]|0;while(1){l=b[a+(f<<1)>>1]|0;j=j<<16>>16>16?l:j;if((f|0)>1)f=f+-1|0;else break}f=b[a+80>>1]|0;l=b[a+82>>1]|0;f=f<<16>>16>16?l:f;l=b[a+84>>1]|0;f=f<<16>>16>16?l:f;l=b[a+86>>1]|0;f=f<<16>>16>16?l:f;l=b[a+88>>1]|0;f=f<<16>>16>16?l:f;l=b[a+90>>1]|0;f=f<<16>>16>16?l:f;l=b[a+92>>1]|0;f=f<<16>>16>16?l:f;l=b[a+94>>1]|0;f=f<<16>>16>16?l:f;l=b[a+96>>1]|0;f=f<<16>>16>16?l:f;l=b[a+98>>1]|0;f=f<<16>>16>16?l:f;l=b[a+100>>1]|0;f=f<<16>>16>16?l:f;l=b[a+102>>1]|0;f=f<<16>>16>16?l:f;l=b[a+104>>1]|0;f=f<<16>>16>16?l:f;l=b[a+106>>1]|0;f=f<<16>>16>16?l:f;l=b[a+108>>1]|0;f=f<<16>>16>16?l:f;l=b[a+110>>1]|0;f=f<<16>>16>16?l:f;l=b[a+112>>1]|0;f=f<<16>>16>16?l:f;l=b[a+114>>1]|0;f=f<<16>>16>16?l:f;l=b[a+116>>1]|0;f=f<<16>>16>16?l:f;l=a+118|0;o=b[l>>1]|0;do if((m+-21&65535)<17557&j<<16>>16>20?((m<<16>>16|0)<(((h<<4|0)==(i|0)?i:k)|0)?1:(f<<16>>16>16?o:f)<<16>>16<1953):0){j=a+120|0;i=b[j>>1]|0;if(i<<16>>16>29){b[j>>1]=30;f=j;k=1;break}else{k=(i&65535)+1&65535;b[j>>1]=k;f=j;k=k<<16>>16>1&1;break}}else n=14;while(0);if((n|0)==14){f=a+120|0;b[f>>1]=0;k=0}j=0;do{o=j;j=j+1|0;b[a+(o<<1)>>1]=b[a+(j<<1)>>1]|0}while((j|0)!=59);b[l>>1]=m;j=b[f>>1]|0;j=j<<16>>16>15?16383:j<<16>>16>8?15565:13926;i=Zd(d+8|0,5)|0;if((b[f>>1]|0)>20){if(((Zd(d,9)|0)<<16>>16|0)>(j|0))n=20}else if((i<<16>>16|0)>(j|0))n=20;if((n|0)==20){b[g>>1]=0;return k|0}i=(e[g>>1]|0)+1&65535;if(i<<16>>16>10){b[g>>1]=10;return k|0}else{b[g>>1]=i;return k|0}return 0}function La(a){a=a|0;var c=0;if(!a){c=-1;return c|0}c=a+18|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function Ma(a,d,f,g,h,i,j,k,l,m,n,o){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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;y=a+2|0;b[a>>1]=b[y>>1]|0;z=a+4|0;b[y>>1]=b[z>>1]|0;A=a+6|0;b[z>>1]=b[A>>1]|0;B=a+8|0;b[A>>1]=b[B>>1]|0;C=a+10|0;b[B>>1]=b[C>>1]|0;D=a+12|0;b[C>>1]=b[D>>1]|0;b[D>>1]=f;t=0;x=0;do{p=h+(x<<1)|0;r=Ge(b[p>>1]|0,b[g+(x<<1)>>1]|0,o)|0;r=(r&65535)-((r&65535)>>>15&65535)|0;r=r<<16>>31^r;w=((qe(r&65535)|0)&65535)+65535|0;q=w<<16>>16;if((w&65535)<<16>>16<0){s=0-q<<16;if((s|0)<983040)u=r<<16>>16>>(s>>16)&65535;else u=0}else{s=r<<16>>16;r=s<>16>>q|0)==(s|0))u=r&65535;else u=(s>>>15^32767)&65535}v=qe(b[p>>1]|0)|0;r=b[p>>1]|0;q=v<<16>>16;if(v<<16>>16<0){s=0-q<<16;if((s|0)<983040)s=r<<16>>16>>(s>>16)&65535;else s=0}else{s=r<<16>>16;r=s<>16>>q|0)==(s|0))s=r&65535;else s=(s>>>15^32767)&65535}q=Td(u,s)|0;s=(w&65535)+2-(v&65535)|0;r=s&65535;do if(s&32768){if(r<<16>>16!=-32768){w=0-s|0;s=w<<16>>16;if((w&65535)<<16>>16<0){s=0-s<<16;if((s|0)>=983040){s=0;break}s=q<<16>>16>>(s>>16)&65535;break}}else s=32767;r=q<<16>>16;q=r<>16>>s|0)==(r|0))s=q&65535;else s=(r>>>15^32767)&65535}else s=De(q,r,o)|0;while(0);t=Rd(t,s,o)|0;x=x+1|0}while((x|0)!=10);s=t&65535;r=t<<16>>16>5325;t=a+14|0;if(r){h=(e[t>>1]|0)+1&65535;b[t>>1]=h;if(h<<16>>16>10)b[a+16>>1]=0}else b[t>>1]=0;switch(d|0){case 0:case 1:case 2:case 3:case 6:break;default:{D=a+16|0;o=f;f=b[D>>1]|0;f=f&65535;f=f+1|0;f=f&65535;b[D>>1]=f;return o|0}}u=(j|i)<<16>>16==0;v=m<<16>>16==0;w=d>>>0<3;t=s+(w&((v|(u&(k<<16>>16==0|l<<16>>16==0)|n<<16>>16<2))^1)?61030:62259)&65535;t=t<<16>>16>0?t:0;if(t<<16>>16<=2048){t=t<<16>>16;if((t<<18>>18|0)==(t|0))l=t<<2;else l=t>>>15^32767}else l=8192;k=a+16|0;n=r|(b[k>>1]|0)<40;t=b[z>>1]|0;if((t*6554|0)==1073741824){c[o>>2]=1;r=2147483647}else r=t*13108|0;t=b[A>>1]|0;s=t*6554|0;if((s|0)!=1073741824){t=(t*13108|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;t=(r>>>31)+2147483647|0}}else{c[o>>2]=1;t=2147483647}s=b[B>>1]|0;r=s*6554|0;if((r|0)!=1073741824){s=(s*13108|0)+t|0;if((r^t|0)>0&(s^t|0)<0){c[o>>2]=1;s=(t>>>31)+2147483647|0}}else{c[o>>2]=1;s=2147483647}t=b[C>>1]|0;r=t*6554|0;if((r|0)!=1073741824){t=(t*13108|0)+s|0;if((r^s|0)>0&(t^s|0)<0){c[o>>2]=1;r=(s>>>31)+2147483647|0}else r=t}else{c[o>>2]=1;r=2147483647}t=b[D>>1]|0;s=t*6554|0;if((s|0)!=1073741824){t=(t*13108|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;t=(r>>>31)+2147483647|0}}else{c[o>>2]=1;t=2147483647}r=Ce(t,o)|0;if(w&((u|v)^1)){t=b[a>>1]|0;if((t*4681|0)==1073741824){c[o>>2]=1;r=2147483647}else r=t*9362|0;t=b[y>>1]|0;s=t*4681|0;if((s|0)!=1073741824){t=(t*9362|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;r=(r>>>31)+2147483647|0}else r=t}else{c[o>>2]=1;r=2147483647}t=b[z>>1]|0;s=t*4681|0;if((s|0)!=1073741824){t=(t*9362|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;r=(r>>>31)+2147483647|0}else r=t}else{c[o>>2]=1;r=2147483647}t=b[A>>1]|0;s=t*4681|0;if((s|0)!=1073741824){t=(t*9362|0)+r|0;if((s^r|0)>0&(t^r|0)<0){c[o>>2]=1;t=(r>>>31)+2147483647|0}}else{c[o>>2]=1;t=2147483647}s=b[B>>1]|0;r=s*4681|0;if((r|0)!=1073741824){s=(s*9362|0)+t|0;if((r^t|0)>0&(s^t|0)<0){c[o>>2]=1;t=(t>>>31)+2147483647|0}else t=s}else{c[o>>2]=1;t=2147483647}s=b[C>>1]|0;r=s*4681|0;if((r|0)!=1073741824){s=(s*9362|0)+t|0;if((r^t|0)>0&(s^t|0)<0){c[o>>2]=1;s=(t>>>31)+2147483647|0}}else{c[o>>2]=1;s=2147483647}r=b[D>>1]|0;p=r*4681|0;if((p|0)!=1073741824){q=(r*9362|0)+s|0;if((p^s|0)>0&(q^s|0)<0){c[o>>2]=1;q=(s>>>31)+2147483647|0}}else{c[o>>2]=1;q=2147483647}r=Ce(q,o)|0}t=n?8192:l<<16>>16;p=Z(t,f<<16>>16)|0;if((p|0)==1073741824){c[o>>2]=1;s=2147483647}else s=p<<1;r=r<<16>>16;q=r<<13;if((q|0)!=1073741824){p=s+(r<<14)|0;if((s^q|0)>0&(p^s|0)<0){c[o>>2]=1;s=(s>>>31)+2147483647|0}else s=p}else{c[o>>2]=1;s=2147483647}p=Z(r,t)|0;if((p|0)==1073741824){c[o>>2]=1;q=2147483647}else q=p<<1;p=s-q|0;if(((p^s)&(q^s)|0)<0){c[o>>2]=1;p=(s>>>31)+2147483647|0}D=p<<2;f=k;o=Ce((D>>2|0)==(p|0)?D:p>>31^2147483647,o)|0;D=b[f>>1]|0;D=D&65535;D=D+1|0;D=D&65535;b[f>>1]=D;return o|0}function Na(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;f=c;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));f=0;do{i=b[a+(f<<1)>>1]|0;g=((i&8)<<10&65535^8192)+-4096<<16>>16;h=f<<16;i=((b[d+((i&7)<<1)>>1]|0)*327680|0)+h>>16;b[c+(i<<1)>>1]=g;h=((b[d+((e[a+(f+5<<1)>>1]&7)<<1)>>1]|0)*327680|0)+h>>16;if((h|0)<(i|0))g=0-(g&65535)&65535;i=c+(h<<1)|0;b[i>>1]=(e[i>>1]|0)+(g&65535);f=f+1|0}while((f|0)!=5);return}function Oa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=c<<16>>16;e=(f<<1&2|1)+((f>>>1&7)*5|0)|0;c=f>>>4&3;c=((f>>>6&7)*5|0)+((c|0)==3?4:c)|0;f=d;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));a=a<<16>>16;b[d+(e<<1)>>1]=(0-(a&1)&16383)+57344;b[d+(c<<1)>>1]=(0-(a>>>1&1)&16383)+57344;return}function Pa(a,c,d,f,g,h){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;h=d<<16>>16;j=h>>>3;a=a<<16>>16;a=((a<<17>>17|0)==(a|0)?a<<1:a>>>15^32767)+(j&8)<<16;j=(e[f+(a+65536>>16<<1)>>1]|0)+((j&7)*5|0)|0;d=c<<16>>16;i=(0-(d&1)&16383)+57344&65535;a=g+((e[f+(a>>16<<1)>>1]|0)+((h&7)*5|0)<<16>>16<<1)|0;c=g;h=c+80|0;do{b[c>>1]=0;c=c+2|0}while((c|0)<(h|0));b[a>>1]=i;b[g+(j<<16>>16<<1)>>1]=(0-(d>>>1&1)&16383)+57344;return}function Qa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;c=c<<16>>16;e=(c&7)*5|0;f=(c>>>2&2|1)+((c>>>4&7)*5|0)|0;c=(c>>>6&2)+2+((c>>>8&7)*5|0)|0;g=d;h=g+80|0;do{b[g>>1]=0;g=g+2|0}while((g|0)<(h|0));a=a<<16>>16;b[d+(e<<1)>>1]=(0-(a&1)&16383)+57344;b[d+(f<<1)>>1]=(0-(a>>>1&1)&16383)+57344;b[d+(c<<1)>>1]=(0-(a>>>2&1)&16383)+57344;return}function Ra(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;c=c<<16>>16;h=b[d+((c&7)<<1)>>1]|0;i=b[d+((c>>>3&7)<<1)>>1]|0;g=b[d+((c>>>6&7)<<1)>>1]|0;d=(c>>>9&1)+3+((b[d+((c>>>10&7)<<1)>>1]|0)*5|0)|0;c=e;f=c+80|0;do{b[c>>1]=0;c=c+2|0}while((c|0)<(f|0));a=a<<16>>16;b[e+(h*327680>>16<<1)>>1]=(0-(a&1)&16383)+57344;b[e+((i*327680|0)+65536>>16<<1)>>1]=(0-(a>>>1&1)&16383)+57344;b[e+((g*327680|0)+131072>>16<<1)>>1]=(0-(a>>>2&1)&16383)+57344;b[e+(d<<16>>16<<1)>>1]=(0-(a>>>3&1)&16383)+57344;return}function Sa(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;p=q+16|0;o=q;j=d;h=j+80|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(h|0));h=b[a>>1]|0;b[p>>1]=h;b[p+2>>1]=b[a+2>>1]|0;b[p+4>>1]=b[a+4>>1]|0;b[p+6>>1]=b[a+6>>1]|0;m=b[a+8>>1]|0;Ta(m>>>3&65535,m&7,0,4,1,o,f);m=b[a+10>>1]|0;Ta(m>>>3&65535,m&7,2,6,5,o,f);m=b[a+12>>1]|0;g=m>>2;do if((g*25|0)!=1073741824){j=(Z(g,1638400)|0)+786432>>21;g=j*6554>>15;if((g|0)>32767){c[f>>2]=1;k=1;l=1;a=163835;n=6;break}a=(g<<16>>16)*5|0;k=g&1;if((a|0)==1073741824){c[f>>2]=1;l=0;a=65535}else{l=0;n=6}}else{c[f>>2]=1;k=0;g=0;l=0;j=0;a=0;n=6}while(0);if((n|0)==6)a=a&65535;n=j-a|0;k=k<<16>>16==0?n:4-n|0;n=k<<16>>16;b[o+6>>1]=Rd(((k<<17>>17|0)==(n|0)?k<<1:n>>>15^32767)&65535,m&1,f)|0;if(l){c[f>>2]=1;g=32767}n=g<<16>>16;b[o+14>>1]=((g<<17>>17|0)==(n|0)?g<<1:n>>>15^32767)+(m>>>1&1);g=0;while(1){h=h<<16>>16==0?8191:-8191;n=(b[o+(g<<1)>>1]<<2)+g<<16;j=n>>16;if((n|0)<2621440)b[d+(j<<1)>>1]=h;k=(b[o+(g+4<<1)>>1]<<2)+g<<16;a=k>>16;if((a|0)<(j|0))h=0-(h&65535)&65535;if((k|0)<2621440){n=d+(a<<1)|0;b[n>>1]=(e[n>>1]|0)+(h&65535)}g=g+1|0;if((g|0)==4)break;h=b[p+(g<<1)>>1]|0}i=q;return}function Ta(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=a<<16>>16>124?124:a;a=(k<<16>>16)*1311>>15;p=(a|0)>32767;if(!p){j=a<<16>>16;if((j*25|0)==1073741824){c[i>>2]=1;j=1073741823}else o=4}else{c[i>>2]=1;j=32767;o=4}if((o|0)==4)j=(j*50|0)>>>1;m=(k&65535)-j|0;j=(m<<16>>16)*6554>>15;n=(j|0)>32767;if(!n){k=j<<16>>16;if((k*5|0)==1073741824){c[i>>2]=1;l=1073741823}else o=9}else{c[i>>2]=1;k=32767;o=9}if((o|0)==9)l=(k*10|0)>>>1;m=m-l|0;o=m<<16>>16;k=d<<16>>16;l=k>>2;k=k-(l<<2)|0;b[h+(e<<16>>16<<1)>>1]=((m<<17>>17|0)==(o|0)?m<<1:o>>>15^32767)+(k&1);if(n){c[i>>2]=1;j=32767}e=j<<16>>16;b[h+(f<<16>>16<<1)>>1]=((j<<17>>17|0)==(e|0)?j<<1:e>>>15^32767)+(k<<16>>17);if(p){c[i>>2]=1;a=32767}f=a<<16>>16;b[h+(g<<16>>16<<1)>>1]=Rd(l&65535,((a<<17>>17|0)==(f|0)?a<<1:f>>>15^32767)&65535,i)|0;return}function Ua(a){a=a|0;var d=0,e=0,f=0,g=0;if(!a){g=-1;return g|0}Yd(a+1168|0);b[a+460>>1]=40;c[a+1164>>2]=0;d=a+646|0;e=a+1216|0;f=a+462|0;g=f+22|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));db(d,c[e>>2]|0)|0;mb(a+686|0)|0;ib(a+700|0)|0;La(a+608|0)|0;rb(a+626|0,c[e>>2]|0)|0;Ja(a+484|0)|0;tb(a+730|0)|0;eb(a+748|0)|0;Ud(a+714|0)|0;Va(a,0)|0;g=0;return g|0}function Va(a,d){a=a|0;d=d|0;var e=0,f=0;if(!a){a=-1;return a|0}c[a+388>>2]=a+308;Qe(a|0,0,308)|0;d=(d|0)!=8;if(d){e=a+412|0;f=e+20|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));b[a+392>>1]=3e4;b[a+394>>1]=26e3;b[a+396>>1]=21e3;b[a+398>>1]=15e3;b[a+400>>1]=8e3;b[a+402>>1]=0;b[a+404>>1]=-8e3;b[a+406>>1]=-15e3;b[a+408>>1]=-21e3;b[a+410>>1]=-26e3}b[a+432>>1]=0;b[a+434>>1]=40;c[a+1164>>2]=0;b[a+436>>1]=0;b[a+438>>1]=0;b[a+440>>1]=0;b[a+460>>1]=40;b[a+462>>1]=0;b[a+464>>1]=0;if(d){e=a+442|0;f=e+18|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));e=a+466|0;f=e+18|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));La(a+608|0)|0;f=a+1216|0;rb(a+626|0,c[f>>2]|0)|0;db(a+646|0,c[f>>2]|0)|0;mb(a+686|0)|0;ib(a+700|0)|0;Ud(a+714|0)|0}else{e=a+466|0;f=e+18|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));La(a+608|0)|0;db(a+646|0,c[a+1216>>2]|0)|0;mb(a+686|0)|0;ib(a+700|0)|0}Ja(a+484|0)|0;b[a+606>>1]=21845;tb(a+730|0)|0;if(!d){a=0;return a|0}eb(a+748|0)|0;a=0;return a|0}function Wa(d,f,g,h,j,k){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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,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,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,La=0,Ta=0,Ua=0,Wa=0,bb=0,db=0,eb=0,ib=0,mb=0,pb=0,rb=0,tb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0;Bb=i;i=i+336|0;r=Bb+236|0;q=Bb+216|0;zb=Bb+112|0;yb=Bb+12|0;mb=Bb+256|0;rb=Bb+136|0;pb=Bb+32|0;eb=Bb+8|0;ib=Bb+6|0;xb=Bb+4|0;tb=Bb+2|0;Ab=Bb;Ta=d+1164|0;Ua=d+748|0;Wa=hb(Ua,h,Ta)|0;if(Wa){Va(d,8)|0;fb(Ua,d+412|0,d+646|0,d+714|0,d+608|0,Wa,f,g,d+1168|0,j,k,Ta);Ab=d+666|0;me(Ab,d+392|0,10,Ta);sb(d+626|0,Ab,Ta);Ab=d+1156|0;c[Ab>>2]=Wa;i=Bb;return}switch(h|0){case 1:{l=1;x=6;break}case 2:case 7:{Ia(d+606|0,b[(c[d+1256>>2]|0)+(f<<1)>>1]|0,c[(c[d+1260>>2]|0)+(f<<2)>>2]|0,g,c[d+1276>>2]|0,Ta);x=9;break}case 3:{x=9;break}default:{l=0;x=6}}do if((x|0)==6){h=d+440|0;if((b[h>>1]|0)==6){b[h>>1]=5;Ja=0;La=0;break}else{b[h>>1]=0;Ja=0;La=0;break}}else if((x|0)==9){h=d+440|0;Ja=(e[h>>1]|0)+1&65535;b[h>>1]=Ja<<16>>16>6?6:Ja;Ja=1;La=1;l=0}while(0);Ea=d+1156|0;switch(c[Ea>>2]|0){case 1:{b[h>>1]=5;b[d+436>>1]=0;break}case 2:{b[h>>1]=5;b[d+436>>1]=1;break}default:{}}n=d+646|0;Fa=d+666|0;m=zb;o=Fa;p=m+20|0;do{a[m>>0]=a[o>>0]|0;m=m+1|0;o=o+1|0}while((m|0)<(p|0));Ga=(f|0)!=7;Ha=d+1168|0;if(Ga){ab(n,f,La,g,Ha,r,Ta);m=d+392|0;ae(m,r,k,Ta);g=g+6|0}else{cb(n,La,g,Ha,q,r,Ta);m=d+392|0;_d(m,q,r,k,Ta);g=g+10|0}o=r;p=m+20|0;do{b[m>>1]=b[o>>1]|0;m=m+2|0;o=o+2|0}while((m|0)<(p|0));Ca=f>>>0>1;B=f>>>0<4&1;Ba=(f|0)==5;Aa=Ba?10:5;Ba=Ba?19:9;E=d+434|0;F=143-Ba&65535;G=d+460|0;H=d+462|0;I=d+464|0;C=f>>>0>2;J=d+388|0;K=(f|0)==0;L=f>>>0<2;M=d+1244|0;N=d+432|0;O=f>>>0<6;P=d+1168|0;Q=(f|0)==6;R=La<<16>>16==0;S=d+714|0;T=d+686|0;U=d+436|0;V=d+700|0;W=(f|0)==7;X=d+482|0;Y=f>>>0<3;_=d+608|0;$=d+626|0;aa=d+438|0;ba=f>>>0<7;ca=d+730|0;D=Ja^1;da=l<<16>>16!=0;za=da?La^1:0;ea=d+442|0;fa=d+458|0;ga=d+412|0;ha=d+80|0;ia=d+1236|0;ja=d+1240|0;ka=d+468|0;la=d+466|0;ma=d+470|0;na=d+472|0;oa=d+474|0;pa=d+476|0;qa=d+478|0;ra=d+480|0;sa=d+444|0;ta=d+446|0;ua=d+448|0;va=d+450|0;wa=d+452|0;xa=d+454|0;ya=d+456|0;y=0;z=0;s=0;t=0;A=-1;while(1){A=(A<<16>>16)+1|0;p=A&65535;z=1-(z<<16>>16)|0;v=z&65535;q=Ca&s<<16>>16==80?0:s;u=g+2|0;r=b[g>>1]|0;a:do if(Ga){w=b[E>>1]|0;m=(w&65535)-Aa&65535;m=m<<16>>16<20?20:m;o=(m&65535)+Ba&65535;n=o<<16>>16>143;Ya(r,n?F:m,n?143:o,q,w,eb,ib,B,Ta);q=b[eb>>1]|0;b[G>>1]=q;if(Ja){r=b[E>>1]|0;if(r<<16>>16<143){r=(r&65535)+1&65535;b[E>>1]=r}b[eb>>1]=r;b[ib>>1]=0;if((b[H>>1]|0)!=0?!(C|(b[I>>1]|0)<5):0){b[eb>>1]=q;r=q;q=0}else q=0}else{r=q;q=b[ib>>1]|0}se(c[J>>2]|0,r,q,40,1,Ta);if(L){q=g+6|0;Pa(p,b[g+4>>1]|0,b[u>>1]|0,c[M>>2]|0,mb,Ta);g=b[N>>1]|0;w=g<<16>>16;r=w<<1;if((r|0)==(w<<17>>16|0)){o=K;break}o=K;r=g<<16>>16>0?32767:-32768;break}switch(f|0){case 2:{q=g+6|0;Oa(b[g+4>>1]|0,b[u>>1]|0,mb);g=b[N>>1]|0;w=g<<16>>16;r=w<<1;if((r|0)==(w<<17>>16|0)){o=K;break a}o=K;r=g<<16>>16>0?32767:-32768;break a}case 3:{q=g+6|0;Qa(b[g+4>>1]|0,b[u>>1]|0,mb);g=b[N>>1]|0;w=g<<16>>16;r=w<<1;if((r|0)==(w<<17>>16|0)){o=K;break a}o=K;r=g<<16>>16>0?32767:-32768;break a}default:{if(O){q=g+6|0;Ra(b[g+4>>1]|0,b[u>>1]|0,c[P>>2]|0,mb);g=b[N>>1]|0;w=g<<16>>16;r=w<<1;if((r|0)==(w<<17>>16|0)){o=K;break a}o=K;r=g<<16>>16>0?32767:-32768;break a}if(!Q){o=K;x=44;break a}Sa(u,mb,Ta);r=g+16|0;g=b[N>>1]|0;w=g<<16>>16;p=w<<1;if((p|0)==(w<<17>>16|0)){q=r;o=K;r=p;break a}q=r;o=K;r=g<<16>>16>0?32767:-32768;break a}}}else{Za(r,18,143,q,eb,ib,Ta);if(R?q<<16>>16==0|r<<16>>16<61:0){r=b[eb>>1]|0;q=b[ib>>1]|0}else{b[G>>1]=b[eb>>1]|0;r=b[E>>1]|0;b[eb>>1]=r;b[ib>>1]=0;q=0}se(c[J>>2]|0,r,q,40,0,Ta);o=0;x=44}while(0);if((x|0)==44){x=0;if(Ja)lb(T,b[h>>1]|0,xb,Ta);else b[xb>>1]=$a(f,b[u>>1]|0,c[ja>>2]|0)|0;nb(T,La,b[U>>1]|0,xb,Ta);Na(g+4|0,mb,c[P>>2]|0);r=g+24|0;g=b[xb>>1]|0;w=g<<16>>16;p=w<<1;if((p|0)==(w<<17>>16|0)){q=r;r=p}else{q=r;r=g<<16>>16>0?32767:-32768}}g=b[eb>>1]|0;b:do if(g<<16>>16<40){m=r<<16>>16;n=g;r=g<<16>>16;while(1){p=mb+(r<<1)|0;g=(Z(b[mb+(r-(n<<16>>16)<<1)>>1]|0,m)|0)>>15;if((g|0)>32767){c[Ta>>2]=1;g=32767}w=g&65535;b[Ab>>1]=w;b[p>>1]=Rd(b[p>>1]|0,w,Ta)|0;r=r+1|0;if((r&65535)<<16>>16==40)break b;n=b[eb>>1]|0}}while(0);c:do if(o){o=(z&65535|0)==0;if(o){g=q;p=t}else{g=q+2|0;p=b[q>>1]|0}if(R)Xa(S,f,p,mb,v,xb,tb,Ha,Ta);else{lb(T,b[h>>1]|0,xb,Ta);jb(V,S,b[h>>1]|0,tb,Ta)}nb(T,La,b[U>>1]|0,xb,Ta);kb(V,La,b[U>>1]|0,tb,Ta);q=b[xb>>1]|0;r=q<<16>>16>13017?13017:q;if(o)x=80;else w=p}else{g=q+2|0;r=b[q>>1]|0;switch(f|0){case 1:case 2:case 3:case 4:case 6:{if(R)Xa(S,f,r,mb,v,xb,tb,Ha,Ta);else{lb(T,b[h>>1]|0,xb,Ta);jb(V,S,b[h>>1]|0,tb,Ta)}nb(T,La,b[U>>1]|0,xb,Ta);kb(V,La,b[U>>1]|0,tb,Ta);q=b[xb>>1]|0;r=q<<16>>16>13017?13017:q;if(!Q){p=t;x=80;break c}if((b[E>>1]|0)<=45){p=t;x=80;break c}p=t;r=r<<16>>16>>>2&65535;x=80;break c}case 5:{if(Ja)lb(T,b[h>>1]|0,xb,Ta);else b[xb>>1]=$a(5,r,c[ja>>2]|0)|0;nb(T,La,b[U>>1]|0,xb,Ta);if(R)_a(S,5,b[g>>1]|0,mb,c[ia>>2]|0,tb,Ta);else jb(V,S,b[h>>1]|0,tb,Ta);kb(V,La,b[U>>1]|0,tb,Ta);r=b[xb>>1]|0;g=q+4|0;q=r;p=t;r=r<<16>>16>13017?13017:r;x=80;break c}default:{if(R)_a(S,f,r,mb,c[ia>>2]|0,tb,Ta);else jb(V,S,b[h>>1]|0,tb,Ta);kb(V,La,b[U>>1]|0,tb,Ta);r=b[xb>>1]|0;q=r;p=t;x=80;break c}}}while(0);if((x|0)==80){x=0;b[N>>1]=q<<16>>16>13017?13017:q;w=p}r=r<<16>>16;r=(r<<17>>17|0)==(r|0)?r<<1:r>>>15^32767;v=(r&65535)<<16>>16>16384;d:do if(v){u=r<<16>>16;if(W)q=0;else{q=0;while(1){r=(Z(b[(c[J>>2]|0)+(q<<1)>>1]|0,u)|0)>>15;if((r|0)>32767){c[Ta>>2]=1;r=32767}b[Ab>>1]=r;r=Z(b[xb>>1]|0,r<<16>>16)|0;if((r|0)==1073741824){c[Ta>>2]=1;r=2147483647}else r=r<<1;b[rb+(q<<1)>>1]=Ce(r,Ta)|0;q=q+1|0;if((q|0)==40)break d}}do{r=(Z(b[(c[J>>2]|0)+(q<<1)>>1]|0,u)|0)>>15;if((r|0)>32767){c[Ta>>2]=1;r=32767}b[Ab>>1]=r;r=Z(b[xb>>1]|0,r<<16>>16)|0;if((r|0)!=1073741824){r=r<<1;if((r|0)<0)r=~((r^-2)>>1);else x=88}else{c[Ta>>2]=1;r=2147483647;x=88}if((x|0)==88){x=0;r=r>>1}b[rb+(q<<1)>>1]=Ce(r,Ta)|0;q=q+1|0}while((q|0)!=40)}while(0);if(R){b[la>>1]=b[ka>>1]|0;b[ka>>1]=b[ma>>1]|0;b[ma>>1]=b[na>>1]|0;b[na>>1]=b[oa>>1]|0;b[oa>>1]=b[pa>>1]|0;b[pa>>1]=b[qa>>1]|0;b[qa>>1]=b[ra>>1]|0;b[ra>>1]=b[X>>1]|0;b[X>>1]=b[xb>>1]|0}if((Ja|(b[U>>1]|0)!=0?Y&(b[H>>1]|0)!=0:0)?(bb=b[xb>>1]|0,bb<<16>>16>12288):0){x=(((bb<<16>>16)+118784|0)>>>1)+12288&65535;b[xb>>1]=x<<16>>16>14745?14745:x}qb(zb,Fa,s,yb,Ta);r=Ma(_,f,b[tb>>1]|0,yb,$,La,b[U>>1]|0,l,b[aa>>1]|0,b[H>>1]|0,b[I>>1]|0,Ta)|0;switch(f|0){case 0:case 1:case 2:case 3:case 6:{p=b[xb>>1]|0;u=1;break}default:{r=b[tb>>1]|0;p=b[xb>>1]|0;if(ba)u=1;else{q=p<<16>>16;if(p<<16>>16<0)q=~((q^-2)>>1);else q=q>>>1;p=q&65535;u=2}}}m=p<<16>>16;s=u&65535;q=c[J>>2]|0;t=0;do{q=q+(t<<1)|0;b[pb+(t<<1)>>1]=b[q>>1]|0;q=Z(b[q>>1]|0,m)|0;if((q|0)==1073741824){c[Ta>>2]=1;n=2147483647}else n=q<<1;o=Z(b[tb>>1]|0,b[mb+(t<<1)>>1]|0)|0;if((o|0)!=1073741824){q=(o<<1)+n|0;if((o^n|0)>0&(q^n|0)<0){c[Ta>>2]=1;q=(n>>>31)+2147483647|0}}else{c[Ta>>2]=1;q=2147483647}x=q<>s|0)==(q|0)?x:q>>31^2147483647,Ta)|0;q=c[J>>2]|0;b[q+(t<<1)>>1]=x;t=t+1|0}while((t|0)!=40);vb(ca);if((Y?(b[I>>1]|0)>3:0)?!((b[H>>1]|0)==0|D):0)ub(ca);wb(ca,f,pb,r,b[xb>>1]|0,mb,p,u,Ha,Ta);r=0;o=0;do{q=b[pb+(o<<1)>>1]|0;q=Z(q,q)|0;if((q|0)!=1073741824){p=(q<<1)+r|0;if((q^r|0)>0&(p^r|0)<0){c[Ta>>2]=1;r=(r>>>31)+2147483647|0}else r=p}else{c[Ta>>2]=1;r=2147483647}o=o+1|0}while((o|0)!=40);if((r|0)<0)r=~((r^-2)>>1);else r=r>>1;r=Fe(r,Ab,Ta)|0;p=((b[Ab>>1]|0)>>>1)+15|0;q=p&65535;p=p<<16>>16;if(q<<16>>16>0)if(q<<16>>16<31){r=r>>p;x=135}else{r=0;x=137}else{u=0-p<<16>>16;x=r<>u|0)==(r|0)?x:r>>31^2147483647;x=135}if((x|0)==135){x=0;if((r|0)<0)r=~((r^-4)>>2);else x=137}if((x|0)==137){x=0;r=r>>>2}r=r&65535;do if(Y?(db=b[I>>1]|0,db<<16>>16>5):0)if(b[H>>1]|0)if((b[h>>1]|0)<4){if(da){if(!(Ja|(b[aa>>1]|0)!=0))x=145}else if(!Ja)x=145;if((x|0)==145?(0,(b[U>>1]|0)==0):0){x=147;break}ob(pb,r,ea,db,b[U>>1]|0,za,Ta)|0;x=147}else x=147;else x=151;else x=147;while(0);do if((x|0)==147){x=0;if(b[H>>1]|0){if(!Ja?(b[U>>1]|0)==0:0){x=151;break}if((b[h>>1]|0)>=4)x=151}else x=151}while(0);if((x|0)==151){x=0;b[ea>>1]=b[sa>>1]|0;b[sa>>1]=b[ta>>1]|0;b[ta>>1]=b[ua>>1]|0;b[ua>>1]=b[va>>1]|0;b[va>>1]=b[wa>>1]|0;b[wa>>1]=b[xa>>1]|0;b[xa>>1]=b[ya>>1]|0;b[ya>>1]=b[fa>>1]|0;b[fa>>1]=r}if(v){r=0;do{v=rb+(r<<1)|0;b[v>>1]=Rd(b[v>>1]|0,b[pb+(r<<1)>>1]|0,Ta)|0;r=r+1|0}while((r|0)!=40);Da(pb,rb,40,Ta);c[Ta>>2]=0;He(k,rb,j+(y<<1)|0,40,ga,0)}else{c[Ta>>2]=0;He(k,pb,j+(y<<1)|0,40,ga,0)}if(!(c[Ta>>2]|0))Pe(ga|0,j+(y+30<<1)|0,20)|0;else{p=193;while(1){q=d+(p<<1)|0;v=b[q>>1]|0;r=v<<16>>16;if(v<<16>>16<0)r=~((r^-4)>>2);else r=r>>>2;b[q>>1]=r;if((p|0)>0)p=p+-1|0;else{p=39;break}}while(1){q=pb+(p<<1)|0;v=b[q>>1]|0;r=v<<16>>16;if(v<<16>>16<0)r=~((r^-4)>>2);else r=r>>>2;b[q>>1]=r;if((p|0)>0)p=p+-1|0;else break}He(k,pb,j+(y<<1)|0,40,ga,1)}Pe(d|0,ha|0,308)|0;b[E>>1]=b[eb>>1]|0;r=y+40|0;s=r&65535;if(s<<16>>16>=160)break;else{y=r<<16>>16;k=k+22|0;t=w}}b[H>>1]=Ka(d+484|0,d+466|0,j,I,Ta)|0;gb(Ua,Fa,j,Ta);b[U>>1]=La;b[aa>>1]=l;sb(d+626|0,Fa,Ta);Ab=Ea;c[Ab>>2]=Wa;i=Bb;return}function Xa(a,d,f,g,h,j,k,l,m){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0;r=i;i=i+16|0;p=r+2|0;q=r;f=f<<16>>16;f=(f<<18>>18|0)==(f|0)?f<<2:f>>>15^32767;switch(d|0){case 3:case 4:case 6:{o=f<<16>>16;f=c[l+84>>2]|0;b[j>>1]=b[f+(o<<1)>>1]|0;l=b[f+(o+1<<1)>>1]|0;n=b[f+(o+3<<1)>>1]|0;j=b[f+(o+2<<1)>>1]|0;break}case 0:{l=(f&65535)+(h<<16>>16<<1^2)|0;l=(l&65535)<<16>>16>1022?1022:l<<16>>16;b[j>>1]=b[782+(l<<1)>>1]|0;j=b[782+(l+1<<1)>>1]|0;de(j<<16>>16,q,p,m);b[q>>1]=(e[q>>1]|0)+65524;l=Ee(b[p>>1]|0,5,m)|0;o=b[q>>1]|0;o=Rd(l,((o<<26>>26|0)==(o|0)?o<<10:o>>>15^32767)&65535,m)|0;l=b[p>>1]|0;f=b[q>>1]|0;if((f*24660|0)==1073741824){c[m>>2]=1;h=2147483647}else h=f*49320|0;n=(l<<16>>16)*24660>>15;f=h+(n<<1)|0;if((h^n|0)>0&(f^h|0)<0){c[m>>2]=1;f=(h>>>31)+2147483647|0}n=f<<13;l=j;n=Ce((n>>13|0)==(f|0)?n:f>>31^2147483647,m)|0;j=o;break}default:{o=f<<16>>16;f=c[l+80>>2]|0;b[j>>1]=b[f+(o<<1)>>1]|0;l=b[f+(o+1<<1)>>1]|0;n=b[f+(o+3<<1)>>1]|0;j=b[f+(o+2<<1)>>1]|0}}Vd(a,d,g,q,p,0,0,m);h=Z((re(14,b[p>>1]|0,m)|0)<<16>>16,l<<16>>16)|0;if((h|0)==1073741824){c[m>>2]=1;f=2147483647}else f=h<<1;l=10-(e[q>>1]|0)|0;h=l&65535;l=l<<16>>16;if(h<<16>>16>0){q=h<<16>>16<31?f>>l:0;q=q>>>16;q=q&65535;b[k>>1]=q;Wd(a,j,n);i=r;return}else{m=0-l<<16>>16;q=f<>m|0)==(f|0)?q:f>>31^2147483647;q=q>>>16;q=q&65535;b[k>>1]=q;Wd(a,j,n);i=r;return}}function Ya(a,d,e,f,g,h,i,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;if(!(f<<16>>16)){j=a<<16>>16;if(a<<16>>16>=197){b[h>>1]=j+65424;b[i>>1]=0;return}g=((j<<16)+131072>>16)*10923>>15;if((g|0)>32767){c[k>>2]=1;g=32767}a=(g&65535)+19|0;b[h>>1]=a;b[i>>1]=j+58-((a*196608|0)>>>16);return}if(!(j<<16>>16)){k=a<<16>>16<<16;a=((k+131072>>16)*21846|0)+-65536>>16;b[h>>1]=a+(d&65535);b[i>>1]=((k+-131072|0)>>>16)-((a*196608|0)>>>16);return}if((Ge(g,d,k)|0)<<16>>16>5)g=(d&65535)+5&65535;j=e<<16>>16;j=(j-(g&65535)&65535)<<16>>16>4?j+65532&65535:g;g=a<<16>>16;if(a<<16>>16<4){b[h>>1]=((((j&65535)<<16)+-327680|0)>>>16)+g;b[i>>1]=0;return}g=g<<16;if(a<<16>>16<12){k=(((g+-327680>>16)*10923|0)>>>15<<16)+-65536|0;a=k>>16;b[h>>1]=(j&65535)+a;b[i>>1]=((g+-589824|0)>>>16)-(k>>>15)-a;return}else{b[h>>1]=((g+-786432+((j&65535)<<16)|0)>>>16)+1;b[i>>1]=0;return}}function Za(a,c,d,f,g,h,i){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;if(f<<16>>16){i=(e[g>>1]|0)+65531|0;i=(i<<16>>16|0)<(c<<16>>16|0)?c:i&65535;d=d<<16>>16;c=a<<16>>16<<16;a=((c+327680>>16)*10924|0)+-65536>>16;b[g>>1]=(((((i&65535)<<16)+589824>>16|0)>(d|0)?d+65527&65535:i)&65535)+a;b[h>>1]=((c+-196608|0)>>>16)-((a*393216|0)>>>16);return}f=a<<16>>16;if(a<<16>>16<463){a=((((f<<16)+327680>>16)*10924|0)>>>16)+17|0;b[g>>1]=a;b[h>>1]=f+105-((a*393216|0)>>>16);return}else{b[g>>1]=f+65168;b[h>>1]=0;return}}function _a(a,d,e,f,g,h,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0;n=i;i=i+16|0;l=n+6|0;k=n+4|0;Vd(a,d,f,l,k,n+2|0,n,j);m=(e&31)*3|0;f=g+(m<<1)|0;if(!((Ge(d&65535,7,j)|0)<<16>>16)){l=re(b[l>>1]|0,b[k>>1]|0,j)|0;k=l<<16>>16;k=(Z(((l<<20>>20|0)==(k|0)?l<<4:k>>>15^32767)<<16>>16,b[f>>1]|0)|0)>>15;if((k|0)>32767){c[j>>2]=1;k=32767}f=k<<16;e=f>>16;if((k<<17>>17|0)==(e|0))k=f>>15;else k=e>>>15^32767}else{e=re(14,b[k>>1]|0,j)|0;e=Z(e<<16>>16,b[f>>1]|0)|0;if((e|0)==1073741824){c[j>>2]=1;f=2147483647}else f=e<<1;e=Ge(9,b[l>>1]|0,j)|0;k=e<<16>>16;if(e<<16>>16>0)k=e<<16>>16<31?f>>k:0;else{j=0-k<<16>>16;k=f<>j|0)==(f|0)?k:f>>31^2147483647}k=k>>>16}b[h>>1]=k;Wd(a,b[g+(m+1<<1)>>1]|0,b[g+(m+2<<1)>>1]|0);i=n;return}function $a(a,c,d){a=a|0;c=c|0;d=d|0;c=b[d+(c<<16>>16<<1)>>1]|0;if((a|0)!=7){a=c;return a|0}a=c&65532;return a|0}function ab(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+48|0;r=v+20|0;u=v;t=c[h+44>>2]|0;s=c[h+64>>2]|0;l=c[h+4>>2]|0;q=c[h+12>>2]|0;n=c[h+20>>2]|0;m=c[h+56>>2]|0;if(!(f<<16>>16)){o=e>>>0<2;if(o){f=765;p=508;n=c[h+52>>2]|0}else{h=(e|0)==5;f=h?1533:765;p=2044;l=h?m:l}m=b[g>>1]|0;f=((m*196608>>16|0)>(f&65535|0)?f:m*3&65535)<<16>>16;m=b[l+(f<<1)>>1]|0;b[r>>1]=m;b[r+2>>1]=b[l+(f+1<<1)>>1]|0;b[r+4>>1]=b[l+(f+2<<1)>>1]|0;f=b[g+2>>1]|0;if(o)f=f<<16>>16<<1&65535;o=(f<<16>>16)*196608|0;o=(o|0)>100466688?1533:o>>16;b[r+6>>1]=b[q+(o<<1)>>1]|0;b[r+8>>1]=b[q+(o+1<<1)>>1]|0;b[r+10>>1]=b[q+(o+2<<1)>>1]|0;g=b[g+4>>1]|0;g=((g<<18>>16|0)>(p&65535|0)?p:g<<2&65535)<<16>>16;b[r+12>>1]=b[n+(g<<1)>>1]|0;b[r+14>>1]=b[n+((g|1)<<1)>>1]|0;b[r+16>>1]=b[n+((g|2)<<1)>>1]|0;b[r+18>>1]=b[n+((g|3)<<1)>>1]|0;if((e|0)==8){f=0;while(1){s=d+(f<<1)|0;b[u+(f<<1)>>1]=Rd(m,Rd(b[t+(f<<1)>>1]|0,b[s>>1]|0,k)|0,k)|0;b[s>>1]=m;f=f+1|0;if((f|0)==10)break;m=b[r+(f<<1)>>1]|0}Ae(u,205,10,k);l=d+20|0;m=u;f=l+20|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(f|0));me(u,j,10,k);i=v;return}else l=0;do{m=d+(l<<1)|0;f=(Z(b[s+(l<<1)>>1]|0,b[m>>1]|0)|0)>>15;if((f|0)>32767){c[k>>2]=1;f=32767}g=Rd(b[t+(l<<1)>>1]|0,f&65535,k)|0;e=b[r+(l<<1)>>1]|0;b[u+(l<<1)>>1]=Rd(e,g,k)|0;b[m>>1]=e;l=l+1|0}while((l|0)!=10);Ae(u,205,10,k);l=d+20|0;m=u;f=l+20|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(f|0));me(u,j,10,k);i=v;return}else{l=0;do{f=(b[d+20+(l<<1)>>1]|0)*29491>>15;if((f|0)>32767){c[k>>2]=1;f=32767}m=(b[t+(l<<1)>>1]|0)*3277>>15;if((m|0)>32767){c[k>>2]=1;m=32767}b[u+(l<<1)>>1]=Rd(m&65535,f&65535,k)|0;l=l+1|0}while((l|0)!=10);if((e|0)==8){l=0;do{s=d+(l<<1)|0;r=Rd(b[t+(l<<1)>>1]|0,b[s>>1]|0,k)|0;b[s>>1]=Ge(b[u+(l<<1)>>1]|0,r,k)|0;l=l+1|0}while((l|0)!=10);Ae(u,205,10,k);l=d+20|0;m=u;f=l+20|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(f|0));me(u,j,10,k);i=v;return}else l=0;do{m=d+(l<<1)|0;f=(Z(b[s+(l<<1)>>1]|0,b[m>>1]|0)|0)>>15;if((f|0)>32767){c[k>>2]=1;f=32767}r=Rd(b[t+(l<<1)>>1]|0,f&65535,k)|0;b[m>>1]=Ge(b[u+(l<<1)>>1]|0,r,k)|0;l=l+1|0}while((l|0)!=10);Ae(u,205,10,k);l=d+20|0;m=u;f=l+20|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(f|0));me(u,j,10,k);i=v;return}}function bb(a,b,c){a=a|0;b=b|0;c=c|0;Pe(a|0,c+((b<<16>>16)*10<<1)|0,20)|0;return}function cb(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+80|0;q=v+60|0;r=v+40|0;t=v+20|0;u=v;s=c[g+48>>2]|0;n=c[g+24>>2]|0;o=c[g+28>>2]|0;p=c[g+32>>2]|0;if(e<<16>>16){l=0;do{q=s+(l<<1)|0;f=Rd(((b[q>>1]|0)*1639|0)>>>15&65535,((b[d+20+(l<<1)>>1]|0)*31128|0)>>>15&65535,k)|0;b[t+(l<<1)>>1]=f;b[u+(l<<1)>>1]=f;r=d+(l<<1)|0;b[r>>1]=Ge(f,Rd(b[q>>1]|0,((b[r>>1]|0)*21299|0)>>>15&65535,k)|0,k)|0;l=l+1|0}while((l|0)!=10);Ae(t,205,10,k);Ae(u,205,10,k);l=d+20|0;g=u;e=l+20|0;do{a[l>>0]=a[g>>0]|0;l=l+1|0;g=g+1|0}while((l|0)<(e|0));me(t,h,10,k);me(u,j,10,k);i=v;return}e=c[g+16>>2]|0;g=c[g+8>>2]|0;m=b[f>>1]|0;m=((m<<18>>18|0)==(m|0)?m<<2:m>>>15^32767)<<16>>16;b[q>>1]=b[g+(m<<1)>>1]|0;b[q+2>>1]=b[g+(m+1<<1)>>1]|0;b[r>>1]=b[g+(m+2<<1)>>1]|0;b[r+2>>1]=b[g+(m+3<<1)>>1]|0;m=b[f+2>>1]|0;m=((m<<18>>18|0)==(m|0)?m<<2:m>>>15^32767)<<16>>16;b[q+4>>1]=b[e+(m<<1)>>1]|0;b[q+6>>1]=b[e+(m+1<<1)>>1]|0;b[r+4>>1]=b[e+(m+2<<1)>>1]|0;b[r+6>>1]=b[e+(m+3<<1)>>1]|0;m=b[f+4>>1]|0;g=m<<16>>16;if(m<<16>>16<0)e=~((g^-2)>>1);else e=g>>>1;m=e<<16>>16;m=((e<<18>>18|0)==(m|0)?e<<2:m>>>15^32767)<<16>>16;l=n+(m+1<<1)|0;e=b[n+(m<<1)>>1]|0;if(!(g&1)){b[q+8>>1]=e;b[q+10>>1]=b[l>>1]|0;b[r+8>>1]=b[n+(m+2<<1)>>1]|0;b[r+10>>1]=b[n+(m+3<<1)>>1]|0}else{if(e<<16>>16==-32768)e=32767;else e=0-(e&65535)&65535;b[q+8>>1]=e;e=b[l>>1]|0;if(e<<16>>16==-32768)e=32767;else e=0-(e&65535)&65535;b[q+10>>1]=e;e=b[n+(m+2<<1)>>1]|0;if(e<<16>>16==-32768)e=32767;else e=0-(e&65535)&65535;b[r+8>>1]=e;e=b[n+(m+3<<1)>>1]|0;if(e<<16>>16==-32768)e=32767;else e=0-(e&65535)&65535;b[r+10>>1]=e}l=b[f+6>>1]|0;l=((l<<18>>18|0)==(l|0)?l<<2:l>>>15^32767)<<16>>16;b[q+12>>1]=b[o+(l<<1)>>1]|0;b[q+14>>1]=b[o+(l+1<<1)>>1]|0;b[r+12>>1]=b[o+(l+2<<1)>>1]|0;b[r+14>>1]=b[o+(l+3<<1)>>1]|0;l=b[f+8>>1]|0;l=((l<<18>>18|0)==(l|0)?l<<2:l>>>15^32767)<<16>>16;b[q+16>>1]=b[p+(l<<1)>>1]|0;b[q+18>>1]=b[p+(l+1<<1)>>1]|0;b[r+16>>1]=b[p+(l+2<<1)>>1]|0;b[r+18>>1]=b[p+(l+3<<1)>>1]|0;l=0;do{g=d+(l<<1)|0;e=(b[g>>1]|0)*21299>>15;if((e|0)>32767){c[k>>2]=1;e=32767}p=Rd(b[s+(l<<1)>>1]|0,e&65535,k)|0;b[t+(l<<1)>>1]=Rd(b[q+(l<<1)>>1]|0,p,k)|0;f=b[r+(l<<1)>>1]|0;b[u+(l<<1)>>1]=Rd(f,p,k)|0;b[g>>1]=f;l=l+1|0}while((l|0)!=10);Ae(t,205,10,k);Ae(u,205,10,k);l=d+20|0;g=u;e=l+20|0;do{a[l>>0]=a[g>>0]|0;l=l+1|0;g=g+1|0}while((l|0)<(e|0));me(t,h,10,k);me(u,j,10,k);i=v;return}function db(a,c){a=a|0;c=c|0;var d=0,e=0;if(!a){e=-1;return e|0}d=a;e=d+20|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(e|0));Pe(a+20|0,c|0,20)|0;e=0;return e|0}function eb(d){d=d|0;var e=0,f=0,g=0,h=0,i=0;if(!d){i=-1;return i|0}b[d>>1]=0;b[d+2>>1]=8192;e=d+4|0;b[e>>1]=3500;b[d+6>>1]=3500;c[d+8>>2]=1887529304;b[d+12>>1]=3e4;b[d+14>>1]=26e3;b[d+16>>1]=21e3;b[d+18>>1]=15e3;b[d+20>>1]=8e3;b[d+22>>1]=0;b[d+24>>1]=-8e3;b[d+26>>1]=-15e3;b[d+28>>1]=-21e3;b[d+30>>1]=-26e3;b[d+32>>1]=3e4;b[d+34>>1]=26e3;b[d+36>>1]=21e3;b[d+38>>1]=15e3;b[d+40>>1]=8e3;b[d+42>>1]=0;b[d+44>>1]=-8e3;b[d+46>>1]=-15e3;b[d+48>>1]=-21e3;b[d+50>>1]=-26e3;b[d+212>>1]=0;b[d+374>>1]=0;b[d+392>>1]=0;f=d+52|0;b[f>>1]=1384;b[d+54>>1]=2077;b[d+56>>1]=3420;b[d+58>>1]=5108;b[d+60>>1]=6742;b[d+62>>1]=8122;b[d+64>>1]=9863;b[d+66>>1]=11092;b[d+68>>1]=12714;b[d+70>>1]=13701;g=d+72|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+92|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+112|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+132|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+152|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+172|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));g=d+192|0;h=f;i=g+20|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));Qe(d+214|0,0,160)|0;b[d+376>>1]=3500;b[d+378>>1]=3500;i=b[e>>1]|0;b[d+380>>1]=i;b[d+382>>1]=i;b[d+384>>1]=i;b[d+386>>1]=i;b[d+388>>1]=i;b[d+390>>1]=i;b[d+394>>1]=0;b[d+396>>1]=7;b[d+398>>1]=32767;b[d+400>>1]=0;b[d+402>>1]=0;b[d+404>>1]=0;c[d+408>>2]=1;b[d+412>>1]=0;i=0;return i|0}function fb(d,f,g,h,j,k,l,m,n,o,p,q){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0;_=i;i=i+304|0;Q=_+192|0;N=_+168|0;S=_+148|0;W=_+216|0;T=_+146|0;U=_+144|0;O=_+124|0;P=_+104|0;R=_+84|0;V=_+60|0;L=_+40|0;K=_;Y=d+404|0;X=d+400|0;if((b[Y>>1]|0)!=0?(b[X>>1]|0)!=0:0){J=d+394|0;b[J>>1]=b[636+(l<<1)>>1]|0;z=b[d+212>>1]|0;y=z+10|0;Pe(d+52+(((y&65535|0)==80?0:y<<16>>16)<<1)|0,d+52+(z<<1)|0,20)|0;z=b[d+392>>1]|0;y=z+1|0;b[d+376+(((y&65535|0)==8?0:y<<16>>16)<<1)>>1]=b[d+376+(z<<1)>>1]|0;y=d+4|0;b[y>>1]=0;z=K+36|0;A=K+32|0;B=K+28|0;C=K+24|0;D=K+20|0;E=K+16|0;F=K+12|0;G=K+8|0;H=K+4|0;I=d+52|0;t=K;M=t+40|0;do{c[t>>2]=0;t=t+4|0}while((t|0)<(M|0));s=0;r=7;while(1){M=b[d+376+(r<<1)>>1]|0;x=M<<16>>16;if(M<<16>>16<0)x=~((x^-8)>>3);else x=x>>>3;s=Rd(s,x&65535,q)|0;b[y>>1]=s;v=r*10|0;t=9;while(1){u=K+(t<<2)|0;w=c[u>>2]|0;M=b[d+52+(t+v<<1)>>1]|0;x=M+w|0;if((M^w|0)>-1&(x^w|0)<0){c[q>>2]=1;x=(w>>>31)+2147483647|0}c[u>>2]=x;if((t|0)>0)t=t+-1|0;else break}if((r|0)<=0)break;else r=r+-1|0}b[L+18>>1]=(c[z>>2]|0)>>>3;b[L+16>>1]=(c[A>>2]|0)>>>3;b[L+14>>1]=(c[B>>2]|0)>>>3;b[L+12>>1]=(c[C>>2]|0)>>>3;b[L+10>>1]=(c[D>>2]|0)>>>3;b[L+8>>1]=(c[E>>2]|0)>>>3;b[L+6>>1]=(c[F>>2]|0)>>>3;b[L+4>>1]=(c[G>>2]|0)>>>3;b[L+2>>1]=(c[H>>2]|0)>>>3;b[L>>1]=(c[K>>2]|0)>>>3;me(L,d+12|0,10,q);b[y>>1]=Ge(b[y>>1]|0,b[J>>1]|0,q)|0;Oe(d+214|0,I|0,160)|0;L=9;while(1){M=b[d+214+(L+70<<1)>>1]|0;u=M<<16>>16;K=b[d+214+(L+60<<1)>>1]|0;t=(K<<16>>16)+u|0;if((K^M)<<16>>16>-1&(t^u|0)<0){c[q>>2]=1;t=(u>>>31)+2147483647|0}M=b[d+214+(L+50<<1)>>1]|0;u=M+t|0;if((M^t|0)>-1&(u^t|0)<0){c[q>>2]=1;u=(t>>>31)+2147483647|0}M=b[d+214+(L+40<<1)>>1]|0;t=M+u|0;if((M^u|0)>-1&(t^u|0)<0){c[q>>2]=1;t=(u>>>31)+2147483647|0}M=b[d+214+(L+30<<1)>>1]|0;u=M+t|0;if((M^t|0)>-1&(u^t|0)<0){c[q>>2]=1;u=(t>>>31)+2147483647|0}M=b[d+214+(L+20<<1)>>1]|0;t=M+u|0;if((M^u|0)>-1&(t^u|0)<0){c[q>>2]=1;t=(u>>>31)+2147483647|0}M=b[d+214+(L+10<<1)>>1]|0;u=M+t|0;if((M^t|0)>-1&(u^t|0)<0){c[q>>2]=1;t=(t>>>31)+2147483647|0}else t=u;M=b[d+214+(L<<1)>>1]|0;u=M+t|0;if((M^t|0)>-1&(u^t|0)<0){c[q>>2]=1;u=(t>>>31)+2147483647|0}if((u|0)<0)u=~((u^-8)>>3);else u=u>>>3;x=u&65535;v=b[654+(L<<1)>>1]|0;w=7;while(1){r=d+214+((w*10|0)+L<<1)|0;u=Ge(b[r>>1]|0,x,q)|0;b[r>>1]=u;u=(Z(v,u<<16>>16)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[r>>1]=u;s=(u&65535)-(u>>>15&1)|0;s=s<<16>>31^s;t=s&65535;if(t<<16>>16>655)t=(((s<<16>>16)+261489|0)>>>2)+655&65535;t=t<<16>>16>1310?1310:t;if(!(u&32768))u=t;else u=0-(t&65535)&65535;b[r>>1]=u;if((w|0)>0)w=w+-1|0;else break}if((L|0)>0)L=L+-1|0;else break}}if(b[X>>1]|0){x=d+32|0;w=d+12|0;t=x;v=w;M=t+20|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));v=d+4|0;s=b[v>>1]|0;r=d+6|0;b[r>>1]=s;do if(b[d+402>>1]|0){t=b[d>>1]|0;b[d>>1]=0;t=t<<16>>16<32?t:32;M=t<<16>>16;u=M<<10;if((u|0)!=(M<<26>>16|0)){c[q>>2]=1;u=t<<16>>16>0?32767:-32768}if(t<<16>>16>1)u=Td(1024,u&65535)|0;else u=16384;b[d+2>>1]=u;bb(g,b[m>>1]|0,c[n+60>>2]|0);ab(g,8,0,m+2|0,n,w,q);t=g;M=t+20|0;do{a[t>>0]=0;t=t+1|0}while((t|0)<(M|0));s=b[m+8>>1]|0;s=s<<16>>16==0?-32768:((s+64&65535)>127?(s<<16>>16>0?32767:32768):s<<16>>16<<9)+60416&65535;b[v>>1]=s;if((b[d+412>>1]|0)!=0?(c[d+408>>2]|0)!=0:0)break;t=x;v=w;M=t+20|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));b[r>>1]=s}while(0);t=s<<16>>16;if(s<<16>>16<0)t=~((t^-2)>>1);else t=t>>>1;t=t+56536|0;u=t<<16;if((u|0)>0)t=0;else t=(u|0)<-946077696?-14436:t&65535;b[h>>1]=t;b[h+2>>1]=t;b[h+4>>1]=t;b[h+6>>1]=t;m=((t<<16>>16)*5443|0)>>>15&65535;b[h+8>>1]=m;b[h+10>>1]=m;b[h+12>>1]=m;b[h+14>>1]=m}t=((b[636+(l<<1)>>1]|0)*104864|0)>>>15<<16;if((t|0)<0)t=~((t>>16^-32)>>5);else t=t>>21;l=d+394|0;b[l>>1]=Rd(((b[l>>1]|0)*29491|0)>>>15&65535,t&65535,q)|0;h=(e[d>>1]<<16)+65536|0;t=h>>16;n=d+2|0;t=(Z(((h<<10>>26|0)==(t|0)?h>>>6:t>>>15^32767)<<16>>16,b[n>>1]|0)|0)>>15;if((t|0)>32767){c[q>>2]=1;t=32767}s=t&65535;if(s<<16>>16<=1024)if(s<<16>>16<-2048)w=-32768;else w=t<<4&65535;else w=16384;m=d+4|0;x=w<<16>>16;u=Z(b[m>>1]|0,x)|0;if((u|0)==1073741824){c[q>>2]=1;L=2147483647}else L=u<<1;u=(Z(b[d+30>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}y=u&65535;b[Q+18>>1]=y;u=(Z(b[d+28>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+16>>1]=u;u=(Z(b[d+26>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+14>>1]=u;u=(Z(b[d+24>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+12>>1]=u;u=(Z(b[d+22>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+10>>1]=u;u=(Z(b[d+20>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+8>>1]=u;u=(Z(b[d+18>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+6>>1]=u;u=(Z(b[d+16>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+4>>1]=u;u=(Z(b[d+14>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q+2>>1]=u;u=(Z(b[d+12>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[Q>>1]=u;h=d+6|0;x=16384-(w&65535)<<16>>16;u=Z(b[h>>1]|0,x)|0;if((u|0)!=1073741824){t=(u<<1)+L|0;if((u^L|0)>0&(t^L|0)<0){c[q>>2]=1;K=(L>>>31)+2147483647|0}else K=t}else{c[q>>2]=1;K=2147483647}t=y;v=9;while(1){s=Q+(v<<1)|0;u=(Z(b[d+32+(v<<1)>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}t=Rd(t,u&65535,q)|0;b[s>>1]=t;M=t<<16>>16;u=M<<1;if((u|0)!=(M<<17>>16|0)){c[q>>2]=1;u=t<<16>>16>0?32767:-32768}b[s>>1]=u;u=v+-1|0;if((v|0)<=0)break;t=b[Q+(u<<1)>>1]|0;v=u}L=d+374|0;u=((e[L>>1]<<16)+-161021952>>16)*9830>>15;if((u|0)>32767){c[q>>2]=1;u=32767}u=4096-(u&65535)|0;t=u<<16;if((t|0)>268369920)x=32767;else x=(t|0)<0?0:u<<19>>16;J=d+8|0;u=Ga(J,3)|0;ne(Q,O,10,q);t=P;v=O;M=t+20|0;do{b[t>>1]=b[v>>1]|0;t=t+2|0;v=v+2|0}while((t|0)<(M|0));t=(u<<16>>16)*10|0;v=9;while(1){s=P+(v<<1)|0;r=b[s>>1]|0;u=(Z(b[d+214+(v+t<<1)>>1]|0,x)|0)>>15;if((u|0)>32767){c[q>>2]=1;u=32767}b[s>>1]=Rd(r,u&65535,q)|0;if((v|0)>0)v=v+-1|0;else break}Ae(O,205,10,q);Ae(P,205,10,q);t=g+20|0;v=O;M=t+20|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));me(O,Q,10,q);me(P,R,10,q);he(Q,N,q);he(R,V,q);t=p;v=N;M=t+22|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));t=p+22|0;v=N;M=t+22|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));t=p+44|0;v=N;M=t+22|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));t=p+66|0;v=N;M=t+22|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));Fa(N+2|0,S,q);u=0;t=32767;do{s=b[S+(u<<1)>>1]|0;s=Z(s,s)|0;if(s>>>0<1073741824)s=32767-(s>>>15)|0;else{c[q>>2]=1;s=0}t=(Z(s<<16>>16,t<<16>>16)|0)>>15;if((t|0)>32767){c[q>>2]=1;t=32767}u=u+1|0}while((u|0)!=10);de(t<<16>>16,T,U,q);t=(e[T>>1]<<16)+-983040|0;s=t>>16;s=De(Ge(0,Rd(((t<<12>>28|0)==(s|0)?t>>>4:s>>>15^32767)&65535,De(b[U>>1]|0,3,q)|0,q)|0,q)|0,1,q)|0;t=(b[L>>1]|0)*29491>>15;if((t|0)>32767){c[q>>2]=1;t=32767}u=s<<16>>16;s=u*3277>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[L>>1]=Rd(t&65535,s&65535,q)|0;s=K>>10;r=s+262144|0;if((s|0)>-1&(r^s|0)<0){c[q>>2]=1;r=(s>>>31)+2147483647|0}U=u<<4;s=r-U|0;if(((s^r)&(r^U)|0)<0){c[q>>2]=1;r=(r>>>31)+2147483647|0}else r=s;U=b[l>>1]<<5;s=U+r|0;if((U^r|0)>-1&(s^r|0)<0){c[q>>2]=1;s=(r>>>31)+2147483647|0}u=(re(s>>>16&65535,s>>>1&32767,q)|0)<<16>>16;Ha(J,W,q);r=39;while(1){t=W+(r<<1)|0;s=(Z(b[t>>1]|0,u)|0)>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[t>>1]=s;if((r|0)>0)r=r+-1|0;else break}He(V,W,o,40,f,1);Ha(J,W,q);r=39;while(1){t=W+(r<<1)|0;s=(Z(b[t>>1]|0,u)|0)>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[t>>1]=s;if((r|0)>0)r=r+-1|0;else break}He(V,W,o+80|0,40,f,1);Ha(J,W,q);r=39;while(1){t=W+(r<<1)|0;s=(Z(b[t>>1]|0,u)|0)>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[t>>1]=s;if((r|0)>0)r=r+-1|0;else break}He(V,W,o+160|0,40,f,1);Ha(J,W,q);t=39;while(1){r=W+(t<<1)|0;s=(Z(b[r>>1]|0,u)|0)>>15;if((s|0)>32767){c[q>>2]=1;s=32767}b[r>>1]=s;if((t|0)>0)t=t+-1|0;else break}He(V,W,o+240|0,40,f,1);b[j+14>>1]=20;b[j+16>>1]=0;if((k|0)==2){s=b[d>>1]|0;s=s<<16>>16>32?32:s<<16>>16<1?8:s;o=s<<16>>16;r=o<<10;if((r|0)!=(o<<26>>16|0)){c[q>>2]=1;r=s<<16>>16>0?32767:-32768}b[n>>1]=Td(1024,r&65535)|0;b[d>>1]=0;t=d+32|0;v=d+12|0;M=t+20|0;do{a[t>>0]=a[v>>0]|0;t=t+1|0;v=v+1|0}while((t|0)<(M|0));q=b[m>>1]|0;b[h>>1]=q;b[m>>1]=(q&65535)+65280}if(!(b[X>>1]|0)){i=_;return}do if(!(b[d+402>>1]|0)){if(b[Y>>1]|0)break;i=_;return}while(0);b[d>>1]=0;b[d+412>>1]=1;i=_;return}function gb(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;k=m+2|0;l=m;b[l>>1]=0;j=a+212|0;h=(e[j>>1]|0)+10|0;h=(h&65535|0)==80?0:h&65535;b[j>>1]=h;Pe(a+52+(h<<16>>16<<1)|0,d|0,20)|0;h=0;j=159;while(1){n=b[f+(j<<1)>>1]|0;n=Z(n,n)|0;n=(n|0)==1073741824?2147483647:n<<1;d=n+h|0;if((n^h|0)>-1&(d^h|0)<0){c[g>>2]=1;h=(h>>>31)+2147483647|0}else h=d;if((j|0)>0)j=j+-1|0;else break}de(h,k,l,g);h=b[k>>1]|0;n=h<<16>>16;d=n<<10;if((d|0)!=(n<<26>>16|0)){c[g>>2]=1;d=h<<16>>16>0?32767:-32768}b[k>>1]=d;n=b[l>>1]|0;h=n<<16>>16;if(n<<16>>16<0)h=~((h^-32)>>5);else h=h>>>5;l=a+392|0;n=(e[l>>1]|0)+1|0;n=(n&65535|0)==8?0:n&65535;b[l>>1]=n;b[a+376+(n<<16>>16<<1)>>1]=h+57015+d;i=m;return}function hb(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=(d|0)==4;m=(d|0)==5;n=(d|0)==6;g=c[a+408>>2]|0;a:do if((d+-4|0)>>>0<3)k=4;else{if((g+-1|0)>>>0<2)switch(d|0){case 2:case 3:case 7:{k=4;break a}default:{}}b[a>>1]=0;j=0}while(0);if((k|0)==4){b:do if((g|0)==2){switch(d|0){case 2:case 4:case 6:case 7:break;default:{h=1;break b}}h=2}else h=1;while(0);j=(e[a>>1]|0)+1&65535;b[a>>1]=j;j=(d|0)!=5&j<<16>>16>50?2:h}i=a+398|0;if(m&(b[a+412>>1]|0)==0){b[i>>1]=0;h=0}else h=b[i>>1]|0;h=Rd(h,1,f)|0;b[i>>1]=h;f=a+404|0;b[f>>1]=0;c:do switch(d|0){case 2:case 4:case 5:case 6:case 7:{if(!((d|0)==7&(j|0)==0)){if(h<<16>>16>30){b[f>>1]=1;b[i>>1]=0;b[a+396>>1]=0;break c}h=a+396|0;g=b[h>>1]|0;if(!(g<<16>>16)){b[i>>1]=0;break c}else{b[h>>1]=(g&65535)+65535;break c}}else k=14;break}default:k=14}while(0);if((k|0)==14)b[a+396>>1]=7;if(!j)return j|0;h=a+400|0;b[h>>1]=0;g=a+402|0;b[g>>1]=0;if(l){b[h>>1]=1;return j|0}if(m){b[h>>1]=1;b[g>>1]=1;return j|0}if(!n)return j|0;b[h>>1]=1;b[f>>1]=0;return j|0}function ib(a){a=a|0;if(!a){a=-1;return a|0}b[a>>1]=1;b[a+2>>1]=1;b[a+4>>1]=1;b[a+6>>1]=1;b[a+8>>1]=1;b[a+10>>1]=0;b[a+12>>1]=1;a=0;return a|0}function jb(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l+2|0;j=l;h=Zd(a,5)|0;a=a+10|0;if((Ge(h,b[a>>1]|0,g)|0)<<16>>16>0)h=b[a>>1]|0;h=(Z(b[674+(e<<16>>16<<1)>>1]|0,h<<16>>16)|0)>>15;if((h|0)>32767){c[g>>2]=1;h=32767}b[f>>1]=h;Xd(d,k,j,g);Wd(d,b[k>>1]|0,b[j>>1]|0);i=l;return}function kb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!(c<<16>>16)){if(d<<16>>16){c=a+12|0;if((Ge(b[e>>1]|0,b[c>>1]|0,f)|0)<<16>>16>0)b[e>>1]=b[c>>1]|0}else c=a+12|0;b[c>>1]=b[e>>1]|0}b[a+10>>1]=b[e>>1]|0;f=a+2|0;b[a>>1]=b[f>>1]|0;d=a+4|0;b[f>>1]=b[d>>1]|0;f=a+6|0;b[d>>1]=b[f>>1]|0;a=a+8|0;b[f>>1]=b[a>>1]|0;b[a>>1]=b[e>>1]|0;return}function lb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0;g=Zd(a,5)|0;a=a+10|0;if((Ge(g,b[a>>1]|0,f)|0)<<16>>16>0)g=b[a>>1]|0;g=(Z(b[688+(d<<16>>16<<1)>>1]|0,g<<16>>16)|0)>>15;if((g|0)<=32767){f=g;f=f&65535;b[e>>1]=f;return}c[f>>2]=1;f=32767;f=f&65535;b[e>>1]=f;return}function mb(a){a=a|0;if(!a){a=-1;return a|0}b[a>>1]=1640;b[a+2>>1]=1640;b[a+4>>1]=1640;b[a+6>>1]=1640;b[a+8>>1]=1640;b[a+10>>1]=0;b[a+12>>1]=16384;a=0;return a|0}function nb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!(c<<16>>16)){if(d<<16>>16){c=a+12|0;if((Ge(b[e>>1]|0,b[c>>1]|0,f)|0)<<16>>16>0)b[e>>1]=b[c>>1]|0}else c=a+12|0;b[c>>1]=b[e>>1]|0}e=b[e>>1]|0;c=a+10|0;b[c>>1]=e;if((Ge(e,16384,f)|0)<<16>>16>0){b[c>>1]=16384;c=16384}else c=b[c>>1]|0;f=a+2|0;b[a>>1]=b[f>>1]|0;e=a+4|0;b[f>>1]=b[e>>1]|0;f=a+6|0;b[e>>1]=b[f>>1]|0;a=a+8|0;b[f>>1]=b[a>>1]|0;b[a>>1]=c;return}function ob(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;k=Zd(e,9)|0;l=b[e+16>>1]|0;j=l<<16>>16;e=(j+(b[e+14>>1]|0)|0)>>>1;e=(j|0)<(e<<16>>16|0)?l:e&65535;if(!(d<<16>>16>5?k<<16>>16>d<<16>>16:0))return 0;j=e<<16>>16;j=((j<<18>>18|0)==(j|0)?j<<2:j>>>15^32767)&65535;if(!(f<<16>>16>6&g<<16>>16==0))j=Ge(j,e,i)|0;k=k<<16>>16>j<<16>>16?j:k;l=qe(d)|0;j=l<<16>>16;if(l<<16>>16<0){e=0-j<<16;if((e|0)<983040)j=d<<16>>16>>(e>>16)&65535;else j=0}else{e=d<<16>>16;g=e<>16>>j|0)==(e|0))j=g&65535;else j=(e>>>15^32767)&65535}f=Z((Td(16383,j)|0)<<16>>16,k<<16>>16)|0;if((f|0)==1073741824){c[i>>2]=1;g=2147483647}else g=f<<1;f=Ge(20,l,i)|0;j=f<<16>>16;if(f<<16>>16>0)f=f<<16>>16<31?g>>j:0;else{d=0-j<<16>>16;f=g<>d|0)==(g|0)?f:g>>31^2147483647}f=(f|0)>32767?32767:f&65535;f=h<<16>>16!=0&f<<16>>16>3072?3072:f<<16>>16;e=0;do{g=a+(e<<1)|0;j=Z(b[g>>1]|0,f)|0;if((j|0)==1073741824){c[i>>2]=1;j=2147483647}else j=j<<1;b[g>>1]=j>>>11;e=e+1|0}while((e|0)!=40);return 0}function pb(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;h=c[g+104>>2]|0;i=c[g+96>>2]|0;if(a>>>0>=8){b[f>>1]=(d[e>>0]|0)>>>4&1;b[f+2>>1]=(d[e>>0]|0)>>>5&1;b[f+4>>1]=(d[e>>0]|0)>>>6&1;b[f+6>>1]=(d[e>>0]|0)>>>7&255;h=h+(a<<1)|0;if((b[h>>1]|0)>1){a=1;g=1;i=4}else return;while(1){j=e+a|0;a=i|1;b[f+(i<<16>>16<<1)>>1]=d[j>>0]&1;b[f+(a<<16>>16<<1)>>1]=(d[j>>0]|0)>>>1&1;k=i|3;b[f+(a+1<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>2&1;b[f+(k<<16>>16<<1)>>1]=(d[j>>0]|0)>>>3&1;b[f+(k+1<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>4&1;b[f+(k+2<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>5&1;b[f+(k+3<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>6&1;b[f+(k+4<<16>>16<<16>>16<<1)>>1]=(d[j>>0]|0)>>>7&255;g=g+1<<16>>16;if(g<<16>>16<(b[h>>1]|0)){a=g<<16>>16;i=i+8<<16>>16}else break}return}k=c[(c[g+100>>2]|0)+(a<<2)>>2]|0;b[f+(b[k>>1]<<1)>>1]=(d[e>>0]|0)>>>4&1;b[f+(b[k+2>>1]<<1)>>1]=(d[e>>0]|0)>>>5&1;b[f+(b[k+4>>1]<<1)>>1]=(d[e>>0]|0)>>>6&1;b[f+(b[k+6>>1]<<1)>>1]=(d[e>>0]|0)>>>7&255;j=h+(a<<1)|0;if((b[j>>1]|0)<=1)return;g=i+(a<<1)|0;h=1;a=1;i=4;while(1){h=e+h|0;i=i<<16>>16;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=d[h>>0]&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>1&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>2&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>3&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>4&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>5&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>6&1;i=i+1|0;if((i|0)<(b[g>>1]|0)){b[f+(b[k+(i<<1)>>1]<<1)>>1]=(d[h>>0]|0)>>>7&1;i=i+1|0}}}}}}}}a=a+1<<16>>16;if(a<<16>>16<(b[j>>1]|0))h=a<<16>>16;else break}return}function qb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;switch(d<<16>>16){case 0:{j=9;while(1){i=b[a+(j<<1)>>1]|0;d=i<<16>>16;if(i<<16>>16<0)d=~((d^-4)>>2);else d=d>>>2;h=b[c+(j<<1)>>1]|0;g=h<<16>>16;if(h<<16>>16<0)h=~((g^-4)>>2);else h=g>>>2;b[e+(j<<1)>>1]=Rd((i&65535)-d&65535,h&65535,f)|0;if((j|0)>0)j=j+-1|0;else break}return}case 40:{h=9;while(1){f=b[a+(h<<1)>>1]|0;d=f<<16>>16;if(f<<16>>16<0)g=~((d^-2)>>1);else g=d>>>1;f=b[c+(h<<1)>>1]|0;d=f<<16>>16;if(f<<16>>16<0)d=~((d^-2)>>1);else d=d>>>1;b[e+(h<<1)>>1]=d+g;if((h|0)>0)h=h+-1|0;else break}return}case 80:{j=9;while(1){i=b[a+(j<<1)>>1]|0;d=i<<16>>16;if(i<<16>>16<0)i=~((d^-4)>>2);else i=d>>>2;d=b[c+(j<<1)>>1]|0;g=d<<16>>16;if(d<<16>>16<0)h=~((g^-4)>>2);else h=g>>>2;b[e+(j<<1)>>1]=Rd(i&65535,(d&65535)-h&65535,f)|0;if((j|0)>0)j=j+-1|0;else break}return}case 120:{b[e+18>>1]=b[c+18>>1]|0;b[e+16>>1]=b[c+16>>1]|0;b[e+14>>1]=b[c+14>>1]|0;b[e+12>>1]=b[c+12>>1]|0;b[e+10>>1]=b[c+10>>1]|0;b[e+8>>1]=b[c+8>>1]|0;b[e+6>>1]=b[c+6>>1]|0;b[e+4>>1]=b[c+4>>1]|0;b[e+2>>1]=b[c+2>>1]|0;b[e>>1]=b[c>>1]|0;return}default:return}}function rb(a,b){a=a|0;b=b|0;if(!a){a=-1;return a|0}Pe(a|0,b|0,20)|0;a=0;return a|0}function sb(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=0;do{k=a+(l<<1)|0;f=b[k>>1]|0;i=f&65535;j=i<<16;f=f<<16>>16;if((f*5243|0)==1073741824){c[e>>2]=1;h=2147483647}else h=f*10486|0;g=j-h|0;if(((g^j)&(h^j)|0)<0){c[e>>2]=1;h=(i>>>15)+2147483647|0}else h=g;f=b[d+(l<<1)>>1]|0;g=f*5243|0;if((g|0)!=1073741824){f=(f*10486|0)+h|0;if((g^h|0)>0&(f^h|0)<0){c[e>>2]=1;f=(h>>>31)+2147483647|0}}else{c[e>>2]=1;f=2147483647}b[k>>1]=Ce(f,e)|0;l=l+1|0}while((l|0)!=10);return}function tb(a){a=a|0;var c=0;if(!a){c=-1;return c|0}c=a+18|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function ub(a){a=a|0;b[a+14>>1]=1;return}function vb(a){a=a|0;b[a+14>>1]=0;return}function wb(a,d,e,f,g,h,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var 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;C=i;i=i+160|0;z=C+80|0;A=C;v=c[l+120>>2]|0;w=c[l+124>>2]|0;x=c[l+128>>2]|0;u=c[l+132>>2]|0;o=a+6|0;t=a+8|0;b[t>>1]=b[o>>1]|0;r=a+4|0;b[o>>1]=b[r>>1]|0;s=a+2|0;b[r>>1]=b[s>>1]|0;b[s>>1]=b[a>>1]|0;b[a>>1]=g;l=g<<16>>16<14746?g<<16>>16>9830&1:2;n=a+12|0;g=b[n>>1]|0;p=g<<15;do if((p|0)<=536870911)if((p|0)<-536870912){c[m>>2]=1;g=-2147483648;break}else{g=g<<17;break}else{c[m>>2]=1;g=2147483647}while(0);y=f<<16>>16;q=a+16|0;if((Ce(g,m)|0)<<16>>16>=f<<16>>16){p=b[q>>1]|0;if(p<<16>>16>0){p=(p&65535)+65535&65535;b[q>>1]=p}if(!(p<<16>>16)){g=(b[a>>1]|0)<9830;g=(b[s>>1]|0)<9830?(g?2:1):g&1;if((b[r>>1]|0)<9830)g=(g&65535)+1&65535;if((b[o>>1]|0)<9830)g=(g&65535)+1&65535;if((b[t>>1]|0)<9830)g=(g&65535)+1&65535;p=0;l=g<<16>>16>2?0:l}}else{b[q>>1]=2;p=2}s=l<<16>>16;t=a+10|0;s=(p<<16>>16==0?(s|0)>((b[t>>1]|0)+1|0):0)?s+65535&65535:l;a=(b[a+14>>1]|0)==1?0:f<<16>>16<10?2:s<<16>>16<2&p<<16>>16>0?(s&65535)+1&65535:s;b[t>>1]=a;b[n>>1]=f;switch(d|0){case 4:case 6:case 7:break;default:if(a<<16>>16<2){p=0;l=0;o=h;n=z;while(1){if(!(b[o>>1]|0))g=0;else{l=l<<16>>16;b[A+(l<<1)>>1]=p;g=b[o>>1]|0;l=l+1&65535}b[n>>1]=g;b[o>>1]=0;p=p+1<<16>>16;if(p<<16>>16>=40){t=l;break}else{o=o+2|0;n=n+2|0}}s=a<<16>>16==0;s=(d|0)==5?(s?v:w):s?x:u;if(t<<16>>16>0){r=0;do{q=b[A+(r<<1)>>1]|0;l=q<<16>>16;a=b[z+(l<<1)>>1]|0;if(q<<16>>16<40){p=a<<16>>16;o=39-q&65535;n=q;l=h+(l<<1)|0;g=s;while(1){d=(Z(b[g>>1]|0,p)|0)>>>15&65535;b[l>>1]=Rd(b[l>>1]|0,d,m)|0;n=n+1<<16>>16;if(n<<16>>16>=40)break;else{l=l+2|0;g=g+2|0}}if(q<<16>>16>0){l=s+(o+1<<1)|0;B=36}}else{l=s;B=36}if((B|0)==36){B=0;g=a<<16>>16;p=0;o=h;while(1){d=(Z(b[l>>1]|0,g)|0)>>>15&65535;b[o>>1]=Rd(b[o>>1]|0,d,m)|0;p=p+1<<16>>16;if(p<<16>>16>=q<<16>>16)break;else{o=o+2|0;l=l+2|0}}}r=r+1|0}while((r&65535)<<16>>16!=t<<16>>16)}}}r=j<<16>>16;s=y<<1;g=k<<16>>16;n=0-g<<16;l=n>>16;if(k<<16>>16>0){p=0;o=e;while(1){a=Z(b[e+(p<<1)>>1]|0,r)|0;if((a|0)==1073741824){c[m>>2]=1;n=2147483647}else n=a<<1;k=Z(s,b[h>>1]|0)|0;a=k+n|0;if((k^n|0)>-1&(a^n|0)<0){c[m>>2]=1;a=(n>>>31)+2147483647|0}k=a<>1]=Ce((k>>g|0)==(a|0)?k:a>>31^2147483647,m)|0;p=p+1|0;if((p|0)==40)break;else{h=h+2|0;o=o+2|0}}i=C;return}if((n|0)<2031616){p=0;o=e;while(1){a=Z(b[e+(p<<1)>>1]|0,r)|0;if((a|0)==1073741824){c[m>>2]=1;n=2147483647}else n=a<<1;k=Z(s,b[h>>1]|0)|0;a=k+n|0;if((k^n|0)>-1&(a^n|0)<0){c[m>>2]=1;a=(n>>>31)+2147483647|0}b[o>>1]=Ce(a>>l,m)|0;p=p+1|0;if((p|0)==40)break;else{h=h+2|0;o=o+2|0}}i=C;return}else{o=0;n=e;while(1){a=Z(b[e+(o<<1)>>1]|0,r)|0;if((a|0)==1073741824){c[m>>2]=1;a=2147483647}else a=a<<1;k=Z(s,b[h>>1]|0)|0;if((k^a|0)>-1&(k+a^a|0)<0)c[m>>2]=1;b[n>>1]=Ce(0,m)|0;o=o+1|0;if((o|0)==40)break;else{h=h+2|0;n=n+2|0}}i=C;return}}function xb(a){a=a|0;if(!a){a=-1;return a|0};b[a>>1]=0;b[a+2>>1]=0;b[a+4>>1]=0;b[a+6>>1]=0;b[a+8>>1]=0;b[a+10>>1]=0;a=0;return a|0}function yb(a,c,d,e){a=a|0;c=c|0;d=d|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;if(d<<16>>16<=0)return;f=a+10|0;j=a+8|0;l=a+4|0;m=a+6|0;n=a+2|0;g=b[l>>1]|0;h=b[m>>1]|0;i=b[a>>1]|0;k=b[n>>1]|0;o=0;while(1){p=b[f>>1]|0;q=b[j>>1]|0;b[f>>1]=q;r=b[c>>1]|0;b[j>>1]=r;p=((r<<16>>16)*7699|0)+((Z(i<<16>>16,-7667)|0)+(((g<<16>>16)*15836|0)+((h<<16>>16)*15836>>15))+((Z(k<<16>>16,-7667)|0)>>15))+(Z(q<<16>>16,-15398)|0)+((p<<16>>16)*7699|0)|0;q=p<<3;p=(q>>3|0)==(p|0)?q:p>>31^2147483647;q=p<<1;b[c>>1]=Ce((q>>1|0)==(p|0)?q:p>>31^2147483647,e)|0;i=b[l>>1]|0;b[a>>1]=i;k=b[m>>1]|0;b[n>>1]=k;g=p>>>16&65535;b[l>>1]=g;h=(p>>>1)-(p>>16<<15)&65535;b[m>>1]=h;o=o+1<<16>>16;if(o<<16>>16>=d<<16>>16)break;else c=c+2|0}return}function zb(a){a=a|0;if(!a)a=-1;else{b[a>>1]=0;a=0}return a|0}function Ab(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=f<<16>>16;h=d+(j+-1<<1)|0;j=j+-2|0;k=b[h>>1]|0;if(f<<16>>16<2)f=e<<16>>16;else{f=e<<16>>16;i=0;d=d+(j<<1)|0;while(1){e=(Z(b[d>>1]|0,f)|0)>>15;if((e|0)>32767){c[g>>2]=1;e=32767}b[h>>1]=Ge(b[h>>1]|0,e&65535,g)|0;h=h+-2|0;i=i+1<<16>>16;if((i<<16>>16|0)>(j|0))break;else d=d+-2|0}}f=(Z(b[a>>1]|0,f)|0)>>15;if((f|0)<=32767){j=f;j=j&65535;i=b[h>>1]|0;g=Ge(i,j,g)|0;b[h>>1]=g;b[a>>1]=k;return}c[g>>2]=1;j=32767;j=j&65535;i=b[h>>1]|0;g=Ge(i,j,g)|0;b[h>>1]=g;b[a>>1]=k;return}function Bb(a){a=a|0;var c=0,d=0,e=0;if(!a){e=-1;return e|0}Qe(a+104|0,0,340)|0;c=a+102|0;d=a;e=d+100|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(e|0));Ba(c)|0;zb(a+100|0)|0;e=0;return e|0}function Cb(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var 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;w=i;i=i+96|0;s=w+22|0;t=w;u=w+44|0;Pe(d+124|0,f|0,320)|0;o=u+22|0;p=d+100|0;q=d+80|0;r=d+102|0;if((e&-2|0)==6){n=0;while(1){Ie(g,702,s);Ie(g,722,t);m=d+104+(n+10<<1)|0;Be(s,m,d,40);k=u;j=s;e=k+22|0;do{b[k>>1]=b[j>>1]|0;k=k+2|0;j=j+2|0}while((k|0)<(e|0));k=o;e=k+22|0;do{b[k>>1]=0;k=k+2|0}while((k|0)<(e|0));He(t,u,u,22,o,0);e=0;k=21;do{j=b[u+(k<<16>>16<<1)>>1]|0;j=Z(j,j)|0;if((j|0)==1073741824){v=7;break}l=j<<1;j=l+e|0;if((l^e|0)>-1&(j^e|0)<0){c[h>>2]=1;e=(e>>>31)+2147483647|0}else e=j;k=k+-1<<16>>16}while(k<<16>>16>-1);if((v|0)==7){v=0;c[h>>2]=1}l=e>>>16&65535;j=20;e=0;k=20;while(1){j=Z(b[u+(j+1<<1)>>1]|0,b[u+(j<<1)>>1]|0)|0;if((j|0)==1073741824){v=13;break}x=j<<1;j=x+e|0;if((x^e|0)>-1&(j^e|0)<0){c[h>>2]=1;e=(e>>>31)+2147483647|0}else e=j;j=(k&65535)+-1<<16>>16;if(j<<16>>16>-1){j=j<<16>>16;k=k+-1|0}else break}if((v|0)==13){v=0;c[h>>2]=1}e=e>>16;if((e|0)<1)e=0;else e=Td((e*26214|0)>>>15&65535,l)|0;Ab(p,d,e,40,h);e=f+(n<<1)|0;He(t,d,e,40,q,1);Ca(r,m,e,29491,40,h);e=(n<<16)+2621440|0;if((e|0)<10485760){n=e>>16;g=g+22|0}else break}k=d+104|0;j=d+424|0;e=k+20|0;do{a[k>>0]=a[j>>0]|0;k=k+1|0;j=j+1|0}while((k|0)<(e|0));i=w;return}else{n=0;while(1){Ie(g,742,s);Ie(g,762,t);m=d+104+(n+10<<1)|0;Be(s,m,d,40);k=u;j=s;e=k+22|0;do{b[k>>1]=b[j>>1]|0;k=k+2|0;j=j+2|0}while((k|0)<(e|0));k=o;e=k+22|0;do{b[k>>1]=0;k=k+2|0}while((k|0)<(e|0));He(t,u,u,22,o,0);e=0;k=21;do{j=b[u+(k<<16>>16<<1)>>1]|0;j=Z(j,j)|0;if((j|0)==1073741824){v=22;break}x=j<<1;j=x+e|0;if((x^e|0)>-1&(j^e|0)<0){c[h>>2]=1;e=(e>>>31)+2147483647|0}else e=j;k=k+-1<<16>>16}while(k<<16>>16>-1);if((v|0)==22){v=0;c[h>>2]=1}l=e>>>16&65535;j=20;e=0;k=20;while(1){j=Z(b[u+(j+1<<1)>>1]|0,b[u+(j<<1)>>1]|0)|0;if((j|0)==1073741824){v=28;break}x=j<<1;j=x+e|0;if((x^e|0)>-1&(j^e|0)<0){c[h>>2]=1;e=(e>>>31)+2147483647|0}else e=j;j=(k&65535)+-1<<16>>16;if(j<<16>>16>-1){j=j<<16>>16;k=k+-1|0}else break}if((v|0)==28){v=0;c[h>>2]=1}e=e>>16;if((e|0)<1)e=0;else e=Td((e*26214|0)>>>15&65535,l)|0;Ab(p,d,e,40,h);e=f+(n<<1)|0;He(t,d,e,40,q,1);Ca(r,m,e,29491,40,h);e=(n<<16)+2621440|0;if((e|0)<10485760){n=e>>16;g=g+22|0}else break}k=d+104|0;j=d+424|0;e=k+20|0;do{a[k>>0]=a[j>>0]|0;k=k+1|0;j=j+1|0}while((k|0)<(e|0));i=w;return}}function Db(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(1764)|0;if(!d){a=-1;return a|0}if((Ua(d)|0)<<16>>16==0?(e=d+1748|0,(xb(e)|0)<<16>>16==0):0){Va(d,0)|0;Bb(d+1304|0)|0;xb(e)|0;c[d+1760>>2]=0;c[a>>2]=d;a=0;return a|0}b=c[d>>2]|0;if(!b){a=-1;return a|0}Ke(b);c[d>>2]=0;a=-1;return a|0}function Eb(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Fb(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var 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;v=i;i=i+208|0;u=v+88|0;t=v;s=a+1164|0;j=c[a+1256>>2]|0;if((g+-5|0)>>>0<2){r=j+16|0;if((b[r>>1]|0)>0){q=c[(c[a+1260>>2]|0)+32>>2]|0;p=0;j=0;while(1){o=q+(p<<1)|0;m=b[o>>1]|0;if(m<<16>>16>0){l=f;n=0;k=0;while(1){k=e[l>>1]|k<<1&131070;n=n+1<<16>>16;if(n<<16>>16>=m<<16>>16)break;else l=l+2|0}k=k&65535}else k=0;b[u+(p<<1)>>1]=k;j=j+1<<16>>16;if(j<<16>>16<(b[r>>1]|0)){f=f+(b[o>>1]<<1)|0;p=j<<16>>16}else break}}}else{q=j+(d<<1)|0;if((b[q>>1]|0)>0){r=c[(c[a+1260>>2]|0)+(d<<2)>>2]|0;o=0;j=0;while(1){p=r+(o<<1)|0;m=b[p>>1]|0;if(m<<16>>16>0){l=f;n=0;k=0;while(1){k=e[l>>1]|k<<1&131070;n=n+1<<16>>16;if(n<<16>>16>=m<<16>>16)break;else l=l+2|0}k=k&65535}else k=0;b[u+(o<<1)>>1]=k;j=j+1<<16>>16;if(j<<16>>16<(b[q>>1]|0)){f=f+(b[p>>1]<<1)|0;o=j<<16>>16}else break}}}Wa(a,d,u,g,h,t);Cb(a+1304|0,d,h,t,s);yb(a+1748|0,h,160,s);j=0;do{a=h+(j<<1)|0;b[a>>1]=e[a>>1]&65528;j=j+1|0}while((j|0)!=160);i=v;return}function Gb(a,f,g,h){a=a|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;j=c[h+100>>2]|0;k=(e[(c[h+96>>2]|0)+(a<<1)>>1]|0)+65535|0;h=k&65535;i=h<<16>>16>-1;if(a>>>0<8){if(!i)return;j=c[j+(a<<2)>>2]|0;i=k<<16>>16;while(1){b[g+(b[j+(i<<1)>>1]<<1)>>1]=(d[f+(i>>3)>>0]|0)>>>(i&7^7)&1;h=h+-1<<16>>16;if(h<<16>>16>-1)i=h<<16>>16;else break}return}else{if(!i)return;i=k<<16>>16;while(1){b[g+(i<<1)>>1]=(d[f+(i>>3)>>0]|0)>>>(i&7^7)&1;h=h+-1<<16>>16;if(h<<16>>16>-1)i=h<<16>>16;else break}return}}function Hb(a,b,c){a=a|0;b=b|0;c=c|0;a=vd(a,c,31764)|0;return ((sd(b)|0|a)<<16>>16!=0)<<31>>31|0}function Ib(a,b){a=a|0;b=b|0;wd(a);td(b);return}function Jb(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0;q=i;i=i+512|0;m=q+8|0;n=q+4|0;o=q;c[o>>2]=0;p=l<<16>>16==3;if(!((l&65535)<2|p&1)){if(l<<16>>16!=2){j=-1;i=q;return j|0}xd(d,g,h,m+2|0,o);d=c[o>>2]|0;c[k>>2]=d;ud(f,d,n);f=c[n>>2]|0;b[m>>1]=f;b[m+490>>1]=(f|0)==3?-1:g&65535;a[j>>0]=f;f=1;do{m=m+1|0;a[j+f>>0]=a[m>>0]|0;f=f+1|0}while((f|0)!=492);m=492;i=q;return m|0}xd(d,g,h,m,o);ud(f,c[o>>2]|0,n);h=c[n>>2]|0;if((h|0)!=3){f=c[o>>2]|0;c[k>>2]=f;if((f|0)==8){switch(h|0){case 1:{b[m+70>>1]=0;break}case 2:{o=m+70|0;b[o>>1]=e[o>>1]|0|1;break}default:{}}b[m+72>>1]=g&1;b[m+74>>1]=g>>>1&1;b[m+76>>1]=g>>>2&1;f=8}}else{c[k>>2]=15;f=15}if(p){tc(f,m,j,(c[d+4>>2]|0)+2392|0);j=b[3404+(c[k>>2]<<16>>16<<1)>>1]|0;i=q;return j|0}switch(l<<16>>16){case 0:{sc(f,m,j,(c[d+4>>2]|0)+2392|0);j=b[3404+(c[k>>2]<<16>>16<<1)>>1]|0;i=q;return j|0}case 1:{rc(f,m,j,(c[d+4>>2]|0)+2392|0);j=b[3436+(c[k>>2]<<16>>16<<1)>>1]|0;i=q;return j|0}default:{j=-1;i=q;return j|0}}return 0}function Kb(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=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;y=i;i=i+480|0;x=y;g=240;l=f;k=a;j=x;h=0;while(1){w=((Z(b[l>>1]|0,b[k>>1]|0)|0)+16384|0)>>>15;b[j>>1]=w;w=w<<16;h=(Z(w>>15,w>>16)|0)+h|0;if((h|0)<0){m=4;break}g=g+-1|0;if(!((g&65535)<<16>>16)){g=0;break}else{l=l+2|0;k=k+2|0;j=j+2|0}}if((m|0)==4){h=g&65535;j=240-g|0;if(!(h<<16>>16))g=0;else{l=h;k=f+(j<<1)|0;g=a+(j<<1)|0;h=x+(j<<1)|0;while(1){b[h>>1]=((Z(b[k>>1]|0,b[g>>1]|0)|0)+16384|0)>>>15;l=l+-1<<16>>16;if(!(l<<16>>16)){g=0;break}else{k=k+2|0;g=g+2|0;h=h+2|0}}}do{k=g&65535;g=120;j=x;h=0;while(1){w=(b[j>>1]|0)>>>2;u=j+2|0;b[j>>1]=w;w=w<<16>>16;w=Z(w,w)|0;v=(b[u>>1]|0)>>>2;b[u>>1]=v;v=v<<16>>16;h=((Z(v,v)|0)+w<<1)+h|0;g=g+-1<<16>>16;if(!(g<<16>>16))break;else j=j+4|0}g=k+4|0}while((h|0)<1)}w=h+1|0;v=(pe(w)|0)<<16>>16;w=w<>1]=w>>>16;b[e>>1]=(w>>>1)-(w>>16<<15);w=x+478|0;l=c<<16>>16;if(c<<16>>16<=0){x=v-g|0;x=x&65535;i=y;return x|0}r=x+476|0;s=v+1|0;t=239-l|0;u=x+(236-l<<1)|0;c=l;d=d+(l<<1)|0;e=e+(l<<1)|0;while(1){m=Z((t>>>1)+65535&65535,-2)|0;k=x+(m+236<<1)|0;m=u+(m<<1)|0;f=240-c|0;q=f+-1|0;j=x+(q<<1)|0;a=q>>>1&65535;f=x+(f+-2<<1)|0;l=Z(b[w>>1]|0,b[j>>1]|0)|0;if(!(a<<16>>16)){m=f;k=r}else{p=r;o=w;while(1){h=j+-4|0;n=o+-4|0;l=(Z(b[p>>1]|0,b[f>>1]|0)|0)+l|0;a=a+-1<<16>>16;l=(Z(b[n>>1]|0,b[h>>1]|0)|0)+l|0;if(!(a<<16>>16))break;else{f=j+-6|0;p=o+-6|0;j=h;o=n}}}if(q&1)l=(Z(b[k>>1]|0,b[m>>1]|0)|0)+l|0;q=l<>1]=q>>>16;b[e>>1]=(q>>>1)-(q>>16<<15);if((c&65535)+-1<<16>>16<<16>>16>0){t=t+1|0;u=u+2|0;c=c+-1|0;d=d+-2|0;e=e+-2|0}else break}x=v-g|0;x=x&65535;i=y;return x|0}function Lb(a,c,d,f,g,h,j,k){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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,G=0,H=0,I=0,J=0,K=0;E=i;i=i+3440|0;D=E+3420|0;z=E+3400|0;A=E+3224|0;C=E;x=E+3320|0;B=E+3240|0;y=E+24|0;hc(d,a,x,2,k);rd(x,c,B,A,5,z,5,k);fc(d,B,y,k);pd(10,5,5,x,y,z,A,C,k);c=f;k=c+80|0;do{b[c>>1]=0;c=c+2|0}while((c|0)<(k|0));b[h>>1]=65535;b[h+2>>1]=65535;b[h+4>>1]=65535;b[h+6>>1]=65535;b[h+8>>1]=65535;p=0;q=C;r=D;do{a=b[q>>1]|0;q=q+2|0;l=(a*6554|0)>>>15;m=l<<16>>16;c=f+(a<<1)|0;k=b[c>>1]|0;if((b[B+(a<<1)>>1]|0)>0){b[c>>1]=k+4096;b[r>>1]=8192;n=l}else{b[c>>1]=k+61440;b[r>>1]=-8192;n=m+8|0}r=r+2|0;o=n&65535;c=a-(l<<2)-m<<16>>16;l=h+(c<<1)|0;k=b[l>>1]|0;a=k<<16>>16;do if(k<<16>>16>=0){m=n<<16>>16;if(!((m^a)&8)){c=h+(c+5<<1)|0;if((a|0)>(m|0)){b[c>>1]=k;b[l>>1]=o;break}else{b[c>>1]=o;break}}else{c=h+(c+5<<1)|0;if((a&7)>>>0>(m&7)>>>0){b[c>>1]=o;break}else{b[c>>1]=k;b[l>>1]=o;break}}}else b[l>>1]=o;while(0);p=p+1<<16>>16}while(p<<16>>16<10);r=D+2|0;p=D+4|0;n=D+6|0;m=D+8|0;l=D+10|0;c=D+12|0;k=D+14|0;a=D+16|0;s=D+18|0;t=40;u=d+(0-(b[C>>1]|0)<<1)|0;v=d+(0-(b[C+2>>1]|0)<<1)|0;w=d+(0-(b[C+4>>1]|0)<<1)|0;x=d+(0-(b[C+6>>1]|0)<<1)|0;y=d+(0-(b[C+8>>1]|0)<<1)|0;z=d+(0-(b[C+10>>1]|0)<<1)|0;A=d+(0-(b[C+12>>1]|0)<<1)|0;B=d+(0-(b[C+14>>1]|0)<<1)|0;f=d+(0-(b[C+16>>1]|0)<<1)|0;q=d+(0-(b[C+18>>1]|0)<<1)|0;o=g;while(1){K=(Z(b[D>>1]|0,b[u>>1]|0)|0)>>7;J=(Z(b[r>>1]|0,b[v>>1]|0)|0)>>7;I=(Z(b[p>>1]|0,b[w>>1]|0)|0)>>7;H=(Z(b[n>>1]|0,b[x>>1]|0)|0)>>7;G=(Z(b[m>>1]|0,b[y>>1]|0)|0)>>7;F=(Z(b[l>>1]|0,b[z>>1]|0)|0)>>7;C=(Z(b[c>>1]|0,b[A>>1]|0)|0)>>7;d=(Z(b[k>>1]|0,b[B>>1]|0)|0)>>>7;g=(Z(b[a>>1]|0,b[f>>1]|0)|0)>>>7;b[o>>1]=(K+128+J+I+H+G+F+C+d+g+((Z(b[s>>1]|0,b[q>>1]|0)|0)>>>7)|0)>>>8;t=t+-1<<16>>16;if(!(t<<16>>16))break;else{u=u+2|0;v=v+2|0;w=w+2|0;x=x+2|0;y=y+2|0;z=z+2|0;A=A+2|0;B=B+2|0;f=f+2|0;q=q+2|0;o=o+2|0}}c=0;do{k=h+(c<<1)|0;a=b[k>>1]|0;if((c|0)<5)a=(e[j+((a&7)<<1)>>1]|a&8)&65535;else a=b[j+((a&7)<<1)>>1]|0;b[k>>1]=a;c=c+1|0}while((c|0)!=10);i=E;return}function Mb(a,d,e,f,g,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+3456|0;I=N+3448|0;G=N+3360|0;E=N+3368|0;p=N+3280|0;H=N+3200|0;F=N;K=(f&65535)<<17;M=e<<16>>16;J=e<<16>>16<40;if(J){f=K>>16;e=M;do{m=(Z(b[d+(e-M<<1)>>1]|0,f)|0)>>15;if((m|0)>32767){c[k>>2]=1;m=32767}D=d+(e<<1)|0;b[D>>1]=Rd(b[D>>1]|0,m&65535,k)|0;e=e+1|0}while((e&65535)<<16>>16!=40)}hc(d,a,E,1,k);qd(E,H,p,8);fc(d,H,F,k);D=G+2|0;b[G>>1]=0;b[D>>1]=1;a=1;m=0;o=1;p=0;n=-1;do{B=b[2830+(p<<1)>>1]|0;C=B<<16>>16;A=0;do{y=b[2834+(A<<1)>>1]|0;z=y<<16>>16;x=a;v=C;u=o;w=B;t=n;while(1){l=b[E+(v<<1)>>1]|0;r=b[F+(v*80|0)+(v<<1)>>1]|0;e=z;o=1;s=y;a=y;n=-1;while(1){f=Rd(l,b[E+(e<<1)>>1]|0,k)|0;f=f<<16>>16;f=(Z(f,f)|0)>>>15;q=(b[F+(v*80|0)+(e<<1)>>1]<<15)+32768+((b[F+(e*80|0)+(e<<1)>>1]|0)+r<<14)|0;if(((Z(f<<16>>16,o<<16>>16)|0)-(Z(q>>16,n<<16>>16)|0)<<1|0)>0){o=q>>>16&65535;a=s;n=f&65535}q=e+5|0;s=q&65535;if(s<<16>>16>=40)break;else e=q<<16>>16}if(((Z(n<<16>>16,u<<16>>16)|0)-(Z(o<<16>>16,t<<16>>16)|0)<<1|0)>0){b[G>>1]=w;b[D>>1]=a;m=w}else{a=x;o=u;n=t}q=v+5|0;w=q&65535;if(w<<16>>16>=40)break;else{x=a;v=q<<16>>16;u=o;t=n}}A=A+1|0}while((A|0)!=4);p=p+1|0}while((p|0)!=2);r=a;s=m;f=g;e=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(e|0));o=s;e=0;q=0;f=0;while(1){m=o<<16>>16;l=b[H+(m<<1)>>1]|0;a=(m*6554|0)>>>15;o=a<<16;p=o>>15;n=m-(p+(a<<3)<<16>>17)|0;switch(n<<16>>16|0){case 0:{p=o>>10;a=1;break}case 1:{if(!((e&65535)<<16>>16))a=0;else{p=a<<22>>16|16;a=1}break}case 2:{p=a<<22>>16|32;a=1;break}case 3:{p=a<<17>>16|1;a=0;break}case 4:{p=a<<22>>16|48;a=1;break}default:{p=a;a=n&65535}}p=p&65535;n=g+(m<<1)|0;if(l<<16>>16>0){b[n>>1]=8191;b[I+(e<<1)>>1]=32767;m=a<<16>>16;if(a<<16>>16<0){m=0-m<<16;if((m|0)<983040)m=1>>>(m>>16)&65535;else m=0}else{F=1<>16>>m|0)==1?F&65535:32767}f=Rd(f,m,k)|0}else{b[n>>1]=-8192;b[I+(e<<1)>>1]=-32768}m=Rd(q,p,k)|0;e=e+1|0;if((e|0)==2){q=m;break}o=b[G+(e<<1)>>1]|0;q=m}b[j>>1]=f;p=I+2|0;o=b[I>>1]|0;a=0;n=d+(0-(s<<16>>16)<<1)|0;m=d+(0-(r<<16>>16)<<1)|0;do{f=Z(b[n>>1]|0,o)|0;n=n+2|0;if((f|0)!=1073741824?(L=f<<1,!((f|0)>0&(L|0)<0)):0)l=L;else{c[k>>2]=1;l=2147483647}e=Z(b[p>>1]|0,b[m>>1]|0)|0;m=m+2|0;if((e|0)!=1073741824){f=(e<<1)+l|0;if((e^l|0)>0&(f^l|0)<0){c[k>>2]=1;f=(l>>>31)+2147483647|0}}else{c[k>>2]=1;f=2147483647}b[h+(a<<1)>>1]=Ce(f,k)|0;a=a+1|0}while((a|0)!=40);if(!J){i=N;return q|0}e=K>>16;f=M;do{l=(Z(b[g+(f-M<<1)>>1]|0,e)|0)>>15;if((l|0)>32767){c[k>>2]=1;l=32767}h=g+(f<<1)|0;b[h>>1]=Rd(b[h>>1]|0,l&65535,k)|0;f=f+1|0}while((f&65535)<<16>>16!=40);i=N;return q|0}function Nb(a,d,e,f,g,h,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+3456|0;r=x+3360|0;s=x+3368|0;t=x+3280|0;u=x+3200|0;v=x;w=g<<16>>16;p=w<<1;if((p|0)==(w<<17>>16|0))q=p;else{c[m>>2]=1;q=g<<16>>16>0?32767:-32768}w=f<<16>>16;n=f<<16>>16<40;if(n){g=q<<16>>16;o=w;do{f=e+(o<<1)|0;p=(Z(b[e+(o-w<<1)>>1]|0,g)|0)>>15;if((p|0)>32767){c[m>>2]=1;p=32767}b[f>>1]=Rd(b[f>>1]|0,p&65535,m)|0;o=o+1|0}while((o&65535)<<16>>16!=40)}hc(e,d,s,1,m);qd(s,u,t,8);fc(e,u,v,m);Ob(a,s,v,l,r);p=Pb(a,r,u,h,e,j,k,m)|0;if(!n){i=x;return p|0}o=q<<16>>16;g=w;do{f=h+(g<<1)|0;n=(Z(b[h+(g-w<<1)>>1]|0,o)|0)>>15;if((n|0)>32767){c[m>>2]=1;n=32767}b[f>>1]=Rd(b[f>>1]|0,n&65535,m)|0;g=g+1|0}while((g&65535)<<16>>16!=40);i=x;return p|0}function Ob(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var 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,v=0,w=0,x=0;x=g+2|0;b[g>>1]=0;b[x>>1]=1;v=a<<16>>16<<1;h=1;w=0;a=-1;do{u=(w<<3)+v<<16>>16;k=b[f+(u<<1)>>1]|0;u=b[f+((u|1)<<1)>>1]|0;i=k<<16>>16;a:do if(k<<16>>16<40){t=u<<16>>16;if(u<<16>>16<40)s=h;else while(1){if((a<<16>>16|0)<(0-(h<<16>>16)|0)){b[g>>1]=k;b[x>>1]=u;j=1;a=-1}else j=h;h=i+5|0;k=h&65535;if(k<<16>>16>=40){h=j;break a}else{i=h<<16>>16;h=j}}while(1){q=b[d+(i*80|0)+(i<<1)>>1]|0;p=e[c+(i<<1)>>1]|0;o=t;h=1;r=u;j=u;l=-1;while(1){n=(e[c+(o<<1)>>1]|0)+p<<16>>16;n=(Z(n,n)|0)>>>15;m=(b[d+(i*80|0)+(o<<1)>>1]<<15)+32768+((b[d+(o*80|0)+(o<<1)>>1]|0)+q<<14)|0;if(((Z(n<<16>>16,h<<16>>16)|0)-(Z(m>>16,l<<16>>16)|0)<<1|0)>0){h=m>>>16&65535;j=r;l=n&65535}m=o+5|0;r=m&65535;if(r<<16>>16>=40)break;else o=m<<16>>16}if(((Z(l<<16>>16,s<<16>>16)|0)-(Z(h<<16>>16,a<<16>>16)|0)<<1|0)>0){b[g>>1]=k;b[x>>1]=j;a=l}else h=s;i=i+5|0;k=i&65535;if(k<<16>>16>=40)break;else{i=i<<16>>16;s=h}}}while(0);w=w+1|0}while((w|0)!=2);return}function Pb(a,d,e,f,g,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;k=f;l=k+80|0;do{b[k>>1]=0;k=k+2|0}while((k|0)<(l|0));k=b[d>>1]|0;o=(k*6554|0)>>>15;l=o<<16>>16;n=(748250>>>((k+(Z(l,-5)|0)<<16>>16)+((a<<16>>16)*5|0)|0)&1|0)==0;m=(b[e+(k<<1)>>1]|0)>0;p=m?32767:-32768;b[f+(k<<1)>>1]=m?8191:-8192;k=d+2|0;a=b[k>>1]|0;f=f+(a<<1)|0;if((b[e+(a<<1)>>1]|0)>0){b[f>>1]=8191;e=32767;f=(m&1|2)&65535}else{b[f>>1]=-8192;e=-32768;f=m&1}o=((a*6554|0)>>>15<<3)+(n?o:l+64|0)&65535;b[i>>1]=f;n=0;m=g+(0-(b[d>>1]|0)<<1)|0;f=g+(0-(b[k>>1]|0)<<1)|0;do{k=Z(p,b[m>>1]|0)|0;m=m+2|0;if((k|0)==1073741824){c[j>>2]=1;a=2147483647}else a=k<<1;l=Z(e,b[f>>1]|0)|0;f=f+2|0;if((l|0)!=1073741824){k=(l<<1)+a|0;if((l^a|0)>0&(k^a|0)<0){c[j>>2]=1;k=(a>>>31)+2147483647|0}}else{c[j>>2]=1;k=2147483647}b[h+(n<<1)>>1]=Ce(k,j)|0;n=n+1|0}while((n|0)!=40);return o|0}function Qb(a,d,f,g,h,j,k,l){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var 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,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;U=i;i=i+3440|0;M=U+3360|0;N=U+3280|0;P=U+3200|0;O=U;R=(g&65535)<<17;T=f<<16>>16;Q=f<<16>>16<40;if(Q){f=R>>16;m=T;do{g=(Z(b[d+(m-T<<1)>>1]|0,f)|0)>>15;if((g|0)>32767){c[l>>2]=1;g=32767}L=d+(m<<1)|0;b[L>>1]=Rd(b[L>>1]|0,g&65535,l)|0;m=m+1|0}while((m&65535)<<16>>16!=40)}hc(d,a,M,1,l);qd(M,P,N,6);fc(d,P,O,l);L=1;n=2;o=1;g=0;m=1;a=-1;p=1;while(1){K=2;s=2;while(1){H=0;I=0;J=p;G=s;while(1){if(I<<16>>16<40){C=J<<16>>16;D=J<<16>>16<40;E=G<<16>>16;F=G<<16>>16<40;A=I<<16>>16;B=I;while(1){if((b[N+(A<<1)>>1]|0)>-1){x=b[O+(A*80|0)+(A<<1)>>1]|0;if(D){y=e[M+(A<<1)>>1]|0;w=C;r=1;z=J;f=J;s=0;q=-1;while(1){u=(e[M+(w<<1)>>1]|0)+y|0;v=u<<16>>16;v=(Z(v,v)|0)>>>15;t=(b[O+(A*80|0)+(w<<1)>>1]<<15)+32768+((b[O+(w*80|0)+(w<<1)>>1]|0)+x<<14)|0;if(((Z(v<<16>>16,r<<16>>16)|0)-(Z(t>>16,q<<16>>16)|0)<<1|0)>0){r=t>>>16&65535;f=z;s=u&65535;q=v&65535}t=w+5|0;z=t&65535;if(z<<16>>16>=40)break;else w=t<<16>>16}}else{r=1;f=J;s=0}if(F){y=s&65535;z=f<<16>>16;w=(r<<16>>16<<14)+32768|0;v=E;s=1;x=G;q=G;r=-1;while(1){u=(e[M+(v<<1)>>1]|0)+y<<16>>16;u=(Z(u,u)|0)>>>15;t=w+(b[O+(v*80|0)+(v<<1)>>1]<<12)+((b[O+(A*80|0)+(v<<1)>>1]|0)+(b[O+(z*80|0)+(v<<1)>>1]|0)<<13)|0;if(((Z(u<<16>>16,s<<16>>16)|0)-(Z(t>>16,r<<16>>16)|0)<<1|0)>0){s=t>>>16&65535;q=x;r=u&65535}t=v+5|0;x=t&65535;if(x<<16>>16>=40){w=s;v=r;break}else v=t<<16>>16}}else{w=1;q=G;v=-1}s=Z(v<<16>>16,m<<16>>16)|0;if((s|0)==1073741824){c[l>>2]=1;t=2147483647}else t=s<<1;s=Z(w<<16>>16,a<<16>>16)|0;if((s|0)==1073741824){c[l>>2]=1;r=2147483647}else r=s<<1;s=t-r|0;if(((s^t)&(r^t)|0)<0){c[l>>2]=1;s=(t>>>31)+2147483647|0}z=(s|0)>0;n=z?q:n;o=z?f:o;g=z?B:g;m=z?w:m;a=z?v:a}s=A+5|0;B=s&65535;if(B<<16>>16>=40)break;else A=s<<16>>16}}H=H+1<<16>>16;if(H<<16>>16>=3)break;else{F=G;G=J;J=I;I=F}}f=K+2|0;s=f&65535;if(s<<16>>16>=5)break;else K=f&65535}f=L+2|0;p=f&65535;if(p<<16>>16<4)L=f&65535;else{s=n;n=o;break}}f=h;m=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(m|0));v=g<<16>>16;a=b[P+(v<<1)>>1]|0;g=(v*6554|0)>>>15;f=g<<16;m=v-(((f>>16)*327680|0)>>>16)|0;switch(m<<16>>16|0){case 1:{g=f>>12;break}case 2:{g=f>>8;m=2;break}case 3:{g=g<<20>>16|8;m=1;break}case 4:{g=g<<24>>16|128;m=2;break}default:{}}f=h+(v<<1)|0;if(a<<16>>16>0){b[f>>1]=8191;z=32767;o=65536<<(m<<16>>16)>>>16&65535}else{b[f>>1]=-8192;z=-32768;o=0}t=n<<16>>16;n=b[P+(t<<1)>>1]|0;f=(t*6554|0)>>>15;m=f<<16;a=t-(((m>>16)*327680|0)>>>16)|0;switch(a<<16>>16|0){case 1:{f=m>>12;break}case 2:{f=m>>8;a=2;break}case 3:{f=f<<20>>16|8;a=1;break}case 4:{f=f<<24>>16|128;a=2;break}default:{}}m=h+(t<<1)|0;if(n<<16>>16>0){b[m>>1]=8191;u=32767;o=(65536<<(a<<16>>16)>>>16)+(o&65535)&65535}else{b[m>>1]=-8192;u=-32768}p=f+g|0;r=s<<16>>16;n=b[P+(r<<1)>>1]|0;g=(r*6554|0)>>>15;f=g<<16;m=r-(((f>>16)*327680|0)>>>16)|0;switch(m<<16>>16|0){case 1:{f=f>>12;break}case 2:{f=f>>8;m=2;break}case 3:{f=g<<20>>16|8;m=1;break}case 4:{f=g<<24>>16|128;m=2;break}default:f=g}g=h+(r<<1)|0;if(n<<16>>16>0){b[g>>1]=8191;s=32767;g=(65536<<(m<<16>>16)>>>16)+(o&65535)&65535}else{b[g>>1]=-8192;s=-32768;g=o}q=p+f|0;b[k>>1]=g;o=0;p=d+(0-v<<1)|0;a=d+(0-t<<1)|0;n=d+(0-r<<1)|0;do{g=Z(b[p>>1]|0,z)|0;p=p+2|0;if((g|0)!=1073741824?(S=g<<1,!((g|0)>0&(S|0)<0)):0)m=S;else{c[l>>2]=1;m=2147483647}g=Z(b[a>>1]|0,u)|0;a=a+2|0;if((g|0)!=1073741824){f=(g<<1)+m|0;if((g^m|0)>0&(f^m|0)<0){c[l>>2]=1;f=(m>>>31)+2147483647|0}}else{c[l>>2]=1;f=2147483647}m=Z(b[n>>1]|0,s)|0;n=n+2|0;if((m|0)!=1073741824){g=(m<<1)+f|0;if((m^f|0)>0&(g^f|0)<0){c[l>>2]=1;g=(f>>>31)+2147483647|0}}else{c[l>>2]=1;g=2147483647}b[j+(o<<1)>>1]=Ce(g,l)|0;o=o+1|0}while((o|0)!=40);g=q&65535;if(!Q){i=U;return g|0}m=R>>16;f=T;do{a=(Z(b[h+(f-T<<1)>>1]|0,m)|0)>>15;if((a|0)>32767){c[l>>2]=1;a=32767}j=h+(f<<1)|0;b[j>>1]=Rd(b[j>>1]|0,a&65535,l)|0;f=f+1|0}while((f&65535)<<16>>16!=40);i=U;return g|0}function Rb(a,d,f,g,h,j,k,l,m){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var 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,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,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;da=i;i=i+3456|0;_=da+3448|0;X=da+3360|0;U=da+3368|0;V=da+3280|0;Y=da+3200|0;W=da;aa=(g&65535)<<17;ca=f<<16>>16;$=f<<16>>16<40;if($){f=aa>>16;n=ca;do{g=(Z(b[d+(n-ca<<1)>>1]|0,f)|0)>>15;if((g|0)>32767){c[m>>2]=1;g=32767}T=d+(n<<1)|0;b[T>>1]=Rd(b[T>>1]|0,g&65535,m)|0;n=n+1|0}while((n&65535)<<16>>16!=40)}hc(d,a,U,1,m);qd(U,Y,V,4);fc(d,Y,W,m);R=X+2|0;b[X>>1]=0;S=X+4|0;b[R>>1]=1;T=X+6|0;b[S>>1]=2;b[T>>1]=3;r=3;p=2;o=1;g=0;f=1;n=-1;q=3;do{M=0;N=0;O=q;P=1;Q=2;while(1){if(N<<16>>16<40){G=P<<16>>16;H=P<<16>>16<40;I=Q<<16>>16;J=Q<<16>>16<40;K=O<<16>>16;L=O<<16>>16<40;F=N<<16>>16;E=p;C=o;B=f;D=N;while(1){if((b[V+(F<<1)>>1]|0)>-1){t=b[W+(F*80|0)+(F<<1)>>1]|0;if(H){s=e[U+(F<<1)>>1]|0;u=G;z=1;p=P;o=P;x=0;y=-1;while(1){w=(e[U+(u<<1)>>1]|0)+s|0;v=w<<16>>16;v=(Z(v,v)|0)>>>15;A=(b[W+(F*80|0)+(u<<1)>>1]<<15)+32768+((b[W+(u*80|0)+(u<<1)>>1]|0)+t<<14)|0;if(((Z(v<<16>>16,z<<16>>16)|0)-(Z(A>>16,y<<16>>16)|0)<<1|0)>0){z=A>>>16&65535;o=p;x=w&65535;y=v&65535}A=u+5|0;p=A&65535;if(p<<16>>16>=40)break;else u=A<<16>>16}}else{z=1;o=P;x=0}if(J){f=x&65535;a=o<<16>>16;t=(z<<16>>16<<14)+32768|0;u=I;A=1;s=Q;p=Q;y=0;x=-1;while(1){w=(e[U+(u<<1)>>1]|0)+f|0;v=w<<16>>16;v=(Z(v,v)|0)>>>15;z=t+(b[W+(u*80|0)+(u<<1)>>1]<<12)+((b[W+(F*80|0)+(u<<1)>>1]|0)+(b[W+(a*80|0)+(u<<1)>>1]|0)<<13)|0;if(((Z(v<<16>>16,A<<16>>16)|0)-(Z(z>>16,x<<16>>16)|0)<<1|0)>0){A=z>>>16&65535;p=s;y=w&65535;x=v&65535}z=u+5|0;s=z&65535;if(s<<16>>16>=40)break;else u=z<<16>>16}}else{A=1;p=Q;y=0}if(L){t=y&65535;s=p<<16>>16;a=o<<16>>16;v=(A&65535)<<16|32768;w=K;f=1;u=O;z=O;A=-1;while(1){x=(e[U+(w<<1)>>1]|0)+t<<16>>16;x=(Z(x,x)|0)>>>15;y=(b[W+(w*80|0)+(w<<1)>>1]<<12)+v+((b[W+(a*80|0)+(w<<1)>>1]|0)+(b[W+(s*80|0)+(w<<1)>>1]|0)+(b[W+(F*80|0)+(w<<1)>>1]|0)<<13)|0;if(((Z(x<<16>>16,f<<16>>16)|0)-(Z(y>>16,A<<16>>16)|0)<<1|0)>0){f=y>>>16&65535;z=u;A=x&65535}y=w+5|0;u=y&65535;if(u<<16>>16>=40)break;else w=y<<16>>16}}else{f=1;z=O;A=-1}if(((Z(A<<16>>16,B<<16>>16)|0)-(Z(f<<16>>16,n<<16>>16)|0)<<1|0)>0){b[X>>1]=D;b[R>>1]=o;b[S>>1]=p;b[T>>1]=z;r=z;g=D;n=A}else{p=E;o=C;f=B}}else{p=E;o=C;f=B}w=F+5|0;D=w&65535;if(D<<16>>16>=40)break;else{F=w<<16>>16;E=p;C=o;B=f}}}M=M+1<<16>>16;if(M<<16>>16>=4)break;else{K=Q;L=O;Q=P;P=N;O=K;N=L}}q=q+1<<16>>16}while(q<<16>>16<5);A=r;z=p;y=o;x=g;g=h;f=g+80|0;do{b[g>>1]=0;g=g+2|0}while((g|0)<(f|0));a=x;f=0;n=0;g=0;while(1){p=a<<16>>16;q=b[Y+(p<<1)>>1]|0;a=p*13108>>16;o=p-((a*327680|0)>>>16)|0;a=b[l+(a<<1)>>1]|0;switch(o<<16>>16|0){case 1:{r=a<<16>>16<<3&65535;break}case 2:{r=a<<16>>16<<6&65535;break}case 3:{r=a<<16>>16<<10&65535;break}case 4:{r=((a&65535)<<10|512)&65535;o=3;break}default:r=a}a=h+(p<<1)|0;if(q<<16>>16>0){b[a>>1]=8191;a=32767;g=(65536<<(o<<16>>16)>>>16)+(g&65535)&65535}else{b[a>>1]=-8192;a=-32768}b[_+(f<<1)>>1]=a;n=(r&65535)+(n&65535)|0;f=f+1|0;if((f|0)==4){w=n;break}a=b[X+(f<<1)>>1]|0}b[k>>1]=g;t=_+2|0;u=_+4|0;v=_+6|0;a=b[_>>1]|0;s=0;o=d+(0-(x<<16>>16)<<1)|0;p=d+(0-(y<<16>>16)<<1)|0;q=d+(0-(z<<16>>16)<<1)|0;r=d+(0-(A<<16>>16)<<1)|0;do{g=Z(b[o>>1]|0,a)|0;o=o+2|0;if((g|0)!=1073741824?(ba=g<<1,!((g|0)>0&(ba|0)<0)):0)n=ba;else{c[m>>2]=1;n=2147483647}g=Z(b[t>>1]|0,b[p>>1]|0)|0;p=p+2|0;if((g|0)!=1073741824){f=(g<<1)+n|0;if((g^n|0)>0&(f^n|0)<0){c[m>>2]=1;f=(n>>>31)+2147483647|0}}else{c[m>>2]=1;f=2147483647}g=Z(b[u>>1]|0,b[q>>1]|0)|0;q=q+2|0;if((g|0)!=1073741824){n=(g<<1)+f|0;if((g^f|0)>0&(n^f|0)<0){c[m>>2]=1;n=(f>>>31)+2147483647|0}}else{c[m>>2]=1;n=2147483647}f=Z(b[v>>1]|0,b[r>>1]|0)|0;r=r+2|0;if((f|0)!=1073741824){g=(f<<1)+n|0;if((f^n|0)>0&(g^n|0)<0){c[m>>2]=1;g=(n>>>31)+2147483647|0}}else{c[m>>2]=1;g=2147483647}b[j+(s<<1)>>1]=Ce(g,m)|0;s=s+1|0}while((s|0)!=40);g=w&65535;if(((ca<<16)+-2621440|0)>-1|$^1){i=da;return g|0}n=aa>>16;f=ca;do{a=(Z(b[h+(f-ca<<1)>>1]|0,n)|0)>>15;if((a|0)>32767){c[m>>2]=1;a=32767}j=h+(f<<1)|0;b[j>>1]=Rd(b[j>>1]|0,a&65535,m)|0;f=f+1|0}while((f&65535)<<16>>16!=40);i=da;return g|0}function Sb(a,d,f,g,h,j,k){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+3440|0;t=L+3424|0;G=L+3408|0;H=L+3240|0;u=L+3224|0;E=L+3328|0;s=L+3248|0;F=L+24|0;K=L+16|0;J=L;gc(f,a,E,2,4,4,k);rd(E,d,s,H,4,G,4,k);fc(f,s,F,k);pd(8,4,4,E,F,G,H,u,k);d=g;a=d+80|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(a|0));b[J>>1]=-1;b[K>>1]=-1;C=J+2|0;b[C>>1]=-1;D=K+2|0;b[D>>1]=-1;E=J+4|0;b[E>>1]=-1;F=K+4|0;b[F>>1]=-1;H=J+6|0;b[H>>1]=-1;G=K+6|0;b[G>>1]=-1;q=0;do{o=b[u+(q<<1)>>1]|0;d=o>>>2;m=d&65535;a=o&3;n=(b[s+(o<<1)>>1]|0)>0;o=g+(o<<1)|0;r=n&1^1;b[o>>1]=(e[o>>1]|0)+(n?8191:57345);b[t+(q<<1)>>1]=n?32767:-32768;n=J+(a<<1)|0;o=b[n>>1]|0;do if(o<<16>>16>=0){p=K+(a<<1)|0;l=(o<<16>>16|0)<=(d<<16>>16|0);d=J+((a|4)<<1)|0;if((r&65535|0)==(e[p>>1]&1|0))if(l){b[d>>1]=m;break}else{b[d>>1]=o;b[n>>1]=m;b[p>>1]=r;break}else if(l){b[d>>1]=o;b[n>>1]=m;b[p>>1]=r;break}else{b[d>>1]=m;break}}else{b[n>>1]=m;b[K+(a<<1)>>1]=r}while(0);q=q+1|0}while((q|0)!=8);v=t+2|0;w=t+4|0;x=t+6|0;y=t+8|0;z=t+10|0;A=t+12|0;B=t+14|0;t=b[t>>1]|0;q=0;p=f+(0-(b[u>>1]|0)<<1)|0;o=f+(0-(b[u+2>>1]|0)<<1)|0;n=f+(0-(b[u+4>>1]|0)<<1)|0;m=f+(0-(b[u+6>>1]|0)<<1)|0;d=f+(0-(b[u+8>>1]|0)<<1)|0;a=f+(0-(b[u+10>>1]|0)<<1)|0;l=f+(0-(b[u+12>>1]|0)<<1)|0;f=f+(0-(b[u+14>>1]|0)<<1)|0;do{r=Z(b[p>>1]|0,t)|0;p=p+2|0;if((r|0)!=1073741824?(I=r<<1,!((r|0)>0&(I|0)<0)):0)r=I;else{c[k>>2]=1;r=2147483647}s=Z(b[v>>1]|0,b[o>>1]|0)|0;o=o+2|0;if((s|0)!=1073741824){g=(s<<1)+r|0;if((s^r|0)>0&(g^r|0)<0){c[k>>2]=1;r=(r>>>31)+2147483647|0}else r=g}else{c[k>>2]=1;r=2147483647}s=Z(b[w>>1]|0,b[n>>1]|0)|0;n=n+2|0;if((s|0)!=1073741824){g=(s<<1)+r|0;if((s^r|0)>0&(g^r|0)<0){c[k>>2]=1;g=(r>>>31)+2147483647|0}}else{c[k>>2]=1;g=2147483647}s=Z(b[x>>1]|0,b[m>>1]|0)|0;m=m+2|0;if((s|0)!=1073741824){r=(s<<1)+g|0;if((s^g|0)>0&(r^g|0)<0){c[k>>2]=1;r=(g>>>31)+2147483647|0}}else{c[k>>2]=1;r=2147483647}s=Z(b[y>>1]|0,b[d>>1]|0)|0;d=d+2|0;if((s|0)!=1073741824){g=(s<<1)+r|0;if((s^r|0)>0&(g^r|0)<0){c[k>>2]=1;g=(r>>>31)+2147483647|0}}else{c[k>>2]=1;g=2147483647}s=Z(b[z>>1]|0,b[a>>1]|0)|0;a=a+2|0;if((s|0)!=1073741824){r=(s<<1)+g|0;if((s^g|0)>0&(r^g|0)<0){c[k>>2]=1;r=(g>>>31)+2147483647|0}}else{c[k>>2]=1;r=2147483647}s=Z(b[A>>1]|0,b[l>>1]|0)|0;l=l+2|0;if((s|0)!=1073741824){g=(s<<1)+r|0;if((s^r|0)>0&(g^r|0)<0){c[k>>2]=1;g=(r>>>31)+2147483647|0}}else{c[k>>2]=1;g=2147483647}s=Z(b[B>>1]|0,b[f>>1]|0)|0;f=f+2|0;if((s|0)!=1073741824){r=(s<<1)+g|0;if((s^g|0)>0&(r^g|0)<0){c[k>>2]=1;r=(g>>>31)+2147483647|0}}else{c[k>>2]=1;r=2147483647}b[h+(q<<1)>>1]=Ce(r,k)|0;q=q+1|0}while((q|0)!=40);b[j>>1]=b[K>>1]|0;b[j+2>>1]=b[D>>1]|0;b[j+4>>1]=b[F>>1]|0;b[j+6>>1]=b[G>>1]|0;a=b[J>>1]|0;d=b[J+8>>1]|0;l=b[C>>1]|0;b[j+8>>1]=d<<1&2|a&1|l<<2&4|(((d>>1)*327680|0)+(a>>>1<<16)+(Z(l>>1,1638400)|0)|0)>>>13&65528;l=b[E>>1]|0;a=b[J+12>>1]|0;d=b[J+10>>1]|0;b[j+10>>1]=a<<1&2|l&1|d<<2&4|(((a>>1)*327680|0)+(l>>>1<<16)+(Z(d>>1,1638400)|0)|0)>>>13&65528;d=b[J+14>>1]|0;l=b[H>>1]|0;a=l<<16>>16>>>1;if(!(d&2)){h=a;k=d<<16>>16;K=k>>1;K=K*327680|0;h=h<<16;K=h+K|0;K=K<<5;K=K>>16;K=K|12;K=K*2622|0;K=K>>>16;h=l&65535;h=h&1;k=k<<17;k=k&131072;K=K<<18;k=K|k;k=k>>>16;h=k|h;h=h&65535;j=j+12|0;b[j>>1]=h;i=L;return}h=4-(a<<16>>16)|0;k=d<<16>>16;K=k>>1;K=K*327680|0;h=h<<16;K=h+K|0;K=K<<5;K=K>>16;K=K|12;K=K*2622|0;K=K>>>16;h=l&65535;h=h&1;k=k<<17;k=k&131072;K=K<<18;k=K|k;k=k>>>16;h=k|h;h=h&65535;j=j+12|0;b[j>>1]=h;i=L;return}function Tb(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var 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;r=e<<16>>16;h=0-r|0;e=g+(h<<2)|0;g=((r-(f<<16>>16)|0)>>>2)+1&65535;if(g<<16>>16<=0)return;r=d<<16>>16>>>1&65535;if(!(r<<16>>16)){while(1){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;if(g<<16>>16>1){e=e+16|0;g=g+-1<<16>>16}else break}return}q=a+(h<<1)|0;while(1){l=q+4|0;n=b[l>>1]|0;j=b[q>>1]|0;m=n;k=r;o=a;p=q;q=q+8|0;i=0;h=0;f=0;d=0;while(1){t=b[o>>1]|0;s=(Z(j<<16>>16,t)|0)+i|0;i=b[p+2>>1]|0;h=(Z(i,t)|0)+h|0;j=(Z(m<<16>>16,t)|0)+f|0;f=b[p+6>>1]|0;m=(Z(f,t)|0)+d|0;d=b[o+2>>1]|0;i=s+(Z(d,i)|0)|0;h=h+(Z(n<<16>>16,d)|0)|0;l=l+4|0;f=j+(Z(d,f)|0)|0;j=b[l>>1]|0;d=m+(Z(j<<16>>16,d)|0)|0;k=k+-1<<16>>16;if(!(k<<16>>16))break;t=n;m=j;n=b[p+8>>1]|0;o=o+4|0;p=p+4|0;j=t}c[e>>2]=i<<1;c[e+4>>2]=h<<1;c[e+8>>2]=f<<1;c[e+12>>2]=d<<1;if(g<<16>>16<=1)break;else{e=e+16|0;g=g+-1<<16>>16}}return}function Ub(a,d,f,g,h,j,k,l,m){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+16|0;w=y+2|0;x=y;do if(h<<16>>16>0){s=g<<16>>16;u=0;p=0;g=0;o=0;t=0;while(1){n=b[a+(u<<1)>>1]|0;q=n<<16>>16;p=(Z(q,q)|0)+p|0;q=b[d+(u<<1)>>1]|0;g=(Z(q,q)|0)+g|0;o=(Z(b[f+(u<<1)>>1]|0,q)|0)+o|0;q=Z(q,s)|0;if((q|0)==1073741824){c[m>>2]=1;r=2147483647}else r=q<<1;q=r<<1;q=(Ge(n,Ce((q>>1|0)==(r|0)?q:r>>31^2147483647,m)|0,m)|0)<<16>>16;q=Z(q,q)|0;if((q|0)!=1073741824){n=(q<<1)+t|0;if((q^t|0)>0&(n^t|0)<0){c[m>>2]=1;n=(t>>>31)+2147483647|0}}else{c[m>>2]=1;n=2147483647}u=u+1|0;if((u&65535)<<16>>16==h<<16>>16){t=n;break}else t=n}p=p<<1;g=g<<1;o=o<<1;if((p|0)>=0){if((p|0)<400){n=t;v=14;break}}else{c[m>>2]=1;p=2147483647}r=pe(p)|0;q=r<<16>>16;if(r<<16>>16>0){n=p<>q|0)!=(p|0))n=p>>31^2147483647}else{n=0-q<<16;if((n|0)<2031616)n=p>>(n>>16);else n=0}b[j>>1]=n>>>16;p=g;s=o;n=t;g=15-(r&65535)&65535}else{g=0;o=0;n=0;v=14}while(0);if((v|0)==14){b[j>>1]=0;p=g;s=o;g=-15}b[k>>1]=g;if((p|0)<0){c[m>>2]=1;p=2147483647}q=pe(p)|0;o=q<<16>>16;if(q<<16>>16>0){g=p<>o|0)!=(p|0))g=p>>31^2147483647}else{g=0-o<<16;if((g|0)<2031616)g=p>>(g>>16);else g=0}b[j+2>>1]=g>>>16;b[k+2>>1]=15-(q&65535);p=pe(s)|0;o=p<<16>>16;if(p<<16>>16>0){g=s<>o|0)!=(s|0))g=s>>31^2147483647}else{g=0-o<<16;if((g|0)<2031616)g=s>>(g>>16);else g=0}b[j+4>>1]=g>>>16;b[k+4>>1]=2-(p&65535);p=pe(n)|0;g=p<<16>>16;if(p<<16>>16>0){o=n<>g|0)!=(n|0))o=n>>31^2147483647}else{g=0-g<<16;if((g|0)<2031616)o=n>>(g>>16);else o=0}g=o>>>16&65535;n=15-(p&65535)&65535;b[j+6>>1]=g;b[k+6>>1]=n;if((o>>16|0)<=0){m=0;b[l>>1]=m;i=y;return}o=b[j>>1]|0;if(!(o<<16>>16)){m=0;b[l>>1]=m;i=y;return}g=Td(De(o,1,m)|0,g)|0;g=(g&65535)<<16;o=((Ge(n,b[k>>1]|0,m)|0)&65535)+3|0;n=o&65535;o=o<<16>>16;if(n<<16>>16>0)n=n<<16>>16<31?g>>o:0;else{k=0-o<<16>>16;n=g<>k|0)==(g|0)?n:g>>31^2147483647}de(n,w,x,m);x=Ic((e[w>>1]|0)+65509&65535,b[x>>1]|0,m)|0;w=x<<13;m=Ce((w>>13|0)==(x|0)?w:x>>31^2147483647,m)|0;b[l>>1]=m;i=y;return}function Vb(a,d,f,g,h,j,k,l,m,n,o){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+80|0;v=y;b[k>>1]=b[j>>1]|0;b[l>>1]=b[j+2>>1]|0;r=b[j+4>>1]|0;if(r<<16>>16==-32768)r=32767;else r=0-(r&65535)&65535;b[k+2>>1]=r;b[l+2>>1]=(e[j+6>>1]|0)+1;switch(a|0){case 0:case 5:{u=0;q=0;p=0;t=0;break}default:{u=0;q=1;p=1;t=1}}while(1){s=(b[h+(u<<1)>>1]|0)>>>3;b[v+(u<<1)>>1]=s;s=s<<16>>16;r=Z(s,s)|0;if((r|0)!=1073741824){j=(r<<1)+q|0;if((r^q|0)>0&(j^q|0)<0){c[o>>2]=1;q=(q>>>31)+2147483647|0}else q=j}else{c[o>>2]=1;q=2147483647}r=Z(b[d+(u<<1)>>1]|0,s)|0;if((r|0)!=1073741824){j=(r<<1)+p|0;if((r^p|0)>0&(j^p|0)<0){c[o>>2]=1;p=(p>>>31)+2147483647|0}else p=j}else{c[o>>2]=1;p=2147483647}r=Z(b[g+(u<<1)>>1]|0,s)|0;if((r|0)!=1073741824){j=(r<<1)+t|0;if((r^t|0)>0&(j^t|0)<0){c[o>>2]=1;j=(t>>>31)+2147483647|0}}else{c[o>>2]=1;j=2147483647}u=u+1|0;if((u|0)==40){g=j;s=p;break}else t=j}p=pe(q)|0;j=p<<16>>16;if(p<<16>>16>0){r=q<>j|0)!=(q|0))r=q>>31^2147483647}else{r=0-j<<16;if((r|0)<2031616)r=q>>(r>>16);else r=0}h=k+4|0;b[h>>1]=r>>>16;d=l+4|0;b[d>>1]=-3-(p&65535);q=pe(s)|0;j=q<<16>>16;if(q<<16>>16>0){r=s<>j|0)!=(s|0))r=s>>31^2147483647}else{r=0-j<<16;if((r|0)<2031616)r=s>>(r>>16);else r=0}j=r>>>16;b[k+6>>1]=(j|0)==32768?32767:0-j&65535;b[l+6>>1]=7-(q&65535);q=pe(g)|0;j=q<<16>>16;if(q<<16>>16>0){r=g<>j|0)!=(g|0))r=g>>31^2147483647}else{r=0-j<<16;if((r|0)<2031616)r=g>>(r>>16);else r=0}b[k+8>>1]=r>>>16;b[l+8>>1]=7-(q&65535);switch(a|0){case 0:case 5:{r=0;p=0;break}default:{i=y;return}}do{p=(Z(b[v+(r<<1)>>1]|0,b[f+(r<<1)>>1]|0)|0)+p|0;r=r+1|0}while((r|0)!=40);j=p<<1;r=pe(j)|0;q=r<<16>>16;if(r<<16>>16>0){p=j<>q|0)==(j|0)){w=p;x=40}else{w=j>>31^2147483647;x=40}}else{p=0-q<<16;if((p|0)<2031616){w=j>>(p>>16);x=40}}if((x|0)==40?(w>>16|0)>=1:0){o=De(w>>>16&65535,1,o)|0;b[m>>1]=Td(o,b[h>>1]|0)|0;b[n>>1]=65528-(r&65535)-(e[d>>1]|0);i=y;return}b[m>>1]=0;b[n>>1]=0;i=y;return}function Wb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=0;g=0;do{i=b[a+(h<<1)>>1]|0;g=(Z(i,i)|0)+g|0;h=h+1|0}while((h|0)!=40);if((g|0)<0){c[f>>2]=1;g=2147483647}f=pe(g)|0;a=f<<16>>16;if(f<<16>>16>0){h=g<>a|0)==(g|0))g=h;else g=g>>31^2147483647}else{a=0-a<<16;if((a|0)<2031616)g=g>>(a>>16);else g=0}b[e>>1]=g>>>16;b[d>>1]=16-(f&65535);return}function Xb(a,d,e,f,g,h,j,k,l,m,n,o,p){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0;r=i;i=i+16|0;q=r;if(m>>>0<2){j=Nb(n,a,d,e,f,j,k,q,c[o+76>>2]|0,p)|0;p=c[l>>2]|0;b[p>>1]=j;j=b[q>>1]|0;c[l>>2]=p+4;b[p+2>>1]=j;i=r;return}switch(m|0){case 2:{j=Mb(a,d,e,f,j,k,q,p)|0;p=c[l>>2]|0;b[p>>1]=j;j=b[q>>1]|0;c[l>>2]=p+4;b[p+2>>1]=j;i=r;return}case 3:{j=Qb(a,d,e,f,j,k,q,p)|0;p=c[l>>2]|0;b[p>>1]=j;j=b[q>>1]|0;c[l>>2]=p+4;b[p+2>>1]=j;i=r;return}default:{if((m&-2|0)==4){j=Rb(a,d,e,f,j,k,q,c[o+36>>2]|0,p)|0;p=c[l>>2]|0;b[p>>1]=j;j=b[q>>1]|0;c[l>>2]=p+4;b[p+2>>1]=j;i=r;return}if((m|0)!=6){n=g<<16>>16;n=(n<<17>>17|0)==(n|0)?n<<1:n>>>15^32767;g=e<<16>>16<40;if(!g){Lb(a,h,d,j,k,c[l>>2]|0,c[o+36>>2]|0,p);c[l>>2]=(c[l>>2]|0)+20;i=r;return}q=e<<16>>16;m=n<<16>>16;f=q;do{t=(Z(b[d+(f-q<<1)>>1]|0,m)|0)>>>15&65535;s=d+(f<<1)|0;b[s>>1]=Rd(b[s>>1]|0,t,p)|0;f=f+1|0}while((f&65535)<<16>>16!=40);Lb(a,h,d,j,k,c[l>>2]|0,c[o+36>>2]|0,p);c[l>>2]=(c[l>>2]|0)+20;if(!g){i=r;return}g=e<<16>>16;m=n<<16>>16;q=g;do{f=(Z(b[j+(q-g<<1)>>1]|0,m)|0)>>15;if((f|0)>32767){c[p>>2]=1;f=32767}t=j+(q<<1)|0;b[t>>1]=Rd(b[t>>1]|0,f&65535,p)|0;q=q+1|0}while((q&65535)<<16>>16!=40);i=r;return}o=f<<16>>16;o=(o<<17>>17|0)==(o|0)?o<<1:o>>>15^32767;n=e<<16>>16<40;if(!n){Sb(a,h,d,j,k,c[l>>2]|0,p);c[l>>2]=(c[l>>2]|0)+14;i=r;return}q=e<<16>>16;m=o<<16>>16;f=q;do{g=(Z(b[d+(f-q<<1)>>1]|0,m)|0)>>15;if((g|0)>32767){c[p>>2]=1;g=32767}t=d+(f<<1)|0;b[t>>1]=Rd(b[t>>1]|0,g&65535,p)|0;f=f+1|0}while((f&65535)<<16>>16!=40);Sb(a,h,d,j,k,c[l>>2]|0,p);c[l>>2]=(c[l>>2]|0)+14;if(!n){i=r;return}g=e<<16>>16;m=o<<16>>16;q=g;do{f=(Z(b[j+(q-g<<1)>>1]|0,m)|0)>>15;if((f|0)>32767){c[p>>2]=1;f=32767}t=j+(q<<1)|0;b[t>>1]=Rd(b[t>>1]|0,f&65535,p)|0;q=q+1|0}while((q&65535)<<16>>16!=40);i=r;return}}}function Yb(a){a=a|0;var b=0;if(!a){a=-1;return a|0}c[a>>2]=0;b=Je(4)|0;if(!b){a=-1;return a|0}if(!((Uc(b)|0)<<16>>16)){Vc(c[b>>2]|0)|0;c[a>>2]=b;a=0;return a|0}else{Wc(b);Ke(b);a=-1;return a|0}return 0}function Zb(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Wc(b);Ke(c[a>>2]|0);c[a>>2]=0;return}function _b(a){a=a|0;if(!a){a=-1;return a|0}Vc(c[a>>2]|0)|0;a=0;return a|0}function $b(a,d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;var y=0,z=0,A=0,B=0;z=i;i=i+16|0;B=z+2|0;A=z;b[q>>1]=Xc(c[a>>2]|0,f,h,k,m,j,40,g,r,A,B,x)|0;a=b[B>>1]|0;g=c[u>>2]|0;c[u>>2]=g+2;b[g>>1]=a;se(k,b[q>>1]|0,b[r>>1]|0,40,b[A>>1]|0,x);ec(k,j,p,40);b[s>>1]=Dc(f,m,p,t,40,x)|0;b[v>>1]=32767;if(n<<16>>16!=0?(y=b[s>>1]|0,y<<16>>16>15565):0)y=Ed(d,y,x)|0;else y=0;if(f>>>0<2){B=b[s>>1]|0;b[s>>1]=B<<16>>16>13926?13926:B;if(y<<16>>16)b[v>>1]=15565}else{if(y<<16>>16){b[v>>1]=15565;b[s>>1]=15565}if((f|0)==7){A=nd(7,b[v>>1]|0,s,0,0,w,x)|0;B=c[u>>2]|0;c[u>>2]=B+2;b[B>>1]=A}}q=b[s>>1]|0;y=0;while(1){A=Z(b[p>>1]|0,q)|0;b[o>>1]=(e[m>>1]|0)-(A>>>14);A=(Z(b[k>>1]|0,q)|0)>>>14;B=l+(y<<1)|0;b[B>>1]=(e[B>>1]|0)-A;y=y+1|0;if((y|0)==40)break;else{k=k+2|0;m=m+2|0;o=o+2|0;p=p+2|0}}i=z;return}function ac(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g;if(!a){a=-1;i=g;return a|0}c[a>>2]=0;d=Je(2532)|0;c[f>>2]=d;if(!d){a=-1;i=g;return a|0}Yd(d+2392|0);c[d+2188>>2]=0;c[(c[f>>2]|0)+2192>>2]=0;c[(c[f>>2]|0)+2196>>2]=0;c[(c[f>>2]|0)+2200>>2]=0;c[(c[f>>2]|0)+2204>>2]=0;c[(c[f>>2]|0)+2208>>2]=0;c[(c[f>>2]|0)+2212>>2]=0;c[(c[f>>2]|0)+2220>>2]=0;e=c[f>>2]|0;c[e+2216>>2]=b;c[e+2528>>2]=0;d=e;if((((((((Yb(e+2196|0)|0)<<16>>16==0?(ie(e+2192|0)|0)<<16>>16==0:0)?(yc(e+2200|0)|0)<<16>>16==0:0)?(_c(e+2204|0)|0)<<16>>16==0:0)?(Ad(e+2208|0)|0)<<16>>16==0:0)?(Gd(e+2212|0)|0)<<16>>16==0:0)?(jc(e+2220|0,c[e+2432>>2]|0)|0)<<16>>16==0:0)?(Pc(e+2188|0)|0)<<16>>16==0:0){cc(e)|0;c[a>>2]=d;a=0;i=g;return a|0}bc(f);a=-1;i=g;return a|0}function bc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Qc(b+2188|0);ke((c[a>>2]|0)+2192|0);zc((c[a>>2]|0)+2200|0);Zb((c[a>>2]|0)+2196|0);ad((c[a>>2]|0)+2204|0);Cd((c[a>>2]|0)+2208|0);Id((c[a>>2]|0)+2212|0);lc((c[a>>2]|0)+2220|0);Ke(c[a>>2]|0);c[a>>2]=0;return}function cc(a){a=a|0;var d=0,e=0,f=0,g=0;if(!a){g=-1;return g|0}c[a+652>>2]=a+320;c[a+640>>2]=a+240;c[a+644>>2]=a+160;c[a+648>>2]=a+80;c[a+1264>>2]=a+942;c[a+1912>>2]=a+1590;f=a+1938|0;c[a+2020>>2]=f;c[a+2384>>2]=a+2304;d=a+2028|0;c[a+2024>>2]=a+2108;c[a+2528>>2]=0;Qe(a|0,0,640)|0;Qe(a+1282|0,0,308)|0;Qe(a+656|0,0,286)|0;e=a+2224|0;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));f=d;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));d=a+1268|0;f=e;g=f+80|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(g|0));b[d>>1]=40;b[a+1270>>1]=40;b[a+1272>>1]=40;b[a+1274>>1]=40;b[a+1276>>1]=40;Rc(c[a+2188>>2]|0)|0;je(c[a+2192>>2]|0)|0;_b(c[a+2196>>2]|0)|0;Ac(c[a+2200>>2]|0)|0;$c(c[a+2204>>2]|0)|0;Bd(c[a+2208>>2]|0)|0;Hd(c[a+2212>>2]|0)|0;kc(c[a+2220>>2]|0,c[a+2432>>2]|0)|0;b[a+2388>>1]=0;g=0;return g|0}function dc(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var 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,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,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0;qa=i;i=i+1184|0;T=qa;n=qa+1096|0;o=qa+1008|0;l=qa+904|0;ka=qa+928|0;la=qa+824|0;X=qa+744|0;na=qa+664|0;oa=qa+584|0;Z=qa+328|0;ha=qa+504|0;ia=qa+424|0;ma=qa+344|0;pa=qa+248|0;Y=qa+168|0;da=qa+88|0;fa=qa+68|0;ga=qa+48|0;ea=qa+28|0;ja=qa+24|0;ba=qa+22|0;$=qa+20|0;W=qa+16|0;U=qa+12|0;V=qa+10|0;aa=qa+8|0;_=qa+6|0;ca=qa+4|0;c[T>>2]=f;S=a+2528|0;j=a+652|0;Oe(c[j>>2]|0,e|0,320)|0;c[g>>2]=d;m=a+2216|0;if(!(c[m>>2]|0)){e=a+2220|0;f=0}else{f=Nd(c[a+2212>>2]|0,c[j>>2]|0,S)|0;R=a+2220|0;e=R;f=oc(c[R>>2]|0,f,g,S)|0}R=a+2392|0;Sc(c[a+2188>>2]|0,d,c[a+644>>2]|0,c[a+648>>2]|0,n,R,S);k=a+2192|0;le(c[k>>2]|0,d,c[g>>2]|0,n,o,l,T,S);nc(c[e>>2]|0,l,c[j>>2]|0,S);if((c[g>>2]|0)==8){mc(c[e>>2]|0,f,c[(c[k>>2]|0)+40>>2]|0,(c[a+2200>>2]|0)+32|0,T,S);Qe(a+1282|0,0,308)|0;j=a+2244|0;q=j+20|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(q|0));j=a+2284|0;q=j+20|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(q|0));j=c[a+2020>>2]|0;q=j+80|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(q|0));j=a+2028|0;q=j+80|0;do{b[j>>1]=0;j=j+2|0}while((j|0)<(q|0));je(c[k>>2]|0)|0;j=c[k>>2]|0;e=l;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=(c[k>>2]|0)+20|0;e=l;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));_b(c[a+2196>>2]|0)|0;b[a+2388>>1]=0;Q=0}else Q=Dd(c[a+2208>>2]|0,c[k>>2]|0,S)|0;N=a+640|0;k=a+2264|0;j=a+1264|0;e=a+2204|0;f=a+2212|0;O=a+1268|0;P=a+1278|0;cd(d,2842,2862,2882,n,0,c[N>>2]|0,k,c[j>>2]|0,S);if(d>>>0>1){Tc(c[e>>2]|0,c[f>>2]|0,d,c[j>>2]|0,W,O,P,0,c[m>>2]|0,S);cd(d,2842,2862,2882,n,80,c[N>>2]|0,k,c[j>>2]|0,S);Tc(c[e>>2]|0,c[f>>2]|0,d,(c[j>>2]|0)+160|0,W+2|0,O,P,1,c[m>>2]|0,S)}else{cd(d,2842,2862,2882,n,80,c[N>>2]|0,k,c[j>>2]|0,S);Tc(c[e>>2]|0,c[f>>2]|0,d,c[j>>2]|0,W,O,P,1,c[m>>2]|0,S);b[W+2>>1]=b[W>>1]|0}if(c[m>>2]|0)Md(c[f>>2]|0,W,S);if((c[g>>2]|0)==8){oa=a+656|0;pa=a+976|0;Oe(oa|0,pa|0,286)|0;pa=a+320|0;Oe(a|0,pa|0,320)|0;i=qa;return 0}z=a+2224|0;A=a+2244|0;B=a+2284|0;C=a+2388|0;D=a+2020|0;E=a+1916|0;F=a+1912|0;G=a+2024|0;H=a+2384|0;I=a+2196|0;J=a+2208|0;K=a+2464|0;L=a+2200|0;M=a+2224|0;w=a+2244|0;x=a+1270|0;y=a+1280|0;v=0;m=0;l=0;s=0;t=0;k=0;u=-1;while(1){p=u;u=u+1<<16>>16;s=1-(s<<16>>16)|0;f=s&65535;r=(s&65535|0)!=0;e=c[g>>2]|0;j=(e|0)==0;do if(r)if(j){j=fa;e=z;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=ga;e=A;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=ea;e=B;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));b[ja>>1]=b[C>>1]|0;d=(c[N>>2]|0)+(v<<1)|0;j=20;break}else{d=(c[N>>2]|0)+(v<<1)|0;j=19;break}else{d=(c[N>>2]|0)+(v<<1)|0;if(j)j=20;else j=19}while(0);if((j|0)==19)yd(e,2842,2862,2882,n,o,d,B,w,c[D>>2]|0,E,(c[F>>2]|0)+(v<<1)|0,c[G>>2]|0,ka,ha,c[H>>2]|0);else if((j|0)==20?(0,yd(0,2842,2862,2882,n,o,d,B,ga,c[D>>2]|0,E,(c[F>>2]|0)+(v<<1)|0,c[G>>2]|0,ka,ha,c[H>>2]|0),r):0){j=da;e=c[G>>2]|0;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0))}j=ia;e=ha;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));$b(c[I>>2]|0,c[J>>2]|0,c[g>>2]|0,t,W,c[G>>2]|0,(c[F>>2]|0)+(v<<1)|0,ia,ka,Q,la,na,U,V,aa,Z,T,ca,c[K>>2]|0,S);switch(p<<16>>16){case -1:{if((b[P>>1]|0)>0)b[x>>1]=b[U>>1]|0;break}case 2:{if((b[y>>1]|0)>0)b[O>>1]=b[U>>1]|0;break}default:{}}Xb(la,c[G>>2]|0,b[U>>1]|0,b[C>>1]|0,b[aa>>1]|0,ia,X,oa,T,c[g>>2]|0,u,R,S);Bc(c[L>>2]|0,c[g>>2]|0,ha,(c[F>>2]|0)+(v<<1)|0,X,ka,la,na,oa,Z,f,b[ca>>1]|0,ba,$,aa,_,T,R,S);Fd(c[J>>2]|0,b[aa>>1]|0,S);d=c[g>>2]|0;do if(!d)if(r){j=ma;e=ka;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=pa;e=oa;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));j=Y;e=X;q=j+80|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));l=b[U>>1]|0;m=b[V>>1]|0;zd(c[N>>2]|0,0,t,b[aa>>1]|0,b[_>>1]|0,o,h,ka,X,na,oa,fa,B,ga,c[F>>2]|0,C,S);b[C>>1]=b[ja>>1]|0;k=t;break}else{j=B;e=ea;q=j+20|0;do{b[j>>1]=b[e>>1]|0;j=j+2|0;e=e+2|0}while((j|0)<(q|0));r=k<<16>>16;se((c[F>>2]|0)+(r<<1)|0,l,m,40,1,S);ec((c[F>>2]|0)+(r<<1)|0,da,na,40);zd(c[N>>2]|0,c[g>>2]|0,k,b[ba>>1]|0,b[$>>1]|0,o+-22|0,h,ma,Y,na,pa,M,B,w,c[F>>2]|0,ja,S);yd(c[g>>2]|0,2842,2862,2882,n,o,(c[N>>2]|0)+(v<<1)|0,B,w,c[D>>2]|0,E,(c[F>>2]|0)+(v<<1)|0,c[G>>2]|0,ka,ha,c[H>>2]|0);se((c[F>>2]|0)+(v<<1)|0,b[U>>1]|0,b[V>>1]|0,40,1,S);ec((c[F>>2]|0)+(v<<1)|0,c[G>>2]|0,na,40);zd(c[N>>2]|0,c[g>>2]|0,t,b[aa>>1]|0,b[_>>1]|0,o,h,ka,X,na,oa,M,B,w,c[F>>2]|0,C,S);break}else zd(c[N>>2]|0,d,t,b[aa>>1]|0,b[_>>1]|0,o,h,ka,X,na,oa,M,B,w,c[F>>2]|0,C,S);while(0);d=v+40|0;t=d&65535;if(t<<16>>16>=160)break;else{v=d<<16>>16;n=n+22|0;o=o+22|0}}Oe(a+1282|0,a+1602|0,308)|0;oa=a+656|0;pa=a+976|0;Oe(oa|0,pa|0,286)|0;pa=a+320|0;Oe(a|0,pa|0,320)|0;i=qa;return 0}function ec(a,c,d,e){a=a|0;c=c|0;d=d|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;o=e<<16>>16;if(e<<16>>16>1)n=1;else return;while(1){f=b[a>>1]|0;i=c+(n+-1<<1)|0;e=Z(b[c+(n<<1)>>1]|0,f)|0;k=b[i>>1]|0;f=Z(k<<16>>16,f)|0;h=(n+131071|0)>>>1;j=h&65535;g=b[a+2>>1]|0;if(!(j<<16>>16)){c=i;h=k}else{l=(h<<1)+131070&131070;m=n-l|0;h=a;do{q=(Z(k<<16>>16,g)|0)+e|0;p=h;h=h+4|0;e=b[i+-2>>1]|0;g=(Z(e,g)|0)+f|0;f=b[h>>1]|0;i=i+-4|0;e=q+(Z(f,e)|0)|0;k=b[i>>1]|0;f=g+(Z(k<<16>>16,f)|0)|0;j=j+-1<<16>>16;g=b[p+6>>1]|0}while(j<<16>>16!=0);h=c+(m+-3<<1)|0;a=a+(l+2<<1)|0;c=h;h=b[h>>1]|0}e=(Z(h<<16>>16,g)|0)+e|0;b[d>>1]=f>>>12;b[d+2>>1]=e>>>12;e=(n<<16)+131072>>16;if((e|0)<(o|0)){d=d+4|0;a=a+(1-n<<1)|0;n=e}else break}return}function fc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=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;z=i;i=i+80|0;y=z;h=20;g=a;f=1;while(1){x=b[g>>1]|0;x=(Z(x,x)|0)+f|0;f=b[g+2>>1]|0;f=x+(Z(f,f)|0)|0;h=h+-1<<16>>16;if(!(h<<16>>16))break;else g=g+4|0}f=f<<1;if((f|0)<0){g=20;f=a;e=y;while(1){b[e>>1]=(b[f>>1]|0)>>>1;b[e+2>>1]=(b[f+2>>1]|0)>>>1;g=g+-1<<16>>16;if(!(g<<16>>16)){x=y;break}else{f=f+4|0;e=e+4|0}}}else{f=ce(f>>1,e)|0;if((f|0)<16777215)f=((f>>9)*32440|0)>>>15<<16>>16;else f=32440;h=20;g=a;e=y;while(1){b[e>>1]=((Z(b[g>>1]|0,f)|0)+32|0)>>>6;b[e+2>>1]=((Z(b[g+2>>1]|0,f)|0)+32|0)>>>6;h=h+-1<<16>>16;if(!(h<<16>>16)){x=y;break}else{g=g+4|0;e=e+4|0}}}h=20;g=x;e=d+3198|0;f=0;while(1){w=b[g>>1]|0;w=(Z(w,w)|0)+f|0;b[e>>1]=(w+16384|0)>>>15;v=b[g+2>>1]|0;f=(Z(v,v)|0)+w|0;b[e+-82>>1]=(f+16384|0)>>>15;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{g=g+4|0;e=e+-164|0}}w=c+78|0;v=1;while(1){f=39-v|0;a=d+3120+(f<<1)|0;e=d+(f*80|0)+78|0;f=c+(f<<1)|0;k=y+(v<<1)|0;g=65575-v|0;j=g&65535;h=b[x>>1]|0;if(!(j<<16>>16)){j=w;g=0}else{r=g+65535&65535;t=r*41|0;u=(Z(v,-40)|0)-t|0;s=0-v|0;t=s-t|0;s=s-r|0;q=v+r|0;p=b[k>>1]|0;n=x;o=w;l=d+((38-v|0)*80|0)+78|0;g=0;m=0;while(1){k=k+2|0;g=(Z(p<<16>>16,h)|0)+g|0;n=n+2|0;p=b[k>>1]|0;m=(Z(p<<16>>16,h)|0)+m|0;B=f;f=f+-2|0;h=b[f>>1]|0;A=b[o>>1]<<1;B=(Z((Z(A,b[B>>1]|0)|0)>>16,(g<<1)+32768>>16)|0)>>>15&65535;b[e>>1]=B;b[a>>1]=B;h=(Z((Z(A,h)|0)>>16,(m<<1)+32768>>16)|0)>>>15&65535;b[a+-2>>1]=h;b[l>>1]=h;j=j+-1<<16>>16;h=b[n>>1]|0;if(!(j<<16>>16))break;else{o=o+-2|0;a=a+-82|0;e=e+-82|0;l=l+-82|0}}k=y+(q+1<<1)|0;j=c+(38-r<<1)|0;f=c+(s+38<<1)|0;a=d+3040+(t+38<<1)|0;e=d+3040+(u+38<<1)|0}B=(Z(b[k>>1]|0,h)|0)+g|0;B=(Z((B<<1)+32768>>16,(Z(b[j>>1]<<1,b[f>>1]|0)|0)>>16)|0)>>>15&65535;b[a>>1]=B;b[e>>1]=B;e=(v<<16)+131072|0;if((e|0)<2621440)v=e>>16;else break}i=z;return}function gc(a,d,e,f,g,h,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+160|0;q=r;if(g<<16>>16>0){o=h&65535;p=0;k=5;do{if((p|0)<40){n=p;m=p&65535;h=0;while(1){if(m<<16>>16<40){m=m<<16>>16;l=0;do{l=(Z(b[a+(m-n<<1)>>1]|0,b[d+(m<<1)>>1]|0)|0)+l|0;m=m+1|0}while((m&65535)<<16>>16!=40)}else l=0;l=l<<1;c[q+(n<<2)>>2]=l;l=Gc(l)|0;h=(l|0)>(h|0)?l:h;l=n+o|0;m=l&65535;if(m<<16>>16>=40)break;else n=l<<16>>16}}else h=0;k=(h>>1)+k|0;p=p+1|0}while((p&65535)<<16>>16!=g<<16>>16)}else k=5;f=((pe(k)|0)&65535)-(f&65535)|0;h=f<<16>>16;l=0-h<<16;k=(l|0)<2031616;l=l>>16;if((f&65535)<<16>>16>0)if(k){k=0;do{f=c[q+(k<<2)>>2]|0;d=f<>1]=Ce((d>>h|0)==(f|0)?d:f>>31^2147483647,j)|0;k=k+1|0}while((k|0)!=40);i=r;return}else{k=0;do{f=c[q+(k<<2)>>2]|0;d=f<>1]=Ce((d>>h|0)==(f|0)?d:f>>31^2147483647,j)|0;k=k+1|0}while((k|0)!=40);i=r;return}else if(k){k=0;do{b[e+(k<<1)>>1]=Ce(c[q+(k<<2)>>2]>>l,j)|0;k=k+1|0}while((k|0)!=40);i=r;return}else{k=0;do{b[e+(k<<1)>>1]=Ce(0,j)|0;k=k+1|0}while((k|0)!=40);i=r;return}}function hc(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=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;z=i;i=i+160|0;y=z;v=a+2|0;w=b[a>>1]|0;x=0;g=5;do{u=x;k=0;while(1){n=d+(u<<1)|0;t=40-u|0;h=(t+131071|0)>>>1&65535;l=d+(u+1<<1)|0;j=Z(b[n>>1]<<1,w)|0;if(!(h<<16>>16))h=v;else{s=131111-u+131070&131070;r=u+s|0;q=v;p=a;o=n;while(1){m=o+4|0;n=p+4|0;j=(Z(b[l>>1]<<1,b[q>>1]|0)|0)+j|0;h=h+-1<<16>>16;j=(Z(b[m>>1]<<1,b[n>>1]|0)|0)+j|0;if(!(h<<16>>16))break;else{l=o+6|0;q=p+6|0;p=n;o=m}}l=d+(r+3<<1)|0;h=a+(s+3<<1)|0}if(!(t&1))j=(Z(b[l>>1]<<1,b[h>>1]|0)|0)+j|0;c[y+(u<<2)>>2]=j;j=(j|0)<0?0-j|0:j;k=(j|0)>(k|0)?j:k;j=u+5|0;if((j&65535)<<16>>16<40)u=j<<16>>16;else break}g=(k>>1)+g|0;x=x+1|0}while((x|0)!=5);f=((pe(g)|0)&65535)-(f&65535)|0;j=f<<16>>16;g=0-j<<16;k=g>>16;if((f&65535)<<16>>16>0){h=20;g=y;while(1){y=c[g>>2]|0;f=y<>1]=(((f>>j|0)==(y|0)?f:y>>31^2147483647)+32768|0)>>>16;y=c[g+4>>2]|0;f=y<>1]=(((f>>j|0)==(y|0)?f:y>>31^2147483647)+32768|0)>>>16;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{e=e+4|0;g=g+8|0}}i=z;return}if((g|0)<2031616){h=20;g=y;while(1){b[e>>1]=((c[g>>2]>>k)+32768|0)>>>16;b[e+2>>1]=((c[g+4>>2]>>k)+32768|0)>>>16;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{e=e+4|0;g=g+8|0}}i=z;return}else{b[e>>1]=0;y=e+4|0;b[e+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;f=y+4|0;b[y+2>>1]=0;b[f>>1]=0;y=f+4|0;b[f+2>>1]=0;b[y>>1]=0;b[y+2>>1]=0;i=z;return}}function ic(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=(Td(16383,b)|0)<<16>>16;b=Z(h,b<<16>>16)|0;if((b|0)==1073741824){c[e>>2]=1;f=2147483647}else f=b<<1;g=(Z(h,d<<16>>16)|0)>>15;b=f+(g<<1)|0;if((f^g|0)>0&(b^f|0)<0){c[e>>2]=1;b=(f>>>31)+2147483647|0}f=2147483647-b|0;d=f>>16;b=Z(d,h)|0;if((b|0)==1073741824){c[e>>2]=1;g=2147483647}else g=b<<1;h=(Z((f>>>1)-(d<<15)<<16>>16,h)|0)>>15;b=g+(h<<1)|0;if((g^h|0)>0&(b^g|0)<0){c[e>>2]=1;b=(g>>>31)+2147483647|0}g=b>>16;h=a>>16;d=Z(g,h)|0;d=(d|0)==1073741824?2147483647:d<<1;f=(Z((b>>>1)-(g<<15)<<16>>16,h)|0)>>15;e=(f<<1)+d|0;e=(f^d|0)>0&(e^d|0)<0?(d>>>31)+2147483647|0:e;h=(Z(g,(a>>>1)-(h<<15)<<16>>16)|0)>>15;a=e+(h<<1)|0;a=(e^h|0)>0&(a^e|0)<0?(e>>>31)+2147483647|0:a;e=a<<2;return ((e>>2|0)==(a|0)?e:a>>31^2147483647)|0}function jc(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;if(!a){h=-1;return h|0}c[a>>2]=0;e=Je(192)|0;if(!e){h=-1;return h|0}f=e+176|0;b[f>>1]=0;b[f+2>>1]=0;b[f+4>>1]=0;b[f+6>>1]=0;b[f+8>>1]=0;b[f+10>>1]=0;f=e;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+20|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+40|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+60|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+80|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+100|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+120|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+140|0;g=d;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=e+160|0;h=f+20|0;do{b[f>>1]=0;f=f+2|0}while((f|0)<(h|0));b[e+188>>1]=7;b[e+190>>1]=32767;c[a>>2]=e;h=0;return h|0}function kc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}d=a+176|0;b[d>>1]=0;b[d+2>>1]=0;b[d+4>>1]=0;b[d+6>>1]=0;b[d+8>>1]=0;b[d+10>>1]=0;d=a;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+20|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+40|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+60|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+80|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+100|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+120|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+140|0;e=c;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+160|0;f=d+20|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(f|0));b[a+188>>1]=7;b[a+190>>1]=32767;f=1;return f|0}function lc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function mc(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var 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;C=i;i=i+112|0;z=C+80|0;A=C+60|0;B=C+40|0;y=C;if(d<<16>>16==0?(j=a+178|0,(b[j>>1]|0)!=0):0){B=a+180|0;h=a+182|0;e=j;B=b[B>>1]|0;f=c[g>>2]|0;A=f+2|0;b[f>>1]=B;h=b[h>>1]|0;B=f+4|0;b[A>>1]=h;A=a+184|0;A=b[A>>1]|0;h=f+6|0;b[B>>1]=A;B=a+186|0;B=b[B>>1]|0;a=f+8|0;b[h>>1]=B;e=b[e>>1]|0;f=f+10|0;c[g>>2]=f;b[a>>1]=e;i=C;return}s=y+36|0;t=y+32|0;u=y+28|0;v=y+24|0;w=y+20|0;x=y+16|0;p=y+12|0;q=y+8|0;r=y+4|0;d=y;j=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(j|0));o=7;d=0;while(1){n=b[a+160+(o<<1)>>1]|0;j=n<<16>>16;if(n<<16>>16<0)j=~((j^-4)>>2);else j=j>>>2;d=Rd(d,j&65535,h)|0;l=o*10|0;n=9;while(1){m=y+(n<<2)|0;k=c[m>>2]|0;D=b[a+(n+l<<1)>>1]|0;j=D+k|0;if((D^k|0)>-1&(j^k|0)<0){c[h>>2]=1;j=(k>>>31)+2147483647|0}c[m>>2]=j;if((n|0)>0)n=n+-1|0;else break}if((o|0)>0)o=o+-1|0;else break}j=d<<16>>16;if(d<<16>>16<0)j=~((j^-2)>>1);else j=j>>>1;b[A+18>>1]=(c[s>>2]|0)>>>3;b[A+16>>1]=(c[t>>2]|0)>>>3;b[A+14>>1]=(c[u>>2]|0)>>>3;b[A+12>>1]=(c[v>>2]|0)>>>3;b[A+10>>1]=(c[w>>2]|0)>>>3;b[A+8>>1]=(c[x>>2]|0)>>>3;b[A+6>>1]=(c[p>>2]|0)>>>3;b[A+4>>1]=(c[q>>2]|0)>>>3;b[A+2>>1]=(c[r>>2]|0)>>>3;b[A>>1]=(c[y>>2]|0)>>>3;d=a+178|0;j=(((j<<16)+167772160|0)>>>16)+128|0;b[d>>1]=j;j=j<<16;if((j|0)<0)j=~((j>>16^-256)>>8);else j=j>>24;b[d>>1]=j;if((j|0)<=63){if((j|0)<0){b[d>>1]=0;j=0}}else{b[d>>1]=63;j=63}D=Ge(j<<8&65535,11560,h)|0;D=D<<16>>16>0?0:D<<16>>16<-14436?-14436:D;b[f>>1]=D;b[f+2>>1]=D;b[f+4>>1]=D;b[f+6>>1]=D;D=((D<<16>>16)*5443|0)>>>15&65535;b[f+8>>1]=D;b[f+10>>1]=D;b[f+12>>1]=D;b[f+14>>1]=D;ne(A,z,10,h);Ae(z,205,10,h);me(z,A,10,h);f=a+182|0;D=a+180|0;te(e,8,A,B,f,D,h);h=f;f=d;D=b[D>>1]|0;e=c[g>>2]|0;B=e+2|0;b[e>>1]=D;h=b[h>>1]|0;D=e+4|0;b[B>>1]=h;B=a+184|0;B=b[B>>1]|0;h=e+6|0;b[D>>1]=B;a=a+186|0;a=b[a>>1]|0;D=e+8|0;b[h>>1]=a;a=b[f>>1]|0;e=e+10|0;c[g>>2]=e;b[D>>1]=a;i=C;return}function nc(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;k=n+2|0;m=n;l=a+176|0;j=(e[l>>1]|0)+1|0;j=(j&65535|0)==8?0:j&65535;b[l>>1]=j;j=a+((j<<16>>16)*10<<1)|0;h=j+20|0;do{b[j>>1]=b[d>>1]|0;j=j+2|0;d=d+2|0}while((j|0)<(h|0));d=0;h=160;while(1){j=b[f>>1]|0;d=(Z(j<<1,j)|0)+d|0;if((d|0)<0){d=2147483647;break}h=h+-1<<16>>16;if(!(h<<16>>16))break;else f=f+2|0}de(d,k,m,g);d=b[k>>1]|0;k=d<<16>>16;f=k<<10;if((f|0)!=(k<<26>>16|0)){c[g>>2]=1;f=d<<16>>16>0?32767:-32768}b[a+160+(b[l>>1]<<1)>>1]=(((b[m>>1]|0)>>>5)+f<<16)+-558432256>>17;i=n;return}function oc(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=a+190|0;i=Rd(b[h>>1]|0,1,f)|0;b[h>>1]=i;g=a+188|0;do if(!(d<<16>>16)){a=b[g>>1]|0;if(!(a<<16>>16)){b[h>>1]=0;c[e>>2]=8;a=1;break}h=(a&65535)+65535&65535;b[g>>1]=h;if((Rd(i,h,f)|0)<<16>>16<30){c[e>>2]=8;a=0}else a=0}else{b[g>>1]=7;a=0}while(0);return a|0}function pc(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;if(!(f<<16>>16)){f=a<<16>>16;if(((f<<16)+-5570560|0)<65536){b=(f*3|0)+-58+(b<<16>>16)|0;b=b&65535;return b|0}else{b=f+112|0;b=b&65535;return b|0}}if(!(g<<16>>16)){h=(a&65535)-(d&65535)<<16;b=(b<<16>>16)+2+(h>>15)+(h>>16)|0;b=b&65535;return b|0}d=d<<16>>16;d=(((c&65535)-d<<16)+-327680|0)>0?d+5&65535:c;e=e<<16>>16;c=a<<16>>16;d=(((e-(d&65535)<<16)+-262144|0)>0?e+65532&65535:d)<<16>>16;e=d*196608|0;a=e+-393216>>16;f=((b&65535)<<16)+(c*196608|0)>>16;if(!(a-f&32768)){b=c+5-d|0;b=b&65535;return b|0}if((e+196608>>16|0)>(f|0)){b=f+3-a|0;b=b&65535;return b|0}else{b=c+11-d|0;b=b&65535;return b|0}return 0}function qc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;e=a<<16>>16;do if(!(d<<16>>16))if(a<<16>>16<95){e=((e*393216|0)+-6881280>>16)+(b<<16>>16)|0;break}else{e=e+368|0;break}else e=((((e-(c&65535)|0)*393216|0)+196608|0)>>>16)+(b&65535)|0;while(0);return e&65535|0} + function rc(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;i=c[h+96>>2]|0;if(d>>>0<8){m=(c[h+100>>2]|0)+(d<<2)|0;l=c[m>>2]|0;a[g>>0]=b[f+(b[l>>1]<<1)>>1]<<4|d|b[f+(b[l+2>>1]<<1)>>1]<<5|b[f+(b[l+4>>1]<<1)>>1]<<6|b[f+(b[l+6>>1]<<1)>>1]<<7;l=i+(d<<1)|0;h=b[l>>1]|0;if((h+-7|0)>4){i=4;k=4;d=1;while(1){n=b[f+(b[(c[m>>2]|0)+(i<<1)>>1]<<1)>>1]|0;h=g+(d<<16>>16)|0;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+((k|1)<<16>>16<<1)>>1]<<1)>>1]<<1|n&65535;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+((k|2)<<16>>16<<1)>>1]<<1)>>1]<<2|n;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+((k|3)<<16>>16<<1)>>1]<<1)>>1]<<3|n;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+(k+4<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<4|n;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+(k+5<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<5|n;a[h>>0]=n;n=e[f+(b[(c[m>>2]|0)+(k+6<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<6|n;a[h>>0]=n;j=k+8<<16>>16;d=d+1<<16>>16;a[h>>0]=e[f+(b[(c[m>>2]|0)+(k+7<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<7|n;i=j<<16>>16;h=b[l>>1]|0;if((i|0)>=(h+-7|0))break;else k=j}}else{j=4;d=1}l=h+4&7;if(!l)return;i=g+(d<<16>>16)|0;a[i>>0]=0;h=0;k=0;d=0;while(1){k=(e[f+(b[(c[m>>2]|0)+(j<<16>>16<<1)>>1]<<1)>>1]&255)<>0]=k;d=d+1<<16>>16;h=d<<16>>16;if((h|0)>=(l|0))break;else j=j+1<<16>>16}return}if((d|0)==15){a[g>>0]=15;return}a[g>>0]=b[f>>1]<<4|d|b[f+2>>1]<<5|b[f+4>>1]<<6|b[f+6>>1]<<7;h=i+(d<<1)|0;d=b[h>>1]|0;i=((d&65535)<<16)+262144>>16;m=i&-8;k=(m+524281|0)>>>3&65535;if(k<<16>>16>0){i=((i&-8)+524281|0)>>>3;l=((i<<3)+524280&524280)+12|0;j=1;d=f+8|0;while(1){a[g+(j<<16>>16)>>0]=e[d+2>>1]<<1|e[d>>1]|e[d+4>>1]<<2|e[d+6>>1]<<3|e[d+8>>1]<<4|e[d+10>>1]<<5|e[d+12>>1]<<6|e[d+14>>1]<<7;if(k<<16>>16>1){k=k+-1<<16>>16;j=j+1<<16>>16;d=d+16|0}else break}d=b[h>>1]|0;j=(i<<16)+65536>>16}else{l=4;j=1}d=(0-m|4)+(d&65535)<<16;k=d>>16;if(!k)return;j=g+j|0;a[j>>0]=0;if((d|0)>0){d=0;i=0;h=0}else return;do{i=i&255|b[f+(l+d<<1)>>1]<>0]=i;h=h+1<<16>>16;d=h<<16>>16}while((d|0)<(k|0));return}function sc(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=c[h+100>>2]|0;n=c[h+96>>2]|0;a[g>>0]=d&15;n=n+(d<<1)|0;i=b[n>>1]|0;if(d>>>0>=8){l=((i&65535)<<16)+-458752|0;if((l|0)>0){m=1;k=f;while(1){f=k+16|0;h=m+1<<16>>16;a[g+(m<<16>>16)>>0]=e[k+14>>1]|e[k+12>>1]<<1|((e[k+2>>1]<<6|e[k>>1]<<7|e[k+4>>1]<<5|e[k+6>>1]<<4)&240|e[k+8>>1]<<3|e[k+10>>1]<<2)&252;l=l+-524288&-65536;if((l|0)<=0)break;else{m=h;k=f}}i=b[n>>1]|0}else h=1;m=i&7;i=g+(h<<16>>16)|0;a[i>>0]=0;if(!m)return;else{j=0;k=0;l=0;h=f}while(1){k=k&255|b[h>>1]<<7-j;a[i>>0]=k;l=l+1<<16>>16;j=l<<16>>16;if((j|0)>=(m|0))break;else h=h+2|0}return}k=i<<16>>16;if(i<<16>>16>7){i=o+(d<<2)|0;h=0;m=0;j=1;while(1){p=e[f+(b[(c[i>>2]|0)+(h<<1)>>1]<<1)>>1]<<7;k=g+(j<<16>>16)|0;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|1)<<16>>16<<1)>>1]<<1)>>1]<<6|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|2)<<16>>16<<1)>>1]<<1)>>1]<<5|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|3)<<16>>16<<1)>>1]<<1)>>1]<<4|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|4)<<16>>16<<1)>>1]<<1)>>1]<<3|p&240;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|5)<<16>>16<<1)>>1]<<1)>>1]<<2|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|6)<<16>>16<<1)>>1]<<1)>>1]<<1|p;a[k>>0]=p;l=m+8<<16>>16;j=j+1<<16>>16;a[k>>0]=p&254|e[f+(b[(c[i>>2]|0)+((m|7)<<16>>16<<1)>>1]<<1)>>1];h=l<<16>>16;k=b[n>>1]|0;if((h|0)>=(k+-7|0))break;else m=l}}else{l=0;j=1}n=k&7;m=g+(j<<16>>16)|0;a[m>>0]=0;if(!n)return;j=o+(d<<2)|0;i=0;h=0;k=0;while(1){h=(e[f+(b[(c[j>>2]|0)+(l<<16>>16<<1)>>1]<<1)>>1]&255)<<7-i|h&255;a[m>>0]=h;k=k+1<<16>>16;i=k<<16>>16;if((i|0)>=(n|0))break;else l=l+1<<16>>16}return}function tc(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=c[h+100>>2]|0;n=c[h+96>>2]|0;a[g>>0]=d<<3;n=n+(d<<1)|0;i=b[n>>1]|0;if(d>>>0>=8){l=((i&65535)<<16)+-458752|0;if((l|0)>0){m=1;k=f;while(1){f=k+16|0;h=m+1<<16>>16;a[g+(m<<16>>16)>>0]=e[k+14>>1]|e[k+12>>1]<<1|((e[k+2>>1]<<6|e[k>>1]<<7|e[k+4>>1]<<5|e[k+6>>1]<<4)&240|e[k+8>>1]<<3|e[k+10>>1]<<2)&252;l=l+-524288&-65536;if((l|0)<=0)break;else{m=h;k=f}}i=b[n>>1]|0}else h=1;m=i&7;i=g+(h<<16>>16)|0;a[i>>0]=0;if(!m)return;else{j=0;k=0;l=0;h=f}while(1){k=k&255|b[h>>1]<<7-j;a[i>>0]=k;l=l+1<<16>>16;j=l<<16>>16;if((j|0)>=(m|0))break;else h=h+2|0}return}k=i<<16>>16;if(i<<16>>16>7){i=o+(d<<2)|0;h=0;m=0;j=1;while(1){p=e[f+(b[(c[i>>2]|0)+(h<<1)>>1]<<1)>>1]<<7;k=g+(j<<16>>16)|0;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|1)<<16>>16<<1)>>1]<<1)>>1]<<6|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|2)<<16>>16<<1)>>1]<<1)>>1]<<5|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|3)<<16>>16<<1)>>1]<<1)>>1]<<4|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|4)<<16>>16<<1)>>1]<<1)>>1]<<3|p&240;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|5)<<16>>16<<1)>>1]<<1)>>1]<<2|p;a[k>>0]=p;p=e[f+(b[(c[i>>2]|0)+((m|6)<<16>>16<<1)>>1]<<1)>>1]<<1|p;a[k>>0]=p;l=m+8<<16>>16;j=j+1<<16>>16;a[k>>0]=p&254|e[f+(b[(c[i>>2]|0)+((m|7)<<16>>16<<1)>>1]<<1)>>1];h=l<<16>>16;k=b[n>>1]|0;if((h|0)>=(k+-7|0))break;else m=l}}else{l=0;j=1}n=k&7;m=g+(j<<16>>16)|0;a[m>>0]=0;if(!n)return;j=o+(d<<2)|0;i=0;h=0;k=0;while(1){h=(e[f+(b[(c[j>>2]|0)+(l<<16>>16<<1)>>1]<<1)>>1]&255)<<7-i|h&255;a[m>>0]=h;k=k+1<<16>>16;i=k<<16>>16;if((i|0)>=(n|0))break;else l=l+1<<16>>16}return}function uc(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(16)|0;if(!d){a=-1;return a|0};b[d>>1]=0;b[d+2>>1]=0;b[d+4>>1]=0;b[d+6>>1]=0;b[d+8>>1]=0;b[d+10>>1]=0;b[d+12>>1]=0;b[d+14>>1]=0;c[a>>2]=d;a=0;return a|0}function vc(a){a=a|0;if(!a){a=-1;return a|0};b[a>>1]=0;b[a+2>>1]=0;b[a+4>>1]=0;b[a+6>>1]=0;b[a+8>>1]=0;b[a+10>>1]=0;b[a+12>>1]=0;b[a+14>>1]=0;a=0;return a|0}function wc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function xc(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;j=d<<16>>16<2722?0:d<<16>>16<5444?1:2;i=Ee(e,1,g)|0;l=a+4|0;if(!(e<<16>>16>200?i<<16>>16>(b[l>>1]|0):0)){i=b[a>>1]|0;if(i<<16>>16){h=i+-1<<16>>16;b[a>>1]=h;h=h<<16>>16!=0;k=5}}else{b[a>>1]=8;h=1;k=5}if((k|0)==5)if((j&65535)<2&h)j=(j&65535)+1&65535;k=a+6|0;b[k>>1]=d;h=Zd(k,5)|0;if(!(j<<16>>16!=0|h<<16>>16>5443))if(h<<16>>16<0)h=16384;else{h=h<<16>>16;h=(((h<<18>>18|0)==(h|0)?h<<2:h>>>15^32767)<<16>>16)*24660>>15;if((h|0)>32767){c[g>>2]=1;h=32767}h=16384-h&65535}else h=0;i=a+2|0;if(!(b[i>>1]|0))h=De(h,1,g)|0;b[f>>1]=h;b[i>>1]=h;b[l>>1]=e;f=a+12|0;b[a+14>>1]=b[f>>1]|0;e=a+10|0;b[f>>1]=b[e>>1]|0;a=a+8|0;b[e>>1]=b[a>>1]|0;b[a>>1]=b[k>>1]|0;return}function yc(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(68)|0;f=d;if(!d){a=-1;return a|0}c[d+28>>2]=0;g=d+64|0;c[g>>2]=0;h=d+32|0;if(((Ud(h)|0)<<16>>16==0?(i=d+48|0,(Ud(i)|0)<<16>>16==0):0)?(uc(g)|0)<<16>>16==0:0){e=d+32|0;do{b[d>>1]=0;d=d+2|0}while((d|0)<(e|0));Ud(h)|0;Ud(i)|0;vc(c[g>>2]|0)|0;c[a>>2]=f;a=0;return a|0}wc(g);Ke(d);a=-1;return a|0}function zc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;wc(b+64|0);Ke(c[a>>2]|0);c[a>>2]=0;return}function Ac(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}d=a+32|0;e=a;f=e+32|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));Ud(d)|0;Ud(a+48|0)|0;vc(c[a+64>>2]|0)|0;f=0;return f|0}function Bc(a,d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;var x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=i;i=i+48|0;y=H+34|0;A=H+32|0;C=H+30|0;B=H+28|0;z=H+18|0;x=H+8|0;D=H+6|0;E=H+4|0;F=H+2|0;G=H;if(d){o=a+32|0;Vd(o,d,h,y,A,D,E,w);do if((d|0)!=7){Vb(d,j,k,l,m,n,z,x,G,F,w);if((d|0)==5){ld(c[a+64>>2]|0,f,g,h,z,x,b[D>>1]|0,b[E>>1]|0,b[y>>1]|0,b[A>>1]|0,40,b[G>>1]|0,b[F>>1]|0,p,s,t,C,B,u,v,w);break}else{a=od(d,b[y>>1]|0,b[A>>1]|0,z,x,p,s,t,C,B,v,w)|0;j=c[u>>2]|0;c[u>>2]=j+2;b[j>>1]=a;break}}else{b[t>>1]=Cc(k,m,w)|0;a=md(7,b[y>>1]|0,b[A>>1]|0,t,C,B,c[v+68>>2]|0,w)|0;j=c[u>>2]|0;c[u>>2]=j+2;b[j>>1]=a}while(0);Wd(o,b[C>>1]|0,b[B>>1]|0);i=H;return}if(!(o<<16>>16)){Vd(a+48|0,0,h,y,A,D,E,w);Vb(0,j,k,l,m,n,z,x,G,F,w);Wb(j,D,E,w);j=jd(a+32|0,b[a>>1]|0,b[a+2>>1]|0,a+8|0,a+18|0,b[a+4>>1]|0,b[a+6>>1]|0,h,b[y>>1]|0,b[A>>1]|0,x,z,b[D>>1]|0,b[E>>1]|0,p,q,r,s,t,w)|0;b[c[a+28>>2]>>1]=j;i=H;return}o=c[u>>2]|0;c[u>>2]=o+2;c[a+28>>2]=o;o=a+48|0;f=a+32|0;q=f;q=e[q>>1]|e[q+2>>1]<<16;f=f+4|0;f=e[f>>1]|e[f+2>>1]<<16;u=o;r=u;b[r>>1]=q;b[r+2>>1]=q>>>16;u=u+4|0;b[u>>1]=f;b[u+2>>1]=f>>>16;u=a+40|0;f=u;f=e[f>>1]|e[f+2>>1]<<16;u=u+4|0;u=e[u>>1]|e[u+2>>1]<<16;r=a+56|0;q=r;b[q>>1]=f;b[q+2>>1]=f>>>16;r=r+4|0;b[r>>1]=u;b[r+2>>1]=u>>>16;r=a+2|0;Vd(o,0,h,a,r,D,E,w);Vb(0,j,k,l,m,n,a+18|0,a+8|0,G,F,w);l=(e[F>>1]|0)+1|0;u=b[G>>1]|0;q=l<<16>>16;if((l&65535)<<16>>16<0){v=0-q<<16;if((v|0)<983040)v=u<<16>>16>>(v>>16)&65535;else v=0}else{u=u<<16>>16;v=u<>16>>q|0)==(u|0))v=v&65535;else v=(u>>>15^32767)&65535}b[t>>1]=v;Wb(j,a+4|0,a+6|0,w);id(o,b[a>>1]|0,b[r>>1]|0,b[F>>1]|0,b[G>>1]|0,w);i=H;return}function Cc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=10;d=a;e=c;a=0;while(1){a=(Z(b[e>>1]>>1,b[d>>1]|0)|0)+a|0;a=a+(Z(b[e+2>>1]>>1,b[d+2>>1]|0)|0)|0;a=a+(Z(b[e+4>>1]>>1,b[d+4>>1]|0)|0)|0;a=a+(Z(b[e+6>>1]>>1,b[d+6>>1]|0)|0)|0;f=f+-1<<16>>16;if(!(f<<16>>16))break;else{d=d+8|0;e=e+8|0}}d=a<<1;f=pe(d|1)|0;g=f<<16>>16;d=(f<<16>>16<17?d>>17-g:d<>16<1){c=0;return c|0}else{f=20;e=c;a=0}while(1){c=b[e>>1]>>1;c=((Z(c,c)|0)>>>2)+a|0;a=b[e+2>>1]>>1;a=c+((Z(a,a)|0)>>>2)|0;f=f+-1<<16>>16;if(!(f<<16>>16))break;else e=e+4|0}a=a<<3;f=pe(a)|0;c=f<<16>>16;d=Td(d,(f<<16>>16<16?a>>16-c:a<>16;if((c|0)>65536)a=d<<16>>16>>a+-1;else a=d<<16>>16<<1-a;c=a&65535;return c|0}function Dc(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c[h>>2]=0;m=g<<16>>16;k=m>>>2&65535;o=k<<16>>16==0;if(o)j=0;else{l=k;i=e;j=0;while(1){p=b[i>>1]|0;p=(Z(p,p)|0)+j|0;j=b[i+2>>1]|0;j=p+(Z(j,j)|0)|0;p=b[i+4>>1]|0;p=j+(Z(p,p)|0)|0;j=b[i+6>>1]|0;j=p+(Z(j,j)|0)|0;l=l+-1<<16>>16;if(!(l<<16>>16))break;else i=i+8|0}}if(!((j>>>31^1)&(j|0)<1073741824)){j=m>>>1&65535;if(!(j<<16>>16))j=1;else{i=j;l=e;j=0;while(1){p=b[l>>1]>>2;p=(Z(p,p)|0)+j|0;j=b[l+2>>1]>>2;j=p+(Z(j,j)|0)|0;i=i+-1<<16>>16;if(!(i<<16>>16))break;else l=l+4|0}j=j<<1|1}p=(pe(j)|0)<<16>>16;n=p+65532&65535;p=Ce(j<>16),h)|0}c[h>>2]=0;do if(!(g<<16>>16)){j=1;q=14}else{m=g;l=d;j=e;g=0;while(1){r=Z(b[j>>1]|0,b[l>>1]|0)|0;i=r+g|0;if((r^g|0)>0&(i^g|0)<0)break;m=m+-1<<16>>16;if(!(m<<16>>16)){q=13;break}else{l=l+2|0;j=j+2|0;g=i}}if((q|0)==13){j=i<<1|1;q=14;break}c[h>>2]=1;if(o)j=1;else{j=d;i=0;while(1){i=(Z(b[e>>1]>>2,b[j>>1]|0)|0)+i|0;i=i+(Z(b[e+2>>1]>>2,b[j+2>>1]|0)|0)|0;i=i+(Z(b[e+4>>1]>>2,b[j+4>>1]|0)|0)|0;i=i+(Z(b[e+6>>1]>>2,b[j+6>>1]|0)|0)|0;k=k+-1<<16>>16;if(!(k<<16>>16))break;else{j=j+8|0;e=e+8|0}}j=i<<1|1}e=(pe(j)|0)<<16>>16;i=e+65532&65535;e=Ce(j<>16),h)|0}b[f>>1]=p;j=n<<16>>16;b[f+2>>1]=15-j;b[f+4>>1]=e;i=i<<16>>16;b[f+6>>1]=15-i;if(e<<16>>16<4){r=0;return r|0}i=De(Td(e<<16>>16>>>1&65535,p)|0,i-j&65535,h)|0;i=i<<16>>16>19661?19661:i;if((a|0)!=7){r=i;return r|0}r=i&65532;return r|0}function Ec(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0;k=(f&65535)+65535&65535;if(k<<16>>16>g<<16>>16){n=f+-1<<16>>16<<16>>16;f=-2147483648;while(1){l=c[a+(0-n<<2)>>2]|0;j=l<<1;l=(j>>1|0)==(l|0)?j:l>>31^2147483647;j=c[a+(~n<<2)>>2]|0;m=l-j|0;if(((m^l)&(l^j)|0)<0){c[i>>2]=1;m=(l>>>31)+2147483647|0}l=c[a+(1-n<<2)>>2]|0;j=m-l|0;if(((j^m)&(l^m)|0)<0){c[i>>2]=1;j=(m>>>31)+2147483647|0}m=Gc(j)|0;f=(m|0)<(f|0)?f:m;k=k+-1<<16>>16;if(k<<16>>16<=g<<16>>16){g=f;break}else n=n+-1|0}}else g=-2147483648;a=e<<16>>16>0;if(a){f=0;j=d;k=0;while(1){m=b[j>>1]|0;m=Z(m,m)|0;if((m|0)!=1073741824){l=(m<<1)+k|0;if((m^k|0)>0&(l^k|0)<0){c[i>>2]=1;k=(k>>>31)+2147483647|0}else k=l}else{c[i>>2]=1;k=2147483647}f=f+1<<16>>16;if(f<<16>>16>=e<<16>>16)break;else j=j+2|0}if(a){a=0;n=d;f=d+-2|0;j=0;while(1){m=Z(b[f>>1]|0,b[n>>1]|0)|0;if((m|0)!=1073741824){l=(m<<1)+j|0;if((m^j|0)>0&(l^j|0)<0){c[i>>2]=1;j=(j>>>31)+2147483647|0}else j=l}else{c[i>>2]=1;j=2147483647}a=a+1<<16>>16;if(a<<16>>16>=e<<16>>16)break;else{n=n+2|0;f=f+2|0}}}else j=0}else{k=0;j=0}f=k<<1;f=(f>>1|0)==(k|0)?f:k>>31^2147483647;e=j<<1;e=(e>>1|0)==(j|0)?e:j>>31^2147483647;k=f-e|0;if(((k^f)&(e^f)|0)<0){c[i>>2]=1;k=(f>>>31)+2147483647|0}a=Gc(k)|0;n=((pe(g)|0)&65535)+65535|0;k=n<<16>>16;if((n&65535)<<16>>16>0){f=g<>k|0)!=(g|0))f=g>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)f=g>>(k>>16);else f=0}m=pe(a)|0;j=m<<16>>16;if(m<<16>>16>0){k=a<>j|0)==(a|0))o=33;else{k=a>>31^2147483647;o=33}}else{k=0-j<<16;if((k|0)<2031616){k=a>>(k>>16);o=33}else l=0}if((o|0)==33)if(k>>>0>65535)l=Td(f>>>16&65535,k>>>16&65535)|0;else l=0;k=m&65535;o=(n&65535)-k|0;f=o&65535;if(!(o&32768)){i=De(l,f,i)|0;b[h>>1]=i;return 0}if(f<<16>>16!=-32768){i=k-n|0;j=i<<16>>16;if((i&65535)<<16>>16<0){j=0-j<<16;if((j|0)>=983040){i=0;b[h>>1]=i;return 0}i=l<<16>>16>>(j>>16)&65535;b[h>>1]=i;return 0}}else j=32767;f=l<<16>>16;k=f<>16>>j|0)==(f|0)){i=k&65535;b[h>>1]=i;return 0}i=(f>>>15^32767)&65535;b[h>>1]=i;return 0}function Fc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;if(d<<16>>16)c=c<<16>>16<<1&65535;if(c<<16>>16<0){a=a+-2|0;c=(c&65535)+6&65535}d=c<<16>>16;e=6-d<<16>>16;c=(Z(b[3468+(d<<1)>>1]|0,b[a>>1]|0)|0)+16384|0;c=c+(Z(b[3468+(e<<1)>>1]|0,b[a+2>>1]|0)|0)|0;c=c+(Z(b[3468+(d+6<<1)>>1]|0,b[a+-2>>1]|0)|0)|0;c=c+(Z(b[3468+(e+6<<1)>>1]|0,b[a+4>>1]|0)|0)|0;c=(Z(b[3468+(d+12<<1)>>1]|0,b[a+-4>>1]|0)|0)+c|0;c=c+(Z(b[3468+(e+12<<1)>>1]|0,b[a+6>>1]|0)|0)|0;d=c+(Z(b[3468+(d+18<<1)>>1]|0,b[a+-6>>1]|0)|0)|0;return (d+(Z(b[3468+(e+18<<1)>>1]|0,b[a+8>>1]|0)|0)|0)>>>15&65535|0}function Gc(a){a=a|0;a=a-(a>>>31)|0;return a>>31^a|0}function Hc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if(!(a<<16>>16))return;else{f=3518;g=3538;e=d}while(1){e=e+2|0;c=c+2|0;j=b[c>>1]|0;i=b[f>>1]|0;d=Z(i,j)|0;d=(d|0)==1073741824?2147483647:d<<1;j=(Z(b[g>>1]|0,j)|0)>>15;h=(j<<1)+d|0;h=(d^j|0)>0&(h^d|0)<0?(d>>>31)+2147483647|0:h;i=(Z(i,b[e>>1]|0)|0)>>15;d=h+(i<<1)|0;d=(h^i|0)>0&(d^h|0)<0?(h>>>31)+2147483647|0:d;b[c>>1]=d>>>16;b[e>>1]=(d>>>1)-(d>>16<<15);a=a+-1<<16>>16;if(!(a<<16>>16))break;else{f=f+2|0;g=g+2|0}}return}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a&65535;f=e<<16;b=b<<16>>16;a=(b<<1)+f|0;if(!((b^f|0)>0&(a^f|0)<0)){f=a;return f|0}c[d>>2]=1;f=(e>>>15)+2147483647|0;return f|0}function Jc(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}c[a>>2]=0;d=Je(22)|0;if(!d){f=-1;return f|0}b[d>>1]=4096;e=d+2|0;f=e+20|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));c[a>>2]=d;f=0;return f|0}function Kc(a){a=a|0;var c=0;if(!a){c=-1;return c|0}b[a>>1]=4096;a=a+2|0;c=a+20|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function Lc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Mc(a,c,d,f,g,h){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;var 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,G=0,H=0,I=0,J=0,K=0,L=0,M=0;K=i;i=i+96|0;I=K+66|0;J=K+44|0;H=K+22|0;k=K;D=c+2|0;G=d+2|0;F=(b[G>>1]<<1)+(e[D>>1]<<16)|0;j=Gc(F)|0;j=ic(j,b[c>>1]|0,b[d>>1]|0,h)|0;if((F|0)>0)j=Oc(j)|0;B=j>>16;b[g>>1]=Ce(j,h)|0;v=j>>20;E=I+2|0;b[E>>1]=v;F=J+2|0;b[F>>1]=(j>>>5)-(v<<15);v=Z(B,B)|0;v=(v|0)==1073741824?2147483647:v<<1;B=(Z((j>>>1)-(B<<15)<<16>>16,B)|0)>>15;C=B<<1;A=C+v|0;A=(B^v|0)>0&(A^v|0)<0?(v>>>31)+2147483647|0:A;C=A+C|0;C=2147483647-(Gc((A^B|0)>0&(C^A|0)<0?(A>>>31)+2147483647|0:C)|0)|0;A=C>>16;B=b[c>>1]|0;v=Z(A,B)|0;v=(v|0)==1073741824?2147483647:v<<1;B=(Z((C>>>1)-(A<<15)<<16>>16,B)|0)>>15;C=(B<<1)+v|0;C=(B^v|0)>0&(C^v|0)<0?(v>>>31)+2147483647|0:C;A=(Z(b[d>>1]|0,A)|0)>>15;v=C+(A<<1)|0;v=(C^A|0)>0&(v^C|0)<0?(C>>>31)+2147483647|0:v;C=pe(v)|0;v=v<<(C<<16>>16);A=H+2|0;B=k+2|0;l=v;v=(v>>>1)-(v>>16<<15)|0;w=k+4|0;x=H+4|0;y=2;z=2;while(1){u=l>>>16;j=u&65535;r=v&65535;s=z+-1|0;n=I+(s<<1)|0;t=J+(s<<1)|0;q=1;p=n;o=t;m=D;k=G;l=0;while(1){L=b[m>>1]|0;M=((Z(b[o>>1]|0,L)|0)>>15)+l|0;l=b[p>>1]|0;l=M+(Z(l,L)|0)+((Z(l,b[k>>1]|0)|0)>>15)|0;q=q+1<<16>>16;if((q<<16>>16|0)>=(z|0))break;else{p=p+-2|0;o=o+-2|0;m=m+2|0;k=k+2|0}}M=(e[c+(z<<1)>>1]<<16)+(l<<5)+(b[d+(z<<1)>>1]<<1)|0;l=ic(Gc(M)|0,j,r,h)|0;if((M|0)>0)l=Oc(l)|0;k=C<<16>>16;if(C<<16>>16>0){j=l<>k|0)!=(l|0))j=l>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)j=l>>(k>>16);else j=0}q=j>>16;if((z|0)<5)b[g+(s<<1)>>1]=(j+32768|0)>>>16;M=(j>>>16)-(j>>>31)|0;if(((M<<16>>31^M)&65535)<<16>>16>32750){j=16;break}o=(j>>>1)-(q<<15)<<16>>16;p=1;l=t;k=A;m=B;while(1){L=(Z(b[l>>1]|0,q)|0)>>15;t=b[n>>1]|0;M=(Z(t,o)|0)>>15;t=Z(t,q)|0;M=t+L+(b[J+(p<<1)>>1]|0)+(b[I+(p<<1)>>1]<<15)+M|0;b[k>>1]=M>>>15;b[m>>1]=M&32767;p=p+1|0;if((p&65535)<<16>>16==y<<16>>16)break;else{n=n+-2|0;l=l+-2|0;k=k+2|0;m=m+2|0}}b[x>>1]=j>>20;b[w>>1]=(j>>>5)-(b[H+(z<<1)>>1]<<15);L=Z(q,q)|0;L=(L|0)==1073741824?2147483647:L<<1;j=(Z(o,q)|0)>>15;M=j<<1;k=M+L|0;k=(j^L|0)>0&(k^L|0)<0?(L>>>31)+2147483647|0:k;M=k+M|0;M=2147483647-(Gc((k^j|0)>0&(M^k|0)<0?(k>>>31)+2147483647|0:M)|0)|0;k=M>>16;j=u<<16>>16;j=((Z(k,v<<16>>16)|0)>>15)+(Z(k,j)|0)+((Z((M>>>1)-(k<<15)<<16>>16,j)|0)>>15)<<1;k=(pe(j)|0)<<16>>16;j=j<=11){j=20;break}else{C=k+(C&65535)&65535;l=j;v=(j>>1)-(j>>16<<15)|0;w=w+2|0;x=x+2|0;y=y+1<<16>>16}}if((j|0)==16){j=f+22|0;do{b[f>>1]=b[a>>1]|0;f=f+2|0;a=a+2|0}while((f|0)<(j|0));M=g;L=M;b[L>>1]=0;b[L+2>>1]=0>>>16;M=M+4|0;b[M>>1]=0;b[M+2>>1]=0>>>16;i=K;return 0}else if((j|0)==20){b[f>>1]=4096;M=((b[F>>1]|0)+8192+(b[E>>1]<<15)|0)>>>14&65535;b[f+2>>1]=M;b[a+2>>1]=M;M=((b[J+4>>1]|0)+8192+(b[I+4>>1]<<15)|0)>>>14&65535;b[f+4>>1]=M;b[a+4>>1]=M;M=((b[J+6>>1]|0)+8192+(b[I+6>>1]<<15)|0)>>>14&65535;b[f+6>>1]=M;b[a+6>>1]=M;M=((b[J+8>>1]|0)+8192+(b[I+8>>1]<<15)|0)>>>14&65535;b[f+8>>1]=M;b[a+8>>1]=M;M=((b[J+10>>1]|0)+8192+(b[I+10>>1]<<15)|0)>>>14&65535;b[f+10>>1]=M;b[a+10>>1]=M;M=((b[J+12>>1]|0)+8192+(b[I+12>>1]<<15)|0)>>>14&65535;b[f+12>>1]=M;b[a+12>>1]=M;M=((b[J+14>>1]|0)+8192+(b[I+14>>1]<<15)|0)>>>14&65535;b[f+14>>1]=M;b[a+14>>1]=M;M=((b[J+16>>1]|0)+8192+(b[I+16>>1]<<15)|0)>>>14&65535;b[f+16>>1]=M;b[a+16>>1]=M;M=((b[J+18>>1]|0)+8192+(b[I+18>>1]<<15)|0)>>>14&65535;b[f+18>>1]=M;b[a+18>>1]=M;M=((b[J+20>>1]|0)+8192+(b[I+20>>1]<<15)|0)>>>14&65535;b[f+20>>1]=M;b[a+20>>1]=M;i=K;return 0}return 0}function Nc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;e=a>>16;b[c>>1]=e;b[d>>1]=(a>>>1)-(e<<15);return}function Oc(a){a=a|0;return ((a|0)==-2147483648?2147483647:0-a|0)|0}function Pc(a){a=a|0;var b=0;if(!a){a=-1;return a|0}c[a>>2]=0;b=Je(4)|0;if(!b){a=-1;return a|0}c[b>>2]=0;if(!((Jc(b)|0)<<16>>16)){Kc(c[b>>2]|0)|0;c[a>>2]=b;a=0;return a|0}else{Lc(b);Ke(b);a=-1;return a|0}return 0}function Qc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Lc(b);Ke(c[a>>2]|0);c[a>>2]=0;return}function Rc(a){a=a|0;if(!a){a=-1;return a|0}Kc(c[a>>2]|0)|0;a=0;return a|0}function Sc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;m=i;i=i+64|0;l=m+48|0;k=m+22|0;j=m;if((b|0)==7){d=c[g+116>>2]|0;Kb(e,10,j,k,c[g+112>>2]|0,h)|0;Hc(10,j,k,h);Mc(c[a>>2]|0,j,k,f+22|0,l,h)|0;Kb(e,10,j,k,d,h)|0;Hc(10,j,k,h);Mc(c[a>>2]|0,j,k,f+66|0,l,h)|0;i=m;return}else{Kb(d,10,j,k,c[g+108>>2]|0,h)|0;Hc(10,j,k,h);Mc(c[a>>2]|0,j,k,f+66|0,l,h)|0;i=m;return}}function Tc(a,c,d,e,f,g,h,i,j,k){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;if((d|0)==6){b[f>>1]=bd(a,c,e,20,143,80,g,h,i,j,k)|0;return}b[h>>1]=0;b[h+2>>1]=0;if(d>>>0<2){b[f>>1]=Yc(c,d,e,20,143,160,i,j,k)|0;return}if(d>>>0<6){b[f>>1]=Yc(c,d,e,20,143,80,i,j,k)|0;return}else{b[f>>1]=Yc(c,d,e,18,143,80,i,j,k)|0;return}}function Uc(a){a=a|0;var d=0;if((a|0)!=0?(c[a>>2]=0,d=Je(2)|0,(d|0)!=0):0){b[d>>1]=0;c[a>>2]=d;d=0}else d=-1;return d|0}function Vc(a){a=a|0;if(!a)a=-1;else{b[a>>1]=0;a=0}return a|0}function Wc(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Xc(a,c,d,f,g,h,j,k,l,m,n,o){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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,R=0,S=0,T=0,U=0;U=i;i=i+240|0;u=U+160|0;v=U+80|0;O=U;N=b[3558+(c*18|0)>>1]|0;T=b[3558+(c*18|0)+2>>1]|0;p=b[3558+(c*18|0)+4>>1]|0;P=b[3558+(c*18|0)+6>>1]|0;s=b[3558+(c*18|0)+12>>1]|0;r=b[3558+(c*18|0)+14>>1]|0;q=b[3558+(c*18|0)+16>>1]|0;a:do switch(k<<16>>16){case 0:case 80:if(c>>>0<2&k<<16>>16==80){Q=(e[a>>1]|0)-(s&65535)|0;Q=(Q<<16>>16|0)<(q<<16>>16|0)?q:Q&65535;M=r<<16>>16;R=(Q&65535)+M&65535;S=R<<16>>16>143;Q=S?143-M&65535:Q;R=S?143:R;S=1;break a}else{Q=(e[d+((k<<16>>16!=0&1)<<1)>>1]|0)-(e[3558+(c*18|0)+8>>1]|0)|0;Q=(Q<<16>>16|0)<(q<<16>>16|0)?q:Q&65535;M=b[3558+(c*18|0)+10>>1]|0;R=(Q&65535)+M&65535;S=R<<16>>16>143;Q=S?143-M&65535:Q;R=S?143:R;S=0;break a}default:{Q=(e[a>>1]|0)-(s&65535)|0;Q=(Q<<16>>16|0)<(q<<16>>16|0)?q:Q&65535;M=r<<16>>16;R=(Q&65535)+M&65535;S=R<<16>>16>143;Q=S?143-M&65535:Q;R=S?143:R;S=1}}while(0);L=Q&65535;k=L+65532|0;t=k&65535;K=(R&65535)+4&65535;M=k<<16>>16;k=0-(k&65535)|0;s=k&65535;ec(f+(k<<16>>16<<1)|0,h,u,j);k=j<<16>>16;B=k>>>1&65535;w=B<<16>>16==0;if(w)j=1;else{j=B;q=u;d=v;r=0;while(1){J=b[q>>1]|0;b[d>>1]=J>>>2;J=(Z(J,J)|0)+r|0;r=b[q+2>>1]|0;b[d+2>>1]=r>>>2;r=J+(Z(r,r)|0)|0;j=j+-1<<16>>16;if(!(j<<16>>16))break;else{q=q+4|0;d=d+4|0}}j=(r|0)<33554433}J=j?0:2;A=j?u:v;x=j?u:v;b:do if(t<<16>>16<=K<<16>>16){y=k+-1|0;G=A+(y<<1)|0;H=h+(y<<1)|0;I=A+(k+-2<<1)|0;D=y>>>1;E=D&65535;z=E<<16>>16==0;F=j?12:14;D=(D<<1)+131070&131070;d=k+-3-D|0;C=A+(d<<1)|0;D=A+(k+-4-D<<1)|0;h=h+(d<<1)|0;if(!w){w=M;while(1){v=B;u=x;q=g;r=0;j=0;while(1){v=v+-1<<16>>16;k=b[u>>1]|0;r=(Z(k,b[q>>1]|0)|0)+r|0;k=(Z(k,k)|0)+j|0;j=b[u+2>>1]|0;r=r+(Z(j,b[q+2>>1]|0)|0)|0;j=k+(Z(j,j)|0)|0;if(!(v<<16>>16))break;else{u=u+4|0;q=q+4|0}}u=ce(j<<1,o)|0;j=u>>16;q=r<<1>>16;v=Z(j,q)|0;v=(v|0)==1073741824?2147483647:v<<1;q=(Z((u>>>1)-(j<<15)<<16>>16,q)|0)>>15;u=(q<<1)+v|0;u=(q^v|0)>0&(u^v|0)<0?(v>>>31)+2147483647|0:u;j=(Z(j,r&32767)|0)>>15;v=u+(j<<1)|0;b[O+(w-M<<1)>>1]=(u^j|0)>0&(v^u|0)<0?(u>>>31)+65535|0:v;if(t<<16>>16!=K<<16>>16){s=s+-1<<16>>16;v=b[f+(s<<16>>16<<1)>>1]|0;if(z){u=y;j=I;r=H;q=G}else{u=E;j=I;r=H;q=G;while(1){w=(Z(b[r>>1]|0,v)|0)>>F;b[q>>1]=w+(e[j>>1]|0);w=(Z(b[r+-2>>1]|0,v)|0)>>F;b[q+-2>>1]=w+(e[j+-2>>1]|0);u=u+-1<<16>>16;if(!(u<<16>>16)){u=d;j=D;r=h;q=C;break}else{j=j+-4|0;r=r+-4|0;q=q+-4|0}}}w=(Z(b[r>>1]|0,v)|0)>>F;b[q>>1]=w+(e[j>>1]|0);b[A+(u+-1<<1)>>1]=v>>J}t=t+1<<16>>16;if(t<<16>>16>K<<16>>16)break b;else w=t<<16>>16}}if(z){j=A+(k+-2<<1)|0;r=M;while(1){ce(0,o)|0;b[O+(r-M<<1)>>1]=0;if(t<<16>>16!=K<<16>>16){s=s+-1<<16>>16;g=b[f+(s<<16>>16<<1)>>1]|0;E=(Z(b[H>>1]|0,g)|0)>>F;b[G>>1]=E+(e[I>>1]|0);b[j>>1]=g>>J}t=t+1<<16>>16;if(t<<16>>16>K<<16>>16)break b;else r=t<<16>>16}}u=A+(d+-1<<1)|0;j=M;while(1){ce(0,o)|0;b[O+(j-M<<1)>>1]=0;if(t<<16>>16!=K<<16>>16){s=s+-1<<16>>16;j=b[f+(s<<16>>16<<1)>>1]|0;r=E;q=I;d=H;k=G;while(1){g=(Z(b[d>>1]|0,j)|0)>>F;b[k>>1]=g+(e[q>>1]|0);g=(Z(b[d+-2>>1]|0,j)|0)>>F;b[k+-2>>1]=g+(e[q+-2>>1]|0);r=r+-1<<16>>16;if(!(r<<16>>16))break;else{q=q+-4|0;d=d+-4|0;k=k+-4|0}}g=(Z(b[h>>1]|0,j)|0)>>F;b[C>>1]=g+(e[D>>1]|0);b[u>>1]=j>>J}t=t+1<<16>>16;if(t<<16>>16>K<<16>>16)break;else j=t<<16>>16}}while(0);t=Q<<16>>16;d=L+1&65535;if(d<<16>>16>R<<16>>16)h=Q;else{s=Q;k=b[O+(t-M<<1)>>1]|0;while(1){r=b[O+((d<<16>>16)-M<<1)>>1]|0;q=r<<16>>16>16;s=q?s:d;d=d+1<<16>>16;if(d<<16>>16>R<<16>>16){h=s;break}else k=q?k:r}}c:do if(!(S<<16>>16==0?h<<16>>16>N<<16>>16:0)){if(!(c>>>0<4&S<<16>>16!=0)){s=O+((h<<16>>16)-M<<1)|0;r=Fc(s,p,T,o)|0;d=(p&65535)+1&65535;if(d<<16>>16<=P<<16>>16)while(1){q=Fc(s,d,T,o)|0;k=q<<16>>16>r<<16>>16;p=k?d:p;d=d+1<<16>>16;if(d<<16>>16>P<<16>>16)break;else r=k?q:r}if((c+-7|0)>>>0<2){P=p<<16>>16==-3;d=(P<<31>>31)+h<<16>>16;p=P?3:p;break}switch(p<<16>>16){case -2:{d=h+-1<<16>>16;p=1;break c}case 2:{d=h+1<<16>>16;p=-1;break c}default:{d=h;break c}}}N=b[a>>1]|0;N=((N<<16>>16)-t|0)>5?t+5&65535:N;k=R<<16>>16;N=(k-(N<<16>>16)|0)>4?k+65532&65535:N;k=h<<16>>16;d=N<<16>>16;if((k|0)==(d+-1|0)?1:h<<16>>16==N<<16>>16){s=O+(k-M<<1)|0;k=Fc(s,p,T,o)|0;d=(p&65535)+1&65535;if(d<<16>>16<=P<<16>>16)while(1){r=Fc(s,d,T,o)|0;q=r<<16>>16>k<<16>>16;p=q?d:p;d=d+1<<16>>16;if(d<<16>>16>P<<16>>16)break;else k=q?r:k}if((c+-7|0)>>>0<2){P=p<<16>>16==-3;d=(P<<31>>31)+h<<16>>16;p=P?3:p;break}switch(p<<16>>16){case -2:{d=h+-1<<16>>16;p=1;break c}case 2:{d=h+1<<16>>16;p=-1;break c}default:{d=h;break c}}}if((k|0)==(d+-2|0)){d=O+(k-M<<1)|0;k=Fc(d,0,T,o)|0;if((c|0)!=8){p=0;s=1;while(1){r=Fc(d,s,T,o)|0;q=r<<16>>16>k<<16>>16;p=q?s:p;s=s+1<<16>>16;if(s<<16>>16>P<<16>>16)break;else k=q?r:k}if((c+-7|0)>>>0>=2)switch(p<<16>>16){case -2:{d=h+-1<<16>>16;p=1;break c}case 2:{d=h+1<<16>>16;p=-1;break c}default:{d=h;break c}}}else p=0;P=p<<16>>16==-3;d=(P<<31>>31)+h<<16>>16;p=P?3:p;break}if((k|0)==(d+1|0)){s=O+(k-M<<1)|0;d=Fc(s,p,T,o)|0;k=(p&65535)+1&65535;if(k<<16>>16<=0)while(1){q=Fc(s,k,T,o)|0;r=q<<16>>16>d<<16>>16;p=r?k:p;k=k+1<<16>>16;if(k<<16>>16>0)break;else d=r?q:d}if((c+-7|0)>>>0<2){P=p<<16>>16==-3;d=(P<<31>>31)+h<<16>>16;p=P?3:p;break}switch(p<<16>>16){case -2:{d=h+-1<<16>>16;p=1;break c}case 2:{d=h+1<<16>>16;p=-1;break c}default:{d=h;break c}}}else{d=h;p=0}}else{d=h;p=0}while(0);if((c+-7|0)>>>0>1){P=a;a=pc(d,p,b[a>>1]|0,Q,R,S,c>>>0<4&1,o)|0;b[n>>1]=a;b[P>>1]=d;b[m>>1]=T;b[l>>1]=p;i=U;return d|0}else{o=qc(d,p,Q,S,o)|0;b[n>>1]=o;b[a>>1]=d;b[m>>1]=T;b[l>>1]=p;i=U;return d|0}return 0}function Yc(a,d,e,f,g,h,j,k,l){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var 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;D=i;i=i+1200|0;B=D+1188|0;A=D+580|0;C=D+578|0;z=D+576|0;v=D;x=D+582|0;y=(k|0)!=0;do if(y)if(d>>>0<2){Ld(a,1,l);break}else{Ld(a,0,l);break}while(0);w=g<<16>>16;o=0-w|0;n=e+(o<<1)|0;o=o&65535;s=h<<16>>16;do if(o<<16>>16>16){r=o;q=n;o=0;while(1){t=b[q>>1]|0;o=(Z(t<<1,t)|0)+o|0;if((o|0)<0)break;r=r+1<<16>>16;if(r<<16>>16>=h<<16>>16){u=14;break}else q=q+2|0}if((u|0)==14){if((o|0)<1048576){u=15;break}Oe(x|0,n|0,s+w<<1|0)|0;t=0;break}m=s+w|0;p=m>>>1;r=p&65535;if(!(r<<16>>16))o=x;else{t=((p<<1)+131070&131070)+2|0;s=t-w|0;q=x;while(1){b[q>>1]=(b[n>>1]|0)>>>3;b[q+2>>1]=(b[n+2>>1]|0)>>>3;r=r+-1<<16>>16;if(!(r<<16>>16))break;else{n=n+4|0;q=q+4|0}}n=e+(s<<1)|0;o=x+(t<<1)|0}if(!(m&1))t=3;else{b[o>>1]=(b[n>>1]|0)>>>3;t=3}}else u=15;while(0);if((u|0)==15){t=s+w|0;o=t>>>1;p=o&65535;if(!(p<<16>>16))o=x;else{s=((o<<1)+131070&131070)+2|0;q=s-w|0;r=x;while(1){b[r>>1]=b[n>>1]<<3;b[r+2>>1]=b[n+2>>1]<<3;p=p+-1<<16>>16;if(!(p<<16>>16))break;else{n=n+4|0;r=r+4|0}}n=e+(q<<1)|0;o=x+(s<<1)|0}if(!(t&1))t=-3;else{b[o>>1]=b[n>>1]<<3;t=-3}}s=v+(w<<2)|0;q=x+(w<<1)|0;Tb(q,h,g,f,s);m=(d|0)==7&1;o=f<<16>>16;n=o<<2;if((n|0)!=(o<<18>>16|0)){c[l>>2]=1;n=f<<16>>16>0?32767:-32768}r=Zc(a,s,q,t,m,h,g,n&65535,B,k,l)|0;o=o<<1;p=Zc(a,s,q,t,m,h,n+65535&65535,o&65535,A,k,l)|0;o=Zc(a,s,q,t,m,h,o+65535&65535,f,C,k,l)|0;if(j<<16>>16==1&y){Ec(s,q,h,g,f,z,l)|0;Jd(a,b[z>>1]|0)}n=b[B>>1]|0;m=b[A>>1]|0;if(((n<<16>>16)*55706>>16|0)>=(m<<16>>16|0)){A=n;B=r;A=A<<16>>16;A=A*55706|0;A=A>>16;C=b[C>>1]|0;C=C<<16>>16;C=(A|0)<(C|0);C=C?o:B;i=D;return C|0}b[B>>1]=m;A=m;B=p;A=A<<16>>16;A=A*55706|0;A=A>>16;C=b[C>>1]|0;C=C<<16>>16;C=(A|0)<(C|0);C=C?o:B;i=D;return C|0}function Zc(a,d,e,f,g,h,i,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0;if(i<<16>>16>16){j=-2147483648;p=i}else{p=i;n=-2147483648;o=d+(0-(i<<16>>16)<<2)|0;d=i;while(1){i=c[o>>2]|0;r=(i|0)<(n|0);d=r?d:p;n=r?n:i;p=p+-1<<16>>16;if(p<<16>>16>16){j=n;p=d;break}else o=o+4|0}}d=h<<16>>16>>>2&65535;if(!(d<<16>>16))d=0;else{n=d;i=e+(0-(p<<16>>16)<<1)|0;d=0;while(1){r=b[i>>1]|0;r=(Z(r,r)|0)+d|0;d=b[i+2>>1]|0;d=r+(Z(d,d)|0)|0;r=b[i+4>>1]|0;r=d+(Z(r,r)|0)|0;d=b[i+6>>1]|0;d=r+(Z(d,d)|0)|0;n=n+-1<<16>>16;if(!(n<<16>>16))break;else i=i+8|0}d=d<<1}if(l)Kd(a,j,d,m);d=ce(d,m)|0;i=g<<16>>16!=0;if(i)d=(d|0)>1073741823?2147483647:d<<1;g=j>>16;a=d>>16;m=Z(a,g)|0;m=(m|0)==1073741824?2147483647:m<<1;d=(Z((d>>>1)-(a<<15)<<16>>16,g)|0)>>15;r=(d<<1)+m|0;r=(d^m|0)>0&(r^m|0)<0?(m>>>31)+2147483647|0:r;g=(Z(a,(j>>>1)-(g<<15)<<16>>16)|0)>>15;d=r+(g<<1)|0;d=(r^g|0)>0&(d^r|0)<0?(r>>>31)+2147483647|0:d;if(!i){b[k>>1]=d;return p|0}i=f<<16>>16;if(f<<16>>16>0)if(f<<16>>16<31){i=d>>i;q=16}else i=0;else{q=0-i<<16>>16;i=d<>q|0)==(d|0)?i:d>>31^2147483647;q=16}if((q|0)==16){if((i|0)>65535){b[k>>1]=32767;return p|0}if((i|0)<-65536){b[k>>1]=-32768;return p|0}}b[k>>1]=i>>>1;return p|0}function _c(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(6)|0;if(!d){a=-1;return a|0}b[d>>1]=40;b[d+2>>1]=0;b[d+4>>1]=0;c[a>>2]=d;a=0;return a|0}function $c(a){a=a|0;if(!a){a=-1;return a|0}b[a>>1]=40;b[a+2>>1]=0;b[a+4>>1]=0;a=0;return a|0}function ad(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function bd(a,d,e,f,g,h,j,k,l,m,n){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;F=i;i=i+1200|0;w=F+1186|0;x=F+1184|0;E=F+1182|0;v=F;z=F+576|0;y=g<<16>>16;D=z+(y<<1)|0;o=(0-y&65535)<<16>>16>16;if(o){s=0-g<<16>>16<<16>>16;p=0;do{r=b[e+(s<<1)>>1]|0;r=Z(r,r)|0;if((r|0)!=1073741824){q=(r<<1)+p|0;if((r^p|0)>0&(q^p|0)<0){c[n>>2]=1;p=(p>>>31)+2147483647|0}else p=q}else{c[n>>2]=1;p=2147483647}s=s+1|0}while((s&65535)<<16>>16!=h<<16>>16)}else p=0;if((2147483646-p&p|0)>=0)if((p|0)==2147483647){if(o){p=0-g<<16>>16<<16>>16;do{b[z+(p+y<<1)>>1]=De(b[e+(p<<1)>>1]|0,3,n)|0;p=p+1|0}while((p&65535)<<16>>16!=h<<16>>16)}}else t=14;else{c[n>>2]=1;t=14}do if((t|0)==14){if((1048575-p&p|0)<0){c[n>>2]=1;p=(p>>>31)+2147483647|0}else p=p+-1048576|0;if((p|0)>=0){if(!o)break;C=0-g<<16>>16<<16>>16;Oe(z+(y+C<<1)|0,e+(C<<1)|0,(((h+g<<16>>16)+-1&65535)<<1)+2|0)|0;break}if(o){p=0-g<<16>>16<<16>>16;do{C=b[e+(p<<1)>>1]|0;b[z+(p+y<<1)>>1]=(C<<19>>19|0)==(C|0)?C<<3:C>>>15^32767;p=p+1|0}while((p&65535)<<16>>16!=h<<16>>16)}}while(0);B=v+(y<<2)|0;Tb(D,h,g,f,B);s=b[a>>1]|0;C=a+4|0;A=k+(l<<16>>16<<1)|0;a:do if(g<<16>>16>16)u=g;else{if((b[C>>1]|0)<=0){e=g;k=-2147483648;r=g;t=3402;while(1){Nc(c[v+(y-(e<<16>>16)<<2)>>2]|0,w,x,n);q=b[x>>1]|0;p=b[t>>1]|0;s=Z(p,b[w>>1]|0)|0;if((s|0)==1073741824){c[n>>2]=1;o=2147483647}else o=s<<1;u=(Z(p,q<<16>>16)|0)>>15;s=o+(u<<1)|0;if((o^u|0)>0&(s^o|0)<0){c[n>>2]=1;s=(o>>>31)+2147483647|0}q=(s|0)<(k|0);r=q?r:e;e=e+-1<<16>>16;if(e<<16>>16>16){u=r;break a}else{k=q?k:s;t=t+-2|0}}}k=g;o=-2147483648;r=g;u=2902+(y+123-(s<<16>>16)<<1)|0;e=3402;while(1){Nc(c[v+(y-(k<<16>>16)<<2)>>2]|0,w,x,n);t=b[x>>1]|0;q=b[e>>1]|0;s=Z(q,b[w>>1]|0)|0;if((s|0)==1073741824){c[n>>2]=1;p=2147483647}else p=s<<1;t=(Z(q,t<<16>>16)|0)>>15;s=p+(t<<1)|0;if((p^t|0)>0&(s^p|0)<0){c[n>>2]=1;s=(p>>>31)+2147483647|0}Nc(s,w,x,n);t=b[x>>1]|0;q=b[u>>1]|0;s=Z(q,b[w>>1]|0)|0;if((s|0)==1073741824){c[n>>2]=1;p=2147483647}else p=s<<1;t=(Z(q,t<<16>>16)|0)>>15;s=p+(t<<1)|0;if((p^t|0)>0&(s^p|0)<0){c[n>>2]=1;s=(p>>>31)+2147483647|0}q=(s|0)<(o|0);r=q?r:k;k=k+-1<<16>>16;if(k<<16>>16>16){u=r;break}else{o=q?o:s;u=u+-2|0;e=e+-2|0}}}while(0);if(h<<16>>16>0){k=0;e=D;t=z+(y-(u<<16>>16)<<1)|0;r=0;p=0;while(1){s=b[t>>1]|0;q=Z(s,b[e>>1]|0)|0;if((q|0)!=1073741824){o=(q<<1)+r|0;if((q^r|0)>0&(o^r|0)<0){c[n>>2]=1;r=(r>>>31)+2147483647|0}else r=o}else{c[n>>2]=1;r=2147483647}o=Z(s,s)|0;if((o|0)!=1073741824){q=(o<<1)+p|0;if((o^p|0)>0&(q^p|0)<0){c[n>>2]=1;p=(p>>>31)+2147483647|0}else p=q}else{c[n>>2]=1;p=2147483647}k=k+1<<16>>16;if(k<<16>>16>=h<<16>>16)break;else{e=e+2|0;t=t+2|0}}}else{r=0;p=0}q=(m|0)==0;if(!q){Ld(d,0,n);Kd(d,r,p,n)}o=(Ce(p,n)|0)<<16>>16;if((o*13107|0)==1073741824){c[n>>2]=1;p=2147483647}else p=o*26214|0;o=r-p|0;if(((o^r)&(p^r)|0)<0){c[n>>2]=1;o=(r>>>31)+2147483647|0}m=Ce(o,n)|0;b[A>>1]=m;if(m<<16>>16>0){o=j+6|0;b[j+8>>1]=b[o>>1]|0;m=j+4|0;b[o>>1]=b[m>>1]|0;o=j+2|0;b[m>>1]=b[o>>1]|0;b[o>>1]=b[j>>1]|0;b[j>>1]=u;b[a>>1]=Zd(j,5)|0;b[a+2>>1]=32767;o=32767}else{b[a>>1]=u;a=a+2|0;o=((b[a>>1]|0)*29491|0)>>>15&65535;b[a>>1]=o}b[C>>1]=((Ge(o,9830,n)|0)&65535)>>>15^1;if(q){i=F;return u|0}if((Ge(l,1,n)|0)<<16>>16){i=F;return u|0}Ec(B,D,h,g,f,E,n)|0;Jd(d,b[E>>1]|0);i=F;return u|0}function cd(a,b,c,d,e,f,g,h,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0;k=i;i=i+48|0;m=k+22|0;l=k;b=a>>>0<6?b:c;c=f<<16>>16>0?22:0;a=e+(c<<1)|0;Ie(a,b,m);Ie(a,d,l);a=f<<16>>16;f=j+(a<<1)|0;Be(m,g+(a<<1)|0,f,40);He(l,f,f,40,h,1);c=e+(((c<<16)+720896|0)>>>16<<1)|0;Ie(c,b,m);Ie(c,d,l);a=(a<<16)+2621440>>16;j=j+(a<<1)|0;Be(m,g+(a<<1)|0,j,40);He(l,j,j,40,h,1);i=k;return}function dd(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(12)|0;if(!d){a=-1;return a|0};b[d>>1]=0;b[d+2>>1]=0;b[d+4>>1]=0;b[d+6>>1]=0;b[d+8>>1]=0;b[d+10>>1]=0;c[a>>2]=d;a=0;return a|0}function ed(a){a=a|0;if(!a){a=-1;return a|0};b[a>>1]=0;b[a+2>>1]=0;b[a+4>>1]=0;b[a+6>>1]=0;b[a+8>>1]=0;b[a+10>>1]=0;a=0;return a|0}function fd(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function gd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=a+10|0;f=b[m>>1]|0;n=a+8|0;e=b[n>>1]|0;if(!(d<<16>>16)){a=e;l=f;b[m>>1]=l;b[n>>1]=a;return}i=a+4|0;j=a+6|0;k=a+2|0;h=b[j>>1]|0;l=b[i>>1]|0;g=d;d=f;while(1){o=(Z(b[a>>1]|0,-3733)|0)+(((l<<16>>16)*7807|0)+((h<<16>>16)*7807>>15))|0;b[a>>1]=l;o=o+((Z(b[k>>1]|0,-3733)|0)>>15)|0;b[k>>1]=h;o=((d<<16>>16)*1899|0)+o+(Z(e<<16>>16,-3798)|0)|0;d=b[c>>1]|0;o=o+((d<<16>>16)*1899|0)|0;b[c>>1]=(o+2048|0)>>>12;f=o>>>12;l=f&65535;b[i>>1]=l;h=(o<<3)-(f<<15)&65535;b[j>>1]=h;g=g+-1<<16>>16;if(!(g<<16>>16))break;else{o=e;c=c+2|0;e=d;d=o}}b[m>>1]=e;b[n>>1]=d;return}function hd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=b[(c[f+88>>2]|0)+(a<<1)>>1]|0;if(!(g<<16>>16))return;j=e;i=c[(c[f+92>>2]|0)+(a<<2)>>2]|0;while(1){e=b[i>>1]|0;if(!(e<<16>>16))e=0;else{a=b[d>>1]|0;h=e;f=j+((e<<16>>16)+-1<<1)|0;while(1){e=a<<16>>16;b[f>>1]=e&1;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{a=e>>>1&65535;f=f+-2|0}}e=b[i>>1]|0}d=d+2|0;g=g+-1<<16>>16;if(!(g<<16>>16))break;else{j=j+(e<<16>>16<<1)|0;i=i+2|0}}return}function id(a,d,f,g,h,j){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;m=o+2|0;n=o;k=h<<16>>16;if(h<<16>>16<1){j=-5443;n=-32768;Wd(a,n,j);i=o;return}l=re(14,f,j)|0;if((k|0)<(l<<16>>16|0))f=g;else{f=(g&65535)+1&65535;h=k>>>1&65535}g=Td(h,l&65535)|0;b[n>>1]=g;de(g<<16>>16,m,n,j);b[m>>1]=((((f&65535)-(d&65535)<<16)+-65536|0)>>>16)+(e[m>>1]|0);g=Ee(b[n>>1]|0,5,j)|0;k=b[m>>1]|0;g=((k&65535)<<10)+(g&65535)&65535;if(g<<16>>16>18284){j=3037;n=18284;Wd(a,n,j);i=o;return}h=b[n>>1]|0;k=k<<16>>16;if((k*24660|0)==1073741824){c[j>>2]=1;f=2147483647}else f=k*49320|0;n=(h<<16>>16)*24660>>15;k=f+(n<<1)|0;if((f^n|0)>0&(k^f|0)<0){c[j>>2]=1;k=(f>>>31)+2147483647|0}n=k<<13;j=Ce((n>>13|0)==(k|0)?n:k>>31^2147483647,j)|0;n=g;Wd(a,n,j);i=o;return}function jd(a,d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;var 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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+80|0;da=ha+66|0;ea=ha+64|0;fa=ha+62|0;ga=ha+60|0;O=ha+40|0;P=ha+20|0;M=ha;b[da>>1]=d;b[ea>>1]=m;b[fa>>1]=n;L=re(14,f,x)|0;ca=L&65535;b[ga>>1]=ca;N=re(14,n,x)|0;K=(e[g>>1]|0)+65523|0;b[M>>1]=K;E=(e[g+2>>1]|0)+65522|0;F=M+2|0;b[F>>1]=E;G=((d&65535)<<16)+-720896|0;B=G>>16;G=(G>>>15)+15+(e[g+4>>1]|0)|0;H=M+4|0;b[H>>1]=G;I=(e[g+6>>1]|0)+B|0;J=M+6|0;b[J>>1]=I;B=B+1+(e[g+8>>1]|0)|0;C=M+8|0;b[C>>1]=B;y=(e[o>>1]|0)+65523&65535;b[M+10>>1]=y;D=(e[o+2>>1]|0)+65522&65535;b[M+12>>1]=D;z=((m&65535)<<16)+-720896|0;g=z>>16;z=(z>>>15)+15+(e[o+4>>1]|0)&65535;b[M+14>>1]=z;A=(e[o+6>>1]|0)+g&65535;b[M+16>>1]=A;g=g+1+(e[o+8>>1]|0)&65535;b[M+18>>1]=g;aa=(j&65535)-(q&65535)<<16;m=aa>>16;if((aa|0)>0){n=k;f=r<<16>>16>>m&65535}else{n=k<<16>>16>>0-m&65535;f=r}if((Ee(f,1,x)|0)<<16>>16>n<<16>>16)f=1;else f=(((n<<16>>16)+3>>2|0)>(f<<16>>16|0))<<31>>31;o=K+f&65535;b[M>>1]=o;aa=E+f&65535;b[F>>1]=aa;$=G+f&65535;b[H>>1]=$;_=I+f&65535;b[J>>1]=_;Y=B+f&65535;b[C>>1]=Y;m=g<<16>>16>o<<16>>16?g:o;m=A<<16>>16>m<<16>>16?A:m;m=z<<16>>16>m<<16>>16?z:m;m=D<<16>>16>m<<16>>16?D:m;m=y<<16>>16>m<<16>>16?y:m;m=Y<<16>>16>m<<16>>16?Y:m;m=_<<16>>16>m<<16>>16?_:m;m=$<<16>>16>m<<16>>16?$:m;m=(aa<<16>>16>m<<16>>16?aa:m)+1&65535;g=0;while(1){f=m-(o&65535)|0;o=f&65535;n=e[h>>1]<<16;f=f<<16>>16;if(o<<16>>16>0)o=o<<16>>16<31?n>>f:0;else{aa=0-f<<16>>16;o=n<>aa|0)==(n|0)?o:n>>31^2147483647}aa=o>>16;b[O+(g<<1)>>1]=aa;b[P+(g<<1)>>1]=(o>>>1)-(aa<<15);g=g+1|0;if((g|0)==5){f=5;n=p;break}o=b[M+(g<<1)>>1]|0;h=h+2|0}while(1){g=m-(y&65535)|0;y=g&65535;o=e[n>>1]<<16;g=g<<16>>16;if(y<<16>>16>0)o=y<<16>>16<31?o>>g:0;else{$=0-g<<16>>16;aa=o<<$;o=(aa>>$|0)==(o|0)?aa:o>>31^2147483647}aa=o>>16;b[O+(f<<1)>>1]=aa;b[P+(f<<1)>>1]=(o>>>1)-(aa<<15);o=f+1|0;if((o&65535)<<16>>16==10)break;y=b[M+(o<<1)>>1]|0;f=o;n=n+2|0}Q=L<<16>>16;R=b[O>>1]|0;S=b[P>>1]|0;T=b[O+2>>1]|0;U=b[P+2>>1]|0;V=b[O+4>>1]|0;W=b[P+4>>1]|0;X=b[O+6>>1]|0;Y=b[P+6>>1]|0;_=b[O+8>>1]|0;$=b[P+8>>1]|0;aa=s&65535;q=N<<16>>16;j=b[O+10>>1]|0;A=b[P+10>>1]|0;z=b[O+12>>1]|0;h=b[P+12>>1]|0;f=b[O+14>>1]|0;n=b[P+14>>1]|0;g=b[O+16>>1]|0;y=b[P+16>>1]|0;B=b[O+18>>1]|0;P=b[P+18>>1]|0;m=2147483647;O=0;o=0;C=782;do{M=b[C>>1]|0;I=(Z(Q,b[C+2>>1]|0)|0)>>>15<<16;p=I>>16;G=M<<1;K=(Z(G,M)|0)>>16;r=Z(K,R)|0;if((r|0)==1073741824){c[x>>2]=1;J=2147483647}else J=r<<1;N=(Z(S,K)|0)>>15;r=J+(N<<1)|0;if((J^N|0)>0&(r^J|0)<0){c[x>>2]=1;r=(J>>>31)+2147483647|0}K=Z(T,M)|0;if((K|0)==1073741824){c[x>>2]=1;J=2147483647}else J=K<<1;N=(Z(U,M)|0)>>15;K=J+(N<<1)|0;if((J^N|0)>0&(K^J|0)<0){c[x>>2]=1;K=(J>>>31)+2147483647|0}I=(Z(I>>15,p)|0)>>16;J=Z(V,I)|0;if((J|0)==1073741824){c[x>>2]=1;H=2147483647}else H=J<<1;N=(Z(W,I)|0)>>15;J=H+(N<<1)|0;if((H^N|0)>0&(J^H|0)<0){c[x>>2]=1;J=(H>>>31)+2147483647|0}I=Z(X,p)|0;if((I|0)==1073741824){c[x>>2]=1;H=2147483647}else H=I<<1;N=(Z(Y,p)|0)>>15;I=H+(N<<1)|0;if((H^N|0)>0&(I^H|0)<0){c[x>>2]=1;N=(H>>>31)+2147483647|0}else N=I;H=(Z(G,p)|0)>>16;I=Z(_,H)|0;if((I|0)==1073741824){c[x>>2]=1;G=2147483647}else G=I<<1;L=(Z($,H)|0)>>15;I=G+(L<<1)|0;if((G^L|0)>0&(I^G|0)<0){c[x>>2]=1;I=(G>>>31)+2147483647|0}H=b[C+4>>1]|0;G=b[C+6>>1]|0;C=C+8|0;if((M-aa&65535)<<16>>16<1?(ba=H<<16>>16,H<<16>>16<=s<<16>>16):0){E=(Z(G<<16>>16,q)|0)>>>15<<16;M=E>>16;D=ba<<1;G=(Z(D,ba)|0)>>16;H=Z(j,G)|0;if((H|0)==1073741824){c[x>>2]=1;F=2147483647}else F=H<<1;L=(Z(A,G)|0)>>15;H=F+(L<<1)|0;if((F^L|0)>0&(H^F|0)<0){c[x>>2]=1;H=(F>>>31)+2147483647|0}G=Z(z,ba)|0;if((G|0)==1073741824){c[x>>2]=1;F=2147483647}else F=G<<1;L=(Z(h,ba)|0)>>15;G=F+(L<<1)|0;if((F^L|0)>0&(G^F|0)<0){c[x>>2]=1;L=(F>>>31)+2147483647|0}else L=G;F=(Z(E>>15,M)|0)>>16;G=Z(f,F)|0;if((G|0)==1073741824){c[x>>2]=1;E=2147483647}else E=G<<1;p=(Z(n,F)|0)>>15;G=E+(p<<1)|0;if((E^p|0)>0&(G^E|0)<0){c[x>>2]=1;p=(E>>>31)+2147483647|0}else p=G;G=Z(g,M)|0;if((G|0)==1073741824){c[x>>2]=1;F=2147483647}else F=G<<1;E=(Z(y,M)|0)>>15;G=F+(E<<1)|0;if((F^E|0)>0&(G^F|0)<0){c[x>>2]=1;k=(F>>>31)+2147483647|0}else k=G;F=(Z(D,M)|0)>>16;G=Z(B,F)|0;if((G|0)==1073741824){c[x>>2]=1;E=2147483647}else E=G<<1;M=(Z(P,F)|0)>>15;G=E+(M<<1)|0;if((E^M|0)>0&(G^E|0)<0){c[x>>2]=1;G=(E>>>31)+2147483647|0}M=K+r+J+N+I+H+L+p+k+G|0;N=(M|0)<(m|0);m=N?M:m;o=N?O:o}O=O+1<<16>>16}while(O<<16>>16<256);s=(o&65535)<<18>>16;kd(a,782+(s<<1)|0,ca,d,t,u,x);Vd(a,0,l,ea,fa,da,ga,x);l=(re(14,b[fa>>1]|0,x)|0)&65535;kd(a,782+((s|2)<<1)|0,l,b[ea>>1]|0,v,w,x);i=ha;return o|0}function kd(a,d,f,g,h,j,k){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0;o=i;i=i+16|0;m=o+2|0;n=o;b[h>>1]=b[d>>1]|0;l=b[d+2>>1]|0;f=Z(f<<16>>16<<1,l)|0;h=10-(g&65535)|0;d=h&65535;h=h<<16>>16;if(d<<16>>16>0)d=d<<16>>16<31?f>>h:0;else{h=0-h<<16>>16;d=f<>h|0)==(f|0)?d:f>>31^2147483647}b[j>>1]=d>>>16;de(l,m,n,k);b[m>>1]=(e[m>>1]|0)+65524;h=Ee(b[n>>1]|0,5,k)|0;g=b[m>>1]|0;h=((g&65535)<<10)+(h&65535)&65535;f=b[n>>1]|0;g=g<<16>>16;if((g*24660|0)==1073741824){c[k>>2]=1;d=2147483647}else d=g*49320|0;n=(f<<16>>16)*24660>>15;g=d+(n<<1)|0;if(!((d^n|0)>0&(g^d|0)<0)){k=g;k=k<<13;k=k+32768|0;k=k>>>16;k=k&65535;Wd(a,h,k);i=o;return}c[k>>2]=1;k=(d>>>31)+2147483647|0;k=k<<13;k=k+32768|0;k=k>>>16;k=k&65535;Wd(a,h,k);i=o;return}function ld(a,d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;var 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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0;la=i;i=i+80|0;ia=la+72|0;ja=la+70|0;ka=la+68|0;ga=la+66|0;ha=la+56|0;_=la+24|0;Y=la+12|0;W=la+48|0;X=la+40|0;R=la+34|0;T=la+22|0;P=la+6|0;Q=la;nd(5,r,s,P,Q,c[x+72>>2]|0,y)|0;B=re(14,n,y)|0;S=x+68|0;O=c[S>>2]|0;V=m<<16>>16;U=V+65526|0;r=(e[j>>1]|0)+65523&65535;b[ha>>1]=r;x=(e[j+2>>1]|0)+65522&65535;b[ha+2>>1]=x;da=U<<16>>16;ea=((U<<17>>17|0)==(da|0)?U<<1:da>>>15^32767)+15+(e[j+4>>1]|0)&65535;b[ha+4>>1]=ea;fa=(e[j+6>>1]|0)+da&65535;b[ha+6>>1]=fa;j=da+1+(e[j+8>>1]|0)&65535;b[ha+8>>1]=j;x=x<<16>>16>r<<16>>16?x:r;x=ea<<16>>16>x<<16>>16?ea:x;x=fa<<16>>16>x<<16>>16?fa:x;x=(Rd(j<<16>>16>x<<16>>16?j:x,1,y)|0)&65535;j=r;r=0;while(1){n=x-(j&65535)|0;j=n&65535;A=e[h+(r<<1)>>1]<<16;n=n<<16>>16;if(j<<16>>16>0)n=j<<16>>16<31?A>>n:0;else{fa=0-n<<16>>16;n=A<>fa|0)==(A|0)?n:A>>31^2147483647}Nc(n,_+(r<<1)|0,Y+(r<<1)|0,y);n=r+1|0;if((n|0)==5)break;j=b[ha+(n<<1)>>1]|0;r=n}M=_+2|0;N=Y+2|0;fa=B<<16>>16;$=_+4|0;aa=Y+4|0;ba=_+6|0;ca=Y+6|0;da=_+8|0;ea=Y+8|0;E=0;j=2147483647;h=0;n=0;while(1){L=b[P+(h<<1)>>1]|0;B=Z(L,L)|0;if(B>>>0>1073741823){c[y>>2]=1;B=32767}else B=B>>>15;x=b[Y>>1]|0;A=B<<16>>16;B=Z(A,b[_>>1]|0)|0;if((B|0)==1073741824){c[y>>2]=1;r=2147483647}else r=B<<1;K=(Z(x<<16>>16,A)|0)>>15;B=r+(K<<1)|0;if((r^K|0)>0&(B^r|0)<0){c[y>>2]=1;B=(r>>>31)+2147483647|0}x=b[N>>1]|0;A=Z(b[M>>1]|0,L)|0;if((A|0)!=1073741824){r=(A<<1)+B|0;if((A^B|0)>0&(r^B|0)<0){c[y>>2]=1;r=(B>>>31)+2147483647|0}}else{c[y>>2]=1;r=2147483647}B=(Z(x<<16>>16,L)|0)>>15;if((B|0)>32767){c[y>>2]=1;B=32767}K=B<<16;B=(K>>15)+r|0;if((K>>16^r|0)>0&(B^r|0)<0){c[y>>2]=1;K=(r>>>31)+2147483647|0}else K=B;I=(K>>>31)+2147483647|0;J=h&65535;B=E;G=0;H=O;do{A=(Z(b[H>>1]|0,fa)|0)>>15;H=H+6|0;if((A|0)>32767){c[y>>2]=1;A=32767}F=A<<16>>16;A=Z(F,F)|0;if((A|0)==1073741824){c[y>>2]=1;D=2147483647}else D=A<<1;Nc(D,ia,ja,y);A=Z(F,L)|0;if((A|0)==1073741824){c[y>>2]=1;D=2147483647}else D=A<<1;Nc(D,ka,ga,y);r=b[aa>>1]|0;C=b[ja>>1]|0;A=b[$>>1]|0;x=b[ia>>1]|0;E=Z(x,A)|0;if((E|0)!=1073741824){D=(E<<1)+K|0;if((E^K|0)>0&(D^K|0)<0){c[y>>2]=1;D=I}}else{c[y>>2]=1;D=2147483647}E=(Z(C<<16>>16,A)|0)>>15;if((E|0)>32767){c[y>>2]=1;E=32767}C=E<<16;E=(C>>15)+D|0;if((C>>16^D|0)>0&(E^D|0)<0){c[y>>2]=1;E=(D>>>31)+2147483647|0}D=(Z(x,r<<16>>16)|0)>>15;if((D|0)>32767){c[y>>2]=1;D=32767}C=D<<16;D=(C>>15)+E|0;if((C>>16^E|0)>0&(D^E|0)<0){c[y>>2]=1;D=(E>>>31)+2147483647|0}A=b[ca>>1]|0;E=Z(b[ba>>1]|0,F)|0;if((E|0)!=1073741824){C=(E<<1)+D|0;if((E^D|0)>0&(C^D|0)<0){c[y>>2]=1;C=(D>>>31)+2147483647|0}}else{c[y>>2]=1;C=2147483647}A=(Z(A<<16>>16,F)|0)>>15;if((A|0)>32767){c[y>>2]=1;A=32767}F=A<<16;A=(F>>15)+C|0;if((F>>16^C|0)>0&(A^C|0)<0){c[y>>2]=1;A=(C>>>31)+2147483647|0}x=b[ea>>1]|0;C=b[ga>>1]|0;r=b[da>>1]|0;z=b[ka>>1]|0;E=Z(z,r)|0;do if((E|0)==1073741824){c[y>>2]=1;E=2147483647}else{D=(E<<1)+A|0;if(!((E^A|0)>0&(D^A|0)<0)){E=D;break}c[y>>2]=1;E=(A>>>31)+2147483647|0}while(0);D=(Z(C<<16>>16,r)|0)>>15;if((D|0)>32767){c[y>>2]=1;D=32767}F=D<<16;D=(F>>15)+E|0;if((F>>16^E|0)>0&(D^E|0)<0){c[y>>2]=1;D=(E>>>31)+2147483647|0}A=(Z(z,x<<16>>16)|0)>>15;if((A|0)>32767){c[y>>2]=1;A=32767}F=A<<16;A=(F>>15)+D|0;if((F>>16^D|0)>0&(A^D|0)<0){c[y>>2]=1;A=(D>>>31)+2147483647|0}F=(A|0)<(j|0);B=F?G:B;n=F?J:n;j=F?A:j;G=G+1<<16>>16}while(G<<16>>16<32);h=h+1|0;if((h|0)==3){A=B;h=n;break}else E=B}N=(A<<16>>16)*3|0;j=b[O+(N<<1)>>1]|0;b[u>>1]=b[O+(N+1<<1)>>1]|0;b[v>>1]=b[O+(N+2<<1)>>1]|0;j=Z(j<<16>>16,fa)|0;if((j|0)==1073741824){c[y>>2]=1;B=2147483647}else B=j<<1;N=9-V|0;O=N&65535;N=N<<16>>16;M=O<<16>>16>0;if(M)B=O<<16>>16<31?B>>N:0;else{K=0-N<<16>>16;L=B<>K|0)==(B|0)?L:B>>31^2147483647}b[t>>1]=B>>>16;L=h<<16>>16;P=b[P+(L<<1)>>1]|0;b[s>>1]=P;Q=b[Q+(L<<1)>>1]|0;Ub(d,f,g,P,o,W,X,R,y);xc(a,b[R>>1]|0,b[t>>1]|0,T,y);if(!((b[W>>1]|0)!=0&(b[T>>1]|0)>0)){y=A;u=c[w>>2]|0;t=u+2|0;b[u>>1]=Q;u=u+4|0;c[w>>2]=u;b[t>>1]=y;i=la;return}F=W+6|0;b[F>>1]=l;D=X+6|0;b[D>>1]=k;m=((Ge(q,m,y)|0)&65535)+10|0;x=m<<16>>16;if((m&65535)<<16>>16<0){n=0-x<<16;if((n|0)<983040)p=p<<16>>16>>(n>>16)&65535;else p=0}else{n=p<<16>>16;r=n<>16>>x|0)==(n|0))p=r&65535;else p=(n>>>15^32767)&65535}j=b[s>>1]|0;B=b[T>>1]|0;S=c[S>>2]|0;r=b[t>>1]|0;T=10-V|0;x=T<<16>>16;if((T&65535)<<16>>16<0){n=0-x<<16;if((n|0)<983040)l=r<<16>>16>>(n>>16)&65535;else l=0}else{n=r<<16>>16;r=n<>16>>x|0)==(n|0))l=r&65535;else l=(n>>>15^32767)&65535}h=j<<16>>16;n=Z(h,h)|0;if(n>>>0>1073741823){c[y>>2]=1;j=32767}else j=n>>>15;A=Rd(32767-(B&65535)&65535,1,y)|0;B=B<<16>>16;n=Z(b[W+2>>1]|0,B)|0;if((n|0)==1073741824){c[y>>2]=1;n=2147483647}else n=n<<1;T=n<<1;n=Z(((T>>1|0)==(n|0)?T:n>>31^2147418112)>>16,j<<16>>16)|0;if((n|0)==1073741824){c[y>>2]=1;E=2147483647}else E=n<<1;C=(e[X+2>>1]|0)+65521|0;x=C&65535;n=Z(b[W+4>>1]|0,B)|0;if((n|0)==1073741824){c[y>>2]=1;j=2147483647}else j=n<<1;n=j<<1;n=(Z(((n>>1|0)==(j|0)?n:j>>31^2147418112)>>16,h)|0)>>15;if((n|0)>32767){c[y>>2]=1;n=32767}b[$>>1]=n;j=U&65535;b[ia>>1]=j;j=Rd(b[X+4>>1]|0,j,y)|0;n=Z(b[F>>1]|0,B)|0;if((n|0)==1073741824){c[y>>2]=1;n=2147483647}else n=n<<1;z=n<<1;b[ba>>1]=((z>>1|0)==(n|0)?z:n>>31^2147418112)>>>16;z=((V<<17>>17|0)==(V|0)?V<<1:V>>>15^32767)+65529&65535;b[ia>>1]=z;z=Rd(b[D>>1]|0,z,y)|0;n=(Z(b[F>>1]|0,A<<16>>16)|0)>>15;if((n|0)>32767){c[y>>2]=1;n=32767}b[da>>1]=n;A=Rd(z,1,y)|0;r=Z(b[W>>1]|0,B)|0;if((r|0)==1073741824){c[y>>2]=1;n=2147483647}else n=r<<1;D=Fe(n,ia,y)|0;h=(e[ia>>1]|0)+47|0;b[ia>>1]=h;h=(e[X>>1]|0)-(h&65535)|0;B=h+31&65535;B=x<<16>>16>B<<16>>16?x:B;B=j<<16>>16>B<<16>>16?j:B;B=z<<16>>16>B<<16>>16?z:B;B=(A<<16>>16>B<<16>>16?A:B)<<16>>16;r=B-(C&65535)|0;n=r&65535;r=r<<16>>16;if(n<<16>>16>0)K=n<<16>>16<31?E>>r:0;else{X=0-r<<16>>16;K=E<>X|0)==(E|0)?K:E>>31^2147483647}x=B-(j&65535)|0;n=x&65535;r=e[$>>1]<<16;x=x<<16>>16;if(n<<16>>16>0)r=n<<16>>16<31?r>>x:0;else{W=0-x<<16>>16;X=r<>W|0)==(r|0)?X:r>>31^2147483647}Nc(r,$,aa,y);z=B-(z&65535)|0;r=z&65535;x=e[ba>>1]<<16;z=z<<16>>16;if(r<<16>>16>0)r=r<<16>>16<31?x>>z:0;else{X=0-z<<16>>16;r=x<>X|0)==(x|0)?r:x>>31^2147483647}Nc(r,ba,ca,y);z=B-(A&65535)|0;r=z&65535;x=e[da>>1]<<16;z=z<<16>>16;if(r<<16>>16>0)r=r<<16>>16<31?x>>z:0;else{X=0-z<<16>>16;r=x<>X|0)==(x|0)?r:x>>31^2147483647}Nc(r,da,ea,y);z=B+65505|0;b[ia>>1]=z;z=z-(h&65535)|0;r=De(z&65535,1,y)|0;x=r<<16>>16;if(r<<16>>16>0)x=r<<16>>16<31?D>>x:0;else{X=0-x<<16>>16;x=D<>X|0)==(D|0)?x:D>>31^2147483647}do if(!(z&1))E=x;else{Nc(x,_,Y,y);r=b[Y>>1]|0;x=b[_>>1]|0;if((x*23170|0)==1073741824){c[y>>2]=1;z=2147483647}else z=x*46340|0;_=(r<<16>>16)*23170>>15;x=z+(_<<1)|0;if(!((z^_|0)>0&(x^z|0)<0)){E=x;break}c[y>>2]=1;E=(z>>>31)+2147483647|0}while(0);F=(K>>>31)+2147483647|0;D=2147483647;C=0;x=0;G=S;while(1){r=(Z(b[G>>1]|0,fa)|0)>>15;G=G+6|0;if((r|0)>32767){c[y>>2]=1;r=32767}z=r&65535;if(z<<16>>16>=l<<16>>16)break;j=r<<16>>16;r=Z(j,j)|0;if((r|0)==1073741824){c[y>>2]=1;n=2147483647}else n=r<<1;Nc(n,ja,ka,y);r=(Ge(z,p,y)|0)<<16>>16;r=Z(r,r)|0;if((r|0)==1073741824){c[y>>2]=1;r=2147483647}else r=r<<1;Nc(r,ga,ha,y);z=b[aa>>1]|0;n=Z(b[$>>1]|0,j)|0;do if((n|0)==1073741824){c[y>>2]=1;n=2147483647}else{r=(n<<1)+K|0;if(!((n^K|0)>0&(r^K|0)<0)){n=r;break}c[y>>2]=1;n=F}while(0);r=(Z(z<<16>>16,j)|0)>>15;if((r|0)>32767){c[y>>2]=1;r=32767}_=r<<16;r=(_>>15)+n|0;if((_>>16^n|0)>0&(r^n|0)<0){c[y>>2]=1;r=(n>>>31)+2147483647|0}h=b[ca>>1]|0;A=b[ka>>1]|0;j=b[ba>>1]|0;B=b[ja>>1]|0;n=Z(B,j)|0;do if((n|0)==1073741824){c[y>>2]=1;z=2147483647}else{z=(n<<1)+r|0;if(!((n^r|0)>0&(z^r|0)<0))break;c[y>>2]=1;z=(r>>>31)+2147483647|0}while(0);n=(Z(A<<16>>16,j)|0)>>15;if((n|0)>32767){c[y>>2]=1;n=32767}_=n<<16;n=(_>>15)+z|0;if((_>>16^z|0)>0&(n^z|0)<0){c[y>>2]=1;n=(z>>>31)+2147483647|0}r=(Z(B,h<<16>>16)|0)>>15;if((r|0)>32767){c[y>>2]=1;r=32767}_=r<<16;r=(_>>15)+n|0;if((_>>16^n|0)>0&(r^n|0)<0){c[y>>2]=1;r=(n>>>31)+2147483647|0}r=Fe(r,ia,y)|0;z=De(b[ia>>1]|0,1,y)|0;n=z<<16>>16;if(z<<16>>16>0)z=z<<16>>16<31?r>>n:0;else{_=0-n<<16>>16;z=r<<_;z=(z>>_|0)==(r|0)?z:r>>31^2147483647}r=z-E|0;if(((r^z)&(z^E)|0)<0){c[y>>2]=1;r=(z>>>31)+2147483647|0}r=(Ce(r,y)|0)<<16>>16;r=Z(r,r)|0;if((r|0)==1073741824){c[y>>2]=1;z=2147483647}else z=r<<1;B=b[ea>>1]|0;j=b[ha>>1]|0;A=b[da>>1]|0;h=b[ga>>1]|0;n=Z(h,A)|0;do if((n|0)==1073741824){c[y>>2]=1;r=2147483647}else{r=(n<<1)+z|0;if(!((n^z|0)>0&(r^z|0)<0))break;c[y>>2]=1;r=(z>>>31)+2147483647|0}while(0);n=(Z(j<<16>>16,A)|0)>>15;if((n|0)>32767){c[y>>2]=1;n=32767}_=n<<16;n=(_>>15)+r|0;if((_>>16^r|0)>0&(n^r|0)<0){c[y>>2]=1;n=(r>>>31)+2147483647|0}r=(Z(h,B<<16>>16)|0)>>15;if((r|0)>32767){c[y>>2]=1;r=32767}_=r<<16;r=(_>>15)+n|0;if((_>>16^n|0)>0&(r^n|0)<0){c[y>>2]=1;r=(n>>>31)+2147483647|0}n=(r|0)<(D|0);x=n?C:x;C=C+1<<16>>16;if(C<<16>>16>=32)break;else D=n?r:D}ka=(x<<16>>16)*3|0;z=b[S+(ka<<1)>>1]|0;b[u>>1]=b[S+(ka+1<<1)>>1]|0;b[v>>1]=b[S+(ka+2<<1)>>1]|0;z=Z(z<<16>>16,fa)|0;if((z|0)==1073741824){c[y>>2]=1;z=2147483647}else z=z<<1;if(M)z=O<<16>>16<31?z>>N:0;else{u=0-N<<16>>16;y=z<>u|0)==(z|0)?y:z>>31^2147483647}b[t>>1]=z>>>16;y=x;u=c[w>>2]|0;t=u+2|0;b[u>>1]=Q;u=u+4|0;c[w>>2]=u;b[t>>1]=y;i=la;return}function md(a,c,d,e,f,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0;n=(a|0)==7;j=b[e>>1]|0;if(n){j=j<<16>>16>>>1&65535;m=re(c,d,i)|0;c=m<<16;a=c>>16;if((m<<20>>20|0)==(a|0))a=c>>12;else a=a>>>15^32767}else{m=re(c,d,i)|0;c=m<<16;a=c>>16;if((m<<21>>21|0)==(a|0))a=c>>11;else a=a>>>15^32767}m=a<<16>>16;i=j<<16>>16;c=i-((Z(m,b[h>>1]|0)|0)>>>15&65535)|0;c=((c&32768|0)!=0?0-c|0:c)&65535;k=1;a=0;l=h;while(1){l=l+6|0;j=i-((Z(b[l>>1]|0,m)|0)>>>15&65535)|0;d=j<<16;j=(d|0)<0?0-(d>>16)|0:j;d=(j<<16>>16|0)<(c<<16>>16|0);a=d?k:a;k=k+1<<16>>16;if(k<<16>>16>=32)break;else c=d?j&65535:c}l=(a<<16>>16)*196608>>16;b[e>>1]=(Z(b[h+(l<<1)>>1]|0,m)|0)>>>15<<(n&1);b[f>>1]=b[h+(l+1<<1)>>1]|0;b[g>>1]=b[h+(l+2<<1)>>1]|0;return a|0}function nd(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;i=Ge(b[d>>1]|0,b[g>>1]|0,h)|0;i=(i&65535)-((i&65535)>>>15&65535)|0;i=(i<<16>>31^i)&65535;k=0;l=1;while(1){j=b[g+(l<<1)>>1]|0;if(j<<16>>16>c<<16>>16)j=i;else{j=Ge(b[d>>1]|0,j,h)|0;j=(j&65535)-((j&65535)>>>15&65535)|0;j=(j<<16>>31^j)&65535;n=j<<16>>16>16;j=n?j:i;k=n?l&65535:k}l=l+1|0;if((l|0)==16)break;else i=j}if((a|0)!=5){i=b[g+(k<<16>>16<<1)>>1]|0;if((a|0)==7){b[d>>1]=i&65532;return k|0}else{b[d>>1]=i;return k|0}}j=k<<16>>16;switch(k<<16>>16){case 0:{i=0;break}case 15:{m=8;break}default:if((b[g+(j+1<<1)>>1]|0)>c<<16>>16)m=8;else i=j+65535&65535}if((m|0)==8)i=j+65534&65535;b[f>>1]=i;n=i<<16>>16;b[e>>1]=b[g+(n<<1)>>1]|0;n=n+1|0;b[f+2>>1]=n;n=n<<16>>16;b[e+2>>1]=b[g+(n<<1)>>1]|0;n=n+1|0;b[f+4>>1]=n;b[e+4>>1]=b[g+(n<<16>>16<<1)>>1]|0;b[d>>1]=b[g+(j<<1)>>1]|0;return k|0}function od(a,d,f,g,h,j,k,l,m,n,o,p){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var 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;K=i;i=i+32|0;s=K+20|0;t=K+10|0;r=K;switch(a|0){case 3:case 4:case 6:{o=o+84|0;J=128;break}default:{o=o+80|0;J=64}}I=c[o>>2]|0;q=re(14,f,p)|0;H=d<<16>>16;G=H+65525|0;a=(e[h>>1]|0)+65523&65535;b[r>>1]=a;d=(e[h+2>>1]|0)+65522&65535;b[r+2>>1]=d;F=G<<16>>16;F=Rd(b[h+4>>1]|0,((G<<17>>17|0)==(F|0)?G<<1:F>>>15^32767)+15&65535,p)|0;b[r+4>>1]=F;G=Rd(b[h+6>>1]|0,G&65535,p)|0;b[r+6>>1]=G;h=Rd(b[h+8>>1]|0,H+65526&65535,p)|0;b[r+8>>1]=h;d=d<<16>>16>a<<16>>16?d:a;d=F<<16>>16>d<<16>>16?F:d;d=G<<16>>16>d<<16>>16?G:d;d=(h<<16>>16>d<<16>>16?h:d)+1&65535;h=0;while(1){f=d-(a&65535)|0;o=f&65535;a=e[g+(h<<1)>>1]<<16;f=f<<16>>16;if(o<<16>>16>0)o=o<<16>>16<31?a>>f:0;else{G=0-f<<16>>16;o=a<>G|0)==(a|0)?o:a>>31^2147483647}Nc(o,s+(h<<1)|0,t+(h<<1)|0,p);o=h+1|0;if((o|0)==5)break;a=b[r+(o<<1)>>1]|0;h=o}G=q<<16>>16;y=b[s>>1]|0;z=b[t>>1]|0;A=b[s+2>>1]|0;B=b[t+2>>1]|0;C=b[s+4>>1]|0;D=b[t+4>>1]|0;E=b[s+6>>1]|0;F=b[t+6>>1]|0;x=b[s+8>>1]|0;u=b[t+8>>1]|0;d=2147483647;v=0;o=0;w=I;while(1){h=b[w>>1]|0;if(h<<16>>16>j<<16>>16)q=d;else{q=(Z(b[w+2>>1]|0,G)|0)>>15;if((q|0)>32767){c[p>>2]=1;q=32767}t=h<<16>>16;h=Z(t,t)|0;if(h>>>0>1073741823){c[p>>2]=1;r=32767}else r=h>>>15;f=q<<16>>16;q=Z(f,f)|0;if(q>>>0>1073741823){c[p>>2]=1;s=32767}else s=q>>>15;g=(Z(f,t)|0)>>15;if((g|0)>32767){c[p>>2]=1;g=32767}q=r<<16>>16;r=Z(y,q)|0;if((r|0)==1073741824){c[p>>2]=1;h=2147483647}else h=r<<1;q=(Z(z,q)|0)>>15;r=h+(q<<1)|0;if((h^q|0)>0&(r^h|0)<0){c[p>>2]=1;r=(h>>>31)+2147483647|0}q=Z(A,t)|0;if((q|0)==1073741824){c[p>>2]=1;h=2147483647}else h=q<<1;t=(Z(B,t)|0)>>15;q=h+(t<<1)|0;if((h^t|0)>0&(q^h|0)<0){c[p>>2]=1;q=(h>>>31)+2147483647|0}h=q+r|0;if((q^r|0)>-1&(h^r|0)<0){c[p>>2]=1;h=(r>>>31)+2147483647|0}q=s<<16>>16;r=Z(C,q)|0;if((r|0)==1073741824){c[p>>2]=1;a=2147483647}else a=r<<1;t=(Z(D,q)|0)>>15;r=a+(t<<1)|0;if((a^t|0)>0&(r^a|0)<0){c[p>>2]=1;r=(a>>>31)+2147483647|0}q=r+h|0;if((r^h|0)>-1&(q^h|0)<0){c[p>>2]=1;a=(h>>>31)+2147483647|0}else a=q;q=Z(E,f)|0;if((q|0)==1073741824){c[p>>2]=1;r=2147483647}else r=q<<1;t=(Z(F,f)|0)>>15;q=r+(t<<1)|0;if((r^t|0)>0&(q^r|0)<0){c[p>>2]=1;q=(r>>>31)+2147483647|0}h=q+a|0;if((q^a|0)>-1&(h^a|0)<0){c[p>>2]=1;r=(a>>>31)+2147483647|0}else r=h;h=g<<16>>16;q=Z(x,h)|0;if((q|0)==1073741824){c[p>>2]=1;a=2147483647}else a=q<<1;t=(Z(u,h)|0)>>15;q=a+(t<<1)|0;if((a^t|0)>0&(q^a|0)<0){c[p>>2]=1;h=(a>>>31)+2147483647|0}else h=q;q=h+r|0;if((h^r|0)>-1&(q^r|0)<0){c[p>>2]=1;q=(r>>>31)+2147483647|0}t=(q|0)<(d|0);q=t?q:d;o=t?v:o}w=w+8|0;v=v+1<<16>>16;if((v<<16>>16|0)>=(J|0))break;else d=q}j=o<<16>>16;j=((j<<18>>18|0)==(j|0)?j<<2:j>>>15^32767)<<16>>16;b[k>>1]=b[I+(j<<1)>>1]|0;d=b[I+(j+1<<1)>>1]|0;b[m>>1]=b[I+(j+2<<1)>>1]|0;b[n>>1]=b[I+(j+3<<1)>>1]|0;d=Z(d<<16>>16,G)|0;if((d|0)==1073741824){c[p>>2]=1;a=2147483647}else a=d<<1;f=10-H|0;d=f&65535;f=f<<16>>16;if(d<<16>>16>0){p=d<<16>>16<31?a>>f:0;p=p>>>16;p=p&65535;b[l>>1]=p;i=K;return o|0}else{m=0-f<<16>>16;p=a<>m|0)==(a|0)?p:a>>31^2147483647;p=p>>>16;p=p&65535;b[l>>1]=p;i=K;return o|0}return 0}function pd(a,c,d,f,g,h,j,k,l){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var 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,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,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;wa=i;i=i+160|0;va=wa;n=a<<16>>16;ta=a<<16>>16==10;ua=b[j+(b[h>>1]<<1)>>1]|0;if(a<<16>>16>0){l=0;m=k;while(1){b[m>>1]=l;l=l+1<<16>>16;if(l<<16>>16>=a<<16>>16)break;else m=m+2|0}}if(d<<16>>16<=1){i=wa;return}ra=h+2|0;sa=ua<<16>>16;oa=f+(sa<<1)|0;pa=g+(sa*80|0)+(sa<<1)|0;qa=h+6|0;X=c&65535;Y=h+4|0;_=h+10|0;$=h+8|0;aa=h+14|0;ba=h+12|0;ca=h+18|0;da=h+16|0;ea=k+2|0;fa=k+4|0;ga=k+6|0;ha=k+8|0;ia=k+10|0;ja=k+12|0;ka=k+14|0;la=k+16|0;ma=k+18|0;na=a<<16>>16>2;V=h+(n+-1<<1)|0;T=1;W=1;N=0;O=0;U=-1;while(1){S=b[j+(b[ra>>1]<<1)>>1]|0;R=S<<16>>16;c=(e[f+(R<<1)>>1]|0)+(e[oa>>1]|0)|0;m=(b[g+(sa*80|0)+(R<<1)>>1]<<13)+32768+((b[g+(R*80|0)+(R<<1)>>1]|0)+(b[pa>>1]|0)<<12)|0;n=b[qa>>1]|0;if(n<<16>>16<40){n=n<<16>>16;o=va;while(1){P=(b[g+(n*80|0)+(n<<1)>>1]|0)>>>1;M=b[g+(n*80|0)+(sa<<1)>>1]|0;Q=b[g+(n*80|0)+(R<<1)>>1]|0;b[o>>1]=c+(e[f+(n<<1)>>1]|0);b[o+2>>1]=(M+2+P+Q|0)>>>2;n=n+X|0;if((n&65535)<<16>>16<40){n=n<<16>>16;o=o+4|0}else break}B=b[qa>>1]|0}else B=n;c=b[Y>>1]|0;A=m>>12;n=c<<16>>16;a:do if(c<<16>>16<40){z=B<<16>>16;if(B<<16>>16<40){o=1;q=c;s=B;r=0;p=-1}else while(1){n=n+X|0;if((n&65535)<<16>>16<40)n=n<<16>>16;else{o=1;Q=c;P=B;n=0;break a}}while(1){y=((b[g+(n*80|0)+(n<<1)>>1]|0)+A>>1)+(b[g+(n*80|0)+(sa<<1)>>1]|0)+(b[g+(n*80|0)+(R<<1)>>1]|0)|0;x=e[f+(n<<1)>>1]|0;v=z;w=B;u=va;t=r;while(1){m=(e[u>>1]|0)+x|0;l=m<<16>>16;l=(Z(l,l)|0)>>>15;r=(y+(b[g+(n*80|0)+(v<<1)>>1]|0)>>2)+(b[u+2>>1]|0)>>1;if((Z(l<<16>>16,o<<16>>16)|0)>(Z(r,p<<16>>16)|0)){o=r&65535;q=c;s=w;r=m&65535;p=l&65535}else r=t;m=v+X|0;w=m&65535;if(w<<16>>16>=40)break;else{v=m<<16>>16;u=u+4|0;t=r}}n=n+X|0;c=n&65535;if(c<<16>>16<40)n=n<<16>>16;else{Q=q;P=s;n=r;break}}}else{o=1;Q=c;P=B;n=0}while(0);q=o<<16>>16<<15;o=b[_>>1]|0;if(o<<16>>16<40){m=Q<<16>>16;l=P<<16>>16;c=n&65535;o=o<<16>>16;n=va;while(1){J=b[g+(o*80|0)+(o<<1)>>1]>>1;I=b[g+(o*80|0)+(sa<<1)>>1]|0;K=b[g+(o*80|0)+(R<<1)>>1]|0;L=b[g+(o*80|0)+(m<<1)>>1]|0;M=b[g+(o*80|0)+(l<<1)>>1]|0;b[n>>1]=(e[f+(o<<1)>>1]|0)+c;b[n+2>>1]=(I+2+J+K+L+M|0)>>>2;o=o+X|0;if((o&65535)<<16>>16<40){o=o<<16>>16;n=n+4|0}else break}J=b[_>>1]|0}else J=o;p=b[$>>1]|0;o=p<<16>>16;b:do if(p<<16>>16<40){C=Q<<16>>16;D=P<<16>>16;E=J<<16>>16;B=q+32768|0;if(J<<16>>16<40){r=1;q=p;c=J;s=p;n=0;p=-1}else while(1){o=o+X|0;if((o&65535)<<16>>16<40)o=o<<16>>16;else{o=1;M=p;L=J;n=0;break b}}while(1){l=e[f+(o<<1)>>1]|0;A=(b[g+(o*80|0)+(R<<1)>>1]|0)+(b[g+(o*80|0)+(sa<<1)>>1]|0)+(b[g+(o*80|0)+(C<<1)>>1]|0)+(b[g+(o*80|0)+(D<<1)>>1]|0)|0;z=B+(b[g+(o*80|0)+(o<<1)>>1]<<11)|0;x=E;v=J;y=va;while(1){t=(e[y>>1]|0)+l|0;m=z+(b[y+2>>1]<<14)+(A+(b[g+(o*80|0)+(x<<1)>>1]|0)<<12)|0;u=t<<16>>16;u=(Z(u,u)|0)>>>15;if((Z(u<<16>>16,r<<16>>16)|0)>(Z(m>>16,p<<16>>16)|0)){r=m>>>16&65535;w=s;c=v;n=t&65535;p=u&65535}else w=q;q=x+X|0;v=q&65535;if(v<<16>>16>=40){q=w;break}else{x=q<<16>>16;q=w;y=y+4|0}}o=o+X|0;s=o&65535;if(s<<16>>16<40)o=o<<16>>16;else{o=r;M=q;L=c;break}}}else{o=1;M=p;L=J;n=0}while(0);r=o<<16>>16<<15;o=b[aa>>1]|0;if(o<<16>>16<40){m=Q<<16>>16;l=P<<16>>16;p=M<<16>>16;q=L<<16>>16;c=n&65535;o=o<<16>>16;n=va;while(1){F=b[g+(o*80|0)+(o<<1)>>1]>>1;E=b[g+(sa*80|0)+(o<<1)>>1]|0;G=b[g+(R*80|0)+(o<<1)>>1]|0;H=b[g+(m*80|0)+(o<<1)>>1]|0;I=b[g+(l*80|0)+(o<<1)>>1]|0;J=b[g+(p*80|0)+(o<<1)>>1]|0;K=b[g+(q*80|0)+(o<<1)>>1]|0;b[n>>1]=(e[f+(o<<1)>>1]|0)+c;b[n+2>>1]=(E+4+F+G+H+I+J+K|0)>>>3;o=o+X|0;if((o&65535)<<16>>16<40){o=o<<16>>16;n=n+4|0}else break}c=b[aa>>1]|0}else c=o;s=b[ba>>1]|0;if(s<<16>>16<40){J=Q<<16>>16;F=P<<16>>16;E=M<<16>>16;D=L<<16>>16;C=c<<16>>16;B=c<<16>>16<40;G=r+32768|0;I=s<<16>>16;l=1;w=s;v=c;H=s;q=0;o=-1;while(1){if(B){r=e[f+(I<<1)>>1]|0;n=(b[g+(I*80|0)+(R<<1)>>1]|0)+(b[g+(I*80|0)+(sa<<1)>>1]|0)+(b[g+(I*80|0)+(J<<1)>>1]|0)+(b[g+(I*80|0)+(F<<1)>>1]|0)+(b[g+(I*80|0)+(E<<1)>>1]|0)+(b[g+(I*80|0)+(D<<1)>>1]|0)|0;p=G+(b[g+(I*80|0)+(I<<1)>>1]<<10)|0;u=C;s=c;z=v;A=va;while(1){y=(e[A>>1]|0)+r|0;v=p+(b[A+2>>1]<<14)+(n+(b[g+(I*80|0)+(u<<1)>>1]|0)<<11)|0;x=y<<16>>16;x=(Z(x,x)|0)>>>15;if((Z(x<<16>>16,l<<16>>16)|0)>(Z(v>>16,o<<16>>16)|0)){l=v>>>16&65535;w=H;v=s;q=y&65535;o=x&65535}else v=z;t=u+X|0;s=t&65535;if(s<<16>>16>=40)break;else{u=t<<16>>16;z=v;A=A+4|0}}}s=I+X|0;H=s&65535;if(H<<16>>16>=40){K=v;break}else I=s<<16>>16}}else{l=1;w=s;K=c;q=0;o=-1}if(ta){u=l<<16>>16<<15;o=b[ca>>1]|0;if(o<<16>>16<40){n=Q<<16>>16;c=P<<16>>16;m=M<<16>>16;l=L<<16>>16;r=w<<16>>16;s=K<<16>>16;p=q&65535;o=o<<16>>16;q=va;while(1){E=b[g+(o*80|0)+(o<<1)>>1]>>1;D=b[g+(sa*80|0)+(o<<1)>>1]|0;F=b[g+(R*80|0)+(o<<1)>>1]|0;G=b[g+(n*80|0)+(o<<1)>>1]|0;H=b[g+(c*80|0)+(o<<1)>>1]|0;I=b[g+(m*80|0)+(o<<1)>>1]|0;J=b[g+(l*80|0)+(o<<1)>>1]|0;N=b[g+(r*80|0)+(o<<1)>>1]|0;O=b[g+(s*80|0)+(o<<1)>>1]|0;b[q>>1]=(e[f+(o<<1)>>1]|0)+p;b[q+2>>1]=(D+4+E+F+G+H+I+J+N+O|0)>>>3;o=o+X|0;if((o&65535)<<16>>16<40){o=o<<16>>16;q=q+4|0}else break}J=b[ca>>1]|0}else J=o;r=b[da>>1]|0;if(r<<16>>16<40){E=Q<<16>>16;D=P<<16>>16;C=M<<16>>16;m=L<<16>>16;F=w<<16>>16;G=K<<16>>16;H=J<<16>>16;I=J<<16>>16<40;B=u+32768|0;n=r<<16>>16;l=1;s=r;q=J;c=r;o=-1;while(1){if(I){u=e[f+(n<<1)>>1]|0;p=(b[g+(R*80|0)+(n<<1)>>1]|0)+(b[g+(sa*80|0)+(n<<1)>>1]|0)+(b[g+(E*80|0)+(n<<1)>>1]|0)+(b[g+(D*80|0)+(n<<1)>>1]|0)+(b[g+(C*80|0)+(n<<1)>>1]|0)+(b[g+(m*80|0)+(n<<1)>>1]|0)+(b[g+(F*80|0)+(n<<1)>>1]|0)+(b[g+(G*80|0)+(n<<1)>>1]|0)|0;r=B+(b[g+(n*80|0)+(n<<1)>>1]<<9)|0;A=H;x=J;z=va;while(1){y=(e[z>>1]|0)+u<<16>>16;y=(Z(y,y)|0)>>>15;v=r+(b[z+2>>1]<<13)+(p+(b[g+(n*80|0)+(A<<1)>>1]|0)<<10)|0;if((Z(y<<16>>16,l<<16>>16)|0)>(Z(v>>16,o<<16>>16)|0)){l=v>>>16&65535;s=c;q=x;o=y&65535}t=A+X|0;x=t&65535;if(x<<16>>16>=40)break;else{A=t<<16>>16;z=z+4|0}}}r=n+X|0;c=r&65535;if(c<<16>>16>=40)break;else n=r<<16>>16}}else{l=1;s=r;q=J;o=-1}}else{s=N;q=O}if((Z(o<<16>>16,T<<16>>16)|0)>(Z(l<<16>>16,U<<16>>16)|0)){b[k>>1]=ua;b[ea>>1]=S;b[fa>>1]=Q;b[ga>>1]=P;b[ha>>1]=M;b[ia>>1]=L;b[ja>>1]=w;b[ka>>1]=K;if(ta){b[la>>1]=s;b[ma>>1]=q}}else{l=T;o=U}n=b[ra>>1]|0;if(na){c=1;m=2;while(1){b[h+(c<<1)>>1]=b[h+(m<<1)>>1]|0;m=m+1|0;if((m&65535)<<16>>16==a<<16>>16)break;else c=c+1|0}}b[V>>1]=n;W=W+1<<16>>16;if(W<<16>>16>=d<<16>>16)break;else{T=l;N=s;O=q;U=o}}i=wa;return}function qd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=39;while(1){h=a+(i<<1)|0;g=b[h>>1]|0;f=c+(i<<1)|0;if(g<<16>>16>-1)b[f>>1]=32767;else{b[f>>1]=-32767;if(g<<16>>16==-32768)g=32767;else g=0-(g&65535)&65535;b[h>>1]=g}b[d+(i<<1)>>1]=g;if((i|0)>0)i=i+-1|0;else break}k=8-(e<<16>>16)|0;if((k|0)>0){j=0;f=0}else return;do{e=0;a=0;h=32767;while(1){c=b[d+(e<<1)>>1]|0;i=c<<16>>16>-1?c<<16>>16>16:0;f=i?a:f;g=e+5|0;a=g&65535;if(a<<16>>16>=40)break;else{e=g<<16>>16;h=i?c:h}}b[d+(f<<16>>16<<1)>>1]=-1;j=j+1<<16>>16}while((j<<16>>16|0)<(k|0));j=0;do{c=1;a=1;g=32767;while(1){e=b[d+(c<<1)>>1]|0;i=e<<16>>16>-1?e<<16>>16>16:0;f=i?a:f;h=c+5|0;a=h&65535;if(a<<16>>16>=40)break;else{c=h<<16>>16;g=i?e:g}}b[d+(f<<16>>16<<1)>>1]=-1;j=j+1<<16>>16}while((j<<16>>16|0)<(k|0));j=0;do{c=2;a=2;g=32767;while(1){e=b[d+(c<<1)>>1]|0;i=e<<16>>16>-1?e<<16>>16>16:0;f=i?a:f;h=c+5|0;a=h&65535;if(a<<16>>16>=40)break;else{c=h<<16>>16;g=i?e:g}}b[d+(f<<16>>16<<1)>>1]=-1;j=j+1<<16>>16}while((j<<16>>16|0)<(k|0));j=0;while(1){c=3;a=3;g=32767;while(1){e=b[d+(c<<1)>>1]|0;i=e<<16>>16>-1?e<<16>>16>16:0;f=i?a:f;h=c+5|0;a=h&65535;if(a<<16>>16>=40){g=f;break}else{c=h<<16>>16;g=i?e:g}}b[d+(g<<16>>16<<1)>>1]=-1;j=j+1<<16>>16;if((j<<16>>16|0)>=(k|0)){f=0;break}else f=g}do{c=4;a=4;j=32767;while(1){e=b[d+(c<<1)>>1]|0;i=e<<16>>16>-1?e<<16>>16>16:0;g=i?a:g;h=c+5|0;a=h&65535;if(a<<16>>16>=40)break;else{c=h<<16>>16;j=i?e:j}}b[d+(g<<16>>16<<1)>>1]=-1;f=f+1<<16>>16}while((f<<16>>16|0)<(k|0));return}function rd(a,d,e,f,g,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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;y=i;i=i+80|0;x=y;p=40;q=d;r=a;m=256;n=256;while(1){l=b[q>>1]|0;q=q+2|0;l=Z(l,l)|0;if((l|0)!=1073741824){o=(l<<1)+m|0;if((l^m|0)>0&(o^m|0)<0){c[k>>2]=1;m=(m>>>31)+2147483647|0}else m=o}else{c[k>>2]=1;m=2147483647}w=b[r>>1]|0;n=(Z(w<<1,w)|0)+n|0;p=p+-1<<16>>16;if(!(p<<16>>16))break;else r=r+2|0}w=ce(m,k)|0;u=w<<5;w=((u>>5|0)==(w|0)?u:w>>31^2147418112)>>16;u=(ce(n,k)|0)<<5>>16;v=39;s=d+78|0;t=x+78|0;l=e+78|0;while(1){r=Z(b[s>>1]|0,w)|0;s=s+-2|0;q=r<<1;d=a+(v<<1)|0;m=b[d>>1]|0;p=Z(m<<16>>16,u)|0;if((p|0)!=1073741824){o=(p<<1)+q|0;if((p^q|0)>0&(o^q|0)<0){c[k>>2]=1;o=(r>>>30&1)+2147483647|0}}else{c[k>>2]=1;o=2147483647}n=o<<10;n=Ce((n>>10|0)==(o|0)?n:o>>31^2147483647,k)|0;if(n<<16>>16>-1)b[l>>1]=32767;else{b[l>>1]=-32767;if(n<<16>>16==-32768)n=32767;else n=0-(n&65535)&65535;if(m<<16>>16==-32768)o=32767;else o=0-(m&65535)&65535;b[d>>1]=o}l=l+-2|0;b[t>>1]=n;if((v|0)<=0)break;else{v=v+-1|0;t=t+-2|0}}d=g<<16>>16;if(g<<16>>16<=0){b[h+(d<<1)>>1]=b[h>>1]|0;i=y;return}r=j&65535;q=0;p=-1;l=0;while(1){if((q|0)<40){n=q;o=q&65535;m=-1;while(1){k=b[x+(n<<1)>>1]|0;j=k<<16>>16>m<<16>>16;m=j?k:m;l=j?o:l;n=n+r|0;o=n&65535;if(o<<16>>16>=40)break;else n=n<<16>>16}}else m=-1;b[f+(q<<1)>>1]=l;if(m<<16>>16>p<<16>>16)b[h>>1]=q;else m=p;q=q+1|0;if((q&65535)<<16>>16==g<<16>>16)break;else p=m}l=b[h>>1]|0;b[h+(d<<1)>>1]=l;if(g<<16>>16>1)m=1;else{i=y;return}do{f=l+1<<16>>16;l=f<<16>>16>=g<<16>>16?0:f;b[h+(m<<1)>>1]=l;b[h+(m+d<<1)>>1]=l;m=m+1|0}while((m&65535)<<16>>16!=g<<16>>16);i=y;return}function sd(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(12)|0;if(!d){a=-1;return a|0}b[d>>1]=8;c[a>>2]=d;b[d+2>>1]=3;b[d+4>>1]=0;c[d+8>>2]=0;a=0;return a|0}function td(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function ud(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;do if((d|0)==8){f=a+2|0;g=(b[f>>1]|0)+-1<<16>>16;b[f>>1]=g;d=a+8|0;if(!(c[d>>2]|0)){c[e>>2]=1;b[f>>1]=3;break}h=a+4|0;if(g<<16>>16>2&(b[h>>1]|0)>0){c[e>>2]=2;b[h>>1]=(b[h>>1]|0)+-1<<16>>16;break}if(!(g<<16>>16)){c[e>>2]=2;b[f>>1]=b[a>>1]|0;break}else{c[e>>2]=3;break}}else{b[a+2>>1]=b[a>>1]|0;c[e>>2]=0;d=a+8|0}while(0);c[d>>2]=c[e>>2];return}function vd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(12)|0;e=d;if(!d){a=-1;return a|0}c[d>>2]=0;f=d+4|0;c[f>>2]=0;g=d+8|0;c[g>>2]=b;if((dd(d)|0)<<16>>16==0?(ac(f,c[g>>2]|0)|0)<<16>>16==0:0){ed(c[d>>2]|0)|0;cc(c[f>>2]|0)|0;c[a>>2]=e;a=0;return a|0}fd(d);bc(f);Ke(d);a=-1;return a|0}function wd(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;fd(b);bc((c[a>>2]|0)+4|0);Ke(c[a>>2]|0);c[a>>2]=0;return}function xd(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;m=i;i=i+448|0;k=m+320|0;l=m;Qe(g|0,0,488)|0;j=0;do{n=f+(j<<1)|0;b[n>>1]=(e[n>>1]|0)&65528;j=j+1|0}while((j|0)!=160);gd(c[a>>2]|0,f,160);n=a+4|0;dc(c[n>>2]|0,d,f,k,h,l)|0;hd(c[h>>2]|0,k,g,(c[n>>2]|0)+2392|0);i=m;return}function yd(a,c,d,e,f,g,h,j,k,l,m,n,o,p,q,r){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0;u=i;i=i+48|0;s=u+22|0;t=u;Ie(f,(a&-2|0)==6?d:c,s);Ie(f,e,t);d=m;c=s;f=d+22|0;do{b[d>>1]=b[c>>1]|0;d=d+2|0;c=c+2|0}while((d|0)<(f|0));He(g,m,o,40,l,0);He(t,o,o,40,l,0);Be(g,h,q,40);d=n;c=q;f=d+80|0;do{b[d>>1]=b[c>>1]|0;d=d+2|0;c=c+2|0}while((d|0)<(f|0));He(g,n,r,40,j,0);Be(s,r,p,40);He(t,p,p,40,k,0);i=u;return}function zd(a,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0,u=0,v=0,w=0,x=0;if((c|0)==7){v=11;c=f<<16>>16>>>1&65535;t=2}else{v=13;c=f;t=1}b[r>>1]=f<<16>>16<13017?f:13017;u=d<<16>>16;q=q+(u<<1)|0;r=c<<16>>16;g=g<<16>>16;d=20;c=k;s=q;while(1){k=s+2|0;x=Z(b[s>>1]|0,r)|0;w=Z(b[k>>1]|0,r)|0;x=(Z(b[c>>1]|0,g)|0)+x<<1;w=(Z(b[c+2>>1]|0,g)|0)+w<<1<>1]=((x<>>16;b[k>>1]=(w+32768|0)>>>16;d=d+-1<<16>>16;if(!(d<<16>>16))break;else{c=c+4|0;s=s+4|0}}c=f<<16>>16;He(h,q,i+(u<<1)|0,40,n,1);d=30;s=0;while(1){w=d+u|0;b[o+(s<<1)>>1]=(e[a+(w<<1)>>1]|0)-(e[i+(w<<1)>>1]|0);w=Z(b[l+(d<<1)>>1]|0,c)|0;x=(Z(b[m+(d<<1)>>1]|0,g)|0)>>v;b[p+(s<<1)>>1]=(e[j+(d<<1)>>1]|0)-(w>>>14)-x;s=s+1|0;if((s|0)==10)break;else d=d+1|0}return}function Ad(a){a=a|0;var d=0;if(!a){a=-1;return a|0}c[a>>2]=0;d=Je(16)|0;if(!d){a=-1;return a|0};b[d>>1]=0;b[d+2>>1]=0;b[d+4>>1]=0;b[d+6>>1]=0;b[d+8>>1]=0;b[d+10>>1]=0;b[d+12>>1]=0;b[d+14>>1]=0;c[a>>2]=d;a=0;return a|0}function Bd(a){a=a|0;if(!a){a=-1;return a|0};b[a>>1]=0;b[a+2>>1]=0;b[a+4>>1]=0;b[a+6>>1]=0;b[a+8>>1]=0;b[a+10>>1]=0;b[a+12>>1]=0;b[a+14>>1]=0;a=0;return a|0}function Cd(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Dd(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;f=e[c+6>>1]|0;d=e[c+8>>1]|0;g=f-d|0;g=(g&65535|0)!=32767?g&65535:32767;h=e[c+10>>1]|0;d=d-h|0;g=(d<<16>>16|0)<(g<<16>>16|0)?d&65535:g;d=e[c+12>>1]|0;h=h-d|0;g=(h<<16>>16|0)<(g<<16>>16|0)?h&65535:g;h=e[c+14>>1]|0;d=d-h|0;g=(d<<16>>16|0)<(g<<16>>16|0)?d&65535:g;h=h-(e[c+16>>1]|0)|0;d=b[c+2>>1]|0;i=e[c+4>>1]|0;c=(d&65535)-i|0;c=(c&65535|0)!=32767?c&65535:32767;f=i-f|0;if(((h<<16>>16|0)<(g<<16>>16|0)?h&65535:g)<<16>>16<1500?1:(((f<<16>>16|0)<(c<<16>>16|0)?f&65535:c)<<16>>16|0)<((d<<16>>16>32e3?600:d<<16>>16>30500?800:1100)|0)){h=(b[a>>1]|0)+1<<16>>16;i=h<<16>>16>11;b[a>>1]=i?12:h;return i&1|0}else{b[a>>1]=0;return 0}return 0}function Ed(a,c,d){a=a|0;c=c|0;d=d|0;c=De(c,3,d)|0;c=Rd(c,b[a+2>>1]|0,d)|0;c=Rd(c,b[a+4>>1]|0,d)|0;c=Rd(c,b[a+6>>1]|0,d)|0;c=Rd(c,b[a+8>>1]|0,d)|0;c=Rd(c,b[a+10>>1]|0,d)|0;c=Rd(c,b[a+12>>1]|0,d)|0;return (Rd(c,b[a+14>>1]|0,d)|0)<<16>>16>15565|0}function Fd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;d=a+4|0;b[a+2>>1]=b[d>>1]|0;e=a+6|0;b[d>>1]=b[e>>1]|0;d=a+8|0;b[e>>1]=b[d>>1]|0;e=a+10|0;b[d>>1]=b[e>>1]|0;d=a+12|0;b[e>>1]=b[d>>1]|0;a=a+14|0;b[d>>1]=b[a>>1]|0;b[a>>1]=c<<16>>16>>>3;return}function Gd(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}c[a>>2]=0;d=Je(128)|0;if(!d){f=-1;return f|0}e=d+72|0;f=e+46|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));b[d>>1]=150;b[d+36>>1]=150;b[d+18>>1]=150;b[d+54>>1]=0;b[d+2>>1]=150;b[d+38>>1]=150;b[d+20>>1]=150;b[d+56>>1]=0;b[d+4>>1]=150;b[d+40>>1]=150;b[d+22>>1]=150;b[d+58>>1]=0;b[d+6>>1]=150;b[d+42>>1]=150;b[d+24>>1]=150;b[d+60>>1]=0;b[d+8>>1]=150;b[d+44>>1]=150;b[d+26>>1]=150;b[d+62>>1]=0;b[d+10>>1]=150;b[d+46>>1]=150;b[d+28>>1]=150;b[d+64>>1]=0;b[d+12>>1]=150;b[d+48>>1]=150;b[d+30>>1]=150;b[d+66>>1]=0;b[d+14>>1]=150;b[d+50>>1]=150;b[d+32>>1]=150;b[d+68>>1]=0;b[d+16>>1]=150;b[d+52>>1]=150;b[d+34>>1]=150;b[d+70>>1]=0;b[d+118>>1]=13106;b[d+120>>1]=0;b[d+122>>1]=0;b[d+124>>1]=0;b[d+126>>1]=13106;c[a>>2]=d;f=0;return f|0}function Hd(a){a=a|0;var c=0,d=0;if(!a){d=-1;return d|0}c=a+72|0;d=c+46|0;do{b[c>>1]=0;c=c+2|0}while((c|0)<(d|0));b[a>>1]=150;b[a+36>>1]=150;b[a+18>>1]=150;b[a+54>>1]=0;b[a+2>>1]=150;b[a+38>>1]=150;b[a+20>>1]=150;b[a+56>>1]=0;b[a+4>>1]=150;b[a+40>>1]=150;b[a+22>>1]=150;b[a+58>>1]=0;b[a+6>>1]=150;b[a+42>>1]=150;b[a+24>>1]=150;b[a+60>>1]=0;b[a+8>>1]=150;b[a+44>>1]=150;b[a+26>>1]=150;b[a+62>>1]=0;b[a+10>>1]=150;b[a+46>>1]=150;b[a+28>>1]=150;b[a+64>>1]=0;b[a+12>>1]=150;b[a+48>>1]=150;b[a+30>>1]=150;b[a+66>>1]=0;b[a+14>>1]=150;b[a+50>>1]=150;b[a+32>>1]=150;b[a+68>>1]=0;b[a+16>>1]=150;b[a+52>>1]=150;b[a+34>>1]=150;b[a+70>>1]=0;b[a+118>>1]=13106;b[a+120>>1]=0;b[a+122>>1]=0;b[a+124>>1]=0;b[a+126>>1]=13106;d=0;return d|0}function Id(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Jd(a,c){a=a|0;c=c|0;b[a+118>>1]=c;return}function Kd(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0;f=Ce(f,g)|0;if(f<<16>>16<=0)return;f=f<<16>>16;if((f*21298|0)==1073741824){c[g>>2]=1;h=2147483647}else h=f*42596|0;f=d-h|0;if(((f^d)&(h^d)|0)<0){c[g>>2]=1;f=(d>>>31)+2147483647|0}if((f|0)<=0)return;a=a+104|0;b[a>>1]=e[a>>1]|0|16384;return}function Ld(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;a=a+104|0;e=De(b[a>>1]|0,1,d)|0;b[a>>1]=e;if(!(c<<16>>16))return;b[a>>1]=(De(e,1,d)|0)&65535|8192;return}function Md(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0;g=a+112|0;f=Ge(b[g>>1]|0,b[c>>1]|0,d)|0;f=(f&65535)-((f&65535)>>>15&65535)|0;f=((f<<16>>31^f)&65535)<<16>>16<4;h=b[c>>1]|0;b[g>>1]=h;c=c+2|0;h=Ge(h,b[c>>1]|0,d)|0;h=(h&65535)-((h&65535)>>>15&65535)|0;f=((h<<16>>31^h)&65535)<<16>>16<4?(f?2:1):f&1;b[g>>1]=b[c>>1]|0;g=a+102|0;b[g>>1]=De(b[g>>1]|0,1,d)|0;c=a+110|0;if((Rd(b[c>>1]|0,f,d)|0)<<16>>16<=3){b[c>>1]=f;return}b[g>>1]=e[g>>1]|0|16384;b[c>>1]=f;return}function Nd(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=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;D=i;i=i+352|0;n=D+24|0;B=D;k=0;h=0;do{g=b[d+(k+-40<<1)>>1]|0;g=Z(g,g)|0;if((g|0)!=1073741824){j=(g<<1)+h|0;if((g^h|0)>0&(j^h|0)<0){c[f>>2]=1;h=(h>>>31)+2147483647|0}else h=j}else{c[f>>2]=1;h=2147483647}k=k+1|0}while((k|0)!=160);o=h;if((343039-o&o|0)<0){c[f>>2]=1;h=(o>>>31)+2147483647|0}else h=o+-343040|0;if((h|0)<0){A=a+102|0;b[A>>1]=e[A>>1]&16383}m=o+-15e3|0;p=(14999-o&o|0)<0;if(p){c[f>>2]=1;j=(o>>>31)+2147483647|0}else j=m;if((j|0)<0){A=a+108|0;b[A>>1]=e[A>>1]&16383}g=a+72|0;l=a+74|0;j=b[g>>1]|0;k=b[l>>1]|0;h=0;do{A=h<<2;y=Ge((b[d+(A<<1)>>1]|0)>>>2&65535,((j<<16>>16)*21955|0)>>>15&65535,f)|0;v=((y<<16>>16)*21955|0)>>>15&65535;u=Rd(j,v,f)|0;x=A|1;z=Ge((b[d+(x<<1)>>1]|0)>>>2&65535,((k<<16>>16)*6390|0)>>>15&65535,f)|0;w=((z<<16>>16)*6390|0)>>>15&65535;j=Rd(k,w,f)|0;b[n+(A<<1)>>1]=Rd(u,j,f)|0;b[n+(x<<1)>>1]=Ge(u,j,f)|0;x=A|2;j=Ge((b[d+(x<<1)>>1]|0)>>>2&65535,v,f)|0;y=Rd(y,((j<<16>>16)*21955|0)>>>15&65535,f)|0;A=A|3;k=Ge((b[d+(A<<1)>>1]|0)>>>2&65535,w,f)|0;z=Rd(z,((k<<16>>16)*6390|0)>>>15&65535,f)|0;b[n+(x<<1)>>1]=Rd(y,z,f)|0;b[n+(A<<1)>>1]=Ge(y,z,f)|0;h=h+1|0}while((h|0)!=40);b[g>>1]=j;b[l>>1]=k;k=a+76|0;j=a+80|0;h=0;do{A=h<<2;Od(n+(A<<1)|0,n+((A|2)<<1)|0,k,f);Od(n+((A|1)<<1)|0,n+((A|3)<<1)|0,j,f);h=h+1|0}while((h|0)!=40);k=a+84|0;j=a+86|0;h=a+92|0;g=0;do{A=g<<3;Pd(n+(A<<1)|0,n+((A|4)<<1)|0,k,f);Pd(n+((A|2)<<1)|0,n+((A|6)<<1)|0,j,f);Pd(n+((A|3)<<1)|0,n+((A|7)<<1)|0,h,f);g=g+1|0}while((g|0)!=20);k=a+88|0;j=a+90|0;h=0;do{A=h<<4;Pd(n+(A<<1)|0,n+((A|8)<<1)|0,k,f);Pd(n+((A|4)<<1)|0,n+((A|12)<<1)|0,j,f);h=h+1|0}while((h|0)!=10);t=Qd(n,a+70|0,32,40,4,1,15,f)|0;b[B+16>>1]=t;u=Qd(n,a+68|0,16,20,8,7,16,f)|0;b[B+14>>1]=u;v=Qd(n,a+66|0,16,20,8,3,16,f)|0;b[B+12>>1]=v;w=Qd(n,a+64|0,16,20,8,2,16,f)|0;b[B+10>>1]=w;x=Qd(n,a+62|0,16,20,8,6,16,f)|0;b[B+8>>1]=x;y=Qd(n,a+60|0,8,10,16,4,16,f)|0;b[B+6>>1]=y;z=Qd(n,a+58|0,8,10,16,12,16,f)|0;b[B+4>>1]=z;A=Qd(n,a+56|0,8,10,16,8,16,f)|0;b[B+2>>1]=A;s=Qd(n,a+54|0,8,10,16,0,16,f)|0;b[B>>1]=s;k=0;g=0;do{j=a+(g<<1)|0;d=qe(b[j>>1]|0)|0;j=b[j>>1]|0;h=d<<16>>16;if(d<<16>>16<0){l=0-h<<16;if((l|0)<983040)l=j<<16>>16>>(l>>16)&65535;else l=0}else{l=j<<16>>16;j=l<>16>>h|0)==(l|0))l=j&65535;else l=(l>>>15^32767)&65535}j=Td(De(b[B+(g<<1)>>1]|0,1,f)|0,l)|0;r=Ge(d,5,f)|0;h=r<<16>>16;if(r<<16>>16<0){l=0-h<<16;if((l|0)<983040)l=j<<16>>16>>(l>>16);else l=0}else{j=j<<16>>16;l=j<>16>>h|0)!=(j|0))l=j>>>15^32767}l=l<<16>>16;l=Z(l,l)|0;if((l|0)!=1073741824){j=(l<<1)+k|0;if((l^k|0)>0&(j^k|0)<0){c[f>>2]=1;k=(k>>>31)+2147483647|0}else k=j}else{c[f>>2]=1;k=2147483647}g=g+1|0}while((g|0)!=9);r=k<<6;k=(((r>>6|0)==(k|0)?r:k>>31^2147418112)>>16)*3641>>15;if((k|0)>32767){c[f>>2]=1;k=32767}r=b[a>>1]|0;l=r<<16>>16;q=b[a+2>>1]|0;j=(q<<16>>16)+l|0;if((q^r)<<16>>16>-1&(j^l|0)<0){c[f>>2]=1;j=(l>>>31)+2147483647|0}r=b[a+4>>1]|0;l=r+j|0;if((r^j|0)>-1&(l^j|0)<0){c[f>>2]=1;l=(j>>>31)+2147483647|0}r=b[a+6>>1]|0;j=r+l|0;if((r^l|0)>-1&(j^l|0)<0){c[f>>2]=1;j=(l>>>31)+2147483647|0}r=b[a+8>>1]|0;l=r+j|0;if((r^j|0)>-1&(l^j|0)<0){c[f>>2]=1;l=(j>>>31)+2147483647|0}r=b[a+10>>1]|0;j=r+l|0;if((r^l|0)>-1&(j^l|0)<0){c[f>>2]=1;j=(l>>>31)+2147483647|0}r=b[a+12>>1]|0;l=r+j|0;if((r^j|0)>-1&(l^j|0)<0){c[f>>2]=1;l=(j>>>31)+2147483647|0}r=b[a+14>>1]|0;j=r+l|0;if((r^l|0)>-1&(j^l|0)<0){c[f>>2]=1;j=(l>>>31)+2147483647|0}r=b[a+16>>1]|0;l=r+j|0;if((r^j|0)>-1&(l^j|0)<0){c[f>>2]=1;l=(j>>>31)+2147483647|0}q=l<<13;q=((q>>13|0)==(l|0)?q:l>>31^2147418112)>>>16&65535;l=(Z((Ge(q,0,f)|0)<<16>>16,-2808)|0)>>15;if((l|0)>32767){c[f>>2]=1;l=32767}n=Rd(l&65535,1260,f)|0;r=a+100|0;l=De(b[r>>1]|0,1,f)|0;if((k<<16>>16|0)>((n<<16>>16<720?720:n<<16>>16)|0))l=(l&65535|16384)&65535;b[r>>1]=l;if(p){c[f>>2]=1;m=(o>>>31)+2147483647|0}h=b[a+118>>1]|0;p=a+126|0;l=b[p>>1]|0;g=l<<16>>16<19660;g=h<<16>>16>16?(g?2621:6553):g?2621:655;d=l&65535;k=d<<16;l=Z(g,l<<16>>16)|0;if((l|0)==1073741824){c[f>>2]=1;l=2147483647}else l=l<<1;j=k-l|0;if(((j^k)&(l^k)|0)<0){c[f>>2]=1;j=(d>>>15)+2147483647|0}k=Z(g,h<<16>>16)|0;do if((k|0)==1073741824){c[f>>2]=1;l=2147483647}else{l=j+(k<<1)|0;if(!((j^k|0)>0&(l^j|0)<0))break;c[f>>2]=1;l=(j>>>31)+2147483647|0}while(0);d=Ce(l,f)|0;o=(m|0)>-1;b[p>>1]=o?(d<<16>>16<13106?13106:d):13106;d=a+106|0;b[d>>1]=De(b[d>>1]|0,1,f)|0;j=a+108|0;l=De(b[j>>1]|0,1,f)|0;b[j>>1]=l;k=b[p>>1]|0;a:do if(o){do if(k<<16>>16>19660)b[d>>1]=e[d>>1]|16384;else{if(k<<16>>16>16383)break;k=a+116|0;l=0;break a}while(0);b[j>>1]=l&65535|16384;C=62}else C=62;while(0);do if((C|0)==62){l=a+116|0;if(k<<16>>16<=22936){k=l;l=0;break}k=l;l=Rd(b[l>>1]|0,1,f)|0}while(0);b[k>>1]=l;if((b[d>>1]&32640)!=32640){n=(b[j>>1]&32767)==32767;b[a+122>>1]=n&1;if(n)C=67}else{b[a+122>>1]=1;C=67}do if((C|0)==67){k=a+98|0;if((b[k>>1]|0)>=5)break;b[k>>1]=5}while(0);n=a+102|0;do if((b[n>>1]&24576)==24576)C=71;else{if((b[a+104>>1]&31744)==31744){C=71;break}if(!(b[r>>1]&32640)){b[a+98>>1]=20;j=32767;break}else{j=s;k=0;l=0}while(1){g=b[a+18+(k<<1)>>1]|0;h=j<<16>>16>g<<16>>16;m=h?j:g;j=h?g:j;m=m<<16>>16<184?184:m;j=j<<16>>16<184?184:j;g=qe(j)|0;h=g<<16>>16;do if(g<<16>>16<0){d=0-h<<16;if((d|0)>=983040){d=0;break}d=j<<16>>16>>(d>>16)&65535}else{d=j<<16>>16;j=d<>16>>h|0)==(d|0)){d=j&65535;break}d=(d>>>15^32767)&65535}while(0);m=Td(De(m,1,f)|0,d)|0;l=Rd(l,De(m,Ge(8,g,f)|0,f)|0,f)|0;k=k+1|0;if((k|0)==9)break;j=b[B+(k<<1)>>1]|0}if(l<<16>>16>1e3){b[a+98>>1]=20;j=32767;break}j=b[r>>1]|0;k=a+98|0;l=b[k>>1]|0;do if(!(j&16384))C=86;else{if(!(l<<16>>16)){l=j;break}l=Ge(l,1,f)|0;b[k>>1]=l;C=86}while(0);if((C|0)==86){if(l<<16>>16==20){j=32767;break}l=b[r>>1]|0}j=(l&16384)==0?16383:3276}while(0);if((C|0)==71){b[a+98>>1]=20;j=32767}k=s;l=0;while(1){m=a+18+(l<<1)|0;d=oe(j,Ge(k,b[m>>1]|0,f)|0,f)|0;b[m>>1]=Rd(b[m>>1]|0,d,f)|0;l=l+1|0;if((l|0)==9)break;k=b[B+(l<<1)>>1]|0}do if(!(b[r>>1]&30720)){if(b[n>>1]&30720){C=95;break}if(!(b[a+114>>1]|0)){h=2097;g=1638;d=2}else C=95}else C=95;while(0);do if((C|0)==95){if((b[a+98>>1]|0)==0?(b[a+114>>1]|0)==0:0){h=1867;g=491;d=2;break}h=1638;g=0;d=0}while(0);j=0;do{k=a+(j<<1)|0;l=Ge(b[a+36+(j<<1)>>1]|0,b[k>>1]|0,f)|0;if(l<<16>>16<0){l=oe(h,l,f)|0;l=Rd(-2,Rd(b[k>>1]|0,l,f)|0,f)|0;l=l<<16>>16<40?40:l}else{l=oe(g,l,f)|0;l=Rd(d,Rd(b[k>>1]|0,l,f)|0,f)|0;l=l<<16>>16>16e3?16e3:l}b[k>>1]=l;j=j+1|0}while((j|0)!=9);b[a+36>>1]=s;b[a+38>>1]=A;b[a+40>>1]=z;b[a+42>>1]=y;b[a+44>>1]=x;b[a+46>>1]=w;b[a+48>>1]=v;b[a+50>>1]=u;b[a+52>>1]=t;k=q<<16>>16>100;j=k?7:4;k=k?4:5;if(!o){b[a+94>>1]=0;b[a+96>>1]=0;b[a+114>>1]=0;b[a+116>>1]=0;f=0;a=a+120|0;b[a>>1]=f;i=D;return f|0}h=a+114|0;g=b[h>>1]|0;do if((b[a+116>>1]|0)<=100){if(g<<16>>16)break;g=b[r>>1]|0;do if(!(g&16368)){if((b[p>>1]|0)>21298)g=1;else break;a=a+120|0;b[a>>1]=g;i=D;return g|0}while(0);h=a+94|0;if(!(g&16384)){b[h>>1]=0;g=a+96|0;h=b[g>>1]|0;if(h<<16>>16<=0){f=0;a=a+120|0;b[a>>1]=f;i=D;return f|0}b[g>>1]=Ge(h,1,f)|0;f=1;a=a+120|0;b[a>>1]=f;i=D;return f|0}else{f=Rd(b[h>>1]|0,1,f)|0;b[h>>1]=f;if((f<<16>>16|0)<(k|0)){f=1;a=a+120|0;b[a>>1]=f;i=D;return f|0}b[a+96>>1]=j;f=1;a=a+120|0;b[a>>1]=f;i=D;return f|0}}else{if(g<<16>>16>=250)break;b[h>>1]=250;g=250}while(0);b[a+94>>1]=4;b[h>>1]=Ge(g,1,f)|0;f=1;a=a+120|0;b[a>>1]=f;i=D;return f|0}function Od(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=(b[e>>1]|0)*21955>>15;if((g|0)>32767){c[f>>2]=1;g=32767}h=Ge(b[a>>1]|0,g&65535,f)|0;g=(h<<16>>16)*21955>>15;if((g|0)>32767){c[f>>2]=1;g=32767}i=Rd(b[e>>1]|0,g&65535,f)|0;b[e>>1]=h;e=e+2|0;g=(b[e>>1]|0)*6390>>15;if((g|0)>32767){c[f>>2]=1;g=32767}h=Ge(b[d>>1]|0,g&65535,f)|0;g=(h<<16>>16)*6390>>15;if((g|0)>32767){c[f>>2]=1;g=32767}g=Rd(b[e>>1]|0,g&65535,f)|0;b[e>>1]=h;b[a>>1]=De(Rd(i,g,f)|0,1,f)|0;b[d>>1]=De(Ge(i,g,f)|0,1,f)|0;return}function Pd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=(b[e>>1]|0)*13363>>15;if((g|0)>32767){c[f>>2]=1;g=32767}h=Ge(b[d>>1]|0,g&65535,f)|0;g=(h<<16>>16)*13363>>15;if((g|0)>32767){c[f>>2]=1;g=32767}g=Rd(b[e>>1]|0,g&65535,f)|0;b[e>>1]=h;b[d>>1]=De(Ge(b[a>>1]|0,g,f)|0,1,f)|0;b[a>>1]=De(Rd(b[a>>1]|0,g,f)|0,1,f)|0;return}function Qd(a,d,e,f,g,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;if(e<<16>>16>16){n=g<<16>>16;k=h<<16>>16;o=e<<16>>16;l=0;do{p=b[a+((Z(o,n)|0)+k<<1)>>1]|0;p=(p&65535)-((p&65535)>>>15&65535)|0;p=(p<<16>>31^p)<<16;m=(p>>15)+l|0;if((p>>16^l|0)>0&(m^l|0)<0){c[j>>2]=1;l=(l>>>31)+2147483647|0}else l=m;o=o+1|0}while((o&65535)<<16>>16!=f<<16>>16);o=l}else o=0;l=b[d>>1]|0;p=Ge(16,i,j)|0;k=p<<16>>16;if(p<<16>>16>0){f=l<>k|0)!=(l|0))f=l>>31^2147483647}else{k=0-k<<16;if((k|0)<2031616)f=l>>(k>>16);else f=0}k=f+o|0;if((f^o|0)>-1&(k^o|0)<0){c[j>>2]=1;k=(o>>>31)+2147483647|0}p=i<<16>>16;i=i<<16>>16>0;if(i){f=o<>p|0)!=(o|0))f=o>>31^2147483647}else{f=0-p<<16;if((f|0)<2031616)f=o>>(f>>16);else f=0}b[d>>1]=f>>>16;if(e<<16>>16>0){n=g<<16>>16;l=h<<16>>16;m=0;do{h=b[a+((Z(m,n)|0)+l<<1)>>1]|0;h=(h&65535)-((h&65535)>>>15&65535)|0;h=(h<<16>>31^h)<<16;f=(h>>15)+k|0;if((h>>16^k|0)>0&(f^k|0)<0){c[j>>2]=1;k=(k>>>31)+2147483647|0}else k=f;m=m+1|0}while((m&65535)<<16>>16!=e<<16>>16)}if(i){f=k<>p|0)==(k|0)){j=f;j=j>>>16;j=j&65535;return j|0}j=k>>31^2147483647;j=j>>>16;j=j&65535;return j|0}else{f=0-p<<16;if((f|0)>=2031616){j=0;j=j>>>16;j=j&65535;return j|0}j=k>>(f>>16);j=j>>>16;j=j&65535;return j|0}return 0}function Rd(a,b,d){a=a|0;b=b|0;d=d|0;a=(b<<16>>16)+(a<<16>>16)|0;if((a|0)<=32767){if((a|0)<-32768){c[d>>2]=1;a=-32768}}else{c[d>>2]=1;a=32767}return a&65535|0}function Sd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=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;y=i;i=i+32|0;w=y+12|0;x=y;b[w>>1]=1024;b[x>>1]=1024;k=b[a+2>>1]|0;h=b[a+20>>1]|0;e=((h+k|0)>>>2)+64512|0;b[w+2>>1]=e;h=((k-h|0)>>>2)+1024|0;b[x+2>>1]=h;k=b[a+4>>1]|0;f=b[a+18>>1]|0;e=((f+k|0)>>>2)-e|0;b[w+4>>1]=e;h=((k-f|0)>>>2)+h|0;b[x+4>>1]=h;f=b[a+6>>1]|0;k=b[a+16>>1]|0;e=((k+f|0)>>>2)-e|0;b[w+6>>1]=e;h=((f-k|0)>>>2)+h|0;b[x+6>>1]=h;k=b[a+8>>1]|0;f=b[a+14>>1]|0;e=((f+k|0)>>>2)-e|0;b[w+8>>1]=e;h=((k-f|0)>>>2)+h|0;b[x+8>>1]=h;f=b[a+10>>1]|0;k=b[a+12>>1]|0;e=((k+f|0)>>>2)-e|0;b[w+10>>1]=e;b[x+10>>1]=((f-k|0)>>>2)+h;h=b[3454]|0;k=h<<16>>16;a=b[w+2>>1]|0;f=(a<<16>>16<<14)+(k<<10)|0;s=f&-65536;f=(f>>>1)-(f>>16<<15)<<16;v=(((Z(f>>16,k)|0)>>15)+(Z(s>>16,k)|0)<<2)+-16777216|0;v=(b[w+4>>1]<<14)+v|0;j=v>>16;v=(v>>>1)-(j<<15)<<16;s=(((Z(v>>16,k)|0)>>15)+(Z(j,k)|0)<<2)-((f>>15)+s)|0;s=(b[w+6>>1]<<14)+s|0;f=s>>16;s=(s>>>1)-(f<<15)<<16;j=(((Z(s>>16,k)|0)>>15)+(Z(f,k)|0)<<2)-((v>>15)+(j<<16))|0;j=(b[w+8>>1]<<14)+j|0;v=j>>16;f=(e<<16>>3)+((((Z((j>>>1)-(v<<15)<<16>>16,k)|0)>>15)+(Z(v,k)|0)<<1)-((s>>15)+(f<<16)))|0;s=w+4|0;k=w;v=0;j=0;e=0;r=w+10|0;f=(f+33554432|0)>>>0<67108863?f>>>10&65535:(f|0)>33554431?32767:-32768;a:while(1){t=a<<16>>16<<14;q=k+6|0;p=k+8|0;o=j<<16>>16;while(1){if((o|0)>=60)break a;k=(o&65535)+1<<16>>16;l=b[6908+(k<<16>>16<<1)>>1]|0;u=l<<16>>16;j=t+(u<<10)|0;g=j&-65536;j=(j>>>1)-(j>>16<<15)<<16;m=(((Z(j>>16,u)|0)>>15)+(Z(g>>16,u)|0)<<2)+-16777216|0;n=b[s>>1]|0;m=(n<<16>>16<<14)+m|0;B=m>>16;m=(m>>>1)-(B<<15)<<16;g=(((Z(m>>16,u)|0)>>15)+(Z(B,u)|0)<<2)-((j>>15)+g)|0;j=b[q>>1]|0;g=(j<<16>>16<<14)+g|0;a=g>>16;g=(g>>>1)-(a<<15)<<16;B=(((Z(g>>16,u)|0)>>15)+(Z(a,u)|0)<<2)-((m>>15)+(B<<16))|0;m=b[p>>1]|0;B=(m<<16>>16<<14)+B|0;A=B>>16;a=(((Z((B>>>1)-(A<<15)<<16>>16,u)|0)>>15)+(Z(A,u)|0)<<1)-((g>>15)+(a<<16))|0;g=b[r>>1]|0;a=(g<<16>>16<<13)+a|0;a=(a+33554432|0)>>>0<67108863?a>>>10&65535:(a|0)>33554431?32767:-32768;if((Z(a<<16>>16,f<<16>>16)|0)<1){u=k;k=n;break}else{o=o+1|0;h=l;f=a}}s=g<<16>>16<<13;r=k<<16>>16<<14;n=j<<16>>16<<14;p=m<<16>>16<<14;g=l<<16>>16;o=4;while(1){A=(h<<16>>16>>>1)+(g>>>1)|0;g=A<<16;q=g>>16;g=t+(g>>6)|0;B=g&-65536;g=(g>>>1)-(g>>16<<15)<<16;m=r+((((Z(g>>16,q)|0)>>15)+(Z(B>>16,q)|0)<<2)+-16777216)|0;k=m>>16;m=(m>>>1)-(k<<15)<<16;B=n+((((Z(m>>16,q)|0)>>15)+(Z(k,q)|0)<<2)-((g>>15)+B))|0;g=B>>16;B=(B>>>1)-(g<<15)<<16;k=p+((((Z(B>>16,q)|0)>>15)+(Z(g,q)|0)<<2)-((m>>15)+(k<<16)))|0;m=k>>16;A=A&65535;g=s+((((Z((k>>>1)-(m<<15)<<16>>16,q)|0)>>15)+(Z(m,q)|0)<<1)-((B>>15)+(g<<16)))|0;g=(g+33554432|0)>>>0<67108863?g>>>10&65535:(g|0)>33554431?32767:-32768;B=(Z(g<<16>>16,a<<16>>16)|0)<1;q=B?l:A;a=B?a:g;h=B?A:h;f=B?g:f;o=o+-1<<16>>16;g=q<<16>>16;if(!(o<<16>>16)){l=g;j=h;h=q;break}else l=q}k=e<<16>>16;g=a<<16>>16;a=(f&65535)-g|0;f=a<<16;if(f){B=(a&65535)-(a>>>15&1)|0;B=B<<16>>31^B;a=(qe(B&65535)|0)<<16>>16;a=(Z((Td(16383,B<<16>>16<>16,(j&65535)-l<<16>>16)|0)>>19-a;if((f|0)<0)a=0-(a<<16>>16)|0;h=l-((Z(a<<16>>16,g)|0)>>>10)&65535}b[c+(k<<1)>>1]=h;f=v<<16>>16==0?x:w;A=h<<16>>16;a=b[f+2>>1]|0;g=(a<<16>>16<<14)+(A<<10)|0;B=g&-65536;g=(g>>>1)-(g>>16<<15)<<16;t=(((Z(g>>16,A)|0)>>15)+(Z(B>>16,A)|0)<<2)+-16777216|0;t=(b[f+4>>1]<<14)+t|0;s=t>>16;t=(t>>>1)-(s<<15)<<16;B=(((Z(t>>16,A)|0)>>15)+(Z(s,A)|0)<<2)-((g>>15)+B)|0;B=(b[f+6>>1]<<14)+B|0;g=B>>16;B=(B>>>1)-(g<<15)<<16;s=(((Z(B>>16,A)|0)>>15)+(Z(g,A)|0)<<2)-((t>>15)+(s<<16))|0;s=(b[f+8>>1]<<14)+s|0;t=s>>16;e=e+1<<16>>16;g=(((Z((s>>>1)-(t<<15)<<16>>16,A)|0)>>15)+(Z(t,A)|0)<<1)-((B>>15)+(g<<16))|0;g=(b[f+10>>1]<<13)+g|0;if(e<<16>>16<10){s=f+4|0;k=f;v=v^1;j=u;r=f+10|0;f=(g+33554432|0)>>>0<67108863?g>>>10&65535:(g|0)>33554431?32767:-32768}else{z=13;break}}if((z|0)==13){i=y;return}b[c>>1]=b[d>>1]|0;b[c+2>>1]=b[d+2>>1]|0;b[c+4>>1]=b[d+4>>1]|0;b[c+6>>1]=b[d+6>>1]|0;b[c+8>>1]=b[d+8>>1]|0;b[c+10>>1]=b[d+10>>1]|0;b[c+12>>1]=b[d+12>>1]|0;b[c+14>>1]=b[d+14>>1]|0;b[c+16>>1]=b[d+16>>1]|0;b[c+18>>1]=b[d+18>>1]|0;i=y;return}function Td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=b<<16>>16;if(a<<16>>16<1?1:a<<16>>16>b<<16>>16){e=0;return e|0}if(a<<16>>16==b<<16>>16){e=32767;return e|0}d=e<<1;c=e<<2;f=a<<16>>16<<3;a=(f|0)<(c|0);f=f-(a?0:c)|0;a=a?0:4;g=(f|0)<(d|0);f=f-(g?0:d)|0;b=(f|0)<(e|0);a=(b&1|(g?a:a|2))<<3^8;b=f-(b?0:e)<<3;if((b|0)>=(c|0)){b=b-c|0;a=a&65528|4}f=(b|0)<(d|0);g=b-(f?0:d)|0;b=(g|0)<(e|0);a=(b&1^1|(f?a:a|2))<<16>>13;b=g-(b?0:e)<<3;if((b|0)>=(c|0)){b=b-c|0;a=a&65528|4}f=(b|0)<(d|0);g=b-(f?0:d)|0;b=(g|0)<(e|0);a=(b&1^1|(f?a:a|2))<<16>>13;b=g-(b?0:e)<<3;if((b|0)>=(c|0)){b=b-c|0;a=a&65528|4}h=(b|0)<(d|0);f=b-(h?0:d)|0;g=(f|0)<(e|0);b=(g&1^1|(h?a:a|2))<<16>>13;a=f-(g?0:e)<<3;if((a|0)>=(c|0)){a=a-c|0;b=b&65528|4}h=(a|0)<(d|0);h=((a-(h?0:d)|0)>=(e|0)|(h?b:b|2))&65535;return h|0}function Ud(a){a=a|0;if(!a){a=-1;return a|0}b[a>>1]=-14336;b[a+8>>1]=-2381;b[a+2>>1]=-14336;b[a+10>>1]=-2381;b[a+4>>1]=-14336;b[a+12>>1]=-2381;b[a+6>>1]=-14336;b[a+14>>1]=-2381;a=0;return a|0}function Vd(a,d,f,g,h,j,k,l){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+16|0;p=r+2|0;q=r;m=0;n=10;while(1){o=b[f>>1]|0;o=((Z(o,o)|0)>>>3)+m|0;m=b[f+2>>1]|0;m=o+((Z(m,m)|0)>>>3)|0;o=b[f+4>>1]|0;o=m+((Z(o,o)|0)>>>3)|0;m=b[f+6>>1]|0;m=o+((Z(m,m)|0)>>>3)|0;n=n+-1<<16>>16;if(!(n<<16>>16))break;else f=f+8|0}n=m<<4;n=(n|0)<0?2147483647:n;if((d|0)==7){de(((Ce(n,l)|0)<<16>>16)*52428|0,p,q,l);o=e[p>>1]<<16;n=b[q>>1]<<1;d=b[a+8>>1]|0;m=(d<<16>>16)*88|0;if(d<<16>>16>-1&(m|0)<-783741){c[l>>2]=1;f=2147483647}else f=m+783741|0;d=(b[a+10>>1]|0)*74|0;m=d+f|0;if((d^f|0)>-1&(m^f|0)<0){c[l>>2]=1;f=(f>>>31)+2147483647|0}else f=m;d=(b[a+12>>1]|0)*44|0;m=d+f|0;if((d^f|0)>-1&(m^f|0)<0){c[l>>2]=1;f=(f>>>31)+2147483647|0}else f=m;a=(b[a+14>>1]|0)*24|0;m=a+f|0;if((a^f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}a=o+-1966080+n|0;f=m-a|0;if(((f^m)&(m^a)|0)<0){c[l>>2]=1;f=(m>>>31)+2147483647|0}l=f>>17;b[g>>1]=l;l=(f>>2)-(l<<15)|0;l=l&65535;b[h>>1]=l;i=r;return}o=pe(n)|0;m=o<<16>>16;if(o<<16>>16>0){f=n<>m|0)==(n|0))n=f;else n=n>>31^2147483647}else{m=0-m<<16;if((m|0)<2031616)n=n>>(m>>16);else n=0}ee(n,o,p,q);p=Z(b[p>>1]|0,-49320)|0;m=(Z(b[q>>1]|0,-24660)|0)>>15;m=(m&65536|0)==0?m:m|-65536;q=m<<1;f=q+p|0;if((q^p|0)>-1&(f^q|0)<0){c[l>>2]=1;f=(m>>>30&1)+2147483647|0}switch(d|0){case 6:{m=f+2134784|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}break}case 5:{b[k>>1]=n>>>16;b[j>>1]=-11-(o&65535);m=f+2183936|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}break}case 4:{m=f+2085632|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}break}case 3:{m=f+2065152|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}break}default:{m=f+2134784|0;if((f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}}}do if((m|0)<=2097151)if((m|0)<-2097152){c[l>>2]=1;f=-2147483648;break}else{f=m<<10;break}else{c[l>>2]=1;f=2147483647}while(0);k=(b[a>>1]|0)*11142|0;m=k+f|0;if((k^f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}k=(b[a+2>>1]|0)*9502|0;f=k+m|0;if((k^m|0)>-1&(f^m|0)<0){c[l>>2]=1;f=(m>>>31)+2147483647|0}k=(b[a+4>>1]|0)*5570|0;m=k+f|0;if((k^f|0)>-1&(m^f|0)<0){c[l>>2]=1;m=(f>>>31)+2147483647|0}a=(b[a+6>>1]|0)*3112|0;f=a+m|0;if((a^m|0)>-1&(f^m|0)<0){c[l>>2]=1;f=(m>>>31)+2147483647|0}f=Z(f>>16,(d|0)==4?10878:10886)|0;if((f|0)<0)f=~((f^-256)>>8);else f=f>>8;b[g>>1]=f>>>16;if((f|0)<0)m=~((f^-2)>>1);else m=f>>1;g=f>>16<<15;f=m-g|0;if(((f^m)&(g^m)|0)>=0){l=f;l=l&65535;b[h>>1]=l;i=r;return}c[l>>2]=1;l=(m>>>31)+2147483647|0;l=l&65535;b[h>>1]=l;i=r;return}function Wd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=a+4|0;b[a+6>>1]=b[f>>1]|0;g=a+12|0;b[a+14>>1]=b[g>>1]|0;e=a+2|0;b[f>>1]=b[e>>1]|0;f=a+10|0;b[g>>1]=b[f>>1]|0;b[e>>1]=b[a>>1]|0;e=a+8|0;b[f>>1]=b[e>>1]|0;b[e>>1]=c;b[a>>1]=d;return}function Xd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=Rd(0,b[a+8>>1]|0,e)|0;g=Rd(g,b[a+10>>1]|0,e)|0;g=Rd(g,b[a+12>>1]|0,e)|0;g=Rd(g,b[a+14>>1]|0,e)|0;f=g<<16>>16>>2;f=(g<<16>>16<0?f|49152:f)&65535;b[c>>1]=f<<16>>16<-2381?-2381:f;c=Rd(0,b[a>>1]|0,e)|0;c=Rd(c,b[a+2>>1]|0,e)|0;c=Rd(c,b[a+4>>1]|0,e)|0;e=Rd(c,b[a+6>>1]|0,e)|0;a=e<<16>>16>>2;a=(e<<16>>16<0?a|49152:a)&65535;b[d>>1]=a<<16>>16<-14336?-14336:a;return}function Yd(a){a=a|0;c[a>>2]=6892;c[a+4>>2]=8180;c[a+8>>2]=21e3;c[a+12>>2]=9716;c[a+16>>2]=22024;c[a+20>>2]=12788;c[a+24>>2]=24072;c[a+28>>2]=26120;c[a+32>>2]=28168;c[a+36>>2]=6876;c[a+40>>2]=7452;c[a+44>>2]=8140;c[a+48>>2]=20980;c[a+52>>2]=16884;c[a+56>>2]=17908;c[a+60>>2]=7980;c[a+64>>2]=8160;c[a+68>>2]=6678;c[a+72>>2]=6646;c[a+76>>2]=6614;c[a+80>>2]=29704;c[a+84>>2]=28680;c[a+88>>2]=3720;c[a+92>>2]=8;c[a+96>>2]=4172;c[a+100>>2]=44;c[a+104>>2]=3436;c[a+108>>2]=30316;c[a+112>>2]=30796;c[a+116>>2]=31276;c[a+120>>2]=7472;c[a+124>>2]=7552;c[a+128>>2]=7632;c[a+132>>2]=7712;return}function Zd(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;l=n+18|0;m=n;k=c<<16>>16;Oe(m|0,a|0,k<<1|0)|0;if(c<<16>>16>0){d=0;e=0}else{m=k>>1;m=l+(m<<1)|0;m=b[m>>1]|0;m=m<<16>>16;m=a+(m<<1)|0;m=b[m>>1]|0;i=n;return m|0}do{j=0;h=-32767;while(1){f=b[m+(j<<1)>>1]|0;g=f<<16>>16>16;e=g?e:j&65535;j=j+1|0;if((j&65535)<<16>>16==c<<16>>16)break;else h=g?h:f}b[m+(e<<16>>16<<1)>>1]=-32768;b[l+(d<<1)>>1]=e;d=d+1|0}while((d&65535)<<16>>16!=c<<16>>16);m=k>>1;m=l+(m<<1)|0;m=b[m>>1]|0;m=m<<16>>16;m=a+(m<<1)|0;m=b[m>>1]|0;i=n;return m|0}function _d(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=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;g=i;i=i+32|0;h=g;A=c+2|0;z=h+2|0;b[h>>1]=((b[c>>1]|0)>>>1)+((b[a>>1]|0)>>>1);y=c+4|0;x=h+4|0;b[z>>1]=((b[A>>1]|0)>>>1)+((b[a+2>>1]|0)>>>1);w=c+6|0;v=h+6|0;b[x>>1]=((b[y>>1]|0)>>>1)+((b[a+4>>1]|0)>>>1);u=c+8|0;t=h+8|0;b[v>>1]=((b[w>>1]|0)>>>1)+((b[a+6>>1]|0)>>>1);s=c+10|0;r=h+10|0;b[t>>1]=((b[u>>1]|0)>>>1)+((b[a+8>>1]|0)>>>1);q=c+12|0;p=h+12|0;b[r>>1]=((b[s>>1]|0)>>>1)+((b[a+10>>1]|0)>>>1);o=c+14|0;n=h+14|0;b[p>>1]=((b[q>>1]|0)>>>1)+((b[a+12>>1]|0)>>>1);m=c+16|0;l=h+16|0;b[n>>1]=((b[o>>1]|0)>>>1)+((b[a+14>>1]|0)>>>1);k=c+18|0;j=h+18|0;b[l>>1]=((b[m>>1]|0)>>>1)+((b[a+16>>1]|0)>>>1);b[j>>1]=((b[k>>1]|0)>>>1)+((b[a+18>>1]|0)>>>1);he(h,e,f);he(c,e+22|0,f);b[h>>1]=((b[d>>1]|0)>>>1)+((b[c>>1]|0)>>>1);b[z>>1]=((b[d+2>>1]|0)>>>1)+((b[A>>1]|0)>>>1);b[x>>1]=((b[d+4>>1]|0)>>>1)+((b[y>>1]|0)>>>1);b[v>>1]=((b[d+6>>1]|0)>>>1)+((b[w>>1]|0)>>>1);b[t>>1]=((b[d+8>>1]|0)>>>1)+((b[u>>1]|0)>>>1);b[r>>1]=((b[d+10>>1]|0)>>>1)+((b[s>>1]|0)>>>1);b[p>>1]=((b[d+12>>1]|0)>>>1)+((b[q>>1]|0)>>>1);b[n>>1]=((b[d+14>>1]|0)>>>1)+((b[o>>1]|0)>>>1);b[l>>1]=((b[d+16>>1]|0)>>>1)+((b[m>>1]|0)>>>1);b[j>>1]=((b[d+18>>1]|0)>>>1)+((b[k>>1]|0)>>>1);he(h,e+44|0,f);he(d,e+66|0,f);i=g;return}function $d(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=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;g=i;i=i+32|0;h=g;A=c+2|0;z=h+2|0;b[h>>1]=((b[c>>1]|0)>>>1)+((b[a>>1]|0)>>>1);y=c+4|0;x=h+4|0;b[z>>1]=((b[A>>1]|0)>>>1)+((b[a+2>>1]|0)>>>1);w=c+6|0;v=h+6|0;b[x>>1]=((b[y>>1]|0)>>>1)+((b[a+4>>1]|0)>>>1);u=c+8|0;t=h+8|0;b[v>>1]=((b[w>>1]|0)>>>1)+((b[a+6>>1]|0)>>>1);s=c+10|0;r=h+10|0;b[t>>1]=((b[u>>1]|0)>>>1)+((b[a+8>>1]|0)>>>1);q=c+12|0;p=h+12|0;b[r>>1]=((b[s>>1]|0)>>>1)+((b[a+10>>1]|0)>>>1);o=c+14|0;n=h+14|0;b[p>>1]=((b[q>>1]|0)>>>1)+((b[a+12>>1]|0)>>>1);m=c+16|0;l=h+16|0;b[n>>1]=((b[o>>1]|0)>>>1)+((b[a+14>>1]|0)>>>1);k=c+18|0;j=h+18|0;b[l>>1]=((b[m>>1]|0)>>>1)+((b[a+16>>1]|0)>>>1);b[j>>1]=((b[k>>1]|0)>>>1)+((b[a+18>>1]|0)>>>1);he(h,e,f);b[h>>1]=((b[d>>1]|0)>>>1)+((b[c>>1]|0)>>>1);b[z>>1]=((b[d+2>>1]|0)>>>1)+((b[A>>1]|0)>>>1);b[x>>1]=((b[d+4>>1]|0)>>>1)+((b[y>>1]|0)>>>1);b[v>>1]=((b[d+6>>1]|0)>>>1)+((b[w>>1]|0)>>>1);b[t>>1]=((b[d+8>>1]|0)>>>1)+((b[u>>1]|0)>>>1);b[r>>1]=((b[d+10>>1]|0)>>>1)+((b[s>>1]|0)>>>1);b[p>>1]=((b[d+12>>1]|0)>>>1)+((b[q>>1]|0)>>>1);b[n>>1]=((b[d+14>>1]|0)>>>1)+((b[o>>1]|0)>>>1);b[l>>1]=((b[d+16>>1]|0)>>>1)+((b[m>>1]|0)>>>1);b[j>>1]=((b[d+18>>1]|0)>>>1)+((b[k>>1]|0)>>>1);he(h,e+44|0,f);i=g;return}function ae(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=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,G=0,H=0,I=0,J=0;f=i;i=i+32|0;g=f;H=b[a>>1]|0;b[g>>1]=H-(H>>>2)+((b[c>>1]|0)>>>2);H=a+2|0;E=b[H>>1]|0;I=c+2|0;G=g+2|0;b[G>>1]=E-(E>>>2)+((b[I>>1]|0)>>>2);E=a+4|0;B=b[E>>1]|0;F=c+4|0;D=g+4|0;b[D>>1]=B-(B>>>2)+((b[F>>1]|0)>>>2);B=a+6|0;y=b[B>>1]|0;C=c+6|0;A=g+6|0;b[A>>1]=y-(y>>>2)+((b[C>>1]|0)>>>2);y=a+8|0;v=b[y>>1]|0;z=c+8|0;x=g+8|0;b[x>>1]=v-(v>>>2)+((b[z>>1]|0)>>>2);v=a+10|0;s=b[v>>1]|0;w=c+10|0;u=g+10|0;b[u>>1]=s-(s>>>2)+((b[w>>1]|0)>>>2);s=a+12|0;p=b[s>>1]|0;t=c+12|0;r=g+12|0;b[r>>1]=p-(p>>>2)+((b[t>>1]|0)>>>2);p=a+14|0;m=b[p>>1]|0;q=c+14|0;o=g+14|0;b[o>>1]=m-(m>>>2)+((b[q>>1]|0)>>>2);m=a+16|0;j=b[m>>1]|0;n=c+16|0;l=g+16|0;b[l>>1]=j-(j>>>2)+((b[n>>1]|0)>>>2);j=a+18|0;J=b[j>>1]|0;k=c+18|0;h=g+18|0;b[h>>1]=J-(J>>>2)+((b[k>>1]|0)>>>2);he(g,d,e);b[g>>1]=((b[a>>1]|0)>>>1)+((b[c>>1]|0)>>>1);b[G>>1]=((b[H>>1]|0)>>>1)+((b[I>>1]|0)>>>1);b[D>>1]=((b[E>>1]|0)>>>1)+((b[F>>1]|0)>>>1);b[A>>1]=((b[B>>1]|0)>>>1)+((b[C>>1]|0)>>>1);b[x>>1]=((b[y>>1]|0)>>>1)+((b[z>>1]|0)>>>1);b[u>>1]=((b[v>>1]|0)>>>1)+((b[w>>1]|0)>>>1);b[r>>1]=((b[s>>1]|0)>>>1)+((b[t>>1]|0)>>>1);b[o>>1]=((b[p>>1]|0)>>>1)+((b[q>>1]|0)>>>1);b[l>>1]=((b[m>>1]|0)>>>1)+((b[n>>1]|0)>>>1);b[h>>1]=((b[j>>1]|0)>>>1)+((b[k>>1]|0)>>>1);he(g,d+22|0,e);J=b[c>>1]|0;b[g>>1]=J-(J>>>2)+((b[a>>1]|0)>>>2);a=b[I>>1]|0;b[G>>1]=a-(a>>>2)+((b[H>>1]|0)>>>2);a=b[F>>1]|0;b[D>>1]=a-(a>>>2)+((b[E>>1]|0)>>>2);a=b[C>>1]|0;b[A>>1]=a-(a>>>2)+((b[B>>1]|0)>>>2);a=b[z>>1]|0;b[x>>1]=a-(a>>>2)+((b[y>>1]|0)>>>2);a=b[w>>1]|0;b[u>>1]=a-(a>>>2)+((b[v>>1]|0)>>>2);a=b[t>>1]|0;b[r>>1]=a-(a>>>2)+((b[s>>1]|0)>>>2);a=b[q>>1]|0;b[o>>1]=a-(a>>>2)+((b[p>>1]|0)>>>2);a=b[n>>1]|0;b[l>>1]=a-(a>>>2)+((b[m>>1]|0)>>>2);a=b[k>>1]|0;b[h>>1]=a-(a>>>2)+((b[j>>1]|0)>>>2);he(g,d+44|0,e);he(c,d+66|0,e);i=f;return}function be(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=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,G=0,H=0,I=0,J=0;f=i;i=i+32|0;g=f;H=b[a>>1]|0;b[g>>1]=H-(H>>>2)+((b[c>>1]|0)>>>2);H=a+2|0;E=b[H>>1]|0;I=c+2|0;G=g+2|0;b[G>>1]=E-(E>>>2)+((b[I>>1]|0)>>>2);E=a+4|0;B=b[E>>1]|0;F=c+4|0;D=g+4|0;b[D>>1]=B-(B>>>2)+((b[F>>1]|0)>>>2);B=a+6|0;y=b[B>>1]|0;C=c+6|0;A=g+6|0;b[A>>1]=y-(y>>>2)+((b[C>>1]|0)>>>2);y=a+8|0;v=b[y>>1]|0;z=c+8|0;x=g+8|0;b[x>>1]=v-(v>>>2)+((b[z>>1]|0)>>>2);v=a+10|0;s=b[v>>1]|0;w=c+10|0;u=g+10|0;b[u>>1]=s-(s>>>2)+((b[w>>1]|0)>>>2);s=a+12|0;p=b[s>>1]|0;t=c+12|0;r=g+12|0;b[r>>1]=p-(p>>>2)+((b[t>>1]|0)>>>2);p=a+14|0;m=b[p>>1]|0;q=c+14|0;o=g+14|0;b[o>>1]=m-(m>>>2)+((b[q>>1]|0)>>>2);m=a+16|0;j=b[m>>1]|0;n=c+16|0;l=g+16|0;b[l>>1]=j-(j>>>2)+((b[n>>1]|0)>>>2);j=a+18|0;J=b[j>>1]|0;k=c+18|0;h=g+18|0;b[h>>1]=J-(J>>>2)+((b[k>>1]|0)>>>2);he(g,d,e);b[g>>1]=((b[a>>1]|0)>>>1)+((b[c>>1]|0)>>>1);b[G>>1]=((b[H>>1]|0)>>>1)+((b[I>>1]|0)>>>1);b[D>>1]=((b[E>>1]|0)>>>1)+((b[F>>1]|0)>>>1);b[A>>1]=((b[B>>1]|0)>>>1)+((b[C>>1]|0)>>>1);b[x>>1]=((b[y>>1]|0)>>>1)+((b[z>>1]|0)>>>1);b[u>>1]=((b[v>>1]|0)>>>1)+((b[w>>1]|0)>>>1);b[r>>1]=((b[s>>1]|0)>>>1)+((b[t>>1]|0)>>>1);b[o>>1]=((b[p>>1]|0)>>>1)+((b[q>>1]|0)>>>1);b[l>>1]=((b[m>>1]|0)>>>1)+((b[n>>1]|0)>>>1);b[h>>1]=((b[j>>1]|0)>>>1)+((b[k>>1]|0)>>>1);he(g,d+22|0,e);c=b[c>>1]|0;b[g>>1]=c-(c>>>2)+((b[a>>1]|0)>>>2);a=b[I>>1]|0;b[G>>1]=a-(a>>>2)+((b[H>>1]|0)>>>2);a=b[F>>1]|0;b[D>>1]=a-(a>>>2)+((b[E>>1]|0)>>>2);a=b[C>>1]|0;b[A>>1]=a-(a>>>2)+((b[B>>1]|0)>>>2);a=b[z>>1]|0;b[x>>1]=a-(a>>>2)+((b[y>>1]|0)>>>2);a=b[w>>1]|0;b[u>>1]=a-(a>>>2)+((b[v>>1]|0)>>>2);a=b[t>>1]|0;b[r>>1]=a-(a>>>2)+((b[s>>1]|0)>>>2);a=b[q>>1]|0;b[o>>1]=a-(a>>>2)+((b[p>>1]|0)>>>2);a=b[n>>1]|0;b[l>>1]=a-(a>>>2)+((b[m>>1]|0)>>>2);a=b[k>>1]|0;b[h>>1]=a-(a>>>2)+((b[j>>1]|0)>>>2);he(g,d+44|0,e);i=f;return}function ce(a,c){a=a|0;c=c|0;var d=0,f=0;if((a|0)<1){c=1073741823;return c|0}d=(pe(a)|0)<<16>>16;c=30-d|0;a=a<>(c&1^1);d=(a>>25<<16)+-1048576>>16;f=b[7030+(d<<1)>>1]|0;c=(f<<16)-(Z(f-(e[7030+(d+1<<1)>>1]|0)<<16>>15,a>>>10&32767)|0)>>(c<<16>>17)+1;return c|0}function de(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=pe(a)|0;ee(a<<(d<<16>>16),d,b,c);return}function ee(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;if((a|0)<1){b[d>>1]=0;d=0;b[f>>1]=d;return}else{b[d>>1]=30-(c&65535);d=(a>>25<<16)+-2097152>>16;c=b[7128+(d<<1)>>1]|0;d=((c<<16)-(Z(a>>>9&65534,c-(e[7128+(d+1<<1)>>1]|0)<<16>>16)|0)|0)>>>16&65535;b[f>>1]=d;return}}function fe(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0;f=a+2|0;d=b[f>>1]|0;b[c>>1]=d;g=a+4|0;b[c+2>>1]=(e[g>>1]|0)-(e[a>>1]|0);b[c+4>>1]=(e[a+6>>1]|0)-(e[f>>1]|0);f=a+8|0;b[c+6>>1]=(e[f>>1]|0)-(e[g>>1]|0);b[c+8>>1]=(e[a+10>>1]|0)-(e[a+6>>1]|0);g=a+12|0;b[c+10>>1]=(e[g>>1]|0)-(e[f>>1]|0);b[c+12>>1]=(e[a+14>>1]|0)-(e[a+10>>1]|0);b[c+14>>1]=(e[a+16>>1]|0)-(e[g>>1]|0);b[c+16>>1]=(e[a+18>>1]|0)-(e[a+14>>1]|0);b[c+18>>1]=16384-(e[a+16>>1]|0);a=10;g=c;while(1){d=d<<16>>16;c=(d<<16)+-120782848|0;if((c|0)>0)c=1843-((c>>16)*12484>>16)|0;else c=3427-((d*56320|0)>>>16)|0;f=g+2|0;b[g>>1]=c<<3;a=a+-1<<16>>16;if(!(a<<16>>16))break;d=b[f>>1]|0;g=f}return}function ge(a,b,c){a=a|0;b=b|0;c=c|0;c=b<<16>>16;if(b<<16>>16>31){b=0;return b|0}if(b<<16>>16>0)return ((1<>16<31?a>>c:0)|0;c=0-c<<16>>16;b=a<>c|0)==(a|0)?b:a>>31^2147483647;return b|0}function he(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;q=s+24|0;r=s;o=q+4|0;c[q>>2]=16777216;f=0-(b[a>>1]|0)|0;p=q+8|0;c[o>>2]=f<<10;g=b[a+4>>1]|0;l=f>>6;c[p>>2]=33554432-(((Z((f<<9)-(l<<15)<<16>>16,g)|0)>>15)+(Z(l,g)|0)<<2);l=q+4|0;g=(c[l>>2]|0)-(g<<10)|0;c[l>>2]=g;l=q+12|0;f=q+4|0;c[l>>2]=g;e=b[a+8>>1]|0;h=g;m=1;while(1){k=l+-4|0;j=c[k>>2]|0;n=j>>16;c[l>>2]=h+g-(((Z((j>>>1)-(n<<15)<<16>>16,e)|0)>>15)+(Z(n,e)|0)<<2);if((m|0)==2)break;h=c[l+-12>>2]|0;l=k;g=j;m=m+1|0}c[f>>2]=(c[f>>2]|0)-(e<<10);e=q+16|0;f=c[q+8>>2]|0;c[e>>2]=f;k=b[a+12>>1]|0;g=f;l=1;while(1){j=e+-4|0;h=c[j>>2]|0;n=h>>16;c[e>>2]=g+f-(((Z((h>>>1)-(n<<15)<<16>>16,k)|0)>>15)+(Z(n,k)|0)<<2);if((l|0)==3)break;g=c[e+-12>>2]|0;e=j;f=h;l=l+1|0}e=q+4|0;c[e>>2]=(c[e>>2]|0)-(k<<10);e=q+20|0;g=c[q+12>>2]|0;c[e>>2]=g;f=b[a+16>>1]|0;h=g;l=1;while(1){k=e+-4|0;j=c[k>>2]|0;n=j>>16;c[e>>2]=h+g-(((Z((j>>>1)-(n<<15)<<16>>16,f)|0)>>15)+(Z(n,f)|0)<<2);if((l|0)==4)break;h=c[e+-12>>2]|0;e=k;g=j;l=l+1|0}l=q+4|0;c[l>>2]=(c[l>>2]|0)-(f<<10);c[r>>2]=16777216;l=0-(b[a+2>>1]|0)|0;n=r+8|0;c[r+4>>2]=l<<10;f=b[a+6>>1]|0;m=l>>6;c[n>>2]=33554432-(((Z((l<<9)-(m<<15)<<16>>16,f)|0)>>15)+(Z(m,f)|0)<<2);m=r+4|0;f=(c[m>>2]|0)-(f<<10)|0;c[m>>2]=f;m=r+12|0;l=r+4|0;c[m>>2]=f;k=b[a+10>>1]|0;g=f;e=1;while(1){j=m+-4|0;h=c[j>>2]|0;t=h>>16;c[m>>2]=g+f-(((Z((h>>>1)-(t<<15)<<16>>16,k)|0)>>15)+(Z(t,k)|0)<<2);if((e|0)==2)break;g=c[m+-12>>2]|0;m=j;f=h;e=e+1|0}c[l>>2]=(c[l>>2]|0)-(k<<10);l=r+16|0;f=c[r+8>>2]|0;c[l>>2]=f;k=b[a+14>>1]|0;g=f;e=1;while(1){j=l+-4|0;h=c[j>>2]|0;t=h>>16;c[l>>2]=g+f-(((Z((h>>>1)-(t<<15)<<16>>16,k)|0)>>15)+(Z(t,k)|0)<<2);if((e|0)==3)break;g=c[l+-12>>2]|0;l=j;f=h;e=e+1|0}e=r+4|0;c[e>>2]=(c[e>>2]|0)-(k<<10);e=r+20|0;k=c[r+12>>2]|0;c[e>>2]=k;f=b[a+18>>1]|0;j=k;l=1;while(1){g=e+-4|0;h=c[g>>2]|0;t=h>>16;c[e>>2]=j+k-(((Z((h>>>1)-(t<<15)<<16>>16,f)|0)>>15)+(Z(t,f)|0)<<2);if((l|0)==4)break;j=c[e+-12>>2]|0;e=g;k=h;l=l+1|0}j=(c[r+4>>2]|0)-(f<<10)|0;m=q+20|0;k=r+20|0;l=c[q+16>>2]|0;a=(c[m>>2]|0)+l|0;c[m>>2]=a;m=c[r+16>>2]|0;t=(c[k>>2]|0)-m|0;c[k>>2]=t;k=c[q+12>>2]|0;l=l+k|0;c[q+16>>2]=l;h=c[r+12>>2]|0;m=m-h|0;c[r+16>>2]=m;f=c[p>>2]|0;k=k+f|0;c[q+12>>2]=k;g=c[n>>2]|0;p=h-g|0;c[r+12>>2]=p;h=c[o>>2]|0;n=f+h|0;c[q+8>>2]=n;o=g-j|0;c[r+8>>2]=o;q=h+(c[q>>2]|0)|0;r=j-(c[r>>2]|0)|0;b[d>>1]=4096;q=q+4096|0;b[d+2>>1]=(q+r|0)>>>13;b[d+20>>1]=(q-r|0)>>>13;r=n+4096|0;b[d+4>>1]=(r+o|0)>>>13;b[d+18>>1]=(r-o|0)>>>13;r=k+4096|0;b[d+6>>1]=(r+p|0)>>>13;b[d+16>>1]=(r-p|0)>>>13;r=l+4096|0;b[d+8>>1]=(r+m|0)>>>13;b[d+14>>1]=(r-m|0)>>>13;r=a+4096|0;b[d+10>>1]=(r+t|0)>>>13;b[d+12>>1]=(r-t|0)>>>13;i=s;return}function ie(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;if(!a){h=-1;return h|0}c[a>>2]=0;d=Je(44)|0;if(!d){h=-1;return h|0}e=d+40|0;if((xe(e)|0)<<16>>16){h=-1;return h|0}f=d;g=7452;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));f=d+20|0;g=7452;h=f+20|0;do{b[f>>1]=b[g>>1]|0;f=f+2|0;g=g+2|0}while((f|0)<(h|0));ye(c[e>>2]|0)|0;c[a>>2]=d;h=0;return h|0}function je(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}d=a;e=7452;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));d=a+20|0;e=7452;f=d+20|0;do{b[d>>1]=b[e>>1]|0;d=d+2|0;e=e+2|0}while((d|0)<(f|0));ye(c[a+40>>2]|0)|0;f=0;return f|0}function ke(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;ze(b+40|0);Ke(c[a>>2]|0);c[a>>2]=0;return}function le(a,d,e,f,g,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;p=i;i=i+64|0;o=p+44|0;l=p+24|0;m=p+4|0;n=p;if((d|0)==7){Sd(f+22|0,l,a,k);Sd(f+66|0,h,l,k);$d(a,l,h,f,k);if((e|0)==8)f=6;else{ve(c[a+40>>2]|0,l,h,m,o,c[j>>2]|0,k);_d(a+20|0,m,o,g,k);g=(c[j>>2]|0)+10|0;f=7}}else{Sd(f+66|0,h,a,k);be(a,h,f,k);if((e|0)==8)f=6;else{te(c[a+40>>2]|0,d,h,o,c[j>>2]|0,n,k);ae(a+20|0,o,g,k);g=(c[j>>2]|0)+6|0;f=7}}if((f|0)==6){f=a;g=f+20|0;do{b[f>>1]=b[h>>1]|0;f=f+2|0;h=h+2|0}while((f|0)<(g|0));i=p;return}else if((f|0)==7){c[j>>2]=g;f=a;g=f+20|0;do{b[f>>1]=b[h>>1]|0;f=f+2|0;h=h+2|0}while((f|0)<(g|0));f=a+20|0;h=o;g=f+20|0;do{b[f>>1]=b[h>>1]|0;f=f+2|0;h=h+2|0}while((f|0)<(g|0));i=p;return}}function me(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(d<<16>>16>0)e=0;else return;do{g=b[a+(e<<1)>>1]|0;h=g>>8;f=b[7194+(h<<1)>>1]|0;b[c+(e<<1)>>1]=((Z((b[7194+(h+1<<1)>>1]|0)-f|0,g&255)|0)>>>8)+f;e=e+1|0}while((e&65535)<<16>>16!=d<<16>>16);return}function ne(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;e=(d<<16>>16)+-1|0;d=e&65535;if(d<<16>>16<=-1)return;f=63;h=c+(e<<1)|0;g=a+(e<<1)|0;while(1){a=b[g>>1]|0;c=f;while(1){e=c<<16>>16;f=b[7194+(e<<1)>>1]|0;if(a<<16>>16>f<<16>>16)c=c+-1<<16>>16;else break}b[h>>1]=(((Z(b[7324+(e<<1)>>1]|0,(a<<16>>16)-(f<<16>>16)|0)|0)+2048|0)>>>12)+(e<<8);d=d+-1<<16>>16;if(d<<16>>16>-1){f=c;h=h+-2|0;g=g+-2|0}else break}return}function oe(a,b,d){a=a|0;b=b|0;d=d|0;a=(Z(b<<16>>16,a<<16>>16)|0)+16384>>15;a=a|0-(a&65536);if((a|0)<=32767){if((a|0)<-32768){c[d>>2]=1;a=-32768}}else{c[d>>2]=1;a=32767}return a&65535|0}function pe(a){a=a|0;var b=0;a:do if((a|0)!=0?(b=a-(a>>>31)|0,b=b>>31^b,(b&1073741824|0)==0):0){a=b;b=0;while(1){if(a&536870912){a=7;break}if(a&268435456){a=8;break}if(a&134217728){a=9;break}b=b+4<<16>>16;a=a<<4;if(a&1073741824)break a}if((a|0)==7){b=b|1;break}else if((a|0)==8){b=b|2;break}else if((a|0)==9){b=b|3;break}}else b=0;while(0);return b|0}function qe(a){a=a|0;var b=0,c=0;if(!(a<<16>>16)){c=0;return c|0}b=(a&65535)-((a&65535)>>>15&65535)|0;b=(b<<16>>31^b)<<16;a=b>>16;if(!(a&16384)){c=b;b=0}else{c=0;return c|0}while(1){if(a&8192){a=b;c=7;break}if(a&4096){a=b;c=8;break}if(a&2048){a=b;c=9;break}b=b+4<<16>>16;c=c<<4;a=c>>16;if(a&16384){a=b;c=10;break}}if((c|0)==7){c=a|1;return c|0}else if((c|0)==8){c=a|2;return c|0}else if((c|0)==9){c=a|3;return c|0}else if((c|0)==10)return a|0;return 0}function re(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0;d=d<<16>>16;if((d&134217727|0)==33554432){c[f>>2]=1;d=2147483647}else d=d<<6;g=d>>>16&31;i=b[7792+(g<<1)>>1]|0;h=i<<16;d=Z(i-(e[7792+(g+1<<1)>>1]|0)<<16>>16,d>>>1&32767)|0;if((d|0)==1073741824){c[f>>2]=1;g=2147483647}else g=d<<1;d=h-g|0;if(((d^h)&(g^h)|0)>=0){i=d;a=a&65535;a=30-a|0;a=a&65535;f=ge(i,a,f)|0;return f|0}c[f>>2]=1;i=(i>>>15&1)+2147483647|0;a=a&65535;a=30-a|0;a=a&65535;f=ge(i,a,f)|0;return f|0}function se(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;o=i;i=i+48|0;n=o;m=0-(d&65535)|0;m=f<<16>>16==0?m:m<<1&131070;d=m&65535;m=(d<<16>>16<0?m+6|0:m)<<16>>16;g=6-m|0;b[n>>1]=b[7858+(m<<1)>>1]|0;b[n+2>>1]=b[7858+(g<<1)>>1]|0;b[n+4>>1]=b[7858+(m+6<<1)>>1]|0;b[n+6>>1]=b[7858+(g+6<<1)>>1]|0;b[n+8>>1]=b[7858+(m+12<<1)>>1]|0;b[n+10>>1]=b[7858+(g+12<<1)>>1]|0;b[n+12>>1]=b[7858+(m+18<<1)>>1]|0;b[n+14>>1]=b[7858+(g+18<<1)>>1]|0;b[n+16>>1]=b[7858+(m+24<<1)>>1]|0;b[n+18>>1]=b[7858+(g+24<<1)>>1]|0;b[n+20>>1]=b[7858+(m+30<<1)>>1]|0;b[n+22>>1]=b[7858+(g+30<<1)>>1]|0;b[n+24>>1]=b[7858+(m+36<<1)>>1]|0;b[n+26>>1]=b[7858+(g+36<<1)>>1]|0;b[n+28>>1]=b[7858+(m+42<<1)>>1]|0;b[n+30>>1]=b[7858+(g+42<<1)>>1]|0;b[n+32>>1]=b[7858+(m+48<<1)>>1]|0;b[n+34>>1]=b[7858+(g+48<<1)>>1]|0;b[n+36>>1]=b[7858+(m+54<<1)>>1]|0;b[n+38>>1]=b[7858+(g+54<<1)>>1]|0;g=e<<16>>16>>>1&65535;if(!(g<<16>>16)){i=o;return}m=a+((d<<16>>16>>15<<16>>16)-(c<<16>>16)<<1)|0;while(1){l=m+2|0;h=b[l>>1]|0;c=h;e=m;j=5;k=n;f=16384;d=16384;while(1){q=b[k>>1]|0;r=(Z(q,c<<16>>16)|0)+d|0;p=b[l+-2>>1]|0;d=(Z(p,q)|0)+f|0;q=e;e=e+4|0;s=b[k+2>>1]|0;d=d+(Z(s,h<<16>>16)|0)|0;f=b[e>>1]|0;s=r+(Z(f,s)|0)|0;l=l+-4|0;r=b[k+4>>1]|0;p=s+(Z(r,p)|0)|0;c=b[l>>1]|0;r=d+(Z(c<<16>>16,r)|0)|0;d=b[k+6>>1]|0;f=r+(Z(d,f)|0)|0;h=b[q+6>>1]|0;d=p+(Z(h<<16>>16,d)|0)|0;if(j<<16>>16<=1)break;else{j=j+-1<<16>>16;k=k+8|0}}b[a>>1]=f>>>15;b[a+2>>1]=d>>>15;g=g+-1<<16>>16;if(!(g<<16>>16))break;else{m=m+4|0;a=a+4|0}}i=o;return} + function te(a,c,d,f,g,h,j){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var 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;C=i;i=i+144|0;t=C+120|0;y=C+100|0;A=C+80|0;B=C+60|0;z=C+40|0;q=C+20|0;r=C;ne(d,t,10,j);fe(t,y,j);if((c|0)==8){b[h>>1]=0;l=2147483647;s=0;while(1){n=s*10|0;d=0;m=0;do{x=(e[7980+(m+n<<1)>>1]|0)+(e[8140+(m<<1)>>1]|0)|0;b[r+(m<<1)>>1]=x;x=(e[t+(m<<1)>>1]|0)-(x&65535)|0;b[q+(m<<1)>>1]=x;x=x<<16;d=(Z(x>>15,x>>16)|0)+d|0;m=m+1|0}while((m|0)!=10);if((d|0)<(l|0)){u=B;p=q;o=u+20|0;do{b[u>>1]=b[p>>1]|0;u=u+2|0;p=p+2|0}while((u|0)<(o|0));u=A;p=r;o=u+20|0;do{b[u>>1]=b[p>>1]|0;u=u+2|0;p=p+2|0}while((u|0)<(o|0));u=a;p=7980+(n<<1)|0;o=u+20|0;do{b[u>>1]=b[p>>1]|0;u=u+2|0;p=p+2|0}while((u|0)<(o|0));b[h>>1]=s}else d=l;s=s+1|0;if((s|0)==8)break;else l=d}}else{d=0;do{x=Z(b[8160+(d<<1)>>1]|0,b[a+(d<<1)>>1]|0)|0;x=(x>>>15)+(e[8140+(d<<1)>>1]|0)|0;b[A+(d<<1)>>1]=x;b[B+(d<<1)>>1]=(e[t+(d<<1)>>1]|0)-x;d=d+1|0}while((d|0)!=10)}do if(c>>>0>=2){x=B+2|0;w=B+4|0;v=e[B>>1]|0;u=b[y>>1]<<1;t=e[x>>1]|0;q=b[y+2>>1]<<1;p=e[w>>1]|0;o=b[y+4>>1]<<1;if((c|0)==5){r=2147483647;h=0;d=0;s=17908;while(1){m=(Z(v-(e[s>>1]|0)<<16>>16,u)|0)>>16;m=Z(m,m)|0;n=(Z(t-(e[s+2>>1]|0)<<16>>16,q)|0)>>16;m=(Z(n,n)|0)+m|0;n=(Z(p-(e[s+4>>1]|0)<<16>>16,o)|0)>>16;n=m+(Z(n,n)|0)|0;m=(n|0)<(r|0);d=m?h:d;h=h+1<<16>>16;if(h<<16>>16>=512)break;else{r=m?n:r;s=s+6|0}}n=(d<<16>>16)*3|0;b[B>>1]=b[17908+(n<<1)>>1]|0;b[x>>1]=b[17908+(n+1<<1)>>1]|0;b[w>>1]=b[17908+(n+2<<1)>>1]|0;b[g>>1]=d;n=B+6|0;m=B+8|0;v=B+10|0;s=e[n>>1]|0;h=b[y+6>>1]<<1;r=e[m>>1]|0;q=b[y+8>>1]<<1;p=e[v>>1]|0;o=b[y+10>>1]<<1;k=2147483647;t=0;d=0;u=9716;while(1){l=(Z(h,s-(e[u>>1]|0)<<16>>16)|0)>>16;l=Z(l,l)|0;c=(Z(q,r-(e[u+2>>1]|0)<<16>>16)|0)>>16;l=(Z(c,c)|0)+l|0;c=(Z(o,p-(e[u+4>>1]|0)<<16>>16)|0)>>16;c=l+(Z(c,c)|0)|0;l=(c|0)<(k|0);d=l?t:d;t=t+1<<16>>16;if(t<<16>>16>=512)break;else{k=l?c:k;u=u+6|0}}k=(d<<16>>16)*3|0;b[n>>1]=b[9716+(k<<1)>>1]|0;b[m>>1]=b[9716+(k+1<<1)>>1]|0;b[v>>1]=b[9716+(k+2<<1)>>1]|0;b[g+2>>1]=d;k=B+12|0;b[g+4>>1]=ue(k,12788,y+12|0,512)|0;t=x;s=w;d=v;l=B;break}else{r=2147483647;h=0;d=0;s=8180;while(1){m=(Z(v-(e[s>>1]|0)<<16>>16,u)|0)>>16;m=Z(m,m)|0;n=(Z(t-(e[s+2>>1]|0)<<16>>16,q)|0)>>16;m=(Z(n,n)|0)+m|0;n=(Z(p-(e[s+4>>1]|0)<<16>>16,o)|0)>>16;n=m+(Z(n,n)|0)|0;m=(n|0)<(r|0);d=m?h:d;h=h+1<<16>>16;if(h<<16>>16>=256)break;else{r=m?n:r;s=s+6|0}}n=(d<<16>>16)*3|0;b[B>>1]=b[8180+(n<<1)>>1]|0;b[x>>1]=b[8180+(n+1<<1)>>1]|0;b[w>>1]=b[8180+(n+2<<1)>>1]|0;b[g>>1]=d;n=B+6|0;m=B+8|0;v=B+10|0;s=e[n>>1]|0;h=b[y+6>>1]<<1;r=e[m>>1]|0;q=b[y+8>>1]<<1;p=e[v>>1]|0;o=b[y+10>>1]<<1;k=2147483647;t=0;d=0;u=9716;while(1){l=(Z(h,s-(e[u>>1]|0)<<16>>16)|0)>>16;l=Z(l,l)|0;c=(Z(q,r-(e[u+2>>1]|0)<<16>>16)|0)>>16;l=(Z(c,c)|0)+l|0;c=(Z(o,p-(e[u+4>>1]|0)<<16>>16)|0)>>16;c=l+(Z(c,c)|0)|0;l=(c|0)<(k|0);d=l?t:d;t=t+1<<16>>16;if(t<<16>>16>=512)break;else{k=l?c:k;u=u+6|0}}k=(d<<16>>16)*3|0;b[n>>1]=b[9716+(k<<1)>>1]|0;b[m>>1]=b[9716+(k+1<<1)>>1]|0;b[v>>1]=b[9716+(k+2<<1)>>1]|0;b[g+2>>1]=d;k=B+12|0;b[g+4>>1]=ue(k,12788,y+12|0,512)|0;t=x;s=w;d=v;l=B;break}}else{w=B+2|0;x=B+4|0;n=e[B>>1]|0;m=b[y>>1]<<1;l=e[w>>1]|0;k=b[y+2>>1]<<1;c=e[x>>1]|0;o=b[y+4>>1]<<1;r=2147483647;h=0;d=0;s=8180;while(1){q=(Z(m,n-(e[s>>1]|0)<<16>>16)|0)>>16;q=Z(q,q)|0;p=(Z(k,l-(e[s+2>>1]|0)<<16>>16)|0)>>16;q=(Z(p,p)|0)+q|0;p=(Z(o,c-(e[s+4>>1]|0)<<16>>16)|0)>>16;p=q+(Z(p,p)|0)|0;q=(p|0)<(r|0);d=q?h:d;h=h+1<<16>>16;if(h<<16>>16>=256)break;else{r=q?p:r;s=s+6|0}}n=(d<<16>>16)*3|0;b[B>>1]=b[8180+(n<<1)>>1]|0;b[w>>1]=b[8180+(n+1<<1)>>1]|0;b[x>>1]=b[8180+(n+2<<1)>>1]|0;b[g>>1]=d;n=B+6|0;m=B+8|0;v=B+10|0;s=e[n>>1]|0;h=b[y+6>>1]<<1;r=e[m>>1]|0;q=b[y+8>>1]<<1;p=e[v>>1]|0;o=b[y+10>>1]<<1;k=2147483647;t=0;d=0;u=9716;while(1){l=(Z(h,s-(e[u>>1]|0)<<16>>16)|0)>>16;l=Z(l,l)|0;c=(Z(q,r-(e[u+2>>1]|0)<<16>>16)|0)>>16;l=(Z(c,c)|0)+l|0;c=(Z(o,p-(e[u+4>>1]|0)<<16>>16)|0)>>16;c=l+(Z(c,c)|0)|0;l=(c|0)<(k|0);d=l?t:d;t=t+1<<16>>16;if(t<<16>>16>=256)break;else{k=l?c:k;u=u+12|0}}k=(d<<16>>16)*6|0;b[n>>1]=b[9716+(k<<1)>>1]|0;b[m>>1]=b[9716+((k|1)<<1)>>1]|0;b[v>>1]=b[9716+(k+2<<1)>>1]|0;b[g+2>>1]=d;k=B+12|0;b[g+4>>1]=ue(k,16884,y+12|0,128)|0;t=w;s=x;d=v;l=B}while(0);u=a;p=B;o=u+20|0;do{b[u>>1]=b[p>>1]|0;u=u+2|0;p=p+2|0}while((u|0)<(o|0));b[z>>1]=(e[A>>1]|0)+(e[l>>1]|0);b[z+2>>1]=(e[A+2>>1]|0)+(e[t>>1]|0);b[z+4>>1]=(e[A+4>>1]|0)+(e[s>>1]|0);b[z+6>>1]=(e[A+6>>1]|0)+(e[n>>1]|0);b[z+8>>1]=(e[A+8>>1]|0)+(e[m>>1]|0);b[z+10>>1]=(e[A+10>>1]|0)+(e[d>>1]|0);b[z+12>>1]=(e[A+12>>1]|0)+(e[k>>1]|0);b[z+14>>1]=(e[A+14>>1]|0)+(e[B+14>>1]|0);b[z+16>>1]=(e[A+16>>1]|0)+(e[B+16>>1]|0);b[z+18>>1]=(e[A+18>>1]|0)+(e[B+18>>1]|0);Ae(z,205,10,j);me(z,f,10,j);i=C;return}function ue(a,c,d,f){a=a|0;c=c|0;d=d|0;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,t=0,u=0,v=0;t=a+2|0;u=a+4|0;v=a+6|0;if(f<<16>>16>0){m=e[a>>1]|0;n=b[d>>1]<<1;o=e[t>>1]|0;p=b[d+2>>1]<<1;q=e[u>>1]|0;r=b[d+4>>1]<<1;s=e[v>>1]|0;g=b[d+6>>1]<<1;j=2147483647;k=0;d=0;l=c;while(1){h=(Z(n,m-(e[l>>1]|0)<<16>>16)|0)>>16;h=Z(h,h)|0;i=(Z(p,o-(e[l+2>>1]|0)<<16>>16)|0)>>16;h=(Z(i,i)|0)+h|0;i=(Z(r,q-(e[l+4>>1]|0)<<16>>16)|0)>>16;i=h+(Z(i,i)|0)|0;h=(Z(g,s-(e[l+6>>1]|0)<<16>>16)|0)>>16;h=i+(Z(h,h)|0)|0;i=(h|0)<(j|0);d=i?k:d;k=k+1<<16>>16;if(k<<16>>16>=f<<16>>16)break;else{j=i?h:j;l=l+8|0}}}else d=0;f=d<<16>>16<<2;s=f|1;b[a>>1]=b[c+(f<<1)>>1]|0;b[t>>1]=b[c+(s<<1)>>1]|0;b[u>>1]=b[c+(s+1<<1)>>1]|0;b[v>>1]=b[c+((f|3)<<1)>>1]|0;return d|0}function ve(a,c,d,f,g,h,j){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var 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,G=0,H=0,I=0,J=0,K=0;I=i;i=i+192|0;m=I+160|0;l=I+140|0;C=I+120|0;D=I+100|0;E=I+80|0;F=I+60|0;k=I+40|0;G=I+20|0;H=I;ne(c,m,10,j);ne(d,l,10,j);fe(m,C,j);fe(l,D,j);n=0;d=E;c=F;o=k;while(1){B=(((b[a+(n<<1)>>1]|0)*21299|0)>>>15)+(e[20980+(n<<1)>>1]|0)|0;b[d>>1]=B;b[c>>1]=(e[m>>1]|0)-B;b[o>>1]=(e[l>>1]|0)-B;n=n+1|0;if((n|0)==10)break;else{m=m+2|0;l=l+2|0;d=d+2|0;c=c+2|0;o=o+2|0}}b[h>>1]=we(F,k,21e3,b[C>>1]|0,b[C+2>>1]|0,b[D>>1]|0,b[D+2>>1]|0,128)|0;b[h+2>>1]=we(F+4|0,k+4|0,22024,b[C+4>>1]|0,b[C+6>>1]|0,b[D+4>>1]|0,b[D+6>>1]|0,256)|0;y=F+8|0;z=k+8|0;A=F+10|0;B=k+10|0;d=b[y>>1]|0;p=b[C+8>>1]<<1;q=b[A>>1]|0;r=b[C+10>>1]<<1;s=b[z>>1]|0;t=b[D+8>>1]<<1;u=b[B>>1]|0;v=b[D+10>>1]<<1;l=2147483647;w=0;o=0;x=24072;c=0;while(1){m=b[x>>1]|0;n=(Z(d-m<<16>>16,p)|0)>>16;n=Z(n,n)|0;m=(Z(m+d<<16>>16,p)|0)>>16;m=Z(m,m)|0;J=b[x+2>>1]|0;K=(Z(q-J<<16>>16,r)|0)>>16;n=(Z(K,K)|0)+n|0;J=(Z(J+q<<16>>16,r)|0)>>16;m=(Z(J,J)|0)+m|0;if((n|0)<(l|0)|(m|0)<(l|0)){K=b[x+4>>1]|0;J=(Z(s-K<<16>>16,t)|0)>>16;J=(Z(J,J)|0)+n|0;K=(Z(K+s<<16>>16,t)|0)>>16;K=(Z(K,K)|0)+m|0;m=b[x+6>>1]|0;n=(Z(u-m<<16>>16,v)|0)>>16;n=J+(Z(n,n)|0)|0;m=(Z(m+u<<16>>16,v)|0)>>16;m=K+(Z(m,m)|0)|0;K=(n|0)<(l|0);n=K?n:l;J=(m|0)<(n|0);n=J?m:n;o=K|J?w:o;c=J?1:K?0:c}else n=l;w=w+1<<16>>16;if(w<<16>>16>=256)break;else{l=n;x=x+8|0}}n=o<<16>>16;m=n<<2;o=m|1;l=24072+(o<<1)|0;d=b[24072+(m<<1)>>1]|0;if(!(c<<16>>16)){b[y>>1]=d;b[A>>1]=b[l>>1]|0;b[z>>1]=b[24072+(o+1<<1)>>1]|0;b[B>>1]=b[24072+((m|3)<<1)>>1]|0;c=n<<1}else{b[y>>1]=0-(d&65535);b[A>>1]=0-(e[l>>1]|0);b[z>>1]=0-(e[24072+(o+1<<1)>>1]|0);b[B>>1]=0-(e[24072+((m|3)<<1)>>1]|0);c=n<<1&65534|1}b[h+4>>1]=c;b[h+6>>1]=we(F+12|0,k+12|0,26120,b[C+12>>1]|0,b[C+14>>1]|0,b[D+12>>1]|0,b[D+14>>1]|0,256)|0;b[h+8>>1]=we(F+16|0,k+16|0,28168,b[C+16>>1]|0,b[C+18>>1]|0,b[D+16>>1]|0,b[D+18>>1]|0,64)|0;l=0;m=G;n=H;d=E;c=F;while(1){J=e[d>>1]|0;b[m>>1]=J+(e[c>>1]|0);K=b[k>>1]|0;b[n>>1]=J+(K&65535);b[a+(l<<1)>>1]=K;l=l+1|0;if((l|0)==10)break;else{m=m+2|0;n=n+2|0;d=d+2|0;c=c+2|0;k=k+2|0}}Ae(G,205,10,j);Ae(H,205,10,j);me(G,f,10,j);me(H,g,10,j);i=I;return}function we(a,c,d,e,f,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var 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;o=b[a>>1]|0;u=a+2|0;q=b[u>>1]|0;s=b[c>>1]|0;v=c+2|0;t=b[v>>1]|0;if(i<<16>>16>0){n=e<<16>>16<<1;m=f<<16>>16<<1;l=g<<16>>16<<1;f=h<<16>>16<<1;g=2147483647;j=0;e=0;k=d;while(1){h=(Z(n,o-(b[k>>1]|0)|0)|0)>>16;h=Z(h,h)|0;if(((h|0)<(g|0)?(p=(Z(m,q-(b[k+2>>1]|0)|0)|0)>>16,p=(Z(p,p)|0)+h|0,(p|0)<(g|0)):0)?(r=(Z(l,s-(b[k+4>>1]|0)|0)|0)>>16,r=(Z(r,r)|0)+p|0,(r|0)<(g|0)):0){h=(Z(f,t-(b[k+6>>1]|0)|0)|0)>>16;h=(Z(h,h)|0)+r|0;w=(h|0)<(g|0);h=w?h:g;e=w?j:e}else h=g;j=j+1<<16>>16;if(j<<16>>16>=i<<16>>16)break;else{g=h;k=k+8|0}}}else e=0;w=e<<16>>16<<2;i=w|1;b[a>>1]=b[d+(w<<1)>>1]|0;b[u>>1]=b[d+(i<<1)>>1]|0;b[c>>1]=b[d+(i+1<<1)>>1]|0;b[v>>1]=b[d+((w|3)<<1)>>1]|0;return e|0}function xe(a){a=a|0;var d=0,e=0,f=0;if(!a){f=-1;return f|0}c[a>>2]=0;d=Je(20)|0;if(!d){f=-1;return f|0}e=d;f=e+20|0;do{b[e>>1]=0;e=e+2|0}while((e|0)<(f|0));c[a>>2]=d;f=0;return f|0}function ye(a){a=a|0;var c=0;if(!a){c=-1;return c|0}c=a+20|0;do{b[a>>1]=0;a=a+2|0}while((a|0)<(c|0));c=0;return c|0}function ze(a){a=a|0;var b=0;if(!a)return;b=c[a>>2]|0;if(!b)return;Ke(b);c[a>>2]=0;return}function Ae(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(d<<16>>16<=0)return;f=c<<16>>16;g=c&65535;h=0;while(1){e=b[a>>1]|0;if(e<<16>>16>16){b[a>>1]=c;e=(c<<16>>16)+f|0}else e=(e&65535)+g|0;h=h+1<<16>>16;if(h<<16>>16>=d<<16>>16)break;else{c=e&65535;a=a+2|0}}return}function Be(a,c,d,e){a=a|0;c=c|0;d=d|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,t=0;f=e<<16>>16;e=f>>>2&65535;if(!(e<<16>>16))return;n=f+-1|0;t=a+20|0;p=c+(f+-4<<1)|0;q=c+(f+-3<<1)|0;r=c+(f+-2<<1)|0;s=c+(n<<1)|0;o=c+(f+-11<<1)|0;n=d+(n<<1)|0;while(1){c=b[t>>1]|0;h=5;i=t;j=o;k=o+-2|0;l=o+-4|0;m=o+-6|0;g=2048;a=2048;f=2048;d=2048;while(1){g=(Z(b[j>>1]|0,c)|0)+g|0;a=(Z(b[k>>1]|0,c)|0)+a|0;f=(Z(b[l>>1]|0,c)|0)+f|0;c=(Z(b[m>>1]|0,c)|0)+d|0;d=b[i+-2>>1]|0;g=g+(Z(b[j+2>>1]|0,d)|0)|0;a=a+(Z(b[k+2>>1]|0,d)|0)|0;f=f+(Z(b[l+2>>1]|0,d)|0)|0;i=i+-4|0;d=c+(Z(b[m+2>>1]|0,d)|0)|0;h=h+-1<<16>>16;c=b[i>>1]|0;if(!(h<<16>>16))break;else{j=j+4|0;k=k+4|0;l=l+4|0;m=m+4|0}}j=(Z(b[s>>1]|0,c)|0)+g|0;k=(Z(b[r>>1]|0,c)|0)+a|0;l=(Z(b[q>>1]|0,c)|0)+f|0;m=(Z(b[p>>1]|0,c)|0)+d|0;b[n>>1]=j>>>12;b[n+-2>>1]=k>>>12;b[n+-4>>1]=l>>>12;b[n+-6>>1]=m>>>12;e=e+-1<<16>>16;if(!(e<<16>>16))break;else{p=p+-8|0;q=q+-8|0;r=r+-8|0;s=s+-8|0;o=o+-8|0;n=n+-8|0}}return}function Ce(a,b){a=a|0;b=b|0;var d=0;d=a+32768|0;if((a|0)>-1&(d^a|0)<0){c[b>>2]=1;d=(a>>>31)+2147483647|0}return d>>>16&65535|0}function De(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=b<<16>>16;if(!(b<<16>>16))return a|0;if(b<<16>>16>0){a=a<<16>>16>>(b<<16>>16>15?15:e)&65535;return a|0}f=0-e|0;b=a<<16>>16;f=(f&65535)<<16>>16>15?15:f<<16>>16;e=b<>16>>f|0)==(b|0)){f=e&65535;return f|0}c[d>>2]=1;f=a<<16>>16>0?32767:-32768;return f|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;if(b<<16>>16>15){b=0;return b|0}c=De(a,b,c)|0;if(b<<16>>16>0)return c+((1<<(b<<16>>16)+-1&a<<16>>16|0)!=0&1)<<16>>16|0;else{b=c;return b|0}return 0}function Fe(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0;if((a|0)<1){b[d>>1]=0;f=0;return f|0}h=(pe(a)|0)&65534;i=h&65535;h=h<<16>>16;if(i<<16>>16>0){g=a<>h|0)!=(a|0))g=a>>31^2147483647}else{h=0-h<<16;if((h|0)<2031616)g=a>>(h>>16);else g=0}b[d>>1]=i;d=g>>>25&63;d=d>>>0>15?d+-16|0:d;i=b[30216+(d<<1)>>1]|0;a=i<<16;g=Z(i-(e[30216+(d+1<<1)>>1]|0)<<16>>16,g>>>10&32767)|0;if((g|0)==1073741824){c[f>>2]=1;h=2147483647}else h=g<<1;g=a-h|0;if(((g^a)&(h^a)|0)>=0){f=g;return f|0}c[f>>2]=1;f=(i>>>15&1)+2147483647|0;return f|0}function Ge(a,b,d){a=a|0;b=b|0;d=d|0;a=(a<<16>>16)-(b<<16>>16)|0;if((a+32768|0)>>>0<=65535){d=a;d=d&65535;return d|0}c[d>>2]=1;d=(a|0)>32767?32767:-32768;d=d&65535;return d|0}function He(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=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;A=i;i=i+48|0;o=A;k=o;h=f;j=k+20|0;do{b[k>>1]=b[h>>1]|0;k=k+2|0;h=h+2|0}while((k|0)<(j|0));n=o+18|0;s=a+2|0;t=a+4|0;p=c+20|0;u=a+6|0;v=a+8|0;w=a+10|0;x=a+12|0;y=a+14|0;z=a+16|0;q=a+18|0;r=a+20|0;j=b[n>>1]|0;h=5;l=c;m=d;k=o+20|0;while(1){D=b[a>>1]|0;C=(Z(D,b[l>>1]|0)|0)+2048|0;D=(Z(b[l+2>>1]|0,D)|0)+2048|0;o=j<<16>>16;C=C-(Z(o,b[s>>1]|0)|0)|0;B=b[t>>1]|0;o=D-(Z(o,B)|0)|0;D=b[n+-2>>1]|0;B=C-(Z(D,B)|0)|0;C=b[u>>1]|0;D=o-(Z(C,D)|0)|0;o=b[n+-4>>1]|0;C=B-(Z(o,C)|0)|0;B=b[v>>1]|0;o=D-(Z(B,o)|0)|0;D=b[n+-6>>1]|0;B=C-(Z(D,B)|0)|0;C=b[w>>1]|0;D=o-(Z(D,C)|0)|0;o=b[n+-8>>1]|0;C=B-(Z(o,C)|0)|0;B=b[x>>1]|0;o=D-(Z(B,o)|0)|0;D=b[n+-10>>1]|0;B=C-(Z(D,B)|0)|0;C=b[y>>1]|0;D=o-(Z(C,D)|0)|0;o=b[n+-12>>1]|0;C=B-(Z(o,C)|0)|0;B=b[z>>1]|0;o=D-(Z(o,B)|0)|0;D=b[n+-14>>1]|0;B=C-(Z(D,B)|0)|0;C=b[q>>1]|0;D=o-(Z(C,D)|0)|0;o=b[n+-16>>1]|0;C=B-(Z(o,C)|0)|0;B=b[r>>1]|0;o=D-(Z(B,o)|0)|0;B=C-(Z(b[n+-18>>1]|0,B)|0)|0;B=(B+134217728|0)>>>0<268435455?B>>>12&65535:(B|0)>134217727?32767:-32768;o=o-(Z(b[s>>1]|0,B<<16>>16)|0)|0;n=k+2|0;b[k>>1]=B;b[m>>1]=B;j=(o+134217728|0)>>>0<268435455?o>>>12&65535:(o|0)>134217727?32767:-32768;b[n>>1]=j;b[m+2>>1]=j;h=h+-1<<16>>16;if(!(h<<16>>16))break;else{l=l+4|0;m=m+4|0;k=k+4|0}}e=(e<<16>>16)+-10|0;k=e>>>1&65535;if(k<<16>>16){o=d+18|0;j=c+16|0;n=b[o>>1]|0;l=p;h=d+20|0;while(1){B=b[a>>1]|0;m=(Z(B,b[l>>1]|0)|0)+2048|0;B=(Z(b[j+6>>1]|0,B)|0)+2048|0;j=b[s>>1]|0;C=n<<16>>16;m=m-(Z(C,j)|0)|0;D=b[t>>1]|0;C=B-(Z(C,D)|0)|0;B=b[o+-2>>1]|0;D=m-(Z(B,D)|0)|0;m=b[u>>1]|0;B=C-(Z(m,B)|0)|0;C=b[o+-4>>1]|0;m=D-(Z(C,m)|0)|0;D=b[v>>1]|0;C=B-(Z(D,C)|0)|0;B=b[o+-6>>1]|0;D=m-(Z(B,D)|0)|0;m=b[w>>1]|0;B=C-(Z(B,m)|0)|0;C=b[o+-8>>1]|0;m=D-(Z(C,m)|0)|0;D=b[x>>1]|0;C=B-(Z(D,C)|0)|0;B=b[o+-10>>1]|0;D=m-(Z(B,D)|0)|0;m=b[y>>1]|0;B=C-(Z(m,B)|0)|0;C=b[o+-12>>1]|0;m=D-(Z(C,m)|0)|0;D=b[z>>1]|0;C=B-(Z(C,D)|0)|0;B=b[o+-14>>1]|0;D=m-(Z(B,D)|0)|0;m=b[q>>1]|0;B=C-(Z(m,B)|0)|0;C=b[o+-16>>1]|0;m=D-(Z(C,m)|0)|0;D=b[r>>1]|0;C=B-(Z(D,C)|0)|0;D=m-(Z(b[o+-18>>1]|0,D)|0)|0;m=l+4|0;D=(D+134217728|0)>>>0<268435455?D>>>12&65535:(D|0)>134217727?32767:-32768;j=C-(Z(j,D<<16>>16)|0)|0;o=h+2|0;b[h>>1]=D;do if((j+134217728|0)>>>0>=268435455){h=h+4|0;if((j|0)>134217727){b[o>>1]=32767;j=32767;break}else{b[o>>1]=-32768;j=-32768;break}}else{j=j>>>12&65535;b[o>>1]=j;h=h+4|0}while(0);k=k+-1<<16>>16;if(!(k<<16>>16))break;else{D=l;n=j;l=m;j=D}}}if(!(g<<16>>16)){i=A;return}k=f;h=d+(e<<1)|0;j=k+20|0;do{b[k>>1]=b[h>>1]|0;k=k+2|0;h=h+2|0}while((k|0)<(j|0));i=A;return}function Ie(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>1]=b[a>>1]|0;b[d+2>>1]=((Z(b[c>>1]|0,b[a+2>>1]|0)|0)+16384|0)>>>15;b[d+4>>1]=((Z(b[c+2>>1]|0,b[a+4>>1]|0)|0)+16384|0)>>>15;b[d+6>>1]=((Z(b[c+4>>1]|0,b[a+6>>1]|0)|0)+16384|0)>>>15;b[d+8>>1]=((Z(b[c+6>>1]|0,b[a+8>>1]|0)|0)+16384|0)>>>15;b[d+10>>1]=((Z(b[c+8>>1]|0,b[a+10>>1]|0)|0)+16384|0)>>>15;b[d+12>>1]=((Z(b[c+10>>1]|0,b[a+12>>1]|0)|0)+16384|0)>>>15;b[d+14>>1]=((Z(b[c+12>>1]|0,b[a+14>>1]|0)|0)+16384|0)>>>15;b[d+16>>1]=((Z(b[c+14>>1]|0,b[a+16>>1]|0)|0)+16384|0)>>>15;b[d+18>>1]=((Z(b[c+16>>1]|0,b[a+18>>1]|0)|0)+16384|0)>>>15;b[d+20>>1]=((Z(b[c+18>>1]|0,b[a+20>>1]|0)|0)+16384|0)>>>15;return}function Je(a){a=a|0;var b=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,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,R=0,S=0,T=0,U=0,V=0;do if(a>>>0<245){s=a>>>0<11?16:a+11&-8;a=s>>>3;m=c[26]|0;j=m>>>a;if(j&3){e=(j&1^1)+a|0;b=e<<1;d=144+(b<<2)|0;b=144+(b+2<<2)|0;f=c[b>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)==(h|0))c[26]=m&~(1<>>0>=(c[30]|0)>>>0?(l=h+12|0,(c[l>>2]|0)==(f|0)):0){c[l>>2]=d;c[b>>2]=h;break}ea()}while(0);U=e<<3;c[f+4>>2]=U|3;U=f+(U|4)|0;c[U>>2]=c[U>>2]|1;break}b=c[28]|0;if(s>>>0>b>>>0){if(j){f=2<>>12&16;f=f>>>g;e=f>>>5&8;f=f>>>e;d=f>>>2&4;f=f>>>d;h=f>>>1&2;f=f>>>h;i=f>>>1&1;i=(e|g|d|h|i)+(f>>>i)|0;f=i<<1;h=144+(f<<2)|0;f=144+(f+2<<2)|0;d=c[f>>2]|0;g=d+8|0;e=c[g>>2]|0;do if((h|0)==(e|0)){c[26]=m&~(1<>>0>=(c[30]|0)>>>0?(k=e+12|0,(c[k>>2]|0)==(d|0)):0){c[k>>2]=h;c[f>>2]=e;n=c[28]|0;break}ea()}while(0);U=i<<3;b=U-s|0;c[d+4>>2]=s|3;j=d+s|0;c[d+(s|4)>>2]=b|1;c[d+U>>2]=b;if(n){d=c[31]|0;e=n>>>3;h=e<<1;i=144+(h<<2)|0;f=c[26]|0;e=1<>2]|0;if(h>>>0<(c[30]|0)>>>0)ea();else{p=f;q=h}}else{c[26]=f|e;p=144+(h+2<<2)|0;q=i}c[p>>2]=d;c[q+12>>2]=d;c[d+8>>2]=q;c[d+12>>2]=i}c[28]=b;c[31]=j;break}a=c[27]|0;if(a){f=(a&0-a)+-1|0;T=f>>>12&16;f=f>>>T;S=f>>>5&8;f=f>>>S;U=f>>>2&4;f=f>>>U;h=f>>>1&2;f=f>>>h;j=f>>>1&1;j=c[408+((S|T|U|h|j)+(f>>>j)<<2)>>2]|0;f=(c[j+4>>2]&-8)-s|0;h=j;while(1){i=c[h+16>>2]|0;if(!i){i=c[h+20>>2]|0;if(!i){b=f;break}}h=(c[i+4>>2]&-8)-s|0;U=h>>>0>>0;f=U?h:f;h=i;j=U?i:j}a=c[30]|0;if(j>>>0>=a>>>0?(v=j+s|0,j>>>0>>0):0){e=c[j+24>>2]|0;i=c[j+12>>2]|0;do if((i|0)==(j|0)){h=j+20|0;i=c[h>>2]|0;if(!i){h=j+16|0;i=c[h>>2]|0;if(!i){t=0;break}}while(1){g=i+20|0;f=c[g>>2]|0;if(f){i=f;h=g;continue}g=i+16|0;f=c[g>>2]|0;if(!f)break;else{i=f;h=g}}if(h>>>0>>0)ea();else{c[h>>2]=0;t=i;break}}else{h=c[j+8>>2]|0;if((h>>>0>=a>>>0?(d=h+12|0,(c[d>>2]|0)==(j|0)):0)?(o=i+8|0,(c[o>>2]|0)==(j|0)):0){c[d>>2]=i;c[o>>2]=h;t=i;break}ea()}while(0);do if(e){h=c[j+28>>2]|0;g=408+(h<<2)|0;if((j|0)==(c[g>>2]|0)){c[g>>2]=t;if(!t){c[27]=c[27]&~(1<>>0<(c[30]|0)>>>0)ea();h=e+16|0;if((c[h>>2]|0)==(j|0))c[h>>2]=t;else c[e+20>>2]=t;if(!t)break}g=c[30]|0;if(t>>>0>>0)ea();c[t+24>>2]=e;h=c[j+16>>2]|0;do if(h)if(h>>>0>>0)ea();else{c[t+16>>2]=h;c[h+24>>2]=t;break}while(0);h=c[j+20>>2]|0;if(h)if(h>>>0<(c[30]|0)>>>0)ea();else{c[t+20>>2]=h;c[h+24>>2]=t;break}}while(0);if(b>>>0<16){U=b+s|0;c[j+4>>2]=U|3;U=j+(U+4)|0;c[U>>2]=c[U>>2]|1}else{c[j+4>>2]=s|3;c[j+(s|4)>>2]=b|1;c[j+(b+s)>>2]=b;e=c[28]|0;if(e){d=c[31]|0;f=e>>>3;h=f<<1;i=144+(h<<2)|0;g=c[26]|0;f=1<>2]|0;if(g>>>0<(c[30]|0)>>>0)ea();else{u=h;w=g}}else{c[26]=g|f;u=144+(h+2<<2)|0;w=i}c[u>>2]=d;c[w+12>>2]=d;c[d+8>>2]=w;c[d+12>>2]=i}c[28]=b;c[31]=v}g=j+8|0;break}ea()}else V=154}else V=154}else if(a>>>0<=4294967231){a=a+11|0;w=a&-8;m=c[27]|0;if(m){j=0-w|0;a=a>>>8;if(a)if(w>>>0>16777215)l=31;else{v=(a+1048320|0)>>>16&8;V=a<>>16&4;V=V<>>16&2;l=14-(u|v|l)+(V<>>15)|0;l=w>>>(l+7|0)&1|l<<1}else l=0;a=c[408+(l<<2)>>2]|0;a:do if(!a){i=0;a=0;V=86}else{d=j;i=0;b=w<<((l|0)==31?0:25-(l>>>1)|0);k=a;a=0;while(1){e=c[k+4>>2]&-8;j=e-w|0;if(j>>>0>>0)if((e|0)==(w|0)){e=k;a=k;V=90;break a}else a=k;else j=d;V=c[k+20>>2]|0;k=c[k+16+(b>>>31<<2)>>2]|0;i=(V|0)==0|(V|0)==(k|0)?i:V;if(!k){V=86;break}else{d=j;b=b<<1}}}while(0);if((V|0)==86){if((i|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>t;q=a>>>5&8;a=a>>>q;u=a>>>2&4;a=a>>>u;v=a>>>1&2;a=a>>>v;i=a>>>1&1;i=c[408+((q|t|u|v|i)+(a>>>i)<<2)>>2]|0;a=0}if(!i){q=j;p=a}else{e=i;V=90}}if((V|0)==90)while(1){V=0;v=(c[e+4>>2]&-8)-w|0;i=v>>>0>>0;j=i?v:j;a=i?e:a;i=c[e+16>>2]|0;if(i){e=i;V=90;continue}e=c[e+20>>2]|0;if(!e){q=j;p=a;break}else V=90}if((p|0)!=0?q>>>0<((c[28]|0)-w|0)>>>0:0){a=c[30]|0;if(p>>>0>=a>>>0?(H=p+w|0,p>>>0>>0):0){j=c[p+24>>2]|0;i=c[p+12>>2]|0;do if((i|0)==(p|0)){h=p+20|0;i=c[h>>2]|0;if(!i){h=p+16|0;i=c[h>>2]|0;if(!i){y=0;break}}while(1){g=i+20|0;f=c[g>>2]|0;if(f){i=f;h=g;continue}g=i+16|0;f=c[g>>2]|0;if(!f)break;else{i=f;h=g}}if(h>>>0>>0)ea();else{c[h>>2]=0;y=i;break}}else{h=c[p+8>>2]|0;if((h>>>0>=a>>>0?(r=h+12|0,(c[r>>2]|0)==(p|0)):0)?(s=i+8|0,(c[s>>2]|0)==(p|0)):0){c[r>>2]=i;c[s>>2]=h;y=i;break}ea()}while(0);do if(j){i=c[p+28>>2]|0;h=408+(i<<2)|0;if((p|0)==(c[h>>2]|0)){c[h>>2]=y;if(!y){c[27]=c[27]&~(1<>>0<(c[30]|0)>>>0)ea();h=j+16|0;if((c[h>>2]|0)==(p|0))c[h>>2]=y;else c[j+20>>2]=y;if(!y)break}i=c[30]|0;if(y>>>0>>0)ea();c[y+24>>2]=j;h=c[p+16>>2]|0;do if(h)if(h>>>0>>0)ea();else{c[y+16>>2]=h;c[h+24>>2]=y;break}while(0);h=c[p+20>>2]|0;if(h)if(h>>>0<(c[30]|0)>>>0)ea();else{c[y+20>>2]=h;c[h+24>>2]=y;break}}while(0);b:do if(q>>>0>=16){c[p+4>>2]=w|3;c[p+(w|4)>>2]=q|1;c[p+(q+w)>>2]=q;i=q>>>3;if(q>>>0<256){g=i<<1;e=144+(g<<2)|0;f=c[26]|0;h=1<>2]|0;if(g>>>0<(c[30]|0)>>>0)ea();else{z=h;A=g}}else{c[26]=f|h;z=144+(g+2<<2)|0;A=e}c[z>>2]=H;c[A+12>>2]=H;c[p+(w+8)>>2]=A;c[p+(w+12)>>2]=e;break}d=q>>>8;if(d)if(q>>>0>16777215)i=31;else{T=(d+1048320|0)>>>16&8;U=d<>>16&4;U=U<>>16&2;i=14-(S|T|i)+(U<>>15)|0;i=q>>>(i+7|0)&1|i<<1}else i=0;h=408+(i<<2)|0;c[p+(w+28)>>2]=i;c[p+(w+20)>>2]=0;c[p+(w+16)>>2]=0;g=c[27]|0;f=1<>2]=H;c[p+(w+24)>>2]=h;c[p+(w+12)>>2]=H;c[p+(w+8)>>2]=H;break}d=c[h>>2]|0;c:do if((c[d+4>>2]&-8|0)!=(q|0)){i=q<<((i|0)==31?0:25-(i>>>1)|0);while(1){b=d+16+(i>>>31<<2)|0;h=c[b>>2]|0;if(!h)break;if((c[h+4>>2]&-8|0)==(q|0)){C=h;break c}else{i=i<<1;d=h}}if(b>>>0<(c[30]|0)>>>0)ea();else{c[b>>2]=H;c[p+(w+24)>>2]=d;c[p+(w+12)>>2]=H;c[p+(w+8)>>2]=H;break b}}else C=d;while(0);d=C+8|0;b=c[d>>2]|0;U=c[30]|0;if(b>>>0>=U>>>0&C>>>0>=U>>>0){c[b+12>>2]=H;c[d>>2]=H;c[p+(w+8)>>2]=b;c[p+(w+12)>>2]=C;c[p+(w+24)>>2]=0;break}else ea()}else{U=q+w|0;c[p+4>>2]=U|3;U=p+(U+4)|0;c[U>>2]=c[U>>2]|1}while(0);g=p+8|0;break}ea()}else{s=w;V=154}}else{s=w;V=154}}else{s=-1;V=154}while(0);d:do if((V|0)==154){a=c[28]|0;if(a>>>0>=s>>>0){b=a-s|0;d=c[31]|0;if(b>>>0>15){c[31]=d+s;c[28]=b;c[d+(s+4)>>2]=b|1;c[d+a>>2]=b;c[d+4>>2]=s|3}else{c[28]=0;c[31]=0;c[d+4>>2]=a|3;V=d+(a+4)|0;c[V>>2]=c[V>>2]|1}g=d+8|0;break}a=c[29]|0;if(a>>>0>s>>>0){V=a-s|0;c[29]=V;g=c[32]|0;c[32]=g+s;c[g+(s+4)>>2]=V|1;c[g+4>>2]=s|3;g=g+8|0;break}if(!(c[144]|0))Me();m=s+48|0;d=c[146]|0;l=s+47|0;e=d+l|0;d=0-d|0;k=e&d;if(k>>>0>s>>>0){a=c[136]|0;if((a|0)!=0?(C=c[134]|0,H=C+k|0,H>>>0<=C>>>0|H>>>0>a>>>0):0){g=0;break}e:do if(!(c[137]&4)){a=c[32]|0;f:do if(a){i=552;while(1){j=c[i>>2]|0;if(j>>>0<=a>>>0?(x=i+4|0,(j+(c[x>>2]|0)|0)>>>0>a>>>0):0){g=i;a=x;break}i=c[i+8>>2]|0;if(!i){V=172;break f}}j=e-(c[29]|0)&d;if(j>>>0<2147483647){i=ga(j|0)|0;H=(i|0)==((c[g>>2]|0)+(c[a>>2]|0)|0);a=H?j:0;if(H){if((i|0)!=(-1|0)){A=i;t=a;V=192;break e}}else V=182}else a=0}else V=172;while(0);do if((V|0)==172){g=ga(0)|0;if((g|0)!=(-1|0)){a=g;j=c[145]|0;i=j+-1|0;if(!(i&a))j=k;else j=k-a+(i+a&0-j)|0;a=c[134]|0;i=a+j|0;if(j>>>0>s>>>0&j>>>0<2147483647){H=c[136]|0;if((H|0)!=0?i>>>0<=a>>>0|i>>>0>H>>>0:0){a=0;break}i=ga(j|0)|0;V=(i|0)==(g|0);a=V?j:0;if(V){A=g;t=a;V=192;break e}else V=182}else a=0}else a=0}while(0);g:do if((V|0)==182){g=0-j|0;do if(m>>>0>j>>>0&(j>>>0<2147483647&(i|0)!=(-1|0))?(B=c[146]|0,B=l-j+B&0-B,B>>>0<2147483647):0)if((ga(B|0)|0)==(-1|0)){ga(g|0)|0;break g}else{j=B+j|0;break}while(0);if((i|0)!=(-1|0)){A=i;t=j;V=192;break e}}while(0);c[137]=c[137]|4;V=189}else{a=0;V=189}while(0);if((((V|0)==189?k>>>0<2147483647:0)?(D=ga(k|0)|0,E=ga(0)|0,D>>>0>>0&((D|0)!=(-1|0)&(E|0)!=(-1|0))):0)?(F=E-D|0,G=F>>>0>(s+40|0)>>>0,G):0){A=D;t=G?F:a;V=192}if((V|0)==192){j=(c[134]|0)+t|0;c[134]=j;if(j>>>0>(c[135]|0)>>>0)c[135]=j;q=c[32]|0;h:do if(q){g=552;do{a=c[g>>2]|0;j=g+4|0;i=c[j>>2]|0;if((A|0)==(a+i|0)){I=a;J=j;K=i;L=g;V=202;break}g=c[g+8>>2]|0}while((g|0)!=0);if(((V|0)==202?(c[L+12>>2]&8|0)==0:0)?q>>>0>>0&q>>>0>=I>>>0:0){c[J>>2]=K+t;V=(c[29]|0)+t|0;U=q+8|0;U=(U&7|0)==0?0:0-U&7;T=V-U|0;c[32]=q+U;c[29]=T;c[q+(U+4)>>2]=T|1;c[q+(V+4)>>2]=40;c[33]=c[148];break}j=c[30]|0;if(A>>>0>>0){c[30]=A;j=A}i=A+t|0;a=552;while(1){if((c[a>>2]|0)==(i|0)){g=a;i=a;V=210;break}a=c[a+8>>2]|0;if(!a){i=552;break}}if((V|0)==210)if(!(c[i+12>>2]&8)){c[g>>2]=A;o=i+4|0;c[o>>2]=(c[o>>2]|0)+t;o=A+8|0;o=(o&7|0)==0?0:0-o&7;l=A+(t+8)|0;l=(l&7|0)==0?0:0-l&7;i=A+(l+t)|0;p=o+s|0;n=A+p|0;a=i-(A+o)-s|0;c[A+(o+4)>>2]=s|3;i:do if((i|0)!=(q|0)){if((i|0)==(c[31]|0)){V=(c[28]|0)+a|0;c[28]=V;c[31]=n;c[A+(p+4)>>2]=V|1;c[A+(V+p)>>2]=V;break}b=t+4|0;h=c[A+(b+l)>>2]|0;if((h&3|0)==1){k=h&-8;e=h>>>3;j:do if(h>>>0>=256){d=c[A+((l|24)+t)>>2]|0;g=c[A+(t+12+l)>>2]|0;k:do if((g|0)==(i|0)){f=l|16;g=A+(b+f)|0;h=c[g>>2]|0;if(!h){g=A+(f+t)|0;h=c[g>>2]|0;if(!h){R=0;break}}while(1){f=h+20|0;e=c[f>>2]|0;if(e){h=e;g=f;continue}f=h+16|0;e=c[f>>2]|0;if(!e)break;else{h=e;g=f}}if(g>>>0>>0)ea();else{c[g>>2]=0;R=h;break}}else{f=c[A+((l|8)+t)>>2]|0;do if(f>>>0>=j>>>0){j=f+12|0;if((c[j>>2]|0)!=(i|0))break;h=g+8|0;if((c[h>>2]|0)!=(i|0))break;c[j>>2]=g;c[h>>2]=f;R=g;break k}while(0);ea()}while(0);if(!d)break;j=c[A+(t+28+l)>>2]|0;h=408+(j<<2)|0;do if((i|0)!=(c[h>>2]|0)){if(d>>>0<(c[30]|0)>>>0)ea();h=d+16|0;if((c[h>>2]|0)==(i|0))c[h>>2]=R;else c[d+20>>2]=R;if(!R)break j}else{c[h>>2]=R;if(R)break;c[27]=c[27]&~(1<>>0>>0)ea();c[R+24>>2]=d;i=l|16;h=c[A+(i+t)>>2]|0;do if(h)if(h>>>0>>0)ea();else{c[R+16>>2]=h;c[h+24>>2]=R;break}while(0);i=c[A+(b+i)>>2]|0;if(!i)break;if(i>>>0<(c[30]|0)>>>0)ea();else{c[R+20>>2]=i;c[i+24>>2]=R;break}}else{h=c[A+((l|8)+t)>>2]|0;g=c[A+(t+12+l)>>2]|0;f=144+(e<<1<<2)|0;do if((h|0)!=(f|0)){if(h>>>0>=j>>>0?(c[h+12>>2]|0)==(i|0):0)break;ea()}while(0);if((g|0)==(h|0)){c[26]=c[26]&~(1<>>0>=j>>>0?(N=g+8|0,(c[N>>2]|0)==(i|0)):0){M=N;break}ea()}while(0);c[h+12>>2]=g;c[M>>2]=h}while(0);i=A+((k|l)+t)|0;a=k+a|0}i=i+4|0;c[i>>2]=c[i>>2]&-2;c[A+(p+4)>>2]=a|1;c[A+(a+p)>>2]=a;i=a>>>3;if(a>>>0<256){g=i<<1;e=144+(g<<2)|0;f=c[26]|0;h=1<>2]|0;if(g>>>0>=(c[30]|0)>>>0){S=h;T=g;break}ea()}while(0);c[S>>2]=n;c[T+12>>2]=n;c[A+(p+8)>>2]=T;c[A+(p+12)>>2]=e;break}d=a>>>8;do if(!d)i=0;else{if(a>>>0>16777215){i=31;break}T=(d+1048320|0)>>>16&8;V=d<>>16&4;V=V<>>16&2;i=14-(S|T|i)+(V<>>15)|0;i=a>>>(i+7|0)&1|i<<1}while(0);h=408+(i<<2)|0;c[A+(p+28)>>2]=i;c[A+(p+20)>>2]=0;c[A+(p+16)>>2]=0;g=c[27]|0;f=1<>2]=n;c[A+(p+24)>>2]=h;c[A+(p+12)>>2]=n;c[A+(p+8)>>2]=n;break}d=c[h>>2]|0;l:do if((c[d+4>>2]&-8|0)!=(a|0)){i=a<<((i|0)==31?0:25-(i>>>1)|0);while(1){b=d+16+(i>>>31<<2)|0;h=c[b>>2]|0;if(!h)break;if((c[h+4>>2]&-8|0)==(a|0)){U=h;break l}else{i=i<<1;d=h}}if(b>>>0<(c[30]|0)>>>0)ea();else{c[b>>2]=n;c[A+(p+24)>>2]=d;c[A+(p+12)>>2]=n;c[A+(p+8)>>2]=n;break i}}else U=d;while(0);d=U+8|0;b=c[d>>2]|0;V=c[30]|0;if(b>>>0>=V>>>0&U>>>0>=V>>>0){c[b+12>>2]=n;c[d>>2]=n;c[A+(p+8)>>2]=b;c[A+(p+12)>>2]=U;c[A+(p+24)>>2]=0;break}else ea()}else{V=(c[29]|0)+a|0;c[29]=V;c[32]=n;c[A+(p+4)>>2]=V|1}while(0);g=A+(o|8)|0;break d}else i=552;while(1){g=c[i>>2]|0;if(g>>>0<=q>>>0?(h=c[i+4>>2]|0,f=g+h|0,f>>>0>q>>>0):0)break;i=c[i+8>>2]|0}i=g+(h+-39)|0;i=g+(h+-47+((i&7|0)==0?0:0-i&7))|0;j=q+16|0;i=i>>>0>>0?q:i;h=i+8|0;g=A+8|0;g=(g&7|0)==0?0:0-g&7;V=t+-40-g|0;c[32]=A+g;c[29]=V;c[A+(g+4)>>2]=V|1;c[A+(t+-36)>>2]=40;c[33]=c[148];g=i+4|0;c[g>>2]=27;c[h>>2]=c[138];c[h+4>>2]=c[139];c[h+8>>2]=c[140];c[h+12>>2]=c[141];c[138]=A;c[139]=t;c[141]=0;c[140]=h;h=i+28|0;c[h>>2]=7;if((i+32|0)>>>0>>0)do{V=h;h=h+4|0;c[h>>2]=7}while((V+8|0)>>>0>>0);if((i|0)!=(q|0)){a=i-q|0;c[g>>2]=c[g>>2]&-2;c[q+4>>2]=a|1;c[i>>2]=a;f=a>>>3;if(a>>>0<256){h=f<<1;i=144+(h<<2)|0;g=c[26]|0;e=1<>2]|0;if(b>>>0<(c[30]|0)>>>0)ea();else{O=d;P=b}}else{c[26]=g|e;O=144+(h+2<<2)|0;P=i}c[O>>2]=q;c[P+12>>2]=q;c[q+8>>2]=P;c[q+12>>2]=i;break}d=a>>>8;if(d)if(a>>>0>16777215)h=31;else{U=(d+1048320|0)>>>16&8;V=d<>>16&4;V=V<>>16&2;h=14-(T|U|h)+(V<>>15)|0;h=a>>>(h+7|0)&1|h<<1}else h=0;e=408+(h<<2)|0;c[q+28>>2]=h;c[q+20>>2]=0;c[j>>2]=0;d=c[27]|0;b=1<>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q;break}d=c[e>>2]|0;m:do if((c[d+4>>2]&-8|0)!=(a|0)){h=a<<((h|0)==31?0:25-(h>>>1)|0);while(1){b=d+16+(h>>>31<<2)|0;e=c[b>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(a|0)){Q=e;break m}else{h=h<<1;d=e}}if(b>>>0<(c[30]|0)>>>0)ea();else{c[b>>2]=q;c[q+24>>2]=d;c[q+12>>2]=q;c[q+8>>2]=q;break h}}else Q=d;while(0);d=Q+8|0;b=c[d>>2]|0;V=c[30]|0;if(b>>>0>=V>>>0&Q>>>0>=V>>>0){c[b+12>>2]=q;c[d>>2]=q;c[q+8>>2]=b;c[q+12>>2]=Q;c[q+24>>2]=0;break}else ea()}}else{V=c[30]|0;if((V|0)==0|A>>>0>>0)c[30]=A;c[138]=A;c[139]=t;c[141]=0;c[35]=c[144];c[34]=-1;d=0;do{V=d<<1;U=144+(V<<2)|0;c[144+(V+3<<2)>>2]=U;c[144+(V+2<<2)>>2]=U;d=d+1|0}while((d|0)!=32);V=A+8|0;V=(V&7|0)==0?0:0-V&7;U=t+-40-V|0;c[32]=A+V;c[29]=U;c[A+(V+4)>>2]=U|1;c[A+(t+-36)>>2]=40;c[33]=c[148]}while(0);b=c[29]|0;if(b>>>0>s>>>0){V=b-s|0;c[29]=V;g=c[32]|0;c[32]=g+s;c[g+(s+4)>>2]=V|1;c[g+4>>2]=s|3;g=g+8|0;break}}c[(Le()|0)>>2]=12;g=0}else g=0}while(0);return g|0}function Ke(a){a=a|0;var b=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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;a:do if(a){f=a+-8|0;k=c[30]|0;b:do if(f>>>0>=k>>>0?(e=c[a+-4>>2]|0,d=e&3,(d|0)!=1):0){v=e&-8;w=a+(v+-8)|0;do if(!(e&1)){f=c[f>>2]|0;if(!d)break a;l=-8-f|0;n=a+l|0;o=f+v|0;if(n>>>0>>0)break b;if((n|0)==(c[31]|0)){g=a+(v+-4)|0;f=c[g>>2]|0;if((f&3|0)!=3){B=n;g=o;break}c[28]=o;c[g>>2]=f&-2;c[a+(l+4)>>2]=o|1;c[w>>2]=o;break a}d=f>>>3;if(f>>>0<256){e=c[a+(l+8)>>2]|0;g=c[a+(l+12)>>2]|0;f=144+(d<<1<<2)|0;do if((e|0)!=(f|0)){if(e>>>0>=k>>>0?(c[e+12>>2]|0)==(n|0):0)break;ea()}while(0);if((g|0)==(e|0)){c[26]=c[26]&~(1<>>0>=k>>>0?(h=g+8|0,(c[h>>2]|0)==(n|0)):0){b=h;break}ea()}while(0);c[e+12>>2]=g;c[b>>2]=e;B=n;g=o;break}h=c[a+(l+24)>>2]|0;f=c[a+(l+12)>>2]|0;do if((f|0)==(n|0)){e=a+(l+20)|0;f=c[e>>2]|0;if(!f){e=a+(l+16)|0;f=c[e>>2]|0;if(!f){m=0;break}}while(1){d=f+20|0;b=c[d>>2]|0;if(b){f=b;e=d;continue}d=f+16|0;b=c[d>>2]|0;if(!b)break;else{f=b;e=d}}if(e>>>0>>0)ea();else{c[e>>2]=0;m=f;break}}else{e=c[a+(l+8)>>2]|0;if((e>>>0>=k>>>0?(i=e+12|0,(c[i>>2]|0)==(n|0)):0)?(j=f+8|0,(c[j>>2]|0)==(n|0)):0){c[i>>2]=f;c[j>>2]=e;m=f;break}ea()}while(0);if(h){f=c[a+(l+28)>>2]|0;e=408+(f<<2)|0;if((n|0)==(c[e>>2]|0)){c[e>>2]=m;if(!m){c[27]=c[27]&~(1<>>0<(c[30]|0)>>>0)ea();f=h+16|0;if((c[f>>2]|0)==(n|0))c[f>>2]=m;else c[h+20>>2]=m;if(!m){B=n;g=o;break}}e=c[30]|0;if(m>>>0>>0)ea();c[m+24>>2]=h;f=c[a+(l+16)>>2]|0;do if(f)if(f>>>0>>0)ea();else{c[m+16>>2]=f;c[f+24>>2]=m;break}while(0);f=c[a+(l+20)>>2]|0;if(f)if(f>>>0<(c[30]|0)>>>0)ea();else{c[m+20>>2]=f;c[f+24>>2]=m;B=n;g=o;break}else{B=n;g=o}}else{B=n;g=o}}else{B=f;g=v}while(0);if(B>>>0>>0?(p=a+(v+-4)|0,q=c[p>>2]|0,(q&1|0)!=0):0){if(!(q&2)){if((w|0)==(c[32]|0)){A=(c[29]|0)+g|0;c[29]=A;c[32]=B;c[B+4>>2]=A|1;if((B|0)!=(c[31]|0))break a;c[31]=0;c[28]=0;break a}if((w|0)==(c[31]|0)){A=(c[28]|0)+g|0;c[28]=A;c[31]=B;c[B+4>>2]=A|1;c[B+A>>2]=A;break a}j=(q&-8)+g|0;d=q>>>3;do if(q>>>0>=256){b=c[a+(v+16)>>2]|0;g=c[a+(v|4)>>2]|0;do if((g|0)==(w|0)){f=a+(v+12)|0;g=c[f>>2]|0;if(!g){f=a+(v+8)|0;g=c[f>>2]|0;if(!g){x=0;break}}while(1){e=g+20|0;d=c[e>>2]|0;if(d){g=d;f=e;continue}e=g+16|0;d=c[e>>2]|0;if(!d)break;else{g=d;f=e}}if(f>>>0<(c[30]|0)>>>0)ea();else{c[f>>2]=0;x=g;break}}else{f=c[a+v>>2]|0;if((f>>>0>=(c[30]|0)>>>0?(t=f+12|0,(c[t>>2]|0)==(w|0)):0)?(u=g+8|0,(c[u>>2]|0)==(w|0)):0){c[t>>2]=g;c[u>>2]=f;x=g;break}ea()}while(0);if(b){g=c[a+(v+20)>>2]|0;f=408+(g<<2)|0;if((w|0)==(c[f>>2]|0)){c[f>>2]=x;if(!x){c[27]=c[27]&~(1<>>0<(c[30]|0)>>>0)ea();g=b+16|0;if((c[g>>2]|0)==(w|0))c[g>>2]=x;else c[b+20>>2]=x;if(!x)break}g=c[30]|0;if(x>>>0>>0)ea();c[x+24>>2]=b;f=c[a+(v+8)>>2]|0;do if(f)if(f>>>0>>0)ea();else{c[x+16>>2]=f;c[f+24>>2]=x;break}while(0);d=c[a+(v+12)>>2]|0;if(d)if(d>>>0<(c[30]|0)>>>0)ea();else{c[x+20>>2]=d;c[d+24>>2]=x;break}}}else{e=c[a+v>>2]|0;g=c[a+(v|4)>>2]|0;f=144+(d<<1<<2)|0;do if((e|0)!=(f|0)){if(e>>>0>=(c[30]|0)>>>0?(c[e+12>>2]|0)==(w|0):0)break;ea()}while(0);if((g|0)==(e|0)){c[26]=c[26]&~(1<>>0>=(c[30]|0)>>>0?(s=g+8|0,(c[s>>2]|0)==(w|0)):0){r=s;break}ea()}while(0);c[e+12>>2]=g;c[r>>2]=e}while(0);c[B+4>>2]=j|1;c[B+j>>2]=j;if((B|0)==(c[31]|0)){c[28]=j;break a}else g=j}else{c[p>>2]=q&-2;c[B+4>>2]=g|1;c[B+g>>2]=g}f=g>>>3;if(g>>>0<256){e=f<<1;g=144+(e<<2)|0;b=c[26]|0;d=1<>2]|0;if(b>>>0<(c[30]|0)>>>0)ea();else{y=d;z=b}}else{c[26]=b|d;y=144+(e+2<<2)|0;z=g}c[y>>2]=B;c[z+12>>2]=B;c[B+8>>2]=z;c[B+12>>2]=g;break a}b=g>>>8;if(b)if(g>>>0>16777215)f=31;else{y=(b+1048320|0)>>>16&8;z=b<>>16&4;z=z<>>16&2;f=14-(a|y|f)+(z<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;d=408+(f<<2)|0;c[B+28>>2]=f;c[B+20>>2]=0;c[B+16>>2]=0;b=c[27]|0;e=1<>2]|0;d:do if((c[d+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){b=d+16+(f>>>31<<2)|0;e=c[b>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(g|0)){A=e;break d}else{f=f<<1;d=e}}if(b>>>0<(c[30]|0)>>>0)ea();else{c[b>>2]=B;c[B+24>>2]=d;c[B+12>>2]=B;c[B+8>>2]=B;break c}}else A=d;while(0);b=A+8|0;d=c[b>>2]|0;z=c[30]|0;if(d>>>0>=z>>>0&A>>>0>=z>>>0){c[d+12>>2]=B;c[b>>2]=B;c[B+8>>2]=d;c[B+12>>2]=A;c[B+24>>2]=0;break}else ea()}else{c[27]=b|e;c[d>>2]=B;c[B+24>>2]=d;c[B+12>>2]=B;c[B+8>>2]=B}while(0);B=(c[34]|0)+-1|0;c[34]=B;if(!B)b=560;else break a;while(1){b=c[b>>2]|0;if(!b)break;else b=b+8|0}c[34]=-1;break a}}while(0);ea()}while(0);return}function Le(){var a=0;if(!0)a=600;else a=c[(da()|0)+60>>2]|0;return a|0}function Me(){var a=0;do if(!(c[144]|0)){a=ca(30)|0;if(!(a+-1&a)){c[146]=a;c[145]=a;c[147]=-1;c[148]=-1;c[149]=0;c[137]=0;c[144]=(ha(0)|0)&-16^1431655768;break}else ea()}while(0);return}function Ne(){}function Oe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ja(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Pe(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 Oe(b,c,d)|0;return b|0}function Qe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0} + + // EMSCRIPTEN_END_FUNCS + return{_free:Ke,___errno_location:Le,_memmove:Pe,_Decoder_Interface_Decode:xa,_Decoder_Interface_exit:wa,_Encoder_Interface_init:ya,_memset:Qe,_malloc:Je,_memcpy:Oe,_Encoder_Interface_exit:za,_Decoder_Interface_init:va,_Encoder_Interface_Encode:Aa,runPostSets:Ne,stackAlloc:ma,stackSave:na,stackRestore:oa,establishStackSpace:pa,setThrew:qa,setTempRet0:ta,getTempRet0:ua}}) + + + // EMSCRIPTEN_END_ASM + (Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _Encoder_Interface_Encode=Module["_Encoder_Interface_Encode"]=asm["_Encoder_Interface_Encode"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _memmove=Module["_memmove"]=asm["_memmove"];var _Decoder_Interface_exit=Module["_Decoder_Interface_exit"]=asm["_Decoder_Interface_exit"];var _Encoder_Interface_init=Module["_Encoder_Interface_init"]=asm["_Encoder_Interface_init"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _Decoder_Interface_Decode=Module["_Decoder_Interface_Decode"]=asm["_Decoder_Interface_Decode"];var _Decoder_Interface_init=Module["_Decoder_Interface_init"]=asm["_Decoder_Interface_init"];var _Encoder_Interface_exit=Module["_Encoder_Interface_exit"]=asm["_Encoder_Interface_exit"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];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;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){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"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() + + + + + return AMR; })(); \ No newline at end of file diff --git a/libs/elFinder/js/cdn/bzip2.js b/libs/elFinder/js/cdn/bzip2.js index ed666df..825979c 100644 --- a/libs/elFinder/js/cdn/bzip2.js +++ b/libs/elFinder/js/cdn/bzip2.js @@ -28,267 +28,267 @@ this.bzip2 = { - array : function(bytes){ - var bit = 0, byte = 0; - var BITMASK = [0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF ]; - return function(n){ - var result = 0; - while(n > 0){ - var left = 8 - bit; - if(n >= left){ - result <<= left; - result |= (BITMASK[left] & bytes[byte++]); - bit = 0; - n -= left; - }else{ - result <<= n; - result |= ((bytes[byte] & (BITMASK[n] << (8 - n - bit))) >> (8 - n - bit)); - bit += n; - n = 0; + array : function(bytes){ + var bit = 0, byte = 0; + var BITMASK = [0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF ]; + return function(n){ + var result = 0; + while(n > 0){ + var left = 8 - bit; + if(n >= left){ + result <<= left; + result |= (BITMASK[left] & bytes[byte++]); + bit = 0; + n -= left; + }else{ + result <<= n; + result |= ((bytes[byte] & (BITMASK[n] << (8 - n - bit))) >> (8 - n - bit)); + bit += n; + n = 0; + } + } + return result; + }; + }, + + concat : function(v1, v2){ + var pos = v1.byteLength; + var out = new Uint8Array(v1.byteLength + v2.byteLength); + out.set(v1, 0); + out.set(v2, pos); + return out; + }, + + simple : function(bits){ + var size = this.header(bits); + var all = new Uint8Array(0), chunk; + do{ + if (chunk) { + all = this.concat(all, chunk); + } + chunk = this.decompress(bits, size); + }while(chunk != -1); + return all; + }, + + header : function(bits){ + if(bits(8*3) != 4348520) throw "No magic number found"; + var i = bits(8) - 48; + if(i < 1 || i > 9) throw "Not a BZIP archive"; + return i; + }, + + + //takes a function for reading the block data (starting with 0x314159265359) + //a block size (0-9) (optional, defaults to 9) + //a length at which to stop decompressing and return the output + decompress : function(bits, size, len){ + var MAX_HUFCODE_BITS = 20; + var MAX_SYMBOLS = 258; + var SYMBOL_RUNA = 0; + var SYMBOL_RUNB = 1; + var GROUP_SIZE = 50; + + var bufsize = 100000 * size; + for(var h = '', i = 0; i < 6; i++) h += bits(8).toString(16); + if(h == "177245385090") return -1; //last block + if(h != "314159265359") throw "eek not valid bzip data"; + bits(32); //ignore CRC codes + if(bits(1)) throw "unsupported obsolete version"; + var origPtr = bits(24); + if(origPtr > bufsize) throw "Initial position larger than buffer size"; + var t = bits(16); + var symToByte = new Uint8Array(256), + symTotal = 0; + for (i = 0; i < 16; i++) { + if(t & (1 << (15 - i))) { + var k = bits(16); + for(j = 0; j < 16; j++){ + if(k & (1 << (15 - j))){ + symToByte[symTotal++] = (16 * i) + j; + } + } } } - return result; - }; - }, - - concat : function(v1, v2){ - var pos = v1.byteLength; - var out = new Uint8Array(v1.byteLength + v2.byteLength); - out.set(v1, 0); - out.set(v2, pos); - return out; - }, - - simple : function(bits){ - var size = this.header(bits); - var all = new Uint8Array(0), chunk; - do{ - if (chunk) { - all = this.concat(all, chunk); + + var groupCount = bits(3); + if(groupCount < 2 || groupCount > 6) throw "another error"; + var nSelectors = bits(15); + if(nSelectors == 0) throw "meh"; + var mtfSymbol = []; //TODO: possibly replace JS array with typed arrays + for(var i = 0; i < groupCount; i++) mtfSymbol[i] = i; + var selectors = new Uint8Array(32768); + + for(var i = 0; i < nSelectors; i++){ + for(var j = 0; bits(1); j++) if(j >= groupCount) throw "whoops another error"; + var uc = mtfSymbol[j]; + mtfSymbol.splice(j, 1); //this is a probably inefficient MTF transform + mtfSymbol.splice(0, 0, uc); + selectors[i] = uc; } - chunk = this.decompress(bits, size); - }while(chunk != -1); - return all; - }, - - header : function(bits){ - if(bits(8*3) != 4348520) throw "No magic number found"; - var i = bits(8) - 48; - if(i < 1 || i > 9) throw "Not a BZIP archive"; - return i; - }, - - - //takes a function for reading the block data (starting with 0x314159265359) - //a block size (0-9) (optional, defaults to 9) - //a length at which to stop decompressing and return the output - decompress : function(bits, size, len){ - var MAX_HUFCODE_BITS = 20; - var MAX_SYMBOLS = 258; - var SYMBOL_RUNA = 0; - var SYMBOL_RUNB = 1; - var GROUP_SIZE = 50; - - var bufsize = 100000 * size; - for(var h = '', i = 0; i < 6; i++) h += bits(8).toString(16); - if(h == "177245385090") return -1; //last block - if(h != "314159265359") throw "eek not valid bzip data"; - bits(32); //ignore CRC codes - if(bits(1)) throw "unsupported obsolete version"; - var origPtr = bits(24); - if(origPtr > bufsize) throw "Initial position larger than buffer size"; - var t = bits(16); - var symToByte = new Uint8Array(256), - symTotal = 0; - for (i = 0; i < 16; i++) { - if(t & (1 << (15 - i))) { - var k = bits(16); - for(j = 0; j < 16; j++){ - if(k & (1 << (15 - j))){ - symToByte[symTotal++] = (16 * i) + j; + + var symCount = symTotal + 2; + var groups = []; + for(var j = 0; j < groupCount; j++){ + var length = new Uint8Array(MAX_SYMBOLS), + temp = new Uint8Array(MAX_HUFCODE_BITS+1); + t = bits(5); //lengths + for(var i = 0; i < symCount; i++){ + while(true){ + if (t < 1 || t > MAX_HUFCODE_BITS) throw "I gave up a while ago on writing error messages"; + if(!bits(1)) break; + if(!bits(1)) t++; + else t--; } + length[i] = t; + } + var minLen, maxLen; + minLen = maxLen = length[0]; + for(var i = 1; i < symCount; i++){ + if(length[i] > maxLen) maxLen = length[i]; + else if(length[i] < minLen) minLen = length[i]; } + var hufGroup; + hufGroup = groups[j] = {}; + hufGroup.permute = new Uint32Array(MAX_SYMBOLS); + hufGroup.limit = new Uint32Array(MAX_HUFCODE_BITS + 1); + hufGroup.base = new Uint32Array(MAX_HUFCODE_BITS + 1); + hufGroup.minLen = minLen; + hufGroup.maxLen = maxLen; + var base = hufGroup.base.subarray(1); + var limit = hufGroup.limit.subarray(1); + var pp = 0; + for(var i = minLen; i <= maxLen; i++) + for(var t = 0; t < symCount; t++) + if(length[t] == i) hufGroup.permute[pp++] = t; + for(i = minLen; i <= maxLen; i++) temp[i] = limit[i] = 0; + for(i = 0; i < symCount; i++) temp[length[i]]++; + pp = t = 0; + for(i = minLen; i < maxLen; i++) { + pp += temp[i]; + limit[i] = pp - 1; + pp <<= 1; + base[i+1] = pp - (t += temp[i]); + } + limit[maxLen]=pp+temp[maxLen]-1; + base[minLen]=0; } - } - - var groupCount = bits(3); - if(groupCount < 2 || groupCount > 6) throw "another error"; - var nSelectors = bits(15); - if(nSelectors == 0) throw "meh"; - var mtfSymbol = []; //TODO: possibly replace JS array with typed arrays - for(var i = 0; i < groupCount; i++) mtfSymbol[i] = i; - var selectors = new Uint8Array(32768); - - for(var i = 0; i < nSelectors; i++){ - for(var j = 0; bits(1); j++) if(j >= groupCount) throw "whoops another error"; - var uc = mtfSymbol[j]; - mtfSymbol.splice(j, 1); //this is a probably inefficient MTF transform - mtfSymbol.splice(0, 0, uc); - selectors[i] = uc; - } - - var symCount = symTotal + 2; - var groups = []; - for(var j = 0; j < groupCount; j++){ - var length = new Uint8Array(MAX_SYMBOLS), - temp = new Uint8Array(MAX_HUFCODE_BITS+1); - t = bits(5); //lengths - for(var i = 0; i < symCount; i++){ + var byteCount = new Uint32Array(256); + for(var i = 0; i < 256; i++) mtfSymbol[i] = i; + var runPos, count, symCount, selector; + runPos = count = symCount = selector = 0; + var buf = new Uint32Array(bufsize); + while(true){ + if(!(symCount--)){ + symCount = GROUP_SIZE - 1; + if(selector >= nSelectors) throw "meow i'm a kitty, that's an error"; + hufGroup = groups[selectors[selector++]]; + base = hufGroup.base.subarray(1); + limit = hufGroup.limit.subarray(1); + } + i = hufGroup.minLen; + j = bits(i); while(true){ - if (t < 1 || t > MAX_HUFCODE_BITS) throw "I gave up a while ago on writing error messages"; - if(!bits(1)) break; - if(!bits(1)) t++; - else t--; + if(i > hufGroup.maxLen) throw "rawr i'm a dinosaur"; + if(j <= limit[i]) break; + i++; + j = (j << 1) | bits(1); } - length[i] = t; - } - var minLen, maxLen; - minLen = maxLen = length[0]; - for(var i = 1; i < symCount; i++){ - if(length[i] > maxLen) maxLen = length[i]; - else if(length[i] < minLen) minLen = length[i]; - } - var hufGroup; - hufGroup = groups[j] = {}; - hufGroup.permute = new Uint32Array(MAX_SYMBOLS); - hufGroup.limit = new Uint32Array(MAX_HUFCODE_BITS + 1); - hufGroup.base = new Uint32Array(MAX_HUFCODE_BITS + 1); - hufGroup.minLen = minLen; - hufGroup.maxLen = maxLen; - var base = hufGroup.base.subarray(1); - var limit = hufGroup.limit.subarray(1); - var pp = 0; - for(var i = minLen; i <= maxLen; i++) - for(var t = 0; t < symCount; t++) - if(length[t] == i) hufGroup.permute[pp++] = t; - for(i = minLen; i <= maxLen; i++) temp[i] = limit[i] = 0; - for(i = 0; i < symCount; i++) temp[length[i]]++; - pp = t = 0; - for(i = minLen; i < maxLen; i++) { - pp += temp[i]; - limit[i] = pp - 1; - pp <<= 1; - base[i+1] = pp - (t += temp[i]); + j -= base[i]; + if(j < 0 || j >= MAX_SYMBOLS) throw "moo i'm a cow"; + var nextSym = hufGroup.permute[j]; + if (nextSym == SYMBOL_RUNA || nextSym == SYMBOL_RUNB) { + if(!runPos){ + runPos = 1; + t = 0; + } + if(nextSym == SYMBOL_RUNA) t += runPos; + else t += 2 * runPos; + runPos <<= 1; + continue; } - limit[maxLen]=pp+temp[maxLen]-1; - base[minLen]=0; - } - var byteCount = new Uint32Array(256); - for(var i = 0; i < 256; i++) mtfSymbol[i] = i; - var runPos, count, symCount, selector; - runPos = count = symCount = selector = 0; - var buf = new Uint32Array(bufsize); - while(true){ - if(!(symCount--)){ - symCount = GROUP_SIZE - 1; - if(selector >= nSelectors) throw "meow i'm a kitty, that's an error"; - hufGroup = groups[selectors[selector++]]; - base = hufGroup.base.subarray(1); - limit = hufGroup.limit.subarray(1); - } - i = hufGroup.minLen; - j = bits(i); - while(true){ - if(i > hufGroup.maxLen) throw "rawr i'm a dinosaur"; - if(j <= limit[i]) break; - i++; - j = (j << 1) | bits(1); - } - j -= base[i]; - if(j < 0 || j >= MAX_SYMBOLS) throw "moo i'm a cow"; - var nextSym = hufGroup.permute[j]; - if (nextSym == SYMBOL_RUNA || nextSym == SYMBOL_RUNB) { - if(!runPos){ - runPos = 1; - t = 0; + if(runPos){ + runPos = 0; + if(count + t >= bufsize) throw "Boom."; + uc = symToByte[mtfSymbol[0]]; + byteCount[uc] += t; + while(t--) buf[count++] = uc; } - if(nextSym == SYMBOL_RUNA) t += runPos; - else t += 2 * runPos; - runPos <<= 1; - continue; + if(nextSym > symTotal) break; + if(count >= bufsize) throw "I can't think of anything. Error"; + i = nextSym -1; + uc = mtfSymbol[i]; + mtfSymbol.splice(i, 1); + mtfSymbol.splice(0, 0, uc); + uc = symToByte[uc]; + byteCount[uc]++; + buf[count++] = uc; } - if(runPos){ - runPos = 0; - if(count + t >= bufsize) throw "Boom."; - uc = symToByte[mtfSymbol[0]]; - byteCount[uc] += t; - while(t--) buf[count++] = uc; + if(origPtr < 0 || origPtr >= count) throw "I'm a monkey and I'm throwing something at someone, namely you"; + var j = 0; + for(var i = 0; i < 256; i++){ + k = j + byteCount[i]; + byteCount[i] = j; + j = k; } - if(nextSym > symTotal) break; - if(count >= bufsize) throw "I can't think of anything. Error"; - i = nextSym -1; - uc = mtfSymbol[i]; - mtfSymbol.splice(i, 1); - mtfSymbol.splice(0, 0, uc); - uc = symToByte[uc]; - byteCount[uc]++; - buf[count++] = uc; - } - if(origPtr < 0 || origPtr >= count) throw "I'm a monkey and I'm throwing something at someone, namely you"; - var j = 0; - for(var i = 0; i < 256; i++){ - k = j + byteCount[i]; - byteCount[i] = j; - j = k; - } - for(var i = 0; i < count; i++){ - uc = buf[i] & 0xff; - buf[byteCount[uc]] |= (i << 8); - byteCount[uc]++; - } - var pos = 0, current = 0, run = 0; - if(count) { - pos = buf[origPtr]; - current = (pos & 0xff); - pos >>= 8; - run = -1; - } - count = count; - - var maxindex = 1000000; - var output = new Uint8Array(0); - var bindex = maxindex + 1; - var outbuf; - - var copies, previous, outbyte; - if(!len) len = Infinity; - while(count){ - count--; - previous = current; - pos = buf[pos]; - current = pos & 0xff; - pos >>= 8; - if(run++ == 3){ - copies = current; - outbyte = previous; - current = -1; - }else{ - copies = 1; - outbyte = current; + for(var i = 0; i < count; i++){ + uc = buf[i] & 0xff; + buf[byteCount[uc]] |= (i << 8); + byteCount[uc]++; } - while(copies--){ - if ( bindex >= maxindex ) { - if ( outbuf !== undefined ) { - output = this.concat(output, outbuf); - } - outbuf = new Uint8Array(maxindex); - bindex = 0; + var pos = 0, current = 0, run = 0; + if(count) { + pos = buf[origPtr]; + current = (pos & 0xff); + pos >>= 8; + run = -1; + } + count = count; + + var maxindex = 1000000; + var output = new Uint8Array(0); + var bindex = maxindex + 1; + var outbuf; + + var copies, previous, outbyte; + if(!len) len = Infinity; + while(count){ + count--; + previous = current; + pos = buf[pos]; + current = pos & 0xff; + pos >>= 8; + if(run++ == 3){ + copies = current; + outbyte = previous; + current = -1; + }else{ + copies = 1; + outbyte = current; } - - outbuf[bindex++] = outbyte; - - if(!--len) { - outbuf = outbuf.subarray(0, bindex); - output = this.concat(output, outbuf); - return output; + while(copies--){ + if ( bindex >= maxindex ) { + if ( outbuf !== undefined ) { + output = this.concat(output, outbuf); + } + outbuf = new Uint8Array(maxindex); + bindex = 0; + } + + outbuf[bindex++] = outbyte; + + if(!--len) { + outbuf = outbuf.subarray(0, bindex); + output = this.concat(output, outbuf); + return output; + } } + if(current != previous) run = 0; + } - if(current != previous) run = 0; - + + outbuf = outbuf.subarray(0, bindex); + output = this.concat(output, outbuf); + return output; } - - outbuf = outbuf.subarray(0, bindex); - output = this.concat(output, outbuf); - return output; - } -}; + }; \ No newline at end of file diff --git a/libs/elFinder/js/cdn/dash.all.min.js b/libs/elFinder/js/cdn/dash.all.min.js index a29bedd..829d74b 100644 --- a/libs/elFinder/js/cdn/dash.all.min.js +++ b/libs/elFinder/js/cdn/dash.all.min.js @@ -1,3 +1,3 @@ -/*! For license information please see dash.all.min.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.dashjs=t():e.dashjs=t()}(self,(function(){return function(){var e={4593:function(e,t){var n,r,i,o,u,l=function(e){for(var t=[],n=0;n>6),t.push(128|63&r)):r<65536?(t.push(224|r>>12),t.push(128|63&r>>6),t.push(128|63&r)):(t.push(240|r>>18),t.push(128|63&r>>12),t.push(128|63&r>>6),t.push(128|63&r))}return t},c=function(e){for(var t=[],n=0;n>18)),r.push(n.charAt(63&a>>12)),r.push(n.charAt(63&a>>6)),r.push(n.charAt(63&a))}return 2==e.length-t?(a=(e[t]<<16)+(e[t+1]<<8),r.push(n.charAt(63&a>>18)),r.push(n.charAt(63&a>>12)),r.push(n.charAt(63&a>>6)),r.push("=")):1==e.length-t&&(a=e[t]<<16,r.push(n.charAt(63&a>>18)),r.push(n.charAt(63&a>>12)),r.push("==")),r.join("")},i=function(){for(var e=[],t=0;t=n&&console.log(this.time+" ["+e+"] "+t)}},f=function(e){for(var t=[],n=0;ni&&(c.log("ERROR","Too large cursor position "+this.pos),this.pos=i)},moveCursor:function(e){var t=this.pos+e;if(e>1)for(var n=this.pos+1;n=144&&this.backSpace();var t=n(e);this.pos>=i?c.log("ERROR","Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1))},clearFromPos:function(e){var t;for(t=e;t0&&(n=e?"["+t.join(" | ")+"]":t.join("\n")),n},getTextAndFormat:function(){return this.rows}};var m=function(e,t){this.chNr=e,this.outputFilter=t,this.mode=null,this.verbose=0,this.displayedMemory=new p,this.nonDisplayedMemory=new p,this.lastOutputScreen=new p,this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null};m.prototype={modes:["MODE_ROLL-UP","MODE_POP-ON","MODE_PAINT-ON","MODE_TEXT"],reset:function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.lastCueEndTime=null},getHandler:function(){return this.outputFilter},setHandler:function(e){this.outputFilter=e},setPAC:function(e){this.writeScreen.setPAC(e)},setBkgData:function(e){this.writeScreen.setBkgData(e)},setMode:function(e){e!==this.mode&&(this.mode=e,c.log("INFO","MODE="+e),"MODE_POP-ON"==this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)},insertChars:function(e){for(var t=0;t=46,t.italics)t.foreground="white";else{var n=Math.floor(e/2)-16;t.foreground=["white","green","blue","cyan","red","yellow","magenta"][n]}c.log("INFO","MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)},outputDataUpdate:function(){var e=c.time;null!==e&&this.outputFilter&&(this.outputFilter.updateData&&this.outputFilter.updateData(e,this.displayedMemory),null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))},cueSplitAtTime:function(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))}};var y=function(e,t,n){this.field=e||1,this.outputs=[t,n],this.channels=[new m(1,t),new m(2,n)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.bufferedData=[],this.startTime=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}};y.prototype={getHandler:function(e){return this.channels[e].getHandler()},setHandler:function(e,t){this.channels[e].setHandler(t)},addData:function(e,t){var n,r,i,a=!1;this.lastTime=e,c.setTime(e);for(var o=0;o=16&&r<=31&&r===this.lastCmdA&&i===this.lastCmdB?(this.lastCmdA=null,this.lastCmdB=null,c.log("DEBUG","Repeated command ("+f([r,i])+") is dropped")):0!==r||0!==i?(c.log("DATA","["+f([t[o],t[o+1]])+"] -> ("+f([r,i])+")"),(n=this.parseCmd(r,i))||(n=this.parseMidrow(r,i)),n||(n=this.parsePAC(r,i)),n||(n=this.parseBackgroundAttributes(r,i)),n||(a=this.parseChars(r,i))&&(this.currChNr&&this.currChNr>=0?this.channels[this.currChNr-1].insertChars(a):c.log("WARNING","No channel found yet. TEXT-MODE?")),n?this.dataCounters.cmd+=2:a?this.dataCounters.char+=2:(this.dataCounters.other+=2,c.log("WARNING","Couldn't parse cleaned data "+f([r,i])+" orig: "+f([t[o],t[o+1]])))):this.dataCounters.padding+=2},parseCmd:function(e,t){var n;if(!((20===e||21===e||28===e||29===e)&&32<=t&&t<=47||(23===e||31===e)&&33<=t&&t<=35))return!1;n=20===e||21===e||23===e?1:2;var r=this.channels[n-1];return 20===e||21===e||28===e||29===e?32===t?r.cc_RCL():33===t?r.cc_BS():34===t?r.cc_AOF():35===t?r.cc_AON():36===t?r.cc_DER():37===t?r.cc_RU(2):38===t?r.cc_RU(3):39===t?r.cc_RU(4):40===t?r.cc_FON():41===t?r.cc_RDC():42===t?r.cc_TR():43===t?r.cc_RTD():44===t?r.cc_EDM():45===t?r.cc_CR():46===t?r.cc_ENM():47===t&&r.cc_EOC():r.cc_TO(t-32),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=n,!0},parseMidrow:function(e,t){var n=null;if((17===e||25===e)&&32<=t&&t<=47){if((n=17===e?1:2)!==this.currChNr)return c.log("ERROR","Mismatch channel in midrow parsing"),!1;var r=this.channels[n-1];return r.insertChars([32]),r.cc_MIDROW(t),c.log("DEBUG","MIDROW ("+f([e,t])+")"),this.lastCmdA=e,this.lastCmdB=t,!0}return!1},parsePAC:function(e,t){var n,r;if(!((17<=e&&e<=23||25<=e&&e<=31)&&64<=t&&t<=127||(16===e||24===e)&&64<=t&&t<=95))return!1;n=e<=23?1:2,r=64<=t&&t<=95?1===n?a[e]:s[e]:1===n?o[e]:u[e];var i=this.interpretPAC(r,t);return this.channels[n-1].setPAC(i),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=n,!0},interpretPAC:function(e,t){var n,r={color:null,italics:!1,indent:null,underline:!1,row:e};return n=t>95?t-96:t-64,r.underline=1==(1&n),n<=13?r.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(n/2)]:n<=15?(r.italics=!0,r.color="white"):r.indent=4*Math.floor((n-16)/2),r},parseChars:function(e,t){var r=null,i=null,a=null;if(e>=25?(r=2,a=e-8):(r=1,a=e),17<=a&&a<=19){var o;o=17===a?t+80:18===a?t+112:t+144,c.log("INFO","Special char '"+n(o)+"' in channel "+r),i=[o],this.lastCmdA=e,this.lastCmdB=t}else 32<=e&&e<=127&&(i=0===t?[e]:[e,t],this.lastCmdA=null,this.lastCmdB=null);if(i){var s=f(i);c.log("DEBUG","Char codes = "+s.join(","))}return i},parseBackgroundAttributes:function(e,t){var n,r,i;return((16===e||24===e)&&32<=t&&t<=47||(23===e||31===e)&&45<=t&&t<=47)&&(n={},16===e||24===e?(r=Math.floor((t-32)/2),n.background=l[r],t%2==1&&(n.background=n.background+"_semi")):45===t?n.background="transparent":(n.foreground="black",47===t&&(n.underline=!0)),i=e<24?1:2,this.channels[i-1].setBkgData(n),this.lastCmdA=e,this.lastCmdB=t,!0)},reset:function(){for(var e=0;e0&&(r+=" ");for(var s=arguments.length,u=new Array(s>2?s-2:0),l=2;l=e&&p[e](r),h&&h.get().debug.dispatchEvent&&g.trigger(i.Z.LOG,{message:r,level:e})}return t={getLogger:function(e){return{fatal:y.bind(e),error:E.bind(e),warn:v.bind(e),info:_.bind(e),debug:T.bind(e)}},setLogTimestampVisible:function(e){n=e},setCalleeNameVisible:function(e){a=e}},n=!0,a=!0,f=(new Date).getTime(),"undefined"!=typeof window&&window.console&&(p[o]=m(window.console.error),p[s]=m(window.console.error),p[u]=m(window.console.warn),p[l]=m(window.console.info),p[c]=m(window.console.debug)),t}f.__dashjs_factory_name="Debug";var d=a.Z.getSingletonFactory(f);d.LOG_LEVEL_NONE=0,d.LOG_LEVEL_FATAL=o,d.LOG_LEVEL_ERROR=s,d.LOG_LEVEL_WARNING=u,d.LOG_LEVEL_INFO=l,d.LOG_LEVEL_DEBUG=c,a.Z.updateSingletonFactory(f.__dashjs_factory_name,d),t.Z=d},5595:function(e,t,n){"use strict";var r=n(5448),i=n(8825);function a(){var e={};function t(t,n,r){var i=-1;return e[t]?(e[t].some((function(e,t){if(e&&e.callback===n&&(!r||r===e.scope))return i=t,!0})),i):i}var n={on:function(n,r,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(!n)throw new Error("event type cannot be null or undefined");if(!r||"function"!=typeof r)throw new Error("listener must be a function: "+r);var o=a.priority||0;if(!(t(n,r,i)>=0)){e[n]=e[n]||[];var s={callback:r,scope:i,priority:o};i&&i.getStreamId&&(s.streamId=i.getStreamId()),i&&i.getType&&(s.mediaType=i.getType()),a&&a.mode&&(s.mode=a.mode);var u=e[n].some((function(t,r){if(t&&o>t.priority)return e[n].splice(r,0,s),!0}));u||e[n].push(s)}},off:function(n,r,i){if(n&&r&&e[n]){var a=t(n,r,i);a<0||(e[n][a]=null)}},trigger:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t&&e[t]){if((n=n||{}).hasOwnProperty("type"))throw new Error("'type' is a reserved word for event dispatching");n.type=t,r.streamId&&(n.streamId=r.streamId),r.mediaType&&(n.mediaType=r.mediaType),e[t].filter((function(e){return!(!e||r.streamId&&e.streamId&&e.streamId!==r.streamId||r.mediaType&&e.mediaType&&e.mediaType!==r.mediaType||r.mode&&e.mode&&e.mode!==r.mode||!e.mode&&r.mode&&r.mode===i.Z.EVENT_MODE_ON_RECEIVE)})).forEach((function(e){return e&&e.callback.call(e.scope,n)}))}},reset:function(){e={}}};return n}a.__dashjs_factory_name="EventBus";var o=r.Z.getSingletonFactory(a);o.EVENT_PRIORITY_LOW=0,o.EVENT_PRIORITY_HIGH=5e3,r.Z.updateSingletonFactory(a.__dashjs_factory_name,o),t.Z=o},5448:function(e,t){"use strict";var n=function(){var e,t=[],n={},r={};function i(e,n){for(var r in t){var i=t[r];if(i.context===e&&i.name===n)return i.instance}return null}function a(e,t){return t[e]}function o(e,t,n){e in n&&(n[e]=t)}function s(t,n,r){var i,a=t.__dashjs_factory_name,o=n[a];if(o){var s=o.instance;if(!o.override)return s.apply({context:n,factory:e},r);for(var u in i=t.apply({context:n},r),s=s.apply({context:n,factory:e,parent:i},r))i.hasOwnProperty(u)&&(i[u]=s[u])}else i=t.apply({context:n},r);return i.getClassName=function(){return a},i}return e={extend:function(e,t,n,r){!r[e]&&t&&(r[e]={instance:t,override:n})},getSingletonInstance:i,setSingletonInstance:function(e,n,r){for(var i in t){var a=t[i];if(a.context===e&&a.name===n)return void(t[i].instance=r)}t.push({name:n,context:e,instance:r})},deleteSingletonInstances:function(e){t=t.filter((function(t){return t.context!==e}))},getSingletonFactory:function(e){var r=a(e.__dashjs_factory_name,n);return r||(r=function(n){var r;return void 0===n&&(n={}),{getInstance:function(){return r||(r=i(n,e.__dashjs_factory_name)),r||(r=s(e,n,arguments),t.push({name:e.__dashjs_factory_name,context:n,instance:r})),r}}},n[e.__dashjs_factory_name]=r),r},getSingletonFactoryByName:function(e){return a(e,n)},updateSingletonFactory:function(e,t){o(e,t,n)},getClassFactory:function(e){var t=a(e.__dashjs_factory_name,r);return t||(t=function(t){return void 0===t&&(t={}),{create:function(){return s(e,t,arguments)}}},r[e.__dashjs_factory_name]=t),t},getClassFactoryByName:function(e){return a(e,r)},updateClassFactory:function(e,t){o(e,t,r)}},e}();t.Z=n},1264:function(e,t,n){"use strict";var r=n(5448),i=n(703),a=n(6398),o=n(3393),s=n(7855),u=n(5595),l=n(8512);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(){var e,t,n=this.context,r=(0,u.Z)(n).getInstance(),d={"streaming.delay.liveDelay":l.Z.SETTING_UPDATED_LIVE_DELAY,"streaming.delay.liveDelayFragmentCount":l.Z.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT,"streaming.liveCatchup.enabled":l.Z.SETTING_UPDATED_CATCHUP_ENABLED,"streaming.liveCatchup.playbackRate.min":l.Z.SETTING_UPDATED_PLAYBACK_RATE_MIN,"streaming.liveCatchup.playbackRate.max":l.Z.SETTING_UPDATED_PLAYBACK_RATE_MAX},g={debug:{logLevel:a.Z.LOG_LEVEL_WARNING,dispatchEvent:!1},streaming:{abandonLoadTimeout:1e4,wallclockTimeUpdateInterval:100,manifestUpdateRetryInterval:100,cacheInitSegments:!1,applyServiceDescription:!0,applyProducerReferenceTime:!0,applyContentSteering:!0,eventControllerRefreshDelay:100,enableManifestDurationMismatchFix:!0,parseInbandPrft:!1,enableManifestTimescaleMismatchFix:!1,capabilities:{filterUnsupportedEssentialProperties:!0,useMediaCapabilitiesApi:!1},timeShiftBuffer:{calcFromSegmentTimeline:!1,fallbackToSegmentTimeline:!0},metrics:{maxListDepth:100},delay:{liveDelayFragmentCount:NaN,liveDelay:NaN,useSuggestedPresentationDelay:!0},protection:{keepProtectionMediaKeys:!1,ignoreEmeEncryptedEvent:!1,detectPlayreadyMessageFormat:!0},buffer:{enableSeekDecorrelationFix:!1,fastSwitchEnabled:!0,flushBufferAtTrackSwitch:!1,reuseExistingSourceBuffers:!0,bufferPruningInterval:10,bufferToKeep:20,bufferTimeAtTopQuality:30,bufferTimeAtTopQualityLongForm:60,initialBufferLevel:NaN,stableBufferTime:12,longFormContentDurationThreshold:600,stallThreshold:.3,useAppendWindow:!0,setStallState:!0,avoidCurrentTimeRangePruning:!1,useChangeTypeForTrackSwitch:!0,mediaSourceDurationInfinity:!0,resetSourceBuffersForTrackSwitch:!1},gaps:{jumpGaps:!0,jumpLargeGaps:!0,smallGapLimit:1.5,threshold:.3,enableSeekFix:!0,enableStallFix:!1,stallSeek:.1},utcSynchronization:{enabled:!0,useManifestDateHeaderTimeSource:!0,backgroundAttempts:2,timeBetweenSyncAttempts:30,maximumTimeBetweenSyncAttempts:600,minimumTimeBetweenSyncAttempts:2,timeBetweenSyncAttemptsAdjustmentFactor:2,maximumAllowedDrift:100,enableBackgroundSyncAfterSegmentDownloadError:!0,defaultTimingSource:{scheme:"urn:mpeg:dash:utc:http-xsdate:2014",value:"https://time.akamai.com/?iso&ms"}},scheduling:{defaultTimeout:500,lowLatencyTimeout:0,scheduleWhilePaused:!0},text:{defaultEnabled:!0,extendSegmentedCues:!0,webvtt:{customRenderingEnabled:!1}},liveCatchup:{maxDrift:NaN,playbackRate:{min:NaN,max:NaN},playbackBufferMin:.5,enabled:null,mode:o.Z.LIVE_CATCHUP_MODE_DEFAULT},lastBitrateCachingInfo:{enabled:!0,ttl:36e4},lastMediaSettingsCachingInfo:{enabled:!0,ttl:36e4},saveLastMediaSettingsForCurrentStreamingSession:!0,cacheLoadThresholds:{video:50,audio:5},trackSwitchMode:{audio:o.Z.TRACK_SWITCH_MODE_ALWAYS_REPLACE,video:o.Z.TRACK_SWITCH_MODE_NEVER_REPLACE},selectionModeForInitialTrack:o.Z.TRACK_SELECTION_MODE_HIGHEST_SELECTION_PRIORITY,fragmentRequestTimeout:2e4,fragmentRequestProgressTimeout:-1,manifestRequestTimeout:1e4,retryIntervals:(e={},f(e,s.w.MPD_TYPE,500),f(e,s.w.XLINK_EXPANSION_TYPE,500),f(e,s.w.MEDIA_SEGMENT_TYPE,1e3),f(e,s.w.INIT_SEGMENT_TYPE,1e3),f(e,s.w.BITSTREAM_SWITCHING_SEGMENT_TYPE,1e3),f(e,s.w.INDEX_SEGMENT_TYPE,1e3),f(e,s.w.MSS_FRAGMENT_INFO_SEGMENT_TYPE,1e3),f(e,s.w.LICENSE,1e3),f(e,s.w.OTHER_TYPE,1e3),f(e,"lowLatencyReductionFactor",10),e),retryAttempts:(t={},f(t,s.w.MPD_TYPE,3),f(t,s.w.XLINK_EXPANSION_TYPE,1),f(t,s.w.MEDIA_SEGMENT_TYPE,3),f(t,s.w.INIT_SEGMENT_TYPE,3),f(t,s.w.BITSTREAM_SWITCHING_SEGMENT_TYPE,3),f(t,s.w.INDEX_SEGMENT_TYPE,3),f(t,s.w.MSS_FRAGMENT_INFO_SEGMENT_TYPE,3),f(t,s.w.LICENSE,3),f(t,s.w.OTHER_TYPE,3),f(t,"lowLatencyMultiplyFactor",5),t),abr:{movingAverageMethod:o.Z.MOVING_AVERAGE_SLIDING_WINDOW,ABRStrategy:o.Z.ABR_STRATEGY_DYNAMIC,additionalAbrRules:{insufficientBufferRule:!0,switchHistoryRule:!0,droppedFramesRule:!0,abandonRequestsRule:!0},abrRulesParameters:{abandonRequestsRule:{graceTimeThreshold:500,abandonMultiplier:1.8,minLengthToAverage:5}},bandwidthSafetyFactor:.9,useDefaultABRRules:!0,useDeadTimeLatency:!0,limitBitrateByPortal:!1,usePixelRatioInLimitBitrateByPortal:!1,maxBitrate:{audio:-1,video:-1},minBitrate:{audio:-1,video:-1},maxRepresentationRatio:{audio:1,video:1},initialBitrate:{audio:-1,video:-1},initialRepresentationRatio:{audio:-1,video:-1},autoSwitchBitrate:{audio:!0,video:!0},fetchThroughputCalculationMode:o.Z.ABR_FETCH_THROUGHPUT_CALCULATION_MOOF_PARSING},cmcd:{enabled:!1,sid:null,cid:null,rtp:null,rtpSafetyFactor:5,mode:o.Z.CMCD_MODE_QUERY,enabledKeys:["br","d","ot","tb","bl","dl","mtp","nor","nrr","su","bs","rtp","cid","pr","sf","sid","st","v"]},cmsd:{enabled:!1,abr:{applyMb:!1,etpWeightRatio:0}}},errors:{recoverAttempts:{mediaErrorDecode:5}}},h=i.Z.clone(g);function p(e,t,n){for(var a in e)e.hasOwnProperty(a)&&(t.hasOwnProperty(a)?"object"!==c(e[a])||e[a]instanceof Array||null===e[a]?(t[a]=i.Z.clone(e[a]),d[n+a]&&r.trigger(d[n+a])):p(e[a],t[a],n.slice()+a+"."):console.error("Settings parameter "+n+a+" is not supported"))}return{get:function(){return h},update:function(e){"object"===c(e)&&p(e,h,"")},reset:function(){h=i.Z.clone(g)}}}d.__dashjs_factory_name="Settings";var g=r.Z.getSingletonFactory(d);t.Z=g},703:function(e,t,n){"use strict";var r=n(3875),i=n.n(r),a=n(1067);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function s(e,t){for(var n=0;n0&&(t[a.substring(0,o)]=a.substring(o+2))}return t}},{key:"generateUuid",value:function(){var e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?n:3&n|8).toString(16)}))}},{key:"generateHashCode",value:function(e){var t=0;if(0===e.length)return t;for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:null;try{var t=null===e&&"undefined"!=typeof navigator?navigator.userAgent.toLowerCase():"";return(0,a.UAParser)(t)}catch(e){return{}}}},{key:"stringHasProtocol",value:function(e){return/(http(s?)):\/\//i.test(e)}}],null&&s(t.prototype,null),n&&s(t,n),e}();t.Z=u},2032:function(e,t,n){"use strict";function r(){return"4.7.3"}n.d(t,{e:function(){return r}})},2230:function(e,t){"use strict";function n(e,t){for(var n=0;ns.startTime&&l-e>r?e:!isNaN(s.startTime)&&es.startTime?s.startTime+.001:Math.min(l-r,o)}return o}catch(e){return NaN}},initialize:function(e){l=e,c=!1,m.initialize(e)},isLastSegmentRequested:function(e,t){if(!e||!a)return!1;if(c)return!0;if(!isFinite(e.adaptation.period.duration))return!1;if(a.presentationStartTime+a.duration>t)return!1;if(e.mediaFinishedInformation&&!isNaN(e.mediaFinishedInformation.numberOfSegments)&&!isNaN(a.index)&&a.index>=e.mediaFinishedInformation.numberOfSegments-1){if(!l||e.segmentInfoType===u.Z.SEGMENT_TEMPLATE)return!0;if(l&&e.segmentInfoType===u.Z.SEGMENT_LIST&&e.adaptation.period.nextPeriodId)return!0}return!!(l&&e.adaptation.period.nextPeriodId&&e.segmentInfoType===u.Z.SEGMENT_TIMELINE&&e.mediaFinishedInformation&&!isNaN(e.mediaFinishedInformation.mediaTimeOfLastSignaledSegment)&&a&&!isNaN(a.mediaStartTime)&&!isNaN(a.duration)&&a.mediaStartTime+a.duration>=e.mediaFinishedInformation.mediaTimeOfLastSignaledSegment-.05)},repeatSegmentRequest:function(e,t){return t&&t.segmentInfoType?A(e,t,a?a.index:0):null},reset:function(){_(),f.off(o.Z.DYNAMIC_TO_STATIC,I,t)}},n=d.getLogger(t),_(),f.on(o.Z.DYNAMIC_TO_STATIC,I,t),t}l.__dashjs_factory_name="DashHandler",t.Z=a.Z.getClassFactory(l)},1553:function(e,t){"use strict";function n(e,t){for(var n=0;n0)for(o=0;o=i&&t-nr&&o=a)}return!0}function c(e,t,n,r){var i,a,o;i=n.segmentDuration,isNaN(i)&&(i=n.adaptation.period.duration),a=parseFloat((n.adaptation.period.start+r*i).toFixed(5)),o=parseFloat((a+i).toFixed(5));var s=u(n,i,a,e.calcMediaTimeFromPresentationTime(a,n),e,o,t,r);return l(e,n,s,t)?s:null}function f(e,t,n,r,i,a,o,c,f,d){var g,h,p=r/a,m=i/a;return g=e.calcPresentationTimeFromMediaTime(p,n),l(e,n,h=u(n,m,g,p,e,g+m,t,f),t)?(h.replacementTime=d||r,o=s(o,"Number",h.replacementNumber),o=s(o,"Time",h.replacementTime),h.media=o,h.mediaRange=c,h):null}},3636:function(e,t,n){"use strict";var r=n(5448),i=n(3393),a=n(7387);function o(e,t){var n=(e=e||{}).timelineConverter;function r(){if(!n||!n.hasOwnProperty("calcPeriodRelativeTimeFromMpdRelativeTime"))throw new Error(i.Z.MISSING_CONFIG_ERROR)}function o(e,i){if(r(),!e)return null;var o=e.adaptation.period.mpd.manifest.Period_asArray[e.adaptation.period.index].AdaptationSet_asArray[e.adaptation.index].Representation_asArray[e.index].SegmentTemplate;i=Math.max(i,0);var s=(0,a.NF)(n,t,e,i);if(s){s.replacementTime=Math.round((i-1)*e.segmentDuration*e.timescale,10);var u=o.media;u=(0,a.vi)(u,"Number",s.replacementNumber),u=(0,a.vi)(u,"Time",s.replacementTime),s.media=u}return s}return{getSegmentByIndex:o,getSegmentByTime:function(e,t){if(r(),!e)return null;var i=e.segmentDuration;if(isNaN(i))return null;var a=n.calcPeriodRelativeTimeFromMpdRelativeTime(e,t);return o(e,Math.floor(a/i))},getMediaFinishedInformation:function(e){var t={numberOfSegments:0,mediaTimeOfLastSignaledSegment:NaN};if(!e)return t;var n=e.segmentDuration;return isNaN(n)?t.numberOfSegments=1:t.numberOfSegments=Math.ceil(e.adaptation.period.duration/n),t}}}o.__dashjs_factory_name="TemplateSegmentsGetter";var s=r.Z.getClassFactory(o);t.Z=s},1724:function(e,t,n){"use strict";var r=n(5448),i=n(3393),a=n(7387);function o(e,t){var n=(e=e||{}).timelineConverter,r=e.dashMetrics;function o(){if(!n)throw new Error(i.Z.MISSING_CONFIG_ERROR)}function s(e,t){var n,r,i,a,o,s,l,c=e.adaptation.period.mpd.manifest.Period_asArray[e.adaptation.period.index].AdaptationSet_asArray[e.adaptation.index].Representation_asArray[e.index].SegmentTemplate||e.adaptation.period.mpd.manifest.Period_asArray[e.adaptation.period.index].AdaptationSet_asArray[e.adaptation.index].Representation_asArray[e.index].SegmentList,f=c.SegmentTimeline,d=c.SegmentURL_asArray,g=0,h=-1;l=e.timescale;var p=!1;for(i=0,a=(n=f.S_asArray).length;i=i*f-.5*c.d&&(l=!0),!1})),u},getSegmentByTime:function(e,r){if(o(),!e)return null;void 0===r&&(r=null);var i=null,u=n.calcMediaTimeFromPresentationTime(r,e);return s(e,(function(r,o,s,l,c,f,d){var g=parseFloat((u*c).toPrecision(15));if(g=r){var h=o.media,p=l.mediaRange;return s&&(h=s[d].media||"",p=s[d].mediaRange),i=(0,a.TJ)(n,t,e,r,l.d,c,h,p,f,l.tManifest),!0}return!1})),i},getMediaFinishedInformation:function(e){if(!e)return 0;var t,n,r,i,a,o,s,l=(e.adaptation.period.mpd.manifest.Period_asArray[e.adaptation.period.index].AdaptationSet_asArray[e.adaptation.index].Representation_asArray[e.index].SegmentTemplate||e.adaptation.period.mpd.manifest.Period_asArray[e.adaptation.period.index].AdaptationSet_asArray[e.adaptation.index].Representation_asArray[e.index].SegmentList).SegmentTimeline,c=0,f=0,d=0;for(s=e.timescale,i=(t=l.S_asArray).length,r=0;r0&&void 0!==arguments[0]?arguments[0]:null;return parseFloat((L(e)-B()).toFixed(5))}function L(e){var t=e||y;return t.start+t.duration}function x(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];y&&c&&c.getElement()?(e&&E&&Z(B()),c.play()):v=!0}function F(){y&&c&&c.pause()}function k(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(y&&c&&c.getElement()){var a=isNaN(A)?c.getTime():A;e!==a&&((I=!0===r)||(A=e),t.info("Requesting seek to time: "+e+(I?" (internal)":"")),E&&i&&Z(e),c.setCurrentTime(e,n))}}function U(){if(y&&c&&E){var e=n&&n.hasVideoTrack()?a.Z.VIDEO:a.Z.AUDIO,t=i.getCurrentDVRInfo(e);return t&&t.range?t.range.end:0}}function Z(e){var t=new Date(g.getClientReferenceTime()),n=o.getRegularPeriods()[0],r=g.calcPresentationTimeFromWallTime(t,n);p=r-e}function B(){return y&&c?c.getTime():null}function G(){return y&&c?c.isPaused():null}function q(){return y&&c?c.isSeeking():null}function Y(){return y&&c?c.isStalled():null}function j(){return y&&c?c.getPlaybackRate():null}function H(){return y&&c?c.getEnded():null}function V(){return E}function K(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!G()&&E&&0!==c.getReadyState()&&!q()&&!w){e||(e=n.hasVideoTrack()?a.Z.VIDEO:a.Z.AUDIO);var r=B(),i=z(r,e),o=!isNaN(i)&&i!==r;o&&!q()&&(Y()||R||1===c.getReadyState())&&(t.debug("UpdateCurrentTime: Seek to actual time: ".concat(i," from currentTime: ").concat(r)),k(i,!1,!1))}}function z(e,t){var n=i.getCurrentDVRInfo(t),r=n?n.range:null;return r?e>r.end?Math.max(r.end-p,r.start):e>0&&e+.25_+500)&&(_=e,se())):K())}),C.get().streaming.wallclockTimeUpdateInterval))}function X(){clearInterval(h),h=null}function Q(e){var t=o.convertRepresentationToRepresentationInfo(e.currentRepresentation),n=t?t.mediaInfo.streamInfo:null;null!==n&&y.id===n.id&&(y=n)}function J(){O.trigger(l.Z.CAN_PLAY)}function $(){O.trigger(l.Z.CAN_PLAY_THROUGH)}function ee(e){e.streamId===n.getActiveStreamInfo().id&&(R=e.state===s.Z.BUFFER_EMPTY,C.get().streaming.buffer.setStallState&&c.setStallState(e.mediaType,e.state===s.Z.BUFFER_EMPTY))}function te(){t.info("Native video element event: play"),K(),W(),O.trigger(l.Z.PLAYBACK_STARTED,{startTime:B()})}function ne(){t.info("Native video element event: waiting"),O.trigger(l.Z.PLAYBACK_WAITING,{playingTime:B()})}function re(){t.info("Native video element event: playing"),I=!1,O.trigger(l.Z.PLAYBACK_PLAYING,{playingTime:B()})}function ie(){t.info("Native video element event: pause"),O.trigger(l.Z.PLAYBACK_PAUSED,{ended:H()})}function ae(){if(!I){var e=B();isNaN(A)||A===e||(e=A),A=NaN,t.info("Seeking to: "+e),W(),O.trigger(l.Z.PLAYBACK_SEEKING,{seekTime:e,streamId:y.id})}}function oe(){t.info("Native video element event: seeked"),I=!1,O.trigger(l.Z.PLAYBACK_SEEKED)}function se(){y&&O.trigger(l.Z.PLAYBACK_TIME_UPDATED,{timeToEnd:P(),time:B(),streamId:y.id})}function ue(){O.trigger(l.Z.PLAYBACK_PROGRESS,{streamId:y.id})}function le(){var e=j();t.info("Native video element event: ratechange: ",e),O.trigger(l.Z.PLAYBACK_RATE_CHANGED,{playbackRate:e})}function ce(){t.info("Native video element event: loadedmetadata"),O.trigger(l.Z.PLAYBACK_METADATA_LOADED),W()}function fe(){t.info("Native video element event: loadeddata"),O.trigger(l.Z.PLAYBACK_LOADED_DATA)}function de(){t.info("Native video element event: ended"),F(),X();var e=n?n.getActiveStreamInfo():null;e&&O.trigger(l.Z.PLAYBACK_ENDED,{isLast:e.isLast})}function ge(){O.trigger(l.Z.PLAYBACK_VOLUME_CHANGED)}function he(e){if(h&&e.isLast){t.info("onPlaybackEnded -- PLAYBACK_ENDED but native video element didn't fire ended");var n=e.seekTime?e.seekTime:L();c.setCurrentTime(n),F(),X()}}function pe(e){var t=e.target||e.srcElement;O.trigger(l.Z.PLAYBACK_ERROR,{error:t.error})}function me(){E=!1}function ye(e){if(!1===e.stream&&b&&!isNaN(e.request.duration)){var n=1.2*e.request.duration;n>p&&(t.warn("Browser does not support fetch API with StreamReader. Increasing live delay to be 20% higher than segment duration:",n.toFixed(2)),p=n,m=n)}}function Ee(e){O.trigger(l.Z.PLAYBACK_STALLED,{e:e})}function ve(e){var n;(n=e.mediaInfo)&&n.supplementalProperties&&"true"===n.supplementalProperties[a.Z.SUPPLEMENTAL_PROPERTY_DVB_LL_SCHEME]&&(t.debug("Low Latency critical SupplementalProperty set: Enabling low Latency"),b=!0)}function _e(e){var t=n.getActiveStreamInfo();e&&t&&e.currentRepresentation&&e.streamId&&e.streamId===t.id&&e.mediaType&&(e.mediaType===a.Z.VIDEO||e.mediaType===a.Z.AUDIO)&&(S=e.currentRepresentation.availabilityTimeComplete,(b=!S)&&!N&&(N=!0))}function Te(){w=!0}function Se(){w=!1}return e={initialize:function(t,n){y=t,!0!==n&&(c.addEventListener("canplay",J),c.addEventListener("canplaythrough",$),c.addEventListener("play",te),c.addEventListener("waiting",ne),c.addEventListener("playing",re),c.addEventListener("pause",ie),c.addEventListener("error",pe),c.addEventListener("seeking",ae),c.addEventListener("seeked",oe),c.addEventListener("timeupdate",se),c.addEventListener("progress",ue),c.addEventListener("ratechange",le),c.addEventListener("loadedmetadata",ce),c.addEventListener("loadeddata",fe),c.addEventListener("stalled",Ee),c.addEventListener("ended",de),c.addEventListener("volumechange",ge),E=y.manifestInfo.isDynamic,R=!1,I=!1,O.on(l.Z.DATA_UPDATE_COMPLETED,Q,e),O.on(l.Z.LOADING_PROGRESS,ye,e),O.on(l.Z.MANIFEST_UPDATED,Te,e),O.on(l.Z.STREAMS_COMPOSED,Se,e),O.on(d.Z.PLAYBACK_ENDED,he,e,{priority:u.Z.EVENT_PRIORITY_HIGH}),O.on(d.Z.STREAM_INITIALIZING,ve,e),O.on(d.Z.REPRESENTATION_SWITCH,_e,e),O.on(d.Z.BUFFER_LEVEL_STATE_CHANGED,ee,e),O.on(d.Z.DYNAMIC_TO_STATIC,me,e),v&&(v=!1,x()))},setConfig:function(e){e&&(e.streamController&&(n=e.streamController),e.serviceDescriptionController&&(r=e.serviceDescriptionController),e.dashMetrics&&(i=e.dashMetrics),e.adapter&&(o=e.adapter),e.videoModel&&(c=e.videoModel),e.timelineConverter&&(g=e.timelineConverter),e.settings&&(C=e.settings))},getTimeToStreamEnd:P,getBufferLevel:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=null;return n.getActiveStreamProcessors().forEach((function(n){if(!e||0===e.length||-1===e.indexOf(n.getType())){var r=n.getBufferLevel();t=null===t?r:Math.min(t,r)}})),t},getPlaybackStalled:function(){return R},getTime:B,getLowLatencyModeEnabled:function(){return b},getInitialCatchupModeActivated:function(){return N},getIsManifestUpdateInProgress:function(){return w},getPlaybackRate:j,getPlayedRanges:function(){return y&&c?c.getPlayedRanges():null},getEnded:H,getIsDynamic:V,getStreamController:function(){return n},computeAndSetLiveDelay:function(e,t){var n,i,a,s=!isNaN(e)&&isFinite(e)?e:NaN,u=o.getSuggestedPresentationDelay(),l=r.getServiceDescriptionSettings();return n=isNaN(C.get().streaming.delay.liveDelay)?null===C.get().streaming.delay.liveDelayFragmentCount||isNaN(C.get().streaming.delay.liveDelayFragmentCount)||isNaN(s)?l&&!isNaN(l.liveDelay)&&l.liveDelay>0?l.liveDelay:!0===C.get().streaming.delay.useSuggestedPresentationDelay&&null!==u&&!isNaN(u)&&u>0?u:isNaN(s)?t&&!isNaN(t.minBufferTime)?4*t.minBufferTime:4*y.manifestInfo.minBufferTime:4*s:s*C.get().streaming.delay.liveDelayFragmentCount:C.get().streaming.delay.liveDelay,null!==(a=o.getAvailabilityStartTime())&&(T=a),i=t&&t.dvrWindowSize>0?Math.min(n,t.dvrWindowSize):n,p=i,m=i,i},getLiveDelay:function(){return p},getOriginalLiveDelay:function(){return m},getCurrentLiveLatency:function(){if(!E||isNaN(T))return NaN;var e=B();if(isNaN(e)||0===e)return 0;var t=(new Date).getTime()+1e3*g.getClientTimeOffset();return Math.max(((t-T-1e3*e)/1e3).toFixed(3),0)},play:x,isPaused:G,isStalled:Y,pause:F,isSeeking:q,getStreamEndTime:L,seek:k,seekToOriginalLive:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=U();if(0!==r){var i=r-(p=m);k(i,e,t,n)}},seekToCurrentLive:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=U();if(0!==r){var i=r-p;k(i,e,t,n)}},reset:M,updateCurrentTime:K,getAvailabilityStartTime:function(){return T}},t=(0,f.Z)(D).getInstance().getLogger(e),M(),e}g.__dashjs_factory_name="PlaybackController";var h=c.Z.getSingletonFactory(g),p=n(3186),m="loading",y="executed",E="failed";function v(e){var t,n,r,i,a=(e=e||{}).eventBus,o=e.events,s=e.dashMetrics,u=e.fragmentLoader,l=e.debug,c=e.streamInfo,f=e.type;function d(e){var t;return!!e&&(t=!1,r.some((function(n){if(r=e,i=n,!isNaN(r.index)&&r.startTime===i.startTime&&r.adaptationIndex===i.adaptationIndex&&r.type===i.type||function(e,t){return isNaN(e.index)&&isNaN(t.index)&&e.quality===t.quality}(e,n)||function(e,t){return e.action===p.Z.ACTION_COMPLETE&&e.action===t.action}(e,n))return t=!0;var r,i})),t)}function g(e){return isNaN(e.duration)?.25:Math.min(e.duration/8,.5)}function h(e){r=r.filter((function(t){var n=g(t);return isNaN(t.startTime)||void 0!==e&&t.startTime>=e-n}))}function v(e,t){t<=e+.5||(r=r.filter((function(n){var r=g(n);return isNaN(n.startTime)||n.startTime>=t-r||isNaN(n.duration)||n.startTime+n.duration<=e+r})))}function _(e,t,n){for(var r=e.length-1;r>=0;r--){var i=e[r],a=i.startTime,o=a+i.duration;if(n=isNaN(n)?g(i):n,!isNaN(a)&&!isNaN(o)&&t+n>=a&&t-n0&&v(n,t)}else h()},abortRequests:function(){n.debug("abort requests"),u.abort(),i=[]},executeRequest:function(e){e.action===p.Z.ACTION_DOWNLOAD?(T(e,m),i.push(e),function(e){a.trigger(o.FRAGMENT_LOADING_STARTED,{request:e},{streamId:c.id,mediaType:f}),u.load(e)}(e)):n.warn("Unknown request action.")},reset:function(){a.off(o.LOADING_COMPLETED,S,this),a.off(o.LOADING_DATA_PROGRESS,b,this),a.off(o.LOADING_ABANDONED,A,this),u&&u.reset(),I()},resetInitialSettings:I,addExecutedRequest:function(e){r.push(e)}},n=l.getLogger(t),I(),a.on(o.LOADING_COMPLETED,S,t),a.on(o.LOADING_DATA_PROGRESS,b,t),a.on(o.LOADING_ABANDONED,A,t),t}v.__dashjs_factory_name="FragmentModel";var _=c.Z.getClassFactory(v);_.FRAGMENT_MODEL_LOADING=m,_.FRAGMENT_MODEL_EXECUTED=y,_.FRAGMENT_MODEL_CANCELED="canceled",_.FRAGMENT_MODEL_FAILED=E,c.Z.updateClassFactory(v.__dashjs_factory_name,_);var T=_,S=n(5459);function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function A(e,t){return A=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},A(e,t)}function I(e,t){return!t||"object"!==b(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function R(e){return R=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},R(e)}var w=new(function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&A(e,t)}(i,e);var t,n,r=(t=i,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=R(t);if(n){var i=R(this).constructor;e=Reflect.construct(r,arguments,i)}else e=r.apply(this,arguments);return I(this,e)});function i(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(e=r.call(this)).MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE=10,e.MANIFEST_LOADER_LOADING_FAILURE_ERROR_CODE=11,e.XLINK_LOADER_LOADING_FAILURE_ERROR_CODE=12,e.SEGMENT_BASE_LOADER_ERROR_CODE=15,e.TIME_SYNC_FAILED_ERROR_CODE=16,e.FRAGMENT_LOADER_LOADING_FAILURE_ERROR_CODE=17,e.FRAGMENT_LOADER_NULL_REQUEST_ERROR_CODE=18,e.URL_RESOLUTION_FAILED_GENERIC_ERROR_CODE=19,e.APPEND_ERROR_CODE=20,e.REMOVE_ERROR_CODE=21,e.DATA_UPDATE_FAILED_ERROR_CODE=22,e.CAPABILITY_MEDIASOURCE_ERROR_CODE=23,e.CAPABILITY_MEDIAKEYS_ERROR_CODE=24,e.DOWNLOAD_ERROR_ID_MANIFEST_CODE=25,e.DOWNLOAD_ERROR_ID_SIDX_CODE=26,e.DOWNLOAD_ERROR_ID_CONTENT_CODE=27,e.DOWNLOAD_ERROR_ID_INITIALIZATION_CODE=28,e.DOWNLOAD_ERROR_ID_XLINK_CODE=29,e.MANIFEST_ERROR_ID_PARSE_CODE=31,e.MANIFEST_ERROR_ID_NOSTREAMS_CODE=32,e.TIMED_TEXT_ERROR_ID_PARSE_CODE=33,e.MANIFEST_ERROR_ID_MULTIPLEXED_CODE=34,e.MEDIASOURCE_TYPE_UNSUPPORTED_CODE=35,e.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE="parsing failed for ",e.MANIFEST_LOADER_LOADING_FAILURE_ERROR_MESSAGE="Failed loading manifest: ",e.XLINK_LOADER_LOADING_FAILURE_ERROR_MESSAGE="Failed loading Xlink element: ",e.SEGMENTS_UPDATE_FAILED_ERROR_MESSAGE="Segments update failed",e.SEGMENTS_UNAVAILABLE_ERROR_MESSAGE="no segments are available yet",e.SEGMENT_BASE_LOADER_ERROR_MESSAGE="error loading segment ranges from sidx",e.TIME_SYNC_FAILED_ERROR_MESSAGE="Failed to synchronize client and server time",e.FRAGMENT_LOADER_NULL_REQUEST_ERROR_MESSAGE="request is null",e.URL_RESOLUTION_FAILED_GENERIC_ERROR_MESSAGE="Failed to resolve a valid URL",e.APPEND_ERROR_MESSAGE="chunk is not defined",e.REMOVE_ERROR_MESSAGE="Removing data from the SourceBuffer",e.DATA_UPDATE_FAILED_ERROR_MESSAGE="Data update failed",e.CAPABILITY_MEDIASOURCE_ERROR_MESSAGE="mediasource is not supported",e.CAPABILITY_MEDIAKEYS_ERROR_MESSAGE="mediakeys is not supported",e.TIMED_TEXT_ERROR_MESSAGE_PARSE="parsing error :",e.MEDIASOURCE_TYPE_UNSUPPORTED_MESSAGE="Error creating source buffer of type : ",e}return i}(n(2230).Z)),N=n(1264),C=n(7855);function D(e){var t,n,r,i,o,s,u=this.context,c=(0,N.Z)(u).getInstance(),d=e.textController,g=e.eventBus,h=[],p=[],m=!1,y=e.mediaSource,E=null;function v(e){return new Promise((function(t){M((function(){i.changeType&&i.changeType(e),t()}))}))}function _(e){return i=d.getTextSourceBuffer(e),Promise.resolve()}function T(){if("function"==typeof i.addEventListener)try{i.addEventListener("updateend",D,!1),i.addEventListener("error",O,!1),i.addEventListener("abort",O,!1)}catch(e){s=setInterval(D,50)}else s=setInterval(D,50)}function b(e){return new Promise((function(t){i&&c.get().streaming.buffer.useAppendWindow?M((function(){try{if(!i)return void t();var n=y.duration,a=0;e&&!isNaN(e.start)&&!isNaN(e.duration)&&isFinite(e.duration)&&(n=e.start+e.duration),e&&!isNaN(e.start)&&(a=e.start),i.appendWindowEnd===n&&i.appendWindowStart===a||(i.appendWindowStart=0,i.appendWindowEnd=n+.01,i.appendWindowStart=Math.max(a-.1,0),r.debug("Updated append window for ".concat(o.type,". Set start to ").concat(i.appendWindowStart," and end to ").concat(i.appendWindowEnd))),t()}catch(e){r.warn("Failed to set append window"),t()}})):t()}))}function A(e){return new Promise((function(t){i?M((function(){try{i.timestampOffset===e||isNaN(e)||(i.timestampOffset=e,r.debug("Set MSE timestamp offset to ".concat(e))),t()}catch(e){t()}})):t()}))}function I(){if(!m&&p.length>0){m=!0;var e=p[0];p.splice(0,1);var t=function(){m=!1,p.length>0&&I.call(this),e&&e.data&&e.data.segmentType&&e.data.segmentType!==C.w.INIT_SEGMENT_TYPE&&delete e.data.bytes,e.promise.resolve({chunk:e.data})};try{E=e.request,0===e.data.bytes.byteLength?t.call(this):(i.appendBuffer?i.appendBuffer(e.data.bytes):i.append(e.data.bytes,e.data),M(t.bind(this)))}catch(t){r.fatal('SourceBuffer append failed "'+t+'"'),p.length>0?I():m=!1,delete e.data.bytes,e.promise.reject({chunk:e.data,error:new S.Z(t.code,t.message)})}}}function R(){h.length>0&&(i.updating||(h.shift()(),R()))}function D(){i.updating||R()}function O(e){var t,r,i=e.target||{};t=l.Z.SOURCE_BUFFER_ERROR,r={error:i,lastRequestAppended:E}||{},g.trigger(t,r,{streamId:o.streamInfo.id,mediaType:n})}function M(e){h.push(e),i.updating||R()}return t={getType:function(){return n},getAllBufferRanges:function(){try{return i.buffered}catch(e){return r.error("getAllBufferRanges exception: "+e.message),null}},getBuffer:function(){return i},append:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new Promise((function(r,i){e?(p.push({data:e,promise:{resolve:r,reject:i},request:n}),M(I.bind(t))):i({chunk:e,error:new S.Z(w.APPEND_ERROR_CODE,w.APPEND_ERROR_MESSAGE)})}))},remove:function(e){return new Promise((function(t,n){var r=e.start,a=e.end;r>=0&&a>r?M((function(){try{i.remove(r,a),M((function(){t({from:r,to:a,unintended:!1}),e.resolve&&e.resolve()}))}catch(t){n({from:r,to:a,unintended:!1,error:new S.Z(w.REMOVE_ERROR_CODE,w.REMOVE_ERROR_MESSAGE)}),e.reject&&e.reject(t)}})):t()}))},abort:function(){return new Promise((function(e){try{p=[],"open"===y.readyState?M((function(){try{i&&i.abort(),e()}catch(t){e()}})):i&&i.setTextTrack&&"ended"===y.readyState?(i.abort(),e()):e()}catch(t){e()}}))},reset:function(){if(i){try{h=[],function(){try{"function"==typeof i.removeEventListener&&(i.removeEventListener("updateend",D,!1),i.removeEventListener("error",O,!1),i.removeEventListener("abort",O,!1)),clearInterval(s)}catch(e){r.error(e)}}(),m=!1,p=[],i.getClassName&&"TextSourceBuffer"===i.getClassName()||(r.debug("Removing sourcebuffer from media source"),y.removeSourceBuffer(i))}catch(e){}i=null}E=null},updateTimestampOffset:A,initializeForStreamSwitch:function(e,t,r){n=(o=e).type;var a=o.codec;!function(e){i=e.getBuffer()}(r),T();var s=[];return s.push(new Promise((function(e){M((function(){var t=i.appendWindowStart,n=i.appendWindowEnd;i&&(i.abort(),i.appendWindowStart=t,i.appendWindowEnd=n),e()}))}))),s.push(b(o.streamInfo)),c.get().streaming.buffer.useChangeTypeForTrackSwitch&&s.push(v(a)),t&&void 0!==t.MSETimeOffset&&s.push(A(t.MSETimeOffset)),Promise.all(s)},initializeForFirstUse:function(e,t,r){n=(o=t).type;var s=o.codec;try{if(s.match(/application\/mp4;\s*codecs="(stpp|wvtt).*"/i))return _(e);i=y.addSourceBuffer(s),T();var u=[];return u.push(b(o.streamInfo)),r&&void 0!==r.MSETimeOffset&&u.push(A(r.MSETimeOffset)),Promise.all(u)}catch(t){return o.type==a.Z.TEXT&&!o.isFragmented||-1!==s.indexOf('codecs="stpp')||-1!==s.indexOf('codecs="vtt')||-1!==s.indexOf("text/vtt")?_(e):Promise.reject(t)}},updateAppendWindow:b,changeType:v},r=(0,f.Z)(u).getInstance().getLogger(t),t}D.__dashjs_factory_name="SourceBufferSink";var O=c.Z.getClassFactory(D);function M(e){var t,n,r,i=this.context,a=[],o=e;function s(e,t){return a=a.filter((function(n){return!((isNaN(t)||n.starte))})),Promise.resolve()}return t={getAllBufferRanges:function(){for(var e=[],t=0;te[e.length-1].end?e.push({start:n.start,end:n.end}):e[e.length-1].end=n.end}var r={start:function(t){return e[t].start},end:function(t){return e[t].end}};return Object.defineProperty(r,"length",{get:function(){return e.length}}),r},append:function(e){return"InitializationSegment"!==e.segmentType?(a.push(e),a.sort((function(e,t){return e.start-t.start})),r=null):r=e,n.debug("PreBufferSink appended chunk s: "+e.start+"; e: "+e.end),o&&o({chunk:e}),Promise.resolve()},remove:s,abort:function(){return Promise.resolve()},discharge:function(e,t){var n=function(e,t){return a.filter((function(n){return(isNaN(t)||n.starte)}))}(e,t);return r&&(n.push(r),r=null),s(e,t),n},reset:function(){a=[],r=null,o=null},updateTimestampOffset:function(){return Promise.resolve()},waitForUpdateEnd:function(e){e()},getBuffer:function(){return this}},n=(0,f.Z)(i).getInstance().getLogger(t),t}M.__dashjs_factory_name="PreBufferSink";var P=c.Z.getClassFactory(M);function L(){var e={};return{save:function(t){var n=t.streamId,r=t.representationId;e[n]=e[n]||{},e[n][r]=t},extract:function(t,n){return e&&e[t]&&e[t][n]?e[t][n]:null},reset:function(){e={}}}}L.__dashjs_factory_name="InitCache";var x=c.Z.getSingletonFactory(L),F=.01,k="BufferController";function U(e){e=e||{};var t,n,r,i,o,c,g,h,p,m,y,E,v,_,b,A,I,R,N,D,M,L=this.context,U=(0,u.Z)(L).getInstance(),Z=e.errHandler,B=e.fragmentModel,G=e.representationController,q=e.adapter,Y=e.textController,j=e.abrController,H=e.playbackController,V=e.streamInfo,K=e.type,z=e.settings;function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new Promise((function(n,r){c=e,p&&t&&"function"==typeof p.discharge?(m=p,Q(t).then((function(){n()})).catch((function(e){r(e)}))):n()}))}function X(e){return q.convertRepresentationToRepresentationInfo(G.getRepresentationForQuality(e))}function Q(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return new Promise((function(n,r){R&&e?c?(y=!1,$(e,t).then((function(e){n(e)})).catch((function(e){r(e)}))):(y=!0,J().then((function(e){n(e)})).catch((function(e){r(e)}))):n(null)}))}function J(){var e=this;return new Promise((function(t,n){var r=j.getQualityFor(K,V.id);p=P(L).create(ie.bind(e)),_e(X(r)).then((function(){t(p)})).catch((function(){n()}))}))}function $(e,t){return new Promise((function(r,i){var o=j.getQualityFor(K,V.id);p=O(L).create({mediaSource:c,textController:Y,eventBus:U}),function(e,t,n){var r=X(n);return t&&t[K]&&(K===a.Z.VIDEO||K===a.Z.AUDIO)?p.initializeForStreamSwitch(e,r,t[K]):p.initializeForFirstUse(V,e,r)}(e,t,o).then((function(){return _e(X(o))})).then((function(){r(p)})).catch((function(e){n.fatal("Caught error on create SourceBuffer: "+e),Z.error(new S.Z(w.MEDIASOURCE_TYPE_UNSUPPORTED_CODE,w.MEDIASOURCE_TYPE_UNSUPPORTED_MESSAGE+K)),i(e)}))}))}function ee(e){z.get().streaming.cacheInitSegments&&(n.info("Init fragment finished loading saving to",K+"'s init cache"),R.save(e.chunk)),n.debug("Append Init fragment",K," with representationId:",e.chunk.representationId," and quality:",e.chunk.quality,", data size:",e.chunk.bytes.byteLength),ne(e.chunk)}function te(e){ne(e.chunk,e.request)}function ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;p&&(p.append(e,t).then((function(e){ie(e)})).catch((function(e){ie(e)})),e.mediaInfo.type===a.Z.VIDEO&&Ne(l.Z.VIDEO_CHUNK_RECEIVED,{chunk:e}))}function re(e){if(e&&e.length>0)for(var t=0,r=e.length;t0){var e=Math.max(.2*o,1),t=o-e,r=Math.min(z.get().streaming.buffer.bufferTimeAtTopQuality,.9*t),i=Math.min(z.get().streaming.buffer.bufferTimeAtTopQualityLongForm,.9*t),a={streaming:{buffer:{bufferToKeep:parseFloat(e.toFixed(5)),bufferTimeAtTopQuality:parseFloat(r.toFixed(5)),bufferTimeAtTopQualityLongForm:parseFloat(i.toFixed(5))}}};z.update(a)}}(),void(22!==e.error.code&&we()||(n.warn("Clearing playback buffer to overcome quota exceed situation"),Ne(l.Z.QUOTA_EXCEEDED,{criticalBufferLevel:o,quotaExceededTime:e.chunk.start}),ye(me())));if(p&&(fe(),I=!1,(_=e.chunk)&&_.endFragment)){_&&!isNaN(_.index)&&(g=Math.max(_.index,g),de());var t=p.getAllBufferRanges();_.segmentType===C.w.MEDIA_SEGMENT_TYPE&&(re(t),se(),function(){if(!isNaN(M)&&!y)if(K===a.Z.AUDIO||K===a.Z.VIDEO){var e=H.getTime(),t=ce(e,0),n=ce(M,0);if(t&&n&&t.start===n.start)M=NaN;else{var r=G.getCurrentRepresentation().segmentDuration,i=ce(M,r);i&&(z.get().streaming.buffer.enableSeekDecorrelationFix&&Math.abs(e-M)>r?M<=i.end&&H.seek(Math.max(M,i.start),!1,!0):e0&&(r=!0),E=null),_&&!r&&Ne(l.Z.BYTES_APPENDED_END_FRAGMENT,{quality:_.quality,startTime:_.start,index:_.index,bufferedRanges:t,segmentType:_.segmentType,mediaType:K})}}function ae(){return new Promise((function(e,t){var n=oe();if(!n||0===n.length)return se(),void e();ye(n).then((function(){e()})).catch((function(e){t(e)}))}))}function oe(e){var t=[],r=p.getAllBufferRanges();if(!r||0===r.length)return t;if(!e&&0!==e||isNaN(e))t.push({start:r.start(0),end:r.end(r.length-1)+.5});else{var i=function(e,t){var n=z.get().streaming.buffer.bufferToKeep,r=t.start(0);if(e-r>n){var i=Math.max(0,e-n),a=B.getRequests({state:T.FRAGMENT_MODEL_EXECUTED,time:e,threshold:F})[0];if(a&&(i=Math.min(a.startTime,i)),i>0)return{start:r,end:i}}return null}(e,r),a=function(e,t){var r=t.end(t.length-1)+.5,i=Re(e),a=V.manifestInfo.duration>=z.get().streaming.buffer.longFormContentDurationThreshold?z.get().streaming.buffer.bufferTimeAtTopQualityLongForm:z.get().streaming.buffer.bufferTimeAtTopQuality,o=isNaN(i)?e:Math.min(i,e+a);if(o>=t.end(t.length-1))return null;var s=B.getRequests({state:T.FRAGMENT_MODEL_EXECUTED,time:e,threshold:F})[0];if(s&&(o=Math.max(s.startTime+s.duration,o)),z.get().streaming.buffer.avoidCurrentTimeRangePruning)for(var u=0;u=a&&e=h-1,t=H.getTimeToStreamEnd(V)-i<1e-5;!e&&!t||r||(Ae(!0),n.debug("checkIfBufferingCompleted trigger BUFFERING_COMPLETED for stream id ".concat(V.id," and type ").concat(K)))}function ge(){K!==a.Z.AUDIO&&K!==a.Z.VIDEO||((!H.getLowLatencyModeEnabled()&&i=z.get().streaming.buffer.stallThreshold||H.getLowLatencyModeEnabled()&&i>0)&&he(s.Z.BUFFER_LOADED))}function he(e){v===e||e===s.Z.BUFFER_EMPTY&&0===H.getTime()||K===a.Z.TEXT&&!Y.isTextEnabled()||(v=e,Ne(l.Z.BUFFER_LEVEL_STATE_CHANGED,{state:e}),Ne(e===s.Z.BUFFER_LOADED?l.Z.BUFFER_LOADED:l.Z.BUFFER_EMPTY),n.debug(e===s.Z.BUFFER_LOADED?"Got enough buffer to start":"Waiting for more buffer before starting playback"))}function pe(){p&&K!==a.Z.TEXT&&(r||ye(me()))}function me(){var e=[],t=p.getAllBufferRanges();if(!t||0===t.length)return e;var n=H.getTime(),r=Math.max(0,n-z.get().streaming.buffer.bufferToKeep),i=B.getRequests({state:T.FRAGMENT_MODEL_EXECUTED,time:n,threshold:F})[0];if(i)r=Math.min(i.startTime,r);else if(0===n&&H.getIsDynamic())return[];if(t.start(0)<=r){for(var a={start:0,end:r},o=0;o=z.get().streaming.buffer.bufferPruningInterval&&(b=0,pe())}function be(){ge()}function Ae(e){(r=e)?Ne(l.Z.BUFFERING_COMPLETED):h=Number.POSITIVE_INFINITY}function Ie(){try{var e,t,n=p.getAllBufferRanges(),r=0;if(!n)return r;for(t=0,e=n.length;t=i&&t<=a&&(t=a),r+=1}return t===e?NaN:t}catch(e){}}function we(){var e=Ie();return isNaN(e)||e0){for(var t="Beginning "+K+"PreBuffer discharge, adding buffer for:",r=0;r=i&&e<=a)return!0;r+=1}return!1}catch(e){return n.error(e),!1}},pruneBuffer:pe,setMediaSource:W,getMediaSource:function(){return c},appendInitSegmentFromCache:function(e){var t=R.extract(V.id,e);return!!t&&(n.info("Append Init fragment",K," with representationId:",t.representationId," and quality:",t.quality,", data size:",t.bytes.byteLength),ne(t),!0)},getIsBufferingCompleted:function(){return r},setIsBufferingCompleted:Ae,getIsPruningInProgress:function(){return A},reset:function(e,t){U.off(l.Z.INIT_FRAGMENT_LOADED,ee,this),U.off(l.Z.MEDIA_FRAGMENT_LOADED,te,this),U.off(l.Z.WALLCLOCK_TIME_UPDATED,Se,this),U.off(d.Z.PLAYBACK_PLAYING,le,this),U.off(d.Z.PLAYBACK_PROGRESS,se,this),U.off(d.Z.PLAYBACK_TIME_UPDATED,se,this),U.off(d.Z.PLAYBACK_RATE_CHANGED,be,this),U.off(d.Z.PLAYBACK_STALLED,ue,this),Ce(e,t)},prepareForPlaybackSeek:function(){return r&&Ae(!1),p.abort()},prepareForReplacementTrackSwitch:function(e){return new Promise((function(t,n){p.abort().then((function(){return Te()})).then((function(){return z.get().streaming.buffer.useChangeTypeForTrackSwitch?p.changeType(e):Promise.resolve()})).then((function(){return ae()})).then((function(){Ae(!1),t()})).catch((function(e){n(e)}))}))},prepareForNonReplacementTrackSwitch:function(e){return new Promise((function(t,n){Te().then((function(){return z.get().streaming.buffer.useChangeTypeForTrackSwitch?p.changeType(e):Promise.resolve()})).then((function(){t()})).catch((function(e){n(e)}))}))},prepareForForceReplacementQualitySwitch:function(e){return new Promise((function(t,n){p.abort().then((function(){return Te()})).then((function(){return ae()})).then((function(){return _e(e)})).then((function(){Ae(!1),t()})).catch((function(e){n(e)}))}))},updateAppendWindow:Te,getAllRangesWithSafetyFactor:oe,getContinuousBufferTimeForTargetTime:Re,clearBuffers:ye,pruneAllSafely:ae,updateBufferTimestampOffset:_e,setSeekTarget:function(e){M=e},segmentRequestingCompleted:function(e){isNaN(e)||(h=e,de())}},n=(0,f.Z)(L).getInstance().getLogger(t),R=x(L).getInstance(),Ce(),t}U.__dashjs_factory_name=k;var Z=c.Z.getClassFactory(U),B="NotFragmentedTextBufferController";function G(e){e=e||{};var t,n,r,i,a,o,s=this.context,c=(0,u.Z)(s).getInstance(),f=e.textController,d=e.errHandler,g=e.streamInfo,h=e.type;function p(e){i=e}function m(e){var t,r;n!==e&&(n=e)&&(t=l.Z.BUFFERING_COMPLETED,r={},c.trigger(t,r,{streamId:g.id,mediaType:h}))}function y(e){e.chunk.bytes&&!n&&(o.save(e.chunk),a.append(e.chunk),m(!0))}return t={initialize:function(e){p(e)},getStreamId:function(){return g.id},getType:function(){return h},getBufferControllerType:function(){return B},createBufferSink:function(e){return new Promise((function(t,n){try{(a=O(s).create({mediaSource:i,textController:f,eventBus:c})).initializeForFirstUse(g,e),r||(a.getBuffer()&&"function"==typeof a.getBuffer().initialize&&a.getBuffer().initialize(),r=!0),t(a)}catch(e){d.error(new S.Z(w.MEDIASOURCE_TYPE_UNSUPPORTED_CODE,w.MEDIASOURCE_TYPE_UNSUPPORTED_MESSAGE+h)),n(e)}}))},dischargePreBuffer:function(){},getBuffer:function(){return a},getBufferLevel:function(){return 0},getRangeAt:function(){return null},pruneBuffer:function(){},hasBufferAtTime:function(){return!0},getAllRangesWithSafetyFactor:function(){return[]},getContinuousBufferTimeForTargetTime:function(){return Number.POSITIVE_INFINITY},setMediaSource:p,getMediaSource:function(){return i},appendInitSegmentFromCache:function(e){return null!==o.extract(g.id,e)},getIsBufferingCompleted:function(){return n},setIsBufferingCompleted:m,getIsPruningInProgress:function(){return!1},reset:function(e){c.off(l.Z.INIT_FRAGMENT_LOADED,y,t),!e&&a&&(a.abort(),a.reset(),a=null)},clearBuffers:function(){return Promise.resolve()},prepareForPlaybackSeek:function(){return Promise.resolve()},prepareForReplacementTrackSwitch:function(){return n=!1,Promise.resolve()},setSeekTarget:function(){},updateAppendWindow:function(){return Promise.resolve()},pruneAllSafely:function(){return Promise.resolve()},updateBufferTimestampOffset:function(){return Promise.resolve()},segmentRequestingCompleted:function(){}},r=!1,i=null,n=!1,o=x(s).getInstance(),c.on(l.Z.INIT_FRAGMENT_LOADED,y,t),t}G.__dashjs_factory_name=B;var q=c.Z.getClassFactory(G);function Y(e){e=e||{};var t,n,r,i,o,c,g,h,p,m,y,E,v,_=this.context,S=(0,u.Z)(_).getInstance(),b=e.dashMetrics,A=e.mediaPlayerModel,I=e.fragmentModel,R=e.abrController,w=e.playbackController,N=e.textController,C=e.type,D=e.bufferController,O=e.representationController,M=e.settings;function P(){E=!0}function L(){E=!1}function x(e){if(!D.getIsBufferingCompleted()){F();var t=isNaN(e)?0:e;o=setTimeout(k,t)}}function F(){o&&(clearTimeout(o),o=null)}function k(){try{if(function(){try{return C===a.Z.TEXT&&!N.isTextEnabled()||w.isPaused()&&(!w.getStreamController().getInitialPlayback()||!w.getStreamController().getAutoPlay())&&!M.get().streaming.scheduling.scheduleWhilePaused}catch(e){return!1}}())return void F();if(function(){try{return!!E&&O.getCurrentRepresentationInfo()&&(isNaN(p)||m||(e=n.id,t=R.getMaxAllowedIndexFor(C,e),!(!isNaN(h)&&h==t||(r.info("Top quality "+C+" index has changed from "+h+" to "+t),h=t,0)))||function(){var e=O.getCurrentRepresentationInfo();return!C||!e||b.getCurrentBufferLevel(C)=M.get().streaming.buffer.longFormContentDurationThreshold?M.get().streaming.buffer.bufferTimeAtTopQualityLongForm:M.get().streaming.buffer.bufferTimeAtTopQuality:A.getStableBufferTime()}catch(e){return A.getStableBufferTime()}}(),e):e}function Z(){B(!0)}function B(e){if(w&&I){var t=I.getRequests({state:T.FRAGMENT_MODEL_EXECUTED,time:w.getTime(),threshold:0})[0];t&&w.getTime()>=t.startTime&&((!g.mediaInfo||t.mediaInfo.type===g.mediaInfo.type&&t.mediaInfo.index!==g.mediaInfo.index)&&e&&S.trigger(l.Z.TRACK_CHANGE_RENDERED,{mediaType:C,oldMediaInfo:g.mediaInfo,newMediaInfo:t.mediaInfo,streamId:n.id}),t.quality===g.quality&&t.adaptationIndex===g.adaptationIndex||!e||(r.debug("Quality change rendered for streamId ".concat(n.id," and type ").concat(C)),S.trigger(l.Z.QUALITY_CHANGE_RENDERED,{mediaType:C,oldQuality:g.quality,newQuality:t.quality,streamId:n.id})),g={mediaInfo:t.mediaInfo,quality:t.quality,adaptationIndex:t.adaptationIndex})}}function G(){I.abortRequests(),F()}function q(){M.get().streaming.scheduling.scheduleWhilePaused||x()}function Y(e){b.updatePlayListTraceMetrics({playbackspeed:e.playbackRate.toString()})}function j(){v=!0,i=0,p=NaN,g={mediaInfo:void 0,quality:NaN,adaptationIndex:NaN},h=NaN,m=!1,y=!1,E=!0}return t={initialize:function(e){c=e,S.on(l.Z.URL_RESOLUTION_FAILED,G,t),S.on(d.Z.PLAYBACK_STARTED,q,t),S.on(d.Z.PLAYBACK_RATE_CHANGED,Y,t),S.on(d.Z.PLAYBACK_TIME_UPDATED,Z,t),S.on(d.Z.MANAGED_MEDIA_SOURCE_START_STREAMING,P,t),S.on(d.Z.MANAGED_MEDIA_SOURCE_END_STREAMING,L,t)},getType:function(){return C},getStreamId:function(){return n.id},setTimeToLoadDelay:function(e){i=e},getTimeToLoadDelay:function(){return i},setSwitchTrack:function(e){m=e},getSwitchTrack:function(){return m},startScheduleTimer:x,clearScheduleTimer:F,reset:function(){S.off(l.Z.URL_RESOLUTION_FAILED,G,t),S.off(d.Z.PLAYBACK_STARTED,q,t),S.off(d.Z.PLAYBACK_RATE_CHANGED,Y,t),S.off(d.Z.PLAYBACK_TIME_UPDATED,Z,t),S.off(d.Z.MANAGED_MEDIA_SOURCE_START_STREAMING,P,t),S.off(d.Z.MANAGED_MEDIA_SOURCE_END_STREAMING,L,t),F(),B(!1),j(),n=null},getBufferTarget:U,getPlaybackController:function(){return w},setCheckPlaybackQuality:function(e){v=e},setInitSegmentRequired:function(e){y=e},setLastInitializedQuality:function(e){p=e}},r=(0,f.Z)(_).getInstance().getLogger(t),j(),n=e.streamInfo,t}Y.__dashjs_factory_name="ScheduleController";var j=c.Z.getClassFactory(Y),H=n(7387);function V(e){var t,n,r,i,o,s,u=(e=e||{}).eventBus,l=e.events,c=e.abrController,f=e.dashMetrics,g=e.playbackController,h=e.timelineConverter,p=e.type,m=e.streamInfo,y=e.dashConstants,E=e.segmentsController,v=e.isDynamic,_=e.adapter;function T(){return p}function S(){return r}function b(){return s}function A(){n=null,r=!0,i=[],o=null}function I(e){return new Promise((function(t,n){var r=e.hasInitialization(),a=e.hasSegments(),o=[];o.push(E.updateInitData(e,r)),o.push(E.updateSegmentData(e,a)),Promise.all(o).then((function(n){var r;n[0]&&!n[0].error&&(e=function(e,t){return t&&!t.error&&t.representation?t.representation:e}(e,n[0])),n[1]&&!n[1].error&&(e=function(e,t){if(t&&!t.error){var n,r,i,a,o=t.segments,s=[],u=0;for(n=0,r=o?o.length:0;n0&&(e.segments=s),e}}(e,n[1])),(r=e).mediaFinishedInformation=E.getMediaFinishedInformation(r),function(e){if(S()){var t,n,r=f.getCurrentManifestUpdate(),a=!1;if(r){for(var o=0;o=i.length?null:i[e]}function N(e){r=!1,u.trigger(l.DATA_UPDATE_COMPLETED,{data:n,currentRepresentation:s,error:e},{streamId:m.id,mediaType:p})}function C(e){s=e,o=_.convertRepresentationToRepresentationInfo(s)}function D(e){if(e.newDuration){var t=b();t&&t.adaptation.period&&(t.adaptation.period.duration=e.newDuration)}}return t={getStreamId:function(){return m.id},getType:T,getData:function(){return n},isUpdating:S,updateData:function(e,t,o,s,u){return new Promise((function(l,c){if(r=!0,i=t,n=e,C(w(u)),o!==a.Z.VIDEO&&o!==a.Z.AUDIO&&(o!==a.Z.TEXT||!s))return N(),void l();for(var f=[],d=0,g=i.length;d=N.start+N.duration}function ue(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e.sender)if(B.getIsManifestUpdateInProgress())ge();else if((!ae()||Y.isTextEnabled())&&g&&e.representationId&&!g.appendInitSegmentFromCache(e.representationId)){var n=p.getCurrentRepresentation();if(0===n.range)return void le();var r=v?v.getInitRequest(i,n):null;r?k.executeRequest(r):t&&(h.setInitSegmentRequired(!0),ge())}}function le(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(B.getIsManifestUpdateInProgress()||g.getIsPruningInProgress())ge();else{var n=de();n?(m=!1,y=!1,ce(n)):fe(t)}}function ce(e){isNaN(e.startTime+e.duration)||(b=e.startTime+e.duration),e.delayLoadingTime=(new Date).getTime()+h.getTimeToLoadDelay(),h.setTimeToLoadDelay(0),function(e){var t=e.url;return e.range&&(t=t.concat("_",e.range)),$.contains(t)}(e)?(n.warn("Fragment request url ".concat(e.url," for stream id ").concat(N.id," and media type ").concat(D," is on the ignore list and will be skipped")),ge()):(n.debug("Next fragment request url for stream id ".concat(N.id," and media type ").concat(D," is ").concat(e.url)),k.executeRequest(e))}function fe(e){var t,a=p.getCurrentRepresentation();if(!V.get().streaming.gaps.enableSeekFix||!m&&0!==B.getTime()||(r?r&&a.segmentInfoType===o.Z.SEGMENT_TIMELINE&&(t=v.getValidTimeAheadOfTargetTime(b,i,a,V.get().streaming.gaps.threshold)):t=v.getValidTimeAheadOfTargetTime(b,i,a,V.get().streaming.gaps.threshold),isNaN(t)||t===b)){if(v.isLastSegmentRequested(a,b)){var s=v.getCurrentIndex();return n.debug("Segment requesting for stream ".concat(N.id," has finished")),R.trigger(l.Z.STREAM_REQUESTING_COMPLETED,{segmentIndex:s},{streamId:N.id,mediaType:D}),g.segmentRequestingCompleted(s),void h.clearScheduleTimer()}e&&ge()}else B.isSeeking()||0===B.getTime()?(n.warn("Adjusting playback time ".concat(t," because of gap in the manifest. Seeking by ").concat(t-b)),B.seek(t,!1,!1)):(n.warn("Adjusting buffering time ".concat(t," because of gap in the manifest. Adjusting time by ").concat(t-b)),xe(t),e&&ge())}function de(){var e,t=Ne();if(isNaN(b)||ie()===a.Z.TEXT&&!Y.isTextEnabled())return null;if(v){var n=p&&t?p.getRepresentationForQuality(t.quality):null;e=m?v.getSegmentRequestForTime(i,n,b):y?v.repeatSegmentRequest(i,n):v.getNextSegmentRequest(i,n)}return e}function ge(){h.startScheduleTimer(B.getLowLatencyModeEnabled()?V.get().streaming.scheduling.lowLatencyTimeout:V.get().streaming.scheduling.defaultTimeout)}function he(e){e.error||g.getIsBufferingCompleted()||g.updateBufferTimestampOffset(e.currentRepresentation)}function pe(e){H.addBufferState(D,e.state,h.getBufferTarget()),e.state!==s.Z.BUFFER_EMPTY||B.isSeeking()||(n.info("Buffer is empty! Stalling!"),H.pushPlayListTraceMetrics(new Date,ee.REBUFFERING_REASON))}function me(e){k.syncExecutedRequestsWithBufferedRange(g.getBuffer().getAllBufferRanges(),N.duration),e.quotaExceeded&&e.from>B.getTime()&&xe(e.from),e.hasEnoughSpaceToAppend&&e.quotaExceeded&&h.startScheduleTimer()}function ye(e){if(e&&e.lastRequestAppended&&e.lastRequestAppended.url){var t=e.lastRequestAppended.url;e.lastRequestAppended.range&&(t=t.concat("_",e.lastRequestAppended.range)),n.warn("Blacklisting segment with url ".concat(t)),$.add(t)}}function Ee(e){if(n.debug("Appended bytes for ".concat(e.mediaType," and stream id ").concat(e.streamId)),e.segmentType===C.w.INIT_SEGMENT_TYPE){var t=e.quality;h.setLastInitializedQuality(t),n.info("["+D+"] lastInitializedRepresentationInfo changed to "+e.quality)}A?ve(A):h.startScheduleTimer(0)}function ve(e){var t=k.getRequests({state:T.FRAGMENT_MODEL_LOADING});if(t&&t.length>0)return n.debug("Preparing for default quality switch: Waiting for ongoing segment request to be finished before applying switch."),void(A=e);g.updateBufferTimestampOffset(e).then((function(){h.setCheckPlaybackQuality(!1),i.segmentAlignment||i.subSegmentAlignment?h.startScheduleTimer():Pe(),A=null,E=!1})).catch((function(){A=null,E=!1}))}function _e(e){n.info("onFragmentLoadingAbandoned request: "+e.request.url+" has been aborted"),B.isSeeking()||h.getSwitchTrack()||E||(n.info("onFragmentLoadingAbandoned request: "+e.request.url+" has to be downloaded again, origin is not seeking process or switch track call"),e.request&&e.request.isInitializationRequest()?h.setInitSegmentRequired(!0):xe(e.request.startTime+e.request.duration/2),h.startScheduleTimer(0))}function Te(e){n.info("OnFragmentLoadingCompleted for stream id "+N.id+" and media type "+D+" - Url:",e.request?e.request.url:"undefined",e.request.range?", Range:"+e.request.range:""),ae()&&h.startScheduleTimer(0),e.error&&e.request.serviceLocation&&function(e){n.info("Fragment loading completed with an error"),e&&e.request&&e.request.type&&(e.request.type===C.w.INIT_SEGMENT_TYPE?ue({representationId:e.request.representationId,sender:{}},!1):e.request.type===C.w.MEDIA_SEGMENT_TYPE&&(xe(e.request.startTime+e.request.duration/2),le({},!1)))}(e)}function Se(){xe(B.getTime()),we().startScheduleTimer()}function be(e){var t=e.currentTrackInfo;if(t){var n=c.find((function(e){return e.index===t.index&&e.lang===t.lang}));n&&Re(n).then((function(){g.setIsBufferingCompleted(!1),xe(B.getTime()),h.setInitSegmentRequired(!0),h.startScheduleTimer()}))}}function Ae(e){xe(e.quotaExceededTime),h.clearScheduleTimer()}function Ie(){return g?g.getBuffer():null}function Re(e){e===i||e&&i&&e.type!==i.type||(i=e);var t=L.getRealAdaptation(N,i),n=L.getVoRepresentations(i);if(p){var o,s=p.getData(),u=U.getMaxAllowedIndexFor(D,N.id),l=U.getMinAllowedIndexFor(D,N.id),c=null;return null!==s&&s.id===t.id||D===a.Z.TEXT?o=U.getQualityFor(D,N.id):(c=U.getThroughputHistory().getAverageThroughput(D,r)||U.getInitialBitrateFor(D,N.id),o=U.getQualityForBitrate(i,c,N.id)),void 0!==l&&ou&&(o=u),p.updateData(t,n,D,i.isFragmented,o)}return Promise.resolve()}function we(){return h}function Ne(e){var t;return void 0!==e?((0,z.SE)(e),t=p?p.getRepresentationForQuality(e):null):t=p?p.getCurrentRepresentation():null,L.convertRepresentationToRepresentationInfo(t)}function Ce(){return!!g&&g.getIsBufferingCompleted()}function De(e){if(V.get().streaming.enableManifestTimescaleMismatchFix){var t=e.chunk,n=t.bytes,r=Ne(t.quality),i=p&&r?p.getRepresentationForQuality(r.quality):null;r&&i&&(i.timescale=J.getMediaTimescaleFromMoov(n))}}function Oe(e){var t=e.chunk,n=t.bytes,r=t.quality,i=Ne(r),a=p&&i?p.getRepresentationForQuality(i.quality):null;if(i&&a){var s;if(V.get().streaming.parseInbandPrft&&e.request.type===C.w.MEDIA_SEGMENT_TYPE){var u=function(e,t){var n=e.getBoxes("prft"),r=[];return n.forEach((function(e){r.push(function(e,t){var n="unknown";switch(e.flags){case 0:n=o.Z.PRODUCER_REFERENCE_TIME_TYPE.ENCODER;break;case 16:n=o.Z.PRODUCER_REFERENCE_TIME_TYPE.APPLICATION;break;case 24:n=o.Z.PRODUCER_REFERENCE_TIME_TYPE.CAPTURED}var r=1e3*e.ntp_timestamp_sec+e.ntp_timestamp_frac/Math.pow(2,32)*1e3;return{type:n,ntpTimestamp:r=re(I).getInstance().ntpToUTC(r),mediaTime:e.media_time/t}}(e,t))})),r}(s=s||J.parse(n),a.timescale);u&&u.length&&R.trigger(d.Z.INBAND_PRFT,{data:u},{streamId:N.id,mediaType:D})}var c=L.getEventsFor(i.mediaInfo,null,N),f=L.getEventsFor(i,a,N);if(c&&c.length>0||f&&f.length>0){var g=k.getRequests({state:T.FRAGMENT_MODEL_EXECUTED,quality:r,index:t.index})[0],h=function(e,t,n,r){try{for(var i={},a=[],o=n.concat(r),s=0,u=o.length;sV.get().streaming.buffer.stallThreshold;if(g.getIsBufferingCompleted()&&!t)return g.prepareForNonReplacementTrackSwitch(i.codec).then((function(){R.trigger(l.Z.BUFFERING_COMPLETED,{},{streamId:N.id,mediaType:D})})).catch((function(){R.trigger(l.Z.BUFFERING_COMPLETED,{},{streamId:N.id,mediaType:D})})),void e();h.clearScheduleTimer(),h.setSwitchTrack(!0),t?(R.trigger(l.Z.BUFFER_REPLACEMENT_STARTED,{mediaType:D,streamId:N.id},{mediaType:D,streamId:N.id}),k.abortRequests(),g.prepareForReplacementTrackSwitch(i.codec).then((function(){var e=Ne();return g.updateBufferTimestampOffset(e)})).then((function(){Me(),e()})).catch((function(){Me(),e()}))):g.prepareForNonReplacementTrackSwitch(i.codec).then((function(){Pe(),e()})).catch((function(){Pe(),e()}))}))},prepareQualityChange:function(e){A&&n.warning("Canceling queued representation switch to ".concat(A.quality," for ").concat(D)),n.debug("Preparing quality switch for type ".concat(D));var t=e.newQuality;E=!0,h.clearScheduleTimer(),p.prepareQualityChange(t);var r=Ne(t);e.reason&&e.reason.forceReplace?function(e){k.abortRequests(),R.trigger(l.Z.BUFFER_REPLACEMENT_STARTED,{mediaType:D,streamId:N.id},{mediaType:D,streamId:N.id}),h.setCheckPlaybackQuality(!1),g.prepareForForceReplacementQualitySwitch(e).then((function(){Me(),A=null,E=!1})).catch((function(){Me(),A=null,E=!1}))}(r):e&&e.reason&&e.reason.forceAbandon?function(e){g.updateBufferTimestampOffset(e).then((function(){k.abortRequests(),y=!0,h.setCheckPlaybackQuality(!1),h.startScheduleTimer(),E=!1,A=null})).catch((function(){A=null,E=!1}))}(r):V.get().streaming.buffer.fastSwitchEnabled?function(e){var t=B.getTime(),n=1.5*(isNaN(e.fragmentDuration)?1:e.fragmentDuration),r=k.getRequests({state:T.FRAGMENT_MODEL_EXECUTED,time:t+n,threshold:0})[0];if(r&&!ae()){var i=g.getBufferLevel(),a=U.getAbandonmentStateFor(N.id,D);r.quality=n&&a!==s.Z.ABANDON_LOAD?g.updateBufferTimestampOffset(e).then((function(){k.abortRequests(),xe(t+n),h.setCheckPlaybackQuality(!1),h.startScheduleTimer(),E=!1})).catch((function(){E=!1})):ve(e)}else ve(e)}(r):ve(r),H.pushPlayListTraceMetrics(new Date,ee.REPRESENTATION_SWITCH_STOP_REASON),H.createPlaylistTraceMetrics(r.id,1e3*B.getTime(),B.getPlaybackRate())},getMediaInfo:function(){return i},getMediaSource:function(){return g.getMediaSource()},setMediaSource:function(e){return g.setMediaSource(e,i)},getBuffer:Ie,setExplicitBufferingTime:xe,finalisePlayList:function(e,t){H.pushPlayListTraceMetrics(e,t)},probeNextRequest:function(){var e=Ne(),t=p&&e?p.getRepresentationForQuality(e.quality):null;return v.getNextSegmentRequestIdempotent(i,t)},prepareInnerPeriodPlaybackSeeking:function(e){return new Promise((function(t){if(g.hasBufferAtTime(e.seekTime))return g.pruneBuffer(),se(g.getContinuousBufferTimeForTargetTime(e.seekTime))&&g.setIsBufferingCompleted(!0),void t();h.clearScheduleTimer(),k.abortRequests(),g.prepareForPlaybackSeek().then((function(){var t=g.getAllRangesWithSafetyFactor(e.seekTime);return g.clearBuffers(t)})).then((function(){var n=g.getContinuousBufferTimeForTargetTime(e.seekTime);if(se(n))g.setIsBufferingCompleted(!0),t();else{var r=isNaN(n)?e.seekTime:n;xe(r),g.setSeekTarget(r);var i=[];i.push(g.updateAppendWindow());var a=Ne();i.push(g.updateBufferTimestampOffset(a)),Promise.all(i).then((function(){h.setInitSegmentRequired(!0),h.setCheckPlaybackQuality(!1),h.startScheduleTimer(),t()}))}})).catch((function(e){n.error(e)}))}))},prepareOuterPeriodPlaybackSeeking:function(){return new Promise((function(e,t){try{h.clearScheduleTimer(),k.abortRequests(),g.prepareForPlaybackSeek().then((function(){return g.pruneAllSafely()})).then((function(){e()}))}catch(e){t(e)}}))},reset:function(e,n){v&&v.reset(),g&&(g.reset(e,n),g=null),h&&(h.reset(),h=null),p&&(p.reset(),p=null),_&&(_=null),U&&U.unRegisterStreamType(ne(),D),R.off(l.Z.DATA_UPDATE_COMPLETED,he,t),R.off(l.Z.INIT_FRAGMENT_NEEDED,ue,t),R.off(l.Z.MEDIA_FRAGMENT_NEEDED,le,t),R.off(l.Z.INIT_FRAGMENT_LOADED,De,t),R.off(l.Z.MEDIA_FRAGMENT_LOADED,Oe,t),R.off(l.Z.BUFFER_LEVEL_STATE_CHANGED,pe,t),R.off(l.Z.BUFFER_CLEARED,me,t),R.off(l.Z.SEEK_TARGET,Le,t),R.off(l.Z.FRAGMENT_LOADING_ABANDONED,_e,t),R.off(l.Z.FRAGMENT_LOADING_COMPLETED,Te,t),R.off(l.Z.SET_FRAGMENTED_TEXT_AFTER_DISABLED,Se,t),R.off(l.Z.SET_NON_FRAGMENTED_TEXT,be,t),R.off(l.Z.QUOTA_EXCEEDED,Ae,t),R.off(l.Z.SOURCE_BUFFER_ERROR,ye,t),R.off(l.Z.BYTES_APPENDED_END_FRAGMENT,Ee,t),oe(),D=null,N=null}},n=(0,f.Z)(I).getInstance().getLogger(t),oe(),R.on(l.Z.DATA_UPDATE_COMPLETED,he,t,{priority:u.Z.EVENT_PRIORITY_HIGH}),R.on(l.Z.INIT_FRAGMENT_NEEDED,ue,t),R.on(l.Z.MEDIA_FRAGMENT_NEEDED,le,t),R.on(l.Z.INIT_FRAGMENT_LOADED,De,t),R.on(l.Z.MEDIA_FRAGMENT_LOADED,Oe,t),R.on(l.Z.BUFFER_LEVEL_STATE_CHANGED,pe,t),R.on(l.Z.BUFFER_CLEARED,me,t),R.on(l.Z.SEEK_TARGET,Le,t),R.on(l.Z.FRAGMENT_LOADING_ABANDONED,_e,t),R.on(l.Z.FRAGMENT_LOADING_COMPLETED,Te,t),R.on(l.Z.QUOTA_EXCEEDED,Ae,t),R.on(l.Z.SET_FRAGMENTED_TEXT_AFTER_DISABLED,Se,t),R.on(l.Z.SET_NON_FRAGMENTED_TEXT,be,t),R.on(l.Z.SOURCE_BUFFER_ERROR,ye,t),R.on(l.Z.BYTES_APPENDED_END_FRAGMENT,Ee,t),t}ie.__dashjs_factory_name="StreamProcessor";var ae=c.Z.getClassFactory(ie),oe=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.streamId=null,this.mediaInfo=null,this.segmentType=null,this.quality=NaN,this.index=NaN,this.bytes=null,this.start=NaN,this.end=NaN,this.duration=NaN,this.representationId=null,this.endFragment=null},se=n(9032);function ue(e,t){if(e){if("string"==typeof e)return le(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?le(e,t):void 0}}function le(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}(r.headers.keys());try{for(d.s();!(i=d.n()).done;){var g=i.value;u+=g+": "+r.headers.get(g)+"\r\n"}}catch(e){d.e(e)}finally{d.f()}if(e.response.responseHeaders=u,!r.body)return r.arrayBuffer().then((function(t){e.response.response=t;var n={loaded:t.byteLength,total:t.byteLength,stream:!1};e.progress(n),e.onload(),e.onend()}));var h,p,v,_,T=parseInt(r.headers.get("Content-Length"),10),S=0,b=!1,A=new Uint8Array,I=0;if(m===a.Z.ABR_FETCH_THROUGHPUT_CALCULATION_AAST&&o){var R=t,w=0,N=(v=r.body.tee(),_=2,function(e){if(Array.isArray(e))return e}(v)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}return n}}(v,_)||ue(v,_)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),C=N[0],D=N[1];h=C.getReader(),p=[],h.read().then((function r(i){var a=i.value,s=i.done;if(w=Date.now(),a&&a.length){var c=w-R,f=a.length;p.push({chunkDownloadTimeRelativeMS:w-t,chunkDownloadDurationMS:c,chunkBytes:f,kbps:Math.round(8*f/(c/1e3)),bufferLevel:n.getCurrentBufferLevel(l.mediaType)})}if(s){var d=w-t,g=p.reduce((function(e,t){return e+t.chunkBytes}),0);return o.addMeasurement(l,d,p,y,E,u),void e.progress({loaded:g,total:g,lengthComputable:!0,time:o.getEstimatedDownloadDurationMS(l),stream:!0})}return R=Date.now(),h.read().then(r)})),e.reader=D.getReader()}else e.reader=r.body.getReader();var O=[],M=[],P=[],L=!0;c(e,(function t(n){var r=n.value;if(n.done){if(A){if(m!==a.Z.ABR_FETCH_THROUGHPUT_CALCULATION_AAST){var i=null,o=null;m===a.Z.ABR_FETCH_THROUGHPUT_CALCULATION_MOOF_PARSING?(i=function(e,t){try{var n,r;n=e.filter((function(t,n){return n1){for(var a=0,o=0,s=0;s1)i.push(8*r[s].bytes/u),o=0;else{0===o&&(o=n[s].ts,a=0);var l=r[s].ts-o;l>1?(a+=r[s].bytes,i.push(8*a/l),o=0):a+=r[s].bytes}}if(i.length>0)return i.reduce((function(e,t){return e+t}),0)/i.length}return null}catch(e){return null}}(M,P),i&&(o=8*S/i)):m===a.Z.ABR_FETCH_THROUGHPUT_CALCULATION_DOWNLOADED_DATA&&(o=f(O,S)),e.progress({loaded:S,total:isNaN(T)?S:T,lengthComputable:!0,time:o,stream:!0})}e.response.response=A.buffer}return e.onload(),void e.onend()}if(r&&r.length>0){A=function(e,t){if(0===e.length)return t;var n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}(A,r),S+=r.length,O.push({ts:Date.now(),bytes:r.length}),m===a.Z.ABR_FETCH_THROUGHPUT_CALCULATION_MOOF_PARSING&&L&&s.findLastTopIsoBoxCompleted(["moof"],A,I).found&&(L=!1,M.push({ts:performance.now(),bytes:r.length}));var u=s.findLastTopIsoBoxCompleted(["moov","mdat"],A,I);if(u.found){var l,d=u.lastCompletedOffset+u.size;m!==a.Z.ABR_FETCH_THROUGHPUT_CALCULATION_MOOF_PARSING||L||(L=!0,P.push({ts:performance.now(),bytes:A.length})),d===A.length?(l=A,A=new Uint8Array):(l=new Uint8Array(A.subarray(0,d)),A=A.subarray(d)),e.progress({data:l.buffer,lengthComputable:!1,noTrace:!0}),I=0}else I=u.lastCompletedOffset,b||(e.progress({lengthComputable:!1,noTrace:!0}),b=!0)}c(e,t)}))})).catch((function(t){e.onerror&&e.onerror(t)}))}))}function c(e,t){e.reader.read().then(t).catch((function(t){e.onerror&&200===e.response.status&&e.onerror(t)}))}function f(e,t){try{if((e=e.filter((function(n){return n.bytes>t/4/e.length}))).length>1){var n=0,r=(e[e.length-1].ts-e[0].ts)/e.length;return e.forEach((function(t,i){var a=e[i+1];if(a){var o=a.ts-t.ts;n+=o=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function Fe(e,t){if(e){if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ke(e,t):void 0}}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&Me.Y.indexOf(n[0].schemeIdUri)>=0)return t===a.Z.IMAGE}if(e.ContentComponent_asArray&&e.ContentComponent_asArray.length>0){if(e.ContentComponent_asArray.length>1)return t===a.Z.MUXED;if(e.ContentComponent_asArray[0].contentType===t)return!0}var r=t===a.Z.TEXT?new RegExp("(ttml|vtt|wvtt|stpp)"):new RegExp(t);if(e.Representation_asArray&&e.Representation_asArray.length){var i=e.Representation_asArray[0].codecs;if(r.test(i))return!0}if(e.hasOwnProperty(o.Z.MIME_TYPE))return r.test(e.mimeType);if(e.Representation_asArray)for(var s,u=0;u0){var t=e.Representation_asArray[0];if(t.hasOwnProperty(o.Z.SEGMENT_TEMPLATE)||t.hasOwnProperty(o.Z.SEGMENT_TIMELINE)||t.hasOwnProperty(o.Z.SEGMENT_LIST)||t.hasOwnProperty(o.Z.SEGMENT_BASE))return!0}return!1}function d(e){return l(e,a.Z.VIDEO)}function g(e){return l(e,a.Z.TEXT)}function h(e){return l(e,a.Z.IMAGE)}function p(e){return e&&Array.isArray(e.Representation_asArray)&&e.Representation_asArray.sort((function(e,t){return e.bandwidth-t.bandwidth})),e}function m(e,t){return e&&e.Period_asArray&&u(t)&&e.Period_asArray[t]?e.Period_asArray[t].AdaptationSet_asArray:[]}function y(e){return e&&e.Period_asArray?e.Period_asArray:[]}function E(e){var t=!1;return e&&e.hasOwnProperty("type")&&(t=e.type===o.Z.DYNAMIC),t}function v(e){return e&&e.EssentialProperty_asArray&&e.EssentialProperty_asArray.length?e.EssentialProperty_asArray.map((function(e){return{schemeIdUri:e.schemeIdUri,value:e.value}})):null}function _(e){if(!e||!e.S_asArray)return NaN;var t=e.S_asArray[0],n=e.S_asArray[1];return t.hasOwnProperty("d")?t.d:n.t-t.t}function T(e,t){if(!e)throw new Error("Period cannot be null or undefined");var n=ye.DEFAULT_ID+"_"+t;return e.hasOwnProperty(o.Z.ID)&&e.id.length>0&&"__proto__"!==e.id&&(n=e.id),n}function b(e,t,n){var r,i=[];if(!e)return i;for(r=0;r0&&u(e)?r[e]:null},getIndexForAdaptation:function(e,t,n){if(!e)return-1;for(var r=m(t,n),a=0;a0&&u(e)?n[e]:null},getCodec:function(e,t,n){var r=null;if(e&&e.Representation_asArray&&e.Representation_asArray.length>0){var i=u(t)&&t>=0&&t0?e.Representation_asArray[0].mimeType:null},getKID:function(e){return e&&e.hasOwnProperty(o.Z.CENC_DEFAULT_KID)?e[o.Z.CENC_DEFAULT_KID]:null},getLabelsForAdaptation:function(e){if(!e||!Array.isArray(e.Label_asArray))return[];for(var t=[],n=0;n0&&(n=-1!==e.profiles.indexOf(t)),n},getDuration:function(e){return e&&e.hasOwnProperty(o.Z.MEDIA_PRESENTATION_DURATION)?e.mediaPresentationDuration:e&&"dynamic"==e.type?Number.POSITIVE_INFINITY:Number.MAX_SAFE_INTEGER||Number.MAX_VALUE},getBandwidth:function(e){return e&&e.bandwidth?e.bandwidth:NaN},getManifestUpdatePeriod:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=NaN;return e&&e.hasOwnProperty(o.Z.MINIMUM_UPDATE_PERIOD)&&(n=e.minimumUpdatePeriod),isNaN(n)?n:Math.max(n-t,1)},getPublishTime:function(e){return e&&e.hasOwnProperty(o.Z.PUBLISH_TIME)?new Date(e[o.Z.PUBLISH_TIME]):null},getRepresentationCount:function(e){return e&&Array.isArray(e.Representation_asArray)?e.Representation_asArray.length:0},getBitrateListForAdaptation:function(e){var t=p(e);return(t&&Array.isArray(t.Representation_asArray)?t.Representation_asArray:[]).map((function(e){return{bandwidth:e.bandwidth,width:e.width||0,height:e.height||0,scanType:e.scanType||null,id:e.id||null}}))},getRepresentationFor:function(e,t){return t&&t.Representation_asArray&&t.Representation_asArray.length>0&&u(e)?t.Representation_asArray[e]:null},getRepresentationsForAdaptation:function(e){var t,n,r,i,a=[],s=function(e){if(e&&e.period&&u(e.period.index)){var t=e.period.mpd.manifest.Period_asArray[e.period.index];if(t&&t.AdaptationSet_asArray&&u(e.index))return p(t.AdaptationSet_asArray[e.index])}}(e);if(s&&s.Representation_asArray){if(e&&e.period&&u(e.period.index)){var l=A(e.period.mpd.manifest);l&&(n=l[0])}for(var f=0,d=s.Representation_asArray.length;f=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n]+)>/g,(function(e,t){return"$"+n[t]})))}if("function"==typeof t){var a=this;return r[Symbol.replace].call(this,e,(function(){var e=[];return e.push.apply(e,arguments),"object"!==He(e[e.length-1])&&e.push(o(e,a)),t.apply(this,e)}))}return r[Symbol.replace].call(this,e,t)},Ve.apply(this,arguments)}function Ke(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Qe(e,t)}function ze(e){var t="function"==typeof Map?new Map:void 0;return ze=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return We(e,arguments,Je(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Qe(r,e)},ze(e)}function We(e,t,n){return We=Xe()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&Qe(i,n.prototype),i},We.apply(null,arguments)}function Xe(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function Qe(e,t){return Qe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Qe(e,t)}function Je(e){return Je=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Je(e)}var $e="static",et="dynamic",tt="cmsd-",nt=tt+$e,rt=tt+et,it="stream",at=["mb","st","sf","v"],ot={video:"v",audio:"a",text:"tt",stream:it},st=/^[-0-9]/;function ut(){var e,t,n,r,i=this.context,a=(0,u.Z)(i).getInstance();function o(){n={},r={}}function s(e){e&&Object.keys(e).forEach((function(t){at.includes(t)||delete e[t]}))}function c(e){return!e||"false"!==e.toLowerCase()&&(st.test(e)?parseInt(e,10):e.replace(/["]+/g,""))}function d(e){try{for(var n={},r=e.split(","),i=0;i=0;c--){var f=u[c].match(Ve(/^((?:(?!:)[\s\S])*):[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(.*)$/,{key:1,value:2}));if(f&&f.groups){var p=f.groups.key.toLowerCase(),m=f.groups.value;switch(p){case nt:i=d(m),a.trigger(l.Z.CMSD_STATIC_HEADER,i);break;case rt:o||(o=g(m))}}}var y=it;return i&&i.ot?y=i.ot:t&&(y=h(t)),s(n[y]),s(r[y]),i&&(n[y]=Object.assign(n[y]||{},i)),o&&(r[y]=Object.assign(r[y]||{},o)),{static:i,dynamic:o}},getMaxBitrate:function(e){var t=h(e);return p(et,t,"mb")||-1},getEstimatedThroughput:function(e){var t=h(e);return p(et,t,"etp")||null},getResponseDelay:function(e){var t=h(e);return p(et,t,"rd")||null},getRoundTripTime:function(e){var t=h(e);return p(et,t,"rtt")||null}},t=(0,f.Z)(i).getInstance().getLogger(e),o(),e}ut.__dashjs_factory_name="CmsdModel";var lt=c.Z.getSingletonFactory(ut);function ct(){var e,t,n=this.context,r={};function i(){t=(0,f.Z)(n).getInstance().getLogger(e)}function a(e){for(var t={},n=0,r=0,i=0,a=0,o=e.length,s=0;se.bitrate&&(n=!1):t=e.bitrate})),n}return e={setup:i,addMeasurement:function(e,t,n,i,o){e&&e.mediaType&&!r[e.mediaType]&&(r[e.mediaType]=[]);var s=e.mediaInfo.bitrateList.find((function(t){return t.id===e.representationId}));r[e.mediaType].push({index:e.index,repId:e.representationId,mediaType:e.mediaType,requestTimeMS:i,adjustedAvailabilityStartTimeMS:e.availabilityStartTime.getTime(),segDurationMS:1e3*e.duration,chunksDurationMS:n.reduce((function(e,t){return e+t.chunkDownloadDurationMS}),0),segmentBytes:n.reduce((function(e,t){return e+t.chunkBytes}),0),bitrate:s&&s.bandwidth,bitrateList:e.mediaInfo.bitrateList,chunkMeasurements:n,fetchDownloadDurationMS:t,throughputCapacityDelayMS:o,getEstimatedBufferLevel:a(n.slice(1))}),r[e.mediaType].length>10&&r[e.mediaType].shift()},getThroughputCapacityDelayMS:function(e,t){var n=r[e.mediaType]&&r[e.mediaType].slice(-3);return!n||n.length<3?0:o(n)?t/4>250?250:t/4:0},getEstimatedDownloadDurationMS:function(e){var n=r[e.mediaType].slice(-1).pop(),i=r[e.mediaType].slice(-3),a=n.chunkMeasurements.slice(-1).pop().chunkDownloadTimeRelativeMS;n.bufferLevelAtSegmentStart=n.getEstimatedBufferLevel(a/2),n.bufferLevelAtSegmentEnd=n.getEstimatedBufferLevel(a);var s=o(i),u=s?.6:.8;if(n.isBufferStable&&1.05*n.segDurationMS.2*n.chunkMeasurements.length){var p=c/f,m=n.segmentBytes/p;return n.fetchDownloadDurationMSn.bitrate)return y=e.bandwidth,!0})),y===n.bitrate?n.fetchDownloadDurationMS*u:u*n.segmentBytes*8*1e3/y}},i(),e}ct.__dashjs_factory_name="LowLatencyThroughputModel";var ft=c.Z.getSingletonFactory(ct),dt=n(5717);function gt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ht(e){e=e||{};var t,n,r,i,o,s,c,d,g,h,p,m=this.context,y=e.errHandler,E=e.dashMetrics,v=e.mediaPlayerModel,_=e.requestModifier,T=e.boxParser,b=e.errors,A=e.requestTimeout||0,I=(0,u.Z)(m).getInstance(),R=(0,N.Z)(m).getInstance();function w(e,t){var u,f=e.request,p=[],b=!0,N=!0,D=new Date,O=D,M=0,P=null,L=null;if(!_||!E||!y)throw new Error("config object is not correct or missing");var x,F=function(e){f.requestStartDate=D,f.requestEndDate=new Date,f.firstByteDate=f.firstByteDate||D,f.fileLoaderType=L;var t=u.response?u.response.responseURL:null,n=u.response?u.response.status:null,r=u.response&&u.response.getAllResponseHeaders?u.response.getAllResponseHeaders():u.response?u.response.responseHeaders:null,i=r&&R.get().streaming.cmsd&&R.get().streaming.cmsd.enabled?c.parseResponseHeaders(r,f.mediaType):null;E.addHttpRequest(f,t,n,r,e?p:null,i)},k=function(e){N=!1,F(e),f.type===C.w.MPD_TYPE&&(E.addManifestUpdate(f),I.trigger(l.Z.MANIFEST_LOADING_FINISHED,{request:f}))},U=function(){if(P&&(clearTimeout(P),P=null),-1!==n.indexOf(u)&&(n.splice(n.indexOf(u),1),N))if(k(!1),t>0){try{R.get().streaming.utcSynchronization.enableBackgroundSyncAfterSegmentDownloadError&&f.type===C.w.MEDIA_SEGMENT_TYPE&&v.getRetryAttemptsForType(C.w.MEDIA_SEGMENT_TYPE)===t&&I.trigger(l.Z.ATTEMPT_BACKGROUND_SYNC)}catch(e){}t--;var r={config:e};i.push(r),r.timeout=setTimeout((function(){-1!==i.indexOf(r)&&(i.splice(i.indexOf(r),1),w(e,t))}),v.getRetryIntervalsForType(f.type))}else{if(f.type===C.w.MSS_FRAGMENT_INFO_SEGMENT_TYPE)return;y.error(new S.Z(o[f.type],f.url+" is not available",{request:f,response:u.response})),e.error&&e.error(f,"error",u.response.statusText,u.response),e.complete&&e.complete(f,u.response.statusText)}};f.hasOwnProperty("availabilityTimeComplete")&&!1===f.availabilityTimeComplete&&window.fetch&&"arraybuffer"===f.responseType&&f.type===C.w.MEDIA_SEGMENT_TYPE?((x=fe(m).create({requestModifier:_,lowLatencyThroughputModel:g,boxParser:T})).setup({dashMetrics:E}),L=a.Z.FILE_LOADER_TYPES.FETCH):(x=(0,se.Z)(m).create({requestModifier:_}),L=a.Z.FILE_LOADER_TYPES.XHR);var Z=null,B=_.modifyRequestURL?_.modifyRequestURL(f.url):f.url;if(R.get().streaming.cmcd&&R.get().streaming.cmcd.enabled){var G=R.get().streaming.cmcd.mode;if(G===a.Z.CMCD_MODE_QUERY){var q=function(e){try{var t=[],n=s.getQueryParameter(e);return n&&t.push(n),t}catch(e){return[]}}(f);B=Be.Z.addAditionalQueryParameterToUrl(B,q)}else G===a.Z.CMCD_MODE_HEADER&&(Z=s.getHeaderParameters(f))}var Y=d.getXHRWithCredentialsForType(f.type);if(f.queryParams){var j=Object.keys(f.queryParams).map((function(e){return{key:e,value:f.queryParams[e]}}));B=Be.Z.addAditionalQueryParameterToUrl(B,j)}f.url=B,u={url:B,method:C.w.GET,withCredentials:Y,request:f,onload:function(){u.response.status>=200&&u.response.status<=299&&(k(!0),e.success&&e.success(u.response.response,u.response.statusText,u.response.responseURL),e.complete&&e.complete(f,u.response.statusText))},onend:U,onerror:U,progress:function(t){var n=new Date;b&&(b=!1,(!t.lengthComputable||t.lengthComputable&&t.total!==t.loaded)&&(f.firstByteDate=n)),t.lengthComputable&&(f.bytesLoaded=t.loaded,f.bytesTotal=t.total),t.noTrace||(p.push({s:O,d:t.time?t.time:n.getTime()-O.getTime(),b:[t.loaded?t.loaded-M:0]}),O=n,M=t.loaded),P&&(clearTimeout(P),P=null),R.get().streaming.fragmentRequestProgressTimeout>0&&(P=setTimeout((function(){h.warn("Abort request "+u.url+" due to progress timeout"),u.response.onabort=null,u.loader.abort(u),U()}),R.get().streaming.fragmentRequestProgressTimeout)),e.progress&&t&&e.progress(t)},onabort:function(){F(!0),P&&(clearTimeout(P),P=null),e.abort&&e.abort(f)},ontimeout:function(e){var t;if(e.lengthComputable){var n=e.loaded/e.total*100;t="Request timeout: loaded: "+e.loaded+", out of: "+e.total+" : "+n.toFixed(3)+"% Completed"}else t="Request timeout: non-computable download size";h.warn(t)},loader:x,timeout:A,headers:Z};var H=(new Date).getTime();if(isNaN(f.delayLoadingTime)||H>=f.delayLoadingTime)n.push(u),x.load(u);else{var V={httpRequest:u};r.push(V),V.delayTimeout=setTimeout((function(){if(-1!==r.indexOf(V)){r.splice(r.indexOf(V),1);try{D=new Date,O=D,n.push(V.httpRequest),x.load(V.httpRequest)}catch(e){V.httpRequest.onerror()}}}),f.delayLoadingTime-H)}}return t={load:function(e){e.request?w(e,v.getRetryAttemptsForType(e.request.type)):e.error&&e.error(e.request,"error")},abort:function(){i.forEach((function(e){clearTimeout(e.timeout),e.config.request&&e.config.abort&&e.config.abort(e.config.request)})),i=[],r.forEach((function(e){return clearTimeout(e.delayTimeout)})),r=[],n.forEach((function(e){e.request.type!==C.w.MSS_FRAGMENT_INFO_SEGMENT_TYPE&&(e.onloadend=e.onerror=e.onprogress=void 0,e.loader.abort(e))})),n=[]}},h=(0,f.Z)(m).getInstance().getLogger(t),n=[],r=[],i=[],s=je(m).getInstance(),c=lt(m).getInstance(),g=ft(m).getInstance(),d=(0,dt.Z)(m).getInstance(),gt(p={},C.w.MPD_TYPE,b.DOWNLOAD_ERROR_ID_MANIFEST_CODE),gt(p,C.w.XLINK_EXPANSION_TYPE,b.DOWNLOAD_ERROR_ID_XLINK_CODE),gt(p,C.w.INIT_SEGMENT_TYPE,b.DOWNLOAD_ERROR_ID_INITIALIZATION_CODE),gt(p,C.w.MEDIA_SEGMENT_TYPE,b.DOWNLOAD_ERROR_ID_CONTENT_CODE),gt(p,C.w.INDEX_SEGMENT_TYPE,b.DOWNLOAD_ERROR_ID_CONTENT_CODE),gt(p,C.w.BITSTREAM_SWITCHING_SEGMENT_TYPE,b.DOWNLOAD_ERROR_ID_CONTENT_CODE),gt(p,C.w.OTHER_TYPE,b.DOWNLOAD_ERROR_ID_CONTENT_CODE),o=p,t}ht.__dashjs_factory_name="HTTPLoader";var pt=c.Z.getClassFactory(ht);function mt(){var e;function t(){e={}}function n(){t()}return n(),{getLoader:function(t){for(var n in e)if(e.hasOwnProperty(n)&&t.startsWith(n))return e[n];return pt},registerLoader:function(t,n){e[t]=n},unregisterLoader:function(t){e[t]&&delete e[t]},unregisterAllLoader:t,reset:n}}mt.__dashjs_factory_name="SchemeLoaderFactory";var yt=c.Z.getSingletonFactory(mt);function Et(e){e=e||{};var t,n,r=this.context;return t=yt(r).getInstance(),{load:function(i){if(!n){var a=t.getLoader(i&&i.request?i.request.url:null);n=a(r).create({errHandler:e.errHandler,mediaPlayerModel:e.mediaPlayerModel,requestModifier:e.requestModifier,dashMetrics:e.dashMetrics,boxParser:e.boxParser?e.boxParser:null,constants:e.constants?e.constants:null,dashConstants:e.dashConstants?e.dashConstants:null,urlUtils:e.urlUtils?e.urlUtils:null,requestTimeout:isNaN(e.requestTimeout)?0:e.requestTimeout,errors:e.errors})}n.load(i)},abort:function(){n&&n.abort()}}}Et.__dashjs_factory_name="URLLoader";var vt=c.Z.getClassFactory(Et);function _t(e){return _t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_t(e)}function Tt(e,t){return Tt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Tt(e,t)}function St(e,t){return!t||"object"!==_t(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function bt(e){return bt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},bt(e)}var At=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Tt(e,t)}(i,e);var t,n,r=(t=i,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=bt(t);if(n){var i=bt(this).constructor;e=Reflect.construct(r,arguments,i)}else e=r.apply(this,arguments);return St(this,e)});function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=r.call(this,e)).checkForExistenceOnly=!0,t}return i}(p.Z);function It(e){e=e||{};var t,n,r=this.context,i=e.eventBus,o=e.events,s=e.urlUtils,u=e.errors,l=e.streamId;return t={checkForExistence:function(e){var t=function(t){i.trigger(o.CHECK_FOR_EXISTENCE_COMPLETED,{request:e,exists:t})};if(e){var r=new At(e.url);n.load({request:r,success:function(){t(!0)},error:function(){t(!1)}})}else t(!1)},load:function(e){var r=function(n,r){i.trigger(o.LOADING_COMPLETED,{request:e,response:n||null,error:r||null,sender:t})};e?n.load({request:e,progress:function(n){i.trigger(o.LOADING_PROGRESS,{request:e,stream:n.stream,streamId:l}),n.data&&i.trigger(o.LOADING_DATA_PROGRESS,{request:e,response:n.data||null,error:null,sender:t})},success:function(e){r(e)},error:function(e,t,n){r(void 0,new S.Z(u.FRAGMENT_LOADER_LOADING_FAILURE_ERROR_CODE,n,t))},abort:function(e){e&&i.trigger(o.LOADING_ABANDONED,{mediaType:e.mediaType,request:e,sender:t})}}):r(void 0,new S.Z(u.FRAGMENT_LOADER_NULL_REQUEST_ERROR_CODE,u.FRAGMENT_LOADER_NULL_REQUEST_ERROR_MESSAGE))},abort:function(){n&&n.abort()},reset:function(){n&&(n.abort(),n=null)}},n=vt(r).create({errHandler:e.errHandler,errors:u,dashMetrics:e.dashMetrics,mediaPlayerModel:e.mediaPlayerModel,requestModifier:e.requestModifier,urlUtils:s,constants:a.Z,boxParser:e.boxParser,dashConstants:e.dashConstants,requestTimeout:e.settings.get().streaming.fragmentRequestTimeout}),t}It.__dashjs_factory_name="FragmentLoader";var Rt=c.Z.getClassFactory(It);function wt(){return{modifyResponseAsync:function(e){return Promise.resolve(e)}}}wt.__dashjs_factory_name="SegmentResponseModifier";var Nt=c.Z.getSingletonFactory(wt);function Ct(e){e=e||{};var t,n,r,i=this.context,o=(0,u.Z)(i).getInstance(),s=e.errHandler,c=e.mediaPlayerModel,g=e.dashMetrics,h=(0,f.Z)(i).getInstance(),p=Nt(i).getInstance(),m=e.streamInfo;function y(){return m.id}function E(){for(var e in r)r[e].reset();r={}}function v(e){if(e.sender){var t=e.request,r=e.response,i=t.isInitializationRequest(),s=t.mediaInfo.streamInfo;if(e.error&&(t.mediaType===a.Z.AUDIO||t.mediaType===a.Z.VIDEO||t.mediaType===a.Z.TEXT&&t.mediaInfo.isFragmented)&&o.trigger(l.Z.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD,{entry:e.request.serviceLocation}),r&&s){var u=function(e,t,n,r){var i=new oe;return i.streamId=n,i.mediaInfo=t.mediaInfo,i.segmentType=t.type,i.start=t.startTime,i.duration=t.duration,i.end=i.start+i.duration,i.bytes=e,i.index=t.index,i.quality=t.quality,i.representationId=t.representationId,i.endFragment=r,i}(r,t,m.id,e.type!==l.Z.FRAGMENT_LOADING_PROGRESS);p.modifyResponseAsync(u).then((function(e){o.trigger(i?l.Z.INIT_FRAGMENT_LOADED:l.Z.MEDIA_FRAGMENT_LOADED,{chunk:e,request:t},{streamId:s.id,mediaType:t.mediaType})})).catch((function(e){n.error(e),o.trigger(i?l.Z.INIT_FRAGMENT_LOADED:l.Z.MEDIA_FRAGMENT_LOADED,{chunk:u,request:t},{streamId:s.id,mediaType:t.mediaType})}))}else n.warn("No "+t.mediaType+" bytes to push or stream is inactive.")}}return t={getStreamId:y,getModel:function(t){var n=r[t];return n||(n=T(i).create({streamInfo:m,type:t,dashMetrics:g,fragmentLoader:Rt(i).create({dashMetrics:g,mediaPlayerModel:c,errHandler:s,requestModifier:(0,X.Z)(i).getInstance(),settings:e.settings,boxParser:e.boxParser,eventBus:o,events:l.Z,errors:w,dashConstants:e.dashConstants,urlUtils:e.urlUtils,streamId:y()}),debug:h,eventBus:o,events:l.Z}),r[t]=n),n},reset:function(){o.off(d.Z.FRAGMENT_LOADING_COMPLETED,v,this),o.off(d.Z.FRAGMENT_LOADING_PROGRESS,v,this),E()}},n=h.getLogger(t),E(),o.on(d.Z.FRAGMENT_LOADING_COMPLETED,v,t),o.on(d.Z.FRAGMENT_LOADING_PROGRESS,v,t),t}Ct.__dashjs_factory_name="FragmentController";var Dt=c.Z.getClassFactory(Ct),Ot=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.url=null,this.width=null,this.height=null,this.x=null,this.y=null},Mt=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.mediaType=null,this.bitrate=null,this.width=null,this.height=null,this.scanType=null,this.qualityIndex=NaN};function Pt(e){var t,n,r=this.context,i=e.streamInfo;function o(e){n.setTrackByIndex(e)}function s(){n&&n.reset()}return t={getStreamId:function(){return i.id},initialize:function(){n.addTracks();var e=n.getTracks();e&&e.length>0&&o(0)},provide:function(e,t){if("function"==typeof t){var r,i,a=n.getCurrentTrack();if(!a||a.segmentDuration<=0||null==e)t(null);else{(i=n.getThumbnailRequestForTime(e))&&(a.segmentDuration=i.duration),r=e%a.segmentDuration;var o=Math.floor(r*a.tilesHor*a.tilesVert/a.segmentDuration),s=new Ot;if(s.width=Math.floor(a.widthPerTile),s.height=Math.floor(a.heightPerTile),s.x=Math.floor(o%a.tilesHor)*a.widthPerTile,s.y=Math.floor(o/a.tilesHor)*a.heightPerTile,"readThumbnail"in a)return a.readThumbnail(e,(function(e){s.url=e,t(s)}));if(i)s.url=i.url,a.segmentDuration=NaN;else{var u=Math.floor(e/a.segmentDuration);s.url=function(e,t){var n=t+e.startNumber,r=(0,H.vi)(e.templateUrl,"Number",n);return r=(0,H.vi)(r,"Time",(n-1)*e.segmentDuration*e.timescale),r=(0,H.vi)(r,"Bandwidth",e.bandwidth),(0,H.eR)(r)}(a,u)}t(s)}}},setTrackByIndex:o,getCurrentTrackIndex:function(){return n.getCurrentTrackIndex()},getBitrateList:function(){var e=n.getTracks(),t=0;return e.map((function(e){var n=new Mt;return n.mediaType=a.Z.IMAGE,n.qualityIndex=t++,n.bitrate=e.bitrate,n.width=e.width,n.height=e.height,n}))},reset:s},s(),n=(0,Me.Z)(r).create({streamInfo:i,adapter:e.adapter,baseURLController:e.baseURLController,timelineConverter:e.timelineConverter,debug:e.debug,eventBus:e.eventBus,events:e.events,dashConstants:e.dashConstants,dashMetrics:e.dashMetrics,segmentBaseController:e.segmentBaseController}),t}Pt.__dashjs_factory_name="ThumbnailController";var Lt=c.Z.getClassFactory(Pt),xt=n(7417);function Ft(e){var t;e=e||{};var n=[],r=(0,u.Z)(this.context).getInstance(),i=e.updateEventName,a=e.addBlacklistEventName;function o(e){-1===n.indexOf(e)&&(n.push(e),r.trigger(i,{entry:e}))}return t={add:o,contains:function(e){return!!(n.length&&e&&e.length)&&-1!==n.indexOf(e)},reset:function(){n=[]}},a&&r.on(a,(function(e){o(e.entry)}),t),t}Ft.__dashjs_factory_name="BlackListController";var kt=c.Z.getClassFactory(Ft),Ut=[a.Z.VIDEO,a.Z.AUDIO,a.Z.TEXT,a.Z.MUXED,a.Z.IMAGE];function Zt(e){e=e||{};var t,n,r,i,s,c,d,g,h,p,m,y,E,v,_,T,b,A,I=this.context,R=(0,u.Z)(I).getInstance(),N=(0,Q.Z)(I).getInstance(),C=e.manifestModel,D=e.mediaPlayerModel,O=e.dashMetrics,M=e.manifestUpdater,P=e.adapter,L=e.timelineConverter,x=e.capabilities,F=e.errHandler,k=e.abrController,U=e.playbackController,Z=e.eventController,B=e.mediaController,G=e.protectionController,q=e.textController,Y=e.videoModel,j=e.streamInfo,H=e.settings;function V(e,t){return new Promise((function(i,o){ne(),p=!0,ie();var s=Y.getElement(),u=[];Ut.forEach((function(t){(t!==a.Z.TEXT||e)&&(t!==a.Z.VIDEO||!s||s&&/^VIDEO$/i.test(s.nodeName))&&u.push(K(t,e))})),Promise.all(u).then((function(){return e=t,new Promise((function(t){var n={},i=r.map((function(t){return t.createBufferSinks(e)}));Promise.all(i).then((function(e){e.forEach((function(e){e&&(n[e.getType()]=e)})),t(n)})).catch((function(){t(n)}))}));var e})).then((function(t){if(p=!1,0===r.length){var a="No streams to play.";F.error(new S.Z(w.MANIFEST_ERROR_ID_NOSTREAMS_CODE,a,C.getValue())),n.fatal(a)}else oe();e&&q.createTracks(j),i(t)})).catch((function(e){o(e)}))}))}function K(t,i){var s,u=P.getAllMediaInfoForType(j,t),c=[],f=null;if(!u||0===u.length)return n.info("No "+t+" data."),Promise.resolve();t===a.Z.VIDEO&&(d=!0),t===a.Z.AUDIO&&(g=!0);for(var h=0,p=u.length;h0&&(B.setInitialMediaSettingsForType(t,j),q.addMediaInfosToBuffer(j,t,c)),u=u.filter((function(e){return!e.isEmbedded})),0===u.length)return Promise.resolve();if(t===a.Z.IMAGE)return(y=Lt(I).create({streamInfo:j,adapter:P,baseURLController:e.baseURLController,timelineConverter:e.timelineConverter,debug:T,eventBus:R,events:l.Z,dashConstants:o.Z,dashMetrics:e.dashMetrics,segmentBaseController:e.segmentBaseController})).initialize(),Promise.resolve();R.trigger(l.Z.STREAM_INITIALIZING,{streamInfo:j,mediaInfo:f}),B.setInitialMediaSettingsForType(t,j);var v=function(t,n){var i=t&&t.length>0?t[0]:null,o=m.getModel(i?i.type:null),s=i?i.type:null,u=i?i.mimeType:null,l=i?i.isFragmented:null,c=ae(I).create({streamInfo:j,type:s,mimeType:u,timelineConverter:L,adapter:P,manifestModel:C,mediaPlayerModel:D,fragmentModel:o,dashMetrics:e.dashMetrics,baseURLController:e.baseURLController,segmentBaseController:e.segmentBaseController,abrController:k,playbackController:U,mediaController:B,textController:q,errHandler:F,settings:H,boxParser:_,segmentBlacklistController:E});c.initialize(n,d,l),r.push(c);for(var f=0;f0&&Z.addInlineEvents(e,j.id)}}function oe(){for(var e=r.length,t=h.audio||h.video?new S.Z(w.DATA_UPDATE_FAILED_ERROR_CODE,w.DATA_UPDATE_FAILED_ERROR_MESSAGE):null,n=0;n0&&e.Representation_asArray[0].ContentProtection)}function pe(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!e||!e.hasOwnProperty("getStreamInfo"))return!1;var r=e.getStreamInfo(),i=n?n.getStreamInfo():te();if(!r||!i)return!1;var a=P.getAdaptationForType(r.index,t,r),o=P.getAdaptationForType(i.index,t,i);if(!a||!o)return!a&&!o;var s=a&&o&&a.mimeType===o.mimeType,u=o.Representation_asArray.map((function(e){return e.codecs})),l=a.Representation_asArray.map((function(e){return e.codecs})),c=l.some((function(e){return u.indexOf(e)>-1})),f=l.some((function(e){return u.some((function(t){return x.codecRootCompatibleWithCodec(t,e)}))}));return c||f&&s}function me(e){v=e}function ye(){return v}return t={initialize:function(){R.on(l.Z.BUFFERING_COMPLETED,se,t),R.on(l.Z.DATA_UPDATE_COMPLETED,ue,t),R.on(l.Z.INBAND_EVENTS,le,t),G&&(R.on(l.Z.KEY_ERROR,re,t),R.on(l.Z.SERVER_CERTIFICATE_UPDATED,re,t),R.on(l.Z.LICENSE_REQUEST_COMPLETE,re,t),R.on(l.Z.KEY_SYSTEM_SELECTED,re,t),R.on(l.Z.KEY_SESSION_CREATED,re,t),R.on(l.Z.KEY_STATUSES_CHANGED,re,t)),q.initializeForStream(j),R.trigger(l.Z.STREAM_UPDATED,{streamInfo:j})},getStreamId:function(){return j?j.id:null},activate:function(e,t){return new Promise((function(n,r){if(!s)return ye()?(s=!0,R.trigger(l.Z.STREAM_ACTIVATED,{streamInfo:j}),void n(t)):void function(e,t){return V(e,t)}(e,t).then((function(e){s=!0,R.trigger(l.Z.STREAM_ACTIVATED,{streamInfo:j}),n(e)})).catch((function(e){r(e)}));n(t)}))},deactivate:W,getIsActive:function(){return s},getDuration:function(){return j?j.duration:NaN},getStartTime:$,getId:ee,getStreamInfo:te,getHasAudioTrack:function(){return g},getHasVideoTrack:function(){return d},startPreloading:function(e,t){return new Promise((function(i,a){ye()?a():(n.info("[startPreloading] Preloading next stream with id ".concat(ee())),me(!0),V(e,t).then((function(){for(var e=0;e0;){var e=A.pop(),t=e.newMediaInfo,r=ce(e.oldMediaInfo);if(!r)return;n.push(r.prepareTrackSwitch()),n.push(r.selectMediaInfo(t))}return Promise.all(n)})).then((function(){p=!1,oe(),R.trigger(l.Z.STREAM_UPDATED,{streamInfo:j}),t()}))}))},reset:function(e){m&&(m.reset(),m=null),k&&j&&k.clearDataForStream(j.id),E&&(E.reset(),E=null),X(e),j=null,R.off(l.Z.DATA_UPDATE_COMPLETED,ue,t),R.off(l.Z.BUFFERING_COMPLETED,se,t),R.off(l.Z.INBAND_EVENTS,le,t),G&&(R.off(l.Z.KEY_ERROR,re,t),R.off(l.Z.SERVER_CERTIFICATE_UPDATED,re,t),R.off(l.Z.LICENSE_REQUEST_COMPLETE,re,t),R.off(l.Z.KEY_SYSTEM_SELECTED,re,t),R.off(l.Z.KEY_SESSION_CREATED,re,t),R.off(l.Z.KEY_STATUSES_CHANGED,re,t))},getProcessors:de,setMediaSource:function(e){return new Promise((function(t,i){for(var a=[],o=0;o1&&void 0!==arguments[1]?arguments[1]:null;return pe(e,a.Z.VIDEO,t)&&pe(e,a.Z.AUDIO,t)},isProtectionCompatible:function(e){return!e||ge(a.Z.VIDEO,e)&&ge(a.Z.AUDIO,e)},getPreloaded:ye,getIsEndedEventSignaled:function(){return b},setIsEndedEventSignaled:J,getAdapter:function(){return P},getHasFinishedBuffering:function(){return c},setPreloaded:me,startScheduleControllers:function(){for(var e=r.length,t=0;t4&&i[e].shift()}function I(e,t){if(e&&e.request&&e.request.serviceLocation){var n=e.request.serviceLocation;-1===r[t].all.indexOf(n)&&r[t].all.push(n),r[t].current=n}}function R(){var e=g.getValue(),t=y.getContentSteering(e);return t||(t=p.getServiceDescriptionSettings().contentSteering),t}function N(){return new Promise((function(e){try{var a=R();if(!a||!a.serverUrl)return void e();var u=function(e){var t=e.serverUrl;n&&n.reloadUri&&(t=v.isRelative(n.reloadUri)?v.resolve(n.reloadUri,e.serverUrl):n.reloadUri);var a=[],o=r.baseUrl.all.concat(r.location.all);if(o.length>0){var s=o.map((function(e){var t=function(e){if(!e||!i[e]||0===i[e].length)return-1;var t=i[e].reduce((function(e,t){return e+t}))/i[e].length;return parseInt(t)}(e);return{serviceLocation:e,throughput:t}}));s.sort((function(e,t){return t.throughput-e.throughput}));var u="",l="";s.forEach((function(e,t){0!==t&&(u="".concat(u,","),e.throughput>-1&&(l="".concat(l,","))),u="".concat(u).concat(e.serviceLocation),e.throughput>-1&&(l="".concat(l).concat(e.throughput))})),a.push({key:"_DASH_pathway",value:'"'.concat(u,'"')}),a.push({key:"_DASH_throughput",value:l})}return t=Be.Z.addAditionalQueryParameterToUrl(t,a)}(a),l=new Gt(u);s.load({request:l,success:function(t){!function(e){e&&e[o.Z.CONTENT_STEERING_RESPONSE.VERSION]&&1===parseInt(e[o.Z.CONTENT_STEERING_RESPONSE.VERSION])&&((n=new qt).version=e[o.Z.CONTENT_STEERING_RESPONSE.VERSION],e[o.Z.CONTENT_STEERING_RESPONSE.TTL]&&!isNaN(e[o.Z.CONTENT_STEERING_RESPONSE.TTL])&&(n.ttl=e[o.Z.CONTENT_STEERING_RESPONSE.TTL]),e[o.Z.CONTENT_STEERING_RESPONSE.RELOAD_URI]&&(n.reloadUri=e[o.Z.CONTENT_STEERING_RESPONSE.RELOAD_URI]),e[o.Z.CONTENT_STEERING_RESPONSE.PATHWAY_PRIORITY]&&(n.pathwayPriority=e[o.Z.CONTENT_STEERING_RESPONSE.PATHWAY_PRIORITY]),e[o.Z.CONTENT_STEERING_RESPONSE.PATHWAY_CLONES]&&(n.pathwayClones=e[o.Z.CONTENT_STEERING_RESPONSE.PATHWAY_CLONES],n.pathwayClones=n.pathwayClones.filter((function(e){return function(e){return e[o.Z.CONTENT_STEERING_RESPONSE.BASE_ID]&&e[o.Z.CONTENT_STEERING_RESPONSE.ID]&&e[o.Z.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT]&&e[o.Z.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT][o.Z.CONTENT_STEERING_RESPONSE.HOST]}(e)}))),O())}(t),m.trigger(d.Z.CONTENT_STEERING_REQUEST_COMPLETED,{currentSteeringResponseData:n,url:u}),e()},error:function(r,i,a,o){!function(e,r){try{switch(t.warn("Error fetching data from content steering server",e),r.status){case 410:break;case 429:var i=r&&r.getResponseHeader?r.getResponseHeader("retry-after"):null;null!==i&&(n||(n={}),n.ttl=parseInt(i)),O();break;default:O()}}catch(e){t.error(e)}}(r,o),e(r)},complete:function(){r.baseUrl.all=C(r.baseUrl),r.location.all=C(r.location)}})}catch(t){e(t)}}))}function C(e){return e.all&&0!==e.all.length&&e.current?e.all.filter((function(t){return t===e.current})):[]}function D(e){try{var r=[];return e&&0!==e.length&&n&&n.pathwayClones&&0!==n.pathwayClones.length?(n.pathwayClones.forEach((function(t){var n=e.filter((function(e){return t[o.Z.CONTENT_STEERING_RESPONSE.BASE_ID]===e.serviceLocation})),i=null;if(n&&n.length>0&&(i=n[0]),i){var a=new URL(i.url),s=t[o.Z.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT][o.Z.CONTENT_STEERING_RESPONSE.HOST];s=Be.Z.stringHasProtocol(s)?s:"".concat(a.protocol,"//").concat(s);var u={synthesizedUrl:"".concat(s).concat(a.pathname),serviceLocation:t[o.Z.CONTENT_STEERING_RESPONSE.ID],queryParams:t[o.Z.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT][o.Z.CONTENT_STEERING_RESPONSE.PARAMS],reference:i};r.push(u)}})),r):r}catch(e){return t.error(e),[]}}function O(){n&&n.ttl&&!isNaN(n.ttl)&&(a&&clearTimeout(a),a=setTimeout((function(){N()}),1e3*n.ttl))}function M(){a&&clearTimeout(a),a=null}function P(){n=null,i={},r={baseUrl:{current:null,all:[]},location:{current:null,all:[]}},M()}return e={reset:function(){P(),m.off(d.Z.FRAGMENT_LOADING_STARTED,_,e),m.off(d.Z.MANIFEST_LOADING_STARTED,T,e),m.off(d.Z.MANIFEST_LOADING_FINISHED,S,e),m.off(d.Z.THROUGHPUT_MEASUREMENT_STORED,b,e)},setConfig:function(e){e&&(e.adapter&&(y=e.adapter),e.errHandler&&(u=e.errHandler),e.dashMetrics&&(l=e.dashMetrics),e.mediaPlayerModel&&(c=e.mediaPlayerModel),e.requestModifier&&(h=e.requestModifier),e.manifestModel&&(g=e.manifestModel),e.serviceDescriptionController&&(p=e.serviceDescriptionController),e.eventBus&&(m=e.eventBus))},loadSteeringData:N,getCurrentSteeringResponseData:function(){return n},shouldQueryBeforeStart:function(){var e=R();return!!e&&e.queryBeforeStart},getSteeringDataFromManifest:R,stopSteeringRequestTimer:M,getSynthesizedBaseUrlElements:function(e){try{return D(e).map((function(e){var t=new Se(e.synthesizedUrl,e.serviceLocation);return t.queryParams=e.queryParams,t.dvb_priority=e.reference.dvb_priority,t.dvb_weight=e.reference.dvb_weight,t.availabilityTimeOffset=e.reference.availabilityTimeOffset,t.availabilityTimeComplete=e.reference.availabilityTimeComplete,t}))}catch(e){return t.error(e),[]}},getSynthesizedLocationElements:function(e){try{return D(e).map((function(e){var t=new Pe(e.synthesizedUrl,e.serviceLocation);return t.queryParams=e.queryParams,t}))}catch(e){return t.error(e),[]}},initialize:function(){s=vt(E).create({errHandler:u,dashMetrics:l,mediaPlayerModel:c,requestModifier:h,errors:w}),m.on(d.Z.FRAGMENT_LOADING_STARTED,_,e),m.on(d.Z.MANIFEST_LOADING_STARTED,T,e),m.on(d.Z.MANIFEST_LOADING_FINISHED,S,e),m.on(d.Z.THROUGHPUT_MEASUREMENT_STORED,b,e)}},t=(0,f.Z)(E).getInstance().getLogger(e),P(),e}Yt.__dashjs_factory_name="ContentSteeringController";var jt=c.Z.getSingletonFactory(Yt);function Ht(){var e,t,n,r=this.context,i=(0,N.Z)(r).getInstance();return e={select:function(e){if(!e||0===e.length)return null;var r=null;return i.get().streaming.applyContentSteering&&(r=function(e){var r=n.getCurrentSteeringResponseData();return r&&r.pathwayPriority&&r.pathwayPriority.length>0?function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=0,i=null,a=function(){var a=e[r],o=n.findIndex((function(e){return e.serviceLocation&&e.serviceLocation===a}));if(-1!==o&&!t.contains(n[o].serviceLocation))return i=n[o],"break";r+=1};r0&&void 0!==arguments[0]&&arguments[0];s=!0;var t=g.getValue(),n=t.url,r=null,i=p.getPatchLocation(t),a=h.select(i),o=null;if(a&&!e)n=a.url,r=a.serviceLocation,o=a.queryParams;else{var u=R(t),l=h.select(u);l&&(n=l.url,r=l.serviceLocation,o=l.queryParams)}T.isRelative(n)&&(n=T.resolve(n,t.url)),c.load(n,r,o)}function R(e){var t=p.getLocation(e),n=y.getSynthesizedLocationElements(t);return t.concat(n)}function N(e){if(e){if(p.getIsPatch(e)){var r=e;e=g.getValue();var u=p.isPatchValid(e,r),c=u;if(u){var f=p.getPublishTime(e);c=p.applyPatchToManifest(e,r);var d=p.getPublishTime(e);c=f.getTime()!=d.getTime()}if(!c)return t.debug("Patch provided is invalid, performing full manifest refresh"),void I(!0);e.loadedTime=new Date}}else(e=g.getValue()).loadedTime=new Date;if(g.getValue()&&g.getValue().type===o.Z.DYNAMIC&&e.type===o.Z.STATIC)return _.trigger(l.Z.DYNAMIC_TO_STATIC),s=!1,void(a=!0);g.setValue(e);var h=new Date,m=(h.getTime()-e.loadedTime.getTime())/1e3;1e3*(n=p.getManifestUpdatePeriod(e,m))>2147483647&&(n=2147483.647),_.trigger(l.Z.MANIFEST_UPDATED,{manifest:e}),t.info("Manifest has been refreshed at "+h+"["+h.getTime()/1e3+"] "),i||A()}function C(){i||(s?A(E.get().streaming.manifestUpdateRetryInterval):I())}function D(e){e.error?e.error.code===w.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE&&m.error(e.error):N(e.manifest)}function O(){i=!1,A()}function M(){(i=!E.get().streaming.scheduling.scheduleWhilePaused)&&b()}function P(){s=!1}return e={initialize:function(){S(),_.on(l.Z.STREAMS_COMPOSED,P,this),_.on(d.Z.PLAYBACK_STARTED,O,this),_.on(d.Z.PLAYBACK_PAUSED,M,this),_.on(l.Z.INTERNAL_MANIFEST_LOADED,D,this)},setManifest:function(e){N(e)},refreshManifest:I,getIsUpdating:function(){return s},setConfig:function(e){e&&(e.manifestModel&&(g=e.manifestModel),e.adapter&&(p=e.adapter),e.manifestLoader&&(c=e.manifestLoader),e.errHandler&&(m=e.errHandler),e.locationSelector&&(h=e.locationSelector),e.settings&&(E=e.settings),e.contentSteeringController&&(y=e.contentSteeringController))},reset:function(){_.off(d.Z.PLAYBACK_STARTED,O,this),_.off(d.Z.PLAYBACK_PAUSED,M,this),_.off(l.Z.STREAMS_COMPOSED,P,this),_.off(l.Z.INTERNAL_MANIFEST_LOADED,D,this),S()}},t=(0,f.Z)(v).getInstance().getLogger(e),h=Vt(v).create(),e}Kt.__dashjs_factory_name="ManifestUpdater";var zt=c.Z.getClassFactory(Kt);function Wt(){var e,t,n,r,i,a,o,s,c,d,g,h,p,m,y,E,v=this.context,_=(0,u.Z)(v).getInstance(),T=(0,Q.Z)(v).getInstance();function b(){s=[],c=[],d=null,g=null,p=null,h=NaN,n=!1,r=!1,m=i.get().streaming.utcSynchronization.timeBetweenSyncAttempts}function A(){i.get().streaming.utcSynchronization.enabled&&!n&&!r&&p&&p.value&&p.schemeIdUri&&!isNaN(h)&&!isNaN(i.get().streaming.utcSynchronization.backgroundAttempts)&&(g&&(Date.now()-g)/1e3<30||(s=[],r=!0,I(isNaN(i.get().streaming.utcSynchronization.backgroundAttempts)?2:i.get().streaming.utcSynchronization.backgroundAttempts)))}function I(e){try{if(e<=0)return void B();var t=Date.now();a[p.schemeIdUri](p.value,(function(n){var r=Date.now(),i=N(t,r,n);s.push(i),I(e-1)}),(function(){B()}))}catch(e){B()}}function R(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=e||0;if(!c||0===c.length||t>=c.length)D();else{var n=c[t];if(n)if(a.hasOwnProperty(n.schemeIdUri)){var r=(new Date).getTime();a[n.schemeIdUri](n.value,(function(e){var t=(new Date).getTime(),i=N(r,t,e);p=n,D(i)}),(function(){R(t+1)}))}else R(t+1);else D()}}function N(e,t,n){return n-(t-(t-e)/2)}function D(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:NaN,t=isNaN(e);t&&i.get().streaming.utcSynchronization.useManifestDateHeaderTimeSource?U():Z(t,e)}function O(e){var t=Date.parse(e);return isNaN(t)&&(t=function(e){var t,n,r=/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})(?::([0-9]*)(\.[0-9]*)?)?(?:([+\-])([0-9]{2})([0-9]{2}))?/.exec(e);return t=Date.UTC(parseInt(r[1],10),parseInt(r[2],10)-1,parseInt(r[3],10),parseInt(r[4],10),parseInt(r[5],10),r[6]&&(parseInt(r[6],10)||0),r[7]&&1e3*parseFloat(r[7])||0),r[9]&&r[10]&&(n=60*parseInt(r[9],10)+parseInt(r[10],10),t+=("+"===r[8]?-1:1)*n*60*1e3),new Date(t).getTime()}(e)),t}function M(e){return Date.parse(e)}function P(e){return Date.parse(e)}function L(e,t,n){n()}function x(e,t,n){var r=O(e);isNaN(r)?n():t(r)}function F(e,t,n,r,i){var a,o,s=!1,u=new XMLHttpRequest,l=i?C.w.HEAD:C.w.GET,c=t.match(/\S+/g);if(t=c.shift(),a=function(){s||(s=!0,c.length?F(e,c.join(" "),n,r,i):r())},o=function(){var t,r;200===u.status&&(t=i?u.getResponseHeader("Date"):u.response,r=e(t),isNaN(r)||(n(r),s=!0))},T.isRelative(t)){var f=E.resolve();f&&(t=T.resolve(t,f.url))}u.open(l,t),u.timeout=5e3,u.onload=o,u.onloadend=a,u.send()}function k(e,t,n){F(P,e,t,n,!0)}function U(){var e=o.getLatestMPDRequestHeaderValueByID("Date"),t=null!==e?new Date(e).getTime():Number.NaN;isNaN(t)?Z(!0):Z(!1,t-Date.now())}function Z(e,r){if(isNaN(h)||isNaN(r)||e||function(e){try{var n,r=G(e),a=isNaN(m)?30:m,o=isNaN(i.get().streaming.utcSynchronization.timeBetweenSyncAttemptsAdjustmentFactor)?2:i.get().streaming.utcSynchronization.timeBetweenSyncAttemptsAdjustmentFactor,s=isNaN(i.get().streaming.utcSynchronization.maximumTimeBetweenSyncAttempts)?600:i.get().streaming.utcSynchronization.maximumTimeBetweenSyncAttempts,u=isNaN(i.get().streaming.utcSynchronization.minimumTimeBetweenSyncAttempts)?2:i.get().streaming.utcSynchronization.minimumTimeBetweenSyncAttempts;r?(n=Math.min(a*o,s),t.debug("Increasing timeBetweenSyncAttempts to ".concat(n))):(n=Math.max(a/o,u),t.debug("Decreasing timeBetweenSyncAttempts to ".concat(n))),m=n}catch(e){}}(r),!e&&!isNaN(r)){d=Date.now(),n=!1;var a=isNaN(h);h=r,a&&A(),t.debug("Completed UTC sync. Setting client - server offset to ".concat(r))}e&&(p=null,n=!1,y.error(new S.Z(w.TIME_SYNC_FAILED_ERROR_CODE,w.TIME_SYNC_FAILED_ERROR_MESSAGE))),_.trigger(l.Z.UPDATE_TIME_SYNC_OFFSET,{offset:r}),_.trigger(l.Z.TIME_SYNCHRONIZATION_COMPLETED)}function B(){if(s&&0!==s.length){var e=s.reduce((function(e,t){return e+t}),0)/s.length;G(e)?t.debug("Completed background UTC sync. Offset is within allowed threshold and is not adjusted."):(t.debug("Completed background UTC sync. Setting client - server offset to ".concat(e)),h=e,_.trigger(l.Z.UPDATE_TIME_SYNC_OFFSET,{offset:h})),r=!1,g=Date.now()}}function G(e){try{if(isNaN(h))return!0;var t=i.get().streaming.utcSynchronization.maximumAllowedDrift&&!isNaN(i.get().streaming.utcSynchronization.maximumAllowedDrift)?i.get().streaming.utcSynchronization.maximumAllowedDrift:100;return e>=h-t&&e<=h+t}catch(e){return!0}}return e={initialize:function(){b(),a={"urn:mpeg:dash:utc:http-head:2014":k,"urn:mpeg:dash:utc:http-xsdate:2014":F.bind(null,O),"urn:mpeg:dash:utc:http-iso:2014":F.bind(null,M),"urn:mpeg:dash:utc:direct:2014":x,"urn:mpeg:dash:utc:http-head:2012":k,"urn:mpeg:dash:utc:http-xsdate:2012":F.bind(null,O),"urn:mpeg:dash:utc:http-iso:2012":F.bind(null,M),"urn:mpeg:dash:utc:direct:2012":x,"urn:mpeg:dash:utc:http-ntp:2014":L,"urn:mpeg:dash:utc:ntp:2014":L,"urn:mpeg:dash:utc:sntp:2014":L}},attemptSync:function(e,t){c=e,n||(function(e){try{if(!e||!i.get().streaming.utcSynchronization.enabled)return!1;var t=isNaN(m)?30:m;return!(d&&t&&!isNaN(t))||(Date.now()-d)/1e3>=t}catch(e){return!0}}(t)?(n=!0,R()):_.trigger(l.Z.TIME_SYNCHRONIZATION_COMPLETED))},setConfig:function(e){e&&(e.dashMetrics&&(o=e.dashMetrics),e.baseURLController&&(E=e.baseURLController),e.errHandler&&(y=e.errHandler),e.settings&&(i=e.settings))},reset:function(){b(),_.off(l.Z.ATTEMPT_BACKGROUND_SYNC,A,e)}},t=(0,f.Z)(v).getInstance().getLogger(e),_.on(l.Z.ATTEMPT_BACKGROUND_SYNC,A,e),e}Wt.__dashjs_factory_name="TimeSyncController";var Xt=c.Z.getSingletonFactory(Wt);Xt.HTTP_TIMEOUT_MS=5e3,c.Z.updateSingletonFactory(Wt.__dashjs_factory_name,Xt);var Qt=Xt;function Jt(){var e,t,n,r,i,a=this.context,o=(0,u.Z)(a).getInstance();return e={attachMediaSource:function(e){var n=window.URL.createObjectURL(t);return e.setSource(n),"managedMediaSource"===r&&(e.setDisableRemotePlayback(!0),t.addEventListener("startstreaming",(function(){o.trigger(d.Z.MANAGED_MEDIA_SOURCE_START_STREAMING)})),t.addEventListener("endstreaming",(function(){o.trigger(d.Z.MANAGED_MEDIA_SOURCE_END_STREAMING)}))),n},createMediaSource:function(){var e="WebKitMediaSource"in window,n="MediaSource"in window;return"ManagedMediaSource"in window?(t=new ManagedMediaSource,r="managedMediaSource",i.info("Created ManagedMediaSource")):n?(t=new MediaSource,r="mediaSource",i.info("Created MediaSource")):e&&(t=new WebKitMediaSource,i.info("Created WebkitMediaSource")),t},detachMediaSource:function(e){e.setSource(null)},setConfig:function(e){e&&e.settings&&(n=e.settings)},setDuration:function e(r){t&&"open"===t.readyState&&(null===r&&isNaN(r)||t.duration!==r&&(r!==1/0||n.get().streaming.buffer.mediaSourceDurationInfinity||(r=Math.pow(2,32)),function(e){for(var t=e.sourceBuffers,n=0;n=0&&e0?Math.max(0,i):0,b(r,i,e),b(n,i,e),A(r),A(n),a=e,c=!1}}catch(e){c=!1,t.error(e)}}function b(e,n,r){try{N(e,(function(i){if(void 0!==i){var a=isNaN(i.duration)?0:i.duration;i.calculatedPresentationTime<=r&&i.calculatedPresentationTime+n+a>=r?D(i,d.Z.EVENT_MODE_ON_START):(C(r,a+n,i.calculatedPresentationTime)||function(e){try{var n=e.eventStream.period.start+e.eventStream.period.duration;return e.calculatedPresentationTime>n}catch(e){return t.error(e),!1}}(i))&&(t.debug("Removing event ".concat(i.id," from period ").concat(i.eventStream.period.id," as it is expired or invalid")),function(e,n){try{var r=n.eventStream.schemeIdUri,i=n.eventStream.period.id,a=n.eventStream.value,o=n.id;e[i][r]=e[i][r].filter((function(e){return a&&e.eventStream.value&&e.eventStream.value!==a||e.id!==o})),0===e[i][r].length&&delete e[i][r]}catch(e){t.error(e)}}(e,i))}}))}catch(e){t.error(e)}}function A(e){try{for(var n in e)e.hasOwnProperty(n)&&0===Object.keys(e[n]).length&&delete e[n]}catch(e){t.error(e)}}function I(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.eventStream.schemeIdUri,i=e.eventStream.value,a=e.id,o=p;t[r]||(t[r]=[]);var s=t[r].findIndex((function(e){return(!i||e.eventStream.value&&e.eventStream.value===i)&&e.id===a}));if(-1===s)t[r].push(e),e.triggeredReceivedEvent=!1,e.triggeredStartEvent=!1,o=y;else if(n){var u=t[r][s];e.triggeredReceivedEvent=u.triggeredReceivedEvent,e.triggeredStartEvent=u.triggeredStartEvent,t[r][s]=e,o=m}return o}function R(e){try{if(1==e.eventStream.value){var n,r=e.calculatedPresentationTime;n=4294967295==e.calculatedPresentationTime?NaN:e.calculatedPresentationTime+e.duration,v.trigger(d.Z.MANIFEST_VALIDITY_CHANGED,{id:e.id,validUntil:r,newDuration:n,newManifestValidAfter:NaN},{mode:d.Z.EVENT_MODE_ON_START})}}catch(e){t.error(e)}}function w(e){try{var n=s.getTime();N(e,(function(e){var t=e.eventStream&&e.eventStream.period&&!isNaN(e.eventStream.period.duration)?e.eventStream.period.duration:NaN,r=e.eventStream&&e.eventStream.period&&!isNaN(e.eventStream.period.start)?e.eventStream.period.start:NaN;if(!isNaN(t)&&!isNaN(r)){var i=e.calculatedPresentationTime;Math.abs(i-n)<300&&D(e,d.Z.EVENT_MODE_ON_START)}}))}catch(e){t.error(e)}}function N(e,n){try{if(e)for(var r=Object.keys(e),i=0;ir}catch(e){return t.error(e),!1}}function D(e,n){try{var r=s.getTime(),i=e.id;if(n===d.Z.EVENT_MODE_ON_RECEIVE&&!e.triggeredReceivedEvent)return t.debug("Received event ".concat(i)),e.triggeredReceivedEvent=!0,void v.trigger(e.eventStream.schemeIdUri,{event:e},{mode:n});e.triggeredStartEvent||(e.eventStream.schemeIdUri===h&&1==e.eventStream.value?0===e.duration&&0===e.presentationTimeDelta||(t.debug("Starting manifest refresh event ".concat(i," at ").concat(r)),function(){try{_(),o.refreshManifest()}catch(e){t.error(e)}}()):"urn:mpeg:dash:event:callback:2015"===e.eventStream.schemeIdUri&&1==e.eventStream.value?(t.debug("Starting callback event ".concat(i," at ").concat(r)),function(e){try{(0,se.Z)(E).create({}).load({method:"get",url:e,request:{responseType:"arraybuffer"}})}catch(e){t.error(e)}}(e.messageData)):(t.debug("Starting event ".concat(i," from period ").concat(e.eventStream.period.id," at ").concat(r)),v.trigger(e.eventStream.schemeIdUri,{event:e},{mode:n})),e.triggeredStartEvent=!0)}catch(e){t.error(e)}}return e={addInlineEvents:function(e,r){try{if(_(),n[r]||(n[r]={}),e)for(var i=0;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&h.updateManifestUpdateInfo({currentTime:G.getTime(),buffered:B.getBufferRange(),presentationStartTime:e[0].start,clientTimeOffset:N.getClientTimeOffset()}),C.length>0&&function(e){0!==e.length?C=C.filter((function(n){var r=e.filter((function(e){return e.id===n.getId()})).length>0||n.getId()===D.getId();return r||(t.debug("Removing stream ".concat(n.getId())),n.reset(!0)),r})):t.warn("No periods included in the current manifest. Skipping the filtering of outdated stream objects.")}(e);for(var n=[],r=0,i=e.length;r2&&void 0!==arguments[2]&&arguments[2];function a(){if(Z&&"open"===Z.readyState){t.debug("MediaSource is open!"),window.URL.revokeObjectURL(r),Z.removeEventListener("sourceopen",a),Z.removeEventListener("webkitsourceopen",a),Fe();var o=h.getCurrentDVRInfo();p.setSeekable(o.range.start,o.range.end),i?(isNaN(e)||G.seek(e,!0,!0),D.setMediaSource(Z).then((function(){D.initializeForTextWithMediaSource(Z)}))):me(e,n)}}function o(){Z.addEventListener("sourceopen",a,!1),Z.addEventListener("webkitsourceopen",a,!1),r=p.attachMediaSource(B),t.debug("MediaSource attached to element. Waiting on open...")}Z?n?me(e,n):(p.detachMediaSource(B),o()):(Z=p.createMediaSource(),o())}function me(e,t){D.activate(Z,t?W:void 0,e).then((function(t){if(t){var n=Object.keys(t);n.length>0&&t[n[0]].getBuffer().changeType&&(Q=!0),W=t}isNaN(e)||(oe.trigger(l.Z.SEEK_TARGET,{time:e},{streamId:D.getId()}),G.seek(e,!1,!0),D.startScheduleControllers()),F=!1,oe.trigger(l.Z.PERIOD_SWITCH_COMPLETED,{toStreamInfo:Ke()})}))}function ye(e){var t=be(e.seekTime);t&&t!==D?t&&t!==D&&(Ee(),function(e,t){var n=e&&!isNaN(e.seekTime)?e.seekTime:NaN,r=D.getProcessors().map((function(t){return t.prepareOuterPeriodPlaybackSeeking(e)}));Promise.all(r).then((function(){he(t,D,n)})).catch((function(e){R.error(e)}))}(e,t)):(Ee(),function(e){D.getProcessors().forEach((function(t){return t.prepareInnerPeriodPlaybackSeeking(e)})),je(ee.USER_REQUEST_STOP_REASON)}(e)),He($.SEEK_START_REASON)}function Ee(){ve()}function ve(){X&&X.length>0&&(X.forEach((function(e){e.deactivate(!0)})),X=[])}function _e(e){if(e.newMediaInfo.streamInfo.id===D.getId()){if(ve(),J.get().streaming.buffer.resetSourceBuffersForTrackSwitch&&e.oldMediaInfo&&e.oldMediaInfo.codec!==e.newMediaInfo.codec){var t=G.getTime();return D.deactivate(!1),void pe(t,!1,!1)}D.prepareTrackChange(e)}}function Te(e,t){try{return J.get().streaming.buffer.reuseExistingSourceBuffers&&(t.isProtectionCompatible(e)||te)&&(Q&&J.get().streaming.buffer.useChangeTypeForTrackSwitch||t.isMediaCodecCompatible(e,t))}catch(e){return!1}}function Se(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(Z&&!e.getPreloaded()){var n=Te(e,t);n&&e.startPreloading(Z,W).then((function(){X.push(e)}))}}function be(e){if(isNaN(e))return null;for(var t=C.length,n=0;nG.getLiveDelay())&&(V=!1,He($.INITIAL_PLAYOUT_START_REASON),G.play())}e&&e.mediaType&&h.addBufferLevel(e.mediaType,new Date,1e3*e.bufferLevel)}function Re(e){e.streamInfo.id===D.getId()&&e.reason&&e.reason.forceReplace&&ve(),ze(e.streamInfo.id).prepareQualityChange(e)}function we(){if(g.getIsDynamic()&&0!==G.getOriginalLiveDelay()&&D){var e=g.getStreamsInfo();if(e.length>0){var t=e[0].manifestInfo,n=Be(e,t);G.computeAndSetLiveDelay(n,t)}}}function Ne(){if(qe()){var e=B.getPlaybackQuality();e&&h.addDroppedFrames(e)}}function Ce(){t.debug("[onPlaybackStarted]"),!V&&H&&He($.RESUME_FROM_PAUSE_START_REASON),V&&(V=!1),K&&(K=!1,J.get().streaming.applyContentSteering&&!y.shouldQueryBeforeStart()&&y.loadSteeringData()),H=!1}function De(e){t.debug("[onPlaybackPaused]"),e.ended||(H=!0,je(ee.USER_REQUEST_STOP_REASON))}function Oe(e){t.debug("Stream with id ".concat(e.streamInfo.id," finished buffering"));var n=e.streamInfo.isLast;Z&&n?(t.info("[onStreamBufferingCompleted] calls signalEndOfStream of mediaSourceController."),p.signalEndOfStream(Z)):Me()}function Me(){if(D&&D.getHasFinishedBuffering())for(var e=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;try{var t=e||D||null;if(t){var n=t.getStreamInfo();return C.filter((function(e){var t=e.getStreamInfo();return t.start>n.start&&n.id!==t.id}))}}catch(e){return[]}}(D),t=0;t0&&void 0!==arguments[0]?arguments[0]:null,t=e||D||null;if(!t)return null;for(var n=t.getStreamInfo(),r=n.start,i=0,a=-1,o=NaN;i0&&(isNaN(o)||u=0?C[a]:null}();n?(t.debug("StreamController onEnded, found next stream with id ".concat(n.getStreamInfo().id,". Switching from ").concat(D.getStreamInfo().id," to ").concat(n.getStreamInfo().id)),he(n,D,NaN)):(t.debug("StreamController no next stream found"),D.setIsEndedEventSignaled(!1)),je(n?ee.END_OF_PERIOD_STOP_REASON:ee.END_OF_CONTENT_STOP_REASON)}e&&e.isLast&&(Pe(),y.stopSteeringRequestTimer())}function Fe(e){var t=e||Ke().manifestInfo.duration;p.setDuration(t)}function ke(e){var t=_.getURIFragmentData();if(!t||!t.t)return NaN;var n=$e()[0].getStreamInfo().start;return t.t=t.t.split(",")[0],Ze(e,t.t,n)}function Ue(e,t){var n=0;return e||(n=$e()[0].getStreamInfo().start),Ze(e,t,n)}function Ze(e,t,n){var r=g.getRegularPeriods()[0],i=t.toString(),a=-1!==i.indexOf("posix:")?"now"===i.substring(6)?Date.now()/1e3:parseFloat(i.substring(6)):NaN;return e&&!isNaN(a)?N.calcPresentationTimeFromWallTime(new Date(1e3*a),r):parseFloat(i)+n}function Be(e,t){try{var n=NaN;if(t&&!isNaN(t.maxFragmentDuration)&&isFinite(t.maxFragmentDuration))return t.maxFragmentDuration;if(e&&1===e.length){var r=e[0],i=[a.Z.VIDEO,a.Z.AUDIO,a.Z.TEXT].reduce((function(e,t){var n=g.getMediaInfoForType(r,t);return n&&!1!==n.isFragmented&&e.push(n),e}),[]).reduce((function(e,t){var n=g.getVoRepresentations(t);return n&&n.length>0&&n.forEach((function(t){t&&e.push(t)})),e}),[]).reduce((function(e,t){var n=g.convertRepresentationToRepresentationInfo(t);return n&&n.fragmentDuration&&!isNaN(n.fragmentDuration)&&e.push(n.fragmentDuration),e}),[]);n=Math.max.apply(Math,function(e){if(Array.isArray(e))return rn(e)}(o=i)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(o)||function(e,t){if(e){if("string"==typeof e)return rn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?rn(e,t):void 0}}(o)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}return isFinite(n)?n:NaN}catch(e){return NaN}var o}function Ge(e){if(e.error)U=!0,Qe();else{t.info("Manifest updated... updating data system wide.");var n=e.manifest;g.updatePeriods(n);var i=g.getUTCTimingSources();!g.getIsDynamic()||i&&0!==i.length||oe.trigger(d.Z.CONFORMANCE_VIOLATION,{level:nn.LEVELS.WARNING,event:nn.EVENTS.NO_UTC_TIMING_ELEMENT});var a=g.getIsDynamic()?i.concat(j.getUTCTimingSources()):i;r.filterUnsupportedFeatures(n).then((function(){E.initialize(n),m.attemptSync(a,g.getIsDynamic())}))}}function qe(){return!!D&&D.getHasVideoTrack()}function Ye(){return!!D&&D.getHasAudioTrack()}function je(e,t){t=t||new Date,Le().forEach((function(n){n.finalisePlayList(t,e)})),h.addPlayList()}function He(e){h.createPlaylistMetrics(1e3*G.getTime(),e)}function Ve(e){if(e.error){var n="";switch(e.error.code){case 1:n="MEDIA_ERR_ABORTED";break;case 2:n="MEDIA_ERR_NETWORK";break;case 3:n="MEDIA_ERR_DECODE",ie.counts.mediaErrorDecode+=1;break;case 4:n="MEDIA_ERR_SRC_NOT_SUPPORTED";break;case 5:n="MEDIA_ERR_ENCRYPTED";break;default:n="UNKNOWN"}"MEDIA_ERR_DECODE"===n&&J.get().errors.recoverAttempts.mediaErrorDecode>=ie.counts.mediaErrorDecode?function(){t.warn("A MEDIA_ERR_DECODE occured: Resetting the MediaSource");var e=G.getTime();D.deactivate(!1),t.warn("MediaSource has been resetted. Resuming playback from time ".concat(e)),pe(e,!1,!1)}():(k=!0,e.error.message&&(n+=" ("+e.error.message+")"),e.error.msExtendedCode&&(n+=" (0x"+(e.error.msExtendedCode>>>0).toString(16).toUpperCase()+")"),t.fatal("Video Element Error: "+n),e.error&&t.fatal(e.error),R.error(new S.Z(e.error.code,n)),Qe())}}function Ke(){return D?D.getStreamInfo():null}function ze(e){for(var t=0,n=C.length;t1&&void 0!==arguments[1]?arguments[1]:NaN;se(),re=t,o.load(e)},loadWithManifest:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:NaN;ue(),re=t,i.setManifest(e)},getActiveStreamProcessors:Le,setConfig:function(e){e&&(e.capabilities&&(n=e.capabilities),e.capabilitiesFilter&&(r=e.capabilitiesFilter),e.manifestLoader&&(o=e.manifestLoader),e.manifestModel&&(c=e.manifestModel),e.mediaPlayerModel&&(Y=e.mediaPlayerModel),e.customParametersModel&&(j=e.customParametersModel),e.protectionController&&(O=e.protectionController),e.adapter&&(g=e.adapter),e.dashMetrics&&(h=e.dashMetrics),e.errHandler&&(R=e.errHandler),e.timelineConverter&&(N=e.timelineConverter),e.videoModel&&(B=e.videoModel),e.playbackController&&(G=e.playbackController),e.serviceDescriptionController&&(q=e.serviceDescriptionController),e.contentSteeringController&&(y=e.contentSteeringController),e.textController&&(M=e.textController),e.abrController&&(T=e.abrController),e.mediaController&&(b=e.mediaController),e.settings&&(J=e.settings),e.baseURLController&&(E=e.baseURLController),e.uriFragmentModel&&(_=e.uriFragmentModel),e.segmentBaseController&&(v=e.segmentBaseController))},setProtectionData:function(e){P=e,O&&O.setProtectionData(P)},getIsStreamSwitchInProgress:function(){return F},switchToVideoElement:function(e){D&&(G.initialize(Ke()),pe(e,!1,!0))},getHasMediaOrInitialisationError:function(){return k||U},getStreams:$e,getActiveStream:function(){return D},getInitialPlayback:function(){return V},getAutoPlay:function(){return L},reset:Qe},t=(0,f.Z)(ae).getInstance().getLogger(e),m=Qt(ae).getInstance(),p=$t(ae).getInstance(),I=x(ae).getInstance(),Xe(),e}an.__dashjs_factory_name="StreamController";var on=c.Z.getSingletonFactory(an);function sn(){var e,t,n,r,i,o,s,c,d,g,h,p,m=this.context,y=(0,u.Z)(m).getInstance();function E(){p.debug("Stopping the gap controller"),i&&(clearInterval(i),i=null),function(){y.off(l.Z.WALLCLOCK_TIME_UPDATED,b,this),y.off(l.Z.INITIAL_STREAM_SWITCH,S,this),y.off(l.Z.PLAYBACK_SEEKING,v,this),y.off(l.Z.BUFFER_REPLACEMENT_STARTED,_,e),y.off(l.Z.TRACK_CHANGE_RENDERED,T,e)}(),i=null,o=NaN,r=0,g=null,h={}}function v(){g&&(clearTimeout(g),g=null)}function _(e){try{if(e.streamId!==c.getActiveStreamInfo().id||e.mediaType!==a.Z.VIDEO&&e.mediaType!==a.Z.AUDIO)return;e.streamId===c.getActiveStreamInfo().id&&(h[e.mediaType]=!0)}catch(e){p.error(e)}}function T(e){e&&e.mediaType&&(h[e.mediaType]=!1)}function S(){i||function(){try{i||(p.debug("Starting the gap controller"),i=setInterval((function(){A()&&N(s.getTime())}),100))}catch(e){}}()}function b(){if(A(n.get().streaming.gaps.enableSeekFix)&&++r>=10){var e=s.getTime();t===e?N(e,!0):(t=e,o=NaN),r=0}}function A(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!c.getActiveStream())return!1;var t=Object.keys(h).some((function(e){return h[e]})),r=!!e&&I();return!t&&n.get().streaming.gaps.jumpGaps&&c.getActiveStreamProcessors().length>0&&(!s.isSeeking()||r)&&!s.isPaused()&&!c.getIsStreamSwitchInProgress()&&!c.getHasMediaOrInitialisationError()}function I(){var e=c.getActiveStream(),t=parseFloat((e.getStartTime()+e.getDuration()).toFixed(5));return s.getTime()+n.get().streaming.gaps.threshold>=t}function R(e,t){try{if(!e||e.length<=1&&t>0)return NaN;for(var r=NaN,i=0;isNaN(r)&&i0?e.end(i-1):0;t=e.start(n)&&t<=e.end(n))return!0;return!1}function N(e){var t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=n.get().streaming.gaps.enableStallFix,a=n.get().streaming.gaps.stallSeek,u=n.get().streaming.gaps.smallGapLimit,l=n.get().streaming.gaps.jumpLargeGaps,f=d.getBufferRange(),h=NaN,m=!1;if(t=R(f,e),!isNaN(t)){var y=f.start(t),E=y-e;E>0&&(E<=u||l)&&(h=y)}var v=s.getTimeToStreamEnd();if(isNaN(h)&&r&&isFinite(v)&&!isNaN(v)&&v0&&o!==h&&h>e&&!g){var _=h-e;if(m){var T=c.getStreamForTime(h),S=T&&!!T.getPreloaded();p.warn("Jumping to end of stream because of gap from ".concat(e," to ").concat(h,". Gap duration: ").concat(_)),s.seek(h,!0,S)}else{var b=s.getIsDynamic(),A=t>0?f.end(t-1):e,I=b?1e3*Math.max(0,_-.1):0;g=window.setTimeout((function(){s.seek(h,!0,!0),p.warn("Jumping gap occuring in period ".concat(c.getActiveStream().getStreamId()," starting at ").concat(A," and ending at ").concat(h,". Jumping by: ").concat(h-A)),g=null}),I)}o=h}}return e={reset:E,setConfig:function(e){e&&(e.settings&&(n=e.settings),e.playbackController&&(s=e.playbackController),e.streamController&&(c=e.streamController),e.videoModel&&(d=e.videoModel))},initialize:function(){!function(){y.on(l.Z.WALLCLOCK_TIME_UPDATED,b,this),y.on(l.Z.INITIAL_STREAM_SWITCH,S,this),y.on(l.Z.PLAYBACK_SEEKING,v,this),y.on(l.Z.BUFFER_REPLACEMENT_STARTED,_,e),y.on(l.Z.TRACK_CHANGE_RENDERED,T,e)}()}},p=(0,f.Z)(m).getInstance().getLogger(e),E(),e}sn.__dashjs_factory_name="GapController";var un=c.Z.getSingletonFactory(sn);function ln(){var e,t,n,r,i,o,c,g,h,p,m=this.context,y=(0,u.Z)(m).getInstance();function E(){t=!1;var e=Be.Z.parseUserAgent();n=e&&e.browser&&e.browser.name&&"safari"===e.browser.name.toLowerCase()}function v(){t=!1}function _(e){if(e.streamId===o.getActiveStreamInfo().id&&h){var t=c.getLiveDelay();c.getBufferLevel()>t/2&&(h=!1)}}function T(e){e.streamId===o.getActiveStreamInfo().id&&(h=e.state===s.Z.BUFFER_EMPTY)}function S(){g.getCatchupModeEnabled()||r.setPlaybackRate(1)}function b(){c.getIsDynamic()&&g.getCatchupModeEnabled()&&(g.getCatchupPlaybackRates().max>0||g.getCatchupPlaybackRates().min<0)&&!c.isPaused()&&!c.isSeeking()&&function(){try{return!(!c.getTime()>0||t)&&(I()===a.Z.LIVE_CATCHUP_MODE_LOLP?function(e,t){try{return Math.abs(A())>0||e0}catch(e){return!1}}())}catch(e){return!1}}()&&function(){if(!t&&r){var e,o=r.getPlaybackRate(),s=g.getCatchupPlaybackRates(),u=c.getBufferLevel(),l=A(),f=g.getCatchupMaxDrift();if(!isNaN(f)&&f>0&&l>f)p.info("[CatchupController]: Low Latency catchup mechanism. Latency too high, doing a seek to live point"),t=!0,c.seekToCurrentLive(!0,!1);else{var d=c.getCurrentLiveLatency(),m=c.getLiveDelay();e=I()===a.Z.LIVE_CATCHUP_MODE_LOLP?function(e,t,n,r,i){var a;if(i0&&(s=1),s}(s,d,m,u);var y=n?.25:.02/(.5/s.max);e&&Math.abs(o-e)>=y&&(p.debug("[CatchupController]: Setting playback rate to ".concat(e)),r.setPlaybackRate(e))}}}()}function A(){return c.getCurrentLiveLatency()-c.getLiveDelay()}function I(){var e=i.get().streaming.liveCatchup.playbackBufferMin;return i.get().streaming.liveCatchup.mode!==a.Z.LIVE_CATCHUP_MODE_LOLP||null===e||isNaN(e)?a.Z.LIVE_CATCHUP_MODE_DEFAULT:a.Z.LIVE_CATCHUP_MODE_LOLP}function R(){g.getCatchupPlaybackRates(!0)}return e={reset:function(){y.off(d.Z.BUFFER_LEVEL_UPDATED,_,e),y.off(d.Z.BUFFER_LEVEL_STATE_CHANGED,T,e),y.off(d.Z.PLAYBACK_PROGRESS,b,e),y.off(d.Z.PLAYBACK_TIME_UPDATED,b,e),y.off(d.Z.PLAYBACK_SEEKED,v,e),y.off(l.Z.SETTING_UPDATED_CATCHUP_ENABLED,S,e),y.off(l.Z.SETTING_UPDATED_PLAYBACK_RATE_MIN,R,e),y.off(l.Z.SETTING_UPDATED_PLAYBACK_RATE_MAX,R,e),y.off(d.Z.STREAM_INITIALIZED,R,e),E(),r.setPlaybackRate(1,!0)},setConfig:function(e){e&&(e.settings&&(i=e.settings),e.videoModel&&(r=e.videoModel),e.streamController&&(o=e.streamController),e.playbackController&&(c=e.playbackController),e.mediaPlayerModel&&(g=e.mediaPlayerModel))},initialize:function(){y.on(d.Z.BUFFER_LEVEL_UPDATED,_,e),y.on(d.Z.BUFFER_LEVEL_STATE_CHANGED,T,e),y.on(d.Z.PLAYBACK_PROGRESS,b,e),y.on(d.Z.PLAYBACK_TIME_UPDATED,b,e),y.on(d.Z.PLAYBACK_SEEKED,v,e),y.on(l.Z.SETTING_UPDATED_CATCHUP_ENABLED,S,e),y.on(l.Z.SETTING_UPDATED_PLAYBACK_RATE_MIN,R,e),y.on(l.Z.SETTING_UPDATED_PLAYBACK_RATE_MAX,R,e),y.on(d.Z.STREAM_INITIALIZED,R,e),R()}},p=(0,f.Z)(m).getInstance().getLogger(e),E(),e}ln.__dashjs_factory_name="CatchupController";var cn=c.Z.getSingletonFactory(ln),fn=[a.Z.SERVICE_DESCRIPTION_DVB_LL_SCHEME],dn="video",gn="audio";function hn(){var e,t,n,r,i,s=this.context;function u(){t={liveDelay:NaN,liveCatchup:{maxDrift:NaN,playbackRate:{min:NaN,max:NaN}},minBitrate:{},maxBitrate:{},initialBitrate:{},contentSteering:null},n=[]}function l(e,n,i){try{t[e][n]=i/1e3}catch(e){r.error(e)}}return e={getServiceDescriptionSettings:function(){return t},getProducerReferenceTimeOffsets:function(){return n},calculateProducerReferenceTimeOffsets:function(e){try{var t=[];if(e&&e.length>0){var s=[a.Z.VIDEO,a.Z.AUDIO,a.Z.TEXT],u=i.getAvailabilityStartTime()/1e3;e.forEach((function(e){var n=s.reduce((function(t,n){return t.concat(i.getAllMediaInfoForType(e,n))}),[]).reduce((function(t,n){return i.getProducerReferenceTimes(e,n).forEach((function(r){var a=i.getVoRepresentations(n);if(a&&a.length>0&&a[0].adaptation&&a[0].segmentInfoType===o.Z.SEGMENT_TEMPLATE){var s=a[0],l=new Date(r[o.Z.WALL_CLOCK_TIME]).getTime()/1e3-(r[o.Z.PRESENTATION_TIME]/s[o.Z.TIMESCALE]-s[o.Z.PRESENTATION_TIME_OFFSET]+e.start),c=u-l;t.push({id:r[o.Z.ID],to:c})}})),t}),[]);t=t.concat(n)}))}n=t}catch(e){r.error(e),n=[]}},applyServiceDescription:function(e){if(e&&e.serviceDescriptions){var i=e.serviceDescriptions.filter((function(e){return fn.includes(e.schemeIdUri)})),o=e.serviceDescriptions.filter((function(e){return null==e.schemeIdUri})),s=i.length>0?i[i.length-1]:o[o.length-1];s&&(s.latency&&s.latency.target>0&&function(e){var i;if(e.schemeIdUri,a.Z.SERVICE_DESCRIPTION_DVB_LL_SCHEME,i=function(e){return{liveDelay:e.latency.target/1e3,maxDrift:!isNaN(e.latency.max)&&e.latency.max>e.latency.target?(e.latency.max-e.latency.target+500)/1e3:NaN,referenceId:e.latency.referenceId||NaN}}(e),n.length>0){var o=function(e){var t,r=0,i=n.filter((function(t){return t.id===e.referenceId}));return 0===i.length?(r=n.length>0?n[0].to:0,t=n[0].id||NaN):(r=i[0].to||0,t=i[0].id||NaN),{to:r,id:t}}(i),s=o.to,u=o.id;t.liveDelay=i.liveDelay-s,t.liveCatchup.maxDrift=i.maxDrift,r.debug("\n Found latency properties coming from service description. Applied time offset of ".concat(s," from ProducerReferenceTime element with id ").concat(u,".\n Live Delay: ").concat(i.liveDelay-s,", Live catchup max drift: ").concat(i.maxDrift,"\n "))}else t.liveDelay=i.liveDelay,t.liveCatchup.maxDrift=i.maxDrift,r.debug("Found latency properties coming from service description: Live Delay: ".concat(i.liveDelay,", Live catchup max drift: ").concat(i.maxDrift))}(s),s.playbackRate&&function(e){var n=e.playbackRate.min?Math.round(1e3*(e.playbackRate.min-1))/1e3:NaN,i=e.playbackRate.max?Math.round(1e3*(e.playbackRate.max-1))/1e3:NaN;t.liveCatchup.playbackRate.min=n,t.liveCatchup.playbackRate.max=i,r.debug("Found latency properties coming from service description: Live catchup min playback rate: ".concat(n)),r.debug("Found latency properties coming from service description: Live catchup max playback rate: ".concat(i))}(s),s.operatingQuality,s.operatingBandwidth&&function(e){if(e&&e.operatingBandwidth&&e.operatingBandwidth.mediaType&&"all"!==e.operatingBandwidth.mediaType){var t={};t.minBandwidth=e.operatingBandwidth.min,t.maxBandwidth=e.operatingBandwidth.max,t.targetBandwidth=e.operatingBandwidth.target;var n=[];e.operatingBandwidth.mediaType===dn||e.operatingBandwidth.mediaType===gn?n.push(e.operatingBandwidth.mediaType):"any"===e.operatingBandwidth.mediaType&&(n.push(gn),n.push(dn)),n.forEach((function(e){isNaN(t.minBandwidth)||l("minBitrate",e,t.minBandwidth),isNaN(t.maxBandwidth)||l("maxBitrate",e,t.maxBandwidth),isNaN(t.targetBandwidth)||l("initialBitrate",e,t.targetBandwidth)}))}}(s),s.contentSteering&&function(e){t.contentSteering=e.contentSteering}(s))}},reset:function(){u()},setConfig:function(e){e&&e.adapter&&(i=e.adapter)}},r=(0,f.Z)(s).getInstance().getLogger(e),u(),e}hn.__dashjs_factory_name="ServiceDescriptionController";var pn=c.Z.getSingletonFactory(hn),mn=n(3973),yn=n.n(mn),En=n(3039);function vn(){var e,t,n,r,i,o,s,c,d=this.context,g=(0,u.Z)(d).getInstance();function h(e,t){return e&&n[t]&&n[t][e]?n[t][e].list:[]}function p(e,t){return e&&n[t]&&n[t][e]?n[t][e].current:null}function m(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e&&e.streamInfo){var i=e.type,s=e.streamInfo,u=s.id,f=p(i,u);if(n[u]&&n[u][i]&&(n[u][i].current=e,n[u][i].current&&(i!==a.Z.TEXT&&!v(e,f)||i===a.Z.TEXT&&e.isFragmented)&&g.trigger(l.Z.CURRENT_TRACK_CHANGED,{oldMediaInfo:f,newMediaInfo:e,switchMode:r.get().streaming.trackSwitchMode[i]},{streamId:u}),!t)){var d=T(e);if(!d||!n[u][i].storeLastSettings)return;d.roles&&(d.role=d.roles[0],delete d.roles),d.accessibility&&(d.accessibility=d.accessibility[0]),d.audioChannelConfiguration&&(d.audioChannelConfiguration=d.audioChannelConfiguration[0]),o[i]=d,c.setSavedMediaSettings(i,d)}}}function y(e,t){e&&t&&(i[e]=t)}function E(e){return e?i[e]:null}function v(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;var n=e.id===t.id,r=e.viewpoint===t.viewpoint,i=JSON.stringify(e.viewpointsWithSchemeIdUri)===JSON.stringify(t.viewpointsWithSchemeIdUri),a=e.lang===t.lang,o=e.codec===t.codec,s=e.roles.toString()===t.roles.toString(),u=JSON.stringify(e.rolesWithSchemeIdUri)===JSON.stringify(t.rolesWithSchemeIdUri),l=e.accessibility.toString()===t.accessibility.toString(),c=JSON.stringify(e.accessibilitiesWithSchemeIdUri)===JSON.stringify(t.accessibilitiesWithSchemeIdUri),f=e.audioChannelConfiguration.toString()===t.audioChannelConfiguration.toString(),d=JSON.stringify(e.audioChannelConfigurationsWithSchemeIdUri)===JSON.stringify(t.audioChannelConfigurationsWithSchemeIdUri);return n&&o&&r&&i&&a&&s&&u&&l&&c&&f&&d}function _(){n={},o={},i={audio:null,video:null,text:null}}function T(e){var t={lang:e.lang,viewpoint:e.viewpoint,roles:e.roles,accessibility:e.accessibility,audioChannelConfiguration:e.audioChannelConfiguration,codec:e.codec};return t.lang||t.viewpoint||t.role&&t.role.length>0||t.accessibility&&t.accessibility.length>0||t.audioChannelConfiguration&&t.audioChannelConfiguration.length>0?t:null}function S(e,t,n){var r=[];return e.forEach((function(e){t(n,e)&&r.push(e)})),0!==r.length?r:e}function b(e,t){return!e.lang||e.lang instanceof RegExp?t.lang.match(e.lang):""!==t.lang&&(0,En.extendedFilter)(t.lang,yn()(e.lang)).length>0}function A(e,t){return void 0===e.index||null===e.index||t.index===e.index}function I(e,t){return!e.viewpoint||e.viewpoint===t.viewpoint}function R(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=!e.role||!!t.roles.filter((function(t){return t===e.role}))[0];return r||t.type===a.Z.AUDIO&&n}function w(e,t){return e.accessibility?!!t.accessibility.filter((function(t){return t===e.accessibility}))[0]:!t.accessibility.length}function N(e,t){return!e.audioChannelConfiguration||!!t.audioChannelConfiguration.filter((function(t){return t===e.audioChannelConfiguration}))[0]}function C(e,t){return!e.codec||e.codec===t.codec}function D(e){var t,n=0,r=[];return e.forEach((function(e){(t=Math.max.apply(Math,e.bitrateList.map((function(e){return e.bandwidth}))))>n?(n=t,r=[e]):t===n&&r.push(e)})),r}function O(e){var t,n=1/0,r=[];return e.forEach((function(e){var i=e.bitrateList.reduce((function(e,t){var n=Math.max(1,t.width*t.height);return e+t.bandwidth/n}),0);(t=i/e.bitrateList.length)n?(n=t,r=[e]):t===n&&r.push(e)})),r}function P(e,n){if(e===a.Z.TEXT)return n[0];var i,o=r.get().streaming.selectionModeForInitialTrack,u=s.getCustomInitialTrackSelectionFunction();if(u&&"function"==typeof u)i=u(n);else switch(o){case a.Z.TRACK_SELECTION_MODE_HIGHEST_SELECTION_PRIORITY:i=function(e){var t,n,r=(t=0,n=[],e.forEach((function(e){isNaN(e.selectionPriority)||(e.selectionPriority>t?(t=e.selectionPriority,n=[e]):e.selectionPriority===t&&n.push(e))})),n);return r.length>1&&(r=D(r)),r.length>1&&(r=M(r)),r}(n);break;case a.Z.TRACK_SELECTION_MODE_HIGHEST_BITRATE:i=function(e){var t=D(e);return t.length>1&&(t=M(t)),t}(n);break;case a.Z.TRACK_SELECTION_MODE_FIRST_TRACK:i=L(n);break;case a.Z.TRACK_SELECTION_MODE_HIGHEST_EFFICIENCY:i=function(e){var t=O(e);return t.length>1&&(t=D(t)),t}(n);break;case a.Z.TRACK_SELECTION_MODE_WIDEST_RANGE:i=function(e){var t=M(e);return t.length>1&&(t=D(e)),t}(n);break;default:t.warn("Track selection mode ".concat(o," is not supported. Falling back to TRACK_SELECTION_MODE_FIRST_TRACK")),i=L(n)}return i.length>0?i[0]:n[0]}function L(e){return e[0]}return e={setInitialMediaSettingsForType:function(e,t){var n=o[e]||E(e),r=h(e,t.id),i=[];n||((n=c.getSavedMediaSettings(e))&&delete n.codec,y(e,n)),r&&0!==r.length&&(n&&(i=S(i=Array.from(r),b,n),i=S(i,A,n),i=S(i,I,n),e===a.Z.AUDIO&&o[e]||(i=S(i,R,n)),i=S(i,w,n),i=S(i,N,n),i=S(i,C,n)),0===i.length?m(P(e,r),!0):i.length>1?m(P(e,i)):m(i[0]))},addTrack:function(e){if(e){var t=e.type;if((i=t)===a.Z.AUDIO||i===a.Z.VIDEO||i===a.Z.TEXT||i===a.Z.IMAGE){var i,o,s=e.streamInfo.id;n[s]||(n[s]={audio:{list:[],storeLastSettings:o=r.get().streaming.saveLastMediaSettingsForCurrentStreamingSession,current:null},video:{list:[],storeLastSettings:o,current:null},text:{list:[],storeLastSettings:o,current:null},image:{list:[],storeLastSettings:o,current:null}});for(var u=n[s][t].list,l=0,c=u.length;l2&&void 0!==arguments[2]&&arguments[2];try{var r=!1;if(e.lang){if(e.lang instanceof RegExp)r=t.lang.match(e.lang);else if(""!==t.lang){var i=yn()(e.lang);i&&(r=(0,En.extendedFilter)(t.lang,i).length>0)}}else r=!0;var o=void 0===e.index||null===e.index||t.index===e.index,s=!e.viewpoint||e.viewpoint===t.viewpoint,u=!e.role||!!t.roles.filter((function(t){return t===e.role}))[0],l=!e.accessibility||!!t.accessibility.filter((function(t){return t===e.accessibility}))[0],c=!e.audioChannelConfiguration||!!t.audioChannelConfiguration.filter((function(t){return t===e.audioChannelConfiguration}))[0];return r&&o&&s&&(u||t.type===a.Z.AUDIO&&n)&&l&&c}catch(e){return!1}},matchSettingsLang:b,matchSettingsIndex:A,matchSettingsViewPoint:I,matchSettingsRole:R,matchSettingsAccessibility:w,matchSettingsAudioChannelConfig:N,saveTextSettingsDisabled:function(){c.setSavedMediaSettings(a.Z.TEXT,null)},setConfig:function(e){e&&(e.domStorage&&(c=e.domStorage),e.settings&&(r=e.settings),e.customParametersModel&&(s=e.customParametersModel))},reset:_},t=(0,f.Z)(d).getInstance().getLogger(e),_(),e}vn.__dashjs_factory_name="MediaController";var _n=c.Z.getSingletonFactory(vn);c.Z.updateSingletonFactory(vn.__dashjs_factory_name,_n);var Tn=_n,Sn=NaN,bn=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.data={baseUrls:t||null,selectedIdx:n||Sn},this.children=[]};function An(){var e,t,n,r,i=this.context,a=Oe(i).getInstance();function o(e,t,n){var r=s(n);e[t]?a.areEqual(r,e[t].data.baseUrls)||(e[t].data.baseUrls=r,e[t].data.selectedIdx=Sn):e[t]=new bn(r)}function s(e){var t=n.getBaseURLsFromElement(e),i=r.getSynthesizedBaseUrlElements(t);return i&&i.length>0&&(t=t.concat(i)),t}function u(e,n){var r=n||t;e(r.data),r.children&&r.children.forEach((function(t){return u(e,t)}))}function l(){t=new bn}return e={reset:l,update:function(e){!function(e){!function(){if(!n||!n.hasOwnProperty("getBaseURLsFromElement")||!n.hasOwnProperty("getRepresentationSortFunction"))throw new Error("setConfig function has to be called previously")}();var r=s(e);a.areEqual(r,t.data.baseUrls)||(t.data.baseUrls=r,t.data.selectedIdx=Sn),e&&e.Period_asArray&&e.Period_asArray.forEach((function(e,r){o(t.children,r,e),e.AdaptationSet_asArray&&e.AdaptationSet_asArray.forEach((function(e,i){o(t.children[r].children,i,e),e.Representation_asArray&&e.Representation_asArray.sort(n.getRepresentationSortFunction()).forEach((function(e,n){o(t.children[r].children[i].children,n,e)}))}))}))}(e)},getForPath:function(e){var n=t,r=[n.data];return e&&e.forEach((function(e){(n=n.children[e])&&r.push(n.data)})),r.filter((function(e){return e.baseUrls.length}))},invalidateSelectedIndexes:function(e){u((function(t){isNaN(t.selectedIdx)||e===t.baseUrls[t.selectedIdx].serviceLocation&&(t.selectedIdx=Sn)}))},setConfig:function(e){e.adapter&&(n=e.adapter),e.contentSteeringController&&(r=e.contentSteeringController)},getBaseUrls:function(e){return s(e)}},l(),e}An.__dashjs_factory_name="BaseURLTreeModel";var In=c.Z.getClassFactory(An);function Rn(e){var t=(e=e||{}).blacklistController;return{select:function(e){return e&&function(e){var t,n,r=0,i=[],a=0;if((n=e.sort((function(e,t){var n=e.dvb_priority-t.dvb_priority;return isNaN(n)?0:n})).filter((function(e,t,n){return!t||n[0].dvb_priority&&e.dvb_priority&&n[0].dvb_priority===e.dvb_priority}))).length)return n.length>1&&(n.forEach((function(e){r+=e.dvb_weight,i.push(r)})),t=Math.floor(Math.random()*(r-1)),i.every((function(e,n){return a=n,!(t0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=0,i=NaN,a=function(){var a=e[r],o=t.findIndex((function(e){return e.serviceLocation&&e.serviceLocation===a}));if(-1!==o&&!n.contains(t[o].serviceLocation))return i=o,"break";r+=1};r0&&(n=i(r.defaultServiceLocationArray,e.baseUrls))}var a=t.getCurrentSteeringResponseData();return e.baseUrls&&e.baseUrls.length&&a&&a.pathwayPriority&&a.pathwayPriority.length&&(n=i(a.pathwayPriority,e.baseUrls)),n},setConfig:function(e){e.blacklistController&&(n=e.blacklistController),e.contentSteeringController&&(t=e.contentSteeringController)}},t=jt(r).getInstance(),e}Dn.__dashjs_factory_name="ContentSteeringSelector";var On=c.Z.getClassFactory(Dn);function Mn(){var e,t,n,r,i,a,o=this.context,s=(0,u.Z)(o).getInstance(),c=(0,N.Z)(o).getInstance();function f(){t.reset()}return e={chooseSelector:function(e){(0,z.PS)(e,"boolean"),a=e?r:n},select:function(e){if(e){if(c.get().streaming.applyContentSteering){var t=i.selectBaseUrlIndex(e);isNaN(t)||-1===t||(e.selectedIdx=t)}if(!isNaN(e.selectedIdx))return e.baseUrls[e.selectedIdx];var r=a.select(e.baseUrls);return r?(e.selectedIdx=e.baseUrls.indexOf(r),r):(s.trigger(l.Z.URL_RESOLUTION_FAILED,{error:new S.Z(w.URL_RESOLUTION_FAILED_GENERIC_ERROR_CODE,w.URL_RESOLUTION_FAILED_GENERIC_ERROR_MESSAGE)}),void(a===n&&f()))}},reset:f,setConfig:function(e){e.selector&&(a=e.selector),e.contentSteeringSelector&&(i=e.contentSteeringSelector)}},t=kt(o).create({updateEventName:l.Z.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED,addBlacklistEventName:l.Z.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD}),n=Cn(o).create({blacklistController:t}),r=wn(o).create({blacklistController:t}),(i=On(o).create()).setConfig({blacklistController:t}),a=n,e}Mn.__dashjs_factory_name="BaseURLSelector";var Pn=c.Z.getClassFactory(Mn);function Ln(){var e,t,n,r,i,a=this.context,o=(0,u.Z)(a).getInstance(),s=(0,Q.Z)(a).getInstance();function c(e){n.update(e),r.chooseSelector(t.getIsDVB(e)),o.trigger(d.Z.BASE_URLS_UPDATED,{baseUrls:f(e)})}function f(e){return n.getBaseUrls(e)}return e={reset:function(){n.reset(),r.reset()},initialize:function(e){n.setConfig({adapter:t,contentSteeringController:i}),c(e)},resolve:function(e){var t=n.getForPath(e).reduce((function(e,t){var n=r.select(t);return n?(s.isRelative(n.url)?e.url=s.resolve(n.url,e.url):(e.url=n.url,e.serviceLocation=n.serviceLocation),e.availabilityTimeOffset=n.availabilityTimeOffset,e.availabilityTimeComplete=n.availabilityTimeComplete,e.queryParams=n.queryParams,e):new Se}),new Se);if(!s.isRelative(t.url))return t},setConfig:function(e){e.baseURLTreeModel&&(n=e.baseURLTreeModel),e.baseURLSelector&&(r=e.baseURLSelector),e.adapter&&(t=e.adapter),e.contentSteeringController&&(i=e.contentSteeringController)},getBaseUrls:f,update:c},n=In(a).create(),r=Pn(a).create(),o.on(l.Z.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED,(function(e){n.invalidateSelectedIndexes(e.entry)}),e),e}Ln.__dashjs_factory_name="BaseURLController";var xn=c.Z.getClassFactory(Ln);function Fn(e){return Fn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fn(e)}function kn(e,t){return kn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},kn(e,t)}function Un(e,t){return!t||"object"!==Fn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Zn(e){return Zn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Zn(e)}var Bn=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&kn(e,t)}(i,e);var t,n,r=(t=i,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Zn(t);if(n){var i=Zn(this).constructor;e=Reflect.construct(r,arguments,i)}else e=r.apply(this,arguments);return Un(this,e)});function i(e,t){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(n=r.call(this)).url=e||null,n.type=t||null,n.mediaType=a.Z.STREAM,n.responseType="",n}return i}(p.Z);function Gn(e){e=e||{};var t=this.context,n=(0,u.Z)(t).getInstance(),r=vt(t).create({errHandler:e.errHandler,dashMetrics:e.dashMetrics,mediaPlayerModel:e.mediaPlayerModel,requestModifier:e.requestModifier,errors:w});return{load:function(e,t,i){var a=function(r,a){t.resolved=!0,t.resolvedContent=r||null,n.trigger(l.Z.XLINK_ELEMENT_LOADED,{element:t,resolveObject:i,error:r||a?null:new S.Z(w.XLINK_LOADER_LOADING_FAILURE_ERROR_CODE,w.XLINK_LOADER_LOADING_FAILURE_ERROR_MESSAGE+e)})};if("urn:mpeg:dash:resolve-to-zero:2013"===e)a(null,!0);else{var o=new Bn(e,C.w.XLINK_EXPANSION_TYPE);r.load({request:o,success:function(e){a(e)},error:function(){a(null)}})}},reset:function(){r&&(r.abort(),r=null)}}}Gn.__dashjs_factory_name="XlinkLoader";var qn=c.Z.getClassFactory(Gn),Yn=function(e){void 0===(e=e||{}).escapeMode&&(e.escapeMode=!0),void 0===e.attributePrefix&&(e.attributePrefix="_"),e.arrayAccessForm=e.arrayAccessForm||"none",e.emptyNodeForm=e.emptyNodeForm||"text",void 0===e.enableToStringFunc&&(e.enableToStringFunc=!0),e.arrayAccessFormPaths=e.arrayAccessFormPaths||[],void 0===e.skipEmptyTextNodesForObj&&(e.skipEmptyTextNodesForObj=!0),void 0===e.stripWhitespaces&&(e.stripWhitespaces=!0),e.datetimeAccessFormPaths=e.datetimeAccessFormPaths||[],void 0===e.useDoubleQuotes&&(e.useDoubleQuotes=!1),e.xmlElementsFilter=e.xmlElementsFilter||[],e.jsonPropertiesFilter=e.jsonPropertiesFilter||[],void 0===e.keepCData&&(e.keepCData=!1),void 0===e.ignoreRoot&&(e.ignoreRoot=!1);function t(e){var t=e.localName;return null==t&&(t=e.baseName),null!=t&&""!=t||(t=e.nodeName),t}function n(e){return"string"==typeof e?e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"):e}function r(e,t,n,r){for(var i=0;i0&&r(e.arrayAccessFormPaths,t,n,i)&&(t[n]=[t[n]])}function a(e){var t=e.split(/[-T:+Z]/g),n=new Date(t[0],t[1]-1,t[2]),r=t[5].split(".");if(n.setHours(t[3],t[4],r[0]),r.length>1&&n.setMilliseconds(r[1]),t[6]&&t[7]){var i=60*t[6]+Number(t[7]);i=0+("-"==(/\d\d-\d\d:\d\d$/.test(e)?"-":"+")?-1*i:i),n.setMinutes(n.getMinutes()-i-n.getTimezoneOffset())}else-1!==e.indexOf("Z",e.length-1)&&(n=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds())));return n}function o(t,n,i,a){return!(1==n&&e.xmlElementsFilter.length>0)||r(e.xmlElementsFilter,t,i,a)}function s(n,u){if(9==n.nodeType){for(var l=new Object,c=n.childNodes,f=0;f0){var o=i.split(".#")[0];return r(e.datetimeAccessFormPaths,t,n,o)?a(t):t}return t}(l.__text,h,u+"."+h)),null!=l["#cdata-section"]&&(l.__cdata=l["#cdata-section"],delete l["#cdata-section"],"property"==e.arrayAccessForm&&delete l["#cdata-section_asArray"]),0==l.__cnt&&"text"==e.emptyNodeForm?l="":1==l.__cnt&&null!=l.__text?l=l.__text:1!=l.__cnt||null==l.__cdata||e.keepCData?l.__cnt>1&&null!=l.__text&&e.skipEmptyTextNodesForObj&&(e.stripWhitespaces&&""==l.__text||""==l.__text.trim())&&delete l.__text:l=l.__cdata,delete l.__cnt,!e.enableToStringFunc||null==l.__text&&null==l.__cdata||(l.toString=function(){return(null!=this.__text?this.__text:"")+(null!=this.__cdata?this.__cdata:"")}),l}if(3==n.nodeType||4==n.nodeType)return n.nodeValue}function u(t,r,i,a){var o="<"+(null!=t&&null!=t.__prefix?t.__prefix+":":"")+r;if(null!=i)for(var s=0;s":">")}function l(e,t){return""}function c(t,n){return"property"==e.arrayAccessForm&&(i="_asArray",-1!==(r=n.toString()).indexOf(i,r.length-i.length))||0==n.toString().indexOf(e.attributePrefix)||0==n.toString().indexOf("__")||t[n]instanceof Function;var r,i}function f(e){var t=0;if(e instanceof Object)for(var n in e)c(e,n)||t++;return t}function d(t,n,i){return 0==e.jsonPropertiesFilter.length||""==i||r(e.jsonPropertiesFilter,t,n,i)}function g(t){var n=[];if(t instanceof Object)for(var r in t)-1==r.toString().indexOf("__")&&0==r.toString().indexOf(e.attributePrefix)&&n.push(r);return n}function h(t){var r="";return t instanceof Object?r+=function(t){var r="";return null!=t.__cdata&&(r+=""),null!=t.__text&&(e.escapeMode?r+=n(t.__text):r+=t.__text),r}(t):null!=t&&(e.escapeMode?r+=n(t):r+=t),r}function p(e,t){return""===e?t:e+"."+t}function m(e,t,n,r){var i="";if(0==e.length)i+=u(e,t,n,!0);else for(var a=0;a0)for(var r in e)if(!c(e,r)&&(""==t||d(e,r,p(t,r)))){var i=e[r],a=g(i);null==i||null==i?n+=u(i,r,a,!0):i instanceof Object?i instanceof Array?n+=m(i,r,a,t):i instanceof Date?(n+=u(i,r,a,!1),n+=i.toISOString(),n+=l(i,r)):f(i)>0||null!=i.__text||null!=i.__cdata?(n+=u(i,r,a,!1),n+=y(i,p(t,r)),n+=l(i,r)):n+=u(i,r,a,!0):(n+=u(i,r,a,!1),n+=h(i),n+=l(i,r))}return n+h(e)}this.parseXmlString=function(e){var t;if(window.ActiveXObject||window,void 0===e)return null;if(window.DOMParser){var n=new window.DOMParser;try{(t=n.parseFromString(e,"text/xml")).getElementsByTagNameNS("*","parsererror").length>0&&(t=null)}catch(e){t=null}}else 0==e.indexOf("")+2)),(t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e);return t},this.asArray=function(e){return void 0===e||null==e?[]:e instanceof Array?e:[e]},this.toXmlDateTime=function(e){return e instanceof Date?e.toISOString():"number"==typeof e?new Date(e).toISOString():null},this.asDateTime=function(e){return"string"==typeof e?a(e):e},this.xml2json=function(e){return s(e)},this.xml_str2json=function(e){var t=this.parseXmlString(e);return null!=t?this.xml2json(t):null},this.json2xml_str=function(e){return y(e,"")},this.json2xml=function(e){var t=this.json2xml_str(e);return this.parseXmlString(t)},this.getVersion=function(){return"1.2.0"}},jn="onLoad";function Hn(e){e=e||{};var t,n,r,i,a,s,c=this.context,f=(0,u.Z)(c).getInstance(),d=(0,Q.Z)(c).getInstance();function g(e,t,n){var r,i,a={};a.elements=e,a.type=t,a.resolveType=n,0===a.elements.length&&p(a);for(var o=0;o")+2),r=t.resolvedContent.substr(0,i)+""+t.resolvedContent.substr(i)+"",t.resolvedContent=a.xml_str2json(r)}(function(e){var t;for(t=0;t=0;o--){if(n=(t=e.elements[o]).type+"_asArray",t.resolvedContent){if(t.resolvedContent)for(s=0;s0&&r.run(i)}(e),"onActuate"===e.resolveType&&f.trigger(l.Z.XLINK_READY,{manifest:i}),e.resolveType===jn)switch(e.type){case o.Z.PERIOD:for(t=0;t=0;a--)(i=e[a]).hasOwnProperty("xlink:href")&&"urn:mpeg:dash:resolve-to-zero:2013"===i["xlink:href"]&&e.splice(a,1);for(a=0;a=0}return!1}),(function(e){return String(e)}))}return i}(Qn);function ir(e){return ir="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ir(e)}function ar(e,t){return ar=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},ar(e,t)}function or(e,t){return!t||"object"!==ir(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function sr(e){return sr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},sr(e)}var ur=/^([-])?P(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/,lr=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ar(e,t)}(i,e);var t,n,r=(t=i,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=sr(t);if(n){var i=sr(this).constructor;e=Reflect.construct(r,arguments,i)}else e=r.apply(this,arguments);return or(this,e)});function i(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),r.call(this,(function(e){for(var t=[o.Z.MIN_BUFFER_TIME,o.Z.MEDIA_PRESENTATION_DURATION,o.Z.MINIMUM_UPDATE_PERIOD,o.Z.TIMESHIFT_BUFFER_DEPTH,o.Z.MAX_SEGMENT_DURATION,o.Z.MAX_SUBSEGMENT_DURATION,o.Z.SUGGESTED_PRESENTATION_DELAY,o.Z.START,a.Z.START_TIME,o.Z.DURATION],n=t.length,r=0;r=0}return!1}),(function(e){return yn()(e)||String(e)}))}return i}(Qn);function Nr(e,t){for(var n=0;n-1?(p&&(t=p.createMssParser(),p.createMssFragmentProcessor(),p.registerEvents()),t):e.indexOf("MPD")>-1||e.indexOf("Patch")>-1?Yr(c).create({debug:f}):t}return t={load:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=new Date,u=new Bn(e,C.w.MPD_TYPE);t&&(u.serviceLocation=t),a&&(u.queryParams=a),u.requestStartDate||(u.requestStartDate=o),g.trigger(l.Z.MANIFEST_LOADING_STARTED,{request:u}),r.load({request:u,success:function(t,r,a){var o,u,c;if(i)if(a&&a!==e?(u=h.parseBaseUrl(a),o=a):(h.isRelative(e)&&(e=h.resolve(e,window.location.href)),u=h.parseBaseUrl(e)),"No Content"!=r)if(null===s&&(s=E(t)),null!==s){i.setMatchers(s.getMatchers()),i.setIron(s.getIron());try{c=s.parse(t)}catch(t){return void g.trigger(l.Z.INTERNAL_MANIFEST_LOADED,{manifest:null,error:new S.Z(w.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE,w.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE+"".concat(e))})}if(c){if(c.url=o||e,c.originalUrl||(c.originalUrl=c.url),d&&d.get().streaming.enableManifestDurationMismatchFix&&c.mediaPresentationDuration&&c.Period_asArray.length>1){var f=c.Period_asArray.reduce((function(e,t){return e+t.duration}),0);!isNaN(f)&&c.mediaPresentationDuration>f&&(n.warn("Media presentation duration greater than duration of all periods. Setting duration to total period duration"),c.mediaPresentationDuration=f)}c.baseUri=u,c.loadedTime=new Date,i.resolveManifestOnLoad(c),g.trigger(l.Z.ORIGINAL_MANIFEST_LOADED,{originalManifest:t})}else g.trigger(l.Z.INTERNAL_MANIFEST_LOADED,{manifest:null,error:new S.Z(w.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE,w.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE+"".concat(e))})}else g.trigger(l.Z.INTERNAL_MANIFEST_LOADED,{manifest:null,error:new S.Z(w.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE,w.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE+"".concat(e))});else g.trigger(l.Z.INTERNAL_MANIFEST_LOADED,{manifest:null})},error:function(t,n,r){g.trigger(l.Z.INTERNAL_MANIFEST_LOADED,{manifest:null,error:new S.Z(w.MANIFEST_LOADER_LOADING_FAILURE_ERROR_CODE,w.MANIFEST_LOADER_LOADING_FAILURE_ERROR_MESSAGE+"".concat(e,", ").concat(r))})}})},reset:function(){g.off(l.Z.XLINK_READY,y,t),p&&p.reset(),i&&(i.reset(),i=null),r&&(r.abort(),r=null)}},n=f.getLogger(t),g.on(l.Z.XLINK_READY,y,t),r=vt(c).create({errHandler:e.errHandler,dashMetrics:e.dashMetrics,mediaPlayerModel:e.mediaPlayerModel,requestModifier:e.requestModifier,urlUtils:h,constants:a.Z,dashConstants:o.Z,errors:w,requestTimeout:e.settings.get().streaming.manifestRequestTimeout}),i=Vn(c).create({errHandler:m,dashMetrics:e.dashMetrics,mediaPlayerModel:e.mediaPlayerModel,requestModifier:e.requestModifier,settings:e.settings}),s=null,t}jr.__dashjs_factory_name="ManifestLoader";var Hr=c.Z.getClassFactory(jr);function Vr(){var e=this.context,t=(0,u.Z)(e).getInstance();return{error:function(e){t.trigger(l.Z.ERROR,{error:e})}}}Vr.__dashjs_factory_name="ErrorHandler";var Kr=c.Z.getSingletonFactory(Vr),zr=n(1715);function Wr(){var e,t,n,r,i,o,s=this.context,c=(0,u.Z)(s).getInstance();function d(e,r){if(!r||!r.Period_asArray||0===r.Period_asArray.length)return Promise.resolve();var i=[];return r.Period_asArray.forEach((function(r){i.push(function(e,r){return new Promise((function(i){if(e&&e.AdaptationSet_asArray&&0!==e.AdaptationSet_asArray.length){var s=[];e.AdaptationSet_asArray.forEach((function(e){t.getIsTypeOf(e,r)&&s.push(function(e,r){return new Promise((function(i){if(e.Representation_asArray&&0!==e.Representation_asArray.length){var s=[],u=[];e.Representation_asArray.forEach((function(i,o){var l=t.getCodec(e,o,!1),c=function(e,t,n){switch(e){case a.Z.VIDEO:return function(e,t){return{codec:t,width:e.width||null,height:e.height||null,framerate:e.frameRate||null,bitrate:e.bandwidth||null}}(t,n);case a.Z.AUDIO:return function(e,t){var n=e.audioSamplingRate||null;return{codec:t,bitrate:e.bandwidth||null,samplerate:n}}(t,n);default:return null}}(r,i,l);u.push(c),s.push(n.supportsCodec(c,r))})),Promise.all(s).then((function(t){e.Representation_asArray=e.Representation_asArray.filter((function(e,n){return t[n]||o.debug("[Stream] Codec ".concat(u[n].codec," not supported ")),t[n]})),i()})).catch((function(){i()}))}else i()}))}(e,r))})),Promise.all(s).then((function(){e.AdaptationSet_asArray=e.AdaptationSet_asArray.filter((function(e){var t=e.Representation_asArray&&e.Representation_asArray.length>0;return t||(c.trigger(l.Z.ADAPTATION_SET_REMOVED_NO_CAPABILITIES,{adaptationSet:e}),o.warn("AdaptationSet has been removed because of no supported Representation")),t})),i()})).catch((function(){i()}))}else i()}))}(r,e))})),Promise.all(i)}return e={setConfig:function(e){e&&(e.adapter&&(t=e.adapter),e.capabilities&&(n=e.capabilities),e.settings&&(r=e.settings),e.customParametersModel&&(i=e.customParametersModel))},filterUnsupportedFeatures:function(e){return new Promise((function(s){var u=[];u.push(d(a.Z.VIDEO,e)),u.push(d(a.Z.AUDIO,e)),Promise.all(u).then((function(){r.get().streaming.capabilities.filterUnsupportedEssentialProperties&&function(e){e&&e.Period_asArray&&0!==e.Period_asArray.length&&e.Period_asArray.forEach((function(e){e.AdaptationSet_asArray=e.AdaptationSet_asArray.filter((function(e){return!e.Representation_asArray||0===e.Representation_asArray.length||(e.Representation_asArray=e.Representation_asArray.filter((function(e){var r=t.getEssentialPropertiesForRepresentation(e);if(r&&r.length>0)for(var i=0;i0)}))}))}(e),function(e){var t=i.getCustomCapabilitiesFilters();t&&0!==t.length&&e&&e.Period_asArray&&0!==e.Period_asArray.length&&e.Period_asArray.forEach((function(e){e.AdaptationSet_asArray=e.AdaptationSet_asArray.filter((function(e){return!e.Representation_asArray||0===e.Representation_asArray.length||(e.Representation_asArray=e.Representation_asArray.filter((function(e){return!t.some((function(t){return!t(e)}))})),e.Representation_asArray&&e.Representation_asArray.length>0)}))}))}(e),s()})).catch((function(){s()}))}))}},o=(0,f.Z)(s).getInstance().getLogger(e),e}Wr.__dashjs_factory_name="CapabilitiesFilter";var Xr=c.Z.getSingletonFactory(Wr),Qr=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.t=null,this.xywh=null,this.track=null,this.id=null,this.s=null,this.r=null};function Jr(){var e;return{initialize:function(t){if(e=new Qr,!t)return null;var n=t.indexOf("#");if(-1!==n)for(var r=t.substr(n+1).split("&"),i=0,a=r.length;i0?(n&&t.warn("Supplied minimum playback rate is a positive value when it should be negative or 0. The supplied rate will not be applied and set to 0: 100% playback speed."),0):e1?(n&&t.warn("Supplied maximum playback rate is out of range and will be limited to ".concat(1,": ").concat(200,"% playback speed.")),1):e}function u(){var e=a.get().streaming.buffer.stableBufferTime>0?a.get().streaming.buffer.stableBufferTime:a.get().streaming.buffer.fastSwitchEnabled?20:12,t=n.getLiveDelay();return!isNaN(t)&&t>0?Math.min(e,t):e}return e={getCatchupMaxDrift:function(){if(!isNaN(a.get().streaming.liveCatchup.maxDrift)&&a.get().streaming.liveCatchup.maxDrift>0)return a.get().streaming.liveCatchup.maxDrift;var e=r.getServiceDescriptionSettings();return e&&e.liveCatchup&&!isNaN(e.liveCatchup.maxDrift)&&e.liveCatchup.maxDrift>0?e.liveCatchup.maxDrift:12},getCatchupModeEnabled:function(){return null!==a.get().streaming.liveCatchup.enabled?a.get().streaming.liveCatchup.enabled:n.getInitialCatchupModeActivated()},getStableBufferTime:u,getInitialBufferLevel:function(){var e=a.get().streaming.buffer.initialBufferLevel;return isNaN(e)||e<0?0:Math.min(u(),e)},getRetryAttemptsForType:function(e){var t=isNaN(a.get().streaming.retryAttempts.lowLatencyMultiplyFactor)?5:a.get().streaming.retryAttempts.lowLatencyMultiplyFactor;return n.getLowLatencyModeEnabled()?a.get().streaming.retryAttempts[e]*t:a.get().streaming.retryAttempts[e]},getRetryIntervalsForType:function(e){var t=isNaN(a.get().streaming.retryIntervals.lowLatencyReductionFactor)?10:a.get().streaming.retryIntervals.lowLatencyReductionFactor;return n.getLowLatencyModeEnabled()?a.get().streaming.retryIntervals[e]/t:a.get().streaming.retryIntervals[e]},getCatchupPlaybackRates:function(e){var t=a.get().streaming.liveCatchup.playbackRate;if(!isNaN(t.min)||!isNaN(t.max))return{min:o(t.min,e),max:s(t.max,e)};var n=r.getServiceDescriptionSettings();if(n&&n.liveCatchup&&(!isNaN(n.liveCatchup.playbackRate.min)||!isNaN(n.liveCatchup.playbackRate.max))){var i=n.liveCatchup.playbackRate;return{min:o(i.min,e),max:s(i.max,e)}}return{min:-.5,max:.5}},getAbrBitrateParameter:function(e,t){try{var n=a.get().streaming.abr[e][t];if(!isNaN(n)&&-1!==n)return n;var i=r.getServiceDescriptionSettings();return i&&i[e]&&!isNaN(i[e][t])?i[e][t]:-1}catch(e){return-1}},setConfig:function(e){e.playbackController&&(n=e.playbackController),e.serviceDescriptionController&&(r=e.serviceDescriptionController)},reset:function(){}},t=(0,f.Z)(i).getInstance().getLogger(e),e}ri.__dashjs_factory_name="MediaPlayerModel";var ii=c.Z.getSingletonFactory(ri),ai=n(1767);function oi(e){var t=(e=e||{}).abrController,n=e.switchHistory,r=e.droppedFramesHistory,i=e.currentRequest,a=e.useBufferOccupancyABR,o=e.useL2AABR,s=e.useLoLPABR,u=e.streamProcessor?e.streamProcessor.getScheduleController():null,l=e.streamProcessor?e.streamProcessor.getRepresentationInfo():null,c=e.videoModel?e.videoModel:null;function f(){return l?l.mediaInfo:null}return{getMediaType:function(){var e=f();return e?e.type:null},getMediaInfo:f,getDroppedFramesHistory:function(){return r},getCurrentRequest:function(){return i},getSwitchHistory:function(){return n},getStreamInfo:function(){var e=f();return e?e.streamInfo:null},getScheduleController:function(){return u},getAbrController:function(){return t},getRepresentationInfo:function(){return l},useBufferOccupancyABR:function(){return a},useL2AABR:function(){return o},useLoLPABR:function(){return s},getVideoModel:function(){return c}}}oi.__dashjs_factory_name="RulesContext";var si=c.Z.getClassFactory(oi),ui=n(2068);function li(){var e=[],t=[];return{push:function(n){n.newValue===ui.Z.NO_CHANGE&&(n.newValue=n.oldValue),e[n.oldValue]||(e[n.oldValue]={noDrops:0,drops:0,dropSize:0});var r=n.newValue-n.oldValue,i=r<0?1:0,a=i?-r:0,o=i?0:1;if(e[n.oldValue].drops+=i,e[n.oldValue].dropSize+=a,e[n.oldValue].noDrops+=o,t.push({idx:n.oldValue,noDrop:o,drop:i,dropSize:a}),t.length>8){var s=t.shift();e[s.idx].drops-=s.drop,e[s.idx].dropSize-=s.dropSize,e[s.idx].noDrops-=s.noDrop}},getSwitchRequests:function(){return e},reset:function(){e=[],t=[]}}}li.__dashjs_factory_name="SwitchRequestHistory";var ci=c.Z.getClassFactory(li);function fi(){var e={},t={},n={};return{push:function(r,i,a){if(i){e[r]||(e[r]=[],t[r]=0,n[r]=0);var o=a&&a.droppedVideoFrames?a.droppedVideoFrames:0,s=a&&a.totalVideoFrames?a.totalVideoFrames:0,u=o-t[r];t[r]=o;var l=s-n[r];n[r]=s;var c=e[r];isNaN(i)||(c[i]?(c[i].droppedVideoFrames+=u,c[i].totalVideoFrames+=l):c[i]={droppedVideoFrames:u,totalVideoFrames:l})}},getFrameHistory:function(t){return e[t]},clearForStream:function(r){try{delete e[r],delete t[r],delete n[r]}catch(e){}},reset:function(){e={},t={},n={}}}}fi.__dashjs_factory_name="DroppedFramesHistory";var di=c.Z.getClassFactory(fi);function gi(e){var t,n,r,i,o,s=this.context,l=(e=e||{}).settings,c=(0,u.Z)(s).getInstance();function f(e,t,n,r){var i=Math.pow(.5,n/r.fast);e.fastEstimate=(1-i)*t+i*e.fastEstimate;var a=Math.pow(.5,n/r.slow);e.slowEstimate=(1-a)*t+a*e.slowEstimate,e.totalWeight+=n}function g(e,s,u){return l.get().streaming.abr.movingAverageMethod!==a.Z.MOVING_AVERAGE_SLIDING_WINDOW?function(e,t){var n=e?o.throughputHalfLife:o.latencyHalfLife,a=e?r[t]:i[t];if(!a||a.totalWeight<=0)return NaN;var s=a.fastEstimate/(1-Math.pow(.5,a.totalWeight/n.fast)),u=a.slowEstimate/(1-Math.pow(.5,a.totalWeight/n.slow));return e?Math.min(s,u):Math.max(s,u)}(e,s):function(e,r,i){var a=function(e,r,i){var a,o;if(e?(a=t[r],o=i?3:4):(a=n[r],o=4),a){if(o>=a.length)o=a.length;else if(e)for(var s=1;s=1.3||u<=1/1.3)&&(o+=1)===a.length)break}}else o=0;return o}(e,r,i),o=(e?t:n)[r];return 0!==a&&o&&0!==o.length?(o=o.slice(-a)).reduce((function(e,t){return e+t}))/o.length:NaN}(e,s,u)}function h(e,t){return g(!0,e,t)}function p(e){t[e]=t[e]||[],n[e]=n[e]||[],r[e]=r[e]||{fastEstimate:0,slowEstimate:0,totalWeight:0},i[e]=i[e]||{fastEstimate:0,slowEstimate:0,totalWeight:0}}function m(){t={},n={},r={},i={}}var y={push:function(e,s,u){if(s.trace&&s.trace.length){var g,h=s.tresponse.getTime()-s.trequest.getTime()||1,m=s._tfinish.getTime()-s.tresponse.getTime()||1,y=s.trace.reduce((function(e,t){return e+t.b[0]}),0),E=0;if(0!==(g=s._fileLoaderType&&s._fileLoaderType===a.Z.FILE_LOADER_TYPES.FETCH?s.trace.reduce((function(e,t){return e+t.d}),0):u?m:h+m)&&(E=Math.round(8*y/g)),s.cmsd){var v=s.cmsd.dynamic&&s.cmsd.dynamic.etp?s.cmsd.dynamic.etp:null;if(v){var _=l.get().streaming.cmsd.abr.etpWeightRatio;_>0&&_<=1&&(E=E*(1-_)+v*_)}}if(p(e),function(e,t,n){return e===a.Z.VIDEO?n0&&!t[e].hasCachedEntries)return;t[e].hasCachedEntries=!0}else t[e]&&t[e].hasCachedEntries&&function(e){delete t[e],delete n[e],delete r[e],delete i[e],p(e)}(e);t[e].push(E),c.trigger(d.Z.THROUGHPUT_MEASUREMENT_STORED,{throughput:E,mediaType:e,httpRequest:s}),t[e].length>20&&t[e].shift(),n[e].push(h),n[e].length>20&&n[e].shift(),f(r[e],E,.001*m,o.throughputHalfLife),f(i[e],h,1,o.latencyHalfLife)}},getAverageThroughput:h,getSafeAverageThroughput:function(e,t){var n=h(e,t);return isNaN(n)||(n*=l.get().streaming.abr.bandwidthSafetyFactor),n},getAverageLatency:function(e){return g(!1,e)},reset:m};return o={throughputHalfLife:{fast:3,slow:8},latencyHalfLife:{fast:1,slow:2}},m(),y}gi.__dashjs_factory_name="ThroughputHistory";var hi=c.Z.getClassFactory(gi);function pi(){var e,t,n,r,i,o,c,g,h,p,m,y,E,v,_,S,b,A,I,R,w,N,D,O,M,P,L,x=this.context,F=(0,f.Z)(x).getInstance(),k=(0,u.Z)(x).getInstance();function U(){i={},o={},g={},c={},R={},D={},O={},M={},void 0===p&&(p=!1),w&&w.reset(),I=void 0,w=void 0,N=void 0,clearTimeout(h),h=null}function Z(t){var i=t.request.mediaType,a=t.streamId;if(i&&a&&c[a]&&L.get().streaming.abr.autoSwitchBitrate[i]){var o=c[a][i];if(o){var u=si(x).create({abrController:e,streamProcessor:o,currentRequest:t.request,useBufferOccupancyABR:D[i],useL2AABR:O[i],useLoLPABR:M[i],videoModel:v}),l=n.shouldAbandonFragment(u,a);l.quality>ui.Z.NO_CHANGE&&o.getFragmentModel().getRequests({state:T.FRAGMENT_MODEL_LOADING,index:t.request.index})[0]&&(g[a][i].state=s.Z.ABANDON_LOAD,R[a][i].reset(),R[a][i].push({oldValue:j(i,a),newValue:l.quality,confidence:1,reason:l.reason}),H(i,r.getActiveStreamInfo(),l.quality,l.reason),clearTimeout(h),h=setTimeout((function(){g[a][i].state=s.Z.ALLOW_LOAD,h=null}),L.get().streaming.abandonLoadTimeout))}}}function B(e){e.mediaType===a.Z.VIDEO&&(void 0!==I&&w.push(e.streamId,I,v.getPlaybackQuality()),I=e.newQuality)}function G(e){var n,r;e.metric!==s.Z.HTTP_REQUEST||!e.value||e.value.type!==C.w.MEDIA_SEGMENT_TYPE||e.mediaType!==a.Z.AUDIO&&e.mediaType!==a.Z.VIDEO||N.push(e.mediaType,e.value,L.get().streaming.abr.useDeadTimeLatency),e.metric!==s.Z.BUFFER_LEVEL||e.mediaType!==a.Z.AUDIO&&e.mediaType!==a.Z.VIDEO||(n=e.mediaType,r=.001*e.value.level,L.get().streaming.abr.ABRStrategy===a.Z.ABR_STRATEGY_DYNAMIC&&function(e,n){try{var r=_.getStableBufferTime(),i=r,a=.5*r,o=D[e],s=n>(o?a:i);D[e]=s,s!==o&&(s?t.info("["+e+"] switching from throughput to buffer occupancy ABR rule (buffer: "+n.toFixed(3)+")."):t.info("["+e+"] switching from buffer occupancy to throughput ABR rule (buffer: "+n.toFixed(3)+")."))}catch(e){t.error(e)}}(n,r))}function q(e,n){try{var r;return i[n]=i[n]||{},i[n].hasOwnProperty(e)||(i[n][e]=0),r=function(e,t){var n=i[t][e],r=n;if(!c[t]||!c[t][e])return r;var a=Y(e,t);void 0!==a&&(r=Math.max(n,a));var o=function(e,t){try{var n=_.getAbrBitrateParameter("maxBitrate",e);return n>-1?W(c[t][e].getMediaInfo(),n,t):void 0}catch(e){return}}(e,t);return void 0!==o&&(r=Math.min(r,o)),r}(e,n),r=function(e,t,n){var r=i[n][t],a=L.get().streaming.abr.maxRepresentationRatio[t];return isNaN(a)||a>=1||a<0?e:Math.min(e,Math.round(r*a))}(r,e,n),r=function(e,t,n){if(t!==a.Z.VIDEO||!L.get().streaming.abr.limitBitrateByPortal||!c[n]||!c[n][t])return e;p||Q();var r=c[n][t].getStreamInfo(),i=E.getAdaptationForType(r.index,t,r).Representation_asArray,o=e;if(m>0&&y>0){for(;o>0&&i[o]&&m-1){var r=c[t][e].getMediaInfo(),i=X(r),a=W(r,n,t);return i[a]&&a1&&void 0!==arguments[1]?arguments[1]:null;try{return t||(t=r.getActiveStreamInfo().id),e&&c[t]&&c[t][e]&&t?(o[t]=o[t]||{},o[t].hasOwnProperty(e)||(o[t][e]=0),o[t][e]):0}catch(e){return 0}}function H(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(t&&t.id&&e){var i=t.id,a=j(e,i);(0,z.SE)(n);var o=q(e,i);n!==a&&n>=0&&n<=o&&V(e,a,n,o,r,i)}}function V(e,n,r,i,a,s){if(e&&c[s]&&c[s][e]){var u=c[s][e].getStreamInfo(),f=u&&u.manifestInfo&&u.manifestInfo.isDynamic,d=P.getCurrentBufferLevel(e);t.info("Stream ID: "+s+" ["+e+"] switch from "+n+" to "+r+"/"+i+" (buffer: "+d+") "+(a?JSON.stringify(a):".")),o[s]=o[s]||{},o[s][e]=r;var g=K(s,e,r);k.trigger(l.Z.QUALITY_CHANGE_REQUESTED,{oldQuality:n,newQuality:r,reason:a,streamInfo:u,bitrateInfo:g,maxIdx:i,mediaType:e},{streamId:u.id,mediaType:e});var h=N.getAverageThroughput(e,f);isNaN(h)||A.setSavedBitrateSettings(e,h)}}function K(e,t,n){if(t&&c&&c[e]&&c[e][t]){var r=X(c[e][t].getMediaInfo());return r[n]?r[n]:null}return null}function W(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=e&&e.type?c[n][e.type].getRepresentationInfo():null;if(L.get().streaming.abr.useDeadTimeLatency&&r&&i&&i.fragmentDuration){r/=1e3;var a=i.fragmentDuration;if(r>a)return 0;var o=r/a;t*=1-o}for(var s=X(e),u=s.length-1;u>=0;u--){var l=s[u];if(1e3*t>=l.bitrate)return u}return 0}function X(e){var t=[];if(!e||!e.bitrateList)return t;for(var n,r=e.bitrateList,i=e.type,a=0,o=r.length;a1&&void 0!==arguments[1]?arguments[1]:null;if(t||(t=r.getActiveStreamInfo().id),e&&c&&c[t]&&c[t][e]){var n=q(e,t),i=X(c[t][e].getMediaInfo());return i[n]?i[n]:null}return null},getMinAllowedIndexFor:Y,getMaxAllowedIndexFor:q,getInitialBitrateFor:function(e,t){if(function(){if(!A||!A.hasOwnProperty("getSavedBitrateSettings"))throw new Error(a.Z.MISSING_CONFIG_ERROR)}(),e===a.Z.TEXT)return NaN;var n=A.getSavedBitrateSettings(e),r=_.getAbrBitrateParameter("initialBitrate",e),i=L.get().streaming.abr.initialRepresentationRatio[e];if(-1===r)if(i>-1){var o=c[t][e].getStreamInfo(),s=E.getAdaptationForType(o.index,e,o).Representation_asArray;r=Array.isArray(s)?s[Math.max(Math.round(s.length*i)-1,0)].bandwidth/1e3:0}else r=isNaN(n)?e===a.Z.VIDEO?1e3:100:n;return r},getQualityFor:j,getAbandonmentStateFor:function(e,t){return g[e]&&g[e][t]?g[e][t].state:null},setPlaybackQuality:H,checkPlaybackQuality:function(t,r){try{if(!(t&&c&&c[r]&&c[r][t]))return!1;if(w){var i=v.getPlaybackQuality();i&&w.push(r,I,i)}if(!L.get().streaming.abr.autoSwitchBitrate[t])return!1;var a=j(t,r),o=si(x).create({abrController:e,switchHistory:R[r][t],droppedFramesHistory:w,streamProcessor:c[r][t],currentValue:a,useBufferOccupancyABR:D[t],useL2AABR:O[t],useLoLPABR:M[t],videoModel:v}),u=Y(t,r),l=q(t,r),f=n.getMaxQuality(o),d=f.quality;return void 0!==u&&(d>ui.Z.NO_CHANGE?d:a)l&&(d=l),R[r][t].push({oldValue:a,newValue:d}),d>ui.Z.NO_CHANGE&&d!==a&&(g[r][t].state===s.Z.ALLOW_LOAD||d0}function y(){if(n&&m()&&0===n.playbackRate){var e=document.createEvent("Event");e.initEvent("waiting",!0,!1),n.dispatchEvent(e)}}function E(e,t){n&&n.addEventListener(e,t)}function v(e,t){n&&n.removeEventListener(e,t)}function _(){return n?n.readyState:NaN}function T(){return n?n.buffered:null}function S(e,t,r,i,a){if(n)for(var o=0;o=e?(t(),null):function(e,t){var n=function n(){v(e,n),t(e)};return E(e,n),{func:n,event:e}}(Ei.get(e),t)}return e={addEventListener:E,addTextTrack:function(e,t,r,i,a){if(!n)return null;var o=S(e,t,r,i,a);return o||((o=n.addTextTrack(e,t,r)).isEmbedded=a,o.isTTML=i),o},appendChild:function(e){n&&(n.appendChild(e),void 0!==e.isTTML&&(n.textTracks[n.textTracks.length-1].isTTML=e.isTTML,n.textTracks[n.textTracks.length-1].isEmbedded=e.isEmbedded))},getBufferRange:T,getClientHeight:function(){return n?n.clientHeight:NaN},getClientWidth:function(){return n?n.clientWidth:NaN},getElement:function(){return n},getEnded:function(){return n?n.ended:null},getPlaybackQuality:function(){if(!n)return null;var e="webkitDroppedFrameCount"in n&&"webkitDecodedFrameCount"in n,t=null;return"getVideoPlaybackQuality"in n?t=n.getVideoPlaybackQuality():e&&(t={droppedVideoFrames:n.webkitDroppedFrameCount,totalVideoFrames:n.webkitDroppedFrameCount+n.webkitDecodedFrameCount,creationTime:new Date}),t},getPlaybackRate:function(){return n?n.playbackRate:null},getPlayedRanges:function(){return n?n.played:null},getReadyState:_,getSource:function(){return n?n.src:null},getTTMLRenderingDiv:function(){return o},getTextTrack:S,getTextTracks:function(){return n?n.textTracks:[]},getTime:function(){return n?isNaN(r)?n.currentTime:r:null},getVideoHeight:function(){return n?n.videoHeight:NaN},getVideoRelativeOffsetLeft:function(){if(n){var e=n.parentNode.host||n.parentNode;return e?n.getBoundingClientRect().left-e.getBoundingClientRect().left:NaN}return NaN},getVideoRelativeOffsetTop:function(){if(n){var e=n.parentNode.host||n.parentNode;return e?n.getBoundingClientRect().top-e.getBoundingClientRect().top:NaN}return NaN},getVideoWidth:function(){return n?n.videoWidth:NaN},getVttRenderingDiv:function(){return s},initialize:function(){g.on(l.Z.PLAYBACK_PLAYING,y,this)},isPaused:function(){return n?n.paused:null},isSeeking:function(){return n?n.seeking||!isNaN(r):null},isStalled:m,pause:function(){n&&(n.pause(),n.autoplay=!1)},play:function(){if(n){n.autoplay=!0;var e=n.play();e&&e.catch&&"undefined"!=typeof Promise&&e.catch((function(e){"NotAllowedError"===e.name&&g.trigger(l.Z.PLAYBACK_NOT_ALLOWED),t.warn("Caught pending play exception - continuing (".concat(e,")"))}))}},removeChild:function(e){n&&n.removeChild(e)},removeEventListener:v,reset:function(){clearTimeout(c),g.off(l.Z.PLAYBACK_PLAYING,y,this)},setCurrentTime:function(e,t){n&&(i&&i.func&&i.event&&v(i.event,i.func),r=e,i=b(a.Z.VIDEO_ELEMENT_READY_STATES.HAVE_METADATA,(function(){if(n)if(n.currentTime!==r)try{r=t?function(e){var t=T(),n=e,r=9999999999;if(t)for(var i=0;i=a&&e<=o)return e;s1&&void 0!==arguments[1]&&arguments[1];n&&(!t&&n.readyState<=2&&e>0?n.addEventListener("canplay",p):n.playbackRate=e)},setSource:function(e){n&&(e?n.src=e:(n.removeAttribute("src"),n.load()))},setStallState:function(e,t){!function(e,t){t?function(e){null!==e&&n&&!n.seeking&&-1===h.indexOf(e)&&h.push(e)}(e):function(e){var t=h.indexOf(e);null!==e&&-1!==t&&h.splice(t,1)}(e)}(e,t)},setTTMLRenderingDiv:function(e){(o=e).style.position="absolute",o.style.display="flex",o.style.overflow="hidden",o.style.pointerEvents="none",o.style.top=0,o.style.left=0},setVttRenderingDiv:function(e){s=e},waitForReadyState:b,setDisableRemotePlayback:function(e){n&&(n.disableRemotePlayback=e)}},t=(0,f.Z)(d).getInstance().getLogger(e),r=NaN,e}vi.__dashjs_factory_name="VideoModel";var _i=c.Z.getSingletonFactory(vi),Ti=[{oldKey:"dashjs_vbitrate",newKey:"dashjs_video_bitrate"},{oldKey:"dashjs_abitrate",newKey:"dashjs_audio_bitrate"},{oldKey:"dashjs_vsettings",newKey:"dashjs_video_settings"},{oldKey:"dashjs_asettings",newKey:"dashjs_audio_settings"}],Si="dashjs_?_bitrate",bi="dashjs_?_settings",Ai="localStorage",Ii="lastBitrate",Ri="lastMediaSettings";function wi(e){e=e||{};var t,n,r,i=this.context,o=e.settings;function s(e){if(void 0!==r)return r;var t;r=!1;try{"undefined"!=typeof window&&(t=window[e])}catch(e){return n.warn("DOMStorage access denied: "+e.message),r}if(!t||e!==Ai&&"sessionStorage"!==e)return r;try{t.setItem("1","1"),t.removeItem("1"),r=!0}catch(e){n.warn("DOMStorage is supported, but cannot be used: "+e.message)}return r}function u(){var e=6e5;return Math.round((new Date).getTime()/e)*e}function l(e,t){return s(e)&&o.get().streaming[t+"CachingInfo"].enabled}function c(){if(!o)throw new Error(a.Z.MISSING_CONFIG_ERROR)}return t={getSavedBitrateSettings:function(e){if(c(),!o.get().streaming.lastBitrateCachingInfo.enabled)return NaN;var t=NaN;if(l(Ai,Ii)){var r=Si.replace(/\?/,e);try{var i=JSON.parse(localStorage.getItem(r))||{},a=(new Date).getTime()-parseInt(i.timestamp,10)>=o.get().streaming.lastBitrateCachingInfo.ttl||!1,s=parseFloat(i.bitrate);isNaN(s)||a?a&&localStorage.removeItem(r):(t=s,n.debug("Last saved bitrate for "+e+" was "+s))}catch(e){return null}}return t},setSavedBitrateSettings:function(e,t){if(l(Ai,Ii)&&t){var r=Si.replace(/\?/,e);try{localStorage.setItem(r,JSON.stringify({bitrate:t.toFixed(3),timestamp:u()}))}catch(e){n.error(e.message)}}},getSavedMediaSettings:function(e){if(c(),!o.get().streaming.lastMediaSettingsCachingInfo.enabled)return null;var t=null;if(l(Ai,Ri)){var n=bi.replace(/\?/,e);try{var r=JSON.parse(localStorage.getItem(n))||{},i=(new Date).getTime()-parseInt(r.timestamp,10)>=o.get().streaming.lastMediaSettingsCachingInfo.ttl||!1;t=r.settings,i&&(localStorage.removeItem(n),t=null)}catch(e){return null}}return t},setSavedMediaSettings:function(e,t){if(l(Ai,Ri)){var r=bi.replace(/\?/,e);try{localStorage.setItem(r,JSON.stringify({settings:t,timestamp:u()}))}catch(e){n.error(e.message)}}}},n=(0,f.Z)(i).getInstance().getLogger(t),s(Ai)&&Ti.forEach((function(e){var t=localStorage.getItem(e.oldKey);if(t){localStorage.removeItem(e.oldKey);try{localStorage.setItem(e.newKey,t)}catch(e){n.error(e.message)}}})),t}wi.__dashjs_factory_name="DOMStorage";var Ni=c.Z.getSingletonFactory(wi),Ci=n(2032),Di=n(2011);function Oi(){var e,t,n,r,i,a,o,s,u,l,c,f,d,g=this.context;function h(e,n,i,a){var o=null,u=e?d.resolve(e.path):null,l=a||{init:!0,url:u?u.url:void 0,range:{start:0,end:1500},searching:!1,bytesLoaded:0,bytesToLoad:1500,mediaType:n};t.debug("Start searching for initialization.");var c=E(l);s.load({request:c,success:function(t){if(l.bytesLoaded=l.range.end,!(o=r.findInitRange(t)))return l.range.end=l.bytesLoaded+l.bytesToLoad,h(e,n,i,l);e.range=o,i(e)},error:function(){i(e)}}),t.debug("Perform init search: "+l.url)}function m(e,n,i,a,o,u){if(i&&(void 0===i.start||void 0===i.end)){var l=i?i.toString().split("-"):null;i=l?{start:parseFloat(l[0]),end:parseFloat(l[1])}:null}o=o||y;var c=null,f=null,g=!!i,h=e?d.resolve(e.path):null,p={init:!1,url:h?h.url:void 0,range:g?i:{start:0,end:1500},searching:!g,bytesLoaded:u?u.bytesLoaded:0,bytesToLoad:1500,mediaType:n},v=E(p);s.load({request:v,success:function(i){var s=p.bytesToLoad,u=i.byteLength;if(p.bytesLoaded=p.range.end-p.range.start,c=r.parse(i),(f=c.getBox("sidx"))&&f.isComplete){var l,d,g=f.references;if(null!=g&&g.length>0&&(l=1===g[0].reference_type),l){var h,y,E,v;t.debug("Initiate multiple SIDX load."),p.range.end=p.range.start+f.size;var _=[],T=0,S=(f.offset||p.range.start)+f.size,b=function(t){t?(_=_.concat(t),++T>=y&&(_.sort((function(e,t){return e.startTime-t.startTime<0?-1:0})),o(_,e,a))):o(null,e,a)};for(h=0,y=g.length;h16777215?(n.getUint32(r)!==e.tag&&(i=!1),a=4):e.tag>65535?(256*n.getUint16(r)+n.getUint8(r+2)!==e.tag&&(i=!1),a=3):e.tag>255?(n.getUint16(r)!==e.tag&&(i=!1),a=2):(n.getUint8(r)!==e.tag&&(i=!1),a=1),!i&&e.required&&!t)throw new Error("required tag not found");return i&&(r+=a),i}function a(e){var t=1,i=128,a=-1,o=0,s=n.getUint8(r),u=0;for(u=0;u<8;u+=1){if((s&i)===i){o=void 0===e?s&~i:s,a=u;break}i>>=1}for(u=0;u4)return function(e){for(var t=Math.floor(Number.MAX_SAFE_INTEGER/256),i=0,a=0;at)throw new Error("Value exceeds safe integer limit");i*=256;var o=n.getUint8(r+a);if(i>Number.MAX_SAFE_INTEGER-o)throw new Error("Value exceeds safe integer limit");i+=o}return r+=e,i}(e);for(var t=0,i=0;i>>0},moreData:function(){return r1&&a){var l=d(a,n);if(i[a.id]&&i[a.id][n])for(var f=0,g=u.length;f0))return u;s=r[0].mpd.manifest}var l=E(e,o),c=t.getAdaptationsForType(s,e?e.index:null,n);return u=f(s,l,e,c,n),n===a.TEXT&&(c=t.getAdaptationsForType(s,e?e.index:null,a.VIDEO),u=u.concat(f(s,l,e,c,n,!0))),u}function g(e){var n=h(e);return t.getRegularPeriods(n)}function h(e){var n=m(e);return t.getMpd(n)}function p(){r=[],i={}}function m(e){return e||(r.length>0?r[0].mpd.manifest:null)}function y(e){try{var n=E(e.streamInfo,r),i=t.getAdaptationsForPeriod(n);return e&&e.streamInfo&&void 0!==e.streamInfo.id&&i?i[e.index]:null}catch(e){return null}}function E(e,t){for(var n=t.length,r=0;r=0&&void 0!==s&&(n=t?"cea-608:"+t:"cea-608",u.embeddedCaptions=!0),n})),u.accessibilitiesWithSchemeIdUri=o,r=t.getAudioChannelConfigurationForAdaptation(l),u.audioChannelConfiguration=r.map((function(e){return e.value})),u.audioChannelConfigurationsWithSchemeIdUri=r,0===u.audioChannelConfiguration.length&&Array.isArray(l.Representation_asArray)&&l.Representation_asArray.length>0&&(i=t.getAudioChannelConfigurationForRepresentation(l.Representation_asArray[0]),u.audioChannelConfiguration=i.map((function(e){return e.value})),u.audioChannelConfigurationsWithSchemeIdUri=i),a=t.getRolesForAdaptation(l),u.roles=a.map((function(e){return e.value})),u.rolesWithSchemeIdUri=a,u.codec=t.getCodec(l),u.mimeType=t.getMimeType(l),u.contentProtection=t.getContentProtectionData(l),u.bitrateList=t.getBitrateListForAdaptation(l),u.selectionPriority=t.getSelectionPriority(l),u.contentProtection){var c=u.contentProtection.map((function(e){return t.getKID(e)})).filter((function(e){return null!==e}));if(c.length){var f=c[0];u.contentProtection.forEach((function(e){e.keyId=f}))}}if(u.isText=t.getIsText(l),u.supplementalProperties=t.getSupplementalPropertiesForAdaptation(l),(!u.supplementalProperties||0===Object.keys(u.supplementalProperties).length)&&Array.isArray(l.Representation_asArray)&&l.Representation_asArray.length>0){var d=l.Representation_asArray.map((function(e){return t.getSupplementalPropertiesForRepresentation(e)}));d.every((function(e){return JSON.stringify(e)===JSON.stringify(d[0])}))&&(u.supplementalProperties=d[0])}if(u.supplementalPropertiesAsArray=t.getSupplementalPropertiesAsArrayForAdaptation(l),(!u.supplementalPropertiesAsArray||0===u.supplementalPropertiesAsArray.length)&&Array.isArray(l.Representation_asArray)&&l.Representation_asArray.length>0){var g=l.Representation_asArray.map((function(e){return t.getSupplementalPropertiesAsArrayForRepresentation(e)}));g.every((function(e){return JSON.stringify(e)===JSON.stringify(g[0])}))&&(u.supplementalPropertiesAsArray=g[0])}return u.isFragmented=t.getIsFragmented(l),u.isEmbedded=!1,u}function _(e,t,n){e.id=t,e.index=100+parseInt(t.substring(2,3)),e.type=a.TEXT,e.codec="cea-608-in-SEI",e.isEmbedded=!0,e.isFragmented=!1;var r=yn()(n);e.lang=r||n,e.roles=["caption"],e.rolesWithSchemeIdUri=[{schemeIdUri:"urn:mpeg:dash:role:2011",value:"caption"}]}function T(e){var n,r,i=new Gi;return i.id=e.id,i.index=e.index,i.start=e.start,i.duration=e.duration,i.manifestInfo=(n=e.mpd,(r=new qi).dvrWindowSize=n.timeShiftBufferDepth,r.loadedTime=n.manifest.loadedTime,r.availableFrom=n.availabilityStartTime,r.minBufferTime=n.manifest.minBufferTime,r.maxFragmentDuration=n.maxSegmentDuration,r.duration=t.getDuration(n.manifest),r.isDynamic=t.getIsDynamic(n.manifest),r.serviceDescriptions=t.getServiceDescriptions(n.manifest),r.protocol=n.manifest.protocol,r),i.isLast=1===e.mpd.manifest.Period_asArray.length||Math.abs(i.start+i.duration-i.manifestInfo.duration)<1,i}function S(){if(!a)throw new Error("setConfig function has to be called previously")}function b(e){return r.length>0?r[0].mpd.manifest.Period_asArray[e]:null}function A(e,t,n){var r,i,a,o,s;if(e)for(r=e.AdaptationSet_asArray,o=0;o0?e.segments[0].duration:NaN),n.MSETimeOffset=e.MSETimeOffset,n.mediaInfo=v(e.adaptation),n}return null},getStreamsInfo:function(e,t){var n=[],i=r;if(e&&(S(),i=g(e)),i.length>0){(!t||t>i.length)&&(t=i.length);for(var a=0;a0&&o&&(a=i?t.getAdaptationForId(i,r[0].mpd.manifest,o.index):t.getAdaptationForIndex(n?n.index:null,r[0].mpd.manifest,o.index)),a},getProducerReferenceTimes:function(e,n){var i,a,o=E(e,r);return i=n?n.id:null,r.length>0&&o&&(a=i?t.getAdaptationForId(i,r[0].mpd.manifest,o.index):t.getAdaptationForIndex(n?n.index:null,r[0].mpd.manifest,o.index)),a?t.getProducerReferenceTimesForAdaptation(a):[]},getRealPeriodByIndex:function(e){return t.getRealPeriodForIndex(e,r[0].mpd.manifest)},getEssentialPropertiesForRepresentation:function(e){try{return t.getEssentialPropertiesForRepresentation(e)}catch(e){return[]}},getVoRepresentations:function(e){var n=y(e);return t.getRepresentationsForAdaptation(n)},getEventsFor:function(e,n,i){var a=[];if(r.length>0){var o=r[0].mpd.manifest;if(e instanceof Gi){var s=E(e,r);a=t.getEventsForPeriod(s)}else if(e instanceof Bi){var u=E(i,r);a=t.getEventStreamForAdaptationSet(o,y(e),u)}else if(e instanceof Zi){var l=E(i,r);a=t.getEventStreamForRepresentation(o,n,l)}}return a},getEvent:function(e,t,n,r){try{if(!e||!t||isNaN(n)||!r)return null;var i=e.scheme_id_uri,a=e.value;if(!t[i+"/"+a])return null;var o,s=new _e,u=e.timescale||1,l=r.adaptation.period.start,c=t[i+"/"+a],f=isNaN(r.presentationTimeOffset)?isNaN(c.presentationTimeOffset)?0:c.presentationTimeOffset:r.presentationTimeOffset,d=e.presentation_time_delta/u;o=0===e.version?l+n-f+d:l-f+d;var g=e.event_duration/u,h=e.id,p=e.message_data;return s.eventStream=c,s.eventStream.value=a,s.eventStream.timescale=u,s.duration=g,s.id=h,s.calculatedPresentationTime=o,s.messageData=p,s.presentationTimeDelta=d,s}catch(e){return null}},getMpd:h,setConfig:function(e){e&&(e.constants&&(a=e.constants),e.cea608parser&&(s=e.cea608parser),e.errHandler&&t.setConfig({errHandler:e.errHandler}),e.BASE64&&t.setConfig({BASE64:e.BASE64}))},updatePeriods:function(e){if(!e)return null;S(),r=g(e)},getIsTextTrack:function(e){return t.getIsText(e)},getUTCTimingSources:function(){var e=m();return t.getUTCTimingSources(e)},getSuggestedPresentationDelay:function(){var e=r.length>0?r[0].mpd:null;return t.getSuggestedPresentationDelay(e)},getAvailabilityStartTime:function(e){var n=h(e);return t.getAvailabilityStartTime(n)},getIsTypeOf:function(e,n){return t.getIsTypeOf(e,n)},getIsDynamic:function(e){var n=m(e);return t.getIsDynamic(n)},getDuration:function(e){var n=m(e);return t.getDuration(n)},getRegularPeriods:g,getContentSteering:function(e){return t.getContentSteering(e)},getLocation:function(e){return t.getLocation(e)},getPatchLocation:function(e){var n=t.getPatchLocation(e),r=t.getPublishTime(e);return n&&0!==n.length&&r?n.filter((function(e){return isNaN(e.ttl)||r.getTime()+e.ttl>(new Date).getTime()})):[]},getManifestUpdatePeriod:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.getManifestUpdatePeriod(e,n)},getPublishTime:function(e){return t.getPublishTime(e)},getIsDVB:function(e){return t.hasProfile(e,"urn:dvb:dash:profile:dvb-dash:2014")},getIsPatch:function(e){return n.getIsPatch(e)},getBaseURLsFromElement:function(e){return t.getBaseURLsFromElement(e)},getRepresentationSortFunction:function(){return t.getRepresentationSortFunction()},getCodec:function(e,n,r){return t.getCodec(e,n,r)},getPeriodById:function(e){if(!e||0===r.length)return null;var t=r.filter((function(t){return t.id===e}));return t&&t.length>0?t[0]:null},setCurrentMediaInfo:function(e,t,n){i[e]=i[e]||{},i[e][t]=i[e][t]||{},i[e][t]=n},isPatchValid:function(e,r){var i=t.getId(e),a=n.getMpdId(r),o=t.getPublishTime(e),s=n.getPublishTime(r),u=n.getOriginalPublishTime(r);return!!(i&&a&&i==a&&o&&u&&o.getTime()==u.getTime()&&s&&o.getTime()1?i[r]=u:1==u.length?i[r]=u[0]:delete i[r+"_asArray"]}"add"!==t.action&&"replace"!==t.action||Object.keys(t.value).forEach((function(e){var n=t.value[e],a=i[e+"_asArray"]||[];if(0===a.length&&i[e]&&a.push(i[e]),0===a.length)a=n;else{var u=a.length;u=e==r&&-1!=o?o+(s?0:1)+("replace"==t.action?-1:0):s?0:a.length,a.splice.apply(a,[u,0].concat(n))}i[e+"_asArray"]=a,i[e]=1==a.length?a[0]:a}))}}}))},areMediaInfosEqual:c,reset:p},t=Ze(u).getInstance(),n=zi(u).getInstance(),p(),e}Wi.__dashjs_factory_name="DashAdapter";var Xi=c.Z.getSingletonFactory(Wi);function Qi(e,t){for(var n=0;nr.get().streaming.metrics.maxListDepth&&i[t].shift())}function m(e,t,n){p(e,t,n),g(e,t,n)}return t={clearCurrentMetricsForType:function(e){delete n[e],f(e)},clearAllCurrentMetrics:function(){n={},c()},getMetricsFor:h,addHttpRequest:function e(t,n,r,i,a,o,u,l,c,f,d,g,h,p,y,E,v){var _=new C.w;o&&o!==i&&(e(t,null,r,i,a,null,null,l,c,null,null,null,h,null,null,E,v),_.actualurl=o),_.tcpid=n,_.type=r,_.url=i,_.range=l,_.trequest=c,_.tresponse=f,_.responsecode=g,_.cmsd=v,_._tfinish=d,_._stream=t,_._mediaduration=h,_._quality=a,_._responseHeaders=p,_._serviceLocation=u,_._fileLoaderType=E,y?y.forEach((function(e){!function(e,t,n,r){var i=new C.O;i.s=t,i.d=n,i.b=r,e.trace.push(i),e.interval||(e.interval=0),e.interval+=n}(_,e.s,e.d,e.b)})):(delete _.interval,delete _.trace),m(t,s.Z.HTTP_REQUEST,_)},addRepresentationSwitch:function(e,t,n,r,i){var a=new ea;a.t=t,a.mt=n,a.to=r,i?a.lto=i:delete a.lto,m(e,s.Z.TRACK_SWITCH,a)},addBufferLevel:function(e,t,n){var r=new ta;r.t=t,r.level=n,m(e,s.Z.BUFFER_LEVEL,r)},addBufferState:function(e,t,n){var r=new na;r.target=n,r.state=t,m(e,s.Z.BUFFER_STATE,r)},addDVRInfo:function(e,t,n,r){var i=new ra;i.time=t,i.range=r,i.manifestInfo=n,m(e,s.Z.DVR_INFO,i)},addDroppedFrames:function(e,t){var n=new ia,r=h(e).DroppedFrames;t&&(n.time=t.creationTime,n.droppedFrames=t.droppedVideoFrames,r.length>0&&r[r.length-1]==n||m(e,s.Z.DROPPED_FRAMES,n))},addSchedulingInfo:function(e,t,n,r,i,a,o,u,l){var c=new la;c.mediaType=e,c.t=t,c.type=n,c.startTime=r,c.availabilityStartTime=i,c.duration=a,c.quality=o,c.range=u,c.state=l,m(e,s.Z.SCHEDULING_INFO,c)},addRequestsQueue:function(e,t,n){var r=new ca;r.loadingRequests=t,r.executedRequests=n,h(e).RequestsQueue=r,g(e,s.Z.REQUESTS_QUEUE,r)},addManifestUpdate:function(e,t,n,r,i,o,u,l,c,f){var d=new oa;d.mediaType=e,d.type=t,d.requestTime=n,d.fetchTime=r,d.availabilityStartTime=i,d.presentationStartTime=o,d.clientTimeOffset=u,d.currentTime=l,d.buffered=c,d.latency=f,p(a.Z.STREAM,s.Z.MANIFEST_UPDATE,d),g(e,s.Z.MANIFEST_UPDATE,d)},updateManifestUpdateInfo:function(e,t){if(e){for(var n in t)e[n]=t[n];d(e.mediaType,s.Z.MANIFEST_UPDATE,e)}},addManifestUpdateStreamInfo:function(e,t,n,r,i){if(e){var a=new sa;a.id=t,a.index=n,a.start=r,a.duration=i,e.streamInfo.push(a),d(e.mediaType,s.Z.MANIFEST_UPDATE_STREAM_INFO,e)}},addManifestUpdateRepresentationInfo:function(e,t,n,r,i,a,o,u){if(e&&e.representationInfo){var l=new ua;l.id=t,l.index=n,l.streamIndex=r,l.mediaType=i,l.startNumber=o,l.fragmentInfoType=u,l.presentationTimeOffset=a,e.representationInfo.push(l),d(e.mediaType,s.Z.MANIFEST_UPDATE_TRACK_INFO,e)}},addPlayList:function(e){e.trace&&Array.isArray(e.trace)?e.trace.forEach((function(e){e.hasOwnProperty("subreplevel")&&!e.subreplevel&&delete e.subreplevel})):delete e.trace,m(a.Z.STREAM,s.Z.PLAY_LIST,e)},addDVBErrors:function(e){m(a.Z.STREAM,s.Z.DVB_ERRORS,e)}},n={},t}fa.__dashjs_factory_name="MetricsModel";var da=c.Z.getSingletonFactory(fa);function ga(e){e=e||{};var t,n,r,i,o=this.context,u=e.metricsModel;function l(e){var t=u.getMetricsFor(e,!0);if(!t)return null;var n,r=t.HttpList,i=null;if(!r||r.length<=0)return null;for(n=r.length-1;n>=0;){if(r[n].responsecode){i=r[n];break}n--}return i}function c(e){var t=u.getMetricsFor(e,!0);return t&&t.HttpList?t.HttpList:[]}function f(e,t){if(!e)return null;var n=e[t];return n&&0!==n.length?n[n.length-1]:null}return t={getCurrentRepresentationSwitch:function(e){return f(u.getMetricsFor(e,!0),s.Z.TRACK_SWITCH)},getCurrentBufferState:function(e){return f(u.getMetricsFor(e,!0),s.Z.BUFFER_STATE)},getCurrentBufferLevel:function(e){var t=f(u.getMetricsFor(e,!0),s.Z.BUFFER_LEVEL);return t?Ji.round10(t.level/1e3,-3):0},getCurrentHttpRequest:l,getHttpRequests:c,getCurrentDroppedFrames:function(){return f(u.getMetricsFor(a.Z.VIDEO,!0),s.Z.DROPPED_FRAMES)},getCurrentSchedulingInfo:function(e){return f(u.getMetricsFor(e,!0),s.Z.SCHEDULING_INFO)},getCurrentDVRInfo:function(e){return f(e?u.getMetricsFor(e,!0):u.getMetricsFor(a.Z.VIDEO,!0)||u.getMetricsFor(a.Z.AUDIO,!0),s.Z.DVR_INFO)},getCurrentManifestUpdate:function(){return f(u.getMetricsFor(a.Z.STREAM),s.Z.MANIFEST_UPDATE)},getLatestFragmentRequestHeaderValueByID:function(e,t){if(!t)return null;var n={},r=l(e);r&&(n=Be.Z.parseHttpHeaders(r._responseHeaders));var i=n[t.toLowerCase()];return void 0===i?null:i},getLatestMPDRequestHeaderValueByID:function(e){if(!e)return null;var t,n,r,i={};for(r=(t=c(a.Z.STREAM)).length-1;r>=0;r--)if((n=t[r]).type===C.w.MPD_TYPE){i=Be.Z.parseHttpHeaders(n._responseHeaders);break}var o=i[e.toLowerCase()];return void 0===o?null:o},addRepresentationSwitch:function(e,t,n,r,i){u.addRepresentationSwitch(e,t,n,r,i)},addDVRInfo:function(e,t,n,r){u.addDVRInfo(e,t,n,r)},updateManifestUpdateInfo:function(e){var t=this.getCurrentManifestUpdate();u.updateManifestUpdateInfo(t,e)},addManifestUpdateStreamInfo:function(e){if(e){var t=this.getCurrentManifestUpdate();u.addManifestUpdateStreamInfo(t,e.id,e.index,e.start,e.duration)}},addManifestUpdateRepresentationInfo:function(e,t){if(e){var n=this.getCurrentManifestUpdate();u.addManifestUpdateRepresentationInfo(n,e.id,e.index,e.streamIndex,t,e.presentationTimeOffset,e.startNumber,e.fragmentInfoType)}},addManifestUpdate:function(e){u.addManifestUpdate(a.Z.STREAM,e.type,e.requestStartDate,e.requestEndDate)},addHttpRequest:function(e,t,n,r,i,a){u.addHttpRequest(e.mediaType,null,e.type,e.url,e.quality,t,e.serviceLocation||null,e.range||null,e.requestStartDate,e.firstByteDate,e.requestEndDate,n,e.duration,r,i,e.fileLoaderType,a)},addSchedulingInfo:function(e,t){u.addSchedulingInfo(e.mediaType,new Date,e.type,e.startTime,e.availabilityStartTime,e.duration,e.quality,e.range,t)},addRequestsQueue:function(e,t,n){u.addRequestsQueue(e,t,n)},addBufferLevel:function(e,t,n){u.addBufferLevel(e,t,n)},addBufferState:function(e,t,n){u.addBufferState(e,t,n)},addDroppedFrames:function(e){u.addDroppedFrames(a.Z.VIDEO,e)},addPlayList:function(){i&&(u.addPlayList(i),i=null)},addDVBErrors:function(e){u.addDVBErrors(e)},createPlaylistMetrics:function(e,t){(i=new $).start=new Date,i.mstart=e,i.starttype=t},createPlaylistTraceMetrics:function(e,t,i){!0===n&&(n=!1,(r=new ee).representationid=e,r.start=new Date,r.mstart=t,r.playbackspeed=null!==i?i.toString():null)},updatePlayListTraceMetrics:function(e){if(r)for(var t in r)r[t]=e[t]},pushPlayListTraceMetrics:function(e,t){if(!1===n&&i&&r&&r.start){var a=r.start,o=e.getTime()-a.getTime();r.duration=o,r.stopreason=t,i.trace.push(r),n=!0}},clearAllCurrentMetrics:function(){u.clearAllCurrentMetrics()}},u=u||da(o).getInstance({settings:e.settings}),n=!0,r=null,i=null,t}ga.__dashjs_factory_name="DashMetrics";var ha=c.Z.getSingletonFactory(ga);function pa(){var e,t,n,r,i=this.context,s=(0,u.Z)(i).getInstance(),c=(0,N.Z)(i).getInstance();function f(e){r=e}function g(e,t,n,r){var i,a=t.adaptation.period.mpd,o=a.availabilityStartTime;if(r)i=n&&a.timeShiftBufferDepth!==Number.POSITIVE_INFINITY?new Date(o.getTime()+1e3*(e+a.timeShiftBufferDepth)):a.availabilityEndTime;else if(n){var s=t.availabilityTimeOffset;i=new Date(o.getTime()+1e3*(e-s))}else i=o;return i}function h(e,t){return(e.getTime()-t.mpd.availabilityStartTime.getTime()+1e3*r)/1e3}function p(e,t){return e+(t.adaptation.period.start-t.presentationTimeOffset)}function m(e){var n={start:NaN,end:NaN},r=e[0].getAdapter().getRegularPeriods()[0],i=h(new Date,r);if(!e||0===e.length)return{range:n,now:i};e.forEach((function(e){var r=e.getAdapter(),s=r.getMediaInfoForType(e.getStreamInfo(),a.Z.VIDEO)||r.getMediaInfoForType(e.getStreamInfo(),a.Z.AUDIO),u=r.getVoRepresentations(s)[0],l={start:NaN,end:NaN};if(u)if(u.segmentInfoType===o.Z.SEGMENT_TIMELINE)l=function(e){var n,r,i,a,o=e.adaptation.period.mpd.manifest.Period_asArray[e.adaptation.period.index].AdaptationSet_asArray[e.adaptation.index],s=t.getRepresentationFor(e.index,o),u=s.SegmentTemplate||s.SegmentList,l=u.SegmentTimeline,c=u.timescale,f=l.S_asArray,d={start:0,end:0},g=f[0].t,h=!isNaN(g),m=h?g:0,y=0;for(h&&(d.start=p(m/c,e)),i=0,a=f.length;il.start)&&(n.start=l.start),!isNaN(l.end)&&(isNaN(n.end)||n.end2&&void 0!==arguments[2]&&arguments[2];try{for(var r=0,i=!1,a=NaN;!i&&r=t)?(a=t,i=!0):!n&&o.start>t&&(isNaN(a)||o.starta)&&(a=o.start+o.duration),r+=1}return a}catch(e){return t}}function v(e){void 0===e.offset||isNaN(e.offset)||f(e.offset/1e3)}function _(){r=0,n=0}function T(){s.off(l.Z.UPDATE_TIME_SYNC_OFFSET,v,this),_()}return e={initialize:function(){_(),s.on(l.Z.UPDATE_TIME_SYNC_OFFSET,v,this)},getClientTimeOffset:function(){return r},setClientTimeOffset:f,getClientReferenceTime:function(){return Date.now()-1e3*n+1e3*r},calcAvailabilityStartTimeFromPresentationTime:function(e,t,n){return g(e,t,n)},calcAvailabilityEndTimeFromPresentationTime:function(e,t,n){return g(e,t,n,!0)},calcPresentationTimeFromWallTime:h,calcPresentationTimeFromMediaTime:p,calcPeriodRelativeTimeFromMpdRelativeTime:function(e,t){return t-e.adaptation.period.start},calcMediaTimeFromPresentationTime:function(e,t){return e-t.adaptation.period.start+t.presentationTimeOffset},calcWallTimeForSegment:function(e,t){var n,r,i;return t&&(n=e.representation.adaptation.period.mpd.suggestedPresentationDelay,r=e.presentationStartTime+n,i=new Date(e.availabilityStartTime.getTime()+1e3*r)),i},calcTimeShiftBufferWindow:function(e,t){if(!t)return function(e){var t={start:NaN,end:NaN},n=0,r=NaN;return e.forEach((function(e){var t=e.getStreamInfo();n+=t.duration,(isNaN(r)||t.start0&&(p.spans.push({name:m,line:T,row:c}),T="");var w="style_cea608_"+R.foreground+"_"+R.background;R.underline&&(w+="_underline"),R.italics&&(w+="_italics"),E.hasOwnProperty(w)||(E[w]=JSON.parse(JSON.stringify(R))),S=R,m=w}T+=I.uchar}T.trim().length>0&&p.spans.push({name:m,line:T,row:c}),g=!0,h=b}else g=!1,h=-1,d&&(d.p.push(p),p={start:s,end:u,spans:[]},d.y2=c,d.name="region_"+d.x+"_"+d.y1+"_"+d.y2,!1===y.hasOwnProperty(d.name)?(v.push(d),y[d.name]=d):y[d.name].p.contat(d.p),d=null)}d&&(d.p.push(p),d.y2=c+1,d.name="region_"+d.x+"_"+d.y1+"_"+d.y2,!1===y.hasOwnProperty(d.name)?(v.push(d),y[d.name]=d):y[d.name].p.contat(d.p),d=null);var N=[];for(c=0;c0){if(0!==f&&k!=U.row){var Z=document.createElement("br");Z.className="lineBreak",L.appendChild(Z)}var B=!1;k===U.row&&(B=!0),k=U.row;var G=E[U.name],q=document.createElement("span");q.className="spanPadding "+U.name+" customSpanColor",q.style.cssText=i(r,G),0!==f&&B?f===F.spans.length-1?q.textContent=o(U.line):q.textContent=U.line:F.spans.length>1&&f1&&e.isEmbedded?t=e.id&&e.id===a.Z.CC1:1===y.length?e.id&&"string"==typeof e.id&&"CC"===e.id.substring(0,2)&&(t=!0):0===y.length&&(t=e.index===s[0].index),t}(e),t.isFragmented=e.isFragmented,t.isEmbedded=!!e.isEmbedded,t.isTTML=function(e){return e.codec&&e.codec.search(a.Z.STPP)>=0||e.mimeType&&e.mimeType.search(a.Z.TTML)>=0}(e),t.kind=function(e,t){var n=e.roles&&e.roles.length>0?t[e.roles[0]]:t.caption;return n=n===t.caption||n===t.subtitle?n:t.caption}(e,{subtitle:"subtitles",caption:"captions"}),D.addTextTrack(t)}function G(e){var t=e.chunk;t.mediaInfo.embeddedCaptions&&Y(t.bytes,t)}function q(e){m=e}function Y(e,s){var u=s.mediaInfo,l=u.type,f=u.mimeType,h=u.codec||f;h?-1!==u.codec.indexOf("application/mp4")?function(e,i,s){var u;if("InitializationSegment"===i.segmentType)d=!0,g=r.getMediaTimescaleFromMoov(e);else{if(!d)return;(u=r.getSamplesInfo(e).sampleList).length>0&&(p=u[0].cts-i.start*g),s.search(a.Z.STPP)>=0?function(e,r,i){var s,u;for(o=null!==o?o:V(i),s=0;s0&&D.addCaptions(m,0,s)}(e,u)}}(e,s,h):l===a.Z.VIDEO?function(e,t){var a,o;if(t.segmentType===C.w.INIT_SEGMENT_TYPE)0===E&&(E=r.getMediaTimescaleFromMoov(e));else if(t.segmentType===C.w.MEDIA_SEGMENT_TYPE){if(0===E)return void n.warn("CEA-608: No timescale for embeddedTextTrack yet");var s=(o=r.getSamplesInfo(e)).lastSequenceNumber,u=Math.trunc(t.start),l=Math.trunc(t.end);if(T[0]||T[1]||function(){for(var e,t=0;t0){o.cts!==u?l=0:l+=1;var g=H();n.fields[d].push([o.cts+g*E,f[d],l]),u=o.cts}return n.fields.forEach((function(e){e.sort((function(e,t){return e[0]===t[0]?e[2]-t[2]:e[0]-t[0]}))})),n}(e,o.sampleList),f=0;f=0?t=x.get().streaming.text.webvtt.customRenderingEnabled&&M?M:O:(e.search(a.Z.TTML)>=0||e.search(a.Z.STPP)>=0)&&(t=P),t}function K(e){y.forEach((function(t){var n=D.getTrackIdxForId(t.id);n>=0&&D.deleteCuesFromTrackIdx(n,e.from,e.to)}))}return t={initialize:function(){U||(y=[],m=null,E=0,T=[],v=null,_=null,U=!0,b=Ra(F).getInstance(),k.on(l.Z.VIDEO_CHUNK_RECEIVED,G,t),k.on(l.Z.BUFFER_CLEARED,K,t))},addMediaInfos:function(e,n,r){if(s=s.concat(n),e===a.Z.TEXT&&n[0].isFragmented&&!n[0].isEmbedded){c=r,t.buffered=(0,Aa.Z)(F).create(),h=R.getTracksFor(a.Z.TEXT,L.id).filter((function(e){return e.isFragmented}));for(var i=R.getCurrentTrackFor(a.Z.TEXT,L.id),o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);nn/r?o=(s=t)/r*n:s=(o=e)/n*r;var u,l,c=0,f=0;return o/s>i?(f=s,c=s*i):(c=o,f=o/i),u=(e-c)/2,l=(t-f)/2,a?{x:u+.1*c,y:l+.1*f,w:.8*c,h:.8*f}:{x:u,y:l,w:c,h:f}}function D(e,t){var n=R.getClientWidth(),r=R.getClientHeight(),i=R.getVideoWidth(),a=R.getVideoHeight(),o=R.getVideoRelativeOffsetTop(),s=R.getVideoRelativeOffsetLeft();if(0!==i&&0!==a){var u=i/a,l=!1;e.isFromCEA608&&(u=3.5/3,l=!0);var f=C.call(this,n,r,i,a,u,l),y=f.w,E=f.h,T=f.x,b=f.y;if(y!=h||E!=p||T!=c||b!=g||t){if(c=T+s,g=b+o,h=y,p=E,m){var A=m.style;A&&(A.left=c+"px",A.top=g+"px",A.width=h+"px",A.height=p+"px",A.zIndex=v&&document[v]||_?S:null,I.trigger(d.Z.CAPTION_CONTAINER_RESIZE))}var w=e.activeCues;if(w)for(var N=w.length,D=0;D=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}(R.getTextTracks());try{for(n.s();!(e=n.n()).done;){var r=e.value;r.manualMode===a.Z.TEXT_SHOWING&&t.push(r)}}catch(e){n.e(e)}finally{n.f()}return t}function G(e){return e>=0&&i[e]?R.getTextTrack(i[e].kind,i[e].id,i[e].lang,i[e].isTTML,i[e].isEmbedded):null}function q(e){var t=this;if(e!==s){var n=G(s=e);Y.call(this,n),E&&(clearInterval(E),E=null),n&&"html"===n.renderingType&&(D.call(this,n,!0),window.ResizeObserver?(b=new window.ResizeObserver((function(){D.call(t,n,!0)}))).observe(R.getElement()):E=setInterval(D.bind(this,n),500))}}function Y(e){X.call(this),e&&"html"===e.renderingType?z.call(this):W.call(this)}function j(e,t){if(!e.cues)return!1;for(var n=0;n3&&void 0!==arguments[3])||arguments[3];return!!e&&(isNaN(t)||(r?e.startTime:e.endTime)>=t)&&(isNaN(n)||(r?e.endTime:e.startTime)<=n)}function V(e,t,n){var r,i;if(!(n0?"native":"custom",o="native"===a?e.cues:e.manualCueList;if(!o||0===o.length)return;for(var s=o.length-1;s>=0;s--)!H(o[s],t,n,!0)||(r=o[s],void 0,i=R.getTime(),r.startTime>=i&&r.endTime<=i)||("native"===a?e.removeCue(o[s]):(Z(o[s]),delete e.manualCueList[s]))}}function K(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(e&&(e.cues||e.manualCueList)){var i=e.cues&&e.cues.length>0?"native":"custom",a="native"===i?e.cues:e.manualCueList;if(!a||0===a.length)return;for(var o=a.length-1,s=o;s>=0;s--)H(a[s],t,n,r)&&("native"===i?(a[s].onexit&&a[s].onexit(),e.removeCue(a[s])):(Z(a[s]),delete e.manualCueList[s]))}}function z(){var e=document.getElementById("native-cue-style");if(!e){(e=document.createElement("style")).id="native-cue-style",document.head.appendChild(e);var t=e.sheet,r=R.getElement();try{r&&(r.id?t.insertRule("#"+r.id+"::cue {background: transparent}",0):0!==r.classList.length?t.insertRule("."+r.className+"::cue {background: transparent}",0):t.insertRule("video::cue {background: transparent}",0))}catch(e){n.info(""+e.message)}}}function W(){var e=document.getElementById("native-cue-style");e&&document.head.removeChild(e)}function X(){if(m)for(;m.firstChild;)m.removeChild(m.firstChild)}return t={initialize:function(){"undefined"!=typeof window&&"undefined"!=typeof navigator&&(r=window.VTTCue||window.TextTrackCue,i=[],o=[],s=-1,c=0,g=0,h=0,p=0,m=null,y=null,E=null,_=!1,S=2147483647,T=null,void 0!==document.fullscreenElement?v="fullscreenElement":void 0!==document.webkitIsFullScreen?v="webkitIsFullScreen":document.msFullscreenElement?v="msFullscreenElement":document.mozFullScreen&&(v="mozFullScreen"))},getStreamId:function(){return w.id},addTextTrack:function(e){i.push(e)},addCaptions:F,createTracks:function(){i.sort((function(e,t){return e.index-t.index})),m=R.getTTMLRenderingDiv(),y=R.getVttRenderingDiv();for(var e,t,n,r,u,c,f=-1,g=0;g=0){I.on(d.Z.PLAYBACK_METADATA_LOADED,(function e(){var t=G(f);t&&"html"===t.renderingType&&D.call(this,t,!0),I.off(d.Z.PLAYBACK_METADATA_LOADED,e,this)}),this);for(var E=0;E0){var n=t[0].manualCueList;n&&n.length>0&&n.forEach((function(t){t.startTime<=e&&t.endTime>=e&&!t.isActive?(t.isActive=!0,WebVTT.processCues(window,[t],y,t.cueID)):t.isActive&&(t.startTime>e||t.endTime0){var t=e[0].manualCueList;t&&t.length>0&&t.forEach((function(e){if(e.isActive&&(e.isActive=!1,y))for(var t=y.childNodes,n=0;n1){var n=e.split(/:/)[1],r=!1;n&&-1!=n.search(/%/)&&(r=!0,n=parseInt(n.replace(/%/,""),10)),(e.match(/align/)||e.match(/A/))&&(t.align=n),(e.match(/line/)||e.match(/L/))&&(t.line="auto"===n?n:parseInt(n,10),r&&(t.snapToLines=!1)),(e.match(/position/)||e.match(/P/))&&(t.position=n),(e.match(/size/)||e.match(/S/))&&(t.size=n)}})),t}function c(e,t){for(var n,i=t,a="",o="";""!==e[i]&&i1)for(var s=0;s0&&"WEBVTT"!==d&&d.match(r)){var g=u(d),h=g.cuePoints,p=g.styles,m=c(e,f+1),y=s(h[0].replace(i,"")),E=s(h[1].replace(i,""));!isNaN(y)&&!isNaN(E)&&y>=o&&E>y?""!==m?(o=y,l.push({start:y,end:E,data:m,styles:p})):t.error("Skipping cue due to empty/malformed cue text"):t.error("Skipping cue due to incorrect cue timing")}}return l},getCaptionStyles:l},t=(0,f.Z)(o).getInstance().getLogger(e),n=/(?:\r\n|\r|\n)/gm,r=/-->/,i=/(^[\s]+|[\s]+$)/g,a=/\s\b/g,e}La.__dashjs_factory_name="VTTParser";var xa=c.Z.getSingletonFactory(La);function Fa(){var e,t;return e={parse:function(e){var n=[];return t.oncue=function(e){e.start=e.startTime,e.end=e.endTime,e.data=e.text,e.styles={align:e.align,line:e.line,position:e.position,size:e.size},n.push(e)},t.parse(e),n}},function(){try{window&&window.WebVTT&&window.WebVTT.Parser&&(t=new window.WebVTT.Parser(window,window.vttjs,window.WebVTT.StringDecoder()))}catch(e){}}(),e}Fa.__dashjs_factory_name="VttCustomRenderingParser";var ka=c.Z.getSingletonFactory(Fa);function Ua(){var e,t,n=this.context,r=(0,u.Z)(n).getInstance(),i=0;return e={parse:function(e,n,a,o,s){var u,c,f,g="",h=[],p={},m={},y="",E="",v={onOpenTag:function(e,n,i){if(i[" imagetype"]&&!i[" imageType"]&&(r.trigger(d.Z.CONFORMANCE_VIOLATION,{level:nn.LEVELS.ERROR,event:nn.EVENTS.NON_COMPLIANT_SMPTE_IMAGE_ATTRIBUTE}),i[" imageType"]=i[" imagetype"]),"image"===n&&("http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt"===e||"http://www.smpte-ra.org/schemas/2052-1/2013/smpte-tt"===e)){if(!i[" imageType"]||"PNG"!==i[" imageType"].value)return void t.warn("smpte-tt imageType != PNG. Discarded");y=i["http://www.w3.org/XML/1998/namespace id"].value}},onCloseTag:function(){y&&(m[y]=E.trim()),E="",y=""},onText:function(e){y&&(E+=e)}};if(!e)throw g="no ttml data to parse",new Error(g);p.data=e,r.trigger(l.Z.TTML_TO_PARSE,p);var _=(0,Ca.fromXML)(p.data,(function(e){g=e}),v);r.trigger(l.Z.TTML_PARSED,{ttmlString:p.data,ttmlDoc:_});var T,S=_.getMediaTimeEvents();for(f=0;f3&&void 0!==arguments[3]?arguments[3]:null,a=e.id;r[a]&&r[a].addMediaInfos(t,n,i)},reset:function(){D(),f.off(l.Z.TEXT_TRACKS_QUEUE_INITIALIZED,A,t),b.get().streaming.text.webvtt.customRenderingEnabled&&(f.off(l.Z.PLAYBACK_TIME_UPDATED,I,t),f.off(l.Z.PLAYBACK_SEEKING,R,t)),Object.keys(r).forEach((function(e){r[e].resetEmbedded(),r[e].reset()}))}},h=!1,p=!1,m=!1,o=xa(y).getInstance(),s=ka(y).getInstance(),c=Za(y).getInstance(),f=(0,u.Z)(y).getInstance(),D(),t}Ba.__dashjs_factory_name="TextController";var Ga=c.Z.getClassFactory(Ba);function qa(){var e,t,n,r,g,p,m,y,E,v,_,T,b,A,I,R,D,O,M,P,L,x,F,k,U,Z,B,G,q,Y,j,H,V,K,W,J,$,ee,te,ne="You must first call initialize() and set a source before calling this method",re="You must first call initialize() and set a valid source and view before calling this method",ie="You must first call attachView() to set the video element before calling this method",ae="You must first call attachSource() with a valid source before calling this method",oe="MediaPlayer not initialized!",se=this.context,ue=(0,u.Z)(se).getInstance(),le=(0,N.Z)(se).getInstance(),ce=(0,f.Z)(se).getInstance({settings:le});function fe(){Ie(null),be(null),r=null,A&&(A.reset(),A=null),I&&(I.reset(),I=null),P&&P.reset(),le.reset(),D&&(D.reset(),D=null)}function de(){return!!n&&!!J.getElement()}function ge(){return(0,Ci.e)()}function he(){if(!m)throw re;return G.isPaused()}function pe(){if(!m)throw re;return G.getIsDynamic()}function me(e){var t=U&&U.hasVideoTrack()?a.Z.VIDEO:a.Z.AUDIO,n=H.getCurrentDVRInfo(t);if(!n)return 0;var r=G.getOriginalLiveDelay(),i=n.range.start+e;return i>n.range.end-r&&(i=n.range.end-r),i}function ye(e){if(!m)throw re;var t=Se().currentTime;if(void 0!==e)t=U.getTimeRelativeToStreamId(t,e);else if(G.getIsDynamic()){var n=U&&U.hasVideoTrack()?a.Z.VIDEO:a.Z.AUDIO,r=H.getCurrentDVRInfo(n);t=null===r||0===t?0:Math.max(0,t-r.range.start)}return t}function Ee(){if(!m)throw re;var e=Se().duration;if(G.getIsDynamic()){var t=U&&U.hasVideoTrack()?a.Z.VIDEO:a.Z.AUDIO,n=H.getCurrentDVRInfo(t);e=n?n.range.end-n.range.start:0}return e}function ve(e){(0,z.PS)(e,"boolean"),y=e}function _e(){P.restoreDefaultUTCTimingSources()}function Te(){return H}function Se(){if(!J.getElement())throw ie;return J.getElement()}function be(e){if(!g)throw oe;J.setElement(e),e&&(De(),function(){if(!I){var e=dashjs.MetricsReporting;if("function"==typeof e){var t=e(se).create();I=t.createMetricsReporting({debug:ce,eventBus:ue,mediaElement:Se(),adapter:O,dashMetrics:H,mediaPlayerModel:M,events:l.Z,constants:a.Z,metricsConstants:s.Z})}}}(),function(){if(!R){var e=dashjs.MssHandler;"function"==typeof e&&(w.extend(e.errors),R=e(se).create({eventBus:ue,mediaPlayerModel:M,dashMetrics:H,manifestModel:V,playbackController:G,streamController:U,protectionController:A,baseURLController:x,errHandler:L,events:l.Z,constants:a.Z,debug:ce,initSegmentType:C.w.INIT_SEGMENT_TYPE,BASE64:ya,ISOBoxer:Ea,settings:le}))}}(),U&&U.switchToVideoElement(E)),m&&we(),Pe(E)}function Ae(e){if(!p)throw ne;var t=U.getActiveStreamInfo();return t?b.getTracksFor(e,t.id):[]}function Ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:NaN;if(!g)throw oe;"string"==typeof e&&$.initialize(e),null==t&&(t=NaN),isNaN(t)||(t=Math.max(0,t)),E=t,n=e,(p||m)&&we(),de()&&Pe(E)}function Re(){if(!p)throw ne;var e=U.getActiveStreamInfo();return e?U.getStreamById(e.id):null}function we(){m=!1,p=!1,O.reset(),U.reset(),B.reset(),j.reset(),G.reset(),q.reset(),Y.reset(),v.reset(),b.reset(),te.reset(),A&&(le.get().streaming.protection.keepProtectionMediaKeys?A.stop():(A.reset(),A=null,De())),Z.reset(),K.reset(),W.reset()}function Ne(){var e=Ce();U||(U=on(se).getInstance()),Z||(Z=Ga(se).create({errHandler:L,manifestModel:V,adapter:O,mediaController:b,videoModel:J,settings:le})),k.setConfig({capabilities:F,customParametersModel:P,adapter:O,settings:le,manifestModel:V,errHandler:L}),U.setConfig({capabilities:F,capabilitiesFilter:k,manifestLoader:e,manifestModel:V,mediaPlayerModel:M,customParametersModel:P,protectionController:A,textController:Z,adapter:O,dashMetrics:H,errHandler:L,timelineConverter:T,videoModel:J,playbackController:G,serviceDescriptionController:q,contentSteeringController:Y,abrController:v,mediaController:b,settings:le,baseURLController:x,uriFragmentModel:$,segmentBaseController:te}),B.setConfig({settings:le,playbackController:G,streamController:U,videoModel:J,timelineConverter:T,adapter:O}),G.setConfig({streamController:U,serviceDescriptionController:q,dashMetrics:H,adapter:O,videoModel:J,timelineConverter:T,settings:le}),j.setConfig({streamController:U,playbackController:G,mediaPlayerModel:M,videoModel:J,settings:le}),v.setConfig({streamController:U,domStorage:ee,mediaPlayerModel:M,customParametersModel:P,cmsdModel:W,dashMetrics:H,adapter:O,videoModel:J,settings:le}),K.setConfig({abrController:v,dashMetrics:H,playbackController:G}),W.setConfig({}),v.initialize(),U.initialize(y,r),Z.initialize(),B.initialize(),j.initialize(),K.initialize(),W.initialize(),Y.initialize(),te.initialize()}function Ce(){return Hr(se).create({debug:ce,errHandler:L,dashMetrics:H,mediaPlayerModel:M,requestModifier:(0,X.Z)(se).getInstance(),mssHandler:R,settings:le})}function De(){if(A)return A;var e=dashjs.Protection;if("function"==typeof e){var t=e(se).create();return l.Z.extend(e.events),d.Z.extend(e.events,{publicOnly:!0}),w.extend(e.errors),F||(F=(0,zr.Z)(se).getInstance()),A=t.createProtectionSystem({debug:ce,errHandler:L,videoModel:J,customParametersModel:P,capabilities:F,eventBus:ue,events:l.Z,BASE64:ya,constants:a.Z,cmcdModel:K,settings:le})}return null}function Oe(){if(!g)throw oe;if(D)return D;var e=dashjs.OfflineController;if("function"==typeof e){l.Z.extend(e.events),d.Z.extend(e.events,{publicOnly:!0}),w.extend(e.errors);var t=Ce(),n=zt(se).create();return n.setConfig({manifestModel:V,adapter:O,manifestLoader:t,errHandler:L,contentSteeringController:Y}),D=e(se).create({debug:ce,manifestUpdater:n,baseURLController:x,manifestLoader:t,manifestModel:V,mediaPlayerModel:M,abrController:v,playbackController:G,adapter:O,errHandler:L,dashMetrics:H,timelineConverter:T,segmentBaseController:te,schemeLoaderFactory:_,eventBus:ue,events:l.Z,errors:w,constants:a.Z,settings:le,dashConstants:o.Z,urlUtils:(0,Q.Z)(se).getInstance()})}return null}function Me(e){var t=U&&U.hasVideoTrack()?a.Z.VIDEO:a.Z.AUDIO,n=H.getCurrentDVRInfo(t);return n?e+(n.manifestInfo.availableFrom.getTime()/1e3+n.range.start):0}function Pe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:NaN;D&&D.resetRecords(),!p&&n&&(p=!0,t.info("Streaming Initialized"),Ne(),"string"==typeof n?U.load(n,e):U.loadWithManifest(n,e)),!m&&de()&&(m=!0,t.info("Playback Initialized"))}return e={initialize:function(e,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:NaN;F||(F=(0,zr.Z)(se).getInstance()).setConfig({settings:le}),L||(L=Kr(se).getInstance()),F.supportsMediaSource()?(g||(g=!0,T=ma(se).getInstance(),v||(v=yi(se).getInstance()).setConfig({settings:le}),_||(_=yt(se).getInstance()),G||(G=h(se).getInstance()),b||(b=Tn(se).getInstance()),U||(U=on(se).getInstance()),B||(B=un(se).getInstance()),j||(j=cn(se).getInstance()),q||(q=pn(se).getInstance()),Y||(Y=jt(se).getInstance()),k||(k=Xr(se).getInstance()),O=Xi(se).getInstance(),V=ti(se).getInstance(),K=je(se).getInstance(),W=lt(se).getInstance(),H=ha(se).getInstance({settings:le}),ee=Ni(se).getInstance({settings:le}),O.setConfig({constants:a.Z,cea608parser:i(),errHandler:L,BASE64:ya}),x||(x=xn(se).create()),x.setConfig({adapter:O,contentSteeringController:Y}),q.setConfig({adapter:O}),te||(te=Ui(se).getInstance({dashMetrics:H,mediaPlayerModel:M,errHandler:L,baseURLController:x,events:l.Z,eventBus:ue,debug:ce,boxParser:(0,xt.Z)(se).getInstance(),requestModifier:(0,X.Z)(se).getInstance(),errors:w})),b.setConfig({domStorage:ee,settings:le,customParametersModel:P}),M.setConfig({playbackController:G,serviceDescriptionController:q}),Y.setConfig({adapter:O,errHandler:L,dashMetrics:H,mediaPlayerModel:M,manifestModel:V,serviceDescriptionController:q,eventBus:ue,requestModifier:(0,X.Z)(se).getInstance()}),_e(),ve(void 0===r||r),Oe()),e&&be(e),n&&Ie(n,o),t.info("[dash.js "+ge()+"] MediaPlayer has been initialized")):L.error(new S.Z(w.CAPABILITY_MEDIASOURCE_ERROR_CODE,w.CAPABILITY_MEDIASOURCE_ERROR_MESSAGE))},setConfig:function(e){e&&(e.capabilities&&(F=e.capabilities),e.capabilitiesFilter&&(k=e.capabilitiesFilter),e.streamController&&(U=e.streamController),e.textController&&(Z=e.textController),e.gapController&&(B=e.gapController),e.playbackController&&(G=e.playbackController),e.serviceDescriptionController&&(q=e.serviceDescriptionController),e.contentSteeringController&&(Y=e.contentSteeringController),e.catchupController&&(j=e.catchupController),e.mediaPlayerModel&&(M=e.mediaPlayerModel),e.customParametersModel&&(P=e.customParametersModel),e.abrController&&(v=e.abrController),e.schemeLoaderFactory&&(_=e.schemeLoaderFactory),e.mediaController&&(b=e.mediaController),e.settings&&(le=e.settings))},on:function(e,t,n,r){ue.on(e,t,n,r)},off:function(e,t,n){ue.off(e,t,n)},extend:function(e,t,n){c.Z.extend(e,t,n,se)},attachView:be,attachSource:Ie,isReady:de,preload:function(){if(!J.getElement()&&!p){if(!n)throw ae;Pe(E)}},play:function(){if(!m)throw re;(!y||he()&&m)&&G.play(!0)},isPaused:he,pause:function(){if(!m)throw re;G.pause()},isSeeking:function(){if(!m)throw re;return G.isSeeking()},isDynamic:pe,getLowLatencyModeEnabled:function(){if(!m)throw re;return G.getLowLatencyModeEnabled()},seek:function(e){if(!m)throw re;if((0,z.PS)(e,"number"),isNaN(e))throw a.Z.BAD_ARGUMENT_ERROR;e<0&&(e=0);var t=G.getIsDynamic()?me(e):e,n=Se();!G.getIsDynamic()&&n.duration&&(t=Math.min(n.duration,t)),G.seek(t,!1,!1,!0)},seekToOriginalLive:function(){m&&pe()&&G.seekToOriginalLive()},setPlaybackRate:function(e){Se().playbackRate=e},getPlaybackRate:function(){return Se().playbackRate},setMute:function(e){(0,z.PS)(e,"boolean"),Se().muted=e},isMuted:function(){return Se().muted},setVolume:function(e){if("number"!=typeof e||isNaN(e)||e<0||e>1)throw a.Z.BAD_ARGUMENT_ERROR;Se().volume=e},getVolume:function(){return Se().volume},time:ye,duration:Ee,timeAsUTC:function(){if(!m)throw re;return ye()<0?NaN:Me(ye())},durationAsUTC:function(){if(!m)throw re;return Me(Ee())},getActiveStream:Re,getDVRWindowSize:function(){var e=U&&U.hasVideoTrack()?a.Z.VIDEO:a.Z.AUDIO,t=H.getCurrentDVRInfo(e);return t?t.manifestInfo.dvrWindowSize:0},getDVRSeekOffset:me,getAvailableBaseUrls:function(){var e=V.getValue();return e?x.getBaseUrls(e):[]},getAvailableLocations:function(){var e=V.getValue();if(!e)return[];var t=O.getLocation(e),n=Y.getSynthesizedLocationElements(t);return t.concat(n)},getTargetLiveDelay:function(){if(!m)throw re;return G.getOriginalLiveDelay()},convertToTimeCode:function(e){e=Math.max(e,0);var t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%3600%60);return(0===t?"":t<10?"0"+t.toString()+":":t.toString()+":")+(n<10?"0"+n.toString():n.toString())+":"+(r<10?"0"+r.toString():r.toString())},formatUTC:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=new Date(1e3*e),a=i.toLocaleDateString(t),o=i.toLocaleTimeString(t,{hour12:n});return r?o+" "+a:o},getVersion:ge,getDebug:function(){return ce},getBufferLength:function(e){var n=[a.Z.VIDEO,a.Z.AUDIO,a.Z.TEXT];if(e)return-1!==n.indexOf(e)?Te().getCurrentBufferLevel(e)||NaN:(t.warn("getBufferLength requested for invalid type"),NaN);var r=n.map((function(e){return Ae(e).length>0?Te().getCurrentBufferLevel(e):Number.MAX_VALUE})).reduce((function(e,t){return Math.min(e,t)}));return r===Number.MAX_VALUE?NaN:r},getTTMLRenderingDiv:function(){return J?J.getTTMLRenderingDiv():null},getVideoElement:Se,getSource:function(){if(!n)throw ae;return n},updateSource:function(e){n=e,U.load(n)},getCurrentLiveLatency:function(){if(!g)throw oe;return m?G.getCurrentLiveLatency():NaN},getTopBitrateInfoFor:function(e){if(!p)throw ne;return v.getTopBitrateInfoFor(e)},setAutoPlay:ve,getAutoPlay:function(){return y},getDashMetrics:Te,getQualityFor:function(e){if(!p)throw ne;if(e===a.Z.IMAGE){var t=Re();if(!t)return-1;var n=t.getThumbnailController();return n?n.getCurrentTrackIndex():-1}return v.getQualityFor(e)},setQualityFor:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!p)throw ne;if(e===a.Z.IMAGE){var r=Re();if(!r)return;var i=r.getThumbnailController();i&&i.setTrackByIndex(t)}v.setPlaybackQuality(e,U.getActiveStreamInfo(),t,{forceReplace:n})},updatePortalSize:function(){v.setElementSize(),v.setWindowResizeEventCalled(!0)},enableText:function(e){var t=U.getActiveStreamInfo();return!(!t||!Z)&&Z.enableText(t.id,e)},enableForcedTextStreaming:function(e){return!(!U.getActiveStreamInfo()||!Z)&&Z.enableForcedTextStreaming(e)},isTextEnabled:function(){var e=U.getActiveStreamInfo();return!(!e||!Z)&&Z.isTextEnabled(e)},setTextTrack:function(e){if(!m)throw re;var t=U.getActiveStreamInfo();t&&Z&&Z.setTextTrack(t.id,e)},getBitrateInfoListFor:function(e){if(!p)throw ne;var t=Re();return t?t.getBitrateListFor(e):[]},getStreamsFromManifest:function(e){if(!p)throw ne;return O.getStreamsInfo(e)},getTracksFor:Ae,getTracksForTypeFromManifest:function(e,t,n){if(!p)throw ne;return(n=n||O.getStreamsInfo(t,1)[0])?O.getAllMediaInfoForType(n,e,t):[]},getCurrentTrackFor:function(e){if(!p)throw ne;var t=U.getActiveStreamInfo();return b.getCurrentTrackFor(e,t.id)},setInitialMediaSettingsFor:function(e,t){if(!g)throw oe;b.setInitialSettings(e,t)},getInitialMediaSettingsFor:function(e){if(!g)throw oe;return b.getInitialSettings(e)},setCurrentTrack:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!p)throw ne;b.setTrack(e,t)},addABRCustomRule:function(e,t,n){P.addAbrCustomRule(e,t,n)},removeABRCustomRule:function(e){P.removeAbrCustomRule(e)},removeAllABRCustomRule:function(){P.removeAllAbrCustomRule()},getABRCustomRules:function(){return P.getAbrCustomRules()},getAverageThroughput:function(e){var t=v.getThroughputHistory(),n=G.getIsDynamic();return t?t.getAverageThroughput(e,n):0},retrieveManifest:function(e,t){var n=Ce(),r=this;ue.on(l.Z.INTERNAL_MANIFEST_LOADED,(function e(i){i.error?t(null,i.error):t(i.manifest),ue.off(l.Z.INTERNAL_MANIFEST_LOADED,e,r),n.reset()}),r),$.initialize(e),n.load(e)},addUTCTimingSource:function(e,t){P.addUTCTimingSource(e,t)},removeUTCTimingSource:function(e,t){P.removeUTCTimingSource(e,t)},clearDefaultUTCTimingSources:function(){P.clearDefaultUTCTimingSources()},restoreDefaultUTCTimingSources:_e,setXHRWithCredentialsForType:function(e,t){P.setXHRWithCredentialsForType(e,t)},getXHRWithCredentialsForType:function(e){return P.getXHRWithCredentialsForType(e)},getProtectionController:function(){return De()},attachProtectionController:function(e){A=e},setProtectionData:function(e){r=e,U&&U.setProtectionData(r)},registerLicenseRequestFilter:function(e){P.registerLicenseRequestFilter(e)},registerLicenseResponseFilter:function(e){P.registerLicenseResponseFilter(e)},unregisterLicenseRequestFilter:function(e){P.unregisterLicenseRequestFilter(e)},unregisterLicenseResponseFilter:function(e){P.unregisterLicenseResponseFilter(e)},registerCustomCapabilitiesFilter:function(e){P.registerCustomCapabilitiesFilter(e)},unregisterCustomCapabilitiesFilter:function(e){P.unregisterCustomCapabilitiesFilter(e)},setCustomInitialTrackSelectionFunction:function(e){P.setCustomInitialTrackSelectionFunction(e)},resetCustomInitialTrackSelectionFunction:function(){P.resetCustomInitialTrackSelectionFunction(null)},attachTTMLRenderingDiv:function(e){if(!J.getElement())throw ie;J.setTTMLRenderingDiv(e)},attachVttRenderingDiv:function(e){if(!J.getElement())throw ie;J.setVttRenderingDiv(e)},getCurrentTextTrackIndex:function(){var e=U.getActiveStreamInfo();if(e&&Z)return Z.getCurrentTrackIdx(e.id)},provideThumbnail:function(e,t){if("function"==typeof t)if(e<0)t(null);else{var n=G.getIsDynamic()?me(e):e,r=U.getStreamForTime(n);if(null!==r){var i=r.getThumbnailController();if(i)return i.provide(n,t);t(null)}else t(null)}},getDashAdapter:function(){return O},getOfflineController:function(){return Oe()},triggerSteeringRequest:function(){if(Y)return Y.loadSteeringData()},getCurrentSteeringResponseData:function(){if(Y)return Y.getCurrentSteeringResponseData()},getSettings:function(){return le.get()},updateSettings:function(e){le.update(e)},resetSettings:function(){le.reset()},reset:fe,destroy:function(){fe(),c.Z.deleteSingletonInstances(se)}},t=ce.getLogger(e),g=!1,m=!1,p=!1,y=!0,E=NaN,A=null,D=null,r=null,O=null,te=null,l.Z.extend(d.Z),M=ii(se).getInstance(),P=(0,dt.Z)(se).getInstance(),J=_i(se).getInstance(),$=$r(se).getInstance(),e}qa.__dashjs_factory_name="MediaPlayer";var Ya=c.Z.getClassFactory(qa);Ya.events=d.Z,Ya.errors=w,c.Z.updateClassFactory(qa.__dashjs_factory_name,Ya);var ja=Ya},8825:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){return i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},i(e,t)}function a(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}var s=new(function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}(s,e);var t,n,r=(t=s,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=o(t);if(n){var i=o(this).constructor;e=Reflect.construct(r,arguments,i)}else e=r.apply(this,arguments);return a(this,e)});function s(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),(e=r.call(this)).AST_IN_FUTURE="astInFuture",e.BASE_URLS_UPDATED="baseUrlsUpdated",e.BUFFER_EMPTY="bufferStalled",e.BUFFER_LOADED="bufferLoaded",e.BUFFER_LEVEL_STATE_CHANGED="bufferStateChanged",e.BUFFER_LEVEL_UPDATED="bufferLevelUpdated",e.DYNAMIC_TO_STATIC="dynamicToStatic",e.ERROR="error",e.FRAGMENT_LOADING_COMPLETED="fragmentLoadingCompleted",e.FRAGMENT_LOADING_PROGRESS="fragmentLoadingProgress",e.FRAGMENT_LOADING_STARTED="fragmentLoadingStarted",e.FRAGMENT_LOADING_ABANDONED="fragmentLoadingAbandoned",e.LOG="log",e.MANIFEST_LOADING_STARTED="manifestLoadingStarted",e.MANIFEST_LOADING_FINISHED="manifestLoadingFinished",e.MANIFEST_LOADED="manifestLoaded",e.METRICS_CHANGED="metricsChanged",e.METRIC_CHANGED="metricChanged",e.METRIC_ADDED="metricAdded",e.METRIC_UPDATED="metricUpdated",e.PERIOD_SWITCH_STARTED="periodSwitchStarted",e.PERIOD_SWITCH_COMPLETED="periodSwitchCompleted",e.QUALITY_CHANGE_REQUESTED="qualityChangeRequested",e.QUALITY_CHANGE_RENDERED="qualityChangeRendered",e.TRACK_CHANGE_RENDERED="trackChangeRendered",e.STREAM_INITIALIZING="streamInitializing",e.STREAM_UPDATED="streamUpdated",e.STREAM_ACTIVATED="streamActivated",e.STREAM_DEACTIVATED="streamDeactivated",e.STREAM_INITIALIZED="streamInitialized",e.STREAM_TEARDOWN_COMPLETE="streamTeardownComplete",e.TEXT_TRACKS_ADDED="allTextTracksAdded",e.TEXT_TRACK_ADDED="textTrackAdded",e.THROUGHPUT_MEASUREMENT_STORED="throughputMeasurementStored",e.TTML_PARSED="ttmlParsed",e.TTML_TO_PARSE="ttmlToParse",e.CAPTION_RENDERED="captionRendered",e.CAPTION_CONTAINER_RESIZE="captionContainerResize",e.CAN_PLAY="canPlay",e.CAN_PLAY_THROUGH="canPlayThrough",e.PLAYBACK_ENDED="playbackEnded",e.PLAYBACK_ERROR="playbackError",e.PLAYBACK_NOT_ALLOWED="playbackNotAllowed",e.PLAYBACK_METADATA_LOADED="playbackMetaDataLoaded",e.PLAYBACK_LOADED_DATA="playbackLoadedData",e.PLAYBACK_PAUSED="playbackPaused",e.PLAYBACK_PLAYING="playbackPlaying",e.PLAYBACK_PROGRESS="playbackProgress",e.PLAYBACK_RATE_CHANGED="playbackRateChanged",e.PLAYBACK_SEEKED="playbackSeeked",e.PLAYBACK_SEEKING="playbackSeeking",e.PLAYBACK_STALLED="playbackStalled",e.PLAYBACK_STARTED="playbackStarted",e.PLAYBACK_TIME_UPDATED="playbackTimeUpdated",e.PLAYBACK_VOLUME_CHANGED="playbackVolumeChanged",e.PLAYBACK_WAITING="playbackWaiting",e.MANIFEST_VALIDITY_CHANGED="manifestValidityChanged",e.EVENT_MODE_ON_START="eventModeOnStart",e.EVENT_MODE_ON_RECEIVE="eventModeOnReceive",e.CONFORMANCE_VIOLATION="conformanceViolation",e.REPRESENTATION_SWITCH="representationSwitch",e.ADAPTATION_SET_REMOVED_NO_CAPABILITIES="adaptationSetRemovedNoCapabilities",e.CONTENT_STEERING_REQUEST_COMPLETED="contentSteeringRequestCompleted",e.INBAND_PRFT="inbandPrft",e.MANAGED_MEDIA_SOURCE_START_STREAMING="managedMediaSourceStartStreaming",e.MANAGED_MEDIA_SOURCE_END_STREAMING="managedMediaSourceEndStreaming",e}return s}(n(8342).Z));t.Z=s},3393:function(e,t){"use strict";function n(e,t){for(var n=0;n=400||t.responsecode<100||t.responsecode>=600)&&l({errorcode:t.responsecode||i.CONNECTION_ERROR,url:t.url,terror:t.tresponse,servicelocation:t._serviceLocation})}function h(e){var t;switch(e.error?e.error.code:0){case MediaError.MEDIA_ERR_NETWORK:t=i.CONNECTION_ERROR;break;case MediaError.MEDIA_ERR_DECODE:t=i.CORRUPT_MEDIA_OTHER;break;default:return}l({errorcode:t})}return t={initialize:function(){r.on(u.MANIFEST_UPDATED,c,t),r.on(u.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED,f,t),r.on(u.METRIC_ADDED,g,t),r.on(u.METRIC_UPDATED,g,t),r.on(u.PLAYBACK_ERROR,h,t),r.on(a.Z.BECAME_REPORTING_PLAYER,d,t)},reset:function(){r.off(u.MANIFEST_UPDATED,c,t),r.off(u.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED,f,t),r.off(u.METRIC_ADDED,g,t),r.off(u.METRIC_UPDATED,g,t),r.off(u.PLAYBACK_ERROR,h,t),r.off(a.Z.BECAME_REPORTING_PLAYER,d,t)}}}o.__dashjs_factory_name="DVBErrorsTranslator";var s=dashjs.FactoryMaker.getSingletonFactory(o),u=n(2295);function l(e){e=e||{};var t,n,r=!1,i=this.context,a=e.mediaElement;return t={initialize:function(e){e&&e.length&&(e.forEach((function(e){var t=e.starttime,r=t+e.duration;n.add(t,r)})),r=!!e[0]._useWallClockTime)},reset:function(){n.clear()},isEnabled:function(){var e,t=n.length;if(!t)return!0;e=r?(new Date).getTime()/1e3:a.currentTime;for(var i=0;i=200&&i.status<300)&&(n&&n()))};c.push(i);try{i.open("GET",e),i.onloadend=a,i.onerror=a,i.send()}catch(e){i.onerror()}}(i="".concat(s,"?").concat(i),0,(function(){o=!1}))}))},initialize:function(e,t){var n;if(u=t,!(s=e.dvb_reportingUrl))throw new Error("required parameter missing (dvb:reportingUrl)");a||((n=e.dvb_probability)&&(1e3===n||n/1e3>=i.random())&&(o=!0),a=!0)},reset:function(){g()}},n=d(l).getInstance(),i=h(l).getInstance(),r=(0,p.Z)(l).getInstance(),g(),t}m.__dashjs_factory_name="DVBReporting";var y=dashjs.FactoryMaker.getClassFactory(m);function E(e){e=e||{};var t,n={"urn:dvb:dash:reporting:2014":y},r=this.context,i=e.debug?e.debug.getLogger(t):{},a=e.metricsConstants,o=e.mediaPlayerModel||{};return{create:function(e,t){var s;try{(s=n[e.schemeIdUri](r).create({metricsConstants:a,mediaPlayerModel:o})).initialize(e,t)}catch(t){s=null,i.error("ReportingFactory: could not create Reporting with schemeIdUri ".concat(e.schemeIdUri," (").concat(t.message,")"))}return s},register:function(e,t){n[e]=t},unregister:function(e){delete n[e]}}}E.__dashjs_factory_name="ReportingFactory";var v=dashjs.FactoryMaker.getSingletonFactory(E);function _(e){var t=[],n=v(this.context).getInstance(e);return{initialize:function(e,r){e.some((function(e){var i=n.create(e,r);if(i)return t.push(i),!0}))},reset:function(){t.forEach((function(e){return e.reset()})),t=[]},report:function(e,n){t.forEach((function(t){return t.report(e,n)}))}}}_.__dashjs_factory_name="ReportingController";var T=dashjs.FactoryMaker.getClassFactory(_);function S(){return{reconstructFullMetricName:function(e,t,n){var r=e;return t&&(r+="("+t,n&&n.length&&(r+=","+n),r+=")"),r},validateN:function(e){if(!e)throw new Error("missing n");if(isNaN(e))throw new Error("n is NaN");if(e<0)throw new Error("n must be positive");return e}}}S.__dashjs_factory_name="HandlerHelpers";var b=dashjs.FactoryMaker.getSingletonFactory(S);function A(e){var t,n,r,i,a;e=e||{};var o=this.context,s=b(o).getInstance(),u=[],l=e.metricsConstants;function c(){var e=function(){try{return Object.keys(u).map((function(e){return u[e]})).reduce((function(e,t){return e.level0&&(t+=4+16*n.getUint32(t)),t+=4,e.slice(t)}},{key:"getPSSHForKeySystem",value:function(t,n){var r=e.parsePSSHList(n);return t&&r.hasOwnProperty(t.uuid.toLowerCase())?r[t.uuid.toLowerCase()]:null}},{key:"parseInitDataFromContentProtection",value:function(e,t){return"pssh"in e?(e.pssh.__text=e.pssh.__text.replace(/\r?\n|\r/g,"").replace(/\s+/g,""),t.decodeArray(e.pssh.__text).buffer):null}},{key:"parsePSSHList",value:function(e){if(null==e)return[];for(var t=new DataView(e.buffer||e),n={},r=0;;){var i,a,o=void 0,s=r;if(r>=t.buffer.byteLength)break;if(i=r+t.getUint32(r),r+=4,1886614376===t.getUint32(r))if(r+=4,0===(a=t.getUint8(r))||1===a){r++,r+=3,o="";var u=void 0,l=void 0;for(u=0;u<4;u++)o+=1===(l=t.getUint8(r+u).toString(16)).length?"0"+l:l;for(r+=4,o+="-",u=0;u<2;u++)o+=1===(l=t.getUint8(r+u).toString(16)).length?"0"+l:l;for(r+=2,o+="-",u=0;u<2;u++)o+=1===(l=t.getUint8(r+u).toString(16)).length?"0"+l:l;for(r+=2,o+="-",u=0;u<2;u++)o+=1===(l=t.getUint8(r+u).toString(16)).length?"0"+l:l;for(r+=2,o+="-",u=0;u<6;u++)o+=1===(l=t.getUint8(r+u).toString(16)).length?"0"+l:l;r+=6,r+=4,n[o=o.toLowerCase()]=t.buffer.slice(s,i),r=i}else r=i;else r=i}return n}},{key:"getLicenseServerUrlFromMediaInfo",value:function(e,t){try{if(!e||0===e.length)return null;for(var n=0,r=null;n0){var o=a.contentProtection.filter((function(e){return e.schemeIdUri&&e.schemeIdUri===t}));if(o&&o.length>0)for(var s=0;s=0?u[t.ks.systemString].priority:e.length)-(u&&u[n.ks.systemString]&&u[n.ks.systemString].priority>=0?u[n.ks.systemString].priority:e.length)}));for(var a=0;a0&&A.setServerCertificate(N.decodeArray(t.serverCertificate).buffer),F()}})).catch((function(e){f=null,v=!1,t||I.trigger(R.KEY_SYSTEM_SELECTED,{data:null,error:new g.Z(d.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE,d.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE+"Error selecting key system! -- "+e.error)})}))}}(e,t)}function F(){for(var e,t=0;t0?t.audioRobustness:c,u=t&&t.videoRobustness&&t.videoRobustness.length>0?t.videoRobustness:c,l=e.sessionType,f=t&&t.distinctiveIdentifier?t.distinctiveIdentifier:"optional",d=t&&t.persistentState?t.persistentState:"temporary"===l?"optional":"required";return i.forEach((function(e){e.type===C.AUDIO?n.push(new o(e.codec,a)):e.type===C.VIDEO&&r.push(new o(e.codec,u))})),new s(n,r,f,d,[l])}function j(e){e.error?I.trigger(R.KEY_STATUSES_CHANGED,{data:null,error:e.error}):n.debug("DRM: key status = "+e.status)}function H(e){n.debug("DRM: onKeyMessage");var t=e.data;I.trigger(R.KEY_MESSAGE,{data:t});var r=t.messageType?t.messageType:"license-request",o=t.message,s=t.sessionToken,u=B(f),l=b.getLicenseServerModelInstance(f,u,r),c={sessionToken:s,messageType:r};if(o&&0!==o.byteLength){if(!l)return n.debug("DRM: License server request not required for this message (type = "+e.data.messageType+"). Session ID = "+s.getSessionId()),void V(c);if(b.isClearKey(f)){var E=b.processClearKeyLicenseRequest(f,u,o);if(E&&E.keyPairs&&E.keyPairs.length>0)return n.debug("DRM: ClearKey license request handled by application!"),V(c),void A.updateKeySession(s,E)}!function(e,t,n){var r=e.sessionToken,o=e.messageType?e.messageType:"license-request",s={sessionToken:r,messageType:o},u=f?f.systemString:null,l=function(e,t,n,r,o){var s=null,u=r.message;if(e&&e.serverURL){var l=e.serverURL;"string"==typeof l&&""!==l?s=l:"object"===_(l)&&l.hasOwnProperty(t)&&(s=l[t])}else if(e&&e.laURL&&""!==e.laURL)s=e.laURL;else if(!(s=a.getLicenseServerUrlFromMediaInfo(i,f.schemeIdURI))&&!b.isClearKey(f)){var c=a.getPSSHData(n.initData);(s=f.getLicenseServerURLFromInitData(c))||(s=r.laURL)}return s=o.getServerURLFromMessage(s,u,t)}(n,o,r,e,t);if(l){var c={},E=!1;n&&W(c,n.httpRequestHeaders);var v=e.message;W(c,f.getRequestHeadersFromMessage(v)),Object.keys(c).forEach((function(e){"authorization"===e.toLowerCase()&&(E=!0)})),n&&"boolean"==typeof n.withCredentials&&(E=n.withCredentials);var T=function(e){if(A)if(e.status>=200&&e.status<=299){var n=y.Z.parseHttpHeaders(e.getAllResponseHeaders?e.getAllResponseHeaders():null),i=new p(e.responseURL,n,e.response);Q(P.getLicenseResponseFilters(),i).then((function(){var n=t.getLicenseMessage(i.data,u,o);null!==n?(V(s),A.updateKeySession(r,n)):X(e,s,u,o,t)}))}else X(e,s,u,o,t)},S=function(e){V(s,new g.Z(d.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,d.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+u+' update, XHR aborted. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState))},I=function(e){V(s,new g.Z(d.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,d.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+u+' update, XHR error. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState))},R=f.getLicenseRequestFromMessage(v),w=t.getHTTPMethod(o),N=t.getResponseType(u,o),C=n&&!isNaN(n.httpTimeout)?n.httpTimeout:8e3,D=r.getSessionId()||null,O=new h(l,w,N,c,E,o,D,R),L=isNaN(M.get().streaming.retryAttempts[m.w.LICENSE])?3:M.get().streaming.retryAttempts[m.w.LICENSE];Q(P.getLicenseRequestFilters(),O).then((function(){K(O,L,C,T,S,I)}))}else V(s,new g.Z(d.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE,d.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE))}(t,l,u)}else V(c,new g.Z(d.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE,d.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE))}function V(e,t){I.trigger(R.LICENSE_REQUEST_COMPLETE,{data:e,error:t})}function K(e,t,r,i,a,o){var s=new XMLHttpRequest;if(M.get().streaming.cmcd&&M.get().streaming.cmcd.enabled&&M.get().streaming.cmcd.mode===E.Z.CMCD_MODE_QUERY){var u=O.getQueryParameter({url:e.url,type:m.w.LICENSE});u&&(e.url=y.Z.addAditionalQueryParameterToUrl(e.url,[u]))}for(var l in s.open(e.method,e.url,!0),s.responseType=e.responseType,s.withCredentials=e.withCredentials,r>0&&(s.timeout=r),e.headers)s.setRequestHeader(l,e.headers[l]);if(M.get().streaming.cmcd&&M.get().streaming.cmcd.enabled&&M.get().streaming.cmcd.mode===E.Z.CMCD_MODE_HEADER){var c=O.getHeaderParameters({url:e.url,type:m.w.LICENSE});if(c)for(var f in c){var d=c[f];d&&s.setRequestHeader(f,d)}}var g=function(){t--;var n=isNaN(M.get().streaming.retryIntervals[m.w.LICENSE])?1e3:M.get().streaming.retryIntervals[m.w.LICENSE];S=setTimeout((function(){K(e,t,r,i,a,o)}),n)};s.onload=function(){T=null,this.status>=200&&this.status<=299||t<=0?i(this):(n.warn("License request failed ("+this.status+"). Retrying it... Pending retries: "+t),g())},s.ontimeout=s.onerror=function(){T=null,t<=0?o(this):(n.warn("License request network request failed . Retrying it... Pending retries: "+t),g())},s.onabort=function(){a(this)},I.trigger(R.LICENSE_REQUEST_SENDING,{url:e.url,headers:e.headers,payload:e.data,sessionId:e.sessionId}),T=s,s.send(e.data)}function z(){T&&(T.onloadend=T.onerror=T.onprogress=void 0,T.abort(),T=null),S&&(clearTimeout(S),S=null)}function W(e,t){if(t)for(var n in t)e[n]=t[n]}function X(e,t,n,r,i){var a="NONE",o=null;e.response&&(a=i.getErrorResponse(e.response,n,r),o={serverResponse:e.response||null,responseCode:e.status||null,responseText:e.statusText||null}),V(t,new g.Z(d.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,d.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+n+' update, XHR complete. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState+". Response is "+a,o))}function Q(e,t){return e?e.reduce((function(e,n){return e.then((function(){return n(t)}))}),Promise.resolve()):Promise.resolve()}function J(e,t){if(!M.get().streaming.protection.ignoreEmeEncryptedEvent){if(n.debug("DRM: onNeedKey"),"cenc"!==e.key.initDataType)return void n.warn("DRM: Only 'cenc' initData is supported! Ignoring initData of type: "+e.key.initDataType);if(0===i.length&&(n.warn("DRM: onNeedKey called before initializeForMedia, wait until initialized"),(t=void 0===t?1:t+1)<5))return void D.push(setTimeout((function(){J(e,t)}),500));var o=e.key.initData;if(ArrayBuffer.isView(o)&&(o=o.buffer),f){var s=a.getPSSHForKeySystem(f,o);if(s&&G(s))return}n.debug("DRM: initData:",String.fromCharCode.apply(null,new Uint8Array(o)));var c=b.getSupportedKeySystemsFromSegmentPssh(o,u,l);if(0===c.length)return void n.debug("DRM: Received needkey event with initData, but we don't support any of the key systems!");!function(e){r.push(e),x(e,!1)}(c)}}return t={initializeForMedia:function(e){if(!e)throw new Error("mediaInfo can not be null or undefined");L(),i.push(e)},clearMediaInfoArray:function(){i=[]},handleKeySystemFromManifest:function(){if(i&&0!==i.length){var e=[];i.forEach((function(t){var n=b.getSupportedKeySystemsFromContentProtection(t.contentProtection,u,l);n.length>0&&(0===e.length&&(e=n),r.push(n))})),e&&e.length>0&&x(e,!0)}},createKeySession:Z,loadKeySession:U,removeKeySession:function(e){L(),A.removeKeySession(e)},closeKeySession:function(e){L(),A.closeKeySession(e)},setServerCertificate:function(e){L(),A.setServerCertificate(e)},setMediaElement:q,setSessionType:function(e){l=e},setRobustnessLevel:function(e){c=e},setProtectionData:function(e){u=e,b.setProtectionData(e)},getSupportedKeySystemsFromContentProtection:function(e){return L(),b.getSupportedKeySystemsFromContentProtection(e,u,l)},getKeySystems:function(){return b?b.getKeySystems():[]},setKeySystems:function(e){b&&b.setKeySystems(e)},stop:function(){z(),A&&A.stop()},reset:function(){I.off(R.INTERNAL_KEY_MESSAGE,H,t),I.off(R.INTERNAL_KEY_STATUS_CHANGED,j,t),L(),z(),q(null),f=null,v=!1,A&&(A.reset(),A=null),D.forEach((function(e){return clearTimeout(e)})),D=[],i=[],r=[]}},n=w.getLogger(t),r=[],i=[],l="temporary",c="",T=null,S=null,I.on(R.INTERNAL_KEY_MESSAGE,H,t),I.on(R.INTERNAL_KEY_STATUS_CHANGED,j,t),t}T.__dashjs_factory_name="ProtectionController";var S=v.Z.getClassFactory(T),b=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.keyID=t,this.key=n};function A(e,t){for(var n=0;n%CUSTOMDATA%'.replace("%CUSTOMDATA%",t),a=[],o=0;o0&&(e[0]&&("string"==typeof e[0]?t=e[0]:n=e[0]),e[1]&&("string"==typeof e[1]?t=e[1]:n=e[1])),{status:t,keyId:n}}function _(e,t){var r={session:e,keyId:t.keyId,initData:t.initData,sessionId:t.sessionId,sessionType:t.sessionType,handleEvent:function(e){switch(e.type){case"keystatuseschange":c.trigger(f.KEY_STATUSES_CHANGED,{data:this}),e.target.keyStatuses.forEach((function(){var e=v(arguments);"expired"===e.status?c.trigger(f.INTERNAL_KEY_STATUS_CHANGED,{error:new g.Z(d.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE,d.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE)}):c.trigger(f.INTERNAL_KEY_STATUS_CHANGED,e)}));break;case"message":var t=ArrayBuffer.isView(e.message)?e.message.buffer:e.message;c.trigger(f.INTERNAL_KEY_MESSAGE,{data:new ce(this,t,void 0,e.messageType)})}},getKeyId:function(){return this.keyId},getSessionId:function(){return e.sessionId},getSessionType:function(){return this.sessionType},getExpirationTime:function(){return e.expiration},getKeyStatuses:function(){return e.keyStatuses},getUsable:function(){var t=!1;return e.keyStatuses.forEach((function(){var e=v(arguments);"usable"===e.status&&(t=!0)})),t}};return e.addEventListener("keystatuseschange",r),e.addEventListener("message",r),e.closed.then((function(){E(r),n.debug("DRM: Session closed. SessionID = "+r.getSessionId()),c.trigger(f.KEY_SESSION_CLOSED,{data:r.getSessionId()})})),o.push(r),r}return t={getAllInitData:function(){for(var e=[],t=0;t=1?t():(e=t.bind(this),r.addEventListener("loadedmetadata",e))}return t={getAllInitData:function(){for(var e=[],t=0;t0&&(t=o.ksConfiguration.videoCapabilities[0]),null===t&&o.ksConfiguration.audioCapabilities&&o.ksConfiguration.audioCapabilities.length>0&&(t=o.ksConfiguration.audioCapabilities[0]),null===t)throw new Error("Can not create sessions for unknown content types.");var r=t.contentType,s=a.createSession(r,new Uint8Array(e.initData),e.cdmData?new Uint8Array(e.cdmData):null),l=function(e,t){return{session:e,keyId:t.keyId,initData:t.initData,getKeyId:function(){return this.keyId},getSessionId:function(){return this.session.sessionId},getExpirationTime:function(){return NaN},getSessionType:function(){return"temporary"},handleEvent:function(e){switch(e.type){case y.error:h.trigger(p.KEY_ERROR,{error:new g.Z(d.MEDIA_KEYERR_CODE,"KeyError",this)});break;case y.message:var t=ArrayBuffer.isView(e.message)?e.message.buffer:e.message;h.trigger(p.INTERNAL_KEY_MESSAGE,{data:new ce(this,t,e.destinationURL)});break;case y.ready:n.debug("DRM: Key added."),h.trigger(p.KEY_ADDED);break;case y.close:n.debug("DRM: Session closed. SessionID = "+this.getSessionId()),h.trigger(p.KEY_SESSION_CLOSED,{data:this.getSessionId()})}}}}(s,e);s.addEventListener(y.error,l),s.addEventListener(y.message,l),s.addEventListener(y.ready,l),s.addEventListener(y.close,l),u.push(l),n.debug("DRM: Session created. SessionID = "+l.getSessionId()),h.trigger(p.KEY_SESSION_CREATED,{data:l})},updateKeySession:function(e,t){var n=e.session;c.isClearKey(i)?n.update(new Uint8Array(t.toJWK())):n.update(new Uint8Array(t)),h.trigger(p.KEY_SESSION_UPDATED)},closeKeySession:v,setServerCertificate:function(){},loadKeySession:function(){},removeKeySession:function(){},stop:E,reset:E},n=m.getLogger(t),r=null,i=null,a=null,o=null,u=[],c=re(f).getInstance(),l={handleEvent:function(e){if(e.type===y.needkey&&e.initData){var t=ArrayBuffer.isView(e.initData)?e.initData.buffer:e.initData;h.trigger(p.NEED_KEY,{key:new le(t,"cenc")})}}},t}pe.__dashjs_factory_name="ProtectionModel_3Feb2014";var me=dashjs.FactoryMaker.getClassFactory(pe);function ye(e){e=e||{};var t,n,r,i,a,o,u,l,c,f=this.context,h=e.eventBus,p=e.events,m=e.debug,y=e.api,E=e.errHandler;function v(){r&&S();for(var e=0;e0&&(t=o.shift(),u.push(t),t.sessionId=e.sessionId,h.trigger(p.KEY_SESSION_CREATED,{data:t})):o.length>0&&(t=o.shift(),u.push(t),0!==o.length&&E.error(new g.Z(d.MEDIA_KEY_MESSAGE_ERROR_CODE,d.MEDIA_KEY_MESSAGE_ERROR_MESSAGE))),t){var s=ArrayBuffer.isView(e.message)?e.message.buffer:e.message;t.keyMessage=s,h.trigger(p.INTERNAL_KEY_MESSAGE,{data:new ce(t,s,e.defaultURL)})}else n.warn("No session token found for key message")}}},t}ye.__dashjs_factory_name="ProtectionModel_01b";var Ee=dashjs.FactoryMaker.getClassFactory(ye),ve=[{generateKeyRequest:"generateKeyRequest",addKey:"addKey",cancelKeyRequest:"cancelKeyRequest",needkey:"needkey",keyerror:"keyerror",keyadded:"keyadded",keymessage:"keymessage"},{generateKeyRequest:"webkitGenerateKeyRequest",addKey:"webkitAddKey",cancelKeyRequest:"webkitCancelKeyRequest",needkey:"webkitneedkey",keyerror:"webkitkeyerror",keyadded:"webkitkeyadded",keymessage:"webkitkeymessage"}],_e=[{setMediaKeys:"setMediaKeys",MediaKeys:"MediaKeys",release:"close",needkey:"needkey",error:"keyerror",message:"keymessage",ready:"keyadded",close:"keyclose"},{setMediaKeys:"msSetMediaKeys",MediaKeys:"MSMediaKeys",release:"close",needkey:"msneedkey",error:"mskeyerror",message:"mskeymessage",ready:"mskeyadded",close:"mskeyclose"}];function Te(){var e,t=this.context;function n(e,t){for(var n=0;nd.Z.NO_CHANGE}))}function T(e){var t,n,r,i,a,o={},s=null;if(0!==e.length){for(o[d.Z.PRIORITY.STRONG]={quality:d.Z.NO_CHANGE,reason:null},o[d.Z.PRIORITY.WEAK]={quality:d.Z.NO_CHANGE,reason:null},o[d.Z.PRIORITY.DEFAULT]={quality:d.Z.NO_CHANGE,reason:null},t=0,n=e.length;tr.quality)&&(o[r.priority].quality=r.quality,o[r.priority].reason=r.reason||null);return o[d.Z.PRIORITY.WEAK].quality!==d.Z.NO_CHANGE&&(s=o[d.Z.PRIORITY.WEAK]),o[d.Z.PRIORITY.DEFAULT].quality!==d.Z.NO_CHANGE&&(s=o[d.Z.PRIORITY.DEFAULT]),o[d.Z.PRIORITY.STRONG].quality!==d.Z.NO_CHANGE&&(s=o[d.Z.PRIORITY.STRONG]),s&&(i=s.quality,a=s.reason),(0,d.Z)(f).create(i,a)}}return{initialize:function(){t=[],n=[],v.get().streaming.abr.useDefaultABRRules&&(v.get().streaming.abr.ABRStrategy===g.Z.ABR_STRATEGY_L2A?t.push((0,l.Z)(f).create({dashMetrics:E,settings:v})):v.get().streaming.abr.ABRStrategy===g.Z.ABR_STRATEGY_LoLP?t.push((0,c.Z)(f).create({dashMetrics:E})):(t.push((0,u.Z)(f).create({dashMetrics:E,mediaPlayerModel:m,settings:v})),t.push((0,r.Z)(f).create({dashMetrics:E})),v.get().streaming.abr.additionalAbrRules.insufficientBufferRule&&t.push((0,i.Z)(f).create({dashMetrics:E,settings:v})),v.get().streaming.abr.additionalAbrRules.switchHistoryRule&&t.push((0,s.Z)(f).create()),v.get().streaming.abr.additionalAbrRules.droppedFramesRule&&t.push((0,o.Z)(f).create()),v.get().streaming.abr.additionalAbrRules.abandonRequestsRule&&n.push((0,a.Z)(f).create({dashMetrics:E,mediaPlayerModel:m,settings:v})))),y.getAbrCustomRules().forEach((function(e){e.type===h&&t.push(e.rule(f).create()),e.type===p&&n.push(e.rule(f).create())}))},reset:function(){[t,n].forEach((function(e){e&&e.length&&e.forEach((function(e){return e.reset&&e.reset()}))})),t=[],n=[]},getMaxQuality:function(e){return T(_(t.map((function(t){return t.getMaxIndex(e)}))))||(0,d.Z)(f).create()},getMinSwitchRequest:T,shouldAbandonFragment:function(e,t){var r=T(_(n.map((function(n){return n.shouldAbandon(e,t)}))));return r&&(r.reason.forceAbandon=!0),r||(0,d.Z)(f).create()},getQualitySwitchRules:function(){return t}}}m.__dashjs_factory_name="ABRRulesCollection";var y=f.Z.getClassFactory(m);y.QUALITY_SWITCH_RULES=h,y.ABANDON_FRAGMENT_RULES=p,f.Z.updateSingletonFactory(m.__dashjs_factory_name,y),t.Z=y},7423:function(e,t,n){"use strict";var r=n(2068),i=n(5448),a=n(6398);function o(e){e=e||{};var t,n,i,s,u,l=this.context,c=e.mediaPlayerModel,f=e.dashMetrics,d=e.settings;function g(){i={},s={},u=[]}return t={shouldAbandon:function(e){var t=(0,r.Z)(l).create(r.Z.NO_CHANGE,{name:o.__dashjs_factory_name});if(!(e&&e.hasOwnProperty("getMediaInfo")&&e.hasOwnProperty("getMediaType")&&e.hasOwnProperty("getCurrentRequest")&&e.hasOwnProperty("getRepresentationInfo")&&e.hasOwnProperty("getAbrController")))return t;var a,g,h=e.getMediaInfo(),p=e.getMediaType(),m=e.getStreamInfo(),y=m?m.id:null,E=e.getCurrentRequest();if(!isNaN(E.index)){a=p,g=E.index,i[a]=i[a]||{},i[a][g]=i[a][g]||{};var v=c.getStableBufferTime();if(f.getCurrentBufferLevel(p)>v)return t;var _=i[p][E.index];if(null===_||null===E.firstByteDate||s.hasOwnProperty(_.id))return t;if(void 0===_.firstByteTime&&(u[p]=[],_.firstByteTime=E.firstByteDate.getTime(),_.segmentDuration=E.duration,_.bytesTotal=E.bytesTotal,_.id=E.index),_.bytesLoaded=E.bytesLoaded,_.elapsedTime=(new Date).getTime()-_.firstByteTime,_.bytesLoaded>0&&_.elapsedTime>0&&function(e,t){u[e]=u[e]||[],u[e].push(t)}(p,Math.round(8*_.bytesLoaded/_.elapsedTime)),u[p].length>=d.get().streaming.abr.abrRulesParameters.abandonRequestsRule.minLengthToAverage&&_.elapsedTime>d.get().streaming.abr.abrRulesParameters.abandonRequestsRule.graceTimeThreshold&&_.bytesLoaded<_.bytesTotal){var T=u[p].reduce((function(e,t){return e+t}),0);if(_.measuredBandwidthInKbps=Math.round(T/u[p].length),_.estimatedTimeOfDownload=+(8*_.bytesTotal/_.measuredBandwidthInKbps/1e3).toFixed(2),_.estimatedTimeOfDownload<_.segmentDuration*d.get().streaming.abr.abrRulesParameters.abandonRequestsRule.abandonMultiplier||0===e.getRepresentationInfo().quality)return t;if(!s.hasOwnProperty(_.id)){var S=e.getAbrController(),b=_.bytesTotal-_.bytesLoaded,A=S.getBitrateList(h),I=S.getQualityForBitrate(h,_.measuredBandwidthInKbps*d.get().streaming.abr.bandwidthSafetyFactor,y),R=S.getMinAllowedIndexFor(p,y),w=void 0!==R?Math.max(R,I):I;b>_.bytesTotal*A[w].bitrate/A[S.getQualityFor(p,y)].bitrate&&(t.quality=w,t.reason.throughput=_.measuredBandwidthInKbps,t.reason.fragmentID=_.id,t.reason.rule=this.getClassName(),s[_.id]=_,n.debug("["+p+"] frag id",_.id," is asking to abandon and switch to quality to ",w," measured bandwidth was",_.measuredBandwidthInKbps),delete i[p][_.id])}}else _.bytesLoaded===_.bytesTotal&&delete i[p][_.id]}return t},reset:g},n=(0,a.Z)(l).getInstance().getLogger(t),g(),t}o.__dashjs_factory_name="AbandonRequestsRule",t.Z=i.Z.getClassFactory(o)},3112:function(e,t,n){"use strict";var r=n(3860),i=n(2068),a=n(5448),o=n(7855),s=n(5595),u=n(8512),l=n(6398),c=n(8825),f=n(3393),d=10;function g(e){e=e||{};var t,n,a,g=this.context,h=e.dashMetrics,p=e.mediaPlayerModel,m=(0,s.Z)(g).getInstance();function y(e,t,n){var r=n.reduce((function(e,t,r){return t>n[e]?r:e}),0);if(0===r)return null;var i=Math.max(e,d+2*t.length),a=(n[r]-1)/(i/d-1);return{gp:a,Vp:d/a}}function E(e){e.placeholderBuffer=0,e.mostAdvancedSegmentStart=NaN,e.lastSegmentWasReplacement=!1,e.lastSegmentStart=NaN,e.lastSegmentDurationS=NaN,e.lastSegmentRequestTimeMs=NaN,e.lastSegmentFinishTimeMs=NaN}function v(e,t){var n=p.getStableBufferTime();if(e.stableBufferTime!==n){var r=y(n,e.bitrates,e.utilities);if(r.Vp!==e.Vp||r.gp!==e.gp){var i=h.getCurrentBufferLevel(t),a=i+e.placeholderBuffer;a-=d,a*=r.Vp/e.Vp,a+=d,e.stableBufferTime=n,e.Vp=r.Vp,e.gp=r.gp,e.placeholderBuffer=Math.max(0,a-i)}}}function _(e,t){return e.Vp*(e.utilities[t]+e.gp)}function T(e,t){for(var n=e.bitrates[t],r=e.utilities[t],i=0,a=t-1;a>=0;--a)if(e.utilities[a]t.mostAdvancedSegmentStart?(t.mostAdvancedSegmentStart=n,t.lastSegmentWasReplacement=!1):t.lastSegmentWasReplacement=!0,t.lastSegmentStart=n,t.lastSegmentDurationS=e.chunk.duration,t.lastQuality=e.chunk.quality,R(t,e.chunk.mediaInfo.type)}}}function I(e){if(e&&e.metric===r.Z.HTTP_REQUEST&&e.value&&e.value.type===o.w.MEDIA_SEGMENT_TYPE&&e.value.trace&&e.value.trace.length){var t=a[e.mediaType];t&&0!==t.state&&(t.lastSegmentRequestTimeMs=e.value.trequest.getTime(),t.lastSegmentFinishTimeMs=e.value._tfinish.getTime(),R(t,e.mediaType))}}function R(e,t){if(!isNaN(e.lastSegmentStart)&&!isNaN(e.lastSegmentRequestTimeMs)&&!isNaN(e.placeholderBuffer)){if(e.placeholderBuffer*=.99,!isNaN(e.lastSegmentFinishTimeMs)){var n=h.getCurrentBufferLevel(t)+.001*(e.lastSegmentFinishTimeMs-e.lastSegmentRequestTimeMs),r=_(e,e.lastQuality),i=Math.max(0,r-n);e.placeholderBuffer=Math.min(i,e.placeholderBuffer)}e.lastSegmentWasReplacement&&!isNaN(e.lastSegmentDurationS)&&(e.placeholderBuffer+=e.lastSegmentDurationS),e.lastSegmentStart=NaN,e.lastSegmentRequestTimeMs=NaN}}function w(e){if(e){var t=a[e.mediaType];t&&0!==t.state&&(t.abrQuality=e.newQuality)}}function N(e){if(e){var t=a[e.mediaType];if(t&&0!==t.state){var n,r=h.getCurrentBufferLevel(e.mediaType);n=t.abrQuality>0?T(t,t.abrQuality):d;var i=Math.max(0,n-r);t.placeholderBuffer=Math.min(t.placeholderBuffer,i)}}}function C(){a={}}return t={getMaxIndex:function(e){var t=(0,i.Z)(g).create();if(!(e&&e.hasOwnProperty("getMediaInfo")&&e.hasOwnProperty("getMediaType")&&e.hasOwnProperty("getScheduleController")&&e.hasOwnProperty("getStreamInfo")&&e.hasOwnProperty("getAbrController")&&e.hasOwnProperty("useBufferOccupancyABR")))return t;var r=e.getMediaInfo(),o=e.getMediaType(),s=e.getScheduleController(),u=e.getStreamInfo(),l=e.getAbrController(),c=l.getThroughputHistory(),f=u?u.id:null,d=u&&u.manifestInfo&&u.manifestInfo.isDynamic,m=e.useBufferOccupancyABR();if(t.reason=t.reason||{},!m)return t;s.setTimeToLoadDelay(0);var S=function(e){var t=e.getMediaType(),n=a[t];return n?0!==n.state&&v(n,t):(n=function(e){var t={},n=e.getMediaInfo().bitrateList.map((function(e){return e.bandwidth})),r=function(e){return e.map((function(e){return Math.log(e)}))}(n);r=r.map((function(e){return e-r[0]+1}));var i=p.getStableBufferTime(),a=y(i,n,r);return a?(t.state=1,t.bitrates=n,t.utilities=r,t.stableBufferTime=i,t.Vp=a.Vp,t.gp=a.gp,t.lastQuality=0,E(t)):t.state=0,t}(e),a[t]=n),n}(e);if(0===S.state)return t;var b,A=h.getCurrentBufferLevel(o),I=c.getAverageThroughput(o,d),R=c.getSafeAverageThroughput(o,d),w=c.getAverageLatency(o);if(t.reason.state=S.state,t.reason.throughput=I,t.reason.latency=w,isNaN(I))return t;switch(S.state){case 1:b=l.getQualityForBitrate(r,R,f,w),t.quality=b,t.reason.throughput=R,S.placeholderBuffer=Math.max(0,T(S,b)-A),S.lastQuality=b,!isNaN(S.lastSegmentDurationS)&&A>=S.lastSegmentDurationS&&(S.state=2);break;case 2:!function(e,t){var n=Date.now();if(isNaN(e.lastSegmentFinishTimeMs)){if(!isNaN(e.lastCallTimeMs)){var r=.001*(n-e.lastCallTimeMs);e.placeholderBuffer+=Math.max(0,r)}}else{var i=.001*(n-e.lastSegmentFinishTimeMs);e.placeholderBuffer+=Math.max(0,i)}e.lastCallTimeMs=n,e.lastSegmentStart=NaN,e.lastSegmentRequestTimeMs=NaN,e.lastSegmentFinishTimeMs=NaN,v(e,t)}(S,o),b=function(e,t){for(var n=e.bitrates.length,r=NaN,i=NaN,a=0;a=i)&&(i=o,r=a)}return r}(S,A+S.placeholderBuffer);var N=l.getQualityForBitrate(r,R,f,w);b>S.lastQuality&&b>N&&(b=Math.max(N,S.lastQuality));var C=Math.max(0,A+S.placeholderBuffer-_(S,b));C<=S.placeholderBuffer?(S.placeholderBuffer-=C,C=0):(C-=S.placeholderBuffer,S.placeholderBuffer=0,b375&&u/l>.15)){c=f-1,t.debug("index: "+c+" Dropped Frames: "+u+" Total Frames: "+l);break}return(0,i.Z)(n).create(c,{droppedFrames:u})}return r}},t=(0,a.Z)(n).getInstance().getLogger(e),e}o.__dashjs_factory_name="DroppedFramesRule",t.Z=r.Z.getClassFactory(o)},6535:function(e,t,n){"use strict";var r=n(5595),i=n(8512),a=n(5448),o=n(6398),s=n(2068),u=n(3393),l=n(3860),c=n(8825);function f(e){e=e||{};var t,n,a,f=this.context,d=(0,r.Z)(f).getInstance(),g=e.dashMetrics;function h(){(a={})[u.Z.VIDEO]={ignoreCount:2},a[u.Z.AUDIO]={ignoreCount:2}}function p(){h()}function m(e){isNaN(e.startTime)||e.mediaType!==u.Z.AUDIO&&e.mediaType!==u.Z.VIDEO||a[e.mediaType].ignoreCount>0&&a[e.mediaType].ignoreCount--}return t={getMaxIndex:function(e){var t=(0,s.Z)(f).create();if(!e||!e.hasOwnProperty("getMediaType"))return t;!function(){if(!g||!g.hasOwnProperty("getCurrentBufferLevel")||!g.hasOwnProperty("getCurrentBufferState"))throw new Error(u.Z.MISSING_CONFIG_ERROR)}();var r=e.getMediaType(),i=g.getCurrentBufferState(r),o=e.getRepresentationInfo().fragmentDuration,c=e.getStreamInfo(),d=c?c.id:null,h=e.getScheduleController(),p=c&&c.manifestInfo&&c.manifestInfo.isDynamic;if(function(e,t){return!e&&a[t].ignoreCount>0}(h.getPlaybackController().getLowLatencyModeEnabled(),r)||!o)return t;if(i&&i.state===l.Z.BUFFER_EMPTY)n.debug("["+r+"] Switch to index 0; buffer is empty."),t.quality=0,t.reason="InsufficientBufferRule: Buffer is empty";else{var m=e.getMediaInfo(),y=e.getAbrController(),E=y.getThroughputHistory(),v=g.getCurrentBufferLevel(r),_=E.getAverageThroughput(r,p),T=E.getAverageLatency(r),S=_*(v/o)*.5;t.quality=y.getQualityForBitrate(m,S,d,T),t.reason="InsufficientBufferRule: being conservative to avoid immediate rebuffering"}return t},reset:function(){h(),d.off(c.Z.PLAYBACK_SEEKING,p,t),d.off(i.Z.BYTES_APPENDED_END_FRAGMENT,m,t)}},n=(0,o.Z)(f).getInstance().getLogger(t),h(),d.on(c.Z.PLAYBACK_SEEKING,p,t),d.on(i.Z.BYTES_APPENDED_END_FRAGMENT,m,t),t}f.__dashjs_factory_name="InsufficientBufferRule",t.Z=a.Z.getClassFactory(f)},1914:function(e,t,n){"use strict";var r=n(3860),i=n(2068),a=n(5448),o=n(7855),s=n(5595),u=n(8512),l=n(6398),c=n(3393);function f(e){e=e||{};var t,n,a,f,d=this.context,g=e.dashMetrics,h=(0,s.Z)(d).getInstance();function p(e){e.placeholderBuffer=0,e.mostAdvancedSegmentStart=NaN,e.lastSegmentWasReplacement=!1,e.lastSegmentStart=NaN,e.lastSegmentDurationS=NaN,e.lastSegmentRequestTimeMs=NaN,e.lastSegmentFinishTimeMs=NaN,e.lastSegmentUrl=""}function m(){for(var e in n)if(n.hasOwnProperty(e)){var t=n[e];0!==t.state&&(t.state=1,p(t))}}function y(e){if(e&&e.chunk&&e.chunk.mediaInfo){var t=n[e.chunk.mediaInfo.type],r=a[e.chunk.mediaInfo.type];if(t&&0!==t.state){var i=e.chunk.start;isNaN(t.mostAdvancedSegmentStart)||i>t.mostAdvancedSegmentStart?(t.mostAdvancedSegmentStart=i,t.lastSegmentWasReplacement=!1):t.lastSegmentWasReplacement=!0,t.lastSegmentStart=i,t.lastSegmentDurationS=e.chunk.duration,t.lastQuality=e.chunk.quality,v(t,r)}}}function E(e){if(e&&e.metric===r.Z.HTTP_REQUEST&&e.value&&e.value.type===o.w.MEDIA_SEGMENT_TYPE&&e.value.trace&&e.value.trace.length){var t=n[e.mediaType],i=a[e.mediaType];t&&0!==t.state&&(t.lastSegmentRequestTimeMs=e.value.trequest.getTime(),t.lastSegmentFinishTimeMs=e.value._tfinish.getTime(),v(t,i))}}function v(e,t){isNaN(e.lastSegmentStart)||isNaN(e.lastSegmentRequestTimeMs)||(t.segment_request_start_s=.001*e.lastSegmentRequestTimeMs,t.segment_download_finish_s=.001*e.lastSegmentFinishTimeMs,e.lastSegmentStart=NaN,e.lastSegmentRequestTimeMs=NaN)}function _(e){if(e&&e.mediaType){var t=n[e.mediaType];t&&0!==t.state&&(t.abrQuality=e.newQuality)}}function T(e,t){if(e.length!==t.length)return-1;for(var n=0,r=0;r=O.B_target){D.state=2,O.Q=s;for(var M=0;MF&&(Z=-1),O.w[B]=O.prev_w[B]+Z*(U/(2*u))*((O.Q+s)*(C*m[B]/F));O.w=function(e){for(var t=e.length,n=!1,r=[],i=0;i=a[l+1]){n=!0;break}n||(s=(o+a[t-1]-1)/t);for(var c=0;cD.lastQuality&&m[D.lastQuality+1]<=F&&(t=D.lastQuality+1),m[t]>=F&&(O.Q=2*Math.max(s,O.Q)),D.lastSegmentUrl=k.url}r.quality=t,r.reason.throughput=w,r.reason.latency=N,r.reason.bufferLevel=I,D.lastQuality=r.quality;break;default:f.debug("L2A ABR rule invoked in bad state."),r.quality=_.getQualityForBitrate(l,R,v.id,N),r.reason.state=D.state,r.reason.throughput=R,r.reason.latency=N,D.state=1,p(D)}return r},reset:function(){S(),h.off(u.Z.PLAYBACK_SEEKING,m,t),h.off(u.Z.MEDIA_FRAGMENT_LOADED,y,t),h.off(u.Z.METRIC_ADDED,E,t),h.off(u.Z.QUALITY_CHANGE_REQUESTED,_,t)}},f=(0,l.Z)(d).getInstance().getLogger(t),S(),h.on(u.Z.PLAYBACK_SEEKING,m,t),h.on(u.Z.MEDIA_FRAGMENT_LOADED,y,t),h.on(u.Z.METRIC_ADDED,E,t),h.on(u.Z.QUALITY_CHANGE_REQUESTED,_,t),t}f.__dashjs_factory_name="L2ARule",t.Z=a.Z.getClassFactory(f)},6070:function(e,t,n){"use strict";var r=n(5448),i=n(6398),a=n(2068);function o(){var e,t,n=this.context;return e={getMaxIndex:function(e){for(var r=e?e.getSwitchHistory():null,i=r?r.getSwitchRequests():[],o=0,s=0,u=0,l=(0,a.Z)(n).create(),c=0;c=6&&o/s>.075)){l.quality=c>0&&i[c].drops>0?c-1:c,l.reason={index:l.quality,drops:o,noDrops:s,dropSize:u},t.debug("Switch history rule index: "+l.quality+" samples: "+(o+s)+" drops: "+o);break}return l}},t=(0,i.Z)(n).getInstance().getLogger(e),e}o.__dashjs_factory_name="SwitchHistoryRule",t.Z=r.Z.getClassFactory(o)},5628:function(e,t,n){"use strict";var r=n(5448),i=n(2068),a=n(3393),o=n(3860);function s(e){e=e||{};var t=this.context,n=e.dashMetrics;return{getMaxIndex:function(e){var r=(0,i.Z)(t).create();if(!(e&&e.hasOwnProperty("getMediaInfo")&&e.hasOwnProperty("getMediaType")&&e.hasOwnProperty("useBufferOccupancyABR")&&e.hasOwnProperty("getAbrController")&&e.hasOwnProperty("getScheduleController")))return r;!function(){if(!n||!n.hasOwnProperty("getCurrentBufferState"))throw new Error(a.Z.MISSING_CONFIG_ERROR)}();var s=e.getMediaInfo(),u=e.getMediaType(),l=n.getCurrentBufferState(u),c=e.getScheduleController(),f=e.getAbrController(),d=e.getStreamInfo(),g=d?d.id:null,h=d&&d.manifestInfo?d.manifestInfo.isDynamic:null,p=f.getThroughputHistory(),m=p.getSafeAverageThroughput(u,h),y=p.getAverageLatency(u),E=e.useBufferOccupancyABR();return isNaN(m)||!l||E||f.getAbandonmentStateFor(g,u)!==o.Z.ABANDON_LOAD&&(l.state===o.Z.BUFFER_LOADED||h)&&(r.quality=f.getQualityForBitrate(s,m,g,y),c.setTimeToLoadDelay(0),r.reason={throughput:m,latency:y}),r},reset:function(){}}}s.__dashjs_factory_name="ThroughputRule",t.Z=r.Z.getClassFactory(s)},4722:function(e,t,n){"use strict";var r=n(5448),i=n(6398);function a(){var e,t,n,r,a,o,s,u,l,c=this.context;function f(){n=null,r=1,a=100,o=0,s=null,u=null,l="dynamic_weight_selection"}function d(){var e=0;if(n)for(var t=0;te&&(e=r.state.throughput)}return e}function g(e,t,n){var r=e.map((function(e,r){return n[r]*Math.pow(e-t[r],2)})).reduce((function(e,t){return e+t}));return(r<0?-1:1)*Math.sqrt(Math.abs(r))}function h(e,t){return g([e.state.throughput,e.state.latency,e.state.rebuffer,e.state.switch],[t.state.throughput,t.state.latency,t.state.rebuffer,t.state.switch],[1,1,1,1])}function p(e,t,n){for(var r=0;ro)&&(a=u,o=l)}t.push(a)}for(var h=null,p=null,m=0;mh)&&(h=y,p=m)}var v=[];for(v.push(t[p]),t.splice(p,1);t.length>0;){for(var _=null,T=null,S=0;S1&&(S=d()),c/=a,t.debug("getNextQuality called throughput:".concat(S," latency:").concat(c," bufferSize:").concat(f," currentQualityIndex:").concat(m," playbackRate:").concat(h));var b=T[m],A=b.bitrate*y.getSegmentDuration()/_,I=Math.max(0,A-v);if(v-Aw?w=C:CI?M-I:0;f.setupPerSegmentQoe(I,w,R),f.logSegmentMetrics(D,P,T,S);var L=(0,l.Z)(g).create({targetLatency:1.5,bufferMin:.3,segmentDuration:I,qoeEvaluator:f});return n.quality=i.getNextQuality(p,1e3*b,T,E,S,h,L),n.reason={throughput:b,latency:T},n.priority=s.Z.PRIORITY.STRONG,y.setTimeToLoadDelay(0),n.quality!==h&&t.debug("[TgcLearningRule]["+r+"] requesting switch to index: ",n.quality,"Average throughput",Math.round(b),"kbps"),n}catch(e){throw e}},reset:function(){i.reset(),f.reset()}},t=(0,r.Z)(g).getInstance().getLogger(n),i=(0,a.Z)(g).create(),f=(0,o.Z)(g).create(),n}f.__dashjs_factory_name="LoLPRule",t.Z=i.Z.getClassFactory(f)},6523:function(e,t,n){"use strict";var r=n(5448);function i(e){var t,n,r,i,a=e.targetLatency,o=e.bufferMin,s=e.segmentDuration,u=e.qoeEvaluator;function l(){return s}function c(e,t){var n=l();return t>n?e-n:e+n-t}return t={getMinBuffer:function(){return o},getSegmentDuration:l,getNextBufferWithBitrate:function(e,t,n){return c(t,e*s/n)},getNextBuffer:c,findWeightVector:function(e,t,i,l,f,d){var g=null,h=null,p=null,m=Math.abs(t-r);return e.forEach((function(e){n.forEach((function(n){n[0];var r=n[1],l=n[2],y=(n[3],e.bitrate*s/f),E=c(i,y),v=(0===l?10:1/l)*Math.max(1e-5,y-E),_=(0===r?10:1/r)*e.state.latency,T=u.calculateSingleUseQoe(e.bitrate,v,_,d);(null===g||T>g)&&function(e,t,n){return!(e>a+n)&&t>=o}(t,E,m)&&(g=T,h=n,p=e.bitrate)}))})),null===h&&null===p&&(h=-1),r=t,h}},4,n=function e(t,n,r){if(r===n)return t;for(var a=t.length,o=0;o=0&&e.value){var t=e.value.split("x");2!==t.length||isNaN(t[0])||isNaN(t[1])||(r.tilesHor=parseInt(t[0],10),r.tilesVert=parseInt(t[1],10))}})),t?m.updateSegmentData(e).then((function(t){!function(e,t,n){var r=[],i=function(e,t){var n,r,i,a,o=[],s=0;for(n=0,r=e.segments.length;ne)return i=t.url,!0})),i?n(i):t.segments.some((function(i){if(i.mediaStartTime<=e&&i.mediaStartTime+i.duration>e){var a=T.resolve(t.path);return y.load({method:"get",url:a.url,request:{range:i.mediaRange,responseType:"arraybuffer"},onload:function(e){var t=E.getSamplesInfo(e.target.response),a=new Blob([e.target.response.slice(t.sampleList[0].offset,t.sampleList[0].offset+t.sampleList[0].size)],{type:"image/jpeg"}),o=window.URL.createObjectURL(a);r.push({start:i.mediaStartTime,end:i.mediaStartTime+i.duration,url:o}),n&&n(o)}}),!0}}))}}(r,e,t)})):(r.startNumber=e.startNumber,r.segmentDuration=e.segmentDuration,r.timescale=e.timescale,r.templateUrl=function(e){var t=N.isRelative(e.media)?N.resolve(e.media,T.resolve(e.path).url):e.media;return t?(0,u.Aj)(t,e.id):""}(e)),r.tilesHor>0&&r.tilesVert>0&&(r.widthPerTile=r.width/r.tilesHor,r.heightPerTile=r.height/r.tilesVert,n.push(r))}function D(){n=[],h=-1,p=null}return t={getTracks:function(){return n},addTracks:function(){if(S&&_&&(p=_.getMediaInfoForType(S,r.Z.IMAGE))){var e=_.getVoRepresentations(p);e&&e.length>0&&e.forEach((function(e){(e.segmentInfoType===i.Z.SEGMENT_TEMPLATE&&e.segmentDuration>0&&e.media||e.segmentInfoType===i.Z.SEGMENT_TIMELINE)&&C(e),e.segmentInfoType===i.Z.SEGMENT_BASE&&C(e,!0)})),n.length>0&&n.sort((function(e,t){return e.bitrate-t.bitrate}))}},reset:D,setTrackByIndex:function(e){n&&0!==n.length&&(e>=n.length&&(e=n.length-1),h=e)},getCurrentTrack:function(){return h<0?null:n[h]},getCurrentTrackIndex:function(){return h},getThumbnailRequestForTime:function(e){for(var t,r=_.getVoRepresentations(p),i=0;i>>0|e[t+2]<<8>>>0|e[t+1]<<16>>>0|e[t]<<24>>>0}function l(e,t){return String.fromCharCode(e[t++])+String.fromCharCode(e[t++])+String.fromCharCode(e[t++])+String.fromCharCode(e[t])}return t={parse:a,findLastTopIsoBoxCompleted:function(e,t,n){if(void 0===n&&(n=0),!t||n+8>=t.byteLength)return new s.Z(0,!1);for(var r,i=t instanceof ArrayBuffer?new Uint8Array(t):t,a=0;n=0?r=new s.Z(n,!0,o):a=n+o),n+=o}return r||new s.Z(a,!1)},getMediaTimescaleFromMoov:function(e){var t=a(e),n=t?t.getBox("mdhd"):void 0;return n?n.timescale:NaN},getSamplesInfo:function(e){if(!e||0===e.byteLength)return{sampleList:[],lastSequenceNumber:NaN,totalDuration:NaN,numSequences:NaN};var t,n,r,i,o,s,u,l,c,f,d,g,h,p,m,y,E=a(e),v=E.getBoxes("moof"),_=E.getBoxes("mfhd");m=E.getBoxes("moof").length,p=_[_.length-1].sequence_number,n=0,o=[];var T=-1,S=-1;for(f=0;fS&&(T++,S+=M.entries[T].sample_delta),u==S){O.subSizes=[];var P=M.entries[T];for(g=0;g=t.byteLength)return new s.Z(0,!1);for(var r,i=t instanceof ArrayBuffer?new Uint8Array(t):t,a=0;n=0?r=new s.Z(n,!0,o,c):a=n+o),n+=o}return r||new s.Z(a,!1)}},e=(0,r.Z)(n).getInstance().getLogger(t),t}u.__dashjs_factory_name="BoxParser",t.Z=a.Z.getSingletonFactory(u)},1715:function(e,t,n){"use strict";n.d(t,{B:function(){return s}});var r=n(5448),i=n(7803),a=n(3393),o=[{codec:"avc1",compatibleCodecs:["avc3"]},{codec:"avc3",compatibleCodecs:["avc1"]}];function s(){var e="ManagedMediaSource"in window,t="WebKitMediaSource"in window,n="MediaSource"in window;return e||t||n}function u(){var e,t,n;return e={setConfig:function(e){e&&e.settings&&(t=e.settings)},supportsMediaSource:s,supportsEncryptedMedia:function(){return n},supportsCodec:function(e,n){return n!==a.Z.AUDIO&&n!==a.Z.VIDEO?Promise.resolve(!0):function(e,n){return t.get().streaming.capabilities.useMediaCapabilitiesApi&&navigator.mediaCapabilities&&navigator.mediaCapabilities.decodingInfo&&(e.codec&&n===a.Z.AUDIO||n===a.Z.VIDEO&&e.codec&&e.width&&e.height&&e.bitrate&&e.framerate)}(e,n)?function(e,t){return new Promise((function(n){if(e&&e.codec){var r={type:"media-source"};r[t]={},r[t].contentType=e.codec,r[t].width=e.width,r[t].height=e.height,r[t].bitrate=parseInt(e.bitrate),r[t].framerate=parseFloat(e.framerate),navigator.mediaCapabilities.decodingInfo(r).then((function(e){n(e.supported)})).catch((function(){n(!1)}))}else n(!1)}))}(e,n):function(e){return new Promise((function(t){if(e&&e.codec){var n=e.codec;e.width&&e.height&&(n+=';width="'+e.width+'";height="'+e.height+'"'),"ManagedMediaSource"in window&&ManagedMediaSource.isTypeSupported(n)||"MediaSource"in window&&MediaSource.isTypeSupported(n)||"WebKitMediaSource"in window&&WebKitMediaSource.isTypeSupported(n)?t(!0):t(!1)}else t(!1)}))}(e)},setEncryptedMediaSupported:function(e){n=e},supportsEssentialProperty:function(e){try{return-1!==i.Y.indexOf(e.schemeIdUri)}catch(e){return!0}},codecRootCompatibleWithCodec:function(e,t){for(var n,r=e.split(".")[0],i=0===t.indexOf(r),a=0;athis.customTimeRangeArray[n].start;n++);for(this.customTimeRangeArray.splice(n,0,{start:e,end:t}),n=0;n=this.customTimeRangeArray[n].end)this.customTimeRangeArray.splice(n,1),n--;else{if(e>this.customTimeRangeArray[n].start&&tthis.customTimeRangeArray[n].start&&ethis.customTimeRangeArray[n].start&&t=this.customTimeRangeArray.length||e<0?NaN:this.customTimeRangeArray[e].start},end:function(e){return(0,i.SE)(e),e>=this.customTimeRangeArray.length||e<0?NaN:this.customTimeRangeArray[e].end}}}a.__dashjs_factory_name="CustomTimeRanges",t.Z=r.Z.getClassFactory(a)},5:function(e,t,n){"use strict";var r=n(5448);function i(){var e,t=/^[a-z][a-z0-9+\-_.]*:/i,n=/^https?:\/\//i,r=/^https:\/\//i,i=/^([a-z][a-z0-9+\-_.]*:\/\/[^\/]+)\/?/i,a=function(e,t){try{return new window.URL(e,t).toString()}catch(t){return e}},o=function(e,t){var n=s;if(!t)return e;if(!c(e))return e;f(e)&&(n=u),d(e)&&(n=l);var r=n(t),i="/"!==r.charAt(r.length-1)&&"/"!==e.charAt(0)?"/":"";return[r,e].join(i)};function s(e){var t=e.indexOf("/"),n=e.lastIndexOf("/");return-1!==t?n===t+1?e:(-1!==e.indexOf("?")&&(e=e.substring(0,e.indexOf("?"))),e.substring(0,n+1)):""}function u(e){var t=e.match(i);return t?t[1]:""}function l(e){var n=e.match(t);return n?n[0]:""}function c(e){return!t.test(e)}function f(e){return c(e)&&"/"===e.charAt(0)}function d(e){return 0===e.indexOf("//")}return function(){try{new window.URL("x","http://y"),e=a}catch(e){}finally{e=e||o}}(),{parseBaseUrl:s,parseOrigin:u,parseScheme:l,isRelative:c,isPathAbsolute:f,isSchemeRelative:d,isHTTPURL:function(e){return n.test(e)},isHTTPS:function(e){return r.test(e)},removeHostname:function(e){return/^(?:\w+\:\/\/)?([^\/]+)(.*)$/.exec(e)[2].substring(1)},resolve:function(t,n){return e(t,n)}}}i.__dashjs_factory_name="DefaultURLUtils",t.Z=r.Z.getSingletonFactory(i)},8260:function(e,t,n){"use strict";var r=n(2839),i=n(5448);function a(){var e;function t(t){var r=[];if(!t||!e||"function"!=typeof e.fetchAll)return r;for(var i,a=e.fetchAll(t),o=0,s=a.length;o0?n[n.length-1]:null}}}a.__dashjs_factory_name="IsoFile",t.Z=i.Z.getClassFactory(a)},7473:function(e,t,n){"use strict";n.d(t,{k:function(){return i}});var r=n(5448);function i(e,t){var n={url:e.url,method:e.method,headers:Object.assign({},e.headers),credentials:e.withCredentials?"include":void 0};return Promise.resolve(t.modifyRequest(n)).then((function(){return Object.assign(e,n,{withCredentials:"include"===n.credentials})}))}function a(){return{modifyRequest:null,modifyRequestURL:function(e){return e},modifyRequestHeader:function(e,t){return t.url,e}}}a.__dashjs_factory_name="RequestModifier",t.Z=r.Z.getSingletonFactory(a)},3106:function(e,t,n){"use strict";n.d(t,{PS:function(){return a},SE:function(){return o}});var r=n(3393);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e,t){if(i(e)!==t)throw r.Z.BAD_ARGUMENT_ERROR}function o(e){if(null===e||isNaN(e)||e%1!=0)throw r.Z.BAD_ARGUMENT_ERROR+" : argument is not an integer"}},2594:function(e,t,n){"use strict";var r=n(5448),i=n(5);function a(){var e,t=[],n=this.context;function r(n,r,i){var a=function(n){var r;for(r=0;r-1}),!0),t.extendedFilter=n((function(e,t){var n=e.split("-"),r=t.split("-"),i=0,a=0;if("*"!==r[a]&&n[i]!==r[a])return!1;for(i++,a++;a-1||!e[i]||!e[i].length)&&h(e,i,o[i])}function g(e,t,n){var r,i,a,o,s=!1;if(n){if(i=r=e[t],r&&"object"==typeof r)for(i=[],a=-1;++a1&&m<9){if(g.language=h.slice(0,m),m<4)for(c=0;45===p.charCodeAt(m)&&i(p.charCodeAt(m+1))&&i(p.charCodeAt(m+2))&&i(p.charCodeAt(m+3))&&!i(p.charCodeAt(m+4));){if(c>2)return y(m,3,"Too many extended language subtags, expected at most 3 subtags");g.extendedLanguageSubtags.push(h.slice(m+1,m+4)),m+=4,c++}for(45===p.charCodeAt(m)&&i(p.charCodeAt(m+1))&&i(p.charCodeAt(m+2))&&i(p.charCodeAt(m+3))&&i(p.charCodeAt(m+4))&&!i(p.charCodeAt(m+5))&&(g.script=h.slice(m+1,m+5),m+=5),45===p.charCodeAt(m)&&(i(p.charCodeAt(m+1))&&i(p.charCodeAt(m+2))&&!i(p.charCodeAt(m+3))?(g.region=h.slice(m+1,m+3),m+=3):a(p.charCodeAt(m+1))&&a(p.charCodeAt(m+2))&&a(p.charCodeAt(m+3))&&!a(p.charCodeAt(m+4))&&(g.region=h.slice(m+1,m+4),m+=4));45===p.charCodeAt(m);){for(f=l=m+1;r(p.charCodeAt(f));){if(f-l>7)return y(f,1,"Too long variant, expected at most 8 characters");f++}if(!(f-l>4||f-l>3&&a(p.charCodeAt(l))))break;g.variants.push(h.slice(l,f)),m=f}for(;45===p.charCodeAt(m)&&120!==p.charCodeAt(m+1)&&r(p.charCodeAt(m+1))&&45===p.charCodeAt(m+2)&&r(p.charCodeAt(m+3));){for(f=m+2,c=0;45===p.charCodeAt(f)&&r(p.charCodeAt(f+1))&&r(p.charCodeAt(f+2));)for(f=(l=f+1)+2,c++;r(p.charCodeAt(f));){if(f-l>7)return y(f,2,"Too long extension, expected at most 8 characters");f++}if(!c)return y(f,4,"Empty extension, extensions must have at least 2 characters of content");g.extensions.push({singleton:h.charAt(m+1),extensions:h.slice(m+3,f).split("-")}),m=f}}else m=0;if(0===m&&120===p.charCodeAt(m)||45===p.charCodeAt(m)&&120===p.charCodeAt(m+1))for(f=m=m?m+2:1;45===p.charCodeAt(f)&&r(p.charCodeAt(f+1));){for(f=l=m+1;r(p.charCodeAt(f));){if(f-l>7)return y(f,5,"Too long private-use area, expected at most 8 characters");f++}g.privateuse.push(h.slice(m+1,f)),m=f}return m!==h.length?y(m,6,"Found superfluous content after tag"):g;function y(e,t,n){return d.warning&&d.warning(n,t,e),d.forgiving?g:{language:null,extendedLanguageSubtags:[],script:null,region:null,variants:[],extensions:[],privateuse:[],irregular:null,regular:null}}};var u={}.hasOwnProperty},6713:function(e){"use strict";e.exports=function(e){var t,n,r,i=e||{},a=[];if(i.irregular||i.regular)return i.irregular||i.regular;if(i.language)for(a=a.concat(i.language,i.extendedLanguageSubtags||[],i.script||[],i.region||[],i.variants||[]),t=i.extensions||[],n=-1;++no)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return l(e,t,n)}function l(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var n=0|p(e,t),r=s(n),i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(G(e,Uint8Array)){var t=new Uint8Array(e);return g(t.buffer,t.byteOffset,t.byteLength)}return d(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(G(e,ArrayBuffer)||e&&G(e.buffer,ArrayBuffer))return g(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(G(e,SharedArrayBuffer)||e&&G(e.buffer,SharedArrayBuffer)))return g(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');var r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return u.from(r,t,n);var i=function(e){if(u.isBuffer(e)){var t=0|h(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||q(e.length)?s(0):d(e):"Buffer"===e.type&&Array.isArray(e.data)?d(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return c(e),s(e<0?0:0|h(e))}function d(e){for(var t=e.length<0?0:0|h(e.length),n=s(t),r=0;r=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|e}function p(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||G(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Z(e).length;default:if(i)return r?-1:U(e).length;t=(""+t).toLowerCase(),i=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return D(this,t,n);case"utf8":case"utf-8":return R(this,t,n);case"ascii":return N(this,t,n);case"latin1":case"binary":return C(this,t,n);case"base64":return I(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function E(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),q(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:v(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):v(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,n,r,i){var a,o=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,u/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var c=-1;for(a=n;as&&(n=s-u),a=n;a>=0;a--){for(var f=!0,d=0;di&&(r=i):r=i;var a=t.length;r>a/2&&(r=a/2);for(var o=0;o>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function I(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function R(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:l>223?3:l>191?2:1;if(i+f<=n)switch(f){case 1:l<128&&(c=l);break;case 2:128==(192&(a=e[i+1]))&&(u=(31&l)<<6|63&a)>127&&(c=u);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(u=(15&l)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,f=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),i+=f}return function(e){var t=e.length;if(t<=w)return String.fromCharCode.apply(String,e);for(var n="",r=0;rr.length?u.from(a).copy(r,i):Uint8Array.prototype.set.call(r,a,i);else{if(!u.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,i)}i+=a.length}return r},u.byteLength=p,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;tn&&(e+=" ... "),""},a&&(u.prototype[a]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,i){if(G(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(a,o),l=this.slice(r,i),c=e.slice(t,n),f=0;f>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return _(this,e,t,n);case"utf8":case"utf-8":return T(this,e,t,n);case"ascii":case"latin1":case"binary":return S(this,e,t,n);case"base64":return b(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var w=4096;function N(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",a=t;an)throw new RangeError("Trying to access beyond buffer length")}function P(e,t,n,r,i,a){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function L(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function x(e,t,n,r,a){return t=+t,n>>>=0,a||L(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,a){return t=+t,n>>>=0,a||L(e,0,n,8),i.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||M(e,t,this.length);for(var r=this[e],i=1,a=0;++a>>=0,t>>>=0,n||M(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||M(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||M(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||M(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||M(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||M(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||M(e,t,this.length);for(var r=this[e],i=1,a=0;++a=(i*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||M(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return e>>>=0,t||M(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||M(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||M(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||M(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||M(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return e>>>=0,t||M(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||M(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||M(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||M(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||P(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a>>=0,n>>>=0,r||P(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeFloatLE=function(e,t,n){return x(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return x(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function Z(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(k,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function B(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function G(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function q(e){return e!=e}var Y=function(){for(var e="0123456789abcdef",t=new Array(256),n=0;n<16;++n)for(var r=16*n,i=0;i<16;++i)t[r+i]=e[n]+e[i];return t}()},6693:function(e,t){"use strict";t.byteLength=function(e){var t=u(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,a=u(e),o=a[0],s=a[1],l=new i(function(e,t,n){return 3*(t+n)/4-n}(0,o,s)),c=0,f=s>0?o-4:o;for(n=0;n>16&255,l[c++]=t>>8&255,l[c++]=255&t;return 2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,l[c++]=255&t),1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,l[c++]=t>>8&255,l[c++]=255&t),l},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,a=[],o=16383,s=0,u=r-i;su?u:s+o));return 1===i?(t=e[r-1],a.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],a.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),a.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,s=a.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,r){for(var i,a,o=[],s=t;s>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return o.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},2165:function(e,t){t.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,u=(1<>1,c=-7,f=n?i-1:0,d=n?-1:1,g=e[t+f];for(f+=d,a=g&(1<<-c)-1,g>>=-c,c+=s;c>0;a=256*a+e[t+f],f+=d,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=r;c>0;o=256*o+e[t+f],f+=d,c-=8);if(0===a)a=1-l;else{if(a===u)return o?NaN:1/0*(g?-1:1);o+=Math.pow(2,r),a-=l}return(g?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,u,l=8*a-i-1,c=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=r?0:a-1,h=r?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+f>=1?d/u:d*Math.pow(2,1-f))*u>=2&&(o++,u/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(t*u-1)*Math.pow(2,i),o+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;e[n+g]=255&s,g+=h,s/=256,i-=8);for(o=o<0;e[n+g]=255&o,g+=h,o/=256,l-=8);e[n+g-h]|=128*p}},6934:function(e,t){var n={parseBuffer:function(e){return new r(e).parse()},addBoxProcessor:function(e,t){"string"==typeof e&&"function"==typeof t&&(i.prototype._boxProcessors[e]=t)},createFile:function(){return new r},createBox:function(e,t,n){var r=i.create(e);return t&&t.append(r,n),r},createFullBox:function(e,t,r){var i=n.createBox(e,t,r);return i.version=0,i.flags=0,i},Utils:{}};n.Utils.dataViewToString=function(e,t){var n=t||"utf-8";if("undefined"!=typeof TextDecoder)return new TextDecoder(n).decode(e);var r=[],i=0;if("utf-8"===n)for(;i>6),t.push(128|63&r)):r<65536?(t.push(224|r>>12),t.push(128|63&r>>6),t.push(128|63&r)):(t.push(240|r>>18),t.push(128|63&r>>12),t.push(128|63&r>>6),t.push(128|63&r))}return t},n.Utils.appendBox=function(e,t,n){if(t._offset=e._cursor.offset,t._root=e._root?e._root:e,t._raw=e._raw,t._parent=e,-1!==n)if(null!=n){var r,i=-1;if("number"==typeof n)i=n;else{if("string"==typeof n)r=n;else{if("object"!=typeof n||!n.type)return void e.boxes.push(t);r=n.type}for(var a=0;a>3,t},i.prototype._readUint=function(e){var t,n,r=null,i=this._cursor.offset-this._raw.byteOffset;switch(e){case 8:r=this._raw.getUint8(i);break;case 16:r=this._raw.getUint16(i);break;case 24:r=((t=this._raw.getUint16(i))<<8)+(n=this._raw.getUint8(i+2));break;case 32:r=this._raw.getUint32(i);break;case 64:t=this._raw.getUint32(i),n=this._raw.getUint32(i+4),r=t*Math.pow(2,32)+n}return this._cursor.offset+=e>>3,r},i.prototype._readString=function(e){for(var t="",n=0;n0?e:this._raw.byteLength-(this._cursor.offset-this._offset);if(t>0){var n=new Uint8Array(this._raw.buffer,this._cursor.offset,t);return this._cursor.offset+=t,n}return null},i.prototype._readUTF8String=function(){var e=this._raw.byteLength-(this._cursor.offset-this._offset),t=null;return e>0&&(t=new DataView(this._raw.buffer,this._cursor.offset,e),this._cursor.offset+=e),t?n.Utils.dataViewToString(t):t},i.prototype._parseBox=function(){if(this._parsing=!0,this._cursor.offset=this._offset,this._offset+8>this._raw.buffer.byteLength)this._root._incomplete=!0;else{switch(this._procField("size","uint",32),this._procField("type","string",4),1===this.size&&this._procField("largesize","uint",64),"uuid"===this.type&&this._procFieldArray("usertype",16,"uint",8),this.size){case 0:this._raw=new DataView(this._raw.buffer,this._offset);break;case 1:this._offset+this.size>this._raw.buffer.byteLength?(this._incomplete=!0,this._root._incomplete=!0):this._raw=new DataView(this._raw.buffer,this._offset,this.largesize);break;default:this._offset+this.size>this._raw.buffer.byteLength?(this._incomplete=!0,this._root._incomplete=!0):this._raw=new DataView(this._raw.buffer,this._offset,this.size)}this._incomplete||(this._boxProcessors[this.type]&&this._boxProcessors[this.type].call(this),-1!==this._boxContainers.indexOf(this.type)?this._parseContainerBox():this._data=this._readData())}},i.prototype._parseFullBox=function(){this.version=this._readUint(8),this.flags=this._readUint(24)},i.prototype._parseContainerBox=function(){for(this.boxes=[];this._cursor.offset-this._raw.byteOffset>3}else this.size+=e>>3},i.prototype._writeUint=function(e,t){if(this._rawo){var n,r,i=this._cursor.offset-this._rawo.byteOffset;switch(e){case 8:this._rawo.setUint8(i,t);break;case 16:this._rawo.setUint16(i,t);break;case 24:n=(16776960&t)>>8,r=255&t,this._rawo.setUint16(i,n),this._rawo.setUint8(i+2,r);break;case 32:this._rawo.setUint32(i,t);break;case 64:r=t-(n=Math.floor(t/Math.pow(2,32)))*Math.pow(2,32),this._rawo.setUint32(i,n),this._rawo.setUint32(i+4,r)}this._cursor.offset+=e>>3}else this.size+=e>>3},i.prototype._writeString=function(e,t){for(var n=0;n>10&31),96+(this.language>>5&31),96+(31&this.language))),this._procField("pre_defined","uint",16)},i.prototype._boxProcessors.mehd=function(){this._procFullBox(),this._procField("fragment_duration","uint",1==this.version?64:32)},i.prototype._boxProcessors.mfhd=function(){this._procFullBox(),this._procField("sequence_number","uint",32)},i.prototype._boxProcessors.mfro=function(){this._procFullBox(),this._procField("mfra_size","uint",32)},i.prototype._boxProcessors.mp4a=i.prototype._boxProcessors.enca=function(){this._procFieldArray("reserved1",6,"uint",8),this._procField("data_reference_index","uint",16),this._procFieldArray("reserved2",2,"uint",32),this._procField("channelcount","uint",16),this._procField("samplesize","uint",16),this._procField("pre_defined","uint",16),this._procField("reserved3","uint",16),this._procField("samplerate","template",32),this._procField("esds","data",-1)},i.prototype._boxProcessors.mvhd=function(){this._procFullBox(),this._procField("creation_time","uint",1==this.version?64:32),this._procField("modification_time","uint",1==this.version?64:32),this._procField("timescale","uint",32),this._procField("duration","uint",1==this.version?64:32),this._procField("rate","template",32),this._procField("volume","template",16),this._procField("reserved1","uint",16),this._procFieldArray("reserved2",2,"uint",32),this._procFieldArray("matrix",9,"template",32),this._procFieldArray("pre_defined",6,"uint",32),this._procField("next_track_ID","uint",32)},i.prototype._boxProcessors.payl=function(){this._procField("cue_text","utf8")},i.prototype._boxProcessors.prft=function(){this._procFullBox(),this._procField("reference_track_ID","uint",32),this._procField("ntp_timestamp_sec","uint",32),this._procField("ntp_timestamp_frac","uint",32),this._procField("media_time","uint",1==this.version?64:32)},i.prototype._boxProcessors.pssh=function(){this._procFullBox(),this._procFieldArray("SystemID",16,"uint",8),this._procField("DataSize","uint",32),this._procFieldArray("Data",this.DataSize,"uint",8)},i.prototype._boxProcessors.schm=function(){this._procFullBox(),this._procField("scheme_type","uint",32),this._procField("scheme_version","uint",32),1&this.flags&&this._procField("scheme_uri","string",-1)},i.prototype._boxProcessors.sdtp=function(){this._procFullBox();var e=-1;this._parsing&&(e=this._raw.byteLength-(this._cursor.offset-this._raw.byteOffset)),this._procFieldArray("sample_dependency_table",e,"uint",8)},i.prototype._boxProcessors.sidx=function(){this._procFullBox(),this._procField("reference_ID","uint",32),this._procField("timescale","uint",32),this._procField("earliest_presentation_time","uint",1==this.version?64:32),this._procField("first_offset","uint",1==this.version?64:32),this._procField("reserved","uint",16),this._procField("reference_count","uint",16),this._procEntries("references",this.reference_count,(function(e){this._parsing||(e.reference=(1&e.reference_type)<<31,e.reference|=2147483647&e.referenced_size,e.sap=(1&e.starts_with_SAP)<<31,e.sap|=(3&e.SAP_type)<<28,e.sap|=268435455&e.SAP_delta_time),this._procEntryField(e,"reference","uint",32),this._procEntryField(e,"subsegment_duration","uint",32),this._procEntryField(e,"sap","uint",32),this._parsing&&(e.reference_type=e.reference>>31&1,e.referenced_size=2147483647&e.reference,e.starts_with_SAP=e.sap>>31&1,e.SAP_type=e.sap>>28&7,e.SAP_delta_time=268435455&e.sap)}))},i.prototype._boxProcessors.smhd=function(){this._procFullBox(),this._procField("balance","uint",16),this._procField("reserved","uint",16)},i.prototype._boxProcessors.ssix=function(){this._procFullBox(),this._procField("subsegment_count","uint",32),this._procEntries("subsegments",this.subsegment_count,(function(e){this._procEntryField(e,"ranges_count","uint",32),this._procSubEntries(e,"ranges",e.ranges_count,(function(e){this._procEntryField(e,"level","uint",8),this._procEntryField(e,"range_size","uint",24)}))}))},i.prototype._boxProcessors.stsd=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procSubBoxes("entries",this.entry_count)},i.prototype._boxProcessors.sttg=function(){this._procField("settings","utf8")},i.prototype._boxProcessors.stts=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procEntries("entries",this.entry_count,(function(e){this._procEntryField(e,"sample_count","uint",32),this._procEntryField(e,"sample_delta","uint",32)}))},i.prototype._boxProcessors.subs=function(){this._procFullBox(),this._procField("entry_count","uint",32),this._procEntries("entries",this.entry_count,(function(e){this._procEntryField(e,"sample_delta","uint",32),this._procEntryField(e,"subsample_count","uint",16),this._procSubEntries(e,"subsamples",e.subsample_count,(function(e){this._procEntryField(e,"subsample_size","uint",1===this.version?32:16),this._procEntryField(e,"subsample_priority","uint",8),this._procEntryField(e,"discardable","uint",8),this._procEntryField(e,"codec_specific_parameters","uint",32)}))}))},i.prototype._boxProcessors.tenc=function(){this._procFullBox(),this._procField("default_IsEncrypted","uint",24),this._procField("default_IV_size","uint",8),this._procFieldArray("default_KID",16,"uint",8)},i.prototype._boxProcessors.tfdt=function(){this._procFullBox(),this._procField("baseMediaDecodeTime","uint",1==this.version?64:32)},i.prototype._boxProcessors.tfhd=function(){this._procFullBox(),this._procField("track_ID","uint",32),1&this.flags&&this._procField("base_data_offset","uint",64),2&this.flags&&this._procField("sample_description_offset","uint",32),8&this.flags&&this._procField("default_sample_duration","uint",32),16&this.flags&&this._procField("default_sample_size","uint",32),32&this.flags&&this._procField("default_sample_flags","uint",32)},i.prototype._boxProcessors.tfra=function(){this._procFullBox(),this._procField("track_ID","uint",32),this._parsing||(this.reserved=0,this.reserved|=(48&this.length_size_of_traf_num)<<4,this.reserved|=(12&this.length_size_of_trun_num)<<2,this.reserved|=3&this.length_size_of_sample_num),this._procField("reserved","uint",32),this._parsing&&(this.length_size_of_traf_num=(48&this.reserved)>>4,this.length_size_of_trun_num=(12&this.reserved)>>2,this.length_size_of_sample_num=3&this.reserved),this._procField("number_of_entry","uint",32),this._procEntries("entries",this.number_of_entry,(function(e){this._procEntryField(e,"time","uint",1===this.version?64:32),this._procEntryField(e,"moof_offset","uint",1===this.version?64:32),this._procEntryField(e,"traf_number","uint",8*(this.length_size_of_traf_num+1)),this._procEntryField(e,"trun_number","uint",8*(this.length_size_of_trun_num+1)),this._procEntryField(e,"sample_number","uint",8*(this.length_size_of_sample_num+1))}))},i.prototype._boxProcessors.tkhd=function(){this._procFullBox(),this._procField("creation_time","uint",1==this.version?64:32),this._procField("modification_time","uint",1==this.version?64:32),this._procField("track_ID","uint",32),this._procField("reserved1","uint",32),this._procField("duration","uint",1==this.version?64:32),this._procFieldArray("reserved2",2,"uint",32),this._procField("layer","uint",16),this._procField("alternate_group","uint",16),this._procField("volume","template",16),this._procField("reserved3","uint",16),this._procFieldArray("matrix",9,"template",32),this._procField("width","template",32),this._procField("height","template",32)},i.prototype._boxProcessors.trex=function(){this._procFullBox(),this._procField("track_ID","uint",32),this._procField("default_sample_description_index","uint",32),this._procField("default_sample_duration","uint",32),this._procField("default_sample_size","uint",32),this._procField("default_sample_flags","uint",32)},i.prototype._boxProcessors.trun=function(){this._procFullBox(),this._procField("sample_count","uint",32),1&this.flags&&this._procField("data_offset","int",32),4&this.flags&&this._procField("first_sample_flags","uint",32),this._procEntries("samples",this.sample_count,(function(e){256&this.flags&&this._procEntryField(e,"sample_duration","uint",32),512&this.flags&&this._procEntryField(e,"sample_size","uint",32),1024&this.flags&&this._procEntryField(e,"sample_flags","uint",32),2048&this.flags&&this._procEntryField(e,"sample_composition_time_offset",1===this.version?"int":"uint",32)}))},i.prototype._boxProcessors["url "]=i.prototype._boxProcessors["urn "]=function(){this._procFullBox(),"urn "===this.type&&this._procField("name","string",-1),this._procField("location","string",-1)},i.prototype._boxProcessors.vlab=function(){this._procField("source_label","utf8")},i.prototype._boxProcessors.vmhd=function(){this._procFullBox(),this._procField("graphicsmode","uint",16),this._procFieldArray("opcolor",3,"uint",16)},i.prototype._boxProcessors.vttC=function(){this._procField("config","utf8")},i.prototype._boxProcessors.vtte=function(){}},5530:function(e,t,n){"use strict";e.exports=n(6146).polyfill()},6146:function(e,t,n){e.exports=function(){"use strict";function e(e){return"function"==typeof e}var t=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},r=0,i=void 0,a=void 0,o=function(e,t){g[r]=e,g[r+1]=t,2===(r+=2)&&(a?a(h):v())};var s="undefined"!=typeof window?window:void 0,u=s||{},l=u.MutationObserver||u.WebKitMutationObserver,c="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function d(){var e=setTimeout;return function(){return e(h,1)}}var g=new Array(1e3);function h(){for(var e=0;e0&&o.length>i&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=o.length,l=c,console&&console.warn&&console.warn(l)}return e}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=c.bind(r);return i.listener=n,r.wrapFn=i,i}function d(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=a[e];if(void 0===u)return!1;if("function"==typeof u)r(u,this,t);else{var l=u.length,c=h(u,l);for(n=0;n=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return d(this,e,!0)},a.prototype.rawListeners=function(e){return d(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},a.prototype.listenerCount=g,a.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},3101:function(e){"use strict";var t=Array.isArray,n=Object.keys,r=Object.prototype.hasOwnProperty;e.exports=function e(i,a){if(i===a)return!0;if(i&&a&&"object"==typeof i&&"object"==typeof a){var o,s,u,l=t(i),c=t(a);if(l&&c){if((s=i.length)!=a.length)return!1;for(o=s;0!=o--;)if(!e(i[o],a[o]))return!1;return!0}if(l!=c)return!1;var f=i instanceof Date,d=a instanceof Date;if(f!=d)return!1;if(f&&d)return i.getTime()==a.getTime();var g=i instanceof RegExp,h=a instanceof RegExp;if(g!=h)return!1;if(g&&h)return i.toString()==a.toString();var p=n(i);if((s=p.length)!==n(a).length)return!1;for(o=s;0!=o--;)if(!r.call(a,p[o]))return!1;for(o=s;0!=o--;)if(!e(i[u=p[o]],a[u]))return!1;return!0}return i!=i&&a!=a}},3362:function(e,t,n){!function(e,t,n,r,i){function a(e){if("contents"in e)for(var t=("styleAttrs"in e?e.styleAttrs[r.byName.ruby.qname]:null),n="span"===e.kind&&("container"===t||"textContainer"===t||"baseContainer"===t),i=e.contents.length-1;i>=0;i--)!n||"styleAttrs"in e.contents[i]&&r.byName.ruby.qname in e.contents[i].styleAttrs?a(e.contents[i]):delete e.contents[i]}function o(e,t,n,r){var i=r&&"seq"===r.timeContainer,a=0;r&&(a=i&&n?n.end:r.begin),t.begin=t.explicit_begin?t.explicit_begin+a:a;var s=t.begin,u=null;if("sets"in t)for(var l=0;l0;){var r=t.styleRefs.pop();r in e.styles?(x(e,e.styles[r],n),k(e.styles[r].styleAttrs,t.styleAttrs)):Z(n,"Non-existant style id referenced")}}function F(e,t,n,r){for(var i=t.length-1;i>=0;i--){var a=t[i];a in e.styles?k(e.styles[a].styleAttrs,n):Z(r,"Non-existant style id referenced")}}function k(e,t){for(var n in e)e.hasOwnProperty(n)&&(n in t||(t[n]=e[n]))}function U(e,t){if(e&&e.warn&&e.warn(t))throw t}function Z(e,t){if(e&&e.error&&e.error(t))throw t}function B(e,t){throw e&&e.fatal&&e.fatal(t),t}function G(e,t){for(var n,r=0,i=e.length-1;r<=i;){var a=e[n=Math.floor((r+i)/2)];if(at))return{found:!0,index:n};i=n-1}}return{found:!1,index:r}}e.fromXML=function(e,i,p){var m=t.parser(!0,{xmlns:!0}),y=[],E=[],v=[],_=0,T=null;m.onclosetag=function(e){if(y[0]instanceof N)null!==T.head&&null!==T.head.styling&&F(T.head.styling,y[0].styleRefs,y[0].styleAttrs,i),delete y[0].styleRefs;else if(y[0]instanceof c)for(var t in y[0].styles)y[0].styles.hasOwnProperty(t)&&x(y[0],y[0].styles[t],i);else if(y[0]instanceof A||y[0]instanceof I){if(y[0].contents.length>1){var r,a=[y[0].contents[0]];for(r=1;r0&&p&&"onCloseTag"in p&&p.onCloseTag());v.shift(),E.shift(),y.shift()},m.ontext=function(e){if(void 0===y[0]);else if(y[0]instanceof I||y[0]instanceof A){if(y[0]instanceof I){var t=y[0].styleAttrs[r.byName.ruby.qname];if("container"===t||"textContainer"===t||"baseContainer"===t)return}var n=new R;n.initFromText(T,y[0],e,E[0],v[0],i),y[0].contents.push(n)}else y[0]instanceof s&&_>0&&p&&"onText"in p&&p.onText(e)},m.onopentag=function(e){var t=e.attributes["xml:space"];t?v.unshift(t.value):0===v.length?v.unshift("default"):v.unshift(v[0]);var a=e.attributes["xml:lang"];if(a?E.unshift(a.value):0===E.length?E.unshift(""):E.unshift(E[0]),e.uri===n.ns_tt)if("tt"===e.local)null!==T&&B(i,"Two elements at ("+this.line+","+this.column+")"),(T=new u).initFromNode(e,E[0],i),y.unshift(T);else if("head"===e.local)y[0]instanceof u||B(i,"Parent of element is not at ("+this.line+","+this.column+")"),y.unshift(T.head);else if("styling"===e.local)y[0]instanceof l||B(i,"Parent of element is not at ("+this.line+","+this.column+")"),y.unshift(T.head.styling);else if("style"===e.local){var o;y[0]instanceof c?((o=new f).initFromNode(e,i),o.id?T.head.styling.styles[o.id]=o:Z(i,"")),e("head").append(m.data("cssautoloadHide")),u.options.themes["default"]||(u.options.themes=Object.assign({"default":{name:"default",cssurls:"css/theme.css",author:"elFinder Project",license:"3-clauses BSD"}},u.options.themes),u.options.theme||(u.options.theme="default")),requestAnimationFrame(function(){"hidden"===m.css("visibility")?u.loadCss([t+"css/elfinder.min.css"],{dfd:e.Deferred().done(function(){a()}).fail(function(){i(),u.cssloaded||(u.cssloaded=!1,u.bind("init",function(){u.cssloaded||u.error(["errRead","CSS (elfinder.min)"])}))})}):a()}))}(),function(){var e,t=u.options.themes,n=Object.keys(t||{});n.length&&(e=u.storage("theme")||u.options.theme,t[e]||(e=n[0]),u.cssloaded?u.changeTheme(e):u.bind("cssloaded",function(){u.changeTheme(e)}))}(),this.optionProperties={icon:void 0,csscls:void 0,tmbUrl:void 0,uiCmdMap:{},netkey:void 0,disabled:[]},re||this.options.enableAlways||2!==e("body").children().length||(this.options.enableAlways=!0),this.options.debug===!0?this.options.debug="all":Array.isArray(this.options.debug)?!function(){var t={};e.each(u.options.debug,function(){t[this]=!0}),u.options.debug=t}():this.options.debug=!1,this.noConflicts={},this.noConflict=function(){e.each(f,function(t,n){e.fn[n]&&"function"==typeof e.fn[n].noConflict&&(u.noConflicts[n]=e.fn[n].noConflict())})},this.noConflict(),this.isCORS=!1,function(){if("undefined"!=typeof u.options.cors&&null!==u.options.cors)u.isCORS=!!u.options.cors;else{var t,i=document.createElement("a"),a=window.location.protocol,o=function(e){return e=e&&":"!==e?e:a,"https:"===e?/\:443$/:/\:80$/},r=window.location.host.replace(o(a),"");i.href=n.url,n.urlUpload&&n.urlUpload!==n.url&&(t=document.createElement("a"),t.href=n.urlUpload),(r!==i.host.replace(o(i.protocol),"")||":"!==i.protocol&&""!==i.protocol&&a!==i.protocol||t&&(r!==t.host.replace(o(t.protocol),"")||":"!==t.protocol&&""!==t.protocol&&a!==t.protocol))&&(u.isCORS=!0)}u.isCORS&&(e.isPlainObject(u.options.customHeaders)||(u.options.customHeaders={}),e.isPlainObject(u.options.xhrFields)||(u.options.xhrFields={}),u.options.requestType="post",u.options.customHeaders["X-Requested-With"]="XMLHttpRequest",u.options.xhrFields.withCredentials=!0)}(),this.requestType=/^(get|post)$/i.test(this.options.requestType)?this.options.requestType.toLowerCase():"get",s=Math.max(parseInt(this.options.requestMaxConn),1),this.optsCustomData=e.isPlainObject(this.options.customData)?this.options.customData:{},this.customData=Object.assign({},this.optsCustomData),this.prevCustomData=null,this.customHeaders=e.isPlainObject(this.options.customHeaders)?this.options.customHeaders:{},this.xhrFields=e.isPlainObject(this.options.xhrFields)?this.options.xhrFields:{},this.replaceXhrSend=function(){p||(p=XMLHttpRequest.prototype.send),XMLHttpRequest.prototype.send=function(){var t=this;return u.customHeaders&&e.each(u.customHeaders,function(e){t.setRequestHeader(e,this)}),u.xhrFields&&e.each(u.xhrFields,function(e){e in t&&(t[e]=this)}),p.apply(this,arguments)}},this.restoreXhrSend=function(){p&&(XMLHttpRequest.prototype.send=p)},this.abortCmdsOnOpen=this.options.abortCmdsOnOpen||["tmb","parents"],this.navPrefix="nav"+(i.prototype.uniqueid?i.prototype.uniqueid:"")+"-",this.cwdPrefix=i.prototype.uniqueid?"cwd"+i.prototype.uniqueid+"-":"",++i.prototype.uniqueid,this.uploadURL=n.urlUpload||n.url,this.namespace=y,this.today=new Date(oe.getFullYear(),oe.getMonth(),oe.getDate()).getTime()/1e3,this.yesterday=this.today-86400,l=this.options.UTCDate?"UTC":"",this.getHours="get"+l+"Hours",this.getMinutes="get"+l+"Minutes",this.getSeconds="get"+l+"Seconds",this.getDate="get"+l+"Date",this.getDay="get"+l+"Day",this.getMonth="get"+l+"Month",this.getFullYear="get"+l+"FullYear",this.zIndex,this.searchStatus={state:0,query:"",target:"",mime:"",mixed:!1,ininc:!1},this.lang=this.storage("lang")||this.options.lang,"jp"===this.lang&&(this.lang=this.options.lang="ja"),this.viewType=this.storage("view")||this.options.defaultView||"icons",this.sortType=this.storage("sortType")||this.options.sortType||"name",this.sortOrder=this.storage("sortOrder")||this.options.sortOrder||"asc",this.sortStickFolders=this.storage("sortStickFolders"),null===this.sortStickFolders?this.sortStickFolders=!!this.options.sortStickFolders:this.sortStickFolders=!!this.sortStickFolders,this.sortAlsoTreeview=this.storage("sortAlsoTreeview"),null===this.sortAlsoTreeview||null===this.options.sortAlsoTreeview?this.sortAlsoTreeview=!!this.options.sortAlsoTreeview:this.sortAlsoTreeview=!!this.sortAlsoTreeview,this.sortRules=e.extend(!0,{},this._sortRules,this.options.sortRules),e.each(this.sortRules,function(e,t){"function"!=typeof t&&delete u.sortRules[e]}),this.compare=e.proxy(this.compare,this),this.notifyDelay=this.options.notifyDelay>0?parseInt(this.options.notifyDelay):500,this.draggingUiHelper=null,this.droppable={greedy:!0,tolerance:"pointer",accept:".elfinder-cwd-file-wrapper,.elfinder-navbar-dir,.elfinder-cwd-file,.elfinder-cwd-filename",hoverClass:this.res("class","adroppable"),classes:{"ui-droppable-hover":this.res("class","adroppable")},autoDisable:!0,drop:function(t,n){var i,a,o,r=e(this),s=e.grep(n.helper.data("files")||[],function(e){return!!e}),l=[],c=[],d=[],p=n.helper.hasClass("elfinder-drag-helper-plus"),h="class";if("undefined"==typeof t.button||n.helper.data("namespace")!==y||!u.insideWorkzone(t.pageX,t.pageY))return!1;for(a=r.hasClass(u.res(h,"cwdfile"))?u.cwdId2Hash(r.attr("id")):r.hasClass(u.res(h,"navdir"))?u.navId2Hash(r.attr("id")):S,i=s.length;i--;)o=s[i],o!=a&&I[o].phash!=a?l.push(o):(p&&o!==a&&I[a].write?c:d).push(o);return!d.length&&(n.helper.data("droped",!0),c.length&&(n.helper.hide(),u.exec("duplicate",c,{_userAction:!0})),void(l.length&&(n.helper.hide(),u.clipboard(l,!p),u.exec("paste",a,{_userAction:!0},a).always(function(){u.clipboard([]),u.trigger("unlockfiles",{files:s})}),u.trigger("drop",{files:s}))))}},this.enabled=function(){return z&&this.visible()},this.visible=function(){return m[0].elfinder&&m.is(":visible")},this.isRoot=function(e){return!(!e.isroot&&e.phash)},this.root=function(t,n){t=t||S;var i,a;if(!n&&(e.each(u.roots,function(e,n){if(0===t.indexOf(e))return i=n,!1}),i))return i;for(i=I[t];i&&i.phash&&(n||!i.isroot);)i=I[i.phash];if(i)return i.hash;for(;a in I&&I.hasOwnProperty(a);)if(i=I[a],"directory"===i.mime&&!i.phash&&i.read)return i.hash;return""},this.cwd=function(){return I[S]||{}},this.option=function(t,n){var i,a;return n=n||S,u.optionsByHashes[n]&&"undefined"!=typeof u.optionsByHashes[n][t]?u.optionsByHashes[n][t]:!u.hasVolOptions||S===n||(a=u.file(n))&&a.phash===S?O[t]||"":(i="",e.each(u.volOptions,function(e,a){if(0===n.indexOf(e))return i=a[t]||"",!1}),i)},this.getDisabledCmds=function(t,n){var i={hidden:!0};return Array.isArray(t)||(t=[t]),e.each(t,function(e,t){var n=u.option("disabledFlip",t);n&&Object.assign(i,n)}),n?i:Object.keys(i)},this.file=function(e,t){return e?I[e]||(t?M[e]:void 0):void 0},this.files=function(t){var n={};return t?E[t]?(e.each(E[t],function(e){I[e]?n[e]=I[e]:delete E[t][e]}),Object.assign({},n)):{}:Object.assign({},I)},this.parents=function(e){for(var t,n=[];e&&(t=this.file(e));)n.unshift(t.hash),e=t.phash;return n},this.path2array=function(e,t){for(var n,i=[];e;){if(!(n=I[e])||!n.hash){i=[];break}i.unshift(t&&n.i18?n.i18:n.name),e=n.isroot?null:n.phash}return i},this.path=function(t,n,i){var a=I[t]&&I[t].path?I[t].path:this.path2array(t,n).join(O.separator);if(i&&I[t]){i=Object.assign({notify:{type:"parents",cnt:1,hideCnt:!0}},i);var o,r=e.Deferred(),s=i.notify,l=!1,c=function(){u.request({data:{cmd:"parents",target:I[t].phash},notify:s,preventFail:!0}).done(d).fail(function(){r.reject()})},d=function(){u.one("parentsdone",function(){a=u.path(t,n),""===a&&l?(l=!1,c()):(s&&(clearTimeout(o),s.cnt=-parseInt(s.cnt||0),u.notify(s)),r.resolve(a))})};return a?r.resolve(a):(u.ui.tree?(s&&(o=setTimeout(function(){u.notify(s)},u.notifyDelay)),l=!0,d(!0)):c(),r)}return a},this.url=function(t,n){var i,a=I[t],o=n||{},r=o.async||!1,s=o.temporary||!1,l=o.onetime&&u.option("onetimeUrl",t)||!1,c=o.absurl||!1,d=r||l?e.Deferred():null,p=function(e){return e&&c&&(e=u.convAbsUrl(e)),e},h=function(n){if(n)return p(n);if(a.url)return p(a.url);if("undefined"==typeof i&&(i=f()),i)return p(i+e.map(u.path2array(t),function(e){return encodeURIComponent(e)}).slice(1).join("/"));var o=Object.assign({},u.customData,{cmd:"file",target:a.hash});return u.oldAPI&&(o.cmd="open",o.current=a.phash),p(u.options.url+(u.options.url.indexOf("?")===-1?"?":"&")+e.param(o,!0))},f=function(){return u.option("url",!u.isRoot(a)&&a.phash||a.hash)};if(!a||!a.read)return r?d.resolve(""):"";if(!l||a.url&&"1"!=a.url||(i=f()))if("1"==a.url||s&&!a.url&&!(i=f()))this.request({data:{cmd:"url",target:t,options:{temporary:s?1:0}},preventDefault:!0,options:{async:r},notify:r?{type:s?"file":"url",cnt:1,hideCnt:!0}:{},progressBar:o.progressBar}).done(function(e){a.url=e.url||""}).fail(function(){a.url=""}).always(function(){var e;return a.url&&s&&(e=a.url,a.url="1"),r?void d.resolve(h(e)):h(e)});else{if(!r)return h();d.resolve(h())}else r=!0,this.request({data:{cmd:"url",target:t,options:{onetime:1}},preventDefault:!0,options:{async:r},notify:{type:"file",cnt:1,hideCnt:!0},progressBar:o.progressBar}).done(function(e){d.resolve(p(e.url||""))}).fail(function(){d.resolve("")});return r?d:void 0},this.forExternalUrl=function(e,t){var n=u.option("onetimeUrl",e),i={async:!0,absurl:!0};return i[n?"onetime":"temporary"]=!0,u.url(e,Object.assign({},t,i))},this.openUrl=function(t,n,i,a){var o=I[t],r="",s=(a||{}).onetimeSize||5242880;return o&&o.read?n&&"sameorigin"!==n||(o.url?1!=o.url&&(r=o.url):O.url&&0===o.hash.indexOf(u.cwd().volumeid)&&(r=O.url+e.map(this.path2array(t),function(e){return encodeURIComponent(e)}).slice(1).join("/")),n&&!this.isSameOrigin(r)||!r)?i&&this.hasParrotHeaders()?(a?delete a.onetimeSize:a={},!a.onetime&&!a.temporary&&o.size>s&&(o.mime.match(/^video|audio/)?a.temporary=!0:a.onetime=!0),a.onetime||a.temporary?this.url(o.hash,Object.assign({async:!0},a)).done(function(e){i(e)}).fail(function(){i("")}):this.getContents(t,"blob",a).done(function(e){r=(window.URL||window.webkitURL).createObjectURL(e),i(r)}).fail(function(){i("")})):(r=this.options.url,r=r+(r.indexOf("?")===-1?"?":"&")+(this.oldAPI?"cmd=open¤t="+o.phash:"cmd=file")+"&target="+o.hash+"&_t="+(o.ts||parseInt(+new Date/1e3)),n===!0&&(r+="&download=1"),e.each(this.customData,function(e,t){r+="&"+encodeURIComponent(e)+"="+encodeURIComponent(t)}),i?void i(r):r):(r+=(r.match(/\?/)?"&":"?")+"_".repeat((r.match(/[\?&](_+)t=/g)||["&t="]).sort().shift().match(/[\?&](_*)t=/)[1].length+1)+"t="+(o.ts||parseInt(+new Date/1e3)),i?void i(r):r):""},this.tmb=function(t){var n,i,a="elfinder-cwd-bgurl",o="",r={},s=0;return!(!e.isPlainObject(t)||(u.searchStatus.state&&0!==t.hash.indexOf(u.cwd().volumeid)?(n=u.option("tmbUrl",t.hash),i=u.option("tmbCrop",t.hash)):(n=O.tmbUrl,i=O.tmbCrop),i&&(a+=" elfinder-cwd-bgurl-crop"),"self"===n&&0===t.mime.indexOf("image/")?(o=u.openUrl(t.hash),a+=" elfinder-cwd-bgself"):(u.oldAPI||n)&&t&&t.tmb&&1!=t.tmb?o=n+t.tmb:u.newAPI&&t&&t.tmb&&1!=t.tmb&&(o=t.tmb),!o))&&("self"!==n&&(t.ts&&(r._t=t.ts),O.tmbReqCustomData&&Object.keys(this.customData).length&&(r=Object.assign(r,this.customData)),Object.keys(r).length&&(o+=o.match(/\?/)?"&":"?",e.each(r,function(e,t){o+=(0===s++?"":"&")+encodeURIComponent(e)+"="+encodeURIComponent(t)}))),{url:o,className:a})},this.selected=function(){return D.slice(0)},this.selectedFiles=function(){return e.map(D,function(e){return I[e]?Object.assign({},I[e]):null})},this.fileByName=function(e,t){var n;for(n in I)if(I.hasOwnProperty(n)&&I[n].phash==t&&I[n].name==e)return I[n]},this.validResponse=function(e,t){return t.error||this.rules[this.rules[e]?e:"defaults"](t)},this.returnBytes=function(e){var t;return isNaN(e)?(e||(e=""),e=e.replace(/b$/i,""),t=e.charAt(e.length-1).toLowerCase(),e=e.replace(/[tgmk]$/i,""),"t"==t?e=1024*e*1024*1024*1024:"g"==t?e=1024*e*1024*1024:"m"==t?e=1024*e*1024:"k"==t&&(e=1024*e),e=isNaN(e)?0:parseInt(e)):(e=parseInt(e),e<1&&(e=0)),e},this.request=function(t){var n,i,a,o,r=this,l=this.options,c=e.Deferred(),d=(+new Date).toString(16)+Math.floor(1e3*Math.random()).toString(16),p=Object.assign({},r.customData,{mimes:l.onlyMimes},t.data||t),u=p.cmd,h="binary"===(t.options||{}).dataType,f=!t.asNotOpen&&"open"===u,m=!(h||t.preventDefault||t.preventFail),g=!(h||t.preventDefault||t.preventDone),v=t.progressVal||20,b=null,y=!1,w=t.progressBar?{}:t.notify?Object.assign({progress:v*t.notify.cnt},t.notify):{},x=!!t.cancel,k=h||!!t.raw,C=t.syncOnFail,z=!!t.lazy,T=t.prepare,A=t.navigate,I=(t.options||{}).cache,M=Object.assign({url:l.url,async:!0,type:this.requestType,dataType:"json",cache:r.api>=2.1029,data:p,headers:this.customHeaders,xhrFields:this.xhrFields,progress:function(e){var n=e.loaded/e.total*100;if(b&&clearTimeout(b),t.progressBar)try{t.progressBar.width(n+"%")}catch(e){}else y&&w.type&&(n*=w.cnt,v=500)n=["errResponse","errServerError","HTTP error "+e.status];else{if(414==e.status&&"get"===M.type)return M.type="post",r.abortXHR(e),void(c.xhr=e=r.transport.send(M).fail(n).done(F));n=e.quiet?"":["errConnect","HTTP error "+e.status]}}r.trigger(u+"done"),c.reject({error:n},e,t)},F=function(t){if(r.currentReqCmd=u,t.debug&&r.responseDebug(t),r.setCustomHeaderByXhr(i),k)return r.abortXHR(i),t&&t.debug&&r.debug("backend-debug",t),c.resolve(t);if(!t)return c.reject({error:["errResponse","errDataEmpty"]},i,t);if(!e.isPlainObject(t))return c.reject({error:["errResponse","errDataNotJSON"]},i,t);if(t.error)return f&&e.each(r.leafRoots,function(t,n){r.leafRoots[t]=e.grep(n,function(e){return e!==p.target})}),c.reject({error:t.error},i,t);var n=function(){var n,a=function(n){r.leafRoots[p.target]&&t[n]&&e.each(r.leafRoots[p.target],function(e,i){var a;(a=r.file(i))&&t[n].push(a)})},o=function(){r.textMimes={},e.each(r.res("mimes","text"),function(){r.textMimes[this.toLowerCase()]=!0})};return f?a("files"):"tree"===u&&a("tree"),t=r.normalize(t),r.validResponse(u,t)?(f&&(r.api||(r.api=t.api||1,"2.0"==r.api&&"undefined"!=typeof t.options.uploadMaxSize&&(r.api="2.1"),r.newAPI=r.api>=2,r.oldAPI=!r.newAPI),t.textMimes&&Array.isArray(t.textMimes)&&(r.resources.mimes.text=t.textMimes,o()),!r.textMimes&&o(),t.options&&(O=Object.assign({},j,t.options)),t.netDrivers&&(r.netDrivers=t.netDrivers),t.maxTargets&&(r.maxTargets=t.maxTargets),p.init&&(r.uplMaxSize=r.returnBytes(t.uplMaxSize),r.uplMaxFile=t.uplMaxFile?Math.min(parseInt(t.uplMaxFile),50):20)),"function"==typeof T&&T(t),A&&(n=A.target||"added",t[n]&&t[n].length&&r.one(u+"done",function(){var i=t[n],a=r.findCwdNodes(i),o=function(){var t=r.cwd().hash;return e.map(i,function(e){return e.phash&&t===e.phash?e.hash:null})},s=o(),l=function(t){var n,i,a,l=void 0,c=t.action?t.action.data:void 0;return(c||s.length)&&t.action&&(i=t.action.msg)&&(n=t.action.cmd)&&(!t.action.cwdNot||t.action.cwdNot!==r.cwd().hash)&&(a=t.action.done,c=t.action.data,l=e("
").append(e('").on("mouseenter mouseleave",function(t){e(this).toggleClass("ui-state-hover","mouseenter"==t.type)}).on("click",function(){r.exec(n,c||s,{_userAction:!0,_currentType:"toast",_currentNode:e(this)}),a&&r.one(n+"done",function(){"function"==typeof a?a():"select"===a&&r.trigger("selectfiles",{files:o()})})}))),delete t.action,t.extNode=l,t};A.toast||(A.toast={}),!A.noselect&&r.trigger("selectfiles",{files:r.searchStatus.state>1?e.map(i,function(e){return e.hash}):s}),a.length?(A.noscroll||(a.first().trigger("scrolltoview",{blink:!1}),r.resources.blink(a,"lookme")),e.isPlainObject(A.toast.incwd)&&r.toast(l(A.toast.incwd))):e.isPlainObject(A.toast.inbuffer)&&r.toast(l(A.toast.inbuffer))})),c.resolve(t),void(t.debug&&r.debug("backend-debug",t))):c.reject({error:t.norError||"errResponse"},i,t)};r.abortXHR(i),z?r.lazy(n):n()},U=function(e){i&&"pending"===i.state()&&(r.abortXHR(i,{quiet:!0,abort:!0}),(!e||"unload"!==e.type&&"destroy"!==e.type)&&r.autoSync())},P=function(e){if(r.trigger(u+"done"),"autosync"==e.type){if("stop"!=e.data.action)return}else if(!("unload"==e.type||"destroy"==e.type||"openxhrabort"==e.type||e.data.added&&e.data.added.length))return;U(e)},q=function(t){var n=function(){C=!1,c.reject()};if(t&&"cmd"===t)return u;if(f){if(ie&&"pending"===ie.state()){if(ie._target===p.target)return c.reject("openabort");ie.xhr?ie.xhr.queueAbort():ie.reject("openabort")}ie=c,ie._target=p.target}if(c.always(function(){delete M.headers["X-elFinderReqid"],f&&(ie=null)}).fail(function(t,n,i){var a,s;f&&"openabort"===t&&(t="",C=!1),a={cmd:u,err:t,xhr:n,rc:i},0===t&&ne.length&&(ne=e.grep(ne,function(e){return e("cmd")!==u})),r.trigger("requestError",a),a._getEvent&&a._getEvent().isDefaultPrevented()&&(m=!1,C=!1,t&&(t.error="")),U(),f&&(o=r.file(p.target),o&&o.volumeid&&r.isRoot(o)&&delete r.volumeExpires[o.volumeid]),r.trigger(u+"fail",i),s="object"==typeof t?t.error:t,s&&(m?r.error(s):r.debug("error",r.i18n(s))),C&&r.sync()}),!u)return C=!1,c.reject({error:"errCmdReq"});if(r.maxTargets&&p.targets&&p.targets.length>r.maxTargets)return C=!1,c.reject({error:["errMaxTargets",r.maxTargets]});if(g&&c.done(E),f){for(;a=R.pop();)a.queueAbort();if(S!==p.target)for(;a=H.pop();)a.queueAbort()}return e.inArray(u,(r.cmdsToAdd+" autosync").split(" "))!==-1&&("autosync"!==u&&(r.autoSync("stop"),c.always(function(){r.autoSync()})),r.trigger("openxhrabort")),delete M.preventFail,r.api>=2.1029&&(I?M.headers["X-elFinderReqid"]=d:Object.assign(M.data,{reqid:d})),c.syncOnFail=function(e){C=!!e},te++,c.xhr=i=r.transport.send(M).always(function(){M._xhr&&"undefined"!=typeof M._xhr.responseURL&&(i.responseURL=M._xhr.responseURL||""),--te,ne.length&&ne.shift()()}).fail(D).done(F),r.api>=2.1029&&(i._requestId=d),f||p.compare&&"info"===u?(i.queueAbort=n,R.unshift(i),p.compare&&r.bind(r.cmdsToAdd+" autosync openxhrabort",P),c.always(function(){var t=e.inArray(i,R);p.compare&&r.unbind(r.cmdsToAdd+" autosync openxhrabort",P),t!==-1&&R.splice(t,1)})):e.inArray(u,r.abortCmdsOnOpen)!==-1&&(i.queueAbort=n,H.unshift(i),c.always(function(){var t=e.inArray(i,H);t!==-1&&H.splice(t,1)})),r.bind("unload destroy",P),c.always(function(){r.unbind("unload destroy",P)}),c},_=function(){return w.type&&w.cnt&&(x&&(w.cancel=c,t.eachCancel&&(w.id=+new Date)),n=setTimeout(function(){b=setTimeout(N,1e3),r.notify(w),y=!0,c.always(function(){w.cnt=-(parseInt(w.cnt)||0),r.notify(w),y=!1})},r.notifyDelay),c.always(function(){clearTimeout(n)})),te=2&&(S!==this.root()&&l.push(this.request({data:{cmd:"parents",target:S},preventDefault:!0})),e.each(c(),function(e,t){l.push(a.request({data:{cmd:t.cmd,target:t.target},preventDefault:!0}))})),e.when.apply(e,l).fail(function(t,o){i=o&&200!=o.status,n&&e.inArray("errOpen",t)===-1?s.reject(t&&0!=o.status?t:void 0):(s.reject(t),a.parseError(t)&&a.request({data:{cmd:"open",target:a.lastDir("")||a.root(),tree:1,init:1},notify:{type:"open",cnt:1,hideCnt:!0}}))}).done(function(e){var n,i,o;if(e.cwd.compare&&r===e.cwd.compare)return s.reject();if(n={tree:[]},i=arguments.length,i>1)for(o=1;o0?a:a.charCodeAt(0):a>0?a:e.ui.keyCode[a],a&&!U[i]&&(U[i]={keyCode:a,altKey:e.inArray("ALT",r)!=-1,ctrlKey:e.inArray("CTRL",r)!=-1,shiftKey:e.inArray("SHIFT",r)!=-1,type:t.type||"keydown",callback:t.callback,description:t.description,pattern:i});return this},this.shortcuts=function(){var t=[];return e.each(U,function(e,n){t.push([n.pattern,u.i18n(n.description)])}),t},this.clipboard=function(t,n){var i=function(){return e.map(P,function(e){return e.hash})};return void 0!==t&&(P.length&&this.trigger("unlockfiles",{files:i()}),q={},P=e.map(t||[],function(e){var t=I[e];return t?(q[e]=!0,{hash:e,phash:t.phash,name:t.name,mime:t.mime,read:t.read,locked:t.locked,cut:!!n}):null}),this.trigger("changeclipboard",{clipboard:P.slice(0,P.length)}),n&&this.trigger("lockfiles",{files:i()})),P.slice(0,P.length)},this.isCommandEnabled=function(e,t){var n,i,a=u.cwd().volumeid||"";return!t&&u.searchStatus.state>1&&u.selected().length&&(t=u.selected()[0]),n=!t||a&&0===t.indexOf(a)?O.disabledFlip:u.option("disabledFlip",t),i=this._commands[e],!!i&&(i.alwaysEnabled||!n[e])},this.exec=function(t,n,i,a){var o,r;return!a&&this.commandMap[t]&&"hidden"!==this.commandMap[t]&&(t=this.commandMap[t]),"open"===t&&((this.searchStatus.state||this.searchStatus.ininc)&&this.trigger("searchend",{noupdate:!0}),this.autoSync("stop")),!a&&n&&(e.isArray(n)?n.length&&(a=n[0]):a=n),o=this._commands[t]&&this.isCommandEnabled(t,a)?this._commands[t].exec(n,i):e.Deferred().reject("errUnknownCmd"),r=typeof o,"object"===r&&o.promise||(u.debug("warning",'"cmd.exec()" should be returned "$.Deferred" but cmd "'+t+'" returned "'+r+'"'),o=e.Deferred().resolve()),this.trigger("exec",{dfrd:o,cmd:t,files:n,opts:i,dstHash:a}),o},this.dialog=function(t,n){var i=e("
").append(t).appendTo(m).elfinderdialog(n,u),a=i.closest(".ui-dialog"),o=function(){!i.data("draged")&&i.is(":visible")&&i.elfinderdialog("posInit")};return a.length&&(u.bind("resize",o),a.on("remove",function(){u.unbind("resize",o)})),i},this.toast=function(t){return e('
').appendTo(this.ui.toast).elfindertoast(t||{},this)},this.getUI=function(t){return t?this.ui[t]||e():m},this.getCommand=function(e){return void 0===e?this._commands:this._commands[e]},this.resize=function(t,n){var i,a=function(){for(var e=m.outerHeight(!0)-m.innerHeight(),t=m;t.get(0)!==W.get(0)&&(t=t.parent(),e+=t.outerHeight(!0)-t.innerHeight(),t.parent().length););return e},o=!m.hasClass("ui-resizable"),r=m.data("resizeSize")||{w:0,h:0},s={};W&&W.data("resizeTm")&&clearTimeout(W.data("resizeTm")),u.options.noResizeBySelf||("string"==typeof n&&(i=n.match(/^([0-9.]+)%$/))&&(W&&W.length||(W=e(window)),W.data("marginToMyNode")||W.data("marginToMyNode",a()),W.data("fitToBaseFunc")||W.data("fitToBaseFunc",function(e){var t=W.data("resizeTm");e.preventDefault(),e.stopPropagation(),t&&cancelAnimationFrame(t),m.hasClass("elfinder-fullscreen")||u.UA.Mobile&&W.data("rotated")===u.UA.Rotated||(W.data("rotated",u.UA.Rotated),W.data("resizeTm",requestAnimationFrame(function(){u.restoreSize()})))}),"undefined"==typeof W.data("rotated")&&W.data("rotated",u.UA.Rotated),n=W.height()*(i[1]/100)-W.data("marginToMyNode"),W.off("resize."+u.namespace,W.data("fitToBaseFunc")),o&&W.on("resize."+u.namespace,W.data("fitToBaseFunc"))),m.css({width:t,height:parseInt(n)})),s.w=Math.round(m.width()),s.h=Math.round(m.height()),m.data("resizeSize",s),s.w===r.w&&s.h===r.h||(m.trigger("resize"),this.trigger("resize",{width:s.w,height:s.h}))},this.restoreSize=function(){this.resize(N,L)},this.show=function(){m.show(),this.enable().trigger("show")},this.hide=function(){this.options.enableAlways&&(T=z,z=!1),this.disable(),this.trigger("hide"),m.hide()},this.lazy=function(t,n,i){var a=function(e){var t,n=m.data("lazycnt");e?(t=!m.data("lazyrepaint")&&i.repaint,n?m.data("lazycnt",++n):m.data("lazycnt",1).addClass("elfinder-processing"),t&&m.data("lazyrepaint",!0).css("display")):n&&n>1?m.data("lazycnt",--n):(t=m.data("lazyrepaint"),m.data("lazycnt",0).removeData("lazyrepaint").removeClass("elfinder-processing"),t&&m.css("display"),u.trigger("lazydone"))},o=e.Deferred(),r=function(){o.resolve(t.call(o)),a(!1)};return n=n||0,i=i||{},a(!0),n?setTimeout(r,n):requestAnimationFrame(r),o},this.destroy=function(){m&&m[0].elfinder&&(m.hasClass("elfinder-fullscreen")&&u.toggleFullscreen(m),this.options.syncStart=!1,this.autoSync("forcestop"),this.trigger("destroy").disable(),P=[],D=[],F={},U={},e(window).off("."+y),e(document).off("."+y),u.trigger=function(){},e(K).remove(),m.off().removeData().empty().append(v.contents()).attr("class",v.attr("class")).attr("style",v.attr("style")),delete m[0].elfinder,e.each(g,function(t,n){e.each(n,function(e,t){m.on(t.type+(t.namespace?"."+t.namespace:""),t.selector,t.handler)})}))},this.autoSync=function(t){var n;if(u.options.sync>=1e3){if(r&&(clearTimeout(r),r=null,u.trigger("autosync",{action:"stop"})),"stop"===t?++X:X=Math.max(0,--X),X||"forcestop"===t||!u.options.syncStart)return;n=function(t){var i;O.syncMinMs&&(t||r)&&(t&&u.trigger("autosync",{action:"start"}),i=Math.max(u.options.sync,O.syncMinMs),r&&clearTimeout(r),r=setTimeout(function(){var t,a=!0,o=S;O.syncChkAsTs&&I[o]&&(t=I[o].ts)?u.request({data:{cmd:"info",targets:[o],compare:t,reload:1},preventDefault:!0}).done(function(e){var i;a=!0,e.compare&&(i=e.compare,i==t&&(a=!1)),a?u.sync(o).always(function(){i&&(I[o].ts=i),n()}):n()}).fail(function(t,a){var o=u.parseError(t);o&&0!=a.status?(u.error(o),Array.isArray(o)&&e.inArray("errOpen",o)!==-1&&u.request({data:{cmd:"open",target:u.lastDir("")||u.root(),tree:1,init:1},notify:{type:"open",cnt:1,hideCnt:!0}})):r=setTimeout(function(){n()},i)}):u.sync(S,!0).always(function(){n()})},i))},n(!0)}},this.insideWorkzone=function(e,t,n){var i=this.getUI("workzone").data("rectangle");return n=n||1,!(ei.left+i.width+n||ti.top+i.height+n)},this.toFront=function(t){var n=m.children(".ui-front").removeClass("elfinder-frontmost"),i=n.last();n.css("z-index",""),e(t).addClass("ui-front elfinder-frontmost").css("z-index",i.css("z-index")+1)},this.toHide=function(t,n){var i,a=e(t);!n&&a.hide(),a.hasClass("elfinder-frontmost")&&(a.removeClass("elfinder-frontmost"),i=m.children(".ui-front:visible:not(.elfinder-frontmost)").last(),i.length&&requestAnimationFrame(function(){m.children(".elfinder-frontmost:visible").length||(u.toFront(i),i.trigger("frontmost"))}))},this.getMaximizeCss=function(){return{width:"100%",height:"100%",margin:0,top:0,left:0,display:"block",position:"fixed",zIndex:Math.max(u.zIndex?u.zIndex+1:0,1e3),maxWidth:"",maxHeight:""}},function(){re&&u.UA.Fullscreen&&(u.UA.Fullscreen=!1,se&&"undefined"!=typeof se.attr("allowfullscreen")&&(u.UA.Fullscreen=!0));var t,n,i,a,o="elfinder-fullscreen",r="elfinder-fullscreen-native",s=function(){var t=0,n=0;e.each(m.children(".ui-dialog,.ui-draggable"),function(i,a){var o=e(a),r=o.position();r.top<0&&(o.css("top",t),t+=20),r.left<0&&(o.css("left",n),n+=20)})},l=function(){var i=u.storage("useFullscreen");a=u.UA.Fullscreen&&(i?i>0:"screen"===u.options.commandsOptions.fullscreen.mode)?{fullElm:function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null},exitFull:function(){return document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():void 0},toFull:function(e){return e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():!!e.msRequestFullscreen&&e.msRequestFullscreen()}}:{fullElm:function(){var e;return m.hasClass(o)?m.get(0):(e=m.find("."+o),e.length?e.get(0):null)},exitFull:function(){var i;e(window).off("resize."+y,d),void 0!==n&&e("body").css("overflow",n),n=void 0,t&&(i=t.elm,c(i),e(i).trigger("resize",{fullscreen:"off"})),e(window).trigger("resize")},toFull:function(t){return n=e("body").css("overflow")||"",e("body").css("overflow","hidden"),e(t).css(u.getMaximizeCss()).addClass(o).trigger("resize",{fullscreen:"on"}),s(),e(window).on("resize."+y,d).trigger("resize"),!0}}},c=function(n){t&&t.elm==n&&(e(n).removeClass(o+" "+r).attr("style",t.style),t=null)},d=function(t){var n;t.target===window&&(i&&cancelAnimationFrame(i),i=requestAnimationFrame(function(){(n=a.fullElm())&&e(n).trigger("resize",{fullscreen:"on"})}))};l(),e(document).on("fullscreenchange."+y+" webkitfullscreenchange."+y+" mozfullscreenchange."+y+" MSFullscreenChange."+y,function(n){if(u.UA.Fullscreen){var l=a.fullElm(),p=e(window);i&&cancelAnimationFrame(i),null===l?(p.off("resize."+y,d),t&&(l=t.elm,c(l),e(l).trigger("resize",{fullscreen:"off"}))):(e(l).addClass(o+" "+r).attr("style","width:100%; height:100%; margin:0; padding:0;").trigger("resize",{fullscreen:"on"}),p.on("resize."+y,d),s()),p.trigger("resize")}}),u.toggleFullscreen=function(n,i){var o=e(n).get(0),r=null;if(r=a.fullElm()){if(r==o){if(i===!0)return r}else if(i===!1)return r;return a.exitFull(),null}return i===!1?null:(l(),t={elm:o,style:e(o).attr("style")},a.toFull(o)!==!1?o:(t=null,null))}}(),function(){var t,n="elfinder-maximized",i=function(e){if(e.target===window&&e.data&&e.data.elm){var n=e.data.elm;t&&cancelAnimationFrame(t),t=requestAnimationFrame(function(){n.trigger("resize",{maximize:"on"})})}},a=function(t){e(window).off("resize."+y,i),e("body").css("overflow",t.data("bodyOvf")),t.removeClass(n).attr("style",t.data("orgStyle")).removeData("bodyOvf").removeData("orgStyle"),t.trigger("resize",{maximize:"off"})},o=function(t){t.data("bodyOvf",e("body").css("overflow")||"").data("orgStyle",t.attr("style")).addClass(n).css(u.getMaximizeCss()),e("body").css("overflow","hidden"),e(window).on("resize."+y,{elm:t},i),t.trigger("resize",{maximize:"on"})};u.toggleMaximize=function(t,i){var r=e(t),s=r.hasClass(n);if(s){if(i===!0)return;a(r)}else{if(i===!1)return;o(r)}}}(),Object.assign(e.ui.keyCode,{F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,DIG0:48,DIG1:49,DIG2:50,DIG3:51,DIG4:52,DIG5:53,DIG6:54,DIG7:55,DIG8:56,DIG9:57,NUM0:96,NUM1:97,NUM2:98,NUM3:99,NUM4:100,NUM5:101,NUM6:102,NUM7:103,NUM8:104,NUM9:105,CONTEXTMENU:93,DOT:190}),this.dragUpload=!1,this.xhrUpload=("undefined"!=typeof XMLHttpRequestUpload||"undefined"!=typeof XMLHttpRequestEventTarget)&&"undefined"!=typeof File&&"undefined"!=typeof FormData,this.transport={},"object"==typeof this.options.transport&&(this.transport=this.options.transport,"function"==typeof this.transport.init&&this.transport.init(this)),"function"!=typeof this.transport.send&&(this.transport.send=function(t){return u.UA.IE||(t._xhr=new XMLHttpRequest,t.xhr=function(){return t.progress&&t._xhr.addEventListener("progress",t.progress),t._xhr}),e.ajax(t)}),"iframe"==this.transport.upload?this.transport.upload=e.proxy(this.uploads.iframe,this):"function"==typeof this.transport.upload?this.dragUpload=!!this.options.dragUploadAllow:this.xhrUpload&&this.options.dragUploadAllow?(this.transport.upload=e.proxy(this.uploads.xhr,this),this.dragUpload=!0):this.transport.upload=e.proxy(this.uploads.iframe,this),this.decodeRawString=function(e){var t=function(e){var t,n,i;for(t=0,n=e.length,i=[];t=55296&&a<=56319?o.push((1023&a)+64<<10|1023&e[++n]):o.push(a);return o},i=function(e){var t,n,i,a,o=String.fromCharCode;for(t=0,n=e.length,a="";i=e[t],t=194?o((31&i)<<6|63&e[++t]):i<=239&&i>=224?o((15&i)<<12|(63&e[++t])<<6|63&e[++t]):i<=247&&i>=240?o(55296|((7&i)<<8|(63&e[++t])<<2|e[++t]>>>4&3)-64,56320|(15&e[t++])<<6|63&e[t]):o(65533);return a};return i(n(e))},this.getContents=function(t,n,i){var a,o,r=this,s=e.Deferred(),l=n||"arraybuffer";return s.fail(function(){o&&"pending"===o.state()&&o.reject()}),a=r.openUrl(t),r.isSameOrigin(a)||(a=r.openUrl(t,!0)),o=r.request(Object.assign({data:{cmd:"get"},options:{url:a,type:"get",cache:!0,dataType:"binary",responseType:l,processData:!1},notify:{type:"file",cnt:1,hideCnt:!0},cancel:!0},i||{})).fail(function(){s.reject()}).done(function(e){s.resolve(e)}),s},this.getBinaryByUrl=function(t,n,i){var a,o=this,r=e.Deferred();return r.fail(function(){a&&"pending"===a.state()&&a.reject()}),a=o.request(Object.assign({data:{cmd:"get"},options:Object.assign({type:"get",cache:!0,dataType:"binary",responseType:"blob",processData:!1},t)},i||{})).fail(function(){r.reject()}).done(function(e){n&&n(e),r.resolve(e)}),r},this.getMimetype=function(e,t){var n,i,a=t;return i=(e+"").match(/\.([^.]+)$/),i&&(n=i[1])&&(o||(o=u.arrayFlip(u.mimeTypes)),(a=o[n.toLowerCase()])||(a=t)),a},u.hashCheckers=[],function(t){var n={};window.Worker&&window.ArrayBuffer&&(t.options.cdns.sparkmd5&&(n.SparkMD5=!0,t.hashCheckers.push("md5")),t.options.cdns.jssha&&(n.jsSHA=!0,t.hashCheckers=t.hashCheckers.concat(["sha1","sha224","sha256","sha384","sha512","sha3-224","sha3-256","sha3-384","sha3-512","shake128","shake256"]))),t.getContentsHashes=function(i,a,o,r){var s,l=e.Deferred(),c=t.arrayFlip(a||["md5"],!0),d=[],p={},u=o?o:{shake128len:256,shake256len:512};return l.fail(function(){s&&s.reject()}),Object.keys(n).length?s=t.getContents(i,"arraybuffer",r).done(function(a){c.md5&&n.SparkMD5&&d.push(function(){var o=e.Deferred();try{var r=t.getWorker();o.fail(function(){r&&r.terminate()}),r.onmessage=function(e){if(r&&r.terminate(),e.data.hash){var n;p.md5=e.data.hash,(n=t.file(i))&&(n.md5=p.md5)}else e.data.error&&(p.md5=e.data.error);l.notify(p),o.resolve()},r.onerror=function(e){o.reject()},r.postMessage({scripts:[t.options.cdns.sparkmd5,t.getWorkerUrl("calcfilehash.js")],data:{type:"md5",bin:a}}),l.fail(function(){o.reject()})}catch(s){o.reject(),delete n.SparkMD5}return o}()),n.jsSHA&&e.each(["1","224","256","384","512","3-224","3-256","3-384","3-512","ke128","ke256"],function(o,r){c["sha"+r]&&d.push(function(){var o=e.Deferred();try{var s=t.getWorker();o.fail(function(){s&&s.terminate()}),s.onmessage=function(e){if(s&&s.terminate(),e.data.hash){var n;p["sha"+r]=e.data.hash,(n=t.file(i))&&(n["sha"+r]=p["sha"+r])}else e.data.error&&(p["sha"+r]=e.data.error);l.notify(p),o.resolve()},s.onerror=function(e){o.reject()},s.postMessage({scripts:[t.options.cdns.jssha,t.getWorkerUrl("calcfilehash.js")],data:{type:r,bin:a,hashOpts:u}}),l.fail(function(){o.reject()})}catch(c){o.reject(),delete n.jsSHA}return o}())}),d.length?e.when.apply(null,d).always(function(){l.resolve(p)}):l.reject()}).fail(function(){l.reject()}):l.reject(),l}}(this),this.parseError=function(t){var n=t;return e.isPlainObject(n)&&(n=n.error),n},this.error=function(){var e,t=arguments[0],n=arguments[1]||null;return 1==arguments.length&&"function"==typeof t?u.bind("error",t):(e=this.parseError(t),e!==!0&&e?u.trigger("error",{error:e,opts:n}):this)},e.each(A,function(t,n){u[n]=function(){var t=arguments[0];return 1==arguments.length&&"function"==typeof t?u.bind(n,t):u.trigger(n,e.isPlainObject(t)?t:{})}}),this.enable(function(){!z&&u.api&&u.visible()&&u.ui.overlay.is(":hidden")&&!m.children(".elfinder-dialog."+u.res("class","editing")+":visible").length&&(z=!0,document.activeElement&&document.activeElement.blur(),m.removeClass("elfinder-disabled"))}).disable(function(){T=z,z=!1,m.addClass("elfinder-disabled")}).open(function(){D=[]}).select(function(t){var n=0,i=[];D=e.grep(t.data.selected||t.data.value||[],function(e){return i.length||u.maxTargets&&++n>u.maxTargets?(i.push(e),!1):!!I[e]}),i.length&&(u.trigger("unselectfiles",{files:i,inselect:!0}),u.toast({mode:"warning",msg:u.i18n(["errMaxTargets",u.maxTargets])}))}).error(function(t){var n,i,a={cssClass:"elfinder-dialog-error",title:u.i18n("error"),resizable:!1,destroyOnClose:!0,buttons:{}},o=u.getUI(),r=o.children(".elfinder-dialog-error").length;r'+u.i18n(t.data.error),a)):(n=o.children(".elfinder-dialog-error:last").children(".ui-dialog-content:first"),i=n.children(".elfinder-error-counter"),i.length?i.data("cnt",parseInt(i.data("cnt"))+1).html(u.i18n(["moreErrors",i.data("cnt")])):(i=e(''+u.i18n(["moreErrors",1])+"").data("cnt",1),n.append("
",i)))}).bind("tmb",function(t){e.each(t.data.images||[],function(e,t){I[e]&&(I[e].tmb=t)})}).bind("searchstart",function(e){Object.assign(u.searchStatus,e.data),u.searchStatus.state=1}).bind("search",function(e){u.searchStatus.state=2}).bind("searchend",function(){u.searchStatus.state=0,u.searchStatus.ininc=!1,u.searchStatus.mixed=!1}).bind("canMakeEmptyFile",function(t){var n=t.data,i={};n&&Array.isArray(n.mimes)&&(n.unshift||(i=u.mimesCanMakeEmpty),e.each(n.mimes,function(){i[this]||(i[this]=u.mimeTypes[this])}),n.unshift&&(u.mimesCanMakeEmpty=Object.assign(i,u.mimesCanMakeEmpty)))}).bind("themechange",function(){requestAnimationFrame(function(){u.trigger("uiresize")})}),!0===this.options.sound&&this.bind("playsound",function(t){var n=K.canPlayType&&K.canPlayType('audio/wav; codecs="1"'),i=t.data&&t.data.soundFile;n&&i&&""!=n&&"no"!=n&&e(K).html('')[0].play()}),e.each(this.options.handlers,function(e,t){u.bind(e,t)}),this.history=new this.history(this),this.roots={},this.leafRoots={},this.volumeExpires={},this._commands={},Array.isArray(this.options.commands)||(this.options.commands=[]),e.inArray("*",this.options.commands)!==-1&&(this.options.commands=Object.keys(this.commands)),this.commandMap={},this.volOptions={},this.hasVolOptions=!1,this.trashes={},this.optionsByHashes={},this.uiAutoHide=[],this.one("open",function(){u.uiAutoHide.length&&setTimeout(function(){u.trigger("uiautohide")},500)}),this.bind("uiautohide",function(){u.uiAutoHide.length&&u.uiAutoHide.shift()()}),this.options.width&&(N=this.options.width),this.options.height&&(L=this.options.height),this.options.heightBase&&(W=e(this.options.heightBase)),B=this.options.soundPath?this.options.soundPath.replace(/\/+$/,"")+"/":this.baseUrl+B,this.options.parrotHeaders&&Array.isArray(this.options.parrotHeaders)&&this.options.parrotHeaders.length?(this.parrotHeaders=this.options.parrotHeaders,e.each(this.parrotHeaders,function(e,t){var n=u.sessionStorage("core-ph:"+t);n&&(u.customHeaders[t]=n)})):this.parrotHeaders=[],u.one("opendone",function(){var t;e(document).on("click."+y,function(t){z&&!u.options.enableAlways&&!e(t.target).closest(m).length&&u.disable()}).on(x+" "+k+" "+C+" "+w,ae),u.options.useBrowserHistory&&e(window).on("popstate."+y,function(t){var n,i,a=t.originalEvent.state||{},o=!!a.thash,r=m.find(".elfinder-frontmost:visible"),s=m.find(".elfinder-navbar-dir,.elfinder-cwd-filename").find("input,textarea");o||(a={thash:u.cwd().hash},e("html,body").animate({scrollTop:m.offset().top})),r.length||s.length?(history.pushState(a,null,location.pathname+location.search+"#elf_"+a.thash),r.length?r.hasClass(u.res("class","preventback"))||(r.hasClass("elfinder-contextmenu")?e(document).trigger(e.Event("keydown",{keyCode:e.ui.keyCode.ESCAPE,ctrlKey:!1,shiftKey:!1,altKey:!1,metaKey:!1})):r.hasClass("elfinder-dialog")?r.elfinderdialog("close"):r.trigger("close")):s.trigger(e.Event("keydown",{keyCode:e.ui.keyCode.ESCAPE,ctrlKey:!1,shiftKey:!1,altKey:!1,metaKey:!1}))):o?!e.isEmptyObject(u.files())&&u.request({data:{cmd:"open",target:a.thash,onhistory:1},notify:{type:"open",cnt:1,hideCnt:!0},syncOnFail:!0}):(n=function(){i.trigger("click")},u.one("open",n,!0),i=u.toast({msg:u.i18n("pressAgainToExit"),onHidden:function(){u.unbind("open",n),history.pushState(a,null,location.pathname+location.search+"#elf_"+a.thash)}}))}),e(window).on("resize."+y,function(e){e.target===this&&(t&&cancelAnimationFrame(t),t=requestAnimationFrame(function(){var e=m.data("resizeSize")||{w:0,h:0},t={w:Math.round(m.width()),h:Math.round(m.height())};m.data("resizeSize",t),t.w===e.w&&t.h===e.h||(m.trigger("resize"),u.trigger("resize",{width:t.w,height:t.h}))}))}).on("beforeunload."+y,function(t){var n,i;if(!u.pauseUnloadCheck()){if(m.is(":visible")&&(u.ui.notify.children().length&&e.inArray("hasNotifyDialog",u.options.windowCloseConfirm)!==-1?n=u.i18n("ntfsmth"):m.find("."+u.res("class","editing")).length&&e.inArray("editingFile",u.options.windowCloseConfirm)!==-1?n=u.i18n("editingFile"):(i=Object.keys(u.selected()).length)&&e.inArray("hasSelectedItem",u.options.windowCloseConfirm)!==-1?n=u.i18n("hasSelected",""+i):(i=Object.keys(u.clipboard()).length)&&e.inArray("hasClipboardData",u.options.windowCloseConfirm)!==-1&&(n=u.i18n("hasClipboard",""+i)),n))return t.returnValue=n,n;u.trigger("unload")}}),e(window).on("message."+y,function(e){var t,n,i=e.originalEvent||null;if(i&&(0===u.convAbsUrl(u.options.url).indexOf(i.origin)||0===u.convAbsUrl(u.uploadURL).indexOf(i.origin)))try{t="string"==typeof i.data?JSON.parse(i.data):i.data,n=t.data||null,n&&(n.error?(t.bind&&u.trigger(t.bind+"fail",n),u.error(n.error)):(n.warning&&u.error(n.warning),u.updateCache(n),n.removed&&n.removed.length&&u.remove(n),n.added&&n.added.length&&u.add(n),n.changed&&n.changed.length&&u.change(n),t.bind&&(u.trigger(t.bind,n),u.trigger(t.bind+"done")),n.sync&&u.sync()))}catch(e){u.sync()}}),u.options.enableAlways?(e(window).on("focus."+y,function(e){e.target===this&&u.enable()}),re&&e(window.top).on("focus."+y,function(){!u.enable()||se&&!se.is(":visible")||requestAnimationFrame(function(){e(window).trigger("focus")})})):re&&e(window).on("blur."+y,function(e){z&&e.target===this&&u.disable()}),re&&m.on("click",function(t){e(window).trigger("focus")}),u.options.enableByMouseOver&&m.on("mouseenter touchstart",function(t){re&&e(window).trigger("focus"),!u.enabled()&&u.enable()}),e(window).on("visibilitychange."+y,function(e){var t=document.hidden||document.webkitHidden||document.msHidden;u.options.syncStart&&u.autoSync(t?"stop":void 0)})}),m[0].elfinder=this,h.push(function(){var t=u.lang?u.lang:"en",n=u.i18nBaseUrl+"elfinder."+t+".js",i=e.Deferred().done(function(){u.i18[t]&&(u.lang=t),u.trigger("i18load"),c="en"===u.lang?u.i18.en:e.extend(!0,{},u.i18.en,u.i18[u.lang])});return u.i18[t]?i.resolve():(u.lang="en",u.hasRequire?require([n],function(){i.resolve()},function(){i.resolve()}):u.loadScript([n],function(){i.resolve()},{loadType:"tag",error:function(){i.resolve()}})),i}()),d=function(){var t;return u.messages=c.messages,e.fn.selectable&&e.fn.draggable&&e.fn.droppable&&e.fn.resizable&&e.fn.button&&e.fn.slider?m.length?u.options.url?(t=Object.assign({name:u.i18n("name"),perm:u.i18n("perms"),date:u.i18n("modify"),size:u.i18n("size"),kind:u.i18n("kind"),modestr:u.i18n("mode"),modeoct:u.i18n("mode"),modeboth:u.i18n("mode")},u.options.uiOptions.cwd.listView.columnsCustomName),u.getColumnName=function(e){var n=t[e]||u.i18n(e);return"function"==typeof n?n():n},u.direction=c.direction,u.dateFormat=u.options.dateFormat||c.dateFormat,u.fancyFormat=u.options.fancyDateFormat||c.fancyDateFormat,u.nonameDateFormat=(u.options.nonameDateFormat||c.nonameDateFormat).replace(/[\/\\]/g,"_"),u.cssClass="ui-helper-reset ui-helper-clearfix ui-widget ui-widget-content ui-corner-all elfinder elfinder-"+("rtl"==u.direction?"rtl":"ltr")+(u.UA.Touch?" elfinder-touch"+(u.options.resizable?" touch-punch":""):"")+(u.UA.Mobile?" elfinder-mobile":"")+(u.UA.iOS?" elfinder-ios":"")+" "+u.options.cssClass,m.addClass(u.cssClass).on(w,function(){!z&&u.enable()}),function(){var t,n,i,a,o,r=x+"draggable keyup."+y+"draggable";u.draggable={appendTo:m,addClasses:!1,distance:4,revert:!0,refreshPositions:!1,cursor:"crosshair",cursorAt:{left:50,top:47},scroll:!1,start:function(r,s){var l,c,d=s.helper,p=e.grep(d.data("files")||[],function(e){return!!e&&(q[e]=!0,!0)}),h=!1;for(o=m.attr("style"),m.width(m.width()).height(m.height()),t="ltr"===u.direction,n=u.getUI("workzone").data("rectangle"),i=n.top+n.height,a=i-u.getUI("navdock").outerHeight(!0),u.draggingUiHelper=d,l=p.length;l--;)if(c=p[l],I[c].locked){h=!0,d.data("locked",!0);break}!h&&u.trigger("lockfiles",{files:p}),d.data("autoScrTm",setInterval(function(){d.data("autoScr")&&u.autoScroll[d.data("autoScr")](d.data("autoScrVal"))},50))},drag:function(o,r){var s,l,c,d=r.helper;((l=n.top>o.pageY)||ao.pageX?(t?"navbar":"cwd")+(l?"Up":"Down"):(t?"cwd":"navbar")+(l?"Up":"Down"),l||("cwd"===s.substr(0,3)?i0?(e(this).draggable("option",{refreshPositions:!0,elfRefresh:!0}),d.data("refreshPositions",-1)):(e(this).draggable("option",{refreshPositions:!1,elfRefresh:!1}),d.data("refreshPositions",null)))},stop:function(t,n){var i,a=n.helper;e(document).off(r),e(this).elfUiWidgetInstance("draggable")&&e(this).draggable("option",{refreshPositions:!1}),u.draggingUiHelper=null,u.trigger("focus").trigger("dragstop"),a.data("droped")||(i=e.grep(a.data("files")||[],function(e){return!!e}),u.trigger("unlockfiles",{files:i}),u.trigger("selectfiles",{files:u.selected()})),u.enable(),m.attr("style",o),a.data("autoScrTm")&&clearInterval(a.data("autoScrTm"))},helper:function(t,n){var i,a,o,s=this.id?e(this):e(this).parents("[id]:first"),l=e('
'),c=function(t){var n,i=t.mime,a=u.tmb(t);return n='
',a?n=e(n).addClass(a.className).css("background-image","url('"+a.url+"')").get(0).outerHTML:t.icon&&(n=e(n).css(u.getIconStyle(t,!0)).get(0).outerHTML),t.csscls&&(n='
'+n+"
"),n};return u.draggingUiHelper&&u.draggingUiHelper.stop(!0,!0),u.trigger("dragstart",{target:s[0],originalEvent:t},!0),i=s.hasClass(u.res("class","cwdfile"))?u.selected():[u.navId2Hash(s.attr("id"))],l.append(c(I[i[0]])).data("files",i).data("locked",!1).data("droped",!1).data("namespace",y).data("dropover",0),(a=i.length)>1&&l.append(c(I[i[a-1]])+''+a+""),e(document).on(r,function(e){if(u._commands.copy){var t=e.shiftKey||e.ctrlKey||e.metaKey;o!==t&&(o=t,l.is(":visible")&&l.data("dropover")&&!l.data("droped")&&(l.toggleClass("elfinder-drag-helper-plus",!!l.data("locked")||o),u.trigger(o?"unlockfiles":"lockfiles",{files:i,helper:l})))}}),l}}}(),u.commands.getfile&&("function"==typeof u.options.getFileCallback?(u.bind("dblclick",function(e){e.preventDefault(),u.exec("getfile").fail(function(){u.exec("open",e.data&&e.data.file?[e.data.file]:void 0)})}),u.shortcut({pattern:"enter",description:u.i18n("cmdgetfile"),callback:function(){u.exec("getfile").fail(function(){u.exec("mac"==u.OS?"rename":"open")})}}).shortcut({pattern:"ctrl+enter",description:u.i18n("mac"==u.OS?"cmdrename":"cmdopen"),callback:function(){u.exec("mac"==u.OS?"rename":"open")}})):u.options.getFileCallback=null),e.each(u.commands,function(t,n){var i,a,o=Object.assign({},n.prototype);if("function"==typeof n&&!u._commands[t]&&(n.prototype.forceLoad||e.inArray(t,u.options.commands)!==-1)){if(i=n.prototype.extendsCmd||""){if("function"!=typeof u.commands[i])return!0;n.prototype=Object.assign({},_,new u.commands[i],n.prototype)}else n.prototype=Object.assign({},_,n.prototype);u._commands[t]=new n,n.prototype=o,a=u.options.commandsOptions[t]||{},i&&u.options.commandsOptions[i]&&(a=e.extend(!0,{},u.options.commandsOptions[i],a)),u._commands[t].setup(t,a),u._commands[t].linkedCmds.length&&e.each(u._commands[t].linkedCmds,function(e,t){var n=u.commands[t];"function"!=typeof n||u._commands[t]||(n.prototype=_,u._commands[t]=new n,u._commands[t].setup(t,u.options.commandsOptions[t]||{}))})}}),u.ui={workzone:e("
").appendTo(m).elfinderworkzone(u),navbar:e("
").appendTo(m).elfindernavbar(u,u.options.uiOptions.navbar||{}),navdock:e("
").appendTo(m).elfindernavdock(u,u.options.uiOptions.navdock||{}),contextmenu:e("
").appendTo(m).elfindercontextmenu(u),overlay:e("
").appendTo(m).elfinderoverlay({show:function(){u.disable()},hide:function(){T&&u.enable()}}),cwd:e("
").appendTo(m).elfindercwd(u,u.options.uiOptions.cwd||{}),notify:u.dialog("",{cssClass:"elfinder-dialog-notify"+(u.options.notifyDialog.canClose?"":" elfinder-titlebar-button-hide"),position:u.options.notifyDialog.position,absolute:!0,resizable:!1,autoOpen:!1,allowMinimize:!0,closeOnEscape:!!u.options.notifyDialog.canClose,title:" ",width:u.options.notifyDialog.width?parseInt(u.options.notifyDialog.width):null,minHeight:null,minimize:function(){u.ui.notify.trigger("minimize")}}),statusbar:e('
').hide().appendTo(m),toast:e('
').appendTo(m),bottomtray:e('
').appendTo(t.info.find(".elfinder-quicklook-info")),d=e('
').appendTo(c),h=i.openUrl(f.hash,"sameorigin",function(t){t&&(l=e("").hide().appendTo(o),n?r(t,l,c):(p=window.define,u=window.require,window.require=null,window.define=null,i.loadScript([i.options.cdns.psd],function(){n=require("psd"),p?window.define=p:delete window.define,u?window.require=u:delete window.require,r(t,l,c)})))},{progressBar:d}),o.one("change",function(){h&&h.state&&"pending"===h.state()&&h.reject()}))})},function(t){var n=t.fm,i=n.arrayFlip(["text/html","application/xhtml+xml"]),a=t.preview;a.on(t.evUpdate,function(o){var r,s,l,c=o.file;i[c.mime]&&t.dispInlineRegex.test(c.mime)&&(!t.options.getSizeMax||c.size<=t.options.getSizeMax)&&(o.stopImmediatePropagation(),s=e('
'+n.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),l=e('
').appendTo(s),a.one("change",function(){"pending"==r.state()&&r.reject()}).addClass("elfinder-overflow-auto"),r=n.request({data:{cmd:"get",target:c.hash,conv:1,_t:c.ts},options:{type:"get",cache:!0},preventDefault:!0,progressBar:l}).done(function(n){t.hideinfo();var i=e('').appendTo(a)[0].contentWindow.document;i.open(),i.write(n.content),i.close()}).always(function(){s.remove()}))})},function(t){var n=t.fm,i=n.arrayFlip(["text/x-markdown"]),a=t.preview,o=null,r=function(n,i){t.hideinfo();var r=e('').appendTo(a)[0].contentWindow.document;r.open(),r.write((o.parse||o)(n.content)),r.close(),i.remove()},s=function(e){o=!1,e.remove()};a.on(t.evUpdate,function(l){var c,d,p,u=l.file;i[u.mime]&&n.options.cdns.marked&&o!==!1&&t.dispInlineRegex.test(u.mime)&&(!t.options.getSizeMax||u.size<=t.options.getSizeMax)&&(l.stopImmediatePropagation(),d=e('
'+n.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),p=e('
').appendTo(d),a.one("change",function(){"pending"==c.state()&&c.reject()}).addClass("elfinder-overflow-auto"),c=n.request({data:{cmd:"get",target:u.hash,conv:1,_t:u.ts},options:{type:"get",cache:!0},preventDefault:!0,progressBar:p}).done(function(e){o||window.marked?(o||(o=window.marked),r(e,d)):n.loadScript([n.options.cdns.marked],function(t){o=t||window.marked||!1,delete window.marked,o?r(e,d):s(d)},{tryRequire:!0,error:function(){s(d)}})}).fail(function(){s(d)}))})},function(t){if(t.options.viewerjs){var n=t.fm,i=t.preview,a=t.options.viewerjs,o=a.url?n.arrayFlip(a.mimes||[]):[],r=t.window,s=t.navbar,l=function(){s.css("bottom",r.hasClass("elfinder-quicklook-fullscreen")?"30px":"")};a.url&&i.on("update",function(s){var c,d,p,u,h=s.file;!o[h.mime]||"application/pdf"===h.mime&&a.pdfNative&&t.flags.pdfNative||(s.stopImmediatePropagation(),d=e('
'+n.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),p=e('
').appendTo(d),u=n.openUrl(h.hash,"sameorigin",function(n){n&&(c=e('').css("background-color","transparent").on("load",function(){t.hideinfo(),d.remove(),c.css("background-color","#fff")}).on("error",function(){d.remove(),c.remove()}).appendTo(i).attr("src",a.url+"#"+n),r.on("viewchange.viewerjs",l),l(),i.one("change",function(){r.off("viewchange.viewerjs"),d.remove(),c.off("load").remove()}))},{progressBar:p}),i.one("change",function(){u&&u.state&&"pending"===u.state()&&u.reject()}))})}},function(t){var n=t.fm,i="application/pdf",a=t.preview,o=!1,r="";n.UA.Safari&&"mac"===n.OS&&!n.UA.iOS||n.UA.IE||n.UA.Firefox?o=!0:e.each(navigator.plugins,function(t,n){e.each(n,function(e,t){if(t.type===i)return!(o=!0)})}),t.flags.pdfNative=o,o&&("undefined"==typeof t.options.pdfToolbar||t.options.pdfToolbar||(r="#toolbar=0"),a.on(t.evUpdate,function(s){var l,c=s.file;o&&c.mime===i&&t.dispInlineRegex.test(c.mime)&&(s.stopImmediatePropagation(),l=n.openUrl(c.hash,!1,function(i){i&&(t.hideinfo(),t.cover.addClass("elfinder-quicklook-coverbg"),e('').on("error",function(e){o=!1,t.update(void 0,n.cwd()),t.update(void 0,c)}).appendTo(a))}),a.one("change",function(){l&&l.state&&"pending"===l.state()&&l.reject()}))}))},function(t){var n=t.fm,i="application/x-shockwave-flash",a=t.preview,o=!1;e.each(navigator.plugins,function(t,n){e.each(n,function(e,t){if(t.type===i)return!(o=!0)})}),o&&a.on(t.evUpdate,function(o){var r,s,l=o.file;l.mime===i&&t.dispInlineRegex.test(l.mime)&&(o.stopImmediatePropagation(),s=n.openUrl(l.hash,!1,function(n){n&&(t.hideinfo(),r=e('').appendTo(a))}),a.one("change",function(){s&&s.state&&"pending"===s.state()&&s.reject()}))})},function(t){var n,i,a,o,r,s,l=t.fm,c=t.preview,d={"audio/mpeg":"mp3","audio/mpeg3":"mp3","audio/mp3":"mp3","audio/x-mpeg3":"mp3","audio/x-mp3":"mp3","audio/x-wav":"wav","audio/wav":"wav","audio/x-m4a":"m4a","audio/aac":"m4a","audio/mp4":"m4a","audio/x-mp4":"m4a","audio/ogg":"ogg","audio/webm":"webm","audio/flac":"flac","audio/x-flac":"flac","audio/amr":"amr"},p=t.window,u=t.navbar,h="string"==typeof t.options.mediaControlsList&&t.options.mediaControlsList?' controlsList="'+l.escape(t.options.mediaControlsList)+'"':"",f=function(){u.css("bottom",p.hasClass("elfinder-quicklook-fullscreen")?"50px":"")},m=function(t,i){return e('').on("change",function(e){e.stopPropagation()}).on("error",function(e){n&&n.data("hash")===i&&b()}).data("hash",i).appendTo(c)},g=function(t){var n,i=e.Deferred(),o=e.Deferred().done(function(){var e;e=l.getContents(t,"arraybuffer",{progressBar:s}).done(function(e){try{var t=a.toWAV(new Uint8Array(e));t?i.resolve(URL.createObjectURL(new Blob([t],{type:"audio/x-wav"}))):i.reject()}catch(n){i.reject()}}).fail(function(){i.reject()}),c.one("change",function(){e&&e.state&&"pending"===e.state()&&e.reject()})}).fail(function(){a=!1,i.reject()});return window.TextEncoder&&window.URL&&URL.createObjectURL&&"undefined"==typeof a?(n=window.AMR,delete window.AMR,l.loadScript([l.options.cdns.amr],function(){a=!!window.AMR&&window.AMR,window.AMR=n,o[a?"resolve":"reject"]()},{error:function(){o.reject()}})):o[a?"resolve":"reject"](),i},v=function(e){var t,i=n.data("hash");o&&(t=e.play()),t&&t["catch"]&&t["catch"](function(t){e.paused||n&&n.data("hash")===i&&b()})},b=function(){if(n&&n.parent().length){var e=n[0],t=n.children("source").attr("src");p.off("viewchange.audio");try{e.pause(),n.empty(),t.match(/^blob:/)&&URL.revokeObjectURL(t),e.src="",e.load()}catch(i){}n.remove(),n=null}};c.on(t.evUpdate,function(u){var h,b,y=u.file,w=d[y.mime];d[y.mime]&&t.dispInlineRegex.test(y.mime)&&((h=t.support.audio[w])||"amr"===w)&&(o=t.autoPlay(),i=y.hash,h?(u.stopImmediatePropagation(),r=e('
'+l.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),s=e('
').appendTo(r),b=l.openUrl(i,!1,function(e){r.remove(),e?(n=m(e,i),v(n[0]),p.on("viewchange.audio",f),f()):n.remove()},{progressBar:s}),c.one("change",function(){b&&b.state&&"pending"===b.state()&&b.reject()})):l.options.cdns.amr&&"amr"===w&&a!==!1&&(u.stopImmediatePropagation(),r=e('
'+l.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),s=e('
').appendTo(r),n=m("",i),g(y.hash).done(function(e){if(r.remove(),i===y.hash){var t=n[0];try{n.children("source").attr("src",e),t.pause(),t.load(),v(t),p.on("viewchange.audio",f),f()}catch(a){URL.revokeObjectURL(e),n.remove()}}else URL.revokeObjectURL(e)}).fail(function(){n.remove()})))}).one("change",b)},function(t){var n,i,a,o,r,s,l,c,d,p,u=t.fm,h=t.preview,f={"video/mp4":"mp4","video/x-m4v":"mp4","video/quicktime":"mp4","video/mpeg":"mpeg","video/ogg":"ogg","application/ogg":"ogg","video/webm":"webm","video/x-matroska":"mkv","video/3gpp":"3gp","application/vnd.apple.mpegurl":"m3u8","application/x-mpegurl":"m3u8","application/dash+xml":"mpd","video/x-flv":"flv","video/x-msvideo":"avi"},m=t.window,g=t.navbar,v="string"==typeof t.options.mediaControlsList&&t.options.mediaControlsList?' controlsList="'+u.escape(t.options.mediaControlsList)+'"':"",b=function(){u.UA.iOS?m.hasClass("elfinder-quicklook-fullscreen")?(h.css("height","-webkit-calc(100% - 50px)"),g._show()):h.css("height",""):g.css("bottom",m.hasClass("elfinder-quicklook-fullscreen")?"50px":"")},y=function(i,a){var r,s=function(e){l>1&&(c&&clearTimeout(c),c=setTimeout(function(){!r&&T(!0)},800))},l=0,d="";o=null,a=a||{},a.cssClass&&(d=" "+a.cssClass),t.hideinfo(),n=e('').on("change",function(e){e.stopPropagation()}).on("timeupdate progress",s).on("canplay",function(){r=!0}).data("hash",i.hash),n[0].addEventListener("error",function(e){a.src&&u.convAbsUrl(a.src)===u.convAbsUrl(e.target.src)&&(++l,s())},!0),a.src&&n.append(''),n.appendTo(h),m.on("viewchange.video",b),b()},w=function(e){var t,a;a=u.openUrl(e.hash,!1,function(a){d.remove(),a&&(y(e),t=new i,t.loadSource(a),t.attachMedia(n[0]),l&&t.on(i.Events.MANIFEST_PARSED,function(){z(n[0])}))},{progressBar:p}),h.one("change",function(){a&&a.state&&"pending"===a.state()&&a.reject()})},x=function(e){var t;t=u.openUrl(e.hash,!1,function(t){var i;d.remove(),t&&(y(e),o=window.dashjs.MediaPlayer().create(),i=o.getDebug(),i.setLogLevel?i.setLogLevel(dashjs.Debug.LOG_LEVEL_FATAL):i.setLogToBrowserConsole&&i.setLogToBrowserConsole(!1),o.initialize(n[0],t,l),o.on("error",function(e){T(!0)}))},{progressBar:p}),h.one("change",function(){t&&t.state&&"pending"===t.state()&&t.reject()})},k=function(e){var t;return r.isSupported()?(t=u.openUrl(e.hash,!1,function(t){if(d.remove(),t){var i=r.createPlayer({type:"flv",url:t});y(e),i.on(r.Events.ERROR,function(){i.destroy(),T(!0)}),i.attachMediaElement(n[0]),i.load(),z(i)}},{progressBar:p}),void h.one("change",function(){t&&t.state&&"pending"===t.state()&&t.reject()})):void(r=!1)},C=function(e){var t;t=u.openUrl(e.hash,!1,function(t){d.remove(),t&&(y(e,{src:t,cssClass:"video-js"}),n[0].src=t,s(n[0],{autoplay:!0}))},{progressBar:p}),h.one("change",function(){t&&t.state&&"pending"===t.state()&&t.reject()})},z=function(e){var t,i=n.data("hash");l&&(t=e.play()),t&&t["catch"]&&t["catch"](function(t){e.paused||n&&n.data("hash")===i&&T(!0)})},T=function(e){if(c&&clearTimeout(c),n&&n.parent().length){var i=n[0];m.off("viewchange.video"),o&&o.reset();try{i.pause(),n.empty(),i.src="",i.load()}catch(a){}n.remove(),n=null}e&&t.info.show()};h.on(t.evUpdate,function(o){var c,m,g=o.file,v=g.mime.toLowerCase(),b=f[v];f[v]&&t.dispInlineRegex.test(g.mime)&&(l=t.autoPlay(),d=e('
'+u.i18n("nowLoading")+'
'),p=e('
').appendTo(d),t.support.video[b]&&("m3u8"!==b||u.UA.Safari)?(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),m=u.openUrl(g.hash,!1,function(e){d.remove(),e&&(y(g,{src:e}),z(n[0]))},{progressBar:p}),h.one("change",function(){m&&m.state&&"pending"===m.state()&&m.reject()})):i!==!1&&u.options.cdns.hls&&"m3u8"===b?(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),i?w(g):(c=window.Hls,delete window.Hls,u.loadScript([u.options.cdns.hls],function(e){i=e||window.Hls||!1,window.Hls=c,i&&w(g)},{tryRequire:!0,error:function(){i=!1}}))):a!==!1&&u.options.cdns.dash&&"mpd"===b?(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),a?x(g):u.loadScript([u.options.cdns.dash],function(){a=!!window.dashjs,a&&x(g)},{tryRequire:!0,error:function(){a=!1}})):r!==!1&&u.options.cdns.flv&&"flv"===b?(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),r?k(g):(c=window.flvjs,delete window.flvjs,u.loadScript([u.options.cdns.flv],function(e){r=e||window.flvjs||!1,window.flvjs=c,r&&k(g)},{tryRequire:!0,error:function(){r=!1}}))):u.options.cdns.videojs&&(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),s?C(g):u.loadScript([u.options.cdns.videojs+"/video.min.js"],function(e){s=e||window.videojs||!1,s&&C(g)},{tryRequire:!0,error:function(){s=!1}}).loadCss([u.options.cdns.videojs+"/video-js.min.css"])))}).one("change",T)},function(t){var n,i=t.preview,a=[],o=t.window,r=t.navbar;e.each(navigator.plugins,function(t,n){e.each(n,function(e,t){(0===t.type.indexOf("audio/")||0===t.type.indexOf("video/"))&&a.push(t.type)})}),a=t.fm.arrayFlip(a),i.on(t.evUpdate,function(s){var l,c,d,p,u=s.file,h=u.mime,f=function(){r.css("bottom",o.hasClass("elfinder-quicklook-fullscreen")?"50px":"")};a[u.mime]&&t.dispInlineRegex.test(u.mime)&&(s.stopImmediatePropagation(),d=e('
'+fm.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),p=e('
').appendTo(d),c=t.fm.openUrl(u.hash,!1,function(a){d.remove(),a&&((l=0===h.indexOf("video/"))&&t.hideinfo(),n=e('').appendTo(i),o.on("viewchange.embed",f),f())},{progressBar:p}),i.one("change",function(){c&&c.state&&"pending"===c.state()&&c.reject()}))}).one("change",function(){n&&n.parent().length&&(o.off("viewchange.embed"),n.remove(),n=null)})},function(t){var n=t.fm,i=n.arrayFlip(["application/zip","application/x-gzip","application/x-tar","application/x-bzip2"]),a=t.preview,o=n.returnBytes(t.options.unzipMaxSize||0),r=!(!n.options.cdns.zlibUnzip||!n.options.cdns.zlibGunzip),s=!!n.options.cdns.bzip2;window.Worker&&window.Uint8Array&&window.DataView&&a.on(t.evUpdate,function(l){var c=l.file,d="application/x-tar"===c.mime,p="application/x-bzip2"===c.mime,u="application/zip"===c.mime||"application/x-gzip"===c.mime;if(i[c.mime]&&(!o||c.size<=o)&&(d||p&&s||u&&r)){var h,f,m,g,v=function(){h=n.getContents(c.hash,"arraybuffer",{progressBar:g}).fail(function(){m.remove()}).done(function(e){var t=function(e){f&&f.terminate(),m.remove(),u?r=!1:p&&(s=!1),n.debug("error",e)};try{f=n.getWorker(),f.onmessage=function(e){f&&f.terminate(),m.remove(),!e.data||e.data.error?new Error(e.data&&e.data.error?e.data.error:""):b(e.data.files)},f.onerror=t,"application/x-tar"===c.mime?f.postMessage({scripts:[n.getWorkerUrl("quicklook.unzip.js")],data:{type:"tar",bin:e}}):"application/zip"===c.mime?f.postMessage({scripts:[n.options.cdns.zlibUnzip,n.getWorkerUrl("quicklook.unzip.js")],data:{type:"zip",bin:e}}):"application/x-gzip"===c.mime?f.postMessage({scripts:[n.options.cdns.zlibGunzip,n.getWorkerUrl("quicklook.unzip.js")],data:{type:"gzip",bin:e}}):"application/x-bzip2"===c.mime&&f.postMessage({scripts:[n.options.cdns.bzip2,n.getWorkerUrl("quicklook.unzip.js")],data:{type:"bzip2",bin:e}})}catch(i){t(i)}})},b=function(i){var o,r,s,l=0;i&&i.length&&(i=e.map(i,function(e){return n.decodeRawString(e)}),i.sort(),r=n.escape(i.join("\n").replace(/\{formatSize\((\d+)\)\}/g,function(e,t){return l+=parseInt(t),n.formatSize(t)})),o=""+n.escape(c.mime)+" ("+n.formatSize(c.size)+" / "+n.formatSize(l)+")
",s=e('
'+o+'
'+r+"
").on("touchstart",function(t){e(this)["scroll"+("ltr"===n.direction?"Right":"Left")]()>5&&(t.originalEvent._preventSwipeX=!0)}).appendTo(a),t.hideinfo()),m.remove()};l.stopImmediatePropagation(),m=e('
'+n.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),g=e('
').appendTo(m),a.one("change",function(){"pending"===h.state()&&h.reject(),f&&f.terminate(),m.remove()}),v()}})},function(t){var n,i=t.fm,a=i.arrayFlip(["application/x-rar"]),o=t.preview;window.DataView&&o.on(t.evUpdate,function(r){var s=r.file;if(a[s.mime]&&i.options.cdns.rar&&n!==!1){var l,c,d,p,u,h,f=function(a){if(p)return void l.remove();try{d=n({file:a,type:2,xhrHeaders:i.customHeaders,xhrFields:i.xhrFields},function(n){l.remove();var a,r,c=[];return p||n?void(n&&i.debug("error",n)):(e.each(d.entries,function(){c.push(this.path+(this.size?" ("+i.formatSize(this.size)+")":""))}),void(c.length&&(c=e.map(c,function(e){return i.decodeRawString(e)}),c.sort(),a=""+i.escape(s.mime)+" ("+i.formatSize(s.size)+")
",r=e('
'+a+'
'+i.escape(c.join("\n"))+"
").on("touchstart",function(t){e(this)["scroll"+("ltr"===i.direction?"Right":"Left")]()>5&&(t.originalEvent._preventSwipeX=!0)}).appendTo(o),t.hideinfo())))})}catch(r){l.remove()}},m=function(){n=!1,l.remove()};r.stopImmediatePropagation(),l=e('
'+i.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),c=e('
').appendTo(l),o.one("change",function(){d&&(d.abort=!0),l.remove(),p=!0}),h=i.openUrl(s.hash,"sameorigin",function(e){e&&(n?f(e):(window.RarArchive&&(u=window.RarArchive,delete window.RarArchive),i.loadScript([i.options.cdns.rar],function(){i.hasRequire?require(["rar"],function(t){n=t,f(e)},m):(n=window.RarArchive)?(u?window.RarArchive=u:delete window.RarArchive,f(e)):m()},{tryRequire:!0,error:m})))},{progressBar:c,temporary:!0}),o.one("change",function(){h&&h.state&&"pending"===h.state()&&h.reject()})}})},function(t){var n,i=t.fm,a=i.arrayFlip(t.options.sharecadMimes||[]),o=t.preview;t.window;t.options.sharecadMimes.length&&t.addIntegration({title:"ShareCAD.org CAD and 3D-Models viewer",link:"https://sharecad.org/DWGOnlinePlugin"}),o.on(t.evUpdate,function(r){var s=r.file;if(a[s.mime.toLowerCase()]&&i.option("onetimeUrl",s.hash)){var l,c,d;t.window;r.stopImmediatePropagation(),"1"==s.url&&(o.hide(),e('
").appendTo(t.info.find(".elfinder-quicklook-info")).on("click",function(){var n=e(this);n.html(''),i.request({data:{cmd:"url",target:s.hash},preventDefault:!0,progressBar:c}).always(function(){n.html("")}).done(function(e){var n=i.file(s.hash);s.url=n.url=e.url||"",s.url&&o.trigger({type:t.evUpdate,file:s,forceUpdate:!0})})})),""!==s.url&&"1"!=s.url&&(o.one("change",function(){l.remove(),n.off("load").remove(),n=null}).addClass("elfinder-overflow-auto"),l=e('
'+i.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),c=e('
').appendTo(l),d=i.convAbsUrl(i.url(s.hash)),n=e('').css("background-color","transparent").appendTo(o).on("load",function(){t.hideinfo(),l.remove(),t.preview.after(t.info),e(this).css("background-color","#fff").show()}).on("error",function(){l.remove(),t.preview.after(t.info)}).attr("src","//sharecad.org/cadframe/load?url="+encodeURIComponent(d)),t.info.after(t.preview))}})},function(t){var n,i,a,o,r,s=t.fm,l={"application/vnd.google-earth.kml+xml":!0,"application/vnd.google-earth.kmz":!0},c=t.preview;t.options.googleMapsApiKey&&(t.addIntegration({title:"Google Maps",link:"https://www.google.com/intl/"+s.lang.replace("_","-")+"/help/terms_maps.html"}),n=window.google&&google.maps,i=function(e,i,a){var r=t.options.googleMapsOpts.maps;s.forExternalUrl(e.hash,{progressBar:a}).done(function(e){if(e)try{new n.KmlLayer(e,Object.assign({map:new n.Map(i.get(0),r)},t.options.googleMapsOpts.kml)),t.hideinfo()}catch(a){o()}else o()})},a=window.gm_authFailure,o=function(){r=null},r="https://maps.googleapis.com/maps/api/js?key="+t.options.googleMapsApiKey,window.gm_authFailure=function(){o(),a&&a()},c.on(t.evUpdate,function(a){var o=a.file;if(r&&l[o.mime.toLowerCase()]){var d,p,u,h=(t.window,"1"==o.url&&!s.option("onetimeUrl",o.hash));a.stopImmediatePropagation(),d=e('
'+s.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),p=e('
').appendTo(d),h&&(c.hide(),e('
").appendTo(t.info.find(".elfinder-quicklook-info")).on("click",function(){var n=e(this);n.html(''),s.request({data:{cmd:"url",target:o.hash},preventDefault:!0,progressBar:p}).always(function(){d.remove(),n.html("")}).done(function(e){var n=s.file(o.hash);o.url=n.url=e.url||"",o.url&&c.trigger({type:t.evUpdate,file:o,forceUpdate:!0})})})),""===o.url||h||(u=e('
').appendTo(c),c.one("change",function(){u.remove(),u=null}),n?i(o,u,p):s.loadScript([r],function(){n=window.google&&google.maps,n&&i(o,u,p)}))}}))},function(t){var n,i,a=t.fm,o=Object.assign(a.arrayFlip(t.options.googleDocsMimes||[],"g"),a.arrayFlip(t.options.officeOnlineMimes||[],"m")),r=t.preview,s=(t.window,t.navbar),l={g:"docs.google.com/gview?embedded=true&url=",m:"view.officeapps.live.com/op/embed.aspx?wdStartOn=0&src="},c={g:"56px",m:"24px"},d={xls:5242880,xlsb:5242880,xlsx:5242880,xlsm:5242880,other:10485760};t.options.googleDocsMimes.length&&(i=!0,t.addIntegration({title:"Google Docs Viewer",link:"https://docs.google.com/"})),t.options.officeOnlineMimes.length&&(i=!0,t.addIntegration({title:"MS Online Doc Viewer",link:"https://products.office.com/office-online/view-office-documents-online"})),i&&r.on(t.evUpdate,function(i){var p,u,h=i.file;if(h.size<=26214400&&(p=o[h.mime])){var f,m,g,v=t.window,b=function(){s.css("bottom",v.hasClass("elfinder-quicklook-fullscreen")?c[p]:"")},y=a.mimeTypes[h.mime],w="1"==h.url&&!a.option("onetimeUrl",h.hash);"m"===p&&(d[y]&&h.size>d[y]||h.size>d.other)&&(p="g"),w&&(r.hide(),e('
").appendTo(t.info.find(".elfinder-quicklook-info")).on("click",function(){var n=e(this);n.html(''),a.request({data:{cmd:"url",target:h.hash},preventDefault:!0}).always(function(){n.html("")}).done(function(e){var n=a.file(h.hash);h.url=n.url=e.url||"",h.url&&r.trigger({type:t.evUpdate,file:h,forceUpdate:!0})})})),""===h.url||w||(i.stopImmediatePropagation(),r.one("change",function(){u&&u.status&&"pending"===u.status()&&u.reject(),v.off("viewchange.googledocs"),f.remove(),n.off("load").remove(),n=null}).addClass("elfinder-overflow-auto"),f=e('
'+a.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),m=e('
').appendTo(f),n=e('').css("background-color","transparent").appendTo(r),u=a.forExternalUrl(h.hash,{progressBar:m}).done(function(i){var a=function(){try{!n||n.attr("src")&&!n.get(0).contentWindow.document||(n.attr("src","https://"+l[p]+encodeURIComponent(i)),g=setTimeout(a,2e3))}catch(e){}};i?(h.ts&&(i+=(i.match(/\?/)?"&":"?")+"_t="+h.ts),n.on("load",function(){g&&clearTimeout(g),t.hideinfo(),f.remove(),t.preview.after(t.info),e(this).css("background-color","#fff").show()}).on("error",function(){g&&clearTimeout(g),f.remove(),t.preview.after(t.info)}),a()):(f.remove(),n.remove())}),v.on("viewchange.googledocs",b),b(),t.info.after(t.preview))}})},function(t){"use strict";var n,i,a=t.fm,o=t.preview,r=parseInt(t.options.textInitialLines)||150,s=parseInt(t.options.prettifyMaxLines)||500,l=function(){c=function(){return!1},i&&(window.PR=i),n=!1},c=function(e){a.options.cdns.prettify?(c=function(e){return setTimeout(function(){p(e)},100),"pending"},window.PR&&(i=window.PR),a.loadScript([a.options.cdns.prettify+(a.options.cdns.prettify.match(/\?/)?"&":"?")+"autorun=false"],function(t){n=t||window.PR,"object"==typeof n?(c=function(){return!0},i?window.PR=i:delete window.PR,d(e)):l()},{tryRequire:!0,error:l})):l()},d=function(e){e&&!e.hasClass("prettyprinted")&&(e.css("cursor","wait"),requestAnimationFrame(function(){n.prettyPrint&&n.prettyPrint(null,e.get(0)),e.css("cursor","")}))},p=function(e){var t=c(e);t===!0&&d(e)};o.on(t.evUpdate,function(i){var l,c,d,u,h=i.file;h.mime;a.mimeIsText(h.mime)&&(!t.options.getSizeMax||h.size<=t.options.getSizeMax)&&n!==!1&&(i.stopImmediatePropagation(),c=e('
'+a.i18n("nowLoading")+'
').appendTo(t.info.find(".elfinder-quicklook-info")),d=e('
').appendTo(c),o.one("change",function(){"pending"==l.state()&&l.reject(),u&&u.remove()}),l=a.request({data:{cmd:"get",target:h.hash,conv:h.encoding||1,_t:h.ts},options:{type:"get",cache:!0},preventDefault:!0,progressBar:d}).done(function(n){var i,l,c,d,u,f=new RegExp("^(data:"+h.mime.replace(/([.+])/g,"\\$1")+";base64,)","i"),m=n.content;"string"==typeof m&&(t.hideinfo(),window.atob&&(u=m.match(f))&&(m=atob(m.substr(u[1].length))),d=m.match(/([^\r\n]{1,100}[\r\n]*)/g),l=d.length-r,l>10?i=d.splice(0,r).join(""):l=0,c=e('
'),l&&c.append(e('

'+a.i18n("linesLeft",a.toLocaleString(l))+"
").on("click",function(){var t=c.scrollTop();e(this).remove(),c.children("pre").removeClass("prettyprinted").text(m).scrollTop(t),d.length<=s&&p(c)})),c.children("pre").text(i||m),c.on("touchstart",function(t){e(this)["scroll"+("ltr"===a.direction?"Right":"Left")]()>5&&(t.originalEvent._preventSwipeX=!0)}).appendTo(o),n.toasts&&Array.isArray(n.toasts)&&e.each(n.toasts,function(){this.msg&&a.toast(this)}),p(c))}).always(function(n){var i,r,s;(i=a.getCommand("edit"))&&(s=[],n&&n.encoding&&s.push({value:n.encoding}),s.push({value:"UTF-8"}),r=i.getEncSelect(s),r.on("change",function(){h.encoding=r.val(),a.cache(h,"change"),o.trigger({type:t.evUpdate,file:h,forceUpdate:!0})}),u=e('
').append(r),t.window.append(u)),c.remove()}))})}],(i.prototype.commands.reload=function(){"use strict";var t=this,n=!1;this.alwaysEnabled=!0,this.updateOnSelect=!0,this.shortcuts=[{pattern:"ctrl+shift+r f5"}],this.getstate=function(){return 0},this.init=function(){this.fm.bind("search searchend",function(){n="search"==this.type})},this.fm.bind("contextmenu",function(){var n=t.fm;n.options.sync>=1e3&&(t.extra={icon:"accept",node:e("").attr({title:n.i18n("autoSync")}).on("click touchstart",function(t){"touchstart"===t.type&&t.originalEvent.touches.length>1||(t.stopPropagation(),t.preventDefault(),e(this).parent().toggleClass("ui-state-disabled",n.options.syncStart).parent().removeClass("ui-state-hover"),n.options.syncStart=!n.options.syncStart,n.autoSync(n.options.syncStart?null:"stop"))}).on("ready",function(){e(this).parent().toggleClass("ui-state-disabled",!n.options.syncStart).css("pointer-events","auto")})})}),this.exec=function(){var t=this.fm;if(!n){var i=t.sync(),a=setTimeout(function(){t.notify({type:"reload",cnt:1,hideCnt:!0}),i.always(function(){t.notify({type:"reload",cnt:-1})})},t.notifyDelay);return i.always(function(){clearTimeout(a),t.trigger("reload")})}e("div.elfinder-toolbar > div."+t.res("class","searchbtn")+" > span.ui-icon-search").click()}}).prototype={forceLoad:!0},i.prototype.commands.rename=function(){"use strict";this.alwaysEnabled=!0,this.syncTitleOnChange=!0;var t=this,n=t.fm,i=function(t,i,a,o){var r,s=i?[a.hash].concat(i):[a.hash],l=s.length,c={};if(n.lockfiles({files:s}),n.isRoot(a)&&!a.netkey){if((r=n.storage("rootNames"))||(r={}),""===o){if(!r[a.hash])return t&&t.reject(),void n.unlockfiles({files:s}).trigger("selectfiles",{files:s});a.name=a._name,a.i18=a._i18,delete r[a.hash],delete a._name,delete a._i18}else"undefined"==typeof a._name&&(a._name=a.name,a._i18=a.i18),a.name=r[a.hash]=o,delete a.i18;return n.storage("rootNames",r),c={changed:[a]},n.updateCache(c),n.change(c),t&&t.resolve(c),void n.unlockfiles({files:s}).trigger("selectfiles",{files:s})}c={cmd:"rename",name:o,target:a.hash},l>1&&(c.targets=i,o.match(/\*/)&&(c.q=o)),n.request({data:c,notify:{type:"rename",cnt:l},navigate:{}}).fail(function(e){var i=n.parseError(e);t&&t.reject(),i&&Array.isArray(i)&&"errRename"===i[0]||n.sync()}).done(function(i){var r;i.added&&i.added.length&&1===l&&(i.undo={cmd:"rename",callback:function(){return n.request({data:{cmd:"rename",target:i.added[0].hash,name:a.name},notify:{type:"undo",cnt:1}})}},i.redo={cmd:"rename",callback:function(){return n.request({data:{ -cmd:"rename",target:a.hash,name:o},notify:{type:"rename",cnt:1}})}}),t&&t.resolve(i),(r=n.cwd().hash)&&r!==a.hash||n.exec("open",e.map(i.added,function(e){return"directory"===e.mime?e.hash:null})[0])}).always(function(){n.unlockfiles({files:s}).trigger("selectfiles",{files:s})})},a=function(e,t){var i,a,o,r=t||n.selected(),s=n.splitFileExtention(e),l=n.file(r[0]),c=n.file(r[1]);return i=s[1]?"."+s[1]:"",s[1]&&"*"===s[0]?(a='"'+n.splitFileExtention(l.name)[0]+i+'", ',a+='"'+n.splitFileExtention(c.name)[0]+i+'"'):s[0].length>1&&("*"===s[0].substr(-1)?(o=s[0].substr(0,s[0].length-1),a='"'+o+l.name+'", ',a+='"'+o+c.name+'"'):"*"===s[0].substr(0,1)&&(o=s[0].substr(1),a='"'+n.splitFileExtention(l.name)[0]+o+i+'", ',a+='"'+n.splitFileExtention(c.name)[0]+o+i+'"')),a||(a='"'+s[0]+"1"+i+'", "'+s[0]+"2"+i+'"'),r.length>2&&(a+=" ..."),a},o=function(){var o,r=n.selected(),s='',l=function(t,i){return e('").prepend(t)},c=e(''),d=e(s),p=e(s),u=e(s),h=e(s),f=e("
").append(l(d,"plusNumber"),l(p,"asPrefix"),l(u,"asSuffix"),l(h,"changeExtention")),m=e('
'),g=e('
').append(e('
').append(c),e('
').append(f),m),v={title:n.i18n("batchRename"),modal:!0,destroyOnClose:!0,width:Math.min(380,n.getUI().width()-20),buttons:{},open:function(){c.on("input",y).trigger("focus")}},b=function(){var e=c.val(),t=n.splitFileExtention(n.file(r[0]).name)[1];return(""!==e||d.is(":checked"))&&(p.is(":checked")?e+="*":u.is(":checked")?e="*"+e+"."+t:h.is(":checked")?e="*."+e:t&&(e+="."+t)),e},y=function(){var e=b();""!==e?m.html(n.i18n(["renameMultiple",r.length,a(e)])):m.empty()},w=f.find("input:radio").on("change",y);v.buttons[n.i18n("btnApply")]=function(){var e,t,a=b();""!==a&&(o.elfinderdialog("close"),t=r,e=n.file(t.shift()),i(void 0,t,e,a))},v.buttons[n.i18n("btnCancel")]=function(){o.elfinderdialog("close")},e.fn.checkboxradio?w.checkboxradio({create:function(e,t){this===d.get(0)&&d.prop("checked",!0).change()}}):f.buttonset({create:function(e,t){d.prop("checked",!0).change()}}),o=t.fmDialog(g,v)};this.noChangeDirOnRemovedCwd=!0,this.shortcuts=[{pattern:"f2"+("mac"==n.OS?" enter":"")},{pattern:"shift+f2",description:"batchRename",callback:function(){n.selected().length>1&&o()}}],this.getstate=function(i){var a,r,s,l,c,d,p=this.files(i),u=p.length;return u?(u>1&&p[0].phash&&(a=p[0].phash,r=n.splitFileExtention(p[0].name)[1].toLowerCase(),s=p[0].mime),1===u&&(d=n.isRoot(p[0])),c=1===u&&(n.cookieEnabled&&d||!p[0].locked)||n.api>2.103&&u===e.grep(p,function(e){return!(l||e.locked||e.phash!==a||n.isRoot(e)||s!==e.mime&&r!==n.splitFileExtention(e.name)[1].toLowerCase())||(l&&(l=!0),!1)}).length?0:-1,!d&&0===c&&n.option("disabledFlip",p[0].hash).rename&&(c=-1),c!==-1&&u>1?t.extra={icon:"preference",node:e("").attr({title:n.i18n("batchRename")}).on("click touchstart",function(e){"touchstart"===e.type&&e.originalEvent.touches.length>1||(e.stopPropagation(),e.preventDefault(),n.getUI().trigger("click"),o())})}:delete t.extra,c):-1},this.exec=function(t,o){var r,s=(n.getUI("cwd"),t||!!n.selected().length&&n.selected()||[n.cwd().hash]),l=s.length,c=n.file(s.shift()),d=".elfinder-cwd-filename",p=o||{},u=n.cwd().hash==c.hash,h="navbar"===p._currentType||"files"===p._currentType?p._currentType:u?"navbar":"files",f="files"!==h,m=n[f?"navHash2Elm":"cwdHash2Elm"](c.hash),g=!f&&"list"!=n.storage("view"),v=function(){requestAnimationFrame(function(){x&&x.trigger("blur")})},b=function(){T.is(":hidden")||T.elfinderoverlay("hide").off("click close",A),z.removeClass("ui-front").css("position","").off("unselect."+n.namespace,v),g?C&&C.css("max-height",""):f||z.css("width","").parent("td").css("overflow","")},y=e.Deferred().fail(function(e){var t=x.parent(),i=n.escape(c.i18||c.name);x.off(),g&&(i=i.replace(/([_.])/g,"​$1")),requestAnimationFrame(function(){f?x.replaceWith(i):t.length?(x.remove(),t.html(i)):m.find(d).html(i)}),e&&n.error(e)}).always(function(){b(),n.unbind("resize",S),n.enable()}),w=function(t){var o=e.trim(x.val()),r=(n.splitFileExtention(o),!0),d=function(){x.off(),b(),f?x.replaceWith(n.escape(o)):C.html(n.escape(o)),i(y,s,c,o)};if(T.is(":hidden")||z.css("z-index",""),""===o){if(!n.isRoot(c))return A();f?x.replaceWith(n.escape(c.name)):C.html(n.escape(c.name))}if(!j&&z.length){if(x.off("blur"),1===l&&o===c.name)return y.reject();if(n.options.validName&&n.options.validName.test)try{r=n.options.validName.test(o)}catch(t){r=!1}if("."===o||".."===o||!r)return j=!0,n.error("directory"===c.mime?"errInvDirname":"errInvName",{modal:!0,close:function(){setTimeout(k,120)}}),!1;if(1===l&&n.fileByName(o,c.phash))return j=!0,n.error(["errExists",o],{modal:!0,close:function(){setTimeout(k,120)}}),!1;1===l?d():(n.confirm({title:"cmdrename",text:["renameMultiple",l,a(o,[c.hash].concat(s))],accept:{label:"btnYes",callback:d},cancel:{label:"btnCancel",callback:function(){setTimeout(function(){j=!0,k()},120)}}}),setTimeout(function(){n.trigger("unselectfiles",{files:n.selected()}).trigger("selectfiles",{files:[c.hash].concat(s)})},120))}},x=e(g?"":'').on("keyup text",function(){g?(this.style.height="1px",this.style.height=this.scrollHeight+"px"):r&&(this.style.width=r+"px",this.scrollWidth>r&&(this.style.width=this.scrollWidth+10+"px"))}).on("keydown",function(t){t.stopImmediatePropagation(),t.keyCode==e.ui.keyCode.ESCAPE?y.reject():t.keyCode==e.ui.keyCode.ENTER&&(t.preventDefault(),x.trigger("blur"))}).on("mousedown click dblclick",function(e){e.stopPropagation(),"dblclick"===e.type&&e.preventDefault()}).on("blur",w).on("dragenter dragleave dragover drop",function(e){e.stopPropagation()}),k=function(){var e=n.splitFileExtention(x.val())[0];j||!n.UA.Mobile||n.UA.iOS||(T.on("click close",A).elfinderoverlay("show"),z.css("z-index",T.css("z-index")+1)),!n.enabled()&&n.enable(),j&&(j=!1,x.on("blur",w)),x.trigger("focus").trigger("select"),x[0].setSelectionRange&&x[0].setSelectionRange(0,e.length)},C=f?m.contents().filter(function(){return 3==this.nodeType&&e(this).parent().attr("id")===n.navHash2Id(c.hash)}):m.find(d),z=C.parent(),T=n.getUI("overlay"),A=function(e){T.is(":hidden")||z.css("z-index",""),j||(y.reject(),e&&(e.stopPropagation(),e.preventDefault()))},S=function(){m.trigger("scrolltoview",{blink:!1})},j=!1;return z.addClass("ui-front").css("position","relative").on("unselect."+n.namespace,v),n.bind("resize",S),f?C.replaceWith(x.val(c.name)):(g?C.css("max-height","none"):f||(r=z.width(),z.width(r-15).parent("td").css("overflow","visible")),C.empty().append(x.val(c.name))),l>1&&n.api<=2.103?y.reject():c&&C.length?c.locked&&!n.isRoot(c)?y.reject(["errLocked",c.name]):(n.one("select",function(){x.parent().length&&c&&e.inArray(c.hash,n.selected())===-1&&x.trigger("blur")}),x.trigger("keyup"),k(),y):y.reject("errCmdParams",this.title)},n.bind("select contextmenucreate closecontextmenu",function(e){var i,a=(e.data?e.data.selected||e.data.targets:null)||n.selected();a&&1===a.length&&(i=n.file(a[0]))&&n.isRoot(i)?t.title=n.i18n("kindAlias")+" ("+n.i18n("preference")+")":t.title=n.i18n("cmdrename"),"closecontextmenu"!==e.type?t.update(void 0,t.title):requestAnimationFrame(function(){t.update(void 0,t.title)})}).remove(function(t){var i;t.data&&t.data.removed&&(i=n.storage("rootNames"))&&(e.each(t.data.removed,function(e,t){i[t]&&delete i[t]}),n.storage("rootNames",i))})},i.prototype.commands.resize=function(){"use strict";var t=this.fm,n=0,i=function(t,n,i){var a=[{x:t/2,y:n/2},{x:-t/2,y:n/2},{x:-t/2,y:-n/2},{x:t/2,y:-n/2}],o=[],r={x:Number.MAX_VALUE,y:Number.MAX_VALUE},s={x:Number.MIN_VALUE,y:Number.MIN_VALUE};return e.each(a,function(e,t){o.push({x:t.x*Math.cos(i)-t.y*Math.sin(i),y:t.x*Math.sin(i)+t.y*Math.cos(i)})}),e.each(o,function(e,t){r.x=Math.min(r.x,t.x),r.y=Math.min(r.y,t.y),s.x=Math.max(s.x,t.x),s.y=Math.max(s.y,t.y)}),{width:s.x-r.x,height:s.y-r.y}};this.updateOnSelect=!1,this.getstate=function(){var e=t.selectedFiles();return 1==e.length&&e[0].read&&e[0].write&&e[0].mime.indexOf("image/")!==-1?0:-1},this.resizeRequest=function(n,i,a){var o=i||t.file(n.target),r=(o?o.tmb:null,t.isCommandEnabled("resize",n.target));if(r&&(!o||o&&o.read&&o.write&&o.mime.indexOf("image/")!==-1))return t.request({data:Object.assign(n,{cmd:"resize"}),notify:{type:"resize",cnt:1}}).fail(function(e){a&&a.reject(e)}).done(function(){n.quality&&t.storage("jpgQuality",n.quality===t.option("jpgQuality")?null:n.quality),a&&a.resolve()});var s;return s=o?o.mime.indexOf("image/")===-1?["errResize",o.name,"errUsupportType"]:["errResize",o.name,"errPerm"]:["errResize",n.target,"errPerm"],a?a.reject(s):t.error(s),e.Deferred().reject(s)},this.exec=function(a){var o,r,s,l,c=this,d=this.files(a),p=e.Deferred(),u=t.api>1,h=this.options,f=650,m=t.getUI(),g=e().controlgroup?"controlgroup":"buttonset",v="undefined"==typeof h.grid8px||"disable"!==h.grid8px,b=Array.isArray(h.presetSize)?h.presetSize:[],y="elfinder-dialog-active",w=t.res("class","editing"),x=function(a,o,r){var d,x,k,C,z,T="image/jpeg"===a.mime,A=e('
'),S='',j='
',O='
',I=null,M=!1,E=function(){M=!0},D=function(){M&&(M=!1,F.trigger("change"))},F=e('
').on("focus","input[type=text],input[type=number]",function(){e(this).trigger("select")}).on("change",function(){I&&cancelAnimationFrame(I),I=requestAnimationFrame(function(){var e,n,a,o,r,s,c,d,p,u,h,f;at&&!M&&(a=at.data("canvas"))&&(e=F.children("div.elfinder-resize-control-panel:visible"),n=e.find("input.elfinder-resize-quality"),n.is(":visible")&&(o=at.data("ctx"),r=at.get(0),e.hasClass("elfinder-resize-uiresize")?(d=a.width=X.val(),p=a.height=J.val(),o.drawImage(r,0,0,d,p)):e.hasClass("elfinder-resize-uicrop")?(s=G.val(),c=Y.val(),d=Q.val(),p=Z.val(),a.width=d,a.height=p,o.drawImage(r,s,c,d,p,0,0,d,p)):(u=te.val(),h=te.val()*Math.PI/180,f=i(fe,me,h),d=a.width=f.width,p=a.height=f.height,o.save(),u%90!==0&&(o.fillStyle=de.val()||"#FFF",o.fillRect(0,0,d,p)),o.translate(d/2,p/2),o.rotate(h),o.drawImage(r,-r.width/2,-r.height/2,fe,me),o.restore()),a.toBlob(function(e){e&&(l=e.size,n.next("span").text(" ("+t.formatSize(e.size)+")"))},"image/jpeg",Math.max(Math.min(n.val(),100),1)/100)))})}).on("mouseup","input",function(t){e(t.target).trigger("change")}),U=e('
').on("touchmove",function(t){e(t.target).hasClass("touch-punch")&&(t.stopPropagation(),t.preventDefault())}),P=e('
'+t.i18n("ntfloadimg")+"
"),q=e('
'),R=e('
'),H=e('
'),_=e('
'),N=e('
'),L=e("").attr("title",t.i18n("rotate-cw")).append(e('')),W=e("").attr("title",t.i18n("rotate-ccw")).append(e('')),B=e(""),$=e('").on("mouseenter mouseleave",function(t){e(this).toggleClass("ui-state-hover","mouseenter"==t.type)}).on("click",function(){d.exec("open",f).done(function(){d.one("opendone",function(){d.trigger("selectfiles",{files:e.map(t.added,function(e){return e.hash})})})})})):d.trigger("selectfiles",{files:e.map(t.added,function(e){return e.hash})}),d.toast({msg:d.i18n(["complete",d.i18n("cmdupload")]),extNode:n}))}}).progress(function(){w.notifyWith(this,Array.from(arguments))})},v=function(e){i.elfinderdialog("close"),h&&(e.target=h[0]),g(e)},b=function(){var t=m.hash,n=e.map(d.files(t),function(e){return"directory"===e.mime&&e.write?e:null});return n.length?e('
').on("click",function(t){t.stopPropagation(),t.preventDefault(),n=d.sortFiles(n);var a=e(this),o=(d.cwd(),i.closest("div.ui-dialog")),r=function(e,t){return{label:d.escape(e.i18||e.name),icon:t,remain:!1,callback:function(){var t=o.children(".ui-dialog-titlebar:first").find("span.elfinder-upload-target");h=[e.hash],t.html(" - "+d.escape(e.i18||e.name)),a.trigger("focus")},options:{className:h&&h.length&&e.hash===h[0]?"ui-state-active":"",iconClass:e.csscls||"",iconImg:e.icon||""}}},s=[r(m,"opendir"),"|"];e.each(n,function(e,t){s.push(r(t,"dir"))}),a.trigger("blur"),d.trigger("contextmenu",{raw:s,x:t.pageX||e(this).offset().left,y:t.pageY||e(this).offset().top,prevNode:o,fitHeight:!0})}).append(''):e()},y=function(n,i){var a=e('").on("click",function(){d.UA.IE&&setTimeout(function(){o.css("display","none").css("position","relative"),requestAnimationFrame(function(){o.css("display","").css("position","")})},100)}).on("change",function(){v({input:a.get(0),type:"files"})}).on("dragover",function(e){e.originalEvent.dataTransfer.dropEffect="copy"}),o=e("
").append(a).on("click",function(e){e.stopPropagation()});return e('
'+d.i18n(i)+"
").append(o).on("click",function(e){e.stopPropagation(),e.preventDefault(),a.trigger("click")}).on("mouseenter mouseleave",function(n){e(this).toggleClass(t,"mouseenter"===n.type)})},w=e.Deferred();return r=function(t){t.stopPropagation(),t.preventDefault();var n,i,a=!1,o="",r=null,s="",l=null,c=t._target||null,p=t.dataTransfer||null,u="";if(p){p.types&&p.types.length?(n=e.inArray("application/x-moz-file",p.types))!==-1?u="file":(n=e.inArray("Files",p.types))!==-1&&(u="file"):p.items&&p.items.length&&p.items[0].kind&&(u=p.items[0].kind);try{if(r=p.getData("elfinderfrom"),r&&(s=window.location.href+d.cwd().hash,!c&&r===s||c===s))return void w.reject()}catch(t){}if("file"===u&&(p.items[n].getAsEntry||p.items[n].webkitGetAsEntry||p.items[n].getAsFile))a=p,o="data";else if("string"!==u&&p.files&&p.files.length&&e.inArray("Text",p.types)===-1)a=p.files,o="files";else{try{(l=p.getData("text/html"))&&l.match(/<(?:img|a)/i)&&(a=[l],o="html")}catch(t){}a||((l=p.getData("text"))?(a=[l],o="text"):p&&p.files&&(u="file"))}}a?g({files:a,type:o,target:c,dropEvt:t}):(i=["errUploadNoFiles"],"file"===u&&i.push("errFolderUpload"),d.error(i),w.reject())},!h&&n?(n.input||n.files?(n.type="files",g(n)):n.dropEvt&&r(n.dropEvt),w):(s=function(t){var n,i=t.originalEvent||t,a=[],o=[];if(i.clipboardData){if(i.clipboardData.items&&i.clipboardData.items.length){o=i.clipboardData.items;for(var r=0;r').append(y("multiple","selectForUpload")),!d.UA.Mobile&&function(e){return"undefined"!=typeof e.webkitdirectory||"undefined"!=typeof e.directory}(document.createElement("input"))&&i.append(y("multiple webkitdirectory directory","selectFolder")),m.dirs&&(m.hash===p||d.navHash2Elm(m.hash).hasClass("elfinder-subtree-loaded")?b().appendTo(i):(l=e('
').append('').appendTo(i),d.request({cmd:"tree",target:m.hash}).done(function(){d.one("treedone",function(){l.replaceWith(b()),c.elfinderdialog("tabstopsInit")})}).fail(function(){l.remove()}))),d.dragUpload?a=e('
').on("paste",function(e){s(e)}).on("mousedown click",function(){e(this).trigger("focus")}).on("focus",function(){this.innerHTML=""}).on("mouseover",function(){e(this).addClass(t)}).on("mouseout",function(){e(this).removeClass(t)}).on("dragenter",function(n){n.stopPropagation(),n.preventDefault(),e(this).addClass(t)}).on("dragleave",function(n){n.stopPropagation(),n.preventDefault(),e(this).removeClass(t)}).on("dragover",function(n){n.stopPropagation(),n.preventDefault(),n.originalEvent.dataTransfer.dropEffect="copy",e(this).addClass(t)}).on("drop",function(e){i.elfinderdialog("close"),h&&(e.originalEvent._target=h[0]),r(e.originalEvent)}).prependTo(i).after('
'+d.i18n("or")+"
")[0]:o=e('
'+d.i18n("dropFilesBrowser")+"
").on("paste drop",function(e){s(e)}).on("mousedown click",function(){e(this).trigger("focus")}).on("focus",function(){this.innerHTML=""}).on("dragenter mouseover",function(){e(this).addClass(t)}).on("dragleave mouseout",function(){e(this).removeClass(t)}).prependTo(i).after('
'+d.i18n("or")+"
")[0],c=this.fmDialog(i,{title:this.title+''+(m?" - "+d.escape(m.i18||m.name):"")+"",modal:!0,resizable:!1,destroyOnClose:!0,propagationEvents:["mousemove","mouseup","click"],close:function(){var e=d.getUI("contextmenu");e.is(":visible")&&e.click()}}),w)}},i.prototype.commands.view=function(){"use strict";var t,n=this,i=this.fm;this.value=i.viewType,this.alwaysEnabled=!0,this.updateOnSelect=!1,this.options={ui:"viewbutton"},this.getstate=function(){return 0},this.extra={icon:"menu",node:e("").attr({title:i.i18n("viewtype")}).on("click touchstart",function(t){if(!("touchstart"===t.type&&t.originalEvent.touches.length>1)){var n=e(this);t.stopPropagation(),t.preventDefault(),i.trigger("contextmenu",{raw:getSubMenuRaw(),x:n.offset().left,y:n.offset().top})}})},this.exec=function(){var e=this,t="list"==this.value?"icons":"list";return i.storage("view",t),i.lazy(function(){i.viewchange(),e.update(void 0,t),this.resolve()})},i.bind("init",function(){t=function(){var e,t=i.getUI("cwd"),a=[],o=i.options.uiOptions.cwd.iconsView.sizeNames,r=i.options.uiOptions.cwd.iconsView.sizeMax;for(e=0;e<=r;e++)a.push({label:i.i18n(o[e]||"Size-"+e+" icons"),icon:"view",callback:function(e){return function(){t.trigger("iconpref",{size:e}),i.storage("iconsize",e),"list"===n.value&&n.exec()}}(e)});return a.push("|"),a.push({label:i.i18n("viewlist"),icon:"view-list",callback:function(){"list"!==n.value&&n.exec()}}),a}()}).bind("contextmenucreate",function(){n.extra={icon:"menu",node:e("").attr({title:i.i18n("cmdview")}).on("click touchstart",function(a){if(!("touchstart"===a.type&&a.originalEvent.touches.length>1)){var o,r,s=e(this);t.concat();for(o="list"===n.value?t.length-1:parseInt(i.storage("iconsize")||0),r=0;r").append(m.contents()).attr("class",m.attr("class")||"").attr("style",m.attr("style")||""),b=m.attr("id")||m.attr("id","elfauto"+e(".elfinder").length).attr("id"),y="elfinder-"+b,w="mousedown."+y,x="keydown."+y,k="keypress."+y,C="keyup."+y,z=!1,T=!1,A=["enable","disable","load","open","reload","select","add","remove","change","dblclick","getfile","lockfiles","unlockfiles","selectfiles","unselectfiles","dragstart","dragstop","search","searchend","viewchange"],j="",O={path:"",url:"",tmbUrl:"",disabled:[],separator:"/",archives:[],extract:[],copyOverwrite:!0,uploadOverwrite:!0,uploadMaxSize:0,jpgQuality:100,tmbCrop:!1,tmbReqCustomData:!1,tmb:!1},S={},I={},M={},F={},E=[],D={},U={},P=[],R={},q=[],H=[],_=new u.command(u),N="auto",L=400,W=null,B="sounds/",$="",V=!1,K=e(document.createElement("audio")).hide().appendTo("body")[0],X=0,J="",G=null,Y=function(t){var n,i,a,o,r,s,l,c,d={},p={};u.api>=2.1?(u.commandMap=t.options.uiCmdMap&&Object.keys(t.options.uiCmdMap).length?t.options.uiCmdMap:{},J!==JSON.stringify(u.commandMap)&&(J=JSON.stringify(u.commandMap))):u.options.sync=0,t.init?(I={},F={}):(s=j,n="elfinder-subtree-loaded "+u.res("class","navexpand"),r=u.res("class","navcollapse"),i=Object.keys(I),a=function(e){if(!I[e])return!0;var t="directory"===I[e].mime,i=I[e].phash;!(!t||d[i]||!p[i]&&u.navHash2Elm(I[e].hash).is(":hidden")&&u.navHash2Elm(i).next(".elfinder-navbar-subtree").children().length>100)||!t&&i===j||R[e]?t&&(p[i]=!0):(t&&!d[i]&&(d[i]=!0,u.navHash2Elm(i).removeClass(n).next(".elfinder-navbar-subtree").empty()),ee(I[e]))},o=function(){i.length&&(G&&G._abort(),G=u.asyncJob(a,i,{interval:20,numPerOnce:100}).done(function(){var t=u.storage("hide")||{items:{}};Object.keys(M).length&&e.each(M,function(e){t.items[e]||delete M[e]})}))},u.trigger("filesgc").one("filesgc",function(){i=[]}),u.one("opendone",function(){s!==j&&(m.data("lazycnt")?u.one("lazydone",o):o())})),u.sorters={},j=t.cwd.hash,Q(t.files),I[j]?(c=u.diff([t.cwd],!0),c.changed.length&&(Q(c.changed,"change"),u.change({changed:c.changed}))):Q([t.cwd]),t.changed&&t.changed.length&&Q(t.changed,"change"),l=JSON.stringify(u.sorters),$!==l&&(u.trigger("sorterupdate"),$=l),u.lastDir(j),u.autoSync()},Q=function(t,n){var i,a,o,r,s,n=n||"files",l=["sizeInfo","encoding"],c={name:!0,perm:!0,date:!0,size:!0,kind:!0},d=!u.sorters._checked&&"files"===n,p=t.length,h=function(t){var n=t||{},i=[];e.each(u.sortRules,function(e){(c[e]||"undefined"!=typeof n[e]||"mode"===e&&"undefined"!=typeof n.perm)&&i.push(e)}),u.sorters=u.arrayFlip(i,!0),u.sorters._checked=!0},f={},m=u.storage("hide")||{},g=m.items||{};for(a=0;a-1&&o.splice(r,1));return n=null,this},this.trigger=function(t,n,i){var a,o,r,s,l=t.toLowerCase(),c="object"==typeof n,d=D[l]||[],p=[];if(this.debug("event-"+l,n),c&&"undefined"!=typeof i||(i=!0),o=d.length){for(s=e.Event(l),n&&(n._getEvent=function(){return s}),i&&(s.data=n),a=0;a script").each(function(){if(this.src&&this.src.match(/js\/elfinder(?:-[a-z0-9_-]+)?\.(?:min|full)\.js(?:$|\?)/i))return t=e(this),!1}),t&&(i=t.attr("src").replace(/js\/[^\/]+$/,""),i.match(/^(https?\/\/|\/)/)||(n=e("head > base[href]").attr("href"))&&(i=n.replace(/\/$/,"")+"/"+i)),""!==i?u.options.baseUrl=i:(u.options.baseUrl||(u.options.baseUrl=fm.elfinder),i=u.options.baseUrl),i)}(),this.i18nBaseUrl=(this.options.i18nBaseUrl||this.baseUrl+"js/i18n").replace(/\/$/,"")+"/",this.workerBaseUrl=(this.options.workerBaseUrl||this.baseUrl+"js/worker").replace(/\/$/,"")+"/",this.options.maxErrorDialogs=Math.max(1,parseInt(this.options.maxErrorDialogs||5)),O.dispInlineRegex=this.options.dispInlineRegex,this.options.cssAutoLoad&&!function(){var t=u.baseUrl,n=e('head > link[href$="css/elfinder.min.css"],link[href$="css/elfinder.full.css"]:first').length,i=function(){m.data("cssautoloadHide")&&(m.data("cssautoloadHide").remove(),m.removeData("cssautoloadHide"))},a=function(){u.cssloaded||(i(),u.cssloaded=!0,u.trigger("cssloaded"))};n||(u.cssloaded=null),Array.isArray(u.options.cssAutoLoad)&&(u.options.themes["default"]?u.cssloaded===!0?u.loadCss(u.options.cssAutoLoad):u.bind("cssloaded",function(){u.loadCss(u.options.cssAutoLoad)}):(u.options.themes=Object.assign({"default":{name:"default",cssurls:u.options.cssAutoLoad}},u.options.themes),u.options.theme||(u.options.theme="default"))),null===u.cssloaded&&(m.addClass("elfinder").data("cssautoloadHide",e("")),e("head").append(m.data("cssautoloadHide")),u.options.themes["default"]||(u.options.themes=Object.assign({"default":{name:"default",cssurls:"css/theme.css",author:"elFinder Project",license:"3-clauses BSD"}},u.options.themes),u.options.theme||(u.options.theme="default")),requestAnimationFrame(function(){"hidden"===m.css("visibility")?u.loadCss([t+"css/elfinder.min.css"],{dfd:e.Deferred().done(function(){a()}).fail(function(){i(),u.cssloaded||(u.cssloaded=!1,u.bind("init",function(){u.cssloaded||u.error(["errRead","CSS (elfinder.min)"])}))})}):a()}))}(),function(){var e,t=u.options.themes,n=Object.keys(t||{});n.length&&(e=u.storage("theme")||u.options.theme,t[e]||(e=n[0]),u.cssloaded?u.changeTheme(e):u.bind("cssloaded",function(){u.changeTheme(e)}))}(),this.optionProperties={icon:void 0,csscls:void 0,tmbUrl:void 0,uiCmdMap:{},netkey:void 0,disabled:[]},re||this.options.enableAlways||2!==e("body").children().length||(this.options.enableAlways=!0),this.options.debug===!0?this.options.debug="all":Array.isArray(this.options.debug)?!function(){var t={};e.each(u.options.debug,function(){t[this]=!0}),u.options.debug=t}():this.options.debug=!1,this.noConflicts={},this.noConflict=function(){e.each(f,function(t,n){e.fn[n]&&"function"==typeof e.fn[n].noConflict&&(u.noConflicts[n]=e.fn[n].noConflict())})},this.noConflict(),this.isCORS=!1,function(){if("undefined"!=typeof u.options.cors&&null!==u.options.cors)u.isCORS=!!u.options.cors;else{var t,i=document.createElement("a"),a=window.location.protocol,o=function(e){return e=e&&":"!==e?e:a,"https:"===e?/\:443$/:/\:80$/},r=window.location.host.replace(o(a),"");i.href=n.url,n.urlUpload&&n.urlUpload!==n.url&&(t=document.createElement("a"),t.href=n.urlUpload),(r!==i.host.replace(o(i.protocol),"")||":"!==i.protocol&&""!==i.protocol&&a!==i.protocol||t&&(r!==t.host.replace(o(t.protocol),"")||":"!==t.protocol&&""!==t.protocol&&a!==t.protocol))&&(u.isCORS=!0)}u.isCORS&&(e.isPlainObject(u.options.customHeaders)||(u.options.customHeaders={}),e.isPlainObject(u.options.xhrFields)||(u.options.xhrFields={}),u.options.requestType="post",u.options.customHeaders["X-Requested-With"]="XMLHttpRequest",u.options.xhrFields.withCredentials=!0)}(),this.requestType=/^(get|post)$/i.test(this.options.requestType)?this.options.requestType.toLowerCase():"get",s=Math.max(parseInt(this.options.requestMaxConn),1),this.optsCustomData=e.isPlainObject(this.options.customData)?this.options.customData:{},this.customData=Object.assign({},this.optsCustomData),this.prevCustomData=null,this.customHeaders=e.isPlainObject(this.options.customHeaders)?this.options.customHeaders:{},this.xhrFields=e.isPlainObject(this.options.xhrFields)?this.options.xhrFields:{},this.replaceXhrSend=function(){p||(p=XMLHttpRequest.prototype.send),XMLHttpRequest.prototype.send=function(){var t=this;return u.customHeaders&&e.each(u.customHeaders,function(e){t.setRequestHeader(e,this)}),u.xhrFields&&e.each(u.xhrFields,function(e){e in t&&(t[e]=this)}),p.apply(this,arguments)}},this.restoreXhrSend=function(){p&&(XMLHttpRequest.prototype.send=p)},this.abortCmdsOnOpen=this.options.abortCmdsOnOpen||["tmb","parents"],this.navPrefix="nav"+(i.prototype.uniqueid?i.prototype.uniqueid:"")+"-",this.cwdPrefix=i.prototype.uniqueid?"cwd"+i.prototype.uniqueid+"-":"",++i.prototype.uniqueid,this.uploadURL=n.urlUpload||n.url,this.namespace=y,this.today=new Date(oe.getFullYear(),oe.getMonth(),oe.getDate()).getTime()/1e3,this.yesterday=this.today-86400,l=this.options.UTCDate?"UTC":"",this.getHours="get"+l+"Hours",this.getMinutes="get"+l+"Minutes",this.getSeconds="get"+l+"Seconds",this.getDate="get"+l+"Date",this.getDay="get"+l+"Day",this.getMonth="get"+l+"Month",this.getFullYear="get"+l+"FullYear",this.zIndex,this.searchStatus={state:0,query:"",target:"",mime:"",mixed:!1,ininc:!1},this.lang=this.storage("lang")||this.options.lang,"jp"===this.lang&&(this.lang=this.options.lang="ja"),this.viewType=this.storage("view")||this.options.defaultView||"icons",this.sortType=this.storage("sortType")||this.options.sortType||"name",this.sortOrder=this.storage("sortOrder")||this.options.sortOrder||"asc",this.sortStickFolders=this.storage("sortStickFolders"),null===this.sortStickFolders?this.sortStickFolders=!!this.options.sortStickFolders:this.sortStickFolders=!!this.sortStickFolders,this.sortAlsoTreeview=this.storage("sortAlsoTreeview"),null===this.sortAlsoTreeview||null===this.options.sortAlsoTreeview?this.sortAlsoTreeview=!!this.options.sortAlsoTreeview:this.sortAlsoTreeview=!!this.sortAlsoTreeview,this.sortRules=e.extend(!0,{},this._sortRules,this.options.sortRules),e.each(this.sortRules,function(e,t){"function"!=typeof t&&delete u.sortRules[e]}),this.compare=e.proxy(this.compare,this),this.notifyDelay=this.options.notifyDelay>0?parseInt(this.options.notifyDelay):500,this.draggingUiHelper=null,this.droppable={greedy:!0,tolerance:"pointer",accept:".elfinder-cwd-file-wrapper,.elfinder-navbar-dir,.elfinder-cwd-file,.elfinder-cwd-filename",hoverClass:this.res("class","adroppable"),classes:{"ui-droppable-hover":this.res("class","adroppable")},autoDisable:!0,drop:function(t,n){var i,a,o,r=e(this),s=e.grep(n.helper.data("files")||[],function(e){return!!e}),l=[],c=[],d=[],p=n.helper.hasClass("elfinder-drag-helper-plus"),h="class";if("undefined"==typeof t.button||n.helper.data("namespace")!==y||!u.insideWorkzone(t.pageX,t.pageY))return!1;for(a=r.hasClass(u.res(h,"cwdfile"))?u.cwdId2Hash(r.attr("id")):r.hasClass(u.res(h,"navdir"))?u.navId2Hash(r.attr("id")):j,i=s.length;i--;)o=s[i],o!=a&&I[o].phash!=a?l.push(o):(p&&o!==a&&I[a].write?c:d).push(o);return!d.length&&(n.helper.data("droped",!0),c.length&&(n.helper.hide(),u.exec("duplicate",c,{_userAction:!0})),void(l.length&&(n.helper.hide(),u.clipboard(l,!p),u.exec("paste",a,{_userAction:!0},a).always(function(){u.clipboard([]),u.trigger("unlockfiles",{files:s})}),u.trigger("drop",{files:s}))))}},this.enabled=function(){return z&&this.visible()},this.visible=function(){return m[0].elfinder&&m.is(":visible")},this.isRoot=function(e){return!(!e.isroot&&e.phash)},this.root=function(t,n){t=t||j;var i,a;if(!n&&(e.each(u.roots,function(e,n){if(0===t.indexOf(e))return i=n,!1}),i))return i;for(i=I[t];i&&i.phash&&(n||!i.isroot);)i=I[i.phash];if(i)return i.hash;for(;a in I&&I.hasOwnProperty(a);)if(i=I[a],"directory"===i.mime&&!i.phash&&i.read)return i.hash;return""},this.cwd=function(){return I[j]||{}},this.option=function(t,n){var i,a;return n=n||j,u.optionsByHashes[n]&&"undefined"!=typeof u.optionsByHashes[n][t]?u.optionsByHashes[n][t]:!u.hasVolOptions||j===n||(a=u.file(n))&&a.phash===j?S[t]||"":(i="",e.each(u.volOptions,function(e,a){if(0===n.indexOf(e))return i=a[t]||"",!1}),i)},this.getDisabledCmds=function(t,n){var i={hidden:!0};return Array.isArray(t)||(t=[t]),e.each(t,function(e,t){var n=u.option("disabledFlip",t);n&&Object.assign(i,n)}),n?i:Object.keys(i)},this.file=function(e,t){return e?I[e]||(t?M[e]:void 0):void 0},this.files=function(t){var n={};return t?F[t]?(e.each(F[t],function(e){I[e]?n[e]=I[e]:delete F[t][e]}),Object.assign({},n)):{}:Object.assign({},I)},this.parents=function(e){for(var t,n=[];e&&(t=this.file(e));)n.unshift(t.hash),e=t.phash;return n},this.path2array=function(e,t){for(var n,i=[];e;){if(!(n=I[e])||!n.hash){i=[];break}i.unshift(t&&n.i18?n.i18:n.name),e=n.isroot?null:n.phash}return i},this.path=function(t,n,i){var a=I[t]&&I[t].path?I[t].path:this.path2array(t,n).join(S.separator);if(i&&I[t]){i=Object.assign({notify:{type:"parents",cnt:1,hideCnt:!0}},i);var o,r=e.Deferred(),s=i.notify,l=!1,c=function(){u.request({data:{cmd:"parents",target:I[t].phash},notify:s,preventFail:!0}).done(d).fail(function(){r.reject()})},d=function(){u.one("parentsdone",function(){a=u.path(t,n),""===a&&l?(l=!1,c()):(s&&(clearTimeout(o),s.cnt=-parseInt(s.cnt||0),u.notify(s)),r.resolve(a))})};return a?r.resolve(a):(u.ui.tree?(s&&(o=setTimeout(function(){u.notify(s)},u.notifyDelay)),l=!0,d(!0)):c(),r)}return a},this.url=function(t,n){var i,a=I[t],o=n||{},r=o.async||!1,s=o.temporary||!1,l=o.onetime&&u.option("onetimeUrl",t)||!1,c=o.absurl||!1,d=r||l?e.Deferred():null,p=function(e){return e&&c&&(e=u.convAbsUrl(e)),e},h=function(n){if(n)return p(n);if(a.url)return p(a.url);if("undefined"==typeof i&&(i=f()),i)return p(i+e.map(u.path2array(t),function(e){return encodeURIComponent(e)}).slice(1).join("/"));var o=Object.assign({},u.customData,{cmd:"file",target:a.hash});return u.oldAPI&&(o.cmd="open",o.current=a.phash),p(u.options.url+(u.options.url.indexOf("?")===-1?"?":"&")+e.param(o,!0))},f=function(){return u.option("url",!u.isRoot(a)&&a.phash||a.hash)};if(!a||!a.read)return r?d.resolve(""):"";if(!l||a.url&&"1"!=a.url||(i=f()))if("1"==a.url||s&&!a.url&&!(i=f()))this.request({data:{cmd:"url",target:t,options:{temporary:s?1:0}},preventDefault:!0,options:{async:r},notify:r?{type:s?"file":"url",cnt:1,hideCnt:!0}:{},progressBar:o.progressBar}).done(function(e){a.url=e.url||""}).fail(function(){a.url=""}).always(function(){var e;return a.url&&s&&(e=a.url,a.url="1"),r?void d.resolve(h(e)):h(e)});else{if(!r)return h();d.resolve(h())}else r=!0,this.request({data:{cmd:"url",target:t,options:{onetime:1}},preventDefault:!0,options:{async:r},notify:{type:"file",cnt:1,hideCnt:!0},progressBar:o.progressBar}).done(function(e){d.resolve(p(e.url||""))}).fail(function(){d.resolve("")});return r?d:void 0},this.forExternalUrl=function(e,t){var n=u.option("onetimeUrl",e),i={async:!0,absurl:!0};return i[n?"onetime":"temporary"]=!0,u.url(e,Object.assign({},t,i))},this.openUrl=function(t,n,i,a){var o=I[t],r="",s=(a||{}).onetimeSize||5242880;return o&&o.read?n&&"sameorigin"!==n||(o.url?1!=o.url&&(r=o.url):S.url&&0===o.hash.indexOf(u.cwd().volumeid)&&(r=S.url+e.map(this.path2array(t),function(e){return encodeURIComponent(e)}).slice(1).join("/")),n&&!this.isSameOrigin(r)||!r)?i&&this.hasParrotHeaders()?(a?delete a.onetimeSize:a={},!a.onetime&&!a.temporary&&o.size>s&&(o.mime.match(/^video|audio/)?a.temporary=!0:a.onetime=!0),a.onetime||a.temporary?this.url(o.hash,Object.assign({async:!0},a)).done(function(e){i(e)}).fail(function(){i("")}):this.getContents(t,"blob",a).done(function(e){r=(window.URL||window.webkitURL).createObjectURL(e),i(r)}).fail(function(){i("")})):(r=this.options.url,r=r+(r.indexOf("?")===-1?"?":"&")+(this.oldAPI?"cmd=open¤t="+o.phash:"cmd=file")+"&target="+o.hash+"&_t="+(o.ts||parseInt(+new Date/1e3)),n===!0&&(r+="&download=1"),e.each(this.customData,function(e,t){r+="&"+encodeURIComponent(e)+"="+encodeURIComponent(t)}),i?void i(r):r):(r+=(r.match(/\?/)?"&":"?")+"_".repeat((r.match(/[\?&](_+)t=/g)||["&t="]).sort().shift().match(/[\?&](_*)t=/)[1].length+1)+"t="+(o.ts||parseInt(+new Date/1e3)),i?void i(r):r):""},this.tmb=function(t){var n,i,a="elfinder-cwd-bgurl",o="",r={},s=0;return!(!e.isPlainObject(t)||(u.searchStatus.state&&0!==t.hash.indexOf(u.cwd().volumeid)?(n=u.option("tmbUrl",t.hash),i=u.option("tmbCrop",t.hash)):(n=S.tmbUrl,i=S.tmbCrop),i&&(a+=" elfinder-cwd-bgurl-crop"),"self"===n&&0===t.mime.indexOf("image/")?(o=u.openUrl(t.hash),a+=" elfinder-cwd-bgself"):(u.oldAPI||n)&&t&&t.tmb&&1!=t.tmb?o=n+t.tmb:u.newAPI&&t&&t.tmb&&1!=t.tmb&&(o=t.tmb),!o))&&("self"!==n&&(t.ts&&(r._t=t.ts),S.tmbReqCustomData&&Object.keys(this.customData).length&&(r=Object.assign(r,this.customData)),Object.keys(r).length&&(o+=o.match(/\?/)?"&":"?",e.each(r,function(e,t){o+=(0===s++?"":"&")+encodeURIComponent(e)+"="+encodeURIComponent(t)}))),{url:o,className:a})},this.selected=function(){return E.slice(0)},this.selectedFiles=function(){return e.map(E,function(e){return I[e]?Object.assign({},I[e]):null})},this.fileByName=function(e,t){var n;for(n in I)if(I.hasOwnProperty(n)&&I[n].phash==t&&I[n].name==e)return I[n]},this.validResponse=function(e,t){return t.error||this.rules[this.rules[e]?e:"defaults"](t)},this.returnBytes=function(e){var t;return isNaN(e)?(e||(e=""),e=e.replace(/b$/i,""),t=e.charAt(e.length-1).toLowerCase(),e=e.replace(/[tgmk]$/i,""),"t"==t?e=1024*e*1024*1024*1024:"g"==t?e=1024*e*1024*1024:"m"==t?e=1024*e*1024:"k"==t&&(e=1024*e),e=isNaN(e)?0:parseInt(e)):(e=parseInt(e),e<1&&(e=0)),e},this.request=function(t){var n,i,a,o,r=this,l=this.options,c=e.Deferred(),d=(+new Date).toString(16)+Math.floor(1e3*Math.random()).toString(16),p=Object.assign({},r.customData,{mimes:l.onlyMimes},t.data||t),u=p.cmd,h="binary"===(t.options||{}).dataType,f=!t.asNotOpen&&"open"===u,m=1===p.tree,g=!(h||t.preventDefault||t.preventFail),v=!(h||t.preventDefault||t.preventDone),b=t.progressVal||20,y=null,w=!1,x=t.progressBar?{}:t.notify?Object.assign({progress:b*t.notify.cnt},t.notify):{},k=!!t.cancel,C=h||!!t.raw,z=t.syncOnFail,T=!!t.lazy,A=t.prepare,I=t.navigate,M=(t.options||{}).cache,F=Object.assign({url:l.url,async:!0,type:this.requestType,dataType:"json",cache:r.api>=2.1029,data:p,headers:this.customHeaders,xhrFields:this.xhrFields,progress:function(e){var n=e.loaded/e.total*100;if(y&&clearTimeout(y),t.progressBar)try{t.progressBar.width(n+"%")}catch(e){}else w&&x.type&&(n*=x.cnt,b=500)n=["errResponse","errServerError","HTTP error "+e.status];else{if(414==e.status&&"get"===F.type)return F.type="post",r.abortXHR(e),void(c.xhr=e=r.transport.send(F).fail(n).done(U));n=e.quiet?"":["errConnect","HTTP error "+e.status]}}r.trigger(u+"done"),c.reject({error:n},e,t)},U=function(t){if(r.currentReqCmd=u,t.debug&&r.responseDebug(t),r.setCustomHeaderByXhr(i),C)return r.abortXHR(i),t&&t.debug&&r.debug("backend-debug",t),c.resolve(t);if(!t)return c.reject({error:["errResponse","errDataEmpty"]},i,t);if(!e.isPlainObject(t))return c.reject({error:["errResponse","errDataNotJSON"]},i,t);if(t.error)return f&&e.each(r.leafRoots,function(t,n){r.leafRoots[t]=e.grep(n,function(e){return e!==p.target})}),c.reject({error:t.error},i,t);var n=function(){var n,a=function(n){r.leafRoots[p.target]&&t[n]&&e.each(r.leafRoots[p.target],function(e,i){var a;(a=r.file(i))&&t[n].push(a)})},o=function(){r.textMimes={},e.each(r.res("mimes","text"),function(){r.textMimes[this.toLowerCase()]=!0})};return f&&!m?a("files"):"tree"===u&&a("tree"),t=r.normalize(t),r.validResponse(u,t)?(f&&(r.api||(r.api=t.api||1,"2.0"==r.api&&"undefined"!=typeof t.options.uploadMaxSize&&(r.api="2.1"),r.newAPI=r.api>=2,r.oldAPI=!r.newAPI),t.textMimes&&Array.isArray(t.textMimes)&&(r.resources.mimes.text=t.textMimes,o()),!r.textMimes&&o(),t.options&&(S=Object.assign({},O,t.options)),t.netDrivers&&(r.netDrivers=t.netDrivers),t.maxTargets&&(r.maxTargets=t.maxTargets),p.init&&(r.uplMaxSize=r.returnBytes(t.uplMaxSize),r.uplMaxFile=t.uplMaxFile?Math.min(parseInt(t.uplMaxFile),50):20)),"function"==typeof A&&A(t),I&&(n=I.target||"added",t[n]&&t[n].length&&r.one(u+"done",function(){var i=t[n],a=r.findCwdNodes(i),o=function(){var t=r.cwd().hash;return e.map(i,function(e){return e.phash&&t===e.phash?e.hash:null})},s=o(),l=function(t){var n,i,a,l=void 0,c=t.action?t.action.data:void 0;return(c||s.length)&&t.action&&(i=t.action.msg)&&(n=t.action.cmd)&&(!t.action.cwdNot||t.action.cwdNot!==r.cwd().hash)&&(a=t.action.done,c=t.action.data,l=e("
").append(e('").on("mouseenter mouseleave",function(t){e(this).toggleClass("ui-state-hover","mouseenter"==t.type)}).on("click",function(){r.exec(n,c||s,{_userAction:!0,_currentType:"toast",_currentNode:e(this)}),a&&r.one(n+"done",function(){"function"==typeof a?a():"select"===a&&r.trigger("selectfiles",{files:o()})})}))),delete t.action,t.extNode=l,t};I.toast||(I.toast={}),!I.noselect&&r.trigger("selectfiles",{files:r.searchStatus.state>1?e.map(i,function(e){return e.hash}):s}),a.length?(I.noscroll||(a.first().trigger("scrolltoview",{blink:!1}),r.resources.blink(a,"lookme")),e.isPlainObject(I.toast.incwd)&&r.toast(l(I.toast.incwd))):e.isPlainObject(I.toast.inbuffer)&&r.toast(l(I.toast.inbuffer))})),c.resolve(t),void(t.debug&&r.debug("backend-debug",t))):c.reject({error:t.norError||"errResponse"},i,t)};r.abortXHR(i),T?r.lazy(n):n()},P=function(e){i&&"pending"===i.state()&&(r.abortXHR(i,{quiet:!0,abort:!0}),(!e||"unload"!==e.type&&"destroy"!==e.type)&&r.autoSync())},R=function(e){if(r.trigger(u+"done"),"autosync"==e.type){if("stop"!=e.data.action)return}else if(!("unload"==e.type||"destroy"==e.type||"openxhrabort"==e.type||e.data.added&&e.data.added.length))return;P(e)},_=function(t){var n=function(){z=!1,c.reject()};if(t&&"cmd"===t)return u;if(f){if(ie&&"pending"===ie.state()){if(ie._target===p.target)return c.reject("openabort");ie.xhr?ie.xhr.queueAbort():ie.reject("openabort")}ie=c,ie._target=p.target}if(c.always(function(){delete F.headers["X-elFinderReqid"],f&&(ie=null)}).fail(function(t,n,i){var a,s;f&&"openabort"===t&&(t="",z=!1),a={cmd:u,err:t,xhr:n,rc:i},0===t&&ne.length&&(ne=e.grep(ne,function(e){return e("cmd")!==u})),r.trigger("requestError",a),a._getEvent&&a._getEvent().isDefaultPrevented()&&(g=!1,z=!1,t&&(t.error="")),P(),f&&(o=r.file(p.target),o&&o.volumeid&&r.isRoot(o)&&delete r.volumeExpires[o.volumeid]),r.trigger(u+"fail",i),s="object"==typeof t?t.error:t,s&&(g?r.error(s):r.debug("error",r.i18n(s))),z&&r.sync()}),!u)return z=!1,c.reject({error:"errCmdReq"});if(r.maxTargets&&p.targets&&p.targets.length>r.maxTargets)return z=!1,c.reject({error:["errMaxTargets",r.maxTargets]});if(v&&c.done(E),f){for(;a=q.pop();)a.queueAbort();if(j!==p.target)for(;a=H.pop();)a.queueAbort()}return e.inArray(u,(r.cmdsToAdd+" autosync").split(" "))!==-1&&("autosync"!==u&&(r.autoSync("stop"),c.always(function(){r.autoSync()})),r.trigger("openxhrabort")),delete F.preventFail,r.api>=2.1029&&(M?F.headers["X-elFinderReqid"]=d:Object.assign(F.data,{reqid:d})),c.syncOnFail=function(e){z=!!e},te++,c.xhr=i=r.transport.send(F).always(function(){F._xhr&&"undefined"!=typeof F._xhr.responseURL&&(i.responseURL=F._xhr.responseURL||""),--te,ne.length&&ne.shift()()}).fail(D).done(U),r.api>=2.1029&&(i._requestId=d),f||p.compare&&"info"===u?(i.queueAbort=n,q.unshift(i),p.compare&&r.bind(r.cmdsToAdd+" autosync openxhrabort",R),c.always(function(){var t=e.inArray(i,q);p.compare&&r.unbind(r.cmdsToAdd+" autosync openxhrabort",R),t!==-1&&q.splice(t,1)})):e.inArray(u,r.abortCmdsOnOpen)!==-1&&(i.queueAbort=n,H.unshift(i),c.always(function(){var t=e.inArray(i,H);t!==-1&&H.splice(t,1)})),r.bind("unload destroy",R),c.always(function(){r.unbind("unload destroy",R)}),c},N=function(){return x.type&&x.cnt&&(k&&(x.cancel=c,t.eachCancel&&(x.id=+new Date)),n=setTimeout(function(){y=setTimeout(L,1e3),r.notify(x),w=!0,c.always(function(){x.cnt=-(parseInt(x.cnt)||0),r.notify(x),w=!1})},r.notifyDelay),c.always(function(){clearTimeout(n)})),te=2&&(j!==this.root()&&d.push(this.request({data:{cmd:"parents",target:j},preventDefault:!0})),e.each(p(),function(e,t){d.push(o.request({data:{cmd:t.cmd,target:t.target},preventDefault:!0}))})),e.when.apply(e,d).fail(function(t,i){a=i&&200!=i.status,n&&e.inArray("errOpen",t)===-1?l.reject(t&&0!=i.status?t:void 0):(l.reject(t),o.parseError(t)&&o.request({data:{cmd:"open",target:o.lastDir("")||o.root(),tree:1,init:1},notify:{type:"open",cnt:1,hideCnt:!0}}))}).done(function(n){var a,r,d;if(n.cwd.compare&&s===n.cwd.compare)return l.reject();if(a={tree:[]},r=arguments.length,r>1)for(d=1;d=0}));var p=o.diff(n.files.concat(a&&a.tree?a.tree:[]),t);return p.added.push(n.cwd),o.updateCache(p),p.removed.length&&o.remove(p),p.added.length&&o.add(p),p.changed.length&&o.change(p),l.resolve(p)}).always(function(){o.syncStopper=!1,o.autoSync()}),l},this.upload=function(e){return this.transport.upload(e,this)},this.shortcut=function(t){var n,i,a,o,r;if(this.options.allowShortcuts&&t.pattern&&"function"==typeof t.callback)for(n=t.pattern.toUpperCase().split(/\s+/),o=0;o0?a:a.charCodeAt(0):a>0?a:e.ui.keyCode[a],a&&!U[i]&&(U[i]={keyCode:a,altKey:e.inArray("ALT",r)!=-1,ctrlKey:e.inArray("CTRL",r)!=-1,shiftKey:e.inArray("SHIFT",r)!=-1,type:t.type||"keydown",callback:t.callback,description:t.description,pattern:i});return this},this.shortcuts=function(){var t=[];return e.each(U,function(e,n){t.push([n.pattern,u.i18n(n.description)])}),t},this.clipboard=function(t,n){var i=function(){return e.map(P,function(e){return e.hash})};return void 0!==t&&(P.length&&this.trigger("unlockfiles",{files:i()}),R={},P=e.map(t||[],function(e){var t=I[e];return t?(R[e]=!0,{hash:e,phash:t.phash,name:t.name,mime:t.mime,read:t.read,locked:t.locked,cut:!!n}):null}),this.trigger("changeclipboard",{clipboard:P.slice(0,P.length)}),n&&this.trigger("lockfiles",{files:i()})),P.slice(0,P.length)},this.isCommandEnabled=function(e,t){var n,i,a=u.cwd().volumeid||"";return!t&&u.searchStatus.state>1&&u.selected().length&&(t=u.selected()[0]),n=!t||a&&0===t.indexOf(a)?S.disabledFlip:u.option("disabledFlip",t),i=this._commands[e],!!i&&(i.alwaysEnabled||!n[e])},this.exec=function(t,n,i,a){var o,r;return!a&&this.commandMap[t]&&"hidden"!==this.commandMap[t]&&(t=this.commandMap[t]),"open"===t&&((this.searchStatus.state||this.searchStatus.ininc)&&this.trigger("searchend",{noupdate:!0}),this.autoSync("stop")),!a&&n&&(e.isArray(n)?n.length&&(a=n[0]):a=n),o=this._commands[t]&&this.isCommandEnabled(t,a)?this._commands[t].exec(n,i):e.Deferred().reject("errUnknownCmd"),r=typeof o,"object"===r&&o.promise||(u.debug("warning",'"cmd.exec()" should be returned "$.Deferred" but cmd "'+t+'" returned "'+r+'"'),o=e.Deferred().resolve()),this.trigger("exec",{dfrd:o,cmd:t,files:n,opts:i,dstHash:a}),o},this.dialog=function(t,n){var i=e("
").append(t).appendTo(m).elfinderdialog(n,u),a=i.closest(".ui-dialog"),o=function(){!i.data("draged")&&i.is(":visible")&&i.elfinderdialog("posInit")};return a.length&&(u.bind("resize",o),a.on("remove",function(){u.unbind("resize",o)})),i},this.toast=function(t){return e('
').appendTo(this.ui.toast).elfindertoast(t||{},this)},this.getUI=function(t){return t?this.ui[t]||e():m},this.getCommand=function(e){return void 0===e?this._commands:this._commands[e]},this.resize=function(t,n){var i,a=function(){for(var e=m.outerHeight(!0)-m.innerHeight(),t=m;t.get(0)!==W.get(0)&&(t=t.parent(),e+=t.outerHeight(!0)-t.innerHeight(),t.parent().length););return e},o=!m.hasClass("ui-resizable"),r=m.data("resizeSize")||{w:0,h:0},s={};W&&W.data("resizeTm")&&clearTimeout(W.data("resizeTm")),u.options.noResizeBySelf||("string"==typeof n&&(i=n.match(/^([0-9.]+)%$/))&&(W&&W.length||(W=e(window)),W.data("marginToMyNode")||W.data("marginToMyNode",a()),W.data("fitToBaseFunc")||W.data("fitToBaseFunc",function(e){var t=W.data("resizeTm");e.preventDefault(),e.stopPropagation(),t&&cancelAnimationFrame(t),m.hasClass("elfinder-fullscreen")||u.UA.Mobile&&W.data("rotated")===u.UA.Rotated||(W.data("rotated",u.UA.Rotated),W.data("resizeTm",requestAnimationFrame(function(){u.restoreSize()})))}),"undefined"==typeof W.data("rotated")&&W.data("rotated",u.UA.Rotated),n=W.height()*(i[1]/100)-W.data("marginToMyNode"),W.off("resize."+u.namespace,W.data("fitToBaseFunc")),o&&W.on("resize."+u.namespace,W.data("fitToBaseFunc"))),m.css({width:t,height:parseInt(n)})),s.w=Math.round(m.width()),s.h=Math.round(m.height()),m.data("resizeSize",s),s.w===r.w&&s.h===r.h||(m.trigger("resize"),this.trigger("resize",{width:s.w,height:s.h}))},this.restoreSize=function(){this.resize(N,L)},this.show=function(){m.show(),this.enable().trigger("show")},this.hide=function(){this.options.enableAlways&&(T=z,z=!1),this.disable(),this.trigger("hide"),m.hide()},this.lazy=function(t,n,i){var a=function(e){var t,n=m.data("lazycnt");e?(t=!m.data("lazyrepaint")&&i.repaint,n?m.data("lazycnt",++n):m.data("lazycnt",1).addClass("elfinder-processing"),t&&m.data("lazyrepaint",!0).css("display")):n&&n>1?m.data("lazycnt",--n):(t=m.data("lazyrepaint"),m.data("lazycnt",0).removeData("lazyrepaint").removeClass("elfinder-processing"),t&&m.css("display"),u.trigger("lazydone"))},o=e.Deferred(),r=function(){o.resolve(t.call(o)),a(!1)};return n=n||0,i=i||{},a(!0),n?setTimeout(r,n):requestAnimationFrame(r),o},this.destroy=function(){m&&m[0].elfinder&&(m.hasClass("elfinder-fullscreen")&&u.toggleFullscreen(m),this.options.syncStart=!1,this.autoSync("forcestop"),this.trigger("destroy").disable(),P=[],E=[],D={},U={},e(window).off("."+y),e(document).off("."+y),u.trigger=function(){},e(K).remove(),m.off().removeData().empty().append(v.contents()).attr("class",v.attr("class")).attr("style",v.attr("style")),delete m[0].elfinder,e.each(g,function(t,n){e.each(n,function(e,t){m.on(t.type+(t.namespace?"."+t.namespace:""),t.selector,t.handler)})}))},this.autoSync=function(t){var n;if(u.options.sync>=1e3){if(r&&(clearTimeout(r),r=null,u.trigger("autosync",{action:"stop"})),"stop"===t?++X:X=Math.max(0,--X),X||"forcestop"===t||!u.options.syncStart)return;n=function(t){var i;S.syncMinMs&&(t||r)&&(t&&u.trigger("autosync",{action:"start"}),i=Math.max(u.options.sync,S.syncMinMs),r&&clearTimeout(r),r=setTimeout(function(){var t,a=!0,o=j;S.syncChkAsTs&&I[o]&&(t=I[o].ts)?u.request({data:{cmd:"info",targets:[o],compare:t,reload:1},preventDefault:!0}).done(function(e){var i;a=!0,e.compare&&(i=e.compare,i==t&&(a=!1)),a?u.sync(o).always(function(){i&&(I[o].ts=i),n()}):n()}).fail(function(t,a){var o=u.parseError(t);o&&0!=a.status?(u.error(o),Array.isArray(o)&&e.inArray("errOpen",o)!==-1&&u.request({data:{cmd:"open",target:u.lastDir("")||u.root(),tree:1,init:1},notify:{type:"open",cnt:1,hideCnt:!0}})):r=setTimeout(function(){n()},i)}):u.sync(j,!0).always(function(){n()})},i))},n(!0)}},this.insideWorkzone=function(e,t,n){var i=this.getUI("workzone").data("rectangle");return n=n||1,!(ei.left+i.width+n||ti.top+i.height+n)},this.toFront=function(t){var n=m.children(".ui-front").removeClass("elfinder-frontmost"),i=n.last();n.css("z-index",""),e(t).addClass("ui-front elfinder-frontmost").css("z-index",i.css("z-index")+1)},this.toHide=function(t,n){var i,a=e(t);!n&&a.hide(),a.hasClass("elfinder-frontmost")&&(a.removeClass("elfinder-frontmost"),i=m.children(".ui-front:visible:not(.elfinder-frontmost)").last(),i.length&&requestAnimationFrame(function(){m.children(".elfinder-frontmost:visible").length||(u.toFront(i),i.trigger("frontmost"))}))},this.getMaximizeCss=function(){return{width:"100%",height:"100%",margin:0,top:0,left:0,display:"block",position:"fixed",zIndex:Math.max(u.zIndex?u.zIndex+1:0,1e3),maxWidth:"",maxHeight:""}},function(){re&&u.UA.Fullscreen&&(u.UA.Fullscreen=!1,se&&"undefined"!=typeof se.attr("allowfullscreen")&&(u.UA.Fullscreen=!0));var t,n,i,a,o="elfinder-fullscreen",r="elfinder-fullscreen-native",s=function(){var t=0,n=0;e.each(m.children(".ui-dialog,.ui-draggable"),function(i,a){var o=e(a),r=o.position();r.top<0&&(o.css("top",t),t+=20),r.left<0&&(o.css("left",n),n+=20)})},l=function(){var i=u.storage("useFullscreen");a=u.UA.Fullscreen&&(i?i>0:"screen"===u.options.commandsOptions.fullscreen.mode)?{fullElm:function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null},exitFull:function(){return document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():void 0},toFull:function(e){return e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():!!e.msRequestFullscreen&&e.msRequestFullscreen()}}:{fullElm:function(){var e;return m.hasClass(o)?m.get(0):(e=m.find("."+o),e.length?e.get(0):null)},exitFull:function(){var i;e(window).off("resize."+y,d),void 0!==n&&e("body").css("overflow",n),n=void 0,t&&(i=t.elm,c(i),e(i).trigger("resize",{fullscreen:"off"})),e(window).trigger("resize")},toFull:function(t){return n=e("body").css("overflow")||"",e("body").css("overflow","hidden"),e(t).css(u.getMaximizeCss()).addClass(o).trigger("resize",{fullscreen:"on"}),s(),e(window).on("resize."+y,d).trigger("resize"),!0}}},c=function(n){t&&t.elm==n&&(e(n).removeClass(o+" "+r).attr("style",t.style),t=null)},d=function(t){var n;t.target===window&&(i&&cancelAnimationFrame(i),i=requestAnimationFrame(function(){(n=a.fullElm())&&e(n).trigger("resize",{fullscreen:"on"})}))};l(),e(document).on("fullscreenchange."+y+" webkitfullscreenchange."+y+" mozfullscreenchange."+y+" MSFullscreenChange."+y,function(n){if(u.UA.Fullscreen){var l=a.fullElm(),p=e(window);i&&cancelAnimationFrame(i),null===l?(p.off("resize."+y,d),t&&(l=t.elm,c(l),e(l).trigger("resize",{fullscreen:"off"}))):(e(l).addClass(o+" "+r).attr("style","width:100%; height:100%; margin:0; padding:0;").trigger("resize",{fullscreen:"on"}),p.on("resize."+y,d),s()),p.trigger("resize")}}),u.toggleFullscreen=function(n,i){var o=e(n).get(0),r=null;if(r=a.fullElm()){if(r==o){if(i===!0)return r}else if(i===!1)return r;return a.exitFull(),null}return i===!1?null:(l(),t={elm:o,style:e(o).attr("style")},a.toFull(o)!==!1?o:(t=null,null))}}(),function(){var t,n="elfinder-maximized",i=function(e){if(e.target===window&&e.data&&e.data.elm){var n=e.data.elm;t&&cancelAnimationFrame(t),t=requestAnimationFrame(function(){n.trigger("resize",{maximize:"on"})})}},a=function(t){e(window).off("resize."+y,i),e("body").css("overflow",t.data("bodyOvf")),t.removeClass(n).attr("style",t.data("orgStyle")).removeData("bodyOvf").removeData("orgStyle"),t.trigger("resize",{maximize:"off"})},o=function(t){t.data("bodyOvf",e("body").css("overflow")||"").data("orgStyle",t.attr("style")).addClass(n).css(u.getMaximizeCss()),e("body").css("overflow","hidden"),e(window).on("resize."+y,{elm:t},i),t.trigger("resize",{maximize:"on"})};u.toggleMaximize=function(t,i){var r=e(t),s=r.hasClass(n);if(s){if(i===!0)return;a(r)}else{if(i===!1)return;o(r)}}}(),Object.assign(e.ui.keyCode,{F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,DIG0:48,DIG1:49,DIG2:50,DIG3:51,DIG4:52,DIG5:53,DIG6:54,DIG7:55,DIG8:56,DIG9:57,NUM0:96,NUM1:97,NUM2:98,NUM3:99,NUM4:100,NUM5:101,NUM6:102,NUM7:103,NUM8:104,NUM9:105,CONTEXTMENU:93,DOT:190}),this.dragUpload=!1,this.xhrUpload=("undefined"!=typeof XMLHttpRequestUpload||"undefined"!=typeof XMLHttpRequestEventTarget)&&"undefined"!=typeof File&&"undefined"!=typeof FormData,this.transport={},"object"==typeof this.options.transport&&(this.transport=this.options.transport,"function"==typeof this.transport.init&&this.transport.init(this)),"function"!=typeof this.transport.send&&(this.transport.send=function(t){return u.UA.IE||(t._xhr=new XMLHttpRequest,t.xhr=function(){return t.progress&&t._xhr.addEventListener("progress",t.progress),t._xhr}),e.ajax(t)}),"iframe"==this.transport.upload?this.transport.upload=e.proxy(this.uploads.iframe,this):"function"==typeof this.transport.upload?this.dragUpload=!!this.options.dragUploadAllow:this.xhrUpload&&this.options.dragUploadAllow?(this.transport.upload=e.proxy(this.uploads.xhr,this),this.dragUpload=!0):this.transport.upload=e.proxy(this.uploads.iframe,this),this.decodeRawString=function(e){var t=function(e){var t,n,i;for(t=0,n=e.length,i=[];t=55296&&a<=56319?o.push((1023&a)+64<<10|1023&e[++n]):o.push(a);return o},i=function(e){var t,n,i,a,o=String.fromCharCode;for(t=0,n=e.length,a="";i=e[t],t=194?o((31&i)<<6|63&e[++t]):i<=239&&i>=224?o((15&i)<<12|(63&e[++t])<<6|63&e[++t]):i<=247&&i>=240?o(55296|((7&i)<<8|(63&e[++t])<<2|e[++t]>>>4&3)-64,56320|(15&e[t++])<<6|63&e[t]):o(65533);return a};return i(n(e))},this.getContents=function(t,n,i){var a,o,r=this,s=e.Deferred(),l=n||"arraybuffer";return s.fail(function(){o&&"pending"===o.state()&&o.reject()}),a=r.openUrl(t),r.isSameOrigin(a)||(a=r.openUrl(t,!0)),o=r.request(Object.assign({data:{cmd:"get"},options:{url:a,type:"get",cache:!0,dataType:"binary",responseType:l,processData:!1},notify:{type:"file",cnt:1,hideCnt:!0},cancel:!0},i||{})).fail(function(){s.reject()}).done(function(e){s.resolve(e)}),s},this.getBinaryByUrl=function(t,n,i){var a,o=this,r=e.Deferred();return r.fail(function(){a&&"pending"===a.state()&&a.reject()}),a=o.request(Object.assign({data:{cmd:"get"},options:Object.assign({type:"get",cache:!0,dataType:"binary",responseType:"blob",processData:!1},t)},i||{})).fail(function(){r.reject()}).done(function(e){n&&n(e),r.resolve(e)}),r},this.getMimetype=function(e,t){var n,i,a=t;return i=(e+"").match(/\.([^.]+)$/),i&&(n=i[1])&&(o||(o=u.arrayFlip(u.mimeTypes)),(a=o[n.toLowerCase()])||(a=t)),a},u.hashCheckers=[],function(t){var n={};window.Worker&&window.ArrayBuffer&&(t.options.cdns.sparkmd5&&(n.SparkMD5=!0,t.hashCheckers.push("md5")),t.options.cdns.jssha&&(n.jsSHA=!0,t.hashCheckers=t.hashCheckers.concat(["sha1","sha224","sha256","sha384","sha512","sha3-224","sha3-256","sha3-384","sha3-512","shake128","shake256"]))),t.getContentsHashes=function(i,a,o,r){var s,l=e.Deferred(),c=t.arrayFlip(a||["md5"],!0),d=[],p={},u=o?o:{shake128len:256,shake256len:512};return l.fail(function(){s&&s.reject()}),Object.keys(n).length?s=t.getContents(i,"arraybuffer",r).done(function(a){c.md5&&n.SparkMD5&&d.push(function(){var o=e.Deferred();try{var r=t.getWorker();o.fail(function(){r&&r.terminate()}),r.onmessage=function(e){if(r&&r.terminate(),e.data.hash){var n;p.md5=e.data.hash,(n=t.file(i))&&(n.md5=p.md5)}else e.data.error&&(p.md5=e.data.error);l.notify(p),o.resolve()},r.onerror=function(e){o.reject()},r.postMessage({scripts:[t.options.cdns.sparkmd5,t.getWorkerUrl("calcfilehash.js")],data:{type:"md5",bin:a}}),l.fail(function(){o.reject()})}catch(s){o.reject(),delete n.SparkMD5}return o}()),n.jsSHA&&e.each(["1","224","256","384","512","3-224","3-256","3-384","3-512","ke128","ke256"],function(o,r){c["sha"+r]&&d.push(function(){var o=e.Deferred();try{var s=t.getWorker();o.fail(function(){s&&s.terminate()}),s.onmessage=function(e){if(s&&s.terminate(),e.data.hash){var n;p["sha"+r]=e.data.hash,(n=t.file(i))&&(n["sha"+r]=p["sha"+r])}else e.data.error&&(p["sha"+r]=e.data.error);l.notify(p),o.resolve()},s.onerror=function(e){o.reject()},s.postMessage({scripts:[t.options.cdns.jssha,t.getWorkerUrl("calcfilehash.js")],data:{type:r,bin:a,hashOpts:u}}),l.fail(function(){o.reject()})}catch(c){o.reject(),delete n.jsSHA}return o}())}),d.length?e.when.apply(null,d).always(function(){l.resolve(p)}):l.reject()}).fail(function(){l.reject()}):l.reject(),l}}(this),this.parseError=function(t){var n=t;return e.isPlainObject(n)&&(n=n.error),n},this.error=function(){var e,t=arguments[0],n=arguments[1]||null;return 1==arguments.length&&"function"==typeof t?u.bind("error",t):(e=this.parseError(t),e!==!0&&e?u.trigger("error",{error:e,opts:n}):this)},e.each(A,function(t,n){u[n]=function(){var t=arguments[0];return 1==arguments.length&&"function"==typeof t?u.bind(n,t):u.trigger(n,e.isPlainObject(t)?t:{})}}),this.enable(function(){!z&&u.api&&u.visible()&&u.ui.overlay.is(":hidden")&&!m.children(".elfinder-dialog."+u.res("class","editing")+":visible").length&&(z=!0,document.activeElement&&document.activeElement.blur(),m.removeClass("elfinder-disabled"))}).disable(function(){T=z,z=!1,m.addClass("elfinder-disabled")}).open(function(){E=[]}).select(function(t){var n=0,i=[];E=e.grep(t.data.selected||t.data.value||[],function(e){return i.length||u.maxTargets&&++n>u.maxTargets?(i.push(e),!1):!!I[e]}),i.length&&(u.trigger("unselectfiles",{files:i,inselect:!0}),u.toast({mode:"warning",msg:u.i18n(["errMaxTargets",u.maxTargets])}))}).error(function(t){var n,i,a={cssClass:"elfinder-dialog-error",title:u.i18n("error"),resizable:!1,destroyOnClose:!0,buttons:{}},o=u.getUI(),r=o.children(".elfinder-dialog-error").length;r
'+u.i18n(t.data.error),a)):(n=o.children(".elfinder-dialog-error:last").children(".ui-dialog-content:first"),i=n.children(".elfinder-error-counter"),i.length?i.data("cnt",parseInt(i.data("cnt"))+1).html(u.i18n(["moreErrors",i.data("cnt")])):(i=e(''+u.i18n(["moreErrors",1])+"").data("cnt",1),n.append("
",i)))}).bind("tmb",function(t){e.each(t.data.images||[],function(e,t){I[e]&&(I[e].tmb=t)})}).bind("searchstart",function(e){Object.assign(u.searchStatus,e.data),u.searchStatus.state=1}).bind("search",function(e){u.searchStatus.state=2}).bind("searchend",function(){u.searchStatus.state=0,u.searchStatus.ininc=!1,u.searchStatus.mixed=!1}).bind("canMakeEmptyFile",function(t){var n=t.data,i={};n&&Array.isArray(n.mimes)&&(n.unshift||(i=u.mimesCanMakeEmpty),e.each(n.mimes,function(){i[this]||(i[this]=u.mimeTypes[this])}),n.unshift&&(u.mimesCanMakeEmpty=Object.assign(i,u.mimesCanMakeEmpty)))}).bind("themechange",function(){requestAnimationFrame(function(){u.trigger("uiresize")})}),!0===this.options.sound&&this.bind("playsound",function(t){var n=K.canPlayType&&K.canPlayType('audio/wav; codecs="1"'),i=t.data&&t.data.soundFile;n&&i&&""!=n&&"no"!=n&&e(K).html('')[0].play()}),e.each(this.options.handlers,function(e,t){u.bind(e,t)}),this.history=new this.history(this),this.roots={},this.leafRoots={},this.volumeExpires={},this._commands={},Array.isArray(this.options.commands)||(this.options.commands=[]),e.inArray("*",this.options.commands)!==-1&&(this.options.commands=Object.keys(this.commands)),this.commandMap={},this.volOptions={},this.hasVolOptions=!1,this.trashes={},this.optionsByHashes={},this.uiAutoHide=[],this.one("open",function(){u.uiAutoHide.length&&setTimeout(function(){u.trigger("uiautohide")},500)}),this.bind("uiautohide",function(){u.uiAutoHide.length&&u.uiAutoHide.shift()()}),this.options.width&&(N=this.options.width),this.options.height&&(L=this.options.height),this.options.heightBase&&(W=e(this.options.heightBase)),B=this.options.soundPath?this.options.soundPath.replace(/\/+$/,"")+"/":this.baseUrl+B,this.options.parrotHeaders&&Array.isArray(this.options.parrotHeaders)&&this.options.parrotHeaders.length?(this.parrotHeaders=this.options.parrotHeaders,e.each(this.parrotHeaders,function(e,t){var n=u.sessionStorage("core-ph:"+t);n&&(u.customHeaders[t]=n)})):this.parrotHeaders=[],u.one("opendone",function(){var t;e(document).on("click."+y,function(t){z&&!u.options.enableAlways&&!e(t.target).closest(m).length&&u.disable()}).on(x+" "+k+" "+C+" "+w,ae),u.options.useBrowserHistory&&e(window).on("popstate."+y,function(t){var n,i,a=t.originalEvent.state||{},o=!!a.thash,r=m.find(".elfinder-frontmost:visible"),s=m.find(".elfinder-navbar-dir,.elfinder-cwd-filename").find("input,textarea");o||(a={thash:u.cwd().hash},e("html,body").animate({scrollTop:m.offset().top})),r.length||s.length?(history.pushState(a,null,location.pathname+location.search+"#elf_"+a.thash),r.length?r.hasClass(u.res("class","preventback"))||(r.hasClass("elfinder-contextmenu")?e(document).trigger(e.Event("keydown",{keyCode:e.ui.keyCode.ESCAPE,ctrlKey:!1,shiftKey:!1,altKey:!1,metaKey:!1})):r.hasClass("elfinder-dialog")?r.elfinderdialog("close"):r.trigger("close")):s.trigger(e.Event("keydown",{keyCode:e.ui.keyCode.ESCAPE,ctrlKey:!1,shiftKey:!1,altKey:!1,metaKey:!1}))):o?!e.isEmptyObject(u.files())&&u.request({data:{cmd:"open",target:a.thash,onhistory:1},notify:{type:"open",cnt:1,hideCnt:!0},syncOnFail:!0}):(n=function(){i.trigger("click")},u.one("open",n,!0),i=u.toast({msg:u.i18n("pressAgainToExit"),onHidden:function(){u.unbind("open",n),history.pushState(a,null,location.pathname+location.search+"#elf_"+a.thash)}}))}),e(window).on("resize."+y,function(e){e.target===this&&(t&&cancelAnimationFrame(t),t=requestAnimationFrame(function(){var e=m.data("resizeSize")||{w:0,h:0},t={w:Math.round(m.width()),h:Math.round(m.height())};m.data("resizeSize",t),t.w===e.w&&t.h===e.h||(m.trigger("resize"),u.trigger("resize",{width:t.w,height:t.h}))}))}).on("beforeunload."+y,function(t){var n,i;if(!u.pauseUnloadCheck()){if(m.is(":visible")&&(u.ui.notify.children().length&&e.inArray("hasNotifyDialog",u.options.windowCloseConfirm)!==-1?n=u.i18n("ntfsmth"):m.find("."+u.res("class","editing")).length&&e.inArray("editingFile",u.options.windowCloseConfirm)!==-1?n=u.i18n("editingFile"):(i=Object.keys(u.selected()).length)&&e.inArray("hasSelectedItem",u.options.windowCloseConfirm)!==-1?n=u.i18n("hasSelected",""+i):(i=Object.keys(u.clipboard()).length)&&e.inArray("hasClipboardData",u.options.windowCloseConfirm)!==-1&&(n=u.i18n("hasClipboard",""+i)),n))return t.returnValue=n,n;u.trigger("unload")}}),e(window).on("message."+y,function(e){var t,n,i=e.originalEvent||null;if(i&&(0===u.convAbsUrl(u.options.url).indexOf(i.origin)||0===u.convAbsUrl(u.uploadURL).indexOf(i.origin)))try{try{if("string"!=typeof i.data)return;if(t=JSON.parse(i.data),"io.studio-42.github"!==t.type)return;n=t.data||null}catch(a){return}n&&(n.error?(t.bind&&u.trigger(t.bind+"fail",n),u.error(n.error)):(n.warning&&u.error(n.warning),u.updateCache(n),n.removed&&n.removed.length&&u.remove(n),n.added&&n.added.length&&u.add(n),n.changed&&n.changed.length&&u.change(n),t.bind&&(u.trigger(t.bind,n),u.trigger(t.bind+"done")),n.sync&&u.sync()))}catch(e){u.sync()}}),u.options.enableAlways?(e(window).on("focus."+y,function(e){e.target===this&&u.enable()}),re&&e(window.top).on("focus."+y,function(){!u.enable()||se&&!se.is(":visible")||requestAnimationFrame(function(){e(window).trigger("focus")})})):re&&e(window).on("blur."+y,function(e){z&&e.target===this&&u.disable()}),re&&m.on("click",function(t){e(window).trigger("focus")}),u.options.enableByMouseOver&&m.on("mouseenter touchstart",function(t){re&&e(window).trigger("focus"),!u.enabled()&&u.enable()}),e(window).on("visibilitychange."+y,function(e){var t=document.hidden||document.webkitHidden||document.msHidden;u.options.syncStart&&u.autoSync(t?"stop":void 0)})}),m[0].elfinder=this,h.push(function(){var t=u.lang?u.lang:"en",n=u.i18nBaseUrl+"elfinder."+t+".js",i=e.Deferred().done(function(){u.i18[t]&&(u.lang=t),u.trigger("i18load"),c="en"===u.lang?u.i18.en:e.extend(!0,{},u.i18.en,u.i18[u.lang])});return u.i18[t]?i.resolve():(u.lang="en",u.hasRequire?require([n],function(){i.resolve()},function(){i.resolve()}):u.loadScript([n],function(){i.resolve()},{loadType:"tag",error:function(){i.resolve()}})),i}()),d=function(){var t;return u.messages=c.messages,e.fn.selectable&&e.fn.draggable&&e.fn.droppable&&e.fn.resizable&&e.fn.button&&e.fn.slider?m.length?u.options.url?(t=Object.assign({name:u.i18n("name"),perm:u.i18n("perms"),date:u.i18n("modify"),size:u.i18n("size"),kind:u.i18n("kind"),modestr:u.i18n("mode"),modeoct:u.i18n("mode"),modeboth:u.i18n("mode")},u.options.uiOptions.cwd.listView.columnsCustomName),u.getColumnName=function(e){var n=t[e]||u.i18n(e);return"function"==typeof n?n():n},u.direction=c.direction,u.dateFormat=u.options.dateFormat||c.dateFormat,u.fancyFormat=u.options.fancyDateFormat||c.fancyDateFormat,u.nonameDateFormat=(u.options.nonameDateFormat||c.nonameDateFormat).replace(/[\/\\]/g,"_"),u.cssClass="ui-helper-reset ui-helper-clearfix ui-widget ui-widget-content ui-corner-all elfinder elfinder-"+("rtl"==u.direction?"rtl":"ltr")+(u.UA.Touch?" elfinder-touch"+(u.options.resizable?" touch-punch":""):"")+(u.UA.Mobile?" elfinder-mobile":"")+(u.UA.iOS?" elfinder-ios":"")+" "+u.options.cssClass,m.addClass(u.cssClass).on(w,function(){!z&&u.enable()}),function(){var t,n,i,a,o,r=x+"draggable keyup."+y+"draggable";u.draggable={appendTo:m,addClasses:!1,distance:4,revert:!0,refreshPositions:!1,cursor:"crosshair",cursorAt:{left:50,top:47},scroll:!1,start:function(r,s){var l,c,d=s.helper,p=e.grep(d.data("files")||[],function(e){return!!e&&(R[e]=!0,!0)}),h=!1;for(o=m.attr("style"),m.width(m.width()).height(m.height()),t="ltr"===u.direction,n=u.getUI("workzone").data("rectangle"),i=n.top+n.height,a=i-u.getUI("navdock").outerHeight(!0),u.draggingUiHelper=d,l=p.length;l--;)if(c=p[l],I[c].locked){h=!0,d.data("locked",!0);break}!h&&u.trigger("lockfiles",{files:p}),d.data("autoScrTm",setInterval(function(){d.data("autoScr")&&u.autoScroll[d.data("autoScr")](d.data("autoScrVal"))},50))},drag:function(o,r){var s,l,c,d=r.helper;((l=n.top>o.pageY)||ao.pageX?(t?"navbar":"cwd")+(l?"Up":"Down"):(t?"cwd":"navbar")+(l?"Up":"Down"),l||("cwd"===s.substr(0,3)?i0?(e(this).draggable("option",{refreshPositions:!0,elfRefresh:!0}),d.data("refreshPositions",-1)):(e(this).draggable("option",{refreshPositions:!1,elfRefresh:!1}),d.data("refreshPositions",null)))},stop:function(t,n){var i,a=n.helper;e(document).off(r),e(this).elfUiWidgetInstance("draggable")&&e(this).draggable("option",{refreshPositions:!1}),u.draggingUiHelper=null,u.trigger("focus").trigger("dragstop"),a.data("droped")||(i=e.grep(a.data("files")||[],function(e){return!!e}),u.trigger("unlockfiles",{files:i}),u.trigger("selectfiles",{files:u.selected()})),u.enable(),m.attr("style",o),a.data("autoScrTm")&&clearInterval(a.data("autoScrTm"))},helper:function(t,n){var i,a,o,s=this.id?e(this):e(this).parents("[id]:first"),l=e('
'),c=function(t){var n,i=t.mime,a=u.tmb(t);return n='
',a?n=e(n).addClass(a.className).css("background-image","url('"+a.url+"')").get(0).outerHTML:t.icon&&(n=e(n).css(u.getIconStyle(t,!0)).get(0).outerHTML),t.csscls&&(n='
'+n+"
"),n};return u.draggingUiHelper&&u.draggingUiHelper.stop(!0,!0),u.trigger("dragstart",{target:s[0],originalEvent:t},!0),i=s.hasClass(u.res("class","cwdfile"))?u.selected():[u.navId2Hash(s.attr("id"))],l.append(c(I[i[0]])).data("files",i).data("locked",!1).data("droped",!1).data("namespace",y).data("dropover",0),(a=i.length)>1&&l.append(c(I[i[a-1]])+''+a+""),e(document).on(r,function(e){if(u._commands.copy){var t=e.shiftKey||e.ctrlKey||e.metaKey;o!==t&&(o=t,l.is(":visible")&&l.data("dropover")&&!l.data("droped")&&(l.toggleClass("elfinder-drag-helper-plus",!!l.data("locked")||o),u.trigger(o?"unlockfiles":"lockfiles",{files:i,helper:l})))}}),l}}}(),u.commands.getfile&&("function"==typeof u.options.getFileCallback?(u.bind("dblclick",function(e){e.preventDefault(),u.exec("getfile").fail(function(){u.exec("open",e.data&&e.data.file?[e.data.file]:void 0)})}),u.shortcut({pattern:"enter",description:u.i18n("cmdgetfile"),callback:function(){u.exec("getfile").fail(function(){u.exec("mac"==u.OS?"rename":"open")})}}).shortcut({pattern:"ctrl+enter",description:u.i18n("mac"==u.OS?"cmdrename":"cmdopen"),callback:function(){u.exec("mac"==u.OS?"rename":"open")}})):u.options.getFileCallback=null),e.each(u.commands,function(t,n){var i,a,o=Object.assign({},n.prototype);if("function"==typeof n&&!u._commands[t]&&(n.prototype.forceLoad||e.inArray(t,u.options.commands)!==-1)){if(i=n.prototype.extendsCmd||""){if("function"!=typeof u.commands[i])return!0;n.prototype=Object.assign({},_,new u.commands[i],n.prototype)}else n.prototype=Object.assign({},_,n.prototype);u._commands[t]=new n,n.prototype=o,a=u.options.commandsOptions[t]||{},i&&u.options.commandsOptions[i]&&(a=e.extend(!0,{},u.options.commandsOptions[i],a)),u._commands[t].setup(t,a),u._commands[t].linkedCmds.length&&e.each(u._commands[t].linkedCmds,function(e,t){var n=u.commands[t];"function"!=typeof n||u._commands[t]||(n.prototype=_,u._commands[t]=new n,u._commands[t].setup(t,u.options.commandsOptions[t]||{}))})}}),u.ui={workzone:e("
").appendTo(m).elfinderworkzone(u),navbar:e("
").appendTo(m).elfindernavbar(u,u.options.uiOptions.navbar||{}),navdock:e("
").appendTo(m).elfindernavdock(u,u.options.uiOptions.navdock||{}),contextmenu:e("
").appendTo(m).elfindercontextmenu(u),overlay:e("
").appendTo(m).elfinderoverlay({show:function(){u.disable()},hide:function(){T&&u.enable()}}),cwd:e("
").appendTo(m).elfindercwd(u,u.options.uiOptions.cwd||{}),notify:u.dialog("",{cssClass:"elfinder-dialog-notify"+(u.options.notifyDialog.canClose?"":" elfinder-titlebar-button-hide"),position:u.options.notifyDialog.position,absolute:!0,resizable:!1,autoOpen:!1,allowMinimize:!0,closeOnEscape:!!u.options.notifyDialog.canClose,title:" ",width:u.options.notifyDialog.width?parseInt(u.options.notifyDialog.width):null,minHeight:null,minimize:function(){u.ui.notify.trigger("minimize")}}),statusbar:e('
').hide().appendTo(m),toast:e('
').appendTo(m),bottomtray:e('
').appendTo(m),progressbar:e('
').appendTo(m)},u.trigger("uiready"),e.each(u.options.ui||[],function(t,n){var i="elfinder"+n,a=u.options.uiOptions[n]||{};!u.ui[n]&&e.fn[i]&&(u.ui[n]=e("<"+(a.tag||"div")+"/>").appendTo(m),u.ui[n][i](u,a))}),u.ui.progressbar.appendTo(u.ui.workzone),u.ui.notify.prev(".ui-dialog-titlebar").append('
'),u.resize(N,L),u.options.resizable&&(m.resizable({resize:function(e,t){u.resize(t.size.width,t.size.height)},handles:"se",minWidth:300,minHeight:200}),u.UA.Touch&&m.addClass("touch-punch")),function(){var e=u.getUI("navbar"),t=u.getUI("cwd").parent();u.autoScroll={navbarUp:function(t){e.scrollTop(Math.max(0,e.scrollTop()-t))},navbarDown:function(t){e.scrollTop(e.scrollTop()+t)},cwdUp:function(e){t.scrollTop(Math.max(0,t.scrollTop()-e))},cwdDown:function(e){t.scrollTop(t.scrollTop()+e)}}}(),u.UA.Touch&&!function(){var e,t,n,i,a,o,r,s,l,c=u.getUI("navbar"),d=u.getUI("toolbar"),p="touchmove.stopscroll",h=function(e){ +var n=e.originalEvent.touches||[{}],i=n[0].pageY||null;(!t||i1||("touchstart"===s.type?(n=m.offset(),i=m.width(),c&&(e=!1,c.is(":hidden")?(l||(l=Math.max(50,i/10)),(A?z-n.left:i+n.left-z)n.left+i-o,y?(l=Math.max(50,i/10),e=z):e=!1)),d&&(t=!1,s.originalEvent._preventSwipeY||(r=d.height(),a=n.top,T-a<(d.is(":hidden")?v:r+30)&&(t=T,m.on(p,d.is(":hidden")?f:h))))):(c&&e!==!1&&(b=(A?e>z:e.6*o||w>("navhide"===b?o/3:45)&&("navshow"===b||(A?zn.left+i-20)))&&(u.getUI("navbar").trigger(b,{handleW:l}),e=!1)),d&&t!==!1&&(x=d.offset().top,Math.abs(t-T)>Math.min(45,r/3)&&(k=t>T?"slideUp":"slideDown",("slideDown"===k||x+20>T)&&(d.is("slideDown"===k?":hidden":":visible")&&d.stop(!0,!0).trigger("toggle",{duration:100,handleH:v}),t=!1)))))})}(),u.dragUpload&&!function(){var t,n,i=function(t){return"TEXTAREA"!==t.target.nodeName&&"INPUT"!==t.target.nodeName&&0===e(t.target).closest("div.ui-dialog-content").length},a="native-drag-enter",o="native-drag-disable",r="class",s=u.res(r,"navdir"),l=(u.res(r,"droppable"),u.res(r,"adroppable"),u.res(r,"navarrow"),u.res(r,"adroppable")),c=u.getUI("workzone"),d="ltr"===u.direction,p=function(){n&&cancelAnimationFrame(n),n=null};m.on("dragenter",function(e){p(),i(e)&&(e.preventDefault(),e.stopPropagation(),t=c.data("rectangle"))}).on("dragleave",function(e){p(),i(e)&&(e.preventDefault(),e.stopPropagation())}).on("dragover",function(e){var a;i(e)?(e.preventDefault(),e.stopPropagation(),e.originalEvent.dataTransfer.dropEffect="none",n||(n=requestAnimationFrame(function(){var i,o=t.top+t.height,r=o-u.getUI("navdock").outerHeight(!0);((a=e.pageYr)&&(i=t.cwdEdge>e.pageX?(d?"navbar":"cwd")+(a?"Up":"Down"):(d?"cwd":"navbar")+(a?"Up":"Down"),a||"cwd"===i.substr(0,3)&&(o=11,IE:document.uniqueID,Firefox:window.sidebar,Opera:window.opera,Webkit:e,Chrome:t,Edge:!(!t||!window.msCredentials),Safari:e&&!window.chrome,Mobile:"undefined"!=typeof window.orientation,Touch:"undefined"!=typeof window.ontouchstart,iOS:navigator.platform.match(/^iP(?:[ao]d|hone)/),Mac:navigator.platform.match(/^Mac/),Fullscreen:"undefined"!=typeof(document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen),Angle:0,Rotated:!1,CSS:function(){var e,t=document.createElement("a").style,n=document.createElement("p").style;return e="position:sticky;position:-webkit-sticky;",e+="width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:max-content;",t.cssText=e,{positionSticky:t.position.indexOf("sticky")!==-1,widthMaxContent:t.width.indexOf("max-content")!==-1,flex:"undefined"!=typeof n.flex}}()};return n}(),cookieEnabled:window.navigator.cookieEnabled,hasRequire:"function"==typeof define&&define.amd,currentReqCmd:"",keyState:{},i18:{en:{translator:"",language:"English",direction:"ltr",dateFormat:"d.m.Y H:i",fancyDateFormat:"$1 H:i",nonameDateFormat:"ymd-His",messages:{}},months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["msJan","msFeb","msMar","msApr","msMay","msJun","msJul","msAug","msSep","msOct","msNov","msDec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},kinds:{unknown:"Unknown",directory:"Folder",group:"Selects",symlink:"Alias","symlink-broken":"AliasBroken","application/x-empty":"TextPlain","application/postscript":"Postscript","application/vnd.ms-office":"MsOffice","application/msword":"MsWord","application/vnd.ms-word":"MsWord","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"MsWord","application/vnd.ms-word.document.macroEnabled.12":"MsWord","application/vnd.openxmlformats-officedocument.wordprocessingml.template":"MsWord","application/vnd.ms-word.template.macroEnabled.12":"MsWord","application/vnd.ms-excel":"MsExcel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"MsExcel","application/vnd.ms-excel.sheet.macroEnabled.12":"MsExcel","application/vnd.openxmlformats-officedocument.spreadsheetml.template":"MsExcel","application/vnd.ms-excel.template.macroEnabled.12":"MsExcel","application/vnd.ms-excel.sheet.binary.macroEnabled.12":"MsExcel","application/vnd.ms-excel.addin.macroEnabled.12":"MsExcel","application/vnd.ms-powerpoint":"MsPP","application/vnd.openxmlformats-officedocument.presentationml.presentation":"MsPP","application/vnd.ms-powerpoint.presentation.macroEnabled.12":"MsPP","application/vnd.openxmlformats-officedocument.presentationml.slideshow":"MsPP","application/vnd.ms-powerpoint.slideshow.macroEnabled.12":"MsPP","application/vnd.openxmlformats-officedocument.presentationml.template":"MsPP","application/vnd.ms-powerpoint.template.macroEnabled.12":"MsPP","application/vnd.ms-powerpoint.addin.macroEnabled.12":"MsPP","application/vnd.openxmlformats-officedocument.presentationml.slide":"MsPP","application/vnd.ms-powerpoint.slide.macroEnabled.12":"MsPP","application/pdf":"PDF","application/xml":"XML","application/vnd.oasis.opendocument.text":"OO","application/vnd.oasis.opendocument.text-template":"OO","application/vnd.oasis.opendocument.text-web":"OO","application/vnd.oasis.opendocument.text-master":"OO","application/vnd.oasis.opendocument.graphics":"OO","application/vnd.oasis.opendocument.graphics-template":"OO","application/vnd.oasis.opendocument.presentation":"OO","application/vnd.oasis.opendocument.presentation-template":"OO","application/vnd.oasis.opendocument.spreadsheet":"OO","application/vnd.oasis.opendocument.spreadsheet-template":"OO","application/vnd.oasis.opendocument.chart":"OO","application/vnd.oasis.opendocument.formula":"OO","application/vnd.oasis.opendocument.database":"OO","application/vnd.oasis.opendocument.image":"OO","application/vnd.openofficeorg.extension":"OO","application/x-shockwave-flash":"AppFlash","application/flash-video":"Flash video","application/x-bittorrent":"Torrent","application/javascript":"JS","application/rtf":"RTF","application/rtfd":"RTF","application/x-font-ttf":"TTF","application/x-font-otf":"OTF","application/x-rpm":"RPM","application/x-web-config":"TextPlain","application/xhtml+xml":"HTML","application/docbook+xml":"DOCBOOK","application/x-awk":"AWK","application/x-gzip":"GZIP","application/x-bzip2":"BZIP","application/x-xz":"XZ","application/zip":"ZIP","application/x-zip":"ZIP","application/x-rar":"RAR","application/x-tar":"TAR","application/x-7z-compressed":"7z","application/x-jar":"JAR","text/plain":"TextPlain","text/x-php":"PHP","text/html":"HTML","text/javascript":"JS","text/css":"CSS","text/rtf":"RTF","text/rtfd":"RTF","text/x-c":"C","text/x-csrc":"C","text/x-chdr":"CHeader","text/x-c++":"CPP","text/x-c++src":"CPP","text/x-c++hdr":"CPPHeader","text/x-shellscript":"Shell","application/x-csh":"Shell","text/x-python":"Python","text/x-java":"Java","text/x-java-source":"Java","text/x-ruby":"Ruby","text/x-perl":"Perl","text/x-sql":"SQL","text/xml":"XML","text/x-comma-separated-values":"CSV","text/x-markdown":"Markdown","image/x-ms-bmp":"BMP","image/jpeg":"JPEG","image/gif":"GIF","image/png":"PNG","image/tiff":"TIFF","image/x-targa":"TGA","image/vnd.adobe.photoshop":"PSD","image/xbm":"XBITMAP","image/pxm":"PXM","image/webp":"WEBP","application/vnd.ms-fontobject":"EOT","font/sfnt":"SFNT","application/font-sfnt":"SFNT","font/ttf":"TTF","font/opentype":"OTF","font/otf":"OTF","application/x-font-opentype":"OTF","font/woff":"WOFF","application/font-woff":"WOFF","font/woff2":"WOFF2","application/font-woff2":"WOFF2","audio/mpeg":"AudioMPEG","audio/midi":"AudioMIDI","audio/ogg":"AudioOGG","audio/mp4":"AudioMPEG4","audio/x-m4a":"AudioMPEG4","audio/wav":"AudioWAV","audio/x-mp3-playlist":"AudioPlaylist","video/x-dv":"VideoDV","video/mp4":"VideoMPEG4","video/mpeg":"VideoMPEG","video/x-msvideo":"VideoAVI","video/quicktime":"VideoMOV","video/x-ms-wmv":"VideoWM","video/x-flv":"VideoFlash","video/x-matroska":"VideoMKV","video/ogg":"VideoOGG"},mimeTypes:{},rules:{defaults:function(e){return!(!e||e.added&&!Array.isArray(e.added)||e.removed&&!Array.isArray(e.removed)||e.changed&&!Array.isArray(e.changed))},open:function(t){return t&&t.cwd&&t.files&&e.isPlainObject(t.cwd)&&Array.isArray(t.files)},tree:function(e){return e&&e.tree&&Array.isArray(e.tree)},parents:function(e){return e&&e.tree&&Array.isArray(e.tree)},tmb:function(t){return t&&t.images&&(e.isPlainObject(t.images)||Array.isArray(t.images))},upload:function(t){return t&&(e.isPlainObject(t.added)||Array.isArray(t.added))},search:function(e){return e&&e.files&&Array.isArray(e.files)}},commands:{},cmdsToAdd:"archive duplicate extract mkdir mkfile paste rm upload",parseUploadData:function(t){var n,i=this;if(!e.trim(t))return{error:["errResponse","errDataEmpty"]};try{n=JSON.parse(t)}catch(a){return{error:["errResponse","errDataNotJSON"]}}return n=i.normalize(n),i.validResponse("upload",n)?(n.removed=e.merge(n.removed||[],e.map(n.added||[],function(e){return i.file(e.hash)?e.hash:null})),n):{error:n.norError||["errResponse"]}},iframeCnt:0,uploads:{xhrUploading:!1,failSyncTm:null,chunkfailReq:{},checkExists:function(t,n,i,a){var o,r=e.Deferred(),s=[],l={},c=function(){for(var e=t.length;--e>-1;)t[e]._remove=!0},d=function(){r.resolve(s,l)},p=function(){var r=[],p=[],u=n!==i.cwd().hash?i.path(n,!0)+i.option("separator",n):"",h=function(e){var n=e==p.length-1,o={cssClass:"elfinder-confirm-upload",title:i.i18n("cmdupload"),text:["errExists",u+p[e].name,"confirmRepl"],all:!n,accept:{label:"btnYes",callback:function(t){n||t?d():h(++e)}},reject:{label:"btnNo",callback:function(i){var a;if(i)for(a=p.length;e0&&delete o.reject,i.confirm(o)};return i.file(n).read?(o=e.map(t,function(e,t){return!e.name||i.UA.iOS&&"image.jpg"===e.name?null:{i:t,name:e.name}}),void i.request({data:{cmd:"ls",target:n,intersect:e.map(o,function(e){return e.name})},notify:{type:"preupload",cnt:1,hideCnt:!0},preventDefault:!0}).done(function(t){var a,s;t&&(t.error?c():i.options.overwriteUploadConfirm&&i.option("uploadOverwrite",n)&&t.list&&(Array.isArray(t.list)?r=t.list||[]:(a=[],r=e.map(t.list,function(e){return"string"==typeof e?e:(a=a.concat(e),!1)}),a.length&&(r=r.concat(a)),l=t.list),p=e.grep(o,function(t){return e.inArray(t.name,r)!==-1}),p.length&&r.length&&n==i.cwd().hash&&(s=e.map(i.files(n),function(e){return e.name}),e.grep(r,function(t){return e.inArray(t,s)===-1}).length&&i.sync()))),p.length>0?h(0):d()}).fail(function(e){c(),d(),e&&i.error(e)})):void d()};return i.api>=2.1&&"object"==typeof t[0]?p():d(),r},checkFile:function(t,n,i){if(t.checked||"files"==t.type)return t.files;if("data"==t.type){var a,o,r=e.Deferred(),s=e.Deferred(),l=[],c=[],d=0,p=[],u=!1,h=function(e){return Array.prototype.slice.call(e||[],0)},f=function(e){var t,i,a=n.options.folderUploadExclude[n.OS]||null,o=e.length,r=function(){--d<1&&"pending"===s.state()&&s.resolve()},m=function(e){a&&e.name.match(a)||(c.push(t.fullPath||""),l.push(e)),r()},i=function(e){var t=[],n=function(){e.readEntries(function(e){if(u||!e.length){for(var i=0;i=2.1&&(d++,p.push(t.fullPath),i(t.createReader())))}return r(),s};return a=e.map(t.files.items,function(e){return"file"===e.kind?(e.getAsEntry?e.getAsEntry():e.webkitGetAsEntry())||e.getAsFile():null}),e.each(a,function(e,t){if(t.isDirectory)return o=!0,!1}),a.length>0?(n.uploads.checkExists(a,i,n,o).done(function(o,s){var d=[];n.options.overwriteUploadConfirm&&n.option("uploadOverwrite",i)&&(null===o&&(t.overwrite=0,o=[]),a=e.grep(a,function(t){var a,r,l,c;return t.isDirectory&&o.length&&(a=e.inArray(t.name,o),a!==-1&&(o.splice(a,1),r=n.uniqueName(t.name+n.options.backupSuffix,null,""),e.each(s,function(e,n){if(t.name==n)return l=e,!1}),l||(l=n.fileByName(t.name,i).hash),n.lockfiles({files:[l]}),c=n.request({data:{cmd:"rename",target:l,name:r},notify:{type:"rename",cnt:1}}).fail(function(){t._remove=!0,n.sync()}).always(function(){n.unlockfiles({files:[l]})}),d.push(c))),!t._remove})),e.when.apply(e,d).done(function(){var e,t,i=+new Date;a.length>0?(t=n.escape(a[0].name),a.length>1&&(t+=" ... "+a.length+n.i18n("items")),e=setTimeout(function(){n.notify({type:"readdir",id:i,cnt:1,hideCnt:!0,msg:n.i18n("ntfreaddir")+" ("+t+")",cancel:function(){u=!0}})},n.options.notifyDelay),f(a).done(function(){e&&clearTimeout(e),n.notify({type:"readdir",id:i,cnt:-1}),u?r.reject():r.resolve([l,c,o,s,p])}).fail(function(){r.reject()})):r.reject()})}),r.promise()):r.reject()}var m=[],g=[],v=t.files[0];if("html"==t.type){var b,y=e("").append(e.parseHTML(v.replace(/ src=/gi," _elfsrc=")));e("img[_elfsrc]",y).each(function(){var n,i,a=e(this),o=a.closest("a");o&&o.attr("href")&&o.attr("href").match(/\.(?:jpe?g|gif|bmp|png)/i)&&(i=o.attr("href")),n=a.attr("_elfsrc"),n&&(i?(e.inArray(i,m)==-1&&m.push(i),e.inArray(n,g)==-1&&g.push(n)):e.inArray(n,m)==-1&&m.push(n)),1===m.length&&m[0].match(/^data:image\/png/)&&(t.clipdata=!0)}),b=e("a[href]",y),b.each(function(){var t,n,i=function(e){var t=document.createElement("a");return t.href=e,t};(t=e(this).text())&&(n=i(e(this).attr("href")),n.href&&n.href.match(/^(?:ht|f)tp/i)&&(1===b.length||!n.pathname.match(/(?:\.html?|\/[^\/.]*)$/i)||e.trim(t).match(/\.[a-z0-9-]{1,10}$/i))&&e.inArray(n.href,m)==-1&&e.inArray(n.href,g)==-1&&m.push(n.href))})}else{var w,x,k;for(w=/((?:ht|f)tps?:\/\/[-_.!~*\'()a-z0-9;/?:\@&=+\$,%#\*\[\]]+)/gi;x=w.exec(v);)k=x[1].replace(/&/g,"&"),e.inArray(k,m)==-1&&m.push(k)}return m},xhr:function(t,n){var i=n?n:this,a=i.getUI(),o=new XMLHttpRequest,r=null,s=null,l=null,c=t.checked,d=t.isDataType||"data"==t.type,p=t.target||i.cwd().hash,u=t.dropEvt||null,h=t.extraData||null,f=i.option("uploadMaxConn",p)!=-1,m=Math.min(5,Math.max(1,i.option("uploadMaxConn",p))),g=1e4,v=30,b=0,y=function(t){var n=e.Deferred();return t.promise?t.always(function(e){n.resolve(Array.isArray(e)&&e.length?d?e[0][0]:e[0]:{})}):n.resolve(t.length?d?t[0][0]:t[0]:{}),n},w=e.Deferred().fail(function(e){var t,a=i.parseError(e);"userabort"===a&&(t=!0,a=void 0),k&&(i.uploads.xhrUploading||t)?y(k).done(function(e){t||H(a,e),e._cid?i.uploads.chunkfailReq[e._cid]||(i.uploads.chunkfailReq[e._cid]=!0,setTimeout(function(){n.request({data:{cmd:"upload",target:p,chunk:e._chunk,cid:e._cid,upload:["chunkfail"],mimes:"chunkfail"},options:{type:"post",url:i.uploadURL},preventDefault:!0}).always(function(){delete i.uploads.chunkfailReq[e._chunk]})},1e3)):(i.uploads.failSyncTm&&clearTimeout(i.uploads.failSyncTm),i.uploads.failSyncTm=setTimeout(function(){i.sync(p)},1e3))}):H(a),!t&&i.sync(),i.uploads.xhrUploading=!1,k=null}).done(function(t){i.uploads.xhrUploading=!1,k=null,t&&(i.currentReqCmd="upload",t.warning&&H(t.warning),i.updateCache(t),t.removed&&t.removed.length&&i.remove(t),t.added&&t.added.length&&i.add(t),t.changed&&t.changed.length&&i.change(t),i.trigger("upload",t,!1),i.trigger("uploaddone"),t.toasts&&Array.isArray(t.toasts)&&e.each(t.toasts,function(){this.msg&&i.toast(this)}),t.sync&&i.sync(),t.debug&&(i.responseDebug(t),n.debug("backend-debug",t)))}).always(function(){i.abortXHR(o),a.off("uploadabort",D),e(window).off("unload",D),r&&clearTimeout(r),s&&clearTimeout(s),l&&clearTimeout(l),c&&!t.multiupload&&E()&&i.notify({type:"upload",cnt:-C,progress:0,size:0}),s&&M&&i.notify({type:"chunkmerge",cnt:-C}),B&&S.children(".elfinder-notify-chunkmerge").length&&i.notify({type:"chunkmerge",cnt:-1})}),x=new FormData,k=t.input?t.input.files:i.uploads.checkFile(t,i,p),C=t.checked&&d?k[0].length:k.length,z=!1,T=0,A=0,j=0,O=!1,S=i.ui.notify,I=!0,M=!1,F=!1,E=function(){return!O&&($=S.children(".elfinder-notify-upload")).length&&(O=!0),O},D=function(e,t){F=!0,i.abortXHR(o,{quiet:!0,abort:!0}),w.reject(t),E()&&i.notify({type:"upload",cnt:$.data("cnt")*-1,progress:0,size:0})},U=function(e,t){$.children(".elfinder-notify-cancel")[e?"show":"hide"](),I=e},P=function(e){return e||(e=j),setTimeout(function(){O=!0,i.notify({type:"upload",cnt:C,progress:T-A,size:e,cancel:function(){a.trigger("uploadabort","userabort")}}),$=S.children(".elfinder-notify-upload"),A=T,t.multiupload?I&&U(!0):U(I&&T=2.1029&&(e=(+new Date).toString(16)+Math.floor(1e3*Math.random()).toString(16),"function"==typeof x["delete"]&&x["delete"]("reqid"),x.append("reqid",e),o._requestId=e),o.send(x))},g)):a.trigger("uploadabort",["errAbort","errTimeout"])},q=function(){O&&w.notifyWith($,[{cnt:$.data("cnt"),progress:$.data("progress"),total:$.data("total")}])},H=function(e,t,n){e&&i.trigger("xhruploadfail",{error:e,file:t}),n?e&&(N=i.options.maxErrorDialogs&&(_=_.concat("moreErrors",N-i.options.maxErrorDialogs)),i.error(_)),_=[],N=0)},_=[],N=0,L=t.renames||null,W=t.hashes||null,B=!1,$=e();if(a.one("uploadabort",D),e(window).one("unload."+n.namespace,D),!B&&(A=T),!d&&!C)return w.reject(["errUploadNoFiles"]);o.addEventListener("error",function(){0==o.status?F?w.reject():!d&&t.files&&e.grep(t.files,function(e){return!e.type&&e.size===(i.UA.Safari?1802:0)}).length?w.reject(["errAbort","errFolderUpload"]):t.input&&e.grep(t.input.files,function(e){return!e.type&&e.size===(i.UA.Safari?1802:0)}).length?w.reject(["errUploadNoFiles"]):R():a.trigger("uploadabort","errConnect")},!1),o.addEventListener("load",function(e){var n,s,c=o.status,p=0,u="";if(i.setCustomHeaderByXhr(o),c>=400?u=c>500?"errResponse":["errResponse","errServerError"]:o.responseText||(u=["errResponse","errDataEmpty"]),u&&(a.trigger("uploadabort"),y(k||{}).done(function(e){return w.reject(e._cid?null:u)})),T=j,E()&&(p=T-A)&&(i.notify({type:"upload",cnt:0,progress:p,size:0}),q()),n=i.parseUploadData(o.responseText),n._chunkmerged){x=new FormData;var h=[{_chunkmerged:n._chunkmerged,_name:n._name,_mtime:n._mtime}];return B=!0,a.off("uploadabort",D),l=setTimeout(function(){i.notify({type:"chunkmerge",cnt:1})},i.options.notifyDelay),void(d?V(h,k[1]):V(h))}n._multiupload=!!t.multiupload,n.error?(s={cmd:"upload",err:n,xhr:o,rc:o.status},i.trigger("uploadfail",n),i.trigger("requestError",s),s._getEvent&&s._getEvent().isDefaultPrevented()&&(n.error=""),n._chunkfailure||n._multiupload?(F=!0,i.uploads.xhrUploading=!1,r&&clearTimeout(r),$.length?(i.notify({type:"upload",cnt:-C,progress:0,size:0}),w.reject(n)):w.reject()):w.reject(n)):w.resolve(n)},!1),o.upload.addEventListener("loadstart",function(e){!B&&e.lengthComputable&&(T=e.loaded,b&&(T=0),j=e.total,T||(T=parseInt(.05*j)),E()&&(i.notify({type:"upload",cnt:0,progress:T-A,size:t.multiupload?0:j}),A=T,q()))},!1),o.upload.addEventListener("progress",function(e){var n;e.lengthComputable&&!B&&o.readyState<2&&(T=e.loaded,!t.checked&&T>0&&!r&&(r=P(o._totalSize-T)),j||(j=e.total,T||(T=parseInt(.05*j))),n=T-A,E()&&n/e.total>=.05&&(i.notify({type:"upload",cnt:0,progress:n,size:0}),A=T,q()),!M&&T>=j&&!z&&(M=!0,s=setTimeout(function(){i.notify({type:"chunkmerge",cnt:C})},i.options.notifyDelay)),I&&!t.multiupload&&T>=j&&E()&&U(!1))},!1);var V=function(a,s){var l,g,v,b,y,k,T,A,j,O,S,M,D,R,q,N=0,B=1,$=[],V=0,K=C,X=0,J=[],G=(new Date).getTime().toString().substr(-9),Y=Math.min((n.uplMaxSize?n.uplMaxSize:2097152)-8190,n.options.uploadMaxChunkSize),Q=!f&&"",Z=function(a,o){var s,l,c,h=[],f=0;if(!F){for(;a.length&&h.length=2.1&&("slice"in j?Q="slice":"mozSlice"in j?Q="mozSlice":"webkitSlice"in j&&(Q="webkitSlice")))}catch(te){C--,K--;continue}if(l&&g>l||!Q&&n.uplMaxSize&&g>n.uplMaxSize)H(["errUploadFile",j.name,"errUploadFileSize"],j,!0),C--,K--;else if(!j.type||i.uploadMimeCheck(j.type,p))if(Q&&g>Y){for(k=0,T=Y,A=-1,K=Math.floor((g-1)/Y),v=j.lastModified?Math.round(j.lastModified/1e3):0,b=t.clipdata?n.date(n.nonameDateFormat)+".png":j.name,X+=g,J[G]=0;kn.uplMaxSize||B>n.uplMaxFile)&&(N=0,B=1,V++),"undefined"==typeof $[V]&&($[V]=[],d&&($[V][0]=[],$[V][1]=[])),d?($[V][0].push(j),$[V][1].push(s[y])):$[V].push(j),N+=g,X+=g,B++;else H(["errUploadFile",j.name,"errUploadMime","("+j.type+")"],j,!0),C--,K--}if(_.length&&H(),0==$.length)return t.checked=!0,!1;if($.length>1)return r=P(X),S=[],M=0,D=$.length,R=[],ee(),!0;d?(a=$[0][0],s=$[0][1]):a=$[0]}return c||(n.UA.Safari&&t.files?o._totalSize=X:r=P(X)),c=!0,a.length||w.reject(["errUploadNoFiles"]),o.open("POST",i.uploadURL,!0),n.customHeaders&&e.each(n.customHeaders,function(e){o.setRequestHeader(e,this)}),n.xhrFields&&e.each(n.xhrFields,function(e){e in o&&(o[e]=this)}),i.api>=2.1029&&(q=(+new Date).toString(16)+Math.floor(1e3*Math.random()).toString(16),x.append("reqid",q),o._requestId=q),x.append("cmd","upload"),x.append(i.newAPI?"target":"current",p),L&&L.length&&(e.each(L,function(e,t){x.append("renames[]",t)}),x.append("suffix",n.options.backupSuffix)),W&&e.each(W,function(e,t){x.append("hashes["+e+"]",t)}),e.each(i.customData,function(e,t){x.append(e,t)}),e.each(i.options.onlyMimes,function(e,t){x.append("mimes[]",t)}),e.each(a,function(e,i){var a,o;i._chunkmerged?(x.append("chunk",i._chunkmerged),x.append("upload[]",i._name),x.append("mtime[]",i._mtime),t.clipdata&&x.append("overwrite",0),z=!0):(i._chunkfail?(x.append("upload[]","chunkfail"),x.append("mimes","chunkfail")):(t.clipdata?i._chunk||(t.overwrite=0,a=n.date(n.nonameDateFormat)+".png"):i.name&&(a=i.name,n.UA.iOS&&(a.match(/^image\.jpe?g$/i)?(t.overwrite=0,a=n.date(n.nonameDateFormat)+".jpg"):a.match(/^capturedvideo\.mov$/i)&&(t.overwrite=0,a=n.date(n.nonameDateFormat)+".mov")),o=(i.webkitRelativePath||i.relativePath||i._relativePath||"").replace(/[^\/]+$/,""),a=o+a),a?x.append("upload[]",i,a):x.append("upload[]",i)),i._chunk?(x.append("chunk",i._chunk),x.append("cid",i._cid),x.append("range",i._range),x.append("mtime[]",i._mtime),z=!0):x.append("mtime[]",i.lastModified?Math.round(i.lastModified/1e3):0))}),d&&e.each(s,function(e,t){x.append("upload_path[]",t)}),0===t.overwrite&&x.append("overwrite",0),u&&x.append("dropWith",parseInt((u.altKey?"1":"0")+(u.ctrlKey?"1":"0")+(u.metaKey?"1":"0")+(u.shiftKey?"1":"0"),2)),h&&e.each(h,function(e,t){x.append(e,t)}),o.send(x),!0};if(d)c?V(k[0],k[1]):k.done(function(t){if(L=[],C=t[0].length){if(t[4]&&t[4].length)return void n.request({data:{cmd:"mkdir",target:p,dirs:t[4]},notify:{type:"mkdir",cnt:t[4].length},preventFail:!0}).fail(function(e){e=e||["errUnknown"],"errCmdParams"===e[0]?m=1:(m=0,w.reject(e))}).done(function(n){var i=!1;n.hashes||(n.hashes={}),t[1]=e.map(t[1],function(e,a){return t[0][a]._relativePath=e.replace(/^\//,""),e=e.replace(/\/[^\/]*$/,""),""===e?p:n.hashes[e]?n.hashes[e]:(i=!0,t[0][a]._remove=!0,null)}),i&&(t[0]=e.grep(t[0],function(e){return!e._remove}))}).always(function(e){m&&(L=t[2],W=t[3],V(t[0],t[1]))});t[1]=e.map(t[1],function(){return p}),L=t[2],W=t[3],V(t[0],t[1])}else w.reject(["errUploadNoFiles"])}).fail(function(){w.reject()});else if(k.length>0)if(t.clipdata||null!=L)V(k)||w.reject();else{var K=[],X=[],J=n.options.folderUploadExclude[n.OS]||null;e.each(k,function(t,n){var i,a,o=n.webkitRelativePath||n.relativePath||"";return!!o&&(J&&n.name.match(J)?(n._remove=!0,o=void 0):(o="/"+o.replace(/\/[^\/]*$/,"").replace(/^\//,""),o&&e.inArray(o,K)===-1&&(K.push(o),i=o.substr(1).indexOf("/"),i!==-1&&(a=o.substr(0,i+1))&&e.inArray(a,K)===-1&&K.unshift(a))),void X.push(o))}),L=[],W={},K.length?!function(){var t=e.map(K,function(e){return e.substr(1).indexOf("/")===-1?{name:e.substr(1)}:null}),i=[];n.uploads.checkExists(t,p,n,!0).done(function(a,o){var r,s,l,c=[];n.options.overwriteUploadConfirm&&n.option("uploadOverwrite",p)&&(i=e.map(t,function(e){return e._remove?e.name:null}),t=e.grep(t,function(e){return!e._remove})),i.length&&e.each(X.concat(),function(t,n){0===e.inArray(n,i)&&(k[t]._remove=!0,X[t]=void 0)}),k=e.grep(k,function(e){return!e._remove}),X=e.grep(X,function(e){return void 0!==e}),t.length?(r=e.Deferred(),a.length?e.each(a,function(t,i){s=n.uniqueName(i+n.options.backupSuffix,null,""),e.each(o,function(e,t){if(a[0]==t)return l=e,!1}),l||(l=n.fileByName(a[0],p).hash),n.lockfiles({files:[l]}),c.push(n.request({data:{cmd:"rename",target:l,name:s},notify:{type:"rename",cnt:1}}).fail(function(e){w.reject(e),n.sync()}).always(function(){n.unlockfiles({files:[l]})}))}):c.push(null),e.when.apply(e,c).done(function(){n.request({data:{cmd:"mkdir",target:p,dirs:K},notify:{type:"mkdir",cnt:K.length},preventFail:!0}).fail(function(e){e=e||["errUnknown"],"errCmdParams"===e[0]?m=1:(m=0,w.reject(e))}).done(function(t){var n=!1;t.hashes||(t.hashes={}),X=e.map(X.concat(),function(e,i){return"/"===e?p:t.hashes[e]?t.hashes[e]:(n=!0,k[i]._remove=!0,null)}),n&&(k=e.grep(k,function(e){return!e._remove}))}).always(function(e){m&&(d=!0,V(k,X)||w.reject())})})):w.reject()})}():n.uploads.checkExists(k,p,n).done(function(i,a){n.options.overwriteUploadConfirm&&n.option("uploadOverwrite",p)&&(W=a,null===i?t.overwrite=0:L=i,k=e.grep(k,function(e){return!e._remove})),C=k.length,C>0?V(k)||w.reject():w.reject()})}else w.reject();return w},iframe:function(t,n){var i,a,o,r,s=n?n:this,l=!!t.input&&t.input,c=!l&&s.uploads.checkFile(t,s),d=e.Deferred().fail(function(e){e&&s.error(e)}),p="iframe-"+n.namespace+ ++s.iframeCnt,u=e('
'),h=this.UA.IE,f=function(){r&&clearTimeout(r),o&&clearTimeout(o),a&&s.notify({type:"upload",cnt:-i}),setTimeout(function(){h&&e('').appendTo(u),u.remove(),m.remove()},100)},m=e('').on("load",function(){m.off("load").on("load",function(){ +f(),d.resolve()}),o=setTimeout(function(){a=!0,s.notify({type:"upload",cnt:i})},s.options.notifyDelay),s.options.iframeTimeout>0&&(r=setTimeout(function(){f(),d.reject(["errConnect","errTimeout"])},s.options.iframeTimeout)),u.submit()}),g=t.target||s.cwd().hash,v=[],b=[],y=[],w={};if(c&&c.length)e.each(c,function(e,t){u.append('')}),i=1;else{if(!(l&&e(l).is(":file")&&e(l).val()))return d.reject();n.options.overwriteUploadConfirm&&n.option("uploadOverwrite",g)&&(v=l.files?l.files:[{name:e(l).val().replace(/^(?:.+[\\\/])?([^\\\/]+)$/,"$1")}],b.push(s.uploads.checkExists(v,g,s).done(function(n,a){w=a,null===n?t.overwrite=0:(y=n,i=e.grep(v,function(e){return!e._remove}).length,i!=v.length&&(i=0))}))),i=l.files?l.files.length:1,u.append(l)}return e.when.apply(e,b).done(function(){return i<1?d.reject():(u.append('').append('').append('').append(e(l).attr("name","upload[]")),y.length>0&&(e.each(y,function(e,t){u.append('')}),u.append('')),w&&e.each(y,function(e,t){u.append('')}),0===t.overwrite&&u.append(''),e.each(s.options.onlyMimes||[],function(e,t){u.append('')}),e.each(s.customData,function(e,t){u.append('')}),u.appendTo("body"),void m.appendTo("body"))}),d}},one:function(e,t,n){var i=this,a=e.toLowerCase(),o=function(e,n){return i.toUnbindEvents[a]||(i.toUnbindEvents[a]=[]),i.toUnbindEvents[a].push({type:a,callback:o}),(t.done?t.done:t).apply(this,arguments)};return t.done&&(o={done:o}),this.bind(a,o,n)},localStorage:function(t,n){var i,a,o,r,s,l=this,c=window.localStorage,d="elfinder-"+(t||"")+this.id,p=window.location.pathname+"-elfinder-",u=this.id,h=[];if("undefined"==typeof t)return r=p.length,s=u.length*-1,e.each(c,function(e){e.substr(0,r)===p&&e.substr(s)===u&&h.push(e)}),e.each(h,function(e,t){c.removeItem(t)}),!0;if(t=p+t+u,null===n)return c.removeItem(t);if(void 0===n&&!(i=c.getItem(t))&&(a=c.getItem(d))&&(n=a,c.removeItem(d)),void 0!==n){o=typeof n,"string"!==o&&"number"!==o&&(n=JSON.stringify(n));try{c.setItem(t,n)}catch(f){try{c.clear(),c.setItem(t,n)}catch(f){l.debug("error",f.toString())}}i=c.getItem(t)}if(i&&("{"===i.substr(0,1)||"["===i.substr(0,1)))try{return JSON.parse(i)}catch(f){}return i},sessionStorage:function(e,t){var n,i,a,o=this;try{n=window.sessionStorage}catch(r){}if(n){if(null===t)return n.removeItem(e);if(void 0!==t){a=typeof t,"string"!==a&&"number"!==a&&(t=JSON.stringify(t));try{n.setItem(e,t)}catch(r){try{n.clear(),n.setItem(e,t)}catch(r){o.debug("error",r.toString())}}}if(i=n.getItem(e),i&&("{"===i.substr(0,1)||"["===i.substr(0,1)))try{return JSON.parse(i)}catch(r){}return i}},cookie:function(t,n){var i,a,o,r,s,l;if(t="elfinder-"+t+this.id,void 0===n){if(this.cookieEnabled&&document.cookie&&""!=document.cookie)for(o=document.cookie.split(";"),t+="=",r=0;r"),escape:function(e){return this._node.text(e).html().replace(/"/g,""").replace(/'/g,"'")},normalize:function(t){var n,i,a,o,r,s=this,l=function(){var e,t;return(t=s.options.fileFilter)&&("function"==typeof t?e=function(e){return t.call(s,e)}:t instanceof RegExp&&(e=function(e){return t.test(e.name)})),e?e:null}(),c=function(t){var n;t.uiCmdMap&&(e.isPlainObject(t.uiCmdMap)&&Object.keys(t.uiCmdMap).length?(t.disabledFlip||(t.disabledFlip={}),n=t.disabledFlip,e.each(t.uiCmdMap,function(e,i){"hidden"!==i||n[e]||(t.disabled.push(e),t.disabledFlip[e]=!0)})):delete t.uiCmdMap)},d=function(t){var n=function(e){var t=typeof e;return"object"===t&&Array.isArray(e)&&(t="array"),t};return e.each(s.optionProperties,function(e,i){void 0!==i&&t[e]&&n(t[e])!==n(i)&&(t[e]=i)}),t.disabled?(t.disabledFlip=s.arrayFlip(t.disabled,!0),e.each(s.options.disabledCmdsRels,function(n,i){var a,o;t.disabledFlip[n]?o=!0:(a=n.match(/^([^&]+)&([^=]+)=(.*)$/))&&t.disabledFlip[a[1]]&&t[a[2]]==a[3]&&(o=!0),o&&e.each(i,function(e,n){t.disabledFlip[n]||(t.disabledFlip[n]=!0,t.disabled.push(n))})})):t.disabledFlip={},t},p=function(t,r,p){var u,h,m,g,v=!r||t,b=!!r&&null;if(t&&t.hash&&t.name&&t.mime){if("application/x-empty"===t.mime&&(t.mime="text/plain"),m=s.isRoot(t),m&&!t.volumeid&&s.debug("warning","The volume root statuses requires `volumeid` property."),m||"directory"===t.mime){if(t.phash){if(t.phash===t.hash)return f=f.concat(['Parent folder of "$1" is itself.',t.name]),b;if(m&&t.volumeid&&0===t.phash.indexOf(t.volumeid))return f=f.concat(['Parent folder of "$1" is inner itself.',t.name]),b}t.volumeid&&(u=t.volumeid,m&&(t.phash&&(s.leafRoots[t.phash]?e.inArray(t.hash,s.leafRoots[t.phash])===-1&&s.leafRoots[t.phash].push(t.hash):s.leafRoots[t.phash]=[t.hash]),s.hasVolOptions=!0,s.volOptions[u]||(s.volOptions[u]={dispInlineRegex:s.options.dispInlineRegex}),h=s.volOptions[u],t.options&&Object.assign(h,t.options),t.disabled&&(h.disabled=t.disabled,h.disabledFlip=s.arrayFlip(t.disabled,!0)),t.tmbUrl&&(h.tmbUrl=t.tmbUrl),h.url&&"/"!==h.url.substr(-1)&&(h.url+="/"),c(h),h.trashHash&&(s.trashes[h.trashHash]===!1?delete h.trashHash:s.trashes[h.trashHash]=t.hash),e.each(s.optionProperties,function(e){h[e]&&(t[e]=h[e])}),"cwd"!==p&&(s.roots[u]=t.hash),t.expires&&(s.volumeExpires[u]=t.expires)),o!==u&&(o=u,a=s.option("i18nFolderName",u))),m&&!t.i18&&(n="volume_"+t.name,i=s.i18n(!1,n),n!==i&&(t.i18=i)),a&&!t.i18&&(n="folder_"+t.name,i=s.i18n(!1,n),n!==i&&(t.i18=i)),m&&s.options.enableRootRename!==!1&&(g=s.storage("rootNames"))&&(g[t.hash]&&(t._name=t.name,t._i18=t.i18,t.name=g[t.hash]=g[t.hash],delete t.i18),s.storage("rootNames",g)),s.trashes[t.hash]&&(t.locked=!0)}else{if(l)try{if(!l(t))return b}catch(y){s.debug(y)}0==t.size&&(t.mime=s.getMimetype(t.name,t.mime))}return t.options&&(s.optionsByHashes[t.hash]=d(t.options)),delete t.options,v}return b},u=function(t){var n=[];return e.each(s.files(),function(i,a){e.each(s.parents(i),function(a,o){if(e.inArray(o,t)!==-1&&e.inArray(i,t)===-1)return n.push(i),!1})}),n},h=function(n,i){e.each(n,function(n,a){var o,r;s.leafRoots[a.hash]&&s.applyLeafRootStats(a),"change"!==i&&a.phash&&s.isRoot(a)&&(o=s.file(a.phash))&&(s.applyLeafRootStats(o),t.changed?(e.each(t.changed,function(e,n){if(n.hash===o.hash)return t.changed[e]=o,r=!0,!1}),r||t.changed.push(o)):t.changed=[o])})},f=[];if(t.customData&&(!s.prevCustomData||JSON.stringify(t.customData)!==JSON.stringify(s.prevCustomData))){s.prevCustomData=t.customData;try{r=JSON.parse(t.customData),e.isPlainObject(r)&&(s.prevCustomData=r,e.each(Object.keys(r),function(e,t){null===r[t]&&(delete r[t],delete s.optsCustomData[t])}),s.customData=Object.assign({},s.optsCustomData,r))}catch(m){}}return t.options&&d(t.options),t.cwd&&(t.cwd.volumeid&&t.options&&Object.keys(t.options).length&&s.isRoot(t.cwd)&&(s.hasVolOptions=!0,s.volOptions[t.cwd.volumeid]=t.options),t.cwd=p(t.cwd,!0,"cwd")),t.files&&(t.files=e.grep(t.files,p)),t.tree&&(t.tree=e.grep(t.tree,p)),t.added&&(t.added=e.grep(t.added,p)),t.changed&&(t.changed=e.grep(t.changed,p)),t.removed&&t.removed.length&&2===s.searchStatus.state&&(t.removed=t.removed.concat(u(t.removed))),t.api&&(t.init=!0),Object.keys(s.leafRoots).length&&(t.files&&h(t.files),t.tree&&h(t.tree),t.added&&h(t.added),t.changed&&h(t.changed,"change")),t.cwd&&t.cwd.options&&t.options&&Object.assign(t.options,d(t.cwd.options)),t.options&&t.options.url&&"/"!==t.options.url.substr(-1)&&(t.options.url+="/"),f.length&&(t.norError=["errResponse"].concat(f)),t},setSort:function(e,t,n,i){this.storage("sortType",this.sortType=this.sortRules[e]?e:"name"),this.storage("sortOrder",this.sortOrder=/asc|desc/.test(t)?t:"asc"),this.storage("sortStickFolders",(this.sortStickFolders=!!n)?1:""),this.storage("sortAlsoTreeview",(this.sortAlsoTreeview=!!i)?1:""),this.trigger("sortchange")},_sortRules:{name:function(e,t){return i.prototype.naturalCompare(e.i18||e.name,t.i18||t.name)},size:function(e,t){var n=parseInt(e.size)||0,i=parseInt(t.size)||0;return n===i?0:n>i?1:-1},kind:function(e,t){return i.prototype.naturalCompare(e.mime,t.mime)},date:function(e,t){var n=e.ts||e.date||0,i=t.ts||t.date||0;return n===i?0:n>i?1:-1},perm:function(e,t){var n=function(e){return(e.write?2:0)+(e.read?1:0)},i=n(e),a=n(t);return i===a?0:i>a?1:-1},mode:function(e,t){var n=e.mode||e.perm||"",a=t.mode||t.perm||"";return i.prototype.naturalCompare(n,a)},owner:function(e,t){var n=e.owner||"",a=t.owner||"";return i.prototype.naturalCompare(n,a)},group:function(e,t){var n=e.group||"",a=t.group||"";return i.prototype.naturalCompare(n,a)}},sorters:{},naturalCompare:function(e,t){var n=i.prototype.naturalCompare;return"undefined"==typeof n.loc&&(n.loc=navigator.userLanguage||navigator.browserLanguage||navigator.language||"en-US"),"undefined"==typeof n.sort&&("11".localeCompare("2",n.loc,{numeric:!0})>0?window.Intl&&window.Intl.Collator?n.sort=new Intl.Collator(n.loc,{numeric:!0}).compare:n.sort=function(e,t){return e.localeCompare(t,n.loc,{numeric:!0})}:(n.sort=function(e,t){var i,a,o=/(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi,r=/(^[ ]*|[ ]*$)/g,s=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,l=/^0x[0-9a-f]+$/i,c=/^0/,d=/^[\x01\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]/,p=function(e){return n.sort.insensitive&&(""+e).toLowerCase()||""+e},u=p(e).replace(r,"").replace(/^_/,"")||"",h=p(t).replace(r,"").replace(/^_/,"")||"",f=u.replace(o,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),m=h.replace(o,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),g=parseInt(u.match(l))||1!=f.length&&u.match(s)&&Date.parse(u),v=parseInt(h.match(l))||g&&h.match(s)&&Date.parse(h)||null,b=0;if(v){if(gv)return 1}for(var y=0,w=Math.max(f.length,m.length);ya)return 1}return 0},n.sort.insensitive=!0)),n.sort(e,t)},compare:function(e,t){var n,i=this,a=i.sortType,o="asc"==i.sortOrder,r=i.sortStickFolders,s=i.sortRules,l=s[a],c="directory"==e.mime,d="directory"==t.mime;if(r){if(c&&!d)return-1;if(!c&&d)return 1}return n=o?l(e,t):l(t,e),"name"!==a&&0===n?n=o?s.name(e,t):s.name(t,e):n},sortFiles:function(e){return e.sort(this.compare)},notify:function(t){var n,i,a,o=this,r=t.type,s=t.id?"elfinder-notify-"+t.id:"",l=this.i18n("undefined"!=typeof t.msg?t.msg:this.messages["ntf"+r]?"ntf"+r:"ntfsmth"),c=this.arrayFlip(this.options.notifyDialog.hiddens||[]),d=this.ui.notify,p=d.closest(".ui-dialog"),u=d.children(".elfinder-notify-"+r+(s?"."+s:"")),h=u.children("div.elfinder-notify-cancel").children("button"),f='
{msg}
',m=t.cnt+0,g="undefined"!=typeof t.size?parseInt(t.size):null,v="undefined"!=typeof t.progress&&t.progress>=0?t.progress:null,b=t.fakeinterval||200,y=t.cancel,w="ui-state-hover",x=function(){var t=u.find(".elfinder-notify-progress"),n=function(){u.remove(),d.children(p.data("minimized")?void 0:":visible").length||(p.data("minimized")?p.data("minimized").hide():d.elfinderdialog("close")),C()};u._esc&&e(document).off("keydown",u._esc),u.data("cur")<100?t.animate({width:"100%"},50,function(){requestAnimationFrame(function(){n()})}):n()},k=function(e){var t;u.length&&(t=u.data("cur")+1,t<=98&&(u.find(".elfinder-notify-progress").width(t+"%"),u.data("cur",t),C(),setTimeout(function(){e*=1.05,k(e)},e)))},C=function(){var t,n=0,i=0,a=d.children(".elfinder-notify");a.length?(a.each(function(){n++,i+=Math.min(e(this).data("cur"),100)}),t=n?Math.floor(i/(100*n)*100)+"%":0,o.ui.progressbar.width(t),p.data("minimized")&&(p.data("minimized").title(t),p.data("minimized").dialog().children(".ui-dialog-titlebar").children(".elfinder-ui-progressbar").width(t))):(o.ui.progressbar.width(0),p.data("minimized")&&p.data("minimized").hide())};return r?(u.length?"undefined"!=typeof t.msg&&u.children("span.elfinder-notify-msg").html(l):(u=e(f.replace(/\{type\}/g,r).replace(/\{msg\}/g,l)),c[r]?u.hide():d.on("minimize",function(e){p.data("minimized")&&C()}),u.appendTo(d).data("cnt",0),null!=v?u.data({progress:0,total:0,cur:0}):(u.data({cur:0}),k(b)),y&&(h=e('').on("mouseenter mouseleave",function(t){e(this).toggleClass(w,"mouseenter"===t.type)}),u.children("div.elfinder-notify-cancel").append(h)),d.trigger("resize")),n=m+parseInt(u.data("cnt")),n>0?(y&&h.length&&("function"==typeof y||"object"==typeof y&&y.promise)&&(u._esc=function(t){"keydown"==t.type&&t.keyCode!=e.ui.keyCode.ESCAPE||(t.preventDefault(),t.stopPropagation(),x(),y.promise?y.reject(0):y(t))},h.on("click",function(e){u._esc(e)}),e(document).on("keydown."+this.namespace,u._esc)),!t.hideCnt&&u.children(".elfinder-notify-cnt").text("("+n+")"),m>0&&d.is(":hidden")&&!c[r]&&(p.data("minimized")?p.data("minimized").show():d.elfinderdialog("open",this).height("auto")),u.data("cnt",n),null!=v&&(i=u.data("total"))>=0&&(a=u.data("progress"))>=0&&(i+=null!=g?g:m,a+=v,null==g&&m<0&&(a+=100*m),u.data({progress:a,total:i}),null!=g&&(a*=100,i=Math.max(1,i)),v=Math.min(parseInt(a/i),100),u.find(".elfinder-notify-progress").animate({width:(v<100?v:100)+"%"},20,function(){u.data("cur",v),C()}))):x(),this):this},confirm:function(t){var n,i,a=this,o=!1,r={cssClass:"elfinder-dialog-confirm",modal:!0,resizable:!1,title:this.i18n(t.title||"confirmReq"),buttons:{},close:function(){!o&&t.cancel.callback(),e(this).elfinderdialog("destroy")}},s=this.i18n("apllyAll");return t.cssClass&&(r.cssClass+=" "+t.cssClass),r.buttons[this.i18n(t.accept.label)]=function(){t.accept.callback(!(!n||!n.prop("checked"))),o=!0,e(this).elfinderdialog("close")},r.buttons[this.i18n(t.accept.label)]._cssClass="elfinder-confirm-accept",t.reject&&(r.buttons[this.i18n(t.reject.label)]=function(){t.reject.callback(!(!n||!n.prop("checked"))),o=!0,e(this).elfinderdialog("close")},r.buttons[this.i18n(t.reject.label)]._cssClass="elfinder-confirm-reject"),t.buttons&&t.buttons.length>0&&(i=1,e.each(t.buttons,function(t,s){r.buttons[a.i18n(s.label)]=function(){s.callback(!(!n||!n.prop("checked"))),o=!0,e(this).elfinderdialog("close")},r.buttons[a.i18n(s.label)]._cssClass="elfinder-confirm-extbtn"+i++,s.cssClass&&(r.buttons[a.i18n(s.label)]._cssClass+=" "+s.cssClass)})),r.buttons[this.i18n(t.cancel.label)]=function(){e(this).elfinderdialog("close")},r.buttons[this.i18n(t.cancel.label)]._cssClass="elfinder-confirm-cancel",t.all&&(r.create=function(){var t=e('
');n=e(''),e(this).next().find(".ui-dialog-buttonset").prepend(t.append(e("").prepend(n)))}),t.optionsCallback&&"function"==typeof t.optionsCallback&&t.optionsCallback(r),this.dialog(''+this.i18n(t.text),r)},uniqueName:function(e,t,n){var i,a,o=0,r="";if(e=this.i18n(!1,e),t=t||this.cwd().hash,n="undefined"==typeof n?" ":n,(i=e.match(/^(.+)(\.[^.]+)$/))&&(r=i[2],e=i[1]),a=e+r,!this.fileByName(a,t))return a;for(;o<1e4;)if(a=e+n+ ++o+r,!this.fileByName(a,t))return a;return e+Math.random()+r},i18n:function(){var t,n,i,a,o,r=this,s=this.messages,l=[],c=[],d=function(e){var t;return 0===e.indexOf("#")&&(t=r.file(e.substr(1)))?t.name:e},p=0;for(arguments.length&&arguments[0]===!1&&(a=function(e){return e},p=1),t=p;t0&&l[n]&&c.push(n),i=a?a(l[n]):r.escape(l[n]),o&&(i=''+i+""),i})):i=i.get(0).outerHTML,l[t]=i);return e.grep(l,function(t,n){return e.inArray(n,c)===-1}).join("
")},getIconStyle:function(t,n){var i=this,a={background:"url('{url}') 0 0 no-repeat","background-size":"contain"},o="",r={},s=0;return t.icon&&(o='style="',e.each(a,function(e,a){0===s++&&(a=a.replace("{url}",i.escape(t.icon))),n?r[e]=a:o+=e+":"+a+";"}),o+='"'),n?r:o},mime2class:function(e){var t="elfinder-cwd-icon-",n=e.toLowerCase(),i=this.textMimes[n];return n=n.split("/"),i?n[0]+=" "+t+"text":n[1]&&n[1].match(/\+xml$/)&&(n[0]+=" "+t+"xml"),t+n[0]+(n[1]?" "+t+n[1].replace(/(\.|\+)/g,"-"):"")},mime2kind:function(e){var t,n="object"==typeof e,i=n?e.mime:e;return n&&e.alias&&"symlink-broken"!=i?t="Alias":this.kinds[i]?t=!n||"directory"!==i||e.phash&&!e.isroot?this.kinds[i]:"Root":this.mimeTypes[i]&&(t=this.mimeTypes[i].toUpperCase(),this.messages["kind"+t]||(t=null)),t||(t=0===i.indexOf("text")?"Text":0===i.indexOf("image")?"Image":0===i.indexOf("audio")?"Audio":0===i.indexOf("video")?"Video":0===i.indexOf("application")?"App":0===i.indexOf("font")?"Font":i),this.messages["kind"+t]?this.i18n("kind"+t):i},mimeIsText:function(e){return!!(this.textMimes[e.toLowerCase()]||0===e.indexOf("text/")&&"rtf"!==e.substr(5,3)||e.match(/^application\/.+\+xml$/))},date:function(e,t){var n,i,a,o,r,s,l,c,d,p=this;return t||(t=new Date),s=t[p.getHours](),l=s>12?s-12:s,c=t[p.getMinutes](),d=t[p.getSeconds](),i=t[p.getDate](),a=t[p.getDay](),o=t[p.getMonth]()+1,r=t[p.getFullYear](),n=e.replace(/[a-z]/gi,function(e){switch(e){case"d":return i>9?i:"0"+i;case"j":return i;case"D":return p.i18n(p.i18.daysShort[a]);case"l":return p.i18n(p.i18.days[a]);case"m":return o>9?o:"0"+o;case"n":return o;case"M":return p.i18n(p.i18.monthsShort[o-1]);case"F":return p.i18n(p.i18.months[o-1]);case"Y":return r;case"y":return(""+r).substr(2);case"H":return s>9?s:"0"+s;case"G":return s;case"g":return l;case"h":return l>9?l:"0"+l;case"a":return s>=12?"pm":"am";case"A":return s>=12?"PM":"AM";case"i":return c>9?c:"0"+c;case"s":return d>9?d:"0"+d}return e})},formatDate:function(e,t){var n,i,a,o=this,r=t||e.ts;o.i18;return o.options.clientFormatDate&&r>0?(n=new Date(1e3*r),i=r>=this.yesterday?this.fancyFormat:this.dateFormat,a=o.date(i,n),r>=this.yesterday?a.replace("$1",this.i18n(r>=this.today?"Today":"Yesterday")):a):e.date?e.date.replace(/([a-z]+)\s/i,function(e,t){return o.i18n(t)+" "}):o.i18n("dateUnknown")},toLocaleString:function(e){var t=new Number(e);return t?t.toLocaleString?t.toLocaleString():String(e).replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"):e},perms2class:function(e){var t="";return e.read||e.write?e.read?e.write||(t="elfinder-ro"):t="elfinder-wo":t="elfinder-na",e.type&&(t+=" elfinder-"+this.escape(e.type)),t},formatPermissions:function(e){var t=[];return e.read&&t.push(this.i18n("read")),e.write&&t.push(this.i18n("write")),t.length?t.join(" "+this.i18n("and")+" "):this.i18n("noaccess")},formatSize:function(e){var t=1,n="b";return"unknown"==e?this.i18n("unknown"):(e>1073741824?(t=1073741824,n="GB"):e>1048576?(t=1048576,n="MB"):e>1024&&(t=1024,n="KB"),e/=t,(e>0?t>=1048576?e.toFixed(2):Math.round(e):0)+" "+n)},formatFileMode:function(t,n){var i,a,o,r,s,l,c,d,p;if(n||(n=this.options.fileModeStyle.toLowerCase()),t=e.trim(t),t.match(/[rwxs-]{9}$/i)){if(d=t=t.substr(-9),"string"==n)return d;for(p="",o=0,i=0;i<7;i+=3)a=t.substr(i,3),r=0,a.match(/[r]/i)&&(r+=4),a.match(/[w]/i)&&(r+=2),a.match(/[xs]/i)&&(a.match(/[xs]/)&&(r+=1),a.match(/[s]/i)&&(0==i?o+=4:3==i&&(o+=2))),p+=r.toString(8);o&&(p=o.toString(8)+p)}else{if(t=parseInt(t,8),p=t?t.toString(8):"",!t||"octal"==n)return p;for(a=t.toString(8),o=0,a.length>3&&(a=a.substr(-4),o=parseInt(a.substr(0,1),8),a=a.substr(1)),s=1==(1&o),c=2==(2&o),l=4==(4&o),d="",i=0;i<3;i++)d+=4==(4&parseInt(a.substr(i,1),8))?"r":"-",d+=2==(2&parseInt(a.substr(i,1),8))?"w":"-",d+=1==(1&parseInt(a.substr(i,1),8))?0==i&&l||1==i&&c?"s":"x":"-"}return"both"==n?d+" ("+p+")":"string"==n?d:p},registRawStringDecoder:function(e){"function"==typeof e&&(this.decodeRawString=this.options.rawStringDecoder=e)},uploadMimeCheck:function(t,n){n=n||this.cwd().hash;var i,a,o=!0,r=this.option("uploadMime",n),s=function(n){var i=!1;return"string"==typeof n&&"all"===n.toLowerCase()?i=!0:Array.isArray(n)&&n.length&&e.each(n,function(e,n){if(n=n.toLowerCase(),"all"===n||0===t.indexOf(n))return i=!0,!1}),i};return t&&e.isPlainObject(r)&&(t=t.toLowerCase(),i=s(r.allow),a=s(r.deny),"allow"===r.firstOrder?(o=!1,a||i!==!0||(o=!0)):(o=!0,a!==!0||i||(o=!1))),o},sequence:function(e){var t=e.length,n=function(t,i){return++i,e[i]?n(t.then(e[i]),i):t};return t>1?n(e[0](),0):e[0]()},reloadContents:function(t){var n,i=e.Deferred();try{n=e('';d.remove(),e(x).appendTo("body").ready(function(){setTimeout(function(){e(x).each(function(){e("#"+e(this).attr("id")).remove()})},2e4+1e4*i)}),b.trigger("download",{files:y}),w.resolve()}),u=y.length,g=[],i=0;i');return t&&e.each(t,function(e,t){a=i.escape(t.value),o.append('")}),e.each(n.options.encodings,function(e,t){o.append('")}),o},d=function(){var t,a,o=i.options.dialogContained?i.getUI():e(window);return a="string"==typeof n.options.dialogWidth&&(t=n.options.dialogWidth.match(/(\d+)%/))?parseInt(o.width()*(t[1]/100)):parseInt(n.options.dialogWidth||650),Math.min(a,o.width())},p=function(){if(n.options.dialogHeight){var t,a,o=i.options.dialogContained?i.getUI():e(window);return a="string"==typeof n.options.dialogHeight&&(t=n.options.dialogHeight.match(/(\d+)%/))?parseInt(o.height()*(t[1]/100)):parseInt(n.options.dialogHeight||o.height()),Math.min(a,o.height())}},u=function(t){var a,l,c,d=t.length;return d>1&&(a=t[0].mime,l=t[0].name.replace(/^.*(\.[^.]+)$/,"$1")),e.grep(t,function(t){var p;return!c&&"directory"!==t.mime&&(p=t.read&&(s||i.mimeIsText(t.mime)||e.inArray(t.mime,1===d?o:r)!==-1)&&(!n.onlyMimes.length||e.inArray(t.mime,n.onlyMimes)!==-1)&&(1===d||t.mime===a&&t.name.substr(l.length*-1)===l)&&!!i.uploadMimeCheck(t.mime,t.phash)&&b(t,d)&&Object.keys(g).length,p||(c=!0),p)})},h=function(e){var t,n=i.file(e);i.request({cmd:"info",targets:[e],preventDefault:!0}).done(function(e){var a;e&&e.files&&e.files.length&&(t=e.files[0],n.ts==t.ts&&n.size==t.size||(a={changed:[t]},i.updateCache(a),i.change(a)))})},f=function(t,o,r,s,u,f){var g,v,b,y,w,k,C=e.Deferred(),z=!1,T=function(){return!!z||(i.toast({mode:"warning",msg:i.i18n("nowLoading")}),!1)},A=function(){f&&Array.isArray(f)&&e.each(f,function(){this.msg&&i.toast(this)})},j=function(){var t,n,a,o=y?y.val():void 0,r=e.Deferred().fail(function(e){b.show().find("button.elfinder-btncnt-0,button.elfinder-btncnt-1").hide()});return T()?(g.editor&&(g.editor.save(g[0],g.editor.instance),t=g.editor.confObj,t.info&&(t.info.schemeContent||t.info.arrayBufferContent)&&(o="scheme")),n=D(),U(n),n.promise?(a=setTimeout(function(){i.notify({type:"chkcontent",cnt:1,hideCnt:!0,cancel:function(){n.reject()}})},100),n.always(function(){a&&clearTimeout(a),i.notify({type:"chkcontent",cnt:-1})}).done(function(e){C.notifyWith(g,[o,g.data("hash"),v,r])}).fail(function(e){r.reject(e)})):C.notifyWith(g,[o,g.data("hash"),v,r]),r):r.resolve()},O=function(){T()&&j().fail(function(e){e&&i.error(e)})},S=function(){if(n.options.confirmUnsavedBeforeClose){var t=function(){var e;C.resolve(),g.editor&&(g.editor.close(g[0],g.editor.instance),e=g.editor.confObj,e.info&&e.info.syncInterval&&h(o.hash)),g.elfinderdialog("destroy")},a="undefined"!=typeof q.name,r=a?{label:"btnSaveAs",callback:function(){requestAnimationFrame(M)}}:{label:"btnSaveClose",callback:function(){j().done(function(){t()})}};F().done(function(o){var s=["confirmNotSave"],l={label:"btnDiscard",callback:function(){t()}};o?("string"==typeof o&&s.unshift(o),i.confirm({title:n.title,text:s,accept:r,cancel:{label:"btnCancel",callback:e.noop},buttons:a?[l]:[{label:"btnSaveAs",callback:function(){g.elfinderdialog("destroy"),requestAnimationFrame(M)}},l]})):t()})}else g.elfinderdialog("close")},I=function(){T()&&(b.hide(),j().done(function(){z=!1,b.show(),S()}).fail(function(e){b.show(),e&&i.error(e)}))},M=function(){if(T()){var t=v,r=o.phash,s=function(e){p.addClass(a).fadeIn(function(){e&&i.error(e)}),v=t,i.disable()},l=function(){n.mime=q.mime||o.mime,n.prefix=(q.name||o.name).replace(/ \d+(\.[^.]+)?$/,"$1"),n.requestCmd="mkfile",n.nextAction={},n.data={target:r},e.proxy(i.res("mixin","make"),n)().done(function(e){var t;e.added&&e.added.length?(t=g.data("hash"),g.data("hash",e.added[0].hash),j().done(function(){z=!1,b.show(),S(),p.fadeIn()}).fail(function(){i.exec("rm",[e.added[0].hash],{forceRm:!0,quiet:!0}),g.data("hash",t),b.find("button.elfinder-btncnt-2").hide(),s()})):s()}).progress(function(e){e&&"errUploadMime"===e&&g.trigger("saveAsFail")}).fail(s).always(function(){delete n.mime,delete n.prefix,delete n.nextAction,delete n.data}),i.trigger("unselectfiles",{files:[o.hash]})},c=null,d=null,p=i.getUI().children("."+n.dialogClass+":visible");b.is(":hidden")&&(p=p.add(b)),p.removeClass(a).fadeOut(),i.enable(),i.searchStatus.state<2&&r!==i.cwd().hash?c=i.exec("open",[r],{thash:r}):i.file(r)||(d=i.request({cmd:"info",targets:[r]})),e.when([c,d]).done(function(){d?i.one("infodone",function(){i.file(r)?l():s("errFolderNotFound")}):c?i.one("cwdrender",l):l()}).fail(s)}},F=function(){var t,n,a=e.Deferred();return z?(g.editor&&g.editor.save(g[0],g.editor.instance),t=D(),t&&t.promise?(n=setTimeout(function(){i.notify({type:"chkcontent",cnt:1,hideCnt:!0,cancel:function(){t.reject()}})},100),t.always(function(){n&&clearTimeout(n),i.notify({type:"chkcontent",cnt:-1})}).done(function(e){a.resolve(v!==e)}).fail(function(e){a.resolve(e||void 0!==v)})):a.resolve(v!==t),a):a.resolve(!1)},E={title:i.escape(o.name),width:d(),height:p(),buttons:{},cssClass:a,maxWidth:"window",maxHeight:"window",allowMinimize:!0,allowMaximize:!0,openMaximized:x()||u&&u.info&&u.info.openMaximized,btnHoverFocus:!1,closeOnEscape:!1,propagationEvents:["mousemove","mouseup","click"],minimize:function(){var e;g.editor&&b.closest(".ui-dialog").is(":hidden")&&(e=g.editor.confObj,e.info&&e.info.syncInterval&&h(o.hash))},headerBtnCloseAction:n.options.confirmUnsavedBeforeClose?function(){S()}:void 0,close:function(){if(!n.options.confirmUnsavedBeforeClose){var e=function(){var e;C.resolve(),g.editor&&(g.editor.close(g[0],g.editor.instance),e=g.editor.confObj,e.info&&e.info.syncInterval&&h(o.hash)),g.elfinderdialog("destroy")},t="undefined"!=typeof q.name,a=t?{label:"btnSaveAs",callback:function(){requestAnimationFrame(M)}}:{label:"btnSaveClose",callback:function(){j().done(function(){e()})}};F().done(function(o){var r=["confirmNotSave"];o?("string"==typeof o&&r.unshift(o),i.confirm({title:n.title,text:r,accept:a,cancel:{label:"btnClose",callback:e},buttons:t?null:[{label:"btnSaveAs",callback:function(){requestAnimationFrame(M)}}]})):e()})}},open:function(){var e,n,a;if(g.initEditArea.call(g,t,o,r,i),g.editor){if(e=g.editor.load(g[0])||null,e&&e.done)e.always(function(){z=!0}).done(function(e){g.editor.instance=e,g.editor.focus(g[0],g.editor.instance),U(D()),requestAnimationFrame(function(){b.trigger("resize")})}).fail(function(e){e&&i.error(e),g.elfinderdialog("destroy")}).always(A);else{if(z=!0,e&&("string"==typeof e||Array.isArray(e)))return i.error(e),void g.elfinderdialog("destroy");g.editor.instance=e,g.editor.focus(g[0],g.editor.instance),U(D()),requestAnimationFrame(function(){b.trigger("resize")}),A()}n=g.editor.confObj,n.info&&n.info.syncInterval&&(a=parseInt(n.info.syncInterval))&&setTimeout(function(){P(a)},a)}else z=!0,U(D())},resize:function(e,t){g.editor&&g.editor.resize(g[0],g.editor.instance,e,t||{})}},D=function(){var t=g.getContent.call(g,g[0]);return void 0!==t&&t!==!1&&null!==t||(t=e.Deferred().reject()),t},U=function(e){e&&e.promise?e.done(function(e){v=e}):v=e},P=function(e){b.is(":visible")&&(h(o.hash),setTimeout(function(){P(e)},e))},R=function(){y&&F().done(function(e){e?y.attr("title",i.i18n("saveAsEncoding")).addClass("elfinder-edit-changed"):y.attr("title",i.i18n("openAsEncoding")).removeClass("elfinder-edit-changed")})},q={};if(u&&(u.html&&(g=e(u.html)),w={init:u.init||null,load:u.load,getContent:u.getContent||null,save:u.save,beforeclose:"function"==typeof u.beforeclose?u.beforeclose:void 0,close:"function"==typeof u.close?u.close:function(){},focus:"function"==typeof u.focus?u.focus:function(){},resize:"function"==typeof u.resize?u.resize:function(){},instance:null,doSave:O,doCancel:S,doClose:I,file:o,fm:i,confObj:u,trigger:function(e,t){i.trigger("editEditor"+e,Object.assign({},u.info||{},t))}}),!g){if(!i.mimeIsText(o.mime))return C.reject("errEditorNotFound");!function(){g=e('').on("input propertychange",R),u&&u.info&&!u.info.useTextAreaEvent||g.on("keydown",function(t){var n,i,a=t.keyCode;t.stopPropagation(),a==e.ui.keyCode.TAB&&(t.preventDefault(),this.setSelectionRange&&(n=this.value,i=this.selectionStart,this.value=n.substr(0,i)+"\t"+n.substr(this.selectionEnd),i+=1,this.setSelectionRange(i,i))),(t.ctrlKey||t.metaKey)&&(a!="Q".charCodeAt(0)&&a!="W".charCodeAt(0)||(t.preventDefault(),S()),a=="S".charCodeAt(0)&&(t.preventDefault(),O()))}).on("mouseenter",function(){this.focus()}),g.initEditArea=function(e,t,n){g.hide().val(n),this._setupSelEncoding(n)}}()}return g._setupSelEncoding=function(t){var n=s&&"unknown"!==s?[{value:s}]:[],a=e("").hide(),r=function(t){t&&a.appendTo(y.parent()),a.empty().append(e("").text(y.val())),y.width(a.width())};""!==t&&s&&"UTF-8"===s||n.push({value:"UTF-8"}),y=c(n).on("touchstart",function(e){e.stopPropagation()}).on("change",function(){F().done(function(e){e||""===D()||(S(),m(o,y.val(),u).fail(function(e){e&&i.error(e)}))}),r()}).on("mouseover",R),g.parent().next().prepend(e('
').append(y)),r(!0)},g.data("hash",o.hash),w&&(g.editor=w,"function"==typeof w.beforeclose&&(E.beforeclose=function(){return w.beforeclose(g[0],w.instance)}),"function"==typeof w.init&&(g.initEditArea=w.init),"function"==typeof w.getContent&&(g.getContent=w.getContent)),g.initEditArea||(g.initEditArea=function(){}),g.getContent||(g.getContent=function(){return l(g.val())}),u&&u.info&&u.info.preventGet||(E.buttons[i.i18n("btnSave")]=O,E.buttons[i.i18n("btnSaveClose")]=I,E.buttons[i.i18n("btnSaveAs")]=M,E.buttons[i.i18n("btnCancel")]=S),u&&"function"==typeof u.prepare&&u.prepare(g,E,o),b=n.fmDialog(g,E).attr("id",t).on("keydown keyup keypress",function(e){e.stopPropagation()}).css({overflow:"hidden",minHeight:"7em"}).addClass("elfinder-edit-editor").closest(".ui-dialog").on("changeType",function(t,n){if(n.extention&&n.mime){var a=(n.extention,n.mime,e(this).children(".ui-dialog-buttonpane").children(".ui-dialog-buttonset"));a.children(".elfinder-btncnt-0,.elfinder-btncnt-1").hide(),q.name=i.splitFileExtention(o.name)[0]+"."+n.extention,q.mime=n.mime,n.keepEditor||a.children(".elfinder-btncnt-2").trigger("click")}}),k=(i.options.dialogContained?i.getUI():e(window)).width(),b.width()>k&&b.width(k),C.promise()},m=function(t,a,o){var r,s,l,d=t.hash,p=(i.options,e.Deferred()),u="edit-"+i.namespace+"-"+t.hash,h=i.getUI().find("#"+u),g=a?a:0,v=!1;if(h.length)return h.elfinderdialog("toTop"),p.resolve();if(!(t.read&&(t.write||o.info&&o.info.converter)))return s=["errOpen",t.name,"errPerm"],p.reject(s);if(o&&o.info){if("function"==typeof o.info.edit)return l=o.info.edit.call(i,t,o),l.promise?l.done(function(){p.resolve()}).fail(function(e){p.reject(e)}):l?p.resolve():p.reject(),p;v=o.info.preventGet||o.info.noContent,o.info.urlAsContent||v?(r=e.Deferred(),o.info.urlAsContent?i.url(d,{async:!0,onetime:!0,temporary:!0}).done(function(e){r.resolve({content:e})}):r.resolve({})):(g&&(t.encoding=g,i.cache(t,"change")),r=i.request({data:{cmd:"get",target:d,conv:g,_t:t.ts},options:{type:"get",cache:!0},notify:{type:"file",cnt:1},preventDefault:!0})),r.done(function(a){var r,s,l;a.doconv?i.confirm({title:n.title,text:"unknown"===a.doconv?"confirmNonUTF8":"confirmConvUTF8",accept:{label:"btnConv",callback:function(){p=m(t,r.val(),o)}},cancel:{label:"btnCancel",callback:function(){p.reject()}},optionsCallback:function(t){t.create=function(){var t=e('
'),n={value:a.doconv};"unknown"===a.doconv&&(n.caption="-"),r=c([n]),e(this).next().find(".ui-dialog-buttonset").prepend(t.append(e("").append(r)))}}}):(!v&&i.mimeIsText(t.mime)&&(s=new RegExp("^(data:"+t.mime.replace(/([.+])/g,"\\$1")+";base64,)","i"),o.info.dataScheme?window.btoa&&!a.content.match(s)&&(a.content="data:"+t.mime+";base64,"+btoa(a.content)):window.atob&&(l=a.content.match(s))&&(a.content=atob(a.content.substr(l[1].length)))),f(u,t,a.content,a.encoding,o,a.toasts).done(function(e){p.resolve(e)}).progress(function(e,t,n,a){var o=this;t&&(d=t),i.request({options:{type:"post"},data:{cmd:"put",target:d,encoding:e||n.encoding,content:n},notify:{type:"save",cnt:1},syncOnFail:!0,preventFail:!0,navigate:{target:"changed",toast:{inbuffer:{msg:i.i18n(["complete",i.i18n("btnSave")])}}}}).fail(function(e){p.reject(e),a.reject()}).done(function(e){requestAnimationFrame(function(){o.trigger("focus"),o.editor&&o.editor.focus(o[0],o.editor.instance)}),a.resolve()})}).fail(function(e){p.reject(e)}))}).fail(function(e){var n=i.parseError(e);n=Array.isArray(n)?n[0]:n,t.encoding&&(t.encoding="",i.cache(t,"change")),"errConvUTF8"!==n&&i.sync(),p.reject(e)})}return p.promise()},g={},v={info:{id:"textarea",name:"TextArea",useTextAreaEvent:!0},load:function(t){this.trigger("Prepare",{node:t,editorObj:void 0,instance:void 0,opts:{}}),t.setSelectionRange&&t.setSelectionRange(0,0),e(t).trigger("focus").show()},save:function(){}},b=function(a,o){var r=function(t,n){if(n){if("*"===n[0]||e.inArray(t,n)!==-1)return!0;var a,o;for(o=n.length,a=0;a0||!t.info.converter&&t.info.canMakeEmpty!==!1&&i.mimesCanMakeEmpty[a.mime])&&(!t.info.maxSize||a.size<=t.info.maxSize)&&r(a.mime,t.mimes||null)&&s(a.name,t.exts||null)&&"function"==typeof t.load&&"function"==typeof t.save&&(n=t.info.name?t.info.name:"Editor "+e,t.id=t.info.id?t.info.id:"editor"+e,t.name=n,t.i18n=i.i18n(n),g[t.id]=t)}),!!Object.keys(g).length},y=function(n,a){n&&a&&(e.isPlainObject(t)||(t={}),t[n]=a.id,i.storage("storedEditors",t),i.trigger("selectfiles",{files:i.selected()}))},w=function(){var e=i.storage("useStoredEditor");return e?e>0:n.options.useStoredEditor},x=function(){var e=i.storage("editorMaximized");return e?e>0:n.options.editorMaximized},k=function(t,n){var a=[];return e.each(g,function(e,o){a.push({label:i.escape(o.i18n),icon:o.info&&o.info.icon?o.info.icon:"edit",options:{iconImg:o.info&&o.info.iconImg?i.baseUrl+o.info.iconImg:void 0},callback:function(){y(t[0].mime,o),n&&n.call(o)}})}),a},C=function(e){return e.toLowerCase().replace(/ +/g,"")},z=function(e){var n=t[e];return n&&Object.keys(g).length?g[C(n)]:void 0};this.getEncSelect=c,this.shortcuts=[{pattern:"ctrl+e"}],this.init=function(){var t,n,i=this,a=this.fm,l=this.options,c=[];this.onlyMimes=this.options.mimes||[],a.one("open",function(){l.editors&&Array.isArray(l.editors)&&(a.trigger("canMakeEmptyFile",{mimes:Object.keys(a.storage("mkfileTextMimes")||{}).concat(l.makeTextMimes||["text/plain"])}),e.each(l.editors,function(e,t){t.info&&t.info.cmdCheck&&c.push(t.info.cmdCheck)}),c.length?a.api>=2.103?n=a.request({data:{cmd:"editor",name:c,method:"enabled"},preventDefault:!0}).done(function(e){t=e}).fail(function(){t={}}):(t={},n=e.Deferred().resolve()):n=e.Deferred().resolve(),n.always(function(){t&&(l.editors=e.grep(l.editors,function(e){return!e.info||!e.info.cmdCheck||!!t[e.info.cmdCheck]})),e.each(l.editors,function(e,t){t.setup&&"function"==typeof t.setup&&t.setup.call(t,l,a),t.disabled||(t.mimes&&Array.isArray(t.mimes)&&(o=o.concat(t.mimes),t.info&&t.info.single||(r=r.concat(t.mimes))),!s&&t.mimes&&"*"===t.mimes[0]&&(s=!0),t.info||(t.info={}),t.info.integrate&&a.trigger("helpIntegration",Object.assign({cmd:"edit"},t.info.integrate)),t.info.canMakeEmpty&&a.trigger("canMakeEmptyFile",{mimes:Array.isArray(t.info.canMakeEmpty)?t.info.canMakeEmpty:t.mimes}))}),o=(e.uniqueSort||e.unique)(o),r=(e.uniqueSort||e.unique)(r),l.editors=e.grep(l.editors,function(e){return!e.disabled})}))}).bind("select",function(){g=null}).bind("contextmenucreate",function(t){var n,o,r=function(e){var t=i.title;a.one("contextmenucreatedone",function(){i.title=t}),i.title=a.escape(e.i18n),e.info&&e.info.iconImg&&(i.contextmenuOpts={iconImg:a.baseUrl+e.info.iconImg}),delete i.variants};i.contextmenuOpts=void 0,"files"===t.data.type&&i.enabled()&&(n=a.file(t.data.targets[0]),b(n,t.data.targets.length)&&(Object.keys(g).length>1?w()&&(o=z(n.mime))?(r(o),i.extra={icon:"menu",node:e("").attr({title:a.i18n("select")}).on("click touchstart",function(t){if(!("touchstart"===t.type&&t.originalEvent.touches.length>1)){var n=e(this);t.stopPropagation(),t.preventDefault(),a.trigger("contextmenu",{raw:k(a.selectedFiles(),function(){var e=a.selected();a.exec("edit",e,{editor:this}),a.trigger("selectfiles",{files:e})}),x:n.offset().left,y:n.offset().top})}})}):(delete i.extra,i.variants=[],e.each(g,function(e,t){i.variants.push([{editor:t},t.i18n,t.info&&t.info.iconImg?a.baseUrl+t.info.iconImg:"edit"])})):(r(g[Object.keys(g)[0]]),delete i.extra)))}).bind("canMakeEmptyFile",function(t){if(t.data&&t.data.resetTexts){var n=a.arrayFlip(i.options.makeTextMimes||["text/plain"]),o=i.getMkfileHides();e.each(a.storage("mkfileTextMimes")||{},function(e,t){n[e]||(delete a.mimesCanMakeEmpty[e],delete o[e])}),a.storage("mkfileTextMimes",null),Object.keys(o).length?a.storage("mkfileHides",o):a.storage("mkfileHides",null)}})},this.getstate=function(e){var t=this.files(e),n=t.length;return n&&u(t).length==n?0:-1},this.exec=function(t,n){var i,a=this.fm,o=u(this.files(t)),r=e.map(o,function(e){return e.hash}),s=[],l=n&&n.editor?n.editor:null,c=e(n&&n._currentNode?n._currentNode:a.cwdHash2Elm(r[0])),d=function(){var t=e.Deferred();return!l&&Object.keys(g).length>1?w()&&(l=z(o[0].mime))?t.resolve(l):(a.trigger("contextmenu",{raw:k(o,function(){t.resolve(this)}),x:c.offset().left,y:c.offset().top+22,opened:function(){a.one("closecontextmenu",function(){requestAnimationFrame(function(){"pending"===t.state()&&t.reject()})})}}),a.trigger("selectfiles",{files:r}),t):(Object.keys(g).length>1&&l&&y(o[0].mime,l),t.resolve(l?l:Object.keys(g).length?g[Object.keys(g)[0]]:null))},p=e.Deferred();return null===g&&b(o[0],r.length),c.length||(c=a.getUI("cwd")),d().done(function(t){for(;i=o.shift();)s.push(m(i,i.encoding||void 0,t).fail(function(e){e&&a.error(e)}));s.length?e.when.apply(null,s).done(function(){p.resolve()}).fail(function(){p.reject()}):p.reject()}).fail(function(){p.reject()}),p},this.getMkfileHides=function(){return i.storage("mkfileHides")||i.arrayFlip(n.options.mkfileHideMimes||[])}},i.prototype.commands.emailto=function(){var t=this,n=t.fm,i=function(t){var n,i,a,o=t.length;return o>1&&(n=t[0].mime,i=t[0].name.replace(/^.*(\.[^.]+)$/,"$1")),e.grep(t,function(e){return!a&&"directory"!==e.mime})};this.exec=function(e){var t=n.url(e[0],0),i=t.split("/").pop(),a="";if(a=prompt("Please enter mail address"),null!=a){var o=a.match(/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i);return null==o?void alert("Please enter a valid email address"):void window.open("mailto:"+a+"?subject="+i+"&body="+t)}},this.getstate=function(e){var t=this.files(e),n=t.length;return n&&i(t).length==n?0:-1}},i.prototype.commands.empty=function(){var t,n,i=function(e){var i=t.files(e);return i.length||(i=[n.cwd()]),i};this.linkedCmds=["rm"],this.init=function(){t=this,n=this.fm},this.getstate=function(t){var n,a=i(t),o=function(t){var n=!0;return e.grep(t,function(e){return n=!!(n&&e.read&&e.write&&"directory"===e.mime)})};return n=a.length,o(a).length==n?0:-1},this.exec=function(t){var a=i(t),o=a.length,r=e.Deferred().done(function(){var t={changed:{}};n.toast({msg:n.i18n(['"'+s.join('", ')+'"',"complete",n.i18n("cmdempty")])}),e.each(a,function(e,n){t.changed[n.hash]=n}),n.change(t)}).always(function(){var t=n.cwd().hash;n.trigger("selectfiles",{files:e.map(a,function(e){return t===e.phash?e.hash:null})})}),s=[],l=function(e){"number"==typeof e?(s.push(a[e].name),delete a[e].dirs):e&&n.error(e),--o<1&&r[s.length?"resolve":"reject"]()};return e.each(a,function(t,i){var a;return i.write&&"directory"===i.mime?n.isCommandEnabled("rm",i.hash)?(a=setTimeout(function(){n.notify({type:"search",cnt:1,hideCnt:!(o>1)})},n.notifyDelay),void n.request({data:{cmd:"open",target:i.hash},preventDefault:!0,asNotOpen:!0}).done(function(r){var s=[];a&&clearTimeout(a),n.ui.notify.children(".elfinder-notify-search").length&&n.notify({type:"search",cnt:-1,hideCnt:!(o>1)}),r&&r.files&&r.files.length?r.files.length>n.maxTargets?l(["errEmpty",i.name,"errMaxTargets",n.maxTargets]):(n.updateCache(r),e.each(r.files,function(e,t){return!t.write||t.locked?(l(["errEmpty",i.name,"errRm",t.name,"errPerm"]),s=[],!1):void s.push(t.hash)}),s.length&&n.exec("rm",s,{_userAction:!0,addTexts:[n.i18n("folderToEmpty",i.name)]}).fail(function(e){n.trigger("unselectfiles",{files:n.selected()}),l(n.parseError(e)||"")}).done(function(){l(t)})):(n.toast({mode:"warning",msg:n.i18n("filderIsEmpty",i.name)}),l(""))}).fail(function(e){l(n.parseError(e)||"")})):(l(["errCmdNoSupport",'"rm"']),null):(l(["errEmpty",i.name,"errPerm"]),null)}),r}},i.prototype.commands.extract=function(){var t=this,n=t.fm,i=[],a=function(t){var n=!0;return e.grep(t,function(t){return n=!(!n||!t.read||e.inArray(t.mime,i)===-1)})};this.variants=[],this.disableOnSearch=!0,n.bind("open reload",function(){i=n.option("archivers").extract||[],n.api>2?t.variants=[[{makedir:!0},n.i18n("cmdmkdir")],[{},n.i18n("btnCwd")]]:t.variants=[[{},n.i18n("btnCwd")]],t.change()}),this.getstate=function(t){var i,o,r=this.files(t),s=r.length;return s&&a(r).length==s?n.searchStatus.state>0?(i=this.fm.cwd().hash,e.each(r,function(e,t){return o=t.phash===i}),o?0:-1):this.fm.cwd().write?0:-1:-1},this.exec=function(t,a){var o,r,s,l=this.files(t),c=e.Deferred(),d=l.length,p=a&&a.makedir?1:0,u=!1,h=!1,f=0,m=n.files(l[0].phash),g=[],v={};e.each(m,function(e,t){v[t.name]=t,g.push(t.name)});var b=function(e){switch(e){case"overwrite_all":u=!0;break;case"omit_all":h=!0}},y=function(t){t.read&&n.file(t.phash).write?e.inArray(t.mime,i)===-1?(r=["errExtract",t.name,"errNoArchive"],n.error(r),c.reject(r)):n.request({data:{cmd:"extract",target:t.hash,makedir:p},notify:{type:"extract",cnt:1},syncOnFail:!0,navigate:{toast:p?{incwd:{msg:n.i18n(["complete",n.i18n("cmdextract")]),action:{cmd:"open",msg:"cmdopen"}},inbuffer:{msg:n.i18n(["complete",n.i18n("cmdextract")]),action:{cmd:"open",msg:"cmdopen"}}}:{inbuffer:{msg:n.i18n(["complete",n.i18n("cmdextract")])}}}}).fail(function(e){"rejected"!=c.state()&&c.reject(e)}).done(function(){}):(r=["errExtract",t.name,"errPerm"],n.error(r),c.reject(r))},w=function(t,i){var a=t[i],r=n.splitFileExtention(a.name)[0],l=e.inArray(r,g)>=0,m=function(){i+10&&y(a),m())};return this.enabled()&&d&&i.length?(d>0&&w(l,0),c):c.reject()}},(i.prototype.commands.forward=function(){this.alwaysEnabled=!0,this.updateOnSelect=!0,this.shortcuts=[{pattern:"ctrl+right"}],this.getstate=function(){return this.fm.history.canForward()?0:-1},this.exec=function(){return this.fm.history.forward()}}).prototype={forceLoad:!0},i.prototype.commands.fullscreen=function(){var t=this,n=this.fm,i=function(e,i){var a;e.preventDefault(),e.stopPropagation(),i&&i.fullscreen&&(a="on"===i.fullscreen,t.update(void 0,a),t.title=n.i18n(a?"reinstate":"cmdfullscreen"))};this.alwaysEnabled=!0,this.updateOnSelect=!1,this.syncTitleOnChange=!0,this.value=!1,this.options={ui:"fullscreenbutton"},this.getstate=function(){return 0},this.exec=function(){var i=n.getUI().get(0),a=i===n.toggleFullscreen(i);return t.title=n.i18n(a?"reinstate":"cmdfullscreen"),t.update(void 0,a),e.Deferred().resolve()},n.bind("init",function(){n.getUI().off("resize."+n.namespace,i).on("resize."+n.namespace,i)})},(i.prototype.commands.getfile=function(){var t=this,n=this.fm,i=function(n){var i=t.options,a=!0;return n=e.grep(n,function(e){return a=!(!a||"directory"==e.mime&&!i.folders||!e.read)}),i.multiple||1==n.length?n:[]};this.alwaysEnabled=!0,this.callback=n.options.getFileCallback,this._disabled="function"==typeof this.callback,this.getstate=function(e){var t=this.files(e),n=t.length;return this.callback&&n&&i(t).length==n?0:-1},this.exec=function(n){var i,a,o,r=this.fm,s=this.options,l=this.files(n),c=l.length,d=r.option("url"),p=r.option("tmbUrl"),u=e.Deferred().done(function(e){var n,i=function(){"close"==s.oncomplete?r.hide():"destroy"==s.oncomplete&&r.destroy()},a=function(e){"close"==s.onerror?r.hide():"destroy"==s.onerror?r.destroy():e&&r.error(e)};r.trigger("getfile",{files:e});try{n=t.callback(e,r)}catch(o){return void a(["Error in `getFileCallback`.",o.message])}"object"==typeof n&&"function"==typeof n.done?n.done(i).fail(a):i()}),h=function(t){return s.onlyURL?s.multiple?e.map(l,function(e){return e.url}):l[0].url:s.multiple?l:l[0]},f=[];for(i=0;i {link}
',d='
{author}
{work}
',p=/\{url\}/,u=/\{link\}/,h=/\{author\}/,f=/\{work\}/,m="replace",g="ui-priority-primary",v="ui-priority-secondary",b="elfinder-help-license",y='
  • {title}
  • ',w=['
    ','
      '],x='
      {pattern}
      {descrip}
      ',k='
      ',C=e("base").length?s.escape(document.location.href.replace(/#.*$/,"")):"",z=s.res("class","tabsactive"),T=function(){var e;return e=s.theme&&s.theme.author?d[m]("elfinder-help-team","elfinder-help-team elfinder-help-term-theme")[m](h,s.i18n(s.theme.author)+(s.theme.email?" <"+s.theme.email+">":""))[m](f,s.i18n("theme")+" ("+s.i18n(s.theme.name)+")"):''},A=function(){w.push('
      '),w.push("

      elFinder

      "),w.push('
      '+s.i18n("webfm")+"
      "), +w.push('
      '+s.i18n("ver")+": "+s.version+"
      "),w.push('
      '+s.i18n("protocolver")+':
      '),w.push('
      jQuery/jQuery UI: '+e().jquery+"/"+e.ui.version+"
      "),w.push(k),w.push(c[m](p,"https://studio-42.github.io/elFinder/")[m](u,s.i18n("homepage"))),w.push(c[m](p,"https://github.com/Studio-42/elFinder/wiki")[m](u,s.i18n("docs"))),w.push(c[m](p,"https://github.com/Studio-42/elFinder")[m](u,s.i18n("github"))),w.push(k),w.push('
      '+s.i18n("team")+"
      "),w.push(d[m](h,'Dmitry "dio" Levashov <dio@std42.ru>')[m](f,s.i18n("chiefdev"))),w.push(d[m](h,"Naoki Sawada (nao-pon)<hypweb+elfinder@gmail.com>")[m](f,s.i18n("developer"))),w.push(d[m](h,"Troex Nevelin <troex@fury.scancode.ru>")[m](f,s.i18n("maintainer"))),w.push(d[m](h,"Alexey Sukhotin <strogg@yandex.ru>")[m](f,s.i18n("contributor"))),s.i18[s.lang].translator&&e.each(s.i18[s.lang].translator.split(", "),function(){w.push(d[m](h,e.trim(this))[m](f,s.i18n("translator")+" ("+s.i18[s.lang].language+")"))}),w.push(T()),w.push(k),w.push('
      '+s.i18n("icons")+': Pixelmixer, Fugue, Icons8
      '),w.push(k),w.push('
      Licence: 3-clauses BSD Licence
      '),w.push('
      Copyright © 2009-2024, Studio 42 / nao-pon
      '),w.push('
      „ …'+s.i18n("dontforget")+" ”
      "),w.push("
      ")},j=function(){var t=s.shortcuts();w.push('
      '),t.length?(w.push('
      '),e.each(t,function(e,t){w.push(x.replace(/\{pattern\}/,t[0]).replace(/\{descrip\}/,t[1]))}),w.push("
      ")):w.push('
      '+s.i18n("shortcutsof")+"
      "),w.push("
      ")},O=function(){w.push('
      '),w.push('DON\'T PANIC'),w.push("
      ")},S=!1,I=function(){S=!0,w.push('
      ')},M=!1,F=function(){M=!0,w.push('
      '),w.push('
        '),w.push("
        ")},E=function(){var n,i,a,c,d,p,u=function(t,n){return e.each(n,function(n,i){t.append(e("
        ").text(n)),"undefined"==typeof i?t.append(e("
        ").append(e("").text("undfined"))):"object"!=typeof i||i?"object"==typeof i&&(e.isPlainObject(i)||i.length)?t.append(e("
        ").append(u(e("
        "),i))):t.append(e("
        ").append(e("").text(i&&"object"==typeof i?"[]":i?i:'""'))):t.append(e("
        ").append(e("").text("null")))}),t},h=r.children("li").length;(l.debug.options||l.debug.debug)&&(h>=5&&(d=r.children("li:last"),p=o.children("div:last"),p.is(":hidden")?(d.remove(),p.remove()):(d.prev().remove(),p.prev().remove())),a=s.namespace+"-help-debug-"+ +new Date,n=e("
      • ").html(''+l.debug.debug.cmd+"").prependTo(r),i=e('
        ').data("debug",l.debug),n.on("click.debugrender",function(){var t=i.data("debug");i.removeData("debug"),t&&(i.hide(),t.debug&&(c=e("
        ").append(e("").text("debug"),u(e("
        "),t.debug)),i.append(c)),t.options&&(c=e("
        ").append(e("").text("options"),u(e("
        "),t.options)),i.append(c)),i.show()),n.off("click.debugrender")}),r.after(i),t&&o.tabs("refresh"))},D="";this.alwaysEnabled=!0,this.updateOnSelect=!1,this.state=-1,this.shortcuts=[{pattern:"f1",description:this.title}],s.bind("load",function(){var c,d,p,u,h,f,g=l.options.view||["about","shortcuts","help","integrations","debug"];(c=e.inArray("preference",g))!==-1&&g.splice(c,1),e.fn.tabs||(c=e.inArray(g,"debug"))!==-1&&g.splice(c,1),e.each(g,function(e,t){w.push(y[m](/\{id\}/g,t)[m](/\{title\}/,s.i18n(t)))}),w.push("
      "),e.inArray("about",g)!==-1&&A(),e.inArray("shortcuts",g)!==-1&&j(),e.inArray("help",g)!==-1&&(d=s.i18nBaseUrl+"help/%s.html.js",O()),e.inArray("integrations",g)!==-1&&I(),e.inArray("debug",g)!==-1&&F(),w.push("
      "),D=e(w.join("")),D.find(".ui-tabs-nav li").on("mouseenter mouseleave",function(t){e(this).toggleClass("ui-state-hover","mouseenter"===t.type)}).on("focus blur","a",function(t){e(t.delegateTarget).toggleClass("ui-state-focus","focusin"===t.type)}).children().on("click",function(t){var n=e(this);t.preventDefault(),t.stopPropagation(),n.parent().addClass(z).siblings().removeClass(z),D.children(".ui-tabs-panel").hide().filter(n.attr("href")).show()}).filter(":first").trigger("click"),S&&(n=D.find(".elfinder-help-tab-integrations").hide(),i=D.find("#"+s.namespace+"-help-integrations").hide().append(e('
      ').html(s.i18n("integrationWith"))),s.bind("helpIntegration",function(t){var a,o,r,l,c=i.children("ul:first");t.data&&(e.isPlainObject(t.data)?(a=Object.assign({link:"",title:"",banner:""},t.data),(a.title||a.link)&&(a.title||(a.title=a.link),o=a.link?e("").attr("href",a.link).attr("target","_blank").text(a.title):e("").text(a.title),a.banner&&(o=e("").append(e("").attr(a.banner),o)))):(o=e(t.data),o.filter("a").each(function(){var t=e(this);t.attr("target")||t.attr("target","_blank")})),o&&(n.show(),c.length||(c=e('
        ').appendTo(i)),a&&a.cmd?(l="elfinder-help-integration-"+a.cmd,r=c.find("ul."+l),r.length||(r=e('
          '),c.append(e("
        • ").append(e("").html(s.i18n("cmd"+a.cmd))).append(r))),o=r.append(e("
        • ").append(o))):c.append(e("
        • ").append(o))))}).bind("themechange",function(){D.find("div.elfinder-help-term-theme").replaceWith(T())})),M&&(a=D.find(".elfinder-help-tab-debug").hide(),o=D.find("#"+s.namespace+"-help-debug").children("div:first"),r=o.children("ul:first").on("click",function(e){e.preventDefault(),e.stopPropagation()}),l.debug={},s.bind("backenddebug",function(e){M&&e.data&&e.data.debug&&(l.debug={options:e.data.options,debug:Object.assign({cmd:s.currentReqCmd},e.data.debug)},l.dialog&&E())})),D.find("#"+s.namespace+"-help-about").find(".apiver").text(s.api),l.dialog=l.fmDialog(D,{title:l.title,width:530,maxWidth:"window",maxHeight:"window",autoOpen:!1,destroyOnClose:!1,close:function(){M&&(a.hide(),o.tabs("destroy")),t=!1}}).on("click",function(e){e.stopPropagation()}).css({overflow:"hidden"}),p=l.dialog.children(".ui-tabs"),u=p.children(".ui-tabs-nav:first"),h=p.children(".ui-tabs-panel"),f=l.dialog.outerHeight(!0)-l.dialog.height(),l.dialog.closest(".ui-dialog").on("resize",function(){h.height(l.dialog.height()-f-u.outerHeight(!0)-20)}),d&&l.dialog.one("initContents",function(){e.ajax({url:l.options.helpSource?l.options.helpSource:d.replace("%s",s.lang),dataType:"html"}).done(function(t){e("#"+s.namespace+"-help-help").html(t)}).fail(function(){e.ajax({url:d.replace("%s","en"),dataType:"html"}).done(function(t){e("#"+s.namespace+"-help-help").html(t)})})}),l.state=0,s.trigger("helpBuilded",l.dialog)}).one("open",function(){var e=!1;s.one("backenddebug",function(){e=!0}).one("opendone",function(){requestAnimationFrame(function(){!e&&M&&(M=!1,a.hide(),o.hide(),r.hide())})})}),this.getstate=function(){return 0},this.exec=function(n,i){var s=i?i.tab:void 0,l=function(){M&&(o.tabs(),r.find("a:first").trigger("click"),a.show(),t=!0)};return l(),this.dialog.trigger("initContents").elfinderdialog("open").find((s?".elfinder-help-tab-"+s:".ui-tabs-nav li")+" a:first").trigger("click"),e.Deferred().resolve()}}).prototype={forceLoad:!0},i.prototype.commands.hidden=function(){this.hidden=!0,this.updateOnSelect=!1,this.getstate=function(){return-1}},i.prototype.commands.hide=function(){var t,n,i,a,o=this,r={};this.syncTitleOnChange=!0,this.shortcuts=[{pattern:"ctrl+shift+dot",description:this.fm.i18n("toggleHidden")}],this.init=function(){var e=this.fm;t=e.storage("hide")||{items:{}},n=Object.keys(t.items).length,this.title=e.i18n(t.show?"hideHidden":"showHidden"),o.update(void 0,o.title)},this.fm.bind("select contextmenucreate closecontextmenu",function(e,r){var s=(e.data?e.data.selected||e.data.targets:null)||r.selected();"select"===e.type&&e.data?a=e.data.origin:"contextmenucreate"===e.type&&(i=e.data.type),!s.length||("contextmenucreate"!==e.type&&"navbar"!==a||"cwd"===i)&&s[0]===r.cwd().hash?o.title=r.i18n(t.show?"hideHidden":"showHidden"):o.title=r.i18n("cmdhide"),"closecontextmenu"!==e.type?o.update("cwd"===i?n?0:-1:void 0,o.title):(i="",requestAnimationFrame(function(){o.update(void 0,o.title)}))}),this.getstate=function(e){return this.fm.cookieEnabled&&"cwd"!==i&&(e||this.fm.selected()).length||n?0:-1},this.exec=function(i,s){var l,c,d=this.fm,p=e.Deferred().done(function(){d.trigger("hide",{items:h,opts:s})}).fail(function(e){d.error(e)}),u=s||{},h=u.targets?u.targets:i||d.selected(),f=[];if(t=d.storage("hide")||{},e.isPlainObject(t)||(t={}),e.isPlainObject(t.items)||(t.items={}),("shortcut"===s._currentType||!h.length||"navbar"!==s._currentType&&"navbar"!==a&&h[0]===d.cwd().hash)&&(t.show?u.hide=!0:Object.keys(t.items).length&&(u.show=!0)),u.reset&&(u.show=!0,n=0),u.show||u.hide){if(u.show?t.show=!0:delete t.show,u.show)return d.storage("hide",u.reset?null:t),o.title=d.i18n("hideHidden"),o.update(u.reset?-1:void 0,o.title),e.each(t.items,function(e){var t=d.file(e,!0);t&&(d.searchStatus.state||!t.phash||d.file(t.phash))&&f.push(t)}),f.length&&(d.updateCache({added:f}),d.add({added:f})),u.reset&&(t={items:{}}),p.resolve();h=Object.keys(t.items)}return h.length&&(e.each(h,function(e,n){var i;t.items[n]||(i=d.file(n),i&&(r[n]=i.i18||i.name),t.items[n]=r[n]?r[n]:n)}),n=Object.keys(t.items).length,l=this.files(h),d.storage("hide",t),d.remove({removed:h}),t.show&&this.exec(void 0,{hide:!0}),u.hide||(c={},c.undo={cmd:"hide",callback:function(){var t=d.storage("hide");t&&(e.each(h,function(e,n){delete t.items[n]}),n=Object.keys(t.items).length,d.storage("hide",t),d.trigger("hide",{items:h,opts:{}}),o.update(n?0:-1)),d.updateCache({added:l}),d.add({added:l})}},c.redo={cmd:"hide",callback:function(){return d.exec("hide",void 0,{targets:h})}})),"rejected"==p.state()?p:p.resolve(c)}},(i.prototype.commands.home=function(){this.title="Home",this.alwaysEnabled=!0,this.updateOnSelect=!1,this.shortcuts=[{pattern:"ctrl+home ctrl+shift+up",description:"Home"}],this.getstate=function(){var e=this.fm.root(),t=this.fm.cwd().hash;return e&&t&&e!=t?0:-1},this.exec=function(){return this.fm.exec("open",this.fm.root())}}).prototype={forceLoad:!0},(i.prototype.commands.info=function(){var t=this.fm,n="elfinder-spinner",i="elfinder-info-button",a={calc:t.i18n("calc"),size:t.i18n("size"),unknown:t.i18n("unknown"),path:t.i18n("path"),aliasfor:t.i18n("aliasfor"),modify:t.i18n("modify"),perms:t.i18n("perms"),locked:t.i18n("locked"),dim:t.i18n("dim"),kind:t.i18n("kind"),files:t.i18n("files"),folders:t.i18n("folders"),roots:t.i18n("volumeRoots"),items:t.i18n("items"),yes:t.i18n("yes"),no:t.i18n("no"),link:t.i18n("link"),owner:t.i18n("owner"),group:t.i18n("group"),perm:t.i18n("perm"),getlink:t.i18n("getLink")},o=function(e,t){return t?e.replace(/\u200B/g,""):e.replace(/(\/|\\)/g,"$1​")};this.items=["size","aliasfor","path","link","dim","modify","perms","locked","owner","group","perm"],this.options.custom&&Object.keys(this.options.custom).length&&e.each(this.options.custom,function(e,t){t.label&&this.items.push(t.label)}),this.tpl={main:'
          {title}
          {content}
          ',itemTitle:'{name}{kind}',groupTitle:"{items}: {num}",row:'{label} : {value}',spinner:'{text} '},this.alwaysEnabled=!0,this.updateOnSelect=!1,this.shortcuts=[{pattern:"ctrl+i"}],this.init=function(){e.each(a,function(e,n){a[e]=t.i18n(n)})},this.getstate=function(){return 0},this.exec=function(t){var r=this.files(t);r.length||(r=this.files([this.fm.cwd().hash]));var s,l,c,d,p,u,h,f,m,g=this,v=this.fm,b=this.options,y=this.tpl,w=y.row,x=r.length,k=[],C=y.main,z="{label}",T="{value}",A=[],j=null,O={title:v.i18n("selectionInfo"),width:"auto",close:function(){e(this).elfinderdialog("destroy"),j&&"pending"===j.state()&&j.reject(),e.grep(A,function(e){e&&"pending"===e.state()&&e.reject()})}},S=[],I=function(e,t,i){F.find("."+n+"-"+t).parent().html(e).addClass(i||"")},M=v.namespace+"-info-"+e.map(r,function(e){return e.hash}).join("-"),F=v.getUI().find("#"+M),E=[],D="",U="elfinder-font-mono elfinder-info-hash",P=[],R=v.ui.notify;if(R.is(":hidden")&&R.children(".elfinder-notify").length&&R.elfinderdialog("open").height("auto"),!x)return e.Deferred().reject();if(F.length)return F.elfinderdialog("toTop"),e.Deferred().resolve();if(f=v.storage("infohides")||v.arrayFlip(b.hideItems,!0),1===x){if(c=r[0],c.icon&&(D=" "+v.getIconStyle(c)),C=C.replace("{dirclass}",c.csscls?v.escape(c.csscls):"").replace("{class}",v.mime2class(c.mime)).replace("{style}",D),d=y.itemTitle.replace("{name}",v.escape(c.i18||c.name)).replace("{kind}",''+v.mime2kind(c)+""),l=v.tmb(c),c.read?"directory"!=c.mime||c.alias?s=v.formatSize(c.size):(s=y.spinner.replace("{text}",a.calc).replace("{name}","size"),S.push(c.hash)):s=a.unknown,!f.size&&k.push(w.replace(z,a.size).replace(T,s)),!f.aleasfor&&c.alias&&k.push(w.replace(z,a.aliasfor).replace(T,c.alias)),f.path||((h=v.path(c.hash,!0))?k.push(w.replace(z,a.path).replace(T,o(v.escape(h))).replace("{class}","elfinder-info-path")):(k.push(w.replace(z,a.path).replace(T,y.spinner.replace("{text}",a.calc).replace("{name}","path")).replace("{class}","elfinder-info-path")),A.push(v.path(c.hash,!0,{notify:null}).fail(function(){I(a.unknown,"path")}).done(function(e){I(o(e),"path")})))),!f.link&&c.read){var q,H=v.escape(c.name);if("1"==c.url)k.push(w.replace(z,a.link).replace(T,'"));else{if(c.url)q=c.url;else if("directory"===c.mime)if(b.nullUrlDirLinkSelf&&null===c.url){var _=window.location;q=_.pathname+_.search+"#elf_"+c.hash}else""!==c.url&&v.option("url",!v.isRoot(c)&&c.phash||c.hash)&&(q=v.url(c.hash));else q=v.url(c.hash);q&&k.push(w.replace(z,a.link).replace(T,''+H+""))}}f.dim||(c.dim?k.push(w.replace(z,a.dim).replace(T,c.dim)):c.mime.indexOf("image")!==-1&&(c.width&&c.height?k.push(w.replace(z,a.dim).replace(T,c.width+"x"+c.height)):c.size&&"0"!==c.size&&(k.push(w.replace(z,a.dim).replace(T,y.spinner.replace("{text}",a.calc).replace("{name}","dim"))),A.push(v.request({data:{cmd:"dim",target:c.hash},preventDefault:!0}).fail(function(){I(a.unknown,"dim")}).done(function(e){if(I(e.dim||a.unknown,"dim"),e.dim){var t=e.dim.split("x"),n=v.file(c.hash);n.width=t[0],n.height=t[1]}}))))),!f.modify&&k.push(w.replace(z,a.modify).replace(T,v.formatDate(c))),!f.perms&&k.push(w.replace(z,a.perms).replace(T,v.formatPermissions(c))),!f.locked&&k.push(w.replace(z,a.locked).replace(T,c.locked?a.yes:a.no)),!f.owner&&c.owner&&k.push(w.replace(z,a.owner).replace(T,c.owner)),!f.group&&c.group&&k.push(w.replace(z,a.group).replace(T,c.group)),!f.perm&&c.perm&&k.push(w.replace(z,a.perm).replace(T,v.formatFileMode(c.perm))),window.ArrayBuffer&&(v.options.cdns.sparkmd5||v.options.cdns.jssha)&&"directory"!==c.mime&&c.size>0&&(!b.showHashMaxsize||c.size<=b.showHashMaxsize)&&(P=[],e.each(v.storage("hashchekcer")||b.showHashAlgorisms,function(e,t){c[t]?k.push(w.replace(z,v.i18n(t)).replace(T,c[t]).replace("{class}",U)):(k.push(w.replace(z,v.i18n(t)).replace(T,y.spinner.replace("{text}",a.calc).replace("{name}",t))),P.push(t))}),P.length&&(m=e('
          '),A.push(v.getContentsHashes(c.hash,P,b.showHashOpts,{progressBar:m}).progress(function(t){e.each(P,function(e,n){t[n]&&I(t[n],n,U)})}).always(function(){e.each(P,function(e,t){I(a.unknown,t)})})))),b.custom&&e.each(b.custom,function(t,n){f[n.label]||n.mimes&&!e.grep(n.mimes,function(e){return c.mime===e||0===c.mime.indexOf(e+"/")}).length||n.hashRegex&&!c.hash.match(n.hashRegex)||(k.push(w.replace(z,v.i18n(n.label)).replace(T,n.tpl.replace("{id}",M))),n.action&&"function"==typeof n.action&&E.push(n.action))})}else C=C.replace("{class}","elfinder-cwd-icon-group"),d=y.groupTitle.replace("{items}",a.items).replace("{num}",x),p=e.grep(r,function(e){return"directory"==e.mime}).length,p?(u=e.grep(r,function(e){return!("directory"!==e.mime||e.phash&&!e.isroot)}).length,p-=u,k.push(w.replace(z,a.kind).replace(T,u===x||p===x?a[u?"roots":"folders"]:e.map({roots:u,folders:p,files:x-u-p},function(e,t){return e?a[t]+" "+e:null}).join(", "))),!f.size&&k.push(w.replace(z,a.size).replace(T,y.spinner.replace("{text}",a.calc).replace("{name}","size"))),S=e.map(r,function(e){return e.hash})):(s=0,e.each(r,function(e,t){var n=parseInt(t.size);n>=0&&s>=0?s+=n:s="unknown"}),k.push(w.replace(z,a.kind).replace(T,a.files)),!f.size&&k.push(w.replace(z,a.size).replace(T,v.formatSize(s))));return C=C.replace("{title}",d).replace("{content}",k.join("").replace(/{class}/g,"")),F=g.fmDialog(C,O),F.attr("id",M).one("mousedown",".elfinder-info-path",function(){e(this).html(o(e(this).html(),!0))}),P.length&&m.appendTo(F.find("."+n+"-"+P[0]).parent()),v.UA.Mobile&&e.fn.tooltip&&F.children(".ui-dialog-content .elfinder-info-title").tooltip({classes:{"ui-tooltip":"elfinder-ui-tooltip ui-widget-shadow"},tooltipClass:"elfinder-ui-tooltip ui-widget-shadow",track:!0}),c&&"1"==c.url&&F.on("click","."+n+"-url",function(){e(this).parent().html(y.spinner.replace("{text}",v.i18n("ntfurl")).replace("{name}","url")),v.request({data:{cmd:"url",target:c.hash},preventDefault:!0}).fail(function(){I(H,"url")}).done(function(e){if(e.url){I(''+H+""||H,"url");var t=v.file(c.hash);t.url=e.url}else I(H,"url")})}),l&&e("").on("load",function(){F.find(".elfinder-cwd-icon").addClass(l.className).css("background-image","url('"+l.url+"')")}).attr("src",l.url),S.length&&(j=v.getSize(S).done(function(e){I(e.formated,"size")}).fail(function(){I(a.unknown,"size")})),E.length&&e.each(E,function(e,t){try{t(c,v,F)}catch(n){v.debug("error",n)}}),e.Deferred().resolve()}}).prototype={forceLoad:!0},i.prototype.commands.mkdir=function(){var t,n=this.fm,i=this;this.value="",this.disableOnSearch=!0,this.updateOnSelect=!1,this.syncTitleOnChange=!0,this.mime="directory",this.prefix="untitled folder",this.exec=function(a,o){var r;return a&&a.length&&o&&o._currentType&&"navbar"===o._currentType?(this.origin=o._currentType,this.data={target:a[0]}):(r=n.cwd().hash===a[0],this.origin=t&&!r?t:"cwd",delete this.data),a||this.options.intoNewFolderToolbtn||n.getUI("cwd").trigger("unselectall"),this.move=this.value===n.i18n("cmdmkdirin"),e.proxy(n.res("mixin","make"),i)()},this.shortcuts=[{pattern:"ctrl+shift+n"}],this.init=function(){this.options.intoNewFolderToolbtn&&(this.syncTitleOnChange=!0)},n.bind("select contextmenucreate closecontextmenu",function(e){var a=(e.data?e.data.selected||e.data.targets:null)||n.selected();i.className="mkdir",t=e.data&&a.length?e.data.origin||e.data.type||"":"",i.options.intoNewFolderToolbtn||""!==t||(t="cwd"),a.length&&"navbar"!==t&&"cwd"!==t&&n.cwd().hash!==a[0]?(i.title=n.i18n("cmdmkdirin"),i.className+=" elfinder-button-icon-mkdirin"):i.title=n.i18n("cmdmkdir"),"closecontextmenu"!==e.type?i.update(void 0,i.title):requestAnimationFrame(function(){i.update(void 0,i.title)})}),this.getstate=function(i){var a=n.cwd(),o="navbar"===t||i&&i[0]!==a.hash?this.files(i||n.selected()):[],r=o.length,s=function(t){var n=!0;return e.grep(t,function(e){return n=!(!n||!e.read||e.locked)})};return"navbar"===t?r&&o[0].write&&o[0].read?0:-1:!a.write||r&&s(o).length!=r?-1:0}},i.prototype.commands.mkfile=function(){var t=this;this.disableOnSearch=!0,this.updateOnSelect=!1,this.mime="text/plain",this.prefix="untitled file.txt",this.variants=[],this.getTypeName=function(e,n){var i,a=t.fm;return i=(i=a.messages["kind"+a.kinds[e]])?a.i18n(["extentiontype",n.toUpperCase(),i]):a.i18n(["extentionfile",n.toUpperCase()])},this.fm.bind("open reload canMakeEmptyFile",function(){var n=t.fm,i=n.getCommand("edit").getMkfileHides();t.variants=[],n.mimesCanMakeEmpty&&e.each(n.mimesCanMakeEmpty,function(e,a){a&&!i[e]&&n.uploadMimeCheck(e)&&t.variants.push([e,t.getTypeName(e,a)])}),t.change()}),this.getstate=function(){return this.fm.cwd().write?0:-1},this.exec=function(n,i){var a,o,r=t.fm;if(a=r.mimesCanMakeEmpty[i]){if(r.uploadMimeCheck(i))return this.mime=i,this.prefix=r.i18n(["untitled file",a]),e.proxy(r.res("mixin","make"),t)();o=["errMkfile",t.getTypeName(i,a)]}return e.Deferred().reject(o)}},i.prototype.commands.netmount=function(){var t,n=this,i=!1;this.alwaysEnabled=!0,this.updateOnSelect=!1,this.drivers=[],this.handlers={load:function(){var t=n.fm;t.cookieEnabled&&t.one("open",function(){n.drivers=t.netDrivers,n.drivers.length&&e.each(n.drivers,function(){var e=n.options[this];e&&(i=!0,e.integrateInfo&&t.trigger("helpIntegration",Object.assign({cmd:"netmount"},e.integrateInfo)))})})}},this.getstate=function(){return i?0:-1},this.exec=function(){var i,a=n.fm,o=e.Deferred(),r=n.options,s=function(){var s,l=function(){c.protocol.trigger("change","winfocus")},c={protocol:e("").on("change",function(e,n){var o=this.value;t.find(".elfinder-netmount-tr").hide(),t.find(".elfinder-netmount-tr-"+o).show(),i&&i.children(".ui-dialog-buttonpane:first").find("button").show(),"function"==typeof r[o].select&&r[o].select(a,e,n)}).addClass("ui-corner-all")},d={title:a.i18n("netMountDialogTitle"),resizable:!0,modal:!0,destroyOnClose:!1,open:function(){e(window).on("focus."+a.namespace,l),c.protocol.trigger("change")},close:function(){"pending"==o.state()&&o.reject(),e(window).off("focus."+a.namespace,l)},buttons:{}},p=function(){var i,s=c.protocol.val(),l={cmd:"netmount",protocol:s},d=r[s];return e.each(t.find("input.elfinder-netmount-inputs-"+s),function(t,n){var i,a;a=e(n),a.is(":radio,:checkbox")?a.is(":checked")&&(i=e.trim(a.val())):i=e.trim(a.val()),i&&(l[n.name]=i)}),l.host?(l.mnt2res&&(i=!0),a.request({data:l,notify:{type:"netmount",cnt:1,hideCnt:!0}}).done(function(e){var t;e.added&&e.added.length&&(i&&c.protocol.trigger("change","reset"),e.added[0].phash&&(t=a.file(e.added[0].phash))&&(t.dirs||(t.dirs=1,a.change({changed:[t]}))),a.one("netmountdone",function(){a.exec("open",e.added[0].hash)})),o.resolve()}).fail(function(e){d.fail&&"function"==typeof d.fail&&d.fail(a,a.parseError(e)),o.reject(e)}),void n.dialog.elfinderdialog("close")):a.trigger("error",{error:"errNetMountHostReq",opts:{modal:!0}})},u=e('
          ').on("keydown","input",function(t){var n,i=!0;t.keyCode===e.ui.keyCode.ENTER&&(e.each(u.find("input:visible:not(.elfinder-input-optional)"),function(){if(""===e(this).val())return i=!1,n=e(this),!1}),i?p():n.trigger("focus"))}),h=e("
          ");return t=e('
          ').append(e("").append(e(""+a.i18n("protocol")+"")).append(e("").append(c.protocol))),e.each(n.drivers,function(n,i){r[i]&&(c.protocol.append('"),e.each(r[i].inputs,function(n,o){o.attr("name",n),"hidden"!=o.attr("type")?(o.addClass("ui-corner-all elfinder-netmount-inputs-"+i),t.append(e("").addClass("elfinder-netmount-tr elfinder-netmount-tr-"+i).append(e(""+a.i18n(n)+"")).append(e("").append(o)))):(o.addClass("elfinder-netmount-inputs-"+i),h.append(o))}),r[i].protocol=c.protocol)}),t.append(h),t.find(".elfinder-netmount-tr").hide(),t.find(".elfinder-netmount-tr-"+n.drivers[0]).show(),d.buttons[a.i18n("btnMount")]=p,d.buttons[a.i18n("btnCancel")]=function(){n.dialog.elfinderdialog("close")},t.find("select,input").addClass("elfinder-tabstop"),s=n.fmDialog(u.append(t),d).ready(function(){c.protocol.trigger("change"),s.elfinderdialog("posInit")}),i=s.closest(".ui-dialog"),s};return n.dialog?n.dialog.elfinderdialog("open"):n.dialog=s(),o.promise()},n.fm.bind("netmount",function(e){var i=e.data||null,a=n.options,o=function(){a[i.protocol]&&"function"==typeof a[i.protocol].done&&(a[i.protocol].done(n.fm,i),t.find("select,input").addClass("elfinder-tabstop"),n.dialog.elfinderdialog("tabstopsInit"))};i&&i.protocol&&(i.mode&&"redirect"===i.mode?n.fm.request({data:{cmd:"netmount",protocol:i.protocol,host:i.host,user:"init",pass:"return",options:i.options},preventDefault:!0}).done(function(e){i=JSON.parse(e.body),o()}):o())})},i.prototype.commands.netunmount=function(){this.alwaysEnabled=!0,this.updateOnSelect=!1,this.drivers=[],this.handlers={load:function(){this.drivers=this.fm.netDrivers}},this.getstate=function(e){var t,n=this.fm;return e&&this.drivers.length&&!this._disabled&&(t=n.file(e[0]))&&t.netkey?0:-1},this.exec=function(t){var n=this,i=this.fm,a=e.Deferred().fail(function(e){e&&i.error(e)}),o=i.file(t[0]),r=function(t){var n,a=[];return i.leafRoots&&(n=[],e.each(i.leafRoots,function(a,o){var r,s=i.parents(a);(r=e.inArray(t,s))!==-1&&(r=s.length-r,e.each(o,function(e,t){n.push({i:r,hash:t})}))}),n.length&&(n.sort(function(e,t){return e.i').hide().appendTo(e("body"));if(t.UA.Mobile||!h){if(u)h?p.attr("target","_blank"):p.attr("download",a.name),p.attr("href",n).get(0).click();else if(i=window.open(n),!i)return g.reject("errPopup")}else{if(m="string"==typeof w.method&&"get"===w.method.toLowerCase(),!m&&0===n.indexOf(t.options.url)&&t.customData&&Object.keys(t.customData).length&&!a.mime.match(/^(?:video|audio)/)&&(n=""),"window"===x?(s=c=Math.round(2*screen.availWidth/3),l=d=Math.round(2*screen.availHeight/3),parseInt(a.width)&&parseInt(a.height)?(s=parseInt(a.width),l=parseInt(a.height)):a.dim&&(o=a.dim.split("x"),s=parseInt(o[0]),l=parseInt(o[1])),c>=s&&d>=l?(c=s,d=l):s-c>l-d?d=Math.round(l*(c/s)):c=Math.round(s*(d/l)),r="width="+c+",height="+d,i=window.open(n,f,r+",top=50,left=50,scrollbars=yes,resizable=yes,titlebar=no")):("tabs"===x&&(f=a.hash),i=window.open("about:blank",f)),!i)return g.reject("errPopup");if(""===n){var v=document.createElement("form");v.action=t.options.url,v.method="POST",v.target=f,v.style.display="none";var b=Object.assign({},t.customData,{cmd:"file",target:a.hash,_t:a.ts||parseInt(+new Date/1e3)});e.each(b,function(e,t){var n=document.createElement("input");n.name=e,n.value=t,v.appendChild(n)}),document.body.appendChild(v),v.submit()}else"window"!==x&&(i.location=n);e(i).trigger("focus")}p.remove()};try{p=new RegExp(t.option("dispInlineRegex"),"i")}catch(k){p=!1}for(u="string"==typeof e("").get(0).download,b=v.length;b--;){if(f="elf_open_window",a=v[b],!a.read)return g.reject(["errOpen",a.name,"errPerm"]);h=p&&a.mime.match(p),t.openUrl(a.hash,!h,y)}return g.resolve(n)};if(b>1)t.confirm({title:"openMulti",text:["openMultiConfirm",b+""],accept:{label:"cmdopen",callback:function(){k()}},cancel:{label:"btnCancel",callback:function(){g.reject()}},buttons:t.getCommand("zipdl")&&t.isCommandEnabled("zipdl",t.cwd().hash)?[{label:"cmddownload",callback:function(){t.exec("download",n),g.reject()}}]:[]});else{if(f=t.storage("selectAction")||w.selectAction,f&&(e.each(f.split("/"),function(){var e=this.valueOf();return("open"===e||!(m=t.getCommand(e))||!m.enabled())&&void(m=null)}),m))return t.exec(m.name);k()}return g}}).prototype={forceLoad:!0},i.prototype.commands.opendir=function(){this.alwaysEnabled=!0,this.getstate=function(){var e,t=this.fm.selected(),n=t.length;return 1!==n?-1:(e=this.fm.getUI("workzone"),e.hasClass("elfinder-search-result")?0:-1)},this.exec=function(t){var n,i=this.fm,a=e.Deferred(),o=this.files(t),r=o.length;return r&&o[0].phash?(n=o[0].phash,i.trigger("searchend",{noupdate:!0}),i.request({data:{cmd:"open",target:n},notify:{type:"open",cnt:1,hideCnt:!0},syncOnFail:!1}),a):a.reject()}},i.prototype.commands.opennew=function(){var t=this.fm;this.shortcuts=[{pattern:("function"==typeof t.options.getFileCallback?"shift+":"")+"ctrl+enter"}],this.getstate=function(e){var t=this.files(e),n=t.length;return 1===n&&"directory"===t[0].mime&&t[0].read?0:-1},this.exec=function(t){var n,i,a,o,r=e.Deferred(),s=this.files(t),l=s.length,c=this.options;return 1===l&&(n=s[0])&&"directory"===n.mime?(i=window.location,a=c.url?c.url:i.pathname,c.useOriginQuery&&(a.match(/\?/)?i.search&&(a+="&"+i.search.substr(1)):a+=i.search),a+="#elf_"+n.hash,o=window.open(a,"_blank"),setTimeout(function(){o.focus()},1e3),r.resolve()):r.reject()}},i.prototype.commands.paste=function(){this.updateOnSelect=!1,this.handlers={changeclipboard:function(){this.update()}},this.shortcuts=[{pattern:"ctrl+v shift+insert"}],this.getstate=function(e){if(this._disabled)return-1;if(e){if(Array.isArray(e)){if(1!=e.length)return-1;e=this.fm.file(e[0])}}else e=this.fm.cwd();return this.fm.clipboard().length&&"directory"==e.mime&&e.write?0:-1},this.exec=function(t,n){ +var i,a,o,r=this,s=r.fm,l=n||{},c=t?this.files(t)[0]:s.cwd(),d=s.clipboard(),p=d.length,u=!!p&&d[0].cut,h=l._cmd?l._cmd:u?"move":"copy",f="err"+h.charAt(0).toUpperCase()+h.substr(1),m=[],g=[],v=e.Deferred().fail(function(e){e&&s.error(e)}).always(function(){s.unlockfiles({files:e.map(d,function(e){return e.hash})})}),b=function(t){return t.length&&s._commands.duplicate?s.exec("duplicate",t):e.Deferred().resolve()},y=function(t){var n,i=e.Deferred(),a=[],o={},d=function(t,n){for(var i=[],a=t.length;a--;)e.inArray(t[a].name,n)!==-1&&i.unshift(a);return i},p=function(e){var n=a[e],o=t[n],r=e==a.length-1;o&&s.confirm({title:s.i18n(h+"Files"),text:["errExists",o.name,"restore"===h?"confirmRest":"confirmRepl"],all:!r,accept:{label:"btnYes",callback:function(n){r||n?m(t):p(++e)}},reject:{label:"btnNo",callback:function(n){var i;if(n)for(i=a.length;e{title}',s=e('
          '),l=e('
            '),c=e('
            '),d=(e("base").length?document.location.href.replace(/#.*$/,""):"",function(t){e("#"+a.namespace+"-preference-tab-"+t).trigger("mouseover").trigger("click"),n=t}),p=a.res("class","tabsactive"),u=function(){var u=i.options.categories||{language:["language"],theme:["theme"],toolbar:["toolbarPref"],workspace:["iconSize","columnPref","selectAction","makefileTypes","useStoredEditor","editorMaximized","useFullscreen","showHidden"],dialog:["autoFocusDialog"],selectionInfo:["infoItems","hashChecker"],reset:["clearBrowserData"],all:!0},h=i.options.prefs||["language","theme","toolbarPref","iconSize","columnPref","selectAction","makefileTypes","useStoredEditor","editorMaximized","useFullscreen","showHidden","infoItems","hashChecker","autoFocusDialog","clearBrowserData"];a.cookieEnabled||delete u.language,h=a.arrayFlip(h,!0),a.options.getFileCallback&&delete h.selectAction,a.UA.Fullscreen||delete h.useFullscreen,h.language&&(h.language=function(){var t=e("").on("change",function(){var t=e(this).val();a.storage("lang",t),e("#"+a.id).elfinder("reload")}),n=[],o=i.options.langs||{ar:"العربية",bg:"Български",ca:"Català",cs:"Čeština",da:"Dansk",de:"Deutsch",el:"Ελληνικά",en:"English",es:"Español",fa:"فارسی",fo:"Føroyskt",fr:"Français",fr_CA:"Français (Canada)",he:"עברית",hr:"Hrvatski",hu:"Magyar",id:"Bahasa Indonesia",it:"Italiano",ja:"日本語",ko:"한국어",nl:"Nederlands",no:"Norsk",pl:"Polski",pt_BR:"Português",ro:"Română",ru:"Pусский",si:"සිංහල",sk:"Slovenčina",sl:"Slovenščina",sr:"Srpski",sv:"Svenska",tr:"Türkçe",ug_CN:"ئۇيغۇرچە",uk:"Український",vi:"Tiếng Việt",zh_CN:"简体中文",zh_TW:"正體中文"};return a.cookieEnabled?(e.each(o,function(e,t){n.push('")}),t.append(n.join("")).val(a.lang)):e()}()),h.theme&&(h.theme=function(){var t=a.options.themes?Object.keys(a.options.themes).length:0;if(0===t||1===t&&a.options.themes["default"])return null;var n=e("").on("change",function(){var t=e(this).val();a.changeTheme(t).storage("theme",t)}),i={image:'',link:'$2',data:'
            $1
            $2
            '},o=["image","description","author","email","license"],r=e('').text(a.i18n("default")).on("click",function(e){n.val("default").trigger("change")}),s=e('
            ').on("click","button",function(){var t=e(this).data("themeid");n.val(t).trigger("change")});return a.options.themes["default"]||n.append('"),e.each(a.options.themes,function(t,r){var l,c=e('"),d=e('
            '+a.i18n(t)+'
            ');n.append(c),s.append(d),l=setTimeout(function(){d.find("span.elfinder-spinner").replaceWith(a.i18n(["errRead",t]))},1e4),a.getTheme(t).always(function(){l&&clearTimeout(l)}).done(function(r){var s,l=e(),p=e("
            ");s=r.link?i.link.replace(/\$1/g,r.link).replace(/\$3/g,a.i18n("website")):"$2",r.name&&c.html(a.i18n(r.name)),d.children("legend").html(s.replace(/\$2/g,a.i18n(r.name)||t)),e.each(o,function(o,s){var l,c=i[s]||i.data;r[s]&&(l=c.replace(/\$0/g,a.escape(s)).replace(/\$1/g,a.i18n(s)).replace(/\$2/g,a.i18n(r[s])),"image"===s&&r.link&&(l=e(l).on("click",function(){n.val(t).trigger("change")}).attr("title",a.i18n("select"))),p.append(l))}),l=l.add(p),l=l.add(e('
            ').append(e('').data("themeid",t).html(a.i18n("select")))),d.find("span.elfinder-spinner").replaceWith(l)}).fail(function(){d.find("span.elfinder-spinner").replaceWith(a.i18n(["errRead",t]))})}),e("
            ").append(n.val(a.theme&&a.theme.id?a.theme.id:"default"),r,s)}()),h.toolbarPref&&(h.toolbarPref=function(){var t=e.map(a.options.uiOptions.toolbar,function(t){return e.isArray(t)?t:null}),n=[],i=a.storage("toolbarhides")||{};return e.each(t,function(){var e=this,t=a.i18n("cmd"+e);t==="cmd"+e&&(t=a.i18n(e)),n.push('")}),e(n.join(" ")).on("change","input",function(){var t=e(this).val(),n=e(this).is(":checked");n||i[t]?n&&i[t]&&delete i[t]:i[t]=!0,a.storage("toolbarhides",i),a.trigger("toolbarpref")})}()),h.iconSize&&(h.iconSize=function(){var t=a.options.uiOptions.cwd.iconsView.sizeMax||3,n=a.storage("iconsize")||a.options.uiOptions.cwd.iconsView.size||0,i=e('
            ').slider({classes:{"ui-slider-handle":"elfinder-tabstop"},value:n,max:t,slide:function(e,t){a.getUI("cwd").trigger("iconpref",{size:t.value})},change:function(e,t){a.storage("iconsize",t.value)}});return a.getUI("cwd").on("iconpref",function(e,t){i.slider("option","value",t.size)}),i}()),h.columnPref&&(h.columnPref=function(){var t=a.options.uiOptions.cwd.listView.columns,n=[],i=a.storage("columnhides")||{};return e.each(t,function(){var e=this,t=a.getColumnName(e);n.push('")}),e(n.join(" ")).on("change","input",function(){var t=e(this).val(),n=e(this).is(":checked");n||i[t]?n&&i[t]&&delete i[t]:i[t]=!0,a.storage("columnhides",i),a.trigger("columnpref",{repaint:!0})})}()),h.selectAction&&(h.selectAction=function(){var t=e("").on("change",function(){var t=e(this).val();a.storage("selectAction","default"===t?null:t)}),n=[],o=i.options.selectActions,r=a.getCommand("open").options.selectAction||"open";return e.inArray(r,o)===-1&&o.unshift(r),e.each(o,function(t,i){var o=e.map(i.split("/"),function(e){var t=a.i18n("cmd"+e);return t==="cmd"+e&&(t=a.i18n(e)),t});n.push('")}),t.append(n.join("")).val(a.storage("selectAction")||r)}()),h.makefileTypes&&(h.makefileTypes=function(){var t=a.getCommand("edit").getMkfileHides(),n=function(){var n=[];return t=a.getCommand("edit").getMkfileHides(),e.each(a.mimesCanMakeEmpty,function(e,i){var o=a.getCommand("mkfile").getTypeName(e,i);n.push('")}),n.join(" ")},i=e("
            ").on("change","input",function(){var n=e(this).val(),i=e(this).is(":checked");i||t[n]?i&&t[n]&&delete t[n]:t[n]=!0,a.storage("mkfileHides",t),a.trigger("canMakeEmptyFile")}).append(n()),o=e("
            ").append(e('').on("keydown",function(t){t.keyCode===e.ui.keyCode.ENTER&&e(this).next().trigger("click")}),e('').html(a.i18n("add")).on("click",function(){var t,n=e(this).prev(),i=n.val(),o=a.getUI("toast"),r=function(){return o.appendTo(n.closest(".ui-dialog")),a.toast({msg:a.i18n("errUsupportType"),mode:"warning",onHidden:function(){1===o.children().length&&o.appendTo(a.getUI())}}),n.trigger("focus"),!1};if(!i.match(/\//)){if(i=a.arrayFlip(a.mimeTypes)[i],!i)return r();n.val(i)}return a.mimeIsText(i)&&a.mimeTypes[i]?(a.trigger("canMakeEmptyFile",{mimes:[i],unshift:!0}),t={},t[i]=a.mimeTypes[i],a.storage("mkfileTextMimes",Object.assign(t,a.storage("mkfileTextMimes")||{})),n.val(""),o.appendTo(n.closest(".ui-dialog")),void a.toast({msg:a.i18n(["complete",i+" ("+t[i]+")"]),onHidden:function(){1===o.children().length&&o.appendTo(a.getUI())}})):r()}),e('').html(a.i18n("reset")).on("click",function(){a.one("canMakeEmptyFile",{done:function(){i.empty().append(n())}}),a.trigger("canMakeEmptyFile",{resetTexts:!0})}));return a.bind("canMakeEmptyFile",{done:function(e){e.data&&e.data.mimes&&e.data.mimes.length&&i.empty().append(n())}}),e("
            ").append(i,o)}()),h.useStoredEditor&&(h.useStoredEditor=e('').prop("checked",function(){var e=a.storage("useStoredEditor");return e?e>0:a.options.commandsOptions.edit.useStoredEditor}()).on("change",function(t){a.storage("useStoredEditor",e(this).is(":checked")?1:-1)})),h.editorMaximized&&(h.editorMaximized=e('').prop("checked",function(){var e=a.storage("editorMaximized");return e?e>0:a.options.commandsOptions.edit.editorMaximized}()).on("change",function(t){a.storage("editorMaximized",e(this).is(":checked")?1:-1)})),h.useFullscreen&&(h.useFullscreen=e('').prop("checked",function(){var e=a.storage("useFullscreen");return e?e>0:"screen"===a.options.commandsOptions.fullscreen.mode}()).on("change",function(t){a.storage("useFullscreen",e(this).is(":checked")?1:-1)})),h.showHidden&&!function(){var t,n=function(){var n,i=a.storage("hide"),o=[];i&&i.items&&e.each(i.items,function(e,t){o.push(a.escape(t))}),r.prop("disabled",!o.length)[o.length?"removeClass":"addClass"]("ui-state-disabled"),n=o.length?o.join("\n"):"",h.showHidden.attr("title",n),t&&h.showHidden.tooltip("option","content",n.replace(/\n/g,"
            ")).tooltip("close")},i=e('').prop("checked",function(){var e=a.storage("hide");return e&&e.show}()).on("change",function(t){var n={};n[e(this).is(":checked")?"show":"hide"]=!0,a.exec("hide",void 0,n)}),o=e('').append(a.i18n("reset")).on("click",function(){a.exec("hide",void 0,{reset:!0}),e(this).parent().find("input:first").prop("checked",!1),n()}),r=e().add(i).add(o);h.showHidden=e("
            ").append(i,o),a.bind("hide",function(e){var t=e.data;t.opts&&(t.opts.show||t.opts.hide)||n()}),a.UA.Mobile&&e.fn.tooltip&&(t=!0,h.showHidden.tooltip({classes:{"ui-tooltip":"elfinder-ui-tooltip ui-widget-shadow"},tooltipClass:"elfinder-ui-tooltip ui-widget-shadow",track:!0}).css("user-select","none"),o.css("user-select","none")),n()}(),h.infoItems&&(h.infoItems=function(){var t=a.getCommand("info").items,n=[],i=a.storage("infohides")||a.arrayFlip(a.options.commandsOptions.info.hideItems,!0);return e.each(t,function(){var e=this,t=a.i18n(e);n.push('")}),e(n.join(" ")).on("change","input",function(){var t=e(this).val(),n=e(this).is(":checked");n||i[t]?n&&i[t]&&delete i[t]:i[t]=!0,a.storage("infohides",i),a.trigger("infopref",{repaint:!0})})}()),h.hashChecker&&a.hashCheckers.length&&(h.hashChecker=function(){var t=[],n=a.arrayFlip(a.storage("hashchekcer")||a.options.commandsOptions.info.showHashAlgorisms,!0);return e.each(a.hashCheckers,function(){var e=this,i=a.i18n(e);t.push('")}),e(t.join(" ")).on("change","input",function(){var t=e(this).val(),i=e(this).is(":checked");i?n[t]=!0:n[t]&&delete n[t],a.storage("hashchekcer",e.grep(a.hashCheckers,function(e){return n[e]}))})}()),h.autoFocusDialog&&(h.autoFocusDialog=e('').prop("checked",function(){var e=a.storage("autoFocusDialog");return e?e>0:a.options.uiOptions.dialog.focusOnMouseOver}()).on("change",function(t){a.storage("autoFocusDialog",e(this).is(":checked")?1:-1)})),h.clearBrowserData&&(h.clearBrowserData=e("").text(a.i18n("reset")).button().on("click",function(t){t.preventDefault(),a.storage(),e("#"+a.id).elfinder("reload")})),e.each(u,function(t,i){var s,d;i===!0?d=1:i&&(s=e(),e.each(i,function(t,n){var i,o,r,l="";(i=h[n])&&(d=2,o=a.i18n(n),r=e(i).filter('input[type="checkbox"]'),r.length||(r=e(i).find('input[type="checkbox"]')),1===r.length?(r.attr("id")||r.attr("id","elfinder-preference-"+n+"-checkbox"),o='"):r.length>1&&(l=" elfinder-preference-checkboxes"),s=s.add(e('
            '+o+"
            ")).add(e('
            ').append(i)))})),d&&(l.append(r[o](/\{id\}/g,t)[o](/\{title\}/,a.i18n(t))[o](/\{class\}/,n===t?"elfinder-focus":"")),2===d&&c.append(e('
            ').hide().append(e("
            ").append(s))))}),l.on("click","a",function(t){var n=e(t.target),i=n.attr("href");t.preventDefault(),t.stopPropagation(),l.children().removeClass(p),n.removeClass("ui-state-hover").parent().addClass(p),i.match(/all$/)?c.addClass("elfinder-preference-taball").children().show():(c.removeClass("elfinder-preference-taball").children().hide(),e(i).show())}).on("focus blur","a",function(t){e(this).parent().toggleClass("ui-state-focus","focusin"===t.type)}).on("mouseenter mouseleave","li",function(t){e(this).toggleClass("ui-state-hover","mouseenter"===t.type)}),c.find("a,input,select,button").addClass("elfinder-tabstop"),s.append(l,c),t=i.fmDialog(s,{title:i.title,width:i.options.width||600,height:i.options.height||400,maxWidth:"window",maxHeight:"window",autoOpen:!1,destroyOnClose:!1,allowMinimize:!1,open:function(){n&&d(n),n=null},resize:function(){c.height(t.height()-l.outerHeight(!0)-(c.outerHeight(!0)-c.height())-5)}}).on("click",function(e){e.stopPropagation()}).css({overflow:"hidden"}),t.closest(".ui-dialog").css({overflow:"hidden"}).addClass("elfinder-bg-translucent"),n="all"};this.shortcuts=[{pattern:"ctrl+comma",description:this.title}],this.alwaysEnabled=!0,this.getstate=function(){return 0},this.exec=function(n,i){return!t&&u(),i&&(i.tab?d(i.tab):"cwd"===i._currentType&&d("workspace")),t.elfinderdialog("open"),e.Deferred().resolve()}},(i.prototype.commands.quicklook=function(){var t,n,i,a,o,r,s,l,c,d,p=this,u=p.fm,h=0,f=1,m=2,g=3,v=4,b=h,y=Element.update?"quicklookupdate":"update",w="elfinder-quicklook-navbar-icon",x="elfinder-quicklook-fullscreen",k="elfinder-quicklook-info-wrapper",C=function(t){e(document).trigger(e.Event("keydown",{keyCode:t,ctrlKey:!1,shiftKey:!1,altKey:!1,metaKey:!1}))},z=function(e){var t=u.getUI().offset(),n=function(){var t=e.find(".elfinder-cwd-file-wrapper");return t.length?t:e}(),i=n.offset()||{top:0,left:0};return{opacity:0,width:n.width(),height:n.height()-30,top:i.top-t.top,left:i.left-t.left}},T=function(){var i=p.options.contain||u.options.dialogContained,a=i?u.getUI():e(window),o=u.getUI().offset(),r=Math.min(t,a.width()-10),s=Math.min(n,a.height()-80);return{opacity:1,width:r,height:s,top:parseInt((a.height()-s-60)/2+(i?0:a.scrollTop()-o.top)),left:parseInt((a.width()-r)/2+(i?0:a.scrollLeft()-o.left))}},A={},j=function(e,t){var n=t||e.substr(0,e.indexOf("/")),i=A[n]?A[n]:A[n]=document.createElement(n),a=!1;try{a=i.canPlayType&&i.canPlayType(e)}catch(o){}return!(!a||""===a||"no"==a)},O=window.navigator.platform.indexOf("Win")!=-1,S=!1,I=!1,M=!1,F=null,E=e.ui.keyCode.LEFT,D=e.ui.keyCode.RIGHT,U="mousemove touchstart "+("onwheel"in document?"wheel":"onmousewheel"in document?"mousewheel":"DOMMouseScroll"),P=e(''),R=e("
            "),q=e('
            '),H=e('
            '),_=e('
            ').on("click touchstart",function(t){if(!M){var n=p.window,i=n.hasClass(x),o=e(window),r=function(){p.preview.trigger("changesize")};t.stopPropagation(),t.preventDefault(),i?(G="",L(),n.toggleClass(x).css(n.data("position")),o.trigger(p.resize).off(p.resize,r),V.off("mouseenter mouseleave"),H.off(U)):(n.toggleClass(x).data("position",{left:n.css("left"),top:n.css("top"),width:n.width(),height:n.height(),display:"block"}).removeAttr("style"),e(window).on(p.resize,r).trigger(p.resize),H.on(U,function(e){I||("mousemove"!==e.type&&"touchstart"!==e.type||(L(),F=setTimeout(function(){(u.UA.Mobile||V.parent().find(".elfinder-quicklook-navbar:hover").length<1)&&V.fadeOut("slow",function(){H.show()})},3e3)),H.is(":visible")&&(W(),H.data("tm",setTimeout(function(){H.show()},3e3))))}).show().trigger("mousemove"),V.on("mouseenter mouseleave",function(e){I||("mouseenter"===e.type?L():H.trigger("mousemove"))})),u.zIndex&&n.css("z-index",u.zIndex+1),u.UA.Mobile?V.attr("style",G):V.attr("style",G).draggable(i?"destroy":{start:function(){I=!0,M=!0,H.show(),L()},stop:function(){I=!1,G=p.navbar.attr("style"),requestAnimationFrame(function(){M=!1})}}),e(this).toggleClass(w+"-fullscreen-off");var s=n;a.is(".ui-resizable")&&(s=s.add(a)),s.resizable(i?"enable":"disable").removeClass("ui-state-disabled"),n.trigger("viewchange")}}),N=function(){p.update(void 0,function(){var t=p.fm,n=t.selectedFiles(),i=n.length,a=(p.docked(),function(){var a=0;return e.each(n,function(e,t){var n=parseInt(t.ts);a>=0?n>a&&(a=n):a="unknown"}),{hash:n[0].hash+"/"+ +new Date,name:t.i18n("items")+": "+i,mime:"group",size:J,ts:a,files:e.map(n,function(e){return e.hash}),getSize:!0}});return i||(i=1,n=[t.cwd()]),1===i?n[0]:a()}())},L=function(){p.window.hasClass(x)&&(F&&clearTimeout(F),F=null,V.stop(!0,!0).css("display","block"),W())},W=function(){H.data("tm")&&clearTimeout(H.data("tm")),H.removeData("tm"),H.hide()},B=e('
            ').on("click touchstart",function(e){return!M&&C(E),!1}),$=e('
            ').on("click touchstart",function(e){return!M&&C(D),!1}),V=e('
            ').append(B).append(_).append($).append('
            ').append(e('
            ').on("click touchstart",function(e){return!M&&p.window.trigger("close"),!1})),K=e('').on("mousedown",function(e){e.stopPropagation(),p.window.trigger("close")}),X=e('').on("mousedown",function(e){e.stopPropagation(),p.docked()?p.window.trigger("navdockout"):p.window.trigger("navdockin")}),J=''+u.i18n("calc")+'',G="",Y=!0;this.flags={},this.cover=H,this.evUpdate=y,(this.navbar=V)._show=L,this.resize="resize."+u.namespace,this.info=e("
            ").addClass(k).append(R).append(q),this.autoPlay=function(){return!!p.opened()&&!!p.options[p.docked()?"dockAutoplay":"autoplay"]},this.preview=e('
            ').on("change",function(){L(),V.attr("style",G),p.docked()&&V.hide(),p.preview.attr("style","").removeClass("elfinder-overflow-auto"),p.info.attr("style","").hide(),p.cover.removeClass("elfinder-quicklook-coverbg"),R.removeAttr("class").attr("style",""),q.html("")}).on(y,function(t){var n,i,a=(p.preview,t.file),r='
            {value}
            ',s=function(){var s=p.window.css("overflow","hidden");i=u.escape(a.i18||a.name),!a.read&&t.stopImmediatePropagation(),p.window.data("hash",a.hash),p.preview.off("changesize").trigger("change").children().remove(),P.html(i),B.css("visibility",""),$.css("visibility",""),a.hash===u.cwdId2Hash(o.find("[id]:not(.elfinder-cwd-parent):first").attr("id"))&&B.css("visibility","hidden"),a.hash===u.cwdId2Hash(o.find("[id]:last").attr("id"))&&$.css("visibility","hidden"),"directory"===a.mime?c=[a.hash]:"group"===a.mime&&a.getSize&&(c=a.files),q.html(r.replace(/\{value\}/,i)+r.replace(/\{value\}/,u.mime2kind(a))+r.replace(/\{value\}/,c.length?J:u.formatSize(a.size))+r.replace(/\{value\}/,u.i18n("modify")+": "+u.formatDate(a))),c.length&&(l=u.getSize(c).done(function(e){q.find("span.elfinder-spinner").parent().html(e.formated)}).fail(function(){q.find("span.elfinder-spinner").parent().html(u.i18n("unknown"))}).always(function(){l=null}),l._hash=a.hash),R.addClass("elfinder-cwd-icon ui-corner-all "+u.mime2class(a.mime)),a.icon&&R.css(u.getIconStyle(a,!0)),p.info.attr("class",k),a.csscls&&p.info.addClass(a.csscls),a.read&&(n=u.tmb(a))&&e("").hide().appendTo(p.preview).on("load",function(){R.addClass(n.className).css("background-image","url('"+n.url+"')"),e(this).remove()}).attr("src",n.url),p.info.delay(100).fadeIn(10),p.window.hasClass(x)&&H.trigger("mousemove"),s.css("overflow","")},c=[];a&&!Object.keys(a).length&&(a=u.cwd()),a&&l&&"pending"===l.state()&&l._hash!==a.hash&&l.reject(),a&&(t.forceUpdate||p.window.data("hash")!==a.hash)?s():t.stopImmediatePropagation()}),this.window=e('
            ').hide().addClass(u.UA.Touch?"elfinder-touch":"").on("click",function(e){var t=this;e.stopPropagation(),b===m&&requestAnimationFrame(function(){b===m&&u.toFront(t)})}).append(e('
            ').append(e('').append(K,X),P),this.preview,p.info.hide(),H.hide(),V).draggable({handle:"div.elfinder-quicklook-titlebar"}).on("open",function(e,t){var n=p.window,i=p.value,a=u.getUI("cwd"),o=function(e){b=e,p.update(1,p.value),p.change(),n.trigger("resize."+u.namespace)};Y||b!==h?b===v&&(u.getUI("navdock").data("addNode")(c),o(g),p.preview.trigger("changesize"),u.storage("previewDocked","1"),0===u.getUI("navdock").width()&&n.trigger("navdockout")):(i&&i.hash!==r&&(a=u.cwdHash2Elm(i.hash.split("/",2)[0])),G="",V.attr("style",""),b=f,a.trigger("scrolltoview"),W(),n.css(t||z(a)).show().animate(T(),550,function(){o(m),L()}),u.toFront(n))}).on("close",function(e,t){var n,i=p.window,a=p.preview.trigger("change"),r=(p.value,(i.data("hash")||"").split("/",2)[0]),s=function(e,n){b=e,n&&u.toHide(i),a.children().remove(),p.update(0,p.value),i.data("hash",""),t&&t.resolve()};p.opened()&&(l&&"pending"===l.state()&&l.reject(),p.docked()?(c=u.getUI("navdock").data("removeNode")(p.window.attr("id"),"detach"),s(v),u.storage("previewDocked","2")):(b=f,i.hasClass(x)&&_.click(),r&&(n=o.find("#"+r)).length?i.animate(z(n),500,function(){a.off("changesize"),s(h,!0)}):s(h,!0)))}).on("navdockin",function(e,t){var n=p.window,a=u.getUI("navdock"),o=s||a.width(),r=t||{};Y&&(r.init=!0),b=g,i=n.attr("style"),n.toggleClass("ui-front").removeClass("ui-widget").draggable("disable").resizable("disable").removeAttr("style").css({width:"100%",height:o,boxSizing:"border-box",paddingBottom:0,zIndex:"unset"}),V.hide(),X.toggleClass("ui-icon-plusthick ui-icon-minusthick elfinder-icon-full elfinder-icon-minimize"),u.toHide(n,!0),a.data("addNode")(n,r),p.preview.trigger("changesize"),u.storage("previewDocked","1")}).on("navdockout",function(t){var n=p.window,a=u.getUI("navdock"),o=(e.Deferred(),z(p.preview));s=n.outerHeight(),a.data("removeNode")(n.attr("id"),u.getUI()),n.toggleClass("ui-front").addClass("ui-widget").draggable("enable").resizable("enable").attr("style",i),X.toggleClass("ui-icon-plusthick ui-icon-minusthick elfinder-icon-full elfinder-icon-minimize"),b=h,n.trigger("open",o),u.storage("previewDocked","0")}).on("resize."+u.namespace,function(){p.preview.trigger("changesize")}),this.alwaysEnabled=!0,this.value=null,this.handlers={select:function(e,t){d&&cancelAnimationFrame(d),e.data&&e.data.selected&&e.data.selected.length?p.opened()&&N():d=requestAnimationFrame(function(){p.opened()&&N()})},error:function(){p.window.is(":visible")&&p.window.trigger("close")},"searchshow searchhide":function(){this.opened()&&this.window.trigger("close")},navbarshow:function(){requestAnimationFrame(function(){p.docked()&&p.preview.trigger("changesize")})},destroy:function(){p.window.remove()}},this.shortcuts=[{pattern:"space"}],this.support={audio:{ogg:j("audio/ogg;"),webm:j("audio/webm;"),mp3:j("audio/mpeg;"),wav:j("audio/wav;"),m4a:j("audio/mp4;")||j("audio/x-m4a;")||j("audio/aac;"),flac:j("audio/flac;"),amr:j("audio/amr;")},video:{ogg:j("video/ogg;"),webm:j("video/webm;"),mp4:j("video/mp4;"),mkv:j("video/x-matroska;")||j("video/webm;"),"3gp":j("video/3gpp;")||j("video/mp4;"),m3u8:j("application/x-mpegURL","video")||j("application/vnd.apple.mpegURL","video"),mpd:j("application/dash+xml","video")}},A={},this.closed=function(){return b==h||b==v},this.opened=function(){return b==m||b==g},this.docked=function(){return b==g},this.addIntegration=function(e){requestAnimationFrame(function(){u.trigger("helpIntegration",Object.assign({cmd:"quicklook"},e))})},this.init=function(){var i,l=this.options,c=this.window,d=this.preview;t=l.width>0?parseInt(l.width):450,n=l.height>0?parseInt(l.height):300,"auto"!==l.dockHeight&&(s=parseInt(l.dockHeight),s||(s=void 0)),u.one("load",function(){S=u.getUI("navdock").data("dockEnabled"),!S&&X.hide(),a=u.getUI(),o=u.getUI("cwd"),u.zIndex&&c.css("z-index",u.zIndex+1),c.appendTo(a),e(document).on("keydown."+u.namespace,function(t){t.keyCode==e.ui.keyCode.ESCAPE&&p.opened()&&!p.docked()&&c.hasClass("elfinder-frontmost")&&c.trigger("close")}),c.resizable({handles:"se",minWidth:350,minHeight:120,resize:function(){d.trigger("changesize")}}),p.change(function(){p.opened()&&p.value&&(p.value.tmb&&1==p.value.tmb&&(p.value=Object.assign({},u.file(p.value.hash))),d.trigger(e.Event(y,{file:p.value})))}),d.on(y,function(e){var t,n,a;if(t=e.file){if(n=t.hash,a=u.searchStatus.mixed&&u.searchStatus.state>1,"directory"!==t.mime)if(parseInt(t.size)||t.mime.match(l.mimeRegexNotEmptyCheck)){if(p.dispInlineRegex=i,a||u.optionsByHashes[n])try{p.dispInlineRegex=new RegExp(u.option("dispInlineRegex",n),"i")}catch(e){try{p.dispInlineRegex=new RegExp(u.isRoot(t)?u.options.dispInlineRegex:u.option("dispInlineRegex",t.phash),"i")}catch(e){p.dispInlineRegex=/^$/}}}else e.stopImmediatePropagation();else p.dispInlineRegex=/^$/;p.info.show()}else e.stopImmediatePropagation()}),e.each(u.commands.quicklook.plugins||[],function(e,t){"function"==typeof t&&new t(p)})}).one("open",function(){var e,t=Number(u.storage("previewDocked")||l.docked);S&&t>=1&&(e=p.window,p.exec(),e.trigger("navdockin",{init:!0}),2===t?e.trigger("close"):(p.update(void 0,u.cwd()),p.change())),Y=!1}).bind("open",function(){r=u.cwd().hash,p.value=u.cwd();try{i=new RegExp(u.option("dispInlineRegex"),"i")}catch(e){i=/^$/}}).bind("change",function(t){t.data&&t.data.changed&&p.opened()&&e.each(t.data.changed,function(){if(p.window.data("hash")===this.hash)return p.window.data("hash",null),p.preview.trigger(y),!1})}).bind("navdockresizestart navdockresizestop",function(e){H["navdockresizestart"===e.type?"show":"hide"]()})},this.getstate=function(){return p.opened()?1:0},this.exec=function(){return p.closed()&&N(), +p.enabled()&&p.window.trigger(p.opened()?"close":"open"),e.Deferred().resolve()},this.hideinfo=function(){this.info.stop(!0,!0).hide()}}).prototype={forceLoad:!0},i.prototype.commands.quicklook.plugins=[function(t){var n,i,a=["image/jpeg","image/png","image/gif","image/svg+xml","image/x-ms-bmp"],o=t.fm.returnBytes(t.options.getDimThreshold||0),r=t.preview;n=new Image,n.onload=n.onerror=function(){2==n.height&&a.push("image/webp")},n.src="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA",e.each(navigator.mimeTypes,function(t,n){var i=n.type;0===i.indexOf("image/")&&e.inArray(i,a)&&a.push(i)}),r.on(t.evUpdate,function(n){var s,l,c,d,p=t.fm,u=n.file,h=!1,f=null,m=function(e){var t=p.file(u.hash);t.width=e[0],t.height=e[1]},g=function(){var e,t,n,i,a;f&&f.state&&"pending"===f.state()&&f.reject(),h||(h=!0,e=s.get(0),t=u.width&&u.height?{w:u.width,h:u.height}:e.naturalWidth?null:{w:s.width(),h:s.height()},t&&s.removeAttr("width").removeAttr("height"),n=u.width||e.naturalWidth||e.width||s.width(),i=u.height||e.naturalHeight||e.height||s.height(),u.width&&u.height||m([n,i]),t&&s.width(t.w).height(t.h),a=(n/i).toFixed(2),r.on("changesize",function(){var e,t,n=parseInt(r.width()),i=parseInt(r.height());a<(n/i).toFixed(2)?(t=i,e=Math.floor(t*a)):(e=n,t=Math.floor(e/a)),s.width(e).height(t).css("margin-top",t'+p.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),c=e('
          ').appendTo(l),s=e("").hide().appendTo(r).on("load",function(){v(),g()}).on("error",function(){l.remove()}),d=p.openUrl(u.hash,!1,function(e){s.attr("src",e)},{progressBar:c}),r.one("change",function(){d&&d.state&&"pending"===d.state()&&d.reject()}),u.width&&u.height?g():u.size>o&&(f=p.request({data:{cmd:"dim",target:u.hash},preventDefault:!0}).done(function(e){if(e.dim){var t=e.dim.split("x");u.width=t[0],u.height=t[1],m(t),g()}})))})},function(t){var n=t.fm,i="image/tiff",a=t.preview;window.Worker&&window.Uint8Array&&a.on(t.evUpdate,function(o){var r,s,l,c,d,p=o.file,u=function(e){c&&c.terminate(),r.remove(),n.debug("error",e)},h=function(e){var t=n.file(p.hash);t.width=e[0],t.height=e[1]};p.mime===i&&(o.stopImmediatePropagation(),r=e('
          '+n.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),s=e('
          ').appendTo(r),a.one("change",function(){c&&c.terminate(),r.remove()}),d=n.getContents(p.hash,"arraybuffer",{progressBar:s}).done(function(i){if(i){l=e("
          ").css({width:"100%",height:"100%"}).hide().appendTo(a);try{c=n.getWorker(),c.onmessage=function(n){var i,o,s,d,u=n.data;c&&c.terminate(),i=document.createElement("canvas"),o=i.getContext("2d"),i.width=u.width,i.height=u.height,s=o.createImageData(u.width,u.height),s.data.set(new Uint8Array(u.image)),o.putImageData(s,0,0),l.append(i).show(),r.remove(),d=(u.width/u.height).toFixed(2),a.on("changesize",function(){var t,n,o=parseInt(a.width()),r=parseInt(a.height());d<(o/r).toFixed(2)?(n=r,t=Math.floor(n*d)):(t=o,n=Math.floor(t/d)),e(i).width(t).height(n).css("margin-top",n'+i.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),d=e('
          ').appendTo(c),h=i.openUrl(f.hash,"sameorigin",function(t){t&&(l=e("").hide().appendTo(o),n?r(t,l,c):(p=window.define,u=window.require,window.require=null,window.define=null,i.loadScript([i.options.cdns.psd],function(){n=require("psd"),p?window.define=p:delete window.define,u?window.require=u:delete window.require,r(t,l,c)})))},{progressBar:d}),o.one("change",function(){h&&h.state&&"pending"===h.state()&&h.reject()}))})},function(t){var n=t.fm,i=n.arrayFlip(["text/html","application/xhtml+xml"]),a=t.preview;a.on(t.evUpdate,function(o){var r,s,l,c=o.file;i[c.mime]&&t.dispInlineRegex.test(c.mime)&&(!t.options.getSizeMax||c.size<=t.options.getSizeMax)&&(o.stopImmediatePropagation(),s=e('
          '+n.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),l=e('
          ').appendTo(s),a.one("change",function(){"pending"==r.state()&&r.reject()}).addClass("elfinder-overflow-auto"),r=n.request({data:{cmd:"get",target:c.hash,conv:1,_t:c.ts},options:{type:"get",cache:!0},preventDefault:!0,progressBar:l}).done(function(n){t.hideinfo();var i=e('').appendTo(a)[0].contentWindow.document;i.open(),i.write(n.content),i.close()}).always(function(){s.remove()}))})},function(t){var n=t.fm,i=n.arrayFlip(["text/x-markdown"]),a=t.preview,o=null,r=function(n,i){t.hideinfo();var r=e('').appendTo(a)[0].contentWindow.document;r.open(),r.write((o.parse||o)(n.content)),r.close(),i.remove()},s=function(e){o=!1,e.remove()};a.on(t.evUpdate,function(l){var c,d,p,u=l.file;i[u.mime]&&n.options.cdns.marked&&o!==!1&&t.dispInlineRegex.test(u.mime)&&(!t.options.getSizeMax||u.size<=t.options.getSizeMax)&&(l.stopImmediatePropagation(),d=e('
          '+n.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),p=e('
          ').appendTo(d),a.one("change",function(){"pending"==c.state()&&c.reject()}).addClass("elfinder-overflow-auto"),c=n.request({data:{cmd:"get",target:u.hash,conv:1,_t:u.ts},options:{type:"get",cache:!0},preventDefault:!0,progressBar:p}).done(function(e){o||window.marked?(o||(o=window.marked),r(e,d)):n.loadScript([n.options.cdns.marked],function(t){o=t||window.marked||!1,delete window.marked,o?r(e,d):s(d)},{tryRequire:!0,error:function(){s(d)}})}).fail(function(){s(d)}))})},function(t){if(t.options.viewerjs){var n=t.fm,i=t.preview,a=t.options.viewerjs,o=a.url?n.arrayFlip(a.mimes||[]):[],r=t.window,s=t.navbar,l=function(){s.css("bottom",r.hasClass("elfinder-quicklook-fullscreen")?"30px":"")};a.url&&i.on("update",function(s){var c,d,p,u,h=s.file;!o[h.mime]||"application/pdf"===h.mime&&a.pdfNative&&t.flags.pdfNative||(s.stopImmediatePropagation(),d=e('
          '+n.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),p=e('
          ').appendTo(d),u=n.openUrl(h.hash,"sameorigin",function(n){n&&(c=e('').css("background-color","transparent").on("load",function(){t.hideinfo(),d.remove(),c.css("background-color","#fff")}).on("error",function(){d.remove(),c.remove()}).appendTo(i).attr("src",a.url+"#"+n),r.on("viewchange.viewerjs",l),l(),i.one("change",function(){r.off("viewchange.viewerjs"),d.remove(),c.off("load").remove()}))},{progressBar:p}),i.one("change",function(){u&&u.state&&"pending"===u.state()&&u.reject()}))})}},function(t){var n=t.fm,i="application/pdf",a=t.preview,o=!1,r="";n.UA.Safari&&"mac"===n.OS&&!n.UA.iOS||n.UA.IE||n.UA.Firefox?o=!0:e.each(navigator.plugins,function(t,n){e.each(n,function(e,t){if(t.type===i)return!(o=!0)})}),t.flags.pdfNative=o,o&&("undefined"==typeof t.options.pdfToolbar||t.options.pdfToolbar||(r="#toolbar=0"),a.on(t.evUpdate,function(s){var l,c=s.file;o&&c.mime===i&&t.dispInlineRegex.test(c.mime)&&(s.stopImmediatePropagation(),l=n.openUrl(c.hash,!1,function(i){i&&(t.hideinfo(),t.cover.addClass("elfinder-quicklook-coverbg"),e('').on("error",function(e){o=!1,t.update(void 0,n.cwd()),t.update(void 0,c)}).appendTo(a))}),a.one("change",function(){l&&l.state&&"pending"===l.state()&&l.reject()}))}))},function(t){var n=t.fm,i="application/x-shockwave-flash",a=t.preview,o=!1;e.each(navigator.plugins,function(t,n){e.each(n,function(e,t){if(t.type===i)return!(o=!0)})}),o&&a.on(t.evUpdate,function(o){var r,s,l=o.file;l.mime===i&&t.dispInlineRegex.test(l.mime)&&(o.stopImmediatePropagation(),s=n.openUrl(l.hash,!1,function(n){n&&(t.hideinfo(),r=e('').appendTo(a))}),a.one("change",function(){s&&s.state&&"pending"===s.state()&&s.reject()}))})},function(t){var n,i,a,o,r,s,l=t.fm,c=t.preview,d={"audio/mpeg":"mp3","audio/mpeg3":"mp3","audio/mp3":"mp3","audio/x-mpeg3":"mp3","audio/x-mp3":"mp3","audio/x-wav":"wav","audio/wav":"wav","audio/x-m4a":"m4a","audio/aac":"m4a","audio/mp4":"m4a","audio/x-mp4":"m4a","audio/ogg":"ogg","audio/webm":"webm","audio/flac":"flac","audio/x-flac":"flac","audio/amr":"amr"},p=t.window,u=t.navbar,h="string"==typeof t.options.mediaControlsList&&t.options.mediaControlsList?' controlsList="'+l.escape(t.options.mediaControlsList)+'"':"",f=function(){u.css("bottom",p.hasClass("elfinder-quicklook-fullscreen")?"50px":"")},m=function(t,i){return e('').on("change",function(e){e.stopPropagation()}).on("error",function(e){n&&n.data("hash")===i&&b()}).data("hash",i).appendTo(c)},g=function(t){var n,i=e.Deferred(),o=e.Deferred().done(function(){var e;e=l.getContents(t,"arraybuffer",{progressBar:s}).done(function(e){try{var t=a.toWAV(new Uint8Array(e));t?i.resolve(URL.createObjectURL(new Blob([t],{type:"audio/x-wav"}))):i.reject()}catch(n){i.reject()}}).fail(function(){i.reject()}),c.one("change",function(){e&&e.state&&"pending"===e.state()&&e.reject()})}).fail(function(){a=!1,i.reject()});return window.TextEncoder&&window.URL&&URL.createObjectURL&&"undefined"==typeof a?(n=window.AMR,delete window.AMR,l.loadScript([l.options.cdns.amr],function(){a=!!window.AMR&&window.AMR,window.AMR=n,o[a?"resolve":"reject"]()},{error:function(){o.reject()}})):o[a?"resolve":"reject"](),i},v=function(e){var t,i=n.data("hash");o&&(t=e.play()),t&&t["catch"]&&t["catch"](function(t){e.paused||n&&n.data("hash")===i&&b()})},b=function(){if(n&&n.parent().length){var e=n[0],t=n.children("source").attr("src");p.off("viewchange.audio");try{e.pause(),n.empty(),t.match(/^blob:/)&&URL.revokeObjectURL(t),e.src="",e.load()}catch(i){}n.remove(),n=null}};c.on(t.evUpdate,function(u){var h,b,y=u.file,w=d[y.mime];d[y.mime]&&t.dispInlineRegex.test(y.mime)&&((h=t.support.audio[w])||"amr"===w)&&(o=t.autoPlay(),i=y.hash,h?(u.stopImmediatePropagation(),r=e('
          '+l.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),s=e('
          ').appendTo(r),b=l.openUrl(i,!1,function(e){r.remove(),e?(n=m(e,i),v(n[0]),p.on("viewchange.audio",f),f()):n.remove()},{progressBar:s}),c.one("change",function(){b&&b.state&&"pending"===b.state()&&b.reject()})):l.options.cdns.amr&&"amr"===w&&a!==!1&&(u.stopImmediatePropagation(),r=e('
          '+l.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),s=e('
          ').appendTo(r),n=m("",i),g(y.hash).done(function(e){if(r.remove(),i===y.hash){var t=n[0];try{n.children("source").attr("src",e),t.pause(),t.load(),v(t),p.on("viewchange.audio",f),f()}catch(a){URL.revokeObjectURL(e),n.remove()}}else URL.revokeObjectURL(e)}).fail(function(){n.remove()})))}).one("change",b)},function(t){var n,i,a,o,r,s,l,c,d,p,u=t.fm,h=t.preview,f={"video/mp4":"mp4","video/x-m4v":"mp4","video/quicktime":"mp4","video/mpeg":"mpeg","video/ogg":"ogg","application/ogg":"ogg","video/webm":"webm","video/x-matroska":"mkv","video/3gpp":"3gp","application/vnd.apple.mpegurl":"m3u8","application/x-mpegurl":"m3u8","application/dash+xml":"mpd","video/x-flv":"flv","video/x-msvideo":"avi"},m=t.window,g=t.navbar,v="string"==typeof t.options.mediaControlsList&&t.options.mediaControlsList?' controlsList="'+u.escape(t.options.mediaControlsList)+'"':"",b=function(){u.UA.iOS?m.hasClass("elfinder-quicklook-fullscreen")?(h.css("height","-webkit-calc(100% - 50px)"),g._show()):h.css("height",""):g.css("bottom",m.hasClass("elfinder-quicklook-fullscreen")?"50px":"")},y=function(i,a){var r,s=function(e){l>1&&(c&&clearTimeout(c),c=setTimeout(function(){!r&&T(!0)},800))},l=0,d="";o=null,a=a||{},a.cssClass&&(d=" "+a.cssClass),t.hideinfo(),n=e('').on("change",function(e){e.stopPropagation()}).on("timeupdate progress",s).on("canplay",function(){r=!0}).data("hash",i.hash),n[0].addEventListener("error",function(e){a.src&&u.convAbsUrl(a.src)===u.convAbsUrl(e.target.src)&&(++l,s())},!0),a.src&&n.append(''),n.appendTo(h),m.on("viewchange.video",b),b()},w=function(e){var t,a;a=u.openUrl(e.hash,!1,function(a){d.remove(),a&&(y(e),t=new i,t.loadSource(a),t.attachMedia(n[0]),l&&t.on(i.Events.MANIFEST_PARSED,function(){z(n[0])}))},{progressBar:p}),h.one("change",function(){a&&a.state&&"pending"===a.state()&&a.reject()})},x=function(e){var t;t=u.openUrl(e.hash,!1,function(t){var i;d.remove(),t&&(y(e),o=window.dashjs.MediaPlayer().create(),i=o.getDebug(),i.setLogLevel?i.setLogLevel(dashjs.Debug.LOG_LEVEL_FATAL):i.setLogToBrowserConsole&&i.setLogToBrowserConsole(!1),o.initialize(n[0],t,l),o.on("error",function(e){T(!0)}))},{progressBar:p}),h.one("change",function(){t&&t.state&&"pending"===t.state()&&t.reject()})},k=function(e){var t;return r.isSupported()?(t=u.openUrl(e.hash,!1,function(t){if(d.remove(),t){var i=r.createPlayer({type:"flv",url:t});y(e),i.on(r.Events.ERROR,function(){i.destroy(),T(!0)}),i.attachMediaElement(n[0]),i.load(),z(i)}},{progressBar:p}),void h.one("change",function(){t&&t.state&&"pending"===t.state()&&t.reject()})):void(r=!1)},C=function(e){var t;t=u.openUrl(e.hash,!1,function(t){d.remove(),t&&(y(e,{src:t,cssClass:"video-js"}),n[0].src=t,s(n[0],{autoplay:!0}))},{progressBar:p}),h.one("change",function(){t&&t.state&&"pending"===t.state()&&t.reject()})},z=function(e){var t,i=n.data("hash");l&&(t=e.play()),t&&t["catch"]&&t["catch"](function(t){e.paused||n&&n.data("hash")===i&&T(!0)})},T=function(e){if(c&&clearTimeout(c),n&&n.parent().length){var i=n[0];m.off("viewchange.video"),o&&o.reset();try{i.pause(),n.empty(),i.src="",i.load()}catch(a){}n.remove(),n=null}e&&t.info.show()};h.on(t.evUpdate,function(o){var c,m,g=o.file,v=g.mime.toLowerCase(),b=f[v];f[v]&&t.dispInlineRegex.test(g.mime)&&(l=t.autoPlay(),d=e('
          '+u.i18n("nowLoading")+'
          '),p=e('
          ').appendTo(d),t.support.video[b]&&("m3u8"!==b||u.UA.Safari)?(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),m=u.openUrl(g.hash,!1,function(e){d.remove(),e&&(y(g,{src:e}),z(n[0]))},{progressBar:p}),h.one("change",function(){m&&m.state&&"pending"===m.state()&&m.reject()})):i!==!1&&u.options.cdns.hls&&"m3u8"===b?(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),i?w(g):(c=window.Hls,delete window.Hls,u.loadScript([u.options.cdns.hls],function(e){i=e||window.Hls||!1,window.Hls=c,i&&w(g)},{tryRequire:!0,error:function(){i=!1}}))):a!==!1&&u.options.cdns.dash&&"mpd"===b?(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),a?x(g):u.loadScript([u.options.cdns.dash],function(){a=!!window.dashjs,a&&x(g)},{tryRequire:!0,error:function(){a=!1}})):r!==!1&&u.options.cdns.flv&&"flv"===b?(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),r?k(g):(c=window.flvjs,delete window.flvjs,u.loadScript([u.options.cdns.flv],function(e){r=e||window.flvjs||!1,window.flvjs=c,r&&k(g)},{tryRequire:!0,error:function(){r=!1}}))):u.options.cdns.videojs&&(o.stopImmediatePropagation(),d.appendTo(t.info.find(".elfinder-quicklook-info")),s?C(g):u.loadScript([u.options.cdns.videojs+"/video.min.js"],function(e){s=e||window.videojs||!1,s&&C(g)},{tryRequire:!0,error:function(){s=!1}}).loadCss([u.options.cdns.videojs+"/video-js.min.css"])))}).one("change",T)},function(t){var n,i=t.preview,a=[],o=t.window,r=t.navbar;e.each(navigator.plugins,function(t,n){e.each(n,function(e,t){(0===t.type.indexOf("audio/")||0===t.type.indexOf("video/"))&&a.push(t.type)})}),a=t.fm.arrayFlip(a),i.on(t.evUpdate,function(s){var l,c,d,p,u=s.file,h=u.mime,f=function(){r.css("bottom",o.hasClass("elfinder-quicklook-fullscreen")?"50px":"")};a[u.mime]&&t.dispInlineRegex.test(u.mime)&&(s.stopImmediatePropagation(),d=e('
          '+fm.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),p=e('
          ').appendTo(d),c=t.fm.openUrl(u.hash,!1,function(a){d.remove(),a&&((l=0===h.indexOf("video/"))&&t.hideinfo(),n=e('').appendTo(i),o.on("viewchange.embed",f),f())},{progressBar:p}),i.one("change",function(){c&&c.state&&"pending"===c.state()&&c.reject()}))}).one("change",function(){n&&n.parent().length&&(o.off("viewchange.embed"),n.remove(),n=null)})},function(t){var n=t.fm,i=n.arrayFlip(["application/zip","application/x-gzip","application/x-tar","application/x-bzip2"]),a=t.preview,o=n.returnBytes(t.options.unzipMaxSize||0),r=!(!n.options.cdns.zlibUnzip||!n.options.cdns.zlibGunzip),s=!!n.options.cdns.bzip2;window.Worker&&window.Uint8Array&&window.DataView&&a.on(t.evUpdate,function(l){var c=l.file,d="application/x-tar"===c.mime,p="application/x-bzip2"===c.mime,u="application/zip"===c.mime||"application/x-gzip"===c.mime;if(i[c.mime]&&(!o||c.size<=o)&&(d||p&&s||u&&r)){var h,f,m,g,v=function(){h=n.getContents(c.hash,"arraybuffer",{progressBar:g}).fail(function(){m.remove()}).done(function(e){var t=function(e){f&&f.terminate(),m.remove(),u?r=!1:p&&(s=!1),n.debug("error",e)};try{f=n.getWorker(),f.onmessage=function(e){f&&f.terminate(),m.remove(),!e.data||e.data.error?new Error(e.data&&e.data.error?e.data.error:""):b(e.data.files)},f.onerror=t,"application/x-tar"===c.mime?f.postMessage({scripts:[n.getWorkerUrl("quicklook.unzip.js")],data:{type:"tar",bin:e}}):"application/zip"===c.mime?f.postMessage({scripts:[n.options.cdns.zlibUnzip,n.getWorkerUrl("quicklook.unzip.js")],data:{type:"zip",bin:e}}):"application/x-gzip"===c.mime?f.postMessage({scripts:[n.options.cdns.zlibGunzip,n.getWorkerUrl("quicklook.unzip.js")],data:{type:"gzip",bin:e}}):"application/x-bzip2"===c.mime&&f.postMessage({scripts:[n.options.cdns.bzip2,n.getWorkerUrl("quicklook.unzip.js")],data:{type:"bzip2",bin:e}})}catch(i){t(i)}})},b=function(i){var o,r,s,l=0;i&&i.length&&(i=e.map(i,function(e){return n.decodeRawString(e)}),i.sort(),r=n.escape(i.join("\n").replace(/\{formatSize\((\d+)\)\}/g,function(e,t){return l+=parseInt(t),n.formatSize(t)})),o=""+n.escape(c.mime)+" ("+n.formatSize(c.size)+" / "+n.formatSize(l)+")
          ",s=e('
          '+o+'
          '+r+"
          ").on("touchstart",function(t){e(this)["scroll"+("ltr"===n.direction?"Right":"Left")]()>5&&(t.originalEvent._preventSwipeX=!0)}).appendTo(a),t.hideinfo()),m.remove()};l.stopImmediatePropagation(),m=e('
          '+n.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),g=e('
          ').appendTo(m),a.one("change",function(){"pending"===h.state()&&h.reject(),f&&f.terminate(),m.remove()}),v()}})},function(t){var n,i=t.fm,a=i.arrayFlip(["application/x-rar"]),o=t.preview;window.DataView&&o.on(t.evUpdate,function(r){var s=r.file;if(a[s.mime]&&i.options.cdns.rar&&n!==!1){var l,c,d,p,u,h,f=function(a){if(p)return void l.remove();try{d=n({file:a,type:2,xhrHeaders:i.customHeaders,xhrFields:i.xhrFields},function(n){l.remove();var a,r,c=[];return p||n?void(n&&i.debug("error",n)):(e.each(d.entries,function(){c.push(this.path+(this.size?" ("+i.formatSize(this.size)+")":""))}),void(c.length&&(c=e.map(c,function(e){return i.decodeRawString(e)}),c.sort(),a=""+i.escape(s.mime)+" ("+i.formatSize(s.size)+")
          ",r=e('
          '+a+'
          '+i.escape(c.join("\n"))+"
          ").on("touchstart",function(t){e(this)["scroll"+("ltr"===i.direction?"Right":"Left")]()>5&&(t.originalEvent._preventSwipeX=!0)}).appendTo(o),t.hideinfo())))})}catch(r){l.remove()}},m=function(){n=!1,l.remove()};r.stopImmediatePropagation(),l=e('
          '+i.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),c=e('
          ').appendTo(l),o.one("change",function(){d&&(d.abort=!0),l.remove(),p=!0}),h=i.openUrl(s.hash,"sameorigin",function(e){e&&(n?f(e):(window.RarArchive&&(u=window.RarArchive,delete window.RarArchive),i.loadScript([i.options.cdns.rar],function(){i.hasRequire?require(["rar"],function(t){n=t,f(e)},m):(n=window.RarArchive)?(u?window.RarArchive=u:delete window.RarArchive,f(e)):m()},{tryRequire:!0,error:m})))},{progressBar:c,temporary:!0}),o.one("change",function(){h&&h.state&&"pending"===h.state()&&h.reject()})}})},function(t){var n,i=t.fm,a=i.arrayFlip(t.options.sharecadMimes||[]),o=t.preview;t.window;t.options.sharecadMimes.length&&t.addIntegration({title:"ShareCAD.org CAD and 3D-Models viewer",link:"https://sharecad.org/DWGOnlinePlugin"}),o.on(t.evUpdate,function(r){var s=r.file;if(a[s.mime.toLowerCase()]&&i.option("onetimeUrl",s.hash)){var l,c,d;t.window;r.stopImmediatePropagation(),"1"==s.url&&(o.hide(),e('
          ").appendTo(t.info.find(".elfinder-quicklook-info")).on("click",function(){var n=e(this);n.html(''),i.request({data:{cmd:"url",target:s.hash},preventDefault:!0,progressBar:c}).always(function(){n.html("")}).done(function(e){var n=i.file(s.hash);s.url=n.url=e.url||"",s.url&&o.trigger({type:t.evUpdate,file:s,forceUpdate:!0})})})),""!==s.url&&"1"!=s.url&&(o.one("change",function(){l.remove(),n.off("load").remove(),n=null}).addClass("elfinder-overflow-auto"),l=e('
          '+i.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),c=e('
          ').appendTo(l),d=i.convAbsUrl(i.url(s.hash)),n=e('').css("background-color","transparent").appendTo(o).on("load",function(){t.hideinfo(),l.remove(),t.preview.after(t.info),e(this).css("background-color","#fff").show()}).on("error",function(){l.remove(),t.preview.after(t.info)}).attr("src","//sharecad.org/cadframe/load?url="+encodeURIComponent(d)),t.info.after(t.preview))}})},function(t){var n,i,a,o,r,s=t.fm,l={"application/vnd.google-earth.kml+xml":!0,"application/vnd.google-earth.kmz":!0},c=t.preview;t.options.googleMapsApiKey&&(t.addIntegration({title:"Google Maps",link:"https://www.google.com/intl/"+s.lang.replace("_","-")+"/help/terms_maps.html"}),n=window.google&&google.maps,i=function(e,i,a){var r=t.options.googleMapsOpts.maps;s.forExternalUrl(e.hash,{progressBar:a}).done(function(e){if(e)try{new n.KmlLayer(e,Object.assign({map:new n.Map(i.get(0),r)},t.options.googleMapsOpts.kml)),t.hideinfo()}catch(a){o()}else o()})},a=window.gm_authFailure,o=function(){r=null},r="https://maps.googleapis.com/maps/api/js?key="+t.options.googleMapsApiKey,window.gm_authFailure=function(){o(),a&&a()},c.on(t.evUpdate,function(a){var o=a.file;if(r&&l[o.mime.toLowerCase()]){var d,p,u,h=(t.window,"1"==o.url&&!s.option("onetimeUrl",o.hash));a.stopImmediatePropagation(),d=e('
          '+s.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),p=e('
          ').appendTo(d),h&&(c.hide(),e('
          ").appendTo(t.info.find(".elfinder-quicklook-info")).on("click",function(){var n=e(this);n.html(''),s.request({data:{cmd:"url",target:o.hash},preventDefault:!0,progressBar:p}).always(function(){d.remove(),n.html("")}).done(function(e){var n=s.file(o.hash);o.url=n.url=e.url||"",o.url&&c.trigger({type:t.evUpdate,file:o,forceUpdate:!0})})})),""===o.url||h||(u=e('
          ').appendTo(c),c.one("change",function(){u.remove(),u=null}),n?i(o,u,p):s.loadScript([r],function(){n=window.google&&google.maps,n&&i(o,u,p)}))}}))},function(t){var n,i,a=t.fm,o=Object.assign(a.arrayFlip(t.options.googleDocsMimes||[],"g"),a.arrayFlip(t.options.officeOnlineMimes||[],"m")),r=t.preview,s=(t.window,t.navbar),l={g:"docs.google.com/gview?embedded=true&url=",m:"view.officeapps.live.com/op/embed.aspx?wdStartOn=0&src="},c={g:"56px",m:"24px"},d={xls:5242880,xlsb:5242880,xlsx:5242880,xlsm:5242880,other:10485760};t.options.googleDocsMimes.length&&(i=!0,t.addIntegration({title:"Google Docs Viewer",link:"https://docs.google.com/"})),t.options.officeOnlineMimes.length&&(i=!0,t.addIntegration({title:"MS Online Doc Viewer",link:"https://products.office.com/office-online/view-office-documents-online"})),i&&r.on(t.evUpdate,function(i){var p,u,h=i.file;if(h.size<=26214400&&(p=o[h.mime])){var f,m,g,v=t.window,b=function(){s.css("bottom",v.hasClass("elfinder-quicklook-fullscreen")?c[p]:"")},y=a.mimeTypes[h.mime],w="1"==h.url&&!a.option("onetimeUrl",h.hash);"m"===p&&(d[y]&&h.size>d[y]||h.size>d.other)&&(p="g"),w&&(r.hide(),e('
          ").appendTo(t.info.find(".elfinder-quicklook-info")).on("click",function(){var n=e(this);n.html(''),a.request({data:{cmd:"url",target:h.hash},preventDefault:!0}).always(function(){n.html("")}).done(function(e){var n=a.file(h.hash);h.url=n.url=e.url||"",h.url&&r.trigger({type:t.evUpdate,file:h,forceUpdate:!0})})})),""===h.url||w||(i.stopImmediatePropagation(),r.one("change",function(){u&&u.status&&"pending"===u.status()&&u.reject(),v.off("viewchange.googledocs"),f.remove(),n.off("load").remove(),n=null}).addClass("elfinder-overflow-auto"),f=e('
          '+a.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),m=e('
          ').appendTo(f),n=e('').css("background-color","transparent").appendTo(r),u=a.forExternalUrl(h.hash,{progressBar:m}).done(function(i){var a=function(){try{!n||n.attr("src")&&!n.get(0).contentWindow.document||(n.attr("src","https://"+l[p]+encodeURIComponent(i)),g=setTimeout(a,2e3))}catch(e){}};i?(h.ts&&(i+=(i.match(/\?/)?"&":"?")+"_t="+h.ts),n.on("load",function(){g&&clearTimeout(g),t.hideinfo(),f.remove(),t.preview.after(t.info),e(this).css("background-color","#fff").show()}).on("error",function(){g&&clearTimeout(g),f.remove(),t.preview.after(t.info)}),a()):(f.remove(),n.remove())}),v.on("viewchange.googledocs",b),b(),t.info.after(t.preview))}})},function(t){"use strict";var n,i,a=t.fm,o=t.preview,r=parseInt(t.options.textInitialLines)||150,s=parseInt(t.options.prettifyMaxLines)||500,l=function(){c=function(){return!1},i&&(window.PR=i),n=!1},c=function(e){a.options.cdns.prettify?(c=function(e){return setTimeout(function(){p(e)},100),"pending"},window.PR&&(i=window.PR),a.loadScript([a.options.cdns.prettify+(a.options.cdns.prettify.match(/\?/)?"&":"?")+"autorun=false"],function(t){n=t||window.PR,"object"==typeof n?(c=function(){return!0},i?window.PR=i:delete window.PR,d(e)):l()},{tryRequire:!0,error:l})):l()},d=function(e){e&&!e.hasClass("prettyprinted")&&(e.css("cursor","wait"),requestAnimationFrame(function(){n.prettyPrint&&n.prettyPrint(null,e.get(0)),e.css("cursor","")}))},p=function(e){var t=c(e);t===!0&&d(e)};o.on(t.evUpdate,function(i){var l,c,d,u,h=i.file;h.mime;a.mimeIsText(h.mime)&&(!t.options.getSizeMax||h.size<=t.options.getSizeMax)&&n!==!1&&(i.stopImmediatePropagation(),c=e('
          '+a.i18n("nowLoading")+'
          ').appendTo(t.info.find(".elfinder-quicklook-info")),d=e('
          ').appendTo(c),o.one("change",function(){"pending"==l.state()&&l.reject(),u&&u.remove()}),l=a.request({data:{cmd:"get",target:h.hash,conv:h.encoding||1,_t:h.ts},options:{type:"get",cache:!0},preventDefault:!0,progressBar:d}).done(function(n){var i,l,c,d,u,f=new RegExp("^(data:"+h.mime.replace(/([.+])/g,"\\$1")+";base64,)","i"),m=n.content;"string"==typeof m&&(t.hideinfo(),window.atob&&(u=m.match(f))&&(m=atob(m.substr(u[1].length))),d=m.match(/([^\r\n]{1,100}[\r\n]*)/g),l=d.length-r,l>10?i=d.splice(0,r).join(""):l=0,c=e('
          '), +l&&c.append(e('

          '+a.i18n("linesLeft",a.toLocaleString(l))+"
          ").on("click",function(){var t=c.scrollTop();e(this).remove(),c.children("pre").removeClass("prettyprinted").text(m).scrollTop(t),d.length<=s&&p(c)})),c.children("pre").text(i||m),c.on("touchstart",function(t){e(this)["scroll"+("ltr"===a.direction?"Right":"Left")]()>5&&(t.originalEvent._preventSwipeX=!0)}).appendTo(o),n.toasts&&Array.isArray(n.toasts)&&e.each(n.toasts,function(){this.msg&&a.toast(this)}),p(c))}).always(function(n){var i,r,s;(i=a.getCommand("edit"))&&(s=[],n&&n.encoding&&s.push({value:n.encoding}),s.push({value:"UTF-8"}),r=i.getEncSelect(s),r.on("change",function(){h.encoding=r.val(),a.cache(h,"change"),o.trigger({type:t.evUpdate,file:h,forceUpdate:!0})}),u=e('
          ').append(r),t.window.append(u)),c.remove()}))})}],(i.prototype.commands.reload=function(){"use strict";var t=this,n=!1;this.alwaysEnabled=!0,this.updateOnSelect=!0,this.shortcuts=[{pattern:"ctrl+shift+r f5"}],this.getstate=function(){return 0},this.init=function(){this.fm.bind("search searchend",function(){n="search"==this.type})},this.fm.bind("contextmenu",function(){var n=t.fm;n.options.sync>=1e3&&(t.extra={icon:"accept",node:e("").attr({title:n.i18n("autoSync")}).on("click touchstart",function(t){"touchstart"===t.type&&t.originalEvent.touches.length>1||(t.stopPropagation(),t.preventDefault(),e(this).parent().toggleClass("ui-state-disabled",n.options.syncStart).parent().removeClass("ui-state-hover"),n.options.syncStart=!n.options.syncStart,n.autoSync(n.options.syncStart?null:"stop"))}).on("ready",function(){e(this).parent().toggleClass("ui-state-disabled",!n.options.syncStart).css("pointer-events","auto")})})}),this.exec=function(){var t=this.fm;if(!n){var i=t.sync(),a=setTimeout(function(){t.notify({type:"reload",cnt:1,hideCnt:!0}),i.always(function(){t.notify({type:"reload",cnt:-1})})},t.notifyDelay);return i.always(function(){clearTimeout(a),t.trigger("reload")})}e("div.elfinder-toolbar > div."+t.res("class","searchbtn")+" > span.ui-icon-search").click()}}).prototype={forceLoad:!0},i.prototype.commands.rename=function(){"use strict";this.fm.options.enableRootRename!==!1&&(this.alwaysEnabled=!0),this.syncTitleOnChange=!0;var t=this,n=t.fm,i=n.options.enableRootRename!==!1,a=function(t,a,o,r){var s,l=a?[o.hash].concat(a):[o.hash],c=l.length,d={};if(n.lockfiles({files:l}),n.isRoot(o)&&!o.netkey&&i){if((s=n.storage("rootNames"))||(s={}),""===r){if(!s[o.hash])return t&&t.reject(),void n.unlockfiles({files:l}).trigger("selectfiles",{files:l});o.name=o._name,o.i18=o._i18,delete s[o.hash],delete o._name,delete o._i18}else"undefined"==typeof o._name&&(o._name=o.name,o._i18=o.i18),o.name=s[o.hash]=r,delete o.i18;return n.storage("rootNames",s),d={changed:[o]},n.updateCache(d),n.change(d),t&&t.resolve(d),void n.unlockfiles({files:l}).trigger("selectfiles",{files:l})}d={cmd:"rename",name:r,target:o.hash},c>1&&(d.targets=a,r.match(/\*/)&&(d.q=r)),n.request({data:d,notify:{type:"rename",cnt:c},navigate:{}}).fail(function(e){var i=n.parseError(e);t&&t.reject(),i&&Array.isArray(i)&&"errRename"===i[0]||n.sync()}).done(function(i){var a;i.added&&i.added.length&&1===c&&(i.undo={cmd:"rename",callback:function(){return n.request({data:{cmd:"rename",target:i.added[0].hash,name:o.name},notify:{type:"undo",cnt:1}})}},i.redo={cmd:"rename",callback:function(){return n.request({data:{cmd:"rename",target:o.hash,name:r},notify:{type:"rename",cnt:1}})}}),t&&t.resolve(i),(a=n.cwd().hash)&&a!==o.hash||n.exec("open",e.map(i.added,function(e){return"directory"===e.mime?e.hash:null})[0])}).always(function(){n.unlockfiles({files:l}).trigger("selectfiles",{files:l})})},o=function(e,t){var i,a,o,r=t||n.selected(),s=n.splitFileExtention(e),l=n.file(r[0]),c=n.file(r[1]);return i=s[1]?"."+s[1]:"",s[1]&&"*"===s[0]?(a='"'+n.splitFileExtention(l.name)[0]+i+'", ',a+='"'+n.splitFileExtention(c.name)[0]+i+'"'):s[0].length>1&&("*"===s[0].substr(-1)?(o=s[0].substr(0,s[0].length-1),a='"'+o+l.name+'", ',a+='"'+o+c.name+'"'):"*"===s[0].substr(0,1)&&(o=s[0].substr(1),a='"'+n.splitFileExtention(l.name)[0]+o+i+'", ',a+='"'+n.splitFileExtention(c.name)[0]+o+i+'"')),a||(a='"'+s[0]+"1"+i+'", "'+s[0]+"2"+i+'"'),r.length>2&&(a+=" ..."),a},r=function(){var i,r=n.selected(),s='',l=function(t,i){return e('").prepend(t)},c=e(''),d=e(s),p=e(s),u=e(s),h=e(s),f=e("
          ").append(l(d,"plusNumber"),l(p,"asPrefix"),l(u,"asSuffix"),l(h,"changeExtention")),m=e('
          '),g=e('
          ').append(e('
          ').append(c),e('
          ').append(f),m),v={title:n.i18n("batchRename"),modal:!0,destroyOnClose:!0,width:Math.min(380,n.getUI().width()-20),buttons:{},open:function(){c.on("input",y).trigger("focus")}},b=function(){var e=c.val(),t=n.splitFileExtention(n.file(r[0]).name)[1];return(""!==e||d.is(":checked"))&&(p.is(":checked")?e+="*":u.is(":checked")?e="*"+e+"."+t:h.is(":checked")?e="*."+e:t&&(e+="."+t)),e},y=function(){var e=b();""!==e?m.html(n.i18n(["renameMultiple",r.length,o(e)])):m.empty()},w=f.find("input:radio").on("change",y);v.buttons[n.i18n("btnApply")]=function(){var e,t,o=b();""!==o&&(i.elfinderdialog("close"),t=r,e=n.file(t.shift()),a(void 0,t,e,o))},v.buttons[n.i18n("btnCancel")]=function(){i.elfinderdialog("close")},e.fn.checkboxradio?w.checkboxradio({create:function(e,t){this===d.get(0)&&d.prop("checked",!0).change()}}):f.buttonset({create:function(e,t){d.prop("checked",!0).change()}}),i=t.fmDialog(g,v)};this.noChangeDirOnRemovedCwd=!0,this.shortcuts=[{pattern:"f2"+("mac"==n.OS?" enter":"")},{pattern:"shift+f2",description:"batchRename",callback:function(){n.selected().length>1&&r()}}],this.getstate=function(a){var o,s,l,c,d,p,u=this.files(a),h=u.length;return h?(h>1&&u[0].phash&&(o=u[0].phash,s=n.splitFileExtention(u[0].name)[1].toLowerCase(),l=u[0].mime),1===h&&(p=n.isRoot(u[0])),d=1===h&&(i&&n.cookieEnabled&&p||!u[0].locked)||n.api>2.103&&h===e.grep(u,function(e){return!(c||e.locked||e.phash!==o||n.isRoot(e)||l!==e.mime&&s!==n.splitFileExtention(e.name)[1].toLowerCase())||(c&&(c=!0),!1)}).length?0:-1,!p&&0===d&&n.option("disabledFlip",u[0].hash).rename&&(d=-1),d!==-1&&h>1?t.extra={icon:"preference",node:e("").attr({title:n.i18n("batchRename")}).on("click touchstart",function(e){"touchstart"===e.type&&e.originalEvent.touches.length>1||(e.stopPropagation(),e.preventDefault(),n.getUI().trigger("click"),r())})}:delete t.extra,d):-1},this.exec=function(t,r){var s,l=(n.getUI("cwd"),t||!!n.selected().length&&n.selected()||[n.cwd().hash]),c=l.length,d=n.file(l.shift()),p=".elfinder-cwd-filename",u=r||{},h=n.cwd().hash==d.hash,f="navbar"===u._currentType||"files"===u._currentType?u._currentType:h?"navbar":"files",m="files"!==f,g=n[m?"navHash2Elm":"cwdHash2Elm"](d.hash),v=!m&&"list"!=n.storage("view"),b=function(){requestAnimationFrame(function(){k&&k.trigger("blur")})},y=function(){A.is(":hidden")||A.elfinderoverlay("hide").off("click close",j),T.removeClass("ui-front").css("position","").off("unselect."+n.namespace,b),v?z&&z.css("max-height",""):m||T.css("width","").parent("td").css("overflow","")},w=e.Deferred().fail(function(e){var t=k.parent(),i=n.escape(d.i18||d.name);k.off(),v&&(i=i.replace(/([_.])/g,"​$1")),requestAnimationFrame(function(){m?k.replaceWith(i):t.length?(k.remove(),t.html(i)):g.find(p).html(i)}),e&&n.error(e)}).always(function(){y(),n.unbind("resize",O),n.enable()}),x=function(t){var i=e.trim(k.val()),r=(n.splitFileExtention(i),!0),s=function(){k.off(),y(),m?k.replaceWith(n.escape(i)):z.html(n.escape(i)),a(w,l,d,i)};if(A.is(":hidden")||T.css("z-index",""),""===i){if(!n.isRoot(d))return j();m?k.replaceWith(n.escape(d.name)):z.html(n.escape(d.name))}if(!S&&T.length){if(k.off("blur"),1===c&&i===d.name)return w.reject();if(n.options.validName&&n.options.validName.test)try{r=n.options.validName.test(i)}catch(t){r=!1}if("."===i||".."===i||!r)return S=!0,n.error("directory"===d.mime?"errInvDirname":"errInvName",{modal:!0,close:function(){setTimeout(C,120)}}),!1;if(1===c&&n.fileByName(i,d.phash))return S=!0,n.error(["errExists",i],{modal:!0,close:function(){setTimeout(C,120)}}),!1;1===c?s():(n.confirm({title:"cmdrename",text:["renameMultiple",c,o(i,[d.hash].concat(l))],accept:{label:"btnYes",callback:s},cancel:{label:"btnCancel",callback:function(){setTimeout(function(){S=!0,C()},120)}}}),setTimeout(function(){n.trigger("unselectfiles",{files:n.selected()}).trigger("selectfiles",{files:[d.hash].concat(l)})},120))}},k=e(v?"":'').on("keyup text",function(){v?(this.style.height="1px",this.style.height=this.scrollHeight+"px"):s&&(this.style.width=s+"px",this.scrollWidth>s&&(this.style.width=this.scrollWidth+10+"px"))}).on("keydown",function(t){t.stopImmediatePropagation(),t.keyCode==e.ui.keyCode.ESCAPE?w.reject():t.keyCode==e.ui.keyCode.ENTER&&(t.preventDefault(),k.trigger("blur"))}).on("mousedown click dblclick",function(e){e.stopPropagation(),"dblclick"===e.type&&e.preventDefault()}).on("blur",x).on("dragenter dragleave dragover drop",function(e){e.stopPropagation()}),C=function(){var e=n.splitFileExtention(k.val())[0];S||!n.UA.Mobile||n.UA.iOS||(A.on("click close",j).elfinderoverlay("show"),T.css("z-index",A.css("z-index")+1)),!n.enabled()&&n.enable(),S&&(S=!1,k.on("blur",x)),k.trigger("focus").trigger("select"),k[0].setSelectionRange&&k[0].setSelectionRange(0,e.length)},z=m?g.contents().filter(function(){return 3==this.nodeType&&e(this).parent().attr("id")===n.navHash2Id(d.hash)}):g.find(p),T=z.parent(),A=n.getUI("overlay"),j=function(e){A.is(":hidden")||T.css("z-index",""),S||(w.reject(),e&&(e.stopPropagation(),e.preventDefault()))},O=function(){g.trigger("scrolltoview",{blink:!1})},S=!1;return T.addClass("ui-front").css("position","relative").on("unselect."+n.namespace,b),n.bind("resize",O),m?z.replaceWith(k.val(d.name)):(v?z.css("max-height","none"):m||(s=T.width(),T.width(s-15).parent("td").css("overflow","visible")),z.empty().append(k.val(d.name))),c>1&&n.api<=2.103?w.reject():d&&z.length?!d.locked||n.isRoot(d)&&i?(n.one("select",function(){k.parent().length&&d&&e.inArray(d.hash,n.selected())===-1&&k.trigger("blur")}),k.trigger("keyup"),C(),w):w.reject(["errLocked",d.name]):w.reject("errCmdParams",this.title)},n.bind("select contextmenucreate closecontextmenu",function(e){var i,a=(e.data?e.data.selected||e.data.targets:null)||n.selected();a&&1===a.length&&(i=n.file(a[0]))&&n.isRoot(i)?t.title=n.i18n("kindAlias")+" ("+n.i18n("preference")+")":t.title=n.i18n("cmdrename"),"closecontextmenu"!==e.type?t.update(void 0,t.title):requestAnimationFrame(function(){t.update(void 0,t.title)})}).remove(function(t){var i;t.data&&t.data.removed&&(i=n.storage("rootNames"))&&(e.each(t.data.removed,function(e,t){i[t]&&delete i[t]}),n.storage("rootNames",i))})},i.prototype.commands.resize=function(){"use strict";var t=this.fm,n=0,i=function(t,n,i){var a=[{x:t/2,y:n/2},{x:-t/2,y:n/2},{x:-t/2,y:-n/2},{x:t/2,y:-n/2}],o=[],r={x:Number.MAX_VALUE,y:Number.MAX_VALUE},s={x:Number.MIN_VALUE,y:Number.MIN_VALUE};return e.each(a,function(e,t){o.push({x:t.x*Math.cos(i)-t.y*Math.sin(i),y:t.x*Math.sin(i)+t.y*Math.cos(i)})}),e.each(o,function(e,t){r.x=Math.min(r.x,t.x),r.y=Math.min(r.y,t.y),s.x=Math.max(s.x,t.x),s.y=Math.max(s.y,t.y)}),{width:s.x-r.x,height:s.y-r.y}};this.updateOnSelect=!1,this.getstate=function(){var e=t.selectedFiles();return 1==e.length&&e[0].read&&e[0].write&&e[0].mime.indexOf("image/")!==-1?0:-1},this.resizeRequest=function(n,i,a){var o=i||t.file(n.target),r=(o?o.tmb:null,t.isCommandEnabled("resize",n.target));if(r&&(!o||o&&o.read&&o.write&&o.mime.indexOf("image/")!==-1))return t.request({data:Object.assign(n,{cmd:"resize"}),notify:{type:"resize",cnt:1}}).fail(function(e){a&&a.reject(e)}).done(function(){n.quality&&t.storage("jpgQuality",n.quality===t.option("jpgQuality")?null:n.quality),a&&a.resolve()});var s;return s=o?o.mime.indexOf("image/")===-1?["errResize",o.name,"errUsupportType"]:["errResize",o.name,"errPerm"]:["errResize",n.target,"errPerm"],a?a.reject(s):t.error(s),e.Deferred().reject(s)},this.exec=function(a){var o,r,s,l,c=this,d=this.files(a),p=e.Deferred(),u=t.api>1,h=this.options,f=650,m=t.getUI(),g=e().controlgroup?"controlgroup":"buttonset",v="undefined"==typeof h.grid8px||"disable"!==h.grid8px,b=Array.isArray(h.presetSize)?h.presetSize:[],y="elfinder-dialog-active",w=t.res("class","editing"),x=function(a,o,r){var d,x,k,C,z,T="image/jpeg"===a.mime,A=e('
          '),j='',O='
          ',S='
          ',I=null,M=!1,F=function(){M=!0},E=function(){M&&(M=!1,D.trigger("change"))},D=e('
          ').on("focus","input[type=text],input[type=number]",function(){e(this).trigger("select")}).on("change",function(){I&&cancelAnimationFrame(I),I=requestAnimationFrame(function(){var e,n,a,o,r,s,c,d,p,u,h,f;at&&!M&&(a=at.data("canvas"))&&(e=D.children("div.elfinder-resize-control-panel:visible"),n=e.find("input.elfinder-resize-quality"),n.is(":visible")&&(o=at.data("ctx"),r=at.get(0),e.hasClass("elfinder-resize-uiresize")?(d=a.width=X.val(),p=a.height=J.val(),o.drawImage(r,0,0,d,p)):e.hasClass("elfinder-resize-uicrop")?(s=G.val(),c=Y.val(),d=Q.val(),p=Z.val(),a.width=d,a.height=p,o.drawImage(r,s,c,d,p,0,0,d,p)):(u=te.val(),h=te.val()*Math.PI/180,f=i(fe,me,h),d=a.width=f.width,p=a.height=f.height,o.save(),u%90!==0&&(o.fillStyle=de.val()||"#FFF",o.fillRect(0,0,d,p)),o.translate(d/2,p/2),o.rotate(h),o.drawImage(r,-r.width/2,-r.height/2,fe,me),o.restore()),a.toBlob(function(e){e&&(l=e.size,n.next("span").text(" ("+t.formatSize(e.size)+")"))},"image/jpeg",Math.max(Math.min(n.val(),100),1)/100)))})}).on("mouseup","input",function(t){e(t.target).trigger("change")}),U=e('
          ').on("touchmove",function(t){e(t.target).hasClass("touch-punch")&&(t.stopPropagation(),t.preventDefault())}),P=e('
          '+t.i18n("ntfloadimg")+"
          "),R=e('
          '),q=e('
          '),H=e('
          '),_=e('
          '),N=e('
          '),L=e("").attr("title",t.i18n("rotate-cw")).append(e('')),W=e("").attr("title",t.i18n("rotate-ccw")).append(e('')),B=e(""),$=e('").on("mouseenter mouseleave",function(t){e(this).toggleClass("ui-state-hover","mouseenter"==t.type)}).on("click",function(){d.exec("open",f).done(function(){d.one("opendone",function(){d.trigger("selectfiles",{files:e.map(t.added,function(e){return e.hash})})})})})):d.trigger("selectfiles",{files:e.map(t.added,function(e){return e.hash})}),d.toast({msg:d.i18n(["complete",d.i18n("cmdupload")]),extNode:n}))}}).progress(function(){w.notifyWith(this,Array.from(arguments))})},v=function(e){i.elfinderdialog("close"),h&&(e.target=h[0]),g(e)},b=function(){var t=m.hash,n=e.map(d.files(t),function(e){return"directory"===e.mime&&e.write?e:null});return n.length?e('
          ').on("click",function(t){t.stopPropagation(),t.preventDefault(),n=d.sortFiles(n);var a=e(this),o=(d.cwd(),i.closest("div.ui-dialog")),r=function(e,t){return{label:d.escape(e.i18||e.name),icon:t,remain:!1,callback:function(){var t=o.children(".ui-dialog-titlebar:first").find("span.elfinder-upload-target");h=[e.hash],t.html(" - "+d.escape(e.i18||e.name)),a.trigger("focus")},options:{className:h&&h.length&&e.hash===h[0]?"ui-state-active":"",iconClass:e.csscls||"",iconImg:e.icon||""}}},s=[r(m,"opendir"),"|"];e.each(n,function(e,t){s.push(r(t,"dir"))}),a.trigger("blur"),d.trigger("contextmenu",{raw:s,x:t.pageX||e(this).offset().left,y:t.pageY||e(this).offset().top,prevNode:o,fitHeight:!0})}).append(''):e()},y=function(n,i){var a=e('").on("click",function(){d.UA.IE&&setTimeout(function(){o.css("display","none").css("position","relative"),requestAnimationFrame(function(){o.css("display","").css("position","")})},100)}).on("change",function(){v({input:a.get(0),type:"files"})}).on("dragover",function(e){e.originalEvent.dataTransfer.dropEffect="copy"}),o=e("
          ").append(a).on("click",function(e){e.stopPropagation()});return e('
          '+d.i18n(i)+"
          ").append(o).on("click",function(e){e.stopPropagation(),e.preventDefault(),a.trigger("click")}).on("mouseenter mouseleave",function(n){e(this).toggleClass(t,"mouseenter"===n.type)})},w=e.Deferred();return r=function(t){t.stopPropagation(),t.preventDefault();var n,i,a=!1,o="",r=null,s="",l=null,c=t._target||null,p=t.dataTransfer||null,u="";if(p){p.types&&p.types.length?(n=e.inArray("application/x-moz-file",p.types))!==-1?u="file":(n=e.inArray("Files",p.types))!==-1&&(u="file"):p.items&&p.items.length&&p.items[0].kind&&(u=p.items[0].kind);try{if(r=p.getData("elfinderfrom"),r&&(s=window.location.href+d.cwd().hash,!c&&r===s||c===s))return void w.reject()}catch(t){}if("file"===u&&(p.items[n].getAsEntry||p.items[n].webkitGetAsEntry||p.items[n].getAsFile))a=p,o="data";else if("string"!==u&&p.files&&p.files.length&&e.inArray("Text",p.types)===-1)a=p.files,o="files";else{try{(l=p.getData("text/html"))&&l.match(/<(?:img|a)/i)&&(a=[l],o="html")}catch(t){}a||((l=p.getData("text"))?(a=[l],o="text"):p&&p.files&&(u="file"))}}a?g({files:a,type:o,target:c,dropEvt:t}):(i=["errUploadNoFiles"],"file"===u&&i.push("errFolderUpload"),d.error(i),w.reject())},!h&&n?(n.input||n.files?(n.type="files",g(n)):n.dropEvt&&r(n.dropEvt),w):(s=function(t){var n,i=t.originalEvent||t,a=[],o=[];if(i.clipboardData){if(i.clipboardData.items&&i.clipboardData.items.length){o=i.clipboardData.items;for(var r=0;r').append(y("multiple","selectForUpload")),!d.UA.Mobile&&function(e){return"undefined"!=typeof e.webkitdirectory||"undefined"!=typeof e.directory}(document.createElement("input"))&&i.append(y("multiple webkitdirectory directory","selectFolder")),m.dirs&&(m.hash===p||d.navHash2Elm(m.hash).hasClass("elfinder-subtree-loaded")?b().appendTo(i):(l=e('
          ').append('').appendTo(i), +d.request({cmd:"tree",target:m.hash}).done(function(){d.one("treedone",function(){l.replaceWith(b()),c.elfinderdialog("tabstopsInit")})}).fail(function(){l.remove()}))),d.dragUpload?a=e('
          ').on("paste",function(e){s(e)}).on("mousedown click",function(){e(this).trigger("focus")}).on("focus",function(){this.innerHTML=""}).on("mouseover",function(){e(this).addClass(t)}).on("mouseout",function(){e(this).removeClass(t)}).on("dragenter",function(n){n.stopPropagation(),n.preventDefault(),e(this).addClass(t)}).on("dragleave",function(n){n.stopPropagation(),n.preventDefault(),e(this).removeClass(t)}).on("dragover",function(n){n.stopPropagation(),n.preventDefault(),n.originalEvent.dataTransfer.dropEffect="copy",e(this).addClass(t)}).on("drop",function(e){i.elfinderdialog("close"),h&&(e.originalEvent._target=h[0]),r(e.originalEvent)}).prependTo(i).after('
          '+d.i18n("or")+"
          ")[0]:o=e('
          '+d.i18n("dropFilesBrowser")+"
          ").on("paste drop",function(e){s(e)}).on("mousedown click",function(){e(this).trigger("focus")}).on("focus",function(){this.innerHTML=""}).on("dragenter mouseover",function(){e(this).addClass(t)}).on("dragleave mouseout",function(){e(this).removeClass(t)}).prependTo(i).after('
          '+d.i18n("or")+"
          ")[0],c=this.fmDialog(i,{title:this.title+''+(m?" - "+d.escape(m.i18||m.name):"")+"",modal:!0,resizable:!1,destroyOnClose:!0,propagationEvents:["mousemove","mouseup","click"],close:function(){var e=d.getUI("contextmenu");e.is(":visible")&&e.click()}}),w)}},i.prototype.commands.view=function(){"use strict";var t,n=this,i=this.fm;this.value=i.viewType,this.alwaysEnabled=!0,this.updateOnSelect=!1,this.options={ui:"viewbutton"},this.getstate=function(){return 0},this.extra={icon:"menu",node:e("").attr({title:i.i18n("viewtype")}).on("click touchstart",function(t){if(!("touchstart"===t.type&&t.originalEvent.touches.length>1)){var n=e(this);t.stopPropagation(),t.preventDefault(),i.trigger("contextmenu",{raw:getSubMenuRaw(),x:n.offset().left,y:n.offset().top})}})},this.exec=function(){var e=this,t="list"==this.value?"icons":"list";return i.storage("view",t),i.lazy(function(){i.viewchange(),e.update(void 0,t),this.resolve()})},i.bind("init",function(){t=function(){var e,t=i.getUI("cwd"),a=[],o=i.options.uiOptions.cwd.iconsView.sizeNames,r=i.options.uiOptions.cwd.iconsView.sizeMax;for(e=0;e<=r;e++)a.push({label:i.i18n(o[e]||"Size-"+e+" icons"),icon:"view",callback:function(e){return function(){t.trigger("iconpref",{size:e}),i.storage("iconsize",e),"list"===n.value&&n.exec()}}(e)});return a.push("|"),a.push({label:i.i18n("viewlist"),icon:"view-list",callback:function(){"list"!==n.value&&n.exec()}}),a}()}).bind("contextmenucreate",function(){n.extra={icon:"menu",node:e("").attr({title:i.i18n("cmdview")}).on("click touchstart",function(a){if(!("touchstart"===a.type&&a.originalEvent.touches.length>1)){var o,r,s=e(this);t.concat();for(o="list"===n.value?t.length-1:parseInt(i.storage("iconsize")||0),r=0;rZu UTF-8 konvertieren?
          Inhalte werden zu UTF-8 konvertiert bei Speicherung.', // from v2.1 added 08.04.2014 'confirmNonUTF8' : 'Die Zeichencodierung dieser Datei konnte nicht erkannt werden. Es muss vorübergehend in UTF-8 zur Bearbeitung konvertiert werden.
          Bitte eine Zeichenkodierung dieser Datei auswählen.', // from v2.1.19 added 28.11.2016 - 'confirmNotSave' : 'Die Datei wurde geändert.
          Änderungen gehen verloren wenn nicht gespeichert wird.', // from v2.1 added 15.7.2015 + 'confirmNotSave' : 'Die Datei wurde geändert.
          Änderungen gehen verloren, wenn nicht gespeichert wird.', // from v2.1 added 15.7.2015 'confirmTrash' : 'Sicher diese Elemente in den Mülleimer verschieben?', // from v2.1.24 added 29.4.2017 'confirmMove' : 'Sicher alle Elemente nach "$1" verschieben?', // from v2.1.50 added 13.12.2019 'apllyAll' : 'Alles bestätigen', @@ -525,6 +526,12 @@ 'kindTTF' : 'True Type-Schrift', 'kindOTF' : 'Open Type-Schrift', 'kindRPM' : 'RPM-Paket', + // fonts + 'kindFont' : 'Schriftart', + 'kindSFNT' : 'SFNT-Schrift', + 'kindEOT' : 'Embedded-Open-Type-Schrift', + 'kindWOFF' : 'Web-Open-Font-Format-Schrift', + 'kindWOFF2' : 'Web-Open-Font-Format-2-Schrift', // texts 'kindText' : 'Text-Dokument', 'kindTextPlain' : 'Text-Dokument', diff --git a/libs/elFinder/js/i18n/elfinder.el.js b/libs/elFinder/js/i18n/elfinder.el.js index ea60811..0ade5a4 100644 --- a/libs/elFinder/js/i18n/elfinder.el.js +++ b/libs/elFinder/js/i18n/elfinder.el.js @@ -138,6 +138,7 @@ 'btnCancel' : 'Ακύρωση', 'btnNo' : 'Όχι', 'btnYes' : 'Ναι', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', /******************************** notifications ********************************/ @@ -318,6 +319,12 @@ 'kindTTF' : 'Γραμματοσειρά True Type', 'kindOTF' : 'Γραμματοσειρά Open Type', 'kindRPM' : 'Πακέτο RPM', + // fonts + 'kindFont' : 'Γραμματοσειρά', + 'kindSFNT' : 'Γραμματοσειρά SFNT', + 'kindEOT' : 'Γραμματοσειρά Embedded Open Type', + 'kindWOFF' : 'Γραμματοσειρά Web Open Font Format', + 'kindWOFF2' : 'Γραμματοσειρά Web Open Font Format 2', // texts 'kindText' : 'Έγγραφο κειμένου', 'kindTextPlain' : 'Απλό κείμενο', diff --git a/libs/elFinder/js/i18n/elfinder.en.js b/libs/elFinder/js/i18n/elfinder.en.js index 4dcbc94..c618148 100644 --- a/libs/elFinder/js/i18n/elfinder.en.js +++ b/libs/elFinder/js/i18n/elfinder.en.js @@ -168,6 +168,7 @@ if (typeof elFinder === 'function' && elFinder.prototype.i18) { 'btnCancel' : 'Cancel', 'btnNo' : 'No', 'btnYes' : 'Yes', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', // added 18.04.2012 'btnApprove': 'Goto $1 & approve', // from v2.1 added 26.04.2012 'btnUnmount': 'Unmount', // from v2.1 added 30.04.2012 @@ -516,6 +517,12 @@ if (typeof elFinder === 'function' && elFinder.prototype.i18) { 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM package', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Text document', 'kindTextPlain' : 'Plain text', diff --git a/libs/elFinder/js/i18n/elfinder.es.js b/libs/elFinder/js/i18n/elfinder.es.js index 4f45658..c7c7988 100644 --- a/libs/elFinder/js/i18n/elfinder.es.js +++ b/libs/elFinder/js/i18n/elfinder.es.js @@ -174,6 +174,7 @@ 'btnCancel' : 'Cancelar', 'btnNo' : 'No', 'btnYes' : 'Sí', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Montar', // added 18.04.2012 'btnApprove': 'Ir a $1 y aprobar', // from v2.1 added 26.04.2012 'btnUnmount': 'Desmontar', // from v2.1 added 30.04.2012 @@ -489,6 +490,12 @@ 'kindTTF' : 'Fuente True Type', 'kindOTF' : 'Fuente Open Type', 'kindRPM' : 'Paquete RPM', + // fonts + 'kindFont' : 'Fuente', + 'kindSFNT' : 'Fuente SFNT', + 'kindEOT' : 'Fuente Embedded Open Type', + 'kindWOFF' : 'Fuente Web Open Font Format', + 'kindWOFF2' : 'Fuente Web Open Font Format 2', // texts 'kindText' : 'Documento de texto', 'kindTextPlain' : 'Texto plano', diff --git a/libs/elFinder/js/i18n/elfinder.fa.js b/libs/elFinder/js/i18n/elfinder.fa.js index e27e81d..754e39a 100644 --- a/libs/elFinder/js/i18n/elfinder.fa.js +++ b/libs/elFinder/js/i18n/elfinder.fa.js @@ -174,6 +174,7 @@ 'btnCancel' : 'انصراف', 'btnNo' : 'خیر', 'btnYes' : 'بلی', + 'btnDiscard': 'Discard changes', 'btnMount' : 'اتصال', // added 18.04.2012 'btnApprove': 'رفتن به $1 و تایید', // from v2.1 added 26.04.2012 'btnUnmount': 'قطع اتصال', // from v2.1 added 30.04.2012 @@ -522,6 +523,12 @@ 'kindTTF' : 'فونت True Type', 'kindOTF' : 'فونت Open Type', 'kindRPM' : 'بسته RPM', + // fonts + 'kindFont' : 'فونت', + 'kindSFNT' : 'فونت SFNT', + 'kindEOT' : 'فونت Embedded Open Type', + 'kindWOFF' : 'فونت Web Open Font Format', + 'kindWOFF2' : 'فونت Web Open Font Format 2', // texts 'kindText' : 'سند متنی', 'kindTextPlain' : 'سند متنی ساده', diff --git a/libs/elFinder/js/i18n/elfinder.fo.js b/libs/elFinder/js/i18n/elfinder.fo.js index 535510f..43ab05f 100644 --- a/libs/elFinder/js/i18n/elfinder.fo.js +++ b/libs/elFinder/js/i18n/elfinder.fo.js @@ -146,6 +146,7 @@ 'btnCancel' : 'Angra', 'btnNo' : 'Nei', 'btnYes' : 'Ja', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', // added 18.04.2012 'btnApprove': 'Goto $1 & approve', // from v2.1 added 26.04.2012 'btnUnmount': 'Unmount', // from v2.1 added 30.04.2012 @@ -361,6 +362,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM pakki', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Text skjal', 'kindTextPlain' : 'Reinur tekstur', diff --git a/libs/elFinder/js/i18n/elfinder.fr.js b/libs/elFinder/js/i18n/elfinder.fr.js index fa22a61..abae816 100644 --- a/libs/elFinder/js/i18n/elfinder.fr.js +++ b/libs/elFinder/js/i18n/elfinder.fr.js @@ -176,6 +176,7 @@ 'btnCancel' : 'Annuler', 'btnNo' : 'Non', 'btnYes' : 'Oui', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Monter', // added 18.04.2012 'btnApprove': 'Aller à $1 & approuver', // from v2.1 added 26.04.2012 'btnUnmount': 'Démonter', // from v2.1 added 30.04.2012 @@ -524,6 +525,12 @@ 'kindTTF' : 'Police True Type', 'kindOTF' : 'Police Open Type', 'kindRPM' : 'Package RPM', + // fonts + 'kindFont' : 'Police', + 'kindSFNT' : 'Police font', + 'kindEOT' : 'Police Embedded Open Type', + 'kindWOFF' : 'Police Web Open Font Format', + 'kindWOFF2' : 'Police Web Open Font Format 2', // texts 'kindText' : 'Document Text', 'kindTextPlain' : 'Texte non formaté', diff --git a/libs/elFinder/js/i18n/elfinder.fr_CA.js b/libs/elFinder/js/i18n/elfinder.fr_CA.js index c29dedc..6c46120 100644 --- a/libs/elFinder/js/i18n/elfinder.fr_CA.js +++ b/libs/elFinder/js/i18n/elfinder.fr_CA.js @@ -175,6 +175,7 @@ 'btnCancel' : 'Annuler', 'btnNo' : 'Non', 'btnYes' : 'Oui', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Monter', // added 18.04.2012 'btnApprove': 'Aller à $1 & approuver', // from v2.1 added 26.04.2012 'btnUnmount': 'Démonter', // from v2.1 added 30.04.2012 @@ -522,6 +523,12 @@ 'kindTTF' : 'Police True Type', 'kindOTF' : 'Police Open Type', 'kindRPM' : 'Package RPM', + // fonts + 'kindFont' : 'Police', + 'kindSFNT' : 'Police SFNT', + 'kindEOT' : 'Police Embedded Open Type', + 'kindWOFF' : 'Police Web Open Font Format', + 'kindWOFF2' : 'Police Web Open Font Format 2', // texts 'kindText' : 'Document Text', 'kindTextPlain' : 'Texte non formaté', diff --git a/libs/elFinder/js/i18n/elfinder.he.js b/libs/elFinder/js/i18n/elfinder.he.js index 991bcca..f57ff3f 100644 --- a/libs/elFinder/js/i18n/elfinder.he.js +++ b/libs/elFinder/js/i18n/elfinder.he.js @@ -138,6 +138,7 @@ 'btnCancel' : 'ביטול', 'btnNo' : 'לא', 'btnYes' : 'כן', + 'btnDiscard': 'Discard changes', 'btnMount' : 'עיגון', // added 18.04.2012 /******************************** notifications ********************************/ @@ -318,6 +319,12 @@ 'kindTTF' : 'גופן True Type', 'kindOTF' : 'גופן Open Type', 'kindRPM' : 'חבילת RPM', + // fonts + 'kindFont' : 'גופן', + 'kindSFNT' : 'גופן SFNT', + 'kindEOT' : 'גופן Embedded Open Type', + 'kindWOFF' : 'גופן Web Open Font Format', + 'kindWOFF2' : 'גופן Web Open Font Format 2', // texts 'kindText' : 'מסמך טקסט', 'kindTextPlain' : 'טקסט פשוט', diff --git a/libs/elFinder/js/i18n/elfinder.hr.js b/libs/elFinder/js/i18n/elfinder.hr.js index c08be36..ce788dc 100644 --- a/libs/elFinder/js/i18n/elfinder.hr.js +++ b/libs/elFinder/js/i18n/elfinder.hr.js @@ -149,6 +149,7 @@ 'btnCancel' : 'Odustani', 'btnNo' : 'Ne', 'btnYes' : 'Da', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', // added 18.04.2012 'btnApprove': 'Goto $1 & approve', // from v2.1 added 26.04.2012 'btnUnmount': 'Unmount', // from v2.1 added 30.04.2012 @@ -376,6 +377,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM paket', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Tekst arhiva', 'kindTextPlain' : 'Obični tekst', diff --git a/libs/elFinder/js/i18n/elfinder.hu.js b/libs/elFinder/js/i18n/elfinder.hu.js index f761ec3..09cb824 100644 --- a/libs/elFinder/js/i18n/elfinder.hu.js +++ b/libs/elFinder/js/i18n/elfinder.hu.js @@ -174,6 +174,7 @@ 'btnCancel' : 'Mégsem', 'btnNo' : 'Nem', 'btnYes' : 'Igen', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Csatlakoztat', // added 18.04.2012 'btnApprove': 'Tovább $1 és jóváhagyás', // from v2.1 added 26.04.2012 'btnUnmount': 'Leválaszt', // from v2.1 added 30.04.2012 @@ -522,6 +523,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM csomag', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Szöveges dokumentum', 'kindTextPlain' : 'Plain text', diff --git a/libs/elFinder/js/i18n/elfinder.id.js b/libs/elFinder/js/i18n/elfinder.id.js index 27a5ec1..207802f 100644 --- a/libs/elFinder/js/i18n/elfinder.id.js +++ b/libs/elFinder/js/i18n/elfinder.id.js @@ -162,6 +162,7 @@ 'btnCancel' : 'Batal', 'btnNo' : 'Tidak', 'btnYes' : 'Ya', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Baca susunan', // added 18.04.2012 'btnApprove': 'Menuju ke $1 & setujui', // from v2.1 added 26.04.2012 'btnUnmount': 'Unmount', // from v2.1 added 30.04.2012 @@ -440,6 +441,12 @@ 'kindTTF' : 'Huruf True Type', 'kindOTF' : 'Huruf Open Type', 'kindRPM' : 'Paket RPM', + // fonts + 'kindFont' : 'Huruf', + 'kindSFNT' : 'Huruf SFNT', + 'kindEOT' : 'Huruf Embedded Open Type', + 'kindWOFF' : 'Huruf Web Open Font Format', + 'kindWOFF2' : 'Huruf Web Open Font Format 2', // texts 'kindText' : 'Dokumen teks', 'kindTextPlain' : 'Berkas teks biasa', diff --git a/libs/elFinder/js/i18n/elfinder.it.js b/libs/elFinder/js/i18n/elfinder.it.js index 660e7de..ed77073 100644 --- a/libs/elFinder/js/i18n/elfinder.it.js +++ b/libs/elFinder/js/i18n/elfinder.it.js @@ -178,6 +178,7 @@ 'btnCancel' : 'Annulla', 'btnNo' : 'No', 'btnYes' : 'Sì', + 'btnDiscard': 'Scartare le modifiche', 'btnMount' : 'Monta', // added 18.04.2012 'btnApprove': 'Vai a $1 & approva', // from v2.1 added 26.04.2012 'btnUnmount': 'Smonta', // from v2.1 added 30.04.2012 @@ -526,6 +527,12 @@ 'kindTTF' : 'Font True Type', 'kindOTF' : 'Font Open Type', 'kindRPM' : 'Pacchetto RPM', + // fonts + 'kindFont' : 'File font', + 'kindSFNT' : 'Font SFNT', + 'kindEOT' : 'Font Embedded Open Type', + 'kindWOFF' : 'Font Web Open Font Format', + 'kindWOFF2' : 'Font Web Open Font Format 2', // texts 'kindText' : 'Documento di testo', 'kindTextPlain' : 'Testo Semplice', diff --git a/libs/elFinder/js/i18n/elfinder.ja.js b/libs/elFinder/js/i18n/elfinder.ja.js index 8235afb..dfe33b7 100644 --- a/libs/elFinder/js/i18n/elfinder.ja.js +++ b/libs/elFinder/js/i18n/elfinder.ja.js @@ -175,6 +175,7 @@ 'btnCancel' : 'キャンセル', 'btnNo' : 'いいえ', 'btnYes' : 'はい', + 'btnDiscard': '変更を破棄', 'btnMount' : 'マウント', // added 18.04.2012 'btnApprove': '$1へ行き認可する', // from v2.1 added 26.04.2012 'btnUnmount': 'アンマウント', // from v2.1 added 30.04.2012 @@ -523,6 +524,12 @@ 'kindTTF' : 'True Type フォント', 'kindOTF' : 'Open Type フォント', 'kindRPM' : 'RPM パッケージ', + // fonts + 'kindFont' : 'フォント', + 'kindSFNT' : 'SFNT フォント', + 'kindEOT' : 'Embedded Open Type フォント', + 'kindWOFF' : 'Web Open Font Format フォント', + 'kindWOFF2' : 'Web Open Font Format 2 フォント', // texts 'kindText' : 'Text ドキュメント', 'kindTextPlain' : 'プレインテキスト', diff --git a/libs/elFinder/js/i18n/elfinder.ko.js b/libs/elFinder/js/i18n/elfinder.ko.js index 29d3090..31321dc 100644 --- a/libs/elFinder/js/i18n/elfinder.ko.js +++ b/libs/elFinder/js/i18n/elfinder.ko.js @@ -4,7 +4,7 @@ * @author Park Sungyong; * @author Yeonjeong Woo * @author Kwon Hyungjoo - * @version 2020-04-07 + * @version 2024-03-19 */ (function(root, factory) { if (typeof define === 'function' && define.amd) { @@ -19,9 +19,9 @@ translator : 'Hwang Ahreum; <luckmagic@naver.com>, Park Sungyong; <sungyong@gmail.com>, Yeonjeong Woo <eat_sweetly@naver.com>, Kwon Hyungjoo <hyung778@gmail.com>', language : 'Korea-한국어', direction : 'ltr', - dateFormat : 'Y-m-d H:i', // will show like: 2020-04-07 10:24 - fancyDateFormat : '$1 H:i', // will show like: 오늘 10:24 - nonameDateFormat : 'ymd-His', // noname upload will show like: 200407-102404 + dateFormat : 'Y-m-d H:i', // will show like: 2024-03-19 16:27 + fancyDateFormat : '$1 H:i', // will show like: 오늘 16:27 + nonameDateFormat : 'ymd-His', // noname upload will show like: 240319-162748 messages : { /********************************** errors **********************************/ @@ -118,6 +118,7 @@ 'errServerError' : '서버측에서 오류가 발생했습니다.', // from v2.1.25 added 16.6.2017 'errEmpty' : '"$1" 폴더를 비울 수 없습니다.', // from v2.1.25 added 22.6.2017 'moreErrors' : '$1개의 오류가 더 발생했습니다.', // from v2.1.44 added 9.12.2018 + 'errMaxMkdirs' : 'You can create up to $1 folders at one time.', // from v2.1.58 added 20.6.2021 /******************************* commands names ********************************/ 'cmdarchive' : '압축파일생성', @@ -176,6 +177,7 @@ 'btnCancel' : '취소', 'btnNo' : '아니오', 'btnYes' : '예', + 'btnDiscard': 'Discard changes', 'btnMount' : '마운트', // added 18.04.2012 'btnApprove': '$1로 이동 및 승인', // from v2.1 added 26.04.2012 'btnUnmount': '마운트 해제', // from v2.1 added 30.04.2012 @@ -524,6 +526,12 @@ 'kindTTF' : '트루 타입 글꼴', 'kindOTF' : '오픈 타입 글꼴', 'kindRPM' : 'RPM 패키지', + // fonts + 'kindFont' : '글꼴', + 'kindSFNT' : 'SFNT 글꼴', + 'kindEOT' : 'Embedded Open Type 글꼴', + 'kindWOFF' : 'Web Open Font Format 글꼴', + 'kindWOFF2' : 'Web Open Font Format 2 글꼴', // texts 'kindText' : '텍스트 문서', 'kindTextPlain' : '일반 텍스트', diff --git a/libs/elFinder/js/i18n/elfinder.nl.js b/libs/elFinder/js/i18n/elfinder.nl.js index e9bdd24..d2b884c 100644 --- a/libs/elFinder/js/i18n/elfinder.nl.js +++ b/libs/elFinder/js/i18n/elfinder.nl.js @@ -163,7 +163,7 @@ 'cmdselectinvert' : 'Selectie omkeren', // from v2.1.28 added 15.08.2017 'cmdopennew' : 'Open in nieuw venster', // from v2.1.38 added 3.4.2018 'cmdhide' : 'Verberg (voorkeur)', // from v2.1.41 added 24.7.2018 - + /*********************************** buttons ***********************************/ 'btnClose' : 'Sluit', @@ -173,6 +173,7 @@ 'btnCancel' : 'Annuleren', 'btnNo' : 'Nee', 'btnYes' : 'Ja', + 'btnDiscard' : 'Wijzigingen weggooien', 'btnMount' : 'Mount', // added 18.04.2012 'btnApprove' : 'Ga naar $1 & keur goed', // from v2.1 added 26.04.2012 'btnUnmount' : 'Unmount', // from v2.1 added 30.04.2012 @@ -518,6 +519,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM package', + /********************************** fonts **********************************/ + 'kindFont' : 'Lettertype bestand', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', /********************************** texts **********************************/ 'kindText' : 'Tekst bestand', diff --git a/libs/elFinder/js/i18n/elfinder.no.js b/libs/elFinder/js/i18n/elfinder.no.js index aecd43a..718b8fb 100644 --- a/libs/elFinder/js/i18n/elfinder.no.js +++ b/libs/elFinder/js/i18n/elfinder.no.js @@ -138,6 +138,7 @@ 'btnCancel' : 'Avbryt', 'btnNo' : 'Nei', 'btnYes' : 'Ja', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', /******************************** notifications ********************************/ @@ -318,6 +319,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM package', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Tekst dokument', 'kindTextPlain' : 'Plain text', diff --git a/libs/elFinder/js/i18n/elfinder.pl.js b/libs/elFinder/js/i18n/elfinder.pl.js index 5646bc4..12e4a42 100644 --- a/libs/elFinder/js/i18n/elfinder.pl.js +++ b/libs/elFinder/js/i18n/elfinder.pl.js @@ -174,6 +174,7 @@ 'btnCancel' : 'Anuluj', 'btnNo' : 'Nie', 'btnYes' : 'Tak', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Montuj', // added 18.04.2012 'btnApprove': 'Idź do $1 & zatwierdź', // from v2.1 added 26.04.2012 'btnUnmount': 'Odmontuj', // from v2.1 added 30.04.2012 @@ -522,6 +523,12 @@ 'kindTTF' : 'Czcionka TrueType', 'kindOTF' : 'Czcionka OpenType', 'kindRPM' : 'Pakiet RPM', + // fonts + 'kindFont' : 'Czcionka', + 'kindSFNT' : 'Czcionka SFNT', + 'kindEOT' : 'Czcionka Embedded Open Type', + 'kindWOFF' : 'Czcionka Web Open Font Format', + 'kindWOFF2' : 'Czcionka Web Open Font Format 2', // texts 'kindText' : 'Dokument tekstowy', 'kindTextPlain' : 'Zwykły tekst', diff --git a/libs/elFinder/js/i18n/elfinder.pt_BR.js b/libs/elFinder/js/i18n/elfinder.pt_BR.js index 2bbd038..3966b57 100644 --- a/libs/elFinder/js/i18n/elfinder.pt_BR.js +++ b/libs/elFinder/js/i18n/elfinder.pt_BR.js @@ -176,6 +176,7 @@ 'btnCancel' : 'Cancelar', 'btnNo' : 'Não', 'btnYes' : 'Sim', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Montar', // added 18.04.2012 'btnApprove': 'Vá para $1 & aprove', // from v2.1 added 26.04.2012 'btnUnmount': 'Desmontar', // from v2.1 added 30.04.2012 @@ -523,6 +524,12 @@ 'kindTTF' : 'Tipo verdadeiro da fonte', 'kindOTF' : 'Abrir tipo de fonte', 'kindRPM' : 'Pacote RPM', + // fonts + 'kindFont' : 'Fonte', + 'kindSFNT' : 'SFNT fonte', + 'kindEOT' : 'Embedded Open Type fonte', + 'kindWOFF' : 'Web Open Font Format fonte', + 'kindWOFF2' : 'Web Open Font Format 2 fonte', // texts 'kindText' : 'Arquivo de texto', 'kindTextPlain' : 'Texto simples', diff --git a/libs/elFinder/js/i18n/elfinder.ro.js b/libs/elFinder/js/i18n/elfinder.ro.js index cd7b610..d546aec 100644 --- a/libs/elFinder/js/i18n/elfinder.ro.js +++ b/libs/elFinder/js/i18n/elfinder.ro.js @@ -146,6 +146,7 @@ 'btnCancel' : 'Anulează', 'btnNo' : 'Nu', 'btnYes' : 'Da', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Încarcă', // added 18.04.2012 'btnApprove': 'Mergi la $1 și aprobă', // from v2.1 added 26.04.2012 'btnUnmount': 'Elimină volum', // from v2.1 added 30.04.2012 @@ -359,6 +360,12 @@ 'kindTTF' : 'Font True Type', 'kindOTF' : 'Font Open Type', 'kindRPM' : 'Pachet RPM', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'Font SFNT', + 'kindEOT' : 'Font Embedded Open Type', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Document text', 'kindTextPlain' : 'Text simplu', diff --git a/libs/elFinder/js/i18n/elfinder.ru.js b/libs/elFinder/js/i18n/elfinder.ru.js index 60cfcbf..22d8c31 100644 --- a/libs/elFinder/js/i18n/elfinder.ru.js +++ b/libs/elFinder/js/i18n/elfinder.ru.js @@ -3,7 +3,8 @@ * @author Dmitry "dio" Levashov * @author Andrew Berezovsky * @author Alex Yashkin - * @version 2022-01-02 + * @author Aleev Ruslan + * @version 2024-11-05 */ (function(root, factory) { if (typeof define === 'function' && define.amd) { @@ -15,12 +16,12 @@ } }(this, function(elFinder) { elFinder.prototype.i18.ru = { - translator : 'Dmitry "dio" Levashov <dio@std42.ru>, Andrew Berezovsky <andrew.berezovsky@gmail.com>, Alex Yashkin <alex@yashkin.by>', + translator : 'Dmitry "dio" Levashov <dio@std42.ru>, Andrew Berezovsky <andrew.berezovsky@gmail.com>, Alex Yashkin <alex@yashkin.by>, Aleev Ruslan <info@cat-art.ru>', language : 'Русский язык', direction : 'ltr', - dateFormat : 'd M Y H:i', // will show like: 02 Янв 2022 19:53 - fancyDateFormat : '$1 H:i', // will show like: Сегодня 19:53 - nonameDateFormat : 'ymd-His', // noname upload will show like: 220102-195313 + dateFormat : 'd M Y H:i', // will show like: 05 Ноя 2024 21:08 + fancyDateFormat : '$1 H:i', // will show like: Сегодня 21:08 + nonameDateFormat : 'ymd-His', // noname upload will show like: 241105-210850 messages : { /********************************** errors **********************************/ @@ -161,7 +162,7 @@ 'cmdempty' : 'Очистить папку', // from v2.1.25 added 22.06.2017 'cmdundo' : 'Отменить', // from v2.1.27 added 31.07.2017 'cmdredo' : 'Вернуть', // from v2.1.27 added 31.07.2017 - 'cmdpreference': 'Предпочтения', // from v2.1.27 added 03.08.2017 + 'cmdpreference': 'Настройки', // from v2.1.27 added 03.08.2017 'cmdselectall' : 'Выбрать все', // from v2.1.28 added 15.08.2017 'cmdselectnone': 'Отменить выбор', // from v2.1.28 added 15.08.2017 'cmdselectinvert': 'Инвертировать выбор', // from v2.1.28 added 15.08.2017 @@ -176,6 +177,7 @@ 'btnCancel' : 'Отмена', 'btnNo' : 'Нет', 'btnYes' : 'Да', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Подключить', // added 18.04.2012 'btnApprove': 'Перейти в $1 и применить', // from v2.1 added 26.04.2012 'btnUnmount': 'Отключить', // from v2.1 added 30.04.2012 @@ -440,7 +442,7 @@ 'TextArea' : 'Текстовая область', // from v2.1.25 added 14.6.2017 'folderToEmpty' : 'Очистить папку "$1".', // from v2.1.25 added 22.6.2017 'filderIsEmpty' : 'Нет файлов в паке "$1".', // from v2.1.25 added 22.6.2017 - 'preference' : 'Настройки', // from v2.1.26 added 28.6.2017 + 'preference' : 'Настройка', // from v2.1.26 added 28.6.2017 'language' : 'Язык', // from v2.1.26 added 28.6.2017 'clearBrowserData': 'Сбросить настройки для этого браузера', // from v2.1.26 added 28.6.2017 'toolbarPref' : 'Настройки панели', // from v2.1.27 added 2.8.2017 @@ -524,6 +526,12 @@ 'kindTTF' : 'Шрифт True Type', 'kindOTF' : 'Шрифт Open Type', 'kindRPM' : 'Пакет RPM', + // fonts + 'kindFont' : 'Шрифт', + 'kindSFNT' : 'Шрифт SFNT', + 'kindEOT' : 'Шрифт Embedded Open Type', + 'kindWOFF' : 'Шрифт Web Open Font Format', + 'kindWOFF2' : 'Шрифт Web Open Font Format 2', // texts 'kindText' : 'Текстовый документ', 'kindTextPlain' : 'Простой текст', diff --git a/libs/elFinder/js/i18n/elfinder.si.js b/libs/elFinder/js/i18n/elfinder.si.js index 7d0766a..8c6ca42 100644 --- a/libs/elFinder/js/i18n/elfinder.si.js +++ b/libs/elFinder/js/i18n/elfinder.si.js @@ -170,6 +170,7 @@ 'btnCancel' : 'අවලංගු කරන්න', 'btnNo' : 'නැත', 'btnYes' : 'ඔව්', + 'btnDiscard': 'Discard changes', 'btnMount' : 'සවිකිරීම(Mount)', // added 18.04.2012 'btnApprove': 'කරුණාකර $1 අනුමත කරන්න', // from v2.1 added 26.04.2012 'btnUnmount': 'ගලවන්න(Unmount)', // from v2.1 added 30.04.2012 @@ -479,6 +480,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM package', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Text ලේඛනය', 'kindTextPlain' : 'Plain text', diff --git a/libs/elFinder/js/i18n/elfinder.sk.js b/libs/elFinder/js/i18n/elfinder.sk.js index ee5e694..0234b42 100644 --- a/libs/elFinder/js/i18n/elfinder.sk.js +++ b/libs/elFinder/js/i18n/elfinder.sk.js @@ -2,7 +2,7 @@ * Slovak translation * @author RobiNN * @author Jakub Ďuraš - * @version 2021-06-10 + * @version 2025-11-09 */ (function(root, factory) { if (typeof define === 'function' && define.amd) { @@ -17,9 +17,9 @@ translator : 'RobiNN <robo@kelcak.com>, Jakub Ďuraš <jkblmr@gmail.com>', language : 'Slovenčina', direction : 'ltr', - dateFormat : 'd.m.Y H:i', // will show like: 10.06.2021 23:35 - fancyDateFormat : '$1 H:i', // will show like: Dnes 23:35 - nonameDateFormat : 'ymd-His', // noname upload will show like: 210610-233522 + dateFormat : 'd.m.Y H:i', // will show like: 09.11.2025 12:25 + fancyDateFormat : '$1 H:i', // will show like: Dnes 12:25 + nonameDateFormat : 'ymd-His', // noname upload will show like: 251109-122543 messages : { /********************************** errors **********************************/ @@ -175,6 +175,7 @@ 'btnCancel' : 'Zrušiť', 'btnNo' : 'Nie', 'btnYes' : 'Áno', + 'btnDiscard': 'Zahodiť zmeny', 'btnMount' : 'Pripojiť', // added 18.04.2012 'btnApprove': 'Ísť na $1 & schváliť', // from v2.1 added 26.04.2012 'btnUnmount': 'Odpojiť', // from v2.1 added 30.04.2012 @@ -523,6 +524,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM balík', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Textový document', 'kindTextPlain' : 'Obyčajný text', diff --git a/libs/elFinder/js/i18n/elfinder.sl.js b/libs/elFinder/js/i18n/elfinder.sl.js index 5c8ad11..3f3c24e 100644 --- a/libs/elFinder/js/i18n/elfinder.sl.js +++ b/libs/elFinder/js/i18n/elfinder.sl.js @@ -138,6 +138,7 @@ 'btnCancel' : 'Prekliči', 'btnNo' : 'Ne', 'btnYes' : 'Da', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', /******************************** notifications ********************************/ @@ -318,6 +319,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM paket', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Tekst dokument', 'kindTextPlain' : 'Samo tekst', diff --git a/libs/elFinder/js/i18n/elfinder.sr.js b/libs/elFinder/js/i18n/elfinder.sr.js index cb2cc82..a880d6e 100644 --- a/libs/elFinder/js/i18n/elfinder.sr.js +++ b/libs/elFinder/js/i18n/elfinder.sr.js @@ -138,6 +138,7 @@ 'btnCancel' : 'Prekini', 'btnNo' : 'Ne', 'btnYes' : 'Da', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', /******************************** notifications ********************************/ @@ -318,6 +319,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM paket', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Teokstualni dokument', 'kindTextPlain' : 'Čist tekst', diff --git a/libs/elFinder/js/i18n/elfinder.sv.js b/libs/elFinder/js/i18n/elfinder.sv.js index 63ee768..fad7031 100644 --- a/libs/elFinder/js/i18n/elfinder.sv.js +++ b/libs/elFinder/js/i18n/elfinder.sv.js @@ -138,6 +138,7 @@ 'btnCancel' : 'Ångra', 'btnNo' : 'Nej', 'btnYes' : 'Ja', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', /******************************** notifications ********************************/ @@ -318,6 +319,12 @@ 'kindTTF' : 'True Type', 'kindOTF' : 'Open Type', 'kindRPM' : 'RPM', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT', + 'kindEOT' : 'Embedded Open Type', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Text', 'kindTextPlain' : 'Plain', diff --git a/libs/elFinder/js/i18n/elfinder.tr.js b/libs/elFinder/js/i18n/elfinder.tr.js index eb09b2e..9d0c068 100644 --- a/libs/elFinder/js/i18n/elfinder.tr.js +++ b/libs/elFinder/js/i18n/elfinder.tr.js @@ -5,7 +5,8 @@ * @author Osman KAYAN * @author Ali KAYAN * @author Cengiz AKCAN cengiz@vobo.company - * @version 2022-05-08 + * @author Ali KAYAN + * @version 2025-06-26 */ (function(root, factory) { if (typeof define === 'function' && define.amd) { @@ -20,9 +21,9 @@ translator : 'I.Taskinoglu & A.Kaya <alikaya@armsyazilim.com>, Abdullah ELEN <abdullahelen@msn.com>, Osman KAYAN <osmnkayan@gmail.com>, alikayan95@gmail.com, Cengiz AKCAN cengiz@vobo.company, Ali KAYAN <alikayan95@gmail.com>', language : 'Türkçe', direction : 'ltr', - dateFormat : 'd.m.Y H:i', // will show like: 08.05.2022 21:53 - fancyDateFormat : '$1 H:i', // will show like: Bugün 21:53 - nonameDateFormat : 'ymd-His', // noname upload will show like: 220508-215305 + dateFormat : 'd.m.Y H:i', // will show like: 26.06.2025 09:57 + fancyDateFormat : '$1 H:i', // will show like: Bugün 09:57 + nonameDateFormat : 'ymd-His', // noname upload will show like: 250626-095752 messages : { /********************************** errors **********************************/ @@ -30,48 +31,48 @@ 'errUnknown' : 'Bilinmeyen hata.', 'errUnknownCmd' : 'Bilinmeyen komut.', 'errJqui' : 'Geçersiz jQuery UI yapılandırması. Seçilebilir, sürükle ve bırak bileşenlerini içermelidir.', - 'errNode' : 'elFinder, DOM Element\'ini oluşturması gerekir.', - 'errURL' : 'Geçersiz elFinder yapılandırması! URL seçeneği ayarlı değil.', - 'errAccess' : 'Erişim engellendi.', - 'errConnect' : 'Sunucuya bağlanamıyor.', - 'errAbort' : 'Bağlantı durduruldu.', + 'errNode' : 'elFinder yaratılması için DOM Element\'ine ihtiyacı vardır.', + 'errURL' : 'Geçersiz elFinder yapılandırması! URL seçeneği ayarlanmamış.', + 'errAccess' : 'Erişim reddedildi.', + 'errConnect' : 'Sunucu-Tarafı\'na bağlanılamıyor.', + 'errAbort' : 'Bağlantı iptal edildi.', 'errTimeout' : 'Bağlantı zaman aşımı.', - 'errNotFound' : 'Sunucu bulunamadı.', - 'errResponse' : 'Geçersiz sunucu yanıtı.', - 'errConf' : 'Geçersiz sunucu yapılandırması.', + 'errNotFound' : 'Sunucu-Tarafı bulunamadı.', + 'errResponse' : 'Geçersiz Sunucu-Tarafı yanıtı.', + 'errConf' : 'Geçersiz Sunucu-Tarafı yapılandırması.', 'errJSON' : 'PHP JSON modülü kurulu değil.', 'errNoVolumes' : 'Okunabilir birimler mevcut değil.', 'errCmdParams' : '"$1" komutu için geçersiz parametre.', - 'errDataNotJSON' : 'Bu veri JSON formatında değil.', - 'errDataEmpty' : 'Boş veri.', - 'errCmdReq' : 'Sunucu isteği için komut adı gerekli.', + 'errDataNotJSON' : 'Veri JSON formatında değil.', + 'errDataEmpty' : 'Veri boş.', + 'errCmdReq' : 'Sunucu-Tarafı isteği için komut adı gerekli.', 'errOpen' : '"$1" açılamıyor.', - 'errNotFolder' : 'Bu nesne bir klasör değil.', - 'errNotFile' : 'Bu nesne bir dosya değil.', + 'errNotFolder' : 'Nesne bir dizin değil.', + 'errNotFile' : 'Nesne bir dosya değil.', 'errRead' : '"$1" okunamıyor.', 'errWrite' : '"$1" yazılamıyor.', - 'errPerm' : 'Yetki engellendi.', + 'errPerm' : 'İzin reddedildi.', 'errLocked' : '"$1" kilitli. Bu nedenle taşıma, yeniden adlandırma veya kaldırma yapılamıyor.', 'errExists' : '"$1" adında bir dosya zaten var.', 'errInvName' : 'Geçersiz dosya ismi.', - 'errInvDirname' : 'Geçersiz klasör ismi', // from v2.1.24 added 12.4.2017 - 'errFolderNotFound' : 'Klasör bulunamıyor.', + 'errInvDirname' : 'Geçersiz dizin ismi.', // from v2.1.24 added 12.4.2017 + 'errFolderNotFound' : 'Dizin bulunamadı.', 'errFileNotFound' : 'Dosya bulunamadı.', - 'errTrgFolderNotFound' : 'Hedef klasör "$1" bulunamadı.', + 'errTrgFolderNotFound' : 'Hedef dizin "$1" bulunamadı.', 'errPopup' : 'Tarayıcı popup penceresi açmayı engelledi. Tarayıcı ayarlarından dosya açmayı aktif hale getirin.', - 'errMkdir' : 'Klasör oluşturulamıyor "$1".', + 'errMkdir' : 'Dizin oluşturulamıyor "$1".', 'errMkfile' : '"$1" dosyası oluşturulamıyor.', 'errRename' : '"$1" yeniden adlandırma yapılamıyor.', 'errCopyFrom' : '"$1" biriminden dosya kopyalamaya izin verilmedi.', 'errCopyTo' : '"$1" birimine dosya kopyalamaya izin verilmedi.', - 'errMkOutLink' : 'Kök birim dışında bir bağlantı oluşturulamıyor', // from v2.1 added 03.10.2015 + 'errMkOutLink' : 'Birim kökü dışında bir bağlantı oluşturulamıyor', // from v2.1 added 03.10.2015 'errUpload' : 'Dosya yükleme hatası.', // old name - errUploadCommon - 'errUploadFile' : '"$1" dosya yüklenemedi.', // old name - errUpload + 'errUploadFile' : '"$1" dosyası yüklenemedi.', // old name - errUpload 'errUploadNoFiles' : 'Yüklenecek dosya bulunamadı.', 'errUploadTotalSize' : 'Veri izin verilen boyuttan büyük.', // old name - errMaxSize 'errUploadFileSize' : 'Dosya izin verilen boyuttan büyük.', // old name - errFileMaxSize - 'errUploadMime' : 'Dosya türüne izin verilmedi.', - 'errUploadTransfer' : '"$1" transfer hatası.', + 'errUploadMime' : 'Dosya türüne izin verilmiyor.', + 'errUploadTransfer' : '"$1" aktarma hatası.', 'errUploadTemp' : 'Yükleme için geçici dosya yapılamıyor.', // from v2.1 added 26.09.2015 'errNotReplace' : '"$1" nesnesi bu konumda zaten var ve başka türde nesne ile değiştirilemez.', // new 'errReplace' : 'Değişiklik yapılamıyor "$1".', @@ -86,8 +87,8 @@ 'errArchive' : 'Arşiv oluşturulamıyor.', 'errArcType' : 'Desteklenmeyen arşiv türü.', 'errNoArchive' : 'Dosya arşiv değil veya desteklenmeyen arşiv türü.', - 'errCmdNoSupport' : 'Sunucu bu komutu desteklemiyor.', - 'errReplByChild' : '“$1” klasörü içerdiği bir öğe tarafından değiştirilemez.', + 'errCmdNoSupport' : 'Sunucu-Tarafı bu komutu desteklemiyor.', + 'errReplByChild' : '“$1” dizini, içerdiği bir öğe tarafından değiştirilemez.', 'errArcSymlinks' : 'Sembolik bağlantıları içeren arşivlerin açılması güvenlik nedeniyle reddedildi.', // edited 24.06.2012 'errArcMaxSize' : 'Arşiv dosyaları izin verilen maksimum boyutu aştı.', 'errResize' : '"$1" yeniden boyutlandırılamıyor.', @@ -99,8 +100,8 @@ 'errNotUTF8Content' : 'Dosya "$1" UTF-8 olmadığından düzenlenemez.', // added 9.11.2011 'errNetMount' : '"$1" bağlanamadı.', // added 17.04.2012 'errNetMountNoDriver' : 'Desteklenmeyen protokol.', // added 17.04.2012 - 'errNetMountFailed' : 'Bağlama hatası.', // added 17.04.2012 - 'errNetMountHostReq' : 'Sunucu gerekli.', // added 18.04.2012 + 'errNetMountFailed' : 'Bağlama başarısız oldu.', // added 17.04.2012 + 'errNetMountHostReq' : 'Host gerekli.', // added 18.04.2012 'errSessionExpires' : 'Uzun süre işlem yapılmadığından oturumunuz sonlandı.', 'errCreatingTempDir' : 'Geçici dizin oluşturulamıyor: "$1"', 'errFtpDownloadFile' : 'Dosya FTP: "$1" adresinden indirilemiyor.', @@ -110,16 +111,16 @@ 'errExtractExec' : '"$1" Dosyaları arşivden çıkartılırken hata oluştu.', 'errNetUnMount' : 'Bağlantı kaldırılamıyor.', // from v2.1 added 30.04.2012 'errConvUTF8' : 'UTF-8\'e dönüştürülemez.', // from v2.1 added 08.04.2014 - 'errFolderUpload' : 'Klasör yükleyebilmek için daha modern bir tarayıcıya ihtiyacınız var.', // from v2.1 added 26.6.2015 - 'errSearchTimeout' : '"$1" araması zaman aşımına uğradı. Kısmi arama sonuçları listeleniyor.', // from v2.1 added 12.1.2016 + 'errFolderUpload' : 'Dizin yükleyebilmek için daha modern bir tarayıcıya ihtiyacınız var.', // from v2.1 added 26.6.2015 + 'errSearchTimeout' : '"$1" aranırken zaman aşımına uğradı. Arama sonuçları kısmidir.', // from v2.1 added 12.1.2016 'errReauthRequire' : 'Yeniden yetkilendirme gerekiyor.', // from v2.1.10 added 24.3.2016 - 'errMaxTargets' : 'Maksimum seçilebilir öge sayısı $1 adettir', // from v2.1.17 added 17.10.2016 + 'errMaxTargets' : 'Maksimum seçilebilir öge sayısı $1 adettir.', // from v2.1.17 added 17.10.2016 'errRestore' : 'Çöp kutusundan geri yüklenemiyor. Geri yükleme notkası belirlenemiyor.', // from v2.1.24 added 3.5.2017 - 'errEditorNotFound' : 'Editör bu dosya türünü bulamıyor.', // from v2.1.25 added 23.5.2017 + 'errEditorNotFound' : 'Bu doya türü için düzenleyici bulunamadı.', // from v2.1.25 added 23.5.2017 'errServerError' : 'Sunucu tarafında beklenilmeyen bir hata oluştu.', // from v2.1.25 added 16.6.2017 - 'errEmpty' : '"$1" klasörü boşaltılamıyor.', // from v2.1.25 added 22.6.2017 - 'moreErrors' : '"$1" veya daha fazla hata', // from v2.1.44 added 9.12.2018 - 'errMaxMkdirs' : 'Tek seferde 1$\'a kadar klasör oluşturabilirsiniz.', // from v2.1.58 added 20.6.2021 + 'errEmpty' : '"$1" Dizini boşaltılamıyor.', // from v2.1.25 added 22.6.2017 + 'moreErrors' : '"$1" tane daha hata var.', // from v2.1.44 added 9.12.2018 + 'errMaxMkdirs' : 'Tek seferde en fazla 1$ dizin oluşturabilirsiniz.', // from v2.1.58 added 20.6.2021 /******************************* commands names ********************************/ 'cmdarchive' : 'Arşiv oluştur', @@ -127,40 +128,40 @@ 'cmdcopy' : 'Kopyala', 'cmdcut' : 'Kes', 'cmddownload' : 'İndir', - 'cmdduplicate' : 'Çoğalt', + 'cmdduplicate' : 'Kopyasını oluştur', 'cmdedit' : 'Dosyayı düzenle', 'cmdextract' : 'Arşivden dosyaları çıkart', 'cmdforward' : 'İleri', 'cmdgetfile' : 'Dosyaları seç', 'cmdhelp' : 'Bu yazılım hakkında', - 'cmdhome' : 'Anasayfa', + 'cmdhome' : 'Kök', 'cmdinfo' : 'Bilgi göster', 'cmdmkdir' : 'Yeni klasör', 'cmdmkdirin' : 'Yeni Klasör / aç', // from v2.1.7 added 19.2.2016 'cmdmkfile' : 'Yeni dosya', 'cmdopen' : 'Aç', 'cmdpaste' : 'Yapıştır', - 'cmdquicklook' : 'Ön izleme', + 'cmdquicklook' : 'Önizleme', 'cmdreload' : 'Geri Yükle', 'cmdrename' : 'Yeniden Adlandır', 'cmdrm' : 'Sil', 'cmdtrash' : 'Çöpe at', //from v2.1.24 added 29.4.2017 - 'cmdrestore' : 'geri yükle', //from v2.1.24 added 3.5.2017 + 'cmdrestore' : 'Geri yükle', //from v2.1.24 added 3.5.2017 'cmdsearch' : 'Dosyaları bul', 'cmdup' : 'Üst dizine çık', 'cmdupload' : 'Dosyaları yükle', 'cmdview' : 'Görüntüle', - 'cmdresize' : 'Resmi yeniden boyutlandır', + 'cmdresize' : 'Boyutlandır & Döndür', 'cmdsort' : 'Sırala', - 'cmdnetmount' : 'Bağlı ağ birimi', // added 18.04.2012 - 'cmdnetunmount': 'Devredışı bırak', // from v2.1 added 30.04.2012 + 'cmdnetmount' : 'Ağ birimi bağla', // added 18.04.2012 + 'cmdnetunmount': 'bağlantıyı kes', // from v2.1 added 30.04.2012 'cmdplaces' : 'Yerlere', // added 28.12.2014 'cmdchmod' : 'Mod değiştir', // from v2.1 added 20.6.2015 - 'cmdopendir' : 'Klasör aç', // from v2.1 added 13.1.2016 + 'cmdopendir' : 'Bir Dizin Aç', // from v2.1 added 13.1.2016 'cmdcolwidth' : 'Sütun genişliğini sıfırla', // from v2.1.13 added 12.06.2016 - 'cmdfullscreen': 'Tam ekran', // from v2.1.15 added 03.08.2016 + 'cmdfullscreen': 'Tam Ekran', // from v2.1.15 added 03.08.2016 'cmdmove' : 'Taşı', // from v2.1.15 added 21.08.2016 - 'cmdempty' : 'Klasörü boşalt', // from v2.1.25 added 22.06.2017 + 'cmdempty' : 'Dizini boşalt', // from v2.1.25 added 22.06.2017 'cmdundo' : 'Geri al', // from v2.1.27 added 31.07.2017 'cmdredo' : 'Yinele', // from v2.1.27 added 31.07.2017 'cmdpreference': 'Tercihler', // from v2.1.27 added 03.08.2017 @@ -178,6 +179,7 @@ 'btnCancel' : 'İptal', 'btnNo' : 'Hayır', 'btnYes' : 'Evet', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Bağla', // added 18.04.2012 'btnApprove': 'Git $1 & onayla', // from v2.1 added 26.04.2012 'btnUnmount': 'Bağlantıyı kes', // from v2.1 added 30.04.2012 @@ -196,15 +198,15 @@ 'btnSaveAs' : 'Farklı Kaydet', // from v2.1.25 added 24.5.2017 /******************************** notifications ********************************/ - 'ntfopen' : 'Klasör Aç', + 'ntfopen' : 'Dizin Aç', 'ntffile' : 'Dosya Aç', - 'ntfreload' : 'Klasör içeriğini yeniden yükle', + 'ntfreload' : 'Dizin içeriğini yeniden yükle', 'ntfmkdir' : 'Dizin oluşturuluyor', 'ntfmkfile' : 'Dosyaları oluşturma', - 'ntfrm' : 'Dosyaları sil', - 'ntfcopy' : 'Dosyaları kopyala', - 'ntfmove' : 'Dosyaları taşı', - 'ntfprepare' : 'Dosyaları kopyalamaya hazırla', + 'ntfrm' : 'Öğeleri sil', + 'ntfcopy' : 'Öğeleri kopyala', + 'ntfmove' : 'Öğeleri taşı', + 'ntfprepare' : 'Varolan öğeler kontrol ediliyor', 'ntfrename' : 'Dosyaları yeniden adlandır', 'ntfupload' : 'Dosyalar yükleniyor', 'ntfdownload' : 'Dosyalar indiriliyor', @@ -218,7 +220,7 @@ 'ntfnetmount' : 'Ağ birimine bağlanılıyor', // added 18.04.2012 'ntfnetunmount': 'Ağ birimi bağlantısı kesiliyor', // from v2.1 added 30.04.2012 'ntfdim' : 'Resim boyutu alınıyor', // added 20.05.2013 - 'ntfreaddir' : 'Klasör bilgisi okunuyor', // from v2.1 added 01.07.2013 + 'ntfreaddir' : 'Dizin bilgisi okunuyor', // from v2.1 added 01.07.2013 'ntfurl' : 'Bağlantının URL\'si alınıyor', // from v2.1 added 11.03.2014 'ntfchmod' : 'Dosya modu değiştiriliyor', // from v2.1 added 20.6.2015 'ntfpreupload': 'Yüklenen dosya ismi doğrulanıyor', // from v2.1 added 31.11.2015 @@ -227,7 +229,7 @@ 'ntfchunkmerge': 'Yüklenen dosya işleniyor', // from v2.1.17 added 2.11.2016 'ntftrash' : 'Çöp kutusuna atma', // from v2.1.24 added 2.5.2017 'ntfrestore' : 'Çöp kutusundan geri yükle', // from v2.1.24 added 3.5.2017 - 'ntfchkdir' : 'Hedef klasör kontrol ediliyor', // from v2.1.24 added 3.5.2017 + 'ntfchkdir' : 'Hedef dizin kontrol ediliyor', // from v2.1.24 added 3.5.2017 'ntfundo' : 'Önceki işlemi geri alma', // from v2.1.27 added 31.07.2017 'ntfredo' : 'Önceki geri almayı tekrarlama', // from v2.1.27 added 31.07.2017 'ntfchkcontent' : 'İçeriği kontrol ediniz', // from v2.1.41 added 3.8.2018 @@ -283,7 +285,7 @@ 'sortkind' : 'Türe göre', 'sortsize' : 'Boyuta göre', 'sortdate' : 'Tarihe göre', - 'sortFoldersFirst' : 'Önce klasörler', + 'sortFoldersFirst' : 'Önce dizinler', 'sortperm' : 'izinlere göre', // from v2.1.13 added 13.06.2016 'sortmode' : 'moduna göre', // from v2.1.13 added 13.06.2016 'sortowner' : 'sahibine göre', // from v2.1.13 added 13.06.2016 @@ -300,7 +302,7 @@ /********************************** messages **********************************/ 'confirmReq' : 'Onay gerekli', - 'confirmRm' : 'Dosyaları kaldırmak istediğinden emin misin?
          Bu işlem geri alınamaz!', + 'confirmRm' : 'Öğeleri kaldırmak istediğinden emin misin?
          Bu işlem geri alınamaz!', 'confirmRepl' : 'Eski dosya yenisi ile değiştirilsin mi?', 'confirmRest' : 'Mevcut öge çöp kutusundaki ögeyle değiştirilsin mi?', // fromv2.1.24 added 5.5.2017 'confirmConvUTF8' : 'UTF-8 değil
          UTF-8\'e dönüştürülsün mü?
          Dönüştürme sonrası kaydedebilmek için içeriğin UTF-8 olması gerekir.', // from v2.1 added 08.04.2014 @@ -318,25 +320,25 @@ 'write' : 'yaz', 'noaccess' : 'erişim yok', 'and' : 've', - 'unknown' : 'bilinimiyor', - 'selectall' : 'Tüm dosyaları seç', - 'selectfiles' : 'Dosya(lar)ı seç', - 'selectffile' : 'İlk dosyayı seç', - 'selectlfile' : 'Son dosyayı seç', + 'unknown' : 'bilinmeyen', + 'selectall' : 'Tüm öğeleri seç', + 'selectfiles' : 'Öğe(ler)i seç', + 'selectffile' : 'İlk öğeyi seç', + 'selectlfile' : 'Son öğeyi seç', 'viewlist' : 'Liste görünümü', 'viewicons' : 'Simge görünümü', - 'viewSmall' : 'Small iconlar', // from v2.1.39 added 22.5.2018 - 'viewMedium' : 'Medium iconlar', // from v2.1.39 added 22.5.2018 - 'viewLarge' : 'Large iconlar', // from v2.1.39 added 22.5.2018 - 'viewExtraLarge' : 'Extra large iconlar', // from v2.1.39 added 22.5.2018 + 'viewSmall' : 'Küçük simgeler', // from v2.1.39 added 22.5.2018 + 'viewMedium' : 'Orta simgleler', // from v2.1.39 added 22.5.2018 + 'viewLarge' : 'Büyük simgleler', // from v2.1.39 added 22.5.2018 + 'viewExtraLarge' : 'Çok büyük simgeler', // from v2.1.39 added 22.5.2018 'places' : 'Yerler', 'calc' : 'Hesapla', - 'path' : 'Yol', - 'aliasfor' : 'Takma adı:', + 'path' : 'Dosya Yolu', + 'aliasfor' : 'Takma adı', 'locked' : 'Kilitli', 'dim' : 'Ölçüler', 'files' : 'Dosyalar', - 'folders' : 'Klasörler', + 'folders' : 'Dizinler', 'items' : 'Nesneler', 'yes' : 'evet', 'no' : 'hayır', @@ -359,15 +361,15 @@ 'developer' : 'geliştirici', 'contributor' : 'iştirakçi', 'maintainer' : 'bakıcı', - 'translator' : 'çeviri', + 'translator' : 'tercüman', 'icons' : 'Simgeler', 'dontforget' : 've havlunuzu almayı unutmayın', 'shortcutsof' : 'Kısayollar devre dışı', 'dropFiles' : 'Dosyaları buraya taşı', 'or' : 'veya', 'selectForUpload' : 'Yüklemek için dosyaları seçin', - 'moveFiles' : 'Dosyaları taşı', - 'copyFiles' : 'Dosyaları kopyala', + 'moveFiles' : 'Öğeleri taşı', + 'copyFiles' : 'Öğeleri kopyala', 'restoreFiles' : 'Öğeleri geri yükle', // from v2.1.24 added 5.5.2017 'rmFromPlaces' : 'Yerlerinden sil', 'aspectRatio' : 'Görünüm oranı', @@ -379,10 +381,10 @@ 'rotate' : 'Döndür', 'rotate-cw' : '90 derece sağa döndür', 'rotate-ccw' : '90 derece sola döndür', - 'degree' : 'Derece', + 'degree' : '°', 'netMountDialogTitle' : 'Bağlı (Mount) ağ birimi', // added 18.04.2012 'protocol' : 'Protokol', // added 18.04.2012 - 'host' : 'Sunucu', // added 18.04.2012 + 'host' : 'Host', // added 18.04.2012 'port' : 'Kapı(Port)', // added 18.04.2012 'user' : 'Kullanıcı', // added 18.04.2012 'pass' : 'Şifre', // added 18.04.2012 @@ -399,15 +401,15 @@ 'execute' : 'Çalıştır', // from v2.1 added 20.6.2015 'perm' : 'Yetki', // from v2.1 added 20.6.2015 'mode' : 'Mod', // from v2.1 added 20.6.2015 - 'emptyFolder' : 'Klasör boş', // from v2.1.6 added 30.12.2015 - 'emptyFolderDrop' : 'Klasör boş\\A Eklemek için sürükleyin', // from v2.1.6 added 30.12.2015 - 'emptyFolderLTap' : 'Klasör boş\\A Eklemek için basılı tutun', // from v2.1.6 added 30.12.2015 + 'emptyFolder' : 'Dizin boş', // from v2.1.6 added 30.12.2015 + 'emptyFolderDrop' : 'Dizin boş\\Öğe eklemek için sürükleyin', // from v2.1.6 added 30.12.2015 + 'emptyFolderLTap' : 'Dizin boş\\Öğe eklemek için basılı tutun', // from v2.1.6 added 30.12.2015 'quality' : 'Kalite', // from v2.1.6 added 5.1.2016 'autoSync' : 'Otomatik senkronizasyon', // from v2.1.6 added 10.1.2016 'moveUp' : 'Yukarı taşı', // from v2.1.6 added 18.1.2016 'getLink' : 'URL bağlantısı alın', // from v2.1.7 added 9.2.2016 'selectedItems' : 'Seçili öğeler ($1)', // from v2.1.7 added 2.19.2016 - 'folderId' : 'Klasör kimliği', // from v2.1.10 added 3.25.2016 + 'folderId' : 'Dizin kimliği', // from v2.1.10 added 3.25.2016 'offlineAccess' : 'Çevrimdışı erişime izin ver', // from v2.1.10 added 3.25.2016 'reAuth' : 'Yeniden kimlik doğrulaması için', // from v2.1.10 added 3.25.2016 'nowLoading' : 'Şimdi yükleniyor...', // from v2.1.12 added 4.26.2016 @@ -420,9 +422,9 @@ 'incSearchOnly' : 'Artan arama yalnızca geçerli görünümden yapılır.', // from v2.1.13 added 6.30.2016 'reinstate' : 'Eski durumuna getir', // from v2.1.15 added 3.8.2016 'complete' : '$1 tamamlandı', // from v2.1.15 added 21.8.2016 - 'contextmenu' : 'Durum menüsü', // from v2.1.15 added 9.9.2016 + 'contextmenu' : 'Konteks menüsü', // from v2.1.15 added 9.9.2016 'pageTurning' : 'Sayfa çevir', // from v2.1.15 added 10.9.2016 - 'volumeRoots' : 'Disk kök dizini', // from v2.1.16 added 16.9.2016 + 'volumeRoots' : 'Kök birimler', // from v2.1.16 added 16.9.2016 'reset' : 'Sıfırla', // from v2.1.16 added 1.10.2016 'bgcolor' : 'Arkaplan rengi', // from v2.1.16 added 1.10.2016 'colorPicker' : 'Renk seçici', // from v2.1.16 added 1.10.2016 @@ -435,13 +437,13 @@ 'minsLeft' : '$1 dakika kaldı', // from v2.1.17 added 13.11.2016 'openAsEncoding' : 'Seçilen kodlamayla yeniden aç', // from v2.1.19 added 2.12.2016 'saveAsEncoding' : 'Seçilen kodlamayla kaydet', // from v2.1.19 added 2.12.2016 - 'selectFolder' : 'Klasör seç', // from v2.1.20 added 13.12.2016 + 'selectFolder' : 'Dizin seç', // from v2.1.20 added 13.12.2016 'firstLetterSearch': 'İlk arama sayfası', // from v2.1.23 added 24.3.2017 'presets' : 'Hazır ayarlar', // from v2.1.25 added 26.5.2017 'tooManyToTrash' : 'çok fazla öge var çöp kutusuna atılamaz.', // from v2.1.25 added 9.6.2017 'TextArea' : 'Metin alanı(TextArea)', // from v2.1.25 added 14.6.2017 - 'folderToEmpty' : '"$1" klasörünü boşalt.', // from v2.1.25 added 22.6.2017 - 'filderIsEmpty' : '"$1" klasöründe öge yok.', // from v2.1.25 added 22.6.2017 + 'folderToEmpty' : '"$1" dizinini boşalt.', // from v2.1.25 added 22.6.2017 + 'filderIsEmpty' : '"$1" dizininde öğe yok.', // from v2.1.25 added 22.6.2017 'preference' : 'Tercih', // from v2.1.26 added 28.6.2017 'language' : 'Dil ayarları', // from v2.1.26 added 28.6.2017 'clearBrowserData': 'Bu tarayıcıda kayıtlı ayarları başlat', // from v2.1.26 added 28.6.2017 @@ -464,7 +466,7 @@ 'columnPref' : 'Sütun ayarları (Liste görünümü)', // from v2.1.32 added 6.2.2018 'reflectOnImmediate' : 'Tüm değişiklikler hemen arşive yansıtılacaktır.', // from v2.1.33 added 2.3.2018 'reflectOnUnmount' : 'Herhangi bir değişiklik, bu birimi kaldırılıncaya kadar yansıtılmayacaktır.', // from v2.1.33 added 2.3.2018 - 'unmountChildren' : 'Bu cihaza monte edilen aşağıdaki birim (ler) de bağlanmamıştır. Çıkardığınızdan emin misiniz?', // from v2.1.33 added 5.3.2018 + 'unmountChildren' : 'Bağlatıyı kesmek istediğiniz birime bağlı şu birim(ler)\'in de bağlantısı kesilecek. Bağlantıyı kesmek istediğinize emin misiniz?', // from v2.1.33 added 5.3.2018 'selectionInfo' : 'Seçim Bilgisi', // from v2.1.33 added 7.3.2018 'hashChecker' : 'Dosya imza(hash) algoritmaları', // from v2.1.33 added 10.3.2018 'infoItems' : 'öğelerin bilgisi (Seçim Bilgi Paneli)', // from v2.1.38 added 28.3.2018 @@ -473,7 +475,7 @@ 'workspace' : 'Çalışma alanı', // from v2.1.38 added 4.4.2018 'dialog' : 'Diyalog', // from v2.1.38 added 4.4.2018 'all' : 'Tümü', // from v2.1.38 added 4.4.2018 - 'iconSize' : 'İcon Boyutu (İcon Görünümü İçin)', // from v2.1.39 added 7.5.2018 + 'iconSize' : 'Simge Boyutu (Simge Görünümü)', // from v2.1.39 added 7.5.2018 'editorMaximized' : 'Maksimum düzenleyici penceresini aç', // from v2.1.40 added 30.6.2018 'editorConvNoApi' : 'API ile dönüşüm şu anda mevcut olmadığından, lütfen web sitesinde dönüştürün.', //from v2.1.40 added 8.7.2018 'editorConvNeedUpload' : 'Dönüştürmeden sonra, dönüştürülen dosyayı kaydetmek için öğe URL\'si veya indirilen bir dosya ile karşıya yüklemeniz gerekir.', //from v2.1.40 added 8.7.2018 @@ -499,8 +501,8 @@ /********************************** mimetypes **********************************/ 'kindUnknown' : 'Bilinmiyor', - 'kindRoot' : 'Sürücü Kök dizini', // from v2.1.16 added 16.10.2016 - 'kindFolder' : 'Klasör', + 'kindRoot' : 'Birim Kök dizini', // from v2.1.16 added 16.10.2016 + 'kindFolder' : 'Dizin', 'kindSelects' : 'Seçim', // from v2.1.29 added 29.8.2017 'kindAlias' : 'Alias (Takma ad)', 'kindAliasBroken' : 'Bozuk alias', @@ -526,6 +528,12 @@ 'kindTTF' : 'True Type fontu', 'kindOTF' : 'Open Type fontu', 'kindRPM' : 'RPM paketi', + // fonts + 'kindFont' : 'Fontu', + 'kindSFNT' : 'SFNT fontu', + 'kindEOT' : 'Embedded Open Type fontu', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Metin dosyası', 'kindTextPlain' : 'Düz metin', @@ -581,4 +589,3 @@ } }; })); - diff --git a/libs/elFinder/js/i18n/elfinder.ug_CN.js b/libs/elFinder/js/i18n/elfinder.ug_CN.js index ef6481d..7fc592b 100644 --- a/libs/elFinder/js/i18n/elfinder.ug_CN.js +++ b/libs/elFinder/js/i18n/elfinder.ug_CN.js @@ -138,6 +138,7 @@ 'btnCancel' : 'بېكارلاش', 'btnNo' : 'ياق', 'btnYes' : 'ھەئە', + 'btnDiscard': 'Discard changes', 'btnMount' : 'يۈكلەش', // added 18.04.2012 /******************************** notifications ********************************/ @@ -318,6 +319,12 @@ 'kindTTF' : 'True Type فونت', 'kindOTF' : 'Open Type فونت', 'kindRPM' : 'RPM', + // fonts + 'kindFont' : 'فونت', + 'kindSFNT' : 'SFNT فونت', + 'kindEOT' : 'Embedded Open Type فونت', + 'kindWOFF' : 'Web Open Font Format فونت', + 'kindWOFF2' : 'Web Open Font Format 2 فونت', // texts 'kindText' : 'تېكىست', 'kindTextPlain' : 'تېكىست', diff --git a/libs/elFinder/js/i18n/elfinder.uk.js b/libs/elFinder/js/i18n/elfinder.uk.js index b0e6f5c..3408ae3 100644 --- a/libs/elFinder/js/i18n/elfinder.uk.js +++ b/libs/elFinder/js/i18n/elfinder.uk.js @@ -174,6 +174,7 @@ 'btnCancel' : 'Скасувати', 'btnNo' : 'Ні', 'btnYes' : 'Так', + 'btnDiscard': 'Скасувати зміни', 'btnMount' : 'Підключити', // added 18.04.2012 'btnApprove': 'Перейти в $1 і прийняти', // from v2.1 added 26.04.2012 'btnUnmount': 'Відключити', // from v2.1 added 30.04.2012 @@ -522,6 +523,12 @@ 'kindTTF' : 'Шрифт True Type', 'kindOTF' : 'Шрифт Open Type', 'kindRPM' : 'Пакунок RPM', + // fonts + 'kindFont' : 'Шрифт', + 'kindSFNT' : 'Шрифт SFNT', + 'kindEOT' : 'Шрифт Embedded Open Type', + 'kindWOFF' : 'Шрифт Web Open Font Format', + 'kindWOFF2' : 'Шрифт Web Open Font Format 2', // texts 'kindText' : 'Текстовий документ', 'kindTextPlain' : 'Простий текст', diff --git a/libs/elFinder/js/i18n/elfinder.vi.js b/libs/elFinder/js/i18n/elfinder.vi.js index e119483..d53912f 100644 --- a/libs/elFinder/js/i18n/elfinder.vi.js +++ b/libs/elFinder/js/i18n/elfinder.vi.js @@ -175,6 +175,7 @@ 'btnCancel' : 'Hủy bỏ', 'btnNo' : 'Không', 'btnYes' : 'Đồng ý', + 'btnDiscard': 'Discard changes', 'btnMount' : 'Mount', // added 18.04.2012 'btnApprove': 'Goto $1 & approve', // from v2.1 added 26.04.2012 'btnUnmount': 'Unmount', // from v2.1 added 30.04.2012 @@ -522,6 +523,12 @@ 'kindTTF' : 'True Type font', 'kindOTF' : 'Open Type font', 'kindRPM' : 'RPM package', + // fonts + 'kindFont' : 'Font', + 'kindSFNT' : 'SFNT font', + 'kindEOT' : 'Embedded Open Type font', + 'kindWOFF' : 'Web Open Font Format', + 'kindWOFF2' : 'Web Open Font Format 2', // texts 'kindText' : 'Text document', 'kindTextPlain' : 'Plain text', diff --git a/libs/elFinder/js/i18n/elfinder.zh_CN.js b/libs/elFinder/js/i18n/elfinder.zh_CN.js index a654460..48b15cd 100644 --- a/libs/elFinder/js/i18n/elfinder.zh_CN.js +++ b/libs/elFinder/js/i18n/elfinder.zh_CN.js @@ -179,6 +179,7 @@ 'btnCancel' : '取消', 'btnNo' : '否', 'btnYes' : '是', + 'btnDiscard': 'Discard changes', 'btnMount' : '装载', // added 18.04.2012 'btnApprove': '至 $1 并确认', // from v2.1 added 26.04.2012 'btnUnmount': '卸载', // from v2.1 added 30.04.2012 @@ -527,6 +528,12 @@ 'kindTTF' : 'True Type 字体', 'kindOTF' : 'Open Type 字体', 'kindRPM' : 'RPM 包', + // fonts + 'kindFont' : '字体', + 'kindSFNT' : 'SFNT 字体', + 'kindEOT' : 'Embedded Open Type 字体', + 'kindWOFF' : 'Web Open Font Format 字体', + 'kindWOFF2' : 'Web Open Font Format 2 字体', // texts 'kindText' : '文本文件', 'kindTextPlain' : '纯文本', diff --git a/libs/elFinder/js/i18n/elfinder.zh_TW.js b/libs/elFinder/js/i18n/elfinder.zh_TW.js index 0f46e1d..2f575a0 100644 --- a/libs/elFinder/js/i18n/elfinder.zh_TW.js +++ b/libs/elFinder/js/i18n/elfinder.zh_TW.js @@ -179,6 +179,7 @@ 'btnCancel' : '取消', 'btnNo' : '否', 'btnYes' : '是', + 'btnDiscard': 'Discard changes', 'btnMount' : '掛接', // added 18.04.2012 'btnApprove': '前往 $1 並核准', // from v2.1 added 26.04.2012 'btnUnmount': '卸載', // from v2.1 added 30.04.2012 @@ -527,6 +528,12 @@ 'kindTTF' : 'True Type 字型', 'kindOTF' : 'Open Type 字型', 'kindRPM' : 'RPM 封裝檔案', + // fonts + 'kindFont' : '字型', + 'kindSFNT' : 'SFNT 字型', + 'kindEOT' : 'Embedded Open Type 字型', + 'kindWOFF' : 'Web Open Font Format 字型', + 'kindWOFF2' : 'Web Open Font Format 2 字型', // texts 'kindText' : '文字檔案', 'kindTextPlain' : '純文字', diff --git a/libs/elFinder/php/elFinder.class.php b/libs/elFinder/php/elFinder.class.php index 332976c..c16325a 100644 --- a/libs/elFinder/php/elFinder.class.php +++ b/libs/elFinder/php/elFinder.class.php @@ -11,7 +11,6 @@ **/ class elFinder { - /** * API version number * @@ -32,7 +31,7 @@ class elFinder * * @var integer */ - protected static $ApiRevision = 65; + protected static $ApiRevision = 66; /** * Storages (root dirs) @@ -421,9 +420,9 @@ class elFinder /** * LAN class allowed when uploading via URL - * + * * Array keys are 'local', 'private_a', 'private_b', 'private_c' and 'link' - * + * * local: 127.0.0.0/8 * private_a: 10.0.0.0/8 * private_b: 172.16.0.0/12 @@ -480,72 +479,72 @@ class elFinder private static $seekableUrlFps = array(); // Errors messages - const ERROR_ACCESS_DENIED = 'errAccess'; - const ERROR_ARC_MAXSIZE = 'errArcMaxSize'; - const ERROR_ARC_SYMLINKS = 'errArcSymlinks'; - const ERROR_ARCHIVE = 'errArchive'; - const ERROR_ARCHIVE_EXEC = 'errArchiveExec'; - const ERROR_ARCHIVE_TYPE = 'errArcType'; - const ERROR_CONF = 'errConf'; - const ERROR_CONF_NO_JSON = 'errJSON'; - const ERROR_CONF_NO_VOL = 'errNoVolumes'; - const ERROR_CONV_UTF8 = 'errConvUTF8'; - const ERROR_COPY = 'errCopy'; - const ERROR_COPY_FROM = 'errCopyFrom'; - const ERROR_COPY_ITSELF = 'errCopyInItself'; - const ERROR_COPY_TO = 'errCopyTo'; - const ERROR_CREATING_TEMP_DIR = 'errCreatingTempDir'; - const ERROR_DIR_NOT_FOUND = 'errFolderNotFound'; - const ERROR_EXISTS = 'errExists'; // 'File named "$1" already exists.' - const ERROR_EXTRACT = 'errExtract'; - const ERROR_EXTRACT_EXEC = 'errExtractExec'; - const ERROR_FILE_NOT_FOUND = 'errFileNotFound'; // 'File not found.' - const ERROR_FTP_DOWNLOAD_FILE = 'errFtpDownloadFile'; - const ERROR_FTP_MKDIR = 'errFtpMkdir'; - const ERROR_FTP_UPLOAD_FILE = 'errFtpUploadFile'; - const ERROR_INV_PARAMS = 'errCmdParams'; - const ERROR_INVALID_DIRNAME = 'errInvDirname'; // 'Invalid folder name.' - const ERROR_INVALID_NAME = 'errInvName'; // 'Invalid file name.' - const ERROR_LOCKED = 'errLocked'; // '"$1" is locked and can not be renamed, moved or removed.' - const ERROR_MAX_TARGTES = 'errMaxTargets'; // 'Max number of selectable items is $1.' - const ERROR_MKDIR = 'errMkdir'; - const ERROR_MKFILE = 'errMkfile'; - const ERROR_MKOUTLINK = 'errMkOutLink'; // 'Unable to create a link to outside the volume root.' - const ERROR_MOVE = 'errMove'; - const ERROR_NETMOUNT = 'errNetMount'; - const ERROR_NETMOUNT_FAILED = 'errNetMountFailed'; - const ERROR_NETMOUNT_NO_DRIVER = 'errNetMountNoDriver'; - const ERROR_NETUNMOUNT = 'errNetUnMount'; - const ERROR_NOT_ARCHIVE = 'errNoArchive'; - const ERROR_NOT_DIR = 'errNotFolder'; - const ERROR_NOT_FILE = 'errNotFile'; - const ERROR_NOT_REPLACE = 'errNotReplace'; // Object "$1" already exists at this location and can not be replaced with object of another type. - const ERROR_NOT_UTF8_CONTENT = 'errNotUTF8Content'; - const ERROR_OPEN = 'errOpen'; - const ERROR_PERM_DENIED = 'errPerm'; - const ERROR_REAUTH_REQUIRE = 'errReauthRequire'; // 'Re-authorization is required.' - const ERROR_RENAME = 'errRename'; - const ERROR_REPLACE = 'errReplace'; // 'Unable to replace "$1".' - const ERROR_RESIZE = 'errResize'; - const ERROR_RESIZESIZE = 'errResizeSize'; - const ERROR_RM = 'errRm'; // 'Unable to remove "$1".' - const ERROR_RM_SRC = 'errRmSrc'; // 'Unable remove source file(s)' - const ERROR_SAVE = 'errSave'; - const ERROR_SEARCH_TIMEOUT = 'errSearchTimeout'; // 'Timed out while searching "$1". Search result is partial.' - const ERROR_SESSION_EXPIRES = 'errSessionExpires'; - const ERROR_TRGDIR_NOT_FOUND = 'errTrgFolderNotFound'; // 'Target folder "$1" not found.' - const ERROR_UNKNOWN = 'errUnknown'; - const ERROR_UNKNOWN_CMD = 'errUnknownCmd'; - const ERROR_UNSUPPORT_TYPE = 'errUsupportType'; - const ERROR_UPLOAD = 'errUpload'; // 'Upload error.' - const ERROR_UPLOAD_FILE = 'errUploadFile'; // 'Unable to upload "$1".' - const ERROR_UPLOAD_FILE_MIME = 'errUploadMime'; // 'File type not allowed.' - const ERROR_UPLOAD_FILE_SIZE = 'errUploadFileSize'; // 'File exceeds maximum allowed size.' - const ERROR_UPLOAD_NO_FILES = 'errUploadNoFiles'; // 'No files found for upload.' - const ERROR_UPLOAD_TEMP = 'errUploadTemp'; // 'Unable to make temporary file for upload.' - const ERROR_UPLOAD_TOTAL_SIZE = 'errUploadTotalSize'; // 'Data exceeds the maximum allowed size.' - const ERROR_UPLOAD_TRANSFER = 'errUploadTransfer'; // '"$1" transfer error.' - const ERROR_MAX_MKDIRS = 'errMaxMkdirs'; // 'You can create up to $1 folders at one time.' + public const ERROR_ACCESS_DENIED = 'errAccess'; + public const ERROR_ARC_MAXSIZE = 'errArcMaxSize'; + public const ERROR_ARC_SYMLINKS = 'errArcSymlinks'; + public const ERROR_ARCHIVE = 'errArchive'; + public const ERROR_ARCHIVE_EXEC = 'errArchiveExec'; + public const ERROR_ARCHIVE_TYPE = 'errArcType'; + public const ERROR_CONF = 'errConf'; + public const ERROR_CONF_NO_JSON = 'errJSON'; + public const ERROR_CONF_NO_VOL = 'errNoVolumes'; + public const ERROR_CONV_UTF8 = 'errConvUTF8'; + public const ERROR_COPY = 'errCopy'; + public const ERROR_COPY_FROM = 'errCopyFrom'; + public const ERROR_COPY_ITSELF = 'errCopyInItself'; + public const ERROR_COPY_TO = 'errCopyTo'; + public const ERROR_CREATING_TEMP_DIR = 'errCreatingTempDir'; + public const ERROR_DIR_NOT_FOUND = 'errFolderNotFound'; + public const ERROR_EXISTS = 'errExists'; // 'File named "$1" already exists.' + public const ERROR_EXTRACT = 'errExtract'; + public const ERROR_EXTRACT_EXEC = 'errExtractExec'; + public const ERROR_FILE_NOT_FOUND = 'errFileNotFound'; // 'File not found.' + public const ERROR_FTP_DOWNLOAD_FILE = 'errFtpDownloadFile'; + public const ERROR_FTP_MKDIR = 'errFtpMkdir'; + public const ERROR_FTP_UPLOAD_FILE = 'errFtpUploadFile'; + public const ERROR_INV_PARAMS = 'errCmdParams'; + public const ERROR_INVALID_DIRNAME = 'errInvDirname'; // 'Invalid folder name.' + public const ERROR_INVALID_NAME = 'errInvName'; // 'Invalid file name.' + public const ERROR_LOCKED = 'errLocked'; // '"$1" is locked and can not be renamed, moved or removed.' + public const ERROR_MAX_TARGTES = 'errMaxTargets'; // 'Max number of selectable items is $1.' + public const ERROR_MKDIR = 'errMkdir'; + public const ERROR_MKFILE = 'errMkfile'; + public const ERROR_MKOUTLINK = 'errMkOutLink'; // 'Unable to create a link to outside the volume root.' + public const ERROR_MOVE = 'errMove'; + public const ERROR_NETMOUNT = 'errNetMount'; + public const ERROR_NETMOUNT_FAILED = 'errNetMountFailed'; + public const ERROR_NETMOUNT_NO_DRIVER = 'errNetMountNoDriver'; + public const ERROR_NETUNMOUNT = 'errNetUnMount'; + public const ERROR_NOT_ARCHIVE = 'errNoArchive'; + public const ERROR_NOT_DIR = 'errNotFolder'; + public const ERROR_NOT_FILE = 'errNotFile'; + public const ERROR_NOT_REPLACE = 'errNotReplace'; // Object "$1" already exists at this location and can not be replaced with object of another type. + public const ERROR_NOT_UTF8_CONTENT = 'errNotUTF8Content'; + public const ERROR_OPEN = 'errOpen'; + public const ERROR_PERM_DENIED = 'errPerm'; + public const ERROR_REAUTH_REQUIRE = 'errReauthRequire'; // 'Re-authorization is required.' + public const ERROR_RENAME = 'errRename'; + public const ERROR_REPLACE = 'errReplace'; // 'Unable to replace "$1".' + public const ERROR_RESIZE = 'errResize'; + public const ERROR_RESIZESIZE = 'errResizeSize'; + public const ERROR_RM = 'errRm'; // 'Unable to remove "$1".' + public const ERROR_RM_SRC = 'errRmSrc'; // 'Unable remove source file(s)' + public const ERROR_SAVE = 'errSave'; + public const ERROR_SEARCH_TIMEOUT = 'errSearchTimeout'; // 'Timed out while searching "$1". Search result is partial.' + public const ERROR_SESSION_EXPIRES = 'errSessionExpires'; + public const ERROR_TRGDIR_NOT_FOUND = 'errTrgFolderNotFound'; // 'Target folder "$1" not found.' + public const ERROR_UNKNOWN = 'errUnknown'; + public const ERROR_UNKNOWN_CMD = 'errUnknownCmd'; + public const ERROR_UNSUPPORT_TYPE = 'errUsupportType'; + public const ERROR_UPLOAD = 'errUpload'; // 'Upload error.' + public const ERROR_UPLOAD_FILE = 'errUploadFile'; // 'Unable to upload "$1".' + public const ERROR_UPLOAD_FILE_MIME = 'errUploadMime'; // 'File type not allowed.' + public const ERROR_UPLOAD_FILE_SIZE = 'errUploadFileSize'; // 'File exceeds maximum allowed size.' + public const ERROR_UPLOAD_NO_FILES = 'errUploadNoFiles'; // 'No files found for upload.' + public const ERROR_UPLOAD_TEMP = 'errUploadTemp'; // 'Unable to make temporary file for upload.' + public const ERROR_UPLOAD_TOTAL_SIZE = 'errUploadTotalSize'; // 'Data exceeds the maximum allowed size.' + public const ERROR_UPLOAD_TRANSFER = 'errUploadTransfer'; // '"$1" transfer error.' + public const ERROR_MAX_MKDIRS = 'errMaxMkdirs'; // 'You can create up to $1 folders at one time.' /** * Constructor @@ -610,12 +609,18 @@ public function __construct($opts) if (defined('E_DEPRECATED')) { $errLevel |= E_DEPRECATED | E_USER_DEPRECATED; } + // E_STRICT is deprecated; see https://wiki.php.net/rfc/deprecations_php_8_4#remove_e_strict_error_level_and_deprecate_e_strict_constant + if (defined('E_STRICT')) { + $errLevel |= @E_STRICT; + } set_error_handler('elFinder::phpErrorHandler', $errLevel); // Associative array of file pointers to close at the end of script: ['temp file pointer' => true] $GLOBALS['elFinderTempFps'] = array(); // Associative array of files to delete at the end of script: ['temp file path' => true] $GLOBALS['elFinderTempFiles'] = array(); + // Associative array of abort files to delete at the end of script: ['temp file path' => true] + $GLOBALS['elFinderAbortFiles'] = array(); // regist Shutdown function register_shutdown_function(array('elFinder', 'onShutdown')); @@ -1019,7 +1024,7 @@ public function trigger($cmd, $vars, &$errors) foreach ($this->listeners[$cmd] as $handler) { $_res = call_user_func_array($handler, $vars); if ($_res && is_array($_res)) { - $_err = !empty($_res['error'])? $_res['error'] : (!empty($_res['warning'])? $_res['warning'] : null); + $_err = !empty($_res['error']) ? $_res['error'] : (!empty($_res['warning']) ? $_res['warning'] : null); if ($_err) { if (is_array($_err)) { $errors = array_merge($errors, $_err); @@ -1154,7 +1159,7 @@ public function exec($cmd, $args) $dst = !empty($args['target']) ? $args['target'] : (!empty($args['dst']) ? $args['dst'] : ''); if ($dst) { $dstVolume = $this->volume($dst); - } else if (isset($args['targets']) && is_array($args['targets']) && isset($args['targets'][0])) { + } elseif (isset($args['targets']) && is_array($args['targets']) && isset($args['targets'][0])) { $dst = $args['targets'][0]; $dstVolume = $this->volume($dst); if ($dstVolume && ($_stat = $dstVolume->file($dst)) && !empty($_stat['phash'])) { @@ -1162,7 +1167,7 @@ public function exec($cmd, $args) } else { $dst = ''; } - } else if ($cmd === 'open') { + } elseif ($cmd === 'open') { // for initial open without args `target` $dstVolume = $this->default; $dst = $dstVolume->defaultPath(); @@ -1289,7 +1294,7 @@ public function exec($cmd, $args) } // add toasts if ($this->toastMessages) { - $result['toasts'] = array_merge(((isset($result['toasts']) && is_array($result['toasts']))? $result['toasts'] : array()), $this->toastMessages); + $result['toasts'] = array_merge(((isset($result['toasts']) && is_array($result['toasts'])) ? $result['toasts'] : array()), $this->toastMessages); } if ($this->debug || !empty($args['debug'])) { @@ -1878,7 +1883,7 @@ protected function zipdl($args) $targets = $args['targets']; $download = !empty($args['download']); $h404 = 'HTTP/1.x 404 Not Found'; - $CriOS = isset($_SERVER['HTTP_USER_AGENT'])? (strpos($_SERVER['HTTP_USER_AGENT'], 'CriOS') !== false) : false; + $CriOS = isset($_SERVER['HTTP_USER_AGENT']) ? (strpos($_SERVER['HTTP_USER_AGENT'], 'CriOS') !== false) : false; if (!$download) { //1st: Return array contains download archive file info @@ -1897,7 +1902,7 @@ protected function zipdl($args) $this->session->set('zipdl' . $uniqid, basename($path)); $result = array( 'zipdl' => array( - 'file' => $CriOS? basename($path) : $uniqid, + 'file' => $CriOS ? basename($path) : $uniqid, 'name' => $name, 'mime' => $dlres['mime'] ) @@ -1914,13 +1919,13 @@ protected function zipdl($args) // It has access twice on downloading $CriOSinit = false; if ($CriOS) { - $accept = isset($_SERVER['HTTP_ACCEPT'])? $_SERVER['HTTP_ACCEPT'] : ''; + $accept = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : ''; if ($accept && $accept !== '*' && $accept !== '*/*') { $CriOSinit = true; } } // data check - if (count($targets) !== 4 || ($volume = $this->volume($targets[0])) == false || !($file = $CriOS? $targets[1] : $this->session->get('zipdl' . $targets[1]))) { + if (count($targets) !== 4 || ($volume = $this->volume($targets[0])) == false || !($file = $CriOS ? $targets[1] : $this->session->get('zipdl' . $targets[1]))) { return array('error' => 'File not found', 'header' => $h404, 'raw' => true); } $path = $volume->getTempPath() . DIRECTORY_SEPARATOR . basename($file); @@ -1999,18 +2004,17 @@ protected function file($args) if ($onetime) { $volume = null; $tmpdir = elFinder::$commonTempPath; - if (!$tmpdir || !is_file($tmpf = $tmpdir . DIRECTORY_SEPARATOR . 'ELF' . $target)) { + if (!$tmpdir || !is_file($tmpf = $tmpdir . DIRECTORY_SEPARATOR . 'ELF' . basename($target))) { return $a404; } $GLOBALS['elFinderTempFiles'][$tmpf] = true; if ($file = json_decode(file_get_contents($tmpf), true)) { - $src = base64_decode($file['file']); + $src = $tmpdir . DIRECTORY_SEPARATOR . basename(base64_decode($file['file'])); if (!is_file($src) || !($fp = fopen($src, 'rb'))) { return $a404; } - if (strpos($src, $tmpdir) === 0) { - $GLOBALS['elFinderTempFiles'][$src] = true; - } + $GLOBALS['elFinderTempFiles'][$src] = true; + unset($file['file']); $file['read'] = true; $file['size'] = filesize($src); @@ -2071,7 +2075,7 @@ protected function file($args) if (strpos($filenameEncoded, '%') === false) { // ASCII only $filename = 'filename="' . $file['name'] . '"'; } else { - $ua = isset($_SERVER['HTTP_USER_AGENT'])? $_SERVER['HTTP_USER_AGENT'] : ''; + $ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; if (preg_match('/MSIE [4-8]/', $ua)) { // IE < 9 do not support RFC 6266 (RFC 2231/RFC 5987) $filename = 'filename="' . $filenameEncoded . '"'; } elseif (strpos($ua, 'Chrome') === false && strpos($ua, 'Safari') !== false && preg_match('#Version/[3-5]#', $ua)) { // Safari < 6 @@ -2178,7 +2182,7 @@ protected function size($args) $dirs += $sizeInfo['dirCnt']; } $sizes[$target] = $sizeInfo; - } else if (is_numeric($volRes)) { + } elseif (is_numeric($volRes)) { $size += $volRes; $files = $dirs = 'unknown'; $itemCount = false; @@ -2216,15 +2220,15 @@ protected function mkdir($args) $reset = null; $mkdirs = array(); foreach ($dirs as $dir) { - $tgt =& $mkdirs; + $tgt = & $mkdirs; $_names = explode('/', trim($dir, '/')); foreach ($_names as $_key => $_name) { if (!isset($tgt[$_name])) { $tgt[$_name] = array(); } - $tgt =& $tgt[$_name]; + $tgt = & $tgt[$_name]; } - $tgt =& $reset; + $tgt = & $reset; } $res = $this->ensureDirsRecursively($volume, $target, $mkdirs); $ret = array( @@ -2279,7 +2283,7 @@ protected function rename($args) $target = $args['target']; $name = $args['name']; $query = (!empty($args['q']) && strpos($args['q'], '*') !== false) ? $args['q'] : ''; - $targets = !empty($args['targets'])? $args['targets'] : false; + $targets = !empty($args['targets']) ? $args['targets'] : false; $rms = array(); $notfounds = array(); $locked = array(); @@ -2332,11 +2336,11 @@ protected function rename($args) if ($splits[1] && $splits[0] === '*') { $type = 'extention'; $name = $splits[1]; - } else if (strlen($splits[0]) > 1) { + } elseif (strlen($splits[0]) > 1) { if (substr($splits[0], -1) === '*') { $type = 'prefix'; $name = substr($splits[0], 0, strlen($splits[0]) - 1); - } else if (substr($splits[0], 0, 1) === '*') { + } elseif (substr($splits[0], 0, 1) === '*') { $type = 'suffix'; $name = substr($splits[0], 1); } @@ -2362,9 +2366,9 @@ protected function rename($args) if ($type === 'extention') { $splits = elFinder::splitFileExtention($rm['name']); $rname = $splits[0] . '.' . $name; - } else if ($type === 'prefix') { + } elseif ($type === 'prefix') { $rname = $name . $rm['name']; - } else if ($type === 'suffix') { + } elseif ($type === 'suffix') { $splits = elFinder::splitFileExtention($rm['name']); $rname = $splits[0] . $name . ($splits[1] ? ('.' . $splits[1]) : ''); } @@ -2564,7 +2568,7 @@ protected function abort($args = array()) if (!empty($args['makeFile'])) { self::$abortCheckFile = sprintf($flagFile, self::filenameDecontaminate($args['makeFile'])); touch(self::$abortCheckFile); - $GLOBALS['elFinderTempFiles'][self::$abortCheckFile] = true; + $GLOBALS['elFinderAbortFiles'][self::$abortCheckFile] = true; return; } @@ -2666,7 +2670,7 @@ protected function get_remote_contents(&$url, $timeout = 30, $redirect_max = 5, return false; } // dose not support 'user' and 'pass' for security reasons - $url = $info['scheme'].'://'.$info['host'].(!empty($info['port'])? (':'.$info['port']) : '').$info['path'].(!empty($info['query'])? ('?'.$info['query']) : '').(!empty($info['fragment'])? ('#'.$info['fragment']) : ''); + $url = $info['scheme'].'://'.$info['host'].(!empty($info['port']) ? (':'.$info['port']) : '').$info['path'].(!empty($info['query']) ? ('?'.$info['query']) : '').(!empty($info['fragment']) ? ('#'.$info['fragment']) : ''); // check by URL upload filter if ($this->urlUploadFilter && is_callable($this->urlUploadFilter)) { if (!call_user_func_array($this->urlUploadFilter, array($url, $this))) { @@ -2770,8 +2774,12 @@ protected function fsock_get_contents(&$url, $timeout, $redirect_max, $ua, $outf $query .= "Host: " . $arr['host'] . "\r\n"; $query .= "Accept: */*\r\n"; $query .= "Connection: close\r\n"; - if (!empty($ua)) $query .= "User-Agent: " . $ua . "\r\n"; - if (!is_null($getSize)) $query .= 'Range: bytes=0-' . ($getSize - 1) . "\r\n"; + if (!empty($ua)) { + $query .= "User-Agent: " . $ua . "\r\n"; + } + if (!is_null($getSize)) { + $query .= 'Range: bytes=0-' . ($getSize - 1) . "\r\n"; + } $query .= $headers; @@ -2785,8 +2793,13 @@ protected function fsock_get_contents(&$url, $timeout, $redirect_max, $ua, $outf $fp = fsockopen( $ssl . $arr['host'], $arr['port'], - $errno, $errstr, $connect_timeout); - if ($fp) break; + $errno, + $errstr, + $connect_timeout + ); + if ($fp) { + break; + } $connect_try_count++; if (connection_aborted()) { throw new elFinderAbortException(); @@ -2905,7 +2918,7 @@ protected function parse_data_scheme($str, $extTable, $args = null) $mime = $meta['mediatype']; } fclose($fp); - } else if (preg_match('~^data:(.+?/.+?)?(?:;charset=.+?)?;base64,~', substr($str, 0, 128), $m)) { + } elseif (preg_match('~^data:(.+?/.+?)?(?:;charset=.+?)?;base64,~', substr($str, 0, 128), $m)) { $data = base64_decode(substr($str, strlen($m[0]))); if ($m[1]) { $mime = $m[1]; @@ -3030,7 +3043,9 @@ private function getTempDir($volumeTempPath = null) } $tempDir = ''; foreach ($testDirs as $testDir) { - if (!$testDir || !is_dir($testDir)) continue; + if (!$testDir || !is_dir($testDir)) { + continue; + } if (is_writable($testDir)) { $tempDir = $testDir; $gc = time() - 3600; @@ -3333,7 +3348,7 @@ protected function upload($args) // to check connection is aborted try { elFinder::checkAborted(); - } catch(elFinderAbortException $e) { + } catch (elFinderAbortException $e) { fclose($fp); throw $e; } @@ -3352,7 +3367,7 @@ protected function upload($args) if ($m[1] && strtoupper($m[1]) !== 'UTF-8' && function_exists('mb_convert_encoding')) { $_name = mb_convert_encoding($_name, 'UTF-8', $m[1]); } - } else if (preg_match('/filename="?([ a-z0-9_.~%-]+)"?/i', $headers['Content-Disposition'], $m)) { + } elseif (preg_match('/filename="?([ a-z0-9_.~%-]+)"?/i', $headers['Content-Disposition'], $m)) { $_name = rawurldecode($m[1]); } } @@ -3427,7 +3442,7 @@ protected function upload($args) $result['error'] = $this->error(self::ERROR_UPLOAD_FILE, $m[1], $tmpname); $result['_chunkfailure'] = true; $this->uploadDebug = 'Upload error: ' . $tmpname; - } else if ($name) { + } elseif ($name) { $result['_chunkmerged'] = basename($tmpname); $result['_name'] = $name; $result['_mtime'] = $mtime; @@ -3473,10 +3488,12 @@ protected function upload($args) $fp = null; if (!is_file($tmpname) || ($fp = fopen($tmpname, 'rb')) === false) { - $errors = array_merge($errors, array(self::ERROR_UPLOAD_FILE, $name, ($fp === false? self::ERROR_UPLOAD_TEMP : self::ERROR_UPLOAD_TRANSFER))); + $errors = array_merge($errors, array(self::ERROR_UPLOAD_FILE, $name, ($fp === false ? self::ERROR_UPLOAD_TEMP : self::ERROR_UPLOAD_TRANSFER))); $this->uploadDebug = 'Upload error: unable open tmp file'; if (!is_uploaded_file($tmpname)) { - if (unlink($tmpname) && $tmpfname) unset($GLOBALS['elFinderTempFiles'][$tmpfname]); + if (unlink($tmpname) && $tmpfname) { + unset($GLOBALS['elFinderTempFiles'][$tmpfname]); + } continue; } break; @@ -3528,7 +3545,7 @@ protected function upload($args) } if (!$_target || ($file = $volume->upload($fp, $_target, $name, $tmpname, ($_target === $target) ? $hashes : array())) === false) { $errors = array_merge($errors, $this->error(self::ERROR_UPLOAD_FILE, $name, $volume->error())); - is_resource($fp) && fclose($fp); + fclose($fp); if (!is_uploaded_file($tmpname) && unlink($tmpname)) { unset($GLOBALS['elFinderTempFiles'][$tmpname]); } @@ -3708,7 +3725,7 @@ protected function get($args) } else { $enc = 'unknown'; } - } else if (!preg_match('//u', $content)) { + } elseif (!preg_match('//u', $content)) { $enc = 'unknown'; } if ($enc === 'unknown') { @@ -3749,7 +3766,7 @@ protected function get($args) if ($enc === 'unknown') { $content = false; } - } else if ($enc === 'unknown') { + } elseif ($enc === 'unknown') { return array('doconv' => $enc); } } @@ -3846,7 +3863,7 @@ protected function put($args) } $encoding = ''; $args['content'] = "\0" . $args['content']; - } else if ($encoding === 'hash') { + } elseif ($encoding === 'hash') { $_hash = $args['content']; if ($_src = $this->getVolume($_hash)) { if ($_file = $_src->file($_hash)) { @@ -4156,7 +4173,7 @@ protected function callback($args) } else { $trigger = $triggerdone = $triggerfail = ''; } - $origin = isset($_SERVER['HTTP_ORIGIN'])? str_replace('\'', '\\\'', $_SERVER['HTTP_ORIGIN']) : '*'; + $origin = isset($_SERVER['HTTP_ORIGIN']) ? str_replace('\'', '\\\'', $_SERVER['HTTP_ORIGIN']) : '*'; $script .= ' var go = function() { var w = window.opener || window.parent || window, @@ -4183,7 +4200,7 @@ protected function callback($args) } } catch(e) { // for CORS - w.postMessage && w.postMessage(JSON.stringify({bind:\'' . $bind . '\',data:' . $json . '}), \'' . $origin . '\'); + w.postMessage && w.postMessage(JSON.stringify({type:\'io.studio-42.github\',bind:\'' . $bind . '\',data:' . $json . '}), \'' . $origin . '\'); } close(); setTimeout(function() { @@ -4268,7 +4285,7 @@ public static function phpErrorHandler($errno, $errstr, $errfile, $errline) // Do not report real path if (strpos($errfile, $base) === 0) { $errfile = str_replace($base, '', $errfile); - } else if ($pos = strrpos($errfile, '/vendor/')) { + } elseif ($pos = strrpos($errfile, '/vendor/')) { $errfile = substr($errfile, $pos + 1); } else { $errfile = basename($errfile); @@ -4287,17 +4304,18 @@ public static function phpErrorHandler($errno, $errstr, $errfile, $errline) $proc = true; break; - case E_STRICT: - elFinder::$phpErrors[] = "STRICT: $errstr in $errfile line $errline."; - $proc = true; - break; - case E_RECOVERABLE_ERROR: elFinder::$phpErrors[] = "RECOVERABLE_ERROR: $errstr in $errfile line $errline."; $proc = true; break; } + // E_STRICT is deprecated; see https://wiki.php.net/rfc/deprecations_php_8_4#remove_e_strict_error_level_and_deprecate_e_strict_constant + if (defined('E_STRICT') && $errno === @E_STRICT) { + elFinder::$phpErrors[] = "STRICT: $errstr in $errfile line $errline."; + $proc = true; + } + if (defined('E_DEPRECATED')) { switch ($errno) { case E_DEPRECATED: @@ -4388,7 +4406,7 @@ protected function filter($files) protected function utime() { $time = explode(" ", microtime()); - return (double)$time[1] + (double)$time[0]; + return (float)$time[1] + (float)$time[0]; } /** @@ -4467,7 +4485,7 @@ protected function itemLock($hashes, $autoUnlock = true) foreach ($hashes as $hash) { $lock = elFinder::$commonTempPath . DIRECTORY_SEPARATOR . self::filenameDecontaminate($hash) . '.lock'; if ($this->itemLocked($hash)) { - $cnt = (int) file_get_contents($lock) + 1; + $cnt = file_get_contents($lock) + 1; } else { $cnt = 1; } @@ -4492,7 +4510,7 @@ protected function itemUnlock($hash) return true; } $lock = elFinder::$commonTempPath . DIRECTORY_SEPARATOR . $hash . '.lock'; - $cnt = (int)file_get_contents($lock); + $cnt = file_get_contents($lock); if (--$cnt < 1) { unlink($lock); return true; @@ -4892,18 +4910,25 @@ public static function getIniBytes($iniName = '', $val = '') switch ($last) { case 'y': $val = elFinder::xKilobyte($val); + // no break case 'z': $val = elFinder::xKilobyte($val); + // no break case 'e': $val = elFinder::xKilobyte($val); + // no break case 'p': $val = elFinder::xKilobyte($val); + // no break case 't': $val = elFinder::xKilobyte($val); + // no break case 'g': $val = elFinder::xKilobyte($val); + // no break case 'm': $val = elFinder::xKilobyte($val); + // no break case 'k': $val = elFinder::xKilobyte($val); } @@ -5225,7 +5250,7 @@ public static function filenameDecontaminate($name) $name = str_replace('\\', '/', $name); } $parts = explode('/', trim($name, '/')); - $name = array_pop($parts); + $name = array_pop($parts); return $name; } @@ -5291,14 +5316,14 @@ public static function procExec($command, &$output = '', &$return_var = -1, &$er if ($ret === false) { // error break; - } else if ($ret === 0) { + } elseif ($ret === 0) { // timeout continue; } else { foreach ($read as $sock) { if ($sock === $pipes[1]) { $tmpout .= fread($sock, 4096); - } else if ($sock === $pipes[2]) { + } elseif ($sock === $pipes[2]) { $tmperr .= fread($sock, 4096); } } @@ -5372,11 +5397,26 @@ public static function onShutdown() is_resource($fp) && fclose($fp); } } + //Delete temp file paths if (!empty($GLOBALS['elFinderTempFiles'])) { foreach (array_keys($GLOBALS['elFinderTempFiles']) as $f) { - is_file($f) && is_writable($f) && unlink($f); + //Make sure paths are safe before deleting them + $tf = elFinder::$commonTempPath . DIRECTORY_SEPARATOR . basename($f); + is_file($tf) && is_writable($tf) && unlink($tf); + } + unset($f); + } + + //Delete abort file paths + if (!empty($GLOBALS['elFinderAbortFiles'])) { + foreach (array_keys($GLOBALS['elFinderAbortFiles']) as $f) { + //Make sure paths are safe before deleting them + $tf = elFinder::$connectionFlagsPath . DIRECTORY_SEPARATOR . basename($f); + is_file($tf) && is_writable($tf) && unlink($tf); } + unset($f); } + } /** diff --git a/libs/elFinder/php/elFinderVolumeDriver.class.php b/libs/elFinder/php/elFinderVolumeDriver.class.php index 0cc051c..7df8d25 100644 --- a/libs/elFinder/php/elFinderVolumeDriver.class.php +++ b/libs/elFinder/php/elFinderVolumeDriver.class.php @@ -3331,7 +3331,7 @@ public function getContentUrl($hash, $options = array()) } } if (empty($file['url']) && $this->URL) { - $path = str_replace($this->separator, '/', substr($this->decode($hash), strlen(rtrim($this->root, '/' . $this->separator)) + 1)); + $path = str_replace($this->separator, '/', substr($this->decode($hash), strlen(trim($this->root, '/' . $this->separator)))); if ($this->encoding) { $path = $this->convEncIn($path, true); } @@ -3462,9 +3462,8 @@ public function getTempPath() $tempPath = elFinder::getStaticVar('commonTempPath'); } else if (function_exists('sys_get_temp_dir')) { $tempPath = sys_get_temp_dir(); - } else if ($this->tmbPathWritable) { - $tempPath = $this->tmbPath; } + if ($tempPath && DIRECTORY_SEPARATOR !== '/') { $tempPath = str_replace('/', DIRECTORY_SEPARATOR, $tempPath); } @@ -3908,7 +3907,7 @@ protected function symlinkCE($source, $targetDir, $name) **/ protected function encode($path) { - if (!is_null($path) && $path !== '') { + if ($path !== '') { // cut ROOT from $path for security reason, even if hacker decodes the path he will not know the root $p = $this->relpathCE($path); @@ -3944,7 +3943,7 @@ protected function encode($path) **/ protected function decode($hash) { - if ($hash && strpos($hash, $this->id) === 0) { + if (strpos($hash, $this->id) === 0) { // cut volume id after it was prepended in encode $h = substr($hash, strlen($this->id)); // replace HTML safe base64 to normal @@ -5329,7 +5328,15 @@ protected function move($src, $dst, $name) $this->rmTmb($stat); // can not do rmTmb() after _move() $this->clearcache(); - if ($res = $this->convEncOut($this->_move($this->convEncIn($src), $this->convEncIn($dst), $this->convEncIn($name)))) { + $res = $this->convEncOut($this->_move($this->convEncIn($src), $this->convEncIn($dst), $this->convEncIn($name))); + // if moving it didn't work try to copy / delete + if (!$res) { + if ($this->copy($src, $dst, $name)) { + $res = $this->remove($src); + } + } + + if ($res) { $this->clearstatcache(); if ($stat['mime'] === 'directory') { $this->updateSubdirsCache($dst, true); diff --git a/libs/elFinder/php/elFinderVolumeDropbox2.class.php b/libs/elFinder/php/elFinderVolumeDropbox2.class.php index f235517..f00d79c 100644 --- a/libs/elFinder/php/elFinderVolumeDropbox2.class.php +++ b/libs/elFinder/php/elFinderVolumeDropbox2.class.php @@ -363,7 +363,7 @@ public function netmountPrepare($options) if ($code && $state) { if (!empty($options['id'])) { // see https://github.com/kunalvarma05/dropbox-php-sdk/issues/115 - $authHelper->getPersistentDataStore()->set('state', filter_var($state, FILTER_SANITIZE_STRING)); + $authHelper->getPersistentDataStore()->set('state', htmlspecialchars($state)); $tokenObj = $authHelper->getAccessToken($code, $state, $callback); $options['tokens'] = [ 'access_token' => $tokenObj->getToken(), diff --git a/libs/elFinder/php/elFinderVolumeLocalFileSystem.class.php b/libs/elFinder/php/elFinderVolumeLocalFileSystem.class.php index 5df892f..5689db5 100644 --- a/libs/elFinder/php/elFinderVolumeLocalFileSystem.class.php +++ b/libs/elFinder/php/elFinderVolumeLocalFileSystem.class.php @@ -467,7 +467,7 @@ protected function _relpath($path) if ($path === $this->root) { return ''; } else { - if ($path && strpos($path, $this->root) === 0) { + if (strpos($path, $this->root) === 0) { return ltrim(substr($path, strlen($this->root)), DIRECTORY_SEPARATOR); } else { // for link diff --git a/libs/elFinder/php/elFinderVolumeOneDrive.class.php b/libs/elFinder/php/elFinderVolumeOneDrive.class.php index 82df3f9..6edbbf0 100644 --- a/libs/elFinder/php/elFinderVolumeOneDrive.class.php +++ b/libs/elFinder/php/elFinderVolumeOneDrive.class.php @@ -1357,8 +1357,9 @@ public function getContentUrl($hash, $options = array()) if ($result) { $result = json_decode($result); if (isset($result->link)) { - list(, $res) = explode('?', $result->link->webUrl); - $res = 'https://onedrive.live.com/download.aspx?' . $res; + // list(, $res) = explode('?', $result->link->webUrl); + // $res = 'https://onedrive.live.com/download.aspx?' . $res; + $res = $result->link->webUrl; } } } catch (Exception $e) { diff --git a/libs/elFinder/php/elFinderVolumeSFTPphpseclib.class.php b/libs/elFinder/php/elFinderVolumeSFTPphpseclib.class.php index 63e1dfc..6db4c5b 100644 --- a/libs/elFinder/php/elFinderVolumeSFTPphpseclib.class.php +++ b/libs/elFinder/php/elFinderVolumeSFTPphpseclib.class.php @@ -7,7 +7,13 @@ * @author Cem (discofever), sitecode * @reference http://phpseclib.sourceforge.net/sftp/2.0/examples.html **/ -class elFinderVolumeSFTPphpseclib extends elFinderVolumeFTP { +class elFinderVolumeSFTPphpseclib extends elFinderVolumeFTP +{ + /** + * Simple hack that could break for quick compatibility with phpseclib version 1-3 + * Same value substitue for reference NET_SFTP_LOCAL_FILE and SFTP::SOURCE_LOCAL_FILE + */ + public const NET_SFTP_LOCAL_FILE = 1; /** * Constructor @@ -123,7 +129,7 @@ protected function init() $this->options['syncChkAsTs'] = true; } - return $this->needOnline? $this->connect() : true; + return $this->needOnline ? $this->connect() : true; } @@ -170,7 +176,7 @@ protected function connect() return true; } - try{ + try { $host = $this->options['host'] . ($this->options['port'] != 22 ? ':' . $this->options['port'] : ''); $this->connect = new Net_SFTP($host); //TODO check fingerprint before login, fail if no match to last time @@ -237,6 +243,10 @@ protected function parseRaw($info, $base, $nameOnly = false) } $name = $info['filename']; + //for compatability with phpseclib version 2/3 + if (empty($info['permissions'])) { + $info['permissions'] = $info['mode']; + } if ($info['type'] === 3) { // check recursive processing @@ -307,7 +317,7 @@ protected function parseRaw($info, $base, $nameOnly = false) protected function parsePermissions($permissions, $isowner = true) { $permissions = decoct($permissions); - $perm = $isowner ? decbin($permissions[-3]) : decbin($permissions[-1]); + $perm = $isowner ? decbin((int)$permissions[-3]) : decbin((int)$permissions[-1]); return array( 'read' => $perm[-3], @@ -608,17 +618,17 @@ protected function _mkfile($path, $name) { $path = $this->_joinPath($path, $this->_basename($name)); return $this->connect->put($path, '') ? $path : false; -/* - if ($this->tmp) { - $path = $this->_joinPath($path, $name); - $local = $this->getTempFile(); - $res = touch($local) && $this->connect->put($path, $local, NET_SFTP_LOCAL_FILE); - unlink($local); - return $res ? $path : false; - } + /* + if ($this->tmp) { + $path = $this->_joinPath($path, $name); + $local = $this->getTempFile(); + $res = touch($local) && $this->connect->put($path, $local, self::NET_SFTP_LOCAL_FILE); + unlink($local); + return $res ? $path : false; + } - return false; - */ + return false; + */ } /** @@ -640,7 +650,7 @@ protected function _copy($source, $targetDir, $name) $local = $this->getTempFile(); if ($this->connect->get($source, $local) - && $this->connect->put($target, $local, NET_SFTP_LOCAL_FILE)) { + && $this->connect->put($target, $local, self::NET_SFTP_LOCAL_FILE)) { $res = true; } unlink($local); diff --git a/submodule/sources/elFinder b/submodule/sources/elFinder index 79ff606..61000a8 160000 --- a/submodule/sources/elFinder +++ b/submodule/sources/elFinder @@ -1 +1 @@ -Subproject commit 79ff6061992783fbdb4e5f7cc3391eb25538350b +Subproject commit 61000a8349d319027ab22d81498fcc69833869b3 diff --git a/tools/build_elfinder.sh b/tools/build_elfinder.sh index 2139446..ff0e1a2 100755 --- a/tools/build_elfinder.sh +++ b/tools/build_elfinder.sh @@ -1,6 +1,11 @@ #!/bin/bash +base_path=$(cd "$(dirname "$(dirname "$0")")" && pwd) +echo "Building elFinder from submodule."; +echo "Base path: ${base_path}"; cd submodule/sources/elFinder || exit; echo "Building elFinder from submodule."; -npm i; -npm run plugin-build; -cd ../../.. || exit; +pnpm i; +rm -rf build; +pnpm build; +cp -r build/* "${base_path}/libs/elFinder/"; +cd $base_path || exit; From a6c9f0eed80462aa3da5900a70102c161b14d516 Mon Sep 17 00:00:00 2001 From: anisurov Date: Fri, 20 Feb 2026 08:11:47 +0600 Subject: [PATCH 02/13] Chore: plugin check gh action --- .distignore | 6 +- .github/workflows/plugin-check.yml | 89 ++++ backend/app/Providers/FileEditValidator.php | 39 +- backend/functions/common.php | 4 + backend/functions/global.php | 2 +- backend/hooks/ajax.php | 6 +- backend/hooks/api.php | 8 +- composer.lock | 514 +++++--------------- file-manager.php | 2 +- 9 files changed, 227 insertions(+), 443 deletions(-) create mode 100644 .github/workflows/plugin-check.yml diff --git a/.distignore b/.distignore index 2e2ff3e..180461e 100755 --- a/.distignore +++ b/.distignore @@ -31,4 +31,8 @@ tsconfig.json tsconfig.node.json vite.config.mts .vscode -vendor/typisttech \ No newline at end of file +vendor/typisttech +libs/elFinder/php/.tmp/.htaccess +libs/elFinder/files/.trash/.gitignore +libs/elFinder/files/.gitignore +.github \ No newline at end of file diff --git a/.github/workflows/plugin-check.yml b/.github/workflows/plugin-check.yml new file mode 100644 index 0000000..4a640f6 --- /dev/null +++ b/.github/workflows/plugin-check.yml @@ -0,0 +1,89 @@ +name: WordPress Plugin Check + +on: + push: + branches: + - main + pull_request: + branches: + - main + +env: + PLUGIN_SLUG: file-manager + +jobs: + plugin-check: + name: Plugin Check + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + coverage: none + tools: composer:v2, wp-cli + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + run_install: false + + - name: Get pnpm store directory + id: pnpm-cache + shell: bash + run: | + echo "dir=$(pnpm store path --silent)" >> $GITHUB_OUTPUT + + - name: Get composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: Setup package cache + uses: actions/cache@v4 + with: + path: | + ${{ steps.pnpm-cache.outputs.dir }} + ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-plugin-check-${{ hashFiles('**/pnpm-lock.yaml', '**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-plugin-check- + + - name: Build plugin + run: | + pnpm production + pnpm build:copy + + - name: WordPress Plugin Check + uses: wordpress/plugin-check-action@v1 + with: + build-dir: './build/${{ env.PLUGIN_SLUG }}' + exclude-directories: | + vendor + node_modules + categories: | + general + security + performance + accessibility + plugin_repo + checks: | + i18n_usage + late_escaping + plugin_readme + file_type + performant_wp_query_params + plugin_updater + enqueued_scripts_size + plugin_review_phpcs + trademarks diff --git a/backend/app/Providers/FileEditValidator.php b/backend/app/Providers/FileEditValidator.php index 83e7572..0774be1 100644 --- a/backend/app/Providers/FileEditValidator.php +++ b/backend/app/Providers/FileEditValidator.php @@ -5,6 +5,7 @@ use BitApps\FM\Exception\PreCommandException; use BitApps\FM\Plugin; use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; +use ParseError; \defined('ABSPATH') or exit(); class FileEditValidator @@ -39,40 +40,12 @@ public function checkSyntax($content, $fileName) || (\defined('BFM_DISABLE_SYNTAX_CHECK') && BFM_DISABLE_SYNTAX_CHECK) ) { return; - } elseif (!\function_exists('exec')) { - $error = __('exec() is required for php syntax check'); - } else { - $fp = tmpfile(); - $metaData = stream_get_meta_data($fp); - $tempFilePath = $metaData['uri']; - fwrite($fp, $content); - exec('php -l ' . escapeshellarg($tempFilePath), $output, $return); - fclose($fp); - - $errorMessages = []; - - foreach ($output as $result) { - if ( - strpos($result, 'No syntax errors detected') !== false - || $result == '' - ) { - continue; - } - - if (strpos($result, 'Errors parsing') !== false) { - $error = wp_sprintf( - // translators: 1: Temporary file path - __('Errors parsing the file [ %s ] as php script', 'file-manager'), - $fileName - ); - } else { - $errorMessages[] = $result; - } - } + } - if ($return !== 0 && !empty($errorMessages)) { - $error = !\is_string($errorMessages[0]) ? json_encode($errorMessages[0]) : $errorMessages[0]; - } + try { + token_get_all($content); + } catch (ParseError $e) { + $error = 'Syntax error in file: ' . $fileName . '. Error: ' . $e->getMessage(); } if (!empty($error)) { diff --git a/backend/functions/common.php b/backend/functions/common.php index 0476973..3c2b691 100644 --- a/backend/functions/common.php +++ b/backend/functions/common.php @@ -2,6 +2,10 @@ namespace BitApps\FM\Functions; +if (! \defined('ABSPATH')) { + exit; +} + use BitApps\FM\Plugin; function view($path) diff --git a/backend/functions/global.php b/backend/functions/global.php index e5f6a27..d654d9a 100755 --- a/backend/functions/global.php +++ b/backend/functions/global.php @@ -1,4 +1,5 @@ middleware('nonce:admin'); diff --git a/backend/hooks/api.php b/backend/hooks/api.php index 96fde6f..cf29188 100644 --- a/backend/hooks/api.php +++ b/backend/hooks/api.php @@ -1,15 +1,15 @@ =5.3.0", "react/event-loop": "^1.2", "react/stream": "^1.4" - "react/stream": "^1.4" }, "require-dev": { - "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", - "react/socket": "^1.16", "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", "react/socket": "^1.16", "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0" @@ -1497,7 +1439,6 @@ "autoload": { "psr-4": { "React\\ChildProcess\\": "src/" - "React\\ChildProcess\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1534,17 +1475,15 @@ ], "support": { "issues": "https://github.com/reactphp/child-process/issues", - "source": "https://github.com/reactphp/child-process/tree/v0.6.6" + "source": "https://github.com/reactphp/child-process/tree/v0.6.7" }, "funding": [ { "url": "https://opencollective.com/reactphp", "type": "open_collective" - "url": "https://opencollective.com/reactphp", - "type": "open_collective" } ], - "time": "2025-01-01T16:37:48+00:00" + "time": "2025-12-23T15:25:20+00:00" }, { "name": "react/dns", @@ -1697,26 +1636,21 @@ { "name": "react/promise", "version": "v3.3.0", - "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", "reference": "23444f53a813a3296c1368bb104793ce8d88f04a" - "reference": "23444f53a813a3296c1368bb104793ce8d88f04a" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a", "reference": "23444f53a813a3296c1368bb104793ce8d88f04a", - "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a", - "reference": "23444f53a813a3296c1368bb104793ce8d88f04a", "shasum": "" }, "require": { "php": ">=7.1.0" }, "require-dev": { - "phpstan/phpstan": "1.12.28 || 1.4.10", "phpstan/phpstan": "1.12.28 || 1.4.10", "phpunit/phpunit": "^9.6 || ^7.5" }, @@ -1763,7 +1697,6 @@ "support": { "issues": "https://github.com/reactphp/promise/issues", "source": "https://github.com/reactphp/promise/tree/v3.3.0" - "source": "https://github.com/reactphp/promise/tree/v3.3.0" }, "funding": [ { @@ -1772,7 +1705,6 @@ } ], "time": "2025-08-19T18:57:03+00:00" - "time": "2025-08-19T18:57:03+00:00" }, { "name": "react/socket", @@ -1934,29 +1866,29 @@ }, { "name": "sebastian/diff", - "version": "7.0.0", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7ab1ea946c012266ca32390913653d844ecd085f" + "reference": "a2b6d09d7729ee87d605a439469f9dcc39be5ea3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", - "reference": "7ab1ea946c012266ca32390913653d844ecd085f", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/a2b6d09d7729ee87d605a439469f9dcc39be5ea3", + "reference": "a2b6d09d7729ee87d605a439469f9dcc39be5ea3", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.0", + "phpunit/phpunit": "^13.0", "symfony/process": "^7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -1989,7 +1921,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" + "source": "https://github.com/sebastianbergmann/diff/tree/8.0.0" }, "funding": [ { @@ -2009,39 +1941,31 @@ "type": "tidelift" } ], - "time": "2025-02-07T04:55:46+00:00" + "time": "2026-02-06T04:42:27+00:00" }, { "name": "sirbrillig/phpcs-variable-analysis", "version": "v2.13.0", - "version": "v2.13.0", "source": { "type": "git", "url": "https://github.com/sirbrillig/phpcs-variable-analysis.git", "reference": "a15e970b8a0bf64cfa5e86d941f5e6b08855f369" - "reference": "a15e970b8a0bf64cfa5e86d941f5e6b08855f369" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/a15e970b8a0bf64cfa5e86d941f5e6b08855f369", "reference": "a15e970b8a0bf64cfa5e86d941f5e6b08855f369", - "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/a15e970b8a0bf64cfa5e86d941f5e6b08855f369", - "reference": "a15e970b8a0bf64cfa5e86d941f5e6b08855f369", "shasum": "" }, "require": { "php": ">=5.4.0", "squizlabs/php_codesniffer": "^3.5.7 || ^4.0.0" - "squizlabs/php_codesniffer": "^3.5.7 || ^4.0.0" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.0", "phpstan/phpstan": "^1.7 || ^2.0", "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.5 || ^7.0 || ^8.0 || ^9.0 || ^10.5.32 || ^11.3.3", "vimeo/psalm": "^0.2 || ^0.3 || ^1.1 || ^4.24 || ^5.0 || ^6.0 || ^7.0" - "phpstan/phpstan": "^1.7 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.5 || ^7.0 || ^8.0 || ^9.0 || ^10.5.32 || ^11.3.3", - "vimeo/psalm": "^0.2 || ^0.3 || ^1.1 || ^4.24 || ^5.0 || ^6.0 || ^7.0" }, "type": "phpcodesniffer-standard", "autoload": { @@ -2074,20 +1998,19 @@ "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" }, "time": "2025-09-30T22:22:48+00:00" - "time": "2025-09-30T22:22:48+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.13.4", + "version": "3.13.5", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119" + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ad545ea9c1b7d270ce0fc9cbfb884161cd706119", - "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4", + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4", "shasum": "" }, "require": { @@ -2148,44 +2071,32 @@ "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" }, - { - "url": "https://thanks.dev/u/gh/phpcsstandards", - "type": "thanks_dev" - }, { "url": "https://thanks.dev/u/gh/phpcsstandards", "type": "thanks_dev" } ], - "time": "2025-09-05T05:47:09+00:00" + "time": "2025-11-04T16:30:35+00:00" }, { "name": "symfony/console", - "version": "v7.3.5", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "cdb80fa5869653c83cfe1a9084a673b6daf57ea7" + "reference": "ace03c4cf9805080ff40cbeec69fca180c339a3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/cdb80fa5869653c83cfe1a9084a673b6daf57ea7", - "reference": "cdb80fa5869653c83cfe1a9084a673b6daf57ea7", + "url": "https://api.github.com/repos/symfony/console/zipball/ace03c4cf9805080ff40cbeec69fca180c339a3b", + "reference": "ace03c4cf9805080ff40cbeec69fca180c339a3b", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", + "php": ">=8.4", + "symfony/polyfill-mbstring": "^1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" + "symfony/string": "^7.4|^8.0" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" @@ -2235,7 +2146,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.3.5" + "source": "https://github.com/symfony/console/tree/v8.0.4" }, "funding": [ { @@ -2250,33 +2161,25 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-10-14T15:46:26+00:00" + "time": "2026-01-13T13:06:50+00:00" }, { "name": "symfony/deprecation-contracts", "version": "v3.6.0", - "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -2288,11 +2191,6 @@ "url": "https://github.com/symfony/contracts", "name": "symfony/contracts" }, - "branch-alias": { - "dev-main": "3.6-dev" - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, "branch-alias": { "dev-main": "3.6-dev" } @@ -2320,7 +2218,6 @@ "homepage": "https://symfony.com", "support": { "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -2337,20 +2234,19 @@ } ], "time": "2024-09-25T14:21:43+00:00" - "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.3.3", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" + "reference": "99301401da182b6cfaa4700dbe9987bb75474b47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/99301401da182b6cfaa4700dbe9987bb75474b47", + "reference": "99301401da182b6cfaa4700dbe9987bb75474b47", "shasum": "" }, "require": { @@ -2402,7 +2298,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.4" }, "funding": [ { @@ -2417,33 +2313,25 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-08-13T11:49:31+00:00" + "time": "2026-01-05T11:45:55+00:00" }, { "name": "symfony/event-dispatcher-contracts", "version": "v3.6.0", - "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", "reference": "59eb412e93815df44f05f342958efa9f46b1e586" - "reference": "59eb412e93815df44f05f342958efa9f46b1e586" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", "reference": "59eb412e93815df44f05f342958efa9f46b1e586", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", - "reference": "59eb412e93815df44f05f342958efa9f46b1e586", "shasum": "" }, "require": { @@ -2456,11 +2344,6 @@ "url": "https://github.com/symfony/contracts", "name": "symfony/contracts" }, - "branch-alias": { - "dev-main": "3.6-dev" - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, "branch-alias": { "dev-main": "3.6-dev" } @@ -2496,7 +2379,6 @@ ], "support": { "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" }, "funding": [ { @@ -2513,20 +2395,19 @@ } ], "time": "2024-09-25T14:21:43+00:00" - "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/filesystem", - "version": "v7.3.2", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd" + "reference": "d937d400b980523dc9ee946bb69972b5e619058d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/edcbb768a186b5c3f25d0643159a787d3e63b7fd", - "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d937d400b980523dc9ee946bb69972b5e619058d", + "reference": "d937d400b980523dc9ee946bb69972b5e619058d", "shasum": "" }, "require": { @@ -2563,7 +2444,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.3.2" + "source": "https://github.com/symfony/filesystem/tree/v8.0.1" }, "funding": [ { @@ -2578,29 +2459,25 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-07-07T08:17:47+00:00" + "time": "2025-12-01T09:13:36+00:00" }, { "name": "symfony/finder", - "version": "v7.3.5", + "version": "v8.0.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f" + "reference": "8bd576e97c67d45941365bf824e18dc8538e6eb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f", + "url": "https://api.github.com/repos/symfony/finder/zipball/8bd576e97c67d45941365bf824e18dc8538e6eb0", + "reference": "8bd576e97c67d45941365bf824e18dc8538e6eb0", "shasum": "" }, "require": { @@ -2635,7 +2512,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.3.5" + "source": "https://github.com/symfony/finder/tree/v8.0.5" }, "funding": [ { @@ -2650,29 +2527,25 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-10-15T18:45:57+00:00" + "time": "2026-01-26T15:08:38+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.3.3", + "version": "v8.0.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "0ff2f5c3df08a395232bbc3c2eb7e84912df911d" + "reference": "d2b592535ffa6600c265a3893a7f7fd2bad82dd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0ff2f5c3df08a395232bbc3c2eb7e84912df911d", - "reference": "0ff2f5c3df08a395232bbc3c2eb7e84912df911d", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/d2b592535ffa6600c265a3893a7f7fd2bad82dd7", + "reference": "d2b592535ffa6600c265a3893a7f7fd2bad82dd7", "shasum": "" }, "require": { @@ -2710,7 +2583,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.3.3" + "source": "https://github.com/symfony/options-resolver/tree/v8.0.0" }, "funding": [ { @@ -2725,21 +2598,16 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-08-05T10:16:07+00:00" + "time": "2025-11-12T15:55:31+00:00" }, { "name": "symfony/polyfill-ctype", "version": "v1.33.0", - "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -2765,8 +2633,6 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" } }, "autoload": { @@ -2801,7 +2667,6 @@ ], "support": { "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -2816,10 +2681,6 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2830,19 +2691,15 @@ { "name": "symfony/polyfill-intl-grapheme", "version": "v1.33.0", - "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { @@ -2856,8 +2713,6 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" } }, "autoload": { @@ -2894,7 +2749,6 @@ ], "support": { "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -2909,22 +2763,16 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], "time": "2025-06-27T09:58:17+00:00" - "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-normalizer", "version": "v1.33.0", - "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -2947,8 +2795,6 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" } }, "autoload": { @@ -2988,7 +2834,6 @@ ], "support": { "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -3003,10 +2848,6 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -3017,23 +2858,18 @@ { "name": "symfony/polyfill-mbstring", "version": "v1.33.0", - "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { - "ext-iconv": "*", "ext-iconv": "*", "php": ">=7.2" }, @@ -3048,8 +2884,6 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" } }, "autoload": { @@ -3085,7 +2919,6 @@ ], "support": { "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -3100,34 +2933,25 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], "time": "2024-12-23T08:48:59+00:00" - "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php80", "version": "v1.33.0", - "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" - "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", - "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "shasum": "" }, "require": { @@ -3138,8 +2962,6 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" } }, "autoload": { @@ -3181,7 +3003,6 @@ ], "support": { "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" - "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" }, "funding": [ { @@ -3196,22 +3017,16 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], "time": "2025-01-02T08:10:11+00:00" - "time": "2025-01-02T08:10:11+00:00" }, { "name": "symfony/polyfill-php81", "version": "v1.33.0", - "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -3231,8 +3046,6 @@ "thanks": { "url": "https://github.com/symfony/polyfill", "name": "symfony/polyfill" - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" } }, "autoload": { @@ -3270,7 +3083,6 @@ ], "support": { "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0" - "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0" }, "funding": [ { @@ -3285,10 +3097,6 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -3376,98 +3184,18 @@ ], "time": "2025-06-24T13:30:11+00:00" }, - { - "name": "symfony/polyfill-php84", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", - "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php84\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-24T13:30:11+00:00" - }, { "name": "symfony/process", - "version": "v7.3.4", + "version": "v8.0.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b" + "reference": "b5f3aa6762e33fd95efbaa2ec4f4bc9fdd16d674" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b", + "url": "https://api.github.com/repos/symfony/process/zipball/b5f3aa6762e33fd95efbaa2ec4f4bc9fdd16d674", + "reference": "b5f3aa6762e33fd95efbaa2ec4f4bc9fdd16d674", "shasum": "" }, "require": { @@ -3499,7 +3227,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.3.4" + "source": "https://github.com/symfony/process/tree/v8.0.5" }, "funding": [ { @@ -3514,29 +3242,25 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2026-01-26T15:08:38+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", "shasum": "" }, "require": { @@ -3553,11 +3277,6 @@ "url": "https://github.com/symfony/contracts", "name": "symfony/contracts" }, - "branch-alias": { - "dev-main": "3.6-dev" - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, "branch-alias": { "dev-main": "3.6-dev" } @@ -3595,7 +3314,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" }, "funding": [ { @@ -3615,20 +3334,20 @@ "type": "tidelift" } ], - "time": "2025-04-25T09:37:31+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/stopwatch", - "version": "v7.3.0", + "version": "v8.0.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd" + "reference": "67df1914c6ccd2d7b52f70d40cf2aea02159d942" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", - "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/67df1914c6ccd2d7b52f70d40cf2aea02159d942", + "reference": "67df1914c6ccd2d7b52f70d40cf2aea02159d942", "shasum": "" }, "require": { @@ -3661,7 +3380,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.3.0" + "source": "https://github.com/symfony/stopwatch/tree/v8.0.0" }, "funding": [ { @@ -3681,20 +3400,20 @@ "type": "tidelift" } ], - "time": "2025-02-24T10:49:57+00:00" + "time": "2025-08-04T07:36:47+00:00" }, { "name": "symfony/string", - "version": "v7.3.4", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f96476035142921000338bad71e5247fbc138872" + "reference": "758b372d6882506821ed666032e43020c4f57194" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872", - "reference": "f96476035142921000338bad71e5247fbc138872", + "url": "https://api.github.com/repos/symfony/string/zipball/758b372d6882506821ed666032e43020c4f57194", + "reference": "758b372d6882506821ed666032e43020c4f57194", "shasum": "" }, "require": { @@ -3708,9 +3427,9 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/emoji": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", "symfony/translation-contracts": "^2.5|^3.0", "symfony/var-exporter": "^7.4|^8.0" }, @@ -3751,7 +3470,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.3.4" + "source": "https://github.com/symfony/string/tree/v8.0.4" }, "funding": [ { @@ -3766,25 +3485,20 @@ "url": "https://github.com/nicolas-grekas", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-09-11T14:36:48+00:00" + "time": "2026-01-12T12:37:40+00:00" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": {}, - "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": {}, "platform-dev": {}, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/file-manager.php b/file-manager.php index 620cc82..b0a9b3a 100755 --- a/file-manager.php +++ b/file-manager.php @@ -1,5 +1,5 @@ Date: Fri, 20 Feb 2026 09:15:24 +0600 Subject: [PATCH 03/13] Update backend/app/Providers/FileEditValidator.php Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Abdul Kaioum <58425930+abdul-kaioum@users.noreply.github.com> --- backend/app/Providers/FileEditValidator.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/app/Providers/FileEditValidator.php b/backend/app/Providers/FileEditValidator.php index 0774be1..395f13a 100644 --- a/backend/app/Providers/FileEditValidator.php +++ b/backend/app/Providers/FileEditValidator.php @@ -45,7 +45,12 @@ public function checkSyntax($content, $fileName) try { token_get_all($content); } catch (ParseError $e) { - $error = 'Syntax error in file: ' . $fileName . '. Error: ' . $e->getMessage(); + $error = sprintf( + /* translators: 1: file name, 2: PHP parse error message */ + __('Syntax error in file: %1$s. Error: %2$s', 'file-manager'), + $fileName, + $e->getMessage() + ); } if (!empty($error)) { From 609db09d01129e70b8be838a8fde2fc840d8500a Mon Sep 17 00:00:00 2001 From: abdul-kaioum Date: Fri, 20 Feb 2026 10:09:03 +0600 Subject: [PATCH 04/13] fix: phpcs issues --- backend/app/Config.php | 4 +-- .../Controllers/FileManagerController.php | 4 ++- .../Http/Controllers/SettingsController.php | 8 +++--- .../Middleware/NonceCheckerMiddleware.php | 10 +++---- backend/app/Plugin.php | 3 ++- .../app/Providers/AccessControlProvider.php | 27 ++++++++++++++++--- backend/app/Providers/FileEditValidator.php | 4 +-- .../Providers/FileManager/FinderConnector.php | 2 ++ backend/app/Providers/MimeProvider.php | 1 + backend/app/Providers/PermissionsProvider.php | 12 +++++++-- .../Providers/VersionMigrationProvider.php | 4 ++- backend/config/app.php | 6 +++-- backend/functions/common.php | 15 +++++++++++ backend/functions/global.php | 1 + submodule/sources/elFinder | 2 +- vite.config.mts | 5 ++++ 16 files changed, 83 insertions(+), 25 deletions(-) diff --git a/backend/app/Config.php b/backend/app/Config.php index 9717dea..d932b33 100644 --- a/backend/app/Config.php +++ b/backend/app/Config.php @@ -63,7 +63,7 @@ public static function get($type, $default = null) return plugin_dir_path(self::get('MAIN_FILE')) . 'backend'; case 'SITE_URL': - $parsedUrl = parse_url(get_admin_url()); + $parsedUrl = wp_parse_url(get_admin_url()); $siteUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host']; $siteUrl .= empty($parsedUrl['port']) ? null : ':' . $parsedUrl['port']; @@ -81,7 +81,7 @@ public static function get($type, $default = null) ]; case 'ROOT_URI': - return set_url_scheme(plugins_url('', self::get('MAIN_FILE')), parse_url(home_url())['scheme']); + return set_url_scheme(plugins_url('', self::get('MAIN_FILE')), wp_parse_url(home_url())['scheme']); case 'ASSET_URI': return self::get('ROOT_URI') . '/assets'; diff --git a/backend/app/Http/Controllers/FileManagerController.php b/backend/app/Http/Controllers/FileManagerController.php index b05ace6..7ac1d90 100644 --- a/backend/app/Http/Controllers/FileManagerController.php +++ b/backend/app/Http/Controllers/FileManagerController.php @@ -11,6 +11,8 @@ use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; use Exception; +use function BitApps\FM\Functions\fileSystemAdapter; + final class FileManagerController { /** @@ -176,7 +178,7 @@ private function getDashboardVolumes() $this->setAllowedFileType($baseRoot); } - if (is_writable(stripslashes($preferences->getRootPath()) . DIRECTORY_SEPARATOR . '.tmbPath')) { + if (fileSystemAdapter()->is_writable(stripslashes($preferences->getRootPath()) . DIRECTORY_SEPARATOR . '.tmbPath')) { $baseRoot->setOption('tmbPath', '.tmb'); } diff --git a/backend/app/Http/Controllers/SettingsController.php b/backend/app/Http/Controllers/SettingsController.php index 32b5cad..2a1c698 100644 --- a/backend/app/Http/Controllers/SettingsController.php +++ b/backend/app/Http/Controllers/SettingsController.php @@ -83,10 +83,10 @@ public function updateTheme(ThemeUpdateRequest $request) $prefs = Plugin::instance()->preferences(); $prefs->setTheme($reqData['theme']); if ($prefs->saveOptions()) { - return Response::success([])->message(__('Theme updated successfully', 'file-manger')); + return Response::success([])->message(__('Theme updated successfully', 'file-manager')); } - return Response::error([])->message(__('Failed to update theme', 'file-manger')); + return Response::error([])->message(__('Failed to update theme', 'file-manager')); } public function getLanguages() @@ -100,9 +100,9 @@ public function updateLanguage(LangUpdateRequest $request) $prefs = Plugin::instance()->preferences(); $prefs->setLang($reqData['lang']); if ($prefs->saveOptions()) { - return Response::success([])->message(__('Language updated successfully', 'file-manger')); + return Response::success([])->message(__('Language updated successfully', 'file-manager')); } - return Response::error([])->message(__('Failed to update language', 'file-manger')); + return Response::error([])->message(__('Failed to update language', 'file-manager')); } } diff --git a/backend/app/Http/Middleware/NonceCheckerMiddleware.php b/backend/app/Http/Middleware/NonceCheckerMiddleware.php index b7f333e..54804fe 100644 --- a/backend/app/Http/Middleware/NonceCheckerMiddleware.php +++ b/backend/app/Http/Middleware/NonceCheckerMiddleware.php @@ -18,16 +18,14 @@ public function handle(Request $request, $role, ...$params) ) ) { $response = \in_array($request->getRoute()->getPath(), ['connector', 'connector_front']) - ? wp_json_encode(['error' => __('Token expired. please reload the page', 'file-manager')]) - : wp_json_encode( - [ + ? ['error' => __('Token expired. please reload the page', 'file-manager')] + : [ 'message' => __('Token expired. please reload the page', 'file-manager'), 'code' => 'INVALID_NONCE', 'status' => 'error', - ] - ); + ]; - echo $response; + echo wp_json_encode($response); wp_die(); } diff --git a/backend/app/Plugin.php b/backend/app/Plugin.php index d392327..db9ba30 100644 --- a/backend/app/Plugin.php +++ b/backend/app/Plugin.php @@ -2,6 +2,7 @@ namespace BitApps\FM; +use function BitApps\FM\Functions\fileSystemAdapter; use function BitApps\FM\Functions\view; use BitApps\FM\Http\Middleware\CapCheckerMiddleware; @@ -424,7 +425,7 @@ protected function setPhpIniVars() private function uploadFolder() { if (!is_dir(FM_UPLOAD_BASE_DIR)) { - mkdir(FM_UPLOAD_BASE_DIR, 0755); + fileSystemAdapter()->mkdir(FM_UPLOAD_BASE_DIR, 0755); } } } diff --git a/backend/app/Providers/AccessControlProvider.php b/backend/app/Providers/AccessControlProvider.php index f6f7415..eef66db 100644 --- a/backend/app/Providers/AccessControlProvider.php +++ b/backend/app/Providers/AccessControlProvider.php @@ -179,7 +179,14 @@ public function scanFile($command, $args) $fileTypeAndExt = wp_check_filetype_and_ext($filePath, $fileName); if (!empty($fileTypeAndExt['type'])) { if (stripos($fileTypeAndExt['type'], 'javascript') !== false) { - $this->scannedResult[] = \sprintf(__('This file %s type is not allowed', 'file-manager'), $fileName); + $this->scannedResult[] = wp_sprintf( + __( + // translators: 1: file name + 'This file %s type is not allowed', + 'file-manager' + ), + $fileName + ); } if ( stripos($fileTypeAndExt['type'], 'text') !== false @@ -191,7 +198,14 @@ public function scanFile($command, $args) try { $content = file_get_contents($filePath); } catch (Exception $e) { - $this->scannedResult[] = \sprintf(__('Failed to process this file %s', 'file-manager'), $fileName); + $this->scannedResult[] = wp_sprintf( + // translators: 1: file name + __( + 'Failed to process this file %s', + 'file-manager' + ), + $fileName + ); } } @@ -240,7 +254,14 @@ private function scanForPattern($content, $fileName) } if ($containsJs) { - $this->scannedResult[] = \sprintf(__('This file %s contains JS code. Please remove the code and try again. Or allow js mimetype', 'file-manager'), $fileName); + $this->scannedResult[] = wp_sprintf( + // translators: 1: file name + __( + 'This file %s contains JS code. Please remove the code and try again. Or allow js mimetype', + 'file-manager' + ), + $fileName + ); } } } diff --git a/backend/app/Providers/FileEditValidator.php b/backend/app/Providers/FileEditValidator.php index 395f13a..ae9d176 100644 --- a/backend/app/Providers/FileEditValidator.php +++ b/backend/app/Providers/FileEditValidator.php @@ -36,7 +36,7 @@ public function checkSyntax($content, $fileName) $error = ''; if ( - (!\function_exists('exec') && Capabilities::check('install_plugins')) + (Capabilities::check('install_plugins')) || (\defined('BFM_DISABLE_SYNTAX_CHECK') && BFM_DISABLE_SYNTAX_CHECK) ) { return; @@ -45,7 +45,7 @@ public function checkSyntax($content, $fileName) try { token_get_all($content); } catch (ParseError $e) { - $error = sprintf( + $error = wp_sprintf( /* translators: 1: file name, 2: PHP parse error message */ __('Syntax error in file: %1$s. Error: %2$s', 'file-manager'), $fileName, diff --git a/backend/app/Providers/FileManager/FinderConnector.php b/backend/app/Providers/FileManager/FinderConnector.php index f416596..d48ac45 100644 --- a/backend/app/Providers/FileManager/FinderConnector.php +++ b/backend/app/Providers/FileManager/FinderConnector.php @@ -118,6 +118,7 @@ protected function output(array $data) } else { $out = fopen('php://output', 'wb'); stream_copy_to_stream($fp, $out, $psize); + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fclose fclose($out); } } @@ -125,6 +126,7 @@ protected function output(array $data) if (!empty($data['volume'])) { $data['volume']->close($fp, $data['info']['hash']); } else { + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fclose fclose($fp); } exit(); diff --git a/backend/app/Providers/MimeProvider.php b/backend/app/Providers/MimeProvider.php index 6fc61a9..907dd52 100644 --- a/backend/app/Providers/MimeProvider.php +++ b/backend/app/Providers/MimeProvider.php @@ -19,6 +19,7 @@ public function __construct($mimePath = null) public function getTypes() { $mimeList = []; + //phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fopen $fp = fopen($this->_mimePath, 'r'); if ($fp) { while (($line = fgets($fp)) !== false) { diff --git a/backend/app/Providers/PermissionsProvider.php b/backend/app/Providers/PermissionsProvider.php index 58555db..9ab6394 100644 --- a/backend/app/Providers/PermissionsProvider.php +++ b/backend/app/Providers/PermissionsProvider.php @@ -4,9 +4,13 @@ use BitApps\FM\Config; use BitApps\FM\Exception\PreCommandException; + +use function BitApps\FM\Functions\fileSystemAdapter; + use BitApps\FM\Plugin; use BitApps\FM\Vendor\BitApps\WPKit\Helpers\Arr; use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; + use WP_User; \defined('ABSPATH') || exit(); @@ -196,11 +200,15 @@ public function getPublicRootPathByCriteria($criteria, $type) { $defaultPath = $this->getPublicRootPath(); $rootPath = wp_unslash($defaultPath) . DIRECTORY_SEPARATOR . "{$type}_{$criteria}"; - if (!file_exists($rootPath) && is_dir($defaultPath) && is_writable($defaultPath)) { + if ( + !fileSystemAdapter()->exists($rootPath) + && fileSystemAdapter()->is_dir($defaultPath) + && fileSystemAdapter()->is_writable($defaultPath) + ) { wp_mkdir_p($rootPath); } - if (!file_exists($rootPath) || !is_dir($rootPath) || !is_readable($rootPath)) { + if (!fileSystemAdapter()->exists($rootPath) || !fileSystemAdapter()->is_dir($rootPath) || !fileSystemAdapter()->is_readable($rootPath)) { $rootPath = ''; } diff --git a/backend/app/Providers/VersionMigrationProvider.php b/backend/app/Providers/VersionMigrationProvider.php index a5a9b7d..a2474b4 100644 --- a/backend/app/Providers/VersionMigrationProvider.php +++ b/backend/app/Providers/VersionMigrationProvider.php @@ -8,6 +8,8 @@ use BitApps\FM\Vendor\BitApps\WPKit\Migration\MigrationHelper; use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; +use function BitApps\FM\Functions\fileSystemAdapter; + \defined('ABSPATH') || exit(); class VersionMigrationProvider @@ -96,7 +98,7 @@ private function migrateTo502() { $logFile = FM_UPLOAD_BASE_DIR . DIRECTORY_SEPARATOR . 'log.txt'; if (file_exists($logFile)) { - unlink($logFile); + fileSystemAdapter()->delete($logFile); } } } diff --git a/backend/config/app.php b/backend/config/app.php index 1301c4c..f6078ad 100644 --- a/backend/config/app.php +++ b/backend/config/app.php @@ -6,6 +6,8 @@ * @since v5.2.0 * */ +use function BitApps\FM\Functions\fileSystemAdapter; + // Directory Separator if (!\defined('DS')) { \define('DS', DIRECTORY_SEPARATOR); @@ -64,7 +66,7 @@ */ $fmTrashDir = FM_WP_UPLOAD_DIR['basedir'] . '/file-manager/trash/'; \define('FM_TRASH_DIR_PATH', $fmTrashDir); - if (!file_exists($fmTrashDir) && is_writable(FM_WP_UPLOAD_DIR['basedir'])) { + if (!fileSystemAdapter()->exists($fmTrashDir) && fileSystemAdapter()->is_writable(FM_WP_UPLOAD_DIR['basedir'])) { mkdir($fmTrashDir, 0777, true); // Protect files from public access. touch(FM_TRASH_DIR_PATH . '.htaccess'); @@ -72,7 +74,7 @@ $fp = fopen(FM_TRASH_DIR_PATH . '.htaccess', 'wb'); fwrite($fp, $content); fclose($fp); - } elseif (!file_exists($fmTrashDir) && !is_writable($fmTrashDir) && !is_writable(FM_WP_UPLOAD_DIR['basedir'])) { + } elseif (!fileSystemAdapter()->exists($fmTrashDir) && !fileSystemAdapter()->is_writable($fmTrashDir) && !fileSystemAdapter()->is_writable(FM_WP_UPLOAD_DIR['basedir'])) { add_action( 'admin_notices', function () { diff --git a/backend/functions/common.php b/backend/functions/common.php index 3c2b691..00e1332 100644 --- a/backend/functions/common.php +++ b/backend/functions/common.php @@ -76,3 +76,18 @@ function validatePath($path, $for = '') return $realPath; } + +/** + * @return \WP_Filesystem_Base + */ +function fileSystemAdapter() +{ + global $wp_filesystem; + + if (empty($wp_filesystem)) { + require_once ABSPATH . '/wp-admin/includes/file.php'; + WP_Filesystem(); + } + + return $wp_filesystem; +} diff --git a/backend/functions/global.php b/backend/functions/global.php index d654d9a..095e6d8 100755 --- a/backend/functions/global.php +++ b/backend/functions/global.php @@ -1,4 +1,5 @@ { + server.watcher.close() + removeStoredPort() + }) } } } From 558c1a3cca5f4d89da61f926c9d797e1ed810a07 Mon Sep 17 00:00:00 2001 From: abdul-kaioum Date: Fri, 20 Feb 2026 10:09:52 +0600 Subject: [PATCH 05/13] fix: phpcs lint --- backend/app/Http/Controllers/FileManagerController.php | 6 ++++-- backend/app/Providers/FileEditValidator.php | 2 +- backend/app/Providers/MimeProvider.php | 2 +- backend/app/Providers/VersionMigrationProvider.php | 6 ++++-- backend/functions/global.php | 8 +++++--- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/backend/app/Http/Controllers/FileManagerController.php b/backend/app/Http/Controllers/FileManagerController.php index 7ac1d90..c607269 100644 --- a/backend/app/Http/Controllers/FileManagerController.php +++ b/backend/app/Http/Controllers/FileManagerController.php @@ -4,14 +4,16 @@ use BitApps\FM\Config; use BitApps\FM\Exception\PreCommandException; + +use function BitApps\FM\Functions\fileSystemAdapter; + use BitApps\FM\Plugin; use BitApps\FM\Providers\FileManager\FileManagerProvider; use BitApps\FM\Providers\FileManager\FileRoot; use BitApps\FM\Providers\FileManager\Options; use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; -use Exception; -use function BitApps\FM\Functions\fileSystemAdapter; +use Exception; final class FileManagerController { diff --git a/backend/app/Providers/FileEditValidator.php b/backend/app/Providers/FileEditValidator.php index ae9d176..d406424 100644 --- a/backend/app/Providers/FileEditValidator.php +++ b/backend/app/Providers/FileEditValidator.php @@ -46,7 +46,7 @@ public function checkSyntax($content, $fileName) token_get_all($content); } catch (ParseError $e) { $error = wp_sprintf( - /* translators: 1: file name, 2: PHP parse error message */ + // translators: 1: file name, 2: PHP parse error message __('Syntax error in file: %1$s. Error: %2$s', 'file-manager'), $fileName, $e->getMessage() diff --git a/backend/app/Providers/MimeProvider.php b/backend/app/Providers/MimeProvider.php index 907dd52..ace2db1 100644 --- a/backend/app/Providers/MimeProvider.php +++ b/backend/app/Providers/MimeProvider.php @@ -19,7 +19,7 @@ public function __construct($mimePath = null) public function getTypes() { $mimeList = []; - //phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fopen + // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fopen $fp = fopen($this->_mimePath, 'r'); if ($fp) { while (($line = fgets($fp)) !== false) { diff --git a/backend/app/Providers/VersionMigrationProvider.php b/backend/app/Providers/VersionMigrationProvider.php index a2474b4..2a7abc1 100644 --- a/backend/app/Providers/VersionMigrationProvider.php +++ b/backend/app/Providers/VersionMigrationProvider.php @@ -3,12 +3,14 @@ namespace BitApps\FM\Providers; use BitApps\FM\Config; + +use function BitApps\FM\Functions\fileSystemAdapter; + use BitApps\FM\Vendor\BitApps\WPDatabase\Connection; use BitApps\FM\Vendor\BitApps\WPDatabase\Schema; use BitApps\FM\Vendor\BitApps\WPKit\Migration\MigrationHelper; -use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; -use function BitApps\FM\Functions\fileSystemAdapter; +use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; \defined('ABSPATH') || exit(); diff --git a/backend/functions/global.php b/backend/functions/global.php index 095e6d8..65fcdd3 100755 --- a/backend/functions/global.php +++ b/backend/functions/global.php @@ -1,6 +1,9 @@ Date: Fri, 20 Feb 2026 11:48:10 +0600 Subject: [PATCH 06/13] feat: syntax check using loopback request --- backend/app/Providers/FileEditValidator.php | 28 +--- backend/app/Providers/PhpSyntaxChecker.php | 159 ++++++++++++++++++++ backend/config/app.php | 5 +- 3 files changed, 169 insertions(+), 23 deletions(-) create mode 100644 backend/app/Providers/PhpSyntaxChecker.php diff --git a/backend/app/Providers/FileEditValidator.php b/backend/app/Providers/FileEditValidator.php index d406424..15a11d3 100644 --- a/backend/app/Providers/FileEditValidator.php +++ b/backend/app/Providers/FileEditValidator.php @@ -5,7 +5,7 @@ use BitApps\FM\Exception\PreCommandException; use BitApps\FM\Plugin; use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; -use ParseError; +use WP_Error; \defined('ABSPATH') or exit(); class FileEditValidator @@ -24,37 +24,23 @@ public function validate($cmd, &$args, $elfinder, $volume) // Checking syntax for PHP file. if (strpos($args['content'], 'checkSyntax($args['content'], wp_basename($volume->getPath($args['target']))); + $this->checkSyntax($args['content'], $volume->getPath($args['target'])); } catch (PreCommandException $th) { return $th->getError(); } } } - public function checkSyntax($content, $fileName) + public function checkSyntax($content, $realFile) { - $error = ''; - - if ( - (Capabilities::check('install_plugins')) - || (\defined('BFM_DISABLE_SYNTAX_CHECK') && BFM_DISABLE_SYNTAX_CHECK) - ) { + if (\defined('BFM_DISABLE_SYNTAX_CHECK') && BFM_DISABLE_SYNTAX_CHECK) { return; } - try { - token_get_all($content); - } catch (ParseError $e) { - $error = wp_sprintf( - // translators: 1: file name, 2: PHP parse error message - __('Syntax error in file: %1$s. Error: %2$s', 'file-manager'), - $fileName, - $e->getMessage() - ); - } + $wpError = (new PhpSyntaxChecker())->check($content, $realFile); - if (!empty($error)) { - throw new PreCommandException(esc_html($error)); + if ($wpError instanceof WP_Error) { + throw new PreCommandException($wpError->get_error_message()); } } diff --git a/backend/app/Providers/PhpSyntaxChecker.php b/backend/app/Providers/PhpSyntaxChecker.php new file mode 100644 index 0000000..33d0650 --- /dev/null +++ b/backend/app/Providers/PhpSyntaxChecker.php @@ -0,0 +1,159 @@ +loopbackRequest(); + + if (true !== $result) { + file_put_contents($realFile, $previousContent); + wp_opcache_invalidate($realFile, true); + + $message = isset($result['message']) + ? $result['message'] + : __('An error occurred. Please try again later.'); + + $data = $result; + unset($data['message']); + + return new WP_Error('php_error', $message, $data); + } + + return null; + } + + /** + * Perform loopback requests with a scrape key to detect fatal PHP errors. + * + * @return true|array true on success, or an array with 'code'/'message' on failure + */ + private function loopbackRequest() + { + $scrapeKey = md5(mt_rand()); + $transient = 'scrape_key_' . $scrapeKey; + $scrapeNonce = (string) mt_rand(); + // Transient expires after 60 seconds — enough for both loopback requests. + set_transient($transient, $scrapeNonce, 60); + + $cookies = wp_unslash($_COOKIE); + $scrapeParams = [ + 'wp_scrape_key' => $scrapeKey, + 'wp_scrape_nonce' => $scrapeNonce, + ]; + $headers = [ + 'Cache-Control' => 'no-cache', + ]; + + /** This filter is documented in wp-includes/class-wp-http-streams.php */ + $sslverify = apply_filters('https_local_ssl_verify', false); + + // Include Basic auth in loopback requests. + if (isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) { + $headers['Authorization'] = 'Basic ' . base64_encode( + wp_unslash($_SERVER['PHP_AUTH_USER']) . ':' . wp_unslash($_SERVER['PHP_AUTH_PW']) + ); + } + + // Make sure PHP process doesn't die before loopback requests complete. + if (\function_exists('set_time_limit')) { + set_time_limit(5 * MINUTE_IN_SECONDS); + } + + // Close any active session to prevent HTTP requests from timing out. + if (\function_exists('session_status') && PHP_SESSION_ACTIVE === session_status()) { + session_write_close(); + } + + $timeout = 100; + $needleStart = "###### wp_scraping_result_start:{$scrapeKey} ######"; + $needleEnd = "###### wp_scraping_result_end:{$scrapeKey} ######"; + + $loopbackFailure = [ + 'code' => 'loopback_request_failed', + 'message' => __('Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.'), + ]; + $jsonParseFailure = [ + 'code' => 'json_parse_error', + ]; + + // Check admin URL for whitescreen. + $url = add_query_arg($scrapeParams, admin_url()); + $r = wp_remote_get($url, compact('cookies', 'headers', 'timeout', 'sslverify')); + $body = wp_remote_retrieve_body($r); + $pos = strpos($body, $needleStart); + $result = null; + + if (false === $pos) { + $result = $loopbackFailure; + } else { + $errorOutput = substr($body, $pos + \strlen($needleStart)); + $errorOutput = substr($errorOutput, 0, strpos($errorOutput, $needleEnd)); + $result = json_decode(trim($errorOutput), true); + if (empty($result)) { + $result = $jsonParseFailure; + } + } + + // Also check homepage to ensure visitors aren't whitescreen'd. + if (true === $result) { + $url = add_query_arg($scrapeParams, home_url('/')); + $r = wp_remote_get($url, compact('cookies', 'headers', 'timeout', 'sslverify')); + $body = wp_remote_retrieve_body($r); + $pos = strpos($body, $needleStart); + + if (false === $pos) { + $result = $loopbackFailure; + } else { + $errorOutput = substr($body, $pos + \strlen($needleStart)); + $errorOutput = substr($errorOutput, 0, strpos($errorOutput, $needleEnd)); + $result = json_decode(trim($errorOutput), true); + if (empty($result)) { + $result = $jsonParseFailure; + } + } + } + + delete_transient($transient); + + return $result; + } +} diff --git a/backend/config/app.php b/backend/config/app.php index f6078ad..b24b372 100644 --- a/backend/config/app.php +++ b/backend/config/app.php @@ -1,4 +1,5 @@ exists($fmTrashDir) && fileSystemAdapter()->is_writable(FM_WP_UPLOAD_DIR['basedir'])) { + if (!file_exists($fmTrashDir) && is_writeable(FM_WP_UPLOAD_DIR['basedir'])) { mkdir($fmTrashDir, 0777, true); // Protect files from public access. touch(FM_TRASH_DIR_PATH . '.htaccess'); @@ -74,7 +75,7 @@ $fp = fopen(FM_TRASH_DIR_PATH . '.htaccess', 'wb'); fwrite($fp, $content); fclose($fp); - } elseif (!fileSystemAdapter()->exists($fmTrashDir) && !fileSystemAdapter()->is_writable($fmTrashDir) && !fileSystemAdapter()->is_writable(FM_WP_UPLOAD_DIR['basedir'])) { + } elseif (!file_exists($fmTrashDir) && !is_writeable($fmTrashDir) && !is_writeable(FM_WP_UPLOAD_DIR['basedir'])) { add_action( 'admin_notices', function () { From 11420bbab9e0a7c029d57bea225ea5bceb245c02 Mon Sep 17 00:00:00 2001 From: abdul-kaioum Date: Fri, 20 Feb 2026 11:49:05 +0600 Subject: [PATCH 07/13] chore: phpcs lint --- backend/app/Providers/FileEditValidator.php | 1 - backend/app/Providers/PhpSyntaxChecker.php | 8 +++++--- backend/config/app.php | 2 -- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/backend/app/Providers/FileEditValidator.php b/backend/app/Providers/FileEditValidator.php index 15a11d3..e9ca199 100644 --- a/backend/app/Providers/FileEditValidator.php +++ b/backend/app/Providers/FileEditValidator.php @@ -4,7 +4,6 @@ use BitApps\FM\Exception\PreCommandException; use BitApps\FM\Plugin; -use BitApps\FM\Vendor\BitApps\WPKit\Utils\Capabilities; use WP_Error; \defined('ABSPATH') or exit(); diff --git a/backend/app/Providers/PhpSyntaxChecker.php b/backend/app/Providers/PhpSyntaxChecker.php index 33d0650..61269dc 100644 --- a/backend/app/Providers/PhpSyntaxChecker.php +++ b/backend/app/Providers/PhpSyntaxChecker.php @@ -17,7 +17,10 @@ class PhpSyntaxChecker * Write content to the real file, perform a loopback request to detect * fatal errors, then roll back the file if a problem is found. * - * @return WP_Error|null null on success, WP_Error on failure + * @param mixed $content + * @param mixed $realFile + * + * @return WP_Error|null null on success, WP_Error on failure */ public function check($content, $realFile) { @@ -58,13 +61,12 @@ public function check($content, $realFile) return new WP_Error('php_error', $message, $data); } - return null; } /** * Perform loopback requests with a scrape key to detect fatal PHP errors. * - * @return true|array true on success, or an array with 'code'/'message' on failure + * @return true|array true on success, or an array with 'code'/'message' on failure */ private function loopbackRequest() { diff --git a/backend/config/app.php b/backend/config/app.php index b24b372..9542b78 100644 --- a/backend/config/app.php +++ b/backend/config/app.php @@ -7,8 +7,6 @@ * @since v5.2.0 * */ -use function BitApps\FM\Functions\fileSystemAdapter; - // Directory Separator if (!\defined('DS')) { \define('DS', DIRECTORY_SEPARATOR); From b39777a8ba5a6c92bb2beaff4db4a72f12489c30 Mon Sep 17 00:00:00 2001 From: abdul-kaioum Date: Fri, 20 Feb 2026 11:54:08 +0600 Subject: [PATCH 08/13] chore: execlude libs from plugin check --- .github/workflows/plugin-check.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/plugin-check.yml b/.github/workflows/plugin-check.yml index 4a640f6..25dfe4e 100644 --- a/.github/workflows/plugin-check.yml +++ b/.github/workflows/plugin-check.yml @@ -71,6 +71,7 @@ jobs: exclude-directories: | vendor node_modules + libs categories: | general security From d23fba0fb075f19be5b096634def83b2dd6d179c Mon Sep 17 00:00:00 2001 From: abdul-kaioum Date: Fri, 20 Feb 2026 12:00:33 +0600 Subject: [PATCH 09/13] chore: phpcs lint --- backend/app/Providers/AccessControlProvider.php | 2 +- backend/app/Providers/PhpSyntaxChecker.php | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/backend/app/Providers/AccessControlProvider.php b/backend/app/Providers/AccessControlProvider.php index eef66db..0341258 100644 --- a/backend/app/Providers/AccessControlProvider.php +++ b/backend/app/Providers/AccessControlProvider.php @@ -180,8 +180,8 @@ public function scanFile($command, $args) if (!empty($fileTypeAndExt['type'])) { if (stripos($fileTypeAndExt['type'], 'javascript') !== false) { $this->scannedResult[] = wp_sprintf( + // translators: 1: file name __( - // translators: 1: file name 'This file %s type is not allowed', 'file-manager' ), diff --git a/backend/app/Providers/PhpSyntaxChecker.php b/backend/app/Providers/PhpSyntaxChecker.php index 61269dc..c0953e0 100644 --- a/backend/app/Providers/PhpSyntaxChecker.php +++ b/backend/app/Providers/PhpSyntaxChecker.php @@ -30,6 +30,7 @@ public function check($content, $realFile) return new WP_Error('file_not_writable'); } + //phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_fopen, WordPress.WP.AlternativeFunctions.file_system_operations_fwrite, WordPress.WP.AlternativeFunctions.file_system_operations_fclose $f = fopen($realFile, 'w+'); if (false === $f) { @@ -40,7 +41,7 @@ public function check($content, $realFile) fclose($f); if (false === $written) { - return new WP_Error('unable_to_write', __('Unable to write to file.')); + return new WP_Error('unable_to_write', __('Unable to write to file.', 'file-manager')); } wp_opcache_invalidate($realFile, true); @@ -53,7 +54,7 @@ public function check($content, $realFile) $message = isset($result['message']) ? $result['message'] - : __('An error occurred. Please try again later.'); + : __('An error occurred. Please try again later.', 'file-manager'); $data = $result; unset($data['message']); @@ -70,9 +71,9 @@ public function check($content, $realFile) */ private function loopbackRequest() { - $scrapeKey = md5(mt_rand()); + $scrapeKey = md5(wp_rand()); $transient = 'scrape_key_' . $scrapeKey; - $scrapeNonce = (string) mt_rand(); + $scrapeNonce = (string) wp_rand(); // Transient expires after 60 seconds — enough for both loopback requests. set_transient($transient, $scrapeNonce, 60); @@ -111,7 +112,7 @@ private function loopbackRequest() $loopbackFailure = [ 'code' => 'loopback_request_failed', - 'message' => __('Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.'), + 'message' => __('Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.', 'file-manager'), ]; $jsonParseFailure = [ 'code' => 'json_parse_error', From fd8deba4d7ff29f8adef741d7e825db9be97e324 Mon Sep 17 00:00:00 2001 From: abdul-kaioum Date: Fri, 20 Feb 2026 12:03:37 +0600 Subject: [PATCH 10/13] chore: phpcs lint --- backend/app/Providers/PhpSyntaxChecker.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/app/Providers/PhpSyntaxChecker.php b/backend/app/Providers/PhpSyntaxChecker.php index c0953e0..f0b3e7b 100644 --- a/backend/app/Providers/PhpSyntaxChecker.php +++ b/backend/app/Providers/PhpSyntaxChecker.php @@ -30,7 +30,7 @@ public function check($content, $realFile) return new WP_Error('file_not_writable'); } - //phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_fopen, WordPress.WP.AlternativeFunctions.file_system_operations_fwrite, WordPress.WP.AlternativeFunctions.file_system_operations_fclose + // phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_fopen, WordPress.WP.AlternativeFunctions.file_system_operations_fwrite, WordPress.WP.AlternativeFunctions.file_system_operations_fclose $f = fopen($realFile, 'w+'); if (false === $f) { @@ -61,7 +61,6 @@ public function check($content, $realFile) return new WP_Error('php_error', $message, $data); } - } /** From b09b4bc2b577a361c9582f6b4943108a95dbeea0 Mon Sep 17 00:00:00 2001 From: abdul-kaioum Date: Fri, 20 Feb 2026 12:58:36 +0600 Subject: [PATCH 11/13] chore: bumped version --- backend/app/Config.php | 4 ++-- file-manager.php | 2 +- readme.txt | 8 ++++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/backend/app/Config.php b/backend/app/Config.php index d932b33..c16f5e9 100644 --- a/backend/app/Config.php +++ b/backend/app/Config.php @@ -21,9 +21,9 @@ class Config const VAR_PREFIX = 'bit_fm_'; - const VERSION = '6.8.6'; + const VERSION = '6.8.9'; - const VERSION_ID = 686; + const VERSION_ID = 689; const DB_VERSION = '1.0'; diff --git a/file-manager.php b/file-manager.php index b0a9b3a..64bd970 100755 --- a/file-manager.php +++ b/file-manager.php @@ -5,7 +5,7 @@ * Plugin URI: https://bitapps.pro/bit-file-manager * Author: File Manager by Bit Form Team * Author URI: https://bitapps.pro - * Version: 6.8.6 + * Version: 6.8.7 * Requires at least: 5.0 * Requires PHP: 7.4 * Text domain: file-manager diff --git a/readme.txt b/readme.txt index 3779156..2beb5ac 100755 --- a/readme.txt +++ b/readme.txt @@ -3,9 +3,9 @@ Contributors: bitpressadmin, akaioum, aihimel Tags: file manager, wp file manager, wordpress file manager, files, ftp Requires at least: 5.0 -Tested up to: 6.8.3 +Tested up to: 6.9 Requires PHP: 7.4 -Stable tag: 6.8.6 +Stable tag: 6.8.9 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -306,6 +306,10 @@ Yes, It is possible to edit writeable files in the wordpress directory using cod == Changelog == += 6.8.5 = +- chore: updated elfinder to 2.1.66 +- chore: updated php packages + = 6.8.5 = - chore: revamped UI - chore: updated php packages From 3f5e9daf57920d0b1fb1bc417e378ba2182d24df Mon Sep 17 00:00:00 2001 From: abdul-kaioum Date: Fri, 20 Feb 2026 13:05:29 +0600 Subject: [PATCH 12/13] fix: version mismatch --- readme.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.txt b/readme.txt index 2beb5ac..3f863f5 100755 --- a/readme.txt +++ b/readme.txt @@ -5,7 +5,7 @@ Tags: file manager, wp file manager, wordpress file manager, files, ftp Requires at least: 5.0 Tested up to: 6.9 Requires PHP: 7.4 -Stable tag: 6.8.9 +Stable tag: 6.8.7 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -306,7 +306,7 @@ Yes, It is possible to edit writeable files in the wordpress directory using cod == Changelog == -= 6.8.5 = += 6.8.7 = - chore: updated elfinder to 2.1.66 - chore: updated php packages From fa937284f45a5815aca6b2241d1f0fa9228c5fee Mon Sep 17 00:00:00 2001 From: abdul-kaioum Date: Fri, 20 Feb 2026 13:27:10 +0600 Subject: [PATCH 13/13] fix: plugin check errors --- backend/app/Providers/AccessControlProvider.php | 2 +- backend/app/Providers/FileEditValidator.php | 4 +++- backend/app/Providers/PhpSyntaxChecker.php | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/app/Providers/AccessControlProvider.php b/backend/app/Providers/AccessControlProvider.php index 0341258..29c07ba 100644 --- a/backend/app/Providers/AccessControlProvider.php +++ b/backend/app/Providers/AccessControlProvider.php @@ -218,7 +218,7 @@ public function scanFile($command, $args) } if (\count($this->scannedResult) > 0) { - throw new PreCommandException(implode('. >> ', $this->scannedResult)); + throw new PreCommandException(wp_strip_all_tags(implode('. >> ', $this->scannedResult))); } } diff --git a/backend/app/Providers/FileEditValidator.php b/backend/app/Providers/FileEditValidator.php index e9ca199..c5bc9e6 100644 --- a/backend/app/Providers/FileEditValidator.php +++ b/backend/app/Providers/FileEditValidator.php @@ -39,7 +39,9 @@ public function checkSyntax($content, $realFile) $wpError = (new PhpSyntaxChecker())->check($content, $realFile); if ($wpError instanceof WP_Error) { - throw new PreCommandException($wpError->get_error_message()); + $message = $wpError->get_error_message(); + + throw new PreCommandException(wp_strip_all_tags($message)); } } diff --git a/backend/app/Providers/PhpSyntaxChecker.php b/backend/app/Providers/PhpSyntaxChecker.php index f0b3e7b..b900ba0 100644 --- a/backend/app/Providers/PhpSyntaxChecker.php +++ b/backend/app/Providers/PhpSyntaxChecker.php @@ -26,11 +26,11 @@ public function check($content, $realFile) { $previousContent = file_get_contents($realFile); + // phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_fopen, WordPress.WP.AlternativeFunctions.file_system_operations_fwrite, WordPress.WP.AlternativeFunctions.file_system_operations_fclose if (!is_writable($realFile)) { return new WP_Error('file_not_writable'); } - // phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_fopen, WordPress.WP.AlternativeFunctions.file_system_operations_fwrite, WordPress.WP.AlternativeFunctions.file_system_operations_fclose $f = fopen($realFile, 'w+'); if (false === $f) {
          ').appendTo(m),progressbar:e('
          ').appendTo(m)},u.trigger("uiready"),e.each(u.options.ui||[],function(t,n){var i="elfinder"+n,a=u.options.uiOptions[n]||{};!u.ui[n]&&e.fn[i]&&(u.ui[n]=e("<"+(a.tag||"div")+"/>").appendTo(m),u.ui[n][i](u,a))}),u.ui.progressbar.appendTo(u.ui.workzone),u.ui.notify.prev(".ui-dialog-titlebar").append('
          '),u.resize(N,L),u.options.resizable&&(m.resizable({resize:function(e,t){u.resize(t.size.width,t.size.height)},handles:"se",minWidth:300,minHeight:200}),u.UA.Touch&&m.addClass("touch-punch")),function(){var e=u.getUI("navbar"),t=u.getUI("cwd").parent();u.autoScroll={navbarUp:function(t){e.scrollTop(Math.max(0,e.scrollTop()-t))},navbarDown:function(t){e.scrollTop(e.scrollTop()+t)},cwdUp:function(e){t.scrollTop(Math.max(0,t.scrollTop()-e))},cwdDown:function(e){t.scrollTop(t.scrollTop()+e)}}}(),u.UA.Touch&&!function(){var e,t,n,i,a,o,r,s,l,c=u.getUI("navbar"),d=u.getUI("toolbar"),p="touchmove.stopscroll",h=function(e){var n=e.originalEvent.touches||[{}],i=n[0].pageY||null;(!t||i1||("touchstart"===s.type?(n=m.offset(),i=m.width(),c&&(e=!1,c.is(":hidden")?(l||(l=Math.max(50,i/10)),(A?z-n.left:i+n.left-z)n.left+i-o,y?(l=Math.max(50,i/10),e=z):e=!1)),d&&(t=!1,s.originalEvent._preventSwipeY||(r=d.height(),a=n.top,T-a<(d.is(":hidden")?v:r+30)&&(t=T,m.on(p,d.is(":hidden")?f:h))))):(c&&e!==!1&&(b=(A?e>z:e.6*o||w>("navhide"===b?o/3:45)&&("navshow"===b||(A?zn.left+i-20)))&&(u.getUI("navbar").trigger(b,{handleW:l}),e=!1)),d&&t!==!1&&(x=d.offset().top,Math.abs(t-T)>Math.min(45,r/3)&&(k=t>T?"slideUp":"slideDown",("slideDown"===k||x+20>T)&&(d.is("slideDown"===k?":hidden":":visible")&&d.stop(!0,!0).trigger("toggle",{duration:100,handleH:v}),t=!1)))))})}(),u.dragUpload&&!function(){var t,n,i=function(t){return"TEXTAREA"!==t.target.nodeName&&"INPUT"!==t.target.nodeName&&0===e(t.target).closest("div.ui-dialog-content").length},a="native-drag-enter",o="native-drag-disable",r="class",s=u.res(r,"navdir"),l=(u.res(r,"droppable"),u.res(r,"adroppable"),u.res(r,"navarrow"),u.res(r,"adroppable")),c=u.getUI("workzone"),d="ltr"===u.direction,p=function(){n&&cancelAnimationFrame(n),n=null};m.on("dragenter",function(e){p(),i(e)&&(e.preventDefault(),e.stopPropagation(),t=c.data("rectangle"))}).on("dragleave",function(e){p(),i(e)&&(e.preventDefault(),e.stopPropagation())}).on("dragover",function(e){var a;i(e)?(e.preventDefault(),e.stopPropagation(),e.originalEvent.dataTransfer.dropEffect="none",n||(n=requestAnimationFrame(function(){var i,o=t.top+t.height,r=o-u.getUI("navdock").outerHeight(!0);((a=e.pageYr)&&(i=t.cwdEdge>e.pageX?(d?"navbar":"cwd")+(a?"Up":"Down"):(d?"cwd":"navbar")+(a?"Up":"Down"),a||"cwd"===i.substr(0,3)&&(o=11,IE:document.uniqueID,Firefox:window.sidebar,Opera:window.opera,Webkit:e,Chrome:t,Edge:!(!t||!window.msCredentials),Safari:e&&!window.chrome,Mobile:"undefined"!=typeof window.orientation,Touch:"undefined"!=typeof window.ontouchstart,iOS:navigator.platform.match(/^iP(?:[ao]d|hone)/),Mac:navigator.platform.match(/^Mac/),Fullscreen:"undefined"!=typeof(document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen),Angle:0,Rotated:!1,CSS:function(){var e,t=document.createElement("a").style,n=document.createElement("p").style;return e="position:sticky;position:-webkit-sticky;",e+="width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:max-content;",t.cssText=e,{positionSticky:t.position.indexOf("sticky")!==-1,widthMaxContent:t.width.indexOf("max-content")!==-1,flex:"undefined"!=typeof n.flex}}()};return n}(),cookieEnabled:window.navigator.cookieEnabled,hasRequire:"function"==typeof define&&define.amd,currentReqCmd:"",keyState:{},i18:{en:{translator:"",language:"English",direction:"ltr",dateFormat:"d.m.Y H:i",fancyDateFormat:"$1 H:i",nonameDateFormat:"ymd-His",messages:{}},months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["msJan","msFeb","msMar","msApr","msMay","msJun","msJul","msAug","msSep","msOct","msNov","msDec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},kinds:{unknown:"Unknown",directory:"Folder",group:"Selects",symlink:"Alias","symlink-broken":"AliasBroken","application/x-empty":"TextPlain","application/postscript":"Postscript","application/vnd.ms-office":"MsOffice","application/msword":"MsWord","application/vnd.ms-word":"MsWord","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"MsWord","application/vnd.ms-word.document.macroEnabled.12":"MsWord","application/vnd.openxmlformats-officedocument.wordprocessingml.template":"MsWord","application/vnd.ms-word.template.macroEnabled.12":"MsWord","application/vnd.ms-excel":"MsExcel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"MsExcel","application/vnd.ms-excel.sheet.macroEnabled.12":"MsExcel","application/vnd.openxmlformats-officedocument.spreadsheetml.template":"MsExcel","application/vnd.ms-excel.template.macroEnabled.12":"MsExcel","application/vnd.ms-excel.sheet.binary.macroEnabled.12":"MsExcel","application/vnd.ms-excel.addin.macroEnabled.12":"MsExcel","application/vnd.ms-powerpoint":"MsPP","application/vnd.openxmlformats-officedocument.presentationml.presentation":"MsPP","application/vnd.ms-powerpoint.presentation.macroEnabled.12":"MsPP","application/vnd.openxmlformats-officedocument.presentationml.slideshow":"MsPP","application/vnd.ms-powerpoint.slideshow.macroEnabled.12":"MsPP","application/vnd.openxmlformats-officedocument.presentationml.template":"MsPP","application/vnd.ms-powerpoint.template.macroEnabled.12":"MsPP","application/vnd.ms-powerpoint.addin.macroEnabled.12":"MsPP","application/vnd.openxmlformats-officedocument.presentationml.slide":"MsPP","application/vnd.ms-powerpoint.slide.macroEnabled.12":"MsPP","application/pdf":"PDF","application/xml":"XML","application/vnd.oasis.opendocument.text":"OO","application/vnd.oasis.opendocument.text-template":"OO","application/vnd.oasis.opendocument.text-web":"OO","application/vnd.oasis.opendocument.text-master":"OO","application/vnd.oasis.opendocument.graphics":"OO","application/vnd.oasis.opendocument.graphics-template":"OO","application/vnd.oasis.opendocument.presentation":"OO","application/vnd.oasis.opendocument.presentation-template":"OO","application/vnd.oasis.opendocument.spreadsheet":"OO","application/vnd.oasis.opendocument.spreadsheet-template":"OO","application/vnd.oasis.opendocument.chart":"OO","application/vnd.oasis.opendocument.formula":"OO","application/vnd.oasis.opendocument.database":"OO","application/vnd.oasis.opendocument.image":"OO","application/vnd.openofficeorg.extension":"OO","application/x-shockwave-flash":"AppFlash","application/flash-video":"Flash video","application/x-bittorrent":"Torrent","application/javascript":"JS","application/rtf":"RTF","application/rtfd":"RTF","application/x-font-ttf":"TTF","application/x-font-otf":"OTF","application/x-rpm":"RPM","application/x-web-config":"TextPlain","application/xhtml+xml":"HTML","application/docbook+xml":"DOCBOOK","application/x-awk":"AWK","application/x-gzip":"GZIP","application/x-bzip2":"BZIP","application/x-xz":"XZ","application/zip":"ZIP","application/x-zip":"ZIP","application/x-rar":"RAR","application/x-tar":"TAR","application/x-7z-compressed":"7z","application/x-jar":"JAR","text/plain":"TextPlain","text/x-php":"PHP","text/html":"HTML","text/javascript":"JS","text/css":"CSS","text/rtf":"RTF","text/rtfd":"RTF","text/x-c":"C","text/x-csrc":"C","text/x-chdr":"CHeader","text/x-c++":"CPP","text/x-c++src":"CPP","text/x-c++hdr":"CPPHeader","text/x-shellscript":"Shell","application/x-csh":"Shell","text/x-python":"Python","text/x-java":"Java","text/x-java-source":"Java","text/x-ruby":"Ruby","text/x-perl":"Perl","text/x-sql":"SQL","text/xml":"XML","text/x-comma-separated-values":"CSV","text/x-markdown":"Markdown","image/x-ms-bmp":"BMP","image/jpeg":"JPEG","image/gif":"GIF","image/png":"PNG","image/tiff":"TIFF","image/x-targa":"TGA","image/vnd.adobe.photoshop":"PSD","image/xbm":"XBITMAP","image/pxm":"PXM","audio/mpeg":"AudioMPEG","audio/midi":"AudioMIDI","audio/ogg":"AudioOGG","audio/mp4":"AudioMPEG4","audio/x-m4a":"AudioMPEG4","audio/wav":"AudioWAV","audio/x-mp3-playlist":"AudioPlaylist","video/x-dv":"VideoDV","video/mp4":"VideoMPEG4","video/mpeg":"VideoMPEG","video/x-msvideo":"VideoAVI","video/quicktime":"VideoMOV","video/x-ms-wmv":"VideoWM","video/x-flv":"VideoFlash","video/x-matroska":"VideoMKV","video/ogg":"VideoOGG"},mimeTypes:{},rules:{defaults:function(e){return!(!e||e.added&&!Array.isArray(e.added)||e.removed&&!Array.isArray(e.removed)||e.changed&&!Array.isArray(e.changed))},open:function(t){return t&&t.cwd&&t.files&&e.isPlainObject(t.cwd)&&Array.isArray(t.files)},tree:function(e){return e&&e.tree&&Array.isArray(e.tree)},parents:function(e){return e&&e.tree&&Array.isArray(e.tree)},tmb:function(t){return t&&t.images&&(e.isPlainObject(t.images)||Array.isArray(t.images))},upload:function(t){return t&&(e.isPlainObject(t.added)||Array.isArray(t.added))},search:function(e){return e&&e.files&&Array.isArray(e.files)}},commands:{},cmdsToAdd:"archive duplicate extract mkdir mkfile paste rm upload",parseUploadData:function(t){var n,i=this;if(!e.trim(t))return{error:["errResponse","errDataEmpty"]};try{n=JSON.parse(t)}catch(a){return{error:["errResponse","errDataNotJSON"]}}return n=i.normalize(n),i.validResponse("upload",n)?(n.removed=e.merge(n.removed||[],e.map(n.added||[],function(e){return i.file(e.hash)?e.hash:null})),n):{error:n.norError||["errResponse"]}},iframeCnt:0,uploads:{xhrUploading:!1,failSyncTm:null,chunkfailReq:{},checkExists:function(t,n,i,a){var o,r=e.Deferred(),s=[],l={},c=function(){for(var e=t.length;--e>-1;)t[e]._remove=!0},d=function(){r.resolve(s,l)},p=function(){var r=[],p=[],u=n!==i.cwd().hash?i.path(n,!0)+i.option("separator",n):"",h=function(e){var n=e==p.length-1,o={cssClass:"elfinder-confirm-upload",title:i.i18n("cmdupload"),text:["errExists",u+p[e].name,"confirmRepl"],all:!n,accept:{label:"btnYes",callback:function(t){n||t?d():h(++e)}},reject:{label:"btnNo",callback:function(i){var a;if(i)for(a=p.length;e0&&delete o.reject,i.confirm(o)};return i.file(n).read?(o=e.map(t,function(e,t){return!e.name||i.UA.iOS&&"image.jpg"===e.name?null:{i:t,name:e.name}}),void i.request({data:{cmd:"ls",target:n,intersect:e.map(o,function(e){return e.name})},notify:{type:"preupload",cnt:1,hideCnt:!0},preventDefault:!0}).done(function(t){var a,s;t&&(t.error?c():i.options.overwriteUploadConfirm&&i.option("uploadOverwrite",n)&&t.list&&(Array.isArray(t.list)?r=t.list||[]:(a=[],r=e.map(t.list,function(e){return"string"==typeof e?e:(a=a.concat(e),!1)}),a.length&&(r=r.concat(a)),l=t.list),p=e.grep(o,function(t){return e.inArray(t.name,r)!==-1}),p.length&&r.length&&n==i.cwd().hash&&(s=e.map(i.files(n),function(e){return e.name}),e.grep(r,function(t){return e.inArray(t,s)===-1}).length&&i.sync()))),p.length>0?h(0):d()}).fail(function(e){c(),d(),e&&i.error(e)})):void d()};return i.api>=2.1&&"object"==typeof t[0]?p():d(),r},checkFile:function(t,n,i){if(t.checked||"files"==t.type)return t.files;if("data"==t.type){var a,o,r=e.Deferred(),s=e.Deferred(),l=[],c=[],d=0,p=[],u=!1,h=function(e){return Array.prototype.slice.call(e||[],0)},f=function(e){var t,i,a=n.options.folderUploadExclude[n.OS]||null,o=e.length,r=function(){--d<1&&"pending"===s.state()&&s.resolve()},m=function(e){a&&e.name.match(a)||(c.push(t.fullPath||""),l.push(e)),r()},i=function(e){var t=[],n=function(){e.readEntries(function(e){if(u||!e.length){for(var i=0;i=2.1&&(d++,p.push(t.fullPath),i(t.createReader())))}return r(),s};return a=e.map(t.files.items,function(e){return"file"===e.kind?(e.getAsEntry?e.getAsEntry():e.webkitGetAsEntry())||e.getAsFile():null}),e.each(a,function(e,t){if(t.isDirectory)return o=!0,!1}),a.length>0?(n.uploads.checkExists(a,i,n,o).done(function(o,s){var d=[];n.options.overwriteUploadConfirm&&n.option("uploadOverwrite",i)&&(null===o&&(t.overwrite=0,o=[]),a=e.grep(a,function(t){var a,r,l,c;return t.isDirectory&&o.length&&(a=e.inArray(t.name,o),a!==-1&&(o.splice(a,1),r=n.uniqueName(t.name+n.options.backupSuffix,null,""),e.each(s,function(e,n){if(t.name==n)return l=e,!1}),l||(l=n.fileByName(t.name,i).hash),n.lockfiles({files:[l]}),c=n.request({data:{cmd:"rename",target:l,name:r},notify:{type:"rename",cnt:1}}).fail(function(){t._remove=!0,n.sync()}).always(function(){n.unlockfiles({files:[l]})}),d.push(c))),!t._remove})),e.when.apply(e,d).done(function(){var e,t,i=+new Date;a.length>0?(t=n.escape(a[0].name),a.length>1&&(t+=" ... "+a.length+n.i18n("items")),e=setTimeout(function(){n.notify({type:"readdir",id:i,cnt:1,hideCnt:!0,msg:n.i18n("ntfreaddir")+" ("+t+")",cancel:function(){u=!0}})},n.options.notifyDelay),f(a).done(function(){e&&clearTimeout(e),n.notify({type:"readdir",id:i,cnt:-1}),u?r.reject():r.resolve([l,c,o,s,p])}).fail(function(){r.reject()})):r.reject()})}),r.promise()):r.reject()}var m=[],g=[],v=t.files[0];if("html"==t.type){var b,y=e("").append(e.parseHTML(v.replace(/ src=/gi," _elfsrc=")));e("img[_elfsrc]",y).each(function(){var n,i,a=e(this),o=a.closest("a");o&&o.attr("href")&&o.attr("href").match(/\.(?:jpe?g|gif|bmp|png)/i)&&(i=o.attr("href")),n=a.attr("_elfsrc"),n&&(i?(e.inArray(i,m)==-1&&m.push(i),e.inArray(n,g)==-1&&g.push(n)):e.inArray(n,m)==-1&&m.push(n)),1===m.length&&m[0].match(/^data:image\/png/)&&(t.clipdata=!0)}),b=e("a[href]",y),b.each(function(){var t,n,i=function(e){var t=document.createElement("a");return t.href=e,t};(t=e(this).text())&&(n=i(e(this).attr("href")),n.href&&n.href.match(/^(?:ht|f)tp/i)&&(1===b.length||!n.pathname.match(/(?:\.html?|\/[^\/.]*)$/i)||e.trim(t).match(/\.[a-z0-9-]{1,10}$/i))&&e.inArray(n.href,m)==-1&&e.inArray(n.href,g)==-1&&m.push(n.href))})}else{var w,x,k;for(w=/((?:ht|f)tps?:\/\/[-_.!~*\'()a-z0-9;/?:\@&=+\$,%#\*\[\]]+)/gi;x=w.exec(v);)k=x[1].replace(/&/g,"&"),e.inArray(k,m)==-1&&m.push(k)}return m},xhr:function(t,n){var i=n?n:this,a=i.getUI(),o=new XMLHttpRequest,r=null,s=null,l=null,c=t.checked,d=t.isDataType||"data"==t.type,p=t.target||i.cwd().hash,u=t.dropEvt||null,h=t.extraData||null,f=i.option("uploadMaxConn",p)!=-1,m=Math.min(5,Math.max(1,i.option("uploadMaxConn",p))),g=1e4,v=30,b=0,y=function(t){var n=e.Deferred();return t.promise?t.always(function(e){n.resolve(Array.isArray(e)&&e.length?d?e[0][0]:e[0]:{})}):n.resolve(t.length?d?t[0][0]:t[0]:{}),n},w=e.Deferred().fail(function(e){var t,a=i.parseError(e);"userabort"===a&&(t=!0,a=void 0),k&&(i.uploads.xhrUploading||t)?y(k).done(function(e){t||H(a,e),e._cid?i.uploads.chunkfailReq[e._cid]||(i.uploads.chunkfailReq[e._cid]=!0,setTimeout(function(){n.request({data:{cmd:"upload",target:p,chunk:e._chunk,cid:e._cid,upload:["chunkfail"],mimes:"chunkfail"},options:{type:"post",url:i.uploadURL},preventDefault:!0}).always(function(){delete i.uploads.chunkfailReq[e._chunk]})},1e3)):(i.uploads.failSyncTm&&clearTimeout(i.uploads.failSyncTm),i.uploads.failSyncTm=setTimeout(function(){i.sync(p)},1e3))}):H(a),!t&&i.sync(),i.uploads.xhrUploading=!1,k=null}).done(function(t){i.uploads.xhrUploading=!1,k=null,t&&(i.currentReqCmd="upload",t.warning&&H(t.warning),i.updateCache(t),t.removed&&t.removed.length&&i.remove(t),t.added&&t.added.length&&i.add(t),t.changed&&t.changed.length&&i.change(t),i.trigger("upload",t,!1),i.trigger("uploaddone"),t.toasts&&Array.isArray(t.toasts)&&e.each(t.toasts,function(){this.msg&&i.toast(this)}),t.sync&&i.sync(),t.debug&&(i.responseDebug(t),n.debug("backend-debug",t)))}).always(function(){i.abortXHR(o),a.off("uploadabort",F),e(window).off("unload",F),r&&clearTimeout(r),s&&clearTimeout(s),l&&clearTimeout(l),c&&!t.multiupload&&D()&&i.notify({type:"upload",cnt:-C,progress:0,size:0}),s&&M&&i.notify({type:"chunkmerge",cnt:-C}),B&&O.children(".elfinder-notify-chunkmerge").length&&i.notify({type:"chunkmerge",cnt:-1})}),x=new FormData,k=t.input?t.input.files:i.uploads.checkFile(t,i,p),C=t.checked&&d?k[0].length:k.length,z=!1,T=0,A=0,S=0,j=!1,O=i.ui.notify,I=!0,M=!1,E=!1,D=function(){return!j&&($=O.children(".elfinder-notify-upload")).length&&(j=!0),j},F=function(e,t){E=!0,i.abortXHR(o,{quiet:!0,abort:!0}),w.reject(t),D()&&i.notify({type:"upload",cnt:$.data("cnt")*-1,progress:0,size:0})},U=function(e,t){$.children(".elfinder-notify-cancel")[e?"show":"hide"](),I=e},P=function(e){return e||(e=S),setTimeout(function(){j=!0,i.notify({type:"upload",cnt:C,progress:T-A,size:e,cancel:function(){a.trigger("uploadabort","userabort")}}),$=O.children(".elfinder-notify-upload"),A=T,t.multiupload?I&&U(!0):U(I&&T=2.1029&&(e=(+new Date).toString(16)+Math.floor(1e3*Math.random()).toString(16),"function"==typeof x["delete"]&&x["delete"]("reqid"),x.append("reqid",e),o._requestId=e),o.send(x))},g)):a.trigger("uploadabort",["errAbort","errTimeout"])},R=function(){j&&w.notifyWith($,[{cnt:$.data("cnt"),progress:$.data("progress"),total:$.data("total")}])},H=function(e,t,n){e&&i.trigger("xhruploadfail",{error:e,file:t}),n?e&&(N=i.options.maxErrorDialogs&&(_=_.concat("moreErrors",N-i.options.maxErrorDialogs)),i.error(_)),_=[],N=0)},_=[],N=0,L=t.renames||null,W=t.hashes||null,B=!1,$=e();if(a.one("uploadabort",F),e(window).one("unload."+n.namespace,F),!B&&(A=T),!d&&!C)return w.reject(["errUploadNoFiles"]);o.addEventListener("error",function(){0==o.status?E?w.reject():!d&&t.files&&e.grep(t.files,function(e){return!e.type&&e.size===(i.UA.Safari?1802:0)}).length?w.reject(["errAbort","errFolderUpload"]):t.input&&e.grep(t.input.files,function(e){return!e.type&&e.size===(i.UA.Safari?1802:0)}).length?w.reject(["errUploadNoFiles"]):q():a.trigger("uploadabort","errConnect")},!1),o.addEventListener("load",function(e){var n,s,c=o.status,p=0,u="";if(i.setCustomHeaderByXhr(o),c>=400?u=c>500?"errResponse":["errResponse","errServerError"]:o.responseText||(u=["errResponse","errDataEmpty"]),u&&(a.trigger("uploadabort"),y(k||{}).done(function(e){return w.reject(e._cid?null:u)})),T=S,D()&&(p=T-A)&&(i.notify({type:"upload",cnt:0,progress:p,size:0}),R()),n=i.parseUploadData(o.responseText),n._chunkmerged){x=new FormData;var h=[{_chunkmerged:n._chunkmerged,_name:n._name,_mtime:n._mtime}];return B=!0,a.off("uploadabort",F),l=setTimeout(function(){i.notify({type:"chunkmerge",cnt:1})},i.options.notifyDelay),void(d?V(h,k[1]):V(h))}n._multiupload=!!t.multiupload,n.error?(s={cmd:"upload",err:n,xhr:o,rc:o.status},i.trigger("uploadfail",n),i.trigger("requestError",s),s._getEvent&&s._getEvent().isDefaultPrevented()&&(n.error=""),n._chunkfailure||n._multiupload?(E=!0,i.uploads.xhrUploading=!1,r&&clearTimeout(r),$.length?(i.notify({type:"upload",cnt:-C,progress:0,size:0}),w.reject(n)):w.reject()):w.reject(n)):w.resolve(n)},!1),o.upload.addEventListener("loadstart",function(e){!B&&e.lengthComputable&&(T=e.loaded,b&&(T=0),S=e.total,T||(T=parseInt(.05*S)),D()&&(i.notify({type:"upload",cnt:0,progress:T-A,size:t.multiupload?0:S}),A=T,R()))},!1),o.upload.addEventListener("progress",function(e){var n;e.lengthComputable&&!B&&o.readyState<2&&(T=e.loaded,!t.checked&&T>0&&!r&&(r=P(o._totalSize-T)),S||(S=e.total,T||(T=parseInt(.05*S))),n=T-A,D()&&n/e.total>=.05&&(i.notify({type:"upload",cnt:0,progress:n,size:0}),A=T,R()),!M&&T>=S&&!z&&(M=!0,s=setTimeout(function(){i.notify({type:"chunkmerge",cnt:C})},i.options.notifyDelay)),I&&!t.multiupload&&T>=S&&D()&&U(!1))},!1);var V=function(a,s){var l,g,v,b,y,k,T,A,S,j,O,M,F,q,R,N=0,B=1,$=[],V=0,K=C,X=0,J=[],G=(new Date).getTime().toString().substr(-9),Y=Math.min((n.uplMaxSize?n.uplMaxSize:2097152)-8190,n.options.uploadMaxChunkSize),Q=!f&&"",Z=function(a,o){var s,l,c,h=[],f=0;if(!E){for(;a.length&&h.length=2.1&&("slice"in S?Q="slice":"mozSlice"in S?Q="mozSlice":"webkitSlice"in S&&(Q="webkitSlice")))}catch(te){C--,K--;continue}if(l&&g>l||!Q&&n.uplMaxSize&&g>n.uplMaxSize)H(["errUploadFile",S.name,"errUploadFileSize"],S,!0),C--,K--;else if(!S.type||i.uploadMimeCheck(S.type,p))if(Q&&g>Y){for(k=0,T=Y,A=-1,K=Math.floor((g-1)/Y),v=S.lastModified?Math.round(S.lastModified/1e3):0,b=t.clipdata?n.date(n.nonameDateFormat)+".png":S.name,X+=g,J[G]=0;kn.uplMaxSize||B>n.uplMaxFile)&&(N=0,B=1,V++),"undefined"==typeof $[V]&&($[V]=[],d&&($[V][0]=[],$[V][1]=[])),d?($[V][0].push(S),$[V][1].push(s[y])):$[V].push(S),N+=g,X+=g,B++;else H(["errUploadFile",S.name,"errUploadMime","("+S.type+")"],S,!0),C--,K--}if(_.length&&H(),0==$.length)return t.checked=!0,!1;if($.length>1)return r=P(X),O=[],M=0,F=$.length,q=[],ee(),!0;d?(a=$[0][0],s=$[0][1]):a=$[0]}return c||(n.UA.Safari&&t.files?o._totalSize=X:r=P(X)),c=!0,a.length||w.reject(["errUploadNoFiles"]),o.open("POST",i.uploadURL,!0),n.customHeaders&&e.each(n.customHeaders,function(e){o.setRequestHeader(e,this)}),n.xhrFields&&e.each(n.xhrFields,function(e){e in o&&(o[e]=this)}),i.api>=2.1029&&(R=(+new Date).toString(16)+Math.floor(1e3*Math.random()).toString(16),x.append("reqid",R),o._requestId=R),x.append("cmd","upload"),x.append(i.newAPI?"target":"current",p),L&&L.length&&(e.each(L,function(e,t){x.append("renames[]",t)}),x.append("suffix",n.options.backupSuffix)),W&&e.each(W,function(e,t){x.append("hashes["+e+"]",t)}),e.each(i.customData,function(e,t){x.append(e,t)}),e.each(i.options.onlyMimes,function(e,t){x.append("mimes[]",t)}),e.each(a,function(e,i){var a,o;i._chunkmerged?(x.append("chunk",i._chunkmerged),x.append("upload[]",i._name),x.append("mtime[]",i._mtime),t.clipdata&&x.append("overwrite",0),z=!0):(i._chunkfail?(x.append("upload[]","chunkfail"),x.append("mimes","chunkfail")):(t.clipdata?i._chunk||(t.overwrite=0,a=n.date(n.nonameDateFormat)+".png"):i.name&&(a=i.name,n.UA.iOS&&(a.match(/^image\.jpe?g$/i)?(t.overwrite=0,a=n.date(n.nonameDateFormat)+".jpg"):a.match(/^capturedvideo\.mov$/i)&&(t.overwrite=0,a=n.date(n.nonameDateFormat)+".mov")),o=(i.webkitRelativePath||i.relativePath||i._relativePath||"").replace(/[^\/]+$/,""),a=o+a),a?x.append("upload[]",i,a):x.append("upload[]",i)),i._chunk?(x.append("chunk",i._chunk),x.append("cid",i._cid),x.append("range",i._range),x.append("mtime[]",i._mtime),z=!0):x.append("mtime[]",i.lastModified?Math.round(i.lastModified/1e3):0))}),d&&e.each(s,function(e,t){x.append("upload_path[]",t)}),0===t.overwrite&&x.append("overwrite",0),u&&x.append("dropWith",parseInt((u.altKey?"1":"0")+(u.ctrlKey?"1":"0")+(u.metaKey?"1":"0")+(u.shiftKey?"1":"0"),2)),h&&e.each(h,function(e,t){x.append(e,t)}),o.send(x),!0};if(d)c?V(k[0],k[1]):k.done(function(t){if(L=[],C=t[0].length){if(t[4]&&t[4].length)return void n.request({data:{cmd:"mkdir",target:p,dirs:t[4]},notify:{type:"mkdir",cnt:t[4].length},preventFail:!0}).fail(function(e){e=e||["errUnknown"],"errCmdParams"===e[0]?m=1:(m=0,w.reject(e))}).done(function(n){var i=!1;n.hashes||(n.hashes={}),t[1]=e.map(t[1],function(e,a){return t[0][a]._relativePath=e.replace(/^\//,""),e=e.replace(/\/[^\/]*$/,""),""===e?p:n.hashes[e]?n.hashes[e]:(i=!0,t[0][a]._remove=!0,null)}),i&&(t[0]=e.grep(t[0],function(e){return!e._remove}))}).always(function(e){m&&(L=t[2],W=t[3],V(t[0],t[1]))});t[1]=e.map(t[1],function(){return p}),L=t[2],W=t[3],V(t[0],t[1])}else w.reject(["errUploadNoFiles"])}).fail(function(){w.reject()});else if(k.length>0)if(t.clipdata||null!=L)V(k)||w.reject();else{var K=[],X=[],J=n.options.folderUploadExclude[n.OS]||null;e.each(k,function(t,n){var i,a,o=n.webkitRelativePath||n.relativePath||"";return!!o&&(J&&n.name.match(J)?(n._remove=!0,o=void 0):(o="/"+o.replace(/\/[^\/]*$/,"").replace(/^\//,""),o&&e.inArray(o,K)===-1&&(K.push(o),i=o.substr(1).indexOf("/"),i!==-1&&(a=o.substr(0,i+1))&&e.inArray(a,K)===-1&&K.unshift(a))),void X.push(o))}),L=[],W={},K.length?!function(){var t=e.map(K,function(e){return e.substr(1).indexOf("/")===-1?{name:e.substr(1)}:null}),i=[];n.uploads.checkExists(t,p,n,!0).done(function(a,o){var r,s,l,c=[];n.options.overwriteUploadConfirm&&n.option("uploadOverwrite",p)&&(i=e.map(t,function(e){return e._remove?e.name:null}),t=e.grep(t,function(e){return!e._remove})),i.length&&e.each(X.concat(),function(t,n){0===e.inArray(n,i)&&(k[t]._remove=!0,X[t]=void 0)}),k=e.grep(k,function(e){return!e._remove}),X=e.grep(X,function(e){return void 0!==e}),t.length?(r=e.Deferred(),a.length?e.each(a,function(t,i){s=n.uniqueName(i+n.options.backupSuffix,null,""),e.each(o,function(e,t){if(a[0]==t)return l=e,!1}),l||(l=n.fileByName(a[0],p).hash),n.lockfiles({files:[l]}),c.push(n.request({data:{cmd:"rename",target:l,name:s},notify:{type:"rename",cnt:1}}).fail(function(e){w.reject(e),n.sync()}).always(function(){n.unlockfiles({files:[l]})}))}):c.push(null),e.when.apply(e,c).done(function(){n.request({data:{cmd:"mkdir",target:p,dirs:K},notify:{type:"mkdir",cnt:K.length},preventFail:!0}).fail(function(e){e=e||["errUnknown"],"errCmdParams"===e[0]?m=1:(m=0,w.reject(e))}).done(function(t){var n=!1;t.hashes||(t.hashes={}),X=e.map(X.concat(),function(e,i){return"/"===e?p:t.hashes[e]?t.hashes[e]:(n=!0,k[i]._remove=!0,null)}),n&&(k=e.grep(k,function(e){return!e._remove}))}).always(function(e){m&&(d=!0,V(k,X)||w.reject())})})):w.reject()})}():n.uploads.checkExists(k,p,n).done(function(i,a){n.options.overwriteUploadConfirm&&n.option("uploadOverwrite",p)&&(W=a,null===i?t.overwrite=0:L=i,k=e.grep(k,function(e){return!e._remove})),C=k.length,C>0?V(k)||w.reject():w.reject()})}else w.reject();return w},iframe:function(t,n){var i,a,o,r,s=n?n:this,l=!!t.input&&t.input,c=!l&&s.uploads.checkFile(t,s),d=e.Deferred().fail(function(e){e&&s.error(e)}),p="iframe-"+n.namespace+ ++s.iframeCnt,u=e('
          '),h=this.UA.IE,f=function(){r&&clearTimeout(r),o&&clearTimeout(o),a&&s.notify({type:"upload",cnt:-i}),setTimeout(function(){h&&e('').appendTo(u),u.remove(),m.remove()},100)},m=e('').on("load",function(){m.off("load").on("load",function(){f(),d.resolve()}),o=setTimeout(function(){a=!0,s.notify({type:"upload",cnt:i})},s.options.notifyDelay),s.options.iframeTimeout>0&&(r=setTimeout(function(){f(),d.reject(["errConnect","errTimeout"])},s.options.iframeTimeout)),u.submit()}),g=t.target||s.cwd().hash,v=[],b=[],y=[],w={};if(c&&c.length)e.each(c,function(e,t){u.append('')}),i=1;else{if(!(l&&e(l).is(":file")&&e(l).val()))return d.reject();n.options.overwriteUploadConfirm&&n.option("uploadOverwrite",g)&&(v=l.files?l.files:[{ -name:e(l).val().replace(/^(?:.+[\\\/])?([^\\\/]+)$/,"$1")}],b.push(s.uploads.checkExists(v,g,s).done(function(n,a){w=a,null===n?t.overwrite=0:(y=n,i=e.grep(v,function(e){return!e._remove}).length,i!=v.length&&(i=0))}))),i=l.files?l.files.length:1,u.append(l)}return e.when.apply(e,b).done(function(){return i<1?d.reject():(u.append('').append('').append('').append(e(l).attr("name","upload[]")),y.length>0&&(e.each(y,function(e,t){u.append('')}),u.append('')),w&&e.each(y,function(e,t){u.append('')}),0===t.overwrite&&u.append(''),e.each(s.options.onlyMimes||[],function(e,t){u.append('')}),e.each(s.customData,function(e,t){u.append('')}),u.appendTo("body"),void m.appendTo("body"))}),d}},one:function(e,t,n){var i=this,a=e.toLowerCase(),o=function(e,n){return i.toUnbindEvents[a]||(i.toUnbindEvents[a]=[]),i.toUnbindEvents[a].push({type:a,callback:o}),(t.done?t.done:t).apply(this,arguments)};return t.done&&(o={done:o}),this.bind(a,o,n)},localStorage:function(t,n){var i,a,o,r,s,l=this,c=window.localStorage,d="elfinder-"+(t||"")+this.id,p=window.location.pathname+"-elfinder-",u=this.id,h=[];if("undefined"==typeof t)return r=p.length,s=u.length*-1,e.each(c,function(e){e.substr(0,r)===p&&e.substr(s)===u&&h.push(e)}),e.each(h,function(e,t){c.removeItem(t)}),!0;if(t=p+t+u,null===n)return c.removeItem(t);if(void 0===n&&!(i=c.getItem(t))&&(a=c.getItem(d))&&(n=a,c.removeItem(d)),void 0!==n){o=typeof n,"string"!==o&&"number"!==o&&(n=JSON.stringify(n));try{c.setItem(t,n)}catch(f){try{c.clear(),c.setItem(t,n)}catch(f){l.debug("error",f.toString())}}i=c.getItem(t)}if(i&&("{"===i.substr(0,1)||"["===i.substr(0,1)))try{return JSON.parse(i)}catch(f){}return i},sessionStorage:function(e,t){var n,i,a,o=this;try{n=window.sessionStorage}catch(r){}if(n){if(null===t)return n.removeItem(e);if(void 0!==t){a=typeof t,"string"!==a&&"number"!==a&&(t=JSON.stringify(t));try{n.setItem(e,t)}catch(r){try{n.clear(),n.setItem(e,t)}catch(r){o.debug("error",r.toString())}}}if(i=n.getItem(e),i&&("{"===i.substr(0,1)||"["===i.substr(0,1)))try{return JSON.parse(i)}catch(r){}return i}},cookie:function(t,n){var i,a,o,r,s,l;if(t="elfinder-"+t+this.id,void 0===n){if(this.cookieEnabled&&document.cookie&&""!=document.cookie)for(o=document.cookie.split(";"),t+="=",r=0;r"),escape:function(e){return this._node.text(e).html().replace(/"/g,""").replace(/'/g,"'")},normalize:function(t){var n,i,a,o,r,s=this,l=function(){var e,t;return(t=s.options.fileFilter)&&("function"==typeof t?e=function(e){return t.call(s,e)}:t instanceof RegExp&&(e=function(e){return t.test(e.name)})),e?e:null}(),c=function(t){var n;t.uiCmdMap&&(e.isPlainObject(t.uiCmdMap)&&Object.keys(t.uiCmdMap).length?(t.disabledFlip||(t.disabledFlip={}),n=t.disabledFlip,e.each(t.uiCmdMap,function(e,i){"hidden"!==i||n[e]||(t.disabled.push(e),t.disabledFlip[e]=!0)})):delete t.uiCmdMap)},d=function(t){var n=function(e){var t=typeof e;return"object"===t&&Array.isArray(e)&&(t="array"),t};return e.each(s.optionProperties,function(e,i){void 0!==i&&t[e]&&n(t[e])!==n(i)&&(t[e]=i)}),t.disabled?(t.disabledFlip=s.arrayFlip(t.disabled,!0),e.each(s.options.disabledCmdsRels,function(n,i){var a,o;t.disabledFlip[n]?o=!0:(a=n.match(/^([^&]+)&([^=]+)=(.*)$/))&&t.disabledFlip[a[1]]&&t[a[2]]==a[3]&&(o=!0),o&&e.each(i,function(e,n){t.disabledFlip[n]||(t.disabledFlip[n]=!0,t.disabled.push(n))})})):t.disabledFlip={},t},p=function(t,r,p){var u,h,m,g,v=!r||t,b=!!r&&null;if(t&&t.hash&&t.name&&t.mime){if("application/x-empty"===t.mime&&(t.mime="text/plain"),m=s.isRoot(t),m&&!t.volumeid&&s.debug("warning","The volume root statuses requires `volumeid` property."),m||"directory"===t.mime){if(t.phash){if(t.phash===t.hash)return f=f.concat(['Parent folder of "$1" is itself.',t.name]),b;if(m&&t.volumeid&&0===t.phash.indexOf(t.volumeid))return f=f.concat(['Parent folder of "$1" is inner itself.',t.name]),b}t.volumeid&&(u=t.volumeid,m&&(t.phash&&(s.leafRoots[t.phash]?e.inArray(t.hash,s.leafRoots[t.phash])===-1&&s.leafRoots[t.phash].push(t.hash):s.leafRoots[t.phash]=[t.hash]),s.hasVolOptions=!0,s.volOptions[u]||(s.volOptions[u]={dispInlineRegex:s.options.dispInlineRegex}),h=s.volOptions[u],t.options&&Object.assign(h,t.options),t.disabled&&(h.disabled=t.disabled,h.disabledFlip=s.arrayFlip(t.disabled,!0)),t.tmbUrl&&(h.tmbUrl=t.tmbUrl),h.url&&"/"!==h.url.substr(-1)&&(h.url+="/"),c(h),h.trashHash&&(s.trashes[h.trashHash]===!1?delete h.trashHash:s.trashes[h.trashHash]=t.hash),e.each(s.optionProperties,function(e){h[e]&&(t[e]=h[e])}),"cwd"!==p&&(s.roots[u]=t.hash),t.expires&&(s.volumeExpires[u]=t.expires)),o!==u&&(o=u,a=s.option("i18nFolderName",u))),m&&!t.i18&&(n="volume_"+t.name,i=s.i18n(!1,n),n!==i&&(t.i18=i)),a&&!t.i18&&(n="folder_"+t.name,i=s.i18n(!1,n),n!==i&&(t.i18=i)),m&&(g=s.storage("rootNames"))&&(g[t.hash]&&(t._name=t.name,t._i18=t.i18,t.name=g[t.hash]=g[t.hash],delete t.i18),s.storage("rootNames",g)),s.trashes[t.hash]&&(t.locked=!0)}else{if(l)try{if(!l(t))return b}catch(y){s.debug(y)}0==t.size&&(t.mime=s.getMimetype(t.name,t.mime))}return t.options&&(s.optionsByHashes[t.hash]=d(t.options)),delete t.options,v}return b},u=function(t){var n=[];return e.each(s.files(),function(i,a){e.each(s.parents(i),function(a,o){if(e.inArray(o,t)!==-1&&e.inArray(i,t)===-1)return n.push(i),!1})}),n},h=function(n,i){e.each(n,function(n,a){var o,r;s.leafRoots[a.hash]&&s.applyLeafRootStats(a),"change"!==i&&a.phash&&s.isRoot(a)&&(o=s.file(a.phash))&&(s.applyLeafRootStats(o),t.changed?(e.each(t.changed,function(e,n){if(n.hash===o.hash)return t.changed[e]=o,r=!0,!1}),r||t.changed.push(o)):t.changed=[o])})},f=[];if(t.customData&&(!s.prevCustomData||JSON.stringify(t.customData)!==JSON.stringify(s.prevCustomData))){s.prevCustomData=t.customData;try{r=JSON.parse(t.customData),e.isPlainObject(r)&&(s.prevCustomData=r,e.each(Object.keys(r),function(e,t){null===r[t]&&(delete r[t],delete s.optsCustomData[t])}),s.customData=Object.assign({},s.optsCustomData,r))}catch(m){}}return t.options&&d(t.options),t.cwd&&(t.cwd.volumeid&&t.options&&Object.keys(t.options).length&&s.isRoot(t.cwd)&&(s.hasVolOptions=!0,s.volOptions[t.cwd.volumeid]=t.options),t.cwd=p(t.cwd,!0,"cwd")),t.files&&(t.files=e.grep(t.files,p)),t.tree&&(t.tree=e.grep(t.tree,p)),t.added&&(t.added=e.grep(t.added,p)),t.changed&&(t.changed=e.grep(t.changed,p)),t.removed&&t.removed.length&&2===s.searchStatus.state&&(t.removed=t.removed.concat(u(t.removed))),t.api&&(t.init=!0),Object.keys(s.leafRoots).length&&(t.files&&h(t.files),t.tree&&h(t.tree),t.added&&h(t.added),t.changed&&h(t.changed,"change")),t.cwd&&t.cwd.options&&t.options&&Object.assign(t.options,d(t.cwd.options)),t.options&&t.options.url&&"/"!==t.options.url.substr(-1)&&(t.options.url+="/"),f.length&&(t.norError=["errResponse"].concat(f)),t},setSort:function(e,t,n,i){this.storage("sortType",this.sortType=this.sortRules[e]?e:"name"),this.storage("sortOrder",this.sortOrder=/asc|desc/.test(t)?t:"asc"),this.storage("sortStickFolders",(this.sortStickFolders=!!n)?1:""),this.storage("sortAlsoTreeview",(this.sortAlsoTreeview=!!i)?1:""),this.trigger("sortchange")},_sortRules:{name:function(e,t){return i.prototype.naturalCompare(e.i18||e.name,t.i18||t.name)},size:function(e,t){var n=parseInt(e.size)||0,i=parseInt(t.size)||0;return n===i?0:n>i?1:-1},kind:function(e,t){return i.prototype.naturalCompare(e.mime,t.mime)},date:function(e,t){var n=e.ts||e.date||0,i=t.ts||t.date||0;return n===i?0:n>i?1:-1},perm:function(e,t){var n=function(e){return(e.write?2:0)+(e.read?1:0)},i=n(e),a=n(t);return i===a?0:i>a?1:-1},mode:function(e,t){var n=e.mode||e.perm||"",a=t.mode||t.perm||"";return i.prototype.naturalCompare(n,a)},owner:function(e,t){var n=e.owner||"",a=t.owner||"";return i.prototype.naturalCompare(n,a)},group:function(e,t){var n=e.group||"",a=t.group||"";return i.prototype.naturalCompare(n,a)}},sorters:{},naturalCompare:function(e,t){var n=i.prototype.naturalCompare;return"undefined"==typeof n.loc&&(n.loc=navigator.userLanguage||navigator.browserLanguage||navigator.language||"en-US"),"undefined"==typeof n.sort&&("11".localeCompare("2",n.loc,{numeric:!0})>0?window.Intl&&window.Intl.Collator?n.sort=new Intl.Collator(n.loc,{numeric:!0}).compare:n.sort=function(e,t){return e.localeCompare(t,n.loc,{numeric:!0})}:(n.sort=function(e,t){var i,a,o=/(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi,r=/(^[ ]*|[ ]*$)/g,s=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,l=/^0x[0-9a-f]+$/i,c=/^0/,d=/^[\x01\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]/,p=function(e){return n.sort.insensitive&&(""+e).toLowerCase()||""+e},u=p(e).replace(r,"").replace(/^_/,"")||"",h=p(t).replace(r,"").replace(/^_/,"")||"",f=u.replace(o,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),m=h.replace(o,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),g=parseInt(u.match(l))||1!=f.length&&u.match(s)&&Date.parse(u),v=parseInt(h.match(l))||g&&h.match(s)&&Date.parse(h)||null,b=0;if(v){if(gv)return 1}for(var y=0,w=Math.max(f.length,m.length);ya)return 1}return 0},n.sort.insensitive=!0)),n.sort(e,t)},compare:function(e,t){var n,i=this,a=i.sortType,o="asc"==i.sortOrder,r=i.sortStickFolders,s=i.sortRules,l=s[a],c="directory"==e.mime,d="directory"==t.mime;if(r){if(c&&!d)return-1;if(!c&&d)return 1}return n=o?l(e,t):l(t,e),"name"!==a&&0===n?n=o?s.name(e,t):s.name(t,e):n},sortFiles:function(e){return e.sort(this.compare)},notify:function(t){var n,i,a,o=this,r=t.type,s=t.id?"elfinder-notify-"+t.id:"",l=this.i18n("undefined"!=typeof t.msg?t.msg:this.messages["ntf"+r]?"ntf"+r:"ntfsmth"),c=this.arrayFlip(this.options.notifyDialog.hiddens||[]),d=this.ui.notify,p=d.closest(".ui-dialog"),u=d.children(".elfinder-notify-"+r+(s?"."+s:"")),h=u.children("div.elfinder-notify-cancel").children("button"),f='
          {msg}
          ',m=t.cnt+0,g="undefined"!=typeof t.size?parseInt(t.size):null,v="undefined"!=typeof t.progress&&t.progress>=0?t.progress:null,b=t.fakeinterval||200,y=t.cancel,w="ui-state-hover",x=function(){var t=u.find(".elfinder-notify-progress"),n=function(){u.remove(),d.children(p.data("minimized")?void 0:":visible").length||(p.data("minimized")?p.data("minimized").hide():d.elfinderdialog("close")),C()};u._esc&&e(document).off("keydown",u._esc),u.data("cur")<100?t.animate({width:"100%"},50,function(){requestAnimationFrame(function(){n()})}):n()},k=function(e){var t;u.length&&(t=u.data("cur")+1,t<=98&&(u.find(".elfinder-notify-progress").width(t+"%"),u.data("cur",t),C(),setTimeout(function(){e*=1.05,k(e)},e)))},C=function(){var t,n=0,i=0,a=d.children(".elfinder-notify");a.length?(a.each(function(){n++,i+=Math.min(e(this).data("cur"),100)}),t=n?Math.floor(i/(100*n)*100)+"%":0,o.ui.progressbar.width(t),p.data("minimized")&&(p.data("minimized").title(t),p.data("minimized").dialog().children(".ui-dialog-titlebar").children(".elfinder-ui-progressbar").width(t))):(o.ui.progressbar.width(0),p.data("minimized")&&p.data("minimized").hide())};return r?(u.length?"undefined"!=typeof t.msg&&u.children("span.elfinder-notify-msg").html(l):(u=e(f.replace(/\{type\}/g,r).replace(/\{msg\}/g,l)),c[r]?u.hide():d.on("minimize",function(e){p.data("minimized")&&C()}),u.appendTo(d).data("cnt",0),null!=v?u.data({progress:0,total:0,cur:0}):(u.data({cur:0}),k(b)),y&&(h=e('').on("mouseenter mouseleave",function(t){e(this).toggleClass(w,"mouseenter"===t.type)}),u.children("div.elfinder-notify-cancel").append(h)),d.trigger("resize")),n=m+parseInt(u.data("cnt")),n>0?(y&&h.length&&("function"==typeof y||"object"==typeof y&&y.promise)&&(u._esc=function(t){"keydown"==t.type&&t.keyCode!=e.ui.keyCode.ESCAPE||(t.preventDefault(),t.stopPropagation(),x(),y.promise?y.reject(0):y(t))},h.on("click",function(e){u._esc(e)}),e(document).on("keydown."+this.namespace,u._esc)),!t.hideCnt&&u.children(".elfinder-notify-cnt").text("("+n+")"),m>0&&d.is(":hidden")&&!c[r]&&(p.data("minimized")?p.data("minimized").show():d.elfinderdialog("open",this).height("auto")),u.data("cnt",n),null!=v&&(i=u.data("total"))>=0&&(a=u.data("progress"))>=0&&(i+=null!=g?g:m,a+=v,null==g&&m<0&&(a+=100*m),u.data({progress:a,total:i}),null!=g&&(a*=100,i=Math.max(1,i)),v=Math.min(parseInt(a/i),100),u.find(".elfinder-notify-progress").animate({width:(v<100?v:100)+"%"},20,function(){u.data("cur",v),C()}))):x(),this):this},confirm:function(t){var n,i,a=this,o=!1,r={cssClass:"elfinder-dialog-confirm",modal:!0,resizable:!1,title:this.i18n(t.title||"confirmReq"),buttons:{},close:function(){!o&&t.cancel.callback(),e(this).elfinderdialog("destroy")}},s=this.i18n("apllyAll");return t.cssClass&&(r.cssClass+=" "+t.cssClass),r.buttons[this.i18n(t.accept.label)]=function(){t.accept.callback(!(!n||!n.prop("checked"))),o=!0,e(this).elfinderdialog("close")},r.buttons[this.i18n(t.accept.label)]._cssClass="elfinder-confirm-accept",t.reject&&(r.buttons[this.i18n(t.reject.label)]=function(){t.reject.callback(!(!n||!n.prop("checked"))),o=!0,e(this).elfinderdialog("close")},r.buttons[this.i18n(t.reject.label)]._cssClass="elfinder-confirm-reject"),t.buttons&&t.buttons.length>0&&(i=1,e.each(t.buttons,function(t,s){r.buttons[a.i18n(s.label)]=function(){s.callback(!(!n||!n.prop("checked"))),o=!0,e(this).elfinderdialog("close")},r.buttons[a.i18n(s.label)]._cssClass="elfinder-confirm-extbtn"+i++,s.cssClass&&(r.buttons[a.i18n(s.label)]._cssClass+=" "+s.cssClass)})),r.buttons[this.i18n(t.cancel.label)]=function(){e(this).elfinderdialog("close")},r.buttons[this.i18n(t.cancel.label)]._cssClass="elfinder-confirm-cancel",t.all&&(r.create=function(){var t=e('
          ');n=e(''),e(this).next().find(".ui-dialog-buttonset").prepend(t.append(e("").prepend(n)))}),t.optionsCallback&&"function"==typeof t.optionsCallback&&t.optionsCallback(r),this.dialog(''+this.i18n(t.text),r)},uniqueName:function(e,t,n){var i,a,o=0,r="";if(e=this.i18n(!1,e),t=t||this.cwd().hash,n="undefined"==typeof n?" ":n,(i=e.match(/^(.+)(\.[^.]+)$/))&&(r=i[2],e=i[1]),a=e+r,!this.fileByName(a,t))return a;for(;o<1e4;)if(a=e+n+ ++o+r,!this.fileByName(a,t))return a;return e+Math.random()+r},i18n:function(){var t,n,i,a,o,r=this,s=this.messages,l=[],c=[],d=function(e){var t;return 0===e.indexOf("#")&&(t=r.file(e.substr(1)))?t.name:e},p=0;for(arguments.length&&arguments[0]===!1&&(a=function(e){return e},p=1),t=p;t0&&l[n]&&c.push(n),i=a?a(l[n]):r.escape(l[n]),o&&(i=''+i+""),i})):i=i.get(0).outerHTML,l[t]=i);return e.grep(l,function(t,n){return e.inArray(n,c)===-1}).join("
          ")},getIconStyle:function(t,n){var i=this,a={background:"url('{url}') 0 0 no-repeat","background-size":"contain"},o="",r={},s=0;return t.icon&&(o='style="',e.each(a,function(e,a){0===s++&&(a=a.replace("{url}",i.escape(t.icon))),n?r[e]=a:o+=e+":"+a+";"}),o+='"'),n?r:o},mime2class:function(e){var t="elfinder-cwd-icon-",n=e.toLowerCase(),i=this.textMimes[n];return n=n.split("/"),i?n[0]+=" "+t+"text":n[1]&&n[1].match(/\+xml$/)&&(n[0]+=" "+t+"xml"),t+n[0]+(n[1]?" "+t+n[1].replace(/(\.|\+)/g,"-"):"")},mime2kind:function(e){var t,n="object"==typeof e,i=n?e.mime:e;return n&&e.alias&&"symlink-broken"!=i?t="Alias":this.kinds[i]?t=!n||"directory"!==i||e.phash&&!e.isroot?this.kinds[i]:"Root":this.mimeTypes[i]&&(t=this.mimeTypes[i].toUpperCase(),this.messages["kind"+t]||(t=null)),t||(t=0===i.indexOf("text")?"Text":0===i.indexOf("image")?"Image":0===i.indexOf("audio")?"Audio":0===i.indexOf("video")?"Video":0===i.indexOf("application")?"App":i),this.messages["kind"+t]?this.i18n("kind"+t):i},mimeIsText:function(e){return!!(this.textMimes[e.toLowerCase()]||0===e.indexOf("text/")&&"rtf"!==e.substr(5,3)||e.match(/^application\/.+\+xml$/))},date:function(e,t){var n,i,a,o,r,s,l,c,d,p=this;return t||(t=new Date),s=t[p.getHours](),l=s>12?s-12:s,c=t[p.getMinutes](),d=t[p.getSeconds](),i=t[p.getDate](),a=t[p.getDay](),o=t[p.getMonth]()+1,r=t[p.getFullYear](),n=e.replace(/[a-z]/gi,function(e){switch(e){case"d":return i>9?i:"0"+i;case"j":return i;case"D":return p.i18n(p.i18.daysShort[a]);case"l":return p.i18n(p.i18.days[a]);case"m":return o>9?o:"0"+o;case"n":return o;case"M":return p.i18n(p.i18.monthsShort[o-1]);case"F":return p.i18n(p.i18.months[o-1]);case"Y":return r;case"y":return(""+r).substr(2);case"H":return s>9?s:"0"+s;case"G":return s;case"g":return l;case"h":return l>9?l:"0"+l;case"a":return s>=12?"pm":"am";case"A":return s>=12?"PM":"AM";case"i":return c>9?c:"0"+c;case"s":return d>9?d:"0"+d}return e})},formatDate:function(e,t){var n,i,a,o=this,r=t||e.ts;o.i18;return o.options.clientFormatDate&&r>0?(n=new Date(1e3*r),i=r>=this.yesterday?this.fancyFormat:this.dateFormat,a=o.date(i,n),r>=this.yesterday?a.replace("$1",this.i18n(r>=this.today?"Today":"Yesterday")):a):e.date?e.date.replace(/([a-z]+)\s/i,function(e,t){return o.i18n(t)+" "}):o.i18n("dateUnknown")},toLocaleString:function(e){var t=new Number(e);return t?t.toLocaleString?t.toLocaleString():String(e).replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"):e},perms2class:function(e){var t="";return e.read||e.write?e.read?e.write||(t="elfinder-ro"):t="elfinder-wo":t="elfinder-na",e.type&&(t+=" elfinder-"+this.escape(e.type)),t},formatPermissions:function(e){var t=[];return e.read&&t.push(this.i18n("read")),e.write&&t.push(this.i18n("write")),t.length?t.join(" "+this.i18n("and")+" "):this.i18n("noaccess")},formatSize:function(e){var t=1,n="b";return"unknown"==e?this.i18n("unknown"):(e>1073741824?(t=1073741824,n="GB"):e>1048576?(t=1048576,n="MB"):e>1024&&(t=1024,n="KB"),e/=t,(e>0?t>=1048576?e.toFixed(2):Math.round(e):0)+" "+n)},formatFileMode:function(t,n){var i,a,o,r,s,l,c,d,p;if(n||(n=this.options.fileModeStyle.toLowerCase()),t=e.trim(t),t.match(/[rwxs-]{9}$/i)){if(d=t=t.substr(-9),"string"==n)return d;for(p="",o=0,i=0;i<7;i+=3)a=t.substr(i,3),r=0,a.match(/[r]/i)&&(r+=4),a.match(/[w]/i)&&(r+=2),a.match(/[xs]/i)&&(a.match(/[xs]/)&&(r+=1),a.match(/[s]/i)&&(0==i?o+=4:3==i&&(o+=2))),p+=r.toString(8);o&&(p=o.toString(8)+p)}else{if(t=parseInt(t,8),p=t?t.toString(8):"",!t||"octal"==n)return p;for(a=t.toString(8),o=0,a.length>3&&(a=a.substr(-4),o=parseInt(a.substr(0,1),8),a=a.substr(1)),s=1==(1&o),c=2==(2&o),l=4==(4&o),d="",i=0;i<3;i++)d+=4==(4&parseInt(a.substr(i,1),8))?"r":"-",d+=2==(2&parseInt(a.substr(i,1),8))?"w":"-",d+=1==(1&parseInt(a.substr(i,1),8))?0==i&&l||1==i&&c?"s":"x":"-"}return"both"==n?d+" ("+p+")":"string"==n?d:p},registRawStringDecoder:function(e){"function"==typeof e&&(this.decodeRawString=this.options.rawStringDecoder=e)},uploadMimeCheck:function(t,n){n=n||this.cwd().hash;var i,a,o=!0,r=this.option("uploadMime",n),s=function(n){var i=!1;return"string"==typeof n&&"all"===n.toLowerCase()?i=!0:Array.isArray(n)&&n.length&&e.each(n,function(e,n){if(n=n.toLowerCase(),"all"===n||0===t.indexOf(n))return i=!0,!1}),i};return t&&e.isPlainObject(r)&&(t=t.toLowerCase(),i=s(r.allow),a=s(r.deny),"allow"===r.firstOrder?(o=!1,a||i!==!0||(o=!0)):(o=!0,a!==!0||i||(o=!1))),o},sequence:function(e){var t=e.length,n=function(t,i){return++i,e[i]?n(t.then(e[i]),i):t};return t>1?n(e[0](),0):e[0]()},reloadContents:function(t){var n,i=e.Deferred();try{n=e('';d.remove(),e(x).appendTo("body").ready(function(){setTimeout(function(){e(x).each(function(){e("#"+e(this).attr("id")).remove()})},2e4+1e4*i)}),b.trigger("download",{files:y}),w.resolve()}),u=y.length,g=[],i=0;i');return t&&e.each(t,function(e,t){a=i.escape(t.value),o.append('")}),e.each(n.options.encodings,function(e,t){o.append('")}),o},d=function(){var t,a,o=i.options.dialogContained?i.getUI():e(window);return a="string"==typeof n.options.dialogWidth&&(t=n.options.dialogWidth.match(/(\d+)%/))?parseInt(o.width()*(t[1]/100)):parseInt(n.options.dialogWidth||650),Math.min(a,o.width())},p=function(){if(n.options.dialogHeight){var t,a,o=i.options.dialogContained?i.getUI():e(window);return a="string"==typeof n.options.dialogHeight&&(t=n.options.dialogHeight.match(/(\d+)%/))?parseInt(o.height()*(t[1]/100)):parseInt(n.options.dialogHeight||o.height()),Math.min(a,o.height())}},u=function(t){var a,l,c,d=t.length;return d>1&&(a=t[0].mime,l=t[0].name.replace(/^.*(\.[^.]+)$/,"$1")),e.grep(t,function(t){var p;return!c&&"directory"!==t.mime&&(p=t.read&&(s||i.mimeIsText(t.mime)||e.inArray(t.mime,1===d?o:r)!==-1)&&(!n.onlyMimes.length||e.inArray(t.mime,n.onlyMimes)!==-1)&&(1===d||t.mime===a&&t.name.substr(l.length*-1)===l)&&!!i.uploadMimeCheck(t.mime,t.phash)&&b(t,d)&&Object.keys(g).length,p||(c=!0),p)})},h=function(e){var t,n=i.file(e);i.request({cmd:"info",targets:[e],preventDefault:!0}).done(function(e){var a;e&&e.files&&e.files.length&&(t=e.files[0],n.ts==t.ts&&n.size==t.size||(a={changed:[t]},i.updateCache(a),i.change(a)))})},f=function(t,o,r,s,u,f){var g,v,b,y,w,k,C=e.Deferred(),z=!1,T=function(){return!!z||(i.toast({mode:"warning",msg:i.i18n("nowLoading")}),!1)},A=function(){f&&Array.isArray(f)&&e.each(f,function(){this.msg&&i.toast(this)})},S=function(){var t,n,a,o=y?y.val():void 0,r=e.Deferred().fail(function(e){b.show().find("button.elfinder-btncnt-0,button.elfinder-btncnt-1").hide()});return T()?(g.editor&&(g.editor.save(g[0],g.editor.instance),t=g.editor.confObj,t.info&&(t.info.schemeContent||t.info.arrayBufferContent)&&(o="scheme")),n=F(),U(n),n.promise?(a=setTimeout(function(){i.notify({type:"chkcontent",cnt:1,hideCnt:!0,cancel:function(){n.reject()}})},100),n.always(function(){a&&clearTimeout(a),i.notify({type:"chkcontent",cnt:-1})}).done(function(e){C.notifyWith(g,[o,g.data("hash"),v,r])}).fail(function(e){r.reject(e)})):C.notifyWith(g,[o,g.data("hash"),v,r]),r):r.resolve()},j=function(){T()&&S().fail(function(e){e&&i.error(e)})},O=function(){g.elfinderdialog("close")},I=function(){T()&&(b.hide(),S().done(function(){z=!1,b.show(),O()}).fail(function(e){b.show(),e&&i.error(e)}))},M=function(){if(T()){var t=v,r=o.phash,s=function(e){p.addClass(a).fadeIn(function(){e&&i.error(e)}),v=t,i.disable()},l=function(){n.mime=R.mime||o.mime,n.prefix=(R.name||o.name).replace(/ \d+(\.[^.]+)?$/,"$1"),n.requestCmd="mkfile",n.nextAction={},n.data={target:r},e.proxy(i.res("mixin","make"),n)().done(function(e){var t;e.added&&e.added.length?(t=g.data("hash"),g.data("hash",e.added[0].hash),S().done(function(){z=!1,b.show(),O(),p.fadeIn()}).fail(function(){i.exec("rm",[e.added[0].hash],{forceRm:!0,quiet:!0}),g.data("hash",t),b.find("button.elfinder-btncnt-2").hide(),s()})):s()}).progress(function(e){e&&"errUploadMime"===e&&g.trigger("saveAsFail")}).fail(s).always(function(){delete n.mime,delete n.prefix,delete n.nextAction,delete n.data}),i.trigger("unselectfiles",{files:[o.hash]})},c=null,d=null,p=i.getUI().children("."+n.dialogClass+":visible");b.is(":hidden")&&(p=p.add(b)),p.removeClass(a).fadeOut(),i.enable(),i.searchStatus.state<2&&r!==i.cwd().hash?c=i.exec("open",[r],{thash:r}):i.file(r)||(d=i.request({cmd:"info",targets:[r]})),e.when([c,d]).done(function(){d?i.one("infodone",function(){i.file(r)?l():s("errFolderNotFound")}):c?i.one("cwdrender",l):l()}).fail(s)}},E=function(){var t,n,a=e.Deferred();return z?(g.editor&&g.editor.save(g[0],g.editor.instance),t=F(),t&&t.promise?(n=setTimeout(function(){i.notify({type:"chkcontent",cnt:1,hideCnt:!0,cancel:function(){t.reject()}})},100),t.always(function(){n&&clearTimeout(n),i.notify({type:"chkcontent",cnt:-1})}).done(function(e){a.resolve(v!==e)}).fail(function(e){a.resolve(e||void 0!==v)})):a.resolve(v!==t),a):a.resolve(!1)},D={title:i.escape(o.name),width:d(),height:p(),buttons:{},cssClass:a,maxWidth:"window",maxHeight:"window",allowMinimize:!0,allowMaximize:!0,openMaximized:x()||u&&u.info&&u.info.openMaximized,btnHoverFocus:!1,closeOnEscape:!1,propagationEvents:["mousemove","mouseup","click"],minimize:function(){var e;g.editor&&b.closest(".ui-dialog").is(":hidden")&&(e=g.editor.confObj,e.info&&e.info.syncInterval&&h(o.hash))},close:function(){var e=function(){var e;C.resolve(),g.editor&&(g.editor.close(g[0],g.editor.instance),e=g.editor.confObj,e.info&&e.info.syncInterval&&h(o.hash)),g.elfinderdialog("destroy")},t="undefined"!=typeof R.name,a=t?{label:"btnSaveAs",callback:function(){requestAnimationFrame(M)}}:{label:"btnSaveClose",callback:function(){S().done(function(){e()})}};E().done(function(o){var r=["confirmNotSave"];o?("string"==typeof o&&r.unshift(o),i.confirm({title:n.title,text:r,accept:a,cancel:{label:"btnClose",callback:e},buttons:t?null:[{label:"btnSaveAs",callback:function(){requestAnimationFrame(M)}}]})):e()})},open:function(){var e,n,a;if(g.initEditArea.call(g,t,o,r,i),g.editor){if(e=g.editor.load(g[0])||null,e&&e.done)e.always(function(){z=!0}).done(function(e){g.editor.instance=e,g.editor.focus(g[0],g.editor.instance),U(F()),requestAnimationFrame(function(){b.trigger("resize")})}).fail(function(e){e&&i.error(e),g.elfinderdialog("destroy")}).always(A);else{if(z=!0,e&&("string"==typeof e||Array.isArray(e)))return i.error(e),void g.elfinderdialog("destroy");g.editor.instance=e,g.editor.focus(g[0],g.editor.instance),U(F()),requestAnimationFrame(function(){b.trigger("resize")}),A()}n=g.editor.confObj,n.info&&n.info.syncInterval&&(a=parseInt(n.info.syncInterval))&&setTimeout(function(){P(a)},a)}else z=!0,U(F())},resize:function(e,t){g.editor&&g.editor.resize(g[0],g.editor.instance,e,t||{})}},F=function(){var t=g.getContent.call(g,g[0]);return void 0!==t&&t!==!1&&null!==t||(t=e.Deferred().reject()),t},U=function(e){e&&e.promise?e.done(function(e){v=e}):v=e},P=function(e){b.is(":visible")&&(h(o.hash),setTimeout(function(){P(e)},e))},q=function(){y&&E().done(function(e){e?y.attr("title",i.i18n("saveAsEncoding")).addClass("elfinder-edit-changed"):y.attr("title",i.i18n("openAsEncoding")).removeClass("elfinder-edit-changed")})},R={};if(u&&(u.html&&(g=e(u.html)),w={init:u.init||null,load:u.load,getContent:u.getContent||null,save:u.save,beforeclose:"function"==typeof u.beforeclose?u.beforeclose:void 0,close:"function"==typeof u.close?u.close:function(){},focus:"function"==typeof u.focus?u.focus:function(){},resize:"function"==typeof u.resize?u.resize:function(){},instance:null,doSave:j,doCancel:O,doClose:I,file:o,fm:i,confObj:u,trigger:function(e,t){i.trigger("editEditor"+e,Object.assign({},u.info||{},t))}}),!g){if(!i.mimeIsText(o.mime))return C.reject("errEditorNotFound");!function(){g=e('').on("input propertychange",q),u&&u.info&&!u.info.useTextAreaEvent||g.on("keydown",function(t){var n,i,a=t.keyCode;t.stopPropagation(),a==e.ui.keyCode.TAB&&(t.preventDefault(),this.setSelectionRange&&(n=this.value,i=this.selectionStart,this.value=n.substr(0,i)+"\t"+n.substr(this.selectionEnd),i+=1,this.setSelectionRange(i,i))),(t.ctrlKey||t.metaKey)&&(a!="Q".charCodeAt(0)&&a!="W".charCodeAt(0)||(t.preventDefault(),O()),a=="S".charCodeAt(0)&&(t.preventDefault(),j()))}).on("mouseenter",function(){this.focus()}),g.initEditArea=function(e,t,n){g.hide().val(n),this._setupSelEncoding(n)}}()}return g._setupSelEncoding=function(t){var n=s&&"unknown"!==s?[{value:s}]:[],a=e("").hide(),r=function(t){t&&a.appendTo(y.parent()),a.empty().append(e("").text(y.val())),y.width(a.width())};""!==t&&s&&"UTF-8"===s||n.push({value:"UTF-8"}),y=c(n).on("touchstart",function(e){e.stopPropagation()}).on("change",function(){E().done(function(e){e||""===F()||(O(),m(o,y.val(),u).fail(function(e){e&&i.error(e)}))}),r()}).on("mouseover",q),g.parent().next().prepend(e('
          ').append(y)),r(!0)},g.data("hash",o.hash),w&&(g.editor=w,"function"==typeof w.beforeclose&&(D.beforeclose=function(){return w.beforeclose(g[0],w.instance)}),"function"==typeof w.init&&(g.initEditArea=w.init),"function"==typeof w.getContent&&(g.getContent=w.getContent)),g.initEditArea||(g.initEditArea=function(){}),g.getContent||(g.getContent=function(){return l(g.val())}),u&&u.info&&u.info.preventGet||(D.buttons[i.i18n("btnSave")]=j,D.buttons[i.i18n("btnSaveClose")]=I,D.buttons[i.i18n("btnSaveAs")]=M,D.buttons[i.i18n("btnCancel")]=O),u&&"function"==typeof u.prepare&&u.prepare(g,D,o),b=n.fmDialog(g,D).attr("id",t).on("keydown keyup keypress",function(e){e.stopPropagation()}).css({overflow:"hidden",minHeight:"7em"}).addClass("elfinder-edit-editor").closest(".ui-dialog").on("changeType",function(t,n){if(n.extention&&n.mime){var a=(n.extention,n.mime,e(this).children(".ui-dialog-buttonpane").children(".ui-dialog-buttonset"));a.children(".elfinder-btncnt-0,.elfinder-btncnt-1").hide(),R.name=i.splitFileExtention(o.name)[0]+"."+n.extention,R.mime=n.mime,n.keepEditor||a.children(".elfinder-btncnt-2").trigger("click")}}),k=(i.options.dialogContained?i.getUI():e(window)).width(),b.width()>k&&b.width(k),C.promise()},m=function(t,a,o){var r,s,l,d=t.hash,p=(i.options,e.Deferred()),u="edit-"+i.namespace+"-"+t.hash,h=i.getUI().find("#"+u),g=a?a:0,v=!1;if(h.length)return h.elfinderdialog("toTop"),p.resolve();if(!(t.read&&(t.write||o.info&&o.info.converter)))return s=["errOpen",t.name,"errPerm"],p.reject(s);if(o&&o.info){if("function"==typeof o.info.edit)return l=o.info.edit.call(i,t,o),l.promise?l.done(function(){p.resolve()}).fail(function(e){p.reject(e)}):l?p.resolve():p.reject(),p;v=o.info.preventGet||o.info.noContent,o.info.urlAsContent||v?(r=e.Deferred(),o.info.urlAsContent?i.url(d,{async:!0,onetime:!0,temporary:!0}).done(function(e){r.resolve({content:e})}):r.resolve({})):(g&&(t.encoding=g,i.cache(t,"change")),r=i.request({data:{cmd:"get",target:d,conv:g,_t:t.ts},options:{type:"get",cache:!0},notify:{type:"file",cnt:1},preventDefault:!0})),r.done(function(a){var r,s,l;a.doconv?i.confirm({title:n.title,text:"unknown"===a.doconv?"confirmNonUTF8":"confirmConvUTF8",accept:{label:"btnConv",callback:function(){p=m(t,r.val(),o)}},cancel:{label:"btnCancel",callback:function(){p.reject()}},optionsCallback:function(t){t.create=function(){var t=e('
          '),n={value:a.doconv};"unknown"===a.doconv&&(n.caption="-"),r=c([n]),e(this).next().find(".ui-dialog-buttonset").prepend(t.append(e("").append(r)))}}}):(!v&&i.mimeIsText(t.mime)&&(s=new RegExp("^(data:"+t.mime.replace(/([.+])/g,"\\$1")+";base64,)","i"),o.info.dataScheme?window.btoa&&!a.content.match(s)&&(a.content="data:"+t.mime+";base64,"+btoa(a.content)):window.atob&&(l=a.content.match(s))&&(a.content=atob(a.content.substr(l[1].length)))),f(u,t,a.content,a.encoding,o,a.toasts).done(function(e){p.resolve(e)}).progress(function(e,t,n,a){var o=this;t&&(d=t),i.request({options:{type:"post"},data:{cmd:"put",target:d,encoding:e||n.encoding,content:n},notify:{type:"save",cnt:1},syncOnFail:!0,preventFail:!0,navigate:{target:"changed",toast:{inbuffer:{msg:i.i18n(["complete",i.i18n("btnSave")])}}}}).fail(function(e){p.reject(e),a.reject()}).done(function(e){requestAnimationFrame(function(){o.trigger("focus"),o.editor&&o.editor.focus(o[0],o.editor.instance)}),a.resolve()})}).fail(function(e){p.reject(e)}))}).fail(function(e){var n=i.parseError(e);n=Array.isArray(n)?n[0]:n,t.encoding&&(t.encoding="",i.cache(t,"change")),"errConvUTF8"!==n&&i.sync(),p.reject(e)})}return p.promise()},g={},v={info:{id:"textarea",name:"TextArea",useTextAreaEvent:!0},load:function(t){this.trigger("Prepare",{node:t,editorObj:void 0,instance:void 0,opts:{}}),t.setSelectionRange&&t.setSelectionRange(0,0),e(t).trigger("focus").show()},save:function(){}},b=function(a,o){var r=function(t,n){if(n){if("*"===n[0]||e.inArray(t,n)!==-1)return!0;var a,o;for(o=n.length,a=0;a0||!t.info.converter&&t.info.canMakeEmpty!==!1&&i.mimesCanMakeEmpty[a.mime])&&(!t.info.maxSize||a.size<=t.info.maxSize)&&r(a.mime,t.mimes||null)&&s(a.name,t.exts||null)&&"function"==typeof t.load&&"function"==typeof t.save&&(n=t.info.name?t.info.name:"Editor "+e,t.id=t.info.id?t.info.id:"editor"+e,t.name=n,t.i18n=i.i18n(n),g[t.id]=t)}),!!Object.keys(g).length},y=function(n,a){n&&a&&(e.isPlainObject(t)||(t={}),t[n]=a.id,i.storage("storedEditors",t),i.trigger("selectfiles",{files:i.selected()}))},w=function(){var e=i.storage("useStoredEditor");return e?e>0:n.options.useStoredEditor},x=function(){var e=i.storage("editorMaximized");return e?e>0:n.options.editorMaximized},k=function(t,n){var a=[];return e.each(g,function(e,o){a.push({label:i.escape(o.i18n),icon:o.info&&o.info.icon?o.info.icon:"edit",options:{iconImg:o.info&&o.info.iconImg?i.baseUrl+o.info.iconImg:void 0},callback:function(){y(t[0].mime,o),n&&n.call(o)}})}),a},C=function(e){return e.toLowerCase().replace(/ +/g,"")},z=function(e){var n=t[e];return n&&Object.keys(g).length?g[C(n)]:void 0};this.getEncSelect=c,this.shortcuts=[{pattern:"ctrl+e"}],this.init=function(){var t,n,i=this,a=this.fm,l=this.options,c=[];this.onlyMimes=this.options.mimes||[],a.one("open",function(){l.editors&&Array.isArray(l.editors)&&(a.trigger("canMakeEmptyFile",{mimes:Object.keys(a.storage("mkfileTextMimes")||{}).concat(l.makeTextMimes||["text/plain"])}),e.each(l.editors,function(e,t){t.info&&t.info.cmdCheck&&c.push(t.info.cmdCheck)}),c.length?a.api>=2.103?n=a.request({data:{cmd:"editor",name:c,method:"enabled"},preventDefault:!0}).done(function(e){t=e}).fail(function(){t={}}):(t={},n=e.Deferred().resolve()):n=e.Deferred().resolve(),n.always(function(){t&&(l.editors=e.grep(l.editors,function(e){return!e.info||!e.info.cmdCheck||!!t[e.info.cmdCheck]})),e.each(l.editors,function(e,t){t.setup&&"function"==typeof t.setup&&t.setup.call(t,l,a),t.disabled||(t.mimes&&Array.isArray(t.mimes)&&(o=o.concat(t.mimes),t.info&&t.info.single||(r=r.concat(t.mimes))),!s&&t.mimes&&"*"===t.mimes[0]&&(s=!0),t.info||(t.info={}),t.info.integrate&&a.trigger("helpIntegration",Object.assign({cmd:"edit"},t.info.integrate)),t.info.canMakeEmpty&&a.trigger("canMakeEmptyFile",{mimes:Array.isArray(t.info.canMakeEmpty)?t.info.canMakeEmpty:t.mimes}))}),o=(e.uniqueSort||e.unique)(o),r=(e.uniqueSort||e.unique)(r),l.editors=e.grep(l.editors,function(e){return!e.disabled})}))}).bind("select",function(){g=null}).bind("contextmenucreate",function(t){var n,o,r=function(e){var t=i.title;a.one("contextmenucreatedone",function(){i.title=t}),i.title=a.escape(e.i18n),e.info&&e.info.iconImg&&(i.contextmenuOpts={iconImg:a.baseUrl+e.info.iconImg}),delete i.variants};i.contextmenuOpts=void 0,"files"===t.data.type&&i.enabled()&&(n=a.file(t.data.targets[0]),b(n,t.data.targets.length)&&(Object.keys(g).length>1?w()&&(o=z(n.mime))?(r(o),i.extra={icon:"menu",node:e("").attr({title:a.i18n("select")}).on("click touchstart",function(t){if(!("touchstart"===t.type&&t.originalEvent.touches.length>1)){var n=e(this);t.stopPropagation(),t.preventDefault(),a.trigger("contextmenu",{raw:k(a.selectedFiles(),function(){var e=a.selected();a.exec("edit",e,{editor:this}),a.trigger("selectfiles",{files:e})}),x:n.offset().left,y:n.offset().top})}})}):(delete i.extra,i.variants=[],e.each(g,function(e,t){i.variants.push([{editor:t},t.i18n,t.info&&t.info.iconImg?a.baseUrl+t.info.iconImg:"edit"])})):(r(g[Object.keys(g)[0]]),delete i.extra)))}).bind("canMakeEmptyFile",function(t){if(t.data&&t.data.resetTexts){var n=a.arrayFlip(i.options.makeTextMimes||["text/plain"]),o=i.getMkfileHides();e.each(a.storage("mkfileTextMimes")||{},function(e,t){n[e]||(delete a.mimesCanMakeEmpty[e],delete o[e])}),a.storage("mkfileTextMimes",null),Object.keys(o).length?a.storage("mkfileHides",o):a.storage("mkfileHides",null)}})},this.getstate=function(e){var t=this.files(e),n=t.length;return n&&u(t).length==n?0:-1},this.exec=function(t,n){var i,a=this.fm,o=u(this.files(t)),r=e.map(o,function(e){return e.hash}),s=[],l=n&&n.editor?n.editor:null,c=e(n&&n._currentNode?n._currentNode:a.cwdHash2Elm(r[0])),d=function(){var t=e.Deferred();return!l&&Object.keys(g).length>1?w()&&(l=z(o[0].mime))?t.resolve(l):(a.trigger("contextmenu",{raw:k(o,function(){t.resolve(this)}),x:c.offset().left,y:c.offset().top+22,opened:function(){a.one("closecontextmenu",function(){requestAnimationFrame(function(){"pending"===t.state()&&t.reject()})})}}),a.trigger("selectfiles",{files:r}),t):(Object.keys(g).length>1&&l&&y(o[0].mime,l),t.resolve(l?l:Object.keys(g).length?g[Object.keys(g)[0]]:null))},p=e.Deferred();return null===g&&b(o[0],r.length),c.length||(c=a.getUI("cwd")),d().done(function(t){for(;i=o.shift();)s.push(m(i,i.encoding||void 0,t).fail(function(e){e&&a.error(e)}));s.length?e.when.apply(null,s).done(function(){p.resolve()}).fail(function(){p.reject()}):p.reject()}).fail(function(){p.reject()}),p},this.getMkfileHides=function(){return i.storage("mkfileHides")||i.arrayFlip(n.options.mkfileHideMimes||[])}},i.prototype.commands.emailto=function(){var t=this,n=t.fm,i=function(t){var n,i,a,o=t.length;return o>1&&(n=t[0].mime,i=t[0].name.replace(/^.*(\.[^.]+)$/,"$1")),e.grep(t,function(e){return!a&&"directory"!==e.mime})};this.exec=function(e){var t=n.url(e[0],0),i=t.split("/").pop(),a="";if(a=prompt("Please enter mail address"),null!=a){var o=a.match(/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i);return null==o?void alert("Please enter a valid email address"):void window.open("mailto:"+a+"?subject="+i+"&body="+t)}},this.getstate=function(e){var t=this.files(e),n=t.length;return n&&i(t).length==n?0:-1}},i.prototype.commands.empty=function(){var t,n,i=function(e){var i=t.files(e);return i.length||(i=[n.cwd()]),i};this.linkedCmds=["rm"],this.init=function(){t=this,n=this.fm},this.getstate=function(t){var n,a=i(t),o=function(t){var n=!0;return e.grep(t,function(e){return n=!!(n&&e.read&&e.write&&"directory"===e.mime)})};return n=a.length,o(a).length==n?0:-1},this.exec=function(t){var a=i(t),o=a.length,r=e.Deferred().done(function(){var t={changed:{}};n.toast({msg:n.i18n(['"'+s.join('", ')+'"',"complete",n.i18n("cmdempty")])}),e.each(a,function(e,n){t.changed[n.hash]=n}),n.change(t)}).always(function(){var t=n.cwd().hash;n.trigger("selectfiles",{files:e.map(a,function(e){return t===e.phash?e.hash:null})})}),s=[],l=function(e){"number"==typeof e?(s.push(a[e].name),delete a[e].dirs):e&&n.error(e),--o<1&&r[s.length?"resolve":"reject"]()};return e.each(a,function(t,i){var a;return i.write&&"directory"===i.mime?n.isCommandEnabled("rm",i.hash)?(a=setTimeout(function(){n.notify({type:"search",cnt:1,hideCnt:!(o>1)})},n.notifyDelay),void n.request({data:{cmd:"open",target:i.hash},preventDefault:!0,asNotOpen:!0}).done(function(r){var s=[];a&&clearTimeout(a),n.ui.notify.children(".elfinder-notify-search").length&&n.notify({type:"search",cnt:-1,hideCnt:!(o>1)}),r&&r.files&&r.files.length?r.files.length>n.maxTargets?l(["errEmpty",i.name,"errMaxTargets",n.maxTargets]):(n.updateCache(r),e.each(r.files,function(e,t){return!t.write||t.locked?(l(["errEmpty",i.name,"errRm",t.name,"errPerm"]),s=[],!1):void s.push(t.hash)}),s.length&&n.exec("rm",s,{_userAction:!0,addTexts:[n.i18n("folderToEmpty",i.name)]}).fail(function(e){n.trigger("unselectfiles",{files:n.selected()}),l(n.parseError(e)||"")}).done(function(){l(t)})):(n.toast({mode:"warning",msg:n.i18n("filderIsEmpty",i.name)}),l(""))}).fail(function(e){l(n.parseError(e)||"")})):(l(["errCmdNoSupport",'"rm"']),null):(l(["errEmpty",i.name,"errPerm"]),null)}),r}},i.prototype.commands.extract=function(){var t=this,n=t.fm,i=[],a=function(t){var n=!0;return e.grep(t,function(t){return n=!(!n||!t.read||e.inArray(t.mime,i)===-1)})};this.variants=[],this.disableOnSearch=!0,n.bind("open reload",function(){i=n.option("archivers").extract||[],n.api>2?t.variants=[[{makedir:!0},n.i18n("cmdmkdir")],[{},n.i18n("btnCwd")]]:t.variants=[[{},n.i18n("btnCwd")]],t.change()}),this.getstate=function(t){var i,o,r=this.files(t),s=r.length;return s&&a(r).length==s?n.searchStatus.state>0?(i=this.fm.cwd().hash,e.each(r,function(e,t){return o=t.phash===i}),o?0:-1):this.fm.cwd().write?0:-1:-1},this.exec=function(t,a){var o,r,s,l=this.files(t),c=e.Deferred(),d=l.length,p=a&&a.makedir?1:0,u=!1,h=!1,f=0,m=n.files(l[0].phash),g=[],v={};e.each(m,function(e,t){v[t.name]=t,g.push(t.name)});var b=function(e){switch(e){case"overwrite_all":u=!0;break;case"omit_all":h=!0}},y=function(t){t.read&&n.file(t.phash).write?e.inArray(t.mime,i)===-1?(r=["errExtract",t.name,"errNoArchive"],n.error(r),c.reject(r)):n.request({data:{cmd:"extract",target:t.hash,makedir:p},notify:{type:"extract",cnt:1},syncOnFail:!0,navigate:{toast:p?{incwd:{msg:n.i18n(["complete",n.i18n("cmdextract")]),action:{cmd:"open",msg:"cmdopen"}},inbuffer:{msg:n.i18n(["complete",n.i18n("cmdextract")]),action:{cmd:"open",msg:"cmdopen"}}}:{inbuffer:{msg:n.i18n(["complete",n.i18n("cmdextract")])}}}}).fail(function(e){"rejected"!=c.state()&&c.reject(e)}).done(function(){}):(r=["errExtract",t.name,"errPerm"],n.error(r),c.reject(r))},w=function(t,i){var a=t[i],r=n.splitFileExtention(a.name)[0],l=e.inArray(r,g)>=0,m=function(){i+10&&y(a),m())};return this.enabled()&&d&&i.length?(d>0&&w(l,0),c):c.reject()}},(i.prototype.commands.forward=function(){this.alwaysEnabled=!0,this.updateOnSelect=!0,this.shortcuts=[{pattern:"ctrl+right"}],this.getstate=function(){return this.fm.history.canForward()?0:-1},this.exec=function(){return this.fm.history.forward()}}).prototype={forceLoad:!0},i.prototype.commands.fullscreen=function(){var t=this,n=this.fm,i=function(e,i){var a;e.preventDefault(),e.stopPropagation(),i&&i.fullscreen&&(a="on"===i.fullscreen,t.update(void 0,a),t.title=n.i18n(a?"reinstate":"cmdfullscreen"))};this.alwaysEnabled=!0,this.updateOnSelect=!1,this.syncTitleOnChange=!0,this.value=!1,this.options={ui:"fullscreenbutton"},this.getstate=function(){return 0},this.exec=function(){var i=n.getUI().get(0),a=i===n.toggleFullscreen(i);return t.title=n.i18n(a?"reinstate":"cmdfullscreen"),t.update(void 0,a),e.Deferred().resolve()},n.bind("init",function(){n.getUI().off("resize."+n.namespace,i).on("resize."+n.namespace,i)})},(i.prototype.commands.getfile=function(){var t=this,n=this.fm,i=function(n){var i=t.options,a=!0;return n=e.grep(n,function(e){return a=!(!a||"directory"==e.mime&&!i.folders||!e.read)}),i.multiple||1==n.length?n:[]};this.alwaysEnabled=!0,this.callback=n.options.getFileCallback,this._disabled="function"==typeof this.callback,this.getstate=function(e){var t=this.files(e),n=t.length;return this.callback&&n&&i(t).length==n?0:-1},this.exec=function(n){var i,a,o,r=this.fm,s=this.options,l=this.files(n),c=l.length,d=r.option("url"),p=r.option("tmbUrl"),u=e.Deferred().done(function(e){var n,i=function(){"close"==s.oncomplete?r.hide():"destroy"==s.oncomplete&&r.destroy()},a=function(e){"close"==s.onerror?r.hide():"destroy"==s.onerror?r.destroy():e&&r.error(e)};r.trigger("getfile",{files:e});try{n=t.callback(e,r)}catch(o){return void a(["Error in `getFileCallback`.",o.message])}"object"==typeof n&&"function"==typeof n.done?n.done(i).fail(a):i()}),h=function(t){return s.onlyURL?s.multiple?e.map(l,function(e){return e.url}):l[0].url:s.multiple?l:l[0]},f=[];for(i=0;i
          {link}
          ',d='
          {author}
          {work}
          ',p=/\{url\}/,u=/\{link\}/,h=/\{author\}/,f=/\{work\}/,m="replace",g="ui-priority-primary",v="ui-priority-secondary",b="elfinder-help-license",y='
        • {title}
        • ',w=['
          ','
            '],x='
            {pattern}
            {descrip}
            ',k='
            ',C=e("base").length?s.escape(document.location.href.replace(/#.*$/,"")):"",z=s.res("class","tabsactive"),T=function(){var e;return e=s.theme&&s.theme.author?d[m]("elfinder-help-team","elfinder-help-team elfinder-help-term-theme")[m](h,s.i18n(s.theme.author)+(s.theme.email?" <"+s.theme.email+">":""))[m](f,s.i18n("theme")+" ("+s.i18n(s.theme.name)+")"):''},A=function(){w.push('
            '),w.push("

            elFinder

            "),w.push('
            '+s.i18n("webfm")+"
            "),w.push('
            '+s.i18n("ver")+": "+s.version+"
            "),w.push('
            '+s.i18n("protocolver")+':
            '),w.push('
            jQuery/jQuery UI: '+e().jquery+"/"+e.ui.version+"
            "),w.push(k),w.push(c[m](p,"https://studio-42.github.io/elFinder/")[m](u,s.i18n("homepage"))),w.push(c[m](p,"https://github.com/Studio-42/elFinder/wiki")[m](u,s.i18n("docs"))),w.push(c[m](p,"https://github.com/Studio-42/elFinder")[m](u,s.i18n("github"))),w.push(k),w.push('
            '+s.i18n("team")+"
            "),w.push(d[m](h,'Dmitry "dio" Levashov <dio@std42.ru>')[m](f,s.i18n("chiefdev"))),w.push(d[m](h,"Naoki Sawada (nao-pon)<hypweb+elfinder@gmail.com>")[m](f,s.i18n("developer"))),w.push(d[m](h,"Troex Nevelin <troex@fury.scancode.ru>")[m](f,s.i18n("maintainer"))),w.push(d[m](h,"Alexey Sukhotin <strogg@yandex.ru>")[m](f,s.i18n("contributor"))),s.i18[s.lang].translator&&e.each(s.i18[s.lang].translator.split(", "),function(){w.push(d[m](h,e.trim(this))[m](f,s.i18n("translator")+" ("+s.i18[s.lang].language+")"))}),w.push(T()),w.push(k),w.push('
            '+s.i18n("icons")+': Pixelmixer, Fugue, Icons8
            '),w.push(k),w.push('
            Licence: 3-clauses BSD Licence
            '),w.push('
            Copyright © 2009-2024, Studio 42 / nao-pon
            '),w.push('
            „ …'+s.i18n("dontforget")+" ”
            "),w.push("
            ")},S=function(){var t=s.shortcuts();w.push('
            '),t.length?(w.push('
            '),e.each(t,function(e,t){w.push(x.replace(/\{pattern\}/,t[0]).replace(/\{descrip\}/,t[1]))}),w.push("
            ")):w.push('
            '+s.i18n("shortcutsof")+"
            "),w.push("
            ")},j=function(){w.push('
            '),w.push('DON\'T PANIC'),w.push("
            ")},O=!1,I=function(){O=!0,w.push('
            ')},M=!1,E=function(){M=!0,w.push('
            '),w.push('
              '),w.push("
              ")},D=function(){var n,i,a,c,d,p,u=function(t,n){return e.each(n,function(n,i){t.append(e("
              ").text(n)),"undefined"==typeof i?t.append(e("
              ").append(e("").text("undfined"))):"object"!=typeof i||i?"object"==typeof i&&(e.isPlainObject(i)||i.length)?t.append(e("
              ").append(u(e("
              "),i))):t.append(e("
              ").append(e("").text(i&&"object"==typeof i?"[]":i?i:'""'))):t.append(e("
              ").append(e("").text("null")))}),t},h=r.children("li").length;(l.debug.options||l.debug.debug)&&(h>=5&&(d=r.children("li:last"),p=o.children("div:last"),p.is(":hidden")?(d.remove(),p.remove()):(d.prev().remove(),p.prev().remove())), -a=s.namespace+"-help-debug-"+ +new Date,n=e("
            • ").html(''+l.debug.debug.cmd+"").prependTo(r),i=e('
              ').data("debug",l.debug),n.on("click.debugrender",function(){var t=i.data("debug");i.removeData("debug"),t&&(i.hide(),t.debug&&(c=e("
              ").append(e("").text("debug"),u(e("
              "),t.debug)),i.append(c)),t.options&&(c=e("
              ").append(e("").text("options"),u(e("
              "),t.options)),i.append(c)),i.show()),n.off("click.debugrender")}),r.after(i),t&&o.tabs("refresh"))},F="";this.alwaysEnabled=!0,this.updateOnSelect=!1,this.state=-1,this.shortcuts=[{pattern:"f1",description:this.title}],s.bind("load",function(){var c,d,p,u,h,f,g=l.options.view||["about","shortcuts","help","integrations","debug"];(c=e.inArray("preference",g))!==-1&&g.splice(c,1),e.fn.tabs||(c=e.inArray(g,"debug"))!==-1&&g.splice(c,1),e.each(g,function(e,t){w.push(y[m](/\{id\}/g,t)[m](/\{title\}/,s.i18n(t)))}),w.push("
            "),e.inArray("about",g)!==-1&&A(),e.inArray("shortcuts",g)!==-1&&S(),e.inArray("help",g)!==-1&&(d=s.i18nBaseUrl+"help/%s.html.js",j()),e.inArray("integrations",g)!==-1&&I(),e.inArray("debug",g)!==-1&&E(),w.push("
            "),F=e(w.join("")),F.find(".ui-tabs-nav li").on("mouseenter mouseleave",function(t){e(this).toggleClass("ui-state-hover","mouseenter"===t.type)}).on("focus blur","a",function(t){e(t.delegateTarget).toggleClass("ui-state-focus","focusin"===t.type)}).children().on("click",function(t){var n=e(this);t.preventDefault(),t.stopPropagation(),n.parent().addClass(z).siblings().removeClass(z),F.children(".ui-tabs-panel").hide().filter(n.attr("href")).show()}).filter(":first").trigger("click"),O&&(n=F.find(".elfinder-help-tab-integrations").hide(),i=F.find("#"+s.namespace+"-help-integrations").hide().append(e('
            ').html(s.i18n("integrationWith"))),s.bind("helpIntegration",function(t){var a,o,r,l,c=i.children("ul:first");t.data&&(e.isPlainObject(t.data)?(a=Object.assign({link:"",title:"",banner:""},t.data),(a.title||a.link)&&(a.title||(a.title=a.link),o=a.link?e("").attr("href",a.link).attr("target","_blank").text(a.title):e("").text(a.title),a.banner&&(o=e("").append(e("").attr(a.banner),o)))):(o=e(t.data),o.filter("a").each(function(){var t=e(this);t.attr("target")||t.attr("target","_blank")})),o&&(n.show(),c.length||(c=e('
              ').appendTo(i)),a&&a.cmd?(l="elfinder-help-integration-"+a.cmd,r=c.find("ul."+l),r.length||(r=e('
                '),c.append(e("
              • ").append(e("").html(s.i18n("cmd"+a.cmd))).append(r))),o=r.append(e("
              • ").append(o))):c.append(e("
              • ").append(o))))}).bind("themechange",function(){F.find("div.elfinder-help-term-theme").replaceWith(T())})),M&&(a=F.find(".elfinder-help-tab-debug").hide(),o=F.find("#"+s.namespace+"-help-debug").children("div:first"),r=o.children("ul:first").on("click",function(e){e.preventDefault(),e.stopPropagation()}),l.debug={},s.bind("backenddebug",function(e){M&&e.data&&e.data.debug&&(l.debug={options:e.data.options,debug:Object.assign({cmd:s.currentReqCmd},e.data.debug)},l.dialog&&D())})),F.find("#"+s.namespace+"-help-about").find(".apiver").text(s.api),l.dialog=l.fmDialog(F,{title:l.title,width:530,maxWidth:"window",maxHeight:"window",autoOpen:!1,destroyOnClose:!1,close:function(){M&&(a.hide(),o.tabs("destroy")),t=!1}}).on("click",function(e){e.stopPropagation()}).css({overflow:"hidden"}),p=l.dialog.children(".ui-tabs"),u=p.children(".ui-tabs-nav:first"),h=p.children(".ui-tabs-panel"),f=l.dialog.outerHeight(!0)-l.dialog.height(),l.dialog.closest(".ui-dialog").on("resize",function(){h.height(l.dialog.height()-f-u.outerHeight(!0)-20)}),d&&l.dialog.one("initContents",function(){e.ajax({url:l.options.helpSource?l.options.helpSource:d.replace("%s",s.lang),dataType:"html"}).done(function(t){e("#"+s.namespace+"-help-help").html(t)}).fail(function(){e.ajax({url:d.replace("%s","en"),dataType:"html"}).done(function(t){e("#"+s.namespace+"-help-help").html(t)})})}),l.state=0,s.trigger("helpBuilded",l.dialog)}).one("open",function(){var e=!1;s.one("backenddebug",function(){e=!0}).one("opendone",function(){requestAnimationFrame(function(){!e&&M&&(M=!1,a.hide(),o.hide(),r.hide())})})}),this.getstate=function(){return 0},this.exec=function(n,i){var s=i?i.tab:void 0,l=function(){M&&(o.tabs(),r.find("a:first").trigger("click"),a.show(),t=!0)};return l(),this.dialog.trigger("initContents").elfinderdialog("open").find((s?".elfinder-help-tab-"+s:".ui-tabs-nav li")+" a:first").trigger("click"),e.Deferred().resolve()}}).prototype={forceLoad:!0},i.prototype.commands.hidden=function(){this.hidden=!0,this.updateOnSelect=!1,this.getstate=function(){return-1}},i.prototype.commands.hide=function(){var t,n,i,a,o=this,r={};this.syncTitleOnChange=!0,this.shortcuts=[{pattern:"ctrl+shift+dot",description:this.fm.i18n("toggleHidden")}],this.init=function(){var e=this.fm;t=e.storage("hide")||{items:{}},n=Object.keys(t.items).length,this.title=e.i18n(t.show?"hideHidden":"showHidden"),o.update(void 0,o.title)},this.fm.bind("select contextmenucreate closecontextmenu",function(e,r){var s=(e.data?e.data.selected||e.data.targets:null)||r.selected();"select"===e.type&&e.data?a=e.data.origin:"contextmenucreate"===e.type&&(i=e.data.type),!s.length||("contextmenucreate"!==e.type&&"navbar"!==a||"cwd"===i)&&s[0]===r.cwd().hash?o.title=r.i18n(t.show?"hideHidden":"showHidden"):o.title=r.i18n("cmdhide"),"closecontextmenu"!==e.type?o.update("cwd"===i?n?0:-1:void 0,o.title):(i="",requestAnimationFrame(function(){o.update(void 0,o.title)}))}),this.getstate=function(e){return this.fm.cookieEnabled&&"cwd"!==i&&(e||this.fm.selected()).length||n?0:-1},this.exec=function(i,s){var l,c,d=this.fm,p=e.Deferred().done(function(){d.trigger("hide",{items:h,opts:s})}).fail(function(e){d.error(e)}),u=s||{},h=u.targets?u.targets:i||d.selected(),f=[];if(t=d.storage("hide")||{},e.isPlainObject(t)||(t={}),e.isPlainObject(t.items)||(t.items={}),("shortcut"===s._currentType||!h.length||"navbar"!==s._currentType&&"navbar"!==a&&h[0]===d.cwd().hash)&&(t.show?u.hide=!0:Object.keys(t.items).length&&(u.show=!0)),u.reset&&(u.show=!0,n=0),u.show||u.hide){if(u.show?t.show=!0:delete t.show,u.show)return d.storage("hide",u.reset?null:t),o.title=d.i18n("hideHidden"),o.update(u.reset?-1:void 0,o.title),e.each(t.items,function(e){var t=d.file(e,!0);t&&(d.searchStatus.state||!t.phash||d.file(t.phash))&&f.push(t)}),f.length&&(d.updateCache({added:f}),d.add({added:f})),u.reset&&(t={items:{}}),p.resolve();h=Object.keys(t.items)}return h.length&&(e.each(h,function(e,n){var i;t.items[n]||(i=d.file(n),i&&(r[n]=i.i18||i.name),t.items[n]=r[n]?r[n]:n)}),n=Object.keys(t.items).length,l=this.files(h),d.storage("hide",t),d.remove({removed:h}),t.show&&this.exec(void 0,{hide:!0}),u.hide||(c={},c.undo={cmd:"hide",callback:function(){var t=d.storage("hide");t&&(e.each(h,function(e,n){delete t.items[n]}),n=Object.keys(t.items).length,d.storage("hide",t),d.trigger("hide",{items:h,opts:{}}),o.update(n?0:-1)),d.updateCache({added:l}),d.add({added:l})}},c.redo={cmd:"hide",callback:function(){return d.exec("hide",void 0,{targets:h})}})),"rejected"==p.state()?p:p.resolve(c)}},(i.prototype.commands.home=function(){this.title="Home",this.alwaysEnabled=!0,this.updateOnSelect=!1,this.shortcuts=[{pattern:"ctrl+home ctrl+shift+up",description:"Home"}],this.getstate=function(){var e=this.fm.root(),t=this.fm.cwd().hash;return e&&t&&e!=t?0:-1},this.exec=function(){return this.fm.exec("open",this.fm.root())}}).prototype={forceLoad:!0},(i.prototype.commands.info=function(){var t=this.fm,n="elfinder-spinner",i="elfinder-info-button",a={calc:t.i18n("calc"),size:t.i18n("size"),unknown:t.i18n("unknown"),path:t.i18n("path"),aliasfor:t.i18n("aliasfor"),modify:t.i18n("modify"),perms:t.i18n("perms"),locked:t.i18n("locked"),dim:t.i18n("dim"),kind:t.i18n("kind"),files:t.i18n("files"),folders:t.i18n("folders"),roots:t.i18n("volumeRoots"),items:t.i18n("items"),yes:t.i18n("yes"),no:t.i18n("no"),link:t.i18n("link"),owner:t.i18n("owner"),group:t.i18n("group"),perm:t.i18n("perm"),getlink:t.i18n("getLink")},o=function(e,t){return t?e.replace(/\u200B/g,""):e.replace(/(\/|\\)/g,"$1​")};this.items=["size","aliasfor","path","link","dim","modify","perms","locked","owner","group","perm"],this.options.custom&&Object.keys(this.options.custom).length&&e.each(this.options.custom,function(e,t){t.label&&this.items.push(t.label)}),this.tpl={main:'
                {title}
                {content}
                ',itemTitle:'{name}{kind}',groupTitle:"{items}: {num}",row:'{label} : {value}',spinner:'{text} '},this.alwaysEnabled=!0,this.updateOnSelect=!1,this.shortcuts=[{pattern:"ctrl+i"}],this.init=function(){e.each(a,function(e,n){a[e]=t.i18n(n)})},this.getstate=function(){return 0},this.exec=function(t){var r=this.files(t);r.length||(r=this.files([this.fm.cwd().hash]));var s,l,c,d,p,u,h,f,m,g=this,v=this.fm,b=this.options,y=this.tpl,w=y.row,x=r.length,k=[],C=y.main,z="{label}",T="{value}",A=[],S=null,j={title:v.i18n("selectionInfo"),width:"auto",close:function(){e(this).elfinderdialog("destroy"),S&&"pending"===S.state()&&S.reject(),e.grep(A,function(e){e&&"pending"===e.state()&&e.reject()})}},O=[],I=function(e,t,i){E.find("."+n+"-"+t).parent().html(e).addClass(i||"")},M=v.namespace+"-info-"+e.map(r,function(e){return e.hash}).join("-"),E=v.getUI().find("#"+M),D=[],F="",U="elfinder-font-mono elfinder-info-hash",P=[],q=v.ui.notify;if(q.is(":hidden")&&q.children(".elfinder-notify").length&&q.elfinderdialog("open").height("auto"),!x)return e.Deferred().reject();if(E.length)return E.elfinderdialog("toTop"),e.Deferred().resolve();if(f=v.storage("infohides")||v.arrayFlip(b.hideItems,!0),1===x){if(c=r[0],c.icon&&(F=" "+v.getIconStyle(c)),C=C.replace("{dirclass}",c.csscls?v.escape(c.csscls):"").replace("{class}",v.mime2class(c.mime)).replace("{style}",F),d=y.itemTitle.replace("{name}",v.escape(c.i18||c.name)).replace("{kind}",''+v.mime2kind(c)+""),l=v.tmb(c),c.read?"directory"!=c.mime||c.alias?s=v.formatSize(c.size):(s=y.spinner.replace("{text}",a.calc).replace("{name}","size"),O.push(c.hash)):s=a.unknown,!f.size&&k.push(w.replace(z,a.size).replace(T,s)),!f.aleasfor&&c.alias&&k.push(w.replace(z,a.aliasfor).replace(T,c.alias)),f.path||((h=v.path(c.hash,!0))?k.push(w.replace(z,a.path).replace(T,o(v.escape(h))).replace("{class}","elfinder-info-path")):(k.push(w.replace(z,a.path).replace(T,y.spinner.replace("{text}",a.calc).replace("{name}","path")).replace("{class}","elfinder-info-path")),A.push(v.path(c.hash,!0,{notify:null}).fail(function(){I(a.unknown,"path")}).done(function(e){I(o(e),"path")})))),!f.link&&c.read){var R,H=v.escape(c.name);if("1"==c.url)k.push(w.replace(z,a.link).replace(T,'"));else{if(c.url)R=c.url;else if("directory"===c.mime)if(b.nullUrlDirLinkSelf&&null===c.url){var _=window.location;R=_.pathname+_.search+"#elf_"+c.hash}else""!==c.url&&v.option("url",!v.isRoot(c)&&c.phash||c.hash)&&(R=v.url(c.hash));else R=v.url(c.hash);R&&k.push(w.replace(z,a.link).replace(T,''+H+""))}}f.dim||(c.dim?k.push(w.replace(z,a.dim).replace(T,c.dim)):c.mime.indexOf("image")!==-1&&(c.width&&c.height?k.push(w.replace(z,a.dim).replace(T,c.width+"x"+c.height)):c.size&&"0"!==c.size&&(k.push(w.replace(z,a.dim).replace(T,y.spinner.replace("{text}",a.calc).replace("{name}","dim"))),A.push(v.request({data:{cmd:"dim",target:c.hash},preventDefault:!0}).fail(function(){I(a.unknown,"dim")}).done(function(e){if(I(e.dim||a.unknown,"dim"),e.dim){var t=e.dim.split("x"),n=v.file(c.hash);n.width=t[0],n.height=t[1]}}))))),!f.modify&&k.push(w.replace(z,a.modify).replace(T,v.formatDate(c))),!f.perms&&k.push(w.replace(z,a.perms).replace(T,v.formatPermissions(c))),!f.locked&&k.push(w.replace(z,a.locked).replace(T,c.locked?a.yes:a.no)),!f.owner&&c.owner&&k.push(w.replace(z,a.owner).replace(T,c.owner)),!f.group&&c.group&&k.push(w.replace(z,a.group).replace(T,c.group)),!f.perm&&c.perm&&k.push(w.replace(z,a.perm).replace(T,v.formatFileMode(c.perm))),window.ArrayBuffer&&(v.options.cdns.sparkmd5||v.options.cdns.jssha)&&"directory"!==c.mime&&c.size>0&&(!b.showHashMaxsize||c.size<=b.showHashMaxsize)&&(P=[],e.each(v.storage("hashchekcer")||b.showHashAlgorisms,function(e,t){c[t]?k.push(w.replace(z,v.i18n(t)).replace(T,c[t]).replace("{class}",U)):(k.push(w.replace(z,v.i18n(t)).replace(T,y.spinner.replace("{text}",a.calc).replace("{name}",t))),P.push(t))}),P.length&&(m=e('
                '),A.push(v.getContentsHashes(c.hash,P,b.showHashOpts,{progressBar:m}).progress(function(t){e.each(P,function(e,n){t[n]&&I(t[n],n,U)})}).always(function(){e.each(P,function(e,t){I(a.unknown,t)})})))),b.custom&&e.each(b.custom,function(t,n){f[n.label]||n.mimes&&!e.grep(n.mimes,function(e){return c.mime===e||0===c.mime.indexOf(e+"/")}).length||n.hashRegex&&!c.hash.match(n.hashRegex)||(k.push(w.replace(z,v.i18n(n.label)).replace(T,n.tpl.replace("{id}",M))),n.action&&"function"==typeof n.action&&D.push(n.action))})}else C=C.replace("{class}","elfinder-cwd-icon-group"),d=y.groupTitle.replace("{items}",a.items).replace("{num}",x),p=e.grep(r,function(e){return"directory"==e.mime}).length,p?(u=e.grep(r,function(e){return!("directory"!==e.mime||e.phash&&!e.isroot)}).length,p-=u,k.push(w.replace(z,a.kind).replace(T,u===x||p===x?a[u?"roots":"folders"]:e.map({roots:u,folders:p,files:x-u-p},function(e,t){return e?a[t]+" "+e:null}).join(", "))),!f.size&&k.push(w.replace(z,a.size).replace(T,y.spinner.replace("{text}",a.calc).replace("{name}","size"))),O=e.map(r,function(e){return e.hash})):(s=0,e.each(r,function(e,t){var n=parseInt(t.size);n>=0&&s>=0?s+=n:s="unknown"}),k.push(w.replace(z,a.kind).replace(T,a.files)),!f.size&&k.push(w.replace(z,a.size).replace(T,v.formatSize(s))));return C=C.replace("{title}",d).replace("{content}",k.join("").replace(/{class}/g,"")),E=g.fmDialog(C,j),E.attr("id",M).one("mousedown",".elfinder-info-path",function(){e(this).html(o(e(this).html(),!0))}),P.length&&m.appendTo(E.find("."+n+"-"+P[0]).parent()),v.UA.Mobile&&e.fn.tooltip&&E.children(".ui-dialog-content .elfinder-info-title").tooltip({classes:{"ui-tooltip":"elfinder-ui-tooltip ui-widget-shadow"},tooltipClass:"elfinder-ui-tooltip ui-widget-shadow",track:!0}),c&&"1"==c.url&&E.on("click","."+n+"-url",function(){e(this).parent().html(y.spinner.replace("{text}",v.i18n("ntfurl")).replace("{name}","url")),v.request({data:{cmd:"url",target:c.hash},preventDefault:!0}).fail(function(){I(H,"url")}).done(function(e){if(e.url){I(''+H+""||H,"url");var t=v.file(c.hash);t.url=e.url}else I(H,"url")})}),l&&e("").on("load",function(){E.find(".elfinder-cwd-icon").addClass(l.className).css("background-image","url('"+l.url+"')")}).attr("src",l.url),O.length&&(S=v.getSize(O).done(function(e){I(e.formated,"size")}).fail(function(){I(a.unknown,"size")})),D.length&&e.each(D,function(e,t){try{t(c,v,E)}catch(n){v.debug("error",n)}}),e.Deferred().resolve()}}).prototype={forceLoad:!0},i.prototype.commands.mkdir=function(){var t,n=this.fm,i=this;this.value="",this.disableOnSearch=!0,this.updateOnSelect=!1,this.syncTitleOnChange=!0,this.mime="directory",this.prefix="untitled folder",this.exec=function(a,o){var r;return a&&a.length&&o&&o._currentType&&"navbar"===o._currentType?(this.origin=o._currentType,this.data={target:a[0]}):(r=n.cwd().hash===a[0],this.origin=t&&!r?t:"cwd",delete this.data),a||this.options.intoNewFolderToolbtn||n.getUI("cwd").trigger("unselectall"),this.move=this.value===n.i18n("cmdmkdirin"),e.proxy(n.res("mixin","make"),i)()},this.shortcuts=[{pattern:"ctrl+shift+n"}],this.init=function(){this.options.intoNewFolderToolbtn&&(this.syncTitleOnChange=!0)},n.bind("select contextmenucreate closecontextmenu",function(e){var a=(e.data?e.data.selected||e.data.targets:null)||n.selected();i.className="mkdir",t=e.data&&a.length?e.data.origin||e.data.type||"":"",i.options.intoNewFolderToolbtn||""!==t||(t="cwd"),a.length&&"navbar"!==t&&"cwd"!==t&&n.cwd().hash!==a[0]?(i.title=n.i18n("cmdmkdirin"),i.className+=" elfinder-button-icon-mkdirin"):i.title=n.i18n("cmdmkdir"),"closecontextmenu"!==e.type?i.update(void 0,i.title):requestAnimationFrame(function(){i.update(void 0,i.title)})}),this.getstate=function(i){var a=n.cwd(),o="navbar"===t||i&&i[0]!==a.hash?this.files(i||n.selected()):[],r=o.length,s=function(t){var n=!0;return e.grep(t,function(e){return n=!(!n||!e.read||e.locked)})};return"navbar"===t?r&&o[0].write&&o[0].read?0:-1:!a.write||r&&s(o).length!=r?-1:0}},i.prototype.commands.mkfile=function(){var t=this;this.disableOnSearch=!0,this.updateOnSelect=!1,this.mime="text/plain",this.prefix="untitled file.txt",this.variants=[],this.getTypeName=function(e,n){var i,a=t.fm;return i=(i=a.messages["kind"+a.kinds[e]])?a.i18n(["extentiontype",n.toUpperCase(),i]):a.i18n(["extentionfile",n.toUpperCase()])},this.fm.bind("open reload canMakeEmptyFile",function(){var n=t.fm,i=n.getCommand("edit").getMkfileHides();t.variants=[],n.mimesCanMakeEmpty&&e.each(n.mimesCanMakeEmpty,function(e,a){a&&!i[e]&&n.uploadMimeCheck(e)&&t.variants.push([e,t.getTypeName(e,a)])}),t.change()}),this.getstate=function(){return this.fm.cwd().write?0:-1},this.exec=function(n,i){var a,o,r=t.fm;if(a=r.mimesCanMakeEmpty[i]){if(r.uploadMimeCheck(i))return this.mime=i,this.prefix=r.i18n(["untitled file",a]),e.proxy(r.res("mixin","make"),t)();o=["errMkfile",t.getTypeName(i,a)]}return e.Deferred().reject(o)}},i.prototype.commands.netmount=function(){var t,n=this,i=!1;this.alwaysEnabled=!0,this.updateOnSelect=!1,this.drivers=[],this.handlers={load:function(){var t=n.fm;t.cookieEnabled&&t.one("open",function(){n.drivers=t.netDrivers,n.drivers.length&&e.each(n.drivers,function(){var e=n.options[this];e&&(i=!0,e.integrateInfo&&t.trigger("helpIntegration",Object.assign({cmd:"netmount"},e.integrateInfo)))})})}},this.getstate=function(){return i?0:-1},this.exec=function(){var i,a=n.fm,o=e.Deferred(),r=n.options,s=function(){var s,l=function(){c.protocol.trigger("change","winfocus")},c={protocol:e("").on("change",function(e,n){var o=this.value;t.find(".elfinder-netmount-tr").hide(),t.find(".elfinder-netmount-tr-"+o).show(),i&&i.children(".ui-dialog-buttonpane:first").find("button").show(),"function"==typeof r[o].select&&r[o].select(a,e,n)}).addClass("ui-corner-all")},d={title:a.i18n("netMountDialogTitle"),resizable:!0,modal:!0,destroyOnClose:!1,open:function(){e(window).on("focus."+a.namespace,l),c.protocol.trigger("change")},close:function(){"pending"==o.state()&&o.reject(),e(window).off("focus."+a.namespace,l)},buttons:{}},p=function(){var i,s=c.protocol.val(),l={cmd:"netmount",protocol:s},d=r[s];return e.each(t.find("input.elfinder-netmount-inputs-"+s),function(t,n){var i,a;a=e(n),a.is(":radio,:checkbox")?a.is(":checked")&&(i=e.trim(a.val())):i=e.trim(a.val()),i&&(l[n.name]=i)}),l.host?(l.mnt2res&&(i=!0),a.request({data:l,notify:{type:"netmount",cnt:1,hideCnt:!0}}).done(function(e){var t;e.added&&e.added.length&&(i&&c.protocol.trigger("change","reset"),e.added[0].phash&&(t=a.file(e.added[0].phash))&&(t.dirs||(t.dirs=1,a.change({changed:[t]}))),a.one("netmountdone",function(){a.exec("open",e.added[0].hash)})),o.resolve()}).fail(function(e){d.fail&&"function"==typeof d.fail&&d.fail(a,a.parseError(e)),o.reject(e)}),void n.dialog.elfinderdialog("close")):a.trigger("error",{error:"errNetMountHostReq",opts:{modal:!0}})},u=e('
                ').on("keydown","input",function(t){var n,i=!0;t.keyCode===e.ui.keyCode.ENTER&&(e.each(u.find("input:visible:not(.elfinder-input-optional)"),function(){if(""===e(this).val())return i=!1,n=e(this),!1}),i?p():n.trigger("focus"))}),h=e("
                ");return t=e('
                ').append(e("").append(e(""+a.i18n("protocol")+"")).append(e("").append(c.protocol))),e.each(n.drivers,function(n,i){r[i]&&(c.protocol.append('"),e.each(r[i].inputs,function(n,o){o.attr("name",n),"hidden"!=o.attr("type")?(o.addClass("ui-corner-all elfinder-netmount-inputs-"+i),t.append(e("").addClass("elfinder-netmount-tr elfinder-netmount-tr-"+i).append(e(""+a.i18n(n)+"")).append(e("").append(o)))):(o.addClass("elfinder-netmount-inputs-"+i),h.append(o))}),r[i].protocol=c.protocol)}),t.append(h),t.find(".elfinder-netmount-tr").hide(),t.find(".elfinder-netmount-tr-"+n.drivers[0]).show(),d.buttons[a.i18n("btnMount")]=p,d.buttons[a.i18n("btnCancel")]=function(){n.dialog.elfinderdialog("close")},t.find("select,input").addClass("elfinder-tabstop"),s=n.fmDialog(u.append(t),d).ready(function(){c.protocol.trigger("change"),s.elfinderdialog("posInit")}),i=s.closest(".ui-dialog"),s};return n.dialog?n.dialog.elfinderdialog("open"):n.dialog=s(),o.promise()},n.fm.bind("netmount",function(e){var i=e.data||null,a=n.options,o=function(){a[i.protocol]&&"function"==typeof a[i.protocol].done&&(a[i.protocol].done(n.fm,i),t.find("select,input").addClass("elfinder-tabstop"),n.dialog.elfinderdialog("tabstopsInit"))};i&&i.protocol&&(i.mode&&"redirect"===i.mode?n.fm.request({data:{cmd:"netmount",protocol:i.protocol,host:i.host,user:"init",pass:"return",options:i.options},preventDefault:!0}).done(function(e){i=JSON.parse(e.body),o()}):o())})},i.prototype.commands.netunmount=function(){this.alwaysEnabled=!0,this.updateOnSelect=!1,this.drivers=[],this.handlers={load:function(){this.drivers=this.fm.netDrivers}},this.getstate=function(e){var t,n=this.fm;return e&&this.drivers.length&&!this._disabled&&(t=n.file(e[0]))&&t.netkey?0:-1},this.exec=function(t){var n=this,i=this.fm,a=e.Deferred().fail(function(e){e&&i.error(e)}),o=i.file(t[0]),r=function(t){var n,a=[];return i.leafRoots&&(n=[],e.each(i.leafRoots,function(a,o){var r,s=i.parents(a);(r=e.inArray(t,s))!==-1&&(r=s.length-r,e.each(o,function(e,t){n.push({i:r,hash:t})}))}),n.length&&(n.sort(function(e,t){return e.i').hide().appendTo(e("body"));if(t.UA.Mobile||!h){if(u)h?p.attr("target","_blank"):p.attr("download",a.name),p.attr("href",n).get(0).click();else if(i=window.open(n),!i)return g.reject("errPopup")}else{if(m="string"==typeof w.method&&"get"===w.method.toLowerCase(),!m&&0===n.indexOf(t.options.url)&&t.customData&&Object.keys(t.customData).length&&!a.mime.match(/^(?:video|audio)/)&&(n=""),"window"===x?(s=c=Math.round(2*screen.availWidth/3),l=d=Math.round(2*screen.availHeight/3),parseInt(a.width)&&parseInt(a.height)?(s=parseInt(a.width),l=parseInt(a.height)):a.dim&&(o=a.dim.split("x"),s=parseInt(o[0]),l=parseInt(o[1])),c>=s&&d>=l?(c=s,d=l):s-c>l-d?d=Math.round(l*(c/s)):c=Math.round(s*(d/l)),r="width="+c+",height="+d,i=window.open(n,f,r+",top=50,left=50,scrollbars=yes,resizable=yes,titlebar=no")):("tabs"===x&&(f=a.hash),i=window.open("about:blank",f)),!i)return g.reject("errPopup");if(""===n){var v=document.createElement("form");v.action=t.options.url,v.method="POST",v.target=f,v.style.display="none";var b=Object.assign({},t.customData,{cmd:"file",target:a.hash,_t:a.ts||parseInt(+new Date/1e3)});e.each(b,function(e,t){var n=document.createElement("input");n.name=e,n.value=t,v.appendChild(n)}),document.body.appendChild(v),v.submit()}else"window"!==x&&(i.location=n);e(i).trigger("focus")}p.remove()};try{p=new RegExp(t.option("dispInlineRegex"),"i")}catch(k){p=!1}for(u="string"==typeof e("").get(0).download,b=v.length;b--;){if(f="elf_open_window",a=v[b],!a.read)return g.reject(["errOpen",a.name,"errPerm"]);h=p&&a.mime.match(p),t.openUrl(a.hash,!h,y)}return g.resolve(n)};if(b>1)t.confirm({title:"openMulti",text:["openMultiConfirm",b+""],accept:{label:"cmdopen",callback:function(){k()}},cancel:{label:"btnCancel",callback:function(){g.reject()}},buttons:t.getCommand("zipdl")&&t.isCommandEnabled("zipdl",t.cwd().hash)?[{label:"cmddownload",callback:function(){t.exec("download",n),g.reject()}}]:[]});else{if(f=t.storage("selectAction")||w.selectAction,f&&(e.each(f.split("/"),function(){var e=this.valueOf();return("open"===e||!(m=t.getCommand(e))||!m.enabled())&&void(m=null)}),m))return t.exec(m.name);k()}return g}}).prototype={forceLoad:!0},i.prototype.commands.opendir=function(){this.alwaysEnabled=!0,this.getstate=function(){var e,t=this.fm.selected(),n=t.length;return 1!==n?-1:(e=this.fm.getUI("workzone"),e.hasClass("elfinder-search-result")?0:-1)},this.exec=function(t){var n,i=this.fm,a=e.Deferred(),o=this.files(t),r=o.length;return r&&o[0].phash?(n=o[0].phash,i.trigger("searchend",{noupdate:!0}),i.request({data:{cmd:"open",target:n},notify:{type:"open",cnt:1,hideCnt:!0},syncOnFail:!1}),a):a.reject()}},i.prototype.commands.opennew=function(){var t=this.fm;this.shortcuts=[{pattern:("function"==typeof t.options.getFileCallback?"shift+":"")+"ctrl+enter"}],this.getstate=function(e){var t=this.files(e),n=t.length;return 1===n&&"directory"===t[0].mime&&t[0].read?0:-1},this.exec=function(t){var n,i,a,o,r=e.Deferred(),s=this.files(t),l=s.length,c=this.options;return 1===l&&(n=s[0])&&"directory"===n.mime?(i=window.location,a=c.url?c.url:i.pathname,c.useOriginQuery&&(a.match(/\?/)?i.search&&(a+="&"+i.search.substr(1)):a+=i.search),a+="#elf_"+n.hash,o=window.open(a,"_blank"),setTimeout(function(){o.focus()},1e3),r.resolve()):r.reject()}},i.prototype.commands.paste=function(){this.updateOnSelect=!1,this.handlers={changeclipboard:function(){this.update()}},this.shortcuts=[{pattern:"ctrl+v shift+insert"}],this.getstate=function(e){if(this._disabled)return-1;if(e){if(Array.isArray(e)){if(1!=e.length)return-1;e=this.fm.file(e[0])}}else e=this.fm.cwd();return this.fm.clipboard().length&&"directory"==e.mime&&e.write?0:-1},this.exec=function(t,n){var i,a,o,r=this,s=r.fm,l=n||{},c=t?this.files(t)[0]:s.cwd(),d=s.clipboard(),p=d.length,u=!!p&&d[0].cut,h=l._cmd?l._cmd:u?"move":"copy",f="err"+h.charAt(0).toUpperCase()+h.substr(1),m=[],g=[],v=e.Deferred().fail(function(e){e&&s.error(e)}).always(function(){s.unlockfiles({files:e.map(d,function(e){return e.hash})})}),b=function(t){return t.length&&s._commands.duplicate?s.exec("duplicate",t):e.Deferred().resolve()},y=function(t){var n,i=e.Deferred(),a=[],o={},d=function(t,n){for(var i=[],a=t.length;a--;)e.inArray(t[a].name,n)!==-1&&i.unshift(a);return i},p=function(e){var n=a[e],o=t[n],r=e==a.length-1;o&&s.confirm({title:s.i18n(h+"Files"),text:["errExists",o.name,"restore"===h?"confirmRest":"confirmRepl"],all:!r,accept:{label:"btnYes",callback:function(n){r||n?m(t):p(++e)}},reject:{label:"btnNo",callback:function(n){var i;if(n)for(i=a.length;e{title}',s=e('
                '),l=e('
                  '),c=e('
                  '),d=(e("base").length?document.location.href.replace(/#.*$/,""):"",function(t){e("#"+a.namespace+"-preference-tab-"+t).trigger("mouseover").trigger("click"),n=t}),p=a.res("class","tabsactive"),u=function(){var u=i.options.categories||{language:["language"],theme:["theme"],toolbar:["toolbarPref"],workspace:["iconSize","columnPref","selectAction","makefileTypes","useStoredEditor","editorMaximized","useFullscreen","showHidden"],dialog:["autoFocusDialog"],selectionInfo:["infoItems","hashChecker"],reset:["clearBrowserData"],all:!0},h=i.options.prefs||["language","theme","toolbarPref","iconSize","columnPref","selectAction","makefileTypes","useStoredEditor","editorMaximized","useFullscreen","showHidden","infoItems","hashChecker","autoFocusDialog","clearBrowserData"];a.cookieEnabled||delete u.language,h=a.arrayFlip(h,!0),a.options.getFileCallback&&delete h.selectAction,a.UA.Fullscreen||delete h.useFullscreen,h.language&&(h.language=function(){var t=e("").on("change",function(){var t=e(this).val();a.storage("lang",t),e("#"+a.id).elfinder("reload")}),n=[],o=i.options.langs||{ar:"العربية",bg:"Български",ca:"Català",cs:"Čeština",da:"Dansk",de:"Deutsch",el:"Ελληνικά",en:"English",es:"Español",fa:"فارسی",fo:"Føroyskt",fr:"Français",fr_CA:"Français (Canada)",he:"עברית",hr:"Hrvatski",hu:"Magyar",id:"Bahasa Indonesia",it:"Italiano",ja:"日本語",ko:"한국어",nl:"Nederlands",no:"Norsk",pl:"Polski",pt_BR:"Português",ro:"Română",ru:"Pусский",si:"සිංහල",sk:"Slovenčina",sl:"Slovenščina",sr:"Srpski",sv:"Svenska",tr:"Türkçe",ug_CN:"ئۇيغۇرچە",uk:"Український",vi:"Tiếng Việt",zh_CN:"简体中文",zh_TW:"正體中文"};return a.cookieEnabled?(e.each(o,function(e,t){n.push('")}),t.append(n.join("")).val(a.lang)):e()}()),h.theme&&(h.theme=function(){var t=a.options.themes?Object.keys(a.options.themes).length:0;if(0===t||1===t&&a.options.themes["default"])return null;var n=e("").on("change",function(){var t=e(this).val();a.changeTheme(t).storage("theme",t)}),i={image:'',link:'$2',data:'
                  $1
                  $2
                  '},o=["image","description","author","email","license"],r=e('').text(a.i18n("default")).on("click",function(e){n.val("default").trigger("change")}),s=e('
                  ').on("click","button",function(){var t=e(this).data("themeid");n.val(t).trigger("change")});return a.options.themes["default"]||n.append('"),e.each(a.options.themes,function(t,r){var l,c=e('"),d=e('
                  '+a.i18n(t)+'
                  ');n.append(c),s.append(d),l=setTimeout(function(){d.find("span.elfinder-spinner").replaceWith(a.i18n(["errRead",t]))},1e4),a.getTheme(t).always(function(){l&&clearTimeout(l)}).done(function(r){var s,l=e(),p=e("
                  ");s=r.link?i.link.replace(/\$1/g,r.link).replace(/\$3/g,a.i18n("website")):"$2",r.name&&c.html(a.i18n(r.name)),d.children("legend").html(s.replace(/\$2/g,a.i18n(r.name)||t)),e.each(o,function(o,s){var l,c=i[s]||i.data;r[s]&&(l=c.replace(/\$0/g,a.escape(s)).replace(/\$1/g,a.i18n(s)).replace(/\$2/g,a.i18n(r[s])),"image"===s&&r.link&&(l=e(l).on("click",function(){n.val(t).trigger("change")}).attr("title",a.i18n("select"))),p.append(l))}),l=l.add(p),l=l.add(e('
                  ').append(e('').data("themeid",t).html(a.i18n("select")))),d.find("span.elfinder-spinner").replaceWith(l)}).fail(function(){d.find("span.elfinder-spinner").replaceWith(a.i18n(["errRead",t]))})}),e("
                  ").append(n.val(a.theme&&a.theme.id?a.theme.id:"default"),r,s)}()),h.toolbarPref&&(h.toolbarPref=function(){var t=e.map(a.options.uiOptions.toolbar,function(t){return e.isArray(t)?t:null}),n=[],i=a.storage("toolbarhides")||{};return e.each(t,function(){var e=this,t=a.i18n("cmd"+e);t==="cmd"+e&&(t=a.i18n(e)),n.push('")}),e(n.join(" ")).on("change","input",function(){var t=e(this).val(),n=e(this).is(":checked");n||i[t]?n&&i[t]&&delete i[t]:i[t]=!0,a.storage("toolbarhides",i),a.trigger("toolbarpref")})}()),h.iconSize&&(h.iconSize=function(){var t=a.options.uiOptions.cwd.iconsView.sizeMax||3,n=a.storage("iconsize")||a.options.uiOptions.cwd.iconsView.size||0,i=e('
                  ').slider({classes:{"ui-slider-handle":"elfinder-tabstop"},value:n,max:t,slide:function(e,t){a.getUI("cwd").trigger("iconpref",{size:t.value})},change:function(e,t){a.storage("iconsize",t.value)}});return a.getUI("cwd").on("iconpref",function(e,t){i.slider("option","value",t.size)}),i}()),h.columnPref&&(h.columnPref=function(){var t=a.options.uiOptions.cwd.listView.columns,n=[],i=a.storage("columnhides")||{};return e.each(t,function(){var e=this,t=a.getColumnName(e);n.push('")}),e(n.join(" ")).on("change","input",function(){var t=e(this).val(),n=e(this).is(":checked");n||i[t]?n&&i[t]&&delete i[t]:i[t]=!0,a.storage("columnhides",i),a.trigger("columnpref",{repaint:!0})})}()),h.selectAction&&(h.selectAction=function(){var t=e("").on("change",function(){var t=e(this).val();a.storage("selectAction","default"===t?null:t)}),n=[],o=i.options.selectActions,r=a.getCommand("open").options.selectAction||"open";return e.inArray(r,o)===-1&&o.unshift(r),e.each(o,function(t,i){var o=e.map(i.split("/"),function(e){var t=a.i18n("cmd"+e);return t==="cmd"+e&&(t=a.i18n(e)),t});n.push('")}),t.append(n.join("")).val(a.storage("selectAction")||r)}()),h.makefileTypes&&(h.makefileTypes=function(){var t=a.getCommand("edit").getMkfileHides(),n=function(){var n=[];return t=a.getCommand("edit").getMkfileHides(),e.each(a.mimesCanMakeEmpty,function(e,i){var o=a.getCommand("mkfile").getTypeName(e,i);n.push('")}),n.join(" ")},i=e("
                  ").on("change","input",function(){var n=e(this).val(),i=e(this).is(":checked");i||t[n]?i&&t[n]&&delete t[n]:t[n]=!0,a.storage("mkfileHides",t),a.trigger("canMakeEmptyFile")}).append(n()),o=e("
                  ").append(e('').on("keydown",function(t){t.keyCode===e.ui.keyCode.ENTER&&e(this).next().trigger("click")}),e('').html(a.i18n("add")).on("click",function(){var t,n=e(this).prev(),i=n.val(),o=a.getUI("toast"),r=function(){return o.appendTo(n.closest(".ui-dialog")),a.toast({msg:a.i18n("errUsupportType"),mode:"warning",onHidden:function(){1===o.children().length&&o.appendTo(a.getUI())}}),n.trigger("focus"),!1};if(!i.match(/\//)){if(i=a.arrayFlip(a.mimeTypes)[i],!i)return r();n.val(i)}return a.mimeIsText(i)&&a.mimeTypes[i]?(a.trigger("canMakeEmptyFile",{mimes:[i],unshift:!0}),t={},t[i]=a.mimeTypes[i],a.storage("mkfileTextMimes",Object.assign(t,a.storage("mkfileTextMimes")||{})),n.val(""),o.appendTo(n.closest(".ui-dialog")),void a.toast({msg:a.i18n(["complete",i+" ("+t[i]+")"]),onHidden:function(){1===o.children().length&&o.appendTo(a.getUI())}})):r()}),e('').html(a.i18n("reset")).on("click",function(){a.one("canMakeEmptyFile",{done:function(){i.empty().append(n())}}),a.trigger("canMakeEmptyFile",{resetTexts:!0})}));return a.bind("canMakeEmptyFile",{done:function(e){e.data&&e.data.mimes&&e.data.mimes.length&&i.empty().append(n())}}),e("
                  ").append(i,o)}()),h.useStoredEditor&&(h.useStoredEditor=e('').prop("checked",function(){var e=a.storage("useStoredEditor");return e?e>0:a.options.commandsOptions.edit.useStoredEditor}()).on("change",function(t){a.storage("useStoredEditor",e(this).is(":checked")?1:-1)})),h.editorMaximized&&(h.editorMaximized=e('').prop("checked",function(){var e=a.storage("editorMaximized");return e?e>0:a.options.commandsOptions.edit.editorMaximized}()).on("change",function(t){a.storage("editorMaximized",e(this).is(":checked")?1:-1)})),h.useFullscreen&&(h.useFullscreen=e('').prop("checked",function(){var e=a.storage("useFullscreen");return e?e>0:"screen"===a.options.commandsOptions.fullscreen.mode}()).on("change",function(t){a.storage("useFullscreen",e(this).is(":checked")?1:-1)})),h.showHidden&&!function(){var t,n=function(){var n,i=a.storage("hide"),o=[];i&&i.items&&e.each(i.items,function(e,t){o.push(a.escape(t))}),r.prop("disabled",!o.length)[o.length?"removeClass":"addClass"]("ui-state-disabled"),n=o.length?o.join("\n"):"",h.showHidden.attr("title",n),t&&h.showHidden.tooltip("option","content",n.replace(/\n/g,"
                  ")).tooltip("close")},i=e('').prop("checked",function(){var e=a.storage("hide");return e&&e.show}()).on("change",function(t){var n={};n[e(this).is(":checked")?"show":"hide"]=!0,a.exec("hide",void 0,n)}),o=e('').append(a.i18n("reset")).on("click",function(){a.exec("hide",void 0,{reset:!0}),e(this).parent().find("input:first").prop("checked",!1),n()}),r=e().add(i).add(o);h.showHidden=e("
                  ").append(i,o),a.bind("hide",function(e){var t=e.data;t.opts&&(t.opts.show||t.opts.hide)||n()}),a.UA.Mobile&&e.fn.tooltip&&(t=!0,h.showHidden.tooltip({classes:{"ui-tooltip":"elfinder-ui-tooltip ui-widget-shadow"},tooltipClass:"elfinder-ui-tooltip ui-widget-shadow",track:!0}).css("user-select","none"),o.css("user-select","none")),n()}(),h.infoItems&&(h.infoItems=function(){var t=a.getCommand("info").items,n=[],i=a.storage("infohides")||a.arrayFlip(a.options.commandsOptions.info.hideItems,!0);return e.each(t,function(){var e=this,t=a.i18n(e);n.push('")}),e(n.join(" ")).on("change","input",function(){var t=e(this).val(),n=e(this).is(":checked");n||i[t]?n&&i[t]&&delete i[t]:i[t]=!0,a.storage("infohides",i),a.trigger("infopref",{repaint:!0})})}()),h.hashChecker&&a.hashCheckers.length&&(h.hashChecker=function(){var t=[],n=a.arrayFlip(a.storage("hashchekcer")||a.options.commandsOptions.info.showHashAlgorisms,!0);return e.each(a.hashCheckers,function(){var e=this,i=a.i18n(e);t.push('")}),e(t.join(" ")).on("change","input",function(){var t=e(this).val(),i=e(this).is(":checked");i?n[t]=!0:n[t]&&delete n[t],a.storage("hashchekcer",e.grep(a.hashCheckers,function(e){return n[e]}))})}()),h.autoFocusDialog&&(h.autoFocusDialog=e('').prop("checked",function(){var e=a.storage("autoFocusDialog");return e?e>0:a.options.uiOptions.dialog.focusOnMouseOver}()).on("change",function(t){a.storage("autoFocusDialog",e(this).is(":checked")?1:-1)})),h.clearBrowserData&&(h.clearBrowserData=e("").text(a.i18n("reset")).button().on("click",function(t){t.preventDefault(),a.storage(),e("#"+a.id).elfinder("reload")})),e.each(u,function(t,i){var s,d;i===!0?d=1:i&&(s=e(),e.each(i,function(t,n){var i,o,r,l="";(i=h[n])&&(d=2,o=a.i18n(n),r=e(i).filter('input[type="checkbox"]'),r.length||(r=e(i).find('input[type="checkbox"]')),1===r.length?(r.attr("id")||r.attr("id","elfinder-preference-"+n+"-checkbox"),o='"):r.length>1&&(l=" elfinder-preference-checkboxes"),s=s.add(e('
                  '+o+"
                  ")).add(e('
                  ').append(i)))})),d&&(l.append(r[o](/\{id\}/g,t)[o](/\{title\}/,a.i18n(t))[o](/\{class\}/,n===t?"elfinder-focus":"")),2===d&&c.append(e('
                  ').hide().append(e("
                  ").append(s))))}),l.on("click","a",function(t){var n=e(t.target),i=n.attr("href");t.preventDefault(),t.stopPropagation(),l.children().removeClass(p),n.removeClass("ui-state-hover").parent().addClass(p),i.match(/all$/)?c.addClass("elfinder-preference-taball").children().show():(c.removeClass("elfinder-preference-taball").children().hide(),e(i).show())}).on("focus blur","a",function(t){e(this).parent().toggleClass("ui-state-focus","focusin"===t.type)}).on("mouseenter mouseleave","li",function(t){e(this).toggleClass("ui-state-hover","mouseenter"===t.type)}),c.find("a,input,select,button").addClass("elfinder-tabstop"),s.append(l,c),t=i.fmDialog(s,{title:i.title,width:i.options.width||600,height:i.options.height||400,maxWidth:"window",maxHeight:"window",autoOpen:!1,destroyOnClose:!1,allowMinimize:!1,open:function(){n&&d(n),n=null},resize:function(){c.height(t.height()-l.outerHeight(!0)-(c.outerHeight(!0)-c.height())-5)}}).on("click",function(e){e.stopPropagation()}).css({overflow:"hidden"}),t.closest(".ui-dialog").css({overflow:"hidden"}).addClass("elfinder-bg-translucent"),n="all"};this.shortcuts=[{pattern:"ctrl+comma",description:this.title}],this.alwaysEnabled=!0,this.getstate=function(){return 0},this.exec=function(n,i){return!t&&u(),i&&(i.tab?d(i.tab):"cwd"===i._currentType&&d("workspace")),t.elfinderdialog("open"),e.Deferred().resolve()}},(i.prototype.commands.quicklook=function(){var t,n,i,a,o,r,s,l,c,d,p=this,u=p.fm,h=0,f=1,m=2,g=3,v=4,b=h,y=Element.update?"quicklookupdate":"update",w="elfinder-quicklook-navbar-icon",x="elfinder-quicklook-fullscreen",k="elfinder-quicklook-info-wrapper",C=function(t){e(document).trigger(e.Event("keydown",{keyCode:t,ctrlKey:!1,shiftKey:!1,altKey:!1,metaKey:!1}))},z=function(e){var t=u.getUI().offset(),n=function(){var t=e.find(".elfinder-cwd-file-wrapper");return t.length?t:e}(),i=n.offset()||{top:0,left:0};return{opacity:0,width:n.width(),height:n.height()-30,top:i.top-t.top,left:i.left-t.left}},T=function(){var i=p.options.contain||u.options.dialogContained,a=i?u.getUI():e(window),o=u.getUI().offset(),r=Math.min(t,a.width()-10),s=Math.min(n,a.height()-80);return{opacity:1,width:r,height:s,top:parseInt((a.height()-s-60)/2+(i?0:a.scrollTop()-o.top)),left:parseInt((a.width()-r)/2+(i?0:a.scrollLeft()-o.left))}},A={},S=function(e,t){var n=t||e.substr(0,e.indexOf("/")),i=A[n]?A[n]:A[n]=document.createElement(n),a=!1;try{a=i.canPlayType&&i.canPlayType(e)}catch(o){}return!(!a||""===a||"no"==a)},j=window.navigator.platform.indexOf("Win")!=-1,O=!1,I=!1,M=!1,E=null,D=e.ui.keyCode.LEFT,F=e.ui.keyCode.RIGHT,U="mousemove touchstart "+("onwheel"in document?"wheel":"onmousewheel"in document?"mousewheel":"DOMMouseScroll"),P=e(''),q=e("
                  "),R=e('
                  '),H=e('
                  '),_=e('
                  ').on("click touchstart",function(t){if(!M){var n=p.window,i=n.hasClass(x),o=e(window),r=function(){p.preview.trigger("changesize")};t.stopPropagation(),t.preventDefault(),i?(G="",L(),n.toggleClass(x).css(n.data("position")),o.trigger(p.resize).off(p.resize,r),V.off("mouseenter mouseleave"),H.off(U)):(n.toggleClass(x).data("position",{left:n.css("left"),top:n.css("top"),width:n.width(),height:n.height(),display:"block"}).removeAttr("style"),e(window).on(p.resize,r).trigger(p.resize),H.on(U,function(e){I||("mousemove"!==e.type&&"touchstart"!==e.type||(L(),E=setTimeout(function(){(u.UA.Mobile||V.parent().find(".elfinder-quicklook-navbar:hover").length<1)&&V.fadeOut("slow",function(){H.show()})},3e3)),H.is(":visible")&&(W(),H.data("tm",setTimeout(function(){H.show()},3e3))))}).show().trigger("mousemove"),V.on("mouseenter mouseleave",function(e){I||("mouseenter"===e.type?L():H.trigger("mousemove"))})),u.zIndex&&n.css("z-index",u.zIndex+1),u.UA.Mobile?V.attr("style",G):V.attr("style",G).draggable(i?"destroy":{start:function(){I=!0,M=!0,H.show(),L()},stop:function(){I=!1,G=p.navbar.attr("style"),requestAnimationFrame(function(){M=!1})}}),e(this).toggleClass(w+"-fullscreen-off");var s=n;a.is(".ui-resizable")&&(s=s.add(a)),s.resizable(i?"enable":"disable").removeClass("ui-state-disabled"),n.trigger("viewchange")}}),N=function(){p.update(void 0,function(){var t=p.fm,n=t.selectedFiles(),i=n.length,a=(p.docked(),function(){var a=0;return e.each(n,function(e,t){var n=parseInt(t.ts);a>=0?n>a&&(a=n):a="unknown"}),{hash:n[0].hash+"/"+ +new Date,name:t.i18n("items")+": "+i,mime:"group",size:J,ts:a,files:e.map(n,function(e){return e.hash}),getSize:!0}});return i||(i=1,n=[t.cwd()]),1===i?n[0]:a()}())},L=function(){p.window.hasClass(x)&&(E&&clearTimeout(E),E=null,V.stop(!0,!0).css("display","block"),W())},W=function(){H.data("tm")&&clearTimeout(H.data("tm")),H.removeData("tm"),H.hide()},B=e('
                  ').on("click touchstart",function(e){return!M&&C(D),!1}),$=e('
                  ').on("click touchstart",function(e){return!M&&C(F),!1}),V=e('
                  ').append(B).append(_).append($).append('
                  ').append(e('
                  ').on("click touchstart",function(e){return!M&&p.window.trigger("close"),!1})),K=e('').on("mousedown",function(e){e.stopPropagation(),p.window.trigger("close")}),X=e('').on("mousedown",function(e){e.stopPropagation(),p.docked()?p.window.trigger("navdockout"):p.window.trigger("navdockin")}),J=''+u.i18n("calc")+'',G="",Y=!0;this.flags={},this.cover=H,this.evUpdate=y,(this.navbar=V)._show=L,this.resize="resize."+u.namespace,this.info=e("
                  ").addClass(k).append(q).append(R),this.autoPlay=function(){return!!p.opened()&&!!p.options[p.docked()?"dockAutoplay":"autoplay"]},this.preview=e('
                  ').on("change",function(){L(),V.attr("style",G),p.docked()&&V.hide(),p.preview.attr("style","").removeClass("elfinder-overflow-auto"),p.info.attr("style","").hide(),p.cover.removeClass("elfinder-quicklook-coverbg"),q.removeAttr("class").attr("style",""),R.html("")}).on(y,function(t){var n,i,a=(p.preview,t.file),r='
                  {value}
                  ',s=function(){var s=p.window.css("overflow","hidden");i=u.escape(a.i18||a.name),!a.read&&t.stopImmediatePropagation(),p.window.data("hash",a.hash),p.preview.off("changesize").trigger("change").children().remove(),P.html(i),B.css("visibility",""),$.css("visibility",""),a.hash===u.cwdId2Hash(o.find("[id]:not(.elfinder-cwd-parent):first").attr("id"))&&B.css("visibility","hidden"),a.hash===u.cwdId2Hash(o.find("[id]:last").attr("id"))&&$.css("visibility","hidden"),"directory"===a.mime?c=[a.hash]:"group"===a.mime&&a.getSize&&(c=a.files),R.html(r.replace(/\{value\}/,i)+r.replace(/\{value\}/,u.mime2kind(a))+r.replace(/\{value\}/,c.length?J:u.formatSize(a.size))+r.replace(/\{value\}/,u.i18n("modify")+": "+u.formatDate(a))),c.length&&(l=u.getSize(c).done(function(e){R.find("span.elfinder-spinner").parent().html(e.formated)}).fail(function(){R.find("span.elfinder-spinner").parent().html(u.i18n("unknown"))}).always(function(){l=null}),l._hash=a.hash),q.addClass("elfinder-cwd-icon ui-corner-all "+u.mime2class(a.mime)),a.icon&&q.css(u.getIconStyle(a,!0)),p.info.attr("class",k),a.csscls&&p.info.addClass(a.csscls),a.read&&(n=u.tmb(a))&&e("").hide().appendTo(p.preview).on("load",function(){q.addClass(n.className).css("background-image","url('"+n.url+"')"),e(this).remove()}).attr("src",n.url),p.info.delay(100).fadeIn(10),p.window.hasClass(x)&&H.trigger("mousemove"),s.css("overflow","")},c=[];a&&!Object.keys(a).length&&(a=u.cwd()),a&&l&&"pending"===l.state()&&l._hash!==a.hash&&l.reject(),a&&(t.forceUpdate||p.window.data("hash")!==a.hash)?s():t.stopImmediatePropagation()}),this.window=e('
                  ').hide().addClass(u.UA.Touch?"elfinder-touch":"").on("click",function(e){var t=this;e.stopPropagation(),b===m&&requestAnimationFrame(function(){b===m&&u.toFront(t)})}).append(e('
                  ').append(e('').append(K,X),P),this.preview,p.info.hide(),H.hide(),V).draggable({handle:"div.elfinder-quicklook-titlebar"}).on("open",function(e,t){var n=p.window,i=p.value,a=u.getUI("cwd"),o=function(e){b=e,p.update(1,p.value),p.change(),n.trigger("resize."+u.namespace)};Y||b!==h?b===v&&(u.getUI("navdock").data("addNode")(c),o(g),p.preview.trigger("changesize"),u.storage("previewDocked","1"),0===u.getUI("navdock").width()&&n.trigger("navdockout")):(i&&i.hash!==r&&(a=u.cwdHash2Elm(i.hash.split("/",2)[0])),G="",V.attr("style",""),b=f,a.trigger("scrolltoview"),W(),n.css(t||z(a)).show().animate(T(),550,function(){o(m),L()}),u.toFront(n))}).on("close",function(e,t){var n,i=p.window,a=p.preview.trigger("change"),r=(p.value,(i.data("hash")||"").split("/",2)[0]),s=function(e,n){b=e,n&&u.toHide(i),a.children().remove(),p.update(0,p.value),i.data("hash",""),t&&t.resolve()};p.opened()&&(l&&"pending"===l.state()&&l.reject(),p.docked()?(c=u.getUI("navdock").data("removeNode")(p.window.attr("id"),"detach"),s(v),u.storage("previewDocked","2")):(b=f,i.hasClass(x)&&_.click(),r&&(n=o.find("#"+r)).length?i.animate(z(n),500,function(){a.off("changesize"),s(h,!0)}):s(h,!0)))}).on("navdockin",function(e,t){var n=p.window,a=u.getUI("navdock"),o=s||a.width(),r=t||{};Y&&(r.init=!0),b=g,i=n.attr("style"),n.toggleClass("ui-front").removeClass("ui-widget").draggable("disable").resizable("disable").removeAttr("style").css({width:"100%",height:o,boxSizing:"border-box",paddingBottom:0,zIndex:"unset"}),V.hide(),X.toggleClass("ui-icon-plusthick ui-icon-minusthick elfinder-icon-full elfinder-icon-minimize"),u.toHide(n,!0),a.data("addNode")(n,r),p.preview.trigger("changesize"),u.storage("previewDocked","1")}).on("navdockout",function(t){var n=p.window,a=u.getUI("navdock"),o=(e.Deferred(),z(p.preview));s=n.outerHeight(),a.data("removeNode")(n.attr("id"),u.getUI()),n.toggleClass("ui-front").addClass("ui-widget").draggable("enable").resizable("enable").attr("style",i),X.toggleClass("ui-icon-plusthick ui-icon-minusthick elfinder-icon-full elfinder-icon-minimize"),b=h,n.trigger("open",o),u.storage("previewDocked","0")}).on("resize."+u.namespace,function(){p.preview.trigger("changesize")}),this.alwaysEnabled=!0,this.value=null,this.handlers={select:function(e,t){d&&cancelAnimationFrame(d),e.data&&e.data.selected&&e.data.selected.length?p.opened()&&N():d=requestAnimationFrame(function(){p.opened()&&N()})},error:function(){p.window.is(":visible")&&p.window.trigger("close")},"searchshow searchhide":function(){this.opened()&&this.window.trigger("close")},navbarshow:function(){requestAnimationFrame(function(){p.docked()&&p.preview.trigger("changesize")})},destroy:function(){p.window.remove()}},this.shortcuts=[{pattern:"space"}],this.support={audio:{ogg:S("audio/ogg;"),webm:S("audio/webm;"),mp3:S("audio/mpeg;"),wav:S("audio/wav;"),m4a:S("audio/mp4;")||S("audio/x-m4a;")||S("audio/aac;"),flac:S("audio/flac;"),amr:S("audio/amr;")},video:{ogg:S("video/ogg;"),webm:S("video/webm;"),mp4:S("video/mp4;"),mkv:S("video/x-matroska;")||S("video/webm;"),"3gp":S("video/3gpp;")||S("video/mp4;"),m3u8:S("application/x-mpegURL","video")||S("application/vnd.apple.mpegURL","video"),mpd:S("application/dash+xml","video")}},A={},this.closed=function(){return b==h||b==v},this.opened=function(){return b==m||b==g},this.docked=function(){return b==g},this.addIntegration=function(e){requestAnimationFrame(function(){u.trigger("helpIntegration",Object.assign({cmd:"quicklook"},e))})},this.init=function(){var i,l=this.options,c=this.window,d=this.preview;t=l.width>0?parseInt(l.width):450,n=l.height>0?parseInt(l.height):300,"auto"!==l.dockHeight&&(s=parseInt(l.dockHeight),s||(s=void 0)),u.one("load",function(){O=u.getUI("navdock").data("dockEnabled"),!O&&X.hide(),a=u.getUI(),o=u.getUI("cwd"),u.zIndex&&c.css("z-index",u.zIndex+1),c.appendTo(a),e(document).on("keydown."+u.namespace,function(t){t.keyCode==e.ui.keyCode.ESCAPE&&p.opened()&&!p.docked()&&c.hasClass("elfinder-frontmost")&&c.trigger("close")}),c.resizable({handles:"se",minWidth:350,minHeight:120,resize:function(){d.trigger("changesize")}}),p.change(function(){p.opened()&&p.value&&(p.value.tmb&&1==p.value.tmb&&(p.value=Object.assign({},u.file(p.value.hash))),d.trigger(e.Event(y,{file:p.value})))}),d.on(y,function(e){var t,n,a;if(t=e.file){if(n=t.hash,a=u.searchStatus.mixed&&u.searchStatus.state>1,"directory"!==t.mime)if(parseInt(t.size)||t.mime.match(l.mimeRegexNotEmptyCheck)){if(p.dispInlineRegex=i,a||u.optionsByHashes[n])try{p.dispInlineRegex=new RegExp(u.option("dispInlineRegex",n),"i")}catch(e){try{p.dispInlineRegex=new RegExp(u.isRoot(t)?u.options.dispInlineRegex:u.option("dispInlineRegex",t.phash),"i")}catch(e){p.dispInlineRegex=/^$/}}}else e.stopImmediatePropagation();else p.dispInlineRegex=/^$/;p.info.show()}else e.stopImmediatePropagation()}),e.each(u.commands.quicklook.plugins||[],function(e,t){"function"==typeof t&&new t(p)})}).one("open",function(){var e,t=Number(u.storage("previewDocked")||l.docked);O&&t>=1&&(e=p.window,p.exec(),e.trigger("navdockin",{init:!0}),2===t?e.trigger("close"):(p.update(void 0,u.cwd()),p.change())),Y=!1}).bind("open",function(){r=u.cwd().hash,p.value=u.cwd();try{i=new RegExp(u.option("dispInlineRegex"),"i")}catch(e){i=/^$/}}).bind("change",function(t){t.data&&t.data.changed&&p.opened()&&e.each(t.data.changed,function(){if(p.window.data("hash")===this.hash)return p.window.data("hash",null),p.preview.trigger(y),!1})}).bind("navdockresizestart navdockresizestop",function(e){H["navdockresizestart"===e.type?"show":"hide"]()})},this.getstate=function(){return p.opened()?1:0},this.exec=function(){return p.closed()&&N(),p.enabled()&&p.window.trigger(p.opened()?"close":"open"),e.Deferred().resolve()},this.hideinfo=function(){this.info.stop(!0,!0).hide()}}).prototype={forceLoad:!0},i.prototype.commands.quicklook.plugins=[function(t){var n,i,a=["image/jpeg","image/png","image/gif","image/svg+xml","image/x-ms-bmp"],o=t.fm.returnBytes(t.options.getDimThreshold||0),r=t.preview;n=new Image,n.onload=n.onerror=function(){2==n.height&&a.push("image/webp")},n.src="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA",e.each(navigator.mimeTypes,function(t,n){var i=n.type;0===i.indexOf("image/")&&e.inArray(i,a)&&a.push(i)}),r.on(t.evUpdate,function(n){var s,l,c,d,p=t.fm,u=n.file,h=!1,f=null,m=function(e){var t=p.file(u.hash);t.width=e[0],t.height=e[1]},g=function(){var e,t,n,i,a;f&&f.state&&"pending"===f.state()&&f.reject(),h||(h=!0,e=s.get(0),t=u.width&&u.height?{w:u.width,h:u.height}:e.naturalWidth?null:{w:s.width(),h:s.height()},t&&s.removeAttr("width").removeAttr("height"),n=u.width||e.naturalWidth||e.width||s.width(),i=u.height||e.naturalHeight||e.height||s.height(),u.width&&u.height||m([n,i]),t&&s.width(t.w).height(t.h),a=(n/i).toFixed(2),r.on("changesize",function(){var e,t,n=parseInt(r.width()),i=parseInt(r.height());a<(n/i).toFixed(2)?(t=i,e=Math.floor(t*a)):(e=n,t=Math.floor(e/a)),s.width(e).height(t).css("margin-top",t'+p.i18n("nowLoading")+'
                ').appendTo(t.info.find(".elfinder-quicklook-info")),c=e('
                ').appendTo(l),s=e("").hide().appendTo(r).on("load",function(){v(),g()}).on("error",function(){l.remove()}),d=p.openUrl(u.hash,!1,function(e){s.attr("src",e)},{progressBar:c}),r.one("change",function(){d&&d.state&&"pending"===d.state()&&d.reject()}),u.width&&u.height?g():u.size>o&&(f=p.request({data:{cmd:"dim",target:u.hash},preventDefault:!0}).done(function(e){if(e.dim){var t=e.dim.split("x");u.width=t[0],u.height=t[1],m(t),g()}})))})},function(t){var n=t.fm,i="image/tiff",a=t.preview;window.Worker&&window.Uint8Array&&a.on(t.evUpdate,function(o){var r,s,l,c,d,p=o.file,u=function(e){c&&c.terminate(),r.remove(),n.debug("error",e)},h=function(e){var t=n.file(p.hash);t.width=e[0],t.height=e[1]};p.mime===i&&(o.stopImmediatePropagation(),r=e('
                '+n.i18n("nowLoading")+'
                ').appendTo(t.info.find(".elfinder-quicklook-info")),s=e('
                ').appendTo(r),a.one("change",function(){c&&c.terminate(),r.remove()}),d=n.getContents(p.hash,"arraybuffer",{progressBar:s}).done(function(i){if(i){l=e("
                ").css({width:"100%",height:"100%"}).hide().appendTo(a);try{c=n.getWorker(),c.onmessage=function(n){var i,o,s,d,u=n.data;c&&c.terminate(),i=document.createElement("canvas"),o=i.getContext("2d"),i.width=u.width,i.height=u.height,s=o.createImageData(u.width,u.height),s.data.set(new Uint8Array(u.image)),o.putImageData(s,0,0),l.append(i).show(),r.remove(),d=(u.width/u.height).toFixed(2), -a.on("changesize",function(){var t,n,o=parseInt(a.width()),r=parseInt(a.height());d<(o/r).toFixed(2)?(n=r,t=Math.floor(n*d)):(t=o,n=Math.floor(t/d)),e(i).width(t).height(n).css("margin-top",n'+i.i18n("nowLoading")+'