From 946c963bb4651c833db85c6a453cab2ae5678776 Mon Sep 17 00:00:00 2001 From: its Date: Fri, 8 Nov 2019 00:37:40 +0100 Subject: [PATCH 01/75] LaravelDataSource - check for response when determining response status. --- Clockwork/DataSource/LaravelDataSource.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Clockwork/DataSource/LaravelDataSource.php b/Clockwork/DataSource/LaravelDataSource.php index f75d98a3..5bcefdac 100644 --- a/Clockwork/DataSource/LaravelDataSource.php +++ b/Clockwork/DataSource/LaravelDataSource.php @@ -231,7 +231,7 @@ protected function getRequestUri() */ protected function getResponseStatus() { - return $this->response->getStatusCode(); + return $this->response ? $this->response->getStatusCode() : null; } // Return array of middleware for the matched route From 67642e61cc406b84443697946246d2d9fa4e3b06 Mon Sep 17 00:00:00 2001 From: its Date: Fri, 8 Nov 2019 00:38:48 +0100 Subject: [PATCH 02/75] Added support for "command" type requests. --- Clockwork/Clockwork.php | 17 +++++ Clockwork/Request/Request.php | 118 ++++++++++++++++++------------ Clockwork/Request/RequestType.php | 8 ++ 3 files changed, 98 insertions(+), 45 deletions(-) create mode 100644 Clockwork/Request/RequestType.php diff --git a/Clockwork/Clockwork.php b/Clockwork/Clockwork.php index 9b914a83..f0df7a34 100644 --- a/Clockwork/Clockwork.php +++ b/Clockwork/Clockwork.php @@ -5,6 +5,7 @@ use Clockwork\DataSource\DataSourceInterface; use Clockwork\Request\Log; use Clockwork\Request\Request; +use Clockwork\Request\RequestType; use Clockwork\Request\Timeline; use Clockwork\Storage\StorageInterface; @@ -122,6 +123,22 @@ public function resolveRequest() return $this; } + // Resolve the current request as a "command" type request with command-specific data + public function resolveAsCommand($name, $exitCode = null, $arguments = [], $options = [], $argumentsDefaults = [], $optionsDefaults = []) + { + $this->resolveRequest(); + + $this->request->type = RequestType::COMMAND; + $this->request->commandName = $name; + $this->request->commandArguments = $arguments; + $this->request->commandArgumentsDefaults = $argumentsDefaults; + $this->request->commandOptions = $options; + $this->request->commandOptionsDefaults = $optionsDefaults; + $this->request->commandExitCode = $exitCode; + + return $this; + } + // Extends the request with additional data form all data sources when being shown in the Clockwork app public function extendRequest(Request $request = null) { diff --git a/Clockwork/Request/Request.php b/Clockwork/Request/Request.php index faee1f18..d2e4ac21 100644 --- a/Clockwork/Request/Request.php +++ b/Clockwork/Request/Request.php @@ -17,6 +17,9 @@ class Request */ public $version = 1; + // Request type + public $type = 'request'; + /** * Request time */ @@ -185,6 +188,24 @@ class Request public $xdebug = []; + // Command name + public $commandName; + + // Command arguments passed in + public $commandArguments = []; + + // Command arguments defaults + public $commandArgumentsDefaults = []; + + // Command options passed in + public $commandOptions = []; + + // Command options defaults + public $commandOptionsDefaults = []; + + // Command exit code + public $commandExitCode; + /** * Create a new request, if optional data array argument is provided, it will be used to populate the request object, * otherwise empty request with autogenerated ID will be created @@ -224,53 +245,60 @@ public function getResponseDuration() public function toArray() { return [ - 'id' => $this->id, - 'version' => $this->version, - 'time' => $this->time, - 'method' => $this->method, - 'url' => $this->url, - 'uri' => $this->uri, - 'headers' => $this->headers, - 'controller' => $this->controller, - 'getData' => $this->getData, - 'postData' => $this->postData, - 'requestData' => $this->requestData, - 'sessionData' => $this->sessionData, - 'authenticatedUser' => $this->authenticatedUser, - 'cookies' => $this->cookies, - 'responseTime' => $this->responseTime, - 'responseStatus' => $this->responseStatus, - 'responseDuration' => $this->responseDuration ?: $this->getResponseDuration(), - 'memoryUsage' => $this->memoryUsage, - 'middleware' => $this->middleware, - 'databaseQueries' => $this->databaseQueries, - 'databaseQueriesCount' => $this->databaseQueriesCount, - 'databaseSlowQueries' => $this->databaseSlowQueries, - 'databaseSelects' => $this->databaseSelects, - 'databaseInserts' => $this->databaseInserts, - 'databaseUpdates' => $this->databaseUpdates, - 'databaseDeletes' => $this->databaseDeletes, - 'databaseOthers' => $this->databaseOthers, - 'databaseDuration' => $this->getDatabaseDuration(), - 'cacheQueries' => $this->cacheQueries, - 'cacheReads' => $this->cacheReads, - 'cacheHits' => $this->cacheHits, - 'cacheWrites' => $this->cacheWrites, - 'cacheDeletes' => $this->cacheDeletes, - 'cacheTime' => $this->cacheTime, - 'redisCommands' => $this->redisCommands, - 'queueJobs' => $this->queueJobs, - 'timelineData' => $this->timelineData, - 'log' => array_values($this->log), - 'events' => $this->events, - 'routes' => $this->routes, - 'emailsData' => $this->emailsData, - 'viewsData' => $this->viewsData, - 'userData' => array_map(function ($data) { + 'id' => $this->id, + 'version' => $this->version, + 'type' => $this->type, + 'time' => $this->time, + 'method' => $this->method, + 'url' => $this->url, + 'uri' => $this->uri, + 'headers' => $this->headers, + 'controller' => $this->controller, + 'getData' => $this->getData, + 'postData' => $this->postData, + 'requestData' => $this->requestData, + 'sessionData' => $this->sessionData, + 'authenticatedUser' => $this->authenticatedUser, + 'cookies' => $this->cookies, + 'responseTime' => $this->responseTime, + 'responseStatus' => $this->responseStatus, + 'responseDuration' => $this->responseDuration ?: $this->getResponseDuration(), + 'memoryUsage' => $this->memoryUsage, + 'middleware' => $this->middleware, + 'databaseQueries' => $this->databaseQueries, + 'databaseQueriesCount' => $this->databaseQueriesCount, + 'databaseSlowQueries' => $this->databaseSlowQueries, + 'databaseSelects' => $this->databaseSelects, + 'databaseInserts' => $this->databaseInserts, + 'databaseUpdates' => $this->databaseUpdates, + 'databaseDeletes' => $this->databaseDeletes, + 'databaseOthers' => $this->databaseOthers, + 'databaseDuration' => $this->getDatabaseDuration(), + 'cacheQueries' => $this->cacheQueries, + 'cacheReads' => $this->cacheReads, + 'cacheHits' => $this->cacheHits, + 'cacheWrites' => $this->cacheWrites, + 'cacheDeletes' => $this->cacheDeletes, + 'cacheTime' => $this->cacheTime, + 'redisCommands' => $this->redisCommands, + 'queueJobs' => $this->queueJobs, + 'timelineData' => $this->timelineData, + 'log' => array_values($this->log), + 'events' => $this->events, + 'routes' => $this->routes, + 'emailsData' => $this->emailsData, + 'viewsData' => $this->viewsData, + 'userData' => array_map(function ($data) { return $data instanceof UserData ? $data->toArray() : $data; }, $this->userData), - 'subrequests' => $this->subrequests, - 'xdebug' => $this->xdebug + 'subrequests' => $this->subrequests, + 'xdebug' => $this->xdebug, + 'commandName' => $this->commandName, + 'commandArguments' => $this->commandArguments, + 'commandArgumentsDefaults' => $this->commandArgumentsDefaults, + 'commandOptions' => $this->commandOptions, + 'commandOptionsDefaults' => $this->commandOptionsDefaults, + 'commandExitCode' => $this->commandExitCode ]; } diff --git a/Clockwork/Request/RequestType.php b/Clockwork/Request/RequestType.php new file mode 100644 index 00000000..990057e3 --- /dev/null +++ b/Clockwork/Request/RequestType.php @@ -0,0 +1,8 @@ + Date: Fri, 8 Nov 2019 00:39:05 +0100 Subject: [PATCH 03/75] Laravel - added support for collecting executed artisan commands. --- .../Laravel/ClockworkServiceProvider.php | 2 + .../Support/Laravel/ClockworkSupport.php | 39 ++++++++++++++++++- .../Support/Laravel/config/clockwork.php | 13 +++++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 02457cdd..894e434d 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -49,6 +49,8 @@ protected function listenToEvents() $this->app[RedisManager::class]->enableEvents(); $this->app['clockwork.redis']->listenToEvents(); } + + if ($support->isCollectingCommands()) $support->collectCommands(); } protected function listenToFrameworkEvents() diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index 58ddb12b..6141c85b 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -13,6 +13,7 @@ use Clockwork\Web\Web; use Illuminate\Contracts\Foundation\Application; +use Illuminate\Contracts\Console\Kernel as ConsoleKernel; use Illuminate\Http\JsonResponse; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; @@ -117,6 +118,30 @@ public function getWebAsset($path) } } + // Set up collecting of executed artisan commands + public function collectCommands() + { + $this->app['events']->listen(\Illuminate\Console\Events\CommandFinished::class, function ($event) { + if (! $event->command) return; + + $command = $this->app->make(ConsoleKernel::class)->all()[$event->command]; + + $argumentsDefaults = $command->getDefinition()->getArgumentDefaults(); + $optionsDefaults = $command->getDefinition()->getOptionDefaults(); + + $this->app->make('clockwork') + ->resolveAsCommand( + $event->command, + $event->exitCode, + array_diff($event->input->getArguments(), $argumentsDefaults), + array_diff($event->input->getOptions(), $optionsDefaults), + $argumentsDefaults, + $optionsDefaults + ) + ->storeRequest(); + }); + } + public function process($request, $response) { if (! $this->isCollectingData()) { @@ -185,9 +210,21 @@ public function isEnabled() } public function isCollectingData() + { + return $this->isCollectingCommands() + || $this->isCollectingRequests(); + } + + public function isCollectingCommands() + { + return ($this->isEnabled() || $this->getConfig('collect_data_always', false)) + && $this->app->runningInConsole() + && $this->getConfig('collect_commands', false); + } + + public function isCollectingRequests() { return ($this->isEnabled() || $this->getConfig('collect_data_always', false)) - && ! $this->app->runningInConsole() && ! $this->isUriFiltered($this->app['request']->getRequestUri()); } diff --git a/Clockwork/Support/Laravel/config/clockwork.php b/Clockwork/Support/Laravel/config/clockwork.php index 37075144..aab1e75a 100644 --- a/Clockwork/Support/Laravel/config/clockwork.php +++ b/Clockwork/Support/Laravel/config/clockwork.php @@ -113,6 +113,19 @@ 'web_dark_theme' => env('CLOCKWORK_WEB_DARK_THEME', false), + /* + |-------------------------------------------------------------------------- + | Enable data collection for Artisan commands + |-------------------------------------------------------------------------- + | + | This setting controls, whether data about executed artisan commands will + | be recorded. + | Default: false + | + */ + + 'collect_commands' => env('CLOCKWORK_COLLECT_COMMANDS', false), + /* |-------------------------------------------------------------------------- | Enable data collection, when Clockwork is disabled From 10a1f4bb6fa7d4b70cc86ad4baa8aac23da586d2 Mon Sep 17 00:00:00 2001 From: its Date: Sat, 9 Nov 2019 20:57:13 +0100 Subject: [PATCH 04/75] Laravel - tweaked artisan collection config, added option to skip laravel built-in commands (enabled by default), skip clockwork commands, added option to specify blacklist or whitelist of collected commands. --- .../Support/Laravel/ClockworkSupport.php | 60 ++++++++++++++++++- .../Support/Laravel/config/clockwork.php | 25 ++++++-- 2 files changed, 78 insertions(+), 7 deletions(-) diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index 6141c85b..dd12d3bf 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -122,7 +122,7 @@ public function getWebAsset($path) public function collectCommands() { $this->app['events']->listen(\Illuminate\Console\Events\CommandFinished::class, function ($event) { - if (! $event->command) return; + if (! $event->command || $this->isCommandFiltered($event->command)) return; $command = $this->app->make(ConsoleKernel::class)->all()[$event->command]; @@ -219,7 +219,7 @@ public function isCollectingCommands() { return ($this->isEnabled() || $this->getConfig('collect_data_always', false)) && $this->app->runningInConsole() - && $this->getConfig('collect_commands', false); + && $this->getConfig('artisan.collect', false); } public function isCollectingRequests() @@ -272,10 +272,66 @@ public function isUriFiltered($uri) return false; } + protected function isCommandFiltered($command) + { + $whitelist = $this->getConfig('artisan.only', []); + + if (count($whitelist)) return ! in_array($command, $whitelist); + + $blacklist = $this->getConfig('artisan.except', []); + + if ($this->getConfig('artisan.except_laravel_commands', true)) { + $blacklist = array_merge($blacklist, $this->builtinLaravelCommands()); + } + + $blacklist = array_merge($blacklist, $this->builtinClockworkCommands()); + + return in_array($command, $blacklist); + } + protected function appendServerTimingHeader($response, $request) { if (($eventsCount = $this->getConfig('server_timing', 10)) !== false) { $response->headers->set('Server-Timing', ServerTiming::fromRequest($request, $eventsCount)->value()); } } + + protected function builtinLaravelCommands() + { + return [ + 'clear-compiled', 'down', 'dump-server', 'env', 'help', 'list', 'migrate', 'optimize', 'preset', 'serve', + 'tinker', 'up', + 'app:name', + 'auth:clear-resets', + 'cache:clear', 'cache:forget', 'cache:table', + 'config:cache', 'config:clear', + 'db:seed', + 'event:cache', 'event:clear', 'event:generate', 'event:list', + 'key:generate', + 'make:auth', 'make:channel', 'make:command', 'make:controller', 'make:event', 'make:exception', + 'make:factory', 'make:job', 'make:listener', 'make:mail', 'make:middleware', 'make:migration', 'make:model', + 'make:notification', 'make:observer', 'make:policy', 'make:provider', 'make:request', 'make:resource', + 'make:rule', 'make:seeder', 'make:test', + 'migrate:fresh', 'migrate:install', 'migrate:refresh', 'migrate:reset', 'migrate:rollback', + 'migrate:status', + 'notifications:table', + 'optimize:clear', + 'package:discover', + 'queue:failed', 'queue:failed-table', 'queue:flush', 'queue:forget', 'queue:listen', 'queue:restart', + 'queue:retry', 'queue:table', 'queue:work', + 'route:cache', 'route:clear', 'route:list', + 'schedule:run', + 'session:table', + 'storage:link', + 'vendor:publish', + 'view:cache', 'view:clear' + ]; + } + + protected function builtinClockworkCommands() + { + return [ + 'clockwork:clean' + ]; + } } diff --git a/Clockwork/Support/Laravel/config/clockwork.php b/Clockwork/Support/Laravel/config/clockwork.php index aab1e75a..f2a2ea89 100644 --- a/Clockwork/Support/Laravel/config/clockwork.php +++ b/Clockwork/Support/Laravel/config/clockwork.php @@ -115,16 +115,31 @@ /* |-------------------------------------------------------------------------- - | Enable data collection for Artisan commands + | Artisan commands collection |-------------------------------------------------------------------------- | - | This setting controls, whether data about executed artisan commands will - | be recorded. - | Default: false + | You can enable or disable and configure collection of executed Artisan + | commands here. | */ - 'collect_commands' => env('CLOCKWORK_COLLECT_COMMANDS', false), + 'artisan' => [ + // Enable or disable collection of executed Artisan commands + 'collect' => env('CLOCKWORK_ARTISAN_COLLECT', false), + + // List of commands that should not be collected (built-in commands are not collected by default) + 'except' => [ + // 'inspire' + ], + + // List of commands that should be collected, any other command will not be collected if not empty + 'only' => [ + // 'inspire' + ], + + // Enable or disable collection of built-in Laravel commands + 'except_laravel_commands' => env('CLOCKWORK_ARTISAN_EXCEPT_LARAVEL_COMMANDS', true) + ], /* |-------------------------------------------------------------------------- From aaf06633580ef3203dbd83321dfaea42c722e6d5 Mon Sep 17 00:00:00 2001 From: its Date: Sat, 9 Nov 2019 21:02:34 +0100 Subject: [PATCH 05/75] Vanilla - added commandExecuted helper method. --- Clockwork/Support/Vanilla/Clockwork.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Clockwork/Support/Vanilla/Clockwork.php b/Clockwork/Support/Vanilla/Clockwork.php index 55266950..aa28de8b 100644 --- a/Clockwork/Support/Vanilla/Clockwork.php +++ b/Clockwork/Support/Vanilla/Clockwork.php @@ -78,6 +78,17 @@ public function requestProcessed() return $this->psrResponse; } + public function commandExecuted($name, $exitCode = null, $arguments = [], $options = [], $argumentsDefaults = [], $optionsDefaults = []) + { + if (! $this->config['enable'] && ! $this->config['collect_data_always']) return; + + $this->clockwork->getTimeline()->endEvent('total'); + + $this->clockwork + ->resolveAsCommand($name, $exitCode, $arguments, $options, $argumentsDefaults, $optionsDefaults) + ->storeRequest(); + } + public function returnMetadata($request = null) { if (! $this->config['enable']) return; From 577cbd7325342745651b553caa14d7727891c074 Mon Sep 17 00:00:00 2001 From: its Date: Sun, 10 Nov 2019 00:59:53 +0100 Subject: [PATCH 06/75] Added support for collecting console commands output (disabled by default). --- Clockwork/Clockwork.php | 3 +- Clockwork/Request/Request.php | 6 +- .../Support/Laravel/ClockworkSupport.php | 12 +++- .../Laravel/Console/CapturingFormatter.php | 70 +++++++++++++++++++ .../Support/Laravel/config/clockwork.php | 3 + Clockwork/Support/Vanilla/Clockwork.php | 4 +- 6 files changed, 93 insertions(+), 5 deletions(-) create mode 100644 Clockwork/Support/Laravel/Console/CapturingFormatter.php diff --git a/Clockwork/Clockwork.php b/Clockwork/Clockwork.php index f0df7a34..0e5570d9 100644 --- a/Clockwork/Clockwork.php +++ b/Clockwork/Clockwork.php @@ -124,7 +124,7 @@ public function resolveRequest() } // Resolve the current request as a "command" type request with command-specific data - public function resolveAsCommand($name, $exitCode = null, $arguments = [], $options = [], $argumentsDefaults = [], $optionsDefaults = []) + public function resolveAsCommand($name, $exitCode = null, $arguments = [], $options = [], $argumentsDefaults = [], $optionsDefaults = [], $output = null) { $this->resolveRequest(); @@ -135,6 +135,7 @@ public function resolveAsCommand($name, $exitCode = null, $arguments = [], $opti $this->request->commandOptions = $options; $this->request->commandOptionsDefaults = $optionsDefaults; $this->request->commandExitCode = $exitCode; + $this->request->commandOutput = $output; return $this; } diff --git a/Clockwork/Request/Request.php b/Clockwork/Request/Request.php index d2e4ac21..647a46ba 100644 --- a/Clockwork/Request/Request.php +++ b/Clockwork/Request/Request.php @@ -206,6 +206,9 @@ class Request // Command exit code public $commandExitCode; + // Command output + public $commandOutput; + /** * Create a new request, if optional data array argument is provided, it will be used to populate the request object, * otherwise empty request with autogenerated ID will be created @@ -298,7 +301,8 @@ public function toArray() 'commandArgumentsDefaults' => $this->commandArgumentsDefaults, 'commandOptions' => $this->commandOptions, 'commandOptionsDefaults' => $this->commandOptionsDefaults, - 'commandExitCode' => $this->commandExitCode + 'commandExitCode' => $this->commandExitCode, + 'commandOutput' => $this->commandOutput ]; } diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index dd12d3bf..d19bbdb4 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -121,6 +121,15 @@ public function getWebAsset($path) // Set up collecting of executed artisan commands public function collectCommands() { + $this->app['events']->listen(\Illuminate\Console\Events\CommandStarting::class, function ($event) { + if (! $this->getConfig('artisan.collect_output')) return; + if (! $event->command || $this->isCommandFiltered($event->command)) return; + + $event->output->setFormatter( + new Console\CapturingFormatter($event->output->getFormatter()) + ); + }); + $this->app['events']->listen(\Illuminate\Console\Events\CommandFinished::class, function ($event) { if (! $event->command || $this->isCommandFiltered($event->command)) return; @@ -136,7 +145,8 @@ public function collectCommands() array_diff($event->input->getArguments(), $argumentsDefaults), array_diff($event->input->getOptions(), $optionsDefaults), $argumentsDefaults, - $optionsDefaults + $optionsDefaults, + $this->getConfig('artisan.collect_output') ? $event->output->getFormatter()->capturedOutput() : null ) ->storeRequest(); }); diff --git a/Clockwork/Support/Laravel/Console/CapturingFormatter.php b/Clockwork/Support/Laravel/Console/CapturingFormatter.php new file mode 100644 index 00000000..50c49abd --- /dev/null +++ b/Clockwork/Support/Laravel/Console/CapturingFormatter.php @@ -0,0 +1,70 @@ +formatter = $formatter; + } + + public function capturedOutput() + { + $capturedOutput = $this->capturedOutput; + + $this->capturedOutput = null; + + return $capturedOutput; + } + + public function setDecorated($decorated) + { + return $this->formatter->setDecorated($decorated); + } + + public function isDecorated() + { + return $this->formatter->isDecorated(); + } + + public function setStyle($name, OutputFormatterStyleInterface $style) + { + return $this->formatter->setStyle($name, $style); + } + + public function hasStyle($name) + { + return $this->formatter->hasStyle($name); + } + + public function getStyle($name) + { + return $this->formatter->getStyle($name); + } + + public function format($message) + { + $formatted = $this->formatter->format($message); + + $this->capturedOutput .= $formatted; + + return $formatted; + } + + public function __call($method, $args) + { + return call_user_func_array([ $this->formatter, $method ], $args); + } + + public function __clone() + { + $this->formatter = clone $this->formatter; + } +} diff --git a/Clockwork/Support/Laravel/config/clockwork.php b/Clockwork/Support/Laravel/config/clockwork.php index f2a2ea89..f5a6becf 100644 --- a/Clockwork/Support/Laravel/config/clockwork.php +++ b/Clockwork/Support/Laravel/config/clockwork.php @@ -137,6 +137,9 @@ // 'inspire' ], + // Enable or disable collection of command output + 'collect_output' => env('CLOCKWORK_ARTISAN_COLLECT_OUTPUT', false), + // Enable or disable collection of built-in Laravel commands 'except_laravel_commands' => env('CLOCKWORK_ARTISAN_EXCEPT_LARAVEL_COMMANDS', true) ], diff --git a/Clockwork/Support/Vanilla/Clockwork.php b/Clockwork/Support/Vanilla/Clockwork.php index aa28de8b..2ac8723d 100644 --- a/Clockwork/Support/Vanilla/Clockwork.php +++ b/Clockwork/Support/Vanilla/Clockwork.php @@ -78,14 +78,14 @@ public function requestProcessed() return $this->psrResponse; } - public function commandExecuted($name, $exitCode = null, $arguments = [], $options = [], $argumentsDefaults = [], $optionsDefaults = []) + public function commandExecuted($name, $exitCode = null, $arguments = [], $options = [], $argumentsDefaults = [], $optionsDefaults = [], $output = null) { if (! $this->config['enable'] && ! $this->config['collect_data_always']) return; $this->clockwork->getTimeline()->endEvent('total'); $this->clockwork - ->resolveAsCommand($name, $exitCode, $arguments, $options, $argumentsDefaults, $optionsDefaults) + ->resolveAsCommand($name, $exitCode, $arguments, $options, $argumentsDefaults, $optionsDefaults, $output) ->storeRequest(); } From 737e41ec2172780a61d7a929bd16372b048a307e Mon Sep 17 00:00:00 2001 From: its Date: Mon, 11 Nov 2019 22:19:53 +0100 Subject: [PATCH 07/75] Added support for commands to request search and file storage index. --- Clockwork/Storage/FileStorage.php | 11 +++++++---- Clockwork/Storage/Search.php | 28 +++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/Clockwork/Storage/FileStorage.php b/Clockwork/Storage/FileStorage.php index 77a3e50b..d5a660db 100644 --- a/Clockwork/Storage/FileStorage.php +++ b/Clockwork/Storage/FileStorage.php @@ -262,10 +262,12 @@ protected function trimIndex() protected function makeRequestFromIndex($record) { - if (count($record) != 7) return new Request; // invalid index data, return a null request + $type = isset($record[7]) ? $record[7] : 'response'; + $nameField = $type == 'command' ? 'commandName' : 'uri'; return new Request(array_combine( - [ 'id', 'time', 'method', 'uri', 'controller', 'responseStatus', 'responseDuration' ], $record + [ 'id', 'time', 'method', $nameField, 'controller', 'responseStatus', 'responseDuration', 'type' ], + $record + [ null, null, null, null, null, null, null, 'response' ] )); } @@ -279,10 +281,11 @@ protected function updateIndex(Request $request) $request->id, $request->time, $request->method, - $request->uri, + $request->type == 'command' ? $request->commandName : $request->uri, $request->controller, $request->responseStatus, - $request->getResponseDuration() + $request->getResponseDuration(), + $request->type ]); flock($handle, LOCK_UN); diff --git a/Clockwork/Storage/Search.php b/Clockwork/Storage/Search.php index 85819b85..51718eb1 100644 --- a/Clockwork/Storage/Search.php +++ b/Clockwork/Storage/Search.php @@ -1,6 +1,7 @@ $condition = isset($search[$condition]) ? $search[$condition] : []; } @@ -27,7 +30,17 @@ public static function fromRequest($data = []) public function matches(Request $request) { - return $this->matchesString($this->uri, $request->uri) + if ($request->type == RequestType::COMMAND) { + return $this->matchesCommand($request); + } else { + return $this->matchesRequest($request); + } + } + + protected function matchesRequest(Request $request) + { + return $this->matchesString($this->type, RequestType::REQUEST) + && $this->matchesString($this->uri, $request->uri) && $this->matchesString($this->controller, $request->controller) && $this->matchesExact($this->method, strtolower($request->method)) && $this->matchesNumber($this->status, $request->responseStatus) @@ -35,10 +48,19 @@ public function matches(Request $request) && $this->matchesDate($this->received, $request->time); } + protected function matchesCommand(Request $request) + { + return $this->matchesString($this->type, RequestType::COMMAND) + && $this->matchesString($this->name, $request->commandName) + && $this->matchesNumber($this->status, $request->commandExitCode) + && $this->matchesNumber($this->time, $request->responseDuration) + && $this->matchesDate($this->received, $request->time); + } + public function isEmpty() { return ! count($this->uri) && ! count($this->controller) && ! count($this->method) && ! count($this->status) - && ! count($this->time) && ! count($this->received); + && ! count($this->time) && ! count($this->received) && ! count($this->name) && ! count($this->type); } public function isNotEmpty() From 0e34dba0779ab4649d0d13ff191d426baa571bda Mon Sep 17 00:00:00 2001 From: its Date: Mon, 11 Nov 2019 22:27:11 +0100 Subject: [PATCH 08/75] Added support for command-type requests in sql storage. --- Clockwork/Storage/SqlStorage.php | 101 +++++++++++++++++-------------- 1 file changed, 55 insertions(+), 46 deletions(-) diff --git a/Clockwork/Storage/SqlStorage.php b/Clockwork/Storage/SqlStorage.php index cc3fb703..1e894677 100644 --- a/Clockwork/Storage/SqlStorage.php +++ b/Clockwork/Storage/SqlStorage.php @@ -21,58 +21,67 @@ class SqlStorage extends Storage // Schema for the Clockwork requests table protected $fields = [ - 'id' => 'VARCHAR(100) PRIMARY KEY', - 'version' => 'INTEGER', - 'time' => 'DOUBLE PRECISION NULL', - 'method' => 'VARCHAR(10) NULL', - 'url' => 'TEXT NULL', - 'uri' => 'TEXT NULL', - 'headers' => 'TEXT NULL', - 'controller' => 'VARCHAR(250) NULL', - 'getData' => 'TEXT NULL', - 'postData' => 'TEXT NULL', - 'requestData' => 'TEXT NULL', - 'sessionData' => 'TEXT NULL', - 'authenticatedUser' => 'TEXT NULL', - 'cookies' => 'TEXT NULL', - 'responseTime' => 'DOUBLE PRECISION NULL', - 'responseStatus' => 'INTEGER NULL', - 'responseDuration' => 'DOUBLE PRECISION NULL', - 'memoryUsage' => 'DOUBLE PRECISION NULL', - 'middleware' => 'TEXT NULL', - 'databaseQueries' => 'TEXT NULL', - 'databaseQueriesCount' => 'INTEGER NULL', - 'databaseSlowQueries' => 'INTEGER NULL', - 'databaseSelects' => 'INTEGER NULL', - 'databaseInserts' => 'INTEGER NULL', - 'databaseUpdates' => 'INTEGER NULL', - 'databaseDeletes' => 'INTEGER NULL', - 'databaseOthers' => 'INTEGER NULL', - 'databaseDuration' => 'DOUBLE PRECISION NULL', - 'cacheQueries' => 'TEXT NULL', - 'cacheReads' => 'INTEGER NULL', - 'cacheHits' => 'INTEGER NULL', - 'cacheWrites' => 'INTEGER NULL', - 'cacheDeletes' => 'INTEGER NULL', - 'cacheTime' => 'DOUBLE PRECISION NULL', - 'redisCommands' => 'TEXT NULL', - 'queueJobs' => 'TEXT NULL', - 'timelineData' => 'TEXT NULL', - 'log' => 'TEXT NULL', - 'events' => 'TEXT NULL', - 'routes' => 'TEXT NULL', - 'emailsData' => 'TEXT NULL', - 'viewsData' => 'TEXT NULL', - 'userData' => 'TEXT NULL', - 'subrequests' => 'TEXT NULL', - 'xdebug' => 'TEXT NULL' + 'id' => 'VARCHAR(100) PRIMARY KEY', + 'version' => 'INTEGER', + 'type' => 'VARCHAR(100) NULL', + 'time' => 'DOUBLE PRECISION NULL', + 'method' => 'VARCHAR(10) NULL', + 'url' => 'TEXT NULL', + 'uri' => 'TEXT NULL', + 'headers' => 'TEXT NULL', + 'controller' => 'VARCHAR(250) NULL', + 'getData' => 'TEXT NULL', + 'postData' => 'TEXT NULL', + 'requestData' => 'TEXT NULL', + 'sessionData' => 'TEXT NULL', + 'authenticatedUser' => 'TEXT NULL', + 'cookies' => 'TEXT NULL', + 'responseTime' => 'DOUBLE PRECISION NULL', + 'responseStatus' => 'INTEGER NULL', + 'responseDuration' => 'DOUBLE PRECISION NULL', + 'memoryUsage' => 'DOUBLE PRECISION NULL', + 'middleware' => 'TEXT NULL', + 'databaseQueries' => 'TEXT NULL', + 'databaseQueriesCount' => 'INTEGER NULL', + 'databaseSlowQueries' => 'INTEGER NULL', + 'databaseSelects' => 'INTEGER NULL', + 'databaseInserts' => 'INTEGER NULL', + 'databaseUpdates' => 'INTEGER NULL', + 'databaseDeletes' => 'INTEGER NULL', + 'databaseOthers' => 'INTEGER NULL', + 'databaseDuration' => 'DOUBLE PRECISION NULL', + 'cacheQueries' => 'TEXT NULL', + 'cacheReads' => 'INTEGER NULL', + 'cacheHits' => 'INTEGER NULL', + 'cacheWrites' => 'INTEGER NULL', + 'cacheDeletes' => 'INTEGER NULL', + 'cacheTime' => 'DOUBLE PRECISION NULL', + 'redisCommands' => 'TEXT NULL', + 'queueJobs' => 'TEXT NULL', + 'timelineData' => 'TEXT NULL', + 'log' => 'TEXT NULL', + 'events' => 'TEXT NULL', + 'routes' => 'TEXT NULL', + 'emailsData' => 'TEXT NULL', + 'viewsData' => 'TEXT NULL', + 'userData' => 'TEXT NULL', + 'subrequests' => 'TEXT NULL', + 'xdebug' => 'TEXT NULL', + 'commandName' => 'TEXT NULL', + 'commandArguments' => 'TEXT NULL', + 'commandArgumentsDefaults' => 'TEXT NULL', + 'commandOptions' => 'TEXT NULL', + 'commandOptionsDefaults' => 'TEXT NULL', + 'commandExitCode' => 'INTEGER NULL', + 'commandOutput' => 'TEXT NULL' ]; // List of Request keys that need to be serialized before they can be stored in database protected $needsSerialization = [ 'headers', 'getData', 'postData', 'requestData', 'sessionData', 'authenticatedUser', 'cookies', 'middleware', 'databaseQueries', 'cacheQueries', 'redisCommands', 'queueJobs', 'timelineData', 'log', 'events', 'routes', - 'emailsData', 'viewsData', 'userData', 'subrequests', 'xdebug' + 'emailsData', 'viewsData', 'userData', 'subrequests', 'xdebug', 'commandArguments', 'commandArgumentsDefaults', + 'commandOptions', 'commandOptionsDefaults' ]; // Return a new storage, takes PDO object or DSN and optionally a table name and database credentials as arguments From b10ee7ab003c96308d291943ef607f2427dd7bc4 Mon Sep 17 00:00:00 2001 From: its Date: Tue, 12 Nov 2019 22:25:38 +0100 Subject: [PATCH 09/75] Updated sql search to support command-specific metadata. --- Clockwork/Storage/SqlSearch.php | 95 ++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 43 deletions(-) diff --git a/Clockwork/Storage/SqlSearch.php b/Clockwork/Storage/SqlSearch.php index f0500566..241b81d4 100644 --- a/Clockwork/Storage/SqlSearch.php +++ b/Clockwork/Storage/SqlSearch.php @@ -37,12 +37,13 @@ protected function resolveConditions() if ($this->isEmpty()) return [ [], [] ]; $conditions = array_filter([ - $this->resolveStringCondition('uri', $this->uri), - $this->resolveStringCondition('controller', $this->controller), - $this->resolveExactCondition('method', $this->method), - $this->resolveNumberCondition('responseStatus', $this->status), - $this->resolveNumberCondition('responseDuration', $this->time), - $this->resolveDateCondition('time', $this->received) + $this->resolveStringCondition([ 'type' ], $this->type), + $this->resolveStringCondition([ 'uri', 'commandName' ], array_merge($this->uri, $this->name)), + $this->resolveStringCondition([ 'controller' ], $this->controller), + $this->resolveExactCondition([ 'method' ], $this->method), + $this->resolveNumberCondition([ 'responseStatus', 'commandExitCode' ], $this->status), + $this->resolveNumberCondition([ 'responseDuration' ], $this->time), + $this->resolveDateCondition([ 'time' ], $this->received) ]); $sql = array_map(function ($condition) { return $condition[0]; }, $conditions); @@ -53,71 +54,79 @@ protected function resolveConditions() return [ $sql, $bindings ]; } - protected function resolveDateCondition($field, $inputs) + protected function resolveDateCondition($fields, $inputs) { if (! count($inputs)) return null; $bindings = []; - $conditions = implode(' OR ', array_map(function ($input, $index) use ($field, &$bindings) { - if (preg_match('/^<(.+)$/', $input, $match)) { - $bindings["{$field}{$index}"] = $match[1]; - return "{$field} < :{$field}{$index}"; - } elseif (preg_match('/^>(.+)$/', $input, $match)) { - $bindings["{$field}{$index}"] = $match[1]; - return "{$field} > :{$field}{$index}"; - } - }, $inputs, array_keys($inputs))); + $conditions = implode(' OR ', array_map(function ($field) use ($inputs, &$bindings) { + return implode(' OR ', array_map(function ($input, $index) use ($field, &$bindings) { + if (preg_match('/^<(.+)$/', $input, $match)) { + $bindings["{$field}{$index}"] = $match[1]; + return "{$field} < :{$field}{$index}"; + } elseif (preg_match('/^>(.+)$/', $input, $match)) { + $bindings["{$field}{$index}"] = $match[1]; + return "{$field} > :{$field}{$index}"; + } + }, $inputs, array_keys($inputs))); + }, $fields)); return [ "({$conditions})", $bindings ]; } - protected function resolveExactCondition($field, $inputs) + protected function resolveExactCondition($fields, $inputs) { if (! count($inputs)) return null; $bindings = []; - $values = implode(', ', array_map(function ($input, $index) use ($field, &$bindings) { - $bindings["{$field}{$index}"] = $input; - return ":{$field}{$index}"; - }, $inputs, array_keys($inputs))); + $values = implode(' OR ', array_map(function ($field) use ($inputs, &$bindings) { + return implode(', ', array_map(function ($input, $index) use ($field, &$bindings) { + $bindings["{$field}{$index}"] = $input; + return ":{$field}{$index}"; + }, $inputs, array_keys($inputs))); + }, $fields)); return [ "{$field} IN ({$values})", $bindings ]; } - protected function resolveNumberCondition($field, $inputs) + protected function resolveNumberCondition($fields, $inputs) { if (! count($inputs)) return null; $bindings = []; - $conditions = implode(' OR ', array_map(function ($input, $index) use ($field, &$bindings) { - if (preg_match('/^<(\d+(?:\.\d+)?)$/', $input, $match)) { - $bindings["{$field}{$index}"] = $match[1]; - return "{$field} < :{$field}{$index}"; - } elseif (preg_match('/^>(\d+(?:\.\d+)?)$/', $input, $match)) { - $bindings["{$field}{$index}"] = $match[1]; - return "{$field} > :{$field}{$index}"; - } elseif (preg_match('/^(\d+(?:\.\d+)?)-(\d+(?:\.\d+)?)$/', $input, $match)) { - $bindings["{$field}{$index}from"] = $match[1]; - $bindings["{$field}{$index}to"] = $match[2]; - return "({$field} > :{$field}{$index}from AND {$field} < :{$field}{$index}to)"; - } else { - $bindings["{$field}{$index}"] = $input; - return "{$field} = :{$field}{$index}"; - } - }, $inputs, array_keys($inputs))); + $conditions = implode(' OR ', array_map(function ($field) use ($inputs, &$bindings) { + return implode(' OR ', array_map(function ($input, $index) use ($field, &$bindings) { + if (preg_match('/^<(\d+(?:\.\d+)?)$/', $input, $match)) { + $bindings["{$field}{$index}"] = $match[1]; + return "{$field} < :{$field}{$index}"; + } elseif (preg_match('/^>(\d+(?:\.\d+)?)$/', $input, $match)) { + $bindings["{$field}{$index}"] = $match[1]; + return "{$field} > :{$field}{$index}"; + } elseif (preg_match('/^(\d+(?:\.\d+)?)-(\d+(?:\.\d+)?)$/', $input, $match)) { + $bindings["{$field}{$index}from"] = $match[1]; + $bindings["{$field}{$index}to"] = $match[2]; + return "({$field} > :{$field}{$index}from AND {$field} < :{$field}{$index}to)"; + } else { + $bindings["{$field}{$index}"] = $input; + return "{$field} = :{$field}{$index}"; + } + }, $inputs, array_keys($inputs))); + }, $fields)); return [ "({$conditions})", $bindings ]; } - protected function resolveStringCondition($field, $inputs) + protected function resolveStringCondition($fields, $inputs) { if (! count($inputs)) return null; $bindings = []; - $conditions = implode(' OR ', array_map(function ($input, $index) use ($field, &$bindings) { - $bindings["{$field}{$index}"] = $input; - return "{$field} LIKE :{$field}{$index}"; - }, $inputs, array_keys($inputs))); + $conditions = implode(' OR ', array_map(function ($field) use ($inputs, &$bindings) { + return implode(' OR ', array_map(function ($input, $index) use ($field, &$bindings) { + $bindings["{$field}{$index}"] = $input; + return "{$field} LIKE :{$field}{$index}"; + }, $inputs, array_keys($inputs))); + }, $fields)); return [ "({$conditions})", $bindings ]; } From aae1c08fbbcc61b50d9d3641cd38fd611a1afdc5 Mon Sep 17 00:00:00 2001 From: its Date: Wed, 20 Nov 2019 22:02:35 +0100 Subject: [PATCH 10/75] Added reset api to data sources, clearing the collected data. --- Clockwork/Clockwork.php | 13 +++++++++++ Clockwork/DataSource/DBALDataSource.php | 9 ++++++++ Clockwork/DataSource/DataSource.php | 5 ++++ Clockwork/DataSource/DataSourceInterface.php | 3 +++ Clockwork/DataSource/EloquentDataSource.php | 23 +++++++++++-------- .../DataSource/LaravelCacheDataSource.php | 15 ++++++++---- Clockwork/DataSource/LaravelDataSource.php | 7 ++++++ .../DataSource/LaravelEventsDataSource.php | 6 +++++ .../DataSource/LaravelQueueDataSource.php | 6 +++++ .../DataSource/LaravelRedisDataSource.php | 6 +++++ Clockwork/DataSource/LumenDataSource.php | 7 ++++++ Clockwork/DataSource/SwiftDataSource.php | 6 +++++ 12 files changed, 92 insertions(+), 14 deletions(-) diff --git a/Clockwork/Clockwork.php b/Clockwork/Clockwork.php index 0e5570d9..6a81a08e 100644 --- a/Clockwork/Clockwork.php +++ b/Clockwork/Clockwork.php @@ -158,6 +158,19 @@ public function storeRequest() return $this->storage->store($this->request); } + // Reset the log, timeline and all data sources to an empty state, clearing any collected data + public function reset() + { + foreach ($this->dataSources as $dataSource) { + $dataSource->reset(); + } + + $this->log = new Log; + $this->timeline = new Timeline; + + return $this; + } + /** * Return the storage object */ diff --git a/Clockwork/DataSource/DBALDataSource.php b/Clockwork/DataSource/DBALDataSource.php index 88e458de..fb31cd59 100644 --- a/Clockwork/DataSource/DBALDataSource.php +++ b/Clockwork/DataSource/DBALDataSource.php @@ -214,6 +214,15 @@ public function resolve(Request $request) return $request; } + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + $this->queries = []; + + $this->start = null; + $this->query = null; + } + /** * Timeline Getter/Setter */ diff --git a/Clockwork/DataSource/DataSource.php b/Clockwork/DataSource/DataSource.php index ba74a43c..e3087d93 100644 --- a/Clockwork/DataSource/DataSource.php +++ b/Clockwork/DataSource/DataSource.php @@ -24,6 +24,11 @@ public function extend(Request $request) return $request; } + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + } + // Register a new filter public function addFilter(\Closure $filter) { diff --git a/Clockwork/DataSource/DataSourceInterface.php b/Clockwork/DataSource/DataSourceInterface.php index 4ab6d582..b273bc49 100644 --- a/Clockwork/DataSource/DataSourceInterface.php +++ b/Clockwork/DataSource/DataSourceInterface.php @@ -14,4 +14,7 @@ public function resolve(Request $request); // Extends the request with additional data when being shown in the Clockwork app public function extend(Request $request); + + // Reset the data source to an empty state, clearing any collected data + public function reset(); } diff --git a/Clockwork/DataSource/EloquentDataSource.php b/Clockwork/DataSource/EloquentDataSource.php index fcb583e7..bd85a442 100755 --- a/Clockwork/DataSource/EloquentDataSource.php +++ b/Clockwork/DataSource/EloquentDataSource.php @@ -28,18 +28,9 @@ class EloquentDataSource extends DataSource // Query counts by type protected $count = [ - 'total' => 0, - 'slow' => 0, - 'select' => 0, - 'insert' => 0, - 'update' => 0, - 'delete' => 0, - 'other' => 0 + 'total' => 0, 'slow' => 0, 'select' => 0, 'insert' => 0, 'update' => 0, 'delete' => 0, 'other' => 0 ]; - // Array of filter functions for collected queries - protected $filters = []; - // Whether we are collecting cache queries or stats only protected $collectQueries = true; @@ -154,6 +145,18 @@ public function resolve(Request $request) return $request; } + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + $this->queries = []; + + $this->count = [ + 'total' => 0, 'slow' => 0, 'select' => 0, 'insert' => 0, 'update' => 0, 'delete' => 0, 'other' => 0 + ]; + + $this->nextQueryModel = null; + } + /** * Takes a query, an array of bindings and the connection as arguments, returns runnable query with upper-cased keywords */ diff --git a/Clockwork/DataSource/LaravelCacheDataSource.php b/Clockwork/DataSource/LaravelCacheDataSource.php index 2f71ce7e..8a077347 100644 --- a/Clockwork/DataSource/LaravelCacheDataSource.php +++ b/Clockwork/DataSource/LaravelCacheDataSource.php @@ -23,10 +23,7 @@ class LaravelCacheDataSource extends DataSource // Query counts by type protected $count = [ - 'read' => 0, - 'hit' => 0, - 'write' => 0, - 'delete' => 0 + 'read' => 0, 'hit' => 0, 'write' => 0, 'delete' => 0 ]; // Whether we are collecting cache queries or stats only @@ -97,6 +94,16 @@ public function resolve(Request $request) return $request; } + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + $this->queries = []; + + $this->count = [ + 'read' => 0, 'hit' => 0, 'write' => 0, 'delete' => 0 + ]; + } + /** * Registers a new query, resolves caller file and line no */ diff --git a/Clockwork/DataSource/LaravelDataSource.php b/Clockwork/DataSource/LaravelDataSource.php index 5bcefdac..533f8c14 100644 --- a/Clockwork/DataSource/LaravelDataSource.php +++ b/Clockwork/DataSource/LaravelDataSource.php @@ -85,6 +85,13 @@ public function resolve(Request $request) return $request; } + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + $this->timeline = new Timeline; + $this->views = new Timeline; + } + // Set a log instance public function setLog(Log $log) { diff --git a/Clockwork/DataSource/LaravelEventsDataSource.php b/Clockwork/DataSource/LaravelEventsDataSource.php index 1f7941ca..6ccc7375 100644 --- a/Clockwork/DataSource/LaravelEventsDataSource.php +++ b/Clockwork/DataSource/LaravelEventsDataSource.php @@ -49,6 +49,12 @@ public function resolve(Request $request) return $request; } + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + $this->events = []; + } + // Registers a new event, prepares data for serialization and resolves registered listeners protected function registerEvent($event, array $data) { diff --git a/Clockwork/DataSource/LaravelQueueDataSource.php b/Clockwork/DataSource/LaravelQueueDataSource.php index 7f2c9596..b7017610 100644 --- a/Clockwork/DataSource/LaravelQueueDataSource.php +++ b/Clockwork/DataSource/LaravelQueueDataSource.php @@ -58,6 +58,12 @@ public function resolve(Request $request) return $request; } + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + $this->jobs = []; + } + /** * Registers a new queue job, resolves caller file and line no */ diff --git a/Clockwork/DataSource/LaravelRedisDataSource.php b/Clockwork/DataSource/LaravelRedisDataSource.php index cb7487f2..3037db37 100644 --- a/Clockwork/DataSource/LaravelRedisDataSource.php +++ b/Clockwork/DataSource/LaravelRedisDataSource.php @@ -64,6 +64,12 @@ public function resolve(Request $request) return $request; } + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + $this->commands = []; + } + /** * Registers a new command, resolves caller file and line no */ diff --git a/Clockwork/DataSource/LumenDataSource.php b/Clockwork/DataSource/LumenDataSource.php index ffc9d161..008aca52 100644 --- a/Clockwork/DataSource/LumenDataSource.php +++ b/Clockwork/DataSource/LumenDataSource.php @@ -83,6 +83,13 @@ public function resolve(Request $request) return $request; } + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + $this->timeline = new Timeline; + $this->views = new Timeline; + } + // Set a log instance public function setLog(Log $log) { diff --git a/Clockwork/DataSource/SwiftDataSource.php b/Clockwork/DataSource/SwiftDataSource.php index 04ec4613..d4d0d3f3 100644 --- a/Clockwork/DataSource/SwiftDataSource.php +++ b/Clockwork/DataSource/SwiftDataSource.php @@ -35,4 +35,10 @@ public function resolve(Request $request) return $request; } + + // Reset the data source to an empty state, clearing any collected data + public function reset() + { + $this->timeline = new Timeline; + } } From e02e5bb075e9b7de8003bc5117d7f08a8c3186fa Mon Sep 17 00:00:00 2001 From: its Date: Wed, 20 Nov 2019 22:02:59 +0100 Subject: [PATCH 11/75] EloquentDataSource now passes full trace as second argument to filter functions. --- Clockwork/DataSource/EloquentDataSource.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Clockwork/DataSource/EloquentDataSource.php b/Clockwork/DataSource/EloquentDataSource.php index bd85a442..963f2f00 100755 --- a/Clockwork/DataSource/EloquentDataSource.php +++ b/Clockwork/DataSource/EloquentDataSource.php @@ -105,7 +105,7 @@ public function registerQuery($event) $this->incrementQueryCount($query); - if ($this->collectQueries && $this->passesFilters([ $query ])) { + if ($this->collectQueries && $this->passesFilters([ $query, $trace ])) { $this->queries[] = $query; } From 5c2775b08bd23b479c9845bb51720d4e52b6a61c Mon Sep 17 00:00:00 2001 From: its Date: Wed, 20 Nov 2019 22:04:44 +0100 Subject: [PATCH 12/75] New request no have pre-set time field, PhpDataSource no longer sets request time for cli scripts. --- Clockwork/DataSource/PhpDataSource.php | 2 +- Clockwork/Request/Request.php | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Clockwork/DataSource/PhpDataSource.php b/Clockwork/DataSource/PhpDataSource.php index 3cb3a967..1e55706f 100644 --- a/Clockwork/DataSource/PhpDataSource.php +++ b/Clockwork/DataSource/PhpDataSource.php @@ -15,7 +15,7 @@ class PhpDataSource extends DataSource */ public function resolve(Request $request) { - $request->time = $this->getRequestTime(); + $request->time = PHP_SAPI !== 'cli' ? $this->getRequestTime() : $request->time; $request->method = $this->getRequestMethod(); $request->url = $this->getRequestUrl(); $request->uri = $this->getRequestUri(); diff --git a/Clockwork/Request/Request.php b/Clockwork/Request/Request.php index 647a46ba..28f05a4c 100644 --- a/Clockwork/Request/Request.php +++ b/Clockwork/Request/Request.php @@ -213,14 +213,13 @@ class Request * Create a new request, if optional data array argument is provided, it will be used to populate the request object, * otherwise empty request with autogenerated ID will be created */ - public function __construct(array $data = null) + public function __construct(array $data = []) { - if ($data) { - foreach ($data as $key => $val) { - $this->$key = $val; - } - } else { - $this->id = $this->generateRequestId(); + $this->id = isset($data['id']) ? $data['id'] : $this->generateRequestId(); + $this->time = microtime(true); + + foreach ($data as $key => $val) { + $this->$key = $val; } } From 58dbd9c3260f9e1f7006120c1c14ce3275db9a8c Mon Sep 17 00:00:00 2001 From: its Date: Wed, 20 Nov 2019 22:37:31 +0100 Subject: [PATCH 13/75] Added support for "queue-job" type requests. --- Clockwork/Clockwork.php | 18 ++++++++++++++++++ Clockwork/Request/Request.php | 30 +++++++++++++++++++++++++++++- Clockwork/Request/RequestType.php | 1 + 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/Clockwork/Clockwork.php b/Clockwork/Clockwork.php index 6a81a08e..645e99f7 100644 --- a/Clockwork/Clockwork.php +++ b/Clockwork/Clockwork.php @@ -3,6 +3,7 @@ use Clockwork\Authentication\AuthenticatorInterface; use Clockwork\Authentication\NullAuthenticator; use Clockwork\DataSource\DataSourceInterface; +use Clockwork\Helpers\Serializer; use Clockwork\Request\Log; use Clockwork\Request\Request; use Clockwork\Request\RequestType; @@ -140,6 +141,23 @@ public function resolveAsCommand($name, $exitCode = null, $arguments = [], $opti return $this; } + // Resolve the current request as a "queue-job" type request with queue-job-specific data + public function resolveAsQueueJob($name, $description = null, $status = 'processed', $payload = [], $queue = null, $connection = null, $options = []) + { + $this->resolveRequest(); + + $this->request->type = RequestType::QUEUE_JOB; + $this->request->jobName = $name; + $this->request->jobDescription = $description; + $this->request->jobStatus = $status; + $this->request->jobPayload = (new Serializer)->normalize($payload); + $this->request->jobQueue = $queue; + $this->request->jobConnection = $connection; + $this->request->jobOptions = (new Serializer)->normalizeEach($options); + + return $this; + } + // Extends the request with additional data form all data sources when being shown in the Clockwork app public function extendRequest(Request $request = null) { diff --git a/Clockwork/Request/Request.php b/Clockwork/Request/Request.php index 28f05a4c..6a4d01ca 100644 --- a/Clockwork/Request/Request.php +++ b/Clockwork/Request/Request.php @@ -209,6 +209,27 @@ class Request // Command output public $commandOutput; + // Queue job name + public $jobName; + + // Queue job description + public $jobDescription; + + // Queue job status + public $jobStatus; + + // Queue job payload + public $jobPayload = []; + + // Queue job queue name + public $jobQueue; + + // Queue job connection name + public $jobConnection; + + // Queue job additional options + public $jobOptions = []; + /** * Create a new request, if optional data array argument is provided, it will be used to populate the request object, * otherwise empty request with autogenerated ID will be created @@ -301,7 +322,14 @@ public function toArray() 'commandOptions' => $this->commandOptions, 'commandOptionsDefaults' => $this->commandOptionsDefaults, 'commandExitCode' => $this->commandExitCode, - 'commandOutput' => $this->commandOutput + 'commandOutput' => $this->commandOutput, + 'jobName' => $this->jobName, + 'jobDescription' => $this->jobDescription, + 'jobStatus' => $this->jobStatus, + 'jobPayload' => $this->jobPayload, + 'jobQueue' => $this->jobQueue, + 'jobConnection' => $this->jobConnection, + 'jobOptions' => $this->jobOptions ]; } diff --git a/Clockwork/Request/RequestType.php b/Clockwork/Request/RequestType.php index 990057e3..b7a0d869 100644 --- a/Clockwork/Request/RequestType.php +++ b/Clockwork/Request/RequestType.php @@ -5,4 +5,5 @@ class RequestType { const REQUEST = 'request'; const COMMAND = 'command'; + const QUEUE_JOB = 'queue-job'; } From 983478c8a59619d77392a3423968e1aff72f2307 Mon Sep 17 00:00:00 2001 From: its Date: Wed, 20 Nov 2019 22:39:30 +0100 Subject: [PATCH 14/75] Laravel - added support for collecting executed queue jobs. --- .../DataSource/LaravelQueueDataSource.php | 3 +- .../Laravel/ClockworkServiceProvider.php | 13 +++- .../Support/Laravel/ClockworkSupport.php | 77 +++++++++++++++++++ .../Support/Laravel/config/clockwork.php | 25 ++++++ 4 files changed, 116 insertions(+), 2 deletions(-) diff --git a/Clockwork/DataSource/LaravelQueueDataSource.php b/Clockwork/DataSource/LaravelQueueDataSource.php index b7017610..3189b8f4 100644 --- a/Clockwork/DataSource/LaravelQueueDataSource.php +++ b/Clockwork/DataSource/LaravelQueueDataSource.php @@ -36,6 +36,7 @@ public function listenToEvents() { $this->queue->createPayloadUsing(function ($connection, $queue, $payload) { $this->registerJob([ + 'id' => $id = (new Request)->id, 'connection' => $connection, 'queue' => $queue, 'name' => $payload['displayName'], @@ -44,7 +45,7 @@ public function listenToEvents() 'timeout' => $payload['timeout'] ]); - return []; + return [ 'clockwork_id' => $id ]; }); } diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 894e434d..6742d1e3 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -11,6 +11,7 @@ use Clockwork\DataSource\PhpDataSource; use Clockwork\DataSource\SwiftDataSource; use Clockwork\DataSource\XdebugDataSource; +use Clockwork\Helpers\StackFilter; use Clockwork\Request\Log; use Clockwork\Storage\StorageInterface; @@ -51,6 +52,7 @@ protected function listenToEvents() } if ($support->isCollectingCommands()) $support->collectCommands(); + if ($support->isCollectingQueueJobs()) $support->collectQueueJobs(); } protected function listenToFrameworkEvents() @@ -132,7 +134,7 @@ protected function registerDataSources() }); $this->app->singleton('clockwork.eloquent', function ($app) { - return (new EloquentDataSource( + $dataSource = (new EloquentDataSource( $app['db'], $app['events'], $app['clockwork.support']->getConfig('features.database.collect_queries'), @@ -140,6 +142,15 @@ protected function registerDataSources() $app['clockwork.support']->getConfig('features.database.slow_only'), $app['clockwork.support']->getConfig('features.database.detect_duplicate_queries') )); + + // if we are collecting queue jobs, filter out queries caused by the database queue implementation + if ($app['clockwork.support']->isCollectingQueueJobs()) { + $dataSource->addFilter(function ($query, $trace) { + return ! $trace->first(StackFilter::make()->isClass(\Illuminate\Queue\Worker::class)); + }); + } + + return $dataSource; }); $this->app->singleton('clockwork.events', function ($app) { diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index d19bbdb4..cb0b328d 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -7,6 +7,7 @@ use Clockwork\Helpers\ServerTiming; use Clockwork\Helpers\StackFilter; use Clockwork\Helpers\StackTrace; +use Clockwork\Request\Request; use Clockwork\Storage\FileStorage; use Clockwork\Storage\Search; use Clockwork\Storage\SqlStorage; @@ -152,6 +153,62 @@ public function collectCommands() }); } + // Set up collecting of executed queue jobs + public function collectQueueJobs() + { + $this->app['events']->listen(\Illuminate\Queue\Events\JobProcessing::class, function ($event) { + $payload = $event->job->payload(); + + if (! isset($payload['clockwork_id']) || $this->isQueueJobFiltered($payload['displayName'])) return; + + $this->app->make('clockwork') + ->reset() + ->setRequest( + new Request([ 'id' => $payload['clockwork_id'] ]) + ); + }); + + $this->app['events']->listen(\Illuminate\Queue\Events\JobProcessed::class, function ($event) { + $this->processQueueJob($event->job); + }); + + $this->app['events']->listen(\Illuminate\Queue\Events\JobFailed::class, function ($event) { + $this->processQueueJob($event->job, $event->exception); + }); + } + + protected function processQueueJob($job, $exception = null) + { + $payload = $job->payload(); + + if (! isset($payload['clockwork_id'])) return; + + $unserialized = isset($payload['data']['command']) ? unserialize($payload['data']['command']) : null; + + if (! $unserialized || $this->isQueueJobFiltered(get_class($unserialized))) return; + + if ($exception) { + $this->app->make('clockwork')->error($exception->getMessage(), [ 'exception' => $exception ]); + } + + $this->app->make('clockwork') + ->resolveAsQueueJob( + get_class($unserialized), + $payload['displayName'], + $job->hasFailed() ? 'failed' : ($job->isReleased() ? 'released' : 'done'), + $unserialized, + $job->getQueue(), + $job->getConnectionName(), + array_filter([ + 'maxTries' => isset($payload['maxTries']) ? $payload['maxTries'] : null, + 'delaySeconds' => isset($payload['delaySeconds']) ? $payload['delaySeconds'] : null, + 'timeout' => isset($payload['timeout']) ? $payload['timeout'] : null, + 'timeoutAt' => isset($payload['timeoutAt']) ? $payload['timeoutAt'] : null + ]) + ) + ->storeRequest(); + } + public function process($request, $response) { if (! $this->isCollectingData()) { @@ -222,6 +279,7 @@ public function isEnabled() public function isCollectingData() { return $this->isCollectingCommands() + || $this->isCollectingQueueJobs() || $this->isCollectingRequests(); } @@ -232,9 +290,17 @@ public function isCollectingCommands() && $this->getConfig('artisan.collect', false); } + public function isCollectingQueueJobs() + { + return ($this->isEnabled() || $this->getConfig('collect_data_always', false)) + && $this->app->runningInConsole() + && $this->getConfig('queue.collect', false); + } + public function isCollectingRequests() { return ($this->isEnabled() || $this->getConfig('collect_data_always', false)) + && ! $this->app->runningInConsole() && ! $this->isUriFiltered($this->app['request']->getRequestUri()); } @@ -299,6 +365,17 @@ protected function isCommandFiltered($command) return in_array($command, $blacklist); } + protected function isQueueJobFiltered($queueJob) + { + $whitelist = $this->getConfig('queue.only', []); + + if (count($whitelist)) return ! in_array($queueJob, $whitelist); + + $blacklist = $this->getConfig('queue.except', []); + + return in_array($queueJob, $blacklist); + } + protected function appendServerTimingHeader($response, $request) { if (($eventsCount = $this->getConfig('server_timing', 10)) !== false) { diff --git a/Clockwork/Support/Laravel/config/clockwork.php b/Clockwork/Support/Laravel/config/clockwork.php index f5a6becf..939e254f 100644 --- a/Clockwork/Support/Laravel/config/clockwork.php +++ b/Clockwork/Support/Laravel/config/clockwork.php @@ -144,6 +144,31 @@ 'except_laravel_commands' => env('CLOCKWORK_ARTISAN_EXCEPT_LARAVEL_COMMANDS', true) ], + /* + |-------------------------------------------------------------------------- + | Queue jobs collection + |-------------------------------------------------------------------------- + | + | You can enable or disable and configure collection of executed queue jobs + | here. + | + */ + + 'queue' => [ + // Enable or disable collection of executed queue jobs + 'collect' => env('CLOCKWORK_QUEUE_COLLECT', false), + + // List of queue jobs that should not be collected + 'except' => [ + // App\Jobs\ExpensiveJob::class + ], + + // List of queue jobs that should be collected, any other queue job will not be collected if not empty + 'only' => [ + // App\Jobs\BuggyJob::class + ] + ], + /* |-------------------------------------------------------------------------- | Enable data collection, when Clockwork is disabled From 1ce74389fd815a4046093b8bb6d2ddef205f59d9 Mon Sep 17 00:00:00 2001 From: its Date: Mon, 25 Nov 2019 22:01:12 +0100 Subject: [PATCH 15/75] Added support for setting parent request. --- Clockwork/Request/Request.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Clockwork/Request/Request.php b/Clockwork/Request/Request.php index 6a4d01ca..3d9c28f8 100644 --- a/Clockwork/Request/Request.php +++ b/Clockwork/Request/Request.php @@ -230,6 +230,9 @@ class Request // Queue job additional options public $jobOptions = []; + // Parent request + public $parent; + /** * Create a new request, if optional data array argument is provided, it will be used to populate the request object, * otherwise empty request with autogenerated ID will be created @@ -329,7 +332,8 @@ public function toArray() 'jobPayload' => $this->jobPayload, 'jobQueue' => $this->jobQueue, 'jobConnection' => $this->jobConnection, - 'jobOptions' => $this->jobOptions + 'jobOptions' => $this->jobOptions, + 'parent' => $this->parent ]; } @@ -432,7 +436,7 @@ public function addView($name, $data = []) ]; } - // Add executed subrequest, takes the requested url, suvrequest Clockwork ID and additional data - path if non-default + // Add executed subrequest, takes the requested url, subrequest Clockwork ID and additional data - path if non-default public function addSubrequest($url, $id, $data = []) { $this->subrequests[] = [ @@ -452,6 +456,16 @@ public function setAuthenticatedUser($username, $id = null, $data = []) ]; } + // Set parent request, takes the request id and additional options - url and path if non-default + public function setParent($id, $data = []) + { + $this->parent = [ + 'id' => $id, + 'url' => isset($data['url']) ? $data['url'] : null, + 'path' => isset($data['path']) ? $data['path'] : null + ]; + } + // Add custom user data (presented as additional tabs in the official app) public function userData($key = null) { From b604be9c8ee4cd9753a5e0fbab8b93f306974ec5 Mon Sep 17 00:00:00 2001 From: its Date: Mon, 25 Nov 2019 22:02:36 +0100 Subject: [PATCH 16/75] Laravel - "queue job" type requests now have the dispatching request set as parent. --- Clockwork/DataSource/LaravelQueueDataSource.php | 12 +++++++++++- .../Support/Laravel/ClockworkServiceProvider.php | 5 ++++- Clockwork/Support/Laravel/ClockworkSupport.php | 9 ++++----- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Clockwork/DataSource/LaravelQueueDataSource.php b/Clockwork/DataSource/LaravelQueueDataSource.php index 3189b8f4..e4d3e73c 100644 --- a/Clockwork/DataSource/LaravelQueueDataSource.php +++ b/Clockwork/DataSource/LaravelQueueDataSource.php @@ -21,6 +21,9 @@ class LaravelQueueDataSource extends DataSource */ protected $jobs = []; + // Clockwork ID of the current request + protected $currentRequestId; + /** * Create a new data source instance, takes an event dispatcher as argument */ @@ -45,7 +48,7 @@ public function listenToEvents() 'timeout' => $payload['timeout'] ]); - return [ 'clockwork_id' => $id ]; + return [ 'clockwork_id' => $id, 'clockwork_parent_id' => $this->currentRequestId ]; }); } @@ -65,6 +68,13 @@ public function reset() $this->jobs = []; } + // Set Clockwork ID of the current request + public function setCurrentRequestId($requestId) + { + $this->currentRequestId = $requestId; + return $this; + } + /** * Registers a new queue job, resolves caller file and line no */ diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 6742d1e3..01f8adde 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -45,7 +45,10 @@ protected function listenToEvents() if ($support->isFeatureEnabled('cache')) $this->app['clockwork.cache']->listenToEvents(); if ($support->isFeatureEnabled('database')) $this->app['clockwork.eloquent']->listenToEvents(); if ($support->isFeatureEnabled('events')) $this->app['clockwork.events']->listenToEvents(); - if ($support->isFeatureEnabled('queue')) $this->app['clockwork.queue']->listenToEvents(); + if ($support->isFeatureEnabled('queue')) { + $this->app['clockwork.queue']->listenToEvents(); + $this->app['clockwork.queue']->setCurrentRequestId($this->app['clockwork']->getRequest()->id); + } if ($support->isFeatureEnabled('redis')) { $this->app[RedisManager::class]->enableEvents(); $this->app['clockwork.redis']->listenToEvents(); diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index cb0b328d..24af9d5e 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -161,11 +161,10 @@ public function collectQueueJobs() if (! isset($payload['clockwork_id']) || $this->isQueueJobFiltered($payload['displayName'])) return; - $this->app->make('clockwork') - ->reset() - ->setRequest( - new Request([ 'id' => $payload['clockwork_id'] ]) - ); + $request = new Request([ 'id' => $payload['clockwork_id'] ]); + if (isset($payload['clockwork_parent_id'])) $request->setParent($payload['clockwork_parent_id']); + + $this->app->make('clockwork')->reset()->setRequest($request); }); $this->app['events']->listen(\Illuminate\Queue\Events\JobProcessed::class, function ($event) { From 0582e2d135d8f9ce3daf6a47bac38928f0ab0907 Mon Sep 17 00:00:00 2001 From: its Date: Sat, 7 Dec 2019 23:33:45 +0100 Subject: [PATCH 17/75] Added queue-job specific fields to sql storage. --- Clockwork/Storage/SqlStorage.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Clockwork/Storage/SqlStorage.php b/Clockwork/Storage/SqlStorage.php index 1e894677..bf23af8d 100644 --- a/Clockwork/Storage/SqlStorage.php +++ b/Clockwork/Storage/SqlStorage.php @@ -73,7 +73,15 @@ class SqlStorage extends Storage 'commandOptions' => 'TEXT NULL', 'commandOptionsDefaults' => 'TEXT NULL', 'commandExitCode' => 'INTEGER NULL', - 'commandOutput' => 'TEXT NULL' + 'commandOutput' => 'TEXT NULL', + 'jobName' => 'TEXT NULL', + 'jobDescription' => 'TEXT NULL', + 'jobStatus' => 'TEXT NULL', + 'jobPayload' => 'TEXT NULL', + 'jobQueue' => 'TEXT NULL', + 'jobConnection' => 'TEXT NULL', + 'jobOptions' => 'TEXT NULL', + 'parent' => 'TEXT NULL' ]; // List of Request keys that need to be serialized before they can be stored in database @@ -81,7 +89,7 @@ class SqlStorage extends Storage 'headers', 'getData', 'postData', 'requestData', 'sessionData', 'authenticatedUser', 'cookies', 'middleware', 'databaseQueries', 'cacheQueries', 'redisCommands', 'queueJobs', 'timelineData', 'log', 'events', 'routes', 'emailsData', 'viewsData', 'userData', 'subrequests', 'xdebug', 'commandArguments', 'commandArgumentsDefaults', - 'commandOptions', 'commandOptionsDefaults' + 'commandOptions', 'commandOptionsDefaults', 'jobPayload', 'jobOptions', 'parent' ]; // Return a new storage, takes PDO object or DSN and optionally a table name and database credentials as arguments From 22baeabc7b0ce1e643d439f00fa8a50549820d54 Mon Sep 17 00:00:00 2001 From: its Date: Sat, 7 Dec 2019 23:58:13 +0100 Subject: [PATCH 18/75] Added support for searching for queue-job type requests. --- Clockwork/Storage/FileStorage.php | 19 +++++++++++++++++-- Clockwork/Storage/Search.php | 11 +++++++++++ Clockwork/Storage/SqlSearch.php | 4 ++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/Clockwork/Storage/FileStorage.php b/Clockwork/Storage/FileStorage.php index d5a660db..2296b56a 100644 --- a/Clockwork/Storage/FileStorage.php +++ b/Clockwork/Storage/FileStorage.php @@ -263,7 +263,14 @@ protected function trimIndex() protected function makeRequestFromIndex($record) { $type = isset($record[7]) ? $record[7] : 'response'; - $nameField = $type == 'command' ? 'commandName' : 'uri'; + + if ($type == 'command') { + $nameField = 'commandName'; + } elseif ($type == 'queue-job') { + $nameField = 'jobName'; + } else { + $nameField = 'uri'; + } return new Request(array_combine( [ 'id', 'time', 'method', $nameField, 'controller', 'responseStatus', 'responseDuration', 'type' ], @@ -277,11 +284,19 @@ protected function updateIndex(Request $request) $handle = fopen("{$this->path}/index", 'a'); flock($handle, LOCK_EX); + if ($request->type == 'command') { + $nameField = 'commandName'; + } elseif ($request->type == 'queue-job') { + $nameField = 'jobName'; + } else { + $nameField = 'uri'; + } + fputcsv($handle, [ $request->id, $request->time, $request->method, - $request->type == 'command' ? $request->commandName : $request->uri, + $request->$nameField, $request->controller, $request->responseStatus, $request->getResponseDuration(), diff --git a/Clockwork/Storage/Search.php b/Clockwork/Storage/Search.php index 51718eb1..4c1ab38c 100644 --- a/Clockwork/Storage/Search.php +++ b/Clockwork/Storage/Search.php @@ -32,6 +32,8 @@ public function matches(Request $request) { if ($request->type == RequestType::COMMAND) { return $this->matchesCommand($request); + } elseif ($request->type == RequestType::QUEUE_JOB) { + return $this->matchesQueueJob($request); } else { return $this->matchesRequest($request); } @@ -57,6 +59,15 @@ protected function matchesCommand(Request $request) && $this->matchesDate($this->received, $request->time); } + protected function matchesQueueJob(Request $request) + { + return $this->matchesString($this->type, RequestType::QUEUE_JOB) + && $this->matchesString($this->name, $request->jobName) + && $this->matchesString($this->status, $request->jobStatus) + && $this->matchesNumber($this->time, $request->responseDuration) + && $this->matchesDate($this->received, $request->time); + } + public function isEmpty() { return ! count($this->uri) && ! count($this->controller) && ! count($this->method) && ! count($this->status) diff --git a/Clockwork/Storage/SqlSearch.php b/Clockwork/Storage/SqlSearch.php index 241b81d4..659e13d9 100644 --- a/Clockwork/Storage/SqlSearch.php +++ b/Clockwork/Storage/SqlSearch.php @@ -38,10 +38,10 @@ protected function resolveConditions() $conditions = array_filter([ $this->resolveStringCondition([ 'type' ], $this->type), - $this->resolveStringCondition([ 'uri', 'commandName' ], array_merge($this->uri, $this->name)), + $this->resolveStringCondition([ 'uri', 'commandName', 'jobName' ], array_merge($this->uri, $this->name)), $this->resolveStringCondition([ 'controller' ], $this->controller), $this->resolveExactCondition([ 'method' ], $this->method), - $this->resolveNumberCondition([ 'responseStatus', 'commandExitCode' ], $this->status), + $this->resolveNumberCondition([ 'responseStatus', 'commandExitCode', 'jobStatus' ], $this->status), $this->resolveNumberCondition([ 'responseDuration' ], $this->time), $this->resolveDateCondition([ 'time' ], $this->received) ]); From aa0c47d41b85b9efdd26e80719f32798cd7b8cc3 Mon Sep 17 00:00:00 2001 From: its Date: Sun, 8 Dec 2019 00:11:58 +0100 Subject: [PATCH 19/75] Vanilla - added queueJobExecuted helper. --- Clockwork/Support/Vanilla/Clockwork.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Clockwork/Support/Vanilla/Clockwork.php b/Clockwork/Support/Vanilla/Clockwork.php index 2ac8723d..f1c92b22 100644 --- a/Clockwork/Support/Vanilla/Clockwork.php +++ b/Clockwork/Support/Vanilla/Clockwork.php @@ -89,6 +89,17 @@ public function commandExecuted($name, $exitCode = null, $arguments = [], $optio ->storeRequest(); } + public function queueJobExecuted($name, $description = null, $status = 'processed', $payload = [], $queue = null, $connection = null, $options = []) + { + if (! $this->config['enable'] && ! $this->config['collect_data_always']) return; + + $this->clockwork->getTimeline()->endEvent('total'); + + $this->clockwork + ->resolveAsQueueJob($name, $description, $status, $payload, $queue, $connection, $options) + ->storeRequest(); + } + public function returnMetadata($request = null) { if (! $this->config['enable']) return; From c1189618fc0387ba3478ff7b2dddd55ce015a60d Mon Sep 17 00:00:00 2001 From: its Date: Wed, 11 Dec 2019 22:24:50 +0100 Subject: [PATCH 20/75] Add Laravel namespace to default ignored events in LaravelEventsDataSource. --- Clockwork/DataSource/LaravelEventsDataSource.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Clockwork/DataSource/LaravelEventsDataSource.php b/Clockwork/DataSource/LaravelEventsDataSource.php index 6ccc7375..0f3276b7 100644 --- a/Clockwork/DataSource/LaravelEventsDataSource.php +++ b/Clockwork/DataSource/LaravelEventsDataSource.php @@ -125,6 +125,7 @@ protected function defaultIgnoredEvents() { return [ 'Illuminate\\\\.+', + 'Laravel\\\\.+', 'auth\.(?:attempt|login|logout)', 'artisan\.start', 'bootstrapped:.+', From 9cac09fde88760954aa74dc393c05113b9ddad5d Mon Sep 17 00:00:00 2001 From: its Date: Wed, 11 Dec 2019 23:28:07 +0100 Subject: [PATCH 21/75] Laravel - filter redis commands executed by redis queue implementation when collecting queue jobs. --- .../Support/Laravel/ClockworkServiceProvider.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 01f8adde..6f8ca5dc 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -178,7 +178,21 @@ protected function registerDataSources() }); $this->app->singleton('clockwork.redis', function ($app) { - return (new LaravelRedisDataSource($app['events'])); + $dataSource = new LaravelRedisDataSource($app['events']); + + // if we are collecting queue jobs, filter out commands executed by the redis queue implementation + if ($app['clockwork.support']->isCollectingQueueJobs()) { + $dataSource->addFilter(function ($query, $trace) { + return ! $trace->first(StackFilter::make()->isClass([ + \Illuminate\Queue\RedisQueue::class, + \Laravel\Horizon\Repositories\RedisJobRepository::class, + \Laravel\Horizon\Repositories\RedisTagRepository::class, + \Laravel\Horizon\Repositories\RedisMetricsRepository::class + ])); + }); + } + + return $dataSource; }); $this->app->singleton('clockwork.swift', function ($app) { From 5a20f7e94b3bfa839ed76d5cafb575e722c5ff82 Mon Sep 17 00:00:00 2001 From: its Date: Wed, 11 Dec 2019 23:56:02 +0100 Subject: [PATCH 22/75] Data sources can now have multiple filter types. --- Clockwork/DataSource/DataSource.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Clockwork/DataSource/DataSource.php b/Clockwork/DataSource/DataSource.php index e3087d93..f6f7741e 100644 --- a/Clockwork/DataSource/DataSource.php +++ b/Clockwork/DataSource/DataSource.php @@ -30,9 +30,10 @@ public function reset() } // Register a new filter - public function addFilter(\Closure $filter) + public function addFilter(\Closure $filter, $type = 'default') { - $this->filters[] = $filter; + $this->filters[$type] = isset($this->filters[$type]) + ? array_merge($this->filters[$type], [ $filter ]) : [ $filter ]; return $this; } @@ -46,9 +47,11 @@ public function clearFilters() } // Returns boolean whether the filterable passes all registered filters - protected function passesFilters($args) + protected function passesFilters($args, $type = 'default') { - foreach ($this->filters as $filter) { + $filters = isset($this->filters[$type]) ? $this->filters[$type] : []; + + foreach ($filters as $filter) { if (! call_user_func_array($filter, $args)) return false; } From be16da4867e4df72f01d6bb5af5e350232f37275 Mon Sep 17 00:00:00 2001 From: its Date: Wed, 11 Dec 2019 23:56:54 +0100 Subject: [PATCH 23/75] Laravel - collected queue jobs no longer count database queries executed by the database queue implementation. --- Clockwork/DataSource/EloquentDataSource.php | 10 ++++++---- Clockwork/Support/Laravel/ClockworkServiceProvider.php | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Clockwork/DataSource/EloquentDataSource.php b/Clockwork/DataSource/EloquentDataSource.php index 963f2f00..dec59a9e 100755 --- a/Clockwork/DataSource/EloquentDataSource.php +++ b/Clockwork/DataSource/EloquentDataSource.php @@ -103,13 +103,15 @@ public function registerQuery($event) 'tags' => $this->slowThreshold !== null && $event->time > $this->slowThreshold ? [ 'slow' ] : [] ]; + $this->nextQueryModel = null; + + if (! $this->passesFilters([ $query, $trace ], 'early')) return; + $this->incrementQueryCount($query); - if ($this->collectQueries && $this->passesFilters([ $query, $trace ])) { - $this->queries[] = $query; - } + if (! $this->collectQueries || ! $this->passesFilters([ $query, $trace ])) return; - $this->nextQueryModel = null; + $this->queries[] = $query; } /** diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 6f8ca5dc..5d94351c 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -150,7 +150,7 @@ protected function registerDataSources() if ($app['clockwork.support']->isCollectingQueueJobs()) { $dataSource->addFilter(function ($query, $trace) { return ! $trace->first(StackFilter::make()->isClass(\Illuminate\Queue\Worker::class)); - }); + }, 'early'); } return $dataSource; From d528da8f2d845878e2177c6f6c78a32983597db3 Mon Sep 17 00:00:00 2001 From: its Date: Thu, 12 Dec 2019 00:25:19 +0100 Subject: [PATCH 24/75] Laravel - added total execution time timeline event for queue jobs. --- Clockwork/Support/Laravel/ClockworkSupport.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index 24af9d5e..db4fc9c4 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -164,7 +164,8 @@ public function collectQueueJobs() $request = new Request([ 'id' => $payload['clockwork_id'] ]); if (isset($payload['clockwork_parent_id'])) $request->setParent($payload['clockwork_parent_id']); - $this->app->make('clockwork')->reset()->setRequest($request); + $this->app->make('clockwork')->reset()->setRequest($request) + ->startEvent('total', 'Total execution time.', $request->time); }); $this->app['events']->listen(\Illuminate\Queue\Events\JobProcessed::class, function ($event) { From 0842715c2abbc5405fc0cde34e85750e3d1ce1a6 Mon Sep 17 00:00:00 2001 From: its Date: Tue, 5 Nov 2019 01:07:49 +0100 Subject: [PATCH 25/75] LaravelDataSource - use instantiation time as request time when running as unit test, safer resolving of response status. --- Clockwork/DataSource/LaravelDataSource.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Clockwork/DataSource/LaravelDataSource.php b/Clockwork/DataSource/LaravelDataSource.php index 533f8c14..5ba6a94d 100644 --- a/Clockwork/DataSource/LaravelDataSource.php +++ b/Clockwork/DataSource/LaravelDataSource.php @@ -48,6 +48,9 @@ class LaravelDataSource extends DataSource // Whether we should collect routes protected $collectRoutes = false; + // Timestamp w/ ms precision when the class was instantiated, used as request time when testing + protected $creationTime; + /** * Create a new data source, takes Laravel application instance as an argument */ @@ -60,6 +63,8 @@ public function __construct(Application $app, $collectLog = true, $collectViews $this->timeline = new Timeline(); $this->views = new Timeline(); + + $this->creationTime = microtime(true); } /** @@ -67,6 +72,7 @@ public function __construct(Application $app, $collectLog = true, $collectViews */ public function resolve(Request $request) { + $request->time = $this->getRequestTime(); $request->method = $this->getRequestMethod(); $request->url = $this->getRequestUrl(); $request->uri = $this->getRequestUri(); @@ -201,6 +207,18 @@ protected function getController() return $controller; } + /** + * Return response time in most precise form + */ + protected function getRequestTime() + { + if ($this->app->runningUnitTests()) { + return $this->creationTime; + } elseif (isset($_SERVER['REQUEST_TIME_FLOAT'])) { + return $_SERVER['REQUEST_TIME_FLOAT']; + } + } + /** * Return request headers */ From 7540cb40176d5e37024fe1a71edefd0e56e814cb Mon Sep 17 00:00:00 2001 From: its Date: Tue, 5 Nov 2019 01:09:20 +0100 Subject: [PATCH 26/75] StackTrace - added limit option, added last method (counterpart to first), fixed filter preserving keys. --- Clockwork/Helpers/StackTrace.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Clockwork/Helpers/StackTrace.php b/Clockwork/Helpers/StackTrace.php index 72957a4d..e38d3bad 100644 --- a/Clockwork/Helpers/StackTrace.php +++ b/Clockwork/Helpers/StackTrace.php @@ -13,8 +13,9 @@ public static function get($options = []) { $backtraceOptions = isset($options['arguments']) ? DEBUG_BACKTRACE_PROVIDE_OBJECT : DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS; + $limit = isset($options['limit']) ? $options['limit'] : 0; - return static::from(debug_backtrace($backtraceOptions)); + return static::from(debug_backtrace($backtraceOptions, $limit)); } public static function from(array $trace) @@ -52,11 +53,22 @@ public function first($filter = null) } } + public function last($filter = null) + { + if (! $filter) return $this->frames[count($this->frames) - 1]; + + if ($filter instanceof StackFilter) $filter = $filter->closure(); + + foreach (array_reverse($this->frames) as $frame) { + if ($filter($frame)) return $frame; + } + } + public function filter($filter = null) { if ($filter instanceof StackFilter) $filter = $filter->closure(); - return $this->copy(array_filter($this->frames, $filter)); + return $this->copy(array_values(array_filter($this->frames, $filter))); } public function skip($count = null) From 6ce262d2749f6387ebd54b1cec26aca155ce23d3 Mon Sep 17 00:00:00 2001 From: its Date: Tue, 5 Nov 2019 01:12:53 +0100 Subject: [PATCH 27/75] Request - added type property and test-specific testName, testStatus, testStatusMessage and testAsserts properties, added addTestAssert method. --- Clockwork/Request/Request.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Clockwork/Request/Request.php b/Clockwork/Request/Request.php index 3d9c28f8..8ccb798b 100644 --- a/Clockwork/Request/Request.php +++ b/Clockwork/Request/Request.php @@ -230,6 +230,18 @@ class Request // Queue job additional options public $jobOptions = []; + // Test name + public $testName; + + // Test status + public $testStatus; + + // Test status message (eg. in case of failure) + public $testStatusMessage; + + // Ran test asserts + public $testAsserts = []; + // Parent request public $parent; @@ -333,6 +345,10 @@ public function toArray() 'jobQueue' => $this->jobQueue, 'jobConnection' => $this->jobConnection, 'jobOptions' => $this->jobOptions, + 'testName' => $this->testName, + 'testStatus' => $this->testStatus, + 'testStatusMessage' => $this->testStatusMessage, + 'testAsserts' => $this->testAsserts, 'parent' => $this->parent ]; } @@ -478,6 +494,17 @@ public function userData($key = null) return $key ? $this->userData[$key] = $userData : $this->userData[] = $userData; } + // Add a ran test assert, takes the asset name, arguments, whether it passed and trace as arguments + public function addTestAssert($name, $arguments = null, $passed = true, $trace = null) + { + $this->testAsserts[] = [ + 'name' => $name, + 'arguments' => $arguments, + 'trace' => $trace, + 'passed' => $passed + ]; + } + /** * Generate unique request ID in form - */ From 81cf132b18a753b90b5d51a50d98a835c8966a9d Mon Sep 17 00:00:00 2001 From: its Date: Tue, 5 Nov 2019 01:13:33 +0100 Subject: [PATCH 28/75] Added Clockwork::resolveTest method for resolving current requests as "test" type request with test-specific metadata. --- Clockwork/Clockwork.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Clockwork/Clockwork.php b/Clockwork/Clockwork.php index 645e99f7..26d5743c 100644 --- a/Clockwork/Clockwork.php +++ b/Clockwork/Clockwork.php @@ -158,6 +158,21 @@ public function resolveAsQueueJob($name, $description = null, $status = 'process return $this; } + // Resolve current request as "test" type request, with test-specific metadata, accepts test name, status, + // status message in case of failure and array of ran asserts + public function resolveTest($name, $status = 'passed', $statusMessage = null, $asserts = []) + { + $this->resolveRequest(); + + $this->request->type = 'test'; + $this->request->testName = $name; + $this->request->testStatus = $status; + $this->request->testStatusMessage = $statusMessage; + $this->request->testAsserts = $asserts; + + return $this; + } + // Extends the request with additional data form all data sources when being shown in the Clockwork app public function extendRequest(Request $request = null) { From 23779d0335267a7e07c5313015e4af3a26ea9f1c Mon Sep 17 00:00:00 2001 From: its Date: Tue, 5 Nov 2019 01:15:12 +0100 Subject: [PATCH 29/75] Laravel - added support for collecting test runs with Laravel and PHPUnit by adding the Tests\UsesClockwork trait to base TestCase. --- .../Support/Laravel/ClockworkSupport.php | 2 +- .../Support/Laravel/Tests/UsesClockwork.php | 87 +++++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 Clockwork/Support/Laravel/Tests/UsesClockwork.php diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index db4fc9c4..d43f7639 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -300,7 +300,7 @@ public function isCollectingQueueJobs() public function isCollectingRequests() { return ($this->isEnabled() || $this->getConfig('collect_data_always', false)) - && ! $this->app->runningInConsole() + // && ! $this->app->runningInConsole() && ! $this->isUriFiltered($this->app['request']->getRequestUri()); } diff --git a/Clockwork/Support/Laravel/Tests/UsesClockwork.php b/Clockwork/Support/Laravel/Tests/UsesClockwork.php new file mode 100644 index 00000000..60c0bd5f --- /dev/null +++ b/Clockwork/Support/Laravel/Tests/UsesClockwork.php @@ -0,0 +1,87 @@ + [], + 'testStart' => null + ]; + + protected function setUp() + { + parent::setUp(); + $this->setUpClockwork(); + } + + protected function setUpClockwork() + { + $this->beforeApplicationDestroyed(function () { + $this->app->make('clockwork') + ->resolveTest( + $this->toString(), + $this->resolveClockworkStatus(), + $this->getStatusMessage(), + $this->resolveClockworkAssertsRan() + ) + ->storeRequest(); + }); + } + + protected function resolveClockworkStatus() + { + $status = $this->getStatus(); + + $statuses = [ + BaseTestRunner::STATUS_UNKNOWN => 'unknown', + BaseTestRunner::STATUS_PASSED => 'passed', + BaseTestRunner::STATUS_SKIPPED => 'skipped', + BaseTestRunner::STATUS_INCOMPLETE => 'incomplete', + BaseTestRunner::STATUS_FAILURE => 'failed', + BaseTestRunner::STATUS_ERROR => 'error', + BaseTestRunner::STATUS_RISKY => 'passed', + BaseTestRunner::STATUS_WARNING => 'warning' + ]; + + return isset($statuses[$status]) ? $statuses[$status] : null; + } + + protected function resolveClockworkAssertsRan() + { + $assertsRan = static::$clockwork['assertsRan']; + + if ($this->getStatus() == BaseTestRunner::STATUS_FAILURE) { + $assertsRan[count($assertsRan) - 1]['passed'] = false; + } + + static::$clockwork['assertsRan'] = []; + + return $assertsRan; + } + + protected static function logClockworkAssertRan($assert, $arguments) + { + } + + public static function assertThat($value, Constraint $constraint, string $message = ''): void + { + $trace = StackTrace::get([ 'arguments' => true, 'limit' => 10 ]); + + $assertFrame = $trace->filter(function ($frame) { return strpos($frame->function, 'assert') === 0; })->last(); + + static::$clockwork['assertsRan'][] = [ + 'name' => $assertFrame->function, + 'arguments' => $assertFrame->args, + 'trace' => (new Serializer)->trace($trace), + 'passed' => true + ]; + + parent::assertThat($value, $constraint, $message); + } +} From 949722b39b0b4a1f8b3d6a1c29154dc922486ab7 Mon Sep 17 00:00:00 2001 From: its Date: Tue, 5 Nov 2019 01:15:42 +0100 Subject: [PATCH 30/75] Laravel - filter migration queries when running in a unit test. --- Clockwork/Support/Laravel/ClockworkServiceProvider.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 5d94351c..71ebcfac 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -153,6 +153,15 @@ protected function registerDataSources() }, 'early'); } + if ($app->runningUnitTests()) { + $dataSource->addFilter(function ($query, $trace) { + return ! $trace->first(StackFilter::make()->isClass([ + \Illuminate\Database\Migrations\Migrator::class, + \Illuminate\Database\Console\Migrations\MigrateCommand::class + ])); + }); + } + return $dataSource; }); From 223b30731332f47f6f0db854de02b179754d62ae Mon Sep 17 00:00:00 2001 From: its Date: Sun, 22 Dec 2019 01:21:40 +0100 Subject: [PATCH 31/75] Cleaned up tests collecting. --- Clockwork/Clockwork.php | 8 ++--- Clockwork/DataSource/LaravelDataSource.php | 18 ----------- Clockwork/Request/Request.php | 2 +- Clockwork/Request/RequestType.php | 1 + .../Laravel/ClockworkServiceProvider.php | 8 ++++- .../Support/Laravel/ClockworkSupport.php | 12 +++++-- .../Support/Laravel/Tests/UsesClockwork.php | 32 ++++++------------- .../Support/Laravel/config/clockwork.php | 14 ++++++++ 8 files changed, 47 insertions(+), 48 deletions(-) diff --git a/Clockwork/Clockwork.php b/Clockwork/Clockwork.php index 26d5743c..7c907294 100644 --- a/Clockwork/Clockwork.php +++ b/Clockwork/Clockwork.php @@ -158,13 +158,13 @@ public function resolveAsQueueJob($name, $description = null, $status = 'process return $this; } - // Resolve current request as "test" type request, with test-specific metadata, accepts test name, status, - // status message in case of failure and array of ran asserts - public function resolveTest($name, $status = 'passed', $statusMessage = null, $asserts = []) + // Resolve the current request as a "test" type request with test-specific data, accepts test name, status, status + // message in case of failure and array of ran asserts + public function resolveAsTest($name, $status = 'passed', $statusMessage = null, $asserts = []) { $this->resolveRequest(); - $this->request->type = 'test'; + $this->request->type = RequestType::TEST; $this->request->testName = $name; $this->request->testStatus = $status; $this->request->testStatusMessage = $statusMessage; diff --git a/Clockwork/DataSource/LaravelDataSource.php b/Clockwork/DataSource/LaravelDataSource.php index 5ba6a94d..533f8c14 100644 --- a/Clockwork/DataSource/LaravelDataSource.php +++ b/Clockwork/DataSource/LaravelDataSource.php @@ -48,9 +48,6 @@ class LaravelDataSource extends DataSource // Whether we should collect routes protected $collectRoutes = false; - // Timestamp w/ ms precision when the class was instantiated, used as request time when testing - protected $creationTime; - /** * Create a new data source, takes Laravel application instance as an argument */ @@ -63,8 +60,6 @@ public function __construct(Application $app, $collectLog = true, $collectViews $this->timeline = new Timeline(); $this->views = new Timeline(); - - $this->creationTime = microtime(true); } /** @@ -72,7 +67,6 @@ public function __construct(Application $app, $collectLog = true, $collectViews */ public function resolve(Request $request) { - $request->time = $this->getRequestTime(); $request->method = $this->getRequestMethod(); $request->url = $this->getRequestUrl(); $request->uri = $this->getRequestUri(); @@ -207,18 +201,6 @@ protected function getController() return $controller; } - /** - * Return response time in most precise form - */ - protected function getRequestTime() - { - if ($this->app->runningUnitTests()) { - return $this->creationTime; - } elseif (isset($_SERVER['REQUEST_TIME_FLOAT'])) { - return $_SERVER['REQUEST_TIME_FLOAT']; - } - } - /** * Return request headers */ diff --git a/Clockwork/Request/Request.php b/Clockwork/Request/Request.php index 8ccb798b..95b4c1d7 100644 --- a/Clockwork/Request/Request.php +++ b/Clockwork/Request/Request.php @@ -494,7 +494,7 @@ public function userData($key = null) return $key ? $this->userData[$key] = $userData : $this->userData[] = $userData; } - // Add a ran test assert, takes the asset name, arguments, whether it passed and trace as arguments + // Add a ran test assert, takes the assert name, arguments, whether it passed and trace as arguments public function addTestAssert($name, $arguments = null, $passed = true, $trace = null) { $this->testAsserts[] = [ diff --git a/Clockwork/Request/RequestType.php b/Clockwork/Request/RequestType.php index b7a0d869..aad30e6e 100644 --- a/Clockwork/Request/RequestType.php +++ b/Clockwork/Request/RequestType.php @@ -6,4 +6,5 @@ class RequestType const REQUEST = 'request'; const COMMAND = 'command'; const QUEUE_JOB = 'queue-job'; + const TEST = 'test'; } diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 71ebcfac..63b75c13 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -13,6 +13,7 @@ use Clockwork\DataSource\XdebugDataSource; use Clockwork\Helpers\StackFilter; use Clockwork\Request\Log; +use Clockwork\Request\Request; use Clockwork\Storage\StorageInterface; use Illuminate\Redis\RedisManager; @@ -74,6 +75,7 @@ public function register() $clockwork = (new Clockwork) ->setAuthenticator($app['clockwork.authenticator']) ->setLog($app['clockwork.log']) + ->setRequest($app['clockwork.request']) ->setStorage($app['clockwork.storage']) ->addDataSource(new PhpDataSource()) ->addDataSource($app['clockwork.laravel']); @@ -97,6 +99,10 @@ public function register() return new Log; }); + $this->app->singleton('clockwork.request', function ($app) { + return new Request; + }); + $this->app->singleton('clockwork.storage', function ($app) { return $app['clockwork.support']->getStorage(); }); @@ -109,8 +115,8 @@ public function register() $this->registerDataSources(); $this->registerAliases(); + $this->app->make('clockwork.request'); // instantiate the request to have id and time available as early as possible $this->app['clockwork.support']->configureSerializer(); - $this->app['clockwork.laravel']->listenToEarlyEvents(); if ($this->app['clockwork.support']->getConfig('register_helpers', true)) { diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index d43f7639..77405bca 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -280,7 +280,8 @@ public function isCollectingData() { return $this->isCollectingCommands() || $this->isCollectingQueueJobs() - || $this->isCollectingRequests(); + || $this->isCollectingRequests() + || $this->isCollectingTests(); } public function isCollectingCommands() @@ -300,10 +301,17 @@ public function isCollectingQueueJobs() public function isCollectingRequests() { return ($this->isEnabled() || $this->getConfig('collect_data_always', false)) - // && ! $this->app->runningInConsole() + && ! $this->app->runningInConsole() && ! $this->isUriFiltered($this->app['request']->getRequestUri()); } + public function isCollectingTests() + { + return ($this->isEnabled() || $this->getConfig('collect_data_always', false)) + && $this->app->runningInConsole() + && $this->getConfig('tests.collect', false); + } + public function isFeatureEnabled($feature) { return $this->getConfig("features.{$feature}.enabled") && $this->isFeatureAvailable($feature); diff --git a/Clockwork/Support/Laravel/Tests/UsesClockwork.php b/Clockwork/Support/Laravel/Tests/UsesClockwork.php index 60c0bd5f..8bd05e3c 100644 --- a/Clockwork/Support/Laravel/Tests/UsesClockwork.php +++ b/Clockwork/Support/Laravel/Tests/UsesClockwork.php @@ -1,34 +1,26 @@ [], - 'testStart' => null + 'asserts' => [] ]; - protected function setUp() - { - parent::setUp(); - $this->setUpClockwork(); - } - protected function setUpClockwork() { $this->beforeApplicationDestroyed(function () { $this->app->make('clockwork') - ->resolveTest( + ->resolveAsTest( $this->toString(), $this->resolveClockworkStatus(), $this->getStatusMessage(), - $this->resolveClockworkAssertsRan() + $this->resolveClockworkAsserts() ) ->storeRequest(); }); @@ -52,21 +44,17 @@ protected function resolveClockworkStatus() return isset($statuses[$status]) ? $statuses[$status] : null; } - protected function resolveClockworkAssertsRan() + protected function resolveClockworkAsserts() { - $assertsRan = static::$clockwork['assertsRan']; + $asserts = static::$clockwork['asserts']; if ($this->getStatus() == BaseTestRunner::STATUS_FAILURE) { - $assertsRan[count($assertsRan) - 1]['passed'] = false; + $asserts[count($asserts) - 1]['passed'] = false; } - static::$clockwork['assertsRan'] = []; + static::$clockwork['asserts'] = []; - return $assertsRan; - } - - protected static function logClockworkAssertRan($assert, $arguments) - { + return $asserts; } public static function assertThat($value, Constraint $constraint, string $message = ''): void @@ -75,7 +63,7 @@ public static function assertThat($value, Constraint $constraint, string $messag $assertFrame = $trace->filter(function ($frame) { return strpos($frame->function, 'assert') === 0; })->last(); - static::$clockwork['assertsRan'][] = [ + static::$clockwork['asserts'][] = [ 'name' => $assertFrame->function, 'arguments' => $assertFrame->args, 'trace' => (new Serializer)->trace($trace), diff --git a/Clockwork/Support/Laravel/config/clockwork.php b/Clockwork/Support/Laravel/config/clockwork.php index 939e254f..80146718 100644 --- a/Clockwork/Support/Laravel/config/clockwork.php +++ b/Clockwork/Support/Laravel/config/clockwork.php @@ -169,6 +169,20 @@ ] ], + /* + |-------------------------------------------------------------------------- + | Tests collection + |-------------------------------------------------------------------------- + | + | You can enable or disable and configure collection of ran tests here. + | + */ + + 'tests' => [ + // Enable or disable collection of ran tests + 'collect' => env('CLOCKWORK_TESTS_COLLECT', false) + ], + /* |-------------------------------------------------------------------------- | Enable data collection, when Clockwork is disabled From 0b9417fb1d336b4542791df10b3a090a49a141e0 Mon Sep 17 00:00:00 2001 From: its Date: Mon, 23 Dec 2019 13:47:15 +0100 Subject: [PATCH 32/75] Added support for filtering collected tests, test request type in search, proper serialization for collcted asserts arguments. --- Clockwork/Clockwork.php | 5 ++++- Clockwork/Request/Request.php | 2 +- Clockwork/Storage/FileStorage.php | 4 ++++ Clockwork/Storage/Search.php | 11 +++++++++++ Clockwork/Storage/SqlSearch.php | 4 ++-- Clockwork/Support/Laravel/ClockworkSupport.php | 7 +++++++ Clockwork/Support/Laravel/Tests/UsesClockwork.php | 2 ++ Clockwork/Support/Laravel/config/clockwork.php | 7 ++++++- 8 files changed, 37 insertions(+), 5 deletions(-) diff --git a/Clockwork/Clockwork.php b/Clockwork/Clockwork.php index 7c907294..e154d9d1 100644 --- a/Clockwork/Clockwork.php +++ b/Clockwork/Clockwork.php @@ -168,7 +168,10 @@ public function resolveAsTest($name, $status = 'passed', $statusMessage = null, $this->request->testName = $name; $this->request->testStatus = $status; $this->request->testStatusMessage = $statusMessage; - $this->request->testAsserts = $asserts; + + foreach ($asserts as $assert) { + $this->request->addTestAssert($assert['name'], $assert['arguments'], $assert['passed'], $assert['trace']); + } return $this; } diff --git a/Clockwork/Request/Request.php b/Clockwork/Request/Request.php index 95b4c1d7..af676803 100644 --- a/Clockwork/Request/Request.php +++ b/Clockwork/Request/Request.php @@ -499,7 +499,7 @@ public function addTestAssert($name, $arguments = null, $passed = true, $trace = { $this->testAsserts[] = [ 'name' => $name, - 'arguments' => $arguments, + 'arguments' => (new Serializer)->normalize($arguments), 'trace' => $trace, 'passed' => $passed ]; diff --git a/Clockwork/Storage/FileStorage.php b/Clockwork/Storage/FileStorage.php index 2296b56a..b7590d1d 100644 --- a/Clockwork/Storage/FileStorage.php +++ b/Clockwork/Storage/FileStorage.php @@ -268,6 +268,8 @@ protected function makeRequestFromIndex($record) $nameField = 'commandName'; } elseif ($type == 'queue-job') { $nameField = 'jobName'; + } elseif ($type == 'test') { + $nameField = 'testName'; } else { $nameField = 'uri'; } @@ -288,6 +290,8 @@ protected function updateIndex(Request $request) $nameField = 'commandName'; } elseif ($request->type == 'queue-job') { $nameField = 'jobName'; + } elseif ($request->type == 'test') { + $nameField = 'testName'; } else { $nameField = 'uri'; } diff --git a/Clockwork/Storage/Search.php b/Clockwork/Storage/Search.php index 4c1ab38c..d5d06d0a 100644 --- a/Clockwork/Storage/Search.php +++ b/Clockwork/Storage/Search.php @@ -34,6 +34,8 @@ public function matches(Request $request) return $this->matchesCommand($request); } elseif ($request->type == RequestType::QUEUE_JOB) { return $this->matchesQueueJob($request); + } elseif ($request->type == RequestType::TEST) { + return $this->matchesTest($request); } else { return $this->matchesRequest($request); } @@ -68,6 +70,15 @@ protected function matchesQueueJob(Request $request) && $this->matchesDate($this->received, $request->time); } + protected function matchesTest(Request $request) + { + return $this->matchesString($this->type, RequestType::TEST) + && $this->matchesString($this->name, $request->testName) + && $this->matchesString($this->status, $request->testStatus) + && $this->matchesNumber($this->time, $request->responseDuration) + && $this->matchesDate($this->received, $request->time); + } + public function isEmpty() { return ! count($this->uri) && ! count($this->controller) && ! count($this->method) && ! count($this->status) diff --git a/Clockwork/Storage/SqlSearch.php b/Clockwork/Storage/SqlSearch.php index 659e13d9..cd456e9d 100644 --- a/Clockwork/Storage/SqlSearch.php +++ b/Clockwork/Storage/SqlSearch.php @@ -38,10 +38,10 @@ protected function resolveConditions() $conditions = array_filter([ $this->resolveStringCondition([ 'type' ], $this->type), - $this->resolveStringCondition([ 'uri', 'commandName', 'jobName' ], array_merge($this->uri, $this->name)), + $this->resolveStringCondition([ 'uri', 'commandName', 'jobName', 'testName' ], array_merge($this->uri, $this->name)), $this->resolveStringCondition([ 'controller' ], $this->controller), $this->resolveExactCondition([ 'method' ], $this->method), - $this->resolveNumberCondition([ 'responseStatus', 'commandExitCode', 'jobStatus' ], $this->status), + $this->resolveNumberCondition([ 'responseStatus', 'commandExitCode', 'jobStatus', 'testStatus' ], $this->status), $this->resolveNumberCondition([ 'responseDuration' ], $this->time), $this->resolveDateCondition([ 'time' ], $this->received) ]); diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index 77405bca..fbe741f6 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -384,6 +384,13 @@ protected function isQueueJobFiltered($queueJob) return in_array($queueJob, $blacklist); } + public function isTestFiltered($test) + { + $blacklist = $this->getConfig('tests.except', []); + + return in_array($test, $blacklist); + } + protected function appendServerTimingHeader($response, $request) { if (($eventsCount = $this->getConfig('server_timing', 10)) !== false) { diff --git a/Clockwork/Support/Laravel/Tests/UsesClockwork.php b/Clockwork/Support/Laravel/Tests/UsesClockwork.php index 8bd05e3c..1a632cf4 100644 --- a/Clockwork/Support/Laravel/Tests/UsesClockwork.php +++ b/Clockwork/Support/Laravel/Tests/UsesClockwork.php @@ -15,6 +15,8 @@ trait UsesClockwork protected function setUpClockwork() { $this->beforeApplicationDestroyed(function () { + if ($this->app->make('clockwork.support')->isTestFiltered($this->toString())) return; + $this->app->make('clockwork') ->resolveAsTest( $this->toString(), diff --git a/Clockwork/Support/Laravel/config/clockwork.php b/Clockwork/Support/Laravel/config/clockwork.php index 80146718..c51687f4 100644 --- a/Clockwork/Support/Laravel/config/clockwork.php +++ b/Clockwork/Support/Laravel/config/clockwork.php @@ -180,7 +180,12 @@ 'tests' => [ // Enable or disable collection of ran tests - 'collect' => env('CLOCKWORK_TESTS_COLLECT', false) + 'collect' => env('CLOCKWORK_TESTS_COLLECT', false), + + // List of tests that should not be collected + 'except' => [ + // Tests\Unit\ExampleTest::class + ] ], /* From 7dc4431a05cebca317e66c696cc4cb606701d178 Mon Sep 17 00:00:00 2001 From: its Date: Tue, 24 Dec 2019 15:27:42 +0100 Subject: [PATCH 33/75] Improved collection of test traces to skip Clockwotk and PHPunit frames, limit the collected traces to 3 frames. --- Clockwork/Support/Laravel/Tests/UsesClockwork.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Clockwork/Support/Laravel/Tests/UsesClockwork.php b/Clockwork/Support/Laravel/Tests/UsesClockwork.php index 1a632cf4..0a51cc56 100644 --- a/Clockwork/Support/Laravel/Tests/UsesClockwork.php +++ b/Clockwork/Support/Laravel/Tests/UsesClockwork.php @@ -1,6 +1,7 @@ true, 'limit' => 10 ]); $assertFrame = $trace->filter(function ($frame) { return strpos($frame->function, 'assert') === 0; })->last(); + $trace = $trace->skip(StackFilter::make()->isNotVendor([ 'itsgoingd', 'phpunit' ]))->limit(3); static::$clockwork['asserts'][] = [ 'name' => $assertFrame->function, From 81aa0809143c9b5b4d69072c2753f828844b1250 Mon Sep 17 00:00:00 2001 From: its Date: Thu, 6 Jun 2019 22:13:49 +0200 Subject: [PATCH 34/75] Added initial implementation of Twig profiler. --- Clockwork/DataSource/TwigDataSource.php | 36 +++++++++++++++ .../Support/Twig/ProfilerClockworkDumper.php | 44 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 Clockwork/DataSource/TwigDataSource.php create mode 100644 Clockwork/Support/Twig/ProfilerClockworkDumper.php diff --git a/Clockwork/DataSource/TwigDataSource.php b/Clockwork/DataSource/TwigDataSource.php new file mode 100644 index 00000000..4835fdeb --- /dev/null +++ b/Clockwork/DataSource/TwigDataSource.php @@ -0,0 +1,36 @@ +addExtension(new Twig_Extension_Profiler($this->profile = new Twig_Profiler_Profile)); + } + + /** + * Adds email data to the request + */ + public function resolve(Request $request) + { + $timeline = (new ProfilerClockworkDumper)->dump($this->profile); + + $request->viewsData = array_merge($request->viewsData, $timeline->finalize()); + + return $request; + } +} diff --git a/Clockwork/Support/Twig/ProfilerClockworkDumper.php b/Clockwork/Support/Twig/ProfilerClockworkDumper.php new file mode 100644 index 00000000..928b3965 --- /dev/null +++ b/Clockwork/Support/Twig/ProfilerClockworkDumper.php @@ -0,0 +1,44 @@ +dumpProfile($profile, $timeline); + + return $timeline; + } + + public function dumpProfile(Profile $profile, Timeline $timeline, $parent = null) + { + $id = $this->lastId++; + + if ($profile->isRoot()) { + $name = $profile->getName(); + } elseif ($profile->isTemplate()) { + $name = basename($profile->getTemplate()); + } else { + $name = basename($profile->getTemplate()) . '::' . $profile->getType() . '(' . $profile->getName() . ')'; + } + + foreach ($profile as $p) { + $this->dumpProfile($p, $timeline, $id); + } + + $timeline->addEvent( + $id, + $name, + $profile->__serialize()[3]['wt'], + $profile->__serialize()[4]['wt'], + [ 'data' => [], 'parent' => $parent ] + ); + } +} From 75f1b43c264aa423774d96d75692c25e425de7d1 Mon Sep 17 00:00:00 2001 From: its Date: Tue, 24 Dec 2019 17:02:54 +0100 Subject: [PATCH 35/75] Strip all view data prefixed with __ in LaravelDataSource. --- Clockwork/DataSource/LaravelDataSource.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Clockwork/DataSource/LaravelDataSource.php b/Clockwork/DataSource/LaravelDataSource.php index 533f8c14..ba9fbeeb 100644 --- a/Clockwork/DataSource/LaravelDataSource.php +++ b/Clockwork/DataSource/LaravelDataSource.php @@ -141,8 +141,10 @@ public function listenToEvents() } $time = microtime(true); - $data = $view->getData(); - unset($data['__env']); + + $data = array_filter($view->getData(), function ($v, $k) { + return strpos($k, '__') !== 0; + }, \ARRAY_FILTER_USE_BOTH); $this->views->addEvent( 'view ' . $view->getName(), From 3b8886fd21835c6991a7926b173343ec380e6b1f Mon Sep 17 00:00:00 2001 From: its Date: Wed, 25 Dec 2019 23:34:19 +0100 Subject: [PATCH 36/75] Added option to disable collecting of view data, collecting of views is now enabled and view data disabled by default. --- Clockwork/DataSource/LaravelDataSource.php | 20 +++++++++++-------- .../Laravel/ClockworkServiceProvider.php | 3 ++- .../Support/Laravel/config/clockwork.php | 7 +++++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Clockwork/DataSource/LaravelDataSource.php b/Clockwork/DataSource/LaravelDataSource.php index ba9fbeeb..1548ac19 100644 --- a/Clockwork/DataSource/LaravelDataSource.php +++ b/Clockwork/DataSource/LaravelDataSource.php @@ -43,7 +43,10 @@ class LaravelDataSource extends DataSource protected $collectLog = true; // Whether we should collect views - protected $collectViews = false; + protected $collectViews = true; + + // Whether we should collect view data when collecting views + protected $collectViewsData = false; // Whether we should collect routes protected $collectRoutes = false; @@ -51,11 +54,12 @@ class LaravelDataSource extends DataSource /** * Create a new data source, takes Laravel application instance as an argument */ - public function __construct(Application $app, $collectLog = true, $collectViews = false, $collectRoutes = false) + public function __construct(Application $app, $collectLog = true, $collectViews = true, $collectRoutes = false, $collectViewsData = false) { $this->app = $app; $this->collectLog = $collectLog; $this->collectViews = $collectViews; + $this->collectViewsData = $collectViewsData; $this->collectRoutes = $collectRoutes; $this->timeline = new Timeline(); @@ -140,16 +144,16 @@ public function listenToEvents() $view = $data[0]; } - $time = microtime(true); - - $data = array_filter($view->getData(), function ($v, $k) { - return strpos($k, '__') !== 0; - }, \ARRAY_FILTER_USE_BOTH); + $data = array_filter( + $this->collectViewsData ? $view->getData() : [], + function ($v, $k) { return strpos($k, '__') !== 0; }, + \ARRAY_FILTER_USE_BOTH + ); $this->views->addEvent( 'view ' . $view->getName(), 'Rendering a view', - $time, + $time = microtime(true), $time, [ 'name' => $view->getName(), 'data' => (new Serializer)->normalize($data) ] ); diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 63b75c13..467854a6 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -183,7 +183,8 @@ protected function registerDataSources() $app, $app['clockwork.support']->isFeatureEnabled('log'), $app['clockwork.support']->isFeatureEnabled('views'), - $app['clockwork.support']->isFeatureEnabled('routes') + $app['clockwork.support']->isFeatureEnabled('routes'), + $app['clockwork.support']->getConfig('features.views.collect_data') )) ->setLog($app['clockwork.log']); }); diff --git a/Clockwork/Support/Laravel/config/clockwork.php b/Clockwork/Support/Laravel/config/clockwork.php index c51687f4..800d8751 100644 --- a/Clockwork/Support/Laravel/config/clockwork.php +++ b/Clockwork/Support/Laravel/config/clockwork.php @@ -91,9 +91,12 @@ 'enabled' => env('CLOCKWORK_ROUTES_ENABLED', false) ], - // Rendered views including passed data (high performance impact with large amount of data passed to views) + // Rendered views 'views' => [ - 'enabled' => env('CLOCKWORK_VIEWS_ENABLED', false) + 'enabled' => env('CLOCKWORK_VIEWS_ENABLED', true), + + // Collect views including view data (high performance impact with a high number of views) + 'collect_data' => env('CLOCKWORK_VIEWS_COLLECT_DATA', false) ] ], From d3f9705141eb3d97177c5a761614bc4aeefab957 Mon Sep 17 00:00:00 2001 From: its Date: Thu, 26 Dec 2019 01:07:08 +0100 Subject: [PATCH 37/75] Added TwigDataSource::listenToEvents method to register the profiler extension instead of registering it in constructor. --- Clockwork/DataSource/TwigDataSource.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Clockwork/DataSource/TwigDataSource.php b/Clockwork/DataSource/TwigDataSource.php index 4835fdeb..5d82dc0c 100644 --- a/Clockwork/DataSource/TwigDataSource.php +++ b/Clockwork/DataSource/TwigDataSource.php @@ -12,6 +12,10 @@ */ class TwigDataSource extends DataSource { + // Profiled Twig environment instance + protected $twig; + + // Twig profile instance protected $profile; /** @@ -19,7 +23,13 @@ class TwigDataSource extends DataSource */ public function __construct(Twig_Environment $twig) { - $twig->addExtension(new Twig_Extension_Profiler($this->profile = new Twig_Profiler_Profile)); + $this->twig = $twig; + } + + // Register the Twig profiler extension + public function listenToEvents() + { + $this->twig->addExtension(new Twig_Extension_Profiler($this->profile = new Twig_Profiler_Profile)); } /** From 8613299d109ed5b189ac02cb0c7c4edc1a3041aa Mon Sep 17 00:00:00 2001 From: its Date: Thu, 26 Dec 2019 01:07:42 +0100 Subject: [PATCH 38/75] Fixed possible crash in twig profiler dumper and added support for memory usage. --- Clockwork/Support/Twig/ProfilerClockworkDumper.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Clockwork/Support/Twig/ProfilerClockworkDumper.php b/Clockwork/Support/Twig/ProfilerClockworkDumper.php index 928b3965..e472876a 100644 --- a/Clockwork/Support/Twig/ProfilerClockworkDumper.php +++ b/Clockwork/Support/Twig/ProfilerClockworkDumper.php @@ -33,12 +33,14 @@ public function dumpProfile(Profile $profile, Timeline $timeline, $parent = null $this->dumpProfile($p, $timeline, $id); } + $data = $profile->__serialize(); + $timeline->addEvent( $id, $name, - $profile->__serialize()[3]['wt'], - $profile->__serialize()[4]['wt'], - [ 'data' => [], 'parent' => $parent ] + isset($data[3]['wt']) ? $data[3]['wt'] : null, + isset($data[4]['wt']) ? $data[4]['wt'] : null, + [ 'data' => [], 'memoryUsage' => isset($data[4]['mu']) ? $data[4]['mu'] : null, 'parent' => $parent ] ); } } From 24ca80644627772c5e688eb5ef99ed87ee972b7c Mon Sep 17 00:00:00 2001 From: its Date: Thu, 26 Dec 2019 01:08:32 +0100 Subject: [PATCH 39/75] Split views collecting from LaravelDataSource into a new LaravelViewsDataSource. --- Clockwork/DataSource/LaravelDataSource.php | 39 +---------- .../DataSource/LaravelViewsDataSource.php | 64 +++++++++++++++++++ 2 files changed, 65 insertions(+), 38 deletions(-) create mode 100644 Clockwork/DataSource/LaravelViewsDataSource.php diff --git a/Clockwork/DataSource/LaravelDataSource.php b/Clockwork/DataSource/LaravelDataSource.php index 1548ac19..2ab736d2 100644 --- a/Clockwork/DataSource/LaravelDataSource.php +++ b/Clockwork/DataSource/LaravelDataSource.php @@ -34,36 +34,22 @@ class LaravelDataSource extends DataSource */ protected $timeline; - /** - * Timeline data structure for views data - */ - protected $views; - // Whether we should collect log messages protected $collectLog = true; - // Whether we should collect views - protected $collectViews = true; - - // Whether we should collect view data when collecting views - protected $collectViewsData = false; - // Whether we should collect routes protected $collectRoutes = false; /** * Create a new data source, takes Laravel application instance as an argument */ - public function __construct(Application $app, $collectLog = true, $collectViews = true, $collectRoutes = false, $collectViewsData = false) + public function __construct(Application $app, $collectLog = true, $collectRoutes = false) { $this->app = $app; $this->collectLog = $collectLog; - $this->collectViews = $collectViews; - $this->collectViewsData = $collectViewsData; $this->collectRoutes = $collectRoutes; $this->timeline = new Timeline(); - $this->views = new Timeline(); } /** @@ -84,7 +70,6 @@ public function resolve(Request $request) $this->resolveAuthenticatedUser($request); $request->timelineData = $this->timeline->finalize($request->time); - $request->viewsData = $this->views->finalize(); return $request; } @@ -137,28 +122,6 @@ public function listenToEvents() }); } } - - if ($this->collectViews) { - $this->app['events']->listen('composing:*', function ($view, $data = null) { - if (is_string($view) && is_array($data)) { // Laravel 5.4 wildcard event - $view = $data[0]; - } - - $data = array_filter( - $this->collectViewsData ? $view->getData() : [], - function ($v, $k) { return strpos($k, '__') !== 0; }, - \ARRAY_FILTER_USE_BOTH - ); - - $this->views->addEvent( - 'view ' . $view->getName(), - 'Rendering a view', - $time = microtime(true), - $time, - [ 'name' => $view->getName(), 'data' => (new Serializer)->normalize($data) ] - ); - }); - } } /** diff --git a/Clockwork/DataSource/LaravelViewsDataSource.php b/Clockwork/DataSource/LaravelViewsDataSource.php new file mode 100644 index 00000000..5edcec79 --- /dev/null +++ b/Clockwork/DataSource/LaravelViewsDataSource.php @@ -0,0 +1,64 @@ +dispatcher = $dispatcher; + $this->collectData = $collectData; + + $this->views = new Timeline; + } + + // Adds rendered views to the request + public function resolve(Request $request) + { + $request->viewsData = array_merge($request->viewsData, $this->views->finalize()); + + return $request; + } + + // Start listening to the events + public function listenToEvents() + { + $this->dispatcher->listen('composing:*', function ($view, $data = null) { + if (is_string($view) && is_array($data)) { // Laravel 5.4 wildcard event + $view = $data[0]; + } + + $data = array_filter( + $this->collectData ? $view->getData() : [], + function ($v, $k) { return strpos($k, '__') !== 0; }, + \ARRAY_FILTER_USE_BOTH + ); + + $this->views->addEvent( + 'view ' . $view->getName(), + 'Rendering a view', + $time = microtime(true), + $time, + [ 'name' => $view->getName(), 'data' => (new Serializer)->normalize($data) ] + ); + }); + } +} From f763918ad3a91c45feeb7a7e7343e107eba195fd Mon Sep 17 00:00:00 2001 From: its Date: Thu, 26 Dec 2019 01:09:41 +0100 Subject: [PATCH 40/75] Updated Laravel service provider for the new views data source, added features.views.use_twig_profiler option to use twig data source over the default one (disabled by default). --- .../Laravel/ClockworkServiceProvider.php | 28 ++++++++++++++++--- .../Support/Laravel/config/clockwork.php | 6 +++- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 467854a6..7af7c26d 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -8,8 +8,11 @@ use Clockwork\DataSource\LaravelEventsDataSource; use Clockwork\DataSource\LaravelRedisDataSource; use Clockwork\DataSource\LaravelQueueDataSource; +use Clockwork\DataSource\LaravelTwigDataSource; +use Clockwork\DataSource\LaravelViewsDataSource; use Clockwork\DataSource\PhpDataSource; use Clockwork\DataSource\SwiftDataSource; +use Clockwork\DataSource\TwigDataSource; use Clockwork\DataSource\XdebugDataSource; use Clockwork\Helpers\StackFilter; use Clockwork\Request\Log; @@ -54,6 +57,10 @@ protected function listenToEvents() $this->app[RedisManager::class]->enableEvents(); $this->app['clockwork.redis']->listenToEvents(); } + if ($support->isFeatureEnabled('views')) { + $support->getConfig('features.views.use_twig_profiler', false) + ? $this->app['clockwork.twig']->listenToEvents() : $this->app['clockwork.views']->listenToEvents(); + } if ($support->isCollectingCommands()) $support->collectCommands(); if ($support->isCollectingQueueJobs()) $support->collectQueueJobs(); @@ -87,6 +94,11 @@ public function register() if ($support->isFeatureEnabled('events')) $clockwork->addDataSource($app['clockwork.events']); if ($support->isFeatureEnabled('emails')) $clockwork->addDataSource($app['clockwork.swift']); if ($support->isFeatureAvailable('xdebug')) $clockwork->addDataSource($app['clockwork.xdebug']); + if ($support->isFeatureEnabled('views')) { + $clockwork->addDataSource( + $support->getConfig('features.views.use_twig_profiler', false) ? $app['clockwork.twig'] : $app['clockwork.views'] + ); + } return $clockwork; }); @@ -181,10 +193,7 @@ protected function registerDataSources() $this->app->singleton('clockwork.laravel', function ($app) { return (new LaravelDataSource( $app, - $app['clockwork.support']->isFeatureEnabled('log'), - $app['clockwork.support']->isFeatureEnabled('views'), - $app['clockwork.support']->isFeatureEnabled('routes'), - $app['clockwork.support']->getConfig('features.views.collect_data') + $app['clockwork.support']->isFeatureEnabled('routes') )) ->setLog($app['clockwork.log']); }); @@ -215,6 +224,17 @@ protected function registerDataSources() return new SwiftDataSource($app['mailer']->getSwiftMailer()); }); + $this->app->singleton('clockwork.twig', function ($app) { + return new TwigDataSource($app['twig']); + }); + + $this->app->singleton('clockwork.views', function ($app) { + return new LaravelViewsDataSource( + $app['events'], + $app['clockwork.support']->getConfig('features.views.collect_data') + ); + }); + $this->app->singleton('clockwork.xdebug', function ($app) { return new XdebugDataSource; }); diff --git a/Clockwork/Support/Laravel/config/clockwork.php b/Clockwork/Support/Laravel/config/clockwork.php index 800d8751..84693af7 100644 --- a/Clockwork/Support/Laravel/config/clockwork.php +++ b/Clockwork/Support/Laravel/config/clockwork.php @@ -96,7 +96,11 @@ 'enabled' => env('CLOCKWORK_VIEWS_ENABLED', true), // Collect views including view data (high performance impact with a high number of views) - 'collect_data' => env('CLOCKWORK_VIEWS_COLLECT_DATA', false) + 'collect_data' => env('CLOCKWORK_VIEWS_COLLECT_DATA', false), + + // Use Twig profiler instead of Laravel events for apps using laravel-twigbridge (more precise, but does + // not support collecting view data) + 'use_twig_profiler' => env('CLOCKWORK_VIEWS_USE_TWIG_PROFILER', false) ] ], From 63728e2181e052946f0e3089cdda5d5d071a1c8f Mon Sep 17 00:00:00 2001 From: its Date: Thu, 26 Dec 2019 01:54:05 +0100 Subject: [PATCH 41/75] Bump version to 4.1-dev. --- Clockwork/Clockwork.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Clockwork/Clockwork.php b/Clockwork/Clockwork.php index e154d9d1..76e9c2d1 100644 --- a/Clockwork/Clockwork.php +++ b/Clockwork/Clockwork.php @@ -21,7 +21,7 @@ class Clockwork implements LoggerInterface /** * Clockwork version */ - const VERSION = '4.0.13'; + const VERSION = '4.1-dev'; /** * Array of data sources, these objects provide data to be stored in a request object From 89bf17dba6ec57b1f530ffa765e7b962f77e2e9b Mon Sep 17 00:00:00 2001 From: its Date: Thu, 26 Dec 2019 13:53:10 +0100 Subject: [PATCH 42/75] Added support for test-type requests in sql storage. --- Clockwork/Storage/SqlStorage.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Clockwork/Storage/SqlStorage.php b/Clockwork/Storage/SqlStorage.php index bf23af8d..75172393 100644 --- a/Clockwork/Storage/SqlStorage.php +++ b/Clockwork/Storage/SqlStorage.php @@ -81,6 +81,10 @@ class SqlStorage extends Storage 'jobQueue' => 'TEXT NULL', 'jobConnection' => 'TEXT NULL', 'jobOptions' => 'TEXT NULL', + 'testName' => 'TEXT NULL', + 'testStatus' => 'TEXT NULL', + 'testStatusMessage' => 'TEXT NULL', + 'testAsserts' => 'TEXT NULL', 'parent' => 'TEXT NULL' ]; @@ -89,7 +93,7 @@ class SqlStorage extends Storage 'headers', 'getData', 'postData', 'requestData', 'sessionData', 'authenticatedUser', 'cookies', 'middleware', 'databaseQueries', 'cacheQueries', 'redisCommands', 'queueJobs', 'timelineData', 'log', 'events', 'routes', 'emailsData', 'viewsData', 'userData', 'subrequests', 'xdebug', 'commandArguments', 'commandArgumentsDefaults', - 'commandOptions', 'commandOptionsDefaults', 'jobPayload', 'jobOptions', 'parent' + 'commandOptions', 'commandOptionsDefaults', 'jobPayload', 'jobOptions', 'testAsserts', 'parent' ]; // Return a new storage, takes PDO object or DSN and optionally a table name and database credentials as arguments From c3d2c0ee63d70809d33975862240596bbc34482a Mon Sep 17 00:00:00 2001 From: its Date: Thu, 26 Dec 2019 22:19:28 +0100 Subject: [PATCH 43/75] Added time to database queries, cahe queries, dispatched jobs and redis commands. --- Clockwork/DataSource/DBALDataSource.php | 7 ++++--- Clockwork/DataSource/EloquentDataSource.php | 1 + Clockwork/DataSource/LaravelCacheDataSource.php | 2 +- Clockwork/DataSource/LaravelQueueDataSource.php | 3 ++- Clockwork/DataSource/LaravelRedisDataSource.php | 3 ++- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Clockwork/DataSource/DBALDataSource.php b/Clockwork/DataSource/DBALDataSource.php index fb31cd59..ce2e3150 100644 --- a/Clockwork/DataSource/DBALDataSource.php +++ b/Clockwork/DataSource/DBALDataSource.php @@ -180,7 +180,7 @@ public function stopQuery() { $duration = (microtime(true) - $this->start) * 1000; - $this->registerQuery($this->query['sql'], $this->query['params'], $duration, $this->connection->getDatabase()); + $this->registerQuery($this->query['sql'], $this->query['params'], $duration, $this->connection->getDatabase(), $this->start); if ($this->timeline !== null) { $this->timeline->endEvent(self::EVENT_NAME); @@ -190,13 +190,14 @@ public function stopQuery() /** * Log the query into the internal store */ - public function registerQuery($query, $bindings, $duration, $connection) + public function registerQuery($query, $bindings, $duration, $connection, $time) { $query = [ 'query' => $query, 'bindings' => $bindings, 'duration' => $duration, - 'connection' => $connection + 'connection' => $connection, + 'time' => $time ]; if ($this->passesFilters([ $query ])) { diff --git a/Clockwork/DataSource/EloquentDataSource.php b/Clockwork/DataSource/EloquentDataSource.php index dec59a9e..0a605b36 100755 --- a/Clockwork/DataSource/EloquentDataSource.php +++ b/Clockwork/DataSource/EloquentDataSource.php @@ -96,6 +96,7 @@ public function registerQuery($event) 'query' => $this->createRunnableQuery($event->sql, $event->bindings, $event->connectionName), 'duration' => $event->time, 'connection' => $event->connectionName, + 'time' => microtime(true) - $event->time / 1000, 'trace' => $shortTrace = (new Serializer)->trace($trace), 'file' => isset($shortTrace[0]) ? $shortTrace[0]['file'] : null, 'line' => isset($shortTrace[0]) ? $shortTrace[0]['line'] : null, diff --git a/Clockwork/DataSource/LaravelCacheDataSource.php b/Clockwork/DataSource/LaravelCacheDataSource.php index 8a077347..e85c3dca 100644 --- a/Clockwork/DataSource/LaravelCacheDataSource.php +++ b/Clockwork/DataSource/LaravelCacheDataSource.php @@ -115,7 +115,7 @@ public function registerQuery(array $query) 'type' => $query['type'], 'key' => $query['key'], 'value' => isset($query['value']) ? (new Serializer)->normalize($query['value']) : null, - 'time' => null, + 'time' => microtime(true), 'connection' => null, 'trace' => $shortTrace = (new Serializer)->trace($trace), 'file' => isset($shortTrace[0]) ? $shortTrace[0]['file'] : null, diff --git a/Clockwork/DataSource/LaravelQueueDataSource.php b/Clockwork/DataSource/LaravelQueueDataSource.php index e4d3e73c..c0986df5 100644 --- a/Clockwork/DataSource/LaravelQueueDataSource.php +++ b/Clockwork/DataSource/LaravelQueueDataSource.php @@ -45,7 +45,8 @@ public function listenToEvents() 'name' => $payload['displayName'], 'data' => isset($payload['data']['command']) ? $payload['data']['command'] : null, 'maxTries' => $payload['maxTries'], - 'timeout' => $payload['timeout'] + 'timeout' => $payload['timeout'], + 'time' => microtime(true) ]); return [ 'clockwork_id' => $id, 'clockwork_parent_id' => $this->currentRequestId ]; diff --git a/Clockwork/DataSource/LaravelRedisDataSource.php b/Clockwork/DataSource/LaravelRedisDataSource.php index 3037db37..26c2fded 100644 --- a/Clockwork/DataSource/LaravelRedisDataSource.php +++ b/Clockwork/DataSource/LaravelRedisDataSource.php @@ -49,7 +49,8 @@ public function listenToEvents() 'command' => $event->command, 'parameters' => $event->parameters, 'duration' => $event->time, - 'connection' => $event->connectionName + 'connection' => $event->connectionName, + 'time' => microtime(true) - $event->time / 1000 ]); }); } From c2364dfdb057b687cad9338d4a66c45a9375cab9 Mon Sep 17 00:00:00 2001 From: its Date: Fri, 27 Dec 2019 18:19:41 +0100 Subject: [PATCH 44/75] Updated changelog. --- CHANGELOG.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 676fd9bd..3baa0aab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,32 @@ +4.1 (unreleased) + +- added support for command type requests with command specific metadata (commandName, commandArguments, commandArgumentsDefaults, commandOptions, commandOptionsDefaults, commandExitCode, commandOutput) +- added support for collecting executed artisan commands in Laravel integration +- added support for queue-job type requests with queue-job specific metadata (jobName, jobDescription, jobStatus, jobPayload, jobQueue, jobConnection, jobOptions) +- added support for collecting executed queue-jobs in Laravel integration (also supports Laravel Horizon) +- added support for test type requests with test specific metadata (testName, testStatus, testStatusMessage, testAsserts) +- added support for collecting test runs in Laravel integration using PHPunit +- added support for disabling collection of view data when collecting rendered views (new default is to collect views without data) +- added Twig data source using the built-in Twig profiler to collect more precise Twig profiling data +- added support for setting parent requests on requests +- improved collecting of database queries, cache queries, dispatched queue jobs and redis commands to also collect time +- improved the data sources filters api to allow multiple filter types +- improved collecting of Laravel views to use a separate data source +- improved Eloquent data source to have an additional "early" filter applied before the query is added to query counts +- improved Eloquent data source now passes raw stack trace as second argument to filters +- improved Laravel data source to work when response is not provided +- improved Laravel events data source to include Laravel namespace in the default ignored events +- improved Laravel views data source to strip view data prefixed with __ +- improved PHP data source to not set request time for cli commands +- improved Request class now has pre-populated request time on creation +- improved StackTrace helper with limit option, last method, fixed filter output keys + +*BREAKING* + +- DataSourceInterface::reset method was added, default empty implementation is provided in the base DataSource class +- LaravelDataSource constructor arguments changed to reflect removing the views collecting support +- multiple new settings were added to the Laravel config file + 4.0.13 - fixed stack traces processing not handling call_user_func frames properly leading to wrong traces (reported by marcus-at-localhost, thanks!) From de2251600cdb0c78db0910ca3691b44584559e6a Mon Sep 17 00:00:00 2001 From: its Date: Sat, 28 Dec 2019 23:38:52 +0100 Subject: [PATCH 45/75] Updated to Clockwork App 4.1. --- CHANGELOG.md | 1 + Clockwork/Web/public/css/app.aa9687c7.css | 1 + Clockwork/Web/public/css/app.c0baaa16.css | 1 - .../Web/public/img/appearance-auto-icon.png | Bin 0 -> 964 bytes .../Web/public/img/appearance-dark-icon.png | Bin 0 -> 975 bytes .../Web/public/img/appearance-light-icon.png | Bin 0 -> 918 bytes .../img/whats-new/4.1/commands-profiling.png | Bin 0 -> 173744 bytes .../img/whats-new/4.1/extended-timeline.png | Bin 0 -> 311700 bytes .../img/whats-new/4.1/new-settings-modal.png | Bin 0 -> 409501 bytes .../whats-new/4.1/queue-jobs-profiling.png | Bin 0 -> 243549 bytes .../img/whats-new/4.1/tests-profiling.png | Bin 0 -> 305160 bytes Clockwork/Web/public/index.html | 2 +- Clockwork/Web/public/js/app.de9a987d.js | 2 + Clockwork/Web/public/js/app.fe8ebfde.js | 2 - .../Web/public/js/chunk-vendors.b6cbf595.js | 62 +++++++++ .../Web/public/js/chunk-vendors.de559e1a.js | 118 ------------------ ...nifest.32277cb2271c7e2595c1e59f9a9038ed.js | 50 ++++++++ ...nifest.60580a4a01df21af4b92012884177b63.js | 18 --- Clockwork/Web/public/service-worker.js | 2 +- 19 files changed, 118 insertions(+), 141 deletions(-) create mode 100644 Clockwork/Web/public/css/app.aa9687c7.css delete mode 100644 Clockwork/Web/public/css/app.c0baaa16.css create mode 100644 Clockwork/Web/public/img/appearance-auto-icon.png create mode 100644 Clockwork/Web/public/img/appearance-dark-icon.png create mode 100644 Clockwork/Web/public/img/appearance-light-icon.png create mode 100644 Clockwork/Web/public/img/whats-new/4.1/commands-profiling.png create mode 100644 Clockwork/Web/public/img/whats-new/4.1/extended-timeline.png create mode 100644 Clockwork/Web/public/img/whats-new/4.1/new-settings-modal.png create mode 100644 Clockwork/Web/public/img/whats-new/4.1/queue-jobs-profiling.png create mode 100644 Clockwork/Web/public/img/whats-new/4.1/tests-profiling.png create mode 100644 Clockwork/Web/public/js/app.de9a987d.js delete mode 100644 Clockwork/Web/public/js/app.fe8ebfde.js create mode 100644 Clockwork/Web/public/js/chunk-vendors.b6cbf595.js delete mode 100644 Clockwork/Web/public/js/chunk-vendors.de559e1a.js create mode 100644 Clockwork/Web/public/precache-manifest.32277cb2271c7e2595c1e59f9a9038ed.js delete mode 100644 Clockwork/Web/public/precache-manifest.60580a4a01df21af4b92012884177b63.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 3baa0aab..e83b5277 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - improved PHP data source to not set request time for cli commands - improved Request class now has pre-populated request time on creation - improved StackTrace helper with limit option, last method, fixed filter output keys +- updated to Clockwork App 4.1 *BREAKING* diff --git a/Clockwork/Web/public/css/app.aa9687c7.css b/Clockwork/Web/public/css/app.aa9687c7.css new file mode 100644 index 00000000..84ff3a05 --- /dev/null +++ b/Clockwork/Web/public/css/app.aa9687c7.css @@ -0,0 +1 @@ +.exception-section{border-bottom:1px solid #d1d1d1}.application.dark .exception-section{border-bottom:1px solid #363636}.exception-section.compact .exception-message h3{display:inline;padding-right:4px}.exception-section .exception-info{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#ffebeb;color:#c51f24;display:-webkit-box;display:-ms-flexbox;display:flex;padding:6px 10px}.exception-section .exception-info:nth-child(2n){background:#ffe0e0}.exception-section .exception-info:first-child{padding-top:12px}.exception-section .exception-info:last-child{padding-bottom:12px}.application.dark .exception-section .exception-info{background:#380000;color:#ed797a}.application.dark .exception-section .exception-info:nth-child(2n){background:#2e0000}.exception-section .exception-info h3{border-bottom:0;font-size:14px;margin:0 0 5px}.exception-section .exception-info .exception-message{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;line-height:1.5}.exception-section .exception-info .exception-previous,.exception-section .exception-info .exception-trace>a{color:#c51f24;font-size:12px;margin:0 4px}.application.dark .exception-section .exception-info .exception-previous,.application.dark .exception-section .exception-info .exception-trace>a{color:#ed797a}.exception-section .exception-info .exception-previous{margin-right:4px;text-decoration:none}.exception-section .exception-info .exception-trace{display:inline-block}.parent-request{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;font-weight:600;padding:12px 10px}.application.dark .parent-request{border-bottom:1px solid #363636}.parent-request.compact .parent-title{padding-right:4px}.parent-request.compact .parent-name,.parent-request.compact .parent-title{display:inline}.parent-request .parent-title{font-size:11px;margin-bottom:3px}.parent-request .parent-method{color:grey;font-size:90%;font-weight:400;margin-right:2px}.application.dark .parent-request .parent-method{color:#767676}.parent-request .parent-uri{font-weight:400}.parent-request .type-text{background:#cbdeec;border-radius:3px;color:#365063;font-size:80%;margin-right:2px;padding:1px 3px;vertical-align:1px}.application.dark .parent-request .type-text{background:#002e52;color:#6ebef7}.parent-request a{color:#258cdb;font-weight:400;text-decoration:none}.application.dark .parent-request a{color:#f27e02}.parent-request .parent-close{margin-left:auto}.messages-overlay .parent-request{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;font-weight:600;padding:10px}.messages-overlay .parent-request .parent-method{color:grey;font-size:90%;font-weight:400;margin-right:2px}.application.dark .messages-overlay .parent-request .parent-method{color:#767676}.messages-overlay .parent-request .parent-uri{font-weight:400}.messages-overlay .parent-request a{color:#258cdb;font-weight:400;text-decoration:none}.application.dark .messages-overlay .parent-request a{color:#f27e02}.messages-overlay .parent-request .parent-close{margin-left:auto}.messages-overlay .exception .exception-info{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#ffebeb;color:#c51f24;display:-webkit-box;display:-ms-flexbox;display:flex;padding:10px}.messages-overlay .exception .exception-info:nth-child(2n){background:#ffe0e0}.application.dark .messages-overlay .exception .exception-info{background:#380000;color:#ed797a}.application.dark .messages-overlay .exception .exception-info:nth-child(2n){background:#2e0000}.messages-overlay .exception .exception-info h3{border-bottom:0;display:inline;font-size:12px}.messages-overlay .exception .exception-info .exception-message{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px}.messages-overlay .exception .exception-info .exception-previous,.messages-overlay .exception .exception-info .exception-trace>a{color:#c51f24;font-size:12px;margin:0 4px}.application.dark .messages-overlay .exception .exception-info .exception-previous,.application.dark .messages-overlay .exception .exception-info .exception-trace>a{color:#ed797a}.messages-overlay .exception .exception-info .exception-previous{margin-right:4px;text-decoration:none}.messages-overlay .exception .exception-info .exception-trace{display:inline-block}.messages-overlay .update-notification{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#e9f3fb;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:110%;padding:10px}.application.dark .messages-overlay .update-notification{background:#643302}.messages-overlay .update-notification a{color:#258cdb;text-decoration:none}.application.dark .messages-overlay .update-notification a{color:#f27e02}.messages-overlay .update-notification strong{font-weight:500}.messages-overlay .update-notification .updateNotification-close{margin-left:auto}.settings-modal{background:#fff;border:1px solid #d1d1d1;border-radius:5px;-webkit-box-shadow:0 0 4px #e5e5e5;box-shadow:0 0 4px #e5e5e5;font-size:13px;left:5%;max-width:600px;padding:32px 35px 1px;position:absolute;text-align:left;top:0;width:90%;z-index:300}.application.dark .settings-modal{background:#1f1f1f;border:1px solid #404040;-webkit-box-shadow:0 0 4px #292929;box-shadow:0 0 4px #292929}.settings-modal a{padding:0}.settings-modal .controls-group{display:-webkit-box;display:-ms-flexbox;display:flex;margin:22px 0}.settings-modal .controls-group .controls{-webkit-box-flex:1;-ms-flex:1;flex:1}.settings-modal .help-text{font-size:90%;margin-top:8px}.settings-modal label{margin-right:10px;margin-top:5px;text-align:right;width:25%}.settings-modal input,.settings-modal select{border:1px solid #ccc;font-size:13px;height:26px}.application.dark .settings-modal input,.application.dark .settings-modal select{background:#5d5c5b;border-color:#7c7a78;color:#e9e9e9}.application.dark .settings-modal input::-webkit-input-placeholder,.application.dark .settings-modal select::-webkit-input-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input::-moz-placeholder,.application.dark .settings-modal select::-moz-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input:-ms-input-placeholder,.application.dark .settings-modal select:-ms-input-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input::-ms-input-placeholder,.application.dark .settings-modal select::-ms-input-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input::placeholder,.application.dark .settings-modal select::placeholder{color:#a7a6a5;opacity:1}.settings-modal input[type=checkbox],.settings-modal select[type=checkbox]{height:auto;margin-right:3px}.application.dark .settings-modal select{background:#6a6866;border:1px solid #7c7a78;border-radius:5px}.settings-modal .controls-input-vgroup input{border:1px solid #ccc;padding:4px 8px;width:100%}.settings-modal .controls-input-vgroup input:first-child{border-radius:4px 4px 0 0}.settings-modal .controls-input-vgroup input:last-child{border-radius:0 0 4px 4px;margin-top:-2px}.settings-modal .controls-checkbox{display:inline-block;margin-bottom:5px;text-align:left;width:100%}.settings-modal .appearance-controls{display:-webkit-box;display:-ms-flexbox;display:flex}.settings-modal .appearance-controls .option{-webkit-box-flex:0;-ms-flex:0;flex:0;margin-right:12px;text-align:center}.settings-modal .appearance-controls .option.selected img{border:2px solid #258cdb;-webkit-box-shadow:0 0 2px #258cdb;box-shadow:0 0 2px #258cdb}.application.dark .settings-modal .appearance-controls .option.selected img{border:2px solid #f27e02;-webkit-box-shadow:0 0 2px #f27e02;box-shadow:0 0 2px #f27e02}.settings-modal .appearance-controls .option img{border:1px solid #ccc;border-radius:4px;height:50px;width:75px}.application.dark .settings-modal .appearance-controls .option img{border:1px solid #363636}.settings-enter-active,.settings-leave-active{-webkit-transition:top .33s;transition:top .33s}.settings-enter,.settings-leave-to{top:-400px}.details-table .pagination-controls{background:transparent!important}.details-table .pagination-controls td{text-align:center}.details-table .pagination-controls a{color:#258cdb;text-decoration:none}.application.dark .details-table .pagination-controls a{color:#f27e02}.counter.database-slow-query{border-color:#d7a175!important}.application.dark .counter.database-slow-query{border-color:#d0b78b!important}.database-slow-query{background:#fffae2;color:#a85919}.database-slow-query:nth-child(2n){background:#fff5c2!important}.database-slow-query .database-query-path>a{color:#d7a175!important}.application.dark .database-slow-query{background:#382f00;color:#fad89f}.application.dark .database-slow-query:nth-child(2n){background:#2e2600!important}.application.dark .database-slow-query .database-query-path>a{color:#d0b78b!important}.command-output{background:#333;border-radius:6px;font-family:Menlo,monospace;overflow:auto;padding:16px 12px;white-space:pre}.application.dark .command-output{background:#111}.performance-log{margin-top:25px}.performance-log table thead .count{background:#c28451;color:#fffae2;border-radius:8px;margin-left:2px;padding:0 8px}.application.dark .performance-log table thead .count{background:#fad89f;color:#382f00}.performance-log table tr{background:transparent!important;color:#a85919}.performance-log table tr:nth-child(2n){background:#fffae2!important}.performance-log table tr .log-message-path>a{color:#d7a175!important}.application.dark .performance-log table tr{color:#fad89f}.application.dark .performance-log table tr:nth-child(2n){background:#382f00!important}.application.dark .performance-log table tr .log-message-path>a{color:#d0b78b!important}.performance-log table tr:first-child td{border-top:1px solid #d7a175!important}.application.dark .performance-log table tr:first-child td{border-top:1px solid #d0b78b!important}.performance-log table tr .toggle-filter{color:#d7a175!important}.application.dark .performance-log table tr .toggle-filter{color:#d0b78b!important}.performance-log table tr.filter{background:#fffae2!important}.application.dark .performance-log table tr.filter{background:#382f00!important}.performance-log table tr.filter td{border-top:1px solid #d7a175!important}.application.dark .performance-log table tr.filter td{border-top:1px solid #d0b78b!important}.performance-log table tr.filter td .example,.performance-log table tr.filter td .fa-search,.performance-log table tr.filter td input{color:#d7a175!important}.application.dark .performance-log table tr.filter td .example,.application.dark .performance-log table tr.filter td .fa-search,.application.dark .performance-log table tr.filter td input{color:#d0b78b!important}.timeline-item-tags{font-size:85%;opacity:.77}.job-options[data-v-dea2de12]{margin:2px 0;width:100%}.job-options span[data-v-dea2de12]{display:block;white-space:nowrap}.job-status-text[data-v-dea2de12]{background:#fffae2;border-radius:8px;color:#a85919;font-size:9px;padding:2px 6px;text-transform:uppercase}.application.dark .job-status-text[data-v-dea2de12]{background:#382f00;color:#fad89f}.job-status-text.is-success[data-v-dea2de12]{background:#e3eccb;color:#586336}.application.dark .job-status-text.is-success[data-v-dea2de12]{background:#293800;color:#e3fa9e}.job-status-text.is-error[data-v-dea2de12]{background:#ffebeb;color:#c51f24}.application.dark .job-status-text.is-error[data-v-dea2de12]{background:#380000;color:#ed797a}.views-view-name{margin-bottom:3px}.split-view-details{overflow:hidden}.sidebar-section .section-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:700;padding:5px 10px}.application.dark .sidebar-section .section-header{border-bottom:1px solid #363636}.sidebar-section .section-header .section-title{cursor:default}.sidebar-section .section-header .toggle-filter{display:none;margin-left:auto}.sidebar-section .section-header:hover .toggle-filter{display:block}.sidebar-section table{border-bottom:1px solid #d1d1d1;font-size:11px;margin-bottom:0}.application.dark .sidebar-section table{border-bottom:1px solid #363636}.sidebar-section table thead th:last-child{padding-right:20px;position:relative}.sidebar-section table thead .fa-angle-down,.sidebar-section table thead .fa-angle-up{font-weight:700;margin-left:4px}.sidebar-section table thead .toggle-filter{position:absolute;right:4px;top:4px;visibility:hidden}.sidebar-section table thead:hover .toggle-filter{visibility:visible}.application.dark .sidebar-section table tr:first-child td,.sidebar-section table tr:first-child td{border-top:0}.sidebar-section table tr:nth-child(2n){background:#f5f5f5}.application.dark .sidebar-section table tr:nth-child(2n){background:#1b1b1b}.sidebar-section table th{font-size:12px;font-weight:600;padding:4px 2px;white-space:nowrap}.sidebar-section table td{padding:8px 10px;vertical-align:top}.sidebar-section table td .key{font-size:11px;font-weight:600;margin-bottom:3px;white-space:nowrap}.sidebar-section table td .value{word-break:break-all}.sidebar-section table .filter{background:none!important}.sidebar-section table .filter td{border-bottom:1px solid #d1d1d1;border-top:0;padding:2px 10px}.application.dark .sidebar-section table .filter td{border-bottom:1px solid #363636;border-top:0}.sidebar-section table .filter label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.sidebar-section table .filter .fa-search{color:#696969;margin:0 4px}.sidebar-section table .filter input{background:transparent;border:none;width:100%}.sidebar-section table .filter input:focus{outline:none}.sidebar-section table .filter input::-webkit-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::-moz-placeholder{color:#a9a9a9}.sidebar-section table .filter input:-ms-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::-ms-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::placeholder{color:#a9a9a9}.application.dark .sidebar-section table .filter input::-webkit-input-placeholder{color:#777}.application.dark .sidebar-section table .filter input::-moz-placeholder{color:#777}.application.dark .sidebar-section table .filter input:-ms-input-placeholder{color:#777}.application.dark .sidebar-section table .filter input::-ms-input-placeholder{color:#777}.application.dark .sidebar-section table .filter input::placeholder{color:#777}.application.dark .sidebar-section table .filter input{color:#b2b2b2}.sidebar-section table .filter .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}.application.dark .sidebar-section table .filter .example{color:#777}.command-tab{background:#fff}.application.dark .command-tab{background:#1f1f1f}.queue-job-tab{background:#fff}.application.dark .queue-job-tab{background:#1f1f1f}.queue-job-tab .data-value{border-bottom:1px solid #d1d1d1;padding:8px 10px}.application.dark .queue-job-tab .data-value{border-bottom:1px solid #363636}.request-tab{background:#fff}.application.dark .request-tab{background:#1f1f1f}.request-tab .data-raw td{white-space:pre}.request-tab .session-user{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:110%;padding:8px 10px}.application.dark .request-tab .session-user{border-bottom:1px solid #363636}.request-tab .session-user .fa-user{color:grey;font-size:110%;margin-right:8px}.request-tab .session-user .name{margin-right:6px}.request-tab .session-user .dimmed{color:grey;font-size:90%}.application.dark .request-tab .session-user .dimmed{color:#767676}.request-tab .session-user .session-user-details{margin-left:auto}.test-tab .test-status-message{border-bottom:1px solid #d1d1d1;background:#ffebeb;color:#c51f24;padding:12px 10px;font-size:13px}.application.dark .test-tab .test-status-message{border-bottom:1px solid #363636}.test-tab .test-assert .assert-name{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.test-tab .test-assert .assert-name .assert-name-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;font-size:11px;font-weight:600;margin-bottom:3px;max-width:100%;white-space:nowrap;margin-bottom:5px;color:#657e1b}.application.dark .test-tab .test-assert .assert-name .assert-name-content{color:#d0ed78}.test-tab .test-assert .assert-name .assert-name-content.assert-failed{color:#c51f24}.application.dark .test-tab .test-assert .assert-name .assert-name-content.assert-failed{color:#ed797a}.test-tab .test-assert .assert-name .assert-name-trace{-webkit-box-flex:0;-ms-flex:0;flex:0}.test-tab .test-assert .pretty-jason{font-size:11px}.request-sidebar{background:#fafafa;border-top:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;height:25%}.application.dark .request-sidebar{background:#1b1b1b;border-top:1px solid #363636}.request-sidebar.large{height:33%}@media screen and (min-width:900px){.request-sidebar{border-left:1px solid #d1d1d1;border-top:0;height:100%;width:300px}.application.dark .request-sidebar{border-left:1px solid #363636;border-top:0}.request-sidebar.large{height:100%;width:400px}}@media screen and (min-width:1100px){.request-sidebar{width:360px}.request-sidebar.large{width:460px}}.request-sidebar .sidebar-header{background:#fff;border-bottom:1px solid #ccc;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;font-size:12px;height:31px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;line-height:31px;width:100%}.application.dark .request-sidebar .sidebar-header{background:#1f1f1f;border-bottom:1px solid #363636}.request-sidebar .sidebar-header .sidebar-title{padding:0 10px}.request-sidebar .sidebar-header .sidebar-actions{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;padding:0 5px}.request-sidebar .sidebar-header .sidebar-actions a{padding:0 5px}.request-sidebar .sidebar-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.request-sidebar .sidebar-date,.request-sidebar .sidebar-id{margin:10px 0;text-align:center}.request-sidebar .sidebar-id{color:grey}.application.dark .request-sidebar .sidebar-id{color:#767676}.split-view-requests{border-bottom:1px solid #d1d1d1;cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;height:25%;width:100%}.application.dark .split-view-requests{border-bottom:1px solid #363636}.split-view-requests.large .notifications-count{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.split-view-requests.large .notifications-count .errors-count{margin-left:5px}.split-view-requests.large .notifications-count .errors-count svg{margin-right:0}@media screen and (min-width:900px){.split-view-requests{border-bottom:0;border-right:1px solid #d1d1d1;height:100%;width:300px}.application.dark .split-view-requests{border-right:1px solid #363636}.split-view-requests.large{width:400px}}@media screen and (min-width:1100px){.split-view-requests{width:320px}.split-view-requests.large{width:420px}}.split-view-requests table{line-height:1.4;table-layout:fixed}.split-view-requests tr{height:28px}.split-view-requests tr:first-child td{border-top:1px solid #d1d1d1}.application.dark .split-view-requests tr:first-child td{border-top:1px solid #363636}.split-view-requests tr:nth-child(2n):not(.filler){background:#f3f3f3}.application.dark .split-view-requests tr:nth-child(2n):not(.filler){background:#181818}.split-view-requests tr:nth-child(2n):not(.filler) .notifications-count{background:hsla(0,0%,95.3%,.8)}.application.dark .split-view-requests tr:nth-child(2n):not(.filler) .notifications-count{background:rgba(27,27,27,.8)}.split-view-requests tr.selected td{background:#2786f3!important;color:#fff}.application.dark .split-view-requests tr.selected td{background:#f27e02!important}.application.dark .split-view-requests tr.selected small,.split-view-requests tr.selected small{color:#fff}.split-view-requests tr.selected .notifications-count{background:#2786f3!important}.application.dark .split-view-requests tr.selected .notifications-count .errors-count,.application.dark .split-view-requests tr.selected .notifications-count .warnings-count,.application.dark .split-view-requests tr.selected .notifications-count .warnings-count svg,.split-view-requests tr.selected .notifications-count .errors-count,.split-view-requests tr.selected .notifications-count .warnings-count,.split-view-requests tr.selected .notifications-count .warnings-count svg{color:#fff}.application.dark .split-view-requests tr.selected .notifications-count{background:#f27e02!important}.application.dark .split-view-requests tr.selected .method-text,.split-view-requests tr.selected .method-text{color:#fff}.application.dark .split-view-requests tr.selected .status-text,.application.dark .split-view-requests tr.selected .type-text,.split-view-requests tr.selected .status-text,.split-view-requests tr.selected .type-text{background:transparent;color:#fff}.split-view-requests tr.sizing{height:0}.split-view-requests tr.sizing td{border-top:0;padding:0}.application.dark .split-view-requests tr.sizing td{border-top:0}.split-view-requests tr.filler{height:auto}.split-view-requests th{border-bottom:1px solid #d1d1d1;font-weight:400;height:30px;line-height:1.1;padding:2px 4px;white-space:nowrap}.application.dark .split-view-requests th{border-bottom:1px solid #363636}.split-view-requests td{overflow:hidden;padding:8px 6px;vertical-align:middle;white-space:nowrap}.split-view-requests small{color:grey;font-size:100%}.application.dark .split-view-requests small{color:#767676}.split-view-requests big{font-size:115%}.split-view-requests .status{text-align:center;width:52px}.split-view-requests .duration{text-align:right;width:68px}.split-view-requests .type-text{background:#cbdeec;border-radius:3px;color:#365063;font-size:80%;margin-right:2px;padding:1px 3px;vertical-align:1px}.application.dark .split-view-requests .type-text{background:#002e52;color:#6ebef7}.split-view-requests .method-text{color:grey;font-size:90%}.application.dark .split-view-requests .method-text{color:#767676}.split-view-requests .status-text{background:#e3eccb;border-radius:8px;color:#586336;padding:2px 6px;text-transform:uppercase}.application.dark .split-view-requests .status-text{background:#293800;color:#e3fa9e}.split-view-requests .status-text.client-error{background:#fffae2;color:#a85919}.application.dark .split-view-requests .status-text.client-error{background:#382f00;color:#fad89f}.split-view-requests .status-text.server-error{background:#ffebeb;color:#c51f24}.application.dark .split-view-requests .status-text.server-error{background:#380000;color:#ed797a}.split-view-requests .status-text.status-text-small{font-size:9px}.split-view-requests .notifications-count{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:hsla(0,0%,98%,.8);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;float:right;height:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;letter-spacing:-.5px;margin-right:-6px;padding:0 6px;position:relative}.split-view-requests .notifications-count .errors-count{color:#b3492e}.application.dark .split-view-requests .notifications-count .errors-count{color:#ed797a}.split-view-requests .notifications-count .errors-count svg{margin-right:1px}.split-view-requests .notifications-count .warnings-count{color:#a85919}.application.dark .split-view-requests .notifications-count .warnings-count{color:#fad89f}.split-view-requests .notifications-count .warnings-count svg{color:#f4bd00}.application.dark .split-view-requests .notifications-count .warnings-count svg{color:#fad89f}.application.dark .split-view-requests .notifications-count{background:rgba(27,27,27,.8)}.split-view-requests .requests-header{height:31px}.split-view-requests .requests-search{border-bottom:1px solid #d1d1d1;padding:6px 2px}.application.dark .split-view-requests .requests-search{border-bottom:1px solid #363636}.split-view-requests .requests-search label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.split-view-requests .requests-search .fa-search{color:#696969;margin:0 4px}.split-view-requests .requests-search input{background:transparent;border:none;width:100%}.split-view-requests .requests-search input:focus{outline:none}.split-view-requests .requests-search input::-webkit-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::-moz-placeholder{color:#a9a9a9}.split-view-requests .requests-search input:-ms-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::-ms-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::placeholder{color:#a9a9a9}.application.dark .split-view-requests .requests-search input::-webkit-input-placeholder{color:#777}.application.dark .split-view-requests .requests-search input::-moz-placeholder{color:#777}.application.dark .split-view-requests .requests-search input:-ms-input-placeholder{color:#777}.application.dark .split-view-requests .requests-search input::-ms-input-placeholder{color:#777}.application.dark .split-view-requests .requests-search input::placeholder{color:#777}.application.dark .split-view-requests .requests-search input{color:#b2b2b2}.split-view-requests .requests-search .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}.application.dark .split-view-requests .requests-search .example{color:#777}.split-view-requests .requests-container{background:#fafafa;height:calc(100% - 31px);overflow:auto}.split-view-requests .requests-container table{height:100%}.application.dark .split-view-requests .requests-container{background:#1b1b1b}.split-view-requests .load-more{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;height:36px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.application.dark .split-view-requests .load-more{border-bottom:1px solid #363636}.split-view-requests .load-more a{color:#404040;text-decoration:none}.split-view-requests .load-more a:hover{color:#258cdb}.application.dark .split-view-requests .load-more a:hover{color:#f27e02}.application.dark .split-view-requests .load-more a{color:#b2b2b2}.whats-new{background:#fff;font-size:14px;height:calc(100% - 31px);overflow:auto;position:absolute;top:31px;width:100%;z-index:999}.application.dark .whats-new{background:#1f1f1f}.whats-new .whats-new-content{margin:0 auto;max-width:820px;padding:4px 16px 20px}.whats-new h1{font-size:18px;font-weight:400;margin:50px 0;text-align:center;width:100%}.whats-new h2{font-size:16px;font-weight:500}.whats-new .whats-new-section{margin-bottom:50px}.whats-new .whats-new-section img{border-bottom:1px solid #eee;margin-top:10px;max-width:100%}.application.dark .whats-new .whats-new-section img{border-bottom:1px solid #444}.whats-new .whats-new-actions{padding-top:25px;text-align:center;width:100%}.whats-new .whats-new-actions a{color:#258cdb;font-size:15px;margin:0 15px;text-decoration:none}.application.dark .whats-new .whats-new-actions a{color:#f27e02}.whats-new .whats-new-actions a.actions-show-more{border:1px solid #258cdb;border-radius:4px;padding:6px 12px}.application.dark .whats-new .whats-new-actions a.actions-show-more{border-color:#f27e02}.whats-new .whats-new-actions p{margin-top:45px}.pretty-jason{font-family:Menlo,Monaco,Consolas,monospace;font-size:12px;padding:0;margin:0;list-style:none;color:#222}.pretty-jason ul{list-style:none;padding-left:12px}.pretty-jason li{padding:1px 0}.pretty-jason-key{color:#881280}.pretty-jason-value-number{color:#1c00cf}.pretty-jason-value-string{color:#c41a16}.pretty-jason-value-null,.pretty-jason-value-undefined{color:grey}.pretty-jason-value-anonymous-function,.pretty-jason-value-boolean,.pretty-jason-value-resource{color:#132ba2}.pretty-jason-icon,.pretty-jason-icon-closed,.pretty-jason-icon-open{display:inline-block;width:0;height:0}.pretty-jason-icon{width:12px}.pretty-jason-icon-closed{border-style:solid;border-width:4.5px 0 4.5px 7.8px;border-color:transparent transparent transparent #7f7f80}.pretty-jason-icon-open{border-style:solid;border-width:7.8px 4.5px 0 4.5px;border-color:#7f7f80 transparent transparent transparent}.pretty-jason-preview{font-style:italic}.pretty-jason-preview:before{content:"{"}.pretty-jason-preview:after{content:"}"}.pretty-jason-preview-item:after{content:", "}.pretty-jason-preview .pretty-jason-preview-item:last-child:after{content:""}*{-webkit-box-sizing:border-box;box-sizing:border-box}html{background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:11px;overflow:hidden}body,html{height:100%}body{font-size:100%;margin:0}.application.dark,body.dark{background:#1f1f1f;color:#b2b2b2}table{border-collapse:collapse;font-size:100%;width:100%}table td,table th{text-align:left}a{color:#696969;cursor:default}a:hover{color:#3b3b3b}.application.dark a:hover{color:#f27e02}.application.dark a{color:grey}.split-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%}@media screen and (min-width:900px){.split-view{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.split-view-details{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}@media screen and (min-width:900px){.split-view-details{height:100%}}.split-view-details{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.details-header,.split-view-details{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.details-header{background:#fff;border-bottom:1px solid #ccc;-ms-flex-negative:0;flex-shrink:0;height:31px;z-index:500}.application.dark .details-header{background:#1f1f1f;border-bottom:1px solid #363636}.details-header .details-header-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1}.details-header .details-header-tabs .details-header-tab{color:#404040;cursor:default;-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;line-height:31px;text-align:center;text-decoration:none}.details-header .details-header-tabs .details-header-tab.active{color:#258cdb}.application.dark .details-header .details-header-tabs .details-header-tab.active{color:#f27e02}.application.dark .details-header .details-header-tabs .details-header-tab{color:#9e9e9e}.details-header .icons{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;padding:0 5px}.details-header .icons a{padding:0 5px}.details-header .icons a.active{color:#258cdb}.application.dark .details-header .icons a.active{color:#f27e02}.details-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto;padding:10px}.details-content h3{border-bottom:1px solid #d1d1d1;font-size:13px;font-weight:600;margin:0;padding:4px 10px}.details-content table{font-size:12px;margin-bottom:18px}.details-content table thead th:last-child{padding-right:20px;position:relative}.details-content table thead .fa-angle-down,.details-content table thead .fa-angle-up{font-weight:700;margin-left:4px}.details-content table thead .toggle-filter{position:absolute;right:4px;top:4px;visibility:hidden}.details-content table thead:hover .toggle-filter{visibility:visible}.details-content table tr:first-child td{border-top:1px solid #d1d1d1}.application.dark .details-content table tr:first-child td{border-top:1px solid #363636}.details-content table tr:nth-child(2n){background:#f5f5f5}.application.dark .details-content table tr:nth-child(2n){background:#1b1b1b}.details-content table th{font-size:13px;font-weight:600;padding:4px 10px;white-space:nowrap}.details-content table td{padding:8px 10px;vertical-align:top}.details-content table td.key{font-size:12px;white-space:nowrap}.details-content table td.value{word-break:break-all}.details-content table .filter{background:none!important}.details-content table .filter td{border-top:1px solid #d1d1d1;padding:2px 10px}.application.dark .details-content table .filter td{border-top:1px solid #363636}.details-content table .filter label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.details-content table .filter .fa-search{color:#696969;margin:0 4px}.details-content table .filter input{background:transparent;border:none;width:100%}.details-content table .filter input:focus{outline:none}.details-content table .filter input::-webkit-input-placeholder{color:#a9a9a9}.details-content table .filter input::-moz-placeholder{color:#a9a9a9}.details-content table .filter input:-ms-input-placeholder{color:#a9a9a9}.details-content table .filter input::-ms-input-placeholder{color:#a9a9a9}.details-content table .filter input::placeholder{color:#a9a9a9}.application.dark .details-content table .filter input::-webkit-input-placeholder{color:#777}.application.dark .details-content table .filter input::-moz-placeholder{color:#777}.application.dark .details-content table .filter input:-ms-input-placeholder{color:#777}.application.dark .details-content table .filter input::-ms-input-placeholder{color:#777}.application.dark .details-content table .filter input::placeholder{color:#777}.application.dark .details-content table .filter input{color:#b2b2b2}.details-content table .filter .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}.application.dark .details-content table .filter .example{color:#777}.details-content .counters-row{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 10px}.details-content .counters-row .counter{border:1px solid #d1d1d1;border-radius:3px;-webkit-box-shadow:0 2px 3px #e5e5e5;box-shadow:0 2px 3px #e5e5e5;margin:0 5px;-webkit-box-flex:0;-ms-flex:0 1 120px;flex:0 1 120px;padding:8px 20px 10px;text-align:center}.application.dark .details-content .counters-row .counter{border:1px solid #404040;-webkit-box-shadow:0 2px 3px #292929;box-shadow:0 2px 3px #292929}.details-content .counters-row .counter:first-child{margin-left:0}.details-content .counters-row .counter:last-child{margin-right:0}.details-content .counters-row .counter .counter-value{font-size:175%;white-space:nowrap}.details-content .counters-row .counter .counter-title{font-size:120%;font-variant:small-caps;text-transform:lowercase}.details-content .request-tab-info{display:-webkit-box;display:-ms-flexbox;display:flex;margin:4px 0 8px}.details-content .request-tab-info .field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:0 5px;padding:0 20px}.details-content .request-tab-info .field:first-child{margin-left:0}.details-content .request-tab-info .field:last-child{margin-right:0}.details-content .request-tab-info .field .field-value{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:130%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.details-content .request-tab-info .field .field-value .small{color:#888;font-size:75%;padding-top:2px}.details-content .request-tab-info .field .field-title{font-size:120%;font-variant:small-caps;padding-bottom:5px;text-transform:lowercase}.details-content .request-tab-info .field.action{-webkit-box-flex:1;-ms-flex:1;flex:1}.details-content .request-tab-info .field.link{font-size:90%;padding:0}.details-content .performance-chart-container{-webkit-box-flex:0;-ms-flex:0 1 100px;flex:0 1 100px}.details-content .performance-chart{height:60px;margin:0 auto;position:relative;width:60px}.details-content .performance-chart-legend.style1{border-left:3px solid #78b1de!important}.application.dark .details-content .performance-chart-legend.style1{border-left:3px solid #649dca!important}.details-content .performance-chart-legend.style2{border-left:3px solid #e79697!important}.application.dark .details-content .performance-chart-legend.style2{border-left:3px solid #d38283!important}.details-content .performance-chart-legend.style3{border-left:3px solid #b1ca6d!important}.application.dark .details-content .performance-chart-legend.style3{border-left:3px solid #9db659!important}.details-content .performance-chart-legend.style4{border-left:3px solid #ba94e6!important}.application.dark .details-content .performance-chart-legend.style4{border-left:3px solid #a680d2!important}.details-content .performance-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:8px 0 4px}.details-content .performance-tabs .performance-tab{color:#404040;cursor:default;font-size:12px;line-height:31px;padding:0 31px;text-align:center;text-decoration:none}.details-content .performance-tabs .performance-tab.active{color:#258cdb}.application.dark .details-content .performance-tabs .performance-tab.active{color:#f27e02}.application.dark .details-content .performance-tabs .performance-tab{color:#9e9e9e}.details-content .timeline{position:relative}.details-content .timeline table{table-layout:fixed}.details-content .timeline .timeline-description,.details-content .timeline .timeline-duration{display:none}.details-content .timeline.table-view .timeline-description,.details-content .timeline.table-view .timeline-duration{display:table-cell}.details-content .timeline.table-view .timeline-graph{padding:12px 0 0;width:25%}.details-content .timeline.table-view .timeline-bar .label,.details-content .timeline.table-view .timeline-legend{display:none}.details-content .timeline-controls{position:absolute;right:0;top:4px;z-index:100}.details-content .timeline-controls .timeline-control-group{margin:0 5px}.details-content .timeline-controls .toggle-filter{position:static;visibility:visible}.details-content .timeline-controls .fa-bar-chart{font-size:110%}.details-content .timeline-controls .fa-bars{font-size:115%}.details-content .timeline-controls a{margin:0 2px;text-decoration:none}.details-content .timeline-controls a.active{color:#258cdb}.application.dark .details-content .timeline-controls a.active{color:#f27e02}.application.dark .details-content .timeline-controls a{color:#9e9e9e}.details-content .timeline-graph{background-image:-webkit-gradient(linear,left top,right top,color-stop(99.5%,transparent),color-stop(99.5%,#e5e5e5),to(#e5e5e5));background-image:linear-gradient(90deg,transparent 99.5%,#e5e5e5 0,#e5e5e5);background-size:80px 1px;padding:6px 4px 8px}.application.dark .details-content .timeline-graph{background-image:-webkit-gradient(linear,left top,right top,color-stop(99.5%,transparent),color-stop(99.5%,#333),to(#333));background-image:linear-gradient(90deg,transparent 99.5%,#333 0,#333)}.details-content .timeline-legend{color:#a1a1a1;height:14px;margin-bottom:6px;margin-top:-2px;position:relative}.application.dark .details-content .timeline-legend{color:#666}.details-content .timeline-legend .timeline-legend-time{font-size:10px;font-weight:400;position:absolute;top:0}.details-content .timeline-bar .label{color:#365063;font-size:11.5px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.details-content .timeline-bar .bar{background:#78b1de;border:1px solid #4295c5;border-radius:3px;padding:3px}.application.dark .details-content .timeline-bar .bar{background:#649dca;border:1px solid #2e81b1}.details-content .timeline-bar.style1 .label{color:#365063}.application.dark .details-content .timeline-bar.style1 .label{color:#a3b5c2}.details-content .timeline-bar.style1 .bar{background:#78b1de;border:1px solid #4295c5}.application.dark .details-content .timeline-bar.style1 .bar{background:#649dca;border:1px solid #2e81b1}.details-content .timeline-bar.style2 .label{color:#633636}.application.dark .details-content .timeline-bar.style2 .label{color:#c2a3a4}.details-content .timeline-bar.style2 .bar{background:#e79697;border:1px solid #d16b6c}.application.dark .details-content .timeline-bar.style2 .bar{background:#d38283;border:1px solid #bd5758}.details-content .timeline-bar.style3 .label{color:#586336}.application.dark .details-content .timeline-bar.style3 .label{color:#bac2a3}.details-content .timeline-bar.style3 .bar{background:#b1ca6d;border:1px solid #98ba51}.application.dark .details-content .timeline-bar.style3 .bar{background:#9db659;border:1px solid #84a63d}.details-content .timeline-bar.style4 .label{color:#4a3663}.application.dark .details-content .timeline-bar.style4 .label{color:#b1a3c2}.details-content .timeline-bar.style4 .bar{background:#ba94e6;border:1px solid #9772b5}.application.dark .details-content .timeline-bar.style4 .bar{background:#a680d2;border:1px solid #835ea1}.details-content .timeline-duration{text-align:right;width:100px}.details-content .profiler .profiler-controls{position:absolute;right:0;top:4px}.details-content .profiler .profiler-controls .profiler-control-group{margin:0 5px}.details-content .profiler .profiler-controls .profiler-show-metric{font-size:105%}.details-content .profiler .profiler-controls .profiler-show-metric .fa-clock-o{font-size:110%}.details-content .profiler .profiler-controls .profiler-shown-fraction{font-size:85%}.details-content .profiler .profiler-controls .toggle-filter{position:static;visibility:visible}.details-content .profiler .profiler-controls a{margin:0 2px;text-decoration:none}.details-content .profiler .profiler-controls a.active{color:#258cdb}.application.dark .details-content .profiler .profiler-controls a.active{color:#f27e02}.application.dark .details-content .profiler .profiler-controls a{color:#9e9e9e}.details-content .profiler .profiler-metric{white-space:nowrap}.details-content .profiler .profiler-function{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .profiler .profiler-function .profiler-function-name{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;word-break:break-all}.details-content .profiler .profiler-function .profiler-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.details-content .profiler-loading,.details-content .profiler-not-available{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:16px;padding:40px 0;text-align:center;width:100%}.details-content .profiler-loading .message,.details-content .profiler-not-available .message{color:#aaa;font-size:75%;margin:10px 0 0 0}.details-content .profiler-not-available{font-size:15px;line-height:1.5}.details-content .profiler-not-available .message{font-size:90%;margin:15px 0 0}.details-content .profiler-not-available a{color:#aaa;cursor:pointer}.details-content .profiler-not-available .profiler-enable a{color:#258cdb}.application.dark .details-content .profiler-not-available .profiler-enable a{color:#f27e02}.details-content .log-row.error{background:#ffebeb;color:#c51f24}.details-content .log-row.error:nth-child(2n){background:#ffe0e0}.details-content .log-row.error .log-message-path{color:#dd888b}.application.dark .details-content .log-row.error{background:#380000;color:#ed797a}.application.dark .details-content .log-row.error:nth-child(2n){background:#2e0000}.application.dark .details-content .log-row.error .log-message-path{color:#c3797b}.details-content .log-row.warning{background:#fffae2;color:#a85919}.details-content .log-row.warning:nth-child(2n){background:#fff5c2}.details-content .log-row.warning .log-message-path{color:#d7a175}.application.dark .details-content .log-row.warning{background:#382f00;color:#fad89f}.application.dark .details-content .log-row.warning:nth-child(2n){background:#2e2600}.application.dark .details-content .log-row.warning .log-message-path{color:#d0b78b}.details-content .log-date,.details-content .log-level{width:70px}.details-content .log-message{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .log-message .log-message-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .log-message .log-message-exception{-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin:3px 5px 0 0;white-space:nowrap}.details-content .log-message .log-message-exception .exception-previous{border:1px solid #aaa;border-radius:4px;text-decoration:none;padding:2px 4px;margin-right:5px}.application.dark .details-content .log-message .log-message-exception .exception-previous{border-color:grey}.details-content .log-message .log-message-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.application.dark .details-content .log-message .log-message-path{color:#777}.details-content .fired-event{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .fired-event .fired-event-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .fired-event .fired-event-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.application.dark .details-content .fired-event .fired-event-path{color:#777}.details-content .fired-event-details h4{margin:6px 0 3px}.details-content .fired-event-actions{padding-left:5px;width:10px}.details-content .database-query{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .database-query .database-query-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .database-query .database-query-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.application.dark .details-content .database-query .database-query-path{color:#777}.details-content .database-duration{text-align:right;white-space:nowrap}.details-content .cache-query-type{font-size:125%;font-variant:small-caps}.details-authentication-overlay,.details-error-overlay,.details-loading-overlay{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:16px;height:calc(100% - 31px);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;left:0;position:absolute;top:31px;width:100%;z-index:999}.application.dark .details-authentication-overlay,.application.dark .details-error-overlay,.application.dark .details-loading-overlay{background:#1f1f1f}.details-authentication-overlay .fa-exclamation-circle,.details-authentication-overlay .fa-lock,.details-error-overlay .fa-exclamation-circle,.details-error-overlay .fa-lock,.details-loading-overlay .fa-exclamation-circle,.details-loading-overlay .fa-lock{color:#696969;font-size:46px}.details-authentication-overlay .title,.details-error-overlay .title,.details-loading-overlay .title{margin:10px 0 0 0}.details-authentication-overlay .message,.details-error-overlay .message,.details-loading-overlay .message{color:#aaa;font-size:75%;margin:5px 0 0 0}.details-authentication-overlay{text-align:center}.details-authentication-overlay .message,.details-authentication-overlay .title{font-size:80%}.details-authentication-overlay .title.failed{display:none}.details-authentication-overlay p{margin:1.3em 0}.details-authentication-overlay input{background:#eee;border:1px solid #eee;border-radius:4px;font-size:14px;height:30px;padding:0 10px}.application.dark .details-authentication-overlay input{background:#2e2e2e;border:1px solid #2e2e2e;color:#ccc}.details-authentication-overlay button{background:transparent;border:none;color:#258cdb;font-size:90%}.application.dark .details-authentication-overlay button{color:#f27e02}.details-authentication-overlay.failed .title{display:none}.details-authentication-overlay.failed .title.failed{display:block}.details-authentication-overlay.failed .fa-lock{-webkit-animation:shake .77s linear;animation:shake .77s linear}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate(-2px);transform:translate(-2px)}20%,80%{-webkit-transform:translate(3px);transform:translate(3px)}30%,50%,70%{-webkit-transform:translate(-5px);transform:translate(-5px)}40%,60%{-webkit-transform:translate(5px);transform:translate(5px)}}@keyframes shake{10%,90%{-webkit-transform:translate(-2px);transform:translate(-2px)}20%,80%{-webkit-transform:translate(3px);transform:translate(3px)}30%,50%,70%{-webkit-transform:translate(-5px);transform:translate(-5px)}40%,60%{-webkit-transform:translate(5px);transform:translate(5px)}}.stack-trace{cursor:pointer}.stack-trace .popover{cursor:default}.stack-trace a{text-decoration:none}.stack-trace .stack-frame{color:#000;padding:6px 10px;text-align:left;word-break:break-word}.application.dark .stack-trace .stack-frame{color:#b2b2b2}.stack-trace .stack-frame:nth-child(2n){background:#f5f5f5}.application.dark .stack-trace .stack-frame:nth-child(2n){background:#1b1b1b}.stack-trace .stack-frame .stack-frame-call{font-size:12px;padding-bottom:3px}.stack-trace .stack-frame .stack-frame-file{color:#aaa;font-size:11px}.stack-trace .stack-frame.is-vendor .stack-frame-call,.stack-trace .stack-frame.is-vendor .stack-frame-file{font-size:10px}.popover{left:0;padding-top:20px;position:absolute;top:100%;width:300px;z-index:666}.popover.right-aligned{left:auto;right:0}.popover.right-aligned .popover-content:before{left:auto;right:8px}.popover.right-aligned .popover-content:after{left:auto;right:7px}.popover .popover-content{background:#fff;border:1px solid #d1d1d1;border-radius:5px;-webkit-box-shadow:0 0 4px #e5e5e5;box-shadow:0 0 4px #e5e5e5;max-height:400px;overflow:auto;padding:5px 0;text-align:center;width:100%}.application.dark .popover .popover-content{background:#1f1f1f;border:1px solid #404040;-webkit-box-shadow:0 0 4px #292929;box-shadow:0 0 4px #292929}.popover .popover-content:after,.popover .popover-content:before{border-style:solid;content:"";height:0;position:absolute;width:0}.popover .popover-content:before{border-color:transparent transparent #fff transparent;border-width:0 14px 14px 14px;left:8px;top:7px;z-index:500}.application.dark .popover .popover-content:before{border-color:transparent transparent #1f1f1f transparent}.popover .popover-content:after{border-color:transparent transparent #e5e5e5 transparent;border-width:0 15px 15px 15px;left:7px;top:5px}.application.dark .popover .popover-content:after{border-color:transparent transparent #292929 transparent}.popover-container{position:relative}.hidden{display:none}[stupid-table] th{cursor:default}[tab-content]{display:none}.application.dark .pretty-jason{color:#d5d5d5}.application.dark .pretty-jason-key{color:#e36eec}.application.dark .pretty-jason-value-number{color:#997fff}.application.dark .pretty-jason-value-string{color:#e33e3a}.application.dark .pretty-jason-value-null,.application.dark .pretty-jason-value-undefined{color:#7f7f7f}.application.dark .pretty-jason-value-anonymous-function,.application.dark .pretty-jason-value-boolean,.application.dark .pretty-jason-value-resource{color:#8296ff}.application.dark .pretty-jason-icon-closed{border-color:transparent transparent transparent #919191}.application.dark .pretty-jason-icon-open{border-color:#919191 transparent transparent transparent} \ No newline at end of file diff --git a/Clockwork/Web/public/css/app.c0baaa16.css b/Clockwork/Web/public/css/app.c0baaa16.css deleted file mode 100644 index 621ea508..00000000 --- a/Clockwork/Web/public/css/app.c0baaa16.css +++ /dev/null @@ -1 +0,0 @@ -.messages-overlay .parent-request{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;font-weight:600;padding:10px}.messages-overlay .parent-request .parent-method{color:grey;font-size:90%;font-weight:400;margin-right:2px}body.dark .messages-overlay .parent-request .parent-method{color:#767676}.messages-overlay .parent-request .parent-uri{font-weight:400}.messages-overlay .parent-request a{color:#258cdb;font-weight:400;text-decoration:none}body.dark .messages-overlay .parent-request a{color:#f27e02}.messages-overlay .parent-request .parent-close{margin-left:auto}.messages-overlay .exception .exception-info{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#ffebeb;color:#c51f24;display:-webkit-box;display:-ms-flexbox;display:flex;padding:10px}.messages-overlay .exception .exception-info:nth-child(2n){background:#ffe0e0}body.dark .messages-overlay .exception .exception-info{background:#380000;color:#ed797a}body.dark .messages-overlay .exception .exception-info:nth-child(2n){background:#2e0000}.messages-overlay .exception .exception-info h3{border-bottom:0;display:inline;font-size:12px}.messages-overlay .exception .exception-info .exception-message{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px}.messages-overlay .exception .exception-info .exception-previous,.messages-overlay .exception .exception-info .exception-trace>a{color:#c51f24;font-size:12px;margin:0 4px}body.dark .messages-overlay .exception .exception-info .exception-previous,body.dark .messages-overlay .exception .exception-info .exception-trace>a{color:#ed797a}.messages-overlay .exception .exception-info .exception-previous{margin-right:4px;text-decoration:none}.messages-overlay .exception .exception-info .exception-trace{display:inline-block}.messages-overlay .update-notification{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#e9f3fb;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:110%;padding:10px}body.dark .messages-overlay .update-notification{background:#643302}.messages-overlay .update-notification a{color:#258cdb;text-decoration:none}body.dark .messages-overlay .update-notification a{color:#f27e02}.messages-overlay .update-notification strong{font-weight:500}.messages-overlay .update-notification .updateNotification-close{margin-left:auto}.details-table .pagination-controls{background:transparent!important}.details-table .pagination-controls td{text-align:center}.details-table .pagination-controls a{color:#258cdb;text-decoration:none}body.dark .details-table .pagination-controls a{color:#f27e02}.counter.database-slow-query{border-color:#d7a175!important}body.dark .counter.database-slow-query{border-color:#d0b78b!important}.database-slow-query{background:#fffae2;color:#a85919}.database-slow-query:nth-child(2n){background:#fff5c2!important}.database-slow-query .database-query-path>a{color:#d7a175!important}body.dark .database-slow-query{background:#382f00;color:#fad89f}body.dark .database-slow-query:nth-child(2n){background:#2e2600!important}body.dark .database-slow-query .database-query-path>a{color:#d0b78b!important}.performance-log{margin-top:25px}.performance-log table thead .count{background:#c28451;color:#fffae2;border-radius:8px;margin-left:2px;padding:0 8px}body.dark .performance-log table thead .count{background:#fad89f;color:#382f00}.performance-log table tr{background:transparent!important;color:#a85919}.performance-log table tr:nth-child(2n){background:#fffae2!important}.performance-log table tr .log-message-path>a{color:#d7a175!important}body.dark .performance-log table tr{color:#fad89f}body.dark .performance-log table tr:nth-child(2n){background:#382f00!important}body.dark .performance-log table tr .log-message-path>a{color:#d0b78b!important}.performance-log table tr:first-child td{border-top:1px solid #d7a175!important}body.dark .performance-log table tr:first-child td{border-top:1px solid #d0b78b!important}.performance-log table tr .toggle-filter{color:#d7a175!important}body.dark .performance-log table tr .toggle-filter{color:#d0b78b!important}.performance-log table tr.filter{background:#fffae2!important}body.dark .performance-log table tr.filter{background:#382f00!important}.performance-log table tr.filter td{border-top:1px solid #d7a175!important}body.dark .performance-log table tr.filter td{border-top:1px solid #d0b78b!important}.performance-log table tr.filter td .example,.performance-log table tr.filter td .fa-search,.performance-log table tr.filter td input{color:#d7a175!important}body.dark .performance-log table tr.filter td .example,body.dark .performance-log table tr.filter td .fa-search,body.dark .performance-log table tr.filter td input{color:#d0b78b!important}.job-options span[data-v-ee698604]{display:block;white-space:nowrap}.split-view-details{overflow:hidden}.sidebar-section .section-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:700;padding:5px 10px}body.dark .sidebar-section .section-header{border-bottom:1px solid #363636}.sidebar-section .section-header .section-title{cursor:default}.sidebar-section .section-header .toggle-filter{display:none;margin-left:auto}.sidebar-section .section-header:hover .toggle-filter{display:block}.sidebar-section table{border-bottom:1px solid #d1d1d1;font-size:11px;margin-bottom:0}body.dark .sidebar-section table{border-bottom:1px solid #363636}.sidebar-section table thead th:last-child{padding-right:20px;position:relative}.sidebar-section table thead .fa-angle-down,.sidebar-section table thead .fa-angle-up{font-weight:700;margin-left:4px}.sidebar-section table thead .toggle-filter{position:absolute;right:4px;top:4px;visibility:hidden}.sidebar-section table thead:hover .toggle-filter{visibility:visible}.sidebar-section table tr:first-child td,body.dark .sidebar-section table tr:first-child td{border-top:0}.sidebar-section table tr:nth-child(2n){background:#f5f5f5}body.dark .sidebar-section table tr:nth-child(2n){background:#1b1b1b}.sidebar-section table th{font-size:12px;font-weight:600;padding:4px 2px;white-space:nowrap}.sidebar-section table td{padding:8px 10px;vertical-align:top}.sidebar-section table td .key{font-size:11px;font-weight:600;margin-bottom:3px;white-space:nowrap}.sidebar-section table td .value{word-break:break-all}.sidebar-section table .filter{background:none!important}.sidebar-section table .filter td{border-bottom:1px solid #d1d1d1;border-top:0;padding:2px 10px}body.dark .sidebar-section table .filter td{border-bottom:1px solid #363636;border-top:0}.sidebar-section table .filter label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.sidebar-section table .filter .fa-search{color:#696969;margin:0 4px}.sidebar-section table .filter input{background:transparent;border:none;width:100%}.sidebar-section table .filter input:focus{outline:none}.sidebar-section table .filter input::-webkit-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::-moz-placeholder{color:#a9a9a9}.sidebar-section table .filter input:-ms-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::-ms-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::placeholder{color:#a9a9a9}body.dark .sidebar-section table .filter input::-webkit-input-placeholder{color:#777}body.dark .sidebar-section table .filter input::-moz-placeholder{color:#777}body.dark .sidebar-section table .filter input:-ms-input-placeholder{color:#777}body.dark .sidebar-section table .filter input::-ms-input-placeholder{color:#777}body.dark .sidebar-section table .filter input::placeholder{color:#777}body.dark .sidebar-section table .filter input{color:#b2b2b2}.sidebar-section table .filter .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}body.dark .sidebar-section table .filter .example{color:#777}.request-tab{background:#fff}body.dark .request-tab{background:#1f1f1f}.request-tab .parent-request{border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;font-weight:600;padding:12px 10px}body.dark .request-tab .parent-request{border-bottom:1px solid #363636}.request-tab .parent-request .parent-method{color:grey;font-size:90%;font-weight:400;margin-right:2px}body.dark .request-tab .parent-request .parent-method{color:#767676}.request-tab .parent-request .parent-uri{font-weight:400}.request-tab .parent-request a{color:#258cdb;font-weight:400;text-decoration:none}body.dark .request-tab .parent-request a{color:#f27e02}.request-tab .parent-request .parent-close{margin-left:auto}.request-tab .exception{border-bottom:1px solid #d1d1d1}body.dark .request-tab .exception{border-bottom:1px solid #363636}.request-tab .exception .exception-info{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#ffebeb;color:#c51f24;display:-webkit-box;display:-ms-flexbox;display:flex;padding:6px 10px}.request-tab .exception .exception-info:nth-child(2n){background:#ffe0e0}.request-tab .exception .exception-info:first-child{padding-top:12px}.request-tab .exception .exception-info:last-child{padding-bottom:12px}body.dark .request-tab .exception .exception-info{background:#380000;color:#ed797a}body.dark .request-tab .exception .exception-info:nth-child(2n){background:#2e0000}.request-tab .exception .exception-info h3{border-bottom:0;font-size:14px;margin:0 0 5px}.request-tab .exception .exception-info .exception-message{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;line-height:1.5}.request-tab .exception .exception-info .exception-previous,.request-tab .exception .exception-info .exception-trace>a{color:#c51f24;font-size:12px;margin:0 4px}body.dark .request-tab .exception .exception-info .exception-previous,body.dark .request-tab .exception .exception-info .exception-trace>a{color:#ed797a}.request-tab .exception .exception-info .exception-previous{margin-right:4px;text-decoration:none}.request-tab .exception .exception-info .exception-trace{display:inline-block}.request-tab .data-raw td{white-space:pre}.request-tab .session-user{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:110%;padding:8px 10px}body.dark .request-tab .session-user{border-bottom:1px solid #363636}.request-tab .session-user .fa-user{color:grey;font-size:110%;margin-right:8px}.request-tab .session-user .name{margin-right:6px}.request-tab .session-user .dimmed{color:grey;font-size:90%}body.dark .request-tab .session-user .dimmed{color:#767676}.request-tab .session-user .session-user-details{margin-left:auto}.request-sidebar{background:#fafafa;border-top:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;height:25%}body.dark .request-sidebar{background:#1b1b1b;border-top:1px solid #363636}.request-sidebar.large{height:33%}@media screen and (min-width:900px){.request-sidebar{border-left:1px solid #d1d1d1;border-top:0;height:100%;width:300px}body.dark .request-sidebar{border-left:1px solid #363636;border-top:0}.request-sidebar.large{height:100%;width:400px}}@media screen and (min-width:1100px){.request-sidebar{width:360px}.request-sidebar.large{width:460px}}.request-sidebar .sidebar-header{background:#fff;border-bottom:1px solid #ccc;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;font-size:12px;height:31px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;line-height:31px;width:100%}body.dark .request-sidebar .sidebar-header{background:#1f1f1f;border-bottom:1px solid #363636}.request-sidebar .sidebar-header .sidebar-title{padding:0 10px}.request-sidebar .sidebar-header .sidebar-actions{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;padding:0 5px}.request-sidebar .sidebar-header .sidebar-actions a{padding:0 5px}.request-sidebar .sidebar-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.request-sidebar .sidebar-date,.request-sidebar .sidebar-id{margin:10px 0;text-align:center}.request-sidebar .sidebar-id{color:grey}body.dark .request-sidebar .sidebar-id{color:#767676}.split-view-requests{border-bottom:1px solid #d1d1d1;cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;height:25%;width:100%}body.dark .split-view-requests{border-bottom:1px solid #363636}.split-view-requests.large .notifications-count{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.split-view-requests.large .notifications-count .errors-count{margin-left:5px}.split-view-requests.large .notifications-count .errors-count svg{margin-right:0}@media screen and (min-width:900px){.split-view-requests{border-bottom:0;border-right:1px solid #d1d1d1;height:100%;width:300px}body.dark .split-view-requests{border-right:1px solid #363636}.split-view-requests.large{width:400px}}@media screen and (min-width:1100px){.split-view-requests{width:320px}.split-view-requests.large{width:420px}}.split-view-requests table{line-height:1.4;table-layout:fixed}.split-view-requests tr{height:28px}.split-view-requests tr:first-child td{border-top:1px solid #d1d1d1}body.dark .split-view-requests tr:first-child td{border-top:1px solid #363636}.split-view-requests tr:nth-child(2n):not(.filler){background:#f3f3f3}body.dark .split-view-requests tr:nth-child(2n):not(.filler){background:#181818}.split-view-requests tr:nth-child(2n):not(.filler) .notifications-count{background:hsla(0,0%,95.3%,.8)}body.dark .split-view-requests tr:nth-child(2n):not(.filler) .notifications-count{background:rgba(27,27,27,.8)}.split-view-requests tr.selected td{background:#2786f3!important;color:#fff}body.dark .split-view-requests tr.selected td{background:#f27e02!important}.split-view-requests tr.selected small,body.dark .split-view-requests tr.selected small{color:#fff}.split-view-requests tr.selected .notifications-count{background:#2786f3!important}.split-view-requests tr.selected .notifications-count .errors-count,.split-view-requests tr.selected .notifications-count .warnings-count,.split-view-requests tr.selected .notifications-count .warnings-count svg,body.dark .split-view-requests tr.selected .notifications-count .errors-count,body.dark .split-view-requests tr.selected .notifications-count .warnings-count,body.dark .split-view-requests tr.selected .notifications-count .warnings-count svg{color:#fff}body.dark .split-view-requests tr.selected .notifications-count{background:#f27e02!important}.split-view-requests tr.selected .method-text,body.dark .split-view-requests tr.selected .method-text{color:#fff}.split-view-requests tr.selected .status-text,body.dark .split-view-requests tr.selected .status-text{background:transparent;color:#fff}.split-view-requests tr.sizing{height:0}.split-view-requests tr.sizing td{border-top:0;padding:0}body.dark .split-view-requests tr.sizing td{border-top:0}.split-view-requests tr.filler{height:auto}.split-view-requests th{border-bottom:1px solid #d1d1d1;font-weight:400;height:30px;line-height:1.1;padding:2px 4px;white-space:nowrap}body.dark .split-view-requests th{border-bottom:1px solid #363636}.split-view-requests td{overflow:hidden;padding:8px 6px;vertical-align:middle;white-space:nowrap}.split-view-requests small{color:grey;font-size:100%}body.dark .split-view-requests small{color:#767676}.split-view-requests big{font-size:115%}.split-view-requests .method,.split-view-requests .status{text-align:center;width:42px}.split-view-requests .duration{text-align:right;width:68px}.split-view-requests .method-text{color:grey;font-size:90%}body.dark .split-view-requests .method-text{color:#767676}.split-view-requests .status-text{background:#e3eccb;border-radius:8px;color:#586336;padding:2px 6px}body.dark .split-view-requests .status-text{background:#293800;color:#e3fa9e}.split-view-requests .status-text.client-error{background:#fffae2;color:#a85919}body.dark .split-view-requests .status-text.client-error{background:#382f00;color:#fad89f}.split-view-requests .status-text.server-error{background:#ffebeb;color:#c51f24}body.dark .split-view-requests .status-text.server-error{background:#380000;color:#ed797a}.split-view-requests .notifications-count{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:hsla(0,0%,98%,.8);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;float:right;height:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;letter-spacing:-.5px;margin-right:-6px;padding:0 6px;position:relative}.split-view-requests .notifications-count .errors-count{color:#b3492e}body.dark .split-view-requests .notifications-count .errors-count{color:#ed797a}.split-view-requests .notifications-count .errors-count svg{margin-right:1px}.split-view-requests .notifications-count .warnings-count{color:#a85919}body.dark .split-view-requests .notifications-count .warnings-count{color:#fad89f}.split-view-requests .notifications-count .warnings-count svg{color:#f4bd00}body.dark .split-view-requests .notifications-count .warnings-count svg{color:#fad89f}body.dark .split-view-requests .notifications-count{background:rgba(27,27,27,.8)}.split-view-requests .requests-header{height:31px}.split-view-requests .requests-search{border-bottom:1px solid #d1d1d1;padding:6px 2px}body.dark .split-view-requests .requests-search{border-bottom:1px solid #363636}.split-view-requests .requests-search label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.split-view-requests .requests-search .fa-search{color:#696969;margin:0 4px}.split-view-requests .requests-search input{background:transparent;border:none;width:100%}.split-view-requests .requests-search input:focus{outline:none}.split-view-requests .requests-search input::-webkit-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::-moz-placeholder{color:#a9a9a9}.split-view-requests .requests-search input:-ms-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::-ms-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::placeholder{color:#a9a9a9}body.dark .split-view-requests .requests-search input::-webkit-input-placeholder{color:#777}body.dark .split-view-requests .requests-search input::-moz-placeholder{color:#777}body.dark .split-view-requests .requests-search input:-ms-input-placeholder{color:#777}body.dark .split-view-requests .requests-search input::-ms-input-placeholder{color:#777}body.dark .split-view-requests .requests-search input::placeholder{color:#777}body.dark .split-view-requests .requests-search input{color:#b2b2b2}.split-view-requests .requests-search .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}body.dark .split-view-requests .requests-search .example{color:#777}.split-view-requests .requests-container{background:#fafafa;height:calc(100% - 31px);overflow:auto}.split-view-requests .requests-container table{height:100%}body.dark .split-view-requests .requests-container{background:#1b1b1b}.split-view-requests .load-more{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;border-right:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;height:36px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}body.dark .split-view-requests .load-more{border-bottom:1px solid #363636;border-right:1px solid #363636}.split-view-requests .load-more a{color:#404040;text-decoration:none}.split-view-requests .load-more a:hover{color:#258cdb}body.dark .split-view-requests .load-more a:hover{color:#f27e02}body.dark .split-view-requests .load-more a{color:#b2b2b2}.pretty-jason{font-family:Menlo,Monaco,Consolas,monospace;font-size:12px;padding:0;margin:0;list-style:none;color:#222}.pretty-jason ul{list-style:none;padding-left:12px}.pretty-jason li{padding:1px 0}.pretty-jason-key{color:#881280}.pretty-jason-value-number{color:#1c00cf}.pretty-jason-value-string{color:#c41a16}.pretty-jason-value-null,.pretty-jason-value-undefined{color:grey}.pretty-jason-value-anonymous-function,.pretty-jason-value-boolean,.pretty-jason-value-resource{color:#132ba2}.pretty-jason-icon,.pretty-jason-icon-closed,.pretty-jason-icon-open{display:inline-block;width:0;height:0}.pretty-jason-icon{width:12px}.pretty-jason-icon-closed{border-style:solid;border-width:4.5px 0 4.5px 7.8px;border-color:transparent transparent transparent #7f7f80}.pretty-jason-icon-open{border-style:solid;border-width:7.8px 4.5px 0 4.5px;border-color:#7f7f80 transparent transparent transparent}.pretty-jason-preview{font-style:italic}.pretty-jason-preview:before{content:"{"}.pretty-jason-preview:after{content:"}"}.pretty-jason-preview-item:after{content:", "}.pretty-jason-preview .pretty-jason-preview-item:last-child:after{content:""}*{-webkit-box-sizing:border-box;box-sizing:border-box}html{background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:11px;overflow:hidden}body,html{height:100%}body{font-size:100%;margin:0}body.dark{background:#1f1f1f;color:#b2b2b2}table{border-collapse:collapse;font-size:100%;width:100%}table td,table th{text-align:left}a{color:#696969;cursor:default}a:hover{color:#3b3b3b}body.dark a:hover{color:#f27e02}body.dark a{color:grey}.split-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%}@media screen and (min-width:900px){.split-view{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.split-view-details{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}@media screen and (min-width:900px){.split-view-details{height:100%}}.split-view-details{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative}.details-header,.split-view-details{display:-webkit-box;display:-ms-flexbox;display:flex}.details-header{border-bottom:1px solid #ccc;-ms-flex-negative:0;flex-shrink:0;height:31px}body.dark .details-header{border-bottom:1px solid #363636}.details-header .details-header-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1}.details-header .details-header-tabs .details-header-tab{color:#404040;cursor:default;-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;line-height:31px;text-align:center;text-decoration:none}.details-header .details-header-tabs .details-header-tab.active{color:#258cdb}body.dark .details-header .details-header-tabs .details-header-tab.active{color:#f27e02}body.dark .details-header .details-header-tabs .details-header-tab{color:#9e9e9e}.details-header .icons{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;padding:0 5px}.details-header .icons a{padding:0 5px}.details-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto;padding:10px}.details-content h3{border-bottom:1px solid #d1d1d1;font-size:13px;font-weight:600;margin:0;padding:4px 10px}.details-content table{font-size:12px;margin-bottom:18px}.details-content table thead th:last-child{padding-right:20px;position:relative}.details-content table thead .fa-angle-down,.details-content table thead .fa-angle-up{font-weight:700;margin-left:4px}.details-content table thead .toggle-filter{position:absolute;right:4px;top:4px;visibility:hidden}.details-content table thead:hover .toggle-filter{visibility:visible}.details-content table tr:first-child td{border-top:1px solid #d1d1d1}body.dark .details-content table tr:first-child td{border-top:1px solid #363636}.details-content table tr:nth-child(2n){background:#f5f5f5}body.dark .details-content table tr:nth-child(2n){background:#1b1b1b}.details-content table th{font-size:13px;font-weight:600;padding:4px 10px;white-space:nowrap}.details-content table td{padding:8px 10px;vertical-align:top}.details-content table td.key{font-size:12px;white-space:nowrap}.details-content table td.value{word-break:break-all}.details-content table .filter{background:none!important}.details-content table .filter td{border-top:1px solid #d1d1d1;padding:2px 10px}body.dark .details-content table .filter td{border-top:1px solid #363636}.details-content table .filter label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.details-content table .filter .fa-search{color:#696969;margin:0 4px}.details-content table .filter input{background:transparent;border:none;width:100%}.details-content table .filter input:focus{outline:none}.details-content table .filter input::-webkit-input-placeholder{color:#a9a9a9}.details-content table .filter input::-moz-placeholder{color:#a9a9a9}.details-content table .filter input:-ms-input-placeholder{color:#a9a9a9}.details-content table .filter input::-ms-input-placeholder{color:#a9a9a9}.details-content table .filter input::placeholder{color:#a9a9a9}body.dark .details-content table .filter input::-webkit-input-placeholder{color:#777}body.dark .details-content table .filter input::-moz-placeholder{color:#777}body.dark .details-content table .filter input:-ms-input-placeholder{color:#777}body.dark .details-content table .filter input::-ms-input-placeholder{color:#777}body.dark .details-content table .filter input::placeholder{color:#777}body.dark .details-content table .filter input{color:#b2b2b2}.details-content table .filter .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}body.dark .details-content table .filter .example{color:#777}.details-content .counters-row{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 10px}.details-content .counters-row .counter{border:1px solid #d1d1d1;border-radius:3px;-webkit-box-shadow:0 2px 3px #e5e5e5;box-shadow:0 2px 3px #e5e5e5;margin:0 5px;-webkit-box-flex:0;-ms-flex:0 1 120px;flex:0 1 120px;padding:8px 20px 10px;text-align:center}body.dark .details-content .counters-row .counter{border:1px solid #404040;-webkit-box-shadow:0 2px 3px #292929;box-shadow:0 2px 3px #292929}.details-content .counters-row .counter:first-child{margin-left:0}.details-content .counters-row .counter:last-child{margin-right:0}.details-content .counters-row .counter .counter-value{font-size:175%;white-space:nowrap}.details-content .counters-row .counter .counter-title{font-size:120%;font-variant:small-caps;text-transform:lowercase}.details-content .request-tab-info{display:-webkit-box;display:-ms-flexbox;display:flex;margin:4px 0 8px}.details-content .request-tab-info .field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:0 5px;padding:0 20px}.details-content .request-tab-info .field:first-child{margin-left:0}.details-content .request-tab-info .field:last-child{margin-right:0}.details-content .request-tab-info .field .field-value{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:130%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.details-content .request-tab-info .field .field-value .small{color:#888;font-size:75%;padding-top:2px}.details-content .request-tab-info .field .field-title{font-size:120%;font-variant:small-caps;padding-bottom:5px;text-transform:lowercase}.details-content .request-tab-info .field.action{-webkit-box-flex:1;-ms-flex:1;flex:1}.details-content .request-tab-info .field.link{font-size:90%;padding:0}.details-content .performance-chart-container{-webkit-box-flex:0;-ms-flex:0 1 100px;flex:0 1 100px}.details-content .performance-chart{height:60px;margin:0 auto;position:relative;width:60px}.details-content .performance-chart-legend.style1{border-left:3px solid #78b1de!important}body.dark .details-content .performance-chart-legend.style1{border-left:3px solid #649dca!important}.details-content .performance-chart-legend.style2{border-left:3px solid #e79697!important}body.dark .details-content .performance-chart-legend.style2{border-left:3px solid #d38283!important}.details-content .performance-chart-legend.style3{border-left:3px solid #b1ca6d!important}body.dark .details-content .performance-chart-legend.style3{border-left:3px solid #9db659!important}.details-content .performance-chart-legend.style4{border-left:3px solid #ba94e6!important}body.dark .details-content .performance-chart-legend.style4{border-left:3px solid #a680d2!important}.details-content .performance-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:8px 0 4px}.details-content .performance-tabs .performance-tab{color:#404040;cursor:default;font-size:12px;line-height:31px;padding:0 31px;text-align:center;text-decoration:none}.details-content .performance-tabs .performance-tab.active{color:#258cdb}body.dark .details-content .performance-tabs .performance-tab.active{color:#f27e02}body.dark .details-content .performance-tabs .performance-tab{color:#9e9e9e}.details-content .timeline{position:relative}.details-content .timeline .timeline-description,.details-content .timeline .timeline-duration{display:none}.details-content .timeline.table-view .timeline-description,.details-content .timeline.table-view .timeline-duration{display:table-cell}.details-content .timeline.table-view .timeline-graph{padding:12px 0 0;width:25%}.details-content .timeline.table-view .timeline-bar .label,.details-content .timeline.table-view .timeline-legend{display:none}.details-content .timeline-controls{position:absolute;right:0;top:4px;z-index:100}.details-content .timeline-controls .timeline-control-group{margin:0 5px}.details-content .timeline-controls .toggle-filter{position:static;visibility:visible}.details-content .timeline-controls .fa-bar-chart{font-size:110%}.details-content .timeline-controls .fa-bars{font-size:115%}.details-content .timeline-controls a{margin:0 2px;text-decoration:none}.details-content .timeline-controls a.active{color:#258cdb}body.dark .details-content .timeline-controls a.active{color:#f27e02}body.dark .details-content .timeline-controls a{color:#9e9e9e}.details-content .timeline-graph{background-image:-webkit-gradient(linear,left top,right top,color-stop(99.5%,transparent),color-stop(99.5%,#e5e5e5),to(#e5e5e5));background-image:linear-gradient(90deg,transparent 99.5%,#e5e5e5 0,#e5e5e5);background-size:80px 1px;padding:6px 4px 8px}body.dark .details-content .timeline-graph{background-image:-webkit-gradient(linear,left top,right top,color-stop(99.5%,transparent),color-stop(99.5%,#333),to(#333));background-image:linear-gradient(90deg,transparent 99.5%,#333 0,#333)}.details-content .timeline-legend{color:#a1a1a1;height:14px;margin-bottom:6px;margin-top:-2px;position:relative}body.dark .details-content .timeline-legend{color:#666}.details-content .timeline-legend .timeline-legend-time{font-size:10px;font-weight:400;position:absolute;top:0}.details-content .timeline-bar .label{color:#365063;font-size:11.5px;margin-bottom:2px;white-space:nowrap}.details-content .timeline-bar .bar{background:#78b1de;border:1px solid #4295c5;border-radius:3px;padding:3px}body.dark .details-content .timeline-bar .bar{background:#649dca;border:1px solid #2e81b1}.details-content .timeline-bar.style1 .label{color:#365063}body.dark .details-content .timeline-bar.style1 .label{color:#a3b5c2}.details-content .timeline-bar.style1 .bar{background:#78b1de;border:1px solid #4295c5}body.dark .details-content .timeline-bar.style1 .bar{background:#649dca;border:1px solid #2e81b1}.details-content .timeline-bar.style2 .label{color:#633636}body.dark .details-content .timeline-bar.style2 .label{color:#c2a3a4}.details-content .timeline-bar.style2 .bar{background:#e79697;border:1px solid #d16b6c}body.dark .details-content .timeline-bar.style2 .bar{background:#d38283;border:1px solid #bd5758}.details-content .timeline-bar.style3 .label{color:#586336}body.dark .details-content .timeline-bar.style3 .label{color:#bac2a3}.details-content .timeline-bar.style3 .bar{background:#b1ca6d;border:1px solid #98ba51}body.dark .details-content .timeline-bar.style3 .bar{background:#9db659;border:1px solid #84a63d}.details-content .timeline-bar.style4 .label{color:#4a3663}body.dark .details-content .timeline-bar.style4 .label{color:#b1a3c2}.details-content .timeline-bar.style4 .bar{background:#ba94e6;border:1px solid #9772b5}body.dark .details-content .timeline-bar.style4 .bar{background:#a680d2;border:1px solid #835ea1}.details-content .timeline-duration{text-align:right;width:100px}.details-content .profiler .profiler-controls{position:absolute;right:0;top:4px}.details-content .profiler .profiler-controls .profiler-control-group{margin:0 5px}.details-content .profiler .profiler-controls .profiler-show-metric{font-size:105%}.details-content .profiler .profiler-controls .profiler-show-metric .fa-clock-o{font-size:110%}.details-content .profiler .profiler-controls .profiler-shown-fraction{font-size:85%}.details-content .profiler .profiler-controls .toggle-filter{position:static;visibility:visible}.details-content .profiler .profiler-controls a{margin:0 2px;text-decoration:none}.details-content .profiler .profiler-controls a.active{color:#258cdb}body.dark .details-content .profiler .profiler-controls a.active{color:#f27e02}body.dark .details-content .profiler .profiler-controls a{color:#9e9e9e}.details-content .profiler .profiler-metric{white-space:nowrap}.details-content .profiler .profiler-function{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .profiler .profiler-function .profiler-function-name{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;word-break:break-all}.details-content .profiler .profiler-function .profiler-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.details-content .profiler-loading,.details-content .profiler-not-available{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:16px;padding:40px 0;text-align:center;width:100%}.details-content .profiler-loading .message,.details-content .profiler-not-available .message{color:#aaa;font-size:75%;margin:10px 0 0 0}.details-content .profiler-not-available{font-size:15px;line-height:1.5}.details-content .profiler-not-available .message{font-size:90%;margin:15px 0 0}.details-content .profiler-not-available a{color:#aaa;cursor:pointer}.details-content .profiler-not-available .profiler-enable a{color:#258cdb}body.dark .details-content .profiler-not-available .profiler-enable a{color:#f27e02}.details-content .log-row.error{background:#ffebeb;color:#c51f24}.details-content .log-row.error:nth-child(2n){background:#ffe0e0}.details-content .log-row.error .log-message-path{color:#dd888b}body.dark .details-content .log-row.error{background:#380000;color:#ed797a}body.dark .details-content .log-row.error:nth-child(2n){background:#2e0000}body.dark .details-content .log-row.error .log-message-path{color:#c3797b}.details-content .log-row.warning{background:#fffae2;color:#a85919}.details-content .log-row.warning:nth-child(2n){background:#fff5c2}.details-content .log-row.warning .log-message-path{color:#d7a175}body.dark .details-content .log-row.warning{background:#382f00;color:#fad89f}body.dark .details-content .log-row.warning:nth-child(2n){background:#2e2600}body.dark .details-content .log-row.warning .log-message-path{color:#d0b78b}.details-content .log-date,.details-content .log-level{width:70px}.details-content .log-message{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .log-message .log-message-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .log-message .log-message-exception{-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin:3px 5px 0 0;white-space:nowrap}.details-content .log-message .log-message-exception .exception-previous{border:1px solid #aaa;border-radius:4px;text-decoration:none;padding:2px 4px;margin-right:5px}body.dark .details-content .log-message .log-message-exception .exception-previous{border-color:grey}.details-content .log-message .log-message-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}body.dark .details-content .log-message .log-message-path{color:#777}.details-content .fired-event{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .fired-event .fired-event-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .fired-event .fired-event-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}body.dark .details-content .fired-event .fired-event-path{color:#777}.details-content .fired-event-details h4{margin:6px 0 3px}.details-content .fired-event-actions{padding-left:5px;width:10px}.details-content .database-query{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .database-query .database-query-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .database-query .database-query-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}body.dark .details-content .database-query .database-query-path{color:#777}.details-content .database-duration{text-align:right;white-space:nowrap}.details-content .cache-query-type{font-size:125%;font-variant:small-caps}.details-authentication-overlay,.details-error-overlay,.details-loading-overlay{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:16px;height:calc(100% - 31px);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;left:0;position:absolute;top:31px;width:100%;z-index:999}body.dark .details-authentication-overlay,body.dark .details-error-overlay,body.dark .details-loading-overlay{background:#1f1f1f}.details-authentication-overlay .fa-exclamation-circle,.details-authentication-overlay .fa-lock,.details-error-overlay .fa-exclamation-circle,.details-error-overlay .fa-lock,.details-loading-overlay .fa-exclamation-circle,.details-loading-overlay .fa-lock{color:#696969;font-size:46px}.details-authentication-overlay .title,.details-error-overlay .title,.details-loading-overlay .title{margin:10px 0 0 0}.details-authentication-overlay .message,.details-error-overlay .message,.details-loading-overlay .message{color:#aaa;font-size:75%;margin:5px 0 0 0}.details-authentication-overlay{text-align:center}.details-authentication-overlay .message,.details-authentication-overlay .title{font-size:80%}.details-authentication-overlay .title.failed{display:none}.details-authentication-overlay p{margin:1.3em 0}.details-authentication-overlay input{background:#eee;border:1px solid #eee;border-radius:4px;font-size:14px;height:30px;padding:0 10px}body.dark .details-authentication-overlay input{background:#2e2e2e;border:1px solid #2e2e2e;color:#ccc}.details-authentication-overlay button{background:transparent;border:none;color:#258cdb;font-size:90%}body.dark .details-authentication-overlay button{color:#f27e02}.details-authentication-overlay.failed .title{display:none}.details-authentication-overlay.failed .title.failed{display:block}.details-authentication-overlay.failed .fa-lock{-webkit-animation:shake .77s linear;animation:shake .77s linear}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate(-2px);transform:translate(-2px)}20%,80%{-webkit-transform:translate(3px);transform:translate(3px)}30%,50%,70%{-webkit-transform:translate(-5px);transform:translate(-5px)}40%,60%{-webkit-transform:translate(5px);transform:translate(5px)}}@keyframes shake{10%,90%{-webkit-transform:translate(-2px);transform:translate(-2px)}20%,80%{-webkit-transform:translate(3px);transform:translate(3px)}30%,50%,70%{-webkit-transform:translate(-5px);transform:translate(-5px)}40%,60%{-webkit-transform:translate(5px);transform:translate(5px)}}.settings-container .popover{right:-11px!important;top:14px}.settings-container .popover .popover-content{padding:6px 18px;text-align:left}.settings-container .popover .popover-content a{padding:0}.settings-container .controls-group{margin:8px 0 14px}.settings-container .controls-input-vgroup{font-size:90%}.settings-container .controls-input-vgroup input{border:1px solid #ccc;padding:1px 4px}.settings-container .controls-input-vgroup input:first-child{border-radius:4px 4px 0 0}.settings-container .controls-input-vgroup input:last-child{border-radius:0 0 4px 4px;margin-top:-2px}.settings-container .help-text{font-size:80%;margin-top:8px}.settings-container label{display:block;font-size:90%;margin-bottom:6px}.settings-container input,.settings-container select{font-size:90%;margin:0 -6px;width:calc(100% + 12px)}body.dark .settings-container input,body.dark .settings-container select{color:#e9e9e9}body.dark .settings-container input{background:#71706f;border-color:#7c7a78}body.dark .settings-container input::-webkit-input-placeholder{color:#939291;opacity:1}body.dark .settings-container input::-moz-placeholder{color:#939291;opacity:1}body.dark .settings-container input:-ms-input-placeholder{color:#939291;opacity:1}body.dark .settings-container input::-ms-input-placeholder{color:#939291;opacity:1}body.dark .settings-container input::placeholder{color:#939291;opacity:1}body.dark .settings-container select{background:#6a6866;border:1px solid #7c7a78;border-radius:5px}.settings-container .settings-save{text-align:center}.settings-container button{background:transparent;border:none;color:#258cdb;font-size:90%}body.dark .settings-container button{color:#f27e02}.stack-trace{cursor:pointer}.stack-trace .popover{cursor:default}.stack-trace a{text-decoration:none}.stack-trace .stack-frame{color:#000;padding:6px 10px;text-align:left;word-break:break-word}body.dark .stack-trace .stack-frame{color:#b2b2b2}.stack-trace .stack-frame:nth-child(2n){background:#f5f5f5}body.dark .stack-trace .stack-frame:nth-child(2n){background:#1b1b1b}.stack-trace .stack-frame .stack-frame-call{font-size:12px;padding-bottom:3px}.stack-trace .stack-frame .stack-frame-file{color:#aaa;font-size:11px}.stack-trace .stack-frame.is-vendor .stack-frame-call,.stack-trace .stack-frame.is-vendor .stack-frame-file{font-size:10px}.popover{left:0;padding-top:20px;position:absolute;top:100%;width:300px;z-index:666}.popover.right-aligned{left:auto;right:0}.popover.right-aligned .popover-content:before{left:auto;right:8px}.popover.right-aligned .popover-content:after{left:auto;right:7px}.popover .popover-content{background:#fff;border:1px solid #d1d1d1;border-radius:5px;-webkit-box-shadow:0 0 4px #e5e5e5;box-shadow:0 0 4px #e5e5e5;max-height:400px;overflow:auto;padding:5px 0;text-align:center;width:100%}body.dark .popover .popover-content{background:#1f1f1f;border:1px solid #404040;-webkit-box-shadow:0 0 4px #292929;box-shadow:0 0 4px #292929}.popover .popover-content:after,.popover .popover-content:before{border-style:solid;content:"";height:0;position:absolute;width:0}.popover .popover-content:before{border-color:transparent transparent #fff transparent;border-width:0 14px 14px 14px;left:8px;top:7px;z-index:500}body.dark .popover .popover-content:before{border-color:transparent transparent #1f1f1f transparent}.popover .popover-content:after{border-color:transparent transparent #e5e5e5 transparent;border-width:0 15px 15px 15px;left:7px;top:5px}body.dark .popover .popover-content:after{border-color:transparent transparent #292929 transparent}.popover-container{position:relative}.hidden{display:none}[stupid-table] th{cursor:default}[tab-content]{display:none}body.dark .pretty-jason{color:#d5d5d5}body.dark .pretty-jason-key{color:#e36eec}body.dark .pretty-jason-value-number{color:#997fff}body.dark .pretty-jason-value-string{color:#e33e3a}body.dark .pretty-jason-value-null,body.dark .pretty-jason-value-undefined{color:#7f7f7f}body.dark .pretty-jason-value-anonymous-function,body.dark .pretty-jason-value-boolean,body.dark .pretty-jason-value-resource{color:#8296ff}body.dark .pretty-jason-icon-closed{border-color:transparent transparent transparent #919191}body.dark .pretty-jason-icon-open{border-color:#919191 transparent transparent transparent} \ No newline at end of file diff --git a/Clockwork/Web/public/img/appearance-auto-icon.png b/Clockwork/Web/public/img/appearance-auto-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb21ee0622a5f6eac80a12ed35d104cf5d0d26e GIT binary patch literal 964 zcmeAS@N?(olHy`uVBq!ia0vp^bAULNg9%8QyUU(tU|{a{ba4!+nDh4b{%qkynd2Yd zf4`J*}nkVJ4T!*VQz=TUm zK%{AEhspOESs`Dgds}@c-?^(kUwrPnc`@_u%|6|~yE`!SV9@&O+^vVEnC;uN$!Mvr z|B+X(UOjuZthZXq#Pe)gaejV(;6;Ih`~S?I428E0Cb zxBt(tm(}Ju4v*g*-w+ya^=U)d&R>-ekEEY`{&{JT=Ipb5hKI{`$LdYz=i^g4_Q69| zFxDhWPq{y@&id?$jon=yX0vstdR^ZL|Q@8o@|U*qchjW@;UZNL5Ygax0^>6>-%Q~flFSFH-FeZNY+Y3ADn zCS6^>zI^@Y_w|O(B{a<7B2*^7a zwf_H&gPS8Zy1jj{ahdtOoipFg*<$t3s&0YMmwl3KNecTGD*KEx4fk z)66}U!n?Z6i-V&Op@Niv4Yd}C%=t2Ff#uJethkaCG|4Que`@lCe>-1uhX8XYgQu&X J%Q~loCIEotxzPXs literal 0 HcmV?d00001 diff --git a/Clockwork/Web/public/img/appearance-dark-icon.png b/Clockwork/Web/public/img/appearance-dark-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d4285e176a805c93871894635828904bd0c41a GIT binary patch literal 975 zcmeAS@N?(olHy`uVBq!ia0vp^bAULNg9%8QyUU(tU|^o+>EaktG3V_a`|RLAnPVTH zJ=+QlXl#PQ|4iilU4t4n<2gDFd+Wq-5DxVYSRS?E07r|H3?FvpU@Ebi8(TR{`d znhUhUqR!eLS5%Aox@@{c(WK{g@?3lG%v0I_g8_^Cn|=(at*=CQkl> z$KJeobLfy$Nkzqp5Rn5%jvTpoG4O@vA&*HZ`T6>v?zPWba=uGO)M1i}*%zKm^<7>b zft;FJims|lRE#{bW3O^5li-FE+1SskzrjBS&N^k}^%Lg-Lr|x7^HWlS>pZT72&O`SWMa@Dxmn zDJw5GH#c|oH+*BXSWi!{ufLzaXo?Mxnm%os6GT*Bpa1zpsj3#ifHl|axIfKUmA)Ss z4iLld#?`C{TYWX_>U`FQV!i|Q>t3#TvoE2({{Mpq2?E>Co_HlzT3cJ2oP2l-Y;NNm6cukSHew%`0D+;jenKue;*BbA;_eC?RMm& z9RkR@|R=Px73y=@$-V1>>yZYTjLorG2Xwxxk|M%G>wd$=lz}-~E%ruC=^i z<@a@)dFTHt-k+IYJ^hgNkF@IA?ET;OZ>zVKe{OT>vbJoD@V(0a$N!ns{BBAthCVFWiAu>z zGdRqeGV5=09FvkheB=K2E!%vnZ%cPylX}ip_PS@q=6jqE8oxaMzGgl%gG>R_oG-b0 zKl!VCAW0Dxzb8Vprd}}q61gNYbfEda2o0dZS+isj;aniF0NRiu`!VyJ0PtbV!!utffAoN86`p z2n)NquJ~9fDO1q3A$ZM+GC6zuQY$;pzE9I9-zrQB3El9eYH!%;&~I9&QclM)oRwS5 zloaC7!_^VUXsD&&#(HE$gM{dW_-{;C4-@e|WJ7y7I%CAkAyR+A{^x40E z|E^uTmSAw=vxcKU+rwkW+>Xf{zT7hTmj3UbUB{YS|NmY5>`La@G~@V-9~ZMY?!SM2 z#)0Ya4n0*z&;1J8FyphXX5G)d=gt`LG%K9=2{Iz_o6NpHOpoTFxh{&CMH_QOxxSF%DZ>h_U++kZMVKrJ=0h<_xIY9)ms05LjnM3`6;WP z1tldV6%`q4O~WIzU7zefc6R?0>G-&~JhSEXu^Y~9TC{H6x^1^}LqkKK&*`vu{$&-@ zvHwzr$3#9JIkQ=FIp^b87Z;oJ+9|ds%r*XSW5I!aBEGV*Y|SUF*X4_|7RF8AY$DaW zX?g$)Fci?^BB(#u`um^X6+}{_ubH)AoSEn}r3Cu3K zo1b+>eZBkDJHe;p4#{}@Z@O}GMRnK{uZ*-G{X(#44Y>AvrT_Ijo4C(&g_jGhT#@zU z$jkZmk3*EyR|&0L<@H2GXyy$4iNT?rC6B^BhN-WTI$Ca2IA8ejNsprZRjZ0VoRqEU z`AV9^dt zk3Z$NUtIUx&eHSlk?x(DafsxJqy{LsrMTs0)~Bu9@6fcPtKZLX^;O-{%W?6)fccHV M)78&qol`;+0AxC(m;e9( literal 0 HcmV?d00001 diff --git a/Clockwork/Web/public/img/whats-new/4.1/commands-profiling.png b/Clockwork/Web/public/img/whats-new/4.1/commands-profiling.png new file mode 100644 index 0000000000000000000000000000000000000000..89fb89e7ea92484dc2224925f2c00c4bb3d0ce82 GIT binary patch literal 173744 zcma&N2S5|uwl<8SpwdL7C?zT&Hkycllwd`qSwW;kM4FU<^p+725CNm0(usmnR18Qj z5;{nW^eUlAfB>O|^qD{B-gEBvp6{O5?_Yu0lY#76`&rLgYwxuuG1pBE1oj-SELG8%(=Gb_#0k2e>-5?(x|Ec=i>H5PS8)k)hMYm8k~3k zCHi&S{&l*I_g`l_r2cib*YjUzfBDD%$DjXCKYKkTg8ko(9xIO8ra3bVfn@)g0KfMQ z9nk_>^+$6;^nQb4j7gAdG{=qD9#}px-y9X0Z9IT+MUkmObdKf%$ zgZ>|ylk!ipQPvbm>aAD@q<&`mWEE)h7Eb{P1|_8}bW&MUU3F8LFwsr@LFg}*CQ;x& zbn(xA32Ustc4Gfyk!xHA-#-NzifyHup5i7vtN%>&(%L&mB-RR3AC&cc!bBi*r2dmC z|J@JJgmzFX8(n*|ukOaj({yoC$}Ver!ZU}F18q6`h7Y7XiVORkR5G=%wY>2E>LhpV zFBdS(v+(qi*IX|cJI|-32f6mYwmop>N_zR=OH(&2clW)%r>f5Jg{XwTfrX;BKM{$nhFYw!!t?%mgRPtwX= z=?5Y%$9C&J2#uLpJY%KH6Z!U*`@mC#OcM9cjK4L`2A$;whhxk+h)y1LjmM|2JbHb` z)?~tFk-0n_9He!Bma+Dy4~xZeK;*44eWXNEJm-8;y87r;kW}!G&{sKD?b`E;C3kge zaV>v801O7hx%00ZBL|X<2i&F4F)W zRy=oS^8v@fd#EwZNyguIi$z6Q-P412KUg`5zY#6<#rDo3;F^?DEin&vip))jp=gnl`j+dKQ_6Tb~);ByP@7TlWnC zN`DuKI9v}Y9WZAP;33#%q}L8l(_162uAFkMoKn`3Xabjx1upGtC7K|3VnT9%u~A@@ zbFe8~`*Dp3ayQNbzJ+!U-VX=_PyHt<{ujfc47SeExQ=W*gh+q~*zKOotKHBm)$$lT zUgor?AgAryhN**<@+~6=g-2AHmv!t}D$AAeYSpTN+>Gd8Zt6YIH-u|%d4W!m8w8wp z!`C8w_R)!3ii3Vz9#aW4OAFKu0g{ z^1D}jT1v-PlTHuEoxAD~>{Xnr{($)vaY17M^Bhi?DzC`-%?ErMf^{oGvJJ)ygWgw4 zVD-7$EHwl``CBp&I=0L&$azbZyCY`k8zWet$%*0A0c%U#H5p>{TVU{8VrzWHo8uM6 zJr2Ra3*T<=CU{a=si%!`!03=R%a$cSN?HrVQ_3Z1kFV!RvjQN>(7%o7uU2FY(Y2~g zGZb?io)9TRn8e#Pdcbw|FmRQF@j;ItrfJgeyPp^LrHv6>5EMv{&|Vi>m*1{w za2suU3$bwKh>f{ZXv~?rA3Cs#wLbg_k(-8d%ZeYW7 zvAhsIJ^pKlyc=LBd6J|{oqHhE8 z!4(RbDcc83m8`>h0lT=={a=1GeJ9~@KyomshJ{vfe~SWUitb7=qf-euFq;Lwfwgec zBQ9a=^hoF;lq z&sPfZ_<`N@snDo94e(c*OS`__2E{4VT$EICwhe}fU&Oirp??rIycgNYy((%A*+JQq zzWCIiAR+^}|0~Lr)$}gjPfK=T!0Xg47v8dGCnD;r4wnuVNe`&5qGNC~>XruMkTy(4 z)i4Srx8XroeZLVD?B*ZIfX@|!8YJi`x}cs`7pS<1bb~6QON{i+WPjb_V>13AxG@H~ z4KoB$NOZL8k#%w;9G(H{VR2jtgqT~z4PTUkRZ

L8dzA* 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%0D1IbLGV?2ut!{3 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 Kbb4>FqSuG3?twb|y! zcR#r-A>txL!^B>TKbeH9i`)OD)qNN17Uhk2SK)@vp=WiO{w4c$ZGFWLPejVUYA!=vd!Z`h);JEqvj@XS9QrjN{gW4>DWBupGpWIpX;h(O- z!GDQ&vMIR9;U>8v3?J#dScpQvei(BgR?&$GjK?-UVq z57ju!I~{gf2MrePP7+mJ?*?aN!lEcV&c$;QUXU4hgN5CJ$O7ZsNlFjIewdMIJi$(w zn^6OxDOJ+9wAalYLL6;?1@|1qJglq#SAE%}9eOy>u)SQ%0QsK#x8HB=;W?}$62DaM zf9*`l6k9L2DQq|I4^njTNig|binM2VK>z5?=w4RJp;SeBkTwsak91p7+{=hK$GyX* zu#(EH21Bpd3lQydV}T4BoxETsodU*NQ6J<2zC&~kws7ihB88F<&n3xUckaab0$kLN zvUWO!vC#Ts4OwnUiDhL}tGGt+yb>TnsH;k6_#KER#x%oUpW}T;TeUdkjxrzDfSZ+V z;iup*ZKNu=fbWl@FUl+v#)&t(T#+o0O{ynMe@U_8#1Ajj`9>dgCBo+auF{J%xgUZ6 zL}ACgS&~-!QG(O4IUhm#UrN}+gfy}vTO-ID!I#{~3RRPNM`H3_)MRC#94HICMyOb_ zdZc-saXhO1OC?c%WdRk(#B0<%XXltt&ggwT_k9!QnBTrDj_CCuRncSA_@ihyQfBar zkzC3>ym2BjpFe~19?|9&(6Gy3(4jDmNhiNk72%i~6H#zk_DkU)P<+&Y!<}ovxJ#$@ zCUs8+J1HR2$3Tt~j}@Q`9bO>OPwnySyQR(DoQq+)D74-u8obJy?bzhT9%3|^X7l@q zd4Mq6!&U4LF0^GjY8V*G@hVs_bw5gC^)SE35Ml{40PdlL66U-Tjz&)g?zN)4le0-a z`)?el;s(oY`TiRqB9r6P_mz+B`5!qQj{d*O%jVu>HZtO%`XK}bPzWL1SGa;e`Jt?O zov3sD0^q=UFyx&e4vLn+^M?s3XulCK1=ioh4MD>rNHj5U!?R6-1o{ay#eOM(_6H$? zLB45yWYB$I^g2cN%+Yi{%`Ve)PJFL)RsrsKCs&RDnUc@j=ho+|YF*NhTDx2AQI;@h z4uXzUkcm+W;Z?gZ1wZlmD#Knw17melLeN)x4yw9?vhU{ z?ncgg{cq{+u1YVhia*I@TCNV-vJrW;;c8jiU5_Sur7zd0)<46~dz%ol&K>%&KAX`X zSHSozv~zDi&Ua2OWm7RGKP<(jzZ7m8TfX!ehgxA>yvpA89bBg49ZKU(*>1VJ2{+r0 zq}xs7{0<^GP5(5XX}25fI%@59CPv4J1kVhEjY*9%15pFR0%bqZ{hJL;-E((5YN|) zchey8jy<+RRAQlwjMpe7CyWTMukNM}woh#&M?s=a*1Rv>i#yYJtoI!un!e8p$1cOy zLvH8C4js2_H`T2tWi@s?0+)ecTGkx9j#J!AGJ^BP#9sC0ch1kL;|Cr zkyHtpQxqgvFBzZVq(&%E7K6%Xov#-QrctObgE+SRpl7*MXhLh?vkW*5CzcAqOg$M= zkY$KrFbe7U2*T()ACU7h&blR>E0mY@ZN%*>eiEEcS-L=ooevzQL6YLWC?vHw3HSJ? z)9Ve!(1G4L02-G(W+qtfv4QYMni>U!qA`ladjd83D{a4HW0H>UjuPA|=~u<^{ zoP(e*@TjhwcE?kaIEVy;Xb==b#K-46#I;qj=ncdii!yEbRL zrmxqVduTo%tW2|D@j#|XfYdCX zX7=4KHJLACOLhA0mVld&k4Zm)o*In51)-kptfo%@oQXX|;i$nM^x941H4`PFnrLAh z<-E<3pO+#4-&)=gfjZ3cr7|`8%wZ3{`24@iJjv$)BP~*?g-oSxhuxh#%L|&#ce8uuq>7ts3wsp zG|GrIM#Va3o}V#7sNK?a;WHyu^kmiwyWj*NvGBS5@Q*5U*>;H)XavVMHZ+kg%%yoT zi)}dJv{=H=HY7&K>x|)}g;cMZTzE@xtyZ3X@po0=gH*k>4nQ(WJk+_HEHJ7(eQ2I^ zJ9;kjG4(}$Ge-p*?Sz%t*Peb`dna>r@UFIjfJ6BDzo>&1)u*wCypQ@^s@5f{hiBn7 zslS|!geN(j#ZbzW@=o6uz+FkYbJM;C{RU>eM_}?n7DAeW3NwN5OBbahj}&FFHf^{n z)gWyPKgBkLG3RY7=ljh~2a2DsYf-D!<=By%^=UyUvLv3P53f`Tpdy;SWH?E&mGjYk z*>3MT9X`12c)sCxrPwwx`Zs|7Y8@6J{k5Kef@Y`NVZR+$+KQM@kB;=EvsORT345j= zbpVBvl<=$`GS1JAYD7OIUOPlQ@w&MR9vTY^b176*$GA4Op!(L&&r+GL{Cb*JFVhSb z$sQIQv=thOi?;O<@*|tRlze=(BBhJA!&SXopUpDy>b$^2u%y!9vXVUbG&T!o^E!(+ zKg9EtRyE}F?Lp|TYS4UTFM_5Oip7i~a=64;Z1{`dw&N(o$Cv73udUYwiA2Xf$jkI^ zQC*wn63dR|;XBoxw@}cp7DEO#CciHbH?pwOG;dj-ZCve-(u#r@;78RXYS_HeLIH)f?+Zd;t|Gghr(#oS@oZ zGh)jMmYP$q^oUmcb;-vrmv&=2~t_-QdBd}bS1m|guUIa%b6N)>Aj zhh~C1`@VNpr5x{Zo3W);DH?_h+@jmk?URxtN%c$5=Su}Fdb1a`cag)|Ub;_t2JmTU zOo2^sE96eVxnoX#Yq&rFJ~5mY4m~ z2csH|0F+h5J_l?~t3OCF6Je7~GH%Vdgp%i`wbuLb#S~zz7-!(}b7rOI@DG^$l2(6Y zig*LGMNd) zpJ{MVpk*}a1cEEF-q2XyN}^hkBS#vHZtL6Zr`ow)t_0cxK)JOx)=BqOCMy~^aY}QO zO;aTEJi-%cIUm0o;Qi%McyES@xv(T`P`6flv^HgUFTKdJUyaL86gO2NGQqV1%gQQG zx^xuzvq+;^JRg4&+^8P+XMt4rP}*?g@6^)*Tb9*^x12jI59^eEQjc0LJ3{|wzfB?x z{rHe@k~H);i`$DnEZccew{>zqK1=w;W`H@#ev5-@QsMCXnHX!E>v0})0yl@goq0(n zH-*mxzH-CjTUHv5<@#@1Wj)waSjhY57q&(3hE=ka116hUL^Cf_n>_n0*HuH?xjiqD z|HhZwFbWcsy~-gy$UW3$4REE0YT zpbcU}<0sxldzT@<+CBNW0u0~n!B9C`cs3qp#%gv41ib{h8U%z+7wpkfKH{YxF3%hv zI(LT?L|cmnFZ33 zyYHT|<)WPjIta_zmaM%#Ytj$gA%R6mI77tve^9?5LJtjQ97@3z<6XVj&3$%bsR;3=NVK>T+_qy8#m{*{spoGbNBj$d` z1cMb6v_gu3$C9=di$+s=wgIP(aa^hvM|<(LO1)i&Mu}1c8`|H({I0P=xB~s%0F&7G zIXjaQBq0f`ijbxO)$wpVe9nvi37LL&U$gJt1pLV^8J4i%*vl%8f3C%#Lc_FKTF@sf z>QDRE@8(bHrJWR_Mj|ocRp9wi(N{i)Dg}wHHde!-ZUsjm@f$8A(T?B6(#K8tR%@uX z#lC@-F70k7yDYGhf>-mVq83uNsz;hRt}#DdxOUfA6rGM28lYZi`63hgoW5xL;vqt? z?S_%GBctU$AcoI9^kIWRK?pvwLf-dW%Qu3&*r47KZT)_quoH{_mnjtrSmjF#wnpJH zNE_B~E}=~M&VwK??v-86z4MgScXo!D`M^0(2Z5C8(Df{Ov-tlA01uZkd#K%5>6~j+ zaotR4Gz>Gh$Ky!t=ZB%!U)p0ZYFss(-%^C4M_}9bQ^Q(3o^6qEZ?5V^J0oFog`zpvRf* z)VpDR4;yI;2~^kU=yY*MhMu2$TQaZSQ(7?cv#ZHp3j?DrL8R_5{V#toN}4p{Z;Zy& zsl)inQTt$&DI;D|;f}XHysl$_U`@8Q`dtn?i+1i_-D-%UI_R`PQ!~8(=RQHqDbwel z$gygngU}?eHFroY8;(}9&eyqb=;F|iqO2<7X!?qS4Ug4mzj7pyZ~uB@C-Kryb!G2b zlTk4yh|64*@+x#hkD6MxzMUA@snVMfgaZD3Rz`xU>!d zFkef=DT{t~#izGKPv7T#&sDN1!6@OvHEDHWDKZh0Wb1AnCS;vxN!R zGalHCX=Bi#nWQNOg^tZ6CZKY(Q8&Hcr%NMwiI`PUxjxUI?|Yhe;=k<-b?GE?*ko&t z9d*%Y9tDRWyJRubM?u8$^sy85O=fGX=X?(Q$n>LV=ebqT{j(**c*+TLWV4Dx%tODV zb1?k?4*^|HZz6@|VSP6raleD%o8XWJ-7}{17m>P1sLjAx_i4gmNk4+S@ki(2Pbce& zJIkcHijcMpu?a!_Cib_(ZyjikOOOhbkw)ID=TpC_BxoNY_qKG@FgAx<+TbZL8AKN4 zV*-MR74XV5iQjVdD9N-q!KHPmy{3ks3B`Tx3J5Aiv7<+X?>ZDD{3`yQvAkStX?H<< zroK5oteA#EH|(Q4M8DDjk@OFep-?ydP6<(Ar-WQWST0+EaNOWEH547G7+mi;6jjmp z{BM}GX^s&}blxLy;Zd8aF5?~jqT5=sENkZ z$W$T%kPW&Q4p7z;-jc{t4`}** z5L$}b{%)l#z zF7b!cC(%n=v@Da{`54AdbM#Frbw+wcp5%&YBVD?&N_C$PK4hV=NRQ)Q;6}OgL6ncQ zA^wD|DJfSe=lRvx?rzN0^!Kq5QbwqcFSTJR7oHcvMijs?@ReXWHjJ#ZY(ZUIO z&u`?nJiPP6N|1646{47D$q?L8I?v+rpb5I+6zY$8*t}%UF1-cxER>^nK+~wd9%^6z z&aS1A*X#YCQLwrwaHD4B64NilHA;8quJ3sQ1zAR`+ zT>2D#D4Q7{#D?mPones2m9ZlC;DIm*xRGdHw%%h{18EMP*<$N7&@t%mvKr@=V!Z9* zfcTt!ZGFo|PeDZdL-|qMg^{wg754ep@kPV%!(3?a90HV8*s1Os{+in(t|o(|(ZTjk zQ`T!v{y^y9m8+_`{w-A-Pnp9ucPx7B@%{Od?_|Gd&_zGp2Ls7qbe#0rqokRzuxuu3$zc-pyFrhUAX3M%_UugT5T;>8WIPIK;B zS)rzSKMk=y5Q(v-Z#K&xZuV5=a4dL+NrS+?kMyElgd9qd$BvdmO#kv&=yR@C1ukZb zM5$2~0U4jJR|e?2JJUxOD2rA)UpFpiA4l0>YIFu)c@?U_pZVs! zGl8tMawmLai}ZTOJoE#;mRN znuS@)BbUmpd3K(Hreg=bBg7vPiZM-;++Y7&ck({(HeD$DYfjc!eei{6fxCGb8D_);jg z!M2*IL7$q!gwJpY!faTCPHL2VNR!w1-WC7QzTSK2=1d)sM~{E|D>HLg4r}dmC z^W1?fn0acg#gprGxmLI{W zjJ{56CzSA8X~DMJT(ckQK0rR;*_Zj5L}zEy456jOZ~uWtvA%tlM1nj-KGhaE^o%l0 zx?Tl^aFyz38H|*~BNmt*U})2Eufn;rhn5xB$`R~3o`ce9zkjxaY;7S{rR)AWUL#xx zi<2l)EK^ZGD0bs93NQQVF18@0WE<^1x6(!ObkZ?KxRpNq_JH?0h;QkRZ>u3&lR)PjKoGv!*38U`rWWT!Xe}EX!9AFZ%6_@FLOBp-3>d+`$%Ez^6v?&+M}L$%Jisz zp_3_!L_&jdLC6jjh|%@ux&9U=mi1$x(P>7p9kgZ*%|~aBjDsqxzUjue%#K)0f>A!6 z>VA5dfz>Zb(ss=Mtw>WGHVM#IJ`(cRK5w$ou!RI)ke>@+vjC^v*G!ybZk+jI6!p7; z*5^7hY67_@?12zca9E!hA$OEaknY|Nu=j)lZ7f3eVmMYi|<&EnM-{hSBkOC>8+-~Rk4-DveZ(ON5mwuo=m z4fO{%<M3nT8#aT#v1QcXzJ1IP%zeWMBd#n~K z<$zItkQKAbf2p#CIRGY5`S}6V}~rAUdd+Y1gWf1Y$5u6j-NWh*C-}&G7B- zuhRxW8}KhNeDip-Xl-#tOs3sL?$i8G{4z9=wqAQUg`!Ef_RZ#+j0`X-uIfFC!a^RK z*6}N5vJL_UZ*hunf>4jDQkgrM-({RRUDDZs0)JF>(EFh*LV-VPIGly@#?i+*fr-s( z;%_|<8*3!OG#g0yX2#}oUDfNB_j;I}p~zY28;qs9P!+xEmP9$CkCda9OM!|wuxmeP z&J3B7AefH5-bv!`yx*O-8&1KeY^=Z>U@p@JAqR&!M)_p|@rzjw*%Ebjna@I^`Ve{B zC06~t+*i$u>8m)Bt*qZQxZQvvS5!+DRE!Q(U{DwX_0R^D_`is7OW8 z&&^?+^<>D4gq0RL%9cnWbju+uLUQTK2SOIR>}Y|nJr{*7Y}VQl#?p(dmyrDs@wg$x z)H5^-CKc113Y;m*C@ne*WR@}X^SpETLeRS}4ORa0>W;SK(RUxyH0eZ|bH6gkbCN88 z{dzGQA?_c~q}&;TQim=cDl{hS7llQc?ICx}ylo4)Az)n*E?j2Av?{zTUz$Pil8%d+ z`g?oHphvRkIr+9b$$9CtQNv=3X{PQ2XB?e(G^!Eq0lw_u|Dd?~BIP3vt3(O2wO-=K5)f^BFdt?%>L z_>RlEz35|3$rb`?T<4lpx3GCrRe52renvt(j+G+pW>f&cm zG9)vR%d;m6etC_dgK`$1f#9LG&a`H<$aChs7F4+C1Gj!xlSW5ZT4kf)d^J!>ggYW> zi4^71$E73nhz2Ou;2%ZdCCMUhlGLXfxXdUB=d_wW;2$K$Ld3t5fNXjN;qcmGg)P zPZ+7kjbuaGuZYUhkSQJry6+?SutOre;W+=D|HvMyz`2)-O{Kie^Ll1z%#?ZdA`=l# z1sv4+i{Xkev7EJ|LW#fJcJOicQ;sdW?(_!l0Cx^7>S1?x6t_0Gg;Gh(^?4L!>=6Cn zKWXd@#D&2GUBqjUX0<>9ormJZo4pX?6);7W5;Zv&!rXb42jz@@5{C=J=I6u*w$rqz zk=ng5#y_!Fje&+cZq8r(f1LCjAQ>3G9qXzDfBpFTe5Ly-dwRIiHoi%UnX-|^5wD}c zh}8KGauB@HbX+0v5YYhcbwRnXhKb1AFxZtccu|I$;<^z?tw8)YM;3g=ks3X; z&F9gfyOhP%U>oawt*pjLS+{Jy-N^cWrM9EphR}&oN~#qAHb}WdjW{Ajx7$iFZ~(4k z!aO0^S1TMkyN6M>F%LC=0k0Fz!fY@wLMjpBDl|%)8CP?|i#g&w`?nwRsThC3nM~$7KqW6C&Xt@j%FQe)M z>Qbi)S6n4H_fRrfT)i(L%J-sWZ#IF4dfDXq z81)>LIT@$Cm4+X&9`zR!g&JLk?UAK@VcU|!hW9gGn)t?U+!nn*Cvo!lGwwP{; zmA~p_28C`aGi7<-Z~|--UdMt2yDK<&b!$$%&`wCmTfUxB&IGm$7I|f#Kn%v^`Fx(L zbEl~ygyjMJ<|p}lqzq*9SfNPiVVl-fBYT>-RyGuVWprUjmb$OlOU2JwjDz%|@&uTV zzDV}gpC;VN4?iKU;c)(M!S1O&u|eiG4GXtWmSt$t&q~P%(u`H`&P@vnmSow?GR$r)K=OntE|#=STH^mubrw)jH*Mnv0SRfO zJEglpR#LjVQ|az53F+>T4k>A*q#LBAmhSG{{r`NP?|a|xzlY;NjxM{i_srZgbI)~Q z3y6`HuKOvFX~d_z0}}W34z4OjwDB|b;FipB%4Wj&ondy0wO2dJsbjp zS1_pKc4WPOy6hHuTYu(-zA>TI{eB7R2p_i}11+y0rYL6wovTT#d{a7f_w@xI_=*6Y z&>84c{l@Ul(L?8R3gmqCNh_2K;$+pbn~bz1 zKKmFV@x5>0Y%lwK{&l47=_0N7o&S9_Zcs0fCtwp0-+7XPweC8IV!JL5&KJ3C#N7z% zbq7}p&0>3l;`IpMBXczX2RiM>%oTi6o5TJ{lr{n zqO=t`H>I4j;E#DHF=Wxs5>#Euv`bb_lo(Sfu_dHx1pmF|tk@s7ELgTHI7a)5(ejJH zG(%~2aAMXYv-<1^5o1i2LuaeIZ>caA7LsK=b^4y&e(ObhRhTZ7U)E9dQvwlVkcz4+ zbzqNQlZNmKDxU-%*Pp}}KwU5<=3K(XK>&VQyE~3{=Y5ScRfhOSnxM;#_0_;NGZBL5 z7AC$`%;(}Qii3>j;`|@!-S)+jhZ<)Xp{)S-p+mZAwFq-9W$8%s9BD9P-L4&=;5TzJ z3|jghJ%xBuH1aLQ=UzxhF0a%$0r$~d4Ck`;WRqVm;sUatTq}$j)M6Vtt#ERqDq=qL z&E3qPOPU*>Iuumrx)CBsMhG=k{Us^smuetPzQ5Clls<;MU8{nBD{daM5U-@q_c_N6 zPxP&|&uqtA!8+UuRws3OM{ua&XJq4(V(>mx;!|ZcSUIyY1l!Jw8#ZCuy1e0Id8%0Y z+>^Y4^i=m2eioeEO6kWw?Nb#Sy4Zy_{2%Vz6DgiXlu}OyTkYO-$;EZyJbZiXvck~c z2thRox{f&8P0nWY0n7fzuYRPAD-_Imj`Novnc1pNooicy$*7OU_3k?q7(`b+aN6^E z553+Vu|1vwXL|a@Rk8|HgAWFSin|X{&{9;Dcs4YMeLxOpQ^v|WJ@T_j0-BHK6HUaI z^;ivS-o~Zo%)$Jb1#&06Ig^W&Vio;F={1D9K9@fS@D4R!IJfc!d4QK%t_p6*qfhc3hlhX#M4cpnX|HaSM}5g3N|z(gK}W9M)5tY>;q9Wn!)^^ajVH?a1+)%%{JB7=4N@~ z706p?Z!BBSB3g<XU1YMM9w&WA*I5AQ}{O-?G2Bes=NTTV3|NR+de6mY2Nu zA}O~1fB_zLtWV@{Zh4T1_gn;cG!PT@WO+l z!}(Lq7yIfcKT^E59IEQyR(w<>WIO-?NM7xq>-lFXK?(jwLDZ0rp>>C1Ow@Qme2b-^ zPbuOL%kTNLZ4FAnkt)1T7ALc@CGH$Qz)_AaGZZ5NR z&DytrkWmXV~*)aT_s-K2>-%jl9Kq2HtiJWGK3R@aULO+HKV21>c zllhz#MHy=oo4@US?N!}|+x@osmD(eZDA(7?uVoW|v{xzDGee=$j+dAmucNW? zWg%@%fJ?aE+V7vTui}wvdydXpV<~>ea0T&qb&iu(8-F)AF?A(StG^sZwt1=Eso?!x zRQ;{gKz~_FijV6$pPa1kZ`se+G4Y+`hpd@IDfFbA<&xs9Hig=Fo}mSN%_9Xvqhb$G z_kAe0F<>916LuV}qcB5d^MM=OXi*WTs-3PdF*&{0aVSec-R6>Pr6-9Y*dL8`Tsx~_ zw$jhQ$|(Lg*l!{w=^Tf@*}QspW7<>y?F=5T@xuiS+>iOg_=M!mRF@+nCyApBuG>h0 zDC?R5(_QOMyv8q_3{J#YHFd~kRZcmLul2`qC`GN9KUY@e0V+LS%`2XZxhD>zsn-nG zKSo*2{GEWqB92c{B;%iG_T<$%O}Q}t#8!2eDK7I}^PxN8$e@9=u(svTxnzj?kvjO| z5oW{g^LE*IY1BYxfMg)}8w_J^`K}J;c4NO?gtIIrTbYu;iD<~o%p{1>Cdg=k~uh2X-E1v31KH{ywLNddzLTWv+xhoaWIt**m#-^%X0> zPrvv|S;%5cHLDko?gy=#*{jxXXV(htZ%%5|1~A4G2yA$E1s$Uw78YUeg2sQi$o||p zAswd*aZ304y2dmBYjJBTKeH0C{^k#&iohChG;tqLW!lPZo663$KXclK-pAVta zAs%h&a|jEW;C_7`%eWs`^_q<7E2p)w_^bnbwRKcY!b3SS#mI`3auz%TlGs~;g{`i* zU!M+O;El2-t@@23EgkdR{@ssF2x9p`k@U)Za;Y`Tcjr0I%?{;w82;Fm1RkEt!`e<6 z-5+-1y==E(fdHnPgD?QoTa2{`?++h+>?CmPZNU9gw?xGPy1x`i1~ccAo8`umJ$$HNe| zc{AM5wXWQnX}!n5s!pt$Nw^|?Ez{*z5~C|_i!b}K*KyQ=#7X{hV$q;1>@Yla5neIf zT;^LjiNNSDhGnAZxOMo>b`AWYMT~`*1E!KGi9P+Y4v(OaD5@p}+w}m*>XT&%y_$;% zsuCxvDSJh$Lu`s#_|-_fHG)1+)N`-!6wOWAbhcVv?#qH1&e2nHP%k4+O=|+-t+Uzs z035TtE`o~=&^2B^4))a}k5_ReF;fXzdc7CqDM*RlI#^+z=T7^^a?qxoJfad?M-1~eDV=YBW@oeA8-QL^T%kfH zEOi7ukOB__zK6X}KBSCI1+M60yd$*MU~r6$3Ke2J;ALX27T@2f7szf~zu9oO&BMCQ zZbb$wtY^;(vHIH99Bh!|+2PPdQCPP`$SM^gbb-W!$*{z0_^lQ1Bao^!{dr8TSyXd6 z)=#*4oqQCc&NxIobU(E_e7(LG9DJUORqFwh0&=#@6=LhUnQP>YU9%>XpQ@i{`)iLr z&gn)RB>D7=58C0bHO&=qf7y;k-Z;azCtbV2uc4(m>ssADZw_}L#2d@9y*$ZRJ$+`_ zSi@;X6PnD#lp^dU`l$d@ra_5&fxekC=t5kAF1VlX*pI8lKL2q&XU+lhJkujC}C#GEE3yCgbj;MH%=;#s%bP>H~4 zGRa}PO^r6xolNx6dpKBm2YH3vFo*_yBR#WU9vPN?VbcFj6-o?F@X!$r>J(|V$_*$A zwwGKAjec&O^oy-ycb>f<+n@1Mi@Zze#7>M~dLKZ1ibzf6Ju}%Avfjbfk{V_g^~lT> zMnq>-BHMTXMOx>PZ91Ev&iU8}jS9E|_j=P=$6xq_XdbR>50o^U)!g?CUYbE%!MSyFIg1?yrh zSVD5Jjt-Au{$zXs$x1>*b6%>^1r|$k(P&|?lM42typ?!oC~Z`?cz)M^kko@+glJKj znDTG#1Jo}q<2N0tAEdhF+s4B8S+eM+`Hu3hczN0fzJEn*aWvGN?UGzCrE-@b%V8t_ z5MH-6j2DblB*BBEsijHL;*crC>4CGrg08xgeIix*5JxQc5Xo3`$AqZ3c<6Fpz}ShU zCEu648^FOO^q$qi(Z$!G_RKRc??tV|mDW@fF;A#7b$=#Cr1Q?{xA<91`T-=bYj7v} zO5`_G+!bt(n$&1V{bTS>9BwF56p^x*Ijm~~u7E}HH6bF0)X+iDt8^qfX8N4eyPPxM zQv4uS#mDhC`q5H{@f1a}Jcwq6DF){E&el%;NpN($C{MnI5}UQtJm<|r8vN=-ndY>F z1-u$;m~mA!GzGX7;Tpn^`-KvAHs56S4xeTzw0#T+5{nLD8KjEXV$jN_V}} z;M#?!>g9ZG^F7p&#^R6e4-9in!g{;fTY{Jb?NHqT^_PiY1&jO-l>*4GZA&e0`Hi;V zf3=o7rMCv*sna!Ly3%m_bx@gOM-(AYzcC-Lqc~+eN7~UKjrtLW@9ONy!KaeJUoEj) zB0p}@@_90VsGE_fDmE-;X3bXlD~olnFirxMr5sQp6|^7ENRfn+`nmG6s=4QfgBS## zG_#Y(pmQIF%?ZENdv-Td+GspOLq5!0gE{=B91${Sdp^^-%%JlzIX{!#PaP&pMYr?g zOy1~nnzvu9HO9ccuZq^Bl=-m80!*rM^_0?!ZAg0aC)MI#9W`PP@Nm{^&s_pLy+vK) zNQz7o_u*H~EXJsG6jDbfO-Rwd4$TgMc=I2Mg2tWK!~!<&#IEEosm%krLjVGy2Wr*qYDO=q+j#dg!i!yZS2@6&|w_wHNPxgqzl zE1;2wCDZc;UI5_IoL0Zqhp6|Cn?d< zSCx@;EJyz)vUwn(8$v4aLVAIfP)b(x7SOUk+d@8b=0 z{%W|>maYa};;?ZE=1HxDQktcI&&el7Uw z?%sz3njF(r_!KQtcqs&+C>UeHk60>fF%xY33UPTUD`@=VMx(SRlgY6hLPnJ)k`nC) zy}HWk)D3-D@;5L2XPfBAkpO}Z)69gn_pr|1CDsE@3I}m zEMHSKiJ@chYwpog?HOBYp(LlX%W;R`a@g9o?-xX6qmY=|;=t>xvi;#dM5v@f`%WZ2 zYt7BeTV!zNibI+)}N_DC@C%csO28O>@Le$ z><|wwINJ&3mDH2w5cp5LEh?74QCFP(0BMi-F?%X6{jP1FivAn1Lt8{fCHsB>;C)3& zj-bGerXVEAc4enJ;GdgyWiMvF^Y@s9Z2Eh8eQI4D?G@n%W3-nYUALd<{+R!{cH`Hj zRQn~rOY_w_k^aW|V@B;67K6SVi_47(K zWT|Xa@o4pX_g8%bq1okJd-OAZj7AI2&yrNCHbh$Xw1E;o#Bhi$H>hw7Mrf;i|LQHd zl>+Ky(s+iK^>QmzKqA3`M-rpxh@gN%Xa zD7vWkug*@9m$FaUq4BxyM--t}VzfMbr;UY$h3O;=T+>btDKc3@om888+wx-Fl3cHrM1hhide$B_t_4#I6Vs9_d;B{b%Va0r^k-<6q`vMiYw zZ~E2r1LL;pt;B~nI7M)X=x@zxL+s4;j@4u@>{@T)_H2D|1s!tLYrUwd(s?D)KAYP5 z%nV@RjgCjk5lXt~rX6v>q&~>nDxv!3s>p*-(&+t7{z)Nc ztdp*@$tX@|YtUn&D$N_o3M6^__1Y6z#mUN7mbJ)1^R58k?c6go`2Mc&YkAAkR(HbQ zU8NXU#L7VtpT=);(LCIG*F#@+zViFSOWW~#DlIXu+zweH-N=)tT?Ia{Z?#$_# znPMnh@<>aea+}A;w(J4|k$XR$4Weu1o~S+vNc5_LW=Tz#%x}INRhc6Pu50T*t8Aw` zN(caW=Im=NQKElO4RKudl5?WMo-;m_sGe!3M zO2&Mj;4)1Vd24fKa`1Rxx-^e|A`7WqNXd7qUwpFTw~UG{Q=Tj=EC^9iQC@b$ozS_t zIg@2hY#A9szd}8OChVjaP}OKOM@*BVOmF-b~4FhNAoRJ_7_@PZ2 zhum9sYf;apF;{Y5DaWdd%UdoIf!m)J$&qV71wZD}&Uak0_TA{|Ub`Q)3&~!Ne)b2m zH2tlV=qe>&-;SZhN&0Ny=lFq(_w=8-=sRCz2kNb2<)5ee_)ZWv1UL0?d$R@IQ264C zie{{Ee^k?!7$8^`%0cdJ>Mnpsu4DhZI0a_SZ(_e<-->w@pEEnu1WWVy-%sVTXB5Aa{ z8-~+8$LDYFF$c`A^g=l4yanofQy$;c=@=Eqy@>{-V?=@=1|OhE`AH3Q6$2FNDA(Z= z=?O$H#RC`%k!SM0ef0TI*Wv5D?nBV3_oJE`ITL1V`~4qTr*5}_3r)$=U32sH7M&V? zgKGR?Ep52Hml?@jQ~o3VBc?JtUzf`tx8xjBCZu?=ai&{8eSHgat9clYfxez1;3&zz zZd%emob=8`(caN!8Gts{;w7@8eGPaRLOycID2KTLg(Bi9RHA-Ekw7jk0S1xu^z=YS zsikmlPvea5a)KdRtA52NEe~V>&_eld0~GXV9GGnzwW}`*3JardSTUxcw6(QSeA4%m z5;x}I*eQ_}Y7s!I@?ICz&CEBj?usDN(p0ek?_ccA_^!Rw}#sg}0wx(Oz(!&lD zaQeq;X1+pFwZTemCSOu|T3@30FeRL74apvf@|{v&uSQ=0<|HB}8xBT%h%Ae!G^Meq zG(G%V=5H6uzjzNNX?VWQs}XZ$xQ@#$jBSS;AD_fZB;5s>l-4hd=`xwtkNGd~ab84N z0vFo(>EN*bK2)d@x?gwWvl*_l*9t6?c%rfdIEXX&8b*dh01x^Q)X(x-pEM{J*^4T! z(l#pb(Y_znmbY~gTj4bSTI6{27}z)3BX`5p+5>$Y7&012+E%h7Q`-ZP=78p2DwXRe z^1=irQTu6Jkp5J_!D)b_(`7Y&R-m$X{x*C5<;fU%5qlokh=T(3o{ZFvKiqZjb%(@8Sw^rp2&QHfbBK0bPT-5jRer?MHb&I5Fr5FTlNe}C5yRDXB6ppX6% zK%EKG{gm0oWY5MFxYTv?Zw6&6j(uMs` zLvuj+%U=d1GR9z7>AolS6-@uimDO8Djw`zox86)Gt(aOm+MMYKfR|1bm-ZOX+$iCMv@@wVJE!GFdQbvBAA2!^S#{^FIxJ~E&g;LadEf-JY=|y?DB}P^)c5E5)#{O zth|Q}&CR302(fc8Q~HZ8t)QSlg`kW@-bl?4+iqruDkLKY#ul#Nr2SrKaLp+1n2!!4=pV(RJGl#(eE? z=Tft=VVYM?1wnvW&iH-MxX8@we_H21e|Y5%KJWD1o*hEwcs$vh`5jac^c~d`wF_|6 zPu^?bd4}Z_$qH@}6lPZ2)M&g6sza%_uFpCvUkb(aPyiYeBLLsV?#1{`WeW($MFiZB z(}BBUh@wQ3SIQdI?d`tmlFbTPyp+avr3x;j3!>={4&d0BRGtUD&@@;@o zh}2qQ3NQ~KTg6z(cGlKCi(^5?(E@v2;k;I2^q;o|VjwFQ?}dEt+0k7b)UlgV0@7IY z=+tnruzmxG+2ZPI^g#gXy#rh}UTnDnNcF~~0GEYDg_f39RQm>i$U9%}tNi)tQRC|B zYFx#kS*+3vjtFTSh{Solb}Pr?uQes@JItQgTV{dZ*lx}MhxmACMJHl zL7#9~YZo}VSc;K-gU4Kp>;BRR%ew;@9wY>XgiZ!%u1)d_P61MOpU2h!T6FIU`B4pk z?}0yYadtLeqM-W!9=^Np|2*_EOoL8MFjl)zz!S;~3f?daSW^e)wQwG@Mf%Hz9c&vk zl+4g5xb}10g?_btkccAmV)y`b^+1h~S1>)T3U6T--`8~ucq)*}GmYPn^|t%m*$XoY zyn-62s89kLg2l2|}vprdlXK;O-uhI*jszmEf?{;9k6PNZJ zj3rG>OA9~r>h1029|Nk@{hr(#Wahibj2aFNb#w?Bw=%BEf^AMu;*ecxs;U$?n>~P5 zSGmkf`ot16&XtmqqN<@$TscO~{nP)&+lS1=VDjoYZ&W)j&~#}lH>_*oL%;T4sDwEn z2PsQ+SU~#365QAeyowV+*qQ{V!k390A(eyq>l5hnfX`oEz44-Lf!E1J=D6%);1)mn z{OgyOmoj6UPBv{DyTw}30?qH*ltAMq18?5Ueis5^nrF0Gs7{ffqMSkbPfY*w&4$Ys zUoOZT!bt*GCfi1sNtqF45{Ow6ItNcH93I*Cn^m4NuFU686YG-H>9^{O=Q|CkAx-0P z*nw5VmlwFD3XUzC<@q(a4u>all@}p*d28ktUd}G&p!|~v#emAXfnb-w1&pza);%v! zyVN31oFf@9Cbsm!+hVaR%mIAW=P4A%(N0*T+H?WR=qJHkVJ}nh4jc$b_{vY*^V9BF z1}7^J89kr!_9pX2fzZWLCPfVX5fTz2im;579dNy$0OcYh4pQA|s}}aX$2=m1cY9~s zj&x)S)K@K@Cy~7B)0WG)Z3z(c_Vzy4Rad_z_wlIN8mh~MZE4G_4@2X3KK+n^{jLo~ zG(+s^buw~WRFW+Ih7YDInk?@h>0sEwFbV?x?%%Fje}pa1D_^?tKBqA`@jnTF2r-9t z7|h{R877ZZ{dL@R-#}vl`HTFFtNzPnmn=iTs{4EN_rC^bHL{!h!mIQary1+KG!_Qc zK%C#pvvmh;!X_*_JL7UDHXa#B<5)lIgKjw&X3mBj4jy(XD^uC~FX~@rR&?yVG*+I+ zCcgy=6(d&neuzWoz*3o3Kv;AWGMu5A?A_k=xy^a@YX3MgNxRJZ%rQ}ZuN!W*1+f~+ zo1S-h@EFRwdJre{AeH^;GU6caPkc+hTmxP5flfL*z`&f7v;OtzoS$jKz~l!$ofRiT z*HBtog?-eU&(s)!Sd6MR*Pae8wxe&jRrem>S+QCs3$NaFIDovzHQs6)ikz^}4v)1U zKjlFiv}qg6mK|0zl;ktOe?P;YT2sjY1)yR#-oonNjk8|k?EG%`b@XLxEz5#PkMLg{ zWM^KfWq64ANkL4Oy{+XZKVRBpr%C$z%UI#A@@{WG6Fp?TJeRKs{e6M|Jo3?KX9Zo6 zTo#;Vo-Q|wEa(q+AtvOHX)HDLLgowCPnN60HC7ih{@mV!o_IG6BN<#X)P?iEzX_&${3-lG$4D9K zB9a6$7{cIVSwH1VzPkK%#QWPNvkwmkcYJRpR1rsSa+^(Scfn`mtRwB|zn;T}`H?rr zpovMEuF~fpNdYP1t%l@ezT;>c1k%=YaeJZeCB^z?%l;0V9^0idBM(>U9Z8@VK&`^H zHVhKx=+Yl@@Oox|vhOO*sGt5MR7 zrvlm){9F8BJ!HoZRxop$z%JRuF^8@Sa%d+C);xoq;j^<74|3+6W6x_ot>ph{r4Ke$ z&*gyoZZz?7ZyC>VE9j8DmIsZFZCR*vCpK=WHh`!`Zc?ClCuq5Rg?Nu`8N%D1{c!kv z{{6Dlit+BhzPqx1_&kK0}iUcAP2I-m}bYi?suet>H=E8UG30ke@Tc2`i{5X^6neB@4Ym$v(~XCPN=?X zA`1;&F zQHKGf@SHpW%A^JnO^8D>FZb*!#pNC;U$B6uNCt;*vBVt6JS^W@57pc?zWS%z{_{ah z=?dXWvt47PH3%LXLY)b#4O9i1il62vZT<-gAs|rd>IGID6dt^OPiJ?P1fL`h=3NaI z*fWAB7`j&50+(fnn10RYSorTz29VNul8KbA1d_#)hdrfitXMG(iR3a=rzV4PM(PsC z1EdpL(Fva(HYgj%o@yIsNF@COCZ7v$0UTtqo5ASlYnX0;(XJm06q(jv>i;t)9xc@5 zJ^meDJ|s&GN=gMpK`ahIQe8iCG-G1S+>TjuCorx&{YFlD1>(}K3Yjt=hE(fL1sIbW)u`|B2KWaEDXEg3)7hxq{cj!0O zT3@&7Pl4O2-u&HbLbwT*J>_tVuW50VP-x1}|61C7?;+oS?m7ALoQ3bG#^gDUA@rQ9 zR@j0HS5s=U=^-yAzx!KQAFKw!-umid=nQ$O3VidQU;J$Hx09u!G{0XJT4@Os8vN0j zMIfOR5;11NZl!99z1h~AI@5H*QQehpl;;I;Rq(f|TKRA1SPy&YeL6Eb-P>EUR(P<< zej?HAj@iBV7RtkyqBh!sHaLK+yXo2RE&R+a`}|sr%>P}0U&+Hx=KtTtTD+j=kf*e# zhq}27ov26t~>$S7O+|xN1I02qQjO9B4 z1GR9O6Cp3Zq3r3#j{*TimwF?hqHKW)C9ecG)~=oBi~Ge_HI1o2{QVy#Vu=-FX|BaJ z+QJH@e3#E5h?Q2pJb>^n)^F?mLb6b)&0(ve*@#hIJka9Y`peExmu7LV)&Rki8>N|x zp{@s%mJ5oRiQZiey}0=e7saGHbQ}@IF_V@(&d%o(4?od|o$`k}txjOJ|DVTc3Dgt% z;IhIs;e(E_l1p}6*55fx6)RJ@yqB3dc@W3?OA)xATDU9=Km4U+OGyYM_euJPptVOtXL|P z;@a$4BJb^9H?cM6nhDw7=`^3oS#z;DDRAe`jMUaNU2QHJ`VUo|xDgL>jx97K8BO1l zHyzz&ZV3d8JZ#;E`^<9$7%V(7ZTz>vTpqig*?MJb<9;(mZ&?|!m>e5bmqQl|j|g9S z)fHJvU8uW6I6!x7dLs^IY@9m_YW~+Ca_5CBP$0dRo>;m&Guz%s6*TCXP&QLoM8 z>ZEyf?>5;S_phsSKO)1C-dYEl2c8rowjGej%rhkUxpzbP^uNvNcm>&d*<iv#v|Q3GjuuFnJMmE}XOpV0fzyhFw{`8D*yo2M;?qLF^&V@>iv$+iat%r~f_p*R=uZT$n~>V*P!B844ws;cGrFin>@ zm(8Ua9;ZCsQ{c#jG9U&&DOD!+xiB-=WCUT8d-&(W!F{Hoy)SsOM(Cj`G!q!aith{! zIsc8+Kt6}H=Z=Op2Ebim_W*dupZK_E8ZsxRhM%lWUC;OE^FX{j>>*vf_ z*YghB4)qHt?-dN@%Mb&uy3HX;>TH+3M_XKLz@PA{B3z5R%Z1U0-^=oPBXMVEi_mN} z$aU_^Ozv%Q-C9#1F&z5KHK8tR8v4^<8l>gDnvlzjaCM20NWh4L(1Y6;IAh&Hud}82 zv%R?H@^GHB{}SJO4(Obr|D*VE0`$lKWL3|PM>RX)5{QW$Q_tjHhZPYZeTCJ%Fazho z!hJj2K|((Q;rE`Nd;~H}lGs#-3BeLAVxf~S`zs4zgEgJo3Y(@%x3TB`VoP-DszG0D za^^DX*RU|L|EdA~1m*8$9e#UD@|bjXE>=3ZTU?XTa@FjS%D`UaA_=`II)=9|xd3%UaC(eW* z4ER#12g^}vZjm!)SID43sO=nF_Keyt$Q7K0V!A7748j*4N1(2rl{HO#k7?79*V}m& zCFZ7lkn&-1znzqd$Jy%Z^*4dA{30)A~QgoEhsFxbE*1cbAnvxvZ=9A}e>5 zA-A@OHsFfl;T*C8ul@gi$;-$f?@s2$0T(pICV_RlB=u`FqR_uOfHW$^A0y|N1@hnD zYoG+vEFoec8fn*7!nkMf@tj&LiLCht~8qmc;Qkr}pB_LLUK$aEodJ>=3#8ww|<>L1tNqapV zaU!XX1qEwo=qOew(0h@iuZ{NP1GKM8WqUu9d zA_10XfXK}9&ktH)qi&rv<@_fg=i#=Vjj(QQXOkaPQBi>n-d>20$4pL1F#$GUkT5Vl zmMZ2rQUZm}rXS>-oazYLr`x?;>SBZpeJ>>20Ur{@{srLw!Z3dSHxf(;q(Ckq&iHfD zkAe$R<)K z3a!qTeo`6ye)w}gAikP)!&MDjaoGF)tgGvig>q+Ej`WcFrcp*8^N{ZUe)@mEk8Gax z-2kkt{6OA|lsPdTGbcvX&GyLnA@}Akx+O zT4~Wq#u&wQ3)$g&2DWG^mT1B$s1~D_Fw}H)zXG@DQR+WW;&E0L>C}HB08Z|Pi(Z$z z0~Z8Mv#zgQ(=HEy%V{=?pEmmKvoYEdnC0kh8qP(~pZo@{jk z)pV{>>AVr|w)kfVFd2H`qG^|HReuQo#0M!{jR~+^_?avvs!>(>M)=Dlq&V@52`T~4 ze46QZ=*^tS%bk+OW|gS3CRA$tP0J-r3|9XX(d3AfJ0T16g4XiuBSG7wce3w^4)rwr z(lz`F(W)vPe$SO!sDrC39h`NHP9`g4S~YH1yocxIpgH!B4xP1~!{*p@?KS53%Wjt^ z#cUg@c{n{RWqSX1`g6-kK!y-ujuF*=xp$2Cze52H8sYXb(C_p8Umhc3V!rflU`7T5 zyDD(w1n>T$n?pm@7wUwv)0;Rj9I8g7T2~`wF##~sidG6r3r*^88~wTV2Om7V6SkhZ zV3d6s^k!3uCwf$SVq{augxJ_pN?bIyP(+8oj^|d~_barPZ;~{R&Cz{R?g{59J0GJG zgw9Z#J|&B)vW*4XWPQvRm!Dn- ziI9PSOTc%>U4mN4Myt;NRz+(*i?awv=^*Rj-HlB{wQeSjHba#DaQQ@ZsOmhFJ7?NbEr;=a8# z*kQfwg@_{gwB`8LkUSIBDB-dySr)p)v=)D=+hsrl{M(QviOm~ueJxA9JW8Eq0s-?E zotpMK?wKj0LH=<4ko^IOXjv-Oz6?Ou2VJ%4RMBUn)P{JbPFxx%|v-j54X5} zjqx5VdH`k3187}CDrmU5-v&r^LLokh4+gSL_W4D+F}_bLE|ZZGOSnv$5w1EJG|RJ&Nb2=?*P$|vu88@_ zt#_bRvGi#b9J;FDS6^0>D&%(sin;N-1$8`?y4yiDz-~Qk)=7ajs)%gLq+0xQGMYy} zeMPqg4}aU%7Fm?W+;VXzR@RB=&+;7@ViFvV;y8TAF!0m0S8P={Z{_;=zAGXbP{RWcWa+rI#*plDR$H$(pii$?{@k~KQO zgB(Tn9w_=~F8PzE6Lj-2N?H3f^d09{Mn~qsuwH>3enZO;8W!5O7`L&#Jmb{Qc#h%R zaecudUyx86YZ!z5*$APe{6vH|nFAXHzd2sR>3!@b?#K#_ z$h&=u1iN5lZ;e}wB`fpw#mPp5N}Rc+-0Uq9c5pyTWr9?+pNZ3J-36P_usTgovzH6i zeVvA8OwbwY2lsLVvT(!B8~Tk~J3M3ulHtk^f5WaZA={K#lZ5T{?+z2~6r`5Ik8x6S z-R;0F_wzJhN%cArIEj~2!2^^GZ#Pe8%hh&x$Qjl*0S3(=Fc+~%>T=sHz3ppUFpL6p zSRejM7f}h=VY;9Yp|_YJVnuyFZ5CJ?9KdAN_rNSp(F*9Q*zK0M1z0$Uc&tMKId5P( zk4@@ZN3_4rJ=0ngO2p!+&jq2U1yk)3 z#e9QY%Q@ruY41s#-qls%8!7Qz*7|UK3AtaH&MAWpU(b{~ywL7afQS?|)Ei5hda}d9p zanfbwTa&sIR|Y(C25hQBzAR^7*$`3>uXgE{6#5KJnQnEX;pSJ(*rzyY?;^T7M306~ z;69#Qnf9{(%^mX_iV6x|0rEFe8k(Q7nl*-KVkj+%fUln80}TjdG!|GC=&4BiTMT`1 zo@T$vW&s@l3$={eSaOdhhE6*(Y-lBBWxbIR6@`r@2eB5dya7&|qA8b38h%-dry3Kbzo88a-vgP1 zDEn0kDQ)GQH596Bj_FY^dJY{dQ*Dm2W+7-dESXEyM_COwF-`;ahkAbBG1zWM?H_B_ zgi(ZEkZ6$aOyiT1!qN1asQCE_7OoG_0*1x}!&#O+@(op~1U)PfwMc}WQNz*6MP;4e zyV@?i_LdzPsdc^)#3Ws6l=9=7xgits$M(S>k?_ywqNez|z2>!G1NB$y|1OmjnyWH6LP{QQU(;^zT22M_={3d??WVo|avm;~ zpvfKcMk=b$7}b(6@-#*a3kg^^UEFm>ws5iFRifjYU6o@Ok+b!0JfnCPSh-?)XVLQI>pY5hU5>2DB2`p11-qIr z_b@Nw+KP6F$zy%_1i|zC6231iV*^>XDTniWr&P}k71%r3@!&VHa|eW_*Qs}5PzBfb zJr!;TQFtM1?S&^YkoF*pp^Wk%iXSx6v@j-XKLJI+Vw0&XdZ=6ity{pc`evt|tt~Sk z^=YTVil9O}#Gcup!L+Zb&0!P-kH*~t>3gcUnMR~cM@KYS4+x)(f zp!y-p`e(oJw8!&(BStXx+9Be8o}k;!Mzz1fo0iZ&{li>Giech2Dvc}Ykc!O+yQLf4 zwml6$pc-us(bcq4oTap6+QZFh$bI|~vcUJV%)wa=Ood?5b!a4^S)~_;@CHA`aneLdc(S3dRxg7GJvGK5j0f(}72P^3jpM4LAEI?h} z&zZ8nxH$c>Uu$T5yf;0e7cM@= z3Hs}T$?0=UhTGENSri zt#O&3#>=tqd*)(#E?m3dx#f_;`fY>xEM=c*pT33$9z-JUWlKdZ8lyUp$0QgOaI~v& zM>uEUAXuQkP5mVs-1(U>Y5EAZvyhKoCp4Rz1R+=rVj>YKA#Ai z*oM1DM>(CeN(rJ5@TetCv&SmCF|w{M`cw6jmvWQ?C$jeI*<2k6=rWl$ds&89oVtk> zHiOw4G-yiBhCW7)2TA(8>9>)(r{C~Sa_Eq4>2!uhtECGIBM1%h4XU|Jn*RDFrXDtN zBX$n{jrO55_x549O#L3N7mx+M{ws#LUbN-adR0wHQwq3}*06^yjgoupF&$*|i+!8` zmuLvOLM?{f*#*Bk%S%3XTwcJpZ{McGf5}$2+^zZa8(#n`+?*oA-j|8LOGY3|VF5Nf zKEfG3C;p%Du^IA>V-ZIXU+p1HYA+FDfR!Imen@zfwepZ>f0)I15Kxhc;)DB8TIK|+ z^{!UTO`3LqXft|FroJ4Ms!;n^>hkyGFs0xW-J^CWB_E&%M(L55f$=0gaZ^rvR%wPfGPoNt;OrKmP24$J@n4g_h2l8S{R#x;h zvVT(nRHfm4Qd*w!qaSXOsWO!3;S4qtUbv3PiPB*G6k6S`femTYW-7`as=ldv_BWdo zAnfq^6Mik{PTb`L1M`oXb!c7WEK=)bR*N=?&OdST>?d&TjAxL#QJICcw>bserI)3B z>lr4sV4Fu&m4%8zUkP1`k_c+OjwHvfHoB~WGE~dLoC!X#LxiYs&(^Yo$%wDcH-E_A z_mbumT&%d=)H*s~0XtP;{tNRJ$$C^(Dg>;r|IYaTtS>@O*;IndKNGaEx>AAzpzn1X zEMb+t>$j>>gF6A@`u(U8Bseq_J~=sg=tw?H@ZjKp6D@5GOm#k(-d7nB8HokWOBOo= zL=>gf^$6$&_&9KT?-Vj6LUts}CX*S|0D2Z|uvp|ik!~E>`wzh6f6#_&FjH_;58M6k zT(%%oG-D}WO>0X8ou*G(a$V-{c#Ol|Ar~|!HOQw=hFV^Oipk66n%&f^J1>RMAf<`c zaCb_`4`tSWY;?QbMih@wKb2B8Y3U3o@a zF-OpU|4>{DBz;%H`?DMa|0ZN*HvC(s?kRhQJpN8_A4L3PD8cfN|Hs!`##Pm=U!aJn zq@;p$hje#`bceKnbW2K0H%Lf#*QOgbDP7VXBAwFBot*QY|2ZG-y?)T2-}YK-&iRZv zo-xKF?yxUthekV7+BLRU{sz`uEgJe2DY(vB%iuEIQ*x!DpLkXJ-9}-{w3$w&zSi`OB19gaQ&{#Cu;@1WEvBtuo$8MA1WD3Tni`E6OGGbbO_6Y;$~vT`NBD1=fa%N!Ngcz=kQg@*ace)c$(EW0lUl-Z1Kw z_xP`=Y%=UI9vfKDFV8~7bGT^J_2U9!1Ku2qc?7>u&`l#APt?Dmf4&lJr{g}B+Pss4 zyJ}cr_!Dsw85zYb-;z(6hk_*DWG1FmuN4=l5aX0t_1q8Gn|jP}JP3)1Pz^8k=j_A* zTT0CBxE+nA`!s8s=1*vwuJ9#dp3m)+hQ0w9Tg@`{7EGP*X?wi4m3(-(Y`b-|jfu>F z#G^Y3o`bB+58wqCDOHtkegxw6HL`Dm9sl0@;VlVUlT!H`<8RpfGuKBBLBmI`x{zrr7 zBs|F&WT659zydq*lpn*tE{g?-p~(+v(Z*rY(#Pj#N5YF<3-H}yAF^1+w&ih?q{p_^ z%REZ*IdYUr--f+_i+EX9w!hejnUs_i_do@gEAua8o^^y3S1jEET*k?x(ANY!pHBYt z69Yw=QR3$C<0QF}wbmw*>h16Lr{)sFhE|i5Fzf~BF;OS%W#OR&?p#RA$e1g}$JwHc zMI=435-kPA7|G^q>F$Tjef8b1h&+6}@Ave_P65<-e?1-C@a_~e)N=kIe7cwtbe-Rk zV?{>C$G@;ubjye<4yKe#URBN)HH3%t+eyO>E#l1o)Ri-A=Y8~%WJUcI(k1q9MdufM z1{@vw?;dGj}wFkz^P>`WC*a?r6f0~i#Yz zy0^t_@WcOOKgjkp6J%@G!8Zl%o{h?1L;50=7cY`&LdG47ez8*&3x5-Ew2nxR6%!W^ zanGAV`ZuSwathIV9NX5PzP|Z(TTqCC&@f4-$742~^wT7*0*T`AJ(*^iEmMXZ50X~y z%C3Bi3WuiXp@ItrJ!G$hTr1*wzZE(s<0%7kKIMi@^Q^wK6t-k0&(CZjpJHGBRh`w! zw=-DP`w z55<3~`G|+V%4o-%97T-hpq|b69iawYfgJ>FRcFN|knFH}k=e4cu_$Z9u}tAw3k!B| zU7^A+tibNvr1S04L~NdTSuhbf@6-SJ+t1Gdb6AKaG_b-yBojYL90ZX(<6vYQ9Y#?* z*D)|485kVo_u>Gwp1KZ~?PMXkR0=sqDAE{}Lb}+|a_bH(r!G#x5v<`H&?5^gO2g@z z5ix!85&n}KcFe|3fO18$4a+O{+;zdaJ|s7!-9X^+&H*O#$o>pBwy#*~?bD=dn6XPP zH$g?x5Q#7MfEuSR5`|`%jm0-qlDuQLz=A+;EIyl>hNUop*pp~Z%?guY+`r3(h(LeC zistC|1nABLFwGldE?2yXo+gRMq5hG>M*G6cL+Pe}57z1z?Z1RpvlUsAH)X)w^{86XC2)sN1k*SWOyM;IXbcdW^y}sCKG-Wo`|0X*kZmj8A z0lycSu$lx7xmumRIpNZoPHki-DyJV5`#u~ZNbA_T24>0^N^k2W*fN#3oFKj?5}-4o zAbkMQw4wPhx++=znn@pFg6q)08#gs{*CHrECgEgo*MvGRF64S=w^Zod=>1 z&#R0p(4*#4EeLz4!a72lPF!y(?X77OMM5dqTZO;EG`+c`P@*70iBHSU0gEiIL z3yu#I2ESY*B=jf#bhPIsetuglRS7A~a*rnO~VS#Zpq5S6MRG~R-+ zG!v8$y@=QuJL|u^ne;XGv{0j8!O(WuhqD(iPlrcD6uITF7Alom@j>sh75gYD>9f<6 zB7C+#{X$G@hC!rVHwF3~PNyDrU*CqvuYTnb)l2UfFSxKza?$z0^*vJFtF1qOd_GsXZj)*aK+pq@@J*}oBGe)E%5eER3O`rC`fZc6b_3%J71^1{xm7TNQ&D`z zqbQU`Jb#B!<>JUyy0E)>R~%0I*BPrvqnO%B4p)9}sRq6maYQ zbG@p8csm5O8s2^aPvJsN$nPVq$swJPd=WuB3B#l>`aup;lMHgp6HlnoSt^_#?^_n< zP$c!|2*(B1MmG<%76slVg@(vf9}m~@k*wJWsuh1Fa7m>J$d$1$s|97Kp|Rlk54+O= z0#`SKmvtHRU1XjZW98y-n}_d(K3BX0WIie7kT1{y{BF}eRZKDejuT#j7vL9+RPP(@ zT`z->wbi}yMfZ2Ux>6raWsYsN-Bl-06QIM>QB$|b6!x5#s?#FWv++`*bj}1FgG0R7}G+$BD=+j9ox( z&cOwrjE*iG;vQ-lg~5$>-+H+$I*~6Y+_ye)*b8qh`s_JdbO6LwD)*CYH4O?r7aIG^ ze^(i*)#TQzAPza6Qg=Xf)CI^<_43r*s>GB-pj|SaS8MvoY$N&e8M-R^L|PW5wlfHI z9G;I6=kbLlv9|PXG!6MLbY5Wvl7Hl6ZhNb#@2pDETHLMS_pI!P_S6GREyNWWR&h;4 zCjbJK8mKIWx{>WH)A{!sd4hQeED7fuHz)W-HzU&1RQP9pp*Ecw6no>GKHJN+tih|F zXc>-v>B2WGxa^CJ)<6pBHa0j)b(&v`1zlJRvso^}S5`95dan{!jiiYhdhqG|YUwv_ zI62Y#*eGEY#Y`4No7Ce?jiL~ni$+cEkt*Pc3wgST2>xcI1Wojht!}mW>|x2EHsyE! z_{MU}Jt;1UlmFH*wdE^-E|>FXz!2;5B#z@1b%{LM)=7L_LjD{Cx6XxIU` zCx)Ky%{;+!@^9*W_15z>=-AK{c1sC_!nlg}KRh4rFUd^@;1FW016+As4t4&1R8sl| z=EwUg%hIHYNXAG>Nx{Ph{!tlr^g39mFR0NTMu}*wY3Ey9z{LK>RL-`OIs=Uvj zkm@7Of77RdSu2jp?eR0hQqI}WEGDVVzCjrQSA~c{L#AZGfKo@USx=e7*8;^Lxc}TU z0$a+b?EAP!5Tr!jrtW)CFnHX}{{P7dvLTAkOfsFB<3{F6(t0hZ1P4|M7xKwQ|MW+g zp&;Sz3>`;&WwVR(q963uhgLM;v+W(x`YWbLS11EDnRWuP$i+VX6?bDe+(8c$BJObB zD^fxbyplHH-;yZGI|N1QQ>NH{5Kxy!8M#_3PyH zbSF71k${$)`yC`WEUXKZDue1dyZu?_?%rN94vx2Q)<=)1TMSl5ZfRsO1O;dF#)LfTtZtu7`;D@hX0{cpAY4-6(hZ)FZgM5 z_n{fXSk0mo`Fye=?2BiBcy((XM5W9RvHUy&Qm89cA?@b0K$oWI)re2kCf6hWb=Ev2PGpxC>gHsR)BI*_nu&b!(EerM-SA`o4Ka>NMay(Xv> z=4k0IucKkb)FtP#DT0%NQb%y&YWII)fq&$~mz00vYpKfEtia3cv>v|A*9 zKcn=YMvJnoxlb~s>bE~s7Le$UH*u-&HwtW)nzATKxQ~{r?Wy0_8|{b3j-86Eh}9Hh z`-Y3~MsBFC+R1aP6VeKsRH77wTDjUtQBD)l{?z8A?9%UHfwn>d4gKG zjfpWt=nE|*eWy;3@-#`se>Bv3I)Z9cwk`?~;b;Gka;_H3@4gSD;2U&AJ1fD%VOSTn z)^Fm|Q3iWWspC-c@FYWMuK8%OQARGYF5O~- z0d!&RWzuqY$KXo`+G@W3Wh9t{Ek%{{%y~qJdMLQOp%lDVss6Q-D^cji&ajG0_xbDC zu5JA15(}Oih24W9JfJ$)|5ka`n2IctKFFo8MtqWYej z{DH}WlmiRL&#P98EpNokHQ!M}PX)-|yx~B*y&!rT>kjObitnavX5kFC4*6Zr%cP<| zn`S((bX#)M5zH)?DZ1+AKK-7O64aBx-ucU@xAOBf(e`W>zZSc#)|`0>`-J=+@pp-Q zN*uEpNE(LSRFnhBOam!9`x|V$*t$gH#VD|TAj6)Ga@nHzkhquXe?)5YHDfW z!un&lc=E~TP~Xj4mUkeW)+ zL^dz%A+v$|%CD-ztoq(NugX@UY&cWFt~G9@i#j{kU7;M%0vlWIilCu|tM}JGC$6#| zlS2lMd$UMe+D=kQ^3FT-DjQ}!S}3u@qOiW1p}q4*Ps{P--SiWW2Rf*%GBWlP`oEfP z5G=dr`4yetnqWhQ)P$9D#e)x_|JQ}eS(Mggq7K)~K4J7cL5*NN>uKO68HSP+GlA7u6TT?(`ICHS}y)o2lZF z{WziJ4t9UO^}_(#m&X%Zl6w>5jIOMl-hY9H=!52q=v3Osy>IS^VmCeXiTt+Dpm&?v zvaUA>F$T2kO)4T%^>LB~FcEs}l1-+g=>fcfuL<6ZEhPKoYsO9>KiOj0Uvx30de8#R z8pJ_U*xhc~^HnXv}^>HB#AAG%%sY!0VPAb(~XFgF#rg& zhUnO@9J%biffDw@S2I53$YzA!P^bTVx-Y`mA7S{A8LjAEn)%z~xetqul_Zn`SRJ3O zDEgtYva+r*);mQA7fdn@E&d2H-%4T3C8F)f6|AaUlciz!6DiM(V-KxWJE>VIs(Iq+ za+<}-==zW~toZbNXS_$pCEG^NWW+@LUqJ2n>N`!Zo%^ArG%M2EI4H2TqY_!i60wQI z`2DBq3y){NlMR3VHT+c!Uk-Z+5OEM7>@weHxf`SMpP}ut{X?jCB^n!+G2CGhf_i+j zuu8-;NhYhvRTESE%lk}Ee~O9nxY*e3@t371#Q}y1IK|ZTtt~HB^?590U>O|iY7n$! zal<}3EoSY}eJ*gKtd%>^$XmcQ)~`%gb3v9@TREn5C^YuZf~rjg0iF#Ibj7UQMM)lo zsA~GFSPoCC~HD=#s+eNJn zK}X4vBqmZO7qrB{Tl%SWeGwC9R}}SKxK=#<^IN))LMLU>+68hcl;WB+isQp-O*`+$ z1-FKhL`7_B5n>#z&RV~XyCeYPybYo^(0^s~gP6xeE_+f7?5BcU31o*!zI1wBTEPZx z?eyAp@aR{gu>US6T{YGV>TIZELhLctJ1z!gadxp}LtL8hD0m9-t39uk?8M6{*UU5o zk!=|VyX$#R)(8Uq=e8g+oe`jdI#@n4*&p!Zoz9?UhA+&S|M^L5i`r2hMcnxNtq0)f zHV^u-d&lVn;0|I${oz`##b`J(=sHSuuc@oJ*{k+_)X|UQ*T23I=&y%6a2cq$dD7S| z+N+dM-?cqR9ru8VLy1i!uhjZctVxxY7UwAut1qxJla)kx{`u`p;lBh`Az2nC6gA2! zAyrMs3h}rlsWLgX4VA<((ro7bM8A{Oq_K2y(IXezR`-*DIkG=s~dDj0!yRD4s2 z0t*p0B@i{$NO4SK!V5RgF+Uiiuimwojo;p_h0c{((JJH@8(b=`&?Ph%9oZ?Z?0mQ< zCfemyeMFZSrMc#?%ON2BTQSKMjZA#QRxK-O^FTa{tmP9$c6VJAYgmE^0`~S zQ@oVp)nMYn@j%;32T{pPw#u!u*-9PzU7oPtOD_B0aA2yNa(cAWqWx<7GqlNGpdg;4 z1g?5SL(mQuxhb*%I7-^;T?O}mU6H6~E;LYcFKg3)!*&_jH@{+1VTMt#8Z0~+SO^+z zNy;9iS)MIrSR#hJzn=8_r5~z5d#13Tn6k~mx1C=(ukz*75PePFQZq2TeO`x!R&FdW z|C$_Jg#fn5FDO_KrG@ysw3f!A5Ph5@*Zrq5lJrmK`QL&l?x_Z!g;oPDjx_p-d;^=& z50@_uaHa(iA;E~uYXN(ES@u>HXgnd?XsjM<<+?_HcQ$q40_Qb!ec`k$I9-Cfhsv(6 z>}{W&m8upM;4JeXlJR^X10@x9qfEH}>eDdycZ_DT5`5ktrtWgy1pkuz-tqRns(SD7 z-4>x7gQ36P_O(nPBcGR?uOyy;t~gDD+;2beU0bKq`LWN7#p4zwV3^Q9%oP)|krL~H zObtfahezd*LX+}`Jn89L6#xMC1w!i9t{=*Jc#|D0zkr1717RZ56&;sAA4g(Vvb))hfzFB7+C{(Hum89+l=K(T^ot} ztHFLss772Py@So2^w>BNQ*Q~*b)Z2^akh!Ir zj>7WUd5&|IDC!B3^G=y-#!j%mZIe|uqLZ-!$T z(6-PXd<%?wfV+st*B?^RnU#MBh_9M}A1QX5%pJDX4m?Hauqn+i&~@mH(1J%A1o?xr}| zTE$N6h^bY$JPODCh*vT!L(^XRRVHH!ZkD=j&&X_=o<-p1|Nd)_`nzis+P#+3D@L|U zL9upNSx-VrhujU;h|t;2k_rMuLh|?x>|xKa_OD`N2ie=hS7!VXs<74lQUVZPpDI5pDl3bqXoMBz?C4B50QHj} zt(mUHA$*R5Jvx`mAwG~+BKby^H9ZNUYE8)$2L=X({NaMyHNbW76Nfe$E-s>e)-&vY zfH+q|x#u#lyABPt0v2yKK}V_=NbG4bZ1jN<;->zplyci4g}i&JL}SoNNf%5qzy$7O zK|8Q`)`1b~gPk1{e2k58wij5MO1Gb$xhyu=C$boa%Kjv^PZ|(-P*6U7g<)DmF!a9nhf3a-HbP{2iO~OxttevMZ;XO{ z-vdefwEL4PI}Hs@^w@dYt`D5HMLqueo^p3YbV9?tND>ivkrB# zHECPgQURDWzuwkJA&R&CKo5S+o>NsLh5W2);1{0&{P1tzF)k8#xpfgcCx1%RI`_el9-KT`-&)B>1o{^&S)ivABqJ;z% z0pMnjnJr%aXn}Wa5`FtcWweMDGF9ha36(m9wb;{ka-y^F6y;YN{J4@;UaoEPqgK+S zcH!U{T}|=BZCx4jMjGd8L|_q3;JH?vSzx`sJG$l^ci+&6goh6DE(N89*g{I+Ym8yM z8J(|R@WH@~{LXS!W01i7*J^vHB_`=;D5>>B! zk&yf^{5ccmUq~P#{T0QKtxRPnzNQ=J(esFh0*2hFtV_Wqp19?EmDpF0SPY_u&%48g zlwKKraj200n*E1GSGH2zg=K%&U*^*|#o)Xnqrkm2)PJ{Y=7xObMzmteKiB%9k3| zJs!mOV7*6bFq}CgNMt$Jjj?r7K77`4yDSD$<5+y4Gi*aoM$mi=>#@vd^67k1zscE2 zRwyYb3_uUv^>WFj)w5^Zohj3p1wk$UfI+J!7^>Z8M0%}`zs@?!=LbwfYYIVs`Nl1O zFEsVEu|Ln{zfV?6QTagz;?uDKK|#i+J&**SO;6+v@G82msS(K6xtnVuI8*|d{ z(S@HdFit$$Db|+VFP7J};^SNQ^tbGYs1_Y0p&7-xm#M8Y%a5%W+{VuRM|bt}|4j+; zQQsnp%Dj={%6~T#C#ingOWo-&yEWZOo_EiaGE{fVE@?-_g3MW$^X0CaGOxr*c5A6S zJ?wgq97UTdp;t-(hOR-{qFAtGon|hw#cx(Rk!YTz9M?vjorIBZis#nsJUW1 zg9dnS5+OZaDR^fWq(2m;4hne1kMJ1@*A7A+9*Cg1e533R67@eA?m2lL8e-2n=h>U~ z4i}~tZks6OQga_qHXcp9sF@o^K3DY=@LS*=KYEpGR!fL0ZBMEwoIhJsM_lPZ!Q*If zFfYdR+U~(^N`@Y+K3*Dw;40|EK44BAK{v0sy1JTxNM`*=A6S+5eOC{^H_^Ac{M%{| znj-9vf*^(ihN=5;8oT%JMhu7KJa%V(K3*A^$vKUpS`{Qt(UP2USZkw%qp@V-3;F6w z(33P|Y_r?!7J|^*lRpUIH~HN2lX7oo)5|qzPB<CHspDF=M{GXf&*oG&Acs6yD&N!u1E2UL(ik-O$Y_*NO zMcr4k#*snUbQYXKeBNSzPfWaS_H)q#Vx)7qpoLkhdIIyV#7@U@Ik^Wm2xicAp{$GC! zm7GR>u(?Nbw9zZ3Op2^GAeA>%?yQv3x&3R<+GtlK#WvGo|J)@x&T+EB zi>4gEn#nr0>pT>9G9k(P!-ikgY1H0il$9szquo%0mf&EOL69A9OrJ}@QX{Buo{cw_ zjfezCS9S^IXiXV_B_0b@}{SLDEzI}M*FGmLpZElHMN)ielYl-h!PkW zO7Em(4QG8SuEXXjZi&S6 zm-m|`Pwm2(e2-0Tt)u^y8)|T$E4TMSv`D{X%8?7CWVN;Fb1u5JrY5mAIbCROQO`D= zt8q^h46Bl<6v)O_Ti>d4lXz$gHsDQ76sr-PvY#z-sTs>1*ROAaQWeGFtr-`F z9iKH9cwXJHo3fa%YvuXqmUyj@(ikq0C`dolRDnak?PE!)lh|%%pnW+l^#qKd)}AH2iKOt4zQ8d|1Fh`(w=8mv+{$3o?s_&HaIG zCLT6guRb`%3`sT4+BE6W?_2Kn=6f+q-p}*aLXnVa5n*7Y;)*pdmoL4~7)Q%uPK&(V zYd1&u)zw|V64Q-%-mvSLb14Kf6QveIF7R=0e}0MB$9>h6)no|2w(&pj>FL*8?d#ue z5iPWNeGMQ7J1ob$?g)QAA-r2q zR?5G_-|?#3=DOsNKT9(x%ayf;ksCxz2^-Pm_01m^nLHk z{0^9Z56n{U6Dju@6on64-Jkq+d!F-A&^8+?p(Pkf`t(Z7*@Vf?PaiLH3Ei%qaVL1* zNe^du=i~0AJE^+f`4Z}0N0+{OIBNYeUeo2$iV~U5sxhLF@v#V`^Ojg_jS#rmoR|L@ z+TnJa+8Hg&D||ULMqY^(>$u34IvPLqG1Aaeuge^@Ty#xp9PVovt;$(x`X$ z?D?~$UP5oN6b@^}ii@A@ZikI(Uq-YYp~VmTizV%0TK>?#HzL&*!G@?5gFhbsDrb&6*v$E-Qx#ZVwYH4}M@PkZffmC72(~ zv+wR5P1LU3WhC=`4XvV6u|3-Rk}sQ7eA(t*`Th>N^=Q8|&`UU7{df|duH7ol|6%wS zZ3^f6k8b_F>?T7vD1Ir`8SekZrr=Req(4kI#E{fz4kl}E^%R)g`)J#q1g%}M7)&!! zmP|$tyHi;z3SOKK9{eP}9t}JXN`1uV^G=>h@-}$hmhbgz_jSXXKP#pLz17yj%k?)8 zfz$0K*_CMx+%}7yH#}nJVd&GB9XaZ-FrTbgbh~~Dj+K8;@PJ_ z`P(|({iWJD^}eTw*uf{;8%?;&d#itp4V|z~-y-oSVLKSh8)TT6Grc#*bgw9NBxJOk7^|alquXzrUdzK?7<<&>}*g>1HC7RFu>-8rPWkF-sLhSizdk!3QU zc_`pSN=8QHQDRd{G8}G&yuI59J1hiS-(4O^=7}k1EZBTJsw9gbe|pM-T`rMH80AXq zNhA8`4u&sK%c(qrVPZ(jD|HnG&@^YQFvsnV1s?$Q2?VOtT$9|tID#{E&%BSm?3LB; z0{g6r+7Dx`T8sEPo2B9?&wV2cs{i?d-S$?e3GA_gj#gBfC^2o}?`2G?Qj!o_O}+$b z2ojk*Ol&f)SB!o-PZ`R1n-9gEvK5D!3Ek6anbiqjlx4H3-&tqcQB@ueufKCs5e%1k ze{Sqs_SM+^bJNjg{7uq3!NnVJkSO`x0J#!siI;;1^+pI)`WS!}BH7D97C;XV0o1(i zk=JFjb)q;Jw;7%agsNAS;MiK9;CAy|MSUMC8=ueIVQd@CDq4PGxJcc~W6gIBlnaoz_Y0`HJB2{qw7bZ%0J!m#7|(PtToc z|1idJ5!Y|1ev-i9u%nO47Td;l4wj?RL$&a|8QeLU3Tt0-Uk0IaWis|0lEuPx~F zMzf?jDo%uh_Wb0orq{8Pb?25@n`>HabG<0#A1g)hIIQ5;7RIDTUO7Bz|M{<0{X};w zz-fu^R7{(;?pqvWbTvIZJX+a0c7FkwpoH}YvL5j75%0A^5{o#tuH)0C12&Os1Q0|=7lAW8xn!Xx%>SCAp(J|=TYF&y#W!N_(gcazdh@ z*Tc5EU_M{^QK37SgS3seauo;#BB{NFm4`a7+l7^ZuRs*)*oDHmooosDy8yjiI@+CS zd#FX$KLV83L_PGJo^vGPvK)j>nEw+c_4LGOy_Ly*M0NHLRrjYESrW~T?X~7>vy}d{ z*mC*o6+`~n6^UVm0|B!8uM9WikgL4}x^K*zr-;ly)ZQMo>34tupT$TF4MP0<`~uvyits~Tabf;orC%M zNIjfgT4dyFxilWN>6WjjSirntGLS`T6}(M4 zY}_Igq})CLIdv!>>uu6fnU(__K|uIXSDSfqAaTWB&t8=MpZ|Hz+3+RmKd34F`T%oo zo)(lHfncL`k{!Sak~*o$+C+{+IDL=8}R74tOH>f6_jB`xDrCW|G5M zJk5N43Pe7q(`(_%-9HCDDrJc!dD|!dv<>k6%U$F9b^D0QjWa5odr% z!(~j(mAC%x%2MtT^rThux(Ehc1OWAIe-e{{?=Jk>B9n8UAmThI6AaKRLwbFv4z`}F z0sPo5cH32e;IeUoZa$;e->{qGAVK^(^QmGrL~!~N_|_kOkUKI-*?QC!hkR1{=A$E*jzunRoz&vOFLTdSZ_@>?eIqNPU(BhvS?d88< zX=_jNL3$vJj@)Cx<{5vNb(*?TUtX@z0kWjB=mrthb5o;TR@7@LDlIIcW~ud~mW~rE`fXM^ZsyAq!yq0y^?-KB z3(P6G5%|785#T0e1N|(!@|@FALH(trr9&tMoXh{LM921sSN%jFw|-XQdQi)FMGL++ za6gAz58oo`=9>7NJ^ar2GfT>vt7a{=Htxg(-@ZY^p(WY6fsi>1|9RarY>jl^hI@_X5_V~AZ=l4h6 zD?#=>kpz3AMFj;Pnq7{ZqY|9Ac8O5#lSVxxz^n|_Qy7@?0q2%G#sm4t$^}( zDZl6Gjj%U*wTD~}4tLLEKccgvls~+aK$am3CY$|AWHwqf%F(rcG~1yLb(~VuxIQjp zb=p<+{EeAmXLR=!qTi-x4FVVa-QPXtq`karyIxB-3cf>iEY7BW|A>3xMd5GNHSzo@ zDQpQ$I&Hd`w{!wALl!`N`QMaCm{qh*)SRd5NQ0Nv?x4S|HeNeB%}ytrjWN$$Ai~>x z=g$}uN?azAlqpg{l}c$hNkv3$!{=e@(^2cLVoy&bmr`I6-R+WGJ0fsv#ag#dht1O! zaM(yv^W|oz;1yV`DZ zC?bt?LB?X!sxQ)FES!g3y?V*Ddo+l@*@iS9V*FnvhJh&?A!>38GQU@(E!PmF11n#v z&dGi)fmn7ZKV{HK(^xs=T3dcLH&yO_EWg2-eDaYDCH6>u&wtFan!{?AxYsGM3>#iP zrrR3H=tC{*Vs{9paloeoV0>{LW}lh;DagX(AFu!*DZH-r?ahtH*z|m>dwpm&byri4 z)x+KO%~^q9*~VbP9vRWKB$vK-`QMb4JBk1KeJ%9Yq9+NJ*V^@7pmfGd(ci|hV=BmI ze~b_5HOM$#)(N*`PRp%olcSjFY#B=Is(X;+Sp{7LO?g|}@?@%&U&H1e3>$THgIY`P zMy3!tK4FhpHvkK$+5!07jxH{P_9P3vgzmD_AnOO?kk`ZXUJ1=>e_f$vd zX}7qf6BGU_3-!OhO2}5@A^I+FYpYCKz=liLy2^Jpql9JKuP& zzZnzn3;N&Kr_4kp7iDZU2JXeF$RilMX+0a4aie`IY)@sjOs`cdVhC)+5im00o*AWn z#MU8F;AZ=~b70BB+{p0C3yYu}u+1ZpX1xv_GAtWF{DAD!&krZy`edkK19!T%TTi@orI~5a{(zA=wB-NA{e@*P45>t9ZkKg8izFT!{YcjN)Kj~Ghl*Zzhuob2SaZ^zqp{km~vxz*kHDsxzIuKgGc7w}}7 z1;(fp(3dL*TK|$(kf=!^^W*9^Ih*>-kLXSa*!)|;BIS8Pog}#>z*4D@V-ALXtfhBm zjDlR4VmzA$VV6bwpj5C2fTvcW>mQ<`o#VI>#Q4>^{xxj#IIz^8;6(~=ruaMAC3JE2G_gYK1N_#O&XB+Vp|$h?xE#)Y0kjN**^?_=-R`sgfkLjtD=x+dXa z2grxvq+aA9lZYM12X{+v7n=uPW~Vw_Y_Rq=qFRntbKa(MZ0)y>dI=Z}RbFaZ9f>2u1`bgY8FyENM@{WdQp zeC<#$UW9uFG{hur9F9Q{UXQU5!LIYfJNXgkU}GY1M+|Y+cR#4D_|)M$ru!t)%oBzLVe|z2qkUZA%^@vO0 z7dCcwwJP~?JCHpTBo#~f(-}+v>ZC1i!B_^4YKWjArSGW6CTms!b6~&ClktKgJ!tAD z4#-3YM~**eAO^17AG)lKdOuVj29yLbZvsJpy0_;0K`hMfq)hp{r<66f!>LmoBcP;` z_4vUeJ=Xo=R9dK+EFi^?9HL(X@vvZHd#b!sitJYJJZpOtmf+TZq(MTzCa zOEYZ(_epr{Uogi9e~^7fCuhsg^IZ?iySBVLfD#eUL%>5Cg$uW-Ti+Y4SnJnNkuF}; z+#?oxJm=w}i8NkWNXN%9`>M>iy^7RdAm|_07cgL^npRe-VC`S4>nVRwk`C9o14Wz~ zbgE-ezqM|$XuZ%l@Vg+h7Ig}n$|@w75;m@Se0@33jjMR{5b;jF{6*&?*v~7|_uEJo~1H7}*W9 zM$b8Cx>LPtU(Wpb+{cv9nBl!R`fyR-7U8Lic$oztMfhb#&z8Q^aqYS&DnEJF^4G02 z>~)sG@jRLJ+#hh1NwFc{OqB&5!*{-&Mw!-t20Piq=P@Q=z>5|_#(r~n0F3emAX>)0 z(`3}}?r{`TlS$iPpK>FZEE2vK-$7PVIP(_t?gFroH6@}54^GQbE5RDobB}cT`xEW*gpSYfr_UM=oA#b4{wc)-@J+#E_S6@A*{jI0`c8@A`hsN1sHD5-22V^t zW&V5)mgKz|UL5|yFSjxk{;@B56K=)YL-B7XBL!wkFY+GgvIPUcJm23pD$+On!5&qf zI|?NSJ`1Vyx0L!OyYqhy9zMvg4hqv34AB6Li3n$|>4?B)RiRwKdR9ItuznQHX~pB`@0^T=HvfAyV!hbv03 zExUQJWsx4HAg*69JXO|wJB}YF4yoWFZxsKo@mh1%<+B~Ms#Y$dB@&R!Q0o@2^>ObsB(}`T7t`1YGP{KlwDcp_#$nux z*6r1F5r5gl%CN3&MmEvAKaSc}p1Zjtt?~64GV(q6sFV#~Z(X<_uGVRC@76X^(HTg; zQ_Ipz$jHbf3V6Cnjz!ShG**D%2bhM|ctenq6vx2bwN?}6$H3X1`=*N|_+mBF?=>O~ za4Z;8`;Au}-`n3=MP2N@`PYIol586!9tL7g9OTfWl0aq&h)1vuIvGr?SmLp?`rE2L zrpy6;+oMn69n6^DP)8@_xz_wa0z+u_=(J=3N}joJEjTK6`a~QYUE! z>-T)(A*Rj#jpdL?K-?Zr%P?{ZEUpKUT`kPJoU4GlaDIv?`pxw_&1Lx=i0>=1Z)3xR zjjWXI1Ny?W9~oZ;Xh4RHO>iugiq}PTMgX8ff}XOV24C|Xx7&fp>mU%Bxo3aJHc0e% z)oV9MU(ZBBeu(-BM(pj2UDM0GaMqDe&0l1o=hNCip8<5~MoAmhZL) zrxFy*i#je&o9pif<^VM50&YWxy50SJ|=!whEYu=&V@JNxBJg(TUT{;Una zKpALH8u23M_k5ds`IC#j{IGFiau$mko2W#ioH9RH*xxsl@%Q&<8m?eZhG_h#7MOnC zYib|u;IfF$0CJV(2RW@~(V$>-{I8?FqPHN@ zf;)YX7?uI8|4ZbO>v}}6Gq(m31n*g&Z0Hro^Mfx|pFb&j7adUAOJzlsB0Zh%M&XW@ zQ`3SRinnr7w-^W-8a}j6j=QtPev${?4s(9euM2CBWqxru{6A!U1yoke+BOZ+UD6>9 z(%s#uG)RMVcPJns4bsvfE!`m?UDDm%-SLm_Ip>T2+v{12-aLEu?3p{R_`URD>e;PU z6BM+(t9?I@{cCU7n5%36yPsbk#1Wj+n&}5jJbgIIxi`>xgGnqF+SrS2XFabql5+6_ zwY42dp|kU3Oua)BLE+DT&9pnqLP2rf68~cPrcD$2r|iA{I>H|)*MTNT%*?#`H&b+H zl0KNx2q^eeJ^Fto3ypbQi==&fEy#QNn4AH6sloc#sfuSEr5l5;8x_5Ma^V|9k_S~8 zD}}B>m})m}9(jQw;3j)x$g1G|vVUAT1-Z|g9y$o92OtfCZ^Ud{g|b+i3$X!qP9)z~ zCVgI9Mx8LcXo(_XSJ0?D0m)hZT`1^ASiXd3iZ6r@&H5re2)aAP@VUkt(j^E`4 zD9S19tU`oR4vb;yQAl%p-jbVv40;XhvrKcEm=jiu#zApCZz`+7n=csAQ5v4Ug2T*7lm<(HB6thW$_E|$RT)kJw zSsY|;RyZhcSP%C=b3Lk^**8FiykYUblmDJ;sVvN+mZoFMq<*SJ;D-X&3 zlF!BPTJy>ib9p1IQiC1~36OMN1HxBmnfH^0HBn&t4J@U}@Sylgpdv<<$A^GOppySLyyWk=&|}tNYM$%PCZ*Y8Q$epRcpz+_)Jl(i%FQ#4t?Yy*jTHHn5ztJ z-aK{~hEBwhp;|Lzp zNHT1=&V$(ff_5FYdr84E2!I7?Abifg8X^NSQpAmk;lun)jsqUVnssk2MP`!L4gbm= zYWb)Fkm}CAj(jf0UtFk+uHgj5q&K#*yMuTAet$H92y^~`9}J~b#0P>MKjKtwg1_r= z^2Y*$?NRpuMmu>KkQ##}| zw9G*yCE2DEFI)lsP=uA_YZMcFe90K`MRbPHe>BYCAB9gpp-Iq;lvjZYzg%~~>@!dn z&`c-4B)1D21dwP0rKwOqH$xvn6Lbx-L-J*GcNYx3v0cqOA}GDaIAYJuSf@vEtxwjk zO@k=plv_rH966^Ja8@Ol8WAGLW znLrz1rf2^BkqL;M^KUFNJPR_c^*}8(8=7~b6J(D?Hwtn?8M&9F3aeT6*+h=r7?4$V z+lJ5QNzkU5@npvZ&uIR)T@WSj%jkE}Nc~^`GUP6^>i6+lR;M7_|4Yp~hVnZIq!^k+X1%7~EOY-68*= zkFbKU6Q&4*;L-RkJ7P2;iV1)y7T`-Fi=?jtjg~90&L9Q;3eRSv5`%aJr-lJdp}(+b zKNmmSU-FRyU?qRhcB zU12hsbAfzgK|Px!Uo9B0>-wpXc-J~($i>AFu@Z`+XK~Tzq4Zp*-kGw}(ek{7763Xr zq6y0^ullJej-CH|_*?%Dzm0yj8~w`}eWCtm)m6@B1^8?hDw+_@sqBE|om%4XL@QtC zlDC2P2CBG`6O8M!B@uLGy+svb{Hu@jne0|1dJ^rxdtb^CAS0lOSp=?uZlJJ%j|+>(-c&3|C!<@rVnf>qd2(TAI` zhs?P54%hJk5}qg~{3wTE`)_^W8RQ-G1`G!#)IZ!K5<8MXsff%g`pl(=z{2vg=KEP% z_ycUF8HrJnNZl$qvhhOy9lz90PF`EAdcFD?p}zqf?9S+KJVQPDK*;zX4$V`pDH3x_ z{QgZGB=RpXB6Wc-Y*O?JC(MWLhTZ>Mvkd860)j>w)-bt@zbsw0ufkQ5Cyoq}nS9O4 zbntclf`Z(9+p@d*ON#te=F&`Nu`iQ4#yj_pDaakHUzS1$#4^S7BQ%5c)q=LtyYfoP z;kflHS^pkPhr>S*LxMMpSfFs7^*IoI(f{RX4TP47&K;q3mLtf%!~YmV>AlIq*%;eqQo`Hkr0TShgfy4huBAhu-`CHP!&3mtoHeg z%hFgqfewy1B9_pP7eL^K1qlvT%`r$N$Qb1MKdG04~WJKps0_H4FSk{f!Rv-9a#)YrpTsBprUJqpXs$vZoeC=kT?>U=@AsxmWo4>@-Z-=d(u?MeJX}cnfRie&7AIct-v$d1RPXVY(9{)>NoT7_s$har3`uSJ>722=DTm z$924Rncq#A6`;lPxbYLXFnr!&01*?a(tZMuDuz@9zAD)d#U)pG6het79t`NJxiFv! zL9Dht^8NMS=4N=tl4&Do#?}%&pGErz5wM$MH|*mEp5zMsYk{gxu z9EMabr0EM;uF+A%M^LlTxS6H%&TtUIC8onm?zQ9~;!%Wd)0m%p%C&Csgx^;0D4CbZ zzXy;PtRY>X6cvt>znKoWtp3vO%>TwUZt0FnVcn-<9N zA&Ba;>eeUl#rgI@T0z+p3PMT}FUwssbPUX91kS3xh%oISC6w3gJ?PO5n05od%`K9Y$i-o$~hZs?n z{HDT74xs+$fK3i8d%sLRAZNsNsw+wHeCEXLdD|dgtZ%#u%AUy3@Td|hB3}A%DvoWE zp#h;kuEG7{*P_%*@_-a2r4CN$Zjie{=PCX(6AzU#*^kK#6nesZC4#cCA0xk1vLmAg zBBVML`>X}y8D~BKLfFKpTwV!KsZ=%bk_b>jh7!0O6VJwvr%_Hse*&7*J>Rfn1t_$- z1ON1U0k-R6I|bk2w+QrZ`k8JdJm!d~`M)hg2ZG<`uojvRs|IVL;vn(N7DuVW^{Y(7(j6R| z^79s5CKS(ne%p-doMqC0#FRdtcbHUFg6>WSF@nWIPULF68o}~bbtB39I zE=>JJThMc5S9(NCC40k#!?tIQlQi|%ishNl z5Ssk7x`tuW;yFAcG{Q1%tIow0qsOsCZx=q9x4PN2OCDA09hH>BRLVXy<~<10ADF5cLq>T96BRmA+phr<&kf1G;Gv+&#V+~Oc0IWVMRs~Uxgkw;pOTS z&N%%o6^5qfi0s+>KcoqToZ^Yf z*8BR9b_}+|=-xT=fv9uMWt^tB(^1mVPVk@2!z7O`uLdX8|0C~-`jc5k9ATbZ1;X#E z=)1Uk`C4WD+R^Lf@)lo}heqa_mE!AKmZj;;I;vh4$0`GDO-LINjXGlD58h3IEw~sv z+rSX@jj-LA7mn{*zgsP%VNTn;f*YCYgI=esn`%LF+n2%Kk+N6_eew7ku0yE%(W* z>5Yv3q!t9niIM3VI4W%7Q2xelYk%)z^!6pwI8X?;-jm4UfJ`d#!H|D=Bdgi<;C;{~ z&zJW{P1t8bSRWg>mdglee4p3e>f()7q8m+wkZntv>Z10TX8K-hFUC8Hov85{Nwgu1 z0WPo3rH}(~NW#1px>pKD6j<=UxQO2%TU%RBcM5=$?yrjli6B~33lA3+n_ zzs-BZ28b6(Og(>y8PbMlh;m_vCrE4uoO?Wn-oIdD*hMDuYf^T8n&!$L3OiQl{^zg6V#GCZjdSCCiV zyWna1f7%Jp`?DzP9`Ox{Jn2n!d~be&FK4?hyYTCR$2Izu|A8d<+onBfjr{P!YA@?Y zclSQUP`!7bA^sEIRGI10(Yx1^u}Q%UaT`^emHij2hPbj9&i&;B?r|r1@4g$7wO9A~ z9K@fvKF6)dUVL}v(xcYz80olkzEfzMtAegtm!mwOJnjZXQIq~M>8`P*=;%&T;`j;Bw5`6*90uvTl8 zs}prLK89K|mF{CNmO7uh5}A^lDy;GEcl+-T0XNIL!l)c8RKoV+ko5{W05Hf#uvEvL zbQHy;O}6C66Yt13M>2ae(As~{+*;>+zP(v{k?Xd_zhmR^|DB0(uvF^h=cnf_nJZy& zDP6aYsXB)O6r-hk&H3(pMxBO!3Z1H$#x`=c!bggWCyEPx+rgXVh136i76>!#`PKW7 zsi#4VeirM^neoc|0iGYhG|ALoV`NKstq2Qs;X)q7+D^6{c}^bnnyOCCoCe3us~L?A zzLWN*(X6oG#b#dhkG`z<_x$|&zzvQ{HQb(=cDaGQ&GRE7tE3FeHXmBb5YM|C96zzXZOiR{$i{1lC4m3J7l4X zO8E8sIn)2XBa{mXa z4rKTVQfBdgQfAu|o=wIpE~~6d(JGXizn)#GW{|Knnw_W4J>SjaL_YP3$yL02Qf7i} zHjrW~RJeG!R5oeDPRXZY1XKIHe7Xd)qK%bNA^)6|LF(kZ7PA?{Ixq8`Uo5u4MZ@a( zmu}c*m%Hy$7hlU!{s$W5??C+wdJ>;;d8zt+m$I3bV4udcDktBR&}pm3F(=lLU_%pW zg*Qr&*599JX8oa`g-W=&`_3%>F5j8U<$n*e$ehE=pJ;Qxq4RflXVa#TnzBf|b)jZC z1`EUeH{qsgjf=gn^p8sCHgYH11q%-WIfZf6C-?9m8 zVaasyXX6~qX0d!1ynfGIucJ>gGiwD_rutdr?T`M)IXnPJ`w*ntH7O|s4*-+UIg{!C z+*mujVBb#Ma}DGJbWzIEy8h%!9~Bj5Q~?Xl--MIJXV{V$(|f>)jnetM$H@^09}rE_ zzJISZ0*YV4!DsCNZT04h7wTV|H$_Fo;L%RFS~~%tLyTa31)P<%#WyX~yuXr-X@Fbo%>h#gEW8cbqw<~0%%E2BqYxATt<^HG)__~h~QmSe(T&%Y*a>wfpyVY4Rs z?`tN*h9vbl641MTVb9fM5|_@%IxdWa_a)X>)NAy zobqS``Q}fhiuULGK0TTxyBPpxC+qgsKdif2g=Z*lV)d!%p zRr{sJP5}7jUM}hcJ6Zg_ZU&?!BOmR=Ik2jOz?r!kh#?6%?|0bI5!44(d#pB`#TWX3)eZqj%&Kl?w^QJZo{R@n59#&FP`tn@? zeho}6#2G!^o?M})OLg|@w^1KG0D5Ofh`)2B9=Lw|1mKz#P&P69%TfSDl#)8n3-e~s z`aJ^h_DUHAW#th4=3z#ndf$iZ(>ZU@%{sjTa+aoO0;d7KKnuj}ZYxPQSZi9yd0U~u zAg@O7{O@SF+@7wT3daRm+d_!-^IkKWto$59%@$zJf0kGm{>Bz{V`;G8H(buNz3wIBLckzWjNx(MYrAW?2SE^KUMnF77yY8{uNqUs}wxQ8$x8_w$OW z+3RF$k#k4aUtrCRZaD-zXq<;+ovFM`vR(=Yl3&zy?|qXN`h3y_u#FFag#O$_!v`WLW^YH-ud?&m&qx`-ARH^CgS z7n?ltxVa4cBTac{>9T&BJ(G2hHbv*sz9shmJvg_djyq`clX$<+N-A@$zNfRfI?(Q- zqeDqj1XIL?o63ZYiT%`|>bIlQr`OKQPZaz5=ELVNtCRbf7>MSv2v6d}nbcaemb!`^ z0lzhhpZ$DLFV7qLb1MlRJ1ISR7cWKxUktu<-8i{$^nNW=qk{$NRgF7wxvh|v9E5D8 zSO_p5_)S+;X3;d?zb}O*>fGNx^OzhOieUTo0hMj`Cj57f03~J^ZOpLwm9r5CNA#$9 zXy3tAaYhD-8PweF?vL5Ysi`R!3I9etp)>8b_l~1)@p>K6kdd>Hz9SQ@A)Sdb;;I7{ zeBWlng(U}lmD11ZYDzCX=A>O$zVEj(#wMLR7e+M5KakHI7zGqQmrBAv>^VdVh6;Ms z)ztwtOsudVLK2e1TYv_Qhe!5iMVRE^`POf$;qNaz~ME(cucZ}kV!{&8K6dP;}sX=&_K{wrvGSk~poM@PgbstYL!Z*XRpmfo3|nD8lW zUOYaw>_gb@E$i6JM%~Mz*A115cN^kQ;?JJdCs8n;|L{nKl=^Sbn6)2FoUtt zCUF*jndw#ubHf2Z)BpDc?(y2_S4!1}QG;;tH>DL7++aec9UtuNRpvK0FK}>hkonF& ze6+U4Fz1OK%cz16Rak_c41^I+hj`H*2-w)zfGaL8j(};b%gO1KBUkIw*VpG99v()Z zr86ljEp-@1i~>(qk7(aw6wJ18!!vVTRr|Dg$ACAt?jh% z+Kzp)8ECDc!zOL)dG#e>ZcZCmJg5F)?-$uLX^Bni*n+zl*b5~GGaTEL?Li;Nu6_c< zq-}{2*xylWmzOpDgM;$ll631rPWJcrJN2%3rBjlVvjjuM{T_>wucTQsSE! zbFgP&>m}3P3)|h@-DKpd?ZT?aYyrs!Wf29`8NP$ivyuM({syKN?vj!c?F**}n|2x+ z8pZeTr~MoJ@7nIp79l(RPOzM;B>IXS_Y4t#P2MG|I+A+4sOqhtD;X87Ir;bdRq6|^ml?P7mnhlfY(j#LPv3yktuxrtGY64#@DZ2d%VGF& zaZlE3bxzUPAF;G{8WI{R82LCD^v1>LnP}KPQsMZrxkghd<rAlrVWqcu7cwg^iz`52{31XE7Lsl+Do7ieH!cckGbkzGb>J^D-&K4P-#zC0 zf`=h~q5OjBlS$pz_;BV>$T{2{t{t+pX~TTIu`sRc@E^$q(SyavX;|?fKhs~uZAw6@ zcZ4LK;`*-L%W}gQV-88>6eamZ1ctQsJqY{^E<8nFuF#;rRnHsu>@~}e>D6*tl5oH;>clvd5`EjyJQaZ0oNy}rq)%D@g z1t|8gW5(bpKe-pR{;{+)7$aTP{Rs8JVhO+D`^LqM1NJKp9KB^kRP}1F?k<>8ln=52 zTEDXDAogTSpAO`!rO`PtMeG>R5%71hm7C~@P+#EGnqRfc`mM>WnnS2>vyd<+4W_{Tm-EpY4fAgc=%tJ*S4Z{Ihwhc3&M8fscA_DD}{jS7WTLF@9|wmik_eP9=-F1*(Wg#23O*1b%A`N#ZT8%8yPmXA8de*6ChBzk{Ka z#vQp6WWV;>k<^rn25(SgUcO=pOrNGB-W{C>LS1hxm5zrdzK)@0rw~>{ZjFmb|r?5Wq;( z+D`LU!AC<_CK6ASjM`k*z|1|-;>oNN3$mUlh>RfOWs`}c7ZYWDaPS%*g$H=ue6-jO ze9V8C0g4$CA99!W2G{gNkWGpn1!!vwDeB4V$44#g)qLMoZ7-|o$J5kMKcQqNR(|;@ z_avK~&q!q)MM=5Mxsw-6eL)v}_vL(Wa8UO5CXIh}=7#8OwF4SL>|{!1fN9_Pb?Qji zW67>JX3XdE(?_5(P}oU-^ZD%%k@UGG`mc>FA)whv7uIN$9zi0gvtsgt`{|owS9Na7 zn_8?2@o=u!vSZ=lQS(xdrprc$=LT}xj*FnRgK!mTr)ouL^tT_2874mQ)fM^ouj4IRi6)x)4;-y)E72n9v@ zsL;W(!l({?4*L9o0JbvWzVj0_JQXR>Vk9wTg^h*HmY&$pA^TV~CQhhFsFjiKEfSzE zb3^&08c!-)SRFwsEQG+W%IC66#=Yne_=csR=?y9HW@j1z1n}RVcf;OFr;?LxJ5~HK zo8?t1rdlT^i^7@LB&Tnl^S#!~@=1JO@8k|tK25NQXG*mx9j>M{7q-f`033Bgr&}h- zRS^+YEk)9>>-q?gNv!Cp!_p;By6CIfM_ehj)ibqS{LRerMaVBcDHcf8yyL}YosJ@h zWqpf=c$^eL{8jD~LS~*Qo}VHc-wj14`ESWA-&pcS(hO$ecK1bm&p~$Vhmfr4K zPPWHUcQS66OU6K-r_GR;P_9+^8GDipQ+n+yegv=Ljg(B`3mFdEG-HG!RX1%aYI#+C zPG`k54dil~jJdf9(JZ#MEhR&cHEAW8LmcYTZo#Yed8IMn#}!7-ry1jup6pg`h`2jb zK{{?0V|LQ80a|R9D?ebq8D@c5D&3y`>#^WTw-@-eB9!s@ zF(Ul5!Cjuv_zCRD73qa-GjFw}cKj9VrkW@MCn`=_E|e6#-iP7wYA(>(>SK4GcHi`W z=XWniZBKpu`fmE}xOLxg6;x}N59&OTXa(j;33>>WYK3F*M z`}9B)nUoFfCGTu;w(rXJPYqOS`yu=Ls1+C&Yh~v|Nlv_q)#j1T zr^XbKmDtc3-eZuI;dL-^oD&!7{NiWqEmiID<;Rv$1CP^4rO zW}_35wo^5Hp=EKb%IV1BzC21THM{IlAif%K{4r)3 z&&}ED3{=03MQwb5S|ECkM}~|ceZ}wbN)u_;U8l2x!}V*UIL_DyWC7*69}PAVvyVH_ zrhQ+?zK;vdT;`o5$%M?8*Bz(Q56?<%D)=k1(M#;}F#C+q5sk}mE^(rE%lMA|bO9#R zTw4Ng8S#j9D6ew!&i3(;wCFP{Qxc%8&F#>EoLbIk2mM1)A5q;{9z)+qNE@iK%s3;jR zXVQht1@ppTJuezzVf8dIp8PPX^)l&^A&KW;tw=3D)aHOC zB{M8#&+Jv^`L@=^oK&|U_WX+6;!vF9y=%|pCzO2!8U(6u_EBjKrcZ*Ej}c5OE_|#z zA7Sixj$GFNJx_#nn)nb>6t|przNg7`2zuN?Yu^nyj~BQy+#T8b%PR?wwB(m`2}c=v zZ;9}p;4OqZ9p1iDjYEQ`Y zeyV(iTJCp28QV@K-oVP@lOVxtbDGw5ySs{A2A8~_->$E!f%k#!+)vN6$Azle^Fa9H zkJszxV+{8LpK)HO8KwmpW~Su344=-Ey8k;YlIgCt`WXJrRHLJo?OS++)rUr}F_=*v z*^epGkRqc#~|y@v96N4jzLlSW(xLyPS)Qb~(@i{ALj#|6v@g#A9SSR0}ybQcb$M6kNo%k`c3;y7K!nQR9 zk?z`8xV(bnrDo0b(D24f=&xXjpQU!K&B^)P*4u*Ky$Yneko0`ce$)5k!ETx>mc1iL zZjY6yw_k}8uvyUVja8(q+xX-6##pFEtk~Dy_Oe<5nBJv0qmSQFKv>n!SEK|cf0gN_ zwk6opi_R~T9~ZD)27a%;^;0COR<9uD<-znUX8}Chywrxl1$kqi!Y*W)4&RrIeSu{4s(~ zxcrkf{;1R=PW*`Og2)|polkW|Uf5Q>5^Z}oLciIg^xa<1zwcT((O9#A(*c#L*1rGA zv%5IkPL_}$)qtn%XzZgXssPnWW_>cu(ge#YpJ>Zd2+fQB>OpH8A&x`-gC<`;w7Okl zbd=`cPf_1Igv}-C+lR$_ZxOO1kF%Zp{0pD0LD3&iov_5F4l5)%lcv>dcJqv$7e`Oo z#62$~wdY$b`V=RRk1<0pXY*u}N`9*+2WIolvFeoaHB)`vduT;I47p$Q$$`k~w;lQt z(|%?8&gYZm2Y0rYwLP`>I`qTe6lB95pY5Y!==`sIQ?8VS<2B218|B%MgEh~l}g0KIks5T_Uo02RLpgqBe{Bget- zl6m#0zI%t0xLx-{PhwnuZH6k42WAq3pq{n=5@6IeGca;wX!7jO?9u2aa2QwBNEKmf z*?4|Nn~2QOWoLx-r!j6-47ynRl6dWsr*K%s)tJgynX2P5=}_fLN1MyKCeA7gl45_m ze5%T>l)YzB%YBpbH=en_Ibi{yGYMu5){0f$LUeREzyMZQH%I4UI-I!}|DgWERjE4W zbdYxdh(O4QqvSYN?oAY;g$+(hFZ8{^=Dze>q;e#fQ-4t18Tk$idUtPFRp1p-?Z+P; z04SD4Q{VO7tPLjDCD4HW@xqdOF$7BbW`K_^+W8)k?s0J(VuSB&0$r5aO&K{8-V)<@ zT@jkPjZYxmGY0bbFS*XdP7lr^Vfxe<8Ui~T(GLA~zt&RSdL_wS4%f=PcD>%KIuy<& zlE$WvyOP_}HsFmQ>onZkUh`~Z_1RzBLd|^8=G>O#*+MqrMLT}g-#lWG!80)v{4BNh zCes1s$52}8P@&}qaXMXvR7Ne6d9Gr`PwyslxYG)dIQ6Ut>#eG6A`=WJ)CO7l9dyN-BmX@RApAA2+dD8M5_%rm?p9ZF=Z{4pnsCgy0$J)Bw za-dZg`YIPJ3&42_J*GcdV8QaVxjntHI=(!b`?f=Dx>2leKVb2n5XF&b2OvgrB$E21 zCdsr%oNiBz5{aS*1VwxP_A6llcaaXLB%j-g}w$Ix{JWiW3@dwpFkA#2a)E&M4 zs-=d^g%bUIS){WjIRB1DA(^bhmr{s=R5_hTH5K~a3|?Z(hRb?qlk9V^NGi+C(ykO@ z(f5PoXwSB5&$otFm`<1o*?D_F7$UclZis&EW`9aP9QIWeRez^#{ZhesnHZ+Sp)ce` zoG-2bJik4=u;t2@yzGbhgi#5b$K`}kw!R@g^B=$i?OoUV*7jjJbQuSRKN39UH3xHFnl#>5_=_4WR4WS&Pmy1@ zT-g0MK*M878aU$L3c7>;mE?Aqh>}(p{1Be|apqv{wocQ1=V?CCrjD!Tm-(+=66p=P+)bu`#S{vh+u2=}!NW{5Bkg*BI5T;s({AX}|1 zlGI7`rS7fNN(QFcg*-pZ{S|GJQj(u)PP)6DE&sQm zpKFHvZu{XzzHZgjGnk|}lcv-s3n}~8U%*^7{o-ut6(dwSzeVQ=VT=Y_j%Bv^R(E}TTO2C>}8oHEM? z;Oi&*&e%A|vz^stS4H5*uM4d5Ex;nCJH5ek0XqbaO zOFP)+L-brVQst9&t*JTiyV3Tp>WQpk>U!g7K||-ijyY?ti38o0dRO{k^TH8Q>E-B| z;2ma_fzM{9v3E_%GuM-BIdqi}I!YPeUo|Md%cPlCAO9h`d2%AH3~{fNxg$usg#+V}UZ_tcJC>BWz{xCVGt}Z_Q_Z)?&AiiE{9JJ%vaWJG&-Cj|L~Z z5sd2zS-ntN8!g^m;)vg;B^659sfgcwA@5BUazjXLq+|&yz7aFPk!U+8+a_^GXAh8C z&bQ=y*sEVNek7cZ2|~6^6xJ2v`keN0#g4eIINh~9*F?Z=Pj-X$WZ2e$sg}OfPv7ms z7EP;v5Szv~eyQiDO!gk{&LM)z#1#JPK+=t_hS+%P081OWM%M5X7zK<&SV2?(tv2MhXkAGGgxUe( zFft)Gaq;nCupg-2zKzj>a9OCgN6QMS&w$6yv(ZGRjlO{U`OATF6=mf0SaOn+W}}-9+~hkgPm> zh_^F~Bx${bR_Wora359x4ezIG!@CyFmc7f=j10SL8tBG=U$;6fqbi$BDTVbZ^erT} zA`af>5crk7&LdWOIy*Ge^wh_!%ojVO6%p108;{8DLk6v0kQ`g$W!&dm@aPU2F2ifH zV!pg60d0VA^9Pi^Ax;($E~3^90=zD^hr6;T;WM52D)fK6%Tnzo5Rv$@xz=Dq%f^O@ zTKFhvHl$jr4H!pd;jSxsA#A{caD3nZ8g)*3SG+ryVki?4@nEvbY!Dfp01aUhp!lD9 z%CF21f!yk^eVGW}!2_b6lmp96$e(V2y&W3OWjjyy{?-q|y39cV*79qE8|#V>86Y&O zuoHPU3hm0Tg)=;8eKO=_>M(|@an#yj@Q-?c`3fO>arj)Zry9II6qXmx;W)3PDXahGa7I%K% zw1wWR+0ruo=P0YSZ?)*GFT;-_B3y{iI2?~UMkzwUx9^OAbtyh&6hdp|4(dVKmv7Bo zh>bZTl$Kt5_S{Ode&aLP@uqHxlz1hC#17-rXuaRhG$-yhMJ3n00q!?sgXr|yy zJBq)Uo0V~7%aqd)iKDch&+n_jYx1}jY?X47_ZKz^8N{}{OVSsqTGVVPFpM7Q`Sc7O z&`cX$ceE(4bhSA4%;A>hg0$N5XGQ$}ih}#Ibwz-^YQ?i)^H|5SvWiD8oCk}^-T_3& zQ9^1h=BaJ{b+qcsG4ZgqQl_Btp8Rx^E9*58WyZI+)~v=B4lBn#iq;cWZaPw^WPh?c zM8Y?&yIoFT0wz_C3*2{Ao_EaB4GUR@V0{LykR1r0LLViF%1zx(>|Hk}SWa(Z6EQXm zADb)gpcQ{OPv$;yFHWbp&Ghd2e|*(JoO7^(ld|fS>*d;~gmNlGt|Y1OP-<8`ZNs{@ zK+Y;?xt+Hb%Ahpb@j#H8ny6T;BQQ1_k$IuF!!P<@EBN0}9Q2?C$O9xhUU!yZsSrXN z1i0XLKy-9=z(W**g7UAWh-{KaIC7#fh-wK*$yoGN(zQ-FbZMJdTfLAL*vG&Y7Q;3L zKtJj_NKVFwz-F$)c`xkzZNyd^N-b`WK?PSRex`Zo04UN?X%rZO#11Yw9`97a}s!*@@;)={h&i9NS5~Un2 zbnNc8lsz#Ikal15i`5HJAy{JJm;*Bgq&&|T)%`ULkOw)A?|&01!ItORaH}-yBr1e~;SSnm+SLWzGe2xq779nOI--!- zb$7T$c-_i=Kf1JScktp`S2n;o4=DPs77Q-jbV*LAk+y8#oHdqQ^#rcs4(gtnv`mJ; zH5fo(!iFNPYW2Ao;C`^;-9aArxL5dYk}>UT378}hV`VGSj3Qk{MMWAZA7{#mw~Ip^ zyPF|sBH^J{uRr2!7bMr`M21cT!lQNKyzhoQUwh^_mwZGe;u+iUiT90ca}qwz5LW+X z+Q7(u8F@lh{(74|6I$iBz|a2p9nxvFV{adtbDz#GOk}#;C9cojZ@YH!g`@cOSkgED z95d@Tp$|T_MqopDojIU)n3Hckz;*nLZ~Ec;g>5#H&^gWoawhD=c8H~+jNh<*a<-n> zIkTVr1!4IVb(O_l@~&951d+)b#c%+*WfYz`tD*J1x}}luZ|&(3;u+;nfoF}LeW;oj zzrA^ECI;E4VVMpJn|A1}V%tj#84V#F-dP*_!!}(d?d15-O$p8z+LEHq&2Zi!oTR_2 z$v)M2^{y3wBx-8D2c=TB3B9eO@gDZDzw_g>d|m$;!$T z>wc}X{+s7NzGvs}!ih7DH_;kAkj0Z1+>W#7=1OAioUd&VTTe)&J^c;!6qYi++iaqE zc;2O(78?k51o>bY_U8$PoI?uQX|urx6j+w*2ON~MoNk;~+#4TScCD|dRiFN3BeT#r zq%DDF)|2xWG(|l3%zH=Gn#lJJ>hWpVOVMQZ|B?02!FBcF<1XB!abu@xY@@N+*mk4F zwr$%^8r!yQH+FVxp7osfhwqtpCbMVn$;|#ES?gZ+=f-v2OoId9^u=8`; z3C90WDB4!GU%7AX6u`&O6Jz%Lxxl?E%_DYh1!42!AMLH`+~WjGA#`3(A!;_5Cn!Lz z&E;z-q1H7Gh6*PhDKjvr%MzTg+6<|>HJ%_5%$3uy?RrX0{V?CC!Jp#)ydmYi^`xHS zS8s=5DuMB(kE#BSR7Tydhhi}sKtWVBhdTU)zRCZ1x`>|bY@wzqFvKP~QGR`8mP4<7 z+t_#XAQ8tWiJp!Q&qtH%qoKj^&Fti9es1m>dV3MN+i=GP11j@ME1X7c66ouKjn(3O zZRxzWAz9hYxs|_V)9=mAB{V2S%=i6?{RAnJkenP``2c38lD|;rNd%?&W#y{r%+^LZ zkgiTHo5yScI=AMVzLqVN@t4U)>&>-e8*MB=<3}NNS#_-&6cmJgR8zxfUkvzNz`PF~ zeO>Vei%h_fQLogEIYqx(bNPJmyvX4Qw|rc0)IhR98c`qpGM=6IZ5?F&eBahk=U7~lpqK_zFMtffl2p_yo z{c%mMo;^3d(7*&EEAGr?U|QFT=;KdbD5i=RCRH1IKhacI|FMr^wn?n!x~0xEVI}LV zC{R=z^iy3@&<(h;TPai<>o^JKA8cLI4WdwKQ9XhqWGGV3PK+iC;`!*sY)XnX^OgDf zz7VYlrG{7rUR8Ebey?)#kn*0F$Pge%my>u?u0f~;QB{0n{0})-d--7eVWfWUkNGB^ zNCSHwCKu>LMbzYacJ}wYHco)mK$ea*Ji8A#*qK`p_ zF64pbzyxH{Cr*=(zwi;vKl6WOYrT!84+~6CBCzZWHq}1Rw$q(8jr@q*_vh%4Us7%Z z9898ed%{1E;RTjvBKDxZ$~N$sWpLR0f{lVB^QgE+rw6irf#ETnV{|7X2~o9jOYvKP zLGzTxd8FOeDt5#2boyS6P(%>}?MVZ%;{5&S^JNL->IGVJf-A+7?wU!Vm`=SnkVn0$ zY}B2nKrDFAA^mRl#j{Bt>vwsZi{;m+rLy9D0`|Pcd6Q|do=%nT-{%XYD|jEoX}%&u zx~`Qg;R@szm1&TK=CAWf5?t_(fcRvJxE$|(&KF@^Rf>AGJN=gT#9I3>>s8YQYdNCV z!TfTzsVocTiNOS8igi^vvwTD!k8Cg_`?!#7jFH{><;ybkdpIZYZg_R;FICMlM;rSP$Hi2Ln1uW z7T-Ti2|~0}DLy}6M39H04<(UO!{1jNzP(;w=+mQX{URHby}GKuqT~GRJ*_0?By$8*Ay7(OT1FzEi+I06`MN%b3DS@n!C9s?PApxmL$q; z&7pZT`#@W~C5$25DWZiUO%c<;#(wWu$bBX(E*Td=g6)t%E~R)eLFCj`3UA=uKgQwJ z*C~M%WSpYf<4ymZ_S$m@SELvAvH?VUMYe&MHVN|_u;wJKTQ`0`-sR7LwVeULRy)e; z43q;F*dbSYvj&>OGb|~Mij5_?>~GtpTbe}NW9I4!+m6(ZTXQ~5Uxc&p=g|B<6rVRL zj%lfuPgDAi8OU@ziTa+Dn{_|UW)gyzeI#d3v+!vRwNg6f1v6Dt0Nqz_>eaU00F|oO3?r7E5q^*H z+wuGcJnxN()L&~< z+p$yus4ynumDl9&5Jk==Ek-R)}g_7Okzn0bA%&hILwuf9CccMC}|C%MmgFf2Ny zCnGZEs+GP1A_@^YrJkI}r3z_NA?tgv$lLhJ8)_#nC#X?=_6P+#Z-X?6!^4BbwCIeK@UAI|hb_3wjFZ24%dcQyGC%qEgB%!*9m5_~V8So-oF5q!R#| zjZpZaX0~tIt8428a8$Rx?ZMfH60liflgnm`=kEYi_MU04$IXznMhmQtOJ<(O(ZWLH zQv#W0aZd>>0-{}#Zamu}-(Zh>xE*BKDn%HKS_a${b%o94TrV9@tJuhEnYNYQ-EVDA z{<11oa41`u{ZBAxTg8{%^j(~cU4-%+BEojuj3p}Y<|&x+JgNhOMg-n`p#JU{_u7L( ztX@-9-GQuw37Fy8Z+sP;y9(1Wfsf692vNPRze*_cN9)9vXzTVe!rxjt(3mG-=81ho zMt8O{;l=ecO2cv!g0-ZE|4`!76$r-SNFgTj(SN|_`Q=u`Jr-gnN<8ty#a2Dd8cTOVU}xUY@Lodf@c*&PGQ!hEb^e+BZofuHo5|~e z$!fkph$4qB?-tT8coEpDJ_I8?)qK-I`Zxj(Ej)fPZkzXx)1pGF+279p@2954Xl;tqXY8~!vBd*H>$RbBd4oJ zj=a6APji>`+~J88=&*h!Xp%>MC^%%Xo-%lW8K{b2Z())10YN~tNV?@o;ZzO?1`ts> zpWxa;@XW6H){LHQ(R0_nb^fv<7Es%>S#rl`vx90=Kh3TiM~kd2hJysY8D!zrskwL; zUJnvp2O(d}q)CL6b|InW@7zOM9cxcRfPFuRNS~?cfR$ry-kwl_?c|eX4OJg<4i&6q zChoJl>kt9gK6n#C-h&3i2R-<6|O-2mH}k%0`()pSt<>oMhqg7B!u zZYV@SLrV@e{@}`Z|LTbT3;S=PaL+ogWr?by?h@y3 zr7$|q!MAluEK=*QMFfm0sLG}JHtDuFra`pyLJYx?jkXAeBmD;DYNN=ez=(k>1__=x6V762RFL1aL~WuXg%L zdt_u~$*)bbxSYh#z1F=_!aklw9X?fw3qNK|&tbDLl@|5Bv!*nFqGf#~#EEvl<=y1~ zuk0nC3kK${Ht`?m&-6WuuN5O@{3_~v!0xQga z7<$$#`XpXYf?bmtdXBNyR$^}DM=*$>>c!gj(;i!iz1tI`N9!fpGHD1^OfvLg?9_mV zi9%H1ocGk{6dRmT>B+zDoteRmUP~!MQ82v5rV-GK4`GI9Pr;MF1{PrkJ!v=63VSsM9ja31jm z5ga6i1b|5yG-gy*b&K3m!*!CaPiMi)gC7WKg!0TGh@U z`Eqm7u}3^kl%?lJ=f*KgOAb8ed#Z z*xsZB3G!J@$O~lSDOcy?c6EtfIoI7e_Z`iFy^f=|w|u>%sN`1F| z4HPTxUWkz3ZDUr%elPg=DfPz-KOnC}wVN~WBjGNN%SCGoVQBd->(@I)nE8Jfjd|7J z4KbXENKB!#rbVpCYp<1uOdg&Yte_eqSZi)Q^uufu^T=B6%N_A{20B5rrl%mXEeX7( zwaQ>~sWoiYpY|EI=x=h~$>IDyso~^56>Ih>kc`Ahx$gyW{jXnDU?)xf21*NeO9$la z=oR5c(`_9E5i~EWi;c7E#FFl(ihb8qCc0eRuYi1IZQP#Mb+-I|F%UhA_{K5d*WA7; z&!!5~x^W*FVyVtO;s+|oT;b{qBa>TYy8ggknHXXw;I|&GGx_0~9|yS@9;U1sEm)iU z=(63b`G=B)+M+L?&)G8WY=bTQw8$dwC@Gpr`N$&6Y-6_eZ`woipJXl88NcFmbz~}X zFzmTG$%6y;lBhFiZc5!aY!R4#Mji8v+1hB>o!IF-2a+OH2^8F5E^$u}?jFY54+DzY z%4O(|Cnv5`St-GKcEuX|ZY=LHOcchyR`B4@ufl99p0Dp<3|#O1LHGoJ4TdEM-jwO6 ze(!fOjd-MLrh(5nWw^u(7iSw=e0~j*JQ#y=vXF5u66!s>kF%Yb=5^VW*j*Q31Fb}v zQtCFqa7NE*zf3zH=RTFQe_+up+YGJVV&yUVT)S}CzoCaQ^Si%)zH!2Wn@ngSi*Axi zst)-@pR9Iy@N@C8#>W#2RH#?69Eizci%#=j@(0>#w>V<#l&GE{j>u0;az6?|b0$-R zZ=^4TYzSqLxXE;;t5E7S>eIjq+*_{Sf72QF3W+BAVs930DN8Qz{dTt+`%b`ToU8{g zeS48LO48ScxLhe{H4Oc&yZ3${9YWyM0gJ8xv_{%6_462~)_Yvma-(V7RuA!PUf2o0 z%k~)#oYUdL6LWYQ{C|Yf|NR`t$rs7xpHO=@&YSl!XNuhd*Cqw|6t&;l-v-fI`z2#Xxm_iE6-k0k^YyLI+U5!gtn|0}@oiUfHQMeHr z8UzciMPKFEW|HWbOXeLh8tOQ`_gM5SUWKW)poo7~CZz(itiWqJxhMaE-)mVK%9s1= z;iIhmREh{saR_viukmBy$Ez!mjR7D^5IVAW!3}YkN4g5LzCJ&0Qj(#3h2$XQ8)%vd z+fEK1*6Q;)5y1&fbYT5Uank8vO%tZ{YXXAbhRUpn6I&(eF2SZ1U}S;^4I3xZ=qdN4 zzE-5(me3JnO&)yx;Rrgo`2eoMqFqQH`(m7OD9%w)MiWMOG(+$gmU_ZiPF!A%c&IEX zW8$4XigU_CbV7+9z;=2)%nBQX5nLNCunOVVq^BF_XY=4eC_&h~9;a8lvtSJCt*Ojp zY}ak2vsuXXjHHzwjHX6<&VAIM@F}T+_u#?GDmq`43j>ZfzH=+o0~*mmNO<$-K!uIY z;>#GQk0&Lf;|+i)s^`;$;pgRQ9Vp8rR2t zI)dwEeKj&&jH9{mvlaov(3p>nia~&#l7P8Vz(Xd^tM#+ zl*^C&zpyX-7?tAM^k6^0Z36Xa-C_{|Nd%l_O4SRBF!^+@McTP!K;Q1c+05yzA2!=F z0xBq23{C&D;}ZGKsAbdD?!~fuoFz<25BF#6hk(PqdmRzv(AjEH0QJAD=N+MYzBYSM z+h=y+^hpQwIthbaQSrQk!Ghk_Q2yo8T)oiFtIYbMGi#OFH@_eGZiwFl=E%bH2!TxO z|7I2c?|Tvn)EiYF(*-@ur>EI7xwuQj7A}lBh`t#?rk`$3ul}-Tw3NdL4`XYD5~p35 zTNNca2v*++wv>PGed|NuWJ{MJ-7CmpWy%%rlHKdZyQr}KTr+`p*xiXYEU%?Y6NUQuBmrPQ6U*l&PH|;4Y2?E zIM9S0e|7UPve|XaavRQ1+F{)@F1a9ykywZGbA({qQes&XmrqfTAjihU+Uua zcy$JzfAdtc#;pbIRkzS^-~4l9b18RAj?bg-m-Q`wl-=)74hk!|6Ksd}4vW#&8_*~T zp)hf8c0YN(PIX>O^ARCx;#h2tqeyo)OriAXZW*ED(8jdgR>HL5L$ThBcgjO0k?`)E zte05+dXJsy^T?Msr-$JZtpe)&qOAg*s~+A-Q;)d`q&Fv}$Ok$2{<=oo9TVwK-H(U3 zSl62hx2s$E5Y?7?#IOJ}jZbT&jc+)p`tjUWflf3XT<(PCs-*(!1-f1d5Se({KZ3mt z|Gu1&&F=K*`ULmotTo^H{4yB)SD;JevVj?MMco2u>+Q~pUKia)))ikh0%C^whhSFQEq5Bmv)vlawCce%7Gl8- zy7l*bD%Enss{@1n6V1;Pe1&W*q$Uf$0Yx(8k!<1Ng=@A9X-e_`zk8=2#^1NE+9#6F zJMl${;9$tLCFqB3DSl4X*Rn>NCBa;;9C|9NIPeEv!ryavKb5S12;^L7QyyWRKE(%$ zyVX?Tz)5*e2{;$F`LSKL%^0Y{{o73R(~1-Ou1@**;>#+=BX6n^^dbR1k7@Jw_gtA{ zM;#ZQ&S6{4gD;l%1o4%v4t0#5%W#iAWbF$U64!*Y{&9-g@v{W=_qWL)^i#gp>EI5O zWYG1TD{nm`#^j&BzxNbuFiSty&o+;ry1u<*70=q4i;;uMGXh%APy(=u6gt1A$VU_1 zbOFydy8W>XJh?4n!M$)|qc=qVhD?`k$Wm;==7QFZXknkH?P4J&zYTYsU|5EQv&{)` z-dfeoCd5|wq)DpFkKE5BVOi}jEtN1R`&cs-KEDp=kKaeYMLP?*a2P|`~Uzuakgsv=XG=4`2E-C)1g6+gzMGY6u2%yqLU(6G@R@NDH;oK5Nyx!t^4W`Oi%q&>U!@e7_#nJe= z4rX_$WX~qXpNozWIE66c-nV;=~L1^m02Gb+!Orq7V@s9m4!ynSKDW zdE7Ok773#I{per&4w(il|IK1sZgt^7CIMSJiUa_sCwwF1`q?v;+l4-=bsaPmwR`Pq z`+Q@J&RDYP^L7m#CEPIGyT5O=!2@8amhVC;y6>Po=}#m7G(IU1Z~rNvii4C46cn`t z&!ft8qHiO=|5;fNLurG^0R_??qx-UB`Uv26;9)` ztOIxJ@vJl9YK>kR_*X}s7ePtlmJS89r-oviBD0s4QoC!?BaKs}@n2Fz{^lhIOkGKE z&M}QgJCUYe&%Y+HSn`7=Q7Ja*cBZ;bKw_2g#9f|4Rc%-Qcxf!S)BoxB4a=>WdfZm? z@pKXv|JH@qSnExEi~Gr(HP+o}~SK^bPUpd6xo-yrR&4 zzlS2iwTvKTToM7u3Twdb57G3;51&<5HjJC4)x)SKRbH z`CIP_?~ugQ=cSeHUS$*xqk$)d)R(^%;=^hlovsyrI0anl`j~m)ULihl(K5qc$BQG8 zJD_81pfWJyhS&&(b{Qi$J@n_LYVq@y#gg+RXcJu8XC@f2QTl4$%G!Kj_XX02OVaH> z7sok2zE8I;Y^^iyu0hra>ps zg?lI8%hw>vaLILld@K>avEWK>o_+t*Ygh493F5t(SjzjiA{t5!TED=gojkVj14aFa zFuy?qsJMD(1w9Ez+#P~YG&D36$Y9QR0w8JQpqK`silT|LWXWieWS8qzXvcJSe#)^( zmqkAoM-NVtt|o;WQcQ1;En0|EqQ+2TprV}B?5PrR4hBW2jmY3MAse>6_UQ9)TXRib zVh~K_-rg8|1cm6kelYQTVh0})^xwt+9{`#a_e-}S6R=7M{a-f_kVvBDc;3Lm{cLvz z^#KeVUtmBn54e9upimK_v6;Yu0ViRAyq^2tAeMHAD+(|s)qRiy3qWPbuTzA8-(H`V zSLXv8ns<+({ zx;tM@XaZJRBAh{ML^&hf4}slS`Q|=?2LMQ{4{*Q+hoMpI0)gO{;6A{v?*(wHfR#!e z_16(K{QEHxIXM(FX|9a8c&K;>m*Ein=WR;1ig%fEsXwqEGyhr+aHm>S;zUm!yMf>U z1;^`t*RxQnq|oUO)R7Yt(I+xF6S8q7KNI5PXNsh-()*p;@f3RLTX?}T!DCT#1t(x; zNF{;Fs9%!`3Kgh5={9kX3zUbYk?X}2>Z<~WJkj=bR~RejF0swkzbtOyw0Ii)fy~Q| ztZV9SQTn=(tB{bs%>d@Tv}93EoXd+cX?ZXP?q~k+j}`e%NEG;8C4?MmHdg9n-nApY zgrN9BTxF@)C;toov_(OdA@-0^xg#17;|j6`TK|t3y;(-0hNpb{Z2B(I$22nkC*KrV zQBw3;8bo_V`NyHpv)|v^SZ)})J+7}2o2TdyfliCR{5j`Yf2jrjK6#^LM52!mqeUi7 zDQY-3r2XI5>03n9I`1~#uWIvxu`sOgXy2c!<6JN}RGU&1Rx#u(rYqrGa5LTh$VjsA$R_a^o9V4sa#v(junV z!6(||(!1-wIcV>mmYbsFSDiv8)xCQHu7FDJ1k}WtaRDgN(db!0vS`9(DaZ&mPkibN z>bbx@%trCn*7lHp&Ix|eB_F~CW1eAr*u$`QmLCB#-Ua{0;ji+tKP=U>#I-QW-;)c} zIUGcZuPf`ydTNTyj<+`8GFG>+PMWm&iY!NWM>zKlB&o1ruk8};QBdK=sS*uo$cT6M zG&keqX^HST14Y6x#*@MpX4TD<20&v34V>{g>U5Zi3|d@bR#AynkBvkA##?(w?;&>k zPgKg~%J}TCsOwABDj3c9`*qS(+{qQ{a?d3u_!QSx`T_sD))lM|EJBOA0n@kg>KdKy ztYM!<3P@r8z|sxplPBM)M~OFsR#W5+A|BT^Ac`OXQvr7RY5?3+CYKYOcQih)q)@4r z47}6Jomuxv@)};~`ESX0jhf$J_#WrAKfW;-D}w=d?J(e@f|FGGE8Po__Y~AiblTa_ z#VM1;9M6`b4(EWC>tHUY(|r?WeL(q|koW?U|dm*onz|q6+O^gZs4j z=h*IsA8u&1N2W%tK%OeD8b`pWe|C_l1D95gE4NS&W26Q|w)r1H%1kDI{dJf{K__FR zenwRk^_zyTvNXq8j~jg~V;HpL$oP6sm%NDOzL|Ab6zt#{?-63}`OT-X6vs>nC5xXx zoy}-u@?(A&WSVK}-2xjy5I&Qi!8>uAfARvt*=H=bI#Fn8CWZsu_ ze>m4L`iiGE@ZXGn$oK(qoT<5a8FgD0u)H7rgVSFKT*vTvE#XUr=kv`7iTDDY9zl4< zGziv(VgJUJ8J>i@JN`)(b2I*H#qwFvtGKgmF@fNS?EW1|yp{sT8-VZ=4$gFExA_O( zydHJg{h6IjVBdbSiFWvjfBZw#^A+f2Kb;l1d%srS`+@sDD;XySNPmvOg*LN zvWs|1KGXED5-ZL@iRKsPbGDo=40lzO{pl+lFYW)8R3FTCr5tng5K6$Aq60(K(6N29 zv)x)Tx`#kTNET<+?xK^2%Gq&9&ih?c<@&4@9oDac`%pAOgG#-1>st&%xd-UIadL%m zBP@j=)K6$JpO}sBQec>i9JK&WNHwoEuwxjMU{8ALq>db~ZXqHE$HhK`UI7#czou&` zuq%jAo@4g5SPkewFDCKA_tTzQh^4vuH4S?wMT3evVfODZ!fxVa!SX^Qz<_=i7H9uc zRv&InSHQx`!k3po% z0RCNH;Rz-9B5|%D$dP=Y@(H(_{%;0Ngdz>I1JjxtEa+oRpH!+=d!DbZ> zI3Kqvp7!Z+gL!cK0rceD+}V1QRewPY9~?h`r(|h8rs~tgBfYzxZ?sSw3xUV+2a<0C zV1Dg^MlFT)p1_@Pechla32TZTY_X z?}pX`SV=tEZ*PDBp#DQdT9obU$A}Ns+~M4P;)AD~J#1IW zN~dagzo%Wx$EQ7*I5n46^@x4MGX62+TI)CwnzNuP`AG+?CK9TFiky$w1|usdB_!x*Dwvl` z20~U+j=W~*{?^L#qI-I!`9|1*^{@RgJJaE!bv)&AMtAG%ehfg`DVM8=Zk(T-pcK!K zc3Ok~!L(Z8lKEfv; zNQsI<0Pth-O?341;b4>rLiRv^2rA#KR5@N&KnH2&VigAFFS1@u!hJ0_HhkH`?5_oL zR^y1ROEF^=s)4pmYdek~V+^(G@IH=rbf*m@BqS?iTxIVceSP4hM7VrRXkQd8vvP8< zNNTLy-8J1kJm~h2w0ZJZu4nSGch_9+!rS%@Q?h(E2iBgZ#5Sy6Fl)+) zM1aPblsYvvHP+MPYu8;sXtgTj_2$8U7Mw=47Pi!KuYSbwHi3!WFg?-QkAR^vNnFmc30L(&}w|WJ%)dFPbQ6-&Xq8g=Q zXYc_iC-ZY(`H_uMY0jKHLBIPHJE&h@$+}UK z?x5L~hhA7%xDJDIyQx>V<|*p)?0oiFV4_3}$~IVNm%VFw^zvon@1Z5w5z1*B=>00C z^Y%+h8Q0?n_s?SC!UA7nh)7+j9&x4te+2`}S_7L}BJl;&yPxj&>89valIKHmVJ|r7 zhO`P3Dk2KCo49B#OW+U?kQhwjg_+Dhx464QSUu|hJWS{l@ElQIUb;Q}bohI&@}Ox! zGi~!BwX5%G{E_#ZBHr}xsKcQ-6V8m2O0LT(O4cna^}0x}nnW@0*K3xt0=CqI#i;#( z$B_g&6+a3!37(EOBPH?J^wYuZ%G(W1hJrWw!iOer{AvZa)ot2M^DoZd#pu(+m%3CY zJgLc)O&5tH#T@i6CaP;_S!JSal~NrZPxrs5LjE4wX99=PB z*NW6PW0Q>a{@7Ek@h}8sM>u@sm|1kX!1uT8%zTeGbl7+iA_=P-bbZ}}k6}%M{b=8g zaEI+jibB26m7w-HvmYNvXbmuW4sa=nWolQEtd@mcb-pdkWUElTDAbu8`2W^I3xzNe zW8DGa%P$c^-&kUwEWX~jS-aB_s0b*fqH zhN~sr2%4_E7sx#WAgxaGbfwEujobh!I8LPBxWuua$?e7nRg0G+#~&R%-ZVB^NZy5) zeOO73_kb^k7M?i<`cl#g1c#&YXCWs>~VL>n@^Eg5t&aeSuMDIWQ9}l30 zuCrWaJ^?t}>Qlx)TBb#3z8g|6xeyCPFW$D;`Kq4|o$GplM7LgUb&v+u00STkKbA@^ z2^HrA@O~hV*-#dhG|Ba3t|$@f0*x2>z2HpPo^>>J=cVL#q)`>L{f>r77Fjf419HH} zyA-d}?KI8MHNhuxr)L~~ST!LyOh5x~wES4=5~Ivy)E63kna*I3Y3Jg^OG)7q<7*wOf@`) z#z2;+at1lxFR~FSwz=^bjUf9VY|pU86Q3?-IXN$sC`9VZjgYCRR0~J8u2WlhWLiY5 zR9YFlFSn88n&(^>VDqx~*$zkJk@*rVUu8#|EzKtPBJqinBI%LfSwuzvnFmL0vJ;VG zby%Cpd@^8CNijFH*z(A{l2No`df0G~8{$4wh4_X^Ys-HXdhDXO>hP!*XjmZnVH}h) zblTBRjxY6^B3{A6aH+=@6mOv9*9~)$oUAwG<7jNeOTnx#^=VnjReG*5l(x+~5@=;IEh`H>%}L#H$?1_-C-QvatideO}i-qf|i^xlHgb0jf-Vmsa zmw*&`KHtY>>~EzIPzOJ0C69cd*spWHU$@@)p1$#VUyoHZU=~1~reE7&%+=G!$ql^k zoki6>R+bl0(bXtjCJy|M1Im9L!loUuI%TRrBhEkq!EC`Uz;JEoAcPW@0?gGr*`pGt z3X>7&Dwzddmhyse#4Ghh+~JYD1Pud8=|Bi=fg-wMoHqf}cz}cHW~@zvB_-~c;PGM%rstyFr$f{Y_wMG-bxw?XVtqn;7#jo>j7QM`*U@} zfJ&Q=$dm?5UCV}U@OZvBCZXndj}i*;$H>#tbZt`05{iZrr0mBMUp@g85Rw; zvCXHvDoy;okk;==U1$4R7=>o-4>+I^I{?zXk7g6Y_hO2uCZ>by<_*M++mhv&vpB=q zd{No-KhnqP!rV@t*Uj;`w}}|w*NSNBaR&Eq6BZOFr>wb~Oo!Gq6`PjO5rML4;e>c97Zyp!fc#gJz%4c|3_~ z`X6r~Q!Oy8c)tX7XG@(`z4MI^Zh25# z(6z6QHSIE+U6Qn0^;oIwlz&O#KZ6qAmeZV`l~>fTjP^H;ajr|H!|py*iEm0O6RRT$ z-f{1fo^vpk&We!I3qz8(9O?tL8OtPPaWo~`Tg+^d5=V!Z0ta@7?x&Pg;$qulN+-P# zuOIe_l5X}_G)u{0TkcECQJ*8mYWKSI$iB9b8dvb~+5OVFa7ukF{l}tGMnCBE^QtDo)H><=H@AB{r-p-*_?Dy$0cyex*$y*&r-9CuY>7A>BY zM^}WBWN;UTl%rK=1RGC!k4Y*pVCt1+f%^y0-|z%0kvNrm1`;M=NcgA-!VBI5SQ)Vw z`{O6V0|g{STEST6Td%?!?B(vJrex3|fyX%$6}WxPQtO7_2;L!JZQrT2+3He+s45Mx zKt(VVB%|Rg4x27aHYX-E*uXK#^t%g%z!bEIDt+3bn#Q&1@S{!H3!}&;98@q?uIirR zZc=dxOXK_%{X;@aMUk{fwK>Bi`)tM55YCK^d|_C^JH0RhqRMzi7Y}Iywt2G?x-Vyn zOl0@;)Ewx&TDOgo?GVo?kT-V^7X|Vn>uGRfS)geSw5X2fc8R$#AH~+bm}m z5jBh#l~=nT262;h2wsJ`98uV5X7 znLBR1e919P+S1TW_~S3d*fO z^Jr0RsoeWr&GgghvW7tlqp(Q0+P!g0@d*-eqqjHw%=T+vEyBMk;h`}bdS;3E{&-0k zEk7v#y`C+BpX1hC^KS876yJk{4%&yEth8{1;h}WbHtYClJs&=-XJcR2Ix#Fn_4Z?? zGQoa%sS)*XFG*un$hdk*q)206$C^4dia=u&@!=o_ZA4}UW zsE3jF-z2>j<+vh;o~dz6KH4NF73ebOU5BxntBrc`_Y-7!ay}Gv-I-0Q-Xb2&|#}1t}d@Mm9wiBk|2)FCwwK%W=IAGn|(-sH4O6ILw za$FsnRn`@|-Nw|*8cP=6>u)aQDw3A=yOzHjPgp0-6+0;EKD$9bD-Ubxs0eW_!c{Ds z@;p2&YxQ`UPKn)YY#cB@-Y(9SBrx&?*UGaY2J7!l*Ib)mvwgth`uzVssHI7cvFV%{ z?Xzv}U-f$J|O-p{BygaKhr?ZqpeB85(i+%ApRqbb24 z?uI88&I#9>R0ye%d&vGv{63d@a~mL7HK(6JN+6dp&@S1JN}c3+;5*tO6HZtebGjP- z8_hW|2ZKz{i!7@mDFPn(Uqq06#t%KR*10)k4a-N_Ekq+~#gv_4ApXMzo6uU$eKKoX96X%Aw7Em|bo@i$c*)-nqo6Y=?`=D+=q>MZ$44 zRmB|LEY#;u)zo_Rv+~EwY8t6-bs9ApAH9FN4@C_O|1%?r9C8fyX`T%rkkflBxD>CJ zWxbgUXqcgN1EU)HN<~iG7{C8ZW|XwCGBPvxNsBU>kSUG}hi^EO(_!P`yvPV$L{BEd zA;<2-gEa7^E|)QG-_PBlkF_=SL2(Qai( zn~cEdZ>Uv6oFCg4QjVk`$$J!o^oKZx8KO`t!a}98!a)THRL}l=6}uJcf1}NX#$}X4 zE6Zm>`G@~$K;eu0-9_N+&i>ylAx7%&4<6SV7Bq-oGTS1l3zd7VAGolnMi>LF2A04L z@_a9FARn)d2U8t%Ya)CI&MzQuhqR+I3==ZNKOmMwCh6#NZ?lK0KJ$kvX zg>)a!WkVqyDc+TdDQCIVqN5ep(8?z3RR=(pPM*HaoAZ{ zV(TjS)wf}m0Ws!u5+MJI>xzhqyLl615KruXq@M2zIX2RkbH9I=(*2f{VkY<;)_3E! z|2q3Yv90xTka8!NSK)K|nu6@C*7;zxE(LDg=Mtbz;u*0b6?{PKN^VcR>)|;iQT@*( zLHAiEv{BH+uD0VQVUi&yAmaR93pm7M=(?>&$$L{{NAmndg?)^3mCjiosI_V?Jnv9Z zd~uQ)8)GHDM}(F^R6@htCeKUDA;)eeUh{??Xu zKc`SM8Szk>tn)%{ED#fz*=*7%?cU|xnYfu#onWJOGQP~K#SmjE^b#h_qT)FXr>I!X z+aT%O)dU+?2V(qq(NFhK|Dmgsn5^T|F8Oer6OY#(Q$eC}=z=AC75WM7Gb zw6tU3;SgAVO2X%Lhk=j?9BI{sW4t$Rzk?wT{643UC4e4)?S+b4CVp29A^RvEW;3H2;BV%0h?RcI8(CbaxJ ze8gXZ9MF_G6>XrKb6Hp)9XV*(kC)mnOpqOGOhDfPR+b%P?w}dPMGRuDvVOp3T|Q|%}5c#M!KVk;XhDfdws8p`Hu{NpDobGxi9D zc+mdhngf}#kE`G<@>;t5%OU8WR`$+Q8)JuF{O~fLxYSPp>8wUZx=GO>WuuIT0j&GF zS=8_R8c9iV=}z?hjMl1Yw+kpL=~d~m)&7tClVe76E$nz@@x+~6^Eo%={|{Yn0TosI zt`7qW2#N@bASkJXw9+*+A_xM~UDDk(gVHVC4FV$F-CdGHHw-Xz4Ku`i+xK_Q`JeZ! z_3g!C@5N&FJp0+tbH{bZg|;+c2G?C?AYe6>5@iC)Z8F}1HF~In!-eBI7M+avDk{y? zwxtXX(}-r&+2g!SN?xvftkTT}lNCz`^~1EFnZY6WA%)wGn;(6!+19#Gao#Ul8e_MT z7;RaaJCxC}1bL+E{SDL{ByTIVUBXFZaHwwKVt=N!Tl;?^XuyRZq-P4X%vvoAR8pWDq~DL)uNvbkSoaC4 z7L8d?p;4!Kxy1)$NWK{kfAK!eT53M~=Z1h7u2Q|feSrH017~Axy=O1AbY?eB(I1=X zwu+sVwl=~V3k{~9Od90emmbdf}p)T0RJ6% zJ*A=;|75W#`Ds2)jcWd~5uBf?A|LvOco1m~K*YM8#q7`D*L{&UEwKV2DE&3|&H>Uk z+J|1{m)I7~TXT*>tg`DD6YjF4h*9J2r^m5Un-k#-LyqpHKiy+k4u589Caj@khHfw}{&R__08?+_(Iy72Bk^>vB9bE4f~2cJCL)b2ao z8j7}~tHqI7J`-KPFbH!GaGcFp-Z&crF^I9T{J7m>hY??VhC868juazhd$?(fEdt~v-M#lAAr%TLGz$QHZ~OW^m$8^QzU zF?+$J68@quLwZpFx)Ua0`pYrrwRVG7_4r?j`NZPWj$*e-CO`lWs3ibMh*m9DtGMuq z1n4s8+;}Ev~p}*h$%CZ-je`;BXH7<+Q0r`yD3)x%NJ+ ze(zWD<{)#~vjE9I_FBIMkM0o)tuhqSR`2nXrJ8PQ?l(~Q&9tn<<3=L@neB>@>UD?& zqB3$xK)MW%m9SogQNXhez#AmZR1`r<{#4AQd~Pqx2Ce8{A%f*B*|M4|A}FDM6Br$R z#Q&70+O_i62NHQ7ci`sL!^H%{Mx=P7{sO_A9P_h~MgJkiGhuU}HD`1FiW3 zF6=U~iC22v4*l=81ufJQ%Kft* zq=5A5gXD+Y7)oQr&r| z$s@D-9qV)bqhA}pi(?x+n)g~P-^cj>m2UX0Ykz2cLo<0V`5=_J zbQQ@CLCR$mQ~TZIYd2LbK`Kg0qJ&OAWKg-z8U}M3cF1foy-xc}Y&xL(!SgL;wDj%+ zJl0?bAY)XU{q`hIMIoB_Gqgyhz!6-x#I*ngN`f5q9<85;0MH-XwBMJG3F^3*+QM~` z1(&`ppb_Fzp1f;0zQ`Ztf24Qn53g9h0|_A_+Aj) z%D#A8&v^uR+uMT%`}`Is!E}*77}v+JV?>MmL;~{_^RyW@ebCn{iHxpurlfOjD?Ylf zG!ws^O54x0B`=%=x6$L=_FQFC)qv9Z`mZeTO4(qU5U@sPKAMX)zA+7q+Jz4kmbIeZ zZm70(Me)wq94U7GlE~MftQkux0P<~}&wgxPcpbGQR>%stJTe+tGS|8WL-)Np@EFqC zH#}hJef3bU_f8W}uT!fi>6S^qOwg-4 zIX5fatMdnA>Ubt`f^ z{9+?gFp}zp|E7+=BSU7?OMc~b!|EFJ6#+YFV-PXn^KGp52M`apz{?^M!ij*{v47=* z_dWE=+-S;HINw?x{9G`REhX^&09pXxY5|`-1K)3XB~(ksjjj2xlZ=BO%*`>`*&`1W zpVv|mhnQef&BZ10gIFcXwBM|l9D-|fl|q@edMj*&AFPL_V$Lif{%mFnsVSNOvV4ixSvlWV#oU#(%j2frQ{WK6Okg_i2*L zHDyMU>U$G)C`*A*uXpIWKkGZbX^HC|APZ>%a!UniQ$nr#<$+{t@f0Vh9pJz{kdFj7 zmV&KHvBxvM&hBg`l=|@KR6NjEaMnkZbV76;Cu*AIUOXMv>9iT zc*G!!iLU z@~g4^>-CZvMsWR&Ed7Ufz*40RsnQHXE^@yHlM|iA$T+WsB%_ z%#k->POw?j&(?1R<0+Rd&O21X6dqIV~n$=h?jq8+Ot4^3d-y0}BCNFcVyI zB`LJ8m%F0)N*lJxO%~u~ZImzE>y}&}%E6jvfEL6IC^~xP{sCYw)-mQ8z%>e@oHOjp zCOlSWl;*Qw*%=j_KP3FR)gzykoxQwj%0oX`>(=;i!pn#LkvkEq(s9PFiwt?UW!8Mk zlyyvLPKPieZ3)*B5_cdky%qM%8;3Oiss7P&US%peT6AW9u>Zzj~uUAe|-+kdp6E)onK-^R+&&c ziT9;h#D2Bi(Fcy8xqZ^6_+itT_yxemo`p^mC3~uj{fbUH{6QU_p;FI>(y>Mn@op8S zxVxobYT@0B92SNz0-6f3oYA?R)MEI`iEz2Rg}Ev-r%xn#awJ&McDkn}tx*ri$6+O$ zKY_v$&r;OcpYbw%5b86G_+lF61U}HeZxX+-=qB3@^auzE`(TWEiBz7HzjaK*IEZe<7RoUw6#32YlwLmTW&*Bx(~t!v$X1-JB6@xVB#O*Ddo`42y~lI6 zg?dW!r7lsXaY`hAxlwvT9sJ!K>3P=b6<$T(ctq>E$BjRxlmRCnC3DOS!~C8dNn#>? zz`Lo+g5k;yWWQK{;OJ}$?tL3H2Y{a6tDeG z3Rf7g)uB)QSAn3)cnhvr=B82I9Y0bH{)vhs3IhqPNw=b;gg4?$fP3<3n=Vh%zQAV5 z4!R-M=&e44qTkqeb%lqrABIj!jO0zB9O(CYF~v_m(X0#Mfuv{Q$8pygW`gSOoL$*Y z{-7ZmJ^uCS74##BS4FpGS$YxeSJ&Ep4;8&v9UwEJt|o;j5m2+k^i+QT2Yvm&W^L|U zCLlg4FlSVC-=dabsYy-mnvpe

Ildr4-M@%0gOtrA0cF6TUC7J3~WL#?s$kqyp_f zE{So3p42qgt&|jR`LS27pT!<9n{;+e3#}kQ>T*5;%m*Z0NuKTAN>`Z+wFXDp`r8h( zYAt!U|1yAX#@6$NMBdx_SJOV=JzS}n2U!!1xo*EDq`~d+Ke$u177GtG7hE_j{vwH0 zHdb!fkV;-yeXA3+-Uq%M9eac z&%sDRS`z;)rnalw!8|uYca-R9Ee@3H~B`T&Wc4%Moiv?GXz|8`5~OG-^nBo zorG|@$xYxOns!`@SRKw(Rm^3p*n(=)^Jdvwuf%Z($e-m#*f<_JfL?$dzti-EU(E*zzpqm zlyfNn*Hv9o1xg<$#_UR}e(lL0%{3{wG|dOq{c*{Q6Tktw*v?@6fhQQT1Qo8;LzP&9 ze@P{AJsTs?H3YFXO@?j^UTn}JcHZSgK8Gn)UY8Dk3oWfZ3M;d!rsy`L=7MfV}75TM^f|q8Vx+$-QEbMog ziBE;Xv<7HS%*TTcN6X54oQQ~M$w9m~&@STaXkhNxW-+L^nqc*@g<9cH2>wiGlsH)# z%QPbe?^NIVwA2S}+x0HSz#YFeZQB1i@V~d?d=M}c2u)#Y_}P?s@S2qHP{-?_hJMzl z%L0&9JIBRY%$lv<4R|XlY<};&nUn2*9FS=-JjJTU9BFh$r_KI}G!&3?9d>ndNynw2 zZhA6Uc9=M$9nAOu>*;)@9D@np$Be%Fh5O0@X=fQt1)H2pR63RVUiyAoof(c9pH|Bc z;V*+U;Axfut0|F56&OVat5));jJZ7j;L{(t$0rCb6wyKoh0xFMMZxvB{QG0z#9w3 zK7AxvpIZ&ZX13MlCJO%i4gI2UC|iAo{JXHY3ii<=Dd@ZrQbTFw>4gi!MVS5+YVhnt zN?KCV`Hb_0weXam1Jc+-h@O>ewYUR4o{ny*c`Cx_MO+OU-YvhF&mp0-9$$y04)7Z?UGE-h%f+eU)YN<{iAXzRr;f=CI5ZQ4{Ds^P ztzduQ8Xf0xDLx?i%4YTuKtTe5;QgZq-79W44O8u8AtpcC*te;g+FAvJekrenO{=f- zojYSdNe{f142($+!^B9I?kW!A1^edTgcI-(7wu;SqQn?3{4z>buC83Zbd!=05sk+O z<#Ae6<8JH~;MX4pV7>M5(Y#NW{+aB@cmI%7)MrMIUB4%$#q-V<*Iy~$z7U)Zs&KB6 z?hD?Lqu}k(h#krPf0MyImv)`1fXI5Pz=sLB*`P8U&Jd;m?AwanN9JwBOZ9gsxC0>m zaxiP@mVk1F&{zclyoi`3asX+yI+W#|o1wGVt8{vko0^FnDIIU(_t}hS(cNf=^f{oiE;DPBm zpT53pg@4PG^I0`3yIPvW{V_uhr-St0SUfHCDv*l9S2T;r6|h&ZWuY=|@&-?(4(!WQr{$>t2u%+QZhTspZq3u}i)ku-S;s zjr4uxuy7hHMbE32Xf&$jS|^TpFLDVJY#b(r)gO1f^n9PQ&|2|CTJg5xv@{XaJw3)E z-DZNd5oC*{$aJnC`CrFASP;^~ppnYHIwdTuZUhHRL=z3%UDklQsk?&Fa*o}*DL8>EjjRR zG8xgLXkBvs0J^z64&m^$!AJyHbc2I27mYER3A1X%-Di$xgw<)SDUzj3-VBB27+O4g zSZztk_@#QxdgPKaPtr%+V?$;Yw;`^oi$@V9F+3Mt57C~sgOUJ*6 zmL__`1rCOF*7a7z-fQ~exR_a$)b!flVYx+fk)Q6~%DqxPmH;_?S@(=&E9~5oEQhs~ z%HWDVkz3c`mfBNJ+oYg57?-gN1qa7Hv+XpkCX%P)5cwr?Qcz`kpgpN~GjR(spkDtu zl8;MnwH3-_{+Z6`tC>66k0vvfj58tId1_*=UM?_Royc*e9I+w>Jqp8kRE9bDm*6Nw ztxVtQuIjH2={@RY^Q+5Aw(b&gPM4z!bo>SF{bq=_FJ(;~JztJyd^DgGLhliD3+Y$tuU-?$=rWmz0{<%|3^FPXVqyBFV zbxPI$R_*!e0Tki3)n@j zS)x=<4nBJ!RgvfTnjR;om7hl`zZJHZ*pGV4gA*Lt&=`pt7%Ku(ceMd#%3W~qPPgt; zK94dCg33N{LYV#1L+mL_^Vm*1LPg_Z8vJDc@8c=BdUw>FOm5XQQ&-|CXJWxN>=t5l z8D8w&hv>=gKD}47wklLw_t;yh)_VvgoHxTYH6I-nlpoDvbnz&=L-Kn;D{QNiEIgvl z3+In&XS@A4uS=f5gnvjOa=Kg>huL(+ssX;PaG+XUvKbwW(AWRxL`8H2TEG3zi+v^) z{V=Zg^gBO>SpH4+)#dHyO~NjX)fz^@uHMK=+Lz3No7yUF?9qV5WSo>N{tyXsfeP%#h=sTyCgq3$Y~9QKDqEw zYEt%jv!`xurc(j_Z0zH#42szxz3_AQ$&cfcf;KYqFpxYio7s`0x7{;FZQfV=9dSIw zaLVD0t%Hi-io?2FkM*tQCk4|YSAnm`koY;a zq%n?1(#h8AU&!lX8WD|r!|<1d#}{}aZ_8osHziMwO2hvokKZFX6sW-aRQvnd)JXrR zB0or`b;aMW%&NzX|6EqFg@~gZcD8j`2Yw5|fA5a}oTFhL zKuYK{q=bZPj1&V>jzn8Ldg+nW4!6IO{%zstO~J6f=V6kXazxQLFnZ} z*}QuJmTUqX0eEymY1L*1O+sM3$PAs7#HG69arGy!+N`krQa(>B-evTZnZfo?H!fkS zNlvp))9a17?|G~#q}#C(+Z<~X&-Y!W9#VP=`*V8xc1HcoTYW+#eW`x6yo^Ui-a_&3 zDN%~rCQNRVw0p4nHaaZ<&v1))&{m(9Gn1mr)-Z!NXGqPE&P_a{$%HocfiHr=2EOXvYCF-&FCpARF~)MWO#1mYUsow ztyLe(%Wlg!>{FZ%N|L9ZD9v#y6+yyEzT_9oGk`HkkF(QX z{uLY1ESoLh#pX2n_>Hi^l_>T`8|CmuD>Up6dF{dh;o->oZ9I7|r8dew_(2=!-MxHY zZq3!{H$;sR6B1G%2W+MXRu=wS6u~6-v{9xBlCj~vbqgS7WDM11$lC2 zJ>Nu1>??&_wnsliG~OyXTbLoX+mC*tc5E)<0hxxmftA*%h$YR5m7(!ueQKd<_Tu#U zjk(%mIW-HiCfhZ`?ej-7bsZz3?>>_)>SwdpTWgW?eo{0xz|p9X-uMZ7$hS4aQrlLI zeXTneO0}5Ywb(-x-qMS5NA1&xzuKfZyuq#H+nnbC-XDc{gsr%wN?-Ef6`C1zFyzt+*AIH@ALBCE5;)uNb4*}IK6EV<1DjQ+HTjkxW`J7-rp3yGAj^_ zS#(NEPgD_dzC}UXy9w0<{i*=}S=h5G84nJ7ET6rP>$YV-ud8`;mj1-*to`0u*wy@z zw(hFaH4$YXLS<=j`V%Ge;?Q|lG@DrE=ZW$XC=g7W>ol`0>+SQMkYII&G;H?Bt)%|^ zMCdC!K9Qw?RB^9_-E)VbDIf_u4KWX=E`9=KXu^imbVjnbohI%Y5fqL_T2yn)) z4Dr)nyoCEUIjBI#_+freo`YMyc5wHjo~x zH!;0~Hlzmu#<6*SjlyqopfIcA>{c{D=l*Pu+w`~H_t!HvPGMJl3sPSkXO?VAy%rl( zl!F%>>Z9P1!%3xfwZ#j~XQ?&?^?WeHzwN zEl7VXL5kZCz4kZnhktu93w2#m!1EBHaP`;=r*EFpgV3jHfJ+IeG!;|_u4_T@P_*KNHgCmQ)q(MkfQ16A&h6^)b6LQC~Q;sDF<6KdsGACO$Je8ql!i&)s6G61Dmpi!=*Z@(}x9DWl zTUz#YgKNJ&Lujd$>N4rCJUzRV>*;E)wOS2>@hqIlC3@4@)CoJeI+fv_5EB$jN>#c00lm>f>)ZVjKHjjyw4IzF>>hHmYGmn10PVY1F2! z?`762?}cPkwP5A!ZemIOK9wy+Z}WzNw2+lU>Jr5A$;@HTx{#+&Q79)m$M}F!uALt0Y zycWn2t~;)PKc@`Oyc1?`l;+(gta?~~utggV8e=sGiWYf1I}_w^*Ww{m!Qt<4n}&5s zPGNxHq?CT-Teb0(GW<<(HN1C04P!JdzGt9`A^P#KnTFp#e#!s*n#Cmbh05NQGd6aq z4e38O?t5;$ra?eW3_JUrBXwICiz=jp6iI%q@^1Y+rCxz*6uDv`v#KUs+a&bI4 zw9Z7$Uc^HaWZZAkpV&djJNjSyE+{a%Br^xL_YlHtWa^Ad z@GoDxn^uBr{b~G-gxwdU_qkz6t!q@#fgCdJYwBEq-md6ctdyg>yvSG8oAnbqbL z+o_G8FjUE_yz~=FXLzofj}kEb1GiiEXLdiad3(Xbqy!<8r50T)`UE3<`&aqek<23v zIQ9T^HOcvh5^>(>JHg9ofMU8TUCu7fEMyl*pjQ`l${fS>Y_=d7JF)7U_YtEn z`Di#mh<(RDmtu8kDjz+~2|E%+GPUllvuze)?_glL+e1#<)!@02keqMDWb zvoVF5vosu1kC=XM2rSvQR&)_sY3g_^BC)Wi696X1)@A(|cn}Mz_}3-H7^ZWOO?QD9qf8 zF4{eA>U&lm_d22=3j%B6S@grmL^Shkq%Au;feq<2Lfw)q=wLH9<^^P6F0ugmptfo; znzuUJ`g9v}&!lYz`3pU=v7}0r;QiA^)TU{TGQ3HjErq&37cF-ESB(2E_3djX7HMCb zE5y^IwIPG^29=z4n!y$j%bIT{`MwhL^wg{<$&K>M3K5hm5mg;#<`!Th%yL-CQC_0L zo!U~Wv*)=r4HETh431W+*S+e#Dh+f-(UPu{kY`-WV*yA(N4=Y#d85@lQoH_LC*jf9 z`kY&CXm)!@ss{)7!kiM?@>#UD@W6p#CAw!_kvrV(;91sww|3>9`6-q9{Zyv3I(>Y< zYo;dK-eI0|ddagyE9b9keMAYrYr{O2Sz&R9d^CQac$GOu+ZcjKL663vMCqV6A>Uqz zTCJY9eI3_Ls59>lAo}QBq^4sfCQ;t@5H!?zE0LJm7TXJ`M~AVH7yF#^xc|0olmOA7 zst9BEa_~`{3VL`ZAiRtT{S^58n>MdSPC)tdnt0tsgM+iruVa_8q^t}yLC-E)#u{1= z2T)o}Q$s2o)<7|`KIKN!Xf@is>A`NGi>@WFt@4jh8V)yEpn%hg+Y$Sqv3t71H9H;f z9_w3bkCj}<={!DwyrxRJD8H@<>~qrlRyfDkep?}ieJL#iJG}-%7M6AMP%o-#UrT3SD-s8uMjf zK^)S(0{2pp*GsY3Wcsg;Hm;WLk*U{|X*Yk&<)!i591*INa^5+?ra4Sf=Lqvzj<&9F z9u-J>oWf>p*C-F-XbWzQG~eLj@Tt2W?m;CzYnv2xTZg}B)Hp!l_YNO7{9*Y5BOzRl zZEE%aqBVRZurQ)`?}537mG_#j^B+V+72lR@8F>p{47tw6DotjL!SZ!oX}Jgc{9 z496-k!*#?Kj>F5KhJtu`$Afu&In%;-6PRMJG}q(qAKM3dBR4U4jNug9YfVk`#|#J$`hOcIjvbS<7_9HUlbl86EEEq@Nmt0s39E%%(4uE8 zeAFeT2)lWrA^Y{M4~{%twiRuB9DYN^?%wU4V3a;s2&|9|R;lo{ct+v=8YgTvtLt<# zOl<&c4Po6&y~T1M5Kz-!Hi=$PqlM#Epup)D<6^g>dBr0+mW71sZIaBYkjIGJvFZc& zMkO4VGvO1}VR1RV+}}(g7i=W$_%-5Ewy8^XY~PN0ZN-OGS+#SO!qgK3Fo?;1C^25= z_1q8mm~Kzy@o+S$gYrJbD(5x}TTWBnz3JVXfpJq}eAD8EKWh$n`ZVF#UMt!!4ELX` z_yoAwNjYyk#P+sn-YpCXy|eMg673K!`)X>nt5fqAYu*Pf2mOOJU$l9|JyDWV$bA#_ zD}~rs*>^_N3R9y|%UHPLmHQ;#Dzb-0t=e)^{Gicf>{{tP7S$}+pD@dp0Eid-=TNe; zV*d4?D98$e<}B#sceeTAZrF{fc}CcF=3t9!@=z#Jt~+u%r&Znf_QOmfQbtL?0d*+A zJcD4~;+MLcg7ZP%!iPqiN<};+fRIIzajZMewg=O%<%))H&GYUxW@5x5zc~7BpX`)zZh6AM_>%{ioQ2fH}P`?Q> z{?BUzb>a&hHg~5Fa&eGk{DqDq!oBxxu`+zvyHS^mO*D^}I7MT3YPGhRlWc5PJXth& zFG(^jyf5}%I;doE33)-m2| zF*@FoeQM*)%1U3jQ`b=_8$&nSJN zZq)u)#V$s`+U>KvC0>NXumavb&!7Z>bv=*%6xoD+17dYT#)&bo{M!QQm`yL>v~MH^ z<^56n!$BW)X`Qu$vMVsWf%}nl`ROkdQniai}okmjp`paEfa+Am!SYgi<4P|SaB9>{N!sBC9 zR4OxDtn}56Zm{`w7&cid!TIq%|A_nk6upp_>wB=9BzbQNi~S1x(dz%8(f{lbCFog@ z4?je+rBz$VfptqNm%@DqCr6dT=w3v(h>|t!zEwpVv9779n~q@gI$xKJET;6DwUs%92ao@6v#krJv}$@Xyn;Et|bx`0Abx#G0Ix@<+FN>$5C1v{sIxj;lR+@3j?|LK9sWU@$Xc zTgTz3)mpyvwxQT=B~5nWc~Vl-tIJN}0BytHQOK;u%&avhGn1E{<$o`~v@6J9e>IAk zH|E$L%1z!20SjCB^`AUh6J|)<-r5w7Wo$xeTP&E?J+VylaHAMC*AJz6a@9^1HJVjN zi@Ml<`Pa6IFDZ(U2`0313(le_Y<(DrX%;`s9ED=&zE3-NH8dqpGK^ zl_ocIzw(1LEWiooAMScy&v^u)!xuC0*4asUd3OkY7y( zGi&<^#1f~wlZXEqWq%HHhL%S69K5p<`ZB&2>M%g(v3Ti7l+J$|s3zoWSw-Nk2PnU` zP-PBpLN%+_YQ+{nHm4z>ETsapHn9CnGw!+3YFYgTr?LU8M3HEjlF`QEl3SsXS@3&8 zhzPyk(Xe&bz7)+R(uNr)&$qoQTLWINJ#W3^Hq=4+7rlpV)u&e0BjUnKeCB8l&I(l6 z{EIQ4NksUUJ#p(MuyMbddZdhJ`n~`1c7pr^&R{_7XcO`X zI}J*h;wPg;4#M~J4EBH*=}DJ!y~4OYZA$e26J;aX;{;Hs1-*&yy+q^DyfxXBPKjU8 zi^3J3t)GIP4%6Olq48aJGqLFHwvE>ch@O{C>_lj3YmdAACm_&$9p#QDI=Q1;h5&Jb zl$4b6yMMM_v@$-M+3soJ1Jl6I%`>!U4gY&@-lta>9|$;%exADM;nd5Q&n={y`K%v? zdh2Ta`Ydz$T^#qOqH4`e(d^+K!UR``KjhbG&tPeZ8kyI*Y0%=Se^>~f5sW32ccuA~ zCks_r(;6wx)s8J-=h^D(J)ZE^O~=Jg<0`sW9kLJ#7*n)|MQ#!|SIaL&bV$UksE;vg zN>vW4jwJa`dwIG8rUm|le3PztwGDZ;MyNX zyw^{%ImA$)9k;=l(<-;krLZbK&yEe;`?tf89CqBThb?9pXqsab`ElZYf+sUAMd9sk z7ymv)l^J~Ufzs_xp9lz6r}PN%!iRaPqL%9HXlUn{?oQk~-LDeZG2ND% zJveITEt#Fe|CzIt)YK@)PV_re*T}25*_P zuU(_J*~9F6Vm0heiH?WYpGddpZ|IK9d-pk^G!M~cutSNh!b4Cb1UCG;_IVstoE8oJ zIUO#j=JA+pi~qr)FHdNbSjM8_qAOYWbE{v|k?5Bz;h}^vh1UF{Cj5K7(8B zaXkMTn~L@=PEP?BX9Q6$CvVgH0yo0L+r#AdsY|H@Zmu(khk;9J>B(bh?-A@scauU) zjQ@3rK9gF%Y8lWF^j{9ls5S0Ty-uotWW-tq@-80>gn&lkE~k1^twoy?PmrSqRO1Hz3MZwR{ zLENA-ujrJcc*7dB=H%}TROZYOw6pAzRW~6Q>GN)a-RCm}SHdl1;rs9xQYhy#7R)Vd zI#GF&(_-^9LLGdNp-=V4dqECtLR|FtUxUCfD2cDUj*1^WS_W|+^5*9ojIcNO7897X zy?9w0LuWA&5VAxhKhLSx)!R~K^x6xZOZGG{w#r1}~MR7Z-q04zd@uKHy;k8w(vE$ei zl4rpsg`>#3qoSdcvrmcMlQf{Grl&}yDS;C4e~(%8XNyExmZf95#J~k`_e0~^wrWql z#$0RIO?A-CZ)y)yXd!9`AR zpl>P5llmF`Zl9`GW>;V9Kp=Fw^k*I2?*mTIgxSSu>|-Ro`e8iYb}A*Rz=8vvWA)|t zTwm`8P-joX644<&vzW1f&QxL6z)N`a!YB3AWec&^fvp8LWW=v+8Ty31e}5r{Y|Mwb z+pg?>sF&oc(}-=kxF&@`w$aE0#FFA`(Wm4|MT(}7OEjP;lWcWFSoF`03( zE9e`WnIHf6ZWbwndFO+TxXa@5$~yP&LbR1lU++hX^_j!S?2L~%rMF`NAjiV?)t z&+DltdUipsOE@yZ#n8{2a`X%azj$jY_2vJp*z%b{_v9~vQ3MX(OHI3|oL~$MCyf+@ z*FkKI>R+dIEx8x2(5@4Yk-b~+quRPVv!oR#bd?uSw3O6FfZqmgW%a^c{6MwLoI7s- zTUbAn0=*gUnKZKFa6q^I?DpnYKwc)D+0g&reUiiYwhU63`861o=^zH4dZQn&)qb$} z`8niT50PB&bSpLNoL!B4$(4N@0L)p0$l0g((~_E;zjJ?sD5*0!f|tqO_7honxUGoH zHC)IRMMVx~^-p}!Tda_{Y`)a$$t*%&`$He0uOS;-iKfu^iebPK-fmxR8R2$4vQE;l zT57&LLPmKD{qs6~$H$f2;((c<9(wnp^Uhd^8p)H$-h4gJpkcT(+-+cA+a9|Sic!sqkN+90#(xFTEZQj_Zd znR>U5_nc|vX&`*-Xeewc+cVi=fS`L7O?4q>!@Ad zO*yueXIqKd?W(^Dyj9))}tiA^lF2D=gj)Lugh`e zm0P{>byrlsuVYVJSI}eG$-?V2p(CI_OVpxM88Z{?)!phn3x3Bd2`1eu`98SFn-Ur1 z5xRogYSEjp1(8v>?X+|A7>@X;;RbWGND)MvDGQ!R`k3YBIwFoB49sOs3Y5)WHO=)K zE2o1_f?MO;8{lO3toO>e%bXi-k%RA?Kkdty5{%Pz{Q#r6WlLy`NhDw(`hql)S&TeM0}=s z>nydt)1sDn>y#sMT=JBTIsflyGUn^Ww4`~2s8`Yu5-%h(`F39;w<=9f2hYZa_^Zr@ zOy=9nqJ)kM;tyYpW(um$r}HAN9VZ4DhS2G#7yK@JT>s44iO8C#x6+DK;=W}o#HwVm z%_x9tq(QY-q+Be+%TaP>8Jv1^g`zO|@hOvEMMTghrMcXuNvO#s z%zMoWHn@uQ_eq3Kx}W}2iaAtkv#|NAxHLwqgucsqqc@@wXwzz;Rc`Q2$DxPBk%h;4 zmbxVg1ZjPg3pDKPPvN%8+Xd3au@XO04R1idI{(HewV*8ZM|7qp?e+0Iu9A{ zbvoBeUe=H4yeqh*17y2vII?IP_jXJJa?}KQyOEg^pP<`bQz8pDX~F&Els`4go+>bR zRj3k+I<|Fb>nqKy)f&iPT}!s6vQbZ^FDNId+$A#hhU; zH1XG5Be;dj$8_{1Z%~38;(&sEWfZ+};MhB-pO8@XbtFbHB0h@h4lZ1IJKncBq0btZ zrxq*51Mhrjx|HrVnBW4(Y4&~icPcfSTuT@o1e0y&t7X5AWw3VbuXgyI0@NxWCxIGT zIv{Rsmcaz*x@Z*zeyPB5pl>D%kgyyFY}3IwCS_s_48U^YQGX}A?t<+i1kZ*fKR;); z`O`L4`HQK)EG)$w>>77d-FFlC)oma0_30?$IwN_x3?z*rC8-XmAuDb!fw&A;Ea&V* zZ;>xmumP-0NH)O?1MrM7_?SSdS#69Bia`m5Qv)u!Iw$M?_DTVAbihy(mUVV0sIzRNz!WtQg;K_W!N z-?K=V%Mo=K!EI!?UOFOfk7dxa5zO;Jc+k66{~w=HD|~i|(*)d~5FRc`c!oqgfYlPS z=?4lQE;fg3cwN%kcZmDjt|-(rWL|#oxcU*x=~klE(?^B(xEBN)6T4ly(NiXdhCLR1 zw0^hLbe_cXJU%3^TN3R3Zc|a_thet_ujzRQv-dM=3N58I zIufBA8{Ha0)^Fkxikj3?^&t*qt`3*V9Zy%qEECJLOJ1cY&dWd@=%E?e$O6|L@}J$B z0tsa!uZF@j5P?7AqKn3#lkuX(Mz6Ee5yoZ&n=p%LGNEiHFj z3ka#!;KDMr5580X=cnAd$#LuB6OYqP&JPWv4d7b=BO{|9me-U&y4qNCb8~^>?oWIY z5URC(&DXDAQ{S^sudnA@Z1Eyhj1~5}T>X>?LI;=`YEw}gNg!<`MabZdcX3AQj4k)n_s%XVJHm?sH$uxcd?Jko`i*Bx@6T7 z%96OmQbe%K&QWBm=ZEcp1otyEKoM7Zq#N7h?F zMfG*><0^=Ogs6a|D4hb*E#2Lvq;xmKpdg5pbW3-44@h^1v~)=b3^B~W|KR71@9+KJ z<(f4M1p}c- zOOe>F8=|#I2wfMS$v>h7?OujyseyghscFCc#un=dA;&}5?c0`1W%h0Eu!W|Ght-zp z*BwEJYIuTDUy*;J6z%7R?lED_R*O&L2>SP0ceQAiyz9*xPEQj$wIcT2kD;fyS`nY^ z?k!bCLrZU6S<4uvZX;U|B>IT4H#d{Ar0lf0avAYTI~KgO1N9Td!WafOTYe1VR5pO> zCv7|~_nfWWPQbx`0X;wX(2)`r5TO#o@V-aW@Rj1nI|5>r1+4)A&3ZikvnTHZ3Jbp&P+E4!(C2~*5KRR!i2PX=TT!dH&x3%7&KRiNvatenhLhcC96*(I*WqMKx#?mf$+NKo#B5m2he&WK z^Hrb~!Jtt_rgRkb3yBayk>f5W`=d2!t&3skmEVIW)UEC9X!P&jzdr|cv=;mM*A3i& zi^t0QaS1__z7Q?V~(Lkdm7^G}0Lmab2HACz{o_|2V(G@Uxw%}eT zTOx2ei@0w6A}!X~81);u68VO%*D2(k#~rleq{QF()DJ2hk7bZKI_>Nc0(~F~aTN)L zr<|vr?j&J#x4-D+Ex<8`G_E@ArzVn2sCJw5(mkl7c6tAZ^bIlf$4(s=RRSrGl$GPI45e1#iA2zzuFw^o9hupBkgRz9{w?_S+?j{=~I&hmtqYLW8 z)&=3)!Czf0{k}ZF>8?r_rBhc^?44ZGEjd`K#=L`oOU~>}3j13xezFOU^X)M#dohbc zf^H}-lhs`{`C;Oxw2qZO^SiP5q^6k%gNr+T+Zi1@+e;2@1*BSGE?&!b-|YPSxDhn{ zIgNGSpql78_3j>DayWjo7f%w7!aVAt@H&FKw|b}6BJ|YnUS>lo%l%m)y8)UWZpMa4 z??TL!W}&P2si-xThFFiHT0A_q$#8}CfO3)&k!hyzYSV+-N}Ihn#gw+Ay+WqMOgNw2 zI1j?gYO>0rXJk_fif!(Cd+y>)Xfo-{3H z23|GbV9o|vvTgh5F0S)yF*%|CK4mE**>M64C~@1KU@d1(ej(Hw15#A1k~ITOCdPFtD@&)L&dg zqHE3C$=RD)Q~}l@OBJS|7|Ov4^dgyxT*cHbz`Axg#CM>?TYy*$q%XPoOP5BM-GFc3 zaB-tw%kB}SL7GgD7gQ&&9NBC^*}d9@27$KFHPVT8gq87esZO=bo{($-7+4%M=$01N zI8&XQz)vmQzuv1|%41Uat$qP2@JDjwi5r+FqIC>{zYBP^k?nXp;8pB3sR*4TlpbJX zOT;njPdMdWdy|&v)+!V$(hYk52HZ&}98dr5KqY8PALq3avR}=#MH(wneRtCzT@TaQ zI_e#12Qo1RkuNh)sx9x$K{V2LT(VD8PhsfR+yi2y$?@K=8cKLR{RrO3LbDGb{`h#iC4sy}u^u4|7^|YI~;KXZ? zKjOG{S-oK`Ly5hsLJo(D=#NNRrSq6P;cL2!U<<@#$@~09$N#n&PKueK7rH|zxW|`h z3>gR(OcEZWpegc6n7VE(hJL%}DcZw)|CxW{d*c5CCOXzD``B?mszxGBN=2F7D zQX12Iqt<5oH-}#_@4N|)Lea>}Bt;Ru8$s*7`YB3R;k`gfMeV5KAaQ@GSvStOvFZAD z(VO2RWb6Srk}ECOE5C!H@)oM311^`Bsu>`@?Vq@7XG#RVM$<*5SPhRIUb5$8dJpQn z&^g-;2ezK}tbi91{VKGjt+ym$U8Ak##n-sfFWnAjL!=}#&mRR-J^MqjD)o)VBBgUf za8*zovCLXds9&nifNOIPtIe%FU`(&ldcMLuyb9tcGEz-&a_krhw`g)MlvY4qY$AC& ztZJ)}?mzCJW{ZDs21Y((FuEMe{_=>=|5Ox1bbY;I-QkUm%@gUiq4)nsawHu4=tNem zBVLM2`Ix+qO6$;xBzs01q!!1+pqA$gTBPC_7#L`^_y_=>=++AAY>7rYHnK;n;ilbI z(IYZ`!oei2ZqOEob~zT&N>>Ybn_gbT;ps|0nq2P(v~9Sgyw1N+pl$10cX#dw)zMo0 z7R?wR_>=2q8{O<;oxzUpgHX`IIqB&iuJ^~~PH5meg6=dJpDf3I4w^aPkJ<6m$2~C% zt*ft3*QvIA-3p;q%lr2IMdOFjm-^N@E`&FY*Ea@(LHBNkf(Q}unSulHEC6ReD*Q#F{@>gIeZ*xt) zh)ldqiDqBEDMas+-T95EUnPHsnZBDHLuj0~Oi(4vW2*?Z^OXqMt;P{F_3_$51ERul zqW(OpHwWf)9lcxlph4!+U%EI|70+J(S^A`j9xmiP+}N41UyT}5qG%c5U=Cbi%` zfVi}UVzxbr4TbBczK2|`?$S~GYcUxK0}f^|GZZQ}%8tIC3OulKvs?HC(Q-8zRnJyQ z(Hub*+rBV*+4esC_7j@zBc}IkNuzFU=vrXoc$h^0JT%6>RO{=$*DP@zr(ytyx*uCj z;~SP3hAZMTnp|kCS959Mn$W#YQ1NE(jlm?);-y4DIV0}MVJVRA!Fve>Tuw{l2?;I6 zYsoPKh`fDPu}NJb5-5iUqELIpbQ&cjgFH5j%>`<9zjB8=vn$JcXlw1LKh-&{1|+(+ z-Px;4g?3G}3P;+p&xV^2q*LsULHG4_!Z5zAnI5-JAHwKeD^)PV!~df z0TbhuqS43z70F_|K9J)0ZVIXRm5TQ-mrMAl*vAVwCMZ~@(qO4Rn@d`GFD&mwM*nA~ z_g>-)+R-WdLVkszfrC9PwCGzh7F7-BiMQ({wWGVTn%}-y3&EfIth|fO!jnypr zo%b-L)Xalo>YxYA6>nFncVF-yueYxrGAiA=jY9mH$}_&_8R~dv&;QMg%Q5o8n<4u| zCC8J4kWOih3O8Efw}n(QvtC2hpv|k`Sf;|@enTumU-faAxXB0Febtwt#wTKX(9(`q z-T#)qo2H(A~G=gU;e-igSRPi_iomgw=9 z5=GO?KB%>POG1NbbvTa)7_4^?8JsN#?MiH~bN`s(DX?l-EHrQw={0+*E4EjUfmWt! zC3@P$;hEDO>XuJi6c4I#IVGiJ?0)d6+!& z`a@erm1z-};+M49S!grzoL$#5MgkuZjIE^?Y@`4Ax`m&gAZT?7}~ z7IT8C!_a)F?D3NzG+nf1VD|l1t}~JTxtfhf^=@6lo8N#@1zkht+sQUJ1+dO#%UPv_ zk}dOdL-Co_?`*G6{6OQbg75|R%>2my$^Jq{jTT4pDU&J&2p;?}WF39Il72tPQpRS= ze$j`s&C1JuSHpk*{tAbe%A4IOED)uUJS>Q*!y^c+W;fr-uqt#zq={U*_N?#k=aKW+ z?g<=k_1*eT=ws_u*mJ2RDj!O1)4#Dw$TPi=%ZBLKCI71pD5$ywp^3!fw>di18PX z`97<<*ILiqK|^@Y1giS&30?z&mR2&rmFgEE6GOkf`@UQ&!Ms5n4wCILU|qVPWDCX;n9!Q!~X= z(|h`3BID7#5g}u=NG^R;sRUJ0%qms|3;CwyR{N`L*q@h`w8K9XAez}Q9zXb>ctlBo ze(~9~2ZR=Wp%vBJ(el%r>tBip7y9Srih`tH+FakkT-^iLG~+F;#)>_(dn+rb#w z3*%27TB>BXp8`=Am$26ql&kZ)#2ym`5vO=AGsdC`i&;vWkn9M)a2k~;a-;E2so&K3 zkJiu}Sm+*v)ulRXM!i2?_Mo9-eOxJcu0&wKFqI!V1{O}h<~Nzgkr8U1oQ({#&hv-I+wv6qHg;> z7Z;Za?y9~i+hk2+IxfuU@)YrFz(t2{dyb4YMGY!v!t!cBR{Nr-fUi|>#} z{d!_;KuCR;Pik>})#;P36{lAB>z|V+B#-<)FMDNL*s$_%T82f9oVQpNk5!9G!fxpPDX+j)v&txP4^z8&Hz0k4=lJA7%i^Vz<;ebQj0DUVUL z5YnywIxbhNrJ}0sJxG7i+&tRk#kCko&fgl5@LWr`0-Cv|3k6Q0q-w| z`$tcTZ4Z?MO`0-8$NT4qc`*O+*1+d7=l~+&sSRv&z`qg%k`-+-YHCkI=0RU(Q-ha= zFz=oi1_Eyg1fI1JOu&*Mm%yeZEhY6LJ=$MWX4v#29GJZK{(v}B`_dBmbKgt#T3h|R zWI+g#hUG-w$CHtAV@XOXDvH3?W4xzN(O*(igI4UdwhLoX!OhLh${op70$`=^lCjR{Lj5x(^6xC&cjWu}cI^ML;cZmF0(!vQ*k} z?aEj`((|>84?3W0L;<*}B?kl71HRCLDa~f}sPe8TJO_D2+S^>6v?m3An$&}YtC*rl zmT2*sJkE+ACaxUGXSk2%$y9|n0;eQ3c9P_%`LX`dN$3}=cGo$BFOYX;Gc;DIU274y zZ@)OTo9)>ooT+s{BcrAfrQ)EvOQBn56P>?1+pQ5A4~=s7BuS^FsJ{)p1fu_B-SYYa7|8xE1JI-QqYa6F>rU+WBf%;G?Z_M_@OrXUsX}KG@-A+T3FnLKe zmT+hQmhik>-FLW;J>LUxn5dEoib?cnmc95=2<`mQGqc)V?ul?a-@BZ#7c@8ac=7!pGFbCck4r;#7gyeZnwn@h}^LMvqMDQMMO|3WW4?SkTH>{7C1h6 z6(ylf4S>8aS-?v}zE&LQc;yCXi^aFqE&b}s&cOcQ+-?B9z_L~^^xi&`1iJq2D-hi1 zoUeECXoOsHhJZFm@(baGnx#fV$vluukh|3VOmmVWt3M#y+t_-=4h-s;}J zr%}ZdIO*1_1G!rKeAUxq`>%blY%PW!{86kpNB-9rUiqXQJPK(K32-_X@41aT9M7ub zf&f>U?P*b!v7&F@+!5AK;~)NixFP4SRa8{80zyOYcdrCR2}c*`JrI|PeJkOy7pn0B zgpjcdTTmEWRVG7x7LcWy53CD`-@BCuhY6@FpRZf0-7B|i$C!sXh{grtpko;IgSsNg z?{_ZVQ&~&ml3#N_#Ao{Ya5fN67P!W8?%XQXtli?`@2~0{UKlWIa@sHil7x(3eEEqA z9KWE|Y{vKk0x}L4^E@cOSSK3AcZ>0?J&b0Wnnej$r1(CZw|C8k)b3iBIDz0juKErv zamL4f#d7h^U11XJhc8FDa*G6LF2g>|;0cA0b*@U`boQ&?dQ9v^HIz_iD#*Fia>4HXB+v%ngg@u*r%<+r76pQC8t4x1$Z zdb=XH{)SN0Ga^RVY$oVJUy$6#X7=OL-O(a#_P;hQXbMYX{j=;gh{L_Lw}1Tw?7|-hPUV6F9t_HsF<;gZ01BiHGh-|Kp?t>uQg<}X2$3qZwW;_Xd&W-_G znQX`j38}ee7S{dytssj0+UwN1%65Thx(X_oyJ`r5tH0I};?Uy00xhJpkOO_@-K*W< zxjwUV711wrTYMn;ybKmV1lBsX2Pm9J0nzmLq~BQ|Ml%pD!Y99HqApKQ=j<|7vSqlTSNxCu z@ujv>xdg1P|6CN88na5(;Txlhetj*<)M>NEC}f58VYrNhk+X+CvJqe->cL>2RSy!^ z7-pr5DmaZ&J{9Fr6d>p`Hujp2O@|exhiUUHYK2?zkW88%DR#m-o7;9yri`Ilhd z$9gzss(E14`RkTvSlIhfPHS^q%+C*z^FK)EER1;~vJFBxA(v^1r7VxW+4meR;$%v; z->PM`KO$i4F^guKEJ$BE|D(n4!PfT4?T^{-D7z$1+Vxemwptfryhl9BPV-52ZH*t4 zZ_E<0?E=9%dwM*HriTQhb4Zs{Mr-Z5TcLce!gC^iq%uipV+eNRb9;sP6x68X>(+{2 zWpt{`r)`)$7u?^&Tki_JpJrho<0GFW<`Da}()j{L^xAhQ8{JeUdHrBPK!E2ikKZAD ztievGD1kL4dv=wAf)==U(m}N!An@Iif>gs;gmV2pgR{Oe)~wdb)w_)%bJ%I)bjfW8 z#NlH-9w?c3f9z*=@0}KmPhHY?JPlY_wCJ?69}>BI2#0{Kb?%dv3jNI5^>}33WaU!U z>u@pwr4loFetFBwOXImns`-O$3n$%-w|Ct)h680;%j=@z?`O!jT=8FPMA|M%AhTs( z6dEu0f?^|f|X27(6-)!}}FNQ%{C5MQSS@Ao+c8cx|!+L5z_4zEo zHiUdnBf-PF!|+NnY|Y>JpMB+(ilZ$c+sP&8@(Z`XCuc_}Cr`fMDm&d~(fkAZq|&rC zclTPWh1zZ|Z?WAjw1IY0C*&$uG;pjQy0g+Fq@JqzH!>YnvBjBEEpKD05>sks{I-N` zd8ea}-X@0-Kb0)$dnQ844wXx>^za{hy^Vs2DuXPyi&sKmy!3j`I!nkHmQPz@Pr(BM+#7ey)J)$G8Q{vk>laTB3un(EdEvmA! zrWrr}RZ2wy5xY zY5n=(vtO&LX!pvV7WO5J0To^Duqq+bw0^7(tjKcnVKM~;stM;gz{5~cSEvF~a`^7x zxF2{~MBlYPTOEw&>d_(tK;T+erXth$u`Yo)9Y|NpbsV0AmL+n1c zn5{r)@!wgL(1ymE>Si)Rwniw_inNp$!r{Bq##Lvd%aKC*0dItzM z7QgiVVso%{fN9e;2D)#2l_y7&foD+XeA09&g{H0B8lBRu)1OD<-sq?byqhF??c-M> z^UW@pAmWw&E+Qk@2!XyVxbP)ha`DsMaYPJp_$u~;cxh=ysvC#$ z=o)+$-uP*9iEtz7+VQgYhX=FI6bVIsi51-8*>a)ifz#Y~L_GliKIuWp$jICyNrZez z#6Tb-A}T069CXs;%1cEmwhu{3ON%%=zj;W&ESF!h-H>7r90#hgND@oU!`~D6Pd-)g zDSi$Nth7cPE{p0lxkv1LlS(Y%#UbNQ<4s;nYG1zk&gT|(sZ*dvhp&_3fI_(VFvT$G z#%_*2;12}BdagkV*{Ye)PNN?nnE;0h=QhxToU{b6G;aH%Tk9NO8z1=N0&f9r<%T`SM_1AUE|Mwt1zwTMJ+1 z<=fRb<(B}{2ih;gZ$G}!5`!t2j(c;=mf2K57K*&IOxM**HA>-l9jjw@1zS6nd-QzM z*?as#Ydq><)s`{(5c$lo%7WeJd0tGGB?l|1yNFy?!_eBXCEk|1cjw<&>?~_oR%FUl z2Zib^a?7hA_1CirXx0l?iaWd^r1}l&Smv2B4KvN?oEzOv6KKgF>TI)R8fwy)ZPZ}~ zeLVZAPa{IPZ0FAlLkIz^OQ}^IgZ>vb`8m$75h}P4sUTzO;DGWtImA1|C#JJ&%eeF7F*)eLTbYg+e~(nE*Ywp@R#m9!drk7Bdse%IwQAh>?|5k1wYD_T7O0 z%^s%AWNt{qOtrkmsY}C`!Xsl>wJz`Kwqo^`-DehF+OWYR%t@hY4sq?J5g`u5_liBK zgHn?RMU46}0+gBe3@eePQ5|_1Hj35pyD~-U^1%(n$2#8*0u$^)B4RLZP;9;o4|z_` zSKnU_^hUk!OmsL7Cos6bbQw;T?fny|LzW%z1p>enGz&7QG(cVmkeA61#&7ZOdYbKcINE>Q~IFqkDjsc?EY z*%4;?OL{VrGxQ>8xI{bOG-}m5A;4RCHMNHlv6nnc$VzMZL&TTXe*H@S86Zxvk@%I4)kMN0C?B^XWMABtLzGl3S z=4BD3$907os+->V`p*jj(`aNo^E-N>U#UISwJY# z;Z3<&=zQ(LCL86=%H8sRyW#HZq(J7e_Sgdum8^p{tC0XI+goilZPFjhQ~?}{`n{St zF#!0_E1+kY*U%0eHN}L;Ae~aLGPAyC8HjNhzIfwJT_I?!h(|1>4cm@7Q1==5umeSW zh6|xBT%Vv2xjR12B0o(pVi-ThWXp6aFFcxhVpCzGtII22WXavFIMGj?^73TrLbajYFX-QWtli6q4mUN64h3$;*S@>KW~bis;TeB|UgNG^)g$J+qAm5q3!X+K`*w_Rp0@`>^>u z7jsTJMlfPuDB##j9@QUkmDxK~sCKOy=j#I7hazAXf4mo3Xqf0%r zSzDs1Dk_|rp~9AB8qc&>T@|r$NCOf^ftHWo1a zD!6U#_pmPjBHq4J$H_O9MHQs_Q4>p0&v5;$VzqI`vNGc+8|uS7mGA02`OVN2r&j60 z6Zu5jR*hqgKpQr>%GK5L`ex|VW`rdzAHJ$8Tl1AJ8>;|Q;l*&Ku)6x#o^#f5=jQQ& znY&~QYAbWh_3uP(K75@@Y-45&rk?x`*h5?y&x{B$y2Pmvs7;n@=$n^;mG0lMLNp-N zLP+@y!=XP=<5e~;yb;xs|6aZY1sL1ph}($p zn!Bie&b2sRA=6wBOWE6+OJeyLC2{92SlzOx`W-q^b%FcWLmvq=xig0|VtA0@l}_8`U4X)|lu$PSZjKPV`%)P}TmkST35` zeCZR1j0yS%2~@obj^yT9Y`mQ$olw;;O(HOYQtY*Z(u(t%K%}_t&G< zlr1V3Dse44clE0I?ei0VAk6e__;~&-6IuK+O-y@jk)3#=vRNptBL^eTMy}Hd|95~} z3aNrjfD|)YuijC7c4b^qC0btDrdZJDT3I2Pn*x9-zIhzLE^T|KT1zZYwofiEStj%OFk8*2iSf00T+|s8zw(rzs-M@#D!|e-ycggc|Srb_Dto6tW zlpa^|pIv_&epvV4DU|VxPXj1oKcLrQ09dQYnwt>OI`E8-Zg^Q#NQHd#PJhq50$f&E z{HT+0$19{q!Wm+>G%!S&sm!3knQs1?eVG4MCXl379fm@Xj)cekt$sy+JWbULt`bQQy^@r6#2^a5a|Ba5fg$B+qUz{oDjF9R&2-OU>QdUXVN3IlmFgTesBJgU$?M$Jf@f=6x>r{7h?MN1zIoX^+VuI*bFf2O@34z*lXIT2%q0pHU0KL#w8}HBy`dFo zt@>Sxs8p6Wj`Gp$$IO*3SV^r!zN}82Y=#fJy-E^7znKJ3(hrtWSOo1B=<9%9T3!e_ z*m3`7Ccua{FwQKf;r1=%G1uuAWx!H0$f#BlW>tEu^q77&%`u4f=}Qe|5kJm!*h_R# z2(EFc3>Cka+Ea3M^fl9LF(uKe5j;-dk9;ewM;kk)x zmYL_E4|DVBqLbkH^6<_LT0&b}J32aAZ1cMpb9Qbn0Qn_tT^_XLF1H7c18&1S16x~W z=mv*IiJmlkzv)=v%KBijS|WaO+`7mEZ|(k3=g!LJC4h9DU%9Zk7dgy)h%wJ!1y-}&xu%#{0n{z zcgwOgi?tw+FfI0Z>`{Ajwd2urs(F&(WD}LXt8dU5}82;SwK|=qa4^F-h3h z)C@{|^WM8eKlD8E9MNJw?CM(OB!nIyC786AII$OLN;IwYm$>yZeS{}!J+>f!+*l)PWv<>1Nia%Q5bb zy@DzWA8NS3)(>rLTsS)6JDtOpb2mr%%>@8nxdQ`oY_*U&k6~7l=%Anod>*Hg`Y}uGBRG0k$WHBhMdlrlL!}=l*F2+Ev53h^zG`YxyPJY zIFG9TP$v^Y9-<9?7f6Z*nlG#+>R3}lgVUpVG_Rl_W6rK6W!jvdoS)NnzUSixs3m9? zsvZLN-#GH(7>-b{Yv8$g6m&n4vD+#K$oIuFq*Je;+E(+rR{q93m$Vy|Av$KLG;_$* z7BYKyz?$gz?f~K?blX3V9QXE|j?;AoOe>SBt+pnQ+H;Q9Q>(sNWo2c) zexs{1^4wwHXf9WgoYX(mxp|b9g=MoG)Oqbs5EB#2-eBYletg^j{9YkY$;ZwcCA9}l z$Jkh;ywOM>A&ytziG}a!VTXRD&V=qFvj>EBytA=$rwEs{&0LiY4=M&P#r3=Ea&ndt zYzzg*;kO@qV#QoXr@u=rS>ErBgbN(yX22es#8SN17Lvgi59N9vOj#rMUKc^6sYID? zYBaN)&eiYTwR!v1p(XJ>W+<*;S*6y}QY75U(lYPwHo4V7NvTwtz@Fd#^VmgP2a5f1EV;7G^&97;`0EO?vF z-*Pf4N&ZJ*THlS7Nvq7)uSGCbaiL%T)3eFDr_+YeY$;PyQ)Lm6k2^$#pQ`zxAc<%J zGKUSazxNj!dqpdYG(C6nb3cIEhUjnKT6aN6h(ERPsEgQc1mugv$H1EM#Lwre((I?r zlicjEp?6m!(_)FB%s65HP77r-!iTf9=GM+|ZTBSiWHUjR9q-82WF8 za#L6l#b(;~bict;>4)^>dNg09r;@(Tg^&1W-FuG+g+tp@ba_TBcIN9V6BS+b*2C%^ zk5Ehjq-)=W`gv^Q)W-UH1OT1uXPKCo*lSG#_7Z|o00f-$bkEApRz|NQE=nU3bMS>% z^fRx%sFZwHGc(1o04xQ{ys%#S=)%Ue0#A6rqvvlyzAI*BW$ zn!mqPRTz4k_sa*jKZa|!BLA2|5=!s`$&4pxv<>||QV!t>LUNEucqsXdtqkgV75e;V z?0=2vn^PPCBn2l&02omCn!&9QSavy}0z~PR$K*P5NuQ=60Axtwh#h+^E?+;KIu4*rr zz?g3C^+IibxS$_%>gz`CS_JeF;eqMZ>kmzdo#)NxdTZp(yGa~kkd`8rqwqzz%ZE5^ z`GHhNh(qamM9ZU^SnN8=v9Y7x!=R_-d$t|(j80;kx_HHrHfNsCPuF*mMp$9WhJq#{ z5jnANlmw(P2;Q3sGoNPIJzGAXN| zfbC{O%Hv20;LYKQ^q|)3ZBS6q=F+$(-;` zvjmUVFD-t58NBQa*T_7utAkDU?OtZ&lRv`9FaF0=`ukwugOJymmJSH((>_49DEr=? zV7fDyz$tJ7MB{=*E9HM_yIo(Qva)h=B&th6sOwF`zPhHqcppG}D*~l(pU<{&kMpbV zL*Bw~71+$0YHE4d9sHYLpE2Yaw)m{2*H1Ax#4RfQc-QT4eu0}3p!@XZzUJ476wsg4 z$8n2rQ(JY6FKCF_Se#!+pDax!_1Q&!=Y*OP8*Y3-E0|m&wlIk>nYzd9^NlbZ@liu3 zH6!0n8^8L0dKCEG!=W|>d@Llm9Hjj2-xj@(;cSqANRF0I;{1&DiU3$&y-_rDcwVQ!M@6PUy6juy z;#6T#Q5HBjBH}=4Imeu5HV9iso`BNTEz~2z*S2@GM`0N9Bh5ue7&0cN`SQ;+x1_uVR zC`1EBPPWJMo0^h01`@AWC4K=CR;QIYw7Fax}O3dJ0C>SX&C>@G8D|g+~*_p_X>h^fU za`RyQ6?v0uenn`k?jHXl*G^7aS6*V-;W1BxF_8fq+Q(y2M4orQ+*P{NO;}??0pWX!2GLLqOD4sV~KV@-Xr^^tgS5##BL%} z5~tuYI1ecp4QeF+@NBh}B!&HJ&H;XUWS{8oIKH3E+7ndiHSp!h@vx~gjH|rEKt-@OzSy?)^q7JdvZ*d=H;aU?(t)u0KUf9 z8{@8ZkgI(SN7U_$X@#nF@c{YPvI1j&Er`U`*yyx`TB^gmH|E0d2hX)TG z*OE7Tsv9LJ#-3=n?p{Q7&ML=1NT5?XPKowLxU{jsvjH9Pc!`8}Lw?L=OeNyQWIPU) z7JX?MM)sjQeNIxCCPH=Xju4@;z9Il-9Dam_P?hH^da)1T~C zCW=Ed!+n*T1A>j0$wP~|ONwkfn*-lxTC}a~>JaPsAr#;>UzXyWCpucZF`e0YtuN0? zHS?|{s_Oc~&}L2)VU)MfYeNedEVb9}H*^+RRC=8saFA*VE8I5ZeI5}v8YBIDVrH=9 z`8BZ^k1FqAl$Y_*_jFgHq7An^>K<*MaO?FEMfH`{d&jjWPXnd1O!BtDuBWT zZj-EAq-AXtXrJkEY-TYI6jatOXrxfmSJ>YE!|z_U6$my|+%&wYT7dEgA7hTE*tpy& zA)O(PIu;-Nxu`ds0GeCP3|u~CZ`sTlOx_ikb?1zFALmlaUOKtSFgMF=HWiU%QR8x9 zG$l0I+>*{?d#o=HD=}Oe&%OAYc8R6_ue6K=yY*np}~e^vq!&EcaHNueC@HFz$=MUws4r>^xKnY zTyrzjim^nmyjzEfF<7mdtKtQ|nuZsbPAM`xUi5 zCi8~e(|jYrXb_cdmS{W0muqALv*DPwv;Q8VsgTM;t?dxzZGJq+!!?XF#kv@J8d=#( zzw~dH_Md6^@())-^QmUIO|HjIaYRM0E94r&vRye`UjD{KDdr9rTwtLT?fRP8Okk;! z*HvY^rOlFe2W_41lrX=DcXAc2k}DuiV4mkpXttqDvS_F`$d%s=@XozJq*He4CXtI_ z^^~F?H?c|j8pxnmY*Bop0_xK0ZE%@hdydVCC{24EpQRZR*aF&>;%# z{OaQY`OSYY(avcX8ox@X_X=b~b?;m?r9-u+q0XME`0i1Ww$?qhs9|ne!vijq?BH1_ zN>!jrPH#!b1?ys#VG{XPV$Ia~hqrKp*22g;ne2LPC0tXQZVA!^y&$t!l^$#6Xh)T< zN0Nrn$xo>_Y5D(ifm9U_8cGxq=h|0tby7@Vzf08BaI4b7lQ}6fe{WFh*Gsw!#A5n1 zKBpm9?HG^Wg@eC0&w}@6vfTePjl+HWZ4?n+uy?f{zhM=jiDOQ^Qe)U!O>B&hCuha| zGp9mZO3FajOsBiPerkHnyf<)_!*2Aro&Om1cB4gv`v0}zZhc{uF}_wF?&iFVdy<@* zfXqPX^E_9s5x%R(N?s!y2Daqh`8!l|B+Yc439_`()W9jUwD(NfXA3ofEaE*8bzr|p zr(W81iQU*0Xdsuim2t|39w)d==J?9b<^H++>ZDF`Q=O+D!gp zvf*vM(X>adA(Astpb8p(CABnuBu9_9yFf=HP^dVN5_wkQIzYNOy@!WGl)@01^Q+9d$}Xo zD32e0 z|E~SJJNt*I_S4Ha&=YSW)m+;mr~ls8(pqx--TE~tF6GG3N2h44Ru4rtx;-|` zS7Qxhv;TMdE4f_b=Rtp3URR)yj{e996Sf8w@&bpCf-~rLI)k%sralKIq<-chA8&y} z3ai)5R{PfuEh=ZMjq(PkH?evz9LX+xgnbApmh`v`{yV>SASZ)yvnWc`sCI=hX*t8F ztlaoBL>zs*LFS%SL%>ybyf;%`A~N90T;J#Qv~1)7(NX8dbcwnB^~Ch%c4C*sof1VM z!eieb)^F8|I0Aiy5pLhD%@8`VCLU3x)0RFp(Z@7)cm5re{nwr4TJ@{0C{X=C%m&l6 z2kn}D3xjFpmuvdxSX<08tYVuC;$PZL5nmT3;d!1}xxVLQpRl&9S39m`jQam?@d{y7 zd*oGi@3fVi^z=rpVe4RIAl!_x?1V|G(}biVzRNMfT1RKgWdn1ZW70~{3dT-MjL#}$ z#ojW$-Lv-Jck%Zd=1(DKn=_Vf?xiGeQtCpTRA1dKKa1rlYn=$jvNtm&yw2s!9>Z;6 z_Y_K8I4(Z-o&_fx)+8J>$4UR)+QKvkJrSAr)_*SH)Se6OU2X=m^o(DUM*&~f<>j?@ zQD!%GFJ||(V(kCN)>p?x`EBna64DBSq=0}ZAR*E*gc5>;v~+iO4hRTJmxz>fgLJn7 z3eq7tG%`cO&;xhR@q6w$zu&#{2hInOdEa;Mz2aHVdRBZ@V_fX){OLCC4Tlwc-s4f?P) z$)#U2W{*E{bw8ck5)Li@EbRp4HLDLS~+Ih8`U%`e45h$ z-{|klYX6zCPgq`I)0Jr!H1#U$iq1B_SJ-voh#q&%_T7&myS7aT|9a{{Ieith_{^um z@sDATb4nn4lT)?MxhHp&i9CPz$<9c7#H!eV+gSXCLP92@>F9G_njz%IJ@iL7t^Q&3 zcG^YVj0w9x{Wt>KYq==Q>}1Fj2p*xTa}Pu-e%9+3fJ;kQP0~{O83R4`-<M!t<*nAmWIZTA04HxBI*}d>97A-uI1CTF(#Ou zaCyiT95(444-&bIe5n5!S*+)K(kh_&efe;~FUt;fl)PF}@24!jUpXYdCu!inoj4aT zgwzP~Y`KP3st$^sU<&zc#fl;an5wk@Sq}`WBB=Q1l(` zmJREQR1eG^{fvF|fb>D)^A|5!@}SnVk3K(B2*w!^B~dSAPLiX3CTEsmNwvYaluZ`@I!dutV>l{i(;nqZWY!q3M7tdrW?ZHw0s&hb?4;^UT%{k?#TNW?=H96&j=pt)|DsE zs9m2D=g<3k_+dEv?x_2`GlD*4=xy4A*wu5n2}fo(nU5h~JJ2$wHo)LON5W zU6s`vD8?1fOqLXazQd-8=6uniqR(pv5cu=FoNa6OR0#pzoCP7v^cd3*Nr5|wp9|!* z^n@IaxxTJmdCF#NHxlHp99ArRN9+>07{WT2&0S+tC|-#ambW!~>`Ey8d&oN&BM`r3 zcz=UFX72ohX^0bDbpTtJTwEL}vCXzGovG0=&+fg!c!hZ)9_;{|~wwte$ zY>E#MzoI)!@mHRHN8q~n^^x^dpcEIVGLXFUdNhz!b z=aAwO4|cjM^Tiy!?v%Rcs=gJ0mRvv<6>-{Y&h|_Hl6DGd?pippVL;rYw_aI>s(5=l1a|*-O2`lsIou5s=7B` z;YqR6h}6Lf?hF>UOr(jNoN}8?Gc*r&YqJlRT4QTI5l~#Ok)6_2t(2O$_P2Or@Bkq^ zb}O|_z~t7s-UY*(H1`|NNXzNY;iv<>KWvE=4~EK{^GO5k=f1MMW*CYtkU=(0Uh2(k z`fQ;b1>hN@lqrw(3U7IAVU3RBGepmw@5o79Ra!d6?bZ_;w!8yT^S4&dmM^e-Y_y(l zPwGXL$1E-v7i90PGXH15M79J22E?*xjVQ)y{Nnp#|U!v_wNd7 zW4#H(y1sTcLz(5vd_<+!s>-2gK#(-yulouc`*XE_^=s z&@vF>G<56Wb0CzNnNhscpSx-QHj3Hh(V(~L_Gjaj-(OTAm<+GP)sTyn$YA;Ln6n7G z0bTBhbK@KX4qSLxWEfA#^S|Q~BrfoibpQ{l$8_v9rM9j?7m%0J!x z4)6VPlWzBCUOgX_HL#q-HL{t{=Jhe0fTfw*2H@x}&Em+t4RNH0UsEfI7m52BzB;`{ zALWA=kv!NHLf`YnA5p&7B4+Xxe^eY|l^9Zlbm+?IZ3{9CxTYwWuzhD?Sr@u7ZG6J) z9_?0`baqK+I|=lF%UC$!!(?@*t}ezG?DMs)*ljHR8zzfi77nKAp|50`Blkr`TH5QC zGk)E}iIUuWZNB7-=(gmx{z8QVl6l;>Iw!)?p*0BB0ccMJ{Up2}sWy-)40p__b~5nn z(3l#bc=7P%_3W(@;VWjEh`Ud5sGiwUc20b1ANn-+)nnU9yp+Db@*MB)1{@*sbPsQ~ z|J^{He~uiC-z$@ps@QEmAiLkTL5^nvhuj&jTl>Dpq4$&kXLIK94XN!@VtcOO3g2Y$ zVLp*V(bGwLZS0`~jR@w*KbyW|MtHFEmv_0M4784d6}qb0WD3%A!fd{0=T)x>?+ooI zcuoQ@Y%2QS0`iVO@{nk_Kc zLby{U3AMJvoEjafn%r76yXu>ww|xqgS`Y6jY9X(5+A%X|e25Ym%68%jDiWfLXFjc_ zC6(M`byg}i+hO)A5&1zEF&?*J!Y2yU6B96M3WjP)XGRXVR8dG_Kj?s9jXCc8J@p>Go>uOK|b&yQy@i~QYYO5j5MUk8}s zwgmbNXP@6_ZSxR65DsMDw5m2Op$?h9638X_NvZPfQ{pFa9uEO+4T%0k|Hb(rV=0$m zSMcAF^v^quZsq&b(lEwFrB2FyMNU~KfW2j@-DpvXU-{Way#iOQ@o8_#7xVq)yvV`S z+Qo<$IeQ%X;#%0GmIE0dU{{w0u&=Hg6zycCZn(&2g0+wJNQZ$&0f{K|*Ev;2PeHv4 z#1Utxw6R^jMer zUSDBOX|E5TF~92Zp?K>0Ml9v#=3BTnQ;4f*Vzq9v8qhx1n5mhV=_C(Q1Pje?p3QlJqu(e z)YOfxI$6uV^LFoa?vAmVPVLb3{p5LJ9=YQ@8$0%2<6jPhuf4`6we(%p?#UEyeQb@c zgV@w>zj(f_M#f+wV>A6j5K{UI_&S`(5Z3`YnR~G-HAAH1Vf>rM_Sw?K8C$XpO8%59 z%4!7WF^2OA?&bQ1Jr(-Ag;OyyIX+WN|4el^UQKOhqQV}-@A}dd6(HdKtnJ#n6w9f) zL?!60Tpa%54r`!(F%HVI<~M83{4!PPwe>&jH~&OFZAQVoy;u+auE>{wCIeJ6DCO7n^%qjmDiotR! zjf4{Mv4`6FvRE}QQ>}JI*e?N z8%z@;=iK~*5JEi@!hP}KZs@L|z-emA_0?>dJK>XPGf-`LExhA%-#?$kV|V&}t~|Fl ziQVX9%}`6}tgrO1lZ+}?1f9!k2{_#ie`L5mN_woO>MpKH7fz&GS1PL{n6K@8>hbW; zeG&ilA%{gIkJq5pZ_=sbKVhQG>7T>IP}mNQS3J+eb81CBGk{}TQb3-&-ei6MpP+fQ2jH4CH-=-n$p4&6T%0Ec+ z;%NStQSh2lPJ{48zX;e0WG@Se`V}N0LGyfAj!!mn+(k|VlHV%4V8NUvjR%*FdhYs1 zt_;w4;x7LF4J%Yn?OytPZZP?yOVrSAT&j&6#y!%H>FriHiXt8k-|G`(f8={gmASw6 z=b~j#cZ8mA>w@(j#%${$((OF_u~G3dOiQ4Jy;E1C{*ArYL&f`1a?Es1+5??a3F7Yx zT=J-K$*VY2TWV-H%Oe)Fh*aq0VP}7Im~FSFb{Q!mBX$%+a;< z%&YC(0ZUQD)82K;g;bQ!HVvN1L>H4F*jwe@kF)x2`MW|Yzs<2k3{ZjmfLh{fH z+EF0^ywRZP!=ZC>=iuSscXOD^+X+J*^Y!8hz1JR$H_W_=*EvrKK8TXlI@`ziF3tiE zhR&Hn3*3HG^~nSIvwyz^AnVpBhD1>k&=J!+PBgn|Bzsk-_MOKR+Qj3Ond2VnUUS$b z>xf0FO2mjBg^fmj-n9T zUH=-^1sWbKL#P0$wKaB}WLG`wl+CT77HsHGSi!g`QJV~v@m%}HResY7e5S5NdxG+O z=H@8gZ<5QltAzy8oeT4poW_$klmg zdUtIf(UgIZMA-;RSuX-FLDqOC^05~>)Vur@c6%siXfCAWqNc-_DO1`*qvQ=u2DXAl zXN|*(jp&h?BUj&(A^58);>7YQ2MHaR87!;DZCXzt?UFKs(uH@O^HVe-spget(;I22 zfu!gP;`u7_!=)ll#-p?s|9o3y!7?cAx94%)wE+&EabQ{)`h`5aIB-4BupVR0nfg`cG+(x{ z+%!A0IFtfe{yo~ec0RNLnY-q@3v3`}Gzr9?$!EbW8tc(+Lj}9X)*R+gRO|h5k&!oa zj>bE*jjgB83ADL}js_yeQa znyJ;F92h%_bdCG(NQC(!x%aG_DXXpNot=k2lOGNDVE-Y8!>z8DtljO-E1zQdm!kKD zY9za?u4yzb#!J%f4a%UL-kvYD6lI>DGR57p`@7 z-QgyKTHoWd@glxU-jozres3}{b4|eAYL>3Gyk&M5tJp@f$d9zia1>XpX#vwXM&#;~ z9Vubkb$PP7wo5F{M^Psu!|cYmi-5hIB`XgL5$|1?Vcv%c=QZ>C9FS5?dZQcy@Ha9& zg?=WN5Gs$q|M_NI{ETqU{cz0639j=vBWGO+^Xra(QDemO<8HEBI8P18#Cdx*j%kk@ zjwnP$7m3{9PJG3hMel7`)0QXOXuC71!anq-W2gam%Gm_jw3oIbJ~lnkU`#;%$e`Ba zu^XUDyzszUfeN^;HLEo^skR)A-?Q?1Lm*^1d;Chf+9Rc&;wj0=!dZ56`Fz%e`+068 zagVu5rIg0%v%kjx{WTkHq<+yqg<8+uELCcHjL+aM$@lop%ioj?HU6pq&G_Xw{E1su zg#SS=d`e}b@UR)(q92^W+4`%_jtK!S(psp51b{ z8&HJOoKUM@gtSoLs8|Eu96jKb(N3e?iWSi4*-HZqZ9&r8WxDmmAl?uyy_Pf^TZb+R zswT2)$xHcr8zbt7!k<5Qq*a%V1tkf!diK_xMr);^Dv4SBGrj#>4aJKH+F+CKFU=5V z7ehp^9buJJLI-)mI&e{D#L)oHZ0dn+Ea1x;I3JNHq1mX z-RRM&<@V6_yNqO5Xm_L=!$SS8A+1(hRcRQ}DB~2-=F5gQ-3^*k$aTELC9M6q-&Ob! z{hiEqz~TUfjoz2a%CbO2*lDrjhSyBJV+`mkAefd0M6MoS<(H^LJUD>XK%{g8`i?P! zBuFsWZ)}B12nT-I7teQzsv~Bcu`)hr^D3;Rc#!*XI}-733^Y+Z#ozNQ#qR(lt-uf zE_PoDnVC<(zZ;xtHYs|Fx3eB_{cBI21Aa4lw7_Wq5I>&tL6pfUD0Ihd0rKp(bk7C6 zApqS6(>OHTkbj+}Yq)TEfYx`rQ>2(RulG!UHq&8^YkSzXqtEt%(iIN{1X={gtvP4J zz_gMHw!;eO_GmnKeiJ zKrpbx;XyHpUbD4Ta81lTxW;Jz%o%q%Ya{~a@T<5>VZfFVLL@pk=N|fxfLE<>Ga0Aw zHMJK2m7|?u0pTRFMBlT&^Df0Jl`9kaDZi~2%DZ6kchX4~FH~8=qLn}1g@xr?)<_Pq zpJ!XI@b|T&_j0(^P=?s)Vlc^~(E2CSNEHW@Q~}4H>=zMem^~1FyV{{jDz`=-%`GIO&Nf2_|6)M{Ql?kB-vfWZ1K%`5uZmtecKL=6; zNPxE6$J%}zJc-@8MzSAr%F4<6{paYx&uiXSDh9!_Dp$N_Q?d+_sKk&s{AMCYIhN?{ zq3kz51?^ZOCRU3mzVU2d(Te;idnofN#KYlD+PO@sMM*%1l_c$`+PeHWSF8fE+u~G! zB4X*!ze9^oqucXbZK`$Bc`BVQ z*7u;g?|-Bk(rx?)P@%b6jz$$ufnJz;UyaB1j1{b{m9_$=1+{j~;0C*i+0D*FWA|0uAQv^kA6B1JUct!qoDZLm2&;c>W6xN$1^@Y3CCvNWai3^Zfx?=GHaM>=iU1T4 zEoz27=YnXgD9)yhD)8;?Komxo&MH@Wx6?ZYV0TY{J(V)i0_eiHw(^YyB47q+8 z|K9S7gP2V=N9$EcnNg`ez>JiIp~Z078Wi`_Op7bt&joZ&QO6yswaVHNHIi`_{$`oziTrZJ2TQ zI{=3XfR3FspeScisNR*RrRN;lXxNnm`eK=d-Ql^OPrn1M_XwDDf|q2&sI%#H4*G@V zt){jEZE!fh0p>FUfbX=ldX7QM6G+KBZZwv6&a&!q3OL5^e09*)+37z5>!}bp-LB>8 z2Pg(*SSs^-W#TcUQlKl~i5uX=3*7hl!zgx_y|=+wqw$@y|HSv-UXHYut;x;}Q;EXV zjlDyVYg)?;?}wlT@D>ax(rlE4VMQU`KLLHOL7@#=ce?69&`tUl%yI)a!{q8dYhQ1? zx7aD@1D<_lXV0Ba(8%?Kb8a~9%DA%pZ6PKr=3w*8cB%-PF$Ynj+?Z||5wpzT0U-~6 z4KBB5;}9R=|22zUesP?H_hn!;5ZU`Pnn&re#D=@1F>6W}k0W551hyYbDzO1X1TvdDbQ1AL6)6hPI>GFBZVP>+J^20+oNh zHrw(>9Plt&Jz*};Hb8!+;ZI@T)I=vYz)o${>L-aGY$rik!a0)rWzPdu(i5uTVJnX5<3+ z=u5uH39Y<@N*adb{RT5TQfdg=KdEM{lccmi54g366FKfS>~K*+`qQN};}QR$bL3!S zml9uzzjeTCVI@>}v3Kqy#OF5nKmU2jd%n)3&$gSXDZ-*gaU+13`jRWGWHH}2GQR6ZiY@qBFX0uEA1)J+Ja0*>Oj!U#*z&rWNKH#>q zZ4iPgJm!Ff)N}oYZ;)0HslI*u~J$+81L=3{GN630*v)pa_z1=Z&J`&DXD0q zu4un%n*Ofo&h#;`E->9yWv|RXMemX8w9!I7v8PzcSo%twvtzeejIEn3rNsqUUY82S!1>VT0 zu+DO>(sOHPcz1b)xF-nG(lSZ^W{KH4?7haDJw?CkEU{@>>B1oRIAbbJ+I(r+ZB%fr z*4wgl|B6^1#1H3IfR-I6`I9LySH%Rh%LMGHc136CR9kcc6D}}bs47ijg0`jLM>j>2 z*ficMG) z#ykG_NENefC0c|S?BHhjClN3Q!J-Az@Nk>w z%~*`K+LCv^@yq?zS#c-$=+KpcZqqOLmFo6xLQZ9d=$V4n%w6vjb~aAahDP6y<(ZgKN1&p}qD3r5t#}(+KJx?|X|}wfN)|iLPTdg#-cjl`9yT)wOf3dC89_|7N*J>N)$x`b*#is2>xT_bg0c}67dd2(Mkcb%UH8&8q2 z7Scb3hdr&}!u0reh1O$xKK#9FM(;=c2xl|KUioBqcL6X{xy+OG!@b8bIhcQsl6>IA zHh+m!;^?#{L8uL*K6wWU%*0tNQ7a%OG@#VvH}vsox}WwOtd5cJW^Te4%FdAh)Hx&Z z#C|Q1IlQeir?ov(%cveMcxQ8&J!si0YfPP1&_ce}*$@0=0f5GIj05vE5r*|KjnX-j`1CzT(;ARans7x zY!M=}9kbP);oscC_p!EZb)Zv_?XRthyNrb5Y|8ln>(`Bgx5=qnr}#EwR7de51@;^> zD3C5vj#g>@kr=m}40B0iU5e3v{Z{iS2fT(RT6#@nPb`&6rc#E;T zOq2lWG7HCM*h`>=915Q(k*+uIr@+&0%2M6Tm@QOg+9XC$Jv9pt5lLX6(*!bMgx?#c z#*{>erk#JVB+D5ITK;I2JDnscj;4p)fA#sO7~r_sd#VDM*&$%5%Da) zEK3;tw%^@4DmldI`=6q<-q5A}gW_vzKug=3CxncEnj zZU4rMSFWpLnh`%ZYLzz~xFxT+F|!U5_YacqY|n+?iFS`f6vbAk!sJ!xm+}@;#|V$VLU)f1_^KH^g?2+OzM&$1Y$99~YYWWu3tA)*{s~C&yOXzZ@s8E6><} zd7I)}*NC|1QCLSIy~t}sShw*bbg=gPc}N~jK^IH9W6YnuC&3L>JvP5$y#D^=84!RY zcX1P`cxlu*2UIS~!raUD;6N%NDo-I9o`vhSIf@O$`jUTqZl3-!LP2>Pc(+&Xb?STblxIxCG~D+ol|RE+G)w5Y zAMz(gAiKSFAYx*4_{hV$84vhT$zuh1azsE@uYi`hBYj5+Rz$=@~B z32;GQ&?VWGx1+YZDh!epyr}%)GtHecTm=12@L}b?WQL*r5lA>6$VvpuImGxx$+6Qx|K9fkJk;}cFEF%1OBt~ z(wL#*F!`(@V7Rb?FX5FwWsz&7WdAE$DDGBAG5(rNR1kKpYqrd?Hr%QgMAV*_*gOwa zqUBW#=c_dZisMH?7(G@ZA&LF`(*xp zbHqwrDw8VLw(M0`F{zzfcP(4Z>=((Kcu`HpikqwOclskM6!L08-emhlpOC zXa2~yovvcxY(08S{vrLT`3L$f^?3&(Qo`EnUsA$zK0#{Jga&(BQs3I%5z+Xp95oM~ z2dQpevgunVB%9+-itIGp1hGiGQ3(`^PD#W!-~q3h)2-T1mkA&ZY)gjqzF$AD0O5<< zKwpwV^a`qJP^iM#DC_B4WDSPS{3eg-HH5bg8%s{*OYKhXKXuJ`dIRp7xP{AFH+4w zi2fT0x)AQ#Nr&#B$36jJ=(qoUSl{&*9~uGy$t^BBw>LPiD?lqmy3*wP(U$@&ZZN*j z!lN;%ycx&=c28So645ZL!{5pMiY>%?AH`Wt+T-5)z<7L)RZV{rQ6gL&Eyjpsmp{P}~p@JpI`=U%#G z296@kPop}u51 z??oGv%+Av<(W>gG*d|#KS-91S>6&uwIrqjd!jv`8junoF>0_%1k=aos2aO*&zk*v$Hzj^3Ezf_(LmdO zUU4)|Nl#Ll`*bP{TFu_xB`tgvk7cb4#+m2B@3N`i3X2{Hb<6&RJ&M-=1R3_wg7^R* z68dnDD|)`!(|10Q#SbBZD6M{qXiD8`QTS6Q6Gbhz+Jq?YKHXng@&+mD9ymrXJ7$Px z6fE^xXDdS-?Oj^#D6s+~i(izV(?$I4VV_}ftljcuo*tKl05kcBI)b$i(shd{Oap~= zHpF~TP}~-$OZ0~CNWumGtz3F;@h^!Ap3_g%iRt&FsmPck?3lB2Wa@u^bv6*j8m%g% z|5bo={)*hrZ28MF$Ts4B~Z=j#1}Z7e^2rh`uAH!#B(n_m9N_7oDAW7$$3Y_0$=4I`2I}5gcEC zLyxlTZ5GiuPqcH*``GrVm76|VIwd0IpXE@ZciyTH#ObgJCl0}JUzc$0-aMe^XZvgK z)j_uDbu4?lBqxIoYDfhBe)~CawTA+mehLzsqj{Aee*{C{NZUXdBYmWF7p!^GG#B>p;kja}|~G`fU{* zS4!;v7tMOB{ssRao=pOEHKGWmvaz{=UlJfuvP+5VmPwBlUMMY?szQiZ_^-GoVUmPO zh0EmJ{(F%jWc>o&ASJ7`gmK;_yceHoBKlyTKF=%)#Rr-D2jOVF*lGScBF~y0vfF-r zA82-W#j_}^)&jJ+P`945Sfk{f%A*j`2aIz7P&Eek>f(r2z+JQlnV4#&$qQz5s`Tjg zt&Slb8}IJI6vk&)(Nt%>;Q{g@V?~2W{yls-GV`&{O595MsulFFv|)o#oEld;-fJoW zX+XrG4o`;giEAMbr7;AoJl$V(P)3?!sph~%`Mfnt3@ORTCd==QP>7`MdjkHbswrm9 zjC4XiEQUHkY>Ba1+~f@^wiqA>L4rsEO60`yEOG*N=Xxn&uk0TWjw~?<2XX1kTb_uF zSC2FcPvgkHneR;kv$!;S^yfz6V*@qd*(Lv3(oUmcg4v%RVRs*?bP&w_{CE@XkECR- zM(miWt6h`AXM~=U_h@8ku|tcFi+q&ukvBd3pVuB5PiZkbT2Cs+LSA%T7Nxh}_3@aX zROUc4WM{CYm331eo8<7?b=-paNI4Hi*h~@9^x{OF$3+@}3FjOCFGCi2ZnMzEmT3DA z08)qC`Swj{Na2>}MZ2!k^9Njh?6&@bV2A(T7eC#P2T;nVpEHF$?yDZlmR@GzfBNug zZRyeF7!GPtIvQVOwZI}sxg zkThBMcPpvxKUj1AkrK>fyC%5#uGxMFUr#1Rckakvsr2j4 zoGG~L0mJ7U6*#}B{v4^8jo+PbVE8n_`5v>p(XJD2nBmK@alw9jjx{@PGLfBYeepmB_2o{$D|Lui=46a{L4Y7_&(i`Rc#GHPKGh4KZ5%T#{tljY!=Du&mhHXP+G$|?}bg0`D4Aes!6gbzTm z$>|^C@Xx9L`wtsE6*p$FB$Mkcz$1)G@PBrg%wr!sqRMZ8vf_t}cz{lZqIPArYimo+ zo46^EsLhLk%5{GXEh6pr))nHt#L4)*+DC2}#`cTc6oXs&G?T~Hy)(#P>aJ;c(HL^P zZ`~i|TT<_q33>2;2t_T(x$hP%2 zMgea^5y5zJ7&c%yqwg_c%dLE~0gtrjE9EMnZ;pu@m{xQE!kFs~?V} zwPEsE;>2|UfZe?CUzA1kCPJ43fm%E0FX#X+IpV>K4_^SH*s%1DW)F-^d%!FGjVn7v)343lvk{BFdWwMYMVh z!C3n==+)UNC=wXuY>pN5S0{e__|TOeKXe%2)Eqih%taXEK&3N;;>nvn_qpAwfot%q z(E$Hs6aWh*f6Qfh5YvaaG#4-9no@V)R%%dcyS4b4%#@JXEcczX#p`KGIk}5c485LJ z;T}{fvU_G3OQUtJg8ruk%1CL_b7}a$dcD9SGO7QS>d=G-+&MZF%t{sWtqb7~O;rD44E4obm=je#}QxK&u2j$tf%W+=Fb7F>cIuV=A}tTiO!bsFPh-jJW^# zB2X^r0iXkOT1nXJT_DYc_jsdwCzq5B3TzsG z)p?eOczNzFL^-yd;rtu#dK7{V{=h_y1CC7)vW5bzfsTNJL*fD8-E;$31^7?=_Mfp_^+`wR`0Xg|VmS){9vZ(5LaC2~6(I5sQ;;eJxD9LcLoi84vE@Q{$@oob2V-H|cT`ZmRAbh1gi!80gs$|?<)6uSXpt~P%YTUpqcmdY_0ek!P zRkNr9r?-Bc9Tg~0vrO%0hNAUZFc+{cLAerL9@ZmOx&qS7u^AcBK$<8E{1&O6N4xR? zp}FLwJwV5cFI<>O;~HTt-qq*#4MExr7cK&;|MDsHj~UZ7_4s5@qUYg z9FOghkk65o9?&L!q)~kL1H}_IIw27J+Rk~cL^;W8={9q&vhDzhY4vINR0Ws5VD0T< zteXH@zdxX`a0)h%x|R20N6;g~Hc?T4yvBY#0P?oj$sx`p%K`&#T9xF z4Absm*a5ZZ+k;FHdt&0jH>emMID0m$RXMp@KX+?A6|K^Z#)u$Nxqj(~Sw8*+QK z0Hb4TNoFSBDbcCU55d?rN-Ky+$8sO>eQ=X2Y5g?wP00*;S^{UD@22Df2^4G1k zS&LHbnW->@q*UBpUsHJvxrTx&Ul&eAYEg)jq1O`j)@(gV8_=FK0g`%s1E93cnx!o; zfGB%EFa$(_Te$NEq(QP7TMTGnr>+l!bjQF90}ZVeAbQP240*)HI1I+lO5D4Jb%{~# zrn}JKY-#}2G8>%dtVzM~gausK>j8v@)Z&Rjiy#138THLU{nx*UWj;sk2yFKbSD-1H z1&;JEs7e#w(|3y#=477*^sS4zBn}-?kX;2U2=i>9+YWo3ov_yFrO$E$1`1;Yk!qwe zA0h##fS0ip$Al#TX?nL;=`m9wKeApWlLlEUUj+|4ngO0R^4z6-GF$L22wPH-abMa@ zqhW>glW0{nT5Lu=@OS^~g~tt`mtZ&s3-?C+mz-JD>#k5VSLC7Mr$9o| zaDT8{S?!gPE?b<0RtEE|+ ziDK^!`C%}9{>rI{xC?l&kRAfqPhc?Xy$=~~Y^pyoY||^#`u>63*k<_44L?BYc@A{i zjDiQ6VN^oA8YP+&6--&nE$8Jer^^uypk%4up?7^>bg$zkDbBrEhDI$lsXxhjF7Jzz zih*b8Wa(TUKnq$@ig=XzaaD~rx>^biZcA{?M|3ZJy?=nrctT|fG^pYdKn(h}^Giy5 zq&A~!a{>n`s3go#Bx#92H?52{nRU?B1-yggVjBDG^T+GTrZWEDiZbIFTx5nbM8yQz zX>FIr7stE8kRE-L-+t3Jw-w(LriRlKE$RN(S^%#NwnU$D{{`f*Jpkn+7|oQfIImPg z%HO*Df!%1Y%a!!eCE&Q^*}_4liiR!DjTQ08ADRN-yO_qR)dv~d2Yfvu^eKy|P3%sV z!^x}ZIfPG;)aH&40J^(*{Z99`u->*}WQ7m{8cYb7Vde8GEtd%`B)BL9RC2!pnFB-gcUsu| zF8<`i_zY!*iMAhAW70wi2^U8*G0Vw{9o0QXjtrUfVYaO#UXVxt{MOfauPc*x(Ltc0cr4Dm*R&jE?ln- zPIU1$uE56~BwRioP$)-CR~KNZ;}TIb+iv3snIEFdMgsG0WHU9^H|Kw_W^TE+0lGTS zE)5wXQY|j80o<_r!13TGha>_y!fkh~j~zvlQti_tK*Od2R?J|ALlLg-j;a;tx*DSxs1MuLW42dVzi}ypJVVbDQ_mC@f2dG2F4)zOy z7`M-vwoox=qEYktz-3W_0#iv3 zVuxik;XQ-uE(9En&-*H%01~E8{~w+O25}X^zXF^%xBG%NcQPT%hq3_OJ-xgG&|PsT zVA|%gBaEdmKXRVE_rtr(M(X#is2~H5s%f#3;#t3>Xpl%UERs&X?``Pjdux!+rBlU_52bEGqBa z*YihC82na~Y63#A-vJiQ;flcVG#8&k9Sk%Kg|)2Dd%k%4>!}uwx2CAToRhT04O0zW zty&w6NJ<{e_aNp!1wb`P=48sG&y_!@2BkaB0CBc~VA$h&K%YY6+~cA^{{;yIQ*i<7 zFDwllp}T}QOCP8h$8J_BQ@&Cm+u+KvxEk&A#EJZBGh80y_DFup6OD+1Ls?7*x!z>f zh4uLg!+p-OZxdht6Q-D2_(Nt7bedDIZi)?Y<^bP!CHU!A}%HJo$RPN zA2D9A2Yeh4oW~b9cw2mq3$)a`j(DTz6r6gGg5>eEDbJ6$Bf{?c+@i*_YJ!Y$19wP-tt>!ok#xUQyHYCZ2{G5= z6UnLSL16-*6`wTNMvZsBna*adnSt+cwV4!#o{yn(B0^@F4|c_CEvED=K+17pmL@5$ z(5+W0ztK!ni~qhC5BBo+3@YG<=d_rT)Tu+bf&cou^);$?0D-pdRnew00rxh3?NECd zCQ~pQ4sE!T9ZK=QJ<=6(oi9=*hf$=X7^`e6_v`2Up5<|^GsQz{&0$UYu>V8Xo5w@F zzW?JbN)k#%NR%WA$-Yifvdg}cY}xmHEM=En_B~s&W#5O$zOQ2+vJA$~&|u8(9_O6T zIq&b|@tZ%!F!g%fuY0-f>$>je^Lgn&jKd(dr^+6r`7r86TGhTi(rVT5k<>d0*BCVJ zj)aj+e$Ks2!+ntdnoDs&e?e5?FlRKNHdR2J)*4fFBHn<5CmI_C)-$^jj`yQRyjT5zZI zCu;0TihLZamOlt`@1;R^C6foz)?nW~ts3Q01Omk_L=xr$XrC>z0>la(bIw{ZRv8)- z73Oiaa@x-k!fyK!8z70@1|pRQ`jS;Gg(Gs?_21aOmH-;j8Dyrpru<_!@ zniOq65H(hQH$mbo&8u7J?~v|P%z$`ZC1@LV*#Zc(`o@G43XPr~)%7+7z7_zm zOiD8%e_WTM!pOG{v>qA2vFuWBaR?(P9%)8kgS9HtxMTwo4Kg7#ymA89t4xP4=YZO+ zzi502)Ne+}<&}zSs%cfl5>#U&^2Rbox300=pCow5weIvYMivhhlX&wEVv}NmxShmZ z2@b$AfG~ED07w3H3xFLgyIC89I+`9Rq-=_zKLObgLLY*Po4)-^342H-KWh?XvV9nV z4X|ixi{v0*Ksf#G(}_O8%O&Q8C3c3%ni~vvQFq`<_w_Pi(di;l9YAERC&#Jbn=Zmk z(+nO?eSRvC+p`XKb&Yy{D&qE4InnER_T@>#k3`=|hM${HgJXyF_BpWeTbV%tV#Bl+z)C#Ol@7w>5xXB;_IRJ-=X1qK`^A#lVR zhy-0a~v=;&t-fF$y8^c;2<){^?$tZ$b}90E6@Y%km%H#%-R=&Vh zBp?fcj=$SQ*B0Mcz83JCOOhMKP<*jkf5X@ZB*exqD&A#~w0sn6G!*i}y2<68kf~>! zdZA}i{Pxj>6raa&5W~;jfs)MjY@d*q{(iqnS5f1@7Exx<4X)A|y%V5xw+}^5e)_|p^Do`{$b(W?1JBNYVcxy0PU=tFDqU{f*;Cx|7_9#9e7x zpqH6^6xK-JM$pAUw3hEawkEEkI9XI|M(x;q5PzLp5pIla`Z+>&*@v(Bf7glRz&=Q2 z9=wbv4|E5$Y_b`$r%IGB5z)D?a}d=oKVKC&`bkJ9F)&!jJ}>ROCurCu5_c6rO7)z8 zhseCkSn0eNRdGLwla%);qrR3rNDpv;64YEELMA4bx>F9aaq5kp4Zf;6j-)}~H z=hAe1A^isGfizfHjVm4C=_DeDOjx69)Co+yS*x^6KRWqlnw}2hsaEPiv$f7DRUOPe^KZ65+0bfIvB5f*QVMBZ^@yQXQi*K};@-T)} zU}+_)C-y))egmXrOi=?qUFo|vvu7wb?HJ(>^4pDAq+IGe9_3!+9T+HK#1bl3`OH2@ z6&ygHK6~fjAKKcfCmxz?@;Cq`P5Qj^B=>|i*OQ9|Bmc&oBoU(|9Fhb-ul<^?K$!l< zGYZ9_UU5x+3n;~N!b15l9lci-L1k-6t7Zm6!^$4|qv5N>_ZneW+VjZjV490>pQCj= zS=JcN7)t*)3nB@yS)Z3cyV&(>K*5q`B>?Uu`n^iabCa7hs(;jc_lau3V^Ogx&O8Se zN1ss5bfpXFvsfv5g*zWxdL&;cG?xR=XXNI$S`Zx{ebgkHJdzW^7|JAaNxt;6a#6ze zc-7b~+2B(+AUUPDcfIE`0rQ(sYQ~QvfQ=%(J*3A32?T_aDyb?39|F3Wh%AEe8LLXW zqPkW4CpwO(k-Uqb%4q^;sM;HWA7OVmUWV=Xq-`d43Ly>O330PLPMi`pXaJ>&dslfZgV9$cDy;>u5sSn>2_4w2U>!ADmJ~N| zj{W4mg)`Rht`+=!!o@>D22_L+@Wz??lLdJvp`B&y=PjI5(Oa=XUYlj~=D+QInoD)9 z(#PFnwj#WH>L}}D_*nop#}4fN3eOnW?{FlhJ+L}e*g7ynlF_2g9KyL@es?w^q&ya;-%((s2?320Nf0`a|JG+f>DNKi(p~o(DpCAji}ami zRF3zpN>sIs1n-kF zi3kg07XVT8F9nb@z>bkbD3(*-)my@|tI)7Bszd2N(404bCi&+?lKvT?W}06;}<<{*|R+1m~9PY)Nt=u5HpFyA*=l{5G1AK?SJ|KczX3Bn2Buy*W`lLqXJ zs_98qX;hWv`M$It0*RU*?^~}DW!8RF%QICvOfsbxBoBHAEQ>l2-}aT9*^y>~|LT9W z>7_;vSE+Z6m@@+v$PJSZr|rX&Ic?@%2<>(-blfM0rSMwc1H0myUj}1VVVhZhfUna6 zG%mYt3*>$cHvn28HeYrSY;*sG^jMrhdg}jwAU*K@5}&H?o=@c}Io~g`U0l2KdXy~B zz1%)4%n71;s+>>eK09LjtTd|wMOuBI!SNb{4((rvo(W5@4f^kc%)Ig6V74jVI&|j? z#lg9Dy7V$&Fu7 zt?T|-4-(A)aOcgPjQJnm)97&tuTGUmdF}E=^ZoBh;GMK+1IRUT9LFGcn~NiuhVHw!i-ONa?{=?jGX@ut#`YiDIis1-{r`0^cK_-ZRdPLe!(cMnrxP5>J`y% zejQJ5({`DlFXoNL9e(`3+5dlb?gsDyyh_n4gJR|*ukeu}{RdFwAu{BBYj6heq4Cl9 zADO$&wO}fvmvwZ*oj`9yVY?Sj79zFuY(uUW8H~xlzQa7M)VxbQJoU$nW?!@&r}Znu zytRj*G%|$r*fKKI{?lYu+q#<>WW@ETrujSFz?z^q_J;yfRv0g8wPO7!Oat*pJG)6N z<2pFr4ATa8_|HqZ+D0F+^NC*qftxz{N<#pwAqQc=Z%*4l6u=PAl;R)d`W1pX8C8A9@_ zJB>Om{|J+D(dw<11Il=#sPMt}2LE-^8nb3}5Ro}N^>R6jRxH0zRzohFH{Z~0!jtoW}LKAHjYe$h5t7LC3_GJU+j$^??E{riqQ$L#Q|Xm=V{YWhv+BQpLI~s1dEV z{0)`MxyYIX4_ZRq9FmDXJesw$)5Vzt`@Q6o`qSudr z!S=-dh`}jG^{1Jkms||I=+hjURP+bDxhI^C5!Y`KgbbLz5`+&HQ9UoB<@nUF`dxPx z?o6uhfg!&q_qX%>Ao9woM#Bx%m__s86Kcn2=0`6JbSlmVWabfGhCN>oFeeW$iJ_P3ej_uO=^>|1mH^ifF3SbiyPjHFTtu0om>TYQ)o#mcL`Q48=Qsu9$iOa%g;or^g3*{wI3K?YuJTI``8kumc3#1rhY zZL0&tzq)LXQU0*ncqDXq(C|&W@PbSuj*EDT$GV+^@$>w;eZTis6`jfZut6-)N*rtF@AGv;E7^1@t*K*geim#K?jdP9v7;EP9u1TIQb> z)h#GqTf;q>y(dCVCggZC>K`gI7!N}ND+5h`jx6pYU!3!&69#3uA+xXFd9TE<%Ia1a zXE~iJj*>n625@}Y;uIKpro5BfAG>LC07T{qaeBd*H5$GYM_L^=v!g1TB|@c8XeBds zw?dCKD)k3N*uj8bNUKdxSee_W$pUK`-5$5=8@`T!iyf~+7p8}hkk6%JUiU?Be5tXi zFJk%l;@r+(!=n(u#(KTq_ICH&TLuAK6a`<7%Z)G0dRN=kn8RCI!z}Bz`?mY%YJO<3 ztSn<22>KzrY)+fwp?nY5bsLOt|0;9Es-9p_(;?~RS1>9*Z50YNW|w*rE3Xgd^ocJR z=l-Vu52(a1)FP9~*!P`^#Au)1ceVB_1&R7fjvgDeVPl13K}wKYxv)qtu20oYr<@c_ zUQ~S#yr{XC&%5<0=Ig`ZV!ckM%0)?f0&@awvX?_Vo?l^zpys}uo088OqN(nYX7RHC zmH(Pl^Yb@=`4LdFd|)g@@Icf9Yp-FL>G@0)3qmKkWYU%gXPBS+f2Y-I4=SZ2)2`oU zQ@n!I8Mzyfq~{fXUVcN#Jlz5_wC#ajC3D$|=~sbIMWa+(d`lXeNbgm>Qq`r|l8`EbjMeUqGV{gzXC@e zcm%K%+z5gx23O7*_tB>(t!>}Ktoy!bmK2G)Jo)GNiCXxTxUL7($HVCIGVaa;u^S?j zD5Um3{JP~Hbzi;Qo(R%Z+{R3R#xUjYVQ1J+XYmLdc%Sf})j9~r5!Tx1*naJ<#YDYu znN@~eLk%ZoOWA3fZ2bOc@t?(%;+?5*&Kp6m=CrDeqerMP%W8j?jvIdfGxh6csDOIu zyW4GH$&Vqcjb;-9d|?-7Dhma(5B3qu&E+PCx?7wRA-G1x%}$&J?)2io#yE@yZzR&{ zh3_db^*4?63PvQ1cEdX{=Bfn&)2Ne}JI6bRe^$`8z`Q(*H?TK9VMX?*RoqJS-K(=g zKa#o2dz%i%LqT&o5#oW{i0hxJiM35UI6Y2-ZjKG3+}pdC`NDcedrbE@)@H098m@^j zv{e)wN0|Ifq0{Kzf}Olx7Q53QQP5v(uUHdSvpj3h+>U!TPo}}%$XV#FgAscDoIQ2f zvd?>StC6B-^B=I4eE&f)&fS4%i7P^>`grfDZ+E-rYf7x=N>LI+b2S0IqXr$hg4^V z_pi6Gg=by~WoQO~#J!7=nRxS^-D^awgmx=_kJIv-?`+?;ND$oYiXcX!YiS zG{;c`(OT}l`B>if+89q;KSSwcb9sNn`IUuB$e}D0#VSaT{f+A`2OEOkxm#Ye_Qp^B^W1u+T;>vz zY-M)7cF>>y-Ty}BRUFIYd(05`E+-Zy?Oxga94ctB9q`9!$bqWgr++qtuK=UN<;*DJ zdCc->jaPt5jw`2acPEST`qfM6Q>C_bN6-;6F>o5VV^7w2u|K+azcte%K+9gIai??T zP{JDE-kWN}Ew!AwrW4sVZSS#d&D?-_sao&%McTq3r>lm=27cmcRDURpPk6|3w6^N5 zBI+{6FlBN2P0_sR`z4GK1T5YSHhouJ%trGr>jXu$&%tu7UIC+K`=brIowDYsRd*UB z@j}=nPIr`)X3RPUDGvW#FJ4_@?Oeb8$36aF&tfHvRgF9x<|5cd>-<#v$+nQ;oYpSn zqKrv}nYY$v!&OsL{XboG$l8Ti96txD-|xd%?fue!#7ls0(9wNb^Yz>X@zb|=^cD1x zbW0}^^(RKjCk8JB*>jMP(CzO!05L5|_$%gA5cL7{3CRUnCU z0&`vI8xEyc)Bhf35FWGU ztF)XrFTZ4V`{CUcjna3FT;vq{y{WJ}wSM-oEyF)dX>UD_f0Qwfr1N;=XAPA8XyVWU zbfJlG9}~>)iaSt*Ik`5s%e(}*Ux6~Ir9i45sg5T7-K$0{P(hoHUcS{YHzP>MuR69= z*`?Ba`NGYjlk-sV;r!HvOG5)idlS`jL$P)qaUrJD?Ff^~KJr9IpHXs=vASQL2ZPRL zq$JFG$dot{02s$<*Y^7*FU%Heo3svjMO@5^F4_8XGt6gm%)MBO5y~?2IalV-#Z;>X zwinOa!ZCyHR*QARnBB_LLxtM&2=`%oa+sso@U92C(OrvoqiLH7;=5T==kE^sbasDz z_!94|J-=oef*=*_I6?A=Q|g>aEA{cRcL$1R2>QR>L_GA-84rD=K0KEnZ8b}1v*BAp z?agg!rpG6zDEN(*X1iZ)^+QFTL8ht)cg+Lr^)Y9~Z{a?LbXN!>82=jEsI;W;G7PR- ze--x&?eczHr}|(_dLYl;+yzF5%cty%PDf<2&wea|J2b`cYWv2CxV?Ru<5@jQKR>Rz z(GM2S_L_m%*8ZnYo>$ZaJV`w((j0giP#L;I3By%p7y*|dvaE%m)8cP^sq)tvyX#^{ zyp}^xbv=kk8adZFUBJ=J)lRnf3K<+f!wJ75DU=fzPdqcNAw9=0%pik7uP~Eu?hEeD z3jPr%a+%#5M-SZ}D|4BZ3UNE6c`V*OMmgI^$Gg7~W^P?~E5qjT@b*Txyhm1m^^Erp zk%Tyw(`+6+7(U#3f5_x528EJZb#_w}3yk_qmOH|>m3(<=qF zE?qj^EJcmis}Nol4s-_>Gn5)}#5`Gcv_w#^!zK1@hsMgxmDrFLyHPe8l43@2%ZNl>mRb+OSv9$=uIgkn43?UGa8v^{#f`iT!yQCS}OIR7)-A z2mjqWKv0@+!mx{17D9D%hfbc)WWW!9ZxF|2^5=>z_c`+{u0721P(8)|&8(p2Pp2`WGdKd9yoyug?XEo}ac$3gG;3tOYZE^QQAv(Vwc#g%1h3e>H%s z^2rwEN=Q_;qf_P*I1O%GBR_QzYdxywBtwW`Z+IsD$qm6|Agv-%k5ET~>|z9iO8l3p8wVur9AbCm7bbX*Ta@b!6sOI*myp)k0$ml+i1J!2pJ%I z35_4+UBVx2g4g3)*P0yc8mJ`<_u4Gg`JDNUPejNXp}05#L*dAMi5$_9AtR}m4D)J; zotSP>hWXjV3VHALAU;nURX-ABujZ$O;bjyJIFGp)=kOChOHWmi#wi@CDr^z~wb^7vMCwfs+-|FRwsf($=K&;AEsZKD4R(ApH6X3- zHn*9IXq2I6x7t&myRoYcU)Z$BVZbvB5Wn#2_LCUDJeeBB?UOopI&z64fo{q||6D5{ z&4kM-@~Sh2N>vOD-dgo89E({BTOOIUcha=01fo>(b-Cla?x{%$)3k;$U)9O}-u@H$ ziq_@3a&h|0EstWF5V$||DI#CE?(hLiYcSO%MWO)l4M?X;c24ZF+ z1xKZ=1xGK7+0z0-4myI?x+^NsSAG>2|JqL@?fv^^p-1|Uqwddqu+(i=S{*rBaQ1pP zpM1Nc$mZkqQu1q;BRYZ^&F3bnJ&7-)y>4r0RJmosYg7al#tM{FE>ufX7QJlnuXwf) zUPDD|WiI8ioz(BuybhuK9g^cX!y$QH?UH?!6! z(eZ`I>jkaeIG;#1MpkFg;OftG$LxyR%&L!vuUqi3&hqE!nP7%0CI!ZWZ!s_Wy=9C~ zDOK-@_Zca4*uovs;rw&W`}ZOrqLZ^FUe+E8J2K3=nwI-^GI^l$EmHkuQR%4Bjg7vZ zy#7o7PUgriI%?MriG#g3GcWaS4FR{f2?7wRC_o|%J!&cwaOJyML3?Q>xAt<^?rfwQ ze&#&|606kFw-tj7j?2FBaOiVtSjfEm_2K;bxTF<92;r5<8UQFFQ~?JQWZyWh`0jsk zB}Wr4Dq??7orbo)=i~ZoYx}U?j#wCWZd6U-rr|CQFzAkbRr21i1lp;2vb{mq!TS31 zZ3SAJ{)TksQpL^cq3aQHRpd=NeD3_;QWhNvU|4 zX}`g|eJd&~{pBTFS)8fPJL0;%h=SmlE`8j`i{rJXgsFG8sV_H)#INrjAoy|{CL2jmD_rM{{hYkJDyWygSyi#7Dt0ewv(87aVTvTLzg@;TiPPi8 zSmBH>Rby}T#!&v`e5pCRw^e^%!}b@UO1{6j;_io=uc2pAz?VoY@e9!_O`hlGpYF!V zwILORy*_Zg4gFT1EufY{$=O^I7U?B)j-K@_ChUUb5#`QP7!)M5ne;xRH#};E)@BJ zK*z28wbQ6z1BEyYecQNSJ@BTS(7ja7J^&R0n2+@NgbGHRYNw^kJt-vwsY-H%8MV2! z=QW7#7im=7A0|!5RU>OaA=_B6pVHmZEf&3QjHSOZ^= zC*DaifUBWjz7fNU-Gu$+S$*xLsr(85=ITMTwwfcG;xnyW;qPnGV3kX*&9yOELJ09V z%(Yl09GcJ9Ei0uAi|MOsG&&i<<(Z6pDi)2N^mNuE${Q2jcttdObW)TB^p1l+JT$}d zmNC^F3+ImH7cD=WDEiJc@-0yCUj1dZRW1P#`$pXC`oeMv0mS7MjTtK)=m7qBtkJm*-02l?b*Dp}%+Qw4Mi+~Fff0R(^bdkXz|^^e7n;~U3^bZ=8s^t?82_9T?tsmX)3 zKL3_7m~c?y*-`=>q`sXxU2jWs&+*W8#()Wm;cN!M(aQ{aIY>U6P@_yDo4$5Kv?W%Y zsfE+1nQoiQLXol-Bpg3UU#Pbxp=C|+#x`vQ^1`C#a&wIWI3t6N3u(UEAM)4$2sOeh z(NFpI^UM;guCBg2-H8|rP=I`)yHL#$ z^FY;S=(0i81_{+hSjM9cE6820P0n}agia?m#ZJ&)@`C1{Z+2xIby%ab>)saqm8|@V zUwDdf0iCf)vg_R*2$zW$ z(?eL>di2npWbI;VQfJdkLpFz*4GLcuId-+7N1Je$@-3Tsp+5{ne$F*t3k!-@kwL>t ze?n1J@0P9iB4|OT=?#;VXC9^X9pX#3LO20XlC7V>g^%Hvb{le zPf1Z~#8K*gIaEW8Pzj$FM{B4xkOee5kr3>E`ay7Utl^em&f`t595Mk1)BBf0Y34zs@qXmdRhT2{x zybiFhq5NKJ+(DR_ciS6ex|yFM^KAP6Pli z$l}M?kGJ!m?(B{=d>Gz&nh>}28UB83|MhGc8?8T`*Q#9k+5kZ<*dEnpO1f1Z@8Q;G zh~jT8)f~>}QV?7Y+9p!CFM8{(!F7cYaYoyq2Udfx0;LvjhH{v_*Z%E~ih8^`&&j`O z%kRck#lTj*NN-E@B&aR(IzcEwV6eBuo$GJoi@sa0HRK>&QI3hJ83C)Qs|XJr$3bZo zEUIvGaeNmdpT+o31-@r9jXbM#6q|ZZ5hq!`Cs8hn0{y1l}BT4(@efy6cJOnN&__Q4!a>4*Kt9DP-F)A@~wlhoBdgmRH`9=-~vM4{=+ zC_EqzyU{&6weplVRsmI@mN2{JA}Get7yx()7$zd!JwxKCUS%9P;Qni>9beac&7Z>Y6QU^1je#!-8XMk zXKJXLt{=ckGA-sX>L@iqp!=sA2aUKU9QM*#x#Fh7;+!0D&EcK|PDXBUo~{7_J?5?d zT&K>7mf-=8JhI|}BK%eEbL1^K`(^Bx&6`>}V*Qg$cC`s5uCfTuat71gn;SgT3Xk-{ z;a1<4KXbS83_v&JjB7KV3_=-f#(p2XX?S#;n@Fco%p^C+J9sEXDb-odY7wWLLiT8g z7%pB?XJb-e4T|}-Tj_I07i)aw?VUwj;nHh7*B1(hvUW`_&C996)Se**pt=0CQ|4x# zunC@$UF<{2$u)M3v)YgXuEV#iyEkwau!M3BCGqJ}Yim>QS-Qy@pGXZ^}>Z{WF=ax0jHz>UiOvA!PzsM;d!pO9Xn9>%!ec>TaPH+h6Zy zU&2bW4^NEjy_SQSEHPQZDs=UvYid1t5jElnW+Fm4&!>#r*$yST$sRYaA!zqdGFc>r zhYYzfcLjKL9d12&)Ro-ZyDBfz10NHb_H^#gbW`_~A*rL6pEw+#AVU zS%FUff1c&p`Kp+s03xh3uimE%Vu~|RX6N&~BcDeH>uaBxh(2*j9I-N(nC8kIKp8bY z6VGj9E=k#OU+yq1M*2+|I_JsWDj)_dVKZjub0HbXX(F-pvX>i90#;I#m$S z{_(Bknfr+;Bw}ng=3Y|QA0kNfg4`*r;K-svImyu+Wq8=&-?6&T-c^J+&H3_A%e=={ z=-iez^;B(OTZ^b?6ROvxR^RKC>z1RZ?TPbMnR)FfmbKbn$t{d8svjR;+BLww*uT6c zg6f5vk4;M?4OzjA1^D%Eng=J3RU~a$O2ABis|L0X4G7Wl+ZeAi#TtbFP`ME z`H&&(4qNs=_okO5x2=s4=p3_g51MSWFvbnoKWce&=_oF8c<-7fyPkUl>$+DW^3rbR zSFF6SNdXEDtqajwCaUf-y>I@RPo8qIGHJm=a`ei+yz`)2%M29N(xoEiDQt>gUjKP{ zBV9`ej{^4DJ+NgGo(aU&lUJQ+db{kk29MO4mW{Q#-8lD+sXsbGe=i~(bZX__^jUk| zwE3qZ>R%U1_pXb?U!uY=|9Aqay2Lh@=;tR#qy7dr`Pqikk;6@CJt@82@6ns~bMV!j z*L&Ej{fAPW;S1`MWdCUi`1r2Y%V?7>HbSoxD_>Q$CWwjL)Jl9SMX5!3SCcrD+WM1~ zXl0E>DpMaxmyrm8r5ItK?9jsgBgax*=RJl!*fLXZ$6+#0<an%To- zsHr~8x)^cjAxXYBaMp4cWDJ?n&w}hy=+2X%Om%@LXU#Ziic8h9dV(c9jI}1k)hdhN z|0;LCB06v}`P9GyO(&Kwc!zS6j=E%&zhL+@d&ZsXeeZM3pxaTL{@ziV|CHB$ilSx4 zsfo5B)=g&TG?(v^j-ImODHs!HtJFAbgu{Kg1g^gI;$lL%i~KfLS@+_G*cDUkVG_!3 z^)b4pnB|hgrQNd$GFP^w*TGqZEw0Bva9@mw)tvtP^~E{cTe*!NhY`)I*6;VGs_pQP zGq9y42FPYl(pQ zWNB6P3P3Rw_!gY&-y23Wty<6T^V%Lwjh~1Yoiz-Kh_gGS%YO_RuwV0xdD|qLOgyYw zIbR-#&cRG3_i;sDMDdkaiT5S&p)^8G5S{%KaAi==7qv8Xc2Qzu))-|0Oy$+jRcF5k zS1b~cwUe_#!AHC^^QlNl>b42g*1{+dR#a#r zoI4?qfJ~$`i;XEJM~dwvBM04fFS0-eq1bcWdhp`o<%D+qk0%#U@XM8FPx(}@UP=-4 zes&tKiAs~Grx95mzQpxe)%@@u^7@bfZD zFMQ8bF5}c_{$yaoE7;5xr@Ytj=qOItNTzA@`8VY3`lB}7<*!1y4vA%9p@sIB`)cgv zN~+}cx>D(?j9^IDuV;6)y~QhclBam~IcILodXeJXSdor-B@g(E_jAy%e2}3{iwWXt z0sb*lUBbRUdi_*n$t&Dk7DsL?D4a6j~i> zjYld}fbtAL*m`YYv@FikwgHQF{H9dXK;W{}Z1hRl3?Rmq+JdD9j54z`u4HIWdOhuE z%>DfmVWJ-MO&dqi-ys(%@NT4kVo{Lm!DF&4o2HB}4L?`z!Qx68VAPiWl2_HNyl zItIfjZH(O#&h%ry;|=rY{L! z?=s{L-gOv(A`V}lnLl9Yl%swrhMqMBtYI$(=VyQc8V9(WftG+KX}86dSAa`j3}gt42qgs9+NbMI-1_{){=6Dx z^2#NeAp7X3N1Clcdu}?$^G_;sn%l-~^(&AjUboH~;bv8nmxZ?;->;pu<0uK=jypBl za&mxt--!a;<(_1IC0!4+3TDIFiv?&X#{gofCeO@Bffi8k_Hf0+$0LBIx%P5T0t3L- zneRB(11OvE?@e)mM=9$`6#Biky@pa1bRPSWU)}@AZ)~y0hIy$-cN}|MjXl!rW7Pzr zo7?m!ynqC>U^(r^s$Qj)XVDAK_e)G;6v_hx+6*>{zuvPCOhBB(3EgWYECoop0OB+WiD4Bu$#_Nwb+9xnqts_ zTNGNBmWA4YI#k+z&prOrCVrM`S=D5R08va`=+0}~rT#L&C{2354ayhD>K|z#j#S+| zjGH$Bui^117*6_YVql&85L-m?*I&TEVz&6(V;a0^0_Q8EN%SbAG?e8I;fEwTS$qp# z3?99KG-1R^k#rQDWZltvM@PeS`d9HixZOLi7uS32`5IUl24YGWJ1F|_&Huq)z5Cnp zh=vc#3bq|NFPbDo2W=;3zYv2f$82F74h#wUDGhov|s@_9}|>kn&v*XKX4`@@zw#t9!Hc*vr$U@~Kv}A_aRYlM2Dv zL@kG!d(t>_9qdn~I891kU7f7R*9IyaziR;p2GF;yBI`kA2z4M~XLhw1ug#x@SG`|_ z7pL9z*dP3z2t-5g+V^l6cWnY`7{lNSSFb-Ubc;jM>@#x)p15N~H=aF_XIVKR4zvm) zw!Jg>Hp?QgJ&|C-3bG#Mpq`tH zfI1MpiJs_uy`^vt*HmPJ`wtO-!mr0m*kH`1yL(q}X(_=xfb7IW$Bz2}9f0%02;>M- z#&;PP?E8gzQ!0}-(_&NhF1@#xhaEO-Npgc-^U5cB!FiS3<|9?y0Q-Pf$klx^hAL@O zo}~jik7J?UO+7P>F<}#Jdc-XQt<++qg)L5*?%1kRjV{jXLQ&YIvG#+n7fmugPANN4 zkgIQ5{+>=xE-Oa7@?3%PJt`*I^)X&PE=a+Eo3HL#S87>aXw@s>P7XtQZ+|w`HWjYk~Z>D z)+P8p-yRak05F2WA0HQc6F76T3^p5ao}FMr}c9;87SVqD6 zr4KV;p7r9=((XGo66_;OfmW5Tt8@`)+lpB9Pd-37B53If!b6j%c*gcLc;C2=xz0cl zU1Zd_k&^+lmxOW)lf8$Ikho$tu*Qos@7nDeYMuu()MQKu|$?*SIHMzt42+ePDuwIU*d8 zvZrM-u|Qe%;V2-5nez8`9}k9meo3%F9mA4cmlHx;ry8*v)?Y_%yt#XyLdmU9egq44 z`YcT_;14Aq^u1Em6ZEx$E7rxRzIkr({(TYr6>fmQsH>n>-p~j{PvXk-2wu#Qr(zaP z<5}Ybw*NPF_*)Q~$!Z?nDc>b{UX7j4uIt-oAR>Jg8#?}kz`gG!8rmgNtk(uL%|6Lm z!c2bJS~=^Uv$u3$-=l!7-jXDa|73oVQ$y7>gO{~22NY#u1ZqXs;bU6Xtd(Gis@|n> z=mCYS8LdxGFr}c(hGAt{zlhfEEObw{YW;h*I#L(Ebr}P3-+lTl(+HH7%SxWWJXMJZfRB)`D6>1or zw32hvu7Wj%>ik_T*`@Is4mXDVak)#o9=*KNPU6UitHcME^b# z6pPYxmdf{I)hz#J8@!>aWyu)($#3M@wIrnon;57JTU_@oRp&`lCT7DX@AIL?#4C?qi>~;p7u7JJt?UY<-)W?O0KJbO-oW%XXG#xA=+r%qK7=#EUz?XI)ctv_%DV%0a`(>3;t zTXhI*5f>e3!zX&1SdIG=wy6bp#q-8{t9Cz`brk#m9jcx^-(8!g^Er2u z0G}l0uGh&qifr<$)w((S8$7-hvUgWtli!@e zf@b_H=PMJ@6>@S)Q@#DB#)Q3F17}Zh_V(iQcl`b*+{wc_nkZQf+<`!CAjDD%cK+^i z)8U6(@dja$^#s=IB#B;rYjLVzZ;i_*hQCNo$Amt-h*8ijWndVLYV5;bo;r-;WdxelUMB{4+UX*CV@hqe4^XY`Lv;Q) zqSq&eW$smO_2RbypttLr?D9Kk7g#3aN4I$K1G~1i=6h<8wEQ`mPWk0|UJm4--|N2j z(9pWfF!3cLRAznz-74o?{lA1dW>CS_hNP> zrexz%QkUnOC#V5>H$8h$jYA-UAB*Q^%~F{p-v=bz(nTG>hRu2F*2@i-m<2|-;PniT z!>lVZVfrKyA6>QhlSG5vr31)%GjiK4N|a>--`8j?F71jCn8Qj>M3%lN86NGgMoAIZ znwr9$fc~%4EKm@C7v>5!cthbK#p0S+Wz8|!ErTQetZd}vWlg7XeL_+8& zVz|Fmih?GD|MM(h45b*5xH8+kAfW;E*@UA9lKTj3}R*MscwpqjFRB~ z&$IUL88-V8*#X{c!fF+jK+x!yw}(^KkVEwvpv)(u;0!8d-I{WS?a^}Ts4>l(F*l3o z8l@46zTM@(PtMN%IGv5W3Q+cgYuJp{7>nN)0qroUv{0D&PX|Nzm&Q|cap{cHRL};# zx()D{xP)`GHDy(28FWeWY?y(DoMTAfiS(VA6_Lug>~yP64}RYO}*Hw5KLJ0|Nd$(v`ORh6dgKoJ?21fTMRBSJ0*}#%^#!bq=}%+It7#_2!a;p z_7j1dreY{;hbdz~Unr$cJ%vW$p#clTX*W77u^19KN&HU>|N0s4Jtc*0@jcB>Vi)~* zKhFyGrOumXt#$2#u1b-}_G&B~!PJSd~9335p zJpcE4-m2^WO`&V391vAU>c&%8Z6qy+T$f9>=zp^PXc9VRT-xx#gzHBV9Y5w&yidL> z!CG^B;gAXjEl4gxG`J>1h+J&>CHT4;oPk9M8o3U1Y`PJ@W2p?U|BObNzz zf}+!g9alwY`5UpaP5R0oD$lxZb^AHKH{=0qK@2O*N8k$+KBNq=PF*7sEy6ZhTIr#*4`f-cy&*^z6uIZ3$?wAlP zV(@xLsVLj{47pEdkdM2gIrFpH1~(8`*r%Uzz`ik?dBZ%mGkk2g@mdlb$2EPLx%I`2 z7!6r?fPxzYA3|E0SB}0$fqbnB%zm$aJs^wNwkyll*vmuMhPvaUJp;P>i)Z9o^4{yO zpRRTvN_F#wHyo(I{BA9~l*TJxi6Ok?NbMk4 z?8H}pxL8V55`SBjm6;+vd&zTQq`EDLlgmq@=>+&cZl?9xmrkFI_d3rW?rDf#m$>zM z=q!c*Z+`=~)IqWEfP|q+Y(+>OB=zOKAotnP(?^LOeI1=7$p$AEQp5!zPhz(YASs>I zB~!Sk;~7t9A?T}z@@Nmi#*>>i=$G{uC{c2jw@qYh=j1vp>*u?McRIz{j^~q*o`hX- z%ga^8|Mh?HH{bTq>zeT@_HdUv&`z80IKH2O^|<(6xf{Su9q@_%983L#y~Q%{<@Wqe|Lnz3y4$(o zN{7CeLN-*_;r#f2CF3VY)x!)i1iW7>XJ%$3wt;W$b9xItc`$r6a1*+9*e>NDg$>Le z^kD=U_bCirmQ}Ona*iZ?^=J5e@@bx9`BGCA-&Q-LW5eF6=_@ zw>W$J&G*A19KzH?xMPtayB0RnkTeg^<*o;lUt8{k3j(r7^Nvc}={_Z|<-ko!@nm1RwSwz6#2EG8E@x^*iDIMN8r>t1-S zC7S=wf}*D56b}TH#P*#CuLb~OBIPN-uZodoXzFQgfP6_E1YFx5O(PHy`7vOHSAOm`0{mKccK&%HON?O44um%N4OPXCy832i-;SuJ>43IS; z3cx%J0ILk|DKmDCDR(hZ>oFBZ_C%gQ{gj z&+gp!HgI$REp#hzdl0DV!Zv@vfMfjg=rm5$`GQ;lu%ei~uTNIAzyQ*?0EL8~mwqPY z23*k&E7rE_#j#)b9QY{2_0$74!(3ZY!c$#Epvr>BUE#Ib7GoDcY^p<$m#^h8_Lk+# z0N~JIB-IR%W!m#r0l2CXBL7~NpAldXSxsi$w2jLJ>~w#O=%+fjR)7QSX!8I0^-Lpk zaZ$4d-s*bsSBr{9rM{pWe@##uE>|=G=aMXorKcU4( ztMRkto~%+d8}|ZVpw00i8*v4_QH{o}n05QAc5XT9#U|#tvG4`oc&zzf0_We~9AHN0 zFWYvb#<-pJ;u!;WJc%rp`d02NHnQ zuNB`&P0#KvxPXuST#z*XibSR9HZeY_Vt2;U1k+j@f?D6RV&*$7z z_w2;RAoDil0=4`^dKc_&UK1l89c&kel6C)`7=706b~qjqXTIVU|V8Imjx&Y`F29bfH{+4L5p?se!)4QUZupCnU|E+#{j>b<^_WHqE^5d zb%Xn)adRstlpzK{YfAu9n-P#S#RHT*1u%e~svgM{(9`VHJ_O1Q^gxlO_3mz0fMXu} zd-hS&ZifA$S)t^R%$`;DW4a7R(Q@gh3XL03)TtI!kao8uVb@)D>y|KOO&9r} zy4z{%eY;HZUC6Tc5|;hN?9HJ6Yn#~D@*PYoQ~moE`|kVvU)HW)4D)L+c&A_2muj`h zr5s+2&kwzN&7VLS${&A?G|XSdmbqR$t}3lHG`lTxB2GdVeSNYSnUGRfs-;G~{p9YV z4Q=Zbew#sIN3Qo$U-Z~yr=w6n?;=1MR~xVnWB%OrTuIJzKR;0hI``=RCS?xj0$-|= z$^f7)GhiJj30O!;gIT_en5Nk;0d(jpr;}xkH~fEq7l3M*_G5m?IaOUcI3QmuTc+JK zB{NK4J3BioX%1){i9iKM9=I}$gVHfQ*aoivtLGxXN=;qUJd*D^3XtIY(o7yx>zhJ> zdr9#A)*682Ztwl)OiRY>T%v7$xg@!_zhR`M5U{^s(>jff)r(P(+BM@@`0d1m>KGkd z)4>R8`<#7}%P|Wo3t>^5cR7EyvNp((=CQ&tahna5Ytg)jkGEMxJ31Q>JqIEy*RL-w zR16w^(Z2g@9CpG@PI zN~UXT%c@@8oW9k{Z#Xy>Kh>-74qR?relxGyBp8E`+u^%uTr501EG|2%JT9EDBO8Bp zpmadWEWVf8k4+=et~GxWbc~2is}i*6Z1(AFdp~y9@u<_R+5YUM4s!E%5(c~vX^FhA zcXO)SDF?>J5?DXMF4wRm5YSyd0nCmM`rR<6{5)H ziLYZqLEhQgdFMM$_{R`0f4O&PIXn#~(TduMi4BE~<;z<-#iYizQa2HCjjmV3)!);g z%S9q@8JV9A!QGGftECO4>j+hUHoqf8n;71$D1zZ_2mJnx)bn#})cac!xKL5$fISPf zH*hmhZaRtNivsaD5v%dpggS!$g`nHnC5}pkR>V}kOP){e?tb4k`uX))&a&%@B$?oG z3WV*wO0llyl324o@qTt4mB z&`n5`l!yq0m2Ms3FtO|M4`m2BHpy6KyG-Jk?t5R$z(zz~ToGUDG4S?*G04RWEvSV0 zO$IQMYo-dfL%>4GY-jR|@Np(su{)Oe^0kAT-g5H;qmu<6%5du4u7Y`i$= zkr$ymlq?jm2Zi9UupGlz@{{XrzK*A3o@9z0c`{>iThZ@nRf<#+c-!o?JR|eR_arhz z&lQ}})R-6WMv&wZlT6pRH(q!9E+nu$G9Tcz=8-9}%~0eo2czdTvO0R(4kSZ+aTyP&P4eQ`8RQlp6vsmCcOvG$29mtIuYsZm zbOdL41lWV4F*A%_aPB^=h2<`7G_g2A5LfK3JIgmOf1emioo-3Y@-vE`zM>)}eG>b` zz%rTHSYrG4dUsN2kGjkbrzeb6r3f4#m&WNkPTqtY%O#h=D@g;G%98Q{OZ`hhmAKEC z?$Q1LEKiHMe>9Z?1Zc&~@y>uKQwyLpl@1v4AR^zMF9F)iByiB^^TWf#&?`W!{Mian zKat7>zJJCCo>ZT`GtKUWdjrENyE?+=5Q`K;1dwhfzInebi?gY$_8`)_0&Hkmi62ZH z$?ugcbN>`1jp%qIW7uv7E+)8S3eNzd)w@bn>@X$FyHd zcHZ{P+3O@cnuNrc;m5EDbSI^Ob{1;-+^N70T^|lj*SzTdnq!>{gkFi-AHqgRax{Lmn~`%*c}mKe-c%^0Qn zP!&L@SRllN*oefx))RU7p=0egJjzd)VBjW^apmLvR|MlxO|B4T9-e4op_%wy9OQx z#q_$OSr6nleSLWI>P6`GEOKL%i8rtrlr^h@2-j21XLpaoQ!}cq?VYbb-$mI$VY+)m zEyb^tdqVNH(=cbT;-y9!jg7sZO6TgchjD>EC39BMF&XH#HoEcKeX0Dy9U+N6?y|hp z{r8;0{EUS4=QWz0D~;yV4-sW+r7!!`ub=|PN91?tqCONkEOy zW4Bt2dg(#^30#tzN|@XYfpF~{qf~qZEH-#tU0tIoh^x!W%INn$+t`p?xWFtlQ~`47 zAQ8~NFu*zH%LTaG*Oxxn1da#HBGp;bYClX;F<5Pm)um$RGL#PlD`#I+ zXvrcY2VHWbMKAB}?Mb+8(Z&f&!g=KVnq`CHeF9LFY8$DiFc|e3<+SFHbNjR9i}VVa zgw7A1uL~pcHP2Un-j)NU7h}r(BzFbbWvxc9y6Voj#B1_ju2(IWTN5)hgUeN6?q_#6 zFVfo#FkMKw_}$OLzK5L#^XK8j-G;EEd#co5m^cLxt;a;`^16%mze)euF61a;a9HvB zWvVo;s5|TwEiYu2zb?)z)Ikan#X&JBtc@q40N-G1G-oSm)mP|LAp1D=O^{W&AYis} zg>PpAe}beI`JG-Mb~svb(vfkiU6R%R(;vedBvvCKG#ag<#?`MM`iYqevgP&K9I-M* zo08n%GZ+Hs3Q^=aHltHU5k#)bv3nl$p?3ix+mW-070b9A>t=K$t5~1>njaFWMoGfP z^{!0G^QJaGSUk+k&baK&=RHwWMUDzD7OIs&K3Q>q9teb^aDqXcw^y6unQ zBEBgA?s95wm@t(4qlpu&TH{e-H#&Ya;(4~o@jJ99Ml;;u#iZFF2KI_Y z(X(F4)EZc8pJ%n=xlm$8(*Ca=A5%_Xv0T6gW4G>FNc-$ST|n!evYcg`yh0o1$c zl@{O({rHiAfx&TW00S^0#gxt9P3CqvK{2}q5{2-#z~RI~z=U22NGC|!G;;uSU@hQa z7*u|-J5FtZ_~uOkkZ{F5ow6~EvCUuRF&@IM_HSeuXmCB>%6?47ulou4Wh~d)`4pd) zb5h0F+#D|j#w|@uC>M!e|8o}u*z5y6u@4Vqpz6}_4daw6lK2^o*^aQ7 zqK3}m^W4%)fqd_xKM6)fcOtODNhzpN`5hYFucw6RLp6#t@1>d)JSs9DXf}i1#~rIw z>T0!r;mI}ll#9|t*U?Wg?Gn$qC1LDtG2Eay+@Gh{u87>F8VB!SSY!U5rHTkbNJ=>Y zlKvi(+Ja3RZL3)&W`;;B6ot;bWv0_qCEcMKx2#;Ek|CvbP4432Qr&Z?W@EY$O6rGWUtguk2|k|ykF`zZ@)3Xg_tvYsGK!Us9do1sg;{V3Hc|?S=1Z! zjB7Nl2g{aKLT2|zsSOhJetEDY&ts`p$Le6BtSaSW*k#AMC)MVKci>odk@WZI^yIju z(GnL8Y+DX^T`K0&ZvTLQ*Mhd?cf6Jc@-#}5sjQ?>dtY=B(G5!2^&P0Bs2}ZEB2sRR zjXFN?M%c`DTr#Q$Z&dwtwu%X_@+sTEk#GOEy3U^%|V08d5!Ef3Rf zY7*14&6{&*s%dZ6D1N4}^$N8M8XkqG^ZpX%e4WDuS+UAmVn_nrC(RvMT~MaUaSOYL zUPW_H&ADOzwwj(o`!_BS1qBe7ovwIFv^4yg?%MZWxA9YaRxmM>-yKb1Z4LiZX_6|i zvzm#UmyP8H)(m7l<$bNnxF~f|Q2H&1*2p67occN$p7GPup5Y_s7&as-^=8i>&J{u} z5s!0IL(?vW&@k(LKz2MwAa<2Wt`tan3!N~u<88(HDRpfn@ZEJXCSz+OL9|@2#)xn< zxmBoO75929uxIB6`B^lOpT&zs5J~#_`l5pY11p(_hle;e3sp;{Vr39w9sqZq!;$Fq zl4zq>{(;WL#TDJakrBM0o7X|^q&f`9U;8I3EphZ(>_hRicxD;^jQP2?$`GH|T_d(_ z*^`*E;JGp_rL&D*$!FzkRYA4-h>bw~F8380vA#};>bb6r!o3FS-vQElZzJPX0cAfv zUq>b!IM|M%iYS8o0F9pO&Nt;x_wQ?cG2HOf<>kA+xcEwb5OSNlfIz%qr>SCkTAYv zgc(H&$;TuuoVC(?Cz+t$0!i=t4x-P(v6& zYc*W+H~nSy*Kbxgr@RplUw5`dgRBkS?st8P=I?b$%E`@!&cw3{eLmvaQSmLw4B?3S8gJeqEau7NO@zefR^j=+D4Q#E&$ph7J#%&L zcI9W3q0&?b%Y~FkQRcUoXAU7~dC&^?gnb~DHj4}6~E-5&g8%J|TxJuZ_m$bFZd z?LgUQz{KD@NnoPC7U@TeVc&ORzr}2R%va#nNpCq~{@ZH}vfIo2i}~$H6cKn=vs%Tf z=}ER>Qcg~et$c{_a;(8fx5+W>A2`Hg;_@Brdiym89c73CojR|@JLu`_&WBUN`BIG^ z8iCw1FONmOu9j;y24KGFd!Fodq&ALs{|N!pN{%db<1||7XVGP{4OE=eJG6EcO*YIU zl;RlSeMdHmkdHj#tqXB)t9hAy-u6~>4YP{-MysF@`IsEZo4&cZ1i&utIhh(opO8B0 z>(|{bUS3|{AMaScpa3|!fhwEpBZzXg(2HWl+?N2MHS9UMPOly58URhj-G?xdS~ZwX z<}5q_GF2Y4^O3qH(9=S<3Eb~9t*#E3pA-O|vw()L%sH@GjK0kS3NF{HGI%j%hb4Uv zyJCU^dYY{a8R6z4h3cGMm;T?;OILSy@O}S{CO>GKQ0bcwVOdp>o#IgMkE%AYi{RSM ztRwN1Cc)rW5i#~QN7oqYk&^5YOu<8iajN{f7qQ>|69NH$Im5!Vnm=6%q39+uN}S7} zBdh;eZ$NTnfdFcIk=`WpWfk{1g5f$0PJaIp$H$QuA#Z#UwIqrQ2<7uD+*!LVx-%7XqCe>8H6JSDKC?~cuJ*q z`niNXOCO_X$fX+U%c=NKjt$z}?C_^QjXD=4UYb%+GrL*HC~ukt8?2Y}jl}rYC@^l;Vj#UB=eBU)W;9c3E+?!#PQg?mKEjz|` zrm}8qM;P*nWL22^dBf!EBBflxy+i7|ad1E5s~~sljD4QVsd0gN5HR>x;Lh9zxNt=pT;%fumly=MK55$58wg+xI z!zOX)y=R-qSu7DYnr+h7aNkaR4)@vdKM1N%f3jtuq9h3HOvNxcyd-$AV4PlyH=RdA zi=~vt9jIt5eDf~nu?HvH8So%iCuTFp-dY4)M`D0%1<>1F)CGWMsG;chuM*z9duIl4 z&Z86?td_p}uK>%5lJCg#xK~nwc!YXW+BT%e*)5xRZu_erN%rJTfwJSC#)S zWW@yn0>F_93K-)I^!C2k1#IA~l`!f3S9@Z}gkPFNsws^O5dbujjXWmpA>;br>A3CF za-4_HL+6YD+9;SAEcLY9{Pofve%BAyZSs7TQe^_Fd`wBDXt6rMI16S?4KHQh;Rac= z?M;$=@PG4pAYfARPjkL750ZFZDxOPy<2!Q|k1mno^h4T-K&_i1p-Rpp(5k0?LHvji zZIC?DgZ{iU*jp$`ViXZUqP@Av)=s`!B$wT5#=FP+H^Jpr=iC@>u%{~@-&Qj(l(&*0 z+;f@yX9w90nR;+7|1|CF8No4?6geE)@JB~LO#p^raHx^F$$Qo6dj=!Y7F-Uxf&x|-|Js8d9u z!)jsyseZm;U2;)43SC}^WQK*Jyq#We z^oI$^&-t**fBHda0n%ts(*8b^Ir3vSReg?r>ET*^&#(As>EIBio^gAN-0Xc5z2Frn zL-lZdTW^~BCyL?OiD6!D%Ev{5GsrY89>0nGm`|Qz2dv$mIdbsC1O*&MFaU*uW!&YP+YrePk6tM%JgzaVr2wD4*Nb7yELExX;XCn3t z6rRQ-U3Gim8j`R2sJYr#8m}2C<5ASIQzCgH77;C$s~9h8w%Y2d zp2233fNh`3Y9{pP{Fzb`B}=v!!sV|))+aPK`vl?)7}L#^YOoB{^hc5u0v3Y8-`;WA zQVOqgCRKq;{T3tRzl z^Bp1Ej*82H(hI1zTZK{@Tc+)6NPnz_i3J z(J&;ic<;v)sXQlcCSVa^Q4&nVPP6;{yzWa4I9QBjd($KS&&J-@I2*%k55sT6Y7Nr= zjNQKn;BuqK>*??DaD~;UT!SD7u}6_Hxp#RMl^m51$x{xHfU-=)^(HpO<)fJc>D zr`4A)y;?WC5AptpBq$O@vbv?yjJ}O!95N#qDjB;op!ESSW*k%cSMbH<9aL#3i7B^S z;@5l@Gh~rq&Gns2IreX<%`mzB=!HUKAWy|6@gl7IG}JJih)RvuKxd;Bz9X+8TY_sv z#`j%zuc!dqpc-=~pFgT;gT5&^P8`JGmiW!%`N_krg4C}wGWpV;FbY+bMS9ihEJ@98 zK@B$jifm2t0~WjcW5>5Yuk@jXdd<=r9AYV=->Ms(DXLVjFDBz{sKe6=<86#vf}Gjkp&492ViUKZ zh-awAPlF~4{g+i~RquG;`Zvi#4bFLSWwgS#arHa}t#~-T7FIafu%M9dj+1-33~glR zJt_J+(P+K(E2?kfaHa6RT79TNqDN-yK6@3d>B3#XCTns|Mca@4zIweNdYw~} zXq^%fP{mwk3D|7~x>)h~^V8?qA?`etC^|W#C-E#E;MsKeVnRJ?qK!7yFb-4hL1DD|Jn{*autX1Wz((XDzXHkkDh|~igi*C_i@+ph zdR5OZ7<--9*Q4W7kUTF%9u}S=-GE*e0A2%^8@;cmask)LBxS%iF=QVQA{;MvWY2&9 zCVlnl6|*?t0B8nu$N$k<2bRvQqaztPIXP@Rz=9)hdpJ>84iyPWP?H|h7|T~;Mf9n) zsp${1t~EPA2c$$e=mfXTlxeBy6cX#*xE~%ep8aQqyhQ6>e_s4R7L{S}Jb_6vEM)!% zEaf}roiunT@O5#5%}-!c?Ai}Y`49?=au4wEd>irbLs7V{>kyl0{&R%+th8FUZ|Dy3 z$PvnnpPKZi9I^Vzp3np2YV3e^jqlD$)T8?orQ zq>z`M;rk;&=GW}bPEyMkl%}SZAI$GW731#iV7-LRm>#ijj(8bv!B>mh+c!6GPk&eI z*Hdx2-&SM$$Mbz?nb6rx6|tC8(C1VT)C$(vO`&fg5D0kcTaQ}u-cq)f;gnB1w0nWU z(R5xCD0u0wbDFxCe;C86E{Rd6pW+~^eo4$jJ)g;s;qTg3FiSRU4nTAmuLzcX%U`X1 z-}>R>)De*)-%?NX{TIgo1?nGqEEIGU4A}^^WB4UNw11FNYJ|VNis>NV9 z8}vqZ1WvT3`QS?%JAw6A&*v*vBicIb)-W)0$=3S5Iqr7MAB!?y_g>7C{%V)EH_fPV z^E|Gg^p1V|5!dv^GNy6sUSjeyk>*=w?a1JJI8nDzj;W-4-n|7lT4{x)!!m!v)Z1?S zS3gL?clIvaK8e$EO z0Vz?*6lFd9bFUq)eW!W>e*N&-Kjw|aSV!2z5n(nUZ4aI0ZI#547-xG_cXhCurpu0= zk;k9UPJrv~Bt$F26)N=T^)Q@JL%NG3ev+tm##3jdJ})7;u!!3pe%-tLgQA`0W$oRn zssnG#lEE86c5QKO%6tz$u?SJ9l=ze*u6|I9M{v49a;`^HTj_fZFUPK-SBmxZ^?w5H z;r}bqePqyJnf_&`v%k6$=y><*EkyvafMXxUyddV=n`t`D8cV`(SX%`Rn$-R{N|a6P zH=*A1822}L_KuD-(w*@YjSUSA`S_&I3RJDv8fg=rHi#W8;GIJFFB-skIH&)f*+L5^k{>m4YsRm#77gFu7hn zU2KA)C-lo4Msh2GaAURUVqA=A96B*1e7BS)wGfT>11?)*$DV8Z>pO36$bxj-w?+tJ z(LGeCa1Qgy%=6bQel{5C3>wWIm1E-(svi4`Smx|zT`M0-ujR#mnOZPY;wU?)slOJR zGQ0-D=4S_LdA?M|75r~Jao^wOk-eBH{7dpKg`}-@L&;~=Ygu5pU#||>?g`JIJUwUy zm6$?W!&%LK>JO1^X}%apnKe(Gu65;EehorFtSJuL*;z+H;4sOs%p(Wy+TCNUM;|18 z0uWyk6DrW2NrVepp^!qiOI_Eqjd*RjLw$J~oDy%TDNeQ3dKlzOZ2)rrgVWqONi0|s!*S#J1@oN1U( zDw(01)R%wf#`Wjg61h?XruZI$I&ei;yrPu3C3gLMbEv(0up)#cmi(T;PG)#pT21+k zm zI8=TE=L}NaG7)Lmu7VXe2w}r|e)>nMXPzNj&IfBzBY-q$-U=MfUbaYysda-`RPzqW zC?-oHFhDzrNSoUo=YlBe0JE?AHXB`A)(CH-m>A;FQ{Lfp{07##{3<8M>1e^f8NrO` zNFowQHj*j6hP}WW)9v+iy8J{c2)jDVxqSPM>{kY_2kz4oNN4Etvu682bwTJzd{Ug$ zJq%-tImXyV8wtZx2)PlgU-v{r<_Ty#A|?eTh2Mpb^Z9;HLZinz_l`z@=@0R4Rj(A~ zT@$eX37OFpO(s-9$o2jpyolI%s7Z?Kv^Amc_{P57mnMgYI?dhvF1h0 z8D79hDCnkKswzdrk=v2?X~Ja`PMytW_%u&e8U#IkyIf*pHc1fI6{J2N-SVTQ~~Cre?->>8sBuchumnNa&Hi&is(??&_J(4oP+q&URoN9(Bs5hwW1~kd8~c0c!Jo=F6<@$IB1$h-RSbK7)ZVfQlc>Wm zlgEjxAmS?D@c4epWIzq5iCdTIF}w4f-1Z>fJttcZ#}q%$tO${SV;i$lBZzEF1j+giSmx4;E!MH>Te2PRPnkDNg=yqiD?eO5~5=g(&c5DiU;vQ*EEPUoZpxRU-*3oK;|3}6;Yg3Z=vhPrR{YW)j=NFa5h zjuy820h6>!VDTfu)5RzxKGU9xHsgEL{VUoci z{1JceFk`gR;}+KOSd5TD6yg-OZ?bG)9-P>{8t35J;`_b#6APv%@(wE`j?PC!odt^m z=rp`(&TOCMc4aUv_ld18NvmH(alzuFeT$ zn^>8L93_$@ujP_i^dFS-jGz5mfKM`l-2@w5pg}rn6?dBdT1mjA#=UR)suh_+X7LS< z-V0dJ3ae5@*$s26+WV6~HB60cx{J&38U7zxt;Rc0K=xfjP(iq!P~x}p*z__~SGVl~ znmUgkPKB_f9_Bg7B1EB5A~%)atH_Mxh!F418#A+q85LHWA)3XytB=W>Qeg_}?dBk< zvrjR!)V*VRFULigbGg<{!lU%Y(pp8JKxWl6ej1Tcn4XF@8Bn9P z&*!T=P2w&S7jv6PFOci+cWH6QcYgQ->bR+ixbNc*1%gF&2Hj?bVy_)McrCi|@X0ra z44^@8I?4B}PN)uiSrr9(opEYfvqjF!+jVe7Lh^4-`l)p_H1J4Is9L37DN+_B*vU4e zt{2=IWV%g0!)(VSm7j$fCsi%VrQV0laMPgOE{hCQ43o~Ix1x~$DX#oAxisOOe?m0B zHQVl@XT53IX8pWJ6#bhMDOSCY`z+mz(2|gZnKM5Ye0*y7kcBFwJTqi2#2~D>{D40> zU1-4MKpxSAR8ibuPl5>IwvXVPldicn%@6q|qn5m%|R;dPTAn0r(4^ z3R+OtucvEKrNs#3hmC?PMg*3d?3qd@cf>})_A1gTMpP6I8QfliL$QOBMfRdm)wDio zuG<@^O783YiyasE_e>6`NB;*%RdLFF(m2yQhD+*AI)jwbr2YB-PGc3wf}RI*-4qaaqDhxj)QYDA%1n_(1!aloAW{>#5R` zFp4bAIqrZYDj7jex!Fi0%ZIHUzA4PFbU|X5w>n-YS4yu+C>A1g2&I#M18H7rEY9`< z9&8Wvd?a5e<>dBi+>{Uj9IfS4EbivtffQ+h^8GU7&qW=u^ZfIrW*iPn_7M>Oo37V( z^n9(_I7SnQ>UkiWq-uGnfs$s#p2nIp8FsCE`sN5!e5~t;Lux362n#r8e!}`bj${8@ zTFN|w&lBT<&Rg>4gdf`wVwb{a#&u=NL$p~E3{=EO&v+y5M`fe>4EtU|b7M2z4%GfGj2CbDI}5 z`VaAd6A)K@V6QiqB4phroIN-0kD3oXMK$+SSK+6E@?kRmj^u>r{?B~dU3VopXGsP|=*LcYF^)Q=$&PnJzMhG9d{{ z-fFrJB!SYMbqJ=~--%25%zL@)&r5l!wcAS`%+$Oc#Q;Onmu}2{HNXS%_IK80&`tu# zxo+rHEaLOo(>wD1=-b$c1I2)>?bqz<4x@}TLY(r}k~T9oo6er80YL?m6}dKZH0BQr zJ-{zL5wHYTh-6e4KMJs*audP%hq684&4UDuRe2U_I^mdF^j;>h4m7E_vmEPZi=XJQ zk;;?&MPRBvFMvW{0XPaAi#^b0H`ywzV}3uHh_vdx(MnRJAI)oIVIqAm?udB~!w$O@ z>WVkqc~3TNp84Xq!|M4YF~u#*+WGzU#f%qz16I^rT!%)mdV&~SHH-T^0)s443o%3 zzhA${hGTdY^og@dkW99E2aOZ#e$<8~YMv@uQx8{nSG&Te*u5U874F3eMT^;Xy~Q*d zy^gTt;c;6`M$ni&>=>WdmT^NYAHpdZMWQ8hYnLqM2yvc4ew0ZV3rsoY*=~Q0#tvl) zh_{h2g6?I3wA=qrzo1cU*zJbOX~!5m+MHYvixk2nrta%FQ>BFkTi;~>H0l6=t`K%}DhEVf#;+RBO=uYs%Le z1mBr6EL!TF3Y-%rZ}C*avGc^GxEA^k-@R26jMD)}5H%}3K)HiJmt{6<%D+Tq`okXm`CLC=(}e(z9~TuE59P5 za$neNYw;4gy)l=6Chk%|(b-k==7#-bzTnt=I!r)ZNTR=q=9W6I6xdKx0OOv4e8^3hk zOJ_eA9x&=*<_EPZ4tWK4eUkLUz$?I?8VZQ6)@3T%?zIS>Gee|&ion*POd#S8B*vEPc-)u7a(UZS8IRVa#rJLbhdzr61C^X}u(M!4dhOaZ%FV=0Agq z%lmZ`@x*9J z!#IJ3JIIGHZ$BWU9@ZBxZ6>g1BiVY9gt*leUp;)@UpSgL$NXpxZrL zXu|UYCK`#b+|Wi!a`mol?^QwhLm>Rgr%dU?sF(YVNY5(9#L@vrpXbRR_yM|mNHs}t zdkn&M;U@(FG?7eaTN&y7DIPG*bHklut(&M;=+VA3S?HI%Qb@G|ZlVmy{zW1ZkdxW0 z`ft8PI=g&En)g+rC^?N~Ban$?bIp5w9V05tX027a+*;#<_=zR{FnFFNvkBKDw7HJ> z`?g9;!KWzM=7+#rMUMU3(Zi2G&+qEdb&)TC>-(G`;O%Ab&yq`ZLW1H2a0TguK8VQ3 z=VKv#d?l4*Q6%E8tjUovo z`4exHi=Qx(Zdjn zFuq5B?Q8ncScD8838N@h*vx06#NPnu{_8j09a%hlcXiUl?_8$iUS4#mAWkZZbcjkdj~2 zFtS4e*?79SYw+VI9Md%xy3!71z0^c@EFp7Sx0G9jt9)%590C*_A6?BhJaig_UbnIQ zy-P8RW@fIR?(y?6wB2QHW$@e#q0X;S!T+?w=_{7LrqMluFQ0rE2EV*Q8~u`7o()eT zK(2{#qO|g@V}(;c32{Zs0=NLO~<)!wDTnkMHpJ!}6{L_55`HUJoju_E1CQ_E|UK zFMufLZr<_3Cc%&km4LZdD6sihJoTNH6K1~a0_jjPlGA7og-+7<6@9jjT-UPQ{`e7> zvBC5IazK8g@zf6nBp$`Voem_c(;nX{3pkwS=)8^twc5beQ9>INA+SH;`1p$<1EG9D z9g+Jy9;6E!!q>x^7HcL}Q8LET!M0nn&{4?XIMM31j5>hF0&hAJg+On=d(1~wT+F+} zcsuB%&sK+J{=50}@qK*W+4==x7p&pC8@@ZnIXL|?5;}C7n7=PTb?jyipNLb+_b%VL zWxB9}GpF1o-H^++pYB?~9mbsb`u8%$Sm36x1VI+_<5M3Cf<6Wdl*Ao(^8q?1JBw91 z+kppXh;;IBUo+KODv*iZjm7O0+MS2yL_z-VM|c93nsSEQ6SCVzk8PQROz*nZ-#LK*HGqM+dq;!23R zatp13^%-><&PU7SO8)^^9E)=+DO?ped?@hNc(cd9_+UJho5M5oW{|OeAQBZiwv*bC zI0Z+cT6^~y&YH}`GVct)aX-hyGHKZ3q-iHxFXc{?4Z5$gKXa_)2o!Aic-Wk$;x;ZV zwR5JJL};iIMV(rNV@UsM**;uDPPe*nI!x`ybzHq!4Dh$h9 zjdM2+hI)lPn3?UaeGNxWS=o8h$nC4&cl6CPSs9Nxv(bv#eMy47W#9RV*NPi$&?TjU zk&DPV=P0L(WgMDZ2#sSo)(w;1=+Mkg3AFXdOFJdWedy+By!%uV{bQF5wytVv)q zwek5iLYIiy-~@dIcDk5~f#68V@lH%Yg>=oTcRN*SlClHo= zn#cmTF-rOSp5?vi2?c9(c=^?SssRrEFQ=k&;vqMppZzwGB~35suKGcXD_MaIYci09 zamiRbIo!R)(-v-{qn|0uaByGUtH{t&F?yrnwdW0NZX`{VeSMgaLX~07C2Y4w&kN?}gh;j;G!I;C?9Mi1UE+=Tg&)n$}9(^TIZdzYmZ8Em2BJ zQ8NnyqbvLO)MuqX-lwx(2=mE1wE+KY^(JfAJahrK_Lv&aPe@u4z5LbjiP`BZvw4z8_~4FZTcO_LX5#wq3g-A_x*nN@I`$(#;SO zN|#8EfOLa&DXp|9osxodcS?vb)X*>>DGfsn46rYJ-sgRu@7w$Lo*x6p!Fb=}b*+1? zbH#O@bW`l}>zF7T95#lc#Tu0BuD)G2?)?#^-;G zzVz^0zq-c-ifMWRtLA?h{jnkA8eR27OUn60o|$4dL2a-1aW#WY%|(A#r()0V7*_|@QtXP5V2b|xR@`5jNZg2VV zuVOnlzed@~H&39uP~qF@rz@hVBfML0H<08ev`-RbaNxB<2Ux$4?Wz+{_A+tHO3i77 zsP9$-=|MFAQD88vv24=cpLAZ@41?wOl`^;s{U``$Ed(pQVV=PK_t$Z4HMqDU73QWo zo)q)%wfDiEVJqB)6&9r=l-tVK2{J@Ro283^v>k4^s~+P}6rQJ3>yrlnWd`YcK@yrDhN!gQ*$ zsHu{0RB@RuD}3Ad(wlUDL&@&P!0+%M0tRYZkoCO2fn$Ee!7~Gh^y-rBMJNE18#~W- zph(7+Wf}*UyKTHN-xa5hVQOm7>d4<;EEWYD;`_S#zU@-JY3s)u!V=L%$t0svmF3L- z_ICgIFTd=%$h2_!`l=bf@Ir2Ag|S96Z4tS{=PPlIS~(`Osea)XX0f;{8ca5N z13%2CN!-SzE)YG6f1=kv7wAJk0DI=4v!?Hv$oz-uxc-jy<5!g5KPt@}mkjOHQ`9GX zjy6bF^wnO?S^c(xo}9+`19Jbl0Cm;X##!Lj^v>v2>9^w77uiQC-%osIVa9*2g1H{Y z(_pCYeN$G}c+}5hjkF!c-YBjgHh&xbe=fs*OlaQXH<@DZRXDd4@43yp`L?isQA*P? z`A4oP^=(=sE_}@~4%)hp37w%s*V)|9lyXOuq@K%kms=G4G4V zlQB~W3~kir!lPsh-qp?vsWmq-Xm@}meTdDS=gtO?L35# zXb`?qXz{#uXhr1e4>U$|dW9J}t7dmY=| zTOv+B2^2jX)ljdyqPMGUfk#1#mwfX@t*cHeLFfyGp~yG zlu~75p^-7^ip_n+5!IJMrP3f;t=~LU>EB60oD$TY(ifwQwu+0YxX*5zfh}l52CfG9 zO(oxP(UHpKGt<8G|2&&lw|nckIt$L|!@JSwM&2vq_zQ>QFUKd9H0)Lzv{oHIn_T*c z+V1CXT=s@{>fU$EboIXy3Y;U^$JN> zY)nq4zw`PWyJ?ur(>!uhT&FC#1q8GatMhFE>UDq`d>P-~J-~Za1QCNphn~mYC?f>S z}nu+^TsyNu*ASk-Qw+*^CV_%=>|D*5;?_VsB-f$Aqm0G-2H1V zaF3Om74IB9>J2IE{=#kma=DP{eTJV>TkLz>@KM5kO?fb6UpdK6)9rt`A;C9mssau;lCCIZodBP2-xYl}VzKod=20_TE#4O_ z$6Ji^zV-tu6Z>yjO;YEx;T~!pm*u?Y0KKbh(Iq(*9Khh-5VPhjsBA19(lERC_}qKT zZ(y=`mEwHFVuel#!EGU1bWY=-)G=Wiu`ukdf}fbfVb`CGMKFor@M3YEd^x`4rQu8S z8Id@Q=2iApBPox&TA#mOt$_cT%?(huwk|HmL*p3f&L+A~m#5kFs(S>Q_wZ4G_F8kt zw_&~!IS?yH>+zHout!<7csCez+^k!S6j@3%Pm4*vM6WviV9AqTCT}^BF=%fBcE5bZ zJe&elCCca53rmW-n|FgaL$C5FU@$4a(L?7N>F10(zJus$AVwrn-T!L(xvTn6(5`lfO3!y0>yKg`Fr_hV~=WS;zMY%J*qA zT{NAHNAgZn{HKr9S8Ug>e0>eaICggk(Px+^$JiI=7~q%7i)$C>SLX-DK48I&tK@6Q#cA-APZ<5@O@ z8Mmy~BTE(5{Dgg8^wSMr9^}rjDf~P(IZ#m$x$Lsm9Nc`cXv*#CC_TpSS{-dYP!qOJ zne@vd3BvRhEZw?T6h#$%vq0VJ*{JKOFwETHwdqnx-w=^7(}jIh$3iaNKsjZj288Yr{B!eClWqbX zhY=-#L);o&-;=5FW=6cZi=!Ha<;)P;k5u-JW#Y6ROEI42vw#;lb^mjTw@fpjIqvhv z#3qoBgx=DpoS&c<`|(a|gAAzi9Y0RQ+1&B#Ho)HIt5fQMG}9@y9_K)f z)ii5C{}g|u&!U8Br#GPk4!%bFeW&)zucd+%pVAF9+QieC@^5b)wVk)Pyz}9&%RlZT zldIco=0}*LGB3ZPWPH{X9GlRC(L0Bt3dloBgQ&*>W$I*W9@jr zyq2b{OFln$=?9*fx;@y6h}H>nzW-10BnbPC}1v10d6y!;;0=fV4%TsuD>3Qxo%R zhy{)h*;o3wm-8O<19)lmuOK()r9&hYZ3GVFj=RqW<5MkNxm1|<3J-|b)!zEz2bqMu zG;T8tJ3c#JNa{%t481Rq=_Rn<)HlP={zP~nzQ75X=TaUE0;=?7uq(}theh_b-dCx8 z#^FV#@2S@4*%q@KugYv!$Y z35qXy=M6zs^m5*#r4o_ns37*s+)uBo{sjxSrfU?QKkF(3c;(&_SpBBWxh6eU707ud zwWzylHK3?3edq)i;>?wT;0?Ut}+Jt zuKXbNExcyd``@E4OgGOBlP-)BNevrZ%_lbNU;ij`4Vh`Nx^%MetwiZumc<^j+g^^4 znb`WuA>$_?aI_siM=tW7lJBG)hBi|Sxm+x&f6}a6NRE<`)z!=B+;9k?)ZE9T==)?+ z3E(LK8}pe2Xm}#$gZ-@3mR`<%@70vYP5-Vo2<~+fZMjlR~A9H>SLQk^&rMw2N``7EO>lH(z))|(*dD2KV!=@)9AgwUM z%2}xre=EtBZ(}0G(rOxAY*svsPW)G-zWT?;;Zm25GRW^sA)qpPDj}Zy(vtB?iP)@R z@%hg#1K(5+W%Fw6$aANXG{ja!_vUiodn8wj+k_m7<>#X*QonV-0_3-0$0G zgu>uxW4=|`Cc(eN#jb8xin+ai3|xQQWUT;Izm@L>mVW9}?x5)pHPh%M8iTOS<6#ny zusI>qYUWJ8CbM`mF6oXhx$qB)N@gGvGeI4zP9Gtus^zZ+4A|)cZHCqpn_2Ryt4A0$NXShz+r=z zsqY-xUmNOMr(6>*xf=6|9;cy z#aZ#6V$5a7oR5T@ny>9Ozj7*J3@N$mnZb9h-VR>J!N``^&St?O%Vw3qu*791Bf^Mb z?Aj;)G!=GWC`H(GLtcuhaxm7QdB%%>=iZ#XK*O!TKzF~@pNX@RiFG_XKRH5Sb4?zH ztVc!AsOYU}qV%=t8b<-w`wMw049b&~d<)tow4%qsa+%objL|GbN=y(5x~YQ)P_{XNXASwPZgvif1+ME|q6w5+D>Fhy~# z@812$&53s(wOAjhNZJd=%$u-68~DqYe~|7}Jxk^gYy3bi-F#nWK8+Fomr2!2hc~Mn z&6oE%q3r?r4LwOb*iIfEZJedzjS8O}Jo}$(7Kb;^6{l`AM^F)wdSF_P*>sYE&i1dI+5$$gdd*bqF^AD4ok#FPJiB>lkI&efBuXnbn zJ$T*o>DB-R!rG&;Nv+(;)JKRF>*jsuY8y0)()ZWHyI-spyX4ck9_Y8eTMbAS2>A3> z4O3`;IiTxz9eSccp!n(2S3Tc!(6rC5D@O_C)H^@8Ya;9>IWS>DO-&NWYdLcN)-8rW zA}Jj3wjDfB;t=h}8!!QbCRr4_Bt-B(&a*X1S>i0>6*KX%I6Oo%r7S^G;cg1AE=IG> zg*}YBJbUR{m)pi~c4y=JqKn zegQ4~TJvlS*83%=`0&*3{nvEi_L@I;|MO;io+3n@uk?^Wd9L1*)b{kik+M=>*yrZh zIZ`0JT_sg&cglr+>-11M!mOWYbuUXU0ph`}FJYuj+G-$TPOwv>RAR^xw9F9_RHrXT zI4=wF4HsH$mfLNye)VQgk@=_?N~pegnCqUU0wu_zjDl&=PL>Pd&F{a=QHqbOXWFlO zb5A(@daYF*F$diUo6HB*Yvaq-Bj^A^)jCI$kj&+K(jmW2a}=Jac9$7#i{icKb5_|7RCursK48&kJ2NeOIOKx?tS}Az^3)cv~S30UV?xy_l?x7 zhIfnRw=-63haE(nG>pZ4eN)_h1x8|W?RfWS>m`pDf9Rwb{&ij65FR<#EzPrn;Zh82 zheKHR{pBBy;4{@UW!=J5w-)r8>J>0%r1h$Q!OEb8164x%D+&$?E`49VQ#Til)N9>s z_Di92e*T%Qg`Bd|9(LT*<$)Z^koJ1W@b{ienX*-NWehsM_q-VPxKQm^VlB0T_*o7) zrLC;$BNUN0Rv@UlfKxK^{qz?dGq3Y8#ln+kF!W_abj|}aTpYA!4G!(frmW4*v#Z*M z)_KAx1-lQmPIagbc!N&|H>{23m?AfL+^`Qb#|89XJ4>y1|9UaX$@ky8<47({lb1)e zbVqeZlCnv77oKM6OW3~dPsNKN=QN%!&!K*qO570n-MDPpwA#Dq+Ux#A;>g#%X*4kD ztrzSIp_4YjF>tHz;jobTle8xK(V)+fsn-j}?{mzrZKn#>*+a1TIn%_#woO_jyM89t z>De!EH$M@+(-;z9nN~I(ho65dOOaORPCA>B5ykP4oCTrks?O8kvrrSJvv9M%t zHH2<{c@b0FJ^nGqj(X0#eDzFS#)7H|e@9gvvB!g>#$$%{G4{ua;xskIa=#+xnqHB( zq6M3y#LO1Oz0V8p`{e$l{xnukwBo zo%MZJA4aE(?<~N)E(F_Jrb~s7TdmQ!AD*&au2nYUZgFc|N9O56r^iTCE{2oTh3BOd z6h=%Q2(Zi8ykIgG)#-AMjmwVY+8iI8eL;A(@3}q2CCW8AZqHp9mpiu6K((Gs{E}{O z)NTCkFYiX>4Pvcyu}p$ml6IGW9&{<3^}B`bHKVgThsOwk;DK69)4_P?{NR}Fgs5Nh z>@~ZN8ieG#U*BUoYc+}rT{)o2ZT#?{D&+2+E~M0KwY~Aim+uK8dvYlvP9zQ5MO}sV zm6ER-TnGEpfs}3S_aE_#Ci0^PBl2 zx%hX#_?{7X+a5$V`bE)or@j;5Oo(DkMM!o%))_tD?M~ndMJ|j(J8E?KC>+KIb4Kzs zh$6a8_YN#A#{I5QPgXfS0`z|*_Sh>$VPyA%i2M=p=7e;zG3BNUJym#j(DxP#ocJ)^ zxrHk&dA0)TXBZDEf;x6%#V-=(0t&MDg4T&m5W)ELGJT(e%+o~WuMb2CEiWo>n-*wy zEYOJDX*9D{cWop6d)W@qnLj8g8Dkj+t>D5x3Rco}$6pTU3->_VDN^9;$@<^y;Tsz$ zxuWLef|AG)JD-Xs(Y!baUtI!(Z}Of=Y{4aU!tUnJf{{YkVcpY-g7MLt!SU7t@18%h zCTG{R-DzxQ2^x3viaQ;hU0i1RPf!5&w&Jr-TsjkUJIH5vIjO#Lf^*DkIau4*Fnazu zAUP(UlObqPV)e^c4N2yM)3LYjPCfRJx<$HQJYyN@NuDbC`)Mz>&Q5#}+p|g@tMz@~ z9obO>PvY%b^FXTBNn$oySdQd$B>O;QQwF0uLM!ZNJ@Xxa1a0ANQL!apwP8yq>;zE%WUQjob|1vm@#yrSS7)et*rch->d#@go)a^p-b{1RMUVHqwR zaO_*U1w#1jZmNj(65^_#IzDO6KJ4e;49C@HJ$>AYG&q{JbK!DQ>l?Q=M~5)9ufV`x zHm6xY7kd4XHxYnh_m$IH`!~iHaA7Gz3(FeUO|8eCZePbDqAP^^3xb7j=W(-J+b3uL zzpo$n&HfxmgkE;98Q_$a)XrSaDQfL;1?#k!<=c zVux3YjA&3GYF0k?OT*1_ab8i?wr=h+iGRFcO==FCa(O9g%liBUFh47})~n;Zi}S7E zj6!~^&K-u>-ax@Vv!AV~MW$UdMDxqTX?t&$@>bD*j)HmW%Fjm-c#>gXLgg zO)i&BBE}D2pt)l)n`8knl4H4KP2hg@_JWerZ>LX9K9(bO0S|}a#Pr0WIm(4yd^57u z)xIqsU}yS;JmrP4szS7R7n1Ss{kC{F%6rYY5}gH)_Io4n8oMYG8S>Mrhg!A}ox^aP zKc-Pt+x#dEozq~AQpsJVQ_{^JQ@a>hUqZi!e@C-azU5GQjOEg5%4oYgQyG@6{1h)% zH)4Y-F1hMPxek?lhwIPV!4|fDWXwA-zFVpP@NAEQM*S`f4Id}O)RWO7AU?VI{ zNcV0V>J!1=be5r0b3B;ggS~F2KrEJPdO%quy)n#R$-eVI93%n^1L$YOj*s01-28nK zQvn%83i^B4191R?JEqeKb6B4FYfi^=bnHNVg0PRbGkqJ5=tuG6e_mX8eY-U0_=w>W zqDkW+CR$O*5eLB5&CK+<@qjn=;X36G(H~Q$TF8Z+>nrm|>hXI37yc`ir5pvc^Y+6G z8HI;W=cMNJAxcw~^l5cYNMtyzPB?}ITHNy!E<$~`^4TiK?p`5|R9mkjoloFechnui z^|Y@bGuW88o-JaI79?#h0)Um$b+Z-9Pk$g(da=`Thl$no?3T~zpwG`^ z?*`xVUD+LR>d{9eFCgX4OyN#InY4h^a|uWNCPODsg9S=?w;$`*60wk6o_hjC5buRVV&CCI=FcSpBl>E+Fkm z;bYq;VeZN7{;5-b-=z9mPZ}p@&n!re&)a2Ynw+Vyw`bZu?>;eH`S4iCDdSoEz{@)a zR3W>*7Y959IB_Kgc;cT~Gu>q%ulIK)ysxrGX99ou#0rluzY1M;MQwB{aU$JGIg9HB zWM>;Q{XgF0F_(4Px1Yh$e$YNxIx<~LS&S2>ih`IJ(&qzOr&BAZP1cz(Na>3k@wj_pkfQZC9^AC^Y_ zRJ_rJjdiRL+v^LRSo;Bkw8V!vwlKrRuEOH)?Dc+uIuC*u=i`c~t7(Y!qJ(qRGmckb z;u^DoXUZuz0IHB+W`-;x8K^}KX}kze1U!|3QV$2$JEI^gdp887_>G;_y_On5>_8hHnQBD^i9PXfDi|pz4XF^|eEGKCc3OS)#a43? zp?ZT7)%Nu>?y!1CjoG|Wb|G;A4ro_gP*~|U9jWm$gcCfk5$j6HyMj&h)Ne0rRus1f zm6Kezg4@{j{8dkmI!aoC?W?TlOInV_8IN~DV$Y5i6?+&ug_^wta6;Ps5;6u_UKGZm zo5joA=#;l-vyP)I+}9x2HEHl1dTvxC`V1G0C?Wh zIM+D=S{BCO!JzJBSIuZupd(2X_233##C@wz8yg#mh=|^1N{6(MkB=L@^<3(Sp?(^v zQKZWkPAf(USXmvGfO<_=JkP}-@pgYQJt~Y;hI>)f zX2Y;ak{05QlLqmAdz+Tl0-nWm_pSdo(MgS_XT(k7CEiGydE`<~0ZVv9k z2dbfDt;;Yh>;=8m)tKSW#X139?>lrDVcs9uxyJevSQyfUMO%@Ko~S9sER#Lb{Xnj zHiBC&PVpQ+kg)gzPHUje8IniJ_9DY^vFk~_!@_m!SKtWrt4ilp<tI$Avsdh`a)I99>^kG72)J8+#$auxR;sWHt?|X^6;guK_1$DZ)d7{)rV*CjwT1YRJ_rSRfrhG+qQx zxTax)g!a>9ZH1RXVx;S%xo@*(drJ)I(}?Bx+*$Rz$Q@@!axv??RteNU4r>+uDh$F? z%d|5PwKsF)*_?c0FHVN$y(g-Kx>b02oQI3x-yEdv$7gtDf<5b{Rva;VE>a`G{AyiZ z0!c=%N5;8gSI$4`5+_xFM(&D}o`1~7oBoQ4E$Pkr!e2})nOC+jt?4Q$6TIuVUb+79 zw`7|LzDpFlW<7~~=lfXt1tyiRwwk3{c#IkbNe2?^TRrlM>xd|+!pf$OL91R?Es4mT z=@7wg*PZKM;pL?J?jA!`FH$35w73{7RI0IE*BhJmNiI%# zWP4LH7ujxP)Y|Udr?7?AlVqD!j0?$MmN%H-#hCs0NLnvPNM}6Els-RA2+7_p!aXBQ z5vQS3Nx9LYy|MrDQHcMe=aTU}_J+~dzx!l(<;WYY;qIT2p>tw0i}Xyi2JHpCmT>%p z=*1Ju&B`KXm9qJzaQ4=Q9#9Lv!D(x2lMe+vW`(<3K<=y!Y9r{pa=X}|AsDpa@v{}; zInc*ES%eUDG-g?y^J*91Vb}6mzpFS^WgPGXgC}QkDJE4U&4aF(J5iDOMe}u~nXd;c@WP2EE55i(VZ5cNGH6yU6zg^0XDV5I zVb@>EHP5yp#C;Y%d=n}UP(6vhXiI7jX1V5~yqrF#@{PaAGgCR4U;f&*_(m^=>h4RM z1QC@WY^dKQ=1jc{o+J0Y$Sw6Xp-% z`Pp@Gq*gzXjISLXZWQ3z((YWB{}wvJWSiM+?C=n}&@R|)&I#(e4&@Qfc!K zR}wJmFuMv^`Z6{Yx?4?BA3()F6>8yGo58x?`<&I`9e%|;3vV;f$HCXaFqS(uHQe#1 zKX5*)=Y6C9UOehkiPfU)%ZrT?oXKWP5Ugd78a*5@w+-O;8f7b1zAj&`3*Fw6gLqps z9<5yf*>!xuNAj`!?9`4tb#0_UeV-)HFfdC&94A;PK4A}KJPe9D-I^|h>>R+H_B&5+ zaFR0I2$K38hWV^2Libolr|89L!yTn(KuGOU6wCEzy zb$B5TNK5LRmL-_c&)W>H#IP!DChun3OqM5z`v?P3`tJs|fc!EX;NI5YhMBu`baaX- zf_E%!pf@%q${ql=BQBtk6;209ldhix>R6gZuOD9Ryb;SH$@4-TFG06T zqOi%Xj?va5JnmVgRh^7EsJv>QjjW6G`mG<%ZY@D{e(mQKh?kVGyD6~HIB0FW@+qxa zdcr0BE}2X?qHLr(!Tz=_f=jnlKo_oXaXLo+G93}f`4<%Ug9kwQ82d)Gb(AO;F8w)Vdj4oZ6pYhWLXBj~&q zUDRRA9{sU8V`*=Gwp91A>g-!K&C1kxY@DD^ENdpP2Lw+7q-LHu(6Ufsan>~mfMOn2 zPqWL0WTQgdJSR=|O+W*Pk*VBUUwMzawWa{_OYwY@M{#Y03K;jY7b{=>TqTR_&%}U8 zOo+_q(|7Al4IT^kZ`+@dMQ+aAngzgLlH0uZ!zUFS$Axw*0vmptiRgeNpsV;D3=jr_ zB&VB-acd|G8<&K+bsFd()1>>Jve-@i_HF`!tkQ0lQm6cNri({1(AUNT12ajm~%DWm_3PvqusQvu> zitpulqxMCWl6Y@9ZX;TvfKazYR#)!JGULHPl*71=F?xSIP0UMzIaTI2fJf!B)HsS6*K^y{8MlVT}4 zxQ*3gbqUwb6A6*4nV%IxWqY8UNU^?r?$(7cwlk|y}p00M35D*XH zw|zll)_3y;z4&KLOs$$RJoAB9-Q}k1tD8KJhG3vn9F5`8)FjD~E*8?czrR-&q#xB0 z6RMFXfg8tcIh`Ab%gjWCE#ehP)txHT3;KU$AiXtGvAndR&twR3aN41b2CY5`+_O`E z>bd6B`q}*|)+Ig4dtm4YEfaQs03Un&^dtKxjr?%?yD4%%v@1NEqw$d|4^Hr^=Hh;hWq=e&me(Ew>s7)Af6TcnsV@pU$OLMub zYi_?i1=1su0ziwC*Lv(WT1zH`J+ZQlq>b`}UAUtxXV@;`PFoOeW z+-|wNz|#g+NLZv>)eiJS;m!PZGd*Xw2nd3QfLw!Gos(%ejR@J<$=DiVXZQK6M&ELnbcF*hZ&n4R0#aN14*t)fR5k@-U zFAz^l3O|)2Pls44FNn3*M^u6v(f|*)rNxGVu%C@Imst`PZJ&nJA z+eiP4)1zqOvNOENYMSh5cJ~d?Gk0-VUYz6h!;nubfaA9*sKB?JyZ4s|9ppyEtjGP` zg&DmA(JW2Qd|c&Rz|A zoeFcgACCeEPRv z?(Tv?%9cV~0Y@@MhE;y+FBF7b)&u+EIgtoygYMvE`b zzn*L?^~OqW&(w9$1lX>5yHf)GYk44eRiaWk&?q{VqY%F`xVur(5{W{tngFS}lf7;_ zmZie3>A|u%%$CmSX{w_oSbDk{iG1#S5w2=?FW|9%({-LI?7}+qw-09RfiOaSR#6(n zExGxpW?GPC&;ek&QAG1ZlOq1>J1*<@W?{bitbqlLkGh`FZ-X4W;E-lqAaC&0u6R_% zfW{%{PZo6b)){bi>}UhCvoUNWV)OTZ;y3*CMg(mT3nup9fBkP`1RE=yP;;R@{q(p4 zzUx4dD&}-U0~=pm^2)DCxJCbj>3Ab#(d)?nMzwv^<%hQ`{aU+DT7xCQj+yfoj-x(E{OB-qsXGVX<-wQ) zMwZ6eu}N1nL+Hptg-TsOHVOw>a) z*OM~ABymRF5)W=cZZ}I(o z_s2M{L{g>Yo$hh6+SxkK&$yeEa635V>;BEjiRL$7*DVxXe5rVnq~fTnA5*DfzF$R) z-sRj&XBlv$(7@uVVK=y`UMPdtjL^Vp4#E9eD%b=`@u|yvHf~43XHPq~IZY1A%I^T| zCWN}Kccve5#s+};fBc<}-(ohmr}kGnnj+Y%tcjhm}=47dzG zL0n$QrMlF`+N6nkNO=4BaDid|Xg~+OIFu#lAOk9{T)t>`@#Z(bhaClG=FrDF`AB+& zxW}2%%s~df6Kd0XUw`@I^iO|%50eDdSS^bxpa|T^k?EXel6TDsz?k{#>)r|mt}JVX zQgy*k9=k>P0Bzn<&qJ%my)LSJjXZ*o553{{c%FD3SWwV_6fyf%n}4Zv#8=!o%KE8c zk72&S{PVAawxB#Ea0N$0HKY9$yG{p?c~kX+8=`05y?N4szr+Yt zxn$9pHz*(p2RT<5lbmN1UDPj9wss5EFtSisCq5MsleRBsBgB)}>^9Ah)hD*Quf#({ zvGC@fzZB#QLwb(eF_Wv}U6NWdkM5}vqAw1$aYS6Hv1@E(gQi?Ey0WIdYF*BSU3zlf zvMSAB@oJ1cu60Cxz)g<<`C40zu8Ux1d(+$_g?aQIF};g!jjTGGe(vo#8vbypQWA8| z`yKm5Ax-l1axk3xOfZQki=mAs8245w_K zy*18h&sX*nQ)ddm(;X&=TF#w4rk1x)4Ovb+HOq7{mC$K+J@I2bQh411B zzr18~OM;8J@3u~uer_+N&UXRqqKv1A3YMP*M~*vlVy}OEy5(h)y43LIcRLLK#A9_J zb#KxSGe=)0tUi%xDPZaKIh$-_nCGE^JP~k3sg|CdQ(LNA~4}v zi%PR@*taRJQEhW54(BT2c?mwYq0qidZlRnmF1D#&vUdU66{tUUmhYXNOs2|bnJ8_6 zQV0v!%t~wVHcrTJ`Q)OB_$B32Xo!%!&=6C8busd76+#>f(TalWD?LVu%oh;9Anz^6 z3&3aklJ_CqqAv@d$r_G5IiR#~0WJBT!&P4-%6@Uari(yq`EMh@sDR>vRDJ< zW+9MN@l?OKX^Q7>5_@kP4%+y$%_!P|6U9s~CX@K~euw{N?weJTT$N_vN-B)Z@nJ+u zFm$?aB>Xg+7D|r3J(`fHXeO8ir8-nyB!5ZhVY?9hNF&cNqmyEAi`zzU>Tn}U)R4L{ z+krMB6}LFQ2u%Z+)k{vk{)ilQmxJn13cq#m5+UwfnqsC3IcRZmMG06F!?SZ&dq)S$*}2 z9!QNel^-nG<-TD&`>QKrM_H?nN%oc4T_*L)<7 z%Y92KHxP9F^)8FMnR^s$-y`*4j)<(6sQpqos)Ei`xnE+(FcM$Cy%`$WL{U+}Y$Y(Q z^uYWAJta6XFy6n37Rz@QU|^|DoQ)>>ypH7`Xfyk*3(SjIdCzSe$@N2594=&JUq!RGvtogdd`a%;L z?PEcgpo~xps-2)1z_M0QUs&I6T;^a=qgP`$D)|{g&TaNH6dV!3x}^m$v_-h2;h|d< z82A(0KLe?k@9?^5`+KVdLmp#>oBn)wUT#yynZ)#$d0ujeysX�vy_akDEj8+)FV zn3yMIF7#{SALKHhuB>tSU_t0tBvG#f&UWC({uAP#QawQ8`J$u0P`k|j+%wPy5!}hF zm&J%)hXirBB9(_$bdB`_ICv?R^OgzWJ_SSUIM;@kqQdW{n zSWn-1UOVmh{re}YlRJnAsj*F=Xfb=k*AX-w@i72L_?aOd$Pr{Kq|?49bwM(wy(}VO zRT|`vOIVvI>-%gR;B{5ON=M{be~aWgyhO2a1O@-vu$z@=HfT<{o_|>fgA~F)=xLWY zy%p8tINKTOj-oY^$daW$&r=Q(z-mzEWJvd;e&~}1WQjhJTt46g}1|CDlWcP z3P*QHNIDlrfav`2T#MgVg7Q3-^juDhe1|KQqWOgd40GLToA;p5K-IA1)UBhUqC!yf z(R#d?!F(Xa9eu*()?O7P20tt@Xy6AW1%K1NxJ)405E&WM(FVXmZU$#aFpx+yslnU< z#m*rhlC&<-$1ou{UIOg~x@0WZ`Y?2;#8z7p9x)+l9C#A0itH# zX0KVdfL3n@A;du&p;h?e-NDv$d=%&@Gf?oDDT`;GvtM(IVkP`W_|0T*v^FFWoGPcUzMikO>6s0WX&+Yk)QWs7iQCH_cZi~(LBXa+dXuTid@y={m zDgygiJl6wmvmYcPup6*OR5Z^eTaR8Ty%Ra}+rS@04e9O8&GM$q%)J`^y^y03pH2;{ zSFUcW1i7#u9V0wy)7dsNRq=V3WHBZ3cW&_72Nx;C8N*tvi3ZEDF02(9iLqge6>eL) z(N-mVp0~hUZRii6b#+Y}%g=>LIptbr278dIZ4}FBFVyq+_&7wCupUee1es%EV#bL3 zc#_`Exn`%HuT@AEWbvC~3(LW>P8ar8s+Htv?)#2fkfd~gEQg4a@&l+883U0XEM|?Wy0R-HW%?im`Z;Nk(S}ya>LBpba1}HYv+xdQJ*c`-3Tf8&6tob} zE)L!c&)ry3*>W4v>dRc_BJK|~KYpsDs3KBmI(T=`Zc4n8Se?Z>KcgsVw4SV~dEwW` zHS(8;)7ytJ6Q^I-A-Mmf^fyB2`rzN*d)gwNCX4$F8V$Z`6tLp;jHFWe?|ex;bpi?S zZAp#OpG6QHiCi?tJ2Pz~o#zd1Wez_`qQ?<_ge>VqUyQ$hpx+oT=>{EyOub5rJMs~f ze9R8L8WIxMdQya(GeiJg8qj<7myMuY=!&44C^ZVetyf>wB|uEs%r)M7_7qF`t2H~H zDR;)|C<daqMW9t94(ImiH|OG!|mA-Z?(_mk{GHwg}{ z0+OEn<-R-A)ZfzafX?Pu`wpwIZ@2cr*+PkqMW_9xXVD)YDKM75*#Bdl-V7H)%XBd_ zs6G}@ty0d=QAi` z)7WPO`Hc>*_`eC`UrX7O!cHZQKDFk(oR^*n8^)~tC8occE)@zwhAOt^ zw(OO*Iyf}gPoci7T)Gq?Fei}$oZ4H}yfK{$GX`N{$|Vrn)`oNNUKH!U2hEiGKrOn_ zuiUhcjG%@xAQz|{%BWk;)N=KJ732b{ZZj=@bb+AW8QEQHC@+sg!xr-Tcn4vBJ9S@N z9&`_hm_X?=w8CLQs)?9t&gar7UxLNA)Aipq*Ihrg^hOS+vsQOU8Ezah1`=t zIXJ&`J%P(a)8g}y67!61v$uzCd`B_x^0LG81VuB;pS?ji>G{M$401lp0obi3<&7BN z^b753fokPUTMbC!yuWGKq=Ituwk@@QVU+4boYXhS`9Ul$@+KCRT8IuoQ5RQoKgr7% zM$`UScwc~+kZAB{R;@1sZ3WKkScwtS;20_XYhVbX1K>dGRixm0)p{-3u*q|8kE+TF zj@u8?dP|^S+}PCgThxP=lJdv+^4U%c_OsVTOMhlj7exImTo^7bo^PW~alhIRtrt#B z3Fc&9D;CBHbN!`qFi=A<7Lrsr)@tQtab_~*tJM3F4)*mT_UYKFJu1ib3a9)J^EKj5 z)a)648&H9CK=hS{PoLhvafz&Qk#_tHcMVyhzwKz}% z;wN_IVui~^&Z&1l$j@(m+|}(>xmtkxC}fDJK+YF*-lVdR0MlXmd#be5X9~=Ex1D2M zOYPR59=fI?es=o)pnc7_IPaOm?2#eQoWRR!*MNPtW1UN z9H<%-e8R3Nc{cKHTNAva=ta@RjAErrGJ|SV`)Uj%%!e7V$7+}BaBpTH|9EanSh9)% zaw6?fnAP2IkQ2N8@L^=g_Y&{?mD}qen5PcBTauuTV;6hia4ZixeST=Ldq++|Vc5^@ zP!Cj#7J0nZwx*M>&YZU?9e8vthDkbir#=wdv9dm#7vm#A2Eu%x5^*zdcRONUH}AcB z_b%%tf4Kd3n?6MgvmM>7USP=A;ZN5S^O0Om2@{4uxbU=C(IeINTxrP;3l($LkK07A z=%0GKHA64>Wz0PGyb8VY`cOXMwmV_h9P~m!oQcf!SIac?w4(BR%08X^p2(Y}HvLJ6 zUbFz@&+%h^TmQo2^+MWjfAY1t$j{vtf^QvTb2PglpER*P>l9e{l&o??ZS-F7x=05) z**kbvXlWI7>JJ}DNxfr*!^RxXSuPLUgKXQEj4L|^4;Rc7FD3IX`NOp%(==l|hyOfr zyg%u^H$#NU`v7x7YCZN*MlXFOtu?t1|16Ltdc(#eK*Z&P@$i~pI=^CN!TB`gv3B#f zf+M=*&}f+6-pqO@-5sl^Dm%O`d#Q#KMaGvIHG@q`)iPi@is(6;@8~?g^d7 zJ|T5I!8RkvVbZ(DZ3uEIS0+G@^)xw*X&~6qY@C(ftK^*D=_}x=hdPh%Jl}YsYL6UD zN%FWzE z+({8n=z*tr075V*DdEBye5PJnQk1!3$zxiIlZH+ zfQh*Uzomn7(05l36FBErzlB<9Za?p+D2^|5$rtEi!BR)}Lmo{e;XD4O_9f^G)rJHB6fXzdv0Uxjnw5L4* zKQjh?!onC_b3*Ckx+x=_Aj8L8f>8}e5>DLo5dx)%loRHuf%VDseuRqNIlGfQTjf?-boSUs<6d&OJ-PkOUnd+3tBvj|;`3uG7M28iFM|x<1dB2$ zNc7A!!nsO=FfZ&X9J*u5KSfJ!6wK8?Ycj4SSh(UqOyd%EPn=Ap!5tB^%BWP1( zxCMs~{s}MLB2CECnMP zb-5n0-&J-~Nt#SBEn5-~tsLUuUqiRetgxy(cXc zca<7`-Y1eMqSeW;vOH-%wW8saB5pf5Alffr-sXkRZHO`&1!%Ady`@#3Q~o1+_fqdj ztNJ7{84PEgh;W%UUo8lw=UkLiepr>VG&7-Gs8-6mFyl^EHJR&s?DP{C=N@;~5B$f= z1O(HD*_f|nI%JQ)*?}+yZIN;q zI8K}wPVST?wsO9o_j#`}`14IWx(o%ndUQiIX*x7ETw%ZSK_By`Dc+mII{rF=+idwEwl6tCIyv&3P$9LPxI9(zoQ{#PerR-FXqLdNSFS@ zf>$%b5j?q@-k24yxE;(+Z@l`Qz`!PjL8os zoEOkn_bN5{SKGc%MoB?mcE7^@D%*FZ@tx(9lCBI*Y^*!RE3jY5KoruAUPsp3pn}Xg z+#c4DgRZ`Wo&3((-&B*jhc`axMHu#bW3~y}8xpg5rXC1(mG!oPP*5AM&*kA`Q4~|n zUC#mt?P0XXHsB;r=Q(a0C;?O}e{2eCkWVP!piqqBooQwLE6Ko=aAC6hZqxvMn1*)sj zJ=FVUxQF|>pUljdA>c%)bVhwRVP5Iuj)mtjS()ve33wo|zuQjTGR_{HxK<}IB)ye_ zwMsaSQGvOp9ETSaiwWNyD_J+|=RFWbmq+XnqdSi?I+5W&V~#U^NvACaO&J_n63(bw z{Q`C-*hQ+W%GI9w9_Mov%HmB&%z~%e!0BFWH%#`qAljn;>%^bnKvtN`{+gilscV?_ zm#A_J!w!a@(qcGXKIbzVcJ@UEy-W;7F02d{aQ2iaY&d+@{~6U9Cx!FpUJ^L}A;yWlR{CW5o{b-dYqCsz%U~SfNoO>lpv_=Ij7;l!*4L7#O z1}b8CuB`kYO$DSxg3=+Ai!@k{0^My9KM^drR>B#(+j%yw&UZ`6=}3pU6_mwBMqEu} zMym~C!N}h0VCqAZ3c$qgLg+i)|5Mfkhi;uGZjWq#lM>A<^rSy2%pH1L$dKyB53v>@?=bsO`+jcJoZn|2vS~#2PX>lc#tPLkX4btt!T!SFy!n4f%?Gr3$!4)RM`R$6J zy-(?W4i&j9Xp?@mwR%b<+?N%m6uP`n-Ccu!^;v87ZivEKe|ny$w`I19wZJ{axjWZK zdkl}#FU_$ZN;mk9{e*nM8EDnjG+G8rW|5H@D`e-1{TE3#lXce(bL7-v76OfCDY*SoJ1IKw4& zKd~8&zx(pc$to}~*mZ5fP9$ctZls%0^(RyMPbRK72=*l5=1J7QU;5lRU?ky>aOyZd zLFUx)>TjaL53Tkk9r&vwHWO~{`~R5WUF%%jae}s-tVf>g&zzKOc5nap z5Db)i4aL;<^*CWXk?AmUtCDiZ^9JEeBai)^Acw1mbp@$xL&6zN9}GLE1*#c;G9`28 z$v32LVM*U|E-JXLH>G3b0=lXTF+R=)nPA%c>ZueAxee>6eYn4rtRKVXyy}im(R#LNG-Xd_1MH$p$bQT7(ZiI z>G8=?U~nVOPXafB#qX`X=94w!BNa5#+NU{+h*68yt6v<>NNbin&U};meUsnfIusRx zUJ2b_vt3po#oGKgR3_slB@miYR5T{z^wr7EuM?2Q*x3tne>Qy>-6L~oPm!meZzr|J z=4m+Le;X2D6WsLmRNqjO7clL11|E!|29ngBV6I} z(Vr6!{La}OGjfSndI^f4x8iS4Cs=6J*$wIhyL$}WxBRNl?F(27aNqfDS$*0wQ)i5w zOC5$O`-#HD$8ZuK;ga8Rv`H2cIS@>?gQ!`;O#$II4Y^q}U*+hA1+^UPxHXGJ`z62R zdiTTSSJPJERDZ|N{QD%;X{U<-?8^zZf^fz+b4vMza$MK+!9mQ{)07&fl6BFBO3B^I z&jBfW(<>(d-R{Kmiaoi=_wAJZ7Y(?1GdW<)*NdoOIeI* z=1w=Wa&Aa$Dr9oydbeH2MwRAVTDWZ~6S^ zv^JB~{*s;%Nc(a0g5Cf9bS|WBL#vecP_RJ(lW=!M;W4mkn-In>#PHEa#fr{-rG9CF z3`$HM%GI=Y9mvdl+oq0VEK`dpyXm-O2g~$@nNafw2?-bou5?cPWZDtMReLx8Hwd}* z_y2Kih1MLW?1c8YO`D^h^%l4`Xd#7Q_6p-!=s;z;ISX2Tp@^YQl#+L#lpxwqV=bVM zDJ*LSubuZ#14=cdD017=o=;3xn$LvS%%CsDi^->zGk^RTdecfZ&CH!$E|J@@=U>Wo zYVOVWnHOyMq1J;^UP$e8tj+g(aQXi|D5Wnq5Q|=0L18mw(Ez#BqZYg$w~trXYy@Y8 zX&Gd~q#oke4(w{DO$E2PZvlhr@Z!j7&^VX=l#H)3Wl^7?l>>dL=;o0>tF()paSC#l z61~^^L0n!-Y)!$Yo0hECUisT*DqNBsm}DsD|6YsDXgYrRFQRf+UjFT%+F+Na>EpYa+u`Kc1euGT@y z-FU5r#dxJVUZY5t6R$^UH(D6qIKD&(O6qDny!pCYcS^NdX63pUmd_76sF7x2MZBM& z5s$pG;vUrXn9&BS1!d1?>U)eGCOz@;!fJ=QA=zIR6##}Iu|m_+XTn95?)qt@>vBbX z8Ynq|qkXTSv=ZHvbem056X{%2-w@25)J!SQ(`F?y2Gvs>AUCRA0&o7W{Q^9Lmw-f| z1UOiSJF|&GPRWrVLT&*9(bu~kSOAICvtD86JNQVBOd^H zYQ6;Q56Y5v-2!3qaF8inv=c`(B9}#@Kn_qzL_`i$NqMs84%x|SG=Cx}Eth?gvvE*} z3^$!G<+OoKFWtu_HbTE;ZG?}C#zT6c(5u@dhdjtUO*4~Cn>g5?*gMn(-z|*N?5gS0 z-jfA>mMbKz7dp>*$6?s`@{NOdzg8WO=xI#o0(^qMN^5@T-MwS5P=hg}Eejk1U1mSKE zH|#d`vodY5Mn==yhOK2F<}K@72hdI556l6AYX1=EJYMw{lgD9CDc(KFBwQ;tt{duq zW(g8(`W4TK`S|!;1#rhcpo4b?kg;^=HkkyNvZ>jcu8EGc!`jVAvRaDEZ!F}zG!1I@ zs@C4*4fUrh${uIT&W9CIfBdX+YIpuyjP?d~7+LLqUBv(N-F6_X6a<+$v~sV6^ouNA znStO=Yk^=asO+K!ly`4DCZ*;QNOQm2I9+M4HBzY4^TzyZ#12UIWhS1>^Be;6^5DL1 z@ms)F$dU;qu>-OCx!_|bdb#UlO~`)nUyXhqBj1duqv(X?!9TT@EYd3tbLmawb;n1$ z!x4)S+@GxgK;bTd^2^CL27RLIBGdUAEZQZ;w4nS!oVtUM#q+un!zzb;34rS5LCA`Y ztmdk7JWp2|I|YlnAs^ThQtYD+i0rE|__wM{-%B}dS z4By3ftLQ%4$?3K9fPRF#gqyzqljutrX50d{$ixH0M>_U(-~ zKmkySg2p>5J$Z>xNCsMj#_q)`-VP^7xu!Et%Y6BH;jx@WD2aX$dlhDX^4=AkFDZV4 z{f-*n}3Kaqwsz`d#p)16F7@#}Ko(jZdeV3wyS$j8($}I^&CNR{or0!Bu zQc??79iDB;=sSO&;XvTA7ICK3(fsS559)Iq0ep40mw(`C=j0;}y)lm#LhAWLIOK4x z+pUL@)Uz-?x|G_~H)|`Wm%JAb1^88NrLcaTKHQ+8PIdJX!e^&$P0>}Dd&a$o^Y=_0 ze;`xv5iKnup$tyG>)w1QMrhYvQMY z@gs2!Vo$-CW@E$%8A(E28v!%#|1<}X;tw&bagJh?^nc3Z1q`}~>-@RJNoY{R8;l)^Mg%W3;^0;Io~{OoBj+bog#BdOSYmAczs4I+#v)<)b{52g=1zD zE3<%YLA)Tg!Ew3wwjptT2NHlE^$2dkQ)h&NC=efb%^ym8iTTjM=Z^m`krI1(v z0rsQGZ73%uf}mFthOQbsI*>c)(l0ZA#WWI+>Q57=2B**m$=#&r1^_}kJX8(7Af?qq z&mWLTf**rUw^%s3Q%0NVpz)j8HGodGJMxKc+&jD5Fp(w#et)GLB+?!vX z&uu8UsNLYT$!4KRtXEi42u=aAK(-h54xWfP25`pkfOGK@{L8aA*Eg)%)4*ueTJ@)j z2K(w0)X2xNsqC(%xMa(Qld(lQqyr9+iJve)o@l9x5<*Tl&D=mSt2Q5C7<5s0n9pKFRuf>iD7E;?%(Xu6U~QDzGs8v-`Lq%d6lv7*%%@YIGXp;X{;;o~byuoW&QeT*ltrkaf!{-gJ}5$b6H= z%Xe$JZq?fA_j&1@UVbScYP;!I2u(p^_?GV$1$lfgVA4fd)~QQ>365m`5(yUlKP|Tr zM`)vRdebBz^_?@0PL!f6(tIgQx;&^y^^+=h)Rb3IR%X|c73smY^veywqI~{J7x?+- zFQ!6C26k6wBD%sL&1`sh*dh?wCp`36D4kMOgjvH@zkqH4 zP!!D{nl{ov!C}7y@`q2W@B1o9Uir%SFh< z1y!;BlmHAL8n%mD{EkAe#xBmjxLX?_@}8QTto`B}Yw}Z{2E5=W6lCw44*_=PY2G{_ zp0^$%AULCX8UU_u7ul{H9xO2tr{~14%Ar91$5@`=aQ!Utc6m>%dZ>=ot7}D+Kg~L} zW>^Zz;~~oG(r#G(XQyS~To4&D*b${chVh>9b0v!8og)Ox4gMcWOd>6WpE-Rgy7@c9 zW0btJ{P5F<+*X*7C_}MJyC;WkP>hY1G*vzmaIT4pEQ)<+af%HGGCBSyCk^RdvvTGdjefhGxq74%~uy? z;D#RGjt+}g8ar_*4s{DIC3~twnv*$I?MLKXe`2cr&6FYsj-`H2^{lP@6`0U|spA*? ztPcUIBd{0jci>f$g&F*UK_H%66BIgy+QgTf@tEl!w&Jz*B}MfmhQS}ElRjpj=TUWE6Yn`P3pXQd=L<^2X zU*36sQDNoeWQIj*!lS>!{AXhz@-@snRWDN^)jh~vJk&# z)dM)ki|f}s`X|Y%p?J*Q+b4Hg9`UP6qO>orJGWpPFu;?*lc*wTcw5O=Zw;Z3Tp-7E zc)@!Q)74d8{F>}yDqKy!54mS4+GSQ4AX49Af18R<)9;CJJEs0sQNOhO_kxV1FVLKg z0MUFVrBBj2$Da`Ajb|&yzjtmg>bM(5uaA6Jt^WY8HHSl0Maqq2{ZlG?#`fbj7K!pY;A>d@u z@(8)iUC9A6gykhR1_u@KB%rRwY$Q9Nvj%`ak6th&4#rEIm-ILRLRmOSGfUM1mo4_r zWDLL|wg7+s25<*MGXa`$5tIkuxv!mn`_(kd9&iS_e_k~ULfx42-{hnTrZ$pR-*yD> zAgSZ6@2O#L`y_jL5Sp!1faLfCsC1vldyVaQkqdBM-HyTEO~k=XflK2FL7F+gQ^{bu zUZ=5s%Zau23e)%2g8Mj{3O_|=j|-?-`mu2|;5Qv=a}AA=hgmpb`BiKsJz}L%BN)l} znk$blZsh%x+sJ-JH2%(dwnb+=a;on}$&~pl=NROk{VOX99k|ZI_;VCLsokl*>IOTm z)ASnt?fCXdybsA^1U37ghT|o(DUJfOqqZW`hAxnE)V-2o62~D)e!E1q1vB*Y&Rnt$O8_a+H+^4RhVdTi{v~_sDG!pj1CrN%PzGzu5z-3`>2&Z~@t| zl=Spy=h^y&P-@fWcs)~MIJiw+8vy$)7JqoYwJfLE7su%jZssLQdtF$|lxYcz!<{!y zc{J8#o~Gz+J`qLSH5hTzRj1Y9Qt?xB+1AMskdAwUk|nH!#>HWN*-?d3{WILaBzk^J z+nu7C;Wd9!ZS`YzU@1P2-Msrt(vekL2G2%@HeC>Ij&#doBl~Z0ZMeInkdLrQ zgSzM6M#R6VSVj6B!bNgqJ?Km1kO@7E&hTnVq5~!Yxb-P6ZC7-xbn>zp>-F{;vxm(_ z+-e;GOVaUcJ-v~vzcm|gzl)TV88mnbCt zBJYJXTW}+=2n4PSc?&O4%5 zFAR2~Rxw-2=QU&csbe$EVER8#q_9aa{=mNlB=1R#@qfg4SVv9*9f zaJe4TN@0C+3}(~b z=J9&h zhbkSX$H3r|L~V>vT4A`KSL^O}G(*GJB4-JmLY+s_!@P&t-{<+^eZK>PjcAO7Tn=AX zUO(FMb*3{8nw1mzY7j(|5hOrY8tG3xwqP1JGZb26E?_@*E_(AeyEkHr#l-p;ReK=@ zj;na%;*q@;Z{pTvHW0t-R46aCd#l>!g~FjJgImj825as}TlvTy61X=slap&R;C!KO z>E)$kQ6*mclf2y^$)y14zy}^K4QqyfXa^~)Hgw}un|$CWBGt}w(V2y#_n(g%LXT{z zjKQwauC&u=JlXH@1yzLZ-o6$7Mj3`)r6X3pBN|CgH}tXn)%egVn3r%srv2?@u`yCm3#xP6 zesOMmD?T+wuK~pQ+<{_v0MVi5K`sy^NEG+sx+V1Dve}0_av=dZ<5VZ9-RXAwFMvxB z{}Osgld-@e0v*5V?jt7#|fMThK*30)3%3r?c9xG0t=BZ2WSX=1is_o@>wScTV zc*x-HN4ck7olyy%-b*7s1SrYTdJz@rlqvJ^QtEuB?5%;wILz)b zKyj)^^j3@z(vBdtnUJyV6vkhIT@rxL!?`l% zv5NJtzjAzRQ;`Y$8c-Pn`e?5rNL!yCdHCK~#8f_<%i2WBqeIC_O>k44|BRaEKl#>me|3Cu{k6_Ad@T zetzo`rgWWSi~3W=%s)RU)jo-K@=T@xN@|axs>s5{=bcE2$pOG~$^m`^heq}j)eydl zyo$qn_|O1Js0@d0@x+aD!57NdV>KdWnzclqvAA>OCEi0i3D2nC_My>059X89ciYY~ z>#m4Wh#(3Ak}wpg#;iwV0@-4H9V4g9Vki^r#z{f)1tS(y>`1y+l1`em*LIK=rF`Mm zYjKAK)%nM>&E>IEfj2x+Ys5ij3ND|UV#wx5^!f%0OLr(#wc(6$S)1YC3lRAjgHG*J z*CEt2ro{!$&xLbSxoy`#+EM*Y{O;355!JCK)5KjDR?X_bB-!!p=JMBI z19c~Gb2GS*CoG8!tqZJu;V<@#;ykCEZ`5INQT+My?@ZTCrA$8ofv!$Ox0lICzJ{zk zSyF6Gq&D8w0>S>21?^c29V<ioiTzd+k>k|iyMZZ8w^EIX3|9(on2$JWlNxSg z1TzJl?giX6am59X1|1#E((2dPuvnU2nY`zbuZ1}HChk`G*P|DoU)97?pwnOvGf^w) zh1EIYi>rWL;Sy>1^rzWdMV8G$u8~0g_m3v}bUbE7P;IXgmZtpuOr<}yVVs@Ea7m-u_U3)o}sSlCbc!*r@8f{ND9;_1rDuw|O?( zg*-PQu>H%WU3Ka|L#rXUSM#8>?avmPlL6>;*FG1y_g|SQ#@%8mo3Q>|T-zQ}ktjzY z%Rg2wi>nV1atN;1yK_hO6E%oOAzU`hG^P*3a`1tUv-T4y!8#z_y-V^K%g4PDu5+3n zSe;4$s12Oq)*=op68iNh*WZJOZ+mMZkRvvsBm6z77g4j1PSqJlJ1Itd7Ds$yDuXS^ z=JCGAS*zNdAm}Pa+e@wnS6yRLNqvsaOl)uj0_4m zY(q-eVMTLfR{pRwveogesJ<*0R~@YN-Ln*Fnl0F!_1V;_wQ9Z`c-&6#B!@BDOYZ&6 zmZ}Q@7F!B2*|^NP3S9`fS+G9=#(0+;MCM4GI-_TK6qVR#8vjOAsUq6lKT7{`2Wq!S zafrdA4F#_tqv;*3$E5RO*WMO}c6zQ&Uqn(I(S1f9_~#!JdzlF{ZL%b6bdtfKDlOFi z%~@WRC?U0(SIN5Z16gEDp5DWV%t?M&TRuhUQXDz-iF3hlCR-rn#Y~8Au)+899bI{2 z(yfjkmAJVb+xr;;7Q-UKrA29S;EhbP{;9-P>*Pgy2yyu(7i#!B9Q0Jw8!;DQWrBXc zUb|en)@=wswiLK@wTbP)+vB|-NrT=mW{FvvjP2>K{#`=ROUoWub!>g72A2QJ<|d*( zxP^FriqIF6>Hw#cto+4X^)4NzQ5aE@1MM8?`GsP+H|7)b74tEK`^&$R|5owy{a4it zM)MuadRfzQwlYP!IoYXnnE9w$T*372q4;s8PD3sa+16|ftroPUc1`+G;mNMedkZLqO;e9bz zdDSXCkTk)kPEL%_<%IJ>=f~GXWQ!>Vq|dh|o49GjI{YLDI%pY^+a@af#49uOup~KK z8YKTMEx+{eB_15j{o5$3LaD{kfx~kp4&?Mzoo|9C)Mq>^R=Om&T64T#KOfF^7|yAO zPJLl1Krkqw?h>l~9W-!Q&{SwO`f7}n=rJUq8qR^5V%OP)zmYF>5C1eLB=<QB(rE+|gU$;fg}nETtQzH_t3}sc_+6)9_)l{^$4!GctkW@_A#0uel}=iu)hvD?FUC^-Y%6`|D)#lDEqR zQa(i+Nn1KH=ArO8`+r*eLmh&Mo)s)7~(J|62A7I9FH>m$?ylGnyBfIWKPxLy> z^tGdNBTb$_5qaB1X%(XB?+sNQuLn*ps2B<;FC;H_>nRVA4EEzN;caB))rgVnYEZE& zEM^S~>Dy(s&htwPCYwJhCLM95Q^MZ@N~3Eb%jP46Mk)ucEi=~oO_q|~xd|QZdg-s( zO&Q;R{Q927uD>{xr+>q}eg`SWQ;|3U5g zWlg%+`a-D}LA3Va*qcP^;{5!`z9kqb7k*ec&7k!1psJ&r#O}U51Ww(E-CQO zTpEwePIw@+A%>OqArFqt-flfit-0a>Gk)Vto%RkKGt4zx(>~{>Yj$Mf3s)9uRntv! zf+Xy3%1iSxg7Io@8-N>dKp;fqHj32qn(Ut*tyg@#Ht_0{$n9A;tc?ae#Umh6C!{HR z0>k^jz!Q$3<_^;Ux;d=>cstQcnNQwb*E@f7qq#&@wB_}E1zIf?O-WH3+#NvZE%b;6 zDcFk7>CV;u`N3=tMe{Z~Lu5lOn;vmapbsWTZoSYQ8jHy-jd?TdcBtP!(aOaLuiS=Sk$u`4D4TI>QcmJJ^Y%L=pnRPz) zW?QN8Vyzopm3Ff`9*o}nDxt`D2vRyT6OemFv3*wa__%n z8TKh&hpIdu%k!}C+@9OX4|Dmu&sdKW^3ZL|=pL)a;0^RJRp8nCr1hdU-wR{)p zN7u(R-Yw^g?GzxKGvi)7aSBxanzR5{bF$=c4mxgRj&D@eg{x>vf079j9Qb=sJyB6} zWX&lf4VSG&N5d9(QkdEj+2>jz=?vL6gFCYUdy7AP%#D$UO0EL`+ZGfQbtQDYG-2nT zU*darkZR%ao+2J5Aaj2_ADOHwgjUMOd?Xx2#Vt!Ojgl9j!9AxHGl*I$VfVw1MCqx0 zd$vIhlH$(0?fFDk3RGgvzuh_@oJ0WV!APBJ=4ZO%($&^}>EKNz5>w`XNA!-v*aqv& z9^$;n_nvi;GF+yZQiJzad({Q*cvp8ciM88*UkzAmi5@0C2<=sRADtWnBiK35W|VpR z`bD~$J{Jyk>05S4I!y*MFM=s)CNk&GX%8U7=bjfPSX|N$V&CQa3Jw0SAty39Rx_mC zEpd}39j5RKQ_fPv-RLS3X(vE}4~72I^4mneeXyn@$ag@I{GKaf+5bB@)PO-#&Io;eNcHL&T8 zt0hZUp`3_J0wDRw@)N{MM`{YqXV3HH8Vo!h4nQV15?{Pmr0)!QY(&?4!(OQDzAWt8 zWSK-UQ~v-4Wc@j|{{43U{0@WxU*h9pTDi)PAD>P5rwFtxI}DjXSPL!MkPUS~3coDU z9OAuE8@lm)lba{kLHs`N_Qf6A(d}0kJkmr^IUt|eiLyc)m}%~Y(*Nxu{)b9UdGY2BW_$wS&A(;yKDNp9>qqN!*U{9aYN%)P-|cwkVRF@_xb)O0YQ)jS0i2bh zYogU^YHye5+3K3AcA^9K!w?XlpskC*cjNp_V>ehp_txkI)!=l5%rEIkDp5CH$^96) z=3cc1U54O@r9WLV6qWsl+ zc|H2Uua#sgCj39beP~kHhbPG2`2fy7x?gtMV{!gYb$Z=ZNJji$gEc(!lj&ytiS<54 ztY)JSqaj{n?%5pm==PNdg>l{Yt+ysUTD9zL)xKt(4mi8Ejgmg=$qlZ2Ii_$QMH)b4 z{O`8OUbmuFtgW{Dbv@M5?qpbd)Jlo)%QWjM0|EW&ay^D$l`34ihR z1o;#YMw9c#t3t4+`x1bR*P|pp>%lM2D6cR|(BQL;*JA@fhUA;wL|Imy{Kg3~1NQ^O z>?uZ|K>?Na!}4P79e%o^!T_yu1RwxxouHU01wOtKg!%IrkY3dRYaiVRsv6UPM2f)S zXTS#@|Lg(Cu5$D?3^r=dP1lFMx&a)-5%F(%g9^zcP@vfSa|WbhB#&nJfTaKH5&YFj!+GWZ1L81KzxhD7bwTb$p`kCcoP&GLK@Hs1 z4Xzegvpat;9h}KkY-i}R3nI}GBFnyAAFb81e-MKZdVHOHiPKy;S2P3O!}`<3o{N$=Ht7-G7Hyx`0bOCRU$hevlaiQR|L=%AH;Z{=Jq*f`00+xpS(K4hJ( zOWJ>OB)r>s3ggWw^pp-3%+ZCh(iHc@3M`K6d01Vm4h{zBZo=tHMTlts0%jepRidz* z9cz(|#uw?Z_4_n*LjzhbHvuX0@cQWZy=>nn-^rxw`S@n%^;_O{bHLBiSr$RNn}fXurLimdh;M8&Cl>+ z<+#kE%{-B;l+E+jmilJ63l4$9k^{OqB}geol1m*m&&ZaNm#*R= zK4!B)j&W{Ig#gaJpmmKGY&Jyt6~B?MVEgGh%F@{Y@Q0wpRHMtUH^$Vv0^SH z$2Atl0OMKjHg$X}+5xvo*e`bhB3mfyEZ`{nP{HeS6tK}1X+AM2n4k8ib^`DJ8!Ed^ zM1y%^f3>LPT6a|^8Qv6N0K^rfm7FO<;>oH2iZ0AveBO$WCESLecr^8vq^ezZtW0mM<=`bF2C))=(CaZ_QR zrh2xE0?{+zcisK+x)eTJqg|lsyVp)_tpd_VpRTz9{`+Zk1IFNP*)#w%c%&I*ys? zogSLVeVgOGcjpU1KGx<5K?+TE${jdBFlMJ0WRCiHd<$m&8~UP(@;69x^7zpo?-)aY z--yp&=dlSqcszWLxbR?om}m+lh+;>Z@HmRWlBNSg8lbosI)LB_XuB%>$PuU<=u%Jo z`Q!QJ(T)z#O1kLvd+@ycc!>!GSvbYWS0!p1e0I8QfOEk_ZpWfnznlQ{LhdCorINaE zGdQ{(m+#?6|Kn;3K)O9-MLE6I^BGgops8!&y1nY6X#QqI#+YGHCri7H^x@EV!8Z_z zY@t?hfgx>2i z-=0*Ow-C_eBAq1iQr#6p9ADIGJ5H1_M@B|o0mZ#3($}6Pm@F;FsmYsyWSeF-GD;ptQ0Itb=Hy8as2LkiVKilD0D5zX)WYUgK3}F8X&JM z^t-&uG`jb;o7Mk*O=7W>XAmy9KKSEFUI|ll9F9ui6YycIp<+8!Z_YU@|NoE=8m*LT z6>D-&PWAcvjH~u8k0dO)ZT4Kl5G|qCM)})c1TBn{7bMV;vK5bFawbRAl(fyhw%{Qj z68*S6rn7GT{kR@^^^!)_9l7_9@GC3Z15?}UWkL-Fh9l$!92&IiwKF4nw3Y1Hz!`hi zll}0*y1Z_)_xh^)2^);j&aSsEw})vn{!%H2I?op(V}8BZuw}ysQ%%V>I-dJ_{}QaXl!4__SellK2AjNc`w&6_DM)+EO0GiveX^8F!)PqEmoX|H-o7i2W{gFkyukTZ|UP z4-4S(Rn$G9AodLDtE`g=FlF$tAVdO~Ii!~)ukgg`=jy%C-m4=%9{Of$+>$zQt-7a1 z(llXJ=mCK=RPST#h}Pzz_8i|uiu??K$d0(gXw3fEi%8Fe-$7Wf*5S2RjXv({7s6;c z?I68Sv$)X#5RbGHEnp%G*U-oB*s~TY!xgFDD;qsg=e~Uw^L=YrX?K1Jz%CV7uRk6H z*_xGFU^Dq?fG$ESa1Jt6fD%myt!=6W!8JbM2oPB<{&+WtFR2j04W)sgd(6t5riEyL zn}Lme`T2 zsjo>0=~S^qu1*97?61AW6TpFM(W@yRNFZr&2u@PB)HG`5 zF@6pFFL&*Y&s_^r6P8~nA!^oWd;OA9|4or*A4R+&8DU8bA=cj}pVgD&*=fF_KzQ^x zrerg_3_o^ft#Ca1ex%bh_UAKdV}6CzDaV+ztT;ZYf_L_L@Hpf5Hy$VwO@Pb)A`sna zHn2@2{05EyfH5XlFVwzAyps;F(spx=b?b%?UKv{f_wx66DN`VTClZETp(R+#O>ve1 z?#psAm~v1H6B^7`cbtJi!vp1r z`=F->(>!=|@t1uyUCEVCS|JRf)&pyODdALSfpcUG+5jFJKXBf-VLma)oI)#wDkAQF zbiq=R!-5p|;Egd-V`{D~)Yq$C%xCNc{LqawTA64UYg{5C+iDNHS_CxCqkSJ6d-SIA zd-NK6L>UJtpZP)S8<+{Jm}i5dJSHwGwPT(cf-LF4RZ#Mo039)uX(-bD_A$B^Bpur? zkW0J-Da~u|i6<0&W`KvB0)QRA>O5@0ZS?Z7V!|Xqt;>mR-vX|0s0BgozH(vt$3WfA zKXvLHpO!p8qMHMcpCIl4-F}=t@Ov=p0`z!C91jR=h3Sr}<^ohjqJaI!88{pX5>+gM z_)bv0dy)w2oyAa?n3=Gw5wN_W68*^#?SETMvUs7exIs zT1AX#wa#rr{1qnM!6Y>|L&d3#E}tEx6Eby~C}TYMW>)i|04j$M^`2hrbMA(Ca1d(g z-la@=*6V)LNC|p4-jvy)_g4&XKO2|M{{o;<4S>p6zH|qReG8MGsP@ZlA}ZDj-7_*6-$O@pmv0@#A5d2p)wIhzJ*5CVGM_3`Od{00t{ zVWxVZyG3#ic7EbQv(BucWPF^!opAT}NqlCj-Iod7!ztp)qY5*N0(EJBCU$$=ah=mT zR> zq7JVmz2>-dFHYgQucc4@bS2vej~gLhQ#&0Q=e~E;dUmVC57X0-$|h&W7=Hg$)`cmM zQn8Fq^00~Sm0WGB!A~74^Au1sS9E30qwoCST6`7GcGqJQU@zmua@$IJLGoUT!>GD= zWT1Wb+Z-t+^c1o+8&n*qXK=6=@U2RXSmj*^Cjs==9U1%BY#E2gOv#z7GTI}9c9mn) zPqp8kzyD5$NjtM$Uhx*`dmYy7r-egQN)9jRrgNQ0LM^Q{Iqnf2%SQ;@Z-@4o28h~L zc-W>r2oUq=PerCo=E2qYMEQYX)+S+_Q5vJp;1v`?%cy-pht85m^#T{8&ufVdV)3#HJwnf5&ESxR?Btag*nrx)rE z);eCD^Om?--XposmDT#Z9aKs zOI_04OJd__egj>tJKYg1c@Nnw>ULXN7u|*PhYIRYialF0MCN4VZ3NIMF9a3L_kn-lS)cRZt3oj zM!H)-VzZS-x{;KY?vzlvyHmP5cd_5$@togz&Uv}GaQtJ>%$`}Z)_3l;?#~T^?xTje zq9}>i=go;6w|L_ex~?{TvSV$H8EAbWF{Mqc&MsW7`W)a0rq(#)?Em}ppAGNpP3nDc z9$qh7jDsHxxbLpH@KtT{wwA|M^!J) zyf0F5nhmCqMk!i;@(;7@-#dOQD}zWZNf5`R@166#G5b!T-I$`?S2&yJ_H~(M9vz3I zg2?H{wHl+VrCabe%NXZwg72k}pjJX-$+tq!$d`NGm@bk|TKU8$rend@n3wPV*Li;; z%`T~dN~6bkGCz^$@Ri`L{Khi_PxI3ETku<1UR6)-ch}|=l)y?XD5j7q|8t{adpowl z6r(NVKG^5&9_xeISDlJs z@v#2aN&Llr$35U?g$$9nb_Dh83Y7oJa>{QlrX_`zO{wq68>FZV(X=xiBd4*E{V{Nq zFyO$$0^ESL|2Z33CO3aXP&=ysWGnIM>ASI+U0Jj=4l!wwLhzXNWu8;b@dSF%xhZzK zYVXp<%4|*UBG|P`n}-8$3vs0|c~U9vqZgH-*^_wIh5g@WNB`Rs?WpQXxOY{&%T&A6 z`XM1_`a5Ls_zg-f)|>6S><#i}%h4z1OhLBt>{Q_lbGoV?N)`kF>d0T;;ho}@Y;tV1n>j<_{6uHvU!Bh@tQjp z0`lWem{}T(Lz4WKj`EKmW!VbXD}01W5c_gfW2QH>xZzV#Q@|^h)pR!bxj~;-??Poy zr%7J1SoB_TbRImRhW2&+hqCkce*7Q*xkA~<7ej_BCNE<&9ZQpYYm}e52x!;$CM}P( z4xv2gvt!g;eWH=IhH7z6zeIEfWOz7rlulEa!3WICc$>T$KIcb2-Ygd)?dZBJy;xRm zuN_d4MhQ86UZ%W8-T51~_4^9b2l`iQYj&jY+|+H)`|VQ^s+|heG1jU$);geZ!X;b4 z<+NGD_D1?TAG6uXrDnNcIl<9GU}H zo^3%LXK>E{ki>{Hq_*cl&4oggRehrjeaU9YZvE!g4dl!u^vrMT-N6inG*yw3P>L>%ze!>L_?EduW}x?_hI!O*@@7A1PVtnySH`DhT_$1EJ(=xD zYOhLFHo>LV=^uN)-K56IP}jY{t8&BIaE-n((KS>RNV}Q6Nz!{QXCE`%k*S!yz9j*h zL&x>jr(J@#+!#r&l-iqa3Yv~!d#Rs_Qb;$wwbSOTIrHB1ny*{8?}b|x+SFbQ9vOCv z#X0nEMwWTsqObn(BRK|r4sB7~xHy|K1Uj?Mrg)Ykl4nfM5v|(EJu(l!=R&JFop{v4 zw-{k1-uVjsk%$B^^FKZhY<>fVm>qBg80_UE6yPoqeh|5BIK0iT z8wTQi{j_H`@-3xg4Qgg>6E$X~3#lzC{klF^LgdAeUU!2$l->+_{J%~4XCop~={NG# z;%trL&x@&Q`C^47!l}(_%JHcxaPkd*19V9?rQu>&J>23eu9rGAy_FZdY-J;GwP$IT ze4yOY3$H^;;_-HKgDriUZ+4R_hKBic!$u|lg9-Ti3W8u|$ht|;Ovu&4qN@$9>hyEA zs&mRvccG%2%s92d;S29jIp86!j763nO33;YpSqyE<$k2gohu1wLm43brfM;*K$WCD z*Otk;+-GSrI54?sA6ogVz>}gdrBdSskkcs(b5*%96+7$agei>A{7t(0&&~T(b4A&m zu{_j&by|LgT!-zk{r0@4o$_l=_R-|o43u>z%S(l92-RLQ8ORkGy9|S!os9=>2AQ3@ z4E^u8`2GOZeX`YkAEt6jXTcp_QhL^AIjNpNXmyTvqFF_We>!{f+9$14cnZAgi`?gx z>;lOZ@%Oo7=};voq-Pu*c>(HEJr(%ThTJ^?YoD-DStcI(|D5RU)=xyV$iqSv{vdi( zzhFM%JE~t*NS?lLsDD^)-TfX+t?c!&QU zwE-%YE4uPL(moL-cR-ovfs)H0+S~Ga_Zm@CgKnrtTgEI8^hT;4*643`)4}t#r@_c) ziGp5{StXLZyc%|E-vadb40*XNW3{{R`?>TTJhwh08DVB3J_1un((Lg6sq=z4=CI(A zv^`fg{s4ul5C4=;*ZmIfY*@sr%RNj!1`YBh7zabFN%P8n=s`~W;;ZQ8S3M3>v8{0U zd~MCie_y%3a)|^8QDX2!ezR$GR}HZv30If`Zwdd@`PMdfR@nU^jb2`O`*4k5)UxJu z`tx5%`vC8G8y~D+mk-YMoHG5eX)Dxi8ReerQh!wBK6qIR z6h?nu5k#?SjnSjw0Ani9yEV_EAGBak`>?)|qcRFqvXY}Yq;^RfY$QaDLG-usP5WG>zHTPsXBio~+(x$|-r3caHmq&GcN~{Wx**>t=y>1}Issm%o`A@G(4E?`8(W42Lt!cqbLGAwFb1 zkv{2#XQvM{YlKcJ^+2QCXPd{nnInWQpIsgd3ofNQ z5AewGk*gfqp|b1@ukn^C_?ds)ldJl(QkrBv5`576iF zGCXx1 zU{wx1;B!n@R&9b@KB4{7aW-1h*c9{o&(+v&Xt7sGMkvA8=D@EsfDSUkxU@36X(=J- z6tSgn;iJ8Pem-Q_2t1b1WXvhU>f@I%vqgZ}2JwguNa2bMO$9rOAyZWyau$MV4jhIP zV~RHC-}*$68z&!;v%#7fdD(hDu1mmt)F51^Nbhl=*x5h+^C)S(bz>uOJtSh>1b8b;gf_*Hztetw+^X*hjCt#$wZLQ}EoE zU4qgOOT2Tnq_Jt2Vql};n}{v#d13RqMW4{c>z$VeHu&CV`~+9HKYpjmJsK72bZA+5 z{^Kw8C3DmADN(#oDm%$HSxKwd>^8hu`FU zIXtnf(BD@EUb7`<`1=cgLy7H()yiG5q3TIgU85|uM_OOSP`bq)O;6qAU&@eNf%}Cqx>(9vh=*i;{;fj?ZX<=BGcu~_5_7R(PFE_h6HWF3$NB&&LPjL?T zH#!W$SEgPEMbO!F_+a;(NaH5Fe_!ZGz(%tLGAfflAe&^-3KJDT)wG(kfj2ZRv-445 zX-;t6eWfMTiS~}0wPu&lQCnTuZ?t~|xkF1|f8Eg=gx{qL7}Yh)HA*RbFnYeJI$Ef8O8x1fua5`CW}x!qF@~V!z_V$fW||}!9>bktOKIW|TA(>B z%yT(bDC&CJpJy?cs4yqz!<&bE?EB(h3dJ?}a_AoOmm<7&wpVTyzW2+GBUvt&$}fGJ z#Z4l~Y$iy(U?t7s;fpijGrGzuD(c1eB_t}09jInR5wJt;P0p$xuO0^XU8TCEU-%oOONLILZpA|hZx`V# zO7Rs@Gawv>$C4?oRlLK?Oycx_JHutf8J)>?Nip-Om3OdhYVoDx$|*L+{rlqc5tqPTG@Z1~}yG@@bOq zA>Eu?bN^kk3GxconuW6;GBus>2)uWtX_*bdh!*KzW7p4-D8t}04opbtW4n~AUr~k@ zZTznM-Ve)Ah9jx*+*?=Ik1k)#1#_oZjPI?Uso>LvgjO$3l3T3woalcv_7oav%u64) zU|z&De(?-vrDsb^T_(E4yYtC1J#IVuzkjuKbXEnj*AWj0*ZkeCjo*{OP)hseGfX z7DaFyIQQl%{!{<|9Rb*=cDZ@#g>TnULr(IT{NW~=;394A=W|`R8#>T$PLF&olfOT&-Oc+ZPZW{0CY53OD(QJY5lAM6DEgJIfJCrs?w5CT z4Vuvpnjx&ev!=06LN{YN3#m$6`St3Z@A6e`NUhw>J?{Q?Kk3aH$#cP7U-}FFuW@c6 z8*s9Fp0iofnVch)&M2;vmXZ>ohdLzP2zL>!W+(cA(du8r<^9QO8e1J!?`R_fhQm0- z(4xEQR*ypvA&Vfli>3&Q4T`S#LPv1Wv z%!>CP-o*Ps-GYsef6r-a$(0(H4CfK)j16b?NbOl-co!WTz9lt*OHWx<)Nn!?+9Q3ssX?DQg&C;jlWOFc*(=$nWp{-{iw&Br@3O{@6#bgx z7m~zH#n&Yln51N0cYWpiaw&hs;}>48oO&nkzuW6=v&ut>m1yCFhccn$#I|Bu@FQ}e zOnc9!>ex4+$=@ALzTV^)Ghv6*qKOQ}?v@7BW~%bXOIF$j7g}W|L)Im-s8w_aPisJ9 zaXdO;@hPO@9`xNm8!LPMFs0xPk*54giFQpW}AB_pJ+*43(GPhCv=mB69V z{H|n=pIBVd!!)I9@vPn77Ui{mo5A0Bd%e&YT!S8n-icH?j0Q28_C=IDU>w_6=!9aa z93NL4y!r6qW!@n9Ck=87qy7lGK9g-1v*Ad}P>lypVFsZBmOfkz*|bXbOy2yauKpCV zY8vZ(dVDz8qh*#Wr(C?FkydAz&lGCujN;aHW7tBU76hx(6^dBIV+00!FrTvY=ERL? zR~5dN`6!yIS8i)6Ua}SZKz3ezU3W`zarB#;KnHJw3lWCM-MyH}ClZ8K@{Y63^3e`2 zT%L;R=TB89e9t#-QQNxYO}5_magNk_=kX#m%Ngb=8b?>E2liX;c7J?o$KxdxBNqUY zi5lQ{@0BJs>GJ)xx^Qsd+|Fc7sdLqVxN_hyJAC^(5*9fL9}#UBq-67rvgND0S1T1}KVpT{lfJXpGJ#3YTpt)X`-*Q0|?g2$knY z&1i=L`ipYoS$^3_UOQdJ811#>BHkgto{W6P0a~>PhN0b1C$%3qu!ND(rU7=y!UO8% zt^^Xcj41DyQ(85$;c+#@$D4Fr@&}5iCH3w_nzoEn)}T<$u%|M;(ZyO|g=mK&bxX#Z z$JwG^bv}f5G^X-9P*tx_LKXF|_#!(VwX@4RI_#njjp&QxaA?=<``2P(GNc zn&m(YF~$+$<%Mc$S zhUhT4wxp<4ng;Z5`e50OU250eYFYl5Au-~i^g_ork?4@~fs~d+yy5&0FCJf^ydNim z6q3U>P1$#+Z9{`19i+Yt$j%iJ!DAVYNdLcKaDl!jBTrGCcu2wS6c3$dVrk zewL%(F?Xk}L)k<^yM(qEh(f%Nw>3#mT8CyTZJ6v~p3j~dZ`aUvyFZNnVbI}m!{I0* z?%?&MhRf`nOx$@;nH^N14*GSo1bxI`_re#Z=B8R$Km%6YJ)SX=lc?NVSFur+%b07TVEs~~Ff1pRzU`Xr zn{mqRkxI%zu?2>Xwx=c?;1SCT#WYsq4A+S#qr(Pi-Hd0nFt_~?y6s6Tkk1b1gR{K- zPl9MUPOGb69Q`MRlC;)0ES@vDDE8fonBQKbd!(z$z+^V#SS#^C4cKSb5ckWz1AMCYkc2r@h88W^t$A;UEE-u{-2UoomC0_B>vh2eRfQ(zdGcM+ z4C0dKYsgL$D*ieYUfLY4uiB*f_MFih_*L?&!=g{TWykw4TIsh;tzSUtq(Ia3xZHmR z%tr@tn)OjxjpdYARf)}2Tiq^`f2CcyUX45YU_xW)PbL7cRu zvj8v4`q2GoDS!`HURh`hwj81AU;v_8xZF8v?H9k)`~Kbb1JmyksiE03QT<0l=s0dd z;XBj8EVc#Q{$}IrAa2bH+vMk!A^x^Gie4gIE@Kd5R5|HX9ei#V3WfIe{<8zVUTO{u z=$C32%@;!?pj7JL$|U*KX4+X%&Lu_=P+~lQ)5d)I`7Y{hPrcmM^Pj~bXz4rCNA$t_ zmz*+}6SHDej2ji{YUD(0dK7+MN>9cz66C+`iwJrg23?Ci%&bDg)BJg&)8|??%7Qx( zU3`z@qI9MUo@T`iS70&67vZdKvanfZdPJ*}#DeqiaZfP`9v{onMdT>NQn)ZUkf2Ib zGw*~|9Q~BEU2K*oNZFgT_G6QPf8a^ta;}MKloj;w1h1y@ygyyI*?wJ39pSmJIT!-3 zc)!c~D!qY{h0Ik-ozuL>Hf@^9=15GtvH7+eN=Z#!vt>!9O z){Zs}iRpa#@=D_?;iL>!ypVi4A?%b0(`opKnC2N!ecZN7nH%+sdYxQ)Pot}ctAsIG zR*K?edmq>z&~@Eb^DXUUCL8bqkmNWl#D>f0`XRMKBC~N!$*@n^+1aF9 z!+9DAE0Wy^rj894T8KFE=df0{4y(*f{p~S?XW#8c zCEOb?1jaTMB}FU`EHP^4(DWr1hTQcCZBHh&=U$j(_-*deQxxn6GAHZ|RaftY#DSP7 zXxT(mi$JFprzZnlB{(uZM3E@U39n>X;U?FuLIWN7fY)1*qW#^!(dTE)cUWLALVrD1 z9eF8%BCz^-PpbCqVBsK*!OQT}*;9#^$A^676w~&pYJ^(37}n`PCs1Lz@g^xtr&E&g zT_5&lc}>NWf}&wV!M3kBQckn;Pg>kd$GAzbi=ht5bQpaV?Fm#GvNnED+mFB9amtpP z+J3lyh7;tF5Q%;35xIGM&3637`NnB3z7#tx`;x4~ z6JmMd<&CL2ttZuV-^*y_ zbkg^vfthG?jS?M=o?3rDzk7`zc6^JqtJ?beaR3-4Muo?j`TD@uC%{7Y&S^zpUA0jd zU^}4Y5rn{rfPVYI$>E}aw;Vu0OTsXYwzmxfSVJpbpZ;!ulIS0KjysezTKpkVM+9SP zxGG4w5XCiaYluRqB~s3EH;DX%&8Q2_rD>QyOTjEN^#NkJN1hhxfu0!C5*kcxBh>pj znVOn=iIJOBWbOFf?QSym6KduZ?G_6%ySmF44+xoz8APkk5bhKC&+e2RG$HKcsT6F^!=vqV+(X=S3dN=oYYh9Y zU2>l@Z#eA0>)mSdutWzhh-b`X^j%3t#PrRuQ*Xat;3?Mi)SxFdl!7Vsh6G6=uG9SZ z*(*x41JzKjlFdDqJ9pSbOso3+uKoQ-{iO8Y;v&ronLXm_z0mx@x^>MR>=GmMyw}&u zm>RogV>!K#)l$h_+q)x=9FY?~7!O*yY8PKxVmXx=4Dt|UmvF2^t?Oz>5-Nc|<5T+j zAKL`WJ8GC1bd(qtm5@?rQrCajAmVW_6es*H&7$9GM$w4ox{HC@_w1lEZb2AdGeTy^ z>p?#t_N47gtRy*MyA0woGW)=Q{^P2YHfFwvrg$#%a6jaJpivS)J!L+%yCt*&>r8Xx5+6kaoIVP`i-2*P zpeCQph0UKfWI2{pR#rAM-PQHLTp2V45D0=BnN)M$>L~*aa#+>@a=MN!?0roITC4Xp zT?AfvsepjF43PM8qbp8rZ7uKycW?CzfVMCKSfsbh=|(Y(2ur{Lz(V7YhS}L!YWfi} zz@T-%(qfo(I?{vDRXYc^IhaDCsi}F5aa*JYu3+fNy}mIDW_~eM4Shy)B@rwcfu}~P zB-@eYb4}`f&U_!^90}EbwmN(8P`ln_?~bR_luAxt%PCaEm_8&3 z6p!6-et3_PsL$|jv|hdUa~)Pg0lc=);yqe#Pt%#c*U4!rVT|T!Q?3u{lj^8~lvprE zZ7(ATw)8mXCLX2@JL@Z8 zU(b!Tllsa|mft4xZmv-*b(M75MY9*)yCxxm=^WX3O<8V{oATbI&iAFjt86CXt#|r4 zI{O)OLPNk`T8OWWUO}$ zX+9f~b}cTxh*tluEYeqZ${k}LfFaZ54I>21KfV;y`$HLEN?;Iw62qVZq@djrdDprl zrGUlckK?1F9^WQP0@epMK|#UCGJqN2)*1#x!rw7`$ZyD>2*mrfb$4T84Bm32;)q}7 zD6InCjhqIctlph2QyMFeime06OKCwNp$cFbdwpXg^SrLEZZ-h^Ndi1GAvN@7>$l;c z-4QQ9Ma(iS05vRUsYByospe0Ov2c?%AY1L$=CVsNs1RKX(8NLjJQbBvy5LBq)0*V% z(tONE&)>3{{6sEhg*wEqOhYT}pLH!BE)DJ`=+tFTY^3i=B9VQIP-20+!>8CRYOdsB8u#!sih&Cw+>x=d; zu4){fJ;u>IUZ(>h(ck3+At%xqf*X;3Qgy!9nQyJcG3nHzQ>7w%r&o{Ack`&IKfryL zJ6gcRMPWLVX+~iS4G+ImYtDyhj}}_7b?}~RA&A2p#~*KPyLn^Q?rYtpUZv1t5a0j) z0c{2PLc|;nrvE_1c|HJ!w#SX`MX}mRCednF5;+2^5HoPFs}C8jLbyl2D`N7es}R)5 z20VD<_%W2GW{f)@67maT{@v7e)pxp=jsEx2k0TSVovW5*mRzZ+f^pyA;frViDG_ni zW>phv9jJ^!i)UU>oom|MH;J{wLWXicvvqI6s_)%M7ExCIt6H7akkU+6y_+C%amMR? zn${Yi9%qYW1XUk)z+qj~R_TGlFW`K7fFxW{wJQ7zCP%@jpH)Z{Z#&p&Dp!fl}YAJ~%-O|#MF#x5#2jIE0bJRB?1Ee|WsMY#m zXIr-{<>(uJw|%V+-ninqaw9PyZ?WrbpMJ9^H^90Q=VYO48bfZo+GQ1ymKnBcVi(>< zL{8Vt#{|pvHi0O}pK8bm<{4N8yo*s}(oOCkx!MH_i5q&Mx^}I)02y3_f(1;5m{qkBu}eDwym<;dH&A0zD$R zFHkQM+?H4GwT$U+QYuOXe6f<8V&Z{(MHdKqB~1&{@ZmJA?(s5|lKRetVzf$?!1{fH z);+(eijr+ir~L`xY?&b`A-7NyA+H-Or@`?pA5M|-4+`<#a;XiD7$*{6hzi~cdO8p1 zFdF1b$_;$2#uE|<7fl$L6#=wJM*lNvlesoj2ZhsO3tf8aN6;Zm&0-OEN_6^BYv{1} zYE7#SyXX0JsWW=SRrVDy3@iH^YvDoi(;@bcZGXaIa4W}vpd4!qnI!Bv1fXWNz+5zt|#Bj70wC+_CG|93YkFNz2{ zpS#jFeAwKz+aG;=x3q)3@r@pC2vCR4cN>uveI4m7a~{*_p9MV3Opj!6FKFND{Z|Lf zzB6u$0lawx-f0&=W8eNun*^L8B3YI5raYsK0HYR|)4)BB6 zpKo&!VqAF7&M^gBNZ)AW=*aFYHbBE=eRDisp}bVZ9a#MswTqd9y(2n_v}Xn(0=>Ck zqTYBqzw?%1Y`z?RYVy7I^lVk*Nu2+Z^;2@cYr?&3S=a+AKt*g{F%gI}P~F}0&CNc( z%G3Vvs={C`d4Uf{6klJ;3{SQ4JfmMS6v5fj^R@Xetc-aB^YOa=xZ((OxK@A>aJAmw z#Po4zdqMU}&8`zZqEDLZw-RrJq6q^vR9g_eLVXaGVn;sl&aH^VoAhD74h%rV1u}p; z*KX*(<)~BJC9oM%^u{ts0lvM9n7oemcClzGpnMJoK(N>%HMiBsDKmy{TW9C}=wicG z3Qy@JBAM@iNwRBywkqHwc`x8mI&O$k*DcoK$X)}|>Axt;$`pF8Bn?HctH_$=o@JHE zG9R@E;Y-js0#?TpfNK2~KX+@)2J}+u(r?V<>FfufX0ja5!vpAdxx1LyC>#U+g#?oVWK~M z?a3x(CDe+kHMuC`7`r}ds&dnGW0*f)1t^s?FQdWz<~`=3PwI+mV#L;))_Im)P)9HC zB>quc{`~FT)4H~KLo8$W<@^e9{U}cLB}IrquIN4L9>O?&*!=bssZcIC{E^*lsqSZ~ zgSMcH9_?es_H?7TzdF2;-N_Mb`^aOYwHsajanpwb{()Sn`)Rk~8wmcU;!?!3HQr2_ z=AmG0?m{kxXw4q$Sc|KtTk|IG?Oti|sDf-Bj=rPWtg*XtrqlQ^Fmbpol=Jx)FuC+P zIP4jxk@C?Fm2}^8{@NGtM>Zhq0fRSj5!Aa}HZ%7*R)V`(D~5r23MY7*(PRF!r(}}{ zSgUj4E(F~U^36|$ZUFVh7*TD-nPtnwATBitTVsRX~?T5voL##v2yRPunvwUCR- zZC^hmodEKTtCH?Pm}8#sm+tK+9?m2L(@EbZbWy^hj0b$*S@n5!97OZvGlqyyBIT7^ zRv|jtdvST5D`Omw6*ZDG^$N(?MN-Qm0eL(g;cx(UDM(z^LIv@5<`(6@1+8g*1i<#`L~ zZBj`vQ1-`uvig7o{EO^&WWGsur|>$w)oc1l5KY9YN1Dj0uR4SReCItWylhwvCC|7} zRHJbn8`8G6wvGpL+-5$#F?4>!ggV)(b@uw(1cc=jvhCcnv4Bq4MkM5QsZQuB^Jprx zN0x?FX6hNI=_ih%bfKbTU4YL|AOpakNAr~^w+T?RO-)U2#q((Mfj4hY>6WK9iuXc# zKcvNR0|VES$;Qf>8VL{ytKKK3zpHwq)o!pUT2;2zSzxka4eMnGMVe$wKy|2w0`9nM zYqI3_dJbN)sTnCC`BZVeGjw^5LwmtuiszqP%0?0p0ymP}4T6fIK<0b>WYzi)Jy~A8 z+86L_BKqf;pjIbogS-~IFX##XtKwG|Jhww&e?-Bb4f9h|9VAf@h2Uwk1GXaG#_CZ18c zrjn!lOdK=h>t-;#d#9mtORAM3w%l_Km!Hz9#lKnK{(P5Ec;?>7L1>2*!HQ17AAQ-u-Ix*^M#3F*H9v6H15zL}g*ZqS41o$}uSrsPyRnQ3Dl z)XdSwhTogA`x^A~=k&+x?b_2M7%<=dJDXnuAljf*ut0nT5tJ0MreFxhaIKwF) zu>_gT{Kt4KhDaSC$v2%*T$ASapxoo=tt0hZJ{_*ZQlxM!p&r9c#Y30Gh@7(=o2=l% zG#zwcihI*}K_4;4Zo&OmaeGFrfNaxx_{4Dp@-iZ0PH9g(+POcW@Xl7?qWna~-IHf~ z?fbBcJz)Y}H`ZVG%btK}$1CDob|>7*cPXmArS~9a*XP(%>lV_dj6f(ac_OAC6zQd3 zK#DHk4U1TuHyDFqa*{p#r}ZON2BCbM5=n%%G7(o^A9Zv1x`|@cez;w~C`q~T{X_-r zAf3g8O$tun&+4}ONsME{v~7%-mdW9JuWXlrjFTYVP#^He?IQ0-fKl{XHIt92P zf59-A`Fjy*Dnd8+{h2$o%2~y|(@Y1Gq;76*stNH0O~y&S>k9zG;3saO4-upC zUpo5-2c7H^5zqOmdpq)mx=oc-bENM)QC4LO8J=(MZ~phw!Leqj!{p0I-Q4~dZr#<2o7j@6jph`m z?-XS~Nr+h5?n&)|`^Z+v7{=OC(a%iK>QmEwbqSKzT3r$kOYa*;26S;g8kgtM8z-`2 zm6OrfXIqY?=fv~)Rl|+#@rx_EjaU{k+XSi%`~}mpj=&Drv!Pp#bxAlXvd18c0?YMk zzE*PbhBX6$WS0rNpPP=E{xZdX^vFOdG6!DzuMvpRRn%iZPft_^5BpC0H3AXJ6N8hAqLnl(C2%0?r{hWygp7B~&xN3`%jLbKG7#St#!JMOH zaV8;(xzvn9XqDX&H)>;KW5Q6{8=4pyP2<7bSc+XQ4Eii`2kYT!5U?tx_=Be5`BJ`t ze_#MjZ1{_k@sEa3warIA6#yX&m@GO-MbL1F-gSQa6UTHQX)>q0*#lvW+^c=YSGm!> zO&$8P!wtoOTLzZJ3Kx_1jc@ISw*jtXHM(m1`P%R?&43Y)-#_ncG)a4N->0h@gJSk4 zvf=ysPc8m%Z-36p%6gk4GSNdcnXi<=Z1o+0X#b_s_`!;)J^4M*=K>V(`j{@c(;{p} zt9Q|AK=w->sEb0t4Hu}zML_^AwHp9%5E<3Tf8}JC0R}rLRobm7I2b5_Zdv|7CK(wW-b?J7IMMyJHL>RG zbsc`pn2#FVH7?oH+s)sRXTxA1Rqbgo0NYoNRNrd{w5s@*?*cJC2s-Iy0bp{iI{O!j zsc$l$r%c73T(IUYwcfyS{uDp-H>5vaeERX1u=LK;OtK?(J#=IIrbXI9Leyd22gXh; z%^%5}9-0punBTpY-*7723$g(%vDeTtw@&xeaE?wL+awjUZM_FoPsk1peuoyKmfC_J z;{pE)o?UvA(>q`h59%K;d$_VkXrKIvs_YWtWB4&+#?R-hrRP|+AcJinKm(W zYPA^plsd&~`MJ?l)6qHWY%=*%_c)x#h8@8bLUeamZVQ2XGB zWC8b5(u_O39bZ1p7pO5%FB9Gpg1D3kOE~NHrps*Z>v<|nVnX^VDutVxn`M4-OG``v zT^&LEd$~%szsKHzE##eQ0`!RJ8l{dUvRyeGid}+WysusYWyG3%kZFyS1JrL5Ev}19 zCtkd9tBrR!PcB@|Hz`@IQ?8W6Od$;=`=P~@0!}=amQQT(@QgiFK1k9AZBiy!Eowfj|MpUUhN7!zVw!~=B2 z(#8Apb!DWtSUchvNnoBnQ!1JbK>c6~(KM^~19yQbKqHLTVTlR|gke_;;#(|1uoB?S50vJyo6Cvu16HKrZ!GLE>2%e*?j^_+ByOJGpuEIS;TM3# zP-8PuS!tv%hAvb(g$_`6@qwdEVa(Ym?EENfh~{cG?IqNptOi7>qg^@&iPdyr2!FNm zu3d{a>}@K)t8DOqN`u!`sk8nql1S~3s=tDXeE_DW&4t~NDJupdPBxu=>>lk(=7tiLW0T0W(ZuXOjBSla_=Wv9nVK=lL43hEcZ*AgqAIzw_V^ z6F?N$dmsz1-W$fLr>Cc!DSCeaXs$p(>qj%HS*R|9725#-3`T&S|D&hpLnr6kNF^Xf ztXcAiX&zv`h|ocR?t}oaJ^uIb`&22Ca*gfK)*DLH1RNUfAZK&h50Kczn1CY z;^lYe7|U0Rl&&-%{31;+pG4I$4#>@)z6k?~XxJDpf+A!HPXWHlD3DBt@!$b-Zxx7^ zf#?H-?i=5iYNIDfspK-#fNl-w-FUyZwlICyX8|mZ?{}S=Lgz&*)GZ4+xC&rjWG>-g z>xR08D;IKx%*A~JdSlHue0)sP0UeJ2x&xqUbkfJ&epCHPw~7wtM^79>*kKxTo%A%} zW)tP9f|;)?48IG~7jw<)Snme?B`tdNOp>u5YhCF(B`aHHp+myxMBUf~PNW~4f6#bh zCH7zA@1G(X_^X;H9lmk4aP0aEB$sd(&$=eaDT(nuxHz%g`u!)G)y0_=1!fRZ zxthtORiori+DNv#fCWq$t_$kDqD?zIDqTm%V^7YNR);_BH3z>9-k0ku-#%0>4v+=SEs`sY81oMy5e)aNr$m{;+~O(55_-t&SP7}O*xze{J= zR91db86(Xtj8RXfm5Lyh$rce2p^=#y9VIAG%@q|rJzf#Rz`z)3z+#$xo|%~mOxonx z<*sM$U}E=x5&#?1z%re>zB$XmFn!O@x zvJ26|H~Kc4Z$H;EYg#knsp{fLFn*`US5RaKU2V7v?5lXaPT(kC{?O`s^MFL&11 zPKdc{KV^+^Y2c_jNZ8|ltJdpy@Uam5_6`$PZgr}V4aIbyw*JdydH1Uw;SWa;xDQ=y z^VR-W*g!Gl8dDfX^8&C0$2o#oX~-o^i!fA+N=$?i-YHo!0m}}J;IEWRC0<59D$abrS4mD2?@ zB^2}XsyN1H_mw**t=Azh4~I*s3s>}t%+C#O-dyOr_^hh0)P8|Jp7s2i=Z(V5{Zb8w z*@?A`!ggV6+;-`P8u3~-W=j9?djl-X=vYO5t3>+n!E_;A$y;7fh5CXEAbR2G=6}gL z)}6md;&aIhQ_D0Jde|aJUOVbJp0dQX+e!eWa=$szxFFY`N&J$h2+6oCSS=F# z9xF{kU#UlPQ;?t81;HAjJL)a{UeV0UUC3fIA5j(mK6Hw?)tV7Rvbq7&uN-S;{^1l` z6ZZ0=!M>+>Z1sUAi(^y7cj8Os+OphJI|H8sDrmjZ*`DHQe`Vas|5;H5;pZi%MXrVk zqsz}u>qD6tjk$x*7NzbC^7=i3%x{B=73P zPY_7=8&at48w>V7$4Li{171D^Ef;#nkEf|NZmAk^v0EE@W3@KSSPxy2yV?sf7<3mv ze5wR`%U1ETyFvNLpM_rRjc=dVez)^^Ux^gmm`_`uf3YqgQ#@2RC96NpIrD$VpKC=a zF-|{v>ebtU9cy;v>`Q6_dN*BTYhxEbsB3uH9q2+lgsQ})`uhV>@My`W>Lt6+zw8=n zDlB#f-k7EFC@I9*4VCftxZ}Yjw~DT^cc8?~%liQKK@+h`eBSseh2l-YWYHE`Uv9b@ z7=GL%)DU=vBc#B))Y|7B4r`oTX!^-Q@JzMSaM(=S9`kk|ki2$e^V~YQhBPZ?>wg@~ z6cG57R!e-Hq97HqLrpofZA3UT716f2h2&dV;2T$r|Mkbhnd(vi{VH2&ABU1#1izX) zXWJ{@)9NnGOUBZ5PjVoGXO!@ul#2SAIs3flMbOn_!^%;d_ey1t9K1Ww@3+sVVdy{42nH`FLOAv50Qxg}!9 zdEPJyHl5nCu8|2c0**O!X5@roTL zYYl#Xymq7}reW~NvAr8J@MaNBnO&0q9z5$)5s9Rbbf!*wfHm{pedfxeOVyIK1pX5*)ZR3usW{~cv@<~Gf%JQ*| zwbQ6w-aYws0;&C}8BTPWGHPbv8fFJvB_9IADkP`vjuZziOhT+hq1%cHoSr>JyV>|k zYHL33sAiBireaDKczl%q`)Hr~=_}`o#lHVYV5u3VG%Q55`#{Ce3Qw%@f@jG<)9y5X-rWD<{d z2B;2NWD8I4c8|hJSkDfqHl|%!{P6z06D_qb(>twKk=JEi{T(c^%lFnBaJ)nstV}<5?TQzu=j-=mv)3|xL8CgmkU3*|K+7W z@>j;E{{sd*`s$qeF{Q3$p_fPxD*uKjUEt&2Xa80Sn2ck~rF>W~S(9hyjWsFFI#yAj zQat43>1_W^chG8C*;;ZSNh`0Jaw zdhaBFRFxtky$L8KbdV0A3eu(bUIKy810(_RyE)H!&w1YUe*b>6T#&USciA(uXYXrf zUswIscNjMVAMnK%@rOqsFFSbtnQXoGi<;$#`J>PA^+Vj!uRTXRbf@FJ9X(&B50Dgb zW5%asQ+R7`e`5Us%GNZ1l!wA1JJmWBk!we?EgY&ayhs?yeQ?rUSDffcPJ_ ziBq6=0hj2Try6UmRxA0R(%hv5$xA#l4mGmoT&k5dlVOvj%X*zV>s8f$f} z#E~TLjeWKf{-Z5Tp2G9gURuqHP~Opd6UgL`n(GZ@hrQ5V5NOTl@*bB>z@}}+a%q;o z*KfhalykyR>*Ml&Og8z~(}``DwciI4`-E*Z>ok`zK!{ZDlDn6|82IYmT=U#4*nY>1 z3<{l7fbKqA%uTh$1?mcaa*)zhtrv#H8W)_aLC7YeMx4glCZ^sVerU9%{FLi2{6S== z6mVOT-Td{x^}3?|QyL0f@v;xw$1|^7aY3R0ZFA<_1Ym0dTEP^$i~{sZEdc^Oq1wwo zi|m#RTl;-vkcSIL;)^=xR$0FH`0ddI=(nRf8ageA-dh9RwQvg^sCdTV$tuz1eg1BL zY^yw%CU;a*o^T~NH2{0?N3R`xZvn9bQLV)S_0X^SekW?@^gH9E;m zc&MrmUaB2i6S)#lslc_2G4T9BTlr3Z)VFax(TZ#3k}vD;R%F^_2$Yua=$UxLOP%et zy8;T_zefwStlqs-CIg>2V+Oq7>;vLMm#SpqE0K>a4_3RECIPA9-b*=BfKRYgegQjP z(^kdbuq|Zc3Mk5l?#2K(^5^|w6@JX1`G{N`K%dB;iJL`O0(p}(f1_!@Il2O1Q4|Nr zBG1K_Af}DAo4Ki$fJXM4$bCeJh4lHRdN06_%M;ry+Pt9Nj2@6W?AyZtfLr41h&q_h z>>R1L77RLjZOnw(wg&T%OYH?7(E+c+u^6q1FUtjn=!#(d_rgOzpq{ldwaS*aEDyx# zIwfYQ8MXF8IC`Zj5*xf9_U2H$SJc-0lc+%Rw$;VnURk8q|JdZpl`>#IR>QFgkZ!XC z5{?Q$&DjSqKnGAAuC(?=*!&zHP;jd>ZqFC5{Rx8ggsE32Z- zm?-aEzXe=dRWqjFsRu~z6mXmB0gUiWU^wgBod@KhGuspBoIwF+`x@Vy)>G`>Xo@rf zJj-hp0M1bdC_}f2>*zdReLVQ|#JCQSoj;^1^*?D?AU#2!G~-Pg1As|u-b|O-9uU3I zC7c2dfb*KvYhUbzgFC8X?Mj}5;waMX{s zV#A-@AfloQ)yd)Zlm(u|e_=D1b^WH?O_M_QQ61tCwhrfIQNoAZB zuv@k~2k>-%Az}byy49CGEH4q-uWDy4= z0ODBA0MrzhAscd_FMx!+4EB7v4H8eD&7s<8=Aj3uEF6*v>=xgD_P9tjTj>2j@oAx{wD24 z@Wp=2@P}|#UruA|;qTAQA#VpW_~wHMSvfEN2jVgTR^mK4rU9Ng5`zDH@k6IH3iFhI z5vJ?>!$|~ZoUd4JN$$8JzUgKd`7=o-Hr=f7EP?x)AKH6hA^5+Ev7T{$QOlGz5z2DM zW}GwvvEb(Tp~85ay0o}GAVC`=5AZRkF#GSdQeg@z=evM=i`nP`%+ruF0eV92ta}_1`K%;ja@%*LcciGHUl`zbM1+$!I(J5_8T*5XKVZcl!NN6 za{!p~payU)y*7F29P@zYC+GQP?CYd|`7TqJe zkAKpJMcP_s&Kbb#qiueR8Yqr&EadJo9h%5NpME^cB0DfSKEs_t2E+wBe`j3w=--V@ za$CSg$md{H|8;ymj2kQ?^0Mt5co+tbmYqQUH7rq$Irq-x_y>?sGQ@)SO4KrB`A+6% z&xOlIu$2(%pv3CEcy;qKu;x_6 z235%ycugLZI^YruI&393%&IG%mn$IoZ|c-w9B?sQIlAe}BR=>_2wr=QNoR75!NqKj z{Eo8`Y3Te5(RiKS$sfDd@}>vWs=|?~7!-1V0+h2K0<{KT0bin?V(h&X>Ox%NeL0W8{4XcQ2n-#7vsB9tK!}oJKU1yx zRiipx&_Xc@-r$S2-B**^m&g28lBViuNq-&(X#%FAvYPnXR~AQL4CWtQ@&WixgPG4R ztZ-*P4LtZ=3UTH@Fd$T;%`^S$1S#`zyYjiw>*4I0^yt)q=Ob^!E32zD!LnHg=qh(O zlNCH4hzZGGcsS&Y7l?yPR1BT8CN3WQ7m191<=dzt}^?`TR0^Eyv|y!xhowQAm(3EP$&XN3Q~_56FKw*SVsN zAKv+n-cN*_Iy52|{{ER!aZ zQ?kZ@ZbBOwyX!>q9i1P!z-{7orxAIy-kQ|Q5B{g4fYp2fe{tfHU6kp|)KfDAu+aYK z{{B1;pbmYod=5~wM=R)x1A4WV*3nW2%KMJZ=bm+!s-iUj$#5MKRwz&Oz-Tuv^Xxk_ zTd-;LFbvoe|z{uDdt$-JhLhtZ)S|F2HTm$l_=m%cb% zp#qpv)uhn{>fO<40T-BM$ok_NhAu~W*i`Gt4<4Nc26{5Db?n|Ql*g$9IU(W2(LFqbelh=KzReu{K;yu6QuBRDlTIV&yP&- zebR&A6@Z6`2RII%xDo@FF8Oe|$ogKA>v)*-wj2RaN%ITf4IP1W8!O>)>|BLqKKT{y zF(s&06}jS~Yuyp9M`~F}Thmu!a%>KL>WNvoi~#;_)Cz1FRk}a@n*|l6%+$~$j_Lq^ zvc79PDU-T9DlHIevM&Sv7U3v;lumT2|}*v*akW!lYWQvbx1=Vb$AHCE}q#L*wQ z^GeLM(q=EP#{}Jn_DWMgI@xu`p(YfEdI~%qkf6WD#sp_NX+x!&d49O_R0Thn_phFc z-Hl{ioB5bIw)~4A^3$72w=`QZI)edc_-|x*!SF?=Kf8>rULojLz8|d8|2bxb04gCE3~34d5KJzuanq}l;krD>{X0ZKwfm8J?{by9H$RHb|G zs7tY3DlGuRK=V>v|E~A8jI_Einmn6gud)cF} z@B)p~>laoUUc=4W69W76W6ehsyxO24&vcMvT>p6&O!Z<UD_J|+&ddG)S*usY5F=?KuIo1?a`DOLI z_XQfHB`&-Lf)$ig#q=NiUlj9uLk7!{db%$(51SC`?E_8hW7_Ll)IOZdC(zS!y6pG?__ z3tjc{EgY*K5`VaIx!7I+uJfZ8FaUeRu7rGeOvvi}Es}q6mmK(a1~5&Y2Q`BOo11|{ z1G__b)~)v>k3Ivd^@kcD`Vz-( zCFKE(hj&Ky>U1$x?yb?9o8!p0WsVOD391Y>M@7y*!_K~kI~ zx=Ud%{&E9};8Ct&_>=Xl+J-1sIvTs(+=}-zLtxS_gqd zw}#tn%{}kyj`-MJkxOVbwJNdDzF8B2tgh6;oxSz?V)hH981q~W6QpzU+C50jUUTNG z#S#q~yr{C)e&Uza1se}!q`GjLA2=Q2UQlmuQEZ8n%c-|^~g zB?R$y(tiN{F0cq>qb)NA8_3GPuo@eMjGp&~Jul@*cssMI$FkZG=AUyoh8sEplf*lD zmIoLXLR?6EO@LfBZ4^1?M!NQDumA+{Ud=FW$Ao6&GVPkJHFWyV**cmoCPdsWST03W z@YV!hUPF4s{KC}XAd35bBIJK@U7p(1m;+lJ8BZ>K!2j>)>3=PdmsTnpf3b@L99yPI z`}W<1w;09rhfR+bX_q%+e{EtFS+p!kc1BNB<19=VlbOZFdLBvs<_Egtn4=koaH=vC z61%*{zwMdHLx!HQH#TZ0BzH|DYy`8PKo)L{vtOIX1dm@OIHHS=P1w! zM80&Gib6~$Jp=Q<7rFe@LeFk78t~QhgdZnpM&skqe&2Y4j=;D{04YN}#`s8E%Ya`a z7E+UF%ThC1Ud`6r2W4hD^pt}RnZsFn&+uRV27>>&sKf>s+mEgY5O2Z!=qYW(btotH z2x6~Ope<7E3oFibW5}a-D+#J?zn3jUK01V1*vrBD4?dlytRTULRVFHECL>)+?0zChKiy1ST$3xBH%}#u;m3$B_?a8mo@SpMb zU#yTV(AbCF7D-jaqeowDrJ2xmy5Q&mCy!(&Layc#yZ>W#z%P~I^^cxIiw}MXHmm$_F9lH0 zkGN4UMbWr1!609ap_R}P1SeDtV;k!Z&8kQRyuTB@^=y)vXA-|;w-*+p15HLSSy(#1 z_%Dd)@&Q{63vr2jCR7ed_frRK76P6aWNM!9o9Moc2XHsdW3UH)IM;0&;WY&=)`34+ z_v-GMEF=A7JwhvX-u^4R7kUaHrQ;+y;^~=dG=8!di~ol(@?Tg~IL||FvLnn@LPQug zCaxy>^ZJ~v8ZJy*%LwrwRFw07o9|1WH?spK+b`A@Prw$6%`aQV9Lx)u+I)|k zs?|rYC)XAze6?pIISQ8s5lW{b3W7e64&dG4@brx-FfT!)Dz3n|hKBDg$3-JaCI+!K>c(Z84*}m}AOIQqO z_{^q;=;-A$?3IgtN9TuPzvhDDU-Qjp^S}D}^$Nj9YCeklwKq?wiWCgLi}Ahs86sQu z86fW^r;utTqVRLetgLJ9+vZ@p`lanW?Xk7h+mmFaxA;J(og&jlnl0V4P~{8gNxA*b z&A#N?YfO4OZ3Q{jOG{8zqw($5dx>L7kC*gLea+OJU!!(elmslch0aDDgu;%KKAO?m zx5Zx1+u!ac(XX%^mpHPOWb~`9Uy|E8nG+j3Myu3({`sI0#Ma6-33m)g6B&$?R(?r0 zV5*65Ig6mncAM&o89bT(k$U%NvUJ4z_LeYo$6P0R7pOU}$YIjhAzb`O#&0<-JFo43j%*X3x?UH~nE$HAJ-! z_1G3H4|egFilM9lu?`+TPbw}h#wu0D1Yh3iuiJ%qW0vEI@8zncGETX@?c8y2^u}xx z+_UOUCIAZaS}VH-RhLSi@n$x#@<~8LVP;>IjMGmVL&~os*fz%OUS$y?(RgxyXTc}rqmD|}>!HR7WJoIAg?<$Ynb~yC zizwGWhYiS>rKY?>VZB;!(@{G^(p8#L8R&pW@qAQSnX~^`Bge3{GRdntLve5B=0Gi_ z!5rfs8#vtH{GFur#v7U@b>4S&98K?%8u@=<4W4H6Ik1e#`1Wz;C#}{GwSrFG4@<94 z2KvJ_zA3Xld8d14ccwf*O2BQK_~N`TV}?xJ&06M_RcasY({T5eq^oY_?&F4$nUWN{ zaTKzRzG&j1zq^J0_RTA|#t5EAU75dDR-P2F>i-~ID>!HS@w*!odSO2rlj67%gN?n&Aj#)Su~!YXqk?XTCcLe;7nuJ4?h)Uh639{RTr% z+ZosItr>!(>RL+q#z*KTzGu67bwc$P`6SM6K}2u{I3nEHrSw1jMIp;P<;9$;yZdTs z#+_j#ORF@2{&6AbX3W-2>qO}d$yrKt%6Q-hScKovXTs(8umFj3fv9$isOAFFJff!p z-u9wD-apfaSOVXbqyi;Iq4{@(9pvs8^H1ZVEWbL&moXFd(pT&Qf4oZZ{XR;~5E zU|e2aYPu4+@mQ<4ZWiO3f8{muNx@49*ZUroqR9W5fuU+<$}O)Y`e5!!HD zuFn>NMY!OGS#f_Aln3Y!nT0jFy+zYRqe_>60=6OHF#7839 zs`qG|>qh*C&r(1>Ewv$KCG|YDl?hbcvt%HrvQapkS`d67I0T@9v+($jH8)LCu|nNg z=};tW9ywFHw>@A&}C4A>*A$>6$joQQCCkJjD1>58@Akqe2y7CU114yOs6 zQ}0$4?cG#iD8apc%ou~hi&drX)1)kaema=EWGM&ALS|cJ6NU3l8?JrHQ;sHA`s01V zJbTrb_2HwIg~+C$Azz7l-alT6IU@ zIb2Y~d}t#DW_Vc_PIk-EdzS%;WjDe42b;0K0?;+VguYB=M zKec!jag*ZE_#T4aA{jiokPM!EbMYl+?Ko<;3^E|o`2gQt%2xxj6~=cjbR%GcnXdGr zj^=rdOZDVm-#}$Ua{$Mnt_1(8*&QR!RhW* z@{aM97VFcKMVlhexsUCX2!J@3!9FVtTgGOb$g8?opJq{sZVZX{@y9&(nepE_i zX|l@7oKN+PH2yGcX#RRVt%QIfTxN|>4FM;y(zQk0grz2MxjE#;dX?lYauU(qfEF!m zqXfvccQ*s}v;NJ6;%wcyfZBP)LuqnGys%1j>(;7*RKPKn;6C8E&Lv~stY!C49?UE} zAxpWyq%{x=KRUT43@3-Qa_bLcGOpYF`I$?+fYkh*1`B%ic>=Lbv$5AWl=6N5 zTV25ZtpDw&>exR%LyWobVLO`01-N;$Av?!UjskVtb9>WDLd2l4th2Lnq+R&5WZ5A- z)T~um(rT1j5@aUH3(h8MMjJ04Fk!q8VP)=V#XHPx zbr1*Hl#qStT$=@v7r0Kb>KOWIfF!;H;}1v#)k3J$Xq>_G6ea()&@mm|Oda12v&c;N z9WTlB8^z?cf3`_NCXlO|c(Z?cwEdVAw^)60!xo}LusNJ3bNjUV{6`OsVmqzbJqdC4 z=`*+!lX253-OzfkzRq~MfTgsQx@m~%(z1`B`TSkjA3NHCwAG&)b5tfV+=*nFvm~33 zb3=ux#f+Y;czu>uV=)())X+Bw4e#pTEOl&h%zj@Lmqr_Owx@-Q*e@(3s)$00GFf7W z&AB69a!RSVWhpH+bdvNn_xMjD1<1no zyrT}-FC(32BO!7-@vwwk;+D5KZi%n&4}VH)qbBW9jgS$}WeinSSdQ!Iu&D`Mb#-Tm zaa>B(X9{5MMkh67X0_YZYW5mN43v_HF2(3Hd=mxMu#Cz{=a~Si?~#yLF})OVziB!n z=uFPFnUTcXa@~=klq|um-v$aN7M)@_9Jo6u^>`M_Tpvz*IK1}*{OP+v7kQmLO`Ri_ zd7=?Tz9`?O{prkgWJj|~$i-cYgE9qMQl#cxOkVi{yMd6Ad`~P7k4~0ukV}lk{AqS8 zLix!*!P5oBJN*r668 zt^Ntc#J48yfzguVJv)AoLPuTW)_+qda5ze4rqRgUR{??R!i8=hx^Spizv zJ>lOi>+Y51T6Nu|7lKQsR2AA)U0c_-)+58}l<3}M@jC;B5~#BMPSqv=)G%Ge+>WTo z7IgDpQ7w4d-Ng0$lHsHm&EL9TNF#`!c8`!PWcK{t0wP$0jdPO&IJ{8yfy8F8GHcg> z+|u4QUy^hFaZG#zr@x&qKX}^HG4iIWokoOeD7(^8vW?4ZQ&Wk?X@YDjb%>VCLZ89o zjvt_Xn7jm}?^O!nm}3*i*wSR-gC5DRSF%2q0AWATO`1pRdk#!piu6x%c?{j(Jki{}t;0tz^G2aJ3 z*77E5OJpOyM1y*@5%J*uziWQ}w%NT^a`4BqALwK88e6t!%spKkj#m=Z1?0^%^-}My z|12kUI7>O9gtD~Zgl#NUza$eHi?VgUc?W*-p*kkyr;`Bv-u}P-m4Z42DP9{4)!H?R z<7;4vz!&2pg4Su*F~sYg4HXV3=`<-YUv3h^gkt8(G}>&3tpw z%97)|dgijSU7De@WOJ$J!|z*@s{C*KHo=EGgWYcqP1Rv2XjP5cvvf)}3a>T&cm}xN zK%#I~RZj0bqPM1djkjg9#9#tQzY9jF$xosX+0T^$E{b`ke18_|9@9D{JyM4c-f*W?D~^jZf9{cf{k7bMl$X07&5Phs>|L_hBdorO(0b4{)HatLzz``8QXZ}dRcK4exSIBn>z8Mx1ze7z5WRr`_NSB%>n2zK| zk7RjrPWD2$fq-#2+b0~0Y+#4XRnRs?-{#O7($5*|8YoG-9)0x@cz`XO3Xus$RF2F?z|7uTK|5^Bp-o&1TmEz+}3CcZ-h zXOS!fK^YI57+0)P^PK;jy`Ql9w4h*7zgQ#4eFZ;9-fx2{5a5`CLqUydm<~HWjm#rE zHpg05q3{ruME>_{sd>YUdUjnNb2rGauO3*a1X;maUbMPTpzr*Fyf*SsQxR2N-rK2_ zIkfN~tj&wbwBr`(T3!2e*WRoK6s;Q8Vl_%-44gI%86Rz1=*-sNe1CeyJK9DqOnv9W z0K`z?2qF|-wAsj+{}j6O44o?G&@JGO%?jl@@;A^yazORY>tF|s!Z}0BGdJJ;DdH&B zBVK{kfl*LaUjh=uRU+@B8y}wk6Z#Vkf}kHUDqE<-w|~+|oSx@hd-U_idm^u|50fR^ zuD6zAyrG%Bw|R^!k_cbn#AR{M%XV9cLCxGRgTxQ#2KZC|EVDegvS}re2PD3!?-M4T5z`HR zBI7>${rM4u@pkHH+;um8)5iCvPI=MF@!SOZyf{iTgc>eTBYv{&*I{djT-YeNYd7Mi z-t@P-cYSD2nP2K8@kK@v(&h8nkx6!3B>)SL>5!vb^epftIt7|!tE0_`Z`NjYH|9z* zaWCKPAb|MVkuSWpAdduyM%lTUf}@DLE~@=#4L#3@H38C&8{sKy&mQ4UWn#D&XgLoU z?)?}{($#5vK=5%@W({dYse_h?_l`0Udaa%Kdn=_12PZl~EKk|(+VgdUFH|)&dTvO3 zYw;a*VSZ9iLRjgf$XuwzW(^yEQDYSORYH|pOm(C6>RdSaHFHuHYbq4LSG*{w`)K-h zSFYTmgdZP7F%;22{x00Z4*}bAx@gN>x}N>9=8Q@H9W$frm|aqFGq?88%nR-R9iA6lbF3|~7ib>$ z_{bWSB7*Urw|8Gquy@CiN-3xG)Jtim96oPD&2;>MCdD6%6F5F$+~1`9cUa(A_X0Co zUt18v87SgbyB&nb?k>=jj==B!;HD<1bnZRmp>tYB&Ai4EzP)%^*Yhi<_}0sKK|4|R z!1?GXLLe6&b_!vKJ6;eR30Ze5wU0a-)o+vWL<_VZER*GZ4PL^cd|mD&(&_wV1xi%wrbHFjC~YF|}y?LXmAuCT0z z`EnVEor^}Yi0RFx;9JkHG?G-oVQo5+di?Vrz53xVo`23Ee9EhjtZVN5Y_u#>8`G=y=Xb9Y(FTyOKeY>M!A1N_UeY!U^2mXjq=7n<&3Ai zMp;RrTeE?#@h{#RAEQ5Q87`_e(=M;TNT`h6 z)nDSDtFXxvgby2w>w?}k2AohTXIvAfjJr(3hocH>_8;Al^6!fma6|NyskkDRPF!%E zCOST`U?4MJMlL=&;mlgLjEHWhJH9(_{V3QwrLCH#Fn&p3eV^Ub_}93*wDJDf$(gWL z)$30yFLc0Mf$y+q4k-9)r}r`Y(qY-#Zjnd^fyA1+JGzBkmAM-0RVt#CHhYtf`G$qp zes|{}MvE~GPuyfnk8@mBTWoY5h)UO=IDKMUX(;R|vs^)%hh#JNP;@nAzHS(?tfMNaN1eEoT?ozT{#^(zrPxYrKyT6RCP}oV6O!Ko4F*%T1^E=RX8GZKdx=*Ilb;K)RT$$D&fHWT`iF@)>N8YR?1n~=`tu| zRHYd_$V|MkFX7QjU5&oMrB@&}oU4)pYsTW{w63m`WavF(ww+GZ`FPtG!#L!F7P@uc zVS02o7etgvNZj=5m)^XgXHluoIgQ?QC^3^{!%=6WPR>xZn}sw8b|GPPI!Hh7R}Uj& zrnBOql{+Lu%haQt+T$avqYa`ZYe35^%b(Gk7V~BA5e1Gpw$292H{QVB_vtw0i8s87 z-=dvG2jsVn@l8+Ywf4`;Nghl#T2pgIKRWHR6Ewm8bTRp>$Nc}Gv zOyfMx;DBS|`>OTY!tP-F>%J~l^`O`@iJ9tedRV*r1o(7Mum)MZM7zRMueyubTKfEU;W2{%SPlDZ+%k; zFI@zpt9vN@fGhlFjn}$kB}s}33`(gYW-hc~)7CE&`VGkQG9KyIoT&>O8ue>!e3DB| zn5~B<1_!wtU1$THyr$n=co9)J^cY|bNDG?X*|>1iey3TgUvTZNcHI$x$r}T3F_6@+ z&ot;2n3FGi3=>)po~CelCtLJPbs()vje`#rNO)FhYZg^`*7;OId%Nk zip>jCQYNUMjqy;sT%`L}we(rBmtjj8xV>KtWY$GKe%MHS?fZw* z`x_$P_<;EH`}-n>$9Y}huDfbic^dabI}>$0*$~6lrWz8per_>t{U-92~d&*Fn#)%yHM`IbD`a=rP(Av z;9P0hAJOq|7RtoLbl>x0|Bmf~;sjLx6)cbmR_xxJ+A51N%gNQ6CJWuT`M_9IAT4bC zL40ssQ->3HTdrE2ZYl4-@NDg39oE=utWse!7kBPzvn0Y^8EWC|2+4{xtJF!xRK+`L z0q}uFnb%kd^yXFeOSaF=H4Vw3i*4;~<$g2fpNEeXP8X_PB=FrnKy(IUpK<8mwQDr+ z$6GS`=tJ5KtG*;Mo8jEH4F*WvoBUp7y~=8bxGBX*J%THX6#EEncM{df<5Nn0?~K|O zh~Sb@1Kw}(3F|z0$UK}yiIR()fVDV61-zUizxn=d_zAP#N(sVen2^wuHMsP|g914+ zB*zNFYg!F_p)|o&t-pW;tzUgf#@eM=A~m)6B#ZDjy0-@4fimpSS(NKV(eN2OOGo^2 zo7g+*b}M;t*4q}9^mw0cw$X(!;Sasp@&3xk->b)Hzq{HG>T4NQ!oGbIb;fty0TJui zjA>2a;Bj{eKCMIY?9BVWIK0y-Bv(AiByG9_Y=01Z@()uc*r>DV&yesW^MxZy3tA+* zwKyLhZFq%tnmH|)`Kz*lLXV1nw`9G`cP@UAye;%it|s@?VS@KeY+G`*FP+A6BxUXt z{>%9#LpeQNW65H3828%|w2B3b4iKIdEV_Ju7&J&3zkrsMdh|i=pSgP(dAZLZV0FsG zSB=@dWK(a8AbarB?|QD=4fi%qZM?W0p28}(QCCv`NE5ZUf5sp!@`Q4l9QPTe#ej?f z_F4YtO1J!vZUpR#wZ%K+6moAZZxesvQc?7uT6F7BEFUHq`evX?*4m%iNELHE08kAJ*r8b!*lKT8t7PSsMUwVfx_a@OSOS-Os$8pP-oDf%Co= z*MQRGXUJnzaR8n4so1~UIT4Tm)?dI}76|CEWtMbTByer5@o4_gJO+;!&|I21Vi>+x z?R(o^rG`_q3e7Jef+cF2j?p#xl+q-2BeCZ7qsWwtocdorPsF~7J8RQX5TAJ1O6lvA zqV~p~ot4|tDI?~KHFDG*P-qbtmwfaEutoO^@I!3m^f(?%cZ(pDOMv-KJsRuvG$q*H ztXUoX5LOZYqD7tnO-wzIg9+cUt>SstR*!vAb_YRzt(hN>Hv zFxQ538O!njAi>ZBcO^P&ux!N`aGU_E*00_STLM7jI1?-;_#79U~ipj7B~cVGm2 z*N&{gyEt@R*w@gQT!3Dq$x#8W zXn|u0=SK+wfJ2|5v}`CO-uX<=dCZN`La26z`pAnpM)Uk_Yk4;XP5wic2GNOG)m=|YI#)Fxq!4Z_BiVKPe|(IPyD`a3(Y@nj)DO-eCTjea|S2WQsV6#jV(zM zvt-jr(pj2SE|wIPtumxpX5M3ZS_!JZI3?AKX#^5AhsNf8(JDa%oi(uyvhcBUM1M$d zN^qA)uw1{ZvBFo4KZ)-Hi&>Zqi#|&DzfdP`w~>~++6aV)icD=IgzslOZTc1j{o43v z$-g}IqJ^(XvE<J~QBh2}!opk%WIxHJ22=d9En-X7W3TB7UTUbz{7g6s1kC+DBp1G->=alDI zu)sM75&714$R3CNUODxKfcaG79?@|0u>``9^}2{wb0>sN6PK~wT1q6&@DgOnZn7aMN1ZBk`PHdSoLa5C<$&!-%nm6 zx1gTM^tiGVOZt&7oPS#;-<4lyB#MOibVQ7IMvB3QWL@5W>d&N6>p4Ox*MOtCJ1QbJ z2yvSv02B^v^=5T$_54cR6NAe1o9qh_jQNl2>2xvZ&?3ZtEOh=?ECr-M-_rtKVo^qe znaJo+14$yw;E>9t0oyMu>k{?2oKMJgz&ALIz&@F6buuuJ8U~Q2`Eq zP)G+HTAX?$y`}O2H4h?syOIJ*HT|Mr;?uFN-33=y$pEG?rRS$Hseg^^z5V^GTt?Nr z(l=!R217!CMdZDQ>~HLyii@2El9tx=ojqqTp~`lJb*Csxvm$`3$5K!S9yR-b$nQ-* zo(9Mzmn*Gm%ukVw8fLeGQ9rL1`jvwVQjX_%03=Ys z-=iJ3)PqJuTT3;*y@u)^F8|_@BJz*sHF#{89=uoP+~`kpBWEc8ec&!-X~DOM<5%Bb zn!Biyq6BH?P4zh4^I<$nG|bG|ZFv_pJM2belB?aBaX4!S(!7_+w}D{B`Sk%r!eg7c z^LA1pETv>tnq}4F57P~4U*d)$26k+QRI44ER>Eyv#1?>D8l%y28uBxBhwI;-6%#{^ z4#oD8iCbJZ#<9DglYN&(x7FWPN-NBzaLxEP#2ISmKDTj& zX+D4c6g9!UeIElFfZv1t%^G|&= zVgm}0ad<$0a@lXYMhiLExq(bZk8NDl7IM%siqLs%dBj+9lqox)@_IG*kiE&^2;x%+ zjiEvcrfj{<_bwd$%qgAl?tUSlcFjlrYyvD*=Pb^ee12as znjw;>^IX&xV&2FC)uRQdqOout@JlVQsnHe=9#aaw_jj|Mf-(3Wb9F=%@^`FR;7P1A zCssxz#lvzfl*W}0HWkeq2Xofu&YIjs1-Ve%d8i01Vb-lmAkLcdSyhKG;zxv^?AGhB58QRT??Y}si*t-~(`7UxGMIM``e_Q*!sln%9 z>@;(x^z$wUHxHj&Ol8CJIG!bV_eh#W_|xB4p!#s5A`NVL@rv9_Z~peL&w@>_-8Anl zNrxr*WXuZ`@;Mu?GhQ`q^7eofLX8KN>KwUv-665n(6*s5QTK^N$_>A9G|SeY;MT`K zCLlo*5WER`Zg!9AudciNAsFb>ssPbU_1H29v^Gr+Z2I~d6JDb+ z4CG23-c+Tv1@>t3Qgtjkj30h_4WLJE z&pJZ``oB;pJQ9#3%c^Dr#>EScIOWWMudzkfF}?PqF$QSVp9-%c_m)s}+0&<=|8ywbc$BSYy4ljrCnYVcTk0O~0ARhioEK$#sx^;rXQ@io|fT zyZSaRTTADwc(o7*gU zX$#v{vb!l9@oYj#KMGrC00ULFH=F0<@Bi0ZPdEBX&ht%2se6H*-HVmCl382{Nr?Ib zw^N}$22KivL~zC`FE$UD5B2o`eThV% z?411$P+~6Vxjh-A{QNmlw3Shfqi|b|=EE6)+l@_Bln!8dYpt;ArAU_Y5t8uQ;ccCv zCVB%X?y<;Fd;^LIHD0Kwj7_gS72~)Zotx{atUs?j;|iQ)J4k#!=c9`tFTM$LQL>)= zo;*Vh&yjOv2u$N1RhK{(o>|ll7#U*JAx{TQ%m(_!`_2li*VG{h!TEwppxd=!zCtrzbqv#j$LNl_C~f92q>kK2UxRigxjt4#A}3+ zgQ9`r<^n_*lVk1G<_mPGpj8jGe1`Wj5z!)d@@|m3dV*R5YNkesm$rRK_OEy#D7`t- z2qTwdZor@%*L*Z8a2O**rMn?~RkIk|{RAD$5wKb4Has>c5Wr}NUMk9D11W{=PD+`P z$NmJRnWoLX*YAjoa!~-ZcjbtP&_1m;ZIS{;3K?oTJ?I$Kz{u|L5~|Yw zVZBGZ>IP-(4aazZo{)ZNMj6n=d*Ch!Xo6f4;blUxT--d|+-kMW_bK|an@~6q4I6NGf?39V)7?2c=Q{+1*3BTg4)G!@EIF13CU22 ziKIKg>_&XO*LU6r!NLg?{Ku}4(DDYl4k^%emjk4H*%d$?;%k69a>!};Lk&RQC${-L z4iJcV=MR+Gg%h*)`V<>heZf5s^<49@pKoLczw`wffQPgW&vlvenCOi=J7bwox~L^<8#TZV!O!?ZyCfRHY7aHYl}4TJL1T$ zQS{>?&%sc3C#Q5UZ88aU8mjjo^v)nB6rcary8pY^E@XMx zVMyH7(Y)DHY@CuZ-MNiOBm2rWP&WVG33`~Czg<1!7~BgK1$%9#!6Y`gotn@Ik)yjq z!aqogkY6OBXWqQVwG;`Q@3^my0yW%pmu3I4R<46`;bgynD#UG#N34F^<(w_tG9w9m zMv880wI1+D2<}+MXC+G1c`1~x$HlJ1J$bIyg+0R;$+byr7h8n~NEY5_mv{kgaRpdd zzJ7KUrZ35AS|tr%mBeX`7qnfcxGyzlR+cmCn8@9~{$?)$vY>pqU_a}K94500#65-g2x z-3vXWHn|6K{n1~L;&;UZuiNf?T@e{&-$*2XqWw(V>QMMnrEc%Z@g?yt z*P*q}1IjZ1VG$P`V3E>+2MCmciEu)$LewKL-1g&%)=CG9=P&_=|F0qde8U~YEA+mu zL^of&=U>EM%V7kLrvlCK!Z&Y3SmU!)oyCKvBa4b-Ki*#A)Z5u}t+=IniqA}V3@~=w zN2~0;^b5_a16}wV(PyVKhnHXY<`z zqe+whx>wep{1x4p!$e;PV-?$6hhzK#EE4I3nsl%iFE(f91r3}ZQro1GYEb+)Jpt&! z+U;WEF$gbfemQ0lR8RPxxvXopl(JeLzXvJler^zVHfa7bE1>Hm;Bp2&levy7 zGUX$LQSd06FuT2tDY3D8wZT~V0dd#=D2i)Pz% zEXGK8WU2+LE>G!w-i))+jJgc$pf)nAKtx5jBKzVieHY!wLLHswo_0rkzvHd!D{h&E ztR#Je{uu2}@GcVt=J4dc0V);29xdi}WRd2z$a!=GLiifadgOmUX=XAuHyy60e6k^o z3KsiK@XO#I=Cj#igeh^W5_51ZA=|wQmZ)Fd{on-5?7pV$&uy$uo z=Gsbwk^JuD6Nb;rp42JKeJeIUWaJz{lqE`%hQL~@0c#WP#4Dx|(+kw$IS}SQYA_5< z1y-iVDB7uVz7UMPn!OuKTA%GHLeQyKv()__78Xj`NC3%=v)Hmpl_a-qPXV{F=k%8> zTR_j|M~9@uUUJ6Ss1t@L3<0&(N`5?KG8$mN7iP z{{B!w>(;o>ki7ytcLz>M!RD2XUGbvJt)-#&cV(-n1=7d|suW9G zdPf$YsoAKFL`XCtVu)ZFZL8yB@j;Yt1_~kIAZ4*lqxKQtvHFDZ? zNf}9pmHp_>iq-OfDs+vD4B1n_Ig5JnNrb^;s(1Uiw3D88D^=>~qpoB#nX9P(ZD`bB z6C&*U4krHzCVv3U=^VhgYoy8NXoao0rlqGFoRXJMep2ruD<{Y4CIT(kpH0*5KdRnf ze8QPH5-E?z(Yg7{_zWX0`uYSGe$iIyja7=5#zF+K`o)v1cuZVwziXIm^i%??2tE zR6&8d=J=0-yM?qDH8rma|6=^q?T9U(^iMzb5-XqUZH&+Q5;7X~|OmA0cP{mamT|DeD<=`weNjFbTRN6YLHFf`v=rs+zoX6G=M zw+RU9DShGwXi6G{oS*=CPQK%+&Ci=J2LK;>uwcz*kY~uldf|shd9)@eJ#3vR7*)dxbLox>GHP9w(pQ}L zY4Kf!KS3|$Br_A;Zri_GzSzB# zQd3?L0xYhZO$fWx&7cFgF{(5NtY@Q zYgtwYd1nTDp8?(K1cc-w_l@i<2ngXTA}@i=;o2z5?aR5EM?xn869O&2jkJab{Ui>X z!YjJ~bX-Ox3;ODAGAPT$!jz{f*wYt5ZW_Op6H)^B?bh9mzWc082EY+9eCQ|#x8ORV z46T=kCIy!~b_8TIL6d<}yE8YI;1yc6!Tlg2LGj_khid>l*h{unYTx<0*ymbF^K1p% zCd-WhU{oc#tIl}={Xy_0f>hnO23j~{WFtWa6wU0Y9Rn7<&=ITVMr(GYr-b~n9nLH-&_4~+Hp9|yKJ;?y@?iUGTe;g2!Q~~;A zCo>ifNHHh+JlcSLK_xE$=DUYo@uMYkxm=DC|LJx?(JLueH+I%%WqY%^1up5sK{U!2 zHCbO8=(0ZWM-0l`jZmEkc*g^nNIZbGm3Wxzyq4K>O}fqpFu)*jDRkyAm%|aN*wF{pw^WfAr zyY0+pKSQHFMcl$uck4Il?yc=8bGnDhga7g6+_VP6SL!`Q_4OQGUATa?8G>M4LvQVf zzlxk1MALMjn&{WGe01L1e0B|BqCH$p5I+CP20S7^XNww}hADiY8eG~FAijzqIgul-iex;p| z7g;PF@S1f#n{O!}puE#e#{^>=gDOK}Gzthex(&O3@*IN@uLyBcTUPG+C~Bx4kNv^} zDB;>ZsdM8df{vkt{x51(v@bz!4F+3P=!U$889{)215&0%=avAgycS^nK@bEV@HI~ZZk!P^)N~WM z$T^aeBQ{4M*vhIZ&%+1(gLkTvo3wbnKFgmoZd2Q?U|i(#R$J#qUrzpt_;cyv8Y^mi`nbBfx*o}Y z#A1)56ocJNsvY@$JLx|Kb|o(^hc(`U=uSqnJunhX|Km;)OS)-j#aEM*j8zE%_BYJw zsY$%X69+4{lc#JjKb7iY&zvCjZr$V|U#ETull;Mry@vCGjF-&O*xq_(4%IGT;~elk z0I0G$jhW_tgG{@|n9xkMYJR*;GFXRC<&w6#zMVR9xu{ok(Oe)@CtM=VR{HdNT63Sh zwM0E;)CplR__|au5T#j>Kpzn_o?nP8&B^XXzO{31obU7=e}*VF*;uCq4^CW$5ub&Y zU?~PxA^qWUp5L|io+n_P7*98P($4+dJg@AD-<2i27<3pEjW75_R{Re^>-ogP24Q(D zAawvTsn=OA<U7C_DA6lU7)}E2`K&@%mKYL81XvX`%F*xB2WN)ODd1 z!i#!=zK|&2)ySzZjd6`CqG>siz8kmehQgR2c4JZ`1|@u2bWJFd%v}nh_suVI5ILbu)QoN3Lt;hG3OiB6*2Z)(Tq)lPMe-HJ$0=qlo>*w`y%+?jUpY zOhZ97c0iF@?#WT!FM?P4i3p{}yjhV(+9%w!wKs^kvQW(%_89ZWHSa8)(VH9HYSrmU zEB$sHkNUYQf!n;86~ zOz$BPEMI`6t_foXKV?;E#)SPmBrfQ5(+UHIgBwOHpiAO|^qRdIPt5XdpzM%YdQo3? zsh1hrgLutf-(?gU9?4v%QkD%6RXi!=!rE5YgU(y3>DCYGyW)MT=QUi08|YbxeA(O< z@nr*snBHa4R51!fF*+gZzz?(AzG>9(U#pCU|%~^j6Y*83Dm#5Y6Npcj$^vFJB=5*dd z{s4u-SHorK!OZ!~ITaE*_C(u4-Pt{QY9!*b$MGL#!@)&F9f`TdG>mR3xv7?MRc5th+5y5B9>Qp8b?G z^ycAfDi`x{r-wvcs-8Vn?Z-)(UFq@CS%u8;S-z&mC;|2&Eo{tVk>A_5yR*M;W zVsnjlC}V`ov?zQL)Byv@y>~coS`Nh_0L@9 z!~lWuecGV>lc=?~bW6!Lglvw$ZO{m$I0nIsF-#xqp$}7LC|JiG3yM$pTO?Z+cX2k4 SZ&3p4x#q@KjL;WcWB(6m-js#_ literal 0 HcmV?d00001 diff --git a/Clockwork/Web/public/img/whats-new/4.1/new-settings-modal.png b/Clockwork/Web/public/img/whats-new/4.1/new-settings-modal.png new file mode 100644 index 0000000000000000000000000000000000000000..d0fc6d1e7952f13899fd9570bf9f8d3db4f39a0e GIT binary patch literal 409501 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
QN{ZQz8grpbF~k_X5Mh^edA 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

VsOIne*aWwab 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

Fc2?SH>%u>5~# z#E1!}Qjp%9HNeV%gP1g}+0I|->OcOp3p60@c?Yy9-Y~p8eqJ^lJ0|nHL|1<=fm{~l z$ED$e&f%#}L%8;wa24HSJ+Lw;sQr~+d-ya5?afys9~LTXhq(M=IIKZ4`5bXF_&X`} zx+>qg9I%H zlv=FEZU}}qP~N0zli8l^r6op=4n`Xzxw-#Gfd8vSdxFuG4? z?cUq5K49WAy3;EEt~M?F*r5Q^%5c0v&JlFBz<+2FlO=p+ zp6sLkbd>U|Roy5dZTYrM(Oh)S5<_BfJIN?7v@EeDVU8i!&aj#9?8}E7xN~7l%hoO zHF(jLntxAkrTQo+ZXCLpMbK_gU;!^8Jlx>tHwfymUn>?~_bz)RBHSqoux4epAcT_* z4teSzk*TR;Cn=^fVpaS8y{dRi4jcquC03b}Zz9-5oI z8a+uAi#kKInNi1e^3&R#m3N_LRRs<@kt8D#ROio^2NEBCp3MtGN1)XA-;C*IE%!)4v8(>nuUs?nJ78tR0ZzpW}!3fso38luAQI9p~n?M(R}fO%Fir$ zcZrP576Itj4AdaBv4+q?q6qVLf1xve$LAt$_VolsD0l`eKC^(k9Z*!e2)67tk8|`U zChNhZ3*|^rJp#AmEbA3717N7&@zf%}fY63mtn%-WBqK!$Klo?kZHl0H;}!UlnkjzG zruFHc1fSW`4D24CqDi$8`zWn-fg1Q#-)Ef?XtyE(mK3RH0(CckYwKAF5$+3;lv zQr2ENW8^JRc%p~G0@tnwK*F$l=3wULnnzQ@P$)=T=p^g~VyPK3C{k`uWBka86owY4 zbw1iIfet8`fHfhrr#l9JxEg9XK>q}1A<_x_-marObyA=gX}#?UAJmXh?5gUaC;jJx zM17AZ7lgwB-Orw0ADcmO!JtMGp51?#Ie7$8vh~5d!svZu)NdDz_m6z^pO@RE*T3U7 zL-CyL)mbBH#}lQ~d}V{BUH>r($VUVa@{4wK`wuZpnXVF3xxT^yMzaS$%P_uMUzSu7 zZiX2l@iHW6Vb0=PS+YT%syP|No%OeOp|qg+AU;5j+4DI-MU)uCy#y$NNo-Sv+2i4; z9_UcqA(PMzGoTi#=K2gcx9q-tpqBM}6;SZyKRrRt5?ufIRZ_Te>9-R{(pAflOGWa&bms_BckzKyeC}T!JMV9j)wk2aN>KNJ_i z#_S&YtBMsT2Q{j`0^be++wS0Si8*!A`PYy6lPav{KK7LzWb{%T6K3*aENGeK9qX*` zr0dVkPntIATua)>(r%$Yxwn=B3y zWL@%ZIsC{*)H5>(SVne>E^l}-NbLLfZ6qaa6Kv3}Ksxns6O_4T5xXEBqdzeXoOz1e zEmj(kq}Wb8egw|f+%3jXiSg&BXJCU&gZ4)>CCs4EAdWMMqAHc)%*C#wiwqN%k!osc zK-7yYf(HJ!g+vEOY*>W20?bF1MzLq{rXZ4++uRAwh)f6;)D6QxSC)mc@v<}T-rWBp zyFBH@@3oN8ekw6J_w}YmF~hWRZ{ZR{adihbyZ27}_Ty(Rdr?MG3O0|~%s&jBj`-$z zf1)36HNLR_ax<{N;$jPyg6UZGi6cjhBrSGb=4VmWovA3o`&%gIrEq$sp){p~f(yGl z5r-Hp#v;iYSVrf;>O0C4(=OwoOjbO*O*bynWTPBUdg1G){EYEH&Lo4;0-N~`z zdZUiwAWy1gSp#KD>-3l=6jFBitwqvX#{+!%x}{lz!js2GHTOj%eB1CEQ_wM=Nb#pu zuS9ASK)7?6cK^RkWm*ud)R=`f$_mr=Pq%N_&rn}g5q0$EV5X?)g5q!*C9=t$wC@`p z8Bn==>Ttm~#$?l>DUUB-zTAy%FLo1VTr*4p2z+kJDuutBgthPY*;>m4;@gOOwVCkX zF%_FffrH01DRH*cJ#BhIb}Hl4Z%||*sB2S-W>3}Glnv9r2yUKnhpN}fk zC#@WY;)-=8FHg~*CAd749MXlRQ=PB9Z@OK;pz9nhxf=cH^aoM$l-;04VNEx`FVj$J z(LtsO#Aw_!OIqOh)J6tDt1gk)D`I{tY-qKwhr3zM_xF^Q6vtZYR_PM}4S9#sI+q06 zm#(2398bRLd(1{XrjDyn^RF+CARHx-)!E?8d4ReuwVklyt&BZBY1Wx7eK3cP^Zt|n z+!Ic1oGV&IX{dA`7aBexyzJD!I8qyXNcpk*9EFkN(x;`<-7bWg*O$AQJHc^|Q1UPr zPK?97%e;^1gOkKOoqNm^;7E|2s|SWUB@{sMMKFrIf|Y=99vM;EfVPCp)sg4hA6g7b&RF=5@pv z$uZN7L=IOOjkrnvx{ATO*^Sfk zvg)Ip{6)-rZT|W6MvvC)1b+hYz!vE0FBAXWPfx26-mLKaB}LZlROkBqKy*>v$~{2? zii&8-$F;%yX5nE&U7`1)fCl%OJ3~tg=k%E~UGRLF$!{a*+-JHzyVtzo&}ms(pF^uC z?7r*GhW}3R*nXOW z^UfOxt8sFnROMo|-3oZp&}^OOxBIduH-&?i%Z?ESTSBmbv@}7Uo)UK*23`)`Rma@K z$-SZ^{Y!5i`{>k}WacKH{zx5SZ|h5#-6}I_zek(3I9%%&vupMfRX_9;w}@a})Y&uh zsBlm{tcK_#XMDq3bZ3n~gWJW^?Ig~t?&-_HL{hUjKlQS0Iq1-vCCH&reznd?zu2hk z^iB77H#_wnK{%2Q_At#nZ&6SfJF4AiQqH@ z%Dqv_B9mummp;QA)opf7gQv~@<=Zqp@xEuZBpKo{85 zKD{epS0B3U8{-hp?t62{qAjK+=HyrE^E}q7JMW`3d5WZnBVwq|nrDNqIl6GD?RfHM z^^oh|r7f-tyQpeUH8?~_oN>Or+WNA*%xTh@1vaKyD(za;dLpJ)-Ptp_3_*IGE*Gh**fEDK0>Cg#|na@0)74C@O+IwM8*OD-{Q z8~|(z=TLg1C?a=_IU(1mjfi^RZf%XS*LrczL)YW2$AAaDr|!QzgOmwRP_w@0;x$Fx zi~KSU$Ue#4bH+RF@X0s{q3((NKWsoXq*j{X^pI!lNGo_iWCBO%eY5HC$XjXX!3%D^ zmGBXTVBCVu+G&FXbRn=0ZQQ^*fOSBS^58eeN?ZE9)A?*POrn}Evd!si>U*4=oOmTJ zQ09QA*|wyvE+Ly%#4o|hM*$U)5nZgrF0~N&Rxiz`!c@`WN*!0pr*O+mt|7~Su-BEg z*>?0?HLMgsz)C1E_k1%L=W0E3l3hPii|CCMT_?S0M7VdY8_VoNwd+;FD7dzXk&^=C zYV~>Ic$G$cg?3K64rOA-pY}elbV!eolgM9m$MqR=DKv+5#hs*i?Ipt57VMzuJSJ?p zPglRrgEx#tGD!lIj*o1~=`Nj%0~>()RH~HQhiLC;-gqnh-8J4mgTb{@E$4mJ?H8{- z|2e*%Z#@V8WsEN%eqc*-!#hb~t>c!92X#%VkrYE z%dzL&Ar7N#>~G>K>&V@5EZrG*qb(uOU`v|L(g$R#+t>=oF6c3-fI6f`qgR1pZOmc= z*_UENuvB)dxb?J(SZYiFdZc-L8PK7LV2%<*a}LH^D#>a0J-ASDIPYptMT{JqYx6vC zk6nuCB=&png~|V+08Xhrc~>rPs5;p%&pyQ6HoXs6E?c4ohI;!2Z8SnEm{2=Q^?@CJ z_;q6q;Zs?nLw3iz$fPT~3F7u5tOAy@7WRuuknI=py}0_*Ok z&@=Y_V0=F{D{R}|J0l9+NG{$HN++_aa@hIk2%IR^B#@$f17~CHsWuBYUuGeD#t|^0 zqBza;Kts3C8kntpE})6n1Z|? zKFDzJtLrS9Wh$@sN@Tj*?+Oo zRmD59&w?IRFXWx-;ccI7sc*Cu^~{b@t$lyPp(Qk@==dJ8=NI6g+XFU`E&c3O7mkM{LAS- z^yjX;k796dUd_cJwBGw(y}J{rCYetyF|jezsCRaUm~?Wra?4n=$s{`|n|T_t`vQgh zxhIxXwI+lZyeHwkJK6|`ryil17+tIHO>&-)Mq^&vJf3pQ3u5pc;0gZ{#u4izE3R z$_OL6a%I6r5C4DJ8Gg@VsWt&WhTH>i+@LD�{QpJ9E;oo(o@Bz;bnjs$9{`TUKxA zG*2koSy|<2dX8Cof^)L~2|w|KRFtz6JbU|1U46nMpU#|Qtu4kbp_<4fIptfokng2y zC9{3P#V$@FIg?Mg_-AqD_@;}eag0~9O?66^K2zPZ(7W*Ixs~^^4Sqp~UL!7aPOE+P zi_)z8)`LlpuhF6kb@E&%mD}|I!f`4I7@HWYZ?D+!CYvjhcc<5(gwzEIv`+v`_M6#$ zFYJc0KuJ1p3v|C*C^vp|vB#it)9Zt6@%O^>#ixtU|97KUDMcV{Yq62_l8AQ6q$u0{ zId?CAY}ZD|bn^|-_QqkOPgY&wt>>6JeU?DXU-~2CTa&E!;&)ZaOSm~2wJc)kqb2Tx zs<%uozF;-+S{WqFJA=U@S|dK!)@YKU30YUtb3~iY8uumjj_G%qAAHWiCdf5^~7n# zgcSSr;o8$LtWlwozJtaNms{N|o8sRH5U}oPJc^eUml~GkZMVbA{2Evl$~$CaWN;M_ ziD&}sDg#?#-FIDYh>%lNRdsuZcCj}*qGqyaVBGPXu>w`3dpUzcrmBh48)FqCIU}8a zY}^0*FK6vT6uF=P+*QAlzlVOX6X2}~RV<6Wekbv|)I#t>XDF{JqwHT%x1F*1rX)Kf zbV<*l?M44nTV3M@%kYw8Ngfw}kjB+f*_m-w+ znjwyUHm^|~4U}DJ|H4dR z$-{Pmw7N{pBzda`4rXv$^RFR;qN8S2LnDQuU$XF2eRR%%v6 z|Fa<^RjxhoyJz)?pUgpM^;HTm?CuuT-I2=OTNNH>B7f#W$*0Sp2BZDsBu92Hu_!JA z8-2!oAC8WJ*wj*0p|YbIOmYjyA@&d#_)t8{n~skP_qoQ7`l)}OoJd4y-Vpifo-EVU z$Ay@ei&;?ZZuAr|`Bi#-%phOc(7Hd*Zne@J&CNjWF)brRgyE+5?Yg|K*|F>1+b1si zHNseKU$@~Fld>RAD8rZin3km9=59in=Sci>JbSoTl-uIZEK$v5mu?Kd(Gn%&sZ|xS zMg>wd3cMGq*$3QKb<&~SzCRmMsdKbNQ;Qw2l@b$mAS*^~+>$O@c1DAT!bmc&>4ExJ zR2PCvcoR94Abp$_HCAl9QoSf8PyT|!IBEMN=T&NQi@;e|F(a))Wn_!`s`9|R^+X7#r zLvDX{RaG2tO<76M4*?w>V#|H)prY=4o#HGY(M#SCOXP}@zl^n_7F(8bMfmL^kxYA} zcF8UMgIamB@k`YQ!x)Jd7SNgd`U-UY;f(0h&euLJn$x+v`aS1hj&@=^TUM@C{u3i# zA~Vj%QRmXh_il^{2bf1e&Xmao!ulG8rJH9vBi zCx%NiqI{&5*3c23%a%3HjgB?s)f~apyCTG$$$m2%Ph-0XDh)DUzL>Z+{*Wa5c;*(( zp1A!))I#`7`$!fntA|9x?0sv#9inrb)=*WhkpvKC4HOw>;g&K*9;fLv&ipK4W%B$L z<)QXFbW6GS{>B4&zP|=pYV^<6JzJK*(hmscTo6D3;=3ZW za#SzQ2IoQ6eSN#NjgmNG=MGV=bX?=?*p_UKlxf$yv#*%Za@Tf6kr-C#Ge=#s-Z5>t zxzdNL_9rbiY;EOh!y$k%93dB4?%&y}u(0e4E-y2~^O0J$Xu4t~)7Y!uiLU0HDlZ~! zdE%BX*Sc;*3yk|)X&Nx5cBfzIDpjdVW#-}JOyTbkmEf79o~1B%bL1i{EtY3{v-2O6 zEv+MO?V)JpjF6!^hze3oxM`=Z6YjBCJ#9&8ELB4)T7qi3RI8`3U46uhd%Sc)*hAy@ zFkUeAYQ16n{4UMe1IO;ZJe5rQJnyf_cqR4Hv@zftfi$uoC4`BU&oeZm0MovlyGGGK z6|+)(MX;ag@Q4rJa#KyruHLtbx@*iP*5J6ygR5}D9>BNOEH*fZ9rA%$$gW60r5EQ8 zK}xM!C@P4JSgJKfxNgBr>RB&Q?i<`#&w{FA0%~XUpzF7`8fmX1M~_;;CcFx|dfnhw z^38RJyfXj|=!xVIXfTM3Z|WF%%8bAcuHVl87T~l!Ffg|$)hjSgjr-lR1s4O$=D?Gy z%S|*IAVbyX0Si4H@=cZfWt-I$>x|viY)Q5s#h|Rdif-7|Dr^GP3k8ZuV2z~5^4JF7 zpJBvCcd8X_V0jQ@$k&pfBeo$&-p#1)+joF>rgOia?7N>9FC`H%hcx~QIi!>?kmJdu zB*-L4F*!?r{E@F9pKX`)wyOep3R{z6?xIxjMc4#i$Ef307SmgG4VMtKvNuYz*qV4v zW+(J#)B?(E$H4l%xfQ4Uf>vsST#_EUkq`uW=)3~xNS1*|APLytc&$IECL2HSlc_gN zb~{~$qhh=8`*^fQQj`kUtn=)J>;@VA3N)tIKwknK;>#gigIYQX z=hpv&yvf}baWp1p=qy*ll=;X-aZu>d*fRyzP?wpCAr{5C0cJOEuI#RIr^%d|@B>2t zT*G=kOzE17y39zWs;>HNP~1pio+?x9Qla6gxWAwrnhiZ5r7Q=DTexHk7Mi6yD6kr! z9p&Z@cjK7eVoa%D`ObmA@_WRjCfu@^3oNN(_LT@SrRnXz<9aj@M|-M|=d!ixxsMTh z{Fxb=CC($0B{{a=j(1Y~y<{9oWnjwvYhF9=*+g%nVwpZdBZ!0paGPSNTe#{T26*c8+Z;<^=+HqmH5~D=DpPScy0XZNGz!q|e9YJ z@t^O_&?~pjUF>CyPZD*tzDfnUma4SmJ`x5}0RkvajQ!b)=1Ix|lzM7OS;-Vvdz-+M{#l z9xn5KZau)liY!>>ZEB@vkw$Xjc_&>nWGU^D4;y50_@%<3rj7=iP6^`A3LiDq3d14o)OBe8E+9JdB+>bD zv}HH(^ce}jLdb1}YWmB>mrE!qUYC>@Bi~JPz4s6H?DxM#30N$l5uCbCv6#`TM~Vzo zC}EI<<2$gE;E0q=G;0=85ig)1952)>zb8I@g9v^=w<%6TA6I)6Qpf($gr^P2_B2a4 zFnPcrFY{Ti%;%pw)-|Y_aD^?jtCb&d=D~y4%wJj$v2Y-NESEI3o?uZxD&k8fnJoS~ z2_w&8{fs{}Cy)iA{FHL))B9o>yAwqxDosj$lY-=iF6az7>eymR?jT=E{mIPwd@evkU$EQ1_kj5Bk2`tVT(MuBW@}1lUT-uQXlqM}pFKNh68rh7 zc1&!n#zfTQQrmi>MY4xDz_V{XI3A9iL=_%c`&va+xG|6ld_mMZ!#AL0V}f4CH_;O@W#1u z(-#r+jFsnv?RPv!vPH(?PdnziRopsGIA*ODJ(KeCPSYS=mzH=%cXLxe{L|@u-qhd4 z1ru!8WyXu-j$UwaY4dS;u#<8`y)t(p&onTCO(M(LERccx8aVyuY=^5(?)&G(`s3#Z z^APkr7dRv*j6+)d+aY<=fA42}pPnPiW5?b8S9 z?T@w*(7*ZScLE_pzKo?3q{&T5NkMH>uqz8gAvKxcJRCxC5B37LI4h9wMFBnw=?Jm> z+6K88sb2$bu^*OM1p=Q%oRrYsh{NyNy~Lh%9NvwfOQJq^U{a5}?>k@4EkWw~8kgHc zNQU0Wf=s>EtmQe?A)LJ}0sD4a3#>Fk;t?}5JG*I*X$(|G&eQhny4qSBwrRJXV$nd_ z;(1$I|AE_~OwYUifZge~b}^9Yj^6U1H|A^` zbzoTem+%`Q7{aNU@SktJeDw7rTnd(A{v6N}{~&VA^yoLV`p}xpp6S-?x_ic*q4q2RAG>_=Cj1mRLTzzUw;v>VL0jUKKp0wAFaG_bnkcukkb_fSa<=IK`!9ijaI zPwcnFH+V+~`hcL7)+12&Laf3z&;v#A>lw^T7>Eq?T|daTax-o(r9#s;*Ysrslf+BM z;YYhp2_60s$0cMp?&k(#WBd!UZoM|Ic^xaGDHKcD8P%B9^2P+D#154Gls|a$Yj%Hm z$X*m>oquUP$6|y0K`;ML!0=^ha9~z!Ylv|N2WF<<4$NUOQ8!ID9GSp@nU>Hl z=Bz&*nCqTb7rNHP5GVJvez>zz$A>%kN)>a}6mZ{9?wQhEc0*tjt{B}uNSw(?k`y9x zc|9I%t?%8bSXCj$MMo?3|7t0FFw@{U7uBqXffFOJ!3<$#Gyo@Ehe0Lp!yo%(54+4Sf z<)H_)K;Y5?0+*0R25{kjD^M#rI=BrJjJ*2jU7FQCq6o3Z9?3?&CbB=R{C2JGc9Sn3 z_b>W5+o--|?2T;*CTC9c7@sH8y#$t|zn9qjdwb1F-)|u!iPV;Ig+mppojRPx8mU9n z-%0=j(B);`4NRc$PK6y} zCW2Px;be&Izu*MY>;#ocjnp|;Xvy}# zvY!D_EAEr;Ezw1ZID^)++y;R((4g)Krn}7~Xnp2(&IzGi6X>@O-DA{%@$AFHsjTYB zScz<6bal8JeHA@Hjk;sVaOQQ~%Y7x-`Wu!6Bjj07H-?yJ<|1xzfV!{UHCLHB*EBRj zP-4pQ>0cA`!nH_0r7((5bP${Ac?Ix^){kS=ZeF$WUMMu^vS8p*vk#h8va8Ped22Lz zvf~(}4i)ox>X>fotFVs0Z|bC&s_qt9o5yEs%}u#FW}{??%b}x;@95pxW=>*Nkjb#Wv3OywEimv@M zE#bd#5mr81_%+7LNa{M%|3lh)07aEWYonlps0f$wCJ9ZGY2G@_ICoyvdsVmoze`JMrs%NyoW0lj))&&n zL-f1&8n5~13*U^D!;}s!9A8w4p3P)q`yJ{{?k!<(Zz>uqwJ?rns zAN{K!I35Wpyc|b%R%@sljxuoz^>KLe=s$kON#Fi<=-ME+wpOlf zz?Y(o?kEC9!RD)nB&S^4S{*5NM3$$S`C{IbN>w|H)u&J`CV3u+cB}4b<9C$}zv$ZtaW&A!AYGHB{|0hy6Z!`qmns!?nc{TD0HS6R(79 z!qY@>=$Ln)Sp*)&c`oHvb&Z@O(RGc`bau8;MRoo@!IL)IFrcC$MLMA5@#M6DeMju| z&G_E-{_feDo{F7F`5DaUqiIrkd@@6vTNKH$LF4*ZZSzc?pAipXb-8F+P_}NArjy~m z9XVp1ieAjsD-6h~T-Ad-n&T3XgSg_gyXNIIn_ZmQ+NNJ@6P!^G5S}JAYZ+v`XZ7-y zO(%6W5XS28mC(u*)XpM)B1j^D(=XGg4DU5?H=BN|z>^3)t2zbJN_O7U(xP|SH&Q~u zEPJP3SLpL;vK2NKKkOAS#U6P5d!Ic!?fh=$K6=!*|2y9_@H;eX zuD=;RK<0h+S+Q2y1DU#4$ES9Gb5^b{Z(W~{ptbmsGLmUpk#F;u5MSME}k zJW@l=@@V<}AH2f*C1VnSzYao?vmg|?XEUUzt#ZyG1qnq~czr>7-q*q++crhfrF=}F z^oXpuo+Nk0Am1VTN;GGcHhm#;9{<~W!*`Z84`mpX3lbNHPmrecjog23AhO7cd`Uam8XjM#;nJ!|KWz+7L+X?J}-SO!wx+-e#uf~S^oH?IxSTi9yo z=NL+{M>3vlE(q9t0@=TxTz5(eExQ8{o+^vz^a-<~KS^O$Wtg`6A zrR-m<=Y{I)n?uIi0n42M+J6#oE+rD}5efxdy6>)`a>*~-u17)xxA#c6p90d@mfxEp zu9#V|*9X#-=Jz{!Xnn^VU-2z^ShO0Qm|bx}eWIwR6?<4i>N1}4X1acAH%p$+xo#oO zQuKwMGjW^t8Q>9s0E`ki{bt_#C1H<$zE9*i4Zt2{A{8Z~>!_g-JL1&>^|9iM4f6g% zv?K-9H5?B`1-E6)^8R&iI# zDeanS|1@%N@ZN-+#{{sOycdjc-y~c~Sex?TA&)f!2LlE+n*$mQyhqLk`h6JT3y8cI z$(HrofF)d@eeMs-kbUy~p(!bT7={}Xt)a)OVs}iQ^Wu-B1-OWv;8KFwn#UGv8)P)UsA}YHjw+>Fs>_|rH(-P!GV}04XN9AIM1OJet$tf7 z+x@mwqAJK`E$yaLa3;QJuCSXyVbphfr{b6~rl}}HA^E`vJOL#sA|i6gmeOytWXlO! zn5D$A67H_`XYsO9)_vNkn@Bd@{7|L-tGE-4+Y*2m_hCb1-h^ALL{#&M)mi)VF z|BcP`Gp+wU`u1`HZy#NT^>MFAwh&Iz=i;_Vi}SKnCX|J-r*k}26*3u8RXx)7;iGf` zX3YSA1-}8!6O1pi(OoU^Qbq>1AHc}g3p06OA2|{`$^!WoPW6mt>D6r;0-kNQo3gYL z?`{R1l7XC(i?K+Uh8w7d?kYBTv5GjHC(ixqD&|3njIGUfXE8htE@xY^s)!wsc?PsP zCoq=Da$bU;WVs#tz8Ggps&qk+uJe{28QJZDq3mu8T>pW0Ratud*=1SFZLgOUKIl^`8k-G(y~4AZO-%05q9M)%&H7OtvwvuKCNmd zWPoZcdSAYSo1Dy0-re3G4x`mtiFJ97mKY)JVbf$r*l48jmV;#iuop2&xgu(;^s@zG z*iTlZ>k))vQzUEAg=?cJ%7*~2RQ$R%JQ;?eWjih&ffd(EWBmN8RHu5^SM!)jtt~CwS7~=Y$o2rZ zo)F#h4B?4d#=)*TX6s7keSW01<(Xh_N|m-i(x6wjTJ^*O8TwLX{QbFc=TYY|=W*u= z=Sk;Vy%xw;cUk*DN5X3N%tAHwbg6Oh%&YL2^^gV?OGRC`((9|uPn|Y?YN5xQc=bA! zzOE&Qk{Ztl)yHEA4CM%50(fX#+*ACOXh1v%#^FXyg;azN*kYGT$4Y|T#Gg5wC|fK! za6LtqI)HfOjn8HH1XSZ-+n`qN|NWVrsA4`BI}sV zw?fAkmgfdjom)SOtU$Zd2{V(_IDXI2w58vVr%H8^z-_W|Q$&q9 z2||%XU>f>t1@hsu^c|L83;CsN&=*#CFdxMQzCz}c)&nJKEkZCDQBSmjqms?<9hD0% z{lRjpGg0%l8%ma<2Dk+%-W9TH3>p`VtR}2k zd{7`}ez=MvOfC|m1+6pD<>OOFpoVi87_U8{qN&7O5+h(zv@d45gTmQjb#wE&mxj+@ zw>&nV8W=qN?WcEjSLaog_AX4u&4G87dFRgAN6?e!*?30PTJG;afNyE(^DPn$9n&(uN07JA}GF z(?;va*Rfn*Ps0BEz(0dfVv4<#Fdz;whb+|s=UJ_8wU{W~Do>B@!f4);Xn<`w*p=&y zmjLnC%q}+7#n(b=6d9Si3VZGWmwnQw1|kTVSvg6dS34?(Y>(bmPf-5o`{A7bNtd%|;wM+g&*&FOs_T-OKdm;U9;Q8vUwO1k@~0ts`Q-Ro}SFbJHi z!Q&;JckS!AhSZ!N!|Nw*^W1$MZ%3X6VB3A?9%TD{uGDl>RS4F9NHQm8ANkDYuR7d= zkNSW*-efd%Q8rf8`9|B0O?TOoU-{}?4qrYLns?lYC2KZ13Nl7Lk7GY&rf%As(Xb3V zyv{bNiUZoP_Lu~XPOd?@mIN-`5m}Yn5~TvO#+S&}0ViN#acY;r=fS`jl&h3;C*gmm zFJtJKiZ9=eo&Lh2K01@{w1xY|@3r_b=sDtuWwH-#wRGsxM-WG&V}3jL8ZcN+MBq#A zoI-WN1cqbKu}vbPj0aIn5~n-PSs*TuWYRZHTjKlgu_J*i)W=c<>qLJgH5Z>5iXzqo z2tf4`;aFHu#OV@rM(b89&XQ@yvN^w2d}#KSF#m(bV{br69YzOUjl}~>h zigSH#f>z3!bzHnbQtvH)mBny(Dy*Q_tqh2`E1_Q7KFShAP0=y`a}UcX)IYD&zaH(0 z^2&4X(KU-Wjff!ga*%Zh({nhQaNxHyK+f{p{K$WShqP%^OUow>Wsy&{R&a-EqV!83 zOJy417wzC8@l=b<+2T<+ihcedFsM@@a^i&Pb(@9(;UG%h(188JAQe^*uFcfWWwjrY z^w?B|8bQHnn8q)620^(uSLd@lugAy6ve<7TwIW#Y$snRb4B=+l-lds-yv6JBT~gt- z*%)9Ene6c#iCVqBJ=d_u2-98R^uTkhJQsQ5WHT|#_SKzm%EHxw8P#EWVx>>|XJT`Z z%E0Ye=GgXOvd0~kH}RgMmAKfK4(*$ghZ3r<`tq);QfY6XsCYutOSDDT`TWi{j zgiXZ7Ka=qn*qO>9Oc&TTIOaB~8Ly?(I#$_TuS!+f>t^j0uJ3+m-RNyf&y~UhU}|%- zV_!**j{kVq4J_{+Wyu-4<4nifUGAzX@($B#8x`@PYLh>4iw$jRQS{K76I+C5qYk0G zv^XD}g0DQ;zsqI5KY~VT+YV69dwmwdWJ+~aJ;bdDuBxe><(`-x0vxoRVAd}UxW`!! z&{P+A?mQ)mqMqBpR{Ywca^x#|&b%tWdk1X)6B`)$AHQTl2(U(r$dX>UoTlXg6+Sge zdD(Md6G-VNV_!z6mhtJP+PWU`fg|BAGmKB~0}3`w4CqT3T8kqFQkI;$ELeok<_pZ}8bF=z327oUMm*@2EmA2lBEA z0GHyWvIHR`TY@uBVKJ{rNl9Hd@!pKz-A*f;rT2 z3j6U}NTg;`D{k<$2rq9gW{t_c*Mvr`c}+N_<&4E*IjaXNjkY5@w#|>tQ)jI0slOhr z%2vx>accTDXxpr8%82vaE+>CeYENxn`?U_6f}_p_WQFGfe$ZX@5LFX9Cd#E@uVB-8 zqpHZfl3Tl<3T#h?l)n}@+tr1%&r*)3tK3On)O@gW4g1B|2ai^)D|VW~9@?5b+bHNVfFndc6YwE%%GK>3<=3^G#X;Ns$1DvJ-~ zMe7WnU4!YeD($TPNBaCnK~o-CT!2 zWwg;+Bh@Ma2|4$;7p7_%gxwgoaiFHp!MHI~zIBsu`z@!uAXo=cG(#ZYzq#|Euj{Ls zO7{i)(6hx)Ryn1<^+AlXK$Y{>tAatd+yJHfo32^ry4h-iBLk-=E6>Rm2AR@v421FB zK5>$(8%9cwv z|7K-twef}lrPpqr-RO<(g610XN0PQVFbo(VtdDvNpmJ8{21+$N{Ep7>v>5JyU4k#^ zC-!GcMFrcpXTzxbU?h+z)jU(Gum(!bd$Rd(?u)H#BH2Isp)pafsMP$ZR0w-cqeqLK z+Tt$)5b|?7_b1zy0E^2_`PtiWOwfNTtlhUC(qHH<=Do=&GLGyM<~3OKpVR@nnoEj1 zPqIB#V|rFH*!RnGS{`FSnfH8*)=Av4EkUy?k z=wN1+1SGIK)J?(txp6c{3Ibq6W!5b&g`#XrC+WdQ%l>t*guBh@1^HUAEI1kq%3!py z*@AK%?lnZ_MK4N@I5r`oSL;qO*(K3IcR~v~_Osj8*2;{AC2L%yn1f@Z{-S4{j5Upt zBkBoD8^c0R1@g|}ks&1^NV(Cr5iPVk{h_9A`;mnW=0X+i$ZXS6Yx1~N zpZ0xwx#=zc7ccge0r5ySxcclHgW?TQfwl(J<0A#>0Y+xEW--#xDa`B|}t>aAzFQ zo7~7cAKrmwt8G@5aU^IF^9V4J8ARRw+!RfBjFy9RfjeGW-M$wO@JJSJ;A#-B9zh&Q zP-Z|^+Vtm*8PO4bu*b6#iU`ZDx)o?c^N(JYTL2J@=b~VNy-z+e#UWRR3B!fOZKb#d zHz`YMzj9{##t*!tB{wFcpmClas6Mzv&j=jpW{FNysIPEmy~r!t8ZDsE(!la=qg03u z435PZ+)DJnqM8j!Zx#t{Qn_VPRX{{Uc)LW=_;Vmz`hmv&f~vWFV;UiFs7Me`B4Stk z+36}EgSI=l9}DmG6T1!UF@0y^Y7vCiX+P6$Aq2d0%SwaT#U^)A@?W~Qiz;O;S|B0 zR4qJwFEFZZ)Ply)@wbTjnpM@&!k2q4uF{?FE_mTDig?|<^Rucxyz0~4#@%Si=N7Ur zKPlyLiS_$2aC=*sQv~yIvTMH#pc2zNeP7w^_2iG4JK_i2@gLOiF>ut>>&A0rcn+*< zXCe#`2CIzqhg>M^SUA6=+60z`}1d-OJoZmC<}A+pmntLpY^$pArT;F_a&X(?Q520QPK z5zeC58*tw4G(xC_`*dfg*oM{Z5B6HwW*EJHX(g+uc2`vCYjDm%hE< zfY$HJhF_6;PE&E?lwOAWNnVH84yO= z-Q|wZbQ4hQ+rwmj>-@%=*O`myyapbRrE?A3`;tjRii?)NH$=Ha12>uG1u;QF;b{Jd z;~`Q=^;am~)Vu67cxk<)j<$(=POwC5EVK;8zDpjpYF}2?ai_eRn{g^MIYczGc4cU= zL=ub`j^`5A$lbNM(J^$pWHDYQ3p?LL-`btAe3^!{HE(%h328rChqZ2!dNE*=OH@*m z`fNU&qN|sQZ7;i2-e1qyUvaJ4+MF^-fBV!?F-_Yn>({~j1?Qh~5q%Ez2z4cR-Y98a zF0kmr)ajvBn+=+Vo&qzDJ5bDPW-xYRj0c4ot7gDmAk}dhm3V@1@CHNWhDg=atAbC! zU(B#re<5O&Fh$ipkP*ateU{u@^21cPFgoIm5O=On{6{o!JS;r`+&dW^$Lm0_GGwrl za#xGty+*j^w&iBvW&kOAe(B^-kc%muSs=Qt5S3&gww@_1FT~|FuqFeFt@P>>QGa4N z)L2AOv5qBi=Y=fujY<6>{JMNa#eG(HQf4>W&-rXwdbF1)ug=Gr6GjGPV<$ouAd%L^a zCPlM)3rvY`p#0wwW=;I8;w0nTl16uX!3tqF$l@8%(Q%=yW!UW{(-0Abc4?8ZsA5}Q z+FYIK@rS6mZjv=`OcEp<97>Oo7E2}H^y=g2(By?7GMHY2# z4&6l-9-&TpG36fGTAktBU(n$Ph~eL7rE3gwCSF@rlzhD&3VC0bjl=^dwcfjr3int% zs$+E97)6XC8!`EaCKFW!>?PQ(TUhK0%v248VpU0_ChTo!mP_J8?&s<(y zEpRskT@3H=Xly)a+=o%W1}ZbaNhI^!b(AA3xSW)|KfQUNj_+>ESD>!EU%kTXC)+CV zY&8WuCEFn~ajB}x=llKl6CvHBt%cn}X3wRk3lXLF$~JJ5mtsS0_y3f7GBv6+{_2NY z)#`Ld4XWzL{OSw*k16N<*-gnwYjP!zPTLKnF5Aca*!q&RMC*`=AK49E-d(Gp!Jo>5 z@wT_-r`>h9!@#H|q@3Te!PM5Six<7hm5W=ZrMN)D`D|E(56!P74)x_N!)y0jhUpp! zTXySZo;N+F_d9y|%w%(d5LJii(QksEUAEE6r6PpsX~ZJta;A4^4(O8fMFm!0JIrHu;E*0IqkFcs}z=H4TSyVUuferT9n@>mxy z#(002qlUECM>gu{iXfZq(47=xRoI+my`}&gp`g zUs$XnEY50E#R9?EiEiHqT|l?pNwr&5lu0w^H!&xMEcG(hCqi z0pnlLcdU9Q%zLzrv~Vt#fFoS`@nH`x{UWXfHz#+7anK^?)LH?aXcd30* z*#0lZvP71bLhEhY`z=Yz-9TPJBk-s~G&`dua$ z;cWD@%keTtbGxTkw^4AN*{&QBxu+qD{8lvY4o9M=UEy; z2JMKQ8BFk0fte$lOQ4O0GXLb7IBbeInsx%NjkdCW)PiJ;x(H|OLt z*>1o<|5Pz$H+ zt7Zn4jk6C5strg0KacL1bq4;C6q zk8FX}eIS6UP`-$!;H5+Lu9n@EuVIiYwjIuiBRt~TQW{#_!<7L=x>o_$_zIN8QJbEL z&`w_Pyxc0eKC&Ni9-D4+&)EXYqsaHLY+CqMbym{owc*mHEn|Ce!b<`a8&T^vDZqxh zaHG!?$*Ve^xCE$cX1PBR<~p^jXsCoOCDzM7LKVWjB0BsbP|TFD#xRiBPXKrEjiHUh z$koL`v79?uwc{X?Q^X~|#RXmI|Bj;#w-v{Ja!c>C1C!}sCIr2O&Uk`t$>`uzq!{Dm z)YK+Vu2pXiI+yTD9PRz1q}dVbuCS+2XyZ$ZNqJ!c=m&}hrTo@oylr0>o8jx)8x|ti^h}mL#7+vJ}!9 ze5*#L(P5{7ZWG;Dby0J;10N+ke{?Y8oNxN0L(t9kh7`%<6u};to)9?~Xx<_UklUQzTAae< z8c7XXD2p%M99HfGGdufqv9G-%A{}m(RBs1lEZ{W!G?isoSymRzgYqn!NsYl+!G3VK zvTgL?Ak5iM9kzl1x$M_#D(puuFU6VaBHiBw;#d7LCyQy3;Yb~qisk#@(`Y&Tdjz|c z4D#`JuX8=kMJCQsf{nuoEmGWRZ;lA;cqruwC!2Xdv{v z)TQx;EH)KC0(6mCi!?c9c#fxFJu?kn9hz;6kc0kZ*yx=p>q3|ZtfQZ=d;I?1QE=tb{3RJR_eQ!-{mR$69JfF5Seh&Z(pmh(Zu z61X2Baj-kr#z;Byiz5j8k4tS_yMM<}s3%dRo6cGtXX5bb3@O^L2r(3xeLdvXm-O_; z297zKNDJ$1n_DbWTq}{R)7fKTBs3kITC7$kV^0FB8^1V0_JeaDB%T#5x*zwm-Pp&B z5}#7;25>*U>^9E%_0+;G_e5Ss0&@2y<|vA{Wu(PrrcPqpmp2Dp$AdXEe;O2RxD-68 zenFAA;kE(y>b)*U37RvGcEW~$c2HSU8m-LrWXIr_-5byNwR0B_+yJ*d1-w}UOHFBD zk?4kylJl8&vePg)N&z6f9lRxPK}wCrqGQ7XnAFKg;IKP35SAc;v%$K*DFin>4*wxQ z$4>J<4m$jn;5i;vHgt!HgWk*K2XpmdHthbM`*h3+kDE-1W8b-kx@q?)R zn&&h#m1NZj8?$ZSm&E(HI~Rx0;2fCV?v#?#9S8CgSaXa)q{rTG(t-IxK$h*s%M#P0 z68Cq$z%mamd`;y=Od`;@@tW`i)WQZ%w0YA+TINwzU=uGU|06^9@<(eWVu8)pm` z+?$I-CaGLLp^pVTGBh-EE5`!dmdVHG7a<>fT28>KM-%oOMRX-M_Ny5!lB9_jp^WuA z!kCnbdn(W3{O)P2m~@?wn5r8Cmwth{%r0rIY6dRfGz5a5=cVDkB=%bbiV^3f@Fg^p zxGNu+i-jPhCp@^Dm=8-5F&c@jHSTX#0Dhz%9C|N{0|=jW&;@Jl)GC5Q)O?uPZBNs| zdgucSVRK>2m{%ySmbyN&tM#^H<^u>Za3(a8tgfXWuBjgi!7hv0@LQ*xC3!t83rUG( z8|hPw8AlE~`!M2rK?Q9bh$kOje(fV@Op&;RREF zfbPT7$C=nLJq-%)v3d5kgdm?7xH_f$yVsShc|Hzl;s*X@_QVk`UC7lSwAm$(^u zW@D~Etkz3}1__SFw~QtCVaWI&|4e`r{(dm%2gOs}fd4`ljRQ|U4x%K=f699q$(7qz zhJ?F6zdy0fMB_J-W~}@GF`v z7s!uvaZ~y`PqEXl4v8epSJt2TVTTY?5X`z6y@=kzj5xc&xB;_jpJrv~J2&^!pkPBF zj_2d;uHT|)*n_V>{&}i<>1oruD|^IAn*rwjA<&TYfhP&3B7XhN+8PwWxjj3-%;K{# z*bSGN&Q~E)Bv-`p5q~?5$EOzs)Edny&z%$(xmPRR6tsWSCDrE0wd;=RK!!TvbtJdhRdq+a_Z)>|p?I)e-Mi3v`pdr|t3mDzy4>>9C-5BsuypKHJwz9+s z6>chXF=BN@Rb%?UGv}R6Rl!=>PQH-ra((TfplEB^EKoc$-m}*CChPX)Y zt%l|ymugmMO}$S>#KtNCizW$R0`uc3A;KpPL{%zCS0R@+D3gl^uGgtTV}car??gp-7(%L9J!ywV)}N6v9mj+E2^vp7IZEe(rY z)_ade>7^+t&U0STIUD-2SqNKt%#Z#x_nsGP&Smp}vmv)V%`BSV+_BeJ_#ieWQTkja zJG{AG18zO%DaJk^>a#?hK`bF9-b-Tl{#`C|OCd!CE01$v7D|`%nPp8sUQY?B9hBOzRO)fUX0)DS%iEAOc1Yc$pO_ z?mOVJO5B$LH!WQpi~sdC?KI4C`H)#+FgRLe*+VIw(UGk$gzqopbOyyw@P1nHFdE?zG67N4 z!slB+=ffb%e=sJK35M@K9x;B0Q!qJ_TVEZj_9f6{{r!+mW^aTPN32yEO>s-_8`>eiqa3K-?tH`B%8Ufc>N&O<>q2eD^dg3El5u=pS11jJbb2ft7Nl!p;y_3}8s1 z#gWnrarTz|1y_*hHLx4M2}zv^pp#aE>1H}$tl;sZL^sjg+FDQPzxM^i!b~C%vgPDK zfBO716$4KSa6Dgm?hv*03e1mj>*l|VXD?0-~lbFl%G&FGul08{{XNi7jHm z2iTlC@FDfib7^U6Ni9c5$1A+ND%76;`i-&gPx-%Q9PfRn_wJHHS^yy;yYiE&MK@AT zS6A24&W`8OC3$LIY3*!10Xnj5wPfGJK0TTD6ewgx*!7BS3^I+X(5FFGuIVG20(F+w zb9I_Xhu(WMXoq$uWN4VEK@;zAun<0FVs*79O}fLH22GZOyyij}-dS;SA%od`()3Kb z-`*-S(eOAXeDG<3TCwlgVKEph40CM%^zmueFM6VuXwJ$UHkD`5b&>A`L+#O$k}nd?o4+8GqZoN^Y0ZhI4lfG zbC?JtJRNyQ7A_k^9y@a25vyU^UhF3Fd*0V^7vJyxdSMOJ3063`TxAy->(_LjR?>_Rz++)N(&-R zUaJYXAZ;CJG3h~^@RRL7Tz*!K^{7E6b%(lst}R1a1Itp}XWQ4f<&nnYxfC9FGgF5h zAwRQYp{5K^zJL4Y(KzyF!-13qHMnv7pa1(f_877Mraq%i>QZ9&((5J^lOIEeXbvAk zQiISBXC82M^*vrXtkdrs-t%0~%fL6+=PbF6Rda#6mY#~wEYas7vWs`0u6(KBshM-~}(s^I=jKCTta)GGTq>F;QE; zmNM8@YXWZ;Rjks_ncuOKsIxYgb@|dG+hdq1p8lzx`>I#Lrq+QT+MDUN&6|Qbo`0_x znKXr)Q;666O^T#pD7ylzWmA2%xB4Kj&A>wFTf4)LEzv&Io z)Jy2kY+7JJ{-M$3f5Sd=*cD5aF|YZvqI6@g*@8HvJoVT%0#DWOT^17)%c#lcx~9bc z=s*ZI(|&IbVa8mN*Aya?J(s?9sf*;P*jr`x=l3(eyj+fFeCL(@a}xj&FkcO0g78@p2zynX2gb`}aK+~n7KS=Lz#rt%fnV0?V^Z)tT+d(@L zWb_kYQjfE3E=OXFCXpDUg2~ygtpNIj)x%rP?*$7dip~u2*EWefOnzd0>1|ILmhScM z1Qm}`n#dxO1Iwdq+jWf4_-B=?7}W9fMN8Rkq2CODcyoVV3HeuAjuU91N)DuVZ{K?b zU-D9j2-_9#*w^KIP$A}_u1f(eFCsxbeA-w`I_DrAgG<5nl8>#&o5Q=pU5~6|_>(b0 z;i|*IUnTF|^*I0U)c|<;7wOago^Rek;pmO737jqG*?WEGMc)TQ1(@Zj&BWorEMok$0K>2x9s(Fbv3 zNKnON6TxYv$H|5!g7{e0WEqvhA(N5Ie>MW|ps=QmUZ-3(9+zO6(h(Q-5T;F);O zN9*L|;L8#AA*o6oW#GQ$GcLFjqJP=USMIq@n%e4BA=RD{rYlyz*H=#M&rOq#dSmjw z`)xiGb3^s-f4%%wjnzeVqZf!*6g|!aLj_ z{&=(e3Ga1gP?}%znbjY~k1zjul9U(YqIym(YUE|pcAVMu6n^^GN$<%Dv#rA3ykzI_ zi$&bNF>0!+($x?6{@n|1-_fE`WA_V^=3#tZQE;jPZNo0V)gpU`oa+m7EMDrTv? z!6zU3V-=}cL`#o#!d;SiYNr*(dN=v1n^xFG&yy*W*!%7cFZN0W+TPTW?@<{eU3WCs zmtx^B%gj~D%9y!$qYJ&ieA@oKR1m@Z=g8- z-@ERgpS=$=*pj+#k^~YrL$r(>Zldu1XYimt0h8Ed>#!{A5>7#m^b6&tSnFR!`XpVO z^cf9cVK-Ap5ce~x4*RPcvHXQUw9s{kEbQul!(KxVPaJk<-%VdRlZki6IuSw`Z5+A# z-gF&#$*?P9E%9ZHafo#%lI!FZ`P`yP+T{xPN+3DG)Q}S_k0nnv_p!DlpY<*}!Od;I z;4gaZ0xOqiLBZNS#{2OPGi(_T*8Z~=(s(}VBtQ?kbDs8Fun> z?42)qhqj7zT%@0T=5~3hyB!xLjjCmYBUi-;iaxR#D8A8u8oM?Vz{y|6BPGG(LJhy11yjb7?23o`Vgt4n%g756t zk8yIc3J-Z=-QlezH|`%vPqejAtJ(>uAKlV*(g{rJNGp}|6D*z%dn~SqA1p9md1BdF zt)z(Ws7+Z24!l)df6>|Ei8>+rfbK;}**&Ns_OB~;-wrm35hR+#a2`z(Tk!8JOOph_ zx=CW3x=F(0^kj%`eyX!+*6&g#GS&R zpUW6TzsD55zGD!rXX#{3pJ3C%C7SN)WXqbcz`ZZAft8yJpJ&uDT^cV(NqE$pgp<%e zkZzVmMzo|$7~v$vHPdM1#G0!a^Dkyk`ayV}fld-5LP15ym-Dm43{7fuZE0wiaBzTw)2kux5 zbIP})dnwz|7V;V-ru|oTvmaRump7D9XKrS`$oqaFp%O z9go0O%ke)T)eGpR>J{i@ftQhmPvSSV3V1MiP6-$Djy9xK7M}4vCwS}P47XYv-JKTfcZ)qv}v+*D!tOSNKa9X6U4X zzkvj*nTU;7EBMe?EB&FbuJ5F=S1xIU4H<%1&g)R8Sk-}_7~Nbgi~nJ`MMcrOeY5%=;mSG=b#mL0 zm16h3Qgwup#^^Hd<@K%JliSwx6j7eHsxQQ=kB)_=+jUTCmQ1r8CT$8*c)9t!kgAfa zewC|cx8yfrWAv&GIdBsK5T}=j{vntZhZ~Pj=63v+9P@yUF|5850yFP!V9klt*=Rc1 z9e)_^P+N;?aNYory!1(Ki;HSX-DEyXyi@5p!OkpWi_mnVZPwjq*lK}42hHs>_~xTg z>FsBliVga$$_p+{cjhE0h*24AmVf)ivcWUohwCh=q_G|xZ=aH&vF;!5^p)Vr9-i+k zGvLV{oaw~J@?`gqcE*d{*DD=Nob(b~!4A`KW2f3XvuU`0jkPCn({K;XwI{XE>{R?n zj29AK={n#?{~0yiKos<-YE512>0g;Y9fQ_=)K$?f*kWMX^-;=tv&{8({u8Enmc0Vb z`2M-3FXw3JerhGNH}%a+%~ej&)7A_nl78l9O(MIGbcB5~cX2xsBmfBhq*gM(Xih_J zxQweNjbV2Ohq{!-g7?fY0Gm$->po$!@9EmPasBcYxk!8f3rIX?4sY~g(ruya%vLDO z{oiBChAe?hKSzWD;awn)FqA*(E%+oo4h#X` z0hpx5<18$V_)G~vP?JUm*1gZzFQZ{@Zm!+&GKir(E!py5SoY8lK3&<}%e%UAgxsZ` zOWA0q#Jza3texQptAG!U4j{aZyc`?npq5H?VSeq zH`?wt#iv@4dfE}dFmydp?qMK(Z$48Y=i%ri|8sALb^9Gm)CYRhr$Ss+Y#yirj2Pg& zY)M(Lak#5QGNRBkar~^50ax0Vo5_3fvo#4LMql&(oCyECXZCT>wgl$q=VKaMTC#s{ z0u`9H8>igm!aME=S9xT)1h-OGkT=@WzJxjQQRk2b&S zVmf<|C;SiUt?t2pXvX5J-m@kNl5XZwu5EgK1SjUv!pN@t^PZZT))VGL+NK$yEBHpd zoy~{TD4(GGSaw|l6^{NpF+TK|qqjEuu{`yOZPs)f0zwmP8$tq+mgk5x08lE4f6Rsy!f;8Nk21+WXqK zrU~%fK#?y$<7vH=D|p8Y{Jwv`u?ZOXkD~dPA&f)A%w;@OL&|ZyJ>#E2onb6Ruv_Q1 z?#`rxRpnjjhcqg47~vno0mR9OByw8p8Zi1MM*fJm{oLTL8~SLd9#OD2m^WNwvjXvt zT7zB5xOGDai=~m=+wgE%M4I2sIeWEc>xL%}e5A>L(fxabTri$C-x_G%)bnS|ZQO5rA&5(@Fbn#3Mgfiuuc*xHMnRKJnOVP8(e<^S861A8l zV>6A4U*^+@1O{nUHm3L9m3U073|nrEy(Q4_`Rv#F=bu!r`3~Ir)o`Dw>+*1)e&ipGGcFCb|=&$_a)*gmXgJeaPq#$OFV!v&OJ9P5|%%BTVfd@yxp zrVCmT?KOnC;)SVERgT_Ki_+O81Js}#L=hyx*3?nhYseHGTGRa*WR8iwJY~~oMVD$% z%m6h+b+%Ce#JS?LpTA=A5#nb%;-UnDzZ4*KwZn)Yu7J2WP|6SVuQv;oYlaZ2#|*xf zTJ!vd2W)-JCK}&Zx-kzCKY~{|zEIz$^i%CMO6t=oJ>kWHYt+0kYt0}VbMK9jq9xs5 zCycheUZcpZ0Tu)OVI1rT&ok+5lhd?w4e%ts^@Q(;w3&=O;E?#ca?Uj{!UO%&-u7fY5QW<|jQSJe1w%8l6oLR-%WEJhT1F zezppmZN_Cs7x098l{z|-TRZwl@_^fh(14wf-ld^9h!oMI2!=SdT7gQ_Wn6PSH(Ro2 zgDG5gG&}^-)Fi>IdMkjeGLq(8cU+BrKNGhNWtI3H#YaZ=j^SMOwnYLn zAuS@dN=XaRY#e*E2j{S4?}e-t6!jOW*xTw!AR%iufd$1G+}gQpN1KlXnCjJe35M&$ ztCxCyyPh5-^@TdalY}y1SqW{&m&Qbee|2CjWnwr%H^&p5uI!lULZr>~DUga9@W9rD zazmB+mYY+d%8Y?zd!_$b!858-8=0TjMs_p_RTV`J=b>JjGRd*dZ71!}rIi)c zqGcV5Gp_NC=yR!;nMN|IK-!`^MkMS?Ju};PL7<~>G-e?VaHON;0cK{aN+cXK zZ`%5K$AUs!LL6-wGY@a?02Xh?KbV>mc>h9^fOE##4r!L#|o zB#D)AjbgQ48B8!UP&w851UoYrACALFxn3YAjMtoUF0FTegKvd6Fo;jIKEiwjTiB#Z zqGZi*V?5l74WzjN$2Pi+K*{zuLW1DVo2w}{W11WS)*FwnT(S=O6v$KN4~jor|HY%O z$%~j(X(nJN4u!Pv9jW0ny)D-puXj%zol${bYB8a}ux9V)_PgtPouV@F9#?|LWAlhL z4vuB-$GCat*NfU?TPM|uGqr>w4uqT>cJv;979m>8QdO%sC*s@P%5*#KR<&1V`uX@} z-#EF_ni#dAEu8v-Km9xY1knvImJ>fEZ4ZAM=ELMMTeV$mV$o@K{=vpnp&;xvQ243m zLtxdB$YYmz3VCpKH3^v^8?Ndql@dBy)i#GGxJE5L7@zX}=TFn~RA<+W2*%1-3|m0B z!31riYc>ZJ&bqq|n^}T#4Yq=rTMNrZ!A!X@wjEQ zv9W>7t-C-i2iY9&Vc|zlQPOlC4Y{jI0+E6_FbBuHj$f+I4mkPS=2!kJ$V)N<4rAi_ z7C4_54!%^ld)NH?%R?*mOt$S{aPV-EN-gcA`9(c1|BA_7We5sN3zgjTuMcLD2jWXX z@$;DL(z-x{Ei_m80p=BTX22c+wJDJEzN_h9bDUCq3iU?aQ_hvfQ2th7*^(<7w|^p( zjwRMvDbo6*QD$+6iQ9+&da-%RUvE@$2S&yII<65f^B0m z5IR;$7c*K53`cc&%e>M+A>e%>j(sRAq=GtlN$M75eZrbkepBS&IXnXNb>NKNCDfr$& zE*P%VvLaCt_Z&tq()UZeIQq7_369Q-RDDVBN1S^jTJheP0f!^_QV<5W)GFK^eb`e> zS*HRUa8PwG=9^!{I1tspmheAsVL2#8rd-k#Vvjjrd$vrT3L_P_31TO^00fuI+zCF^ z*x65aQ5n6T-|{io`mwR@vA=)6pDuXx$HZ0P^}nCF|M;Zvg~TA18b<N3UILWcBHAPXq~EIcs+M=1p< zg*(SGcP;>ucWqY{5y3kJG~9;_{=JYJ1X<-6s7L+Wq19E+y9MBEf|EcAC!jl(H4Mp$ zB;#&h%mWn`+zBk&rR>L&Q}|?$zLN}PM>#q;bP5IUrKM($ z2KBPB2M4`!My7iOd!JBYCXP=jFfxoDoUe6Y$D2d;&=b(|z!_tLKJ*5kS;9L*vaSI^ zd}gjQr3Z-U)QTGb0TYB6^D%}05&%zpNy9&!(X6#QW_CciYPvogIIVe0$vjcv$Ja&H zN#+VvUISE(vNnRT{MW$2XbLV5>sy)mC%%Qp=iGiP`eib})>0&X`gU(3&~Lm-!&66u z`#mQN>DZS;wpyuw>FuU&|5Afj&E=r7G@;p5wVYGfpXs=5Mq-v0y~TrOYQOuhJxL}C zIfO8EESJ-tq+V0ZbHTA&f6GrT4#`|JvgB@c5j&tAYFa&))83B}WW*L*f&E9s`tPSF z&$q&2lnxr$d0&##KLJun?J{rwQn_<%w+4XHPv1ZcI&QS@ACzq;u>t6LBu8i7{ex1vxRS&{gvD&D!5q-D(jB9KSIp+7SK5FESKx%UKPF8zSp)RZ&R>4hgeDN^K6 z9(o+_yXN}k(|zW5eLz*FeVZd-CkI1OOYL!L9>4)Ir+Sa-K%QnB>n`sbeBpgJGvbZE zX-Ql~)wvE?m(ncub5;+idC?V0e0n8~Cn(cI4J4jkdX1InJ#MsKZVEsB^dfCI{lhJ6 zmVspA<^y*kL zKx&d+nLZ!zjPA+aAhMCFTTd|PBbHDbUmh**zA?-SRD-2NH-wlth%cu?m_MG6PN1cPCG$i5COaUzVHZmd;vS zJ&CV2E=`>?Z=a%dc+9|Kzt&}ZW2@L5v!V!w}!g8-7=|v&=W%`vQq*p0Z>FC=wTVaFQh@}b>qs3djN+17`T;R-4O}g7=4u0R9fPu zhvvgf`ZO?&LAb7t>L8#mje8AjC4-0ePI?CitL_4eEAjjX06?GEW7E{+PVlft`i)&cSD2NZFWleB=55+`D#ct{i|qSE(CSKsU#L9vvMyor!s* z$uw*feOJ=S|N0f237-POqM32b{D$wC`bOy~DLV~-{r`C761nODN)hB(VR<{Oa#hx) zC{ojwz0!IS0R7y7ma--2n_pf@GyGLe1R4tOdbSTGuzU%-3h}eo?{}WW%yvH;OnE0t zSom!i)Cd7=yoP!9IIMNtNOW$&e`5Pq0R{^@ldro7>+m7mT|jBzAkbZ+4!6hlCJAA6 z4vG^(M@b%Qg3?j~YehtoeD+EHQiTokW~;5N^#lgrkv~w9ZT(HObm1Qt%|DzDsJ!*-e~8H4Y_tU$@kQjn{8xGQ-@y*t zYb>->i@Bmjl6(vp%Ab-HaZpA2j0 z900%Vo;3Vj z9(8D~;9gd_9+(P?`A-1wtyBGa7|~-zP40RW_%cv93lUR_12C&`?^d(EPr=rY?ctp{ zky{{!RV;OM={>!9KD4U)k?jaUbV9H@eUQ<|*7{;QP?nfe?e3eKnK8um@Q}Xw@r9%N zE$HnmK<<25HcV!fpH`znQE5HL=MD-1882hEbz*3dwk^v?D<}3>rJ(c4oszEN=y|lA z8~GSa7b6)UGpz~S$ZO@2@F56*E!{;XECEd5r1doQt z%=MV`JoxH4U+*P2q`j1aEAJM*#w`qllB8;qSBuL-` zK)LtJ!`1$g_28L9{uZ-ug3IEsEPc0~8lej*NFlDlViAB;ia>?H!24RKK+QSu-}b=+#B<^h%!o&h@dwi5pW z!?xGZlj-0efYT(WW8@UC3)ErhI_m*0jH3Bu%7FJ(H;%{B@89ow&OyneSP(%!N#Uev z2}&(HL4>6qqnQpV z$X-AqyPUK6Sp9&UvJe3Ftf23;sVbpz$_!C4jXX58+Dix#Y5>qY1`)zPq@V(CRo4bv z@(Fyk4!TFp_b#cqH04T&g@pwo$lOyR!r2Eb#$U89Ra=oZDj_Z~v5)IXzK@>-AgCPR z%0Ay!+a^*qY{4~eezZ?g{g$~6-C-}{LjSuiJVq{UiVXtjW`|L z9m&=Yi^1}%ai_9h@PDpXbQAjjRj)YgU8xXRKxt^60N_R_!|p<3ZT2HXZHPsvju8C; znTt{88&KSSA91oF0E5v*PVvsTd!w z4}wI|Xukwz3#2ANKgxOcQ{d3rX?IP@j^Lx?0-t;0ve^}=2CY@AHugbD|M9`s z55Wr>Iv}l1joHI@fnfMwZwh?aXsOwnXb$2prz6`d&w&G^!olBf#mLS z3NMudQoNd;rcsofnH;&Y{$F=qF!+1+f*Y(E(HK9MMd7Rf(h0S9fh-T_QffeHoND%F*DTvhJf8@G7QRti& z!-XIPBBZG&YODxA}c3^gt^_1EfAD7 zU9p#CszwdanJ=JERw?^?wP|5DZy2Xrse{iii>a3;;BpMfA7|CExT)By(&E{YOthLW`e zn&DAUWXm!#GQPaZFa~rvXaxD=ZhMnjL;GTEnKm$@g}7xV_^tY2kaKR0!GyGbk=I7m}gc`EJy)E?O`#tW!_t8<1uhPdHZXgu~Na(l1?(cr&p)E+Dv#PD>^avh; z-s;%8M&FzuW=FuvjQ%zqqWIzO$s&)5yVY>%`XMG=5iV*}nk`phD2zRK4s#a|g7WUkEu?uw)zq z-i9oqqG^cf<=a+3B%C=|k^hZ`Qp55M44$$$JA&{@*H;A)A|sC^EwWC6UJ&_e#f3CT zl!UuNa5`>urZmu%+kn6lulTWTQW4rUgr z7@_te5NL;w;RfD(e>TUMfjG(Dn7D5-R%AS1!?n?uXNoevdV!NUT)S5E9Ubshq?cE-ntjJ4RIC*k#gA= z!e_`s3d7w75MKbV(HUT1u1jYWL=A+=q}W4Hv!)OOGfzB82XKLY<-{si)@sR?LALsD zfIlL&!n0=&(xo*K4)j0g+9qfEs`<5-nQ)N`_M%hX-7wZ65%0Cy%}1bPs6g$Utqg+S zsQm$Hzf+TXJ{Nk4Sc?zd8PK+Hwky>vTHx22@7PS3<94>&g)Y+YtJ}=ijgH!1g5*Ht zyKE7*=Nj1(fI*>H!vE;$z^mpcRg-r#12b)WGbC3GN8-%=lIa4NXNc34cOMc3EZ1M% zZ23$rfeC`vhmwS+c$Wra{nNEBAh7GBIXfhsTJ&2>>%C!#e;n_JWf38t>{Oe}(td+? zFe&6(eOc@j{-k9EvK0HmGZfnLS;kY*K*p24P0gV4l#unpCfKOy&x8T2c~!H2PwV;5 zW=B}_F1p!-fJhQbach1PKG%Ep9)NoLtit}@h-WWF&*pKITDhAY14ml__#^Q6Fm}ee zQJOC{Mpvc}We%1Nz`o5X^zXGK^6VvTvD%&H@aKlte1kQ*V492FVw*c(NT)WA*`~65 zNnMuP?u$~N(hz1T-qh}Q{bkU{%?`}1+;C>Eo{pU&{&b;5$sBu3pbo#e% z`ORIHq{;ciH@p8k=lsn)g*o4e^+Sb3sqq1CC;%u%Gf}333QQ&N!F4s|-1juS`#q+Z zGW~WW-S?TzgOeEn+p-|~igM^EK#mY~p3}5h^~Zf4gQ#&Q=Wlt&9tNaysZ*$LbU5~T9J|Q`GXI`m7v9qE z|HZq+tzGSSsb0+|-78;CZfxvqq|kUItzbD7DV#&#m;XAannGIcW;MjKP=V7trq-OI z-~GLHp`q!&llFgI1ayS^98lbzx}}gZgNdL)sHMqD8>oJy@JGo-QB!SvXEQ2*t&Itr zc48zyexn>vBHr;lg->Zsxe9f7S$!M)KTDi zd1Qtf+NH<4d$(xk)byH_@5{qdmYc{JDOKCg-mJ+ppB=6yvaZ`WU|%f^A0@thl6P$N z)b14`-2TT)Q_8`?!T*&b&;Z{8+S%D)Uh!AuU{c2<7r~M?{&3?24W9A|ei-=!6!*EH z{tIup+7pHr?M;`{fJF5fkhzRAcYaXL6A=-O0IWq8CtxG3bR%wV60(ZyRIB#sxy|J( z(CrK9HFmi$CWDbzVJ8Q=@H?;OT&=}167uPtEIb{2o($g9hfAcdJn8$+Uo!@)Xp@J- zzn=H&+FxH3AVYHr}Sw2J^CH{n#@H%C7OaV>Rk`4;Hj^O z%kq5>remv*{w&9jaFg!MF;_#~BAW$VE9WZ`4#n$}2aS&UTFuecBSeBqd>2fO`hU6v zbSX5x{pwZ3d0poxFs*?GNxU+6)kE;!Q*a7kDNg`IzA z040!71nLSD-c=6k3aqTGp>_EFeFzpDLcSLW=mr$H12SHG-t9l%;(2Zc-41ZS^>hfa zt?Qh=VuTE(&k#y)su#3x`^d75PxPO$wp*!pwk0@Z1Xh+m2qjnX{D#$Y*3czR)_P2I zzhF?h>k5wg$_)!NNrh&v6g5l(I2h=^K8Y`KRg3Na`P0U)7qmCG860+snb{+%`!*d8 zYxc8M=joNVsr&mAcH}^y|N;r>aL;ahg?@i;I$EbYI zIjURsQ;ai<+3|C~+{tuSdIlLu{S?JwY1|<>oDz$wq&AlQ*>hp5_G6IY?b)m$gPw z^g^xQ{Vlrr*)ZYGzS!>drlLtX*eK}jZfcx<6O5a5WHUd*3_jbM4ma&_L}VlNjxt@G zO^yyhO|f3v3*@{+id2|Jvvdo>wpKR9@Wmh*uku$cGv8brUZEJCe$%fienJu|qKKvrBnaU<( zdn^9*faq^Uuzz=ix_(+HSMN0*K=HmXELK0l&-Tz|H|2^Vl~M$T7TVWp>0am+O4{0N zJ12LQTD*?Se>?dtjmv@Wnk3v!o_;S$Az1C3_g5OnR4VDgCSsY_`}zwSn=`!ux#pPs z4*dnPTW3mit0Q?bU!v`xPr{0fgrj-NXcQ-BaiH|g8!bXP(>ZZ>?=#=N5ozQKDz42L zJDQDkR|6fZ#u)MJ!RthXwHit*7sz z4vk4|o{ldiY&XdloX$`OdEuN~8Ra@uzP#=iaoLk#K?oex#hSKJ)Q^_#$U%)HU?XDDfNy<`%15^ZLSr9>)m9(7UNsP>lSs+#A`5S z1=jXwu%3vR<(O-L*sWpHD%8GUh?UV?YC}SIo2BNWh6tZ#`X4-u`aiqO%I18ztK&%J zBy)4z5A?YW(s-da!ZdV{=GoQbCwjY&c$eKE4zl8d1H(G+vHswlIQO)LSs(TNr%ESrh*J)Hf z4(EC1ue(2%DKJVSc=!AjI=?76+7yg7?~S#Rg8*IB-lk^q{0Y{}aqVz^0B+24^VZ~J&HQlm*MzyRS59eJ&wn|uuv(X& z<)WzM-4aamus?nu5l`SgZ@=BrLv3&?vY8fo6fa~3D7!qNq|LJ0d#5jI)9snfMJtoX z%BhsdYn8G~Y(B)OHGlCce0vdQ%5^sF(s6sr_4%F2aD2%*%R8gKu@RvkEmlrJ+gAer^#+B|bion-=y0>$7{5;x1!))kdSKU(M0QVNR;(G9Dy{7el-nzK|-~r|%Drf23@yo)Co{hKk1NP!3jnik_?QYi0Y-k|7Q?WLu?_ zwG7Z)&et;DXy0k0jw}2AR+k}EEuNarp)6pH7^uv}2?3r8Z3eAVxT#>CLDFoaLiU&VWX90;Iw`hfBBb3eBK_}11I&=K)cP*Nfm z^f!bznX|I?;$q|n0TMpG*g38B&&u5SL+#{y=>At#vh|EIjbXujYp%b}tgGuDC*|li z+(3%b)SfqniBuJjKDLXy^$!V;sNKIH=@TFtN7L<1~&q-rhqEFf2l*@WwapJa@r*StVde?Od|T*`2B6 zXNz@e_f%88r2QoB@h=QkN=Gi#1W(zi$ZE5)3!l&y&t!)nJ|-3U_qNtX&3D^GGm`bl z_?e$Z}mhtop*LHprq!HYdoLTi&ii= zYNpGNHt6MEd+0E{wnY4|5Q4bu{k}QJ=~}9H`ilq8LTuj-PrG}vCCkl%Ix9K(tpOT$ zRln*liRNU2`4QF)ts3b1@{PV%PP<5kpmFiRq(3q&^zd4u^DJJ{lYaPo?SM=K7g3AE ze+oBX!VWT4JzRjWrp^u63p>7&w@dz{{N-(gV(Hmr>x5Xq<@Aq*+N>8Y`@VTGylBll5QiOR*a7)4B0PG8O%#O(LZr**kkn?7bA= zfIgW!-{MsGE6m1h7jxsY+MR2Wv$Dw^KcZwByH7d=)(==}FKHpmXfNsh38|;~N4$tE zb~trAHd9qFf{*?-%$W#cJxqVeKh5l4K0Y;>TTihw5;(t2^r(4WFx+uC*?2Z7Md^s2 zM&XE$MnSKT$$D5Z_k&|IU1GFGFUK001IPDm%m0qcVC&65e)C3eM+F9^GQv5%`e&ZB>q;R0K`Bi6978=e6Zl# zZx7q~=b{SOx~(*E;I_;LBvg0u7G(Ha=s-uAFbW)T^lN(nKSZReu~*URG-uS8quOF6 zLE3T@5IN?+ud5pUrhPhxm8jh(mX5|xc>Gi9gKig7q;^ivW$>W?y1uxAJ>vf}8e_&A zebA3Nt{sI_fK@5Z0X-s6Sj@Rq(XM42Y7Zpv&3VgmlqFaT6$~h?)0*RypY|U}@8I~I zt9krQDfGMTZEK>dcn6E(f4o?)Pcwt(QtB1^<{MaDeML`A6$H!tnmJEOzN`uUo>_J- zejT{0b3F8Yb!RxJWVhe7ia zdc=$H+F^$7(13&(4QJNCboA7do+V>(CwH>3x$13Vl=iMdZhWJ<#mS!LrK8T1gNBFY zP5W7EC=Mv~zNwOXv_a8|y|6VB2b}uA)YbIACq3_7J&^k=0JHb^fH(3pJq;icj{(wF z9e~Z?oLr2I0eFII(RF9V0ESfX6a*=J*A!O~M9o5yo11Iz`#Y!xp*bnLMDLP>tf&{& z0f-+GaXKIs*vwT3`G`5K`a=Mldv zs$Wl?>$A4>_SI$lxpC=lKgO2u)h^OBG(?PfzTRfANvBYMZhvLFr01gMoc?hYZsi)$ zY_yV(5Bc1tVLEGVtA6^;EpGDL$0DOqwmQjYV#J;gI6F`8ghTEZ`wn-=Eo{VHOn|9b zO&U+SuDslddzKc_P&(d%#2G<$ zhQON50hyvU`#V52;Dg@+k>8hvHw)b_vk+b#SxsQqD71Awo``T1O=JGzb*iUkT&%6N zx>W@BfM%V1ZK-Qa+FkP>MX1C)1rXjPrft_#fYKra)*1BO0bi+)mH`Gzo~!xz(+sJj z=

tH=<`$SCJB={-j54ZApgAVQ?ZwBayO0hCqjhqMH=!^PjNq74UF2zN$Tpy80w zc2+C5&+7K%QXEuSG9btjNt?2R4?-f>Wj0S`Hp|U^^eOjjPHcdc%a`-(RL9{5eeVt@JCUW`_ zUTzgfT>Uho$%CR{S)^vkdxBOM3uoA(M>Fc2ccHJvl)Fq$h~UjX#?sL!E|2-Zc?8RM9ONAC--=OVs(9IglSHYqzMCS`!&}A!%yNZKIjTN{u|8_*t z!oAQn^-R_;uTOYEtaOYcdoqB(fR}vrG4XQDm&b-f|2O z+-D5l`>IUpJ5^?65SNQZyC5O*j>1wh)okuzJKMx#dV2bIRGlk8Ns>quI9|U8E5W&R zQWBC`&U{FSEF6e;kvMhMfML~xbjcCY-MTg3n&~-ZljWoZ0IX;LxRn5Tg7yWO7_U;U zg2yN(cEka7lzZz!kcuvc=gPj_l_MUd9|NtC%~b_1l1Z%YUvKXdmqEhKsQJGYO= z`SDsGtSk;9$X1{Ju98O~3bUGwm{q^;9!Hy(b*((wuNDtSQZh#%{*aHYYG$c(m3eAZ z=E`#jdh%UY6O%}G@)3Q%Lcm=*7fXI3e;z8{*vqT36p8vD(|PUqbLxHJlA6~;VVe8H zPH|W2$XLJ6+n&6>W!6!n~RTk&|k*^ZL ze$~G4HmRmm@oTz%Dra6)=UYkx<6GgrVc|6RBn|5H3Fl3~(}PbBOpR>P?Gl5t($Q6w z@1FNlxiSz(zJ2N@{Ub9~tT68Ew%+W*#UUS&kPt7z!1tNm&1vVuwJab-N>x3@DCC&c ze=$1cnKk4lsdge~?5airvNf`xuc72HtxL2tqK|b5TR{A%WUue;lfK3XHSyrMB*cX3 z#@_#ytC)zjse-Zn^$wsCIyWKI%sZhXZ-yz|f%+U};sbg)218Dnk9JLQ?OR~PFbYUs z1pvv_Zs`Q<1T{4^8K&Bv=sB%jgXL|f6-dpLR8JZ0u+R_%9N3@*p86&JY?b9| z!yUkl|8e)!$a@Z(ru-uQ!MiXCXrU49C@3gU?yUL8t~Nv_6AD3=eLyij2L9DbLmkrQ zxO}}s7xreH&AHZLg1Hx_J8oM9dZQc z@M8KrLd+GImxY}HU`YnGsC)1c#IO>Gg0n>;N4DAwU;Jr0icI5A+G)Aipx{<{AwG|S zveMu_9INu~d#bOqCjdSN$WvS)VfPpgRg)1aWBHV7|@ z2*{=)4}8xN`r zD4IF{-D3^Q0j=JT5=-~Wf1Ldb0)NCxM=U#m;iKa=VGx>5kEBLL?SWrov%retIX3j* zsv}o7)H-cGbQQ_857^)ca{@?`N}XX{rGnZ5!fE(?e+40S$O<5K+&xh=T>i?he_2K& z$b1|%fdU#e9hUiN8@ggLgP_VF{sXMzK(GnvJO)g z=GmxDg@9!7#b#A61%>7^23rrxtTQmLf}@217LRmEBHf&>LqXFpYD`U3m2v};bnov3 zMF15hbSy(D8?e(zaC89Tjh2AWEyWOaiqO{VdZW&Zy#h=9&4}R2EN~{Fk4BP-C*eaG z0w4y%r~pFAS(_?FMVGeoNO?WgkAmO%51ttDC4fl~91+jrn19!r#dPBAGCTtherSrS z-Me6f{g!_bFt6c+SzGYTS%RvX~GiWf)}(GcP<)%H{57ZPANa4dWUgV&H5@o`0^FmZ0kV zhoJv=Ln;qV%2U1OP?nw1>Nw}yqg+C|b=AX~chW7fW%TslOhtYD|7$YzUlWVGO8ORy z8ec^T0d;8%Z047spl-|kNNOA>yMgME!vGm1UyB^1CsF>3%)|};vpgaQ(2OfpI4?n! zaKPgB4BUXOOJJt3s3wo$L*Q>Qg9aaP{RLp9Gx%jS5Qgkj9b-4y3Dn38b(uV5{y{*@ zF`6Kq!vjTfog>_l`6~y!E@X%SjAp(@Js8dxf22!5&CYSOxYB{o@`Lx$U zKux;q3Me09wIvZk1ly`(rP@mXl1!)R$IwtU6-#b*?l7>&eA(FD-X{2PhQupGz-~Bz z>=E^H21i#k^B32wn+w32-;e^<`00-s<5jsA&hZT~58wtwV2G zA42Z#A3z^-clFaM?u8R5&BM;@Zk!yLf-)W)AzhN}b%A=A0b#v%mAePQ(vTM^+#r;R zv{R7-9j4hZpmYZ#1mNvO?DVI7GERY9Yi$qV#uf07{)n&#tyusOk)!{+eS1BbsktEf zs^O=E1g2q3fvAjyuXw{}WW~Chaf)MV!XyaE`A{8$(t(o0<%&L2#v$3=&>Y0?^lq^KizH9WuI&yIR+th2w?4AD|M&v7+yyzI-A8O7vHe z_&&dXh@+>I;6UqTuzuFQ`w6e3LD{yzpXeGo&_~_0{`}!kfV&(>2tV3x5g>)OMvDXU zpDH`qg!N^|`F+Bj2qd61o&$0%04c&(^C|I1bkY4PnV~st@eJH zsAq>oIaVrz_ScIeGpxrxBG_%ei`0auCq(CZ_x-9|$+X_p1Nvt-h2@kd`RMu|473k$ zgU;o`4;IQbvfh_G%Zy%IrVbVVl3H4+FO+k2=8+E$tF7Ac&lsBrxV*t)n8%eMvmb|*w-|G&IGt$>OX za$m4XL5;|t7qSdszgkV`K#G*8ovUt4NRU>l2^sy>JA}t)w^k4kJ`J9!U2sl;oIGPT z3%&=H@%^qQM5;(jCUY|^w8P#Q3DJ~@no*5`kXF<=5ckr?L_F2v6`MWlRtD3Mo9JoVF#5 zG?+2BxO`hZ1qXlzX%KT%=Py~2kPSMO(Qi0*#}A~_sr1THwc#DrV$(xEl43+Y1h&lHnDL;qYOr(TsOB-h12E4PQzv^#P zr50=2l}UTN2-#2%r+8$yD0jPZ{%9%NJ83%FZxrBXqq6_RgyD-{f1NR=rV;Bg^s^_$ zo}sydcjp5_{IrvB@CY{=Ekoie<;nN!h*anMn`Fm~!?Kk$X16_bL{UMNV$3@)Qv0ni zoxXHj2U*E9_0M+}U%JtOQxOtcCSG0S>Z##2xth|4RUoR5u8$YLZ-M15U92l{H8{fh zM@w@JX=r$EhhV9^^9+_{qg86dic1M=*}T_t#_AL-?ETF5^Z{(>Pi|b8Fgo^=8zS8U zTw>3ONC$M@yet)JhFPknlupNqpK(7|m~U17a>@Rmv+*qH@?-}a2^!#^ZD$m)kFFeL zcj}LUW>Z8&paOEOa+8ZgV_Z6iNs9>7o;|?7)h=JwQy^Z-0>O^0z%ymvipCUj+BOSQ z0lZfR88=b);|w4fqdXx@UTX{^ny+{j1VL{PATZ?!ZikR^ezSYQflY^*l^gs(;ypSv zsUf30=c5gPoJ*}KL(#4K01iHT3hC+-T_`GGDHPi|1wH9 z;k{}wf4>41C*Hu1>Y+BHW#Fg%=mID$@W)kx^P;h+2hgIP3Q5f(`UNj2lQW@>!V2Ry zuf+&0w=q=A6O32U7U0 zFr@6{mV}779j<*nf%r?EUjfQ=FyHri+BqCk*ZkA2A*xXu-(cdchbp1HBsa{c>5#kj z1+pUn6nM@&ZB`<(8teD-wp8Y`wsR?QK}>CXJiTW3>N@fakYy2WI&<8Qj6Ym%F^}35 z_`Nd;E{9Sl^ir^maN1SMEiO3>aL`eAKk5D`L~7~*+Yj%e(zo&R%8BLMhIMU1e6qbk zSy=7mD95X+okJNXrIDW++io#0|4|T$a|qlA!gNVHoFF@|z3vEMWdT9?9>++Hg}hN6 zB7(83yOo^q6m0m=Gbg+@w>7{RBE;^O;e5FW$ag!YtmvBz$At44+%1okYeCgJmFCb7 ziOFA-wPK(K&JYwQKy%$CK?RPf=L2krfh0Z zHSP9h4q)5n);zVMEO%HI%Vi&s+$x>5^PoqJSCJpUud+I8@$5V`w!X^1V|xhij6PWM zla97_|FmvqvoiqurW3OHM#u8bcmhkxVqD@DfkPr>FqSmj<@z z^HET3IT@pk5-!bxvI38WN&}E}*)pFJ)Q2?nIg)>&?y^+qYLb9G9m3w@S#=muo#dL! zR&FB5#m>?rOkHXaTgizub_fq zlDjn@J#3mJAgnQPWnv5|DA^<_#z1P4_=gq<7=}e>BOF!8tcVD76qn7gNZ560J3Z{& zWGU`IQ|#O*Ig-TAq7%AnukjJEK~i5uaqzDVVcP}v%*+EH=U>QcxZUWTbvDB-4kBK+ z7n^WVo79ieE+yX?$$e#O851gLXA{a!ZQzzzA-4AP=rW(|zD}YhC8Zbx_%XNkKD8st z2K&~%oi!=k(VDrWAlGrs;00)O*Zmld4V$%0b{far5{fCL`GQBF)E}KHz(=VhqfqXh z?;!I6qXK_2gS{ib<_LCzWNq^k(I(Oc28}1eTAKFp zu}cnRXO`ckV%sf{*JiU}YD>Mx{|m@u^piXqU`EOi=QioRP;n`?1zTb-YKE@Q;twIy z1MbU#%$VD>n~vcx-vv2Kh)J(;{AeAOi0s|*16i|s7#++;u7PNNwJlu;>M{C;S)8AJ z=%swB4O%p%KEotsh4{m&V@aZ;GHR!S`kkKEarrv2$s~=(6PLFgZI-jJ7Pc>BLWyzr z+}jeeW|`J)s~y?bZ5PDmiaU9DC2LHqG;7bjl?sj3ec&nUR7*SDEHAp>NT#_zH^`b; z?kii{j4CjjM30;!_HLTvu z9iI8gyuwef`*5$zC)w?t(_7P#nF#Rh=+s3{!lZeaZo0!ekE?IL%M7~Sw9uDj58`37 z6u&_-ce+afh+YfZRcpHdmd86=MszJR8@J*G`U6kT=dk~`S}=(RefWY#u;y@S#6(IKa$J@EXz(8% z9#V=2^+riaIZSS8G?>uQw?%0GJq9ve2AZUt5eW zAX~-U`FXnnuqvbal+H;ot2wkb4KV$4EC{^>w+pfjkMy5nIcuqz?aoTZ3NqV6BQ-V{ zBDwU|>U_SH>VwgK>F?WQKtbEN9eYW7e+10rL&QGWv?U3%tVtDziD}Wkjk8%pY)Ie^ zSI!iVM-OA9Y)&ERrUtJ;||l^}S<5|3~mh`^Lv`y$;0R`Ke)*a<%@Vq;-KK$~s)L0YeR2sx zja*kO#7-JRX8bUaaz2ATAlI%)dmuc}y=mJu5Q7MBq%IQ)Zv0u;ZmxSCk6XC2EMzT1 zgSu#wBRJlPmhUNrIA|_U-yAX_SCLY-a5GE&!p(P?N6F}xT-#JSgaGkV~DIsmCUlCQjSaoG`pZh_KZ2 zr`&ZB(#Pyn>h|mvbuT+|iQ#tj5*eIb35bc4TOn39?Ou>PMOlt+(6sl>r7Y2&ob=)& z38;P1Fc^%wrdiA zvm?-a&`m+dY=>hJ3l`PisR>yjG*9~_*@ecOC>&Y+H!AKyZ^4NB_XVXR93Z|q4Ci79 zAx4U8Ll~^C>b|LpD|MWkHdV-xA55?KctJZhze_Y=9o~17bFaQ+1F_pX z@J$IY{k&=FB)*jHe_5=)gV46no}@{!@75W3-%1@m)-$G-OeEXrHLQu}Uxj55nl+za zr%4f-TSF}lQIAUL7kbj7<5te}H1zQE64YBkE7HVNpXls{vRcaJ7t!Vey_i4Ihqj+3 z8H=B)z39PzP&@GJkuXCl)8P-V#6x4DfWyF4ro}KUopR=yn16#nAOA)6-r(nduPkiy zvvnl^RG+wO_H{)@t5tPY$_1Z8<9Esdu{6*QoiH9DZ|Ok(fC2^+j7~>)H`v`!aqldJ z$TO`*OENdB^r0owzl)H6m5A|J*WdkVZ1(`}=}}^?*~cRS>L7NS(!obsNW)f$ll1dW z9!ltM1JSJKC<=ZC4iOp317eg0^^a@|4+v5J4_9v;6=mCYjo*}jNJ%4&bcske64Htw zASK=1Ej_eIN{WJ@bT>#2jda%x-2>7C{7&xYd*A2xeQUW`{^4@XaGlq29>?Ct-rGcg z1$q1RGL<;32Ubp1bX`fLQI1JSt*_*M)Ih8z-CHXe#JYFiki+QeLx;1)=WA})7*@uD zGMK`^nr$B1CJ-Dm8Pc=neR9$e!4*Z3o{kkoh#}*h5v1b`$6@+O% z%f)GL9~cz9T`;@e|oW<9h5Kepd)NKgB|5 z`6zle;yDnK(icNfbIXWTl;4!flGHY?N8UEDTd7(ssSpd@F{IMrxywidNk!#rK@WA% zCw2r9&=G0AD>0AAEb2cDh$YBOR*Ee5hzf#;H6tN&cn|IbzPk6tMuuaTrOUAVVix+Y zQ>pgmxHG)xO+1Zw=<8)gv62vkIG7=Q&Sov`>x>7rMtk@-?7LoP6(bgB?z2xr9^kT1 zpD;UYiQHbmyRUgodt_U%zlrsaMEx@W+x{0&03x4dsA6b5GmeSGv!K(&z#mt z$oWyTwf@{n&4P)-B6Cf(_-k1-QOZ14@`PXS<`ltf+rIsSZ)NU7&0bQ}etHp*kK(8G zv{iEI!Z4n&4y`7E#?7Yo%z-^I0pHSEJtQ$0v+e^YiAq!aU`tzKgJptO{76^O3!y%b z+%tX=emDNsY~(I8`tIBRcLP`OGJ161mi2rn5p-a$o}au+06d3A`m($xm+}kiTZnR~ zl)hU}k9E@doUR#$lGE!Xm*agT*Mt8#tB*RV&{uHWk#sQ_k}JF_a{qLE0_dRT8WW8) zCC9}ZT0Culwl;e0Ip}_*Otnt8!-rX+KEK`;_7f_go~+8YxZ6Vlj-9gl69{Me9i>e)r7? zoO?D_)s*|3%9xjHM47FtcpSU1r!nuK+JFS^hP}A`II>Aprm^(|8?tLYZ0J6zRl95L z{Sh7}Rn)s>av`BB}_di3J zqf%LUiToQSU-&Ge5D~Xs=lJU=!#Edscv5zF2ybuL*-d0KVRs*inC@d?7M3W#tMKLr zu1x~tIb&~vAaWr5C0CMZYB^k33o{8AI~dtpj?=f=Zpz8jG^b!>q(9czc78JVO+;sx z!S*Nnx$Q6KvdX~fizRmQWit8zsaV=)@V3O!*4^TIyW56i{+6i#qYJHVg_p!?-d@WX zop0LhZCWtW-jTPvac6I`eMLjv{5`?L@$2v5 zoKBwGhtov%xDr1)eY@EHuT!q+e8h+v@VkTYOGRP)XD-_#v>|}k8(4gM_rnG)2tBj+ zQ|b<5*7t;%6J76*v^ojrI&1MFgYC&}SHXTg`1xtRt5yO|D^m2K|BBgu>@Z?fv1GY@ zhWkL+>0g7qTAvx9(LqBgBCe2$VcQ0=&$txN^Cl9R@}4EjmG`x>H!DSV|Ob{GqWtK4!l&{|5{ZnD&4f(YCfqfS@ z^^F!WWQKr^*<}bsJ`2v{zHcl!#HZs74Pgz-9)$fh!0us4sdTvx^)1|UT~J}W!%PDW z?!=uleHRp!{udtlROOv1H7x1C6LukOKTYLJDCy-6RZjS*}( z%e_wj6&-NQ<#N&YZV_2Ty^PzOdv0(+^qi|1sX!%^((wgvz$W92dV_fF{Qxdy?lz=L zg7UrnFx+Rm66msbG&bob3INJnYQ79wv!tvngB>c2+*=T9Dp|3FJF7P8@Fwz z;^cO7NZYy?OI^{&t|CcXD)g)AV~8WGiA}sl!AID!J?rk|MQIoN*LNhdDLdxP;Z0_x56PQ%1^G#1Ya5kKN6Q9R zUHjHE&)t~qUx7I~pY(gc5#nLCi0Y-@|F2vB30r|WPKx(zLysy^)$}iTn~Q0neb3ZZ zc#E85Lr!q@gYjNC{ghrZwFV*Uo`0mV&^a$gRk<&M3`lBz8}9mOJ6zJtp-j$VMX(gOkkkZLen7&X>zLi<#regKh z*QfN0yzX6p7xltDUC@y`Q>7hbId@Pw4?NaN`?2JOi!cPya;DsvHxPIuaAga9rP;V5 zlXnNo<=!*`a`%MI%`})jK#sb}ZJVLTMAzv1_xLrPo{Naz7r-VXz8=4acA;VY;_af< z`o$->*t|9-lygTUoff6-hZ*)nk;u6Oih%u;(8$9{V3Tdon9#|_s|QZLwYwiP zIG)}+w0MQpBR(s0SG1Xij3WVgPleF`XO*M>vwhGZz7x%F4har?1$*H#xah+L+3%>* zWyJPH-k0D_$I`ZFShlZQBu$9`J9Z?(meRjP!FHC0>wEC_bk%=WC;kL%2YW~#i!SPX zwi@nxqW3x=nv`qL9fHBjxj{RrN(skw??jd?ZH2nR!1j~r`8aTSOwe2ez8LEBHEkdU z9=7l`*h40J0RGz1WUReH45Yo940ovNJRamZP8;Z~AfM(uW(x;?6JKF4m`jd=(@n^e za5KrTcSmlR`q3*E;Xvw>ti0eg+-DBh!Hg}Z?~%;{ogB9*Cx+gl{w&fOS0n6sf#RPK z_re@=rmxI$+a-DiPtwh6f9`#ER8L#7}ofx^_P@~s|* z`S@8<#aSo~N|NDs6^nm5^|&;hLPdqwMT~0xLVPz{W&{k zVyQJjzY8ZQuxvK0s0;aRfC`-ivv=zRL)aSe<3fK>cfWBtJ#u;`C;34X!mjlv5G1yi z*ix^a{W{ZrTA-}8fAJP-YkqNbT>{&<(D zjLs)HSRc#I{5Aj>?$y5JTKJiu&`XasPv7I7{)9fysM0LbEB*=pvk_zIoPHJpKhWN< zkKw2JI;pjbg*D&`-+}z~C}9H;PWS_At(d5VP9$qQh9ET^{wQXlV4N1^^A9x8+8rtZ z$0f13X74I5d`|=K)^=o2{qc`S3&3;qmpRH6nc9ia6qx9Zx;jud&HTa<-89(rpyNANTLt2mi(5d)%BeHJEXMprFl^>Cr zn23TJa2n3xZ6B`9Rtde*aZD2a=V|_3@fvVpAv6jEWa9e;2oPlHDbfE339C)~oJlpY znnwjuw~ux5JYf|=>vngOd12$Chi!*44Iw)k4$F<2f8_)#&(II4 zLUG)H9Y8o4T$#(Dx}cH35E|0p?OpEdTKoFoq{bk%xlV1vk@vqO zqX)Z^2Q*kK%)zwXE7`%cHv>Bf4Ub;Zv(VHtNgvS#CMlsO1t}ae!!o;{flMn&f_>Lzi;%;o1XuQdCmGDRdqF$!vkUtNXVVpOboB7N=U#xsV#=Zk zwPs68L4su?W0=7yC0Pe;mn&-AFM=|SUSlFDyL)@#tAnP)j@s_nD1vSfEn(OdG{8;@ zu|Wu*egA}0D%+LC!2pi9%B=Uq7~up5!Zh+_9LuAb~)f zsNu+(`AAAl&Vi4vlI*q}s^N8vKj)}5&19!8d3Iv(~ zV7#eio%zX=X=2(2q6Efm%UYO84KAK23y;QerNG0$#6*Ay{I>UY4dl_Nspa?_$QMPl zif{abo$0TYr=wTKa*XoLSa^7)ISLUZ)^YJ$wX4z9k<(f<>T<5HGplJJ$v2*?NWW~ zWwT&JP-|CaX=7bc^Uc}3NkEE;#dd#811W>uAWOwxbIzM$8hn^^A&29J+%P;)c5t&$ zGV?qA0a$iu1Qe#s1(#_qzF7-`qE)X;wX+e<+b?%3LlxWD>q@&J-_>o|Yczp#^QBj8 zeZn)%l8!)OX|+Yn(O7TLys(J4?d_}Iv8G8U6jy}qNhY>yw8Qb{yxO^e&LOeQyciYF ze&p{yn?rH^#62|$T$SKLp8~z&8&H-DzKIQz2}u^6q`l4P5$#F5j1w3mkDf{)ScEqR z`I|50jvPI01Y4#lv&iH@;aN5ZG4Gg5T=l|Frmu!wFP`K;U8vpech7$|zmvb&4f=EU zi_$#a!oD^%y zykJgPT)9MBGI9RLizdCK!@frnGAMBq-8h(U4?fA8VFatL+t0AqkC(1U>d3##(l9Te z^0Zyxd$&^7(0*()!Q$uZsPSBG+u!`N~TmN3j zp90VF`8LfriGB@?4v7X_n)OFVFCX9bkX;a8Im)JTK)Y6 z*MZkdjH6Q)HU4Yz8RdZxAow5n5vnMb`8J!!kE;-g8gDI-L{m_mF<|s z^(j^BktzE^c_!8P%Ii=U1l9)N#0($?M-&^HVj2>Z1O}^6{V!!?`c5dG#P>BIiT>ga zC%6EZS!iU!5mCGSuS&x;h;iT0$l8by{9O@2+4O^)t@J>4CjnqOqa}sD%G6a<-x{XJ zR2y-UPb{>v5-6V(UtqmLa#yu_$Bz}gf*!fM3mm*=muSr4Rlx4N_x8~p8jKH1!hPje ztj|~R6-}HsLObI%w%Q8X8d$ThNq4w{$VqcRo(Pwn-ULOC!uu6J>XEa?56LoueXDmk z6HlQ3&@*HP`TpIaFI`@{YtiuAejw`z36h9i`xsLj`A)r|ko&8eJsIv=^j;tpV`%sm z2NnuKu>Y;A&RNY{QBz5(@5D#DAUU~xi3V02bSx&YG}M8-RtAtNzcQ6V65R> zJ-Up5CwlLrQ!Qq>s3>fFVlUL*4VEK`My+3kxgtk?h1^lBd3k{muKPmjZuJms(lquM zRa+(4Qu7L~^kCRU@a|Q&v9GzKp2W7c%?oL|;zzsn$T`3qAyQetolV7MKNI+yw#wcb z>*uOxp|?3)7V!Mau&p)?M{8YBZ<)oo!6I{~!t6nvLtVy@O&=dUOUoIJ5PGmi(<2(E zNM-;R#q64pgAqSYHpv=~eePm7MGc{6mj5DTh-|||u>l*RayN{^My7Txmm3+dYy7cUPgoIPhV58w|sM**}4X?Oy~boQ=vP3{M_wB7n49tyrDoQhD3wa{^@wWRMt zo(y+R`s8FTG@bQ9D?;xx7$h@6q1}O;9?NrA>lJTObMB1euj$+(?q)@CoP>X!#O5se zhKO=?Gf5?AR7>T0u^wP3$-I3b)Q*ad^H@K`H|Se;O}*Zy6b;t*&H2QXbYcIf9xUES zwsi)aNS-fzIc@pe+_w3}($aHHRHCZs(0g;cps738V2*bxuA?H$eU8%m`{G-L1?Bv# zq69=yg00K@+p+%4J}u*AtahgC0BO;3Tkga0Z2bg}oXP0Fo;TK2r*%UUci~s?;iQYO z-=mHCNELSM!uepLT1*uEPanw4D#^`@xq35y?&7q2&uJvV!eTDo${|F*`Jb>M<~h1X z>R1ExOMQLLk_OxgCEN`L5Ep|Xy;qjQzGN4EvM&39~QdG z7Q0f1dnK0h0$GMf-%3G$NX`RtlOf%`2z=bWm8<0tN9@&6z^fxx@ptC zOFsw+p7Z#DTVjUIIMKpKCV@X?WHMOvp#`IPxr z7Y!w;uFTk30R-<(HYpkQs&BkFIV9r-V&5k*mf%u~8D>KJdmJ3A#c2$lM5T{sE(p=u z6Bv8=9RM(4`3_;{Fp)g>bFSjqMWPTf!K`UwY$tjhMMJ#;pR; z5ai!h0K~2O?j}LxJ8cpX^b~`DlwqkLP;=grMZqfYZ&B+5e>83Q`xrXH594RQ+yxyi zjO3-_X2zLM--*h*Qo)}<8OBQ7sBzj=$+XQ>i$1m2*~m zTRVw(dE@LQk@~I8ee@E3^Y-V{ueHCe@y0J-HDuw`t_OFK1gp5qhix(J9+-T^I(!vL z`y-c2DKM?a2EM5Q+uV&g`~@+xq6^@C?}yaSYB_6)ICl>_SFSQD$e2{EnbdXY`QGNj zM|IYaftbM){IGxXTD!?)Q}%qH_N>&a)sdTKZJ`TW;^(-XXF>*ID>C5A)ihZ^4l}Ba_Wg7J_hgzpHwT28D%IfLXowK{Y!3gB8?^h9nB^@^(UwwR_0bZkwvQ$g%-UC< zTQU@m8f@DSw2aAO8fOub$XqgP_zx_;A5#f5z5r}=a`g(kbqQi%=ol? zTwv1Fw8Vz3&7j}57cWCo(g2F)wL49b;&soP{*^aFQwQTzE?r4Drr9^v7N&eFYi<4P zMNdsx;0)XoLcU*4p33Y1NI~GVnK`ou8xbdZaO7YtRGVxIuV?t;MOlysB3Kkio`Ns) z7j`bN@XGmxoKxpHzd^>e;DQk^;;~@gE&J_b@J(g+2Ss*^Z?VzRM5Xr9mPUTc1-`ed zyq(~GbN4>}cIq_vRxpPlZ5YF3+s~;qs$)zEbw{80S!%+^XY{4S^#niLJ8$NKPr|O7 zR%*nV3|nQ8enc=ba2R};0!nYQMOUM=^r3vIBGYetVq~}vUB(A9w`y>5TGm^IO(~`k z=eEHM5BU61S6z%d^bRtjr#!m@+YX|#5;F(tF2mdHvz|2t3KhTt%Z-rllMa1mZOCqU&Hv*l$~^<0?9 zPG5Ubckqg}rYpp@UF{Sttv|<=9T!rcpNX%>jF7$mE`MnNUR0G~8YhelWjmn#@?kFK z`jx&di&|!(uLgan6|cZj9Id2b7=0IUoH$|pHBXGnz5KS1EBZz|aL(_>UVSU@e`ek_arNqRYkbotYWv=PaoI{E zIh__h=kI$*b5I1gbYC{$?^5+!F%#U*9bc?VbzE;1v3MZ3+RW4l$@WKOxtaHOcgrw( zc<0}+%lhm<_xuz?xuGmRqsQNMiLR}D*fI;Ay+e8(IFhr{DiYvxeyWJmcvw2yu1a3@ z>w0JA=Rzn);A#|gj^}LM(R$9}biqxpzxY)|z_R18?vOvf&wD|HdO<^(dirF6CCq48 z?d%z@aDKN^gQweyyc+x?0vh<<1xrhXx=tpZkByy$^Y+Y#$ln$sYSkkf~{{d&zM zuq8@j%9t&2+{;LWc;U>HO$rXEPY&2wn~(nCEz<=dWYjps+(FUa4Z#!X1@3UZ>}KGZ z(u=i3AyO0WBqE7!RDxEX6P7l1jyy1v{26X&oZ_h7*`v0-9 zd;06w5Kft(TYx5iX;{8bfH)JYmtUnx4v#FGpP$!S`Nl1S@SlS(d_jK(c2vAmU1`o6 z!GGPvl%m5hyEHX5wNFmzKgp%M-Y3i`jZPz6``*iYSDvRPVVVu#+dDPV!oUZn6y6+7uGx}^6TnL;* zXJl>hg&eNb|J0CB0{#jhLU_6hK>+XJ&zvEc_-AqX&&E~w8o=^@!TNSP;e2R_(4|EX zmJz$pVPiF*?hftR4U&v?-8Z5u#cTAea>G8KD|6K(>6s^MHFEBmJ_0T<>iKPjw865}p>h6T?(^RW zSg*w%RkHFGl5YCEHOpLi^zbR&Q|#Sn>WM{_kgg zgFDuCrh@!KC`wxl?buhkns-Rnj{8F+n&YCvjr9)eu_Xrh#8rbe`9d6I!8&0pCoTwA zY2+|nfL?hZ2fV43V3}k3L>Twwe;pH%}bRnGQI)M zs)5p8VU-~UUDV}}! z$S(hXZXEEt)eQMtRx%Rkm2KiyDx*o}j8yqW_!>Gjl_k9q{ia+$Z)O_&KE$K*%q@}=FIv`4swkJ7kYOX zc(;4q3!H;?;lE?}hPS}W$fFf^e}-(refMWAGD_4JuAeK~gM?c*5F4r8d5%yaRlDZq z@F}JFA#3IPw?KZ?7tQ_k;W;L=u0usP=`GdiU;CagALa$uM-^dPJbw%?{jJlje{8?q ze($rLzX+lO_5+Y`+B(h$)317p3YA%Y)h_2 zn*WyJcJs(0UOo&Gb=M_y=SSW7bKFQ^UPx}`>J?fZ8|T_Zn4w-&`W9AsoeC!XljL%_g_ zpM%1Aed;u(l)fuz>M*CH&x0Hen9{XuxHr_e6(@Qqu;}(y>oa&1qq1pq{9wBW#63Z^ zhz|hvE)lQ{$cWiCBZr1{%(zlAroM)^4>Z>xj&BS?~|*UouaZO7hb+L zSBKhJivw^9ROfa<;oi9BYIC-zIoHxQm@IIQ7e8b54PfTdq0r*X4Ynn|9<%HmVO=ig zdBGt;#J5MO*zoqj-)krRk`xdNbLAYqD^Ceh$8zR@?8*O8e@3N6W}dhf<+2ThUbw z#PduT5S}eoNs>YDjVF#kB3T+iL?_cVz5abP zNaA@+J5XxY7!~+~h~EjW>OV5AC4AW@5oR@k8rlQ*chjA0b?fgL2X*@Ux+M#z+vqxV z0&mg~vGkLZLB9Cq=`N)O?c?mj*Vf;j%BK2Bn&!M1ea=}m_&h)~F81uEh~kJk?l7dH zH>CiFUL^|SV;2kcB&Ps&Jy`FpfVXp}dRW=lAJa5|k^^lQs%~vXIskJ}+iNjXdN(_Ep&LJG@ z1F$1-;CW%G@d|6%9#8B@Dv)ZQo0yu<;#ukFp$v;{XazX@Nw)bClsr=#yVPZr6o=kQ zPnIz*V-Dk!j49i$Cd-hgA8!V+f?OEED}cvBp*auUfj&XClgYh!NUCYtAGi|Hk|JMD zSn%?TExx~KXEiLb=CMpkOxKQ0`?al$FMJ>Iy~2mVjBbxp7n$u|A7TYx?z5>j+rVvE zP1Mnx%OQJN%XIIN$z<6c2hB1@tgxY?KyGW*fQu#!ch(e-FH7&`o6A zvjZTdEv~=A;b~qmx@^y({kaO>ZME8y0?a^ED!-%l+xUObbL$H%5THap-9?tiIyr&F zsM{L=!Y{BDWWu_AOaGdJa&puu6dze5nE;v~KAupLx1`9Qs^F|^KK4Gg9L-NPOmE)A zCzi#j=ARRCXaf~nVSGG}HN|6BDbS38Cf7hO=kZ&^YXhJ>ZrNf+y2ccsu6!bEROW08*3X&~wp!+N?7A{($@7GdHMZ3XPT(EMAAJ zqrsYV(^rPk+wMS>%mA*jWi4mNs2u2@0nb^~X1VH{fn9siO1`9i)D;Vyk)FCXfSTLn z&$G|A*TlX|$ol=h?>P7t&3!EMY^=vuVsnXRR40Wl@(=}Z+yRwNf!*ikqNFI+fiB-1 zNEUo8YS8)@ncJsumM@)j_t|K`mQo&m3Q^zux%6Df&AZ@d2_6<5+u-V)4UAX>yMZm^ zJD>_5N*3@Svc7(1trIkU9@ap9cUl&B+IDkvP1tt*NAQ*J#ZwyX^ya?MHy0pSdM{3R zgZ%Ktz*-E5#`_Z(2T4?aXcy&&`#?4+LUc)5cy{_0F!H(wat)Z)Xp zbs%$RxD<~o_%P~OId-4+%yJVI`GQ&2AxSCmfxe<p!>AJX5fkO*ezJP%obaXJTp+GsCjrrBjecr zL-(15ZlD=zeXRDhzN_lkNQ0zRk4_EnL}PZiL53s$j;mik-w1$%E>bmg6*=`-P1CVw zW{mR}wd=2SfH&-U;Mtxm@b%2UM`T#azPuXgdwn;zbHNQUf@GG#FS?Z|xBW<2qW*2O-J}ZUji%xO1KiF&%qZM74dRS*W8aT%TCx>rwlr_Wd{+ildgLbKD zA4(;yCyA`#4e40`=KrUBeq1=$hLSFWqLu+V|LRYef=T1L!y z^d)gJ{n*$8_5=N%96$NRA29T~*wb_H)U0hzx81rAWXhQmAZEv#rvUIXc%w2gbjT;b zi&|&Fp>XwhA0NTHOihq};v0Rl5&VJA!^uJ3{{@ciJeC`w)|{t(e}r@UnAJD=awOeW z3oMG`aS-RaHyBHpWuTl1T+0nrbC2VOt^Hrv29jp1EbGBZHt)w1q)2H4^Q$_E--(MK zmuEolm*UWtW1df;Z4qZF8Bk>9_Bl8xkw?9JAXss){<@(3+;Cue1WW@H{sbKJm*d&L z&Os4$qi{WJy9>Cx#t*j8e*DH#*n1i$*zmd}nK%1*t?9+`ec+P6CumTb64gZ5*i4x< z&wuzfN7`m|-y>!E>V(L7uWm=|DKb`Cs?(~K3!9!3Fmg2vINJTi?N19pf)VR-IgwDI zQ$v|+J%`{=aYcUmb%agNf(P+_{b_qZq<6Ko=LFL>{tIpSt6XGm_{6}AIK;g%OmZnpYc}i#Jo&ri7I3P%;$s!|x;7Vhx{jVc zs=Ya@YdbykexAS~%#n`OC)H~@{0)b*TuRHEO3bUAtm#MOH3&;Dcsiu3%=-LM`{l{j z_jnJ}o*2Y(q`J^*sDs*)ikLtySK=f=NWS#tY^Z4${C@76bnm^%5H=5&xd5Qr6u?s} z{XV~Ao?l(rS5gc&)X@uGs-evoRG z)_aZcPKmNa{P`OOzsIUr+!Iq!?@CoHREfEMAiDYNG3=88)4;iS7eCM0t0@tdV`+QSc(f;7c)BSKo6fEb+ z=vlxuxw^k zR-yBR%*1v8Q6I;eIkp^f%&gsp9T$*3(S(M+Vh1+%q%(rzGaUfZtv_2=7K4WvGCTS?S~IUt3G z<*wJi({anKQ)kcH)rz9lczGSjL^U=On2niK%auhL&Gnqt(A`x3_o|5R%t@$cy4f|l z`*o?#u%P2K-sjTM6BH>4XpvQIIFE` zBZLoJ4hS--W-Vl%61noRaqiP#OuvN4%~{iFJTFk9;UDo=$Li2GN!1%$5ZBfqb1a$DdE;A1NF_#`7 z{1~7OzOy3hio^o9J*ITiTyvGl^wapIY#`-Zt?ncgZwet>LNM12_Jj|i3byK}aa2;b67?DBavWEe2c;S@4vmG!m3jVB@t1{ z_|AIXTtEH%4M~Ff)|Hivaj0u}WQIus%Qt35Vqbbg{s@a~l{KZ(-cS4}2mq9xmgN;> zLMV9&V8$1qJ8wpFd(<&nUEm8OmP7%fmujvDSwLitT+uiW;Vgg#$qN^TP^P!S7F8Ba4otc=xSPv zC`kI`I1D9{CupdOb-}_otNCa(-}MP=&G}>lDOAqz@JH5Oc_*H#?K!~Py%`>YQNF0< z85yteH!bbQ8Ql)B2Z?xtid3Ep_fYmueUe~Dy^AuXN?JZo5g~#RR`7c+$*lXP_4RCACZEK6{o?5N>()!x^xiDBX%@Y?ewOh@O@I|GnyyO}!71iH#lG_v+&ZB4M zob6(t({sdL_x%$7H|K5PZOzgJca#w)(Qfum5N76vI(`eK}WPG+7@B>y_775Gvt zfG*8jA{HV*xN;v)X)tD_YG|TD)zdXd-v8;4x|U99Q?%C^N}US19Lo%MK5hn(Lvt@7 zJr}ADn!*scnWv(g2s<*Gc-B)=9>~Um5wBqce-m&Un~$eWjwu_{raJ&&_xVt*9)7=7 ze2auk3?e9uTO#)df}#%z6{r##b*}TXV8wBN;(Wfx(&hOACm6rQ#w5jm=+|ajaTpj% z-l;^>T>_A8NFSj6se`73#7(c7x0Ph1Y%O!Qruw6rb>G{zU;Ps|Y@9W2Xi~7_vhq-w zQrKfKjW^QO@e#w-J=JcVIvG_!nDlnj2_7rx@ug6zNf7GO^(9Htd{7pZSuBFP+WP3` z7ECVc1}fDw!EpO`^PR>mQ~)qMm7y)K$f=Z;eXp#)Fl~>_AA!}++ZBsvboyW=lIizF z3Udh9w`ay!8_{n_sCw%?iIg6E64!wB)p_s7NYhvzS%!-7wDjCR(a9W%_N;oOS3#!+ zJ9AfCIk$gV?rdbN#>`45*2^OabE5+S!=DROmVOaHfi&_?d-wb^)j$d-9;%5s{$YP4 zp-N{zU1w7^#2XvORgmctl|%e;e!a1ieOxaEBWLQ>0e=~s{4&Myntj%V~ z3*Ei5t$M{9fD-cG=E=Odvi{$r3UD-Cr^;1z?Atvh*F-qJ7maark&1Yr&VO)~QKGah ziriEV?54r2^Dr{QqcY~B=j~PEcr=E<7I{sdnfc{}X?%#_bQf@1?!w6ws>5zoDWq;3 zOaEOA0CE17Tyl_ek{3kh8H7Q4v$>k+hK2 zr81G1RtWay?FCfQV_rUeaA+pfZ2hbK5U^7D0&a6;9JOez@(n|9&*+rC!8rQb15{`< zcVlmv>mU#z6b*Bj=hP&HoS8c`<`VrB)_5zB8{+2c>sxoLfx~>DLbU#NbJ7pmt(q*L zv@{HefWZLBlSbh>K8n>8J%^v{u@F)K!0eh)$^4;>CxQ49KCKkri}>r_wWuOh-bYt6 zkt{qM@mf%Kzf^y@(6iYl$;k!F{H^L;rEM5?+T{?M;O)C3@FrY}nC;=Pyl}GTJ>RJ2 zW$cojnUKEdLUqlv@EhFm1sJ4GDz7Kdup1VS=(Ot$k$-?{SiTELc{kSE8Y3vAl<`NP zIVD^@sIX>a?$pGk{eZ3C;I30_zKdkHZGx$-GmK6)0KiLcuWcC3XL@I3DB-OZ)@zhB zcdb_E3Lff{F}ww|qn~c8>P`!8Gz0ZwU}StSPXYF?c>ARWUx&HTDWWGAJcbq9HyeKc zoWpqN!qMyJmaTu}t(QmThy(Nd(dC%&8Mc}KFD3pzMNktZFdf#~%~d0LB`%!sk zlX>Bu?jPEZudFzhF`HqX=mZ!@R%2T4;v88VR46DL5G+fvS0EHr1wAgAu4Ln3>^$r6 zpJb^Opd2|G#LzzBEPO&V8y45h{G+Etv}B2pX{>g)1Y`xp^49%z+5AmUO(4t2Fl3Ub zDxi1_sj}r?`8}MNqrVc9jWN&DwD(*Pg!L_J6D)!?kR`{?)6`0Jj_-iW6RIjT1k}>R z?U%{3N~)TB;1|PrJ&L0=tyv+@4sRv7r|+J}En`$GnPO|EvBLMTpZO4i`*{R(#|Fz1 zk#_*$PZ5WT9yTXJZid{``%pam`zQs$)t)1;;Svi!&-MzAoy;XQ6RDB!w)B$U`=XMJ4aNkjne*5dTCj26-a8R{LzZ7YD<0=TKR5Cu!61Ylu|AEPo zu2-D?(Oinjs=?rE2ow?B-q3Lo_VrmhN!y=PI3Kq=Y3Bb9FW_ux;s*93HmL&VG#}Ia z=f)jU#SHxBS`JW`k?rLvlqqING>9yrRfuyy7KU$HM z)9M145G`@%FE{r}Oiy6%&wQ|#H%%4v1clf1-Mli98ZKatmY-W+)l(xmIMr?9rfts zoi2Tg6C7f2O={%ld}l+%z2{1%s#Iv9Qdb~9Bb!y;%7I

t)zHD526z=im7I)&+M*eO|9na^L>O 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

jhhPB}dKR`MZArZxF{{4@-jO!$@e7GU zYQlE>tZnH_f-KwoU2wqXbpRW$1EVW~m7=~m0PCSv=IOSPJlo9K{?hfO z$}7r%JMN&>$j_$)i*iSM_j`-z^zYerFm=en265a#O&O>|=0_l)Aad!RJ;DzOF(=rO z3Q-vR{E>UGg>*~!w$Dy>H+OV#sp&YszYR;N3f(0`cxo&uLos%({H)|SXF_@^n=5Si zln#wi;dFnRK$;0zl#G_im19omtFhonU~Cz$V{6^@Ijw7Z(?C)Hwu8xf)_~gSMfR=O zzF6Y2IcVk}&G~k;_aHJ;Z-Thh7(?=cPA1C97l?y7J7G5t7V$TgGVqY7iF18nLR)n( zf#lbhEve!P{XaUsMIP(@^NjqnIa?oI2y_Q5VI5$#1~HAJgbrS_Jre|z(zU=n4s{2A zA<%2pSz`vJGf+!d^B~#Q4sqgTTD)hhx%Ivvv45uN=D66lb75yw?p|5?ok6md=C?{` z>e%>VNO{gIj0IerH^=k0H&woosFmp5EXAvEO)T^!+})Z7K}yGC-`d+1XQnWU>x*M4 zrv^cs?s~LA^K*C5^H}{%Bt3oKrXM`I4+w-U)S`k6ry=xgagS>~dO`b>7Me()d zrODm_u*YkZFAv0JKNyD6*LsNncMyG6EmC~f)Pd-q0wt$HPK0y04t>(x@|9^Pp)fKhgN=G>Nyr-6VJA(d+n_Eqr|+S;=+6pj@|fb9d^KN!28 z8~@0OKgbwXBmAI$H$yKTzntzm zDbIhi_B~9QuSWJTdI=ie?NBE6xnp3j>R!caV{L~l%=F7Y+QEOVMGsYG?hxCdhys_= z@|*z>RNEs3%0OFabPso$Pt-fkW|5n!)44;>QGyk1MbSOg4IV0+@)xf0^vM#i+{rNr z?HOY-sZT91q*%kp@o<~K_H-W#v~7nK7)T+$KxnsiHz%5`A*D`rHcbHOpG6`zmv;13 zHd{*-bWB!E67r1htD2HY<&jojb#N^GFv!%X4ESLOls{2l-%edzg{(c7UV9tm}+OTK0U@Sr9RXNQ4PFP zL*aWvFI|V2J7-MGI!LXaigQcmRzgW6aLqONgAAnt3js7IlZ46O-}7g7IPeqtxur8E zVtpOx^3d}`Jht#46X~8i8+tZ^#fxheiNCEfg9zo?dY~;n=RJBJnL6dvEDY~p9EM4d z4w6~W(QH)Fe3f@>ZO@5a`cVf;c~uWjYAxPJj=^84n$N$1j4oHm*Xtg=8@Qg)o7x(X zaN-T5ymb|KTT#{_+g#>G)rxculE1>jpY3_{vUfhEMabDKAW3bonB8CbqAs*0Y5QZo zOZlq_Ih{5`!S0UD=Y;CzY~VbL0(>fi@<5?R>(Y^)ohr)}21>Cv%T`9i=$fLrMV4wJ zXyLslx54(0oi)*0cUq-f@1c2Y{$*S?r2+pN*I#$h&aT0gC%?-YDR28|r!QjG!uEHz z8Q8#mxW(g6y$bk@JzA3sVI#@>Gf=IU^zdTMgu6bLZiCKKAvIq%fq(aHF#AY`Vz3)f zvDR6C^R51}Wj9rA=5Ng)xsat}H&2HZk)}Y3-pR9>a?|`YPeoEOZJ4!tw84*Jdk(w2t%HbX-Z<>$Z!?=86O6))W{t0%Sh=*UX4iD9AeuLd9i zZK<}>{esK_Tk4`(K8Ded)3o}_r;MY)vEtgzpT_gPH-{M_YzjQ`0bBQ{@!$zYpvm3k zP_rN42I0PX(y>Gkl8nBfdh)T(zkH(16&%@fzwz;ds|hDR1Wcq0QD+yUYS*>;%;KM_ zDCX*3o9SMR2g8Z7&S-*urPUTdYr&Z|ch`Y(yo=z_eZ(<}_qWHt-&d?)_|mxP}}b+4u^z|L1)F^_2&H;9C&v66tCw#pMmGD`x|E%LNrf za&s7@u9A|<;D47e-{DK1Su&W)J1qGfG_f#WDRN__0t;#%$@ReB5Alc$+f=+JUf@

2TeoI>q;J^1K$P9w<>BgonHz94MeiFdAi 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 literal 0 HcmV?d00001 diff --git a/Clockwork/Web/public/img/whats-new/4.1/queue-jobs-profiling.png b/Clockwork/Web/public/img/whats-new/4.1/queue-jobs-profiling.png new file mode 100644 index 0000000000000000000000000000000000000000..42cb97e47da1ecdd7ff05c4b895fa3a0d604382a GIT binary patch literal 243549 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%0ARX? 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�QW^M*nycy3C;x0z)z@MsMWJhhAW!h+ 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%0AoO0)RQpz79jZyhH(O-^rIJfCLbiNq& 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 z

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

Zv5R*^WPrGz~MPK(2`(g7U}RBLgJ2 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⁡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

agidj@Vsj4AnxXQC{%e4 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 literal 0 HcmV?d00001 diff --git a/Clockwork/Web/public/index.html b/Clockwork/Web/public/index.html index 05431998..b2a51652 100644 --- a/Clockwork/Web/public/index.html +++ b/Clockwork/Web/public/index.html @@ -1 +1 @@ -Clockwork

\ No newline at end of file +Clockwork
\ No newline at end of file diff --git a/Clockwork/Web/public/js/app.de9a987d.js b/Clockwork/Web/public/js/app.de9a987d.js new file mode 100644 index 00000000..20086a1a --- /dev/null +++ b/Clockwork/Web/public/js/app.de9a987d.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var a,r,o=t[0],l=t[1],c=t[2],d=0,h=[];d
'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(m["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(m["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),g=function e(t,s){Object(p["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){return this.makeFullPath(this.file||this.trace[0].file,this.line||this.trace[0].line)},shortPath:function(){return this.makeShortPath(this.file||this.trace[0].file,this.line||this.trace[0].line)}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},D=O,S=(s("9b34"),Object($["a"])(D,u,d,!1,null,null,null)),R=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],M=(s("96cf"),s("3b8d")),I={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=I,A=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),Q=A.exports,U={name:"MessagesOverlay",components:{ExceptionSection:R,ParentRequest:Q,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,H=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),F=H.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("number:3")(t.duration))+" ms")]):e._e()])}))}}],null,!1,1238126495)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},me=[],pe={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new b(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=pe,be=Object($["a"])(ve,fe,me,!1,null,null,null),ge=be.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:ge},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(p["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(m["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,3970562768)}):e._e()],1)},Oe=[],De=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=De,Re=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=Re.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Me=[],Ie={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge},data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Ie,Ae=Object($["a"])(Le,Ee,Me,!1,null,null,null),Qe=Ae.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],He={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},Fe=He,Be=Object($["a"])(Fe,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=Object($["a"])(Ge,Ve,We,!1,null,null,null),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),mt=s.n(ft),pt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:mt()(e.context,["performance","trace"])})}))}}},vt=pt,bt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),gt=bt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Dt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Dt.exports,Rt={name:"PerformanceTab",components:{PerformanceLog:gt,Profiler:Ct,Timeline:St},data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Rt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),Mt=Et.exports,It=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],At={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},Qt=At,Ut=Object($["a"])(Qt,It,Lt,!1,null,null,null),Jt=Ut.exports,Ht=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ft=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(t),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(t,!1);case 7:e.t0=e.sent;case 8:if(a=e.t0,a){e.next=11;break}return e.abrupt("return",setTimeout((function(){return n.loadQueueJobRequest(t,s+1)}),5e3));case 11:this.$set(this.jobRequests,t,a);case 12:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{$request:{handler:function(){var e=this;this.$request.queueJobs.forEach((function(t){t.id&&e.loadQueueJobRequest(t.id)}))},immediate:!0}}},zt=Bt,Vt=(s("8c77"),Object($["a"])(zt,Ht,Ft,!1,null,"dea2de12",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:ge},props:["userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:ge,Timeline:St}},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:F,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Qe,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:Mt,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,m,p,v,b,g,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(m=this.$request)||void 0===m?void 0:null===(p=m.emails)||void 0===p?void 0:p.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(b=v.routes)||void 0===b?void 0:b.length)>0,output:(null===(g=this.$request)||void 0===g?void 0:null===(w=g.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ms=fs,ps=(s("0f8a"),Object($["a"])(ms,r,o,!1,null,null,null)),vs=ps.exports,bs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},gs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Ds=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Rs={name:"QueueJobTab",components:{PrettyPrint:ge,SidebarSection:xs}},Ns=Rs,Es=(s("6b0a"),Object($["a"])(Ns,Ds,Ss,!1,null,null,null)),Ms=Es.exports,Is=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],As={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},Qs=As,Us=(s("9a64"),Object($["a"])(Qs,Is,Ls,!1,null,null,null)),Js=Us.exports,Hs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Fs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:ge,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Hs,Fs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:R,ParentRequest:Q,QueueJobTab:Ms,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,bs,gs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){return this.$settings.global.hideCommandTypeRequests?this.$requests.items.filter((function(e){return"command"!=e.type})):this.$settings.global.hideQueueJobTypeRequests?this.$requests.items.filter((function(e){return"queue-job"!=e.type})):this.$settings.global.hideTestTypeRequests?this.$requests.items.filter((function(e){return"test"!=e.type})):this.$requests.items},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){var t,s;this.global.$request=e,"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,ma=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),pa=ma.exports,va=s("d842"),ba=s("4eb5"),ga=s.n(ba),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ga.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Da=s("c074"),Sa=s("b702");Oa["c"].add(Da["r"],Da["w"],Da["o"],Da["p"],Sa["a"],Da["i"],Da["d"],Da["s"],Da["z"],Da["h"],Da["e"],Da["b"],Da["a"],Da["j"],Da["v"],Da["y"],Da["A"],Da["u"],Da["k"],Da["B"],Da["c"],Da["t"],Da["m"],Da["g"],Da["f"],Da["l"],Da["q"],Da["x"],Da["n"]);var Ra=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ma=s("c909"),Ia=s.n(Ma),La=function(){function e(t){Object(p["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Ra["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Ra["a"])(t))}},{key:"processViews",value:function(e){var t=this;Object.values(e).forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ia.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Aa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.withQuery({"type[]":"command"},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(m["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(m["a"])(browser))&&browser.devtools}}]),e}(),Qa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote("http://127.0.0.1:8000",{path:"__clockwork/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(p["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(p["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Ha=function(){function e(){Object(p["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Fa=(s("6c7b"),s("f559"),function(){function e(t,s){Object(p["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),m=f[0],p=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),b=v.shift();u=i[m],u||(i[m]=u={name:p,file:c,line:b,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),m=f.shift(),p=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=p.callers[d];v||(p.callers[d]=v={name:u.name,line:m,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var b=u.subCalls[r];b||(u.subCalls[r]=b={name:c,line:m,calls:0,summed:new Array(f.length).fill(0)}),b.calls++,b.summed=b.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(p["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Fa.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(p["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.last((function(e){return!e.loading})).id,this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){this.items=this.items.concat(e).sort((function(e,t){return e.time-t.time}))}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ia.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ia()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Ra["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(p["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Aa,hideQueueJobTypeRequests:this.platform instanceof Aa,hideTestTypeRequests:this.platform instanceof Aa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("shortClass",this.shortClass)}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(p["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s]
'}),this.createElement("span",{text:"".concat(r," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter(function(e){return!["__class__","__type__","__hash__"].includes(e)}).map(function(s){var r=t.resolveValueAndType(e[s]),n=Object(a["a"])(r,2),i=n[0],o=n[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:i})])])}))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter(function(e){return!["__class__","__type__","__hash__"].includes(e)}).slice(0,3).map(function(s){var r=t.resolveValueAndType(e[s]),n=Object(a["a"])(r,2),i=n[0],o=n[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:i})])}).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(h["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(h["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),r=e.querySelector("i");r.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",r.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach(function(e){s.expandNode(e.parentNode.parentNode,t)})}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),r=e.querySelector("i");r.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",r.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach(function(e){s.collapseNode(e.parentNode.parentNode,t)})}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach(function(e){return a.style[e]=t.style[e]}),t.data instanceof Object&&Object.keys(t.data).forEach(function(e){return a.dataset[e]=t.data[e]}),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach(function(e){return a.append(e)}),a}}]),e}(),m=function e(t,s){Object(f["a"])(this,e),this.message=t,this.exception=s},b=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},g=[],w={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},_=w,y=s("2877"),q=Object(y["a"])(_,b,g,!1,null,null,null),k=q.exports,C={name:"PrettyPrint",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){return this.makeFullPath(this.file,this.line)},shortPath:function(){return this.makeShortPath(this.file,this.line)}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},$=C,x=Object(y["a"])($,u,d,!1,null,null,null),j=x.exports,T={name:"MessagesOverlay",components:{StackTrace:j},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},P=T,O=(s("9cad"),Object(y["a"])(P,l,c,!1,null,null,null)),S=O.exports,D=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},N=[],E=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),L=E,R=Object(y["a"])(L,D,N,!1,null,null,null),M=R.exports,I=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.close,expression:"close"}],staticClass:"popover-container settings-container"},[s("a",{attrs:{href:"#",title:"Settings"},on:{click:function(t){return t.preventDefault(),e.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"cog"}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"popover right-aligned"},[s("div",{staticClass:"popover-content"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.editor,expression:"$settings.editor"}],attrs:{id:"settings-editor"},on:{change:function(t){var s=Array.prototype.filter.call(t.target.options,function(e){return e.selected}).map(function(e){var t="_value"in e?e._value:e.value;return t});e.$set(e.$settings,"editor",t.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.editor,expression:"$settings.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.editor,expression:"$settings.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Local path map")]),s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.localPathMapReal,expression:"$settings.localPathMapReal"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.localPathMapReal},on:{input:function(t){t.target.composing||e.$set(e.$settings,"localPathMapReal",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.localPathMapLocal,expression:"$settings.localPathMapLocal"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.localPathMapLocal},on:{input:function(t){t.target.composing||e.$set(e.$settings,"localPathMapLocal",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap real to local path for the code editor links.\n\t\t\t\t")])]),s("div",{staticClass:"controls-group settings-save"},[s("button",{on:{click:e.save}},[e._v("\n\t\t\t\t\tSave\n\t\t\t\t")])])])])])},A=[],U={name:"SettingsPopover",data:function(){return{show:!1}},methods:{close:function(){this.show=!1},toggle:function(){this.show||this.$settings.reload(),this.show=!this.show},save:function(){this.$settings.save(),this.show=!1}}},Q=U,F=Object(y["a"])(Q,I,A,!1,null,null,null),B=F.exports,H=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("number:3")(t.duration))+" ms")]):e._e()])})}}],null,!1,1238126495)}):e._e()],1)},z=[],V=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)}),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},W=[],J=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},K=[],G={name:"DetailsTableFilterToggle",props:["filter"]},Y=G,X=Object(y["a"])(Y,J,K,!1,null,null,null),Z=X.exports,ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},te=[],se={name:"PrettyPrint",props:["data"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new p(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t)}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ae=se,re=Object(y["a"])(ae,ee,te,!1,null,null,null),ne=re.exports,ie={name:"DetailsTable",components:{DetailsTableFilterToggle:Z,PrettyPrint:ne},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},oe=ie,le=(s("2958"),Object(y["a"])(oe,V,W,!1,null,null,null)),ce=le.exports,ue=(s("4917"),s("55dd"),s("2b0e")),de=function(){function e(t,s){Object(f["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&ue["a"].nextTick(function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()})}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,r=s.tags;if(e=e.filter(function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,r)}),this.sortedBy){var n=this.tags.find(function(e){return e.tag==t.sortedBy});e.sort(function(e,s){var a,r;return n&&"number"==n.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(r=s[t.sortedBy])||void 0===r?void 0:r.toString())})}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(h["a"])(e)&&null!==e?Object.values(e).find(function(e){return s.matchesTerms(e,t)}):"string"==typeof e&&t.find(function(t){return e.toLowerCase().includes(t.toLowerCase())}))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every(function(a){return a=s.tags.find(function(e){return e.tag==a}),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every(function(t){return s.isTagApplicable(a,e,t)}):t[a.tag].find(function(t){return s.isTagApplicable(a,e,t)}))})}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(r[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+r[1]:r[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,r}},{key:"tokenize",value:function(e){var t,s=[],a={},r=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=r.exec(e)){var n=t[1]?t[1].substr(0,t[1].length-1):void 0,i=t[2];(t=i.match(/^"(.+?)"$/))&&(i=t[1]),n?(a[n]||(a[n]=[]),a[n].push(i)):s.push(i)}return{terms:s,tags:a}}}]),e}(),he={name:"CacheTab",components:{DetailsTable:ce,PrettyPrint:ne,StackTrace:j},data:function(){return{filter:new de([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some(function(e){return e.connection})&&e.unshift("Connection"),this.$request.cacheQueries.some(function(e){return e.duration})&&e.push("Duration"),e}}},fe=he,ve=Object(y["a"])(fe,H,z,!1,null,null,null),pe=ve.exports,me=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])})}}],null,!1,3970562768)}):e._e()],1)},be=[],ge=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:ce,ShortenedText:k,StackTrace:j},data:function(){return{filter:new de([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map(function(e){return e.connection})).size>1;return t&&e.splice(1,0,"Connection"),e}}}),we=ge,_e=(s("c563"),Object(y["a"])(we,me,be,!1,null,null,null)),ye=_e.exports,qe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])})}}])})],1)},ke=[],Ce={name:"EmailsTab",components:{DetailsTable:ce,DetailsTableFilterToggle:Z,PrettyPrint:ne},data:function(){return{filter:new de([{tag:"to"}])}}},$e=Ce,xe=Object(y["a"])($e,qe,ke,!1,null,null,null),je=xe.exports,Te=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])})],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])})}}])})],1)},Pe=[],Oe={name:"EventsTab",components:{DetailsTable:ce,PrettyPrint:ne,ShortenedText:k,StackTrace:j},data:function(){return{filter:new de([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter(function(t){return t!=e}):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},Se=Oe,De=Object(y["a"])(Se,Te,Pe,!1,null,null,null),Ne=De.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])})}}])})],1)},Le=[],Re={name:"LogTab",components:{DetailsTable:ce,PrettyPrint:ne,StackTrace:j},data:function(){return{filter:new de([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],function(e){return e.message})}},computed:{log:function(){return this.$request.log.filter(function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)})}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Me=Re,Ie=Object(y["a"])(Me,Ee,Le,!1,null,null,null),Ae=Ie.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])}),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}]}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},Qe=[],Fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])})}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])})}}],null,!1,2667532720)}):e._e()],1):e._e()},Be=[],He=s("e0e5"),ze=s.n(He),Ve=s("57b8"),We=s.n(Ve),Je={name:"PerformanceLog",components:{DetailsTable:ce,DetailsTableFilterToggle:Z,PrettyPrint:ne,ShortenedText:k,StackTrace:j},data:function(){return{databaseSlowQueriesFilter:new de([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new de([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],function(e){return e.message})}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map(function(e){return e.connection})).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter(function(e){return e.tags.includes("slow")})},performanceLog:function(){return this.$request.log.filter(function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance}).map(function(e){return ze()({},e,{context:We()(e.context,["performance","trace"])})})}}},Ke=Je,Ge=(s("e924"),Object(y["a"])(Ke,Fe,Be,!1,null,null,null)),Ye=Ge.exports,Xe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])}),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},Ze=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],et={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new de([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],function(e){return e.name});return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},tt=et,st=Object(y["a"])(tt,Xe,Ze,!1,null,null,null),at=st.exports,rt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:["Timeline","Duration","Description"],items:e.$request.timeline,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])}),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight}},[e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+" ("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._v(e._s(t.description))])])})}}])})],1)},nt=[],it={name:"Timeline",components:{DetailsTable:ce},data:function(){return{view:"chart",filter:new de([{tag:"duration",type:"number"}],function(e){return e.description})}},computed:{legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,r=Math.floor(a/80),n=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*n).toString()}),t}}},ot=it,lt=Object(y["a"])(ot,rt,nt,!1,null,null,null),ct=lt.exports,ut={name:"PerformanceTab",components:{PerformanceLog:Ye,Profiler:at,Timeline:ct},data:function(){return{activeTab:"timeline"}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map(function(e){return[e.name,e.value]})},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s=document.querySelector("body").classList.contains("dark")?"dark":"light";return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map(function(e){return t[e.style][s]})},chartOptions:function(){var e=document.querySelector("body").classList.contains("dark")?"dark":"light";return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activeTab==e},showTab:function(e){this.activeTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},dt=ut,ht=Object(y["a"])(dt,Ue,Qe,!1,null,null,null),ft=ht.exports,vt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])})}}])})],1)},pt=[],mt={name:"RedisTab",components:{DetailsTable:ce,PrettyPrint:ne,StackTrace:j},data:function(){return{filter:new de([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map(function(e){return e.connection})).size>1;return t&&e.splice(0,0,"Connection"),e}}},bt=mt,gt=Object(y["a"])(bt,vt,pt,!1,null,null,null),wt=gt.exports,_t=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),e.columns.includes("Options")?s("td",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e()])})}}])})],1)},yt=[],qt={name:"QueueTab",components:{DetailsTable:ce,PrettyPrint:ne,ShortenedText:k,StackTrace:j},data:function(){return{filter:new de([{tag:"connection"},{tag:"queue"},{tag:"name"}])}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map(function(e){return e.queue})).size>1,s=new Set(this.$request.queueJobs.map(function(e){return e.connection})).size>1,a=this.$request.queueJobs.some(function(e){return e.maxTries||e.timeout});return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),a&&e.push("Options"),e}}},kt=qt,Ct=(s("a074"),Object(y["a"])(kt,_t,yt,!1,null,"ee698604",null)),$t=Ct.exports,xt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,function(a,r){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(r==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])}),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])})}}])})],1)},jt=[],Tt={name:"RoutesTab",components:{DetailsTable:ce},data:function(){return{filter:new de([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some(function(e){return e.name})&&e.push("Name"),this.$request.routes.some(function(e){return e.middleware})&&e.push("Middleware"),this.$request.routes.some(function(e){return e.before})&&e.push("Before"),this.$request.routes.some(function(e){return e.after})&&e.push("After"),e}}},Pt=Tt,Ot=Object(y["a"])(Pt,xt,jt,!1,null,null,null),St=Ot.exports,Dt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",e._l(e.userTab.sections,function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])}),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map(function(e){return e.key}),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t){return s("tr",e._l(t,function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)}),0)})}}],null,!0)}):e._e()],1)}),0)},Nt=[],Et={name:"UserTab",components:{DetailsTable:ce,PrettyPrint:ne},props:["userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map(function(e){if("table"==e.showAs)return new de(e.data[0].map(function(e){return{tag:e.key}}))})},immediate:!0}}},Lt=Et,Rt=Object(y["a"])(Lt,Dt,Nt,!1,null,null,null),Mt=Rt.exports,It=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Name","Data"],items:e.$request.views,filter:e.filter,"filter-example":'"Mike Jones" name:welcome'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.name))]),s("td",[s("pretty-print",{attrs:{data:t.data}})],1)])})}}])})],1)},At=[],Ut={name:"ViewsTab",components:{DetailsTable:ce,PrettyPrint:ne},data:function(){return{filter:new de([{tag:"name"}])}}},Qt=Ut,Ft=Object(y["a"])(Qt,It,At,!1,null,null,null),Bt=Ft.exports,Ht={name:"RequestDetails",components:{MessagesOverlay:S,TabHandle:M,SettingsPopover:B,CacheTab:pe,DatabaseTab:ye,EmailsTab:je,EventsTab:Ne,LogTab:Ae,PerformanceTab:ft,RedisTab:wt,QueueTab:$t,RoutesTab:St,UserTab:Mt,ViewsTab:Bt},data:function(){return{activeTab:"performance"}},computed:{showLogTab:function(){var e,t;return null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length},showDatabaseTab:function(){var e,t,s;return(null===(e=this.$request)||void 0===e?void 0:e.databaseQueriesCount)||(null===(t=this.$request)||void 0===t?void 0:null===(s=t.databaseQueries)||void 0===s?void 0:s.length)},showCacheTab:function(){var e,t=this;return["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some(function(e){var s;return null===(s=t.$request)||void 0===s?void 0:s[e]})||(null===(e=this.$request)||void 0===e?void 0:e.cacheQueries.length)},showRedisTab:function(){var e,t;return null===(e=this.$request)||void 0===e?void 0:null===(t=e.redisCommands)||void 0===t?void 0:t.length},showQueueTab:function(){var e,t;return null===(e=this.$request)||void 0===e?void 0:null===(t=e.queueJobs)||void 0===t?void 0:t.length},showEventsTab:function(){var e,t;return null===(e=this.$request)||void 0===e?void 0:null===(t=e.events)||void 0===t?void 0:t.length},showViewsTab:function(){var e,t;return null===(e=this.$request)||void 0===e?void 0:null===(t=e.views)||void 0===t?void 0:t.length},showEmailsTab:function(){var e,t;return null===(e=this.$request)||void 0===e?void 0:null===(t=e.emails)||void 0===t?void 0:t.length},showRoutesTab:function(){var e,t;return null===(e=this.$request)||void 0===e?void 0:null===(t=e.routes)||void 0===t?void 0:t.length}},methods:{isTabActive:function(e){return this.$request&&this.activeTab==e},showTab:function(e){this.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},zt=Ht,Vt=(s("0f8a"),Object(y["a"])(zt,i,o,!1,null,null,null)),Wt=Vt.exports,Jt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e._v("\n\t\t\tRequest\n\t\t")]),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},Kt=[],Gt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[e.$request&&e.$request.parent?s("div",{staticClass:"parent-request"},[s("div",[e._v("\n\t\t\tSubrequest of "),s("span",{staticClass:"parent-method"},[e._v(e._s(e.$request.parent.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.$request.parent.uri))])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.$request.parent.id)}}},[e._v("Show")])])]):e._e(),e.$request&&e.$request.exceptions.length?s("div",{staticClass:"exception"},e._l(e.$request.exceptions,function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"exception-info"},[s("div",{staticClass:"exception-message"},[s("h3",[e._v(e._s(t.type)+" "),t.code?s("small",[e._v("#"+e._s(t.code))]):e._e()]),e._v("\n\t\t\t\t"+e._s(t.message)+"\n\t\t\t")]),s("div",[t.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#",title:"Show previous"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[s("font-awesome-icon",{attrs:{icon:"arrow-circle-down"}})],1):e._e(),s("stack-trace",{staticClass:"exception-trace",attrs:{trace:t.trace}})],1)])}),0):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,r=t.filter,n=t.filterExample,i=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:i,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:r,"filter-example":n,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])})}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Yt=[],Xt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])})}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})])],2)},Zt=[],es={name:"SidebarSection",components:{DetailsTable:ce,DetailsTableFilterToggle:Z,PrettyPrint:ne},props:["title","name","filterExample","items"],data:function(){return{filter:new de([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},ts=es,ss=(s("101e"),Object(y["a"])(ts,Xt,Zt,!1,null,null,null)),as=ss.exports,rs={name:"RequestTab",components:{DetailsTable:ce,SidebarSection:as,StackTrace:j},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter(function(e){return"Cookie"!=e.name}):this.$request.headers}},methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}}},ns=rs,is=(s("9a64"),Object(y["a"])(ns,Gt,Yt,!1,null,null,null)),os=is.exports,ls={name:"RequestSidebar",components:{RequestTab:os},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},cs=ls,us=(s("313b"),Object(y["a"])(cs,Jt,Kt,!1,null,null,null)),ds=us.exports,hs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[e._m(0),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.$requests.items,function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.method+" "+t.uri+" ("+t.controller+")"}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri))]),s("br"),e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])],1),s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])]),s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")])])])}),e._m(2)],2)])])},fs=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])]),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),s("small",[e._v("Database")])])])])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],vs={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){return this.$requests.items}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){var t,s;this.global.$request=e,"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires),this.global.showIncomingRequests=e==this.$requests.last()},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then(function(){e.loadingMoreRequests=!1})}},watch:{requests:{handler:function(e){this.$store.get("preserveLog")?this.global.showIncomingRequests&&(this.showRequest(this.global.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight):this.showRequest(this.global.$requests.first())},deep:!0}}},ps=vs,ms=(s("d852"),Object(y["a"])(ps,hs,fs,!1,null,null,null)),bs=ms.exports,gs={name:"App",components:{RequestDetails:Wt,RequestSidebar:ds,RequestsList:bs}},ws=gs,_s=(s("5c0b"),Object(y["a"])(ws,r,n,!1,null,null,null)),ys=_s.exports,qs=s("d842"),ks=s("4eb5"),Cs=s.n(ks),$s=s("2ead"),xs=s.n($s),js=s("f035"),Ts=s.n(js),Ps=s("2103"),Os=s.n(Ps),Ss=s("30ef"),Ds=s.n(Ss),Ns=s("9b02"),Es=s.n(Ns),Ls=s("ad3d");ue["a"].config.devtools=!0,ue["a"].config.performance=!0,ue["a"].config.productionTip=!1,ue["a"].use(Cs.a),ue["a"].use(xs.a),ue["a"].use(qs["a"],{adapter:Ds.a}),ue["a"].use(Os.a),ue["a"].component("font-awesome-icon",Ls["a"]),ue["a"].component("spinner",Ts.a),ue["a"].mixin({methods:{$get:Es.a}});var Rs=s("ecee"),Ms=s("c074"),Is=s("b702");Rs["c"].add(Ms["l"],Ms["q"],Ms["j"],Ms["k"],Is["a"],Ms["g"],Ms["d"],Ms["m"],Ms["s"],Ms["f"],Ms["e"],Ms["b"],Ms["a"],Ms["h"],Ms["p"],Ms["r"],Ms["t"],Ms["o"],Ms["i"],Ms["u"],Ms["c"],Ms["n"]);var As=s("75fc"),Us=s("1160"),Qs=s.n(Us),Fs=s("c909"),Bs=s.n(Fs),Hs=function(){function e(t){Object(f["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.timeline=this.processTimeline(this.timelineData),this.views=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach(function(t){return s[t]=e[t]}),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map(function(t){return{name:t,value:e[t]}});return t&&(s=s.sort(function(e,t){return e.name.localeCompare(t.name)})),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map(function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e}):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter(function(e){return e.tags.includes("slow")}).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter(function(e){return e.query.match(/^select /i)}).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter(function(e){return e.query.match(/^insert /i)}).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter(function(e){return e.query.match(/^update /i)}).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter(function(e){return e.query.match(/^delete /i)}).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter(function(e){return!e.query.match(/^(select|insert|update|delete) /i)}).length}},{key:"processDatabaseQueries",value:function(e){return e instanceof Array?e.map(function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e}):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter(function(e){return e.data instanceof Object}).map(function(e){return e.data}):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map(function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map(function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}}),e}):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(500!=this.responseStatus||!e)return[];e=Qs()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(As["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map(function(t){var s=e[t];return t=t.split("-").map(function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}).join("-"),{name:t,value:s}}).reduce(function(e,t){return t=t.value instanceof Array?t.value.map(function(e){return{name:t.name,value:e}}):[t],e.concat(t)},[]).sort(function(e,t){return e.name.localeCompare(t.name)}):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map(function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter(function(e){return"__type__"!=e}).length?e.context:void 0,e}):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter(function(e){return e.value>0});e=e.filter(function(e){return e instanceof Object}).map(function(e,t){return e.style="style"+(t+2),e});var t=e.reduce(function(e,t){return e+t.value},0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map(function(e){return e.shortName=e.name.split("\\").pop(),e}):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTimeline",value:function(e){var t=this;return e instanceof Object?Object.values(e).map(function(e,s){return e.style="style"+(s%4+1),e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e}):[]}},{key:"processViews",value:function(e){return e instanceof Object?Object.values(e).filter(function(e){return e.data instanceof Object}).map(function(e){return e.data}):[]}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),r=s[0],n=s[1];return{key:e[r]||r,value:n}}};return Object.entries(e).filter(function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title}).map(function(e){var r=Object(a["a"])(e,2),n=r[0],i=r[1];return{key:n,title:i.__meta.title,sections:Object.entries(i).filter(t).map(function(e){var r=Object(a["a"])(e,2),n=(r[0],r[1]),i=n.__meta.labels||{},o="counters"==n.__meta.showAs?Object.entries(n).filter(t).map(s(i)):Object.entries(n).filter(t).map(function(e){var t=Object(a["a"])(e,2),r=(t[0],t[1]);return Object.entries(r).map(s(i))});return{data:o,showAs:n.__meta.showAs,title:n.__meta.title}})}})}},{key:"getErrorsCount",value:function(){return this.log.reduce(function(e,t){return"error"==t.level?e+1:e},0)}},{key:"getWarningsCount",value:function(){return this.log.filter(function(e){return"warning"==e.level}).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Bs.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),zs=function(){function e(){Object(f["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&document.querySelector("body").classList.add("dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then(function(t){return e.requests.setRemote(t)})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient(function(t,s,a,r){return new Promise(function(n,i){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:r},function(t){o&&e.profiler.enableProfiling(),t.error?i(t):n(t.data)})};o?e.profiler.disableProfiling().then(l):l()})})}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then(function(r){a.api.cookies.set({url:r,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})})}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then(function(s){return new Promise(function(a,r){t.api.cookies.get({url:s,name:e},function(e){a(e?e.value:void 0)})})})}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise(function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},function(e){return t(e)})})}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener(function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=Hs.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach(function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,Hs.placeholder(t.id,t,a))}),e.requests.setRemote(t.request.url,s)}}}),this.api.runtime.onMessage.addListener(function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())})}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,Hs.placeholder(s.id,t))}})}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find(function(e){return"x-clockwork-id"==e.name.toLowerCase()}))?t.value:void 0,a=(t=e.find(function(e){return"x-clockwork-path"==e.name.toLowerCase()}))?t.value:void 0,r=(t=e.find(function(e){return"x-clockwork-version"==e.name.toLowerCase()}))?t.value:void 0;if(s){var n={};e.forEach(function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");n[t]=e.value}});var i=e.filter(function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()}).reduce(function(e,t){return e.concat(t.value.split(",").map(function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}}))},[]);return{id:s,path:a,version:r,headers:n,subrequests:i}}}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(h["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(h["a"])(browser))&&browser.devtools}}]),e}(),Vs=function(){function e(){Object(f["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){var e=Bs()(window.location.href).query(!0).dark;"1"==e||"0"==e?(this.store.set("use-dark-theme",e),e="1"==e):e=this.store.get("use-dark-theme")?"1"==this.store.get("use-dark-theme"):null===e,e&&document.querySelector("body").classList.add("dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote(window.location.href,{path:Bs()(window.location.href.split("/").slice(0,-1).join("/")).path()+"/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient(function(t,s,r,n){var i=e.profiler.isProfiling,o=new FormData;Object.entries(r).forEach(function(e){var t=Object(a["a"])(e,2),s=t[0],r=t[1];return o.append(s,r)});var l=function(){return fetch(s,{method:t,body:Object.keys(r).length?o:null,headers:n}).then(function(e){return e.json().then(function(t){return{response:e,data:t}})}).then(function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s}).then(function(t){return i&&e.profiler.enableProfiling(),t})};return i?e.profiler.disableProfiling().then(l):l()})}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then(function(){if(!e.requests.last())throw new Error;e.pollRequests()}).catch(function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then(function(){e.startPollingRequests()}):setTimeout(function(){return e.startPollingRequests()},e.pollingInterval)})}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then(function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout(function(){return e.pollRequests()},e.pollingInterval)}).catch(function(){e.pollTimeout=setTimeout(function(){return e.pollRequests()},e.pollingInterval)})}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()})}}]),e}(),Ws=function(){function e(t){Object(f["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then(function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach(function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)}),e.accept()}).catch(function(t){e.failed=!0})}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise(function(e,t){s.accept=e,s.reject=t})}}]),e}(),Js=function(){function e(t){Object(f["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){ue["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?url=file://".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},r=e.settings.editor;if(r&&a[r])return t&&e.settings.localPathMapReal&&(t=t.replace(e.settings.localPathMapReal,e.settings.localPathMapLocal)),a[r](t,s)}}}]),e}(),Ks=function(){function e(){Object(f["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ze()(this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Gs=(s("6c7b"),s("f559"),function(){function e(t,s){Object(f["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise(function(s,a){s(e.parseSync(t))})}},{key:"parseSync",value:function(t){var s=this,r={},n=[],i={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],i),r=Object(a["a"])(e,2),c=(r[0],r[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),v=f[0],p=f[1];l=t[h++];var m=l.split(" ").map(function(e){return parseFloat(e)}),b=m.shift();u=n[v],u||(n[v]=u={name:p,file:c,line:b,invocations:0,self:new Array(m.length).fill(0),inclusive:new Array(m.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map(function(e,t){return e+m[t]}),u.inclusive=u.inclusive.map(function(e,t){return e+m[t]})}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),r=Object(a["a"])(e,2),i=r[0],c=r[1];l=t[h++],l=t[h++];var f=l.split(" ").map(function(e){return parseFloat(e)}),v=f.shift(),p=n[i];u.inclusive=f.map(function(e,t){return e+(u.inclusive[t]||0)});var m=p.callers[d];m||(p.callers[d]=m={name:u.name,line:v,calls:0,summed:new Array(f.length).fill(0)}),m.calls++,m.summed=m.summed.map(function(e,t){return e+f[t]});var b=u.subCalls[i];b||(u.subCalls[i]=b={name:c,line:v,calls:0,summed:new Array(f.length).fill(0)}),b.calls++,b.summed=b.summed.map(function(e,t){return e+f[t]})}():(c=l.match(/^(.+?): (.+)/))&&(r[c[1]]=c[2]);return new e(r,n.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),r=Object(a["a"])(s,3),n=(r[0],r[1]),i=r[2];return i&&(t[n]=i),[n,t[n]]}}]),e}()),Ys=function(){function e(t,s){var a=this;Object(f["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then(function(e){return a.isProfiling=e})}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then(function(){e.isProfiling=!0})}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then(function(){e.isProfiling=!1})}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then(function(e){t.loading=!1,t.parseProfile()})}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Gs.parse(this.request.xdebug.profileData).then(function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter(function(e){return"{main}"!=e.name}).sort(function(t,s){return s.self[e.metric]-t.self[e.metric]}).filter(function(t){return s-=t.self[e.metric],s>0}).map(function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e}),e.parsing=!1,e.ready=!0})}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),Xs=function(){function e(t){Object(f["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find(function(t){return t.id==e})}},{key:"loadId",value:function(e,t){var s=this.findId(e);return s?t=s:(t=t||Hs.placeholder(e),this.items.push(t)),t.loading=!0,this.load(e,function(e){return e.then(function(e){return t.resolve(e[0])}).catch(function(e){return t.resolveWithError(e)})})}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),function(e){return e.then(function(e){return s.extend(e[0],t)}).catch(function(e){})})}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",function(s){return s.then(function(s){return t&&e.items.push(s[0]),s[0]})},t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.last().id,this.load("".concat(t,"/next")+(e?"/".concat(e):""),function(e){return e.then(function(e){var t;return a&&(t=s.items).push.apply(t,Object(As["a"])(e)),e}).catch(function(e){})},a)):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first().id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),function(e){return e.then(function(e){var t;return a&&(t=s.items).unshift.apply(t,Object(As["a"])(e)),e}).catch(function(e){})},a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"first",value:function(){return this.items[0]}},{key:"last",value:function(){return this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Bs.a(e);var s=t.path.split("?"),r=Object(a["a"])(s,2),n=r[0],i=r[1];e.pathname(n||""),e.query(i||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Bs()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),r=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},r).then(function(e){return e?(e instanceof Array?e:[e]).map(function(e){return new Hs(e)}):[]}))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally(function(){return s.exclusive[e]=null})}}]),e}(),Zs=(s("8e6e"),s("bd86")),ea=(s("386d"),s("2fd4")),ta=s.n(ea),sa=s("c1df"),aa=s.n(sa);function ra(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,a)}return s}function na(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return aa()(e).isValid()}}],this.shown=!1,this.input="",this.searchDebounced=ta()(function(){return s.search()},500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?ue["a"].nextTick(function(){return document.querySelector(".requests-search input").focus()}):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,r=t.tags;r=Object.entries(r).filter(function(t){var s=Object(a["a"])(t,2),r=s[0],n=s[1];return r=e.tags.find(function(e){return e.tag==r}),r&&(!r.validate||n.every(function(e){return r.validate(e)}))}).reduce(function(e,t){var s=Object(a["a"])(t,2),r=s[0],n=s[1];return e["".concat(r,"[]")]=n,e},{}),this.requests.setQuery(s.length||Object.keys(r).length?na({"uri[]":s},r):{}),this.requests.returnLatest().then(function(t){e.requests.returnPrevious(9,t.id).then(function(s){e.requests.setItems(s?[].concat(Object(As["a"])(s),[t]):[t])})}).catch(function(){e.requests.clear()})}},{key:"tokenize",value:function(e){var t,s=[],a={},r=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=r.exec(e)){var n=t[1]?t[1].substr(0,t[1].length-1):void 0,i=t[2];(t=i.match(/^"(.+?)"$/))&&(i=t[1]),n?(a[n]||(a[n]=[]),a[n].push(i)):s.push(i)}return{terms:s,tags:a}}}]),e}(),oa=function(){function e(t,s){Object(f["a"])(this,e),this.store=t,this.requests=s,this.reload()}return Object(v["a"])(e,[{key:"getSite",value:function(e,t){return this.settings.site[this.requests.remoteUrl]?this.settings.site[this.requests.remoteUrl][e]:t}},{key:"setSite",value:function(e,t){this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]={}),this.settings.site[this.requests.remoteUrl][e]=t}},{key:"save",value:function(){var e=ze()(!0,this.loadSettings(),this.settings);this.store.set("settings",e)}},{key:"reload",value:function(){this.settings=this.loadSettings()}},{key:"loadSettings",value:function(){var e={global:{editor:null},site:{}};return ze()(!0,e,this.store.get("settings"))}},{key:"editor",get:function(){return this.settings.global.editor},set:function(e){this.settings.global.editor=e}},{key:"localPathMapReal",get:function(){return this.getSite("localPathMap",{}).real},set:function(e){this.setSite("localPathMap",ze()(!0,this.getSite("localPathMap",{}),{real:e}))}},{key:"localPathMapLocal",get:function(){return this.getSite("localPathMap",{}).local},set:function(e){this.setSite("localPathMap",ze()(!0,this.getSite("localPathMap",{}),{local:e}))}}]),e}(),la=function(){function e(){Object(f["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){ue["a"].filter("shortClass",this.shortClass)}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),ca=function(){function e(t){Object(f["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map(function(e){return parseInt(e)}),t=t.split(".").map(function(e){return parseInt(e)});for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s]1))break;n.splice(0,1)}a[s]=n.join("")}var l=-1,c=0,d=0,f=-1,h=!1;for(s=0;sc&&(l=f,c=d)):"0"===a[s]&&(h=!0,f=s,d=1);d>c&&(l=f,c=d),c>1&&a.splice(l,c,""),i=a.length;var m="";for(""===a[0]&&(m=":"),s=0;sa)Q(e,n=r[a++],t[n]);return e},K=function(e,t){return void 0===t?k(e):Z(k(e),t)},X=function(e){var t=I.call(this,e=w(e,!0));return!(this===V&&a(W,e)&&!a(R,e))&&(!(t||!a(this,e)||!a(W,e)||a(this,z)&&this[z][e])||t)},ee=function(e,t){if(e=M(e),t=w(t,!0),e!==V||!a(W,t)||a(R,t)){var n=O(e,t);return!n||!a(W,t)||a(e,z)&&e[z][t]||(n.enumerable=!0),n}},te=function(e){var t,n=P(M(e)),r=[],i=0;while(n.length>i)a(W,t=n[i++])||t==z||t==u||r.push(t);return r},ne=function(e){var t,n=e===V,r=P(n?R:M(e)),i=[],o=0;while(r.length>o)!a(W,t=r[o++])||n&&!a(V,t)||i.push(W[t]);return i};U||(j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===V&&t.call(R,n),a(this,z)&&a(this[z],e)&&(this[z][e]=!1),q(this,e,L(1,n))};return i&&B&&q(V,e,{configurable:!0,set:t}),G(e)},s(j[E],"toString",(function(){return this._k})),Y.f=ee,S.f=Q,n("6abf").f=x.f=te,n("355d").f=X,D.f=ne,i&&!n("b8e3")&&s(V,"propertyIsEnumerable",X,!0),m.f=function(e){return G(h(e))}),o(o.G+o.W+o.F*!U,{Symbol:j});for(var re="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ae=0;re.length>ae;)h(re[ae++]);for(var ie=T(h.store),oe=0;ie.length>oe;)p(ie[oe++]);o(o.S+o.F*!U,"Symbol",{for:function(e){return a(N,e+="")?N[e]:N[e]=j(e)},keyFor:function(e){if(!J(e))throw TypeError(e+" is not a symbol!");for(var t in N)if(N[t]===e)return t},useSetter:function(){B=!0},useSimple:function(){B=!1}}),o(o.S+o.F*!U,"Object",{create:K,defineProperty:Q,defineProperties:Z,getOwnPropertyDescriptor:ee,getOwnPropertyNames:te,getOwnPropertySymbols:ne});var se=l((function(){D.f(1)}));o(o.S+o.F*se,"Object",{getOwnPropertySymbols:function(e){return D.f(b(e))}}),H&&o(o.S+o.F*(!U||l((function(){var e=j();return"[null]"!=C([e])||"{}"!=C({a:e})||"{}"!=C(Object(e))}))),"JSON",{stringify:function(e){var t,n,r=[e],a=1;while(arguments.length>a)r.push(arguments[a++]);if(n=t=r[1],(v(t)||void 0!==e)&&!J(e))return y(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!J(t))return t}),r[1]=t,C.apply(H,r)}}),j[E][F]||n("35e8")(j[E],F,j[E].valueOf),d(j,"Symbol"),d(Math,"Math",!0),d(r.JSON,"JSON",!0)},"01f9":function(e,t,n){"use strict";var r=n("2d00"),a=n("5ca1"),i=n("2aba"),o=n("32e9"),s=n("84f2"),u=n("41a0"),l=n("7f20"),c=n("38fd"),d=n("2b4c")("iterator"),f=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",p="values",_=function(){return this};e.exports=function(e,t,n,y,g,v,b){u(n,t,y);var M,w,L,k=function(e){if(!f&&e in S)return S[e];switch(e){case m:return function(){return new n(this,e)};case p:return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",Y=g==p,D=!1,S=e.prototype,T=S[d]||S[h]||g&&S[g],O=T||k(g),A=g?Y?k("entries"):O:void 0,P="Array"==t&&S.entries||T;if(P&&(L=c(P.call(new e)),L!==Object.prototype&&L.next&&(l(L,x,!0),r||"function"==typeof L[d]||o(L,d,_))),Y&&T&&T.name!==p&&(D=!0,O=function(){return T.call(this)}),r&&!b||!f&&!D&&S[d]||o(S,d,O),s[t]=O,s[x]=_,g)if(M={values:Y?O:k(p),keys:v?O:k(m),entries:A},b)for(w in M)w in S||i(S,w,M[w]);else a(a.P+a.F*(f||D),t,M);return M}},"02f4":function(e,t,n){var r=n("4588"),a=n("be13");e.exports=function(e){return function(t,n){var i,o,s=String(a(t)),u=r(n),l=s.length;return u<0||u>=l?e?"":void 0:(i=s.charCodeAt(u),i<55296||i>56319||u+1===l||(o=s.charCodeAt(u+1))<56320||o>57343?e?s.charAt(u):i:e?s.slice(u,u+2):o-56320+(i-55296<<10)+65536)}}},"02fb":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}});return t}))},"0390":function(e,t,n){"use strict";var r=n("02f4")(!0);e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},"0395":function(e,t,n){var r=n("36c3"),a=n("6abf").f,i={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return a(e)}catch(t){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==i.call(e)?s(e):a(r(e))}},"03ec":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){var t=/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран";return e+t},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}});return t}))},"051a":function(e,t,n){var r=s(n("64b2")),a=u(r);t.XML=h(r,a);var i=s(n("f0f2")),o=u(i);function s(e){return Object.keys(e).sort().reduce((function(t,n){return t[e[n]]="&"+n+";",t}),{})}function u(e){var t=[],n=[];return Object.keys(e).forEach((function(e){1===e.length?t.push("\\"+e):n.push(e)})),n.unshift("["+t.join("")+"]"),new RegExp(n.join("|"),"g")}t.HTML=h(i,o);var l=/[^\0-\x7F]/g,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function d(e){return"&#x"+e.charCodeAt(0).toString(16).toUpperCase()+";"}function f(e){var t=e.charCodeAt(0),n=e.charCodeAt(1),r=1024*(t-55296)+n-56320+65536;return"&#x"+r.toString(16).toUpperCase()+";"}function h(e,t){function n(t){return e[t]}return function(e){return e.replace(t,n).replace(c,f).replace(l,d)}}var m=u(r);function p(e){return e.replace(m,d).replace(c,f).replace(l,d)}t.escape=p},"0558":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e){return e%100===11||e%10!==1}function n(e,n,r,a){var i=e+" ";switch(r){case"s":return n||a?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?i+(n||a?"sekúndur":"sekúndum"):i+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return t(e)?i+(n||a?"mínútur":"mínútum"):n?i+"mínúta":i+"mínútu";case"hh":return t(e)?i+(n||a?"klukkustundir":"klukkustundum"):i+"klukkustund";case"d":return n?"dagur":a?"dag":"degi";case"dd":return t(e)?n?i+"dagar":i+(a?"daga":"dögum"):n?i+"dagur":i+(a?"dag":"degi");case"M":return n?"mánuður":a?"mánuð":"mánuði";case"MM":return t(e)?n?i+"mánuðir":i+(a?"mánuði":"mánuðum"):n?i+"mánuður":i+(a?"mánuð":"mánuði");case"y":return n||a?"ár":"ári";case"yy":return t(e)?i+(n||a?"ár":"árum"):i+(n||a?"ár":"ári")}}var r=e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return r}))},"0721":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}))},"079e":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()M;M++)if((f||M in g)&&(p=g[M],_=v(p,M,y),e))if(n)w[M]=_;else if(_)switch(e){case 3:return!0;case 5:return p;case 6:return M;case 2:w.push(p)}else if(c)return!1;return d?-1:l||c?c:w}}},"0a84":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}});return t}))},"0b07":function(e,t,n){var r=n("34ac"),a=n("3698");function i(e,t){var n=a(e,t);return r(n)?n:void 0}e.exports=i},"0bfb":function(e,t,n){"use strict";var r=n("cb7c");e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},"0caa":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n,r){var a={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voranim",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return t?a[n][0]:a[n][1]}var n=e.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokalli"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}});return n}))},"0d58":function(e,t,n){var r=n("ce10"),a=n("e11e");e.exports=Object.keys||function(e){return r(e,a)}},"0e49":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}});return t}))},"0e65":function(e,t,n){"use strict";var r=Date.prototype.getDay,a=function(e){try{return r.call(e),!0}catch(t){return!1}},i=Object.prototype.toString,o="[object Date]",s="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;e.exports=function(e){return"object"===typeof e&&null!==e&&(s?a(e):i.call(e)===o)}},"0e6b":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}});return t}))},"0e81":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"},n=e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var r=e%10,a=e%100-r,i=e>=100?100:null;return e+(t[r]||t[a]||t[i])}},week:{dow:1,doy:7}});return n}))},"0f14":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}))},"0f38":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});return t}))},"0f7c":function(e,t,n){"use strict";var r=n("688e");e.exports=Function.prototype.bind||r},"0fc9":function(e,t,n){var r=n("3a38"),a=Math.max,i=Math.min;e.exports=function(e,t){return e=r(e),e<0?a(e+t,0):i(e,t)}},"0ff2":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return t}))},"10e8":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}});return t}))},1160:function(e,t){function n(e){if("function"==typeof e)return e;var t=Array.isArray(e)?[]:{};for(var a in e){var i=e[a],o={}.toString.call(i).slice(8,-1);t[a]="Array"==o||"Object"==o?n(i):"Date"==o?new Date(i.getTime()):"RegExp"==o?RegExp(i.source,r(i)):i}return t}function r(e){if("string"==typeof e.source.flags)return e.source.flags;var t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}e.exports=n},1169:function(e,t,n){var r=n("2d95");e.exports=Array.isArray||function(e){return"Array"==r(e)}},1173:function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},"11e9":function(e,t,n){var r=n("52a7"),a=n("4630"),i=n("6821"),o=n("6a99"),s=n("69a8"),u=n("c69a"),l=Object.getOwnPropertyDescriptor;t.f=n("9e1e")?l:function(e,t){if(e=i(e),t=o(t,!0),u)try{return l(e,t)}catch(n){}if(s(e,t))return a(!r.f.call(e,t),e[t])}},1290:function(e,t){function n(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}e.exports=n},1310:function(e,t){function n(e){return null!=e&&"object"==typeof e}e.exports=n},1368:function(e,t,n){var r=n("da03"),a=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function i(e){return!!a&&a in e}e.exports=i},"13e9":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}},n=e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var e=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return e[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"дан",dd:t.translate,M:"месец",MM:t.translate,y:"годину",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n}))},1495:function(e,t,n){var r=n("86cc"),a=n("cb7c"),i=n("0d58");e.exports=n("9e1e")?Object.defineProperties:function(e,t){a(e);var n,o=i(t),s=o.length,u=0;while(s>u)r.f(e,n=o[u++],t[n]);return e}},1654:function(e,t,n){"use strict";var r=n("71c1")(!0);n("30f1")(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},1691:function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},1696:function(e,t,n){"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;var r=42;for(t in e[t]=r,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var a=Object.getOwnPropertySymbols(e);if(1!==a.length||a[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(i.value!==r||!0!==i.enumerable)return!1}return!0}},"18d8":function(e,t,n){var r=n("234d"),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,o=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(i,"$1"):n||e)})),t}));e.exports=o},1991:function(e,t,n){var r,a,i,o=n("9b43"),s=n("31f4"),u=n("fab2"),l=n("230e"),c=n("7726"),d=c.process,f=c.setImmediate,h=c.clearImmediate,m=c.MessageChannel,p=c.Dispatch,_=0,y={},g="onreadystatechange",v=function(){var e=+this;if(y.hasOwnProperty(e)){var t=y[e];delete y[e],t()}},b=function(e){v.call(e.data)};f&&h||(f=function(e){var t=[],n=1;while(arguments.length>n)t.push(arguments[n++]);return y[++_]=function(){s("function"==typeof e?e:Function(e),t)},r(_),_},h=function(e){delete y[e]},"process"==n("2d95")(d)?r=function(e){d.nextTick(o(v,e,1))}:p&&p.now?r=function(e){p.now(o(v,e,1))}:m?(a=new m,i=a.port2,a.port1.onmessage=b,r=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(r=function(e){c.postMessage(e+"","*")},c.addEventListener("message",b,!1)):r=g in l("script")?function(e){u.appendChild(l("script"))[g]=function(){u.removeChild(this),v.call(e)}}:function(e){setTimeout(o(v,e,1),0)}),e.exports={set:f,clear:h}},"1a8c":function(e,t){function n(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=n},"1af6":function(e,t,n){var r=n("63b6");r(r.S,"Array",{isArray:n("9003")})},"1b45":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return t}))},"1bc3":function(e,t,n){var r=n("f772");e.exports=function(e,t){if(!r(e))return e;var n,a;if(t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;if("function"==typeof(n=e.valueOf)&&!r(a=n.call(e)))return a;if(!t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;throw TypeError("Can't convert object to primitive value")}},"1c7e":function(e,t,n){"use strict";var r=n("f367").supportsDescriptors,a=n("57ec"),i=Object.getOwnPropertyDescriptor,o=Object.defineProperty,s=TypeError,u=Object.getPrototypeOf,l=/a/;e.exports=function(){if(!r||!u)throw new s("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=a(),t=u(l),n=i(t,"flags");return n&&n.get===e||o(t,"flags",{configurable:!0,enumerable:!1,get:e}),e}},"1cfd":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(e){return function(t,a,i,o){var s=n(t),u=r[e][n(t)];return 2===s&&(u=u[a?0:1]),u.replace(/%d/i,t)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],o=e.defineLocale("ar-ly",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});return o}))},"1ec9":function(e,t,n){var r=n("f772"),a=n("e53d").document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},"1efc":function(e,t){function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}e.exports=n},"1fa8":function(e,t,n){var r=n("cb7c");e.exports=function(e,t,n,a){try{return a?t(r(n)[0],n[1]):t(n)}catch(o){var i=e["return"];throw void 0!==i&&r(i.call(e)),o}}},"1fc1":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t){var n=e.split("_");return t%10===1&&t%100!==11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){var a={ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:n?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===r?n?"хвіліна":"хвіліну":"h"===r?n?"гадзіна":"гадзіну":e+" "+t(a[r],+e)}var r=e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:n,mm:n,h:n,hh:n,d:"дзень",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!==2&&e%10!==3||e%100===12||e%100===13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}});return r}))},"1fc8":function(e,t,n){var r=n("4245");function a(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}e.exports=a},"201b":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return/(წამი|წუთი|საათი|წელი)/.test(e)?e.replace(/ი$/,"ში"):e+"ში"},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20===0||e%100===0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}});return t}))},"20fd":function(e,t,n){"use strict";var r=n("d9f6"),a=n("aebd");e.exports=function(e,t,n){t in e?r.f(e,t,a(0,n)):e[t]=n}},2103:function(e,t,n){!function(t,n){e.exports=n()}(0,(function(){var e="__v-click-outside",t="undefined"!=typeof window,n="undefined"!=typeof navigator,r=t&&("ontouchstart"in window||n&&navigator.msMaxTouchPoints>0)?["touchstart"]:["click"];function a(t,n){var a=function(e){var t="function"==typeof e;if(!t&&"object"!=typeof e)throw new Error("v-click-outside: Binding value must be a function or an object");return{handler:t?e:e.handler,middleware:e.middleware||function(e){return e},events:e.events||r,isActive:!(!1===e.isActive)}}(n.value),i=a.handler,o=a.middleware;a.isActive&&(t[e]=a.events.map((function(e){return{event:e,handler:function(e){return function(e){var t=e.el,n=e.event,r=e.handler,a=e.middleware;n.target!==t&&!t.contains(n.target)&&a(n,t)&&r(n,t)}({event:e,el:t,handler:i,middleware:o})}}})),t[e].forEach((function(e){var t=e.event,n=e.handler;return setTimeout((function(){return document.documentElement.addEventListener(t,n,!1)}),0)})))}function i(t){(t[e]||[]).forEach((function(e){return document.documentElement.removeEventListener(e.event,e.handler,!1)})),delete t[e]}var o={bind:a,update:function(e,t){var n=t.value,r=t.oldValue;JSON.stringify(n)!==JSON.stringify(r)&&(i(e),a(e,{value:n}))},unbind:i};return{install:function(e){e.directive("click-outside",o)},directive:o}}))},"214f":function(e,t,n){"use strict";n("b0c5");var r=n("2aba"),a=n("32e9"),i=n("79e5"),o=n("be13"),s=n("2b4c"),u=n("520a"),l=s("species"),c=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),d=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var f=s(e),h=!i((function(){var t={};return t[f]=function(){return 7},7!=""[e](t)})),m=h?!i((function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[l]=function(){return n}),n[f](""),!t})):void 0;if(!h||!m||"replace"===e&&!c||"split"===e&&!d){var p=/./[f],_=n(o,f,""[e],(function(e,t,n,r,a){return t.exec===u?h&&!a?{done:!0,value:p.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}})),y=_[0],g=_[1];r(String.prototype,e,y),a(RegExp.prototype,f,2==t?function(e,t){return g.call(e,this,t)}:function(e){return g.call(e,this)})}}},"22f8":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}});return t}))},"230e":function(e,t,n){var r=n("d3f4"),a=n("7726").document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},"234d":function(e,t,n){var r=n("e380"),a=500;function i(e){var t=r(e,(function(e){return n.size===a&&n.clear(),e})),n=t.cache;return t}e.exports=i},"23c6":function(e,t,n){var r=n("2d95"),a=n("2b4c")("toStringTag"),i="Arguments"==r(function(){return arguments}()),o=function(e,t){try{return e[t]}catch(n){}};e.exports=function(e){var t,n,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=o(t=Object(e),a))?n:i?r(t):"Object"==(s=r(t))&&"function"==typeof t.callee?"Arguments":s}},"241e":function(e,t,n){var r=n("25eb");e.exports=function(e){return Object(r(e))}},2421:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"],a=e.defineLocale("ku",{months:r,monthsShort:r,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(e){return/ئێواره‌/.test(e)},meridiem:function(e,t,n){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});return a}))},2478:function(e,t,n){var r=n("4245");function a(e){return r(this,e).get(e)}e.exports=a},"24c5":function(e,t,n){"use strict";var r,a,i,o,s=n("b8e3"),u=n("e53d"),l=n("d864"),c=n("40c3"),d=n("63b6"),f=n("f772"),h=n("79aa"),m=n("1173"),p=n("a22a"),_=n("f201"),y=n("4178").set,g=n("aba2")(),v=n("656e"),b=n("4439"),M=n("bc13"),w=n("cd78"),L="Promise",k=u.TypeError,x=u.process,Y=x&&x.versions,D=Y&&Y.v8||"",S=u[L],T="process"==c(x),O=function(){},A=a=v.f,P=!!function(){try{var e=S.resolve(1),t=(e.constructor={})[n("5168")("species")]=function(e){e(O,O)};return(T||"function"==typeof PromiseRejectionEvent)&&e.then(O)instanceof t&&0!==D.indexOf("6.6")&&-1===M.indexOf("Chrome/66")}catch(r){}}(),j=function(e){var t;return!(!f(e)||"function"!=typeof(t=e.then))&&t},H=function(e,t){if(!e._n){e._n=!0;var n=e._c;g((function(){var r=e._v,a=1==e._s,i=0,o=function(t){var n,i,o,s=a?t.ok:t.fail,u=t.resolve,l=t.reject,c=t.domain;try{s?(a||(2==e._h&&z(e),e._h=1),!0===s?n=r:(c&&c.enter(),n=s(r),c&&(c.exit(),o=!0)),n===t.promise?l(k("Promise-chain cycle")):(i=j(n))?i.call(n,u,l):u(n)):l(r)}catch(d){c&&!o&&c.exit(),l(d)}};while(n.length>i)o(n[i++]);e._c=[],e._n=!1,t&&!e._h&&C(e)}))}},C=function(e){y.call(u,(function(){var t,n,r,a=e._v,i=E(e);if(i&&(t=b((function(){T?x.emit("unhandledRejection",a,e):(n=u.onunhandledrejection)?n({promise:e,reason:a}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",a)})),e._h=T||E(e)?2:1),e._a=void 0,i&&t.e)throw t.v}))},E=function(e){return 1!==e._h&&0===(e._a||e._c).length},z=function(e){y.call(u,(function(){var t;T?x.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})}))},F=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),H(t,!0))},I=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw k("Promise can't be resolved itself");(t=j(e))?g((function(){var r={_w:n,_d:!1};try{t.call(e,l(I,r,1),l(F,r,1))}catch(a){F.call(r,a)}})):(n._v=e,n._s=1,H(n,!1))}catch(r){F.call({_w:n,_d:!1},r)}}};P||(S=function(e){m(this,S,L,"_h"),h(e),r.call(this);try{e(l(I,this,1),l(F,this,1))}catch(t){F.call(this,t)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n("5c95")(S.prototype,{then:function(e,t){var n=A(_(this,S));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=T?x.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&H(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r;this.promise=e,this.resolve=l(I,e,1),this.reject=l(F,e,1)},v.f=A=function(e){return e===S||e===o?new i(e):a(e)}),d(d.G+d.W+d.F*!P,{Promise:S}),n("45f2")(S,L),n("4c95")(L),o=n("584a")[L],d(d.S+d.F*!P,L,{reject:function(e){var t=A(this),n=t.reject;return n(e),t.promise}}),d(d.S+d.F*(s||!P),L,{resolve:function(e){return w(s&&this===o?S:this,e)}}),d(d.S+d.F*!(P&&n("4ee1")((function(e){S.all(e)["catch"](O)}))),L,{all:function(e){var t=this,n=A(t),r=n.resolve,a=n.reject,i=b((function(){var n=[],i=0,o=1;p(e,!1,(function(e){var s=i++,u=!1;n.push(void 0),o++,t.resolve(e).then((function(e){u||(u=!0,n[s]=e,--o||r(n))}),a)})),--o||r(n)}));return i.e&&a(i.v),n.promise},race:function(e){var t=this,n=A(t),r=n.reject,a=b((function(){p(e,!1,(function(e){t.resolve(e).then(n.resolve,r)}))}));return a.e&&r(a.v),n.promise}})},2524:function(e,t,n){var r=n("6044"),a="__lodash_hash_undefined__";function i(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?a:t,this}e.exports=i},2554:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi",r;case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta",r;case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati",r;case"dd":return r+=1===e?"dan":"dana",r;case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci",r;case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina",r}}var n=e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n}))},"25eb":function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},2621:function(e,t){t.f=Object.getOwnPropertySymbols},"26f9":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"}function r(e,t,n,r){return t?i(n)[0]:r?i(n)[1]:i(n)[2]}function a(e){return e%10===0||e>10&&e<20}function i(e){return t[e].split("_")}function o(e,t,n,o){var s=e+" ";return 1===e?s+r(e,t,n[0],o):t?s+(a(e)?i(n)[1]:i(n)[0]):o?s+i(n)[1]:s+(a(e)?i(n)[1]:i(n)[2])}var s=e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:n,ss:o,m:r,mm:o,h:r,hh:o,d:r,dd:o,M:r,MM:o,y:r,yy:o},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}});return s}))},"27ee":function(e,t,n){var r=n("23c6"),a=n("2b4c")("iterator"),i=n("84f2");e.exports=n("8378").getIteratorMethod=function(e){if(void 0!=e)return e[a]||e["@@iterator"]||i[r(e)]}},2877:function(e,t,n){"use strict";function r(e,t,n,r,a,i,o,s){var u,l="function"===typeof e?e.options:e;if(t&&(l.render=t,l.staticRenderFns=n,l._compiled=!0),r&&(l.functional=!0),i&&(l._scopeId="data-v-"+i),o?(u=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),a&&a.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},l._ssrRegister=u):a&&(u=s?function(){a.call(this,this.$root.$options.shadowRoot)}:a),u)if(l.functional){l._injectStyles=u;var c=l.render;l.render=function(e,t){return u.call(t),c(e,t)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,u):[u]}return{exports:e,options:l}}n.d(t,"a",(function(){return r}))},"28a5":function(e,t,n){"use strict";var r=n("aae3"),a=n("cb7c"),i=n("ebd6"),o=n("0390"),s=n("9def"),u=n("5f1b"),l=n("520a"),c=n("79e5"),d=Math.min,f=[].push,h="split",m="length",p="lastIndex",_=4294967295,y=!c((function(){RegExp(_,"y")}));n("214f")("split",2,(function(e,t,n,c){var g;return g="c"=="abbc"[h](/(b)*/)[1]||4!="test"[h](/(?:)/,-1)[m]||2!="ab"[h](/(?:ab)*/)[m]||4!="."[h](/(.?)(.?)/)[m]||"."[h](/()()/)[m]>1||""[h](/.?/)[m]?function(e,t){var a=String(this);if(void 0===e&&0===t)return[];if(!r(e))return n.call(a,e,t);var i,o,s,u=[],c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),d=0,h=void 0===t?_:t>>>0,y=new RegExp(e.source,c+"g");while(i=l.call(y,a)){if(o=y[p],o>d&&(u.push(a.slice(d,i.index)),i[m]>1&&i.index=h))break;y[p]===i.index&&y[p]++}return d===a[m]?!s&&y.test("")||u.push(""):u.push(a.slice(d)),u[m]>h?u.slice(0,h):u}:"0"[h](void 0,0)[m]?function(e,t){return void 0===e&&0===t?[]:n.call(this,e,t)}:n,[function(n,r){var a=e(this),i=void 0==n?void 0:n[t];return void 0!==i?i.call(n,a,r):g.call(String(a),n,r)},function(e,t){var r=c(g,e,this,t,g!==n);if(r.done)return r.value;var l=a(e),f=String(this),h=i(l,RegExp),m=l.unicode,p=(l.ignoreCase?"i":"")+(l.multiline?"m":"")+(l.unicode?"u":"")+(y?"y":"g"),v=new h(y?l:"^(?:"+l.source+")",p),b=void 0===t?_:t>>>0;if(0===b)return[];if(0===f.length)return null===u(v,f)?[f]:[];var M=0,w=0,L=[];while(w=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}},n=e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var e=["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return e[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n}))},"294c":function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},"29f3":function(e,t){var n=Object.prototype,r=n.toString;function a(e){return r.call(e)}e.exports=a},"2aba":function(e,t,n){var r=n("7726"),a=n("32e9"),i=n("69a8"),o=n("ca5a")("src"),s=n("fa5b"),u="toString",l=(""+s).split(u);n("8378").inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var u="function"==typeof n;u&&(i(n,"name")||a(n,"name",t)),e[t]!==n&&(u&&(i(n,o)||a(n,o,e[t]?""+e[t]:l.join(String(t)))),e===r?e[t]=n:s?e[t]?e[t]=n:a(e,t,n):(delete e[t],a(e,t,n)))})(Function.prototype,u,(function(){return"function"==typeof this&&this[o]||s.call(this)}))},"2aeb":function(e,t,n){var r=n("cb7c"),a=n("1495"),i=n("e11e"),o=n("613b")("IE_PROTO"),s=function(){},u="prototype",l=function(){var e,t=n("230e")("iframe"),r=i.length,a="<",o=">";t.style.display="none",n("fab2").appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(a+"script"+o+"document.F=Object"+a+"/script"+o),e.close(),l=e.F;while(r--)delete l[u][i[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[u]=r(e),n=new s,s[u]=null,n[o]=e):n=l(),void 0===t?n:a(n,t)}},"2b0e":function(e,t,n){"use strict";(function(e){ +/*! + * Vue.js v2.6.11 + * (c) 2014-2019 Evan You + * Released under the MIT License. + */ +var n=Object.freeze({});function r(e){return void 0===e||null===e}function a(e){return void 0!==e&&null!==e}function i(e){return!0===e}function o(e){return!1===e}function s(e){return"string"===typeof e||"number"===typeof e||"symbol"===typeof e||"boolean"===typeof e}function u(e){return null!==e&&"object"===typeof e}var l=Object.prototype.toString;function c(e){return"[object Object]"===l.call(e)}function d(e){return"[object RegExp]"===l.call(e)}function f(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function h(e){return a(e)&&"function"===typeof e.then&&"function"===typeof e.catch}function m(e){return null==e?"":Array.isArray(e)||c(e)&&e.toString===l?JSON.stringify(e,null,2):String(e)}function p(e){var t=parseFloat(e);return isNaN(t)?e:t}function _(e,t){for(var n=Object.create(null),r=e.split(","),a=0;a-1)return e.splice(n,1)}}var v=Object.prototype.hasOwnProperty;function b(e,t){return v.call(e,t)}function M(e){var t=Object.create(null);return function(n){var r=t[n];return r||(t[n]=e(n))}}var w=/-(\w)/g,L=M((function(e){return e.replace(w,(function(e,t){return t?t.toUpperCase():""}))})),k=M((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),x=/\B([A-Z])/g,Y=M((function(e){return e.replace(x,"-$1").toLowerCase()}));function D(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n}function S(e,t){return e.bind(t)}var T=Function.prototype.bind?S:D;function O(e,t){t=t||0;var n=e.length-t,r=new Array(n);while(n--)r[n]=e[n+t];return r}function A(e,t){for(var n in t)e[n]=t[n];return e}function P(e){for(var t={},n=0;n0,ne=X&&X.indexOf("edge/")>0,re=(X&&X.indexOf("android"),X&&/iphone|ipad|ipod|ios/.test(X)||"ios"===K),ae=(X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X),X&&X.match(/firefox\/(\d+)/)),ie={}.watch,oe=!1;if(Q)try{var se={};Object.defineProperty(se,"passive",{get:function(){oe=!0}}),window.addEventListener("test-passive",null,se)}catch(Lo){}var ue=function(){return void 0===G&&(G=!Q&&!Z&&"undefined"!==typeof e&&(e["process"]&&"server"===e["process"].env.VUE_ENV)),G},le=Q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ce(e){return"function"===typeof e&&/native code/.test(e.toString())}var de,fe="undefined"!==typeof Symbol&&ce(Symbol)&&"undefined"!==typeof Reflect&&ce(Reflect.ownKeys);de="undefined"!==typeof Set&&ce(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var he=j,me=0,pe=function(){this.id=me++,this.subs=[]};pe.prototype.addSub=function(e){this.subs.push(e)},pe.prototype.removeSub=function(e){g(this.subs,e)},pe.prototype.depend=function(){pe.target&&pe.target.addDep(this)},pe.prototype.notify=function(){var e=this.subs.slice();for(var t=0,n=e.length;t-1)if(i&&!b(a,"default"))o=!1;else if(""===o||o===Y(e)){var u=et(String,a.type);(u<0||s0&&(o=Dt(o,(t||"")+"_"+n),Yt(o[0])&&Yt(l)&&(c[u]=we(l.text+o[0].text),o.shift()),c.push.apply(c,o)):s(o)?Yt(l)?c[u]=we(l.text+o):""!==o&&c.push(we(o)):Yt(o)&&Yt(l)?c[u]=we(l.text+o.text):(i(e._isVList)&&a(o.tag)&&r(o.key)&&a(t)&&(o.key="__vlist"+t+"_"+n+"__"),c.push(o)));return c}function St(e){var t=e.$options.provide;t&&(e._provided="function"===typeof t?t.call(e):t)}function Tt(e){var t=Ot(e.$options.inject,e);t&&(Te(!1),Object.keys(t).forEach((function(n){He(e,n,t[n])})),Te(!0))}function Ot(e,t){if(e){for(var n=Object.create(null),r=fe?Reflect.ownKeys(e):Object.keys(e),a=0;a0,o=e?!!e.$stable:!i,s=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(o&&r&&r!==n&&s===r.$key&&!i&&!r.$hasNormal)return r;for(var u in a={},e)e[u]&&"$"!==u[0]&&(a[u]=Ht(t,u,e[u]))}else a={};for(var l in t)l in a||(a[l]=Ct(t,l));return e&&Object.isExtensible(e)&&(e._normalized=a),$(a,"$stable",o),$(a,"$key",s),$(a,"$hasNormal",i),a}function Ht(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return e=e&&"object"===typeof e&&!Array.isArray(e)?[e]:xt(e),e&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function Ct(e,t){return function(){return e[t]}}function Et(e,t){var n,r,i,o,s;if(Array.isArray(e)||"string"===typeof e)for(n=new Array(e.length),r=0,i=e.length;r1?O(n):n;for(var r=O(arguments,1),a='event handler for "'+e+'"',i=0,o=n.length;idocument.createEvent("Event").timeStamp&&(Gn=function(){return Jn.now()})}function Qn(){var e,t;for(qn=Gn(),Un=!0,Nn.sort((function(e,t){return e.id-t.id})),$n=0;$n$n&&Nn[n].id>e.id)n--;Nn.splice(n+1,0,e)}else Nn.push(e);Vn||(Vn=!0,mt(Qn))}}var tr=0,nr=function(e,t,n,r,a){this.vm=e,a&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++tr,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new de,this.newDepIds=new de,this.expression="","function"===typeof t?this.getter=t:(this.getter=q(t),this.getter||(this.getter=j)),this.value=this.lazy?void 0:this.get()};nr.prototype.get=function(){var e;ye(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(Lo){if(!this.user)throw Lo;tt(Lo,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&_t(e),ge(),this.cleanupDeps()}return e},nr.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},nr.prototype.cleanupDeps=function(){var e=this.deps.length;while(e--){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},nr.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():er(this)},nr.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||u(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(Lo){tt(Lo,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},nr.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},nr.prototype.depend=function(){var e=this.deps.length;while(e--)this.deps[e].depend()},nr.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||g(this.vm._watchers,this);var e=this.deps.length;while(e--)this.deps[e].removeSub(this);this.active=!1}};var rr={enumerable:!0,configurable:!0,get:j,set:j};function ar(e,t,n){rr.get=function(){return this[t][n]},rr.set=function(e){this[t][n]=e},Object.defineProperty(e,n,rr)}function ir(e){e._watchers=[];var t=e.$options;t.props&&or(e,t.props),t.methods&&mr(e,t.methods),t.data?sr(e):je(e._data={},!0),t.computed&&cr(e,t.computed),t.watch&&t.watch!==ie&&pr(e,t.watch)}function or(e,t){var n=e.$options.propsData||{},r=e._props={},a=e.$options._propKeys=[],i=!e.$parent;i||Te(!1);var o=function(i){a.push(i);var o=Qe(i,t,n,e);He(r,i,o),i in e||ar(e,"_props",i)};for(var s in t)o(s);Te(!0)}function sr(e){var t=e.$options.data;t=e._data="function"===typeof t?ur(t,e):t||{},c(t)||(t={});var n=Object.keys(t),r=e.$options.props,a=(e.$options.methods,n.length);while(a--){var i=n[a];0,r&&b(r,i)||U(i)||ar(e,"_data",i)}je(t,!0)}function ur(e,t){ye();try{return e.call(t,t)}catch(Lo){return tt(Lo,t,"data()"),{}}finally{ge()}}var lr={lazy:!0};function cr(e,t){var n=e._computedWatchers=Object.create(null),r=ue();for(var a in t){var i=t[a],o="function"===typeof i?i:i.get;0,r||(n[a]=new nr(e,o||j,j,lr)),a in e||dr(e,a,i)}}function dr(e,t,n){var r=!ue();"function"===typeof n?(rr.get=r?fr(t):hr(n),rr.set=j):(rr.get=n.get?r&&!1!==n.cache?fr(t):hr(n.get):j,rr.set=n.set||j),Object.defineProperty(e,t,rr)}function fr(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),pe.target&&t.depend(),t.value}}function hr(e){return function(){return e.call(this,this)}}function mr(e,t){e.$options.props;for(var n in t)e[n]="function"!==typeof t[n]?j:T(t[n],e)}function pr(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var a=0;a-1)return this;var n=O(arguments,1);return n.unshift(this),"function"===typeof e.install?e.install.apply(e,n):"function"===typeof e&&e.apply(null,n),t.push(e),this}}function xr(e){e.mixin=function(e){return this.options=Ge(this.options,e),this}}function Yr(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,a=e._Ctor||(e._Ctor={});if(a[r])return a[r];var i=e.name||n.options.name;var o=function(e){this._init(e)};return o.prototype=Object.create(n.prototype),o.prototype.constructor=o,o.cid=t++,o.options=Ge(n.options,e),o["super"]=n,o.options.props&&Dr(o),o.options.computed&&Sr(o),o.extend=n.extend,o.mixin=n.mixin,o.use=n.use,N.forEach((function(e){o[e]=n[e]})),i&&(o.options.components[i]=o),o.superOptions=n.options,o.extendOptions=e,o.sealedOptions=A({},o.options),a[r]=o,o}}function Dr(e){var t=e.options.props;for(var n in t)ar(e.prototype,"_props",n)}function Sr(e){var t=e.options.computed;for(var n in t)dr(e.prototype,n,t[n])}function Tr(e){N.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&c(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"===typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}function Or(e){return e&&(e.Ctor.options.name||e.tag)}function Ar(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"===typeof e?e.split(",").indexOf(t)>-1:!!d(e)&&e.test(t)}function Pr(e,t){var n=e.cache,r=e.keys,a=e._vnode;for(var i in n){var o=n[i];if(o){var s=Or(o.componentOptions);s&&!t(s)&&jr(n,i,r,a)}}}function jr(e,t,n,r){var a=e[t];!a||r&&a.tag===r.tag||a.componentInstance.$destroy(),e[t]=null,g(n,t)}vr(Lr),yr(Lr),Tn(Lr),jn(Lr),gn(Lr);var Hr=[String,RegExp,Array],Cr={name:"keep-alive",abstract:!0,props:{include:Hr,exclude:Hr,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)jr(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch("include",(function(t){Pr(e,(function(e){return Ar(t,e)}))})),this.$watch("exclude",(function(t){Pr(e,(function(e){return!Ar(t,e)}))}))},render:function(){var e=this.$slots.default,t=Ln(e),n=t&&t.componentOptions;if(n){var r=Or(n),a=this,i=a.include,o=a.exclude;if(i&&(!r||!Ar(i,r))||o&&r&&Ar(o,r))return t;var s=this,u=s.cache,l=s.keys,c=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;u[c]?(t.componentInstance=u[c].componentInstance,g(l,c),l.push(c)):(u[c]=t,l.push(c),this.max&&l.length>parseInt(this.max)&&jr(u,l[0],l,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}},Er={KeepAlive:Cr};function zr(e){var t={get:function(){return R}};Object.defineProperty(e,"config",t),e.util={warn:he,extend:A,mergeOptions:Ge,defineReactive:He},e.set=Ce,e.delete=Ee,e.nextTick=mt,e.observable=function(e){return je(e),e},e.options=Object.create(null),N.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,A(e.options.components,Er),kr(e),xr(e),Yr(e),Tr(e)}zr(Lr),Object.defineProperty(Lr.prototype,"$isServer",{get:ue}),Object.defineProperty(Lr.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Lr,"FunctionalRenderContext",{value:Zt}),Lr.version="2.6.11";var Fr=_("style,class"),Ir=_("input,textarea,option,select,progress"),Nr=function(e,t,n){return"value"===n&&Ir(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Wr=_("contenteditable,draggable,spellcheck"),Rr=_("events,caret,typing,plaintext-only"),Vr=function(e,t){return Gr(t)||"false"===t?"false":"contenteditable"===e&&Rr(t)?t:"true"},Ur=_("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),$r="http://www.w3.org/1999/xlink",Br=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},qr=function(e){return Br(e)?e.slice(6,e.length):""},Gr=function(e){return null==e||!1===e};function Jr(e){var t=e.data,n=e,r=e;while(a(r.componentInstance))r=r.componentInstance._vnode,r&&r.data&&(t=Qr(r.data,t));while(a(n=n.parent))n&&n.data&&(t=Qr(t,n.data));return Zr(t.staticClass,t.class)}function Qr(e,t){return{staticClass:Kr(e.staticClass,t.staticClass),class:a(e.class)?[e.class,t.class]:t.class}}function Zr(e,t){return a(e)||a(t)?Kr(e,Xr(t)):""}function Kr(e,t){return e?t?e+" "+t:e:t||""}function Xr(e){return Array.isArray(e)?ea(e):u(e)?ta(e):"string"===typeof e?e:""}function ea(e){for(var t,n="",r=0,i=e.length;r-1?sa[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:sa[e]=/HTMLUnknownElement/.test(t.toString())}var la=_("text,number,password,search,email,tel,url");function ca(e){if("string"===typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}function da(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function fa(e,t){return document.createElementNS(na[e],t)}function ha(e){return document.createTextNode(e)}function ma(e){return document.createComment(e)}function pa(e,t,n){e.insertBefore(t,n)}function _a(e,t){e.removeChild(t)}function ya(e,t){e.appendChild(t)}function ga(e){return e.parentNode}function va(e){return e.nextSibling}function ba(e){return e.tagName}function Ma(e,t){e.textContent=t}function wa(e,t){e.setAttribute(t,"")}var La=Object.freeze({createElement:da,createElementNS:fa,createTextNode:ha,createComment:ma,insertBefore:pa,removeChild:_a,appendChild:ya,parentNode:ga,nextSibling:va,tagName:ba,setTextContent:Ma,setStyleScope:wa}),ka={create:function(e,t){xa(t)},update:function(e,t){e.data.ref!==t.data.ref&&(xa(e,!0),xa(t))},destroy:function(e){xa(e,!0)}};function xa(e,t){var n=e.data.ref;if(a(n)){var r=e.context,i=e.componentInstance||e.elm,o=r.$refs;t?Array.isArray(o[n])?g(o[n],i):o[n]===i&&(o[n]=void 0):e.data.refInFor?Array.isArray(o[n])?o[n].indexOf(i)<0&&o[n].push(i):o[n]=[i]:o[n]=i}}var Ya=new ve("",{},[]),Da=["create","activate","update","remove","destroy"];function Sa(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&a(e.data)===a(t.data)&&Ta(e,t)||i(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&r(t.asyncFactory.error))}function Ta(e,t){if("input"!==e.tag)return!0;var n,r=a(n=e.data)&&a(n=n.attrs)&&n.type,i=a(n=t.data)&&a(n=n.attrs)&&n.type;return r===i||la(r)&&la(i)}function Oa(e,t,n){var r,i,o={};for(r=t;r<=n;++r)i=e[r].key,a(i)&&(o[i]=r);return o}function Aa(e){var t,n,o={},u=e.modules,l=e.nodeOps;for(t=0;tp?(d=r(n[g+1])?null:n[g+1].elm,L(e,d,n,m,g,i)):m>g&&x(t,f,p)}function S(e,t,n,r){for(var i=n;i-1?Ra(e,t,n):Ur(t)?Gr(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Wr(t)?e.setAttribute(t,Vr(t,n)):Br(t)?Gr(n)?e.removeAttributeNS($r,qr(t)):e.setAttributeNS($r,t,n):Ra(e,t,n)}function Ra(e,t,n){if(Gr(n))e.removeAttribute(t);else{if(ee&&!te&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var Va={create:Na,update:Na};function Ua(e,t){var n=t.elm,i=t.data,o=e.data;if(!(r(i.staticClass)&&r(i.class)&&(r(o)||r(o.staticClass)&&r(o.class)))){var s=Jr(t),u=n._transitionClasses;a(u)&&(s=Kr(s,Xr(u))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var $a,Ba={create:Ua,update:Ua},qa="__r",Ga="__c";function Ja(e){if(a(e[qa])){var t=ee?"change":"input";e[t]=[].concat(e[qa],e[t]||[]),delete e[qa]}a(e[Ga])&&(e.change=[].concat(e[Ga],e.change||[]),delete e[Ga])}function Qa(e,t,n){var r=$a;return function a(){var i=t.apply(null,arguments);null!==i&&Xa(e,a,n,r)}}var Za=ot&&!(ae&&Number(ae[1])<=53);function Ka(e,t,n,r){if(Za){var a=qn,i=t;t=i._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=a||e.timeStamp<=0||e.target.ownerDocument!==document)return i.apply(this,arguments)}}$a.addEventListener(e,t,oe?{capture:n,passive:r}:n)}function Xa(e,t,n,r){(r||$a).removeEventListener(e,t._wrapper||t,n)}function ei(e,t){if(!r(e.data.on)||!r(t.data.on)){var n=t.data.on||{},a=e.data.on||{};$a=t.elm,Ja(n),bt(n,a,Ka,Xa,Qa,t.context),$a=void 0}}var ti,ni={create:ei,update:ei};function ri(e,t){if(!r(e.data.domProps)||!r(t.data.domProps)){var n,i,o=t.elm,s=e.data.domProps||{},u=t.data.domProps||{};for(n in a(u.__ob__)&&(u=t.data.domProps=A({},u)),s)n in u||(o[n]="");for(n in u){if(i=u[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),i===s[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=i;var l=r(i)?"":String(i);ai(o,l)&&(o.value=l)}else if("innerHTML"===n&&aa(o.tagName)&&r(o.innerHTML)){ti=ti||document.createElement("div"),ti.innerHTML=""+i+"";var c=ti.firstChild;while(o.firstChild)o.removeChild(o.firstChild);while(c.firstChild)o.appendChild(c.firstChild)}else if(i!==s[n])try{o[n]=i}catch(Lo){}}}}function ai(e,t){return!e.composing&&("OPTION"===e.tagName||ii(e,t)||oi(e,t))}function ii(e,t){var n=!0;try{n=document.activeElement!==e}catch(Lo){}return n&&e.value!==t}function oi(e,t){var n=e.value,r=e._vModifiers;if(a(r)){if(r.number)return p(n)!==p(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}var si={create:ri,update:ri},ui=M((function(e){var t={},n=/;(?![^(]*\))/g,r=/:(.+)/;return e.split(n).forEach((function(e){if(e){var n=e.split(r);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}));function li(e){var t=ci(e.style);return e.staticStyle?A(e.staticStyle,t):t}function ci(e){return Array.isArray(e)?P(e):"string"===typeof e?ui(e):e}function di(e,t){var n,r={};if(t){var a=e;while(a.componentInstance)a=a.componentInstance._vnode,a&&a.data&&(n=li(a.data))&&A(r,n)}(n=li(e.data))&&A(r,n);var i=e;while(i=i.parent)i.data&&(n=li(i.data))&&A(r,n);return r}var fi,hi=/^--/,mi=/\s*!important$/,pi=function(e,t,n){if(hi.test(t))e.style.setProperty(t,n);else if(mi.test(n))e.style.setProperty(Y(t),n.replace(mi,""),"important");else{var r=yi(t);if(Array.isArray(n))for(var a=0,i=n.length;a-1?t.split(bi).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function wi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(bi).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";while(n.indexOf(r)>=0)n=n.replace(r," ");n=n.trim(),n?e.setAttribute("class",n):e.removeAttribute("class")}}function Li(e){if(e){if("object"===typeof e){var t={};return!1!==e.css&&A(t,ki(e.name||"v")),A(t,e),t}return"string"===typeof e?ki(e):void 0}}var ki=M((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),xi=Q&&!te,Yi="transition",Di="animation",Si="transition",Ti="transitionend",Oi="animation",Ai="animationend";xi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Si="WebkitTransition",Ti="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Oi="WebkitAnimation",Ai="webkitAnimationEnd"));var Pi=Q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function ji(e){Pi((function(){Pi(e)}))}function Hi(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),Mi(e,t))}function Ci(e,t){e._transitionClasses&&g(e._transitionClasses,t),wi(e,t)}function Ei(e,t,n){var r=Fi(e,t),a=r.type,i=r.timeout,o=r.propCount;if(!a)return n();var s=a===Yi?Ti:Ai,u=0,l=function(){e.removeEventListener(s,c),n()},c=function(t){t.target===e&&++u>=o&&l()};setTimeout((function(){u0&&(n=Yi,c=o,d=i.length):t===Di?l>0&&(n=Di,c=l,d=u.length):(c=Math.max(o,l),n=c>0?o>l?Yi:Di:null,d=n?n===Yi?i.length:u.length:0);var f=n===Yi&&zi.test(r[Si+"Property"]);return{type:n,timeout:c,propCount:d,hasTransform:f}}function Ii(e,t){while(e.length1}function $i(e,t){!0!==t.data.show&&Wi(t)}var Bi=Q?{create:$i,activate:$i,remove:function(e,t){!0!==e.data.show?Ri(e,t):t()}}:{},qi=[Va,Ba,ni,si,vi,Bi],Gi=qi.concat(Ia),Ji=Aa({nodeOps:La,modules:Gi});te&&document.addEventListener("selectionchange",(function(){var e=document.activeElement;e&&e.vmodel&&ro(e,"input")}));var Qi={inserted:function(e,t,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?Mt(n,"postpatch",(function(){Qi.componentUpdated(e,t,n)})):Zi(e,t,n.context),e._vOptions=[].map.call(e.options,eo)):("textarea"===n.tag||la(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",to),e.addEventListener("compositionend",no),e.addEventListener("change",no),te&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){Zi(e,t,n.context);var r=e._vOptions,a=e._vOptions=[].map.call(e.options,eo);if(a.some((function(e,t){return!E(e,r[t])}))){var i=e.multiple?t.value.some((function(e){return Xi(e,a)})):t.value!==t.oldValue&&Xi(t.value,a);i&&ro(e,"change")}}}};function Zi(e,t,n){Ki(e,t,n),(ee||ne)&&setTimeout((function(){Ki(e,t,n)}),0)}function Ki(e,t,n){var r=t.value,a=e.multiple;if(!a||Array.isArray(r)){for(var i,o,s=0,u=e.options.length;s-1,o.selected!==i&&(o.selected=i);else if(E(eo(o),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));a||(e.selectedIndex=-1)}}function Xi(e,t){return t.every((function(t){return!E(t,e)}))}function eo(e){return"_value"in e?e._value:e.value}function to(e){e.target.composing=!0}function no(e){e.target.composing&&(e.target.composing=!1,ro(e.target,"input"))}function ro(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function ao(e){return!e.componentInstance||e.data&&e.data.transition?e:ao(e.componentInstance._vnode)}var io={bind:function(e,t,n){var r=t.value;n=ao(n);var a=n.data&&n.data.transition,i=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&a?(n.data.show=!0,Wi(n,(function(){e.style.display=i}))):e.style.display=r?i:"none"},update:function(e,t,n){var r=t.value,a=t.oldValue;if(!r!==!a){n=ao(n);var i=n.data&&n.data.transition;i?(n.data.show=!0,r?Wi(n,(function(){e.style.display=e.__vOriginalDisplay})):Ri(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none"}},unbind:function(e,t,n,r,a){a||(e.style.display=e.__vOriginalDisplay)}},oo={model:Qi,show:io},so={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function uo(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?uo(Ln(t.children)):e}function lo(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var a=n._parentListeners;for(var i in a)t[L(i)]=a[i];return t}function co(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}function fo(e){while(e=e.parent)if(e.data.transition)return!0}function ho(e,t){return t.key===e.key&&t.tag===e.tag}var mo=function(e){return e.tag||wn(e)},po=function(e){return"show"===e.name},_o={name:"transition",props:so,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(mo),n.length)){0;var r=this.mode;0;var a=n[0];if(fo(this.$vnode))return a;var i=uo(a);if(!i)return a;if(this._leaving)return co(e,a);var o="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?o+"comment":o+i.tag:s(i.key)?0===String(i.key).indexOf(o)?i.key:o+i.key:i.key;var u=(i.data||(i.data={})).transition=lo(this),l=this._vnode,c=uo(l);if(i.data.directives&&i.data.directives.some(po)&&(i.data.show=!0),c&&c.data&&!ho(i,c)&&!wn(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var d=c.data.transition=A({},u);if("out-in"===r)return this._leaving=!0,Mt(d,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),co(e,a);if("in-out"===r){if(wn(i))return l;var f,h=function(){f()};Mt(u,"afterEnter",h),Mt(u,"enterCancelled",h),Mt(d,"delayLeave",(function(e){f=e}))}}return a}}},yo=A({tag:String,moveClass:String},so);delete yo.mode;var go={props:yo,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var a=An(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,a(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,a=this.$slots.default||[],i=this.children=[],o=lo(this),s=0;s=20?"ste":"de")},week:{dow:1,doy:4}});return t}))},"2d00":function(e,t){e.exports=!1},"2d95":function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},"2e8c":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}});return t}))},"2ead":function(e,t,n){(function(e){(function(e,n){n(t)})(0,(function(t){"use strict";var n="undefined"!==typeof window?window:"undefined"!==typeof e?e:"undefined"!==typeof self?self:{};function r(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function a(e,t){return t={exports:{}},e(t,t.exports),t.exports}var i=a((function(e,t){var a="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}; +//! moment.js +(function(n,r){"object"===a(t)?e.exports=r():n.moment=r()})(n,(function(){var t,n;function i(){return t.apply(null,arguments)}function o(e){t=e}function s(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}function c(e){return void 0===e}function d(e){return"number"===typeof e||"[object Number]"===Object.prototype.toString.call(e)}function f(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function h(e,t){var n,r=[];for(n=0;n>>0,r=0;r0)for(n=0;n0?"future":"past"];return H(n)?n(t):n.replace(/%s/i,t)}var Q={};function Z(e,t){var n=e.toLowerCase();Q[n]=Q[n+"s"]=Q[t]=e}function K(e){return"string"===typeof e?Q[e]||Q[e.toLowerCase()]:void 0}function X(e){var t,n,r={};for(n in e)m(e,n)&&(t=K(n),t&&(r[t]=e[n]));return r}var ee={};function te(e,t){ee[e]=t}function ne(e){var t=[];for(var n in e)t.push({unit:n,priority:ee[n]});return t.sort((function(e,t){return e.priority-t.priority})),t}function re(e,t,n){var r=""+Math.abs(e),a=t-r.length,i=e>=0;return(i?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var ae=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ie=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,oe={},se={};function ue(e,t,n,r){var a=r;"string"===typeof r&&(a=function(){return this[r]()}),e&&(se[e]=a),t&&(se[t[0]]=function(){return re(a.apply(this,arguments),t[1],t[2])}),n&&(se[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function le(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function ce(e){var t,n,r=e.match(ae);for(t=0,n=r.length;t=0&&ie.test(e))e=e.replace(ie,r),ie.lastIndex=0,n-=1;return e}var he=/\d/,me=/\d\d/,pe=/\d{3}/,_e=/\d{4}/,ye=/[+-]?\d{6}/,ge=/\d\d?/,ve=/\d\d\d\d?/,be=/\d\d\d\d\d\d?/,Me=/\d{1,3}/,we=/\d{1,4}/,Le=/[+-]?\d{1,6}/,ke=/\d+/,xe=/[+-]?\d+/,Ye=/Z|[+-]\d\d:?\d\d/gi,De=/Z|[+-]\d\d(?::?\d\d)?/gi,Se=/[+-]?\d+(\.\d{1,3})?/,Te=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Oe={};function Ae(e,t,n){Oe[e]=H(t)?t:function(e,r){return e&&n?n:t}}function Pe(e,t){return m(Oe,e)?Oe[e](t._strict,t._locale):new RegExp(je(e))}function je(e){return He(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a})))}function He(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Ce={};function Ee(e,t){var n,r=t;for("string"===typeof e&&(e=[e]),d(t)&&(r=function(e,n){n[t]=D(e)}),n=0;n68?1900:2e3)};var Qe,Ze=Xe("FullYear",!0);function Ke(){return Je(this.year())}function Xe(e,t){return function(n){return null!=n?(tt(this,e,n),i.updateOffset(this,t),this):et(this,e)}}function et(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function tt(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&Je(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),it(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function nt(e){return e=K(e),H(this[e])?this[e]():this}function rt(e,t){if("object"===("undefined"===typeof e?"undefined":a(e))){e=X(e);for(var n=ne(e),r=0;r=0?(s=new Date(e+400,t,n,r,a,i,o),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,r,a,i,o),s}function wt(e){var t;if(e<100&&e>=0){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Lt(e,t,n){var r=7+t-n,a=(7+wt(e,0,r).getUTCDay()-t)%7;return-a+r-1}function kt(e,t,n,r,a){var i,o,s=(7+n-r)%7,u=Lt(e,r,a),l=1+7*(t-1)+s+u;return l<=0?(i=e-1,o=Ge(i)+l):l>Ge(e)?(i=e+1,o=l-Ge(e)):(i=e,o=l),{year:i,dayOfYear:o}}function xt(e,t,n){var r,a,i=Lt(e.year(),t,n),o=Math.floor((e.dayOfYear()-i-1)/7)+1;return o<1?(a=e.year()-1,r=o+Yt(a,t,n)):o>Yt(e.year(),t,n)?(r=o-Yt(e.year(),t,n),a=e.year()+1):(a=e.year(),r=o),{week:r,year:a}}function Yt(e,t,n){var r=Lt(e,t,n),a=Lt(e+1,t,n);return(Ge(e)-r+a)/7}function Dt(e){return xt(e,this._week.dow,this._week.doy).week}ue("w",["ww",2],"wo","week"),ue("W",["WW",2],"Wo","isoWeek"),Z("week","w"),Z("isoWeek","W"),te("week",5),te("isoWeek",5),Ae("w",ge),Ae("ww",ge,me),Ae("W",ge),Ae("WW",ge,me),ze(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=D(e)}));var St={dow:0,doy:6};function Tt(){return this._week.dow}function Ot(){return this._week.doy}function At(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Pt(e){var t=xt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function jt(e,t){return"string"!==typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"===typeof e?e:null):parseInt(e,10)}function Ht(e,t){return"string"===typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Ct(e,t){return e.slice(t,7).concat(e.slice(0,t))}ue("d",0,"do","day"),ue("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),ue("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),ue("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),ue("e",0,0,"weekday"),ue("E",0,0,"isoWeekday"),Z("day","d"),Z("weekday","e"),Z("isoWeekday","E"),te("day",11),te("weekday",11),te("isoWeekday",11),Ae("d",ge),Ae("e",ge),Ae("E",ge),Ae("dd",(function(e,t){return t.weekdaysMinRegex(e)})),Ae("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),Ae("dddd",(function(e,t){return t.weekdaysRegex(e)})),ze(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:g(n).invalidWeekday=e})),ze(["d","e","E"],(function(e,t,n,r){t[r]=D(e)}));var Et="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");function zt(e,t){var n=s(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ct(n,this._week.dow):e?n[e.day()]:n}var Ft="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");function It(e){return!0===e?Ct(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}var Nt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Wt(e){return!0===e?Ct(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Rt(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=_([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?(a=Qe.call(this._weekdaysParse,o),-1!==a?a:null):"ddd"===t?(a=Qe.call(this._shortWeekdaysParse,o),-1!==a?a:null):(a=Qe.call(this._minWeekdaysParse,o),-1!==a?a:null):"dddd"===t?(a=Qe.call(this._weekdaysParse,o),-1!==a?a:(a=Qe.call(this._shortWeekdaysParse,o),-1!==a?a:(a=Qe.call(this._minWeekdaysParse,o),-1!==a?a:null))):"ddd"===t?(a=Qe.call(this._shortWeekdaysParse,o),-1!==a?a:(a=Qe.call(this._weekdaysParse,o),-1!==a?a:(a=Qe.call(this._minWeekdaysParse,o),-1!==a?a:null))):(a=Qe.call(this._minWeekdaysParse,o),-1!==a?a:(a=Qe.call(this._weekdaysParse,o),-1!==a?a:(a=Qe.call(this._shortWeekdaysParse,o),-1!==a?a:null)))}function Vt(e,t,n){var r,a,i;if(this._weekdaysParseExact)return Rt.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=_([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function Ut(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=jt(e,this.localeData()),this.add(e-t,"d")):t}function $t(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function Bt(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Ht(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}var qt=Te;function Gt(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Xt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=qt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}var Jt=Te;function Qt(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Xt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Jt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}var Zt=Te;function Kt(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Xt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Zt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Xt(){function e(e,t){return t.length-e.length}var t,n,r,a,i,o=[],s=[],u=[],l=[];for(t=0;t<7;t++)n=_([2e3,1]).day(t),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),o.push(r),s.push(a),u.push(i),l.push(r),l.push(a),l.push(i);for(o.sort(e),s.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)s[t]=He(s[t]),u[t]=He(u[t]),l[t]=He(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function en(){return this.hours()%12||12}function tn(){return this.hours()||24}function nn(e,t){ue(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function rn(e,t){return t._meridiemParse}function an(e){return"p"===(e+"").toLowerCase().charAt(0)}ue("H",["HH",2],0,"hour"),ue("h",["hh",2],0,en),ue("k",["kk",2],0,tn),ue("hmm",0,0,(function(){return""+en.apply(this)+re(this.minutes(),2)})),ue("hmmss",0,0,(function(){return""+en.apply(this)+re(this.minutes(),2)+re(this.seconds(),2)})),ue("Hmm",0,0,(function(){return""+this.hours()+re(this.minutes(),2)})),ue("Hmmss",0,0,(function(){return""+this.hours()+re(this.minutes(),2)+re(this.seconds(),2)})),nn("a",!0),nn("A",!1),Z("hour","h"),te("hour",13),Ae("a",rn),Ae("A",rn),Ae("H",ge),Ae("h",ge),Ae("k",ge),Ae("HH",ge,me),Ae("hh",ge,me),Ae("kk",ge,me),Ae("hmm",ve),Ae("hmmss",be),Ae("Hmm",ve),Ae("Hmmss",be),Ee(["H","HH"],Re),Ee(["k","kk"],(function(e,t,n){var r=D(e);t[Re]=24===r?0:r})),Ee(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),Ee(["h","hh"],(function(e,t,n){t[Re]=D(e),g(n).bigHour=!0})),Ee("hmm",(function(e,t,n){var r=e.length-2;t[Re]=D(e.substr(0,r)),t[Ve]=D(e.substr(r)),g(n).bigHour=!0})),Ee("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[Re]=D(e.substr(0,r)),t[Ve]=D(e.substr(r,2)),t[Ue]=D(e.substr(a)),g(n).bigHour=!0})),Ee("Hmm",(function(e,t,n){var r=e.length-2;t[Re]=D(e.substr(0,r)),t[Ve]=D(e.substr(r))})),Ee("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[Re]=D(e.substr(0,r)),t[Ve]=D(e.substr(r,2)),t[Ue]=D(e.substr(a))}));var on=/[ap]\.?m?\.?/i;function sn(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var un,ln=Xe("Hours",!0),cn={calendar:F,longDateFormat:N,invalidDate:R,ordinal:U,dayOfMonthOrdinalParse:$,relativeTime:q,months:st,monthsShort:lt,week:St,weekdays:Et,weekdaysMin:Nt,weekdaysShort:Ft,meridiemParse:on},dn={},fn={};function hn(e){return e?e.toLowerCase().replace("_","-"):e}function mn(e){var t,n,r,a,i=0;while(i0){if(r=pn(a.slice(0,t).join("-")),r)return r;if(n&&n.length>=t&&S(a,n,!0)>=t-1)break;t--}i++}return un}function pn(t){var n=null;if(!dn[t]&&e&&e.exports)try{n=un._abbr;var a=r;a("./locale/"+t),_n(n)}catch(i){}return dn[t]}function _n(e,t){var n;return e&&(n=c(t)?vn(e):yn(e,t),n?un=n:"undefined"!==typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),un._abbr}function yn(e,t){if(null!==t){var n,r=cn;if(t.abbr=e,null!=dn[e])j("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=dn[e]._config;else if(null!=t.parentLocale)if(null!=dn[t.parentLocale])r=dn[t.parentLocale]._config;else{if(n=pn(t.parentLocale),null==n)return fn[t.parentLocale]||(fn[t.parentLocale]=[]),fn[t.parentLocale].push({name:e,config:t}),null;r=n._config}return dn[e]=new z(E(r,t)),fn[e]&&fn[e].forEach((function(e){yn(e.name,e.config)})),_n(e),dn[e]}return delete dn[e],null}function gn(e,t){if(null!=t){var n,r,a=cn;r=pn(e),null!=r&&(a=r._config),t=E(a,t),n=new z(t),n.parentLocale=dn[e],dn[e]=n,_n(e)}else null!=dn[e]&&(null!=dn[e].parentLocale?dn[e]=dn[e].parentLocale:null!=dn[e]&&delete dn[e]);return dn[e]}function vn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return un;if(!s(e)){if(t=pn(e),t)return t;e=[e]}return mn(e)}function bn(){return A(dn)}function Mn(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[Ne]<0||n[Ne]>11?Ne:n[We]<1||n[We]>it(n[Ie],n[Ne])?We:n[Re]<0||n[Re]>24||24===n[Re]&&(0!==n[Ve]||0!==n[Ue]||0!==n[$e])?Re:n[Ve]<0||n[Ve]>59?Ve:n[Ue]<0||n[Ue]>59?Ue:n[$e]<0||n[$e]>999?$e:-1,g(e)._overflowDayOfYear&&(tWe)&&(t=We),g(e)._overflowWeeks&&-1===t&&(t=Be),g(e)._overflowWeekday&&-1===t&&(t=qe),g(e).overflow=t),e}function wn(e,t,n){return null!=e?e:null!=t?t:n}function Ln(e){var t=new Date(i.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function kn(e){var t,n,r,a,i,o=[];if(!e._d){for(r=Ln(e),e._w&&null==e._a[We]&&null==e._a[Ne]&&xn(e),null!=e._dayOfYear&&(i=wn(e._a[Ie],r[Ie]),(e._dayOfYear>Ge(i)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=wt(i,0,e._dayOfYear),e._a[Ne]=n.getUTCMonth(),e._a[We]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Re]&&0===e._a[Ve]&&0===e._a[Ue]&&0===e._a[$e]&&(e._nextDay=!0,e._a[Re]=0),e._d=(e._useUTC?wt:Mt).apply(null,o),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Re]=24),e._w&&"undefined"!==typeof e._w.d&&e._w.d!==a&&(g(e).weekdayMismatch=!0)}}function xn(e){var t,n,r,a,i,o,s,u;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)i=1,o=4,n=wn(t.GG,e._a[Ie],xt(Qn(),1,4).year),r=wn(t.W,1),a=wn(t.E,1),(a<1||a>7)&&(u=!0);else{i=e._locale._week.dow,o=e._locale._week.doy;var l=xt(Qn(),i,o);n=wn(t.gg,e._a[Ie],l.year),r=wn(t.w,l.week),null!=t.d?(a=t.d,(a<0||a>6)&&(u=!0)):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(u=!0)):a=i}r<1||r>Yt(n,i,o)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(s=kt(n,r,a,i,o),e._a[Ie]=s.year,e._dayOfYear=s.dayOfYear)}var Yn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Dn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Sn=/Z|[+-]\d\d(?::?\d\d)?/,Tn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],On=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],An=/^\/?Date\((\-?\d+)/i;function Pn(e){var t,n,r,a,i,o,s=e._i,u=Yn.exec(s)||Dn.exec(s);if(u){for(g(e).iso=!0,t=0,n=Tn.length;t0&&g(e).unusedInput.push(o),s=s.slice(s.indexOf(n)+n.length),l+=n.length),se[a]?(n?g(e).empty=!1:g(e).unusedTokens.push(a),Fe(a,n,e)):e._strict&&!n&&g(e).unusedTokens.push(a);g(e).charsLeftOver=u-l,s.length>0&&g(e).unusedInput.push(s),e._a[Re]<=12&&!0===g(e).bigHour&&e._a[Re]>0&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[Re]=Vn(e._locale,e._a[Re],e._meridiem),kn(e),Mn(e)}else Nn(e);else Pn(e)}function Vn(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(r=e.isPM(n),r&&t<12&&(t+=12),r||12!==t||(t=0),t):t}function Un(e){var t,n,r,a,i;if(0===e._f.length)return g(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:b()}));function Xn(e,t){var n,r;if(1===t.length&&s(t[0])&&(t=t[0]),!t.length)return Qn();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function wr(){if(!c(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),e=qn(e),e._a){var t=e._isUTC?_(e._a):Qn(e._a);this._isDSTShifted=this.isValid()&&S(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Lr(){return!!this.isValid()&&!this._isUTC}function kr(){return!!this.isValid()&&this._isUTC}function xr(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}i.updateOffset=function(){};var Yr=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Dr=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Sr(e,t){var n,r,i,o=e,s=null;return ur(e)?o={ms:e._milliseconds,d:e._days,M:e._months}:d(e)?(o={},t?o[t]=e:o.milliseconds=e):(s=Yr.exec(e))?(n="-"===s[1]?-1:1,o={y:0,d:D(s[We])*n,h:D(s[Re])*n,m:D(s[Ve])*n,s:D(s[Ue])*n,ms:D(lr(1e3*s[$e]))*n}):(s=Dr.exec(e))?(n="-"===s[1]?-1:1,o={y:Tr(s[2],n),M:Tr(s[3],n),w:Tr(s[4],n),d:Tr(s[5],n),h:Tr(s[6],n),m:Tr(s[7],n),s:Tr(s[8],n)}):null==o?o={}:"object"===("undefined"===typeof o?"undefined":a(o))&&("from"in o||"to"in o)&&(i=Ar(Qn(o.from),Qn(o.to)),o={},o.ms=i.milliseconds,o.M=i.months),r=new sr(o),ur(e)&&m(e,"_locale")&&(r._locale=e._locale),r}function Tr(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Or(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Ar(e,t){var n;return e.isValid()&&t.isValid()?(t=hr(t,e),e.isBefore(t)?n=Or(e,t):(n=Or(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Pr(e,t){return function(n,r){var a,i;return null===r||isNaN(+r)||(j(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=r,r=i),n="string"===typeof n?+n:n,a=Sr(n,r),jr(this,a,e),this}}function jr(e,t,n,r){var a=t._milliseconds,o=lr(t._days),s=lr(t._months);e.isValid()&&(r=null==r||r,s&&ht(e,et(e,"Month")+s*n),o&&tt(e,"Date",et(e,"Date")+o*n),a&&e._d.setTime(e._d.valueOf()+a*n),r&&i.updateOffset(e,o||s))}Sr.fn=sr.prototype,Sr.invalid=or;var Hr=Pr(1,"add"),Cr=Pr(-1,"subtract");function Er(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function zr(e,t){var n=e||Qn(),r=hr(n,this).startOf("day"),a=i.calendarFormat(this,r)||"sameElse",o=t&&(H(t[a])?t[a].call(this,n):t[a]);return this.format(o||this.localeData().calendar(a,this,Qn(n)))}function Fr(){return new k(this)}function Ir(e,t){var n=x(e)?e:Qn(e);return!(!this.isValid()||!n.isValid())&&(t=K(t)||"millisecond","millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()9999?de(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):H(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",de(n,"Z")):de(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Jr(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a="-MM-DD[T]HH:mm:ss.SSS",i=t+'[")]';return this.format(n+r+a+i)}function Qr(e){e||(e=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var t=de(this,e);return this.localeData().postformat(t)}function Zr(e,t){return this.isValid()&&(x(e)&&e.isValid()||Qn(e).isValid())?Sr({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Kr(e){return this.from(Qn(),e)}function Xr(e,t){return this.isValid()&&(x(e)&&e.isValid()||Qn(e).isValid())?Sr({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function ea(e){return this.to(Qn(),e)}function ta(e){var t;return void 0===e?this._locale._abbr:(t=vn(e),null!=t&&(this._locale=t),this)}i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",i.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var na=O("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function ra(){return this._locale}var aa=1e3,ia=60*aa,oa=60*ia,sa=3506328*oa;function ua(e,t){return(e%t+t)%t}function la(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-sa:new Date(e,t,n).valueOf()}function ca(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-sa:Date.UTC(e,t,n)}function da(e){var t;if(e=K(e),void 0===e||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?ca:la;switch(e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=ua(t+(this._isUTC?0:this.utcOffset()*ia),oa);break;case"minute":t=this._d.valueOf(),t-=ua(t,ia);break;case"second":t=this._d.valueOf(),t-=ua(t,aa);break}return this._d.setTime(t),i.updateOffset(this,!0),this}function fa(e){var t;if(e=K(e),void 0===e||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?ca:la;switch(e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=oa-ua(t+(this._isUTC?0:this.utcOffset()*ia),oa)-1;break;case"minute":t=this._d.valueOf(),t+=ia-ua(t,ia)-1;break;case"second":t=this._d.valueOf(),t+=aa-ua(t,aa)-1;break}return this._d.setTime(t),i.updateOffset(this,!0),this}function ha(){return this._d.valueOf()-6e4*(this._offset||0)}function ma(){return Math.floor(this.valueOf()/1e3)}function pa(){return new Date(this.valueOf())}function _a(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function ya(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function ga(){return this.isValid()?this.toISOString():null}function va(){return v(this)}function ba(){return p({},g(this))}function Ma(){return g(this).overflow}function wa(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function La(e,t){ue(0,[e,e.length],0,t)}function ka(e){return Sa.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function xa(e){return Sa.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Ya(){return Yt(this.year(),1,4)}function Da(){var e=this.localeData()._week;return Yt(this.year(),e.dow,e.doy)}function Sa(e,t,n,r,a){var i;return null==e?xt(this,r,a).year:(i=Yt(e,r,a),t>i&&(t=i),Ta.call(this,e,t,n,r,a))}function Ta(e,t,n,r,a){var i=kt(e,t,n,r,a),o=wt(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function Oa(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}ue(0,["gg",2],0,(function(){return this.weekYear()%100})),ue(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),La("gggg","weekYear"),La("ggggg","weekYear"),La("GGGG","isoWeekYear"),La("GGGGG","isoWeekYear"),Z("weekYear","gg"),Z("isoWeekYear","GG"),te("weekYear",1),te("isoWeekYear",1),Ae("G",xe),Ae("g",xe),Ae("GG",ge,me),Ae("gg",ge,me),Ae("GGGG",we,_e),Ae("gggg",we,_e),Ae("GGGGG",Le,ye),Ae("ggggg",Le,ye),ze(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=D(e)})),ze(["gg","GG"],(function(e,t,n,r){t[r]=i.parseTwoDigitYear(e)})),ue("Q",0,"Qo","quarter"),Z("quarter","Q"),te("quarter",7),Ae("Q",he),Ee("Q",(function(e,t){t[Ne]=3*(D(e)-1)})),ue("D",["DD",2],"Do","date"),Z("date","D"),te("date",9),Ae("D",ge),Ae("DD",ge,me),Ae("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),Ee(["D","DD"],We),Ee("Do",(function(e,t){t[We]=D(e.match(ge)[0])}));var Aa=Xe("Date",!0);function Pa(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}ue("DDD",["DDDD",3],"DDDo","dayOfYear"),Z("dayOfYear","DDD"),te("dayOfYear",4),Ae("DDD",Me),Ae("DDDD",pe),Ee(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=D(e)})),ue("m",["mm",2],0,"minute"),Z("minute","m"),te("minute",14),Ae("m",ge),Ae("mm",ge,me),Ee(["m","mm"],Ve);var ja=Xe("Minutes",!1);ue("s",["ss",2],0,"second"),Z("second","s"),te("second",15),Ae("s",ge),Ae("ss",ge,me),Ee(["s","ss"],Ue);var Ha,Ca=Xe("Seconds",!1);for(ue("S",0,0,(function(){return~~(this.millisecond()/100)})),ue(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),ue(0,["SSS",3],0,"millisecond"),ue(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),ue(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),ue(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),ue(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),ue(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),ue(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),Z("millisecond","ms"),te("millisecond",16),Ae("S",Me,he),Ae("SS",Me,me),Ae("SSS",Me,pe),Ha="SSSS";Ha.length<=9;Ha+="S")Ae(Ha,ke);function Ea(e,t){t[$e]=D(1e3*("0."+e))}for(Ha="S";Ha.length<=9;Ha+="S")Ee(Ha,Ea);var za=Xe("Milliseconds",!1);function Fa(){return this._isUTC?"UTC":""}function Ia(){return this._isUTC?"Coordinated Universal Time":""}ue("z",0,0,"zoneAbbr"),ue("zz",0,0,"zoneName");var Na=k.prototype;function Wa(e){return Qn(1e3*e)}function Ra(){return Qn.apply(null,arguments).parseZone()}function Va(e){return e}Na.add=Hr,Na.calendar=zr,Na.clone=Fr,Na.diff=$r,Na.endOf=fa,Na.format=Qr,Na.from=Zr,Na.fromNow=Kr,Na.to=Xr,Na.toNow=ea,Na.get=nt,Na.invalidAt=Ma,Na.isAfter=Ir,Na.isBefore=Nr,Na.isBetween=Wr,Na.isSame=Rr,Na.isSameOrAfter=Vr,Na.isSameOrBefore=Ur,Na.isValid=va,Na.lang=na,Na.locale=ta,Na.localeData=ra,Na.max=Kn,Na.min=Zn,Na.parsingFlags=ba,Na.set=rt,Na.startOf=da,Na.subtract=Cr,Na.toArray=_a,Na.toObject=ya,Na.toDate=pa,Na.toISOString=Gr,Na.inspect=Jr,Na.toJSON=ga,Na.toString=qr,Na.unix=ma,Na.valueOf=ha,Na.creationData=wa,Na.year=Ze,Na.isLeapYear=Ke,Na.weekYear=ka,Na.isoWeekYear=xa,Na.quarter=Na.quarters=Oa,Na.month=mt,Na.daysInMonth=pt,Na.week=Na.weeks=At,Na.isoWeek=Na.isoWeeks=Pt,Na.weeksInYear=Da,Na.isoWeeksInYear=Ya,Na.date=Aa,Na.day=Na.days=Ut,Na.weekday=$t,Na.isoWeekday=Bt,Na.dayOfYear=Pa,Na.hour=Na.hours=ln,Na.minute=Na.minutes=ja,Na.second=Na.seconds=Ca,Na.millisecond=Na.milliseconds=za,Na.utcOffset=pr,Na.utc=yr,Na.local=gr,Na.parseZone=vr,Na.hasAlignedHourOffset=br,Na.isDST=Mr,Na.isLocal=Lr,Na.isUtcOffset=kr,Na.isUtc=xr,Na.isUTC=xr,Na.zoneAbbr=Fa,Na.zoneName=Ia,Na.dates=O("dates accessor is deprecated. Use date instead.",Aa),Na.months=O("months accessor is deprecated. Use month instead",mt),Na.years=O("years accessor is deprecated. Use year instead",Ze),Na.zone=O("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",_r),Na.isDSTShifted=O("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",wr);var Ua=z.prototype;function $a(e,t,n,r){var a=vn(),i=_().set(r,t);return a[n](i,e)}function Ba(e,t,n){if(d(e)&&(t=e,e=void 0),e=e||"",null!=t)return $a(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=$a(e,r,n,"month");return a}function qa(e,t,n,r){"boolean"===typeof e?(d(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,d(t)&&(n=t,t=void 0),t=t||"");var a,i=vn(),o=e?i._week.dow:0;if(null!=n)return $a(t,(n+o)%7,r,"day");var s=[];for(a=0;a<7;a++)s[a]=$a(t,(a+o)%7,r,"day");return s}function Ga(e,t){return Ba(e,t,"months")}function Ja(e,t){return Ba(e,t,"monthsShort")}function Qa(e,t,n){return qa(e,t,n,"weekdays")}function Za(e,t,n){return qa(e,t,n,"weekdaysShort")}function Ka(e,t,n){return qa(e,t,n,"weekdaysMin")}Ua.calendar=I,Ua.longDateFormat=W,Ua.invalidDate=V,Ua.ordinal=B,Ua.preparse=Va,Ua.postformat=Va,Ua.relativeTime=G,Ua.pastFuture=J,Ua.set=C,Ua.months=ut,Ua.monthsShort=ct,Ua.monthsParse=ft,Ua.monthsRegex=vt,Ua.monthsShortRegex=yt,Ua.week=Dt,Ua.firstDayOfYear=Ot,Ua.firstDayOfWeek=Tt,Ua.weekdays=zt,Ua.weekdaysMin=Wt,Ua.weekdaysShort=It,Ua.weekdaysParse=Vt,Ua.weekdaysRegex=Gt,Ua.weekdaysShortRegex=Qt,Ua.weekdaysMinRegex=Kt,Ua.isPM=an,Ua.meridiem=sn,_n("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===D(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),i.lang=O("moment.lang is deprecated. Use moment.locale instead.",_n),i.langData=O("moment.langData is deprecated. Use moment.localeData instead.",vn);var Xa=Math.abs;function ei(){var e=this._data;return this._milliseconds=Xa(this._milliseconds),this._days=Xa(this._days),this._months=Xa(this._months),e.milliseconds=Xa(e.milliseconds),e.seconds=Xa(e.seconds),e.minutes=Xa(e.minutes),e.hours=Xa(e.hours),e.months=Xa(e.months),e.years=Xa(e.years),this}function ti(e,t,n,r){var a=Sr(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function ni(e,t){return ti(this,e,t,1)}function ri(e,t){return ti(this,e,t,-1)}function ai(e){return e<0?Math.floor(e):Math.ceil(e)}function ii(){var e,t,n,r,a,i=this._milliseconds,o=this._days,s=this._months,u=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*ai(si(s)+o),o=0,s=0),u.milliseconds=i%1e3,e=Y(i/1e3),u.seconds=e%60,t=Y(e/60),u.minutes=t%60,n=Y(t/60),u.hours=n%24,o+=Y(n/24),a=Y(oi(o)),s+=a,o-=ai(si(a)),r=Y(s/12),s%=12,u.days=o,u.months=s,u.years=r,this}function oi(e){return 4800*e/146097}function si(e){return 146097*e/4800}function ui(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if(e=K(e),"month"===e||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+oi(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(si(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function li(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*D(this._months/12):NaN}function ci(e){return function(){return this.as(e)}}var di=ci("ms"),fi=ci("s"),hi=ci("m"),mi=ci("h"),pi=ci("d"),_i=ci("w"),yi=ci("M"),gi=ci("Q"),vi=ci("y");function bi(){return Sr(this)}function Mi(e){return e=K(e),this.isValid()?this[e+"s"]():NaN}function wi(e){return function(){return this.isValid()?this._data[e]:NaN}}var Li=wi("milliseconds"),ki=wi("seconds"),xi=wi("minutes"),Yi=wi("hours"),Di=wi("days"),Si=wi("months"),Ti=wi("years");function Oi(){return Y(this.days()/7)}var Ai=Math.round,Pi={ss:44,s:45,m:45,h:22,d:26,M:11};function ji(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}function Hi(e,t,n){var r=Sr(e).abs(),a=Ai(r.as("s")),i=Ai(r.as("m")),o=Ai(r.as("h")),s=Ai(r.as("d")),u=Ai(r.as("M")),l=Ai(r.as("y")),c=a<=Pi.ss&&["s",a]||a0,c[4]=n,ji.apply(null,c)}function Ci(e){return void 0===e?Ai:"function"===typeof e&&(Ai=e,!0)}function Ei(e,t){return void 0!==Pi[e]&&(void 0===t?Pi[e]:(Pi[e]=t,"s"===e&&(Pi.ss=t-1),!0))}function zi(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=Hi(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}var Fi=Math.abs;function Ii(e){return(e>0)-(e<0)||+e}function Ni(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r=Fi(this._milliseconds)/1e3,a=Fi(this._days),i=Fi(this._months);e=Y(r/60),t=Y(e/60),r%=60,e%=60,n=Y(i/12),i%=12;var o=n,s=i,u=a,l=t,c=e,d=r?r.toFixed(3).replace(/\.?0+$/,""):"",f=this.asSeconds();if(!f)return"P0D";var h=f<0?"-":"",m=Ii(this._months)!==Ii(f)?"-":"",p=Ii(this._days)!==Ii(f)?"-":"",_=Ii(this._milliseconds)!==Ii(f)?"-":"";return h+"P"+(o?m+o+"Y":"")+(s?m+s+"M":"")+(u?p+u+"D":"")+(l||c||d?"T":"")+(l?_+l+"H":"")+(c?_+c+"M":"")+(d?_+d+"S":"")}var Wi=sr.prototype;return Wi.isValid=ir,Wi.abs=ei,Wi.add=ni,Wi.subtract=ri,Wi.as=ui,Wi.asMilliseconds=di,Wi.asSeconds=fi,Wi.asMinutes=hi,Wi.asHours=mi,Wi.asDays=pi,Wi.asWeeks=_i,Wi.asMonths=yi,Wi.asQuarters=gi,Wi.asYears=vi,Wi.valueOf=li,Wi._bubble=ii,Wi.clone=bi,Wi.get=Mi,Wi.milliseconds=Li,Wi.seconds=ki,Wi.minutes=xi,Wi.hours=Yi,Wi.days=Di,Wi.weeks=Oi,Wi.months=Si,Wi.years=Ti,Wi.humanize=zi,Wi.toISOString=Ni,Wi.toString=Ni,Wi.toJSON=Ni,Wi.locale=ta,Wi.localeData=ra,Wi.toIsoString=O("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ni),Wi.lang=na,ue("X",0,0,"unix"),ue("x",0,0,"valueOf"),Ae("x",xe),Ae("X",Se),Ee("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),Ee("x",(function(e,t,n){n._d=new Date(D(e))})),i.version="2.24.0",o(Qn),i.fn=Na,i.min=er,i.max=tr,i.now=nr,i.utc=_,i.unix=Wa,i.months=Ga,i.isDate=f,i.locale=_n,i.invalid=b,i.duration=Sr,i.isMoment=x,i.weekdays=Qa,i.parseZone=Ra,i.localeData=vn,i.isDuration=ur,i.monthsShort=Ja,i.weekdaysMin=Ka,i.defineLocale=yn,i.updateLocale=gn,i.locales=bn,i.weekdaysShort=Za,i.normalizeUnits=K,i.relativeTimeRounding=Ci,i.relativeTimeThreshold=Ei,i.calendarFormat=Er,i.prototype=Na,i.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},i}))})),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};function s(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?arguments[1]:void 0)}})},3024:function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},"30ef":function(e,t,n){ +/*! + * Chart.js v2.9.3 + * https://www.chartjs.org + * (c) 2019 Chart.js Contributors + * Released under the MIT License + */ +(function(t,r){e.exports=r(function(){try{return n("c1df")}catch(e){}}())})(0,(function(e){"use strict";function t(e,t){return t={exports:{}},e(t,t.exports),t.exports}function n(e){return e&&e["default"]||e}e=e&&e.hasOwnProperty("default")?e["default"]:e;var r={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},a=t((function(e){var t={};for(var n in r)r.hasOwnProperty(n)&&(t[r[n]]=n);var a=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var i in a)if(a.hasOwnProperty(i)){if(!("channels"in a[i]))throw new Error("missing channels property: "+i);if(!("labels"in a[i]))throw new Error("missing channel labels property: "+i);if(a[i].labels.length!==a[i].channels)throw new Error("channel and label counts mismatch: "+i);var o=a[i].channels,s=a[i].labels;delete a[i].channels,delete a[i].labels,Object.defineProperty(a[i],"channels",{value:o}),Object.defineProperty(a[i],"labels",{value:s})}function u(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2)}a.rgb.hsl=function(e){var t,n,r,a=e[0]/255,i=e[1]/255,o=e[2]/255,s=Math.min(a,i,o),u=Math.max(a,i,o),l=u-s;return u===s?t=0:a===u?t=(i-o)/l:i===u?t=2+(o-a)/l:o===u&&(t=4+(a-i)/l),t=Math.min(60*t,360),t<0&&(t+=360),r=(s+u)/2,n=u===s?0:r<=.5?l/(u+s):l/(2-u-s),[t,100*n,100*r]},a.rgb.hsv=function(e){var t,n,r,a,i,o=e[0]/255,s=e[1]/255,u=e[2]/255,l=Math.max(o,s,u),c=l-Math.min(o,s,u),d=function(e){return(l-e)/6/c+.5};return 0===c?a=i=0:(i=c/l,t=d(o),n=d(s),r=d(u),o===l?a=r-n:s===l?a=1/3+t-r:u===l&&(a=2/3+n-t),a<0?a+=1:a>1&&(a-=1)),[360*a,100*i,100*l]},a.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2],i=a.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[i,100*o,100*r]},a.rgb.cmyk=function(e){var t,n,r,a,i=e[0]/255,o=e[1]/255,s=e[2]/255;return a=Math.min(1-i,1-o,1-s),t=(1-i-a)/(1-a)||0,n=(1-o-a)/(1-a)||0,r=(1-s-a)/(1-a)||0,[100*t,100*n,100*r,100*a]},a.rgb.keyword=function(e){var n=t[e];if(n)return n;var a,i=1/0;for(var o in r)if(r.hasOwnProperty(o)){var s=r[o],l=u(e,s);l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92;var a=.4124*t+.3576*n+.1805*r,i=.2126*t+.7152*n+.0722*r,o=.0193*t+.1192*n+.9505*r;return[100*a,100*i,100*o]},a.rgb.lab=function(e){var t,n,r,i=a.rgb.xyz(e),o=i[0],s=i[1],u=i[2];return o/=95.047,s/=100,u/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,u=u>.008856?Math.pow(u,1/3):7.787*u+16/116,t=116*s-16,n=500*(o-s),r=200*(s-u),[t,n,r]},a.hsl.rgb=function(e){var t,n,r,a,i,o=e[0]/360,s=e[1]/100,u=e[2]/100;if(0===s)return i=255*u,[i,i,i];n=u<.5?u*(1+s):u+s-u*s,t=2*u-n,a=[0,0,0];for(var l=0;l<3;l++)r=o+1/3*-(l-1),r<0&&r++,r>1&&r--,i=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,a[l]=255*i;return a},a.hsl.hsv=function(e){var t,n,r=e[0],a=e[1]/100,i=e[2]/100,o=a,s=Math.max(i,.01);return i*=2,a*=i<=1?i:2-i,o*=s<=1?s:2-s,n=(i+a)/2,t=0===i?2*o/(s+o):2*a/(i+a),[r,100*t,100*n]},a.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,a=Math.floor(t)%6,i=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*i),u=255*r*(1-n*(1-i));switch(r*=255,a){case 0:return[r,u,o];case 1:return[s,r,o];case 2:return[o,r,u];case 3:return[o,s,r];case 4:return[u,o,r];case 5:return[r,o,s]}},a.hsv.hsl=function(e){var t,n,r,a=e[0],i=e[1]/100,o=e[2]/100,s=Math.max(o,.01);return r=(2-i)*o,t=(2-i)*s,n=i*s,n/=t<=1?t:2-t,n=n||0,r/=2,[a,100*n,100*r]},a.hwb.rgb=function(e){var t,n,r,a,i,o,s,u=e[0]/360,l=e[1]/100,c=e[2]/100,d=l+c;switch(d>1&&(l/=d,c/=d),t=Math.floor(6*u),n=1-c,r=6*u-t,0!==(1&t)&&(r=1-r),a=l+r*(n-l),t){default:case 6:case 0:i=n,o=a,s=l;break;case 1:i=a,o=n,s=l;break;case 2:i=l,o=n,s=a;break;case 3:i=l,o=a,s=n;break;case 4:i=a,o=l,s=n;break;case 5:i=n,o=l,s=a;break}return[255*i,255*o,255*s]},a.cmyk.rgb=function(e){var t,n,r,a=e[0]/100,i=e[1]/100,o=e[2]/100,s=e[3]/100;return t=1-Math.min(1,a*(1-s)+s),n=1-Math.min(1,i*(1-s)+s),r=1-Math.min(1,o*(1-s)+s),[255*t,255*n,255*r]},a.xyz.rgb=function(e){var t,n,r,a=e[0]/100,i=e[1]/100,o=e[2]/100;return t=3.2406*a+-1.5372*i+-.4986*o,n=-.9689*a+1.8758*i+.0415*o,r=.0557*a+-.204*i+1.057*o,t=t>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,t=Math.min(Math.max(0,t),1),n=Math.min(Math.max(0,n),1),r=Math.min(Math.max(0,r),1),[255*t,255*n,255*r]},a.xyz.lab=function(e){var t,n,r,a=e[0],i=e[1],o=e[2];return a/=95.047,i/=100,o/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,t=116*i-16,n=500*(a-i),r=200*(i-o),[t,n,r]},a.lab.xyz=function(e){var t,n,r,a=e[0],i=e[1],o=e[2];n=(a+16)/116,t=i/500+n,r=n-o/200;var s=Math.pow(n,3),u=Math.pow(t,3),l=Math.pow(r,3);return n=s>.008856?s:(n-16/116)/7.787,t=u>.008856?u:(t-16/116)/7.787,r=l>.008856?l:(r-16/116)/7.787,t*=95.047,n*=100,r*=108.883,[t,n,r]},a.lab.lch=function(e){var t,n,r,a=e[0],i=e[1],o=e[2];return t=Math.atan2(o,i),n=360*t/2/Math.PI,n<0&&(n+=360),r=Math.sqrt(i*i+o*o),[a,r,n]},a.lch.lab=function(e){var t,n,r,a=e[0],i=e[1],o=e[2];return r=o/360*2*Math.PI,t=i*Math.cos(r),n=i*Math.sin(r),[a,t,n]},a.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],i=1 in arguments?arguments[1]:a.rgb.hsv(e)[2];if(i=Math.round(i/50),0===i)return 30;var o=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===i&&(o+=60),o},a.hsv.ansi16=function(e){return a.rgb.ansi16(a.hsv.rgb(e),e[2])},a.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];if(t===n&&n===r)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;var a=16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5);return a},a.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];var n=.5*(1+~~(e>50)),r=(1&t)*n*255,a=(t>>1&1)*n*255,i=(t>>2&1)*n*255;return[r,a,i]},a.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;e-=16;var r=Math.floor(e/36)/5*255,a=Math.floor((n=e%36)/6)/5*255,i=n%6/5*255;return[r,a,i]},a.rgb.hex=function(e){var t=((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2])),n=t.toString(16).toUpperCase();return"000000".substring(n.length)+n},a.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16),a=r>>16&255,i=r>>8&255,o=255&r;return[a,i,o]},a.rgb.hcg=function(e){var t,n,r=e[0]/255,a=e[1]/255,i=e[2]/255,o=Math.max(Math.max(r,a),i),s=Math.min(Math.min(r,a),i),u=o-s;return t=u<1?s/(1-u):0,n=u<=0?0:o===r?(a-i)/u%6:o===a?2+(i-r)/u:4+(r-a)/u+4,n/=6,n%=1,[360*n,100*u,100*t]},a.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,a=0;return r=n<.5?2*t*n:2*t*(1-n),r<1&&(a=(n-.5*r)/(1-r)),[e[0],100*r,100*a]},a.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,a=0;return r<1&&(a=(n-r)/(1-r)),[e[0],100*r,100*a]},a.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var a=[0,0,0],i=t%1*6,o=i%1,s=1-o,u=0;switch(Math.floor(i)){case 0:a[0]=1,a[1]=o,a[2]=0;break;case 1:a[0]=s,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=o;break;case 3:a[0]=0,a[1]=s,a[2]=1;break;case 4:a[0]=o,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=s}return u=(1-n)*r,[255*(n*a[0]+u),255*(n*a[1]+u),255*(n*a[2]+u)]},a.hcg.hsv=function(e){var t=e[1]/100,n=e[2]/100,r=t+n*(1-t),a=0;return r>0&&(a=t/r),[e[0],100*a,100*r]},a.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100,r=n*(1-t)+.5*t,a=0;return r>0&&r<.5?a=t/(2*r):r>=.5&&r<1&&(a=t/(2*(1-r))),[e[0],100*a,100*r]},a.hcg.hwb=function(e){var t=e[1]/100,n=e[2]/100,r=t+n*(1-t);return[e[0],100*(r-t),100*(1-r)]},a.hwb.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1-n,a=r-t,i=0;return a<1&&(i=(r-a)/(1-a)),[e[0],100*a,100*i]},a.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},a.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},a.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},a.gray.hsl=a.gray.hsv=function(e){return[0,0,e[0]]},a.gray.hwb=function(e){return[0,100,e[0]]},a.gray.cmyk=function(e){return[0,0,0,e[0]]},a.gray.lab=function(e){return[e[0],0,0]},a.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=(t<<16)+(t<<8)+t,r=n.toString(16).toUpperCase();return"000000".substring(r.length)+r},a.rgb.gray=function(e){var t=(e[0]+e[1]+e[2])/3;return[t/255*100]}}));a.rgb,a.hsl,a.hsv,a.hwb,a.cmyk,a.xyz,a.lab,a.lch,a.hex,a.keyword,a.ansi16,a.ansi256,a.hcg,a.apple,a.gray;function i(){for(var e={},t=Object.keys(a),n=t.length,r=0;r1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}function h(e){var t=function(t){if(void 0===t||null===t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"===typeof n)for(var r=n.length,a=0;a=0&&t<1?j(Math.round(255*t)):"")}function k(e,t){return t<1||e[3]&&e[3]<1?x(e,t):"rgb("+e[0]+", "+e[1]+", "+e[2]+")"}function x(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"rgba("+e[0]+", "+e[1]+", "+e[2]+", "+t+")"}function Y(e,t){if(t<1||e[3]&&e[3]<1)return D(e,t);var n=Math.round(e[0]/255*100),r=Math.round(e[1]/255*100),a=Math.round(e[2]/255*100);return"rgb("+n+"%, "+r+"%, "+a+"%)"}function D(e,t){var n=Math.round(e[0]/255*100),r=Math.round(e[1]/255*100),a=Math.round(e[2]/255*100);return"rgba("+n+"%, "+r+"%, "+a+"%, "+(t||e[3]||1)+")"}function S(e,t){return t<1||e[3]&&e[3]<1?T(e,t):"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)"}function T(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+t+")"}function O(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+(void 0!==t&&1!==t?", "+t:"")+")"}function A(e){return H[e.slice(0,3)]}function P(e,t,n){return Math.min(Math.max(t,e),n)}function j(e){var t=e.toString(16).toUpperCase();return t.length<2?"0"+t:t}var H={};for(var C in p)H[p[C]]=C;var E=function(e){return e instanceof E?e:this instanceof E?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"===typeof e?(t=_.getRgba(e),t?this.setValues("rgb",t):(t=_.getHsla(e))?this.setValues("hsl",t):(t=_.getHwb(e))&&this.setValues("hwb",t)):"object"===typeof e&&(t=e,void 0!==t.r||void 0!==t.red?this.setValues("rgb",t):void 0!==t.l||void 0!==t.lightness?this.setValues("hsl",t):void 0!==t.v||void 0!==t.value?this.setValues("hsv",t):void 0!==t.w||void 0!==t.whiteness?this.setValues("hwb",t):void 0===t.c&&void 0===t.cyan||this.setValues("cmyk",t)))):new E(e);var t};E.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var e=this.values;return 1!==e.alpha?e.hwb.concat([e.alpha]):e.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var e=this.values;return e.rgb.concat([e.alpha])},hslaArray:function(){var e=this.values;return e.hsl.concat([e.alpha])},alpha:function(e){return void 0===e?this.values.alpha:(this.setValues("alpha",e),this)},red:function(e){return this.setChannel("rgb",0,e)},green:function(e){return this.setChannel("rgb",1,e)},blue:function(e){return this.setChannel("rgb",2,e)},hue:function(e){return e&&(e%=360,e=e<0?360+e:e),this.setChannel("hsl",0,e)},saturation:function(e){return this.setChannel("hsl",1,e)},lightness:function(e){return this.setChannel("hsl",2,e)},saturationv:function(e){return this.setChannel("hsv",1,e)},whiteness:function(e){return this.setChannel("hwb",1,e)},blackness:function(e){return this.setChannel("hwb",2,e)},value:function(e){return this.setChannel("hsv",2,e)},cyan:function(e){return this.setChannel("cmyk",0,e)},magenta:function(e){return this.setChannel("cmyk",1,e)},yellow:function(e){return this.setChannel("cmyk",2,e)},black:function(e){return this.setChannel("cmyk",3,e)},hexString:function(){return _.hexString(this.values.rgb)},rgbString:function(){return _.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return _.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return _.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return _.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return _.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return _.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return _.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var e=this.values.rgb;return e[0]<<16|e[1]<<8|e[2]},luminosity:function(){for(var e=this.values.rgb,t=[],n=0;nn?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},dark:function(){var e=this.values.rgb,t=(299*e[0]+587*e[1]+114*e[2])/1e3;return t<128},light:function(){return!this.dark()},negate:function(){for(var e=[],t=0;t<3;t++)e[t]=255-this.values.rgb[t];return this.setValues("rgb",e),this},lighten:function(e){var t=this.values.hsl;return t[2]+=t[2]*e,this.setValues("hsl",t),this},darken:function(e){var t=this.values.hsl;return t[2]-=t[2]*e,this.setValues("hsl",t),this},saturate:function(e){var t=this.values.hsl;return t[1]+=t[1]*e,this.setValues("hsl",t),this},desaturate:function(e){var t=this.values.hsl;return t[1]-=t[1]*e,this.setValues("hsl",t),this},whiten:function(e){var t=this.values.hwb;return t[1]+=t[1]*e,this.setValues("hwb",t),this},blacken:function(e){var t=this.values.hwb;return t[2]+=t[2]*e,this.setValues("hwb",t),this},greyscale:function(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];return this.setValues("rgb",[t,t,t]),this},clearer:function(e){var t=this.values.alpha;return this.setValues("alpha",t-t*e),this},opaquer:function(e){var t=this.values.alpha;return this.setValues("alpha",t+t*e),this},rotate:function(e){var t=this.values.hsl,n=(t[0]+e)%360;return t[0]=n<0?360+n:n,this.setValues("hsl",t),this},mix:function(e,t){var n=this,r=e,a=void 0===t?.5:t,i=2*a-1,o=n.alpha()-r.alpha(),s=((i*o===-1?i:(i+o)/(1+i*o))+1)/2,u=1-s;return this.rgb(s*n.red()+u*r.red(),s*n.green()+u*r.green(),s*n.blue()+u*r.blue()).alpha(n.alpha()*a+r.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var e,t,n=new E,r=this.values,a=n.values;for(var i in r)r.hasOwnProperty(i)&&(e=r[i],t={}.toString.call(e),"[object Array]"===t?a[i]=e.slice(0):"[object Number]"===t?a[i]=e:console.error("unexpected color value:",e));return n}},E.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},E.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},E.prototype.getValues=function(e){for(var t=this.values,n={},r=0;r=0;a--)t.call(n,e[a],a);else for(a=0;a=1?e:-(Math.sqrt(1-e*e)-1)},easeOutCirc:function(e){return Math.sqrt(1-(e-=1)*e)},easeInOutCirc:function(e){return(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function(e){var t=1.70158,n=0,r=1;return 0===e?0:1===e?1:(n||(n=.3),r<1?(r=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/r),-r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n))},easeOutElastic:function(e){var t=1.70158,n=0,r=1;return 0===e?0:1===e?1:(n||(n=.3),r<1?(r=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/r),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},easeInOutElastic:function(e){var t=1.70158,n=0,r=1;return 0===e?0:2===(e/=.5)?1:(n||(n=.45),r<1?(r=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/r),e<1?r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*-.5:r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},easeInBack:function(e){var t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},easeInOutBack:function(e){var t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:function(e){return 1-N.easeOutBounce(1-e)},easeOutBounce:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function(e){return e<.5?.5*N.easeInBounce(2*e):.5*N.easeOutBounce(2*e-1)+.5}},W={effects:N};I.easingEffects=N;var R=Math.PI,V=R/180,U=2*R,$=R/2,B=R/4,q=2*R/3,G={clear:function(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function(e,t,n,r,a,i){if(i){var o=Math.min(i,a/2,r/2),s=t+o,u=n+o,l=t+r-o,c=n+a-o;e.moveTo(t,u),st.left-n&&e.xt.top-n&&e.y0&&e.requestAnimationFrame()},advance:function(){var e,t,n,r,a=this.animations,i=0;while(i=n?(le.callback(e.onAnimationComplete,[e],t),t.animating=!1,a.splice(i,1)):++i}},Me=le.options.resolve,we=["push","pop","shift","splice","unshift"];function Le(e,t){e._chartjs?e._chartjs.listeners.push(t):(Object.defineProperty(e,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),we.forEach((function(t){var n="onData"+t.charAt(0).toUpperCase()+t.slice(1),r=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:function(){var t=Array.prototype.slice.call(arguments),a=r.apply(this,t);return le.each(e._chartjs.listeners,(function(e){"function"===typeof e[n]&&e[n].apply(e,t)})),a}})})))}function ke(e,t){var n=e._chartjs;if(n){var r=n.listeners,a=r.indexOf(t);-1!==a&&r.splice(a,1),r.length>0||(we.forEach((function(t){delete e[t]})),delete e._chartjs)}}var xe=function(e,t){this.initialize(e,t)};le.extend(xe.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(e,t){var n=this;n.chart=e,n.index=t,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(e){this.index=e},linkScales:function(){var e=this,t=e.getMeta(),n=e.chart,r=n.scales,a=e.getDataset(),i=n.options.scales;null!==t.xAxisID&&t.xAxisID in r&&!a.xAxisID||(t.xAxisID=a.xAxisID||i.xAxes[0].id),null!==t.yAxisID&&t.yAxisID in r&&!a.yAxisID||(t.yAxisID=a.yAxisID||i.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(e){return this.chart.scales[e]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&ke(this._data,this)},createMetaDataset:function(){var e=this,t=e.datasetElementType;return t&&new t({_chart:e.chart,_datasetIndex:e.index})},createMetaData:function(e){var t=this,n=t.dataElementType;return n&&new n({_chart:t.chart,_datasetIndex:t.index,_index:e})},addElements:function(){var e,t,n=this,r=n.getMeta(),a=n.getDataset().data||[],i=r.data;for(e=0,t=a.length;er&&e.insertElements(r,a-r)},insertElements:function(e,t){for(var n=0;na?(i=a/t.innerRadius,e.arc(o,s,t.innerRadius-a,r+i,n-i,!0)):e.arc(o,s,a,r+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip()}function Te(e,t,n,r){var a,i=n.endAngle;for(r&&(n.endAngle=n.startAngle+De,Se(e,n),n.endAngle=i,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=De,n.fullCircles--)),e.beginPath(),e.arc(n.x,n.y,n.innerRadius,n.startAngle+De,n.startAngle,!0),a=0;as)a-=De;while(a=o&&a<=s,l=i>=n.innerRadius&&i<=n.outerRadius;return u&&l}return!1},getCenterPoint:function(){var e=this._view,t=(e.startAngle+e.endAngle)/2,n=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},getArea:function(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,n=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},draw:function(){var e,t=this._chart.ctx,n=this._view,r="inner"===n.borderAlign?.33:0,a={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-r,0),pixelMargin:r,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/De)};if(t.save(),t.fillStyle=n.backgroundColor,t.strokeStyle=n.borderColor,a.fullCircles){for(a.endAngle=a.startAngle+De,t.beginPath(),t.arc(a.x,a.y,a.outerRadius,a.startAngle,a.endAngle),t.arc(a.x,a.y,a.innerRadius,a.endAngle,a.startAngle,!0),t.closePath(),e=0;ee.x&&(t=Ve(t,"left","right")):e.basen?n:r,r:u.right||a<0?0:a>t?t:a,b:u.bottom||i<0?0:i>n?n:i,l:u.left||o<0?0:o>t?t:o}}function Be(e){var t=Re(e),n=t.right-t.left,r=t.bottom-t.top,a=$e(e,n/2,r/2);return{outer:{x:t.left,y:t.top,w:n,h:r},inner:{x:t.left+a.l,y:t.top+a.t,w:n-a.l-a.r,h:r-a.t-a.b}}}function qe(e,t,n){var r=null===t,a=null===n,i=!(!e||r&&a)&&Re(e);return i&&(r||t>=i.left&&t<=i.right)&&(a||n>=i.top&&n<=i.bottom)}Z._set("global",{elements:{rectangle:{backgroundColor:Ne,borderColor:Ne,borderSkipped:"bottom",borderWidth:0}}});var Ge=ye.extend({_type:"rectangle",draw:function(){var e=this._chart.ctx,t=this._view,n=Be(t),r=n.outer,a=n.inner;e.fillStyle=t.backgroundColor,e.fillRect(r.x,r.y,r.w,r.h),r.w===a.w&&r.h===a.h||(e.save(),e.beginPath(),e.rect(r.x,r.y,r.w,r.h),e.clip(),e.fillStyle=t.borderColor,e.rect(a.x,a.y,a.w,a.h),e.fill("evenodd"),e.restore())},height:function(){var e=this._view;return e.base-e.y},inRange:function(e,t){return qe(this._view,e,t)},inLabelRange:function(e,t){var n=this._view;return We(n)?qe(n,e,null):qe(n,null,t)},inXRange:function(e){return qe(this._view,e,null)},inYRange:function(e){return qe(this._view,null,e)},getCenterPoint:function(){var e,t,n=this._view;return We(n)?(e=n.x,t=(n.y+n.base)/2):(e=(n.x+n.base)/2,t=n.y),{x:e,y:t}},getArea:function(){var e=this._view;return We(e)?e.width*Math.abs(e.y-e.base):e.height*Math.abs(e.x-e.base)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y}}}),Je={},Qe=Ae,Ze=He,Ke=Ie,Xe=Ge;Je.Arc=Qe,Je.Line=Ze,Je.Point=Ke,Je.Rectangle=Xe;var et=le._deprecated,tt=le.valueOrDefault;function nt(e,t){var n,r,a,i,o=e._length;for(a=1,i=t.length;a0?Math.min(o,Math.abs(r-n)):o,n=r;return o}function rt(e,t,n){var r,a,i=n.barThickness,o=t.stackCount,s=t.pixels[e],u=le.isNullOrUndef(i)?nt(t.scale,t.pixels):-1;return le.isNullOrUndef(i)?(r=u*n.categoryPercentage,a=n.barPercentage):(r=i*o,a=1),{chunk:r/o,ratio:a,start:s-r/2}}function at(e,t,n){var r,a,i=t.pixels,o=i[e],s=e>0?i[e-1]:null,u=e=0&&_.min>=0?_.min:_.max,M=void 0===_.start?_.end:_.max>=0&&_.min>=0?_.max-_.min:_.min-_.max,w=p.length;if(g||void 0===g&&void 0!==v)for(r=0;r=0&&l.max>=0?l.max:l.min,(_.min<0&&i<0||_.max>=0&&i>0)&&(b+=i))}return o=f.getPixelForValue(b),s=f.getPixelForValue(b+M),u=s-o,void 0!==y&&Math.abs(u)=0&&!h||M<0&&h?o-y:o+y),{size:u,base:o,head:s,center:s+u/2}},calculateBarIndexPixels:function(e,t,n,r){var a=this,i="flex"===r.barThickness?at(t,n,r):rt(t,n,r),o=a.getStackIndex(e,a.getMeta().stack),s=i.start+i.chunk*o+i.chunk/2,u=Math.min(tt(r.maxBarThickness,1/0),i.chunk*i.ratio);return{base:s-u/2,head:s+u/2,center:s,size:u}},draw:function(){var e=this,t=e.chart,n=e._getValueScale(),r=e.getMeta().data,a=e.getDataset(),i=r.length,o=0;for(le.canvas.clipArea(t.ctx,t.chartArea);o=ct?-dt:g<-ct?dt:0;var v=g+_,b=Math.cos(g),M=Math.sin(g),w=Math.cos(v),L=Math.sin(v),k=g<=0&&v>=0||v>=dt,x=g<=ft&&v>=ft||v>=dt+ft,Y=g===-ct||v>=ct,D=g<=-ft&&v>=-ft||v>=ct+ft,S=Y?-1:Math.min(b,b*p,w,w*p),T=D?-1:Math.min(M,M*p,L,L*p),O=k?1:Math.max(b,b*p,w,w*p),A=x?1:Math.max(M,M*p,L,L*p);l=(O-S)/2,c=(A-T)/2,d=-(O+S)/2,f=-(A+T)/2}for(r=0,a=m.length;r0&&!isNaN(e)?dt*(Math.abs(e)/t):0},getMaxBorderWidth:function(e){var t,n,r,a,i,o,s,u,l=this,c=0,d=l.chart;if(!e)for(t=0,n=d.data.datasets.length;tc?s:c,c=u>c?u:c);return c},setHoverStyle:function(e){var t=e._model,n=e._options,r=le.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=lt(n.hoverBackgroundColor,r(n.backgroundColor)),t.borderColor=lt(n.hoverBorderColor,r(n.borderColor)),t.borderWidth=lt(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(e){for(var t=0,n=0;n0&&yt(l[e-1]._model,u)&&(n.controlPointPreviousX=c(n.controlPointPreviousX,u.left,u.right),n.controlPointPreviousY=c(n.controlPointPreviousY,u.top,u.bottom)),e0&&(i=e.getDatasetMeta(i[0]._datasetIndex).data),i},"x-axis":function(e,t){return Ht(e,t,{intersect:!1})},point:function(e,t){var n=Tt(t,e);return At(e,n)},nearest:function(e,t,n){var r=Tt(t,e);n.axis=n.axis||"xy";var a=jt(n.axis);return Pt(e,r,n.intersect,a)},x:function(e,t,n){var r=Tt(t,e),a=[],i=!1;return Ot(e,(function(e){e.inXRange(r.x)&&a.push(e),e.inRange(r.x,r.y)&&(i=!0)})),n.intersect&&!i&&(a=[]),a},y:function(e,t,n){var r=Tt(t,e),a=[],i=!1;return Ot(e,(function(e){e.inYRange(r.y)&&a.push(e),e.inRange(r.x,r.y)&&(i=!0)})),n.intersect&&!i&&(a=[]),a}}},Et=le.extend;function zt(e,t){return le.where(e,(function(e){return e.pos===t}))}function Ft(e,t){return e.sort((function(e,n){var r=t?n:e,a=t?e:n;return r.weight===a.weight?r.index-a.index:r.weight-a.weight}))}function It(e){var t,n,r,a=[];for(t=0,n=(e||[]).length;t div {\n\tposition: absolute;\n\twidth: 1000000px;\n\theight: 1000000px;\n\tleft: 0;\n\ttop: 0;\n}\n\n.chartjs-size-monitor-shrink > div {\n\tposition: absolute;\n\twidth: 200%;\n\theight: 200%;\n\tleft: 0;\n\ttop: 0;\n}\n",Zt=Object.freeze({__proto__:null,default:Qt}),Kt=n(Zt),Xt="$chartjs",en="chartjs-",tn=en+"size-monitor",nn=en+"render-monitor",rn=en+"render-animation",an=["animationstart","webkitAnimationStart"],on={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function sn(e,t){var n=le.getStyle(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?Number(r[1]):void 0}function un(e,t){var n=e.style,r=e.getAttribute("height"),a=e.getAttribute("width");if(e[Xt]={initial:{height:r,width:a,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===a||""===a){var i=sn(e,"width");void 0!==i&&(e.width=i)}if(null===r||""===r)if(""===e.style.height)e.height=e.width/(t.options.aspectRatio||2);else{var o=sn(e,"height");void 0!==i&&(e.height=o)}return e}var ln=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("e",null,t)}catch(n){}return e}(),cn=!!ln&&{passive:!0};function dn(e,t,n){e.addEventListener(t,n,cn)}function fn(e,t,n){e.removeEventListener(t,n,cn)}function hn(e,t,n,r,a){return{type:e,chart:t,native:a||null,x:void 0!==n?n:null,y:void 0!==r?r:null}}function mn(e,t){var n=on[e.type]||e.type,r=le.getRelativePosition(e,t);return hn(n,t,r.x,r.y,e)}function pn(e,t){var n=!1,r=[];return function(){r=Array.prototype.slice.call(arguments),t=t||this,n||(n=!0,le.requestAnimFrame.call(window,(function(){n=!1,e.apply(t,r)})))}}function _n(e){var t=document.createElement("div");return t.className=e||"",t}function yn(e){var t=1e6,n=_n(tn),r=_n(tn+"-expand"),a=_n(tn+"-shrink");r.appendChild(_n()),a.appendChild(_n()),n.appendChild(r),n.appendChild(a),n._reset=function(){r.scrollLeft=t,r.scrollTop=t,a.scrollLeft=t,a.scrollTop=t};var i=function(){n._reset(),e()};return dn(r,"scroll",i.bind(r,"expand")),dn(a,"scroll",i.bind(a,"shrink")),n}function gn(e,t){var n=e[Xt]||(e[Xt]={}),r=n.renderProxy=function(e){e.animationName===rn&&t()};le.each(an,(function(t){dn(e,t,r)})),n.reflow=!!e.offsetParent,e.classList.add(nn)}function vn(e){var t=e[Xt]||{},n=t.renderProxy;n&&(le.each(an,(function(t){fn(e,t,n)})),delete t.renderProxy),e.classList.remove(nn)}function bn(e,t,n){var r=e[Xt]||(e[Xt]={}),a=r.resizer=yn(pn((function(){if(r.resizer){var a=n.options.maintainAspectRatio&&e.parentNode,i=a?a.clientWidth:0;t(hn("resize",n)),a&&a.clientWidth0){var i=e[0];i.label?n=i.label:i.xLabel?n=i.xLabel:a>0&&i.index-1?e.split("\n"):e}function jn(e){var t=e._xScale,n=e._yScale||e._scale,r=e._index,a=e._datasetIndex,i=e._chart.getDatasetMeta(a).controller,o=i._getIndexScale(),s=i._getValueScale();return{xLabel:t?t.getLabelForIndex(r,a):"",yLabel:n?n.getLabelForIndex(r,a):"",label:o?""+o.getLabelForIndex(r,a):"",value:s?""+s.getLabelForIndex(r,a):"",index:r,datasetIndex:a,x:e._model.x,y:e._model.y}}function Hn(e){var t=Z.global;return{xPadding:e.xPadding,yPadding:e.yPadding,xAlign:e.xAlign,yAlign:e.yAlign,rtl:e.rtl,textDirection:e.textDirection,bodyFontColor:e.bodyFontColor,_bodyFontFamily:Sn(e.bodyFontFamily,t.defaultFontFamily),_bodyFontStyle:Sn(e.bodyFontStyle,t.defaultFontStyle),_bodyAlign:e.bodyAlign,bodyFontSize:Sn(e.bodyFontSize,t.defaultFontSize),bodySpacing:e.bodySpacing,titleFontColor:e.titleFontColor,_titleFontFamily:Sn(e.titleFontFamily,t.defaultFontFamily),_titleFontStyle:Sn(e.titleFontStyle,t.defaultFontStyle),titleFontSize:Sn(e.titleFontSize,t.defaultFontSize),_titleAlign:e.titleAlign,titleSpacing:e.titleSpacing,titleMarginBottom:e.titleMarginBottom,footerFontColor:e.footerFontColor,_footerFontFamily:Sn(e.footerFontFamily,t.defaultFontFamily),_footerFontStyle:Sn(e.footerFontStyle,t.defaultFontStyle),footerFontSize:Sn(e.footerFontSize,t.defaultFontSize),_footerAlign:e.footerAlign,footerSpacing:e.footerSpacing,footerMarginTop:e.footerMarginTop,caretSize:e.caretSize,cornerRadius:e.cornerRadius,backgroundColor:e.backgroundColor,opacity:0,legendColorBackground:e.multiKeyBackground,displayColors:e.displayColors,borderColor:e.borderColor,borderWidth:e.borderWidth}}function Cn(e,t){var n=e._chart.ctx,r=2*t.yPadding,a=0,i=t.body,o=i.reduce((function(e,t){return e+t.before.length+t.lines.length+t.after.length}),0);o+=t.beforeBody.length+t.afterBody.length;var s=t.title.length,u=t.footer.length,l=t.titleFontSize,c=t.bodyFontSize,d=t.footerFontSize;r+=s*l,r+=s?(s-1)*t.titleSpacing:0,r+=s?t.titleMarginBottom:0,r+=o*c,r+=o?(o-1)*t.bodySpacing:0,r+=u?t.footerMarginTop:0,r+=u*d,r+=u?(u-1)*t.footerSpacing:0;var f=0,h=function(e){a=Math.max(a,n.measureText(e).width+f)};return n.font=le.fontString(l,t._titleFontStyle,t._titleFontFamily),le.each(t.title,h),n.font=le.fontString(c,t._bodyFontStyle,t._bodyFontFamily),le.each(t.beforeBody.concat(t.afterBody),h),f=t.displayColors?c+2:0,le.each(i,(function(e){le.each(e.before,h),le.each(e.lines,h),le.each(e.after,h)})),f=0,n.font=le.fontString(d,t._footerFontStyle,t._footerFontFamily),le.each(t.footer,h),a+=2*t.xPadding,{width:a,height:r}}function En(e,t){var n,r,a,i,o,s=e._model,u=e._chart,l=e._chart.chartArea,c="center",d="center";s.yu.height-t.height&&(d="bottom");var f=(l.left+l.right)/2,h=(l.top+l.bottom)/2;"center"===d?(n=function(e){return e<=f},r=function(e){return e>f}):(n=function(e){return e<=t.width/2},r=function(e){return e>=u.width-t.width/2}),a=function(e){return e+t.width+s.caretSize+s.caretPadding>u.width},i=function(e){return e-t.width-s.caretSize-s.caretPadding<0},o=function(e){return e<=h?"top":"bottom"},n(s.x)?(c="left",a(s.x)&&(c="center",d=o(s.y))):r(s.x)&&(c="right",i(s.x)&&(c="center",d=o(s.y)));var m=e._options;return{xAlign:m.xAlign?m.xAlign:c,yAlign:m.yAlign?m.yAlign:d}}function zn(e,t,n,r){var a=e.x,i=e.y,o=e.caretSize,s=e.caretPadding,u=e.cornerRadius,l=n.xAlign,c=n.yAlign,d=o+s,f=u+s;return"right"===l?a-=t.width:"center"===l&&(a-=t.width/2,a+t.width>r.width&&(a=r.width-t.width),a<0&&(a=0)),"top"===c?i+=d:i-="bottom"===c?t.height+d:t.height/2,"center"===c?"left"===l?a+=d:"right"===l&&(a-=d):"left"===l?a-=f:"right"===l&&(a+=f),{x:a,y:i}}function Fn(e,t){return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-e.xPadding:e.x+e.xPadding}function In(e){return An([],Pn(e))}var Nn=ye.extend({initialize:function(){this._model=Hn(this._options),this._lastActive=[]},getTitle:function(){var e=this,t=e._options,n=t.callbacks,r=n.beforeTitle.apply(e,arguments),a=n.title.apply(e,arguments),i=n.afterTitle.apply(e,arguments),o=[];return o=An(o,Pn(r)),o=An(o,Pn(a)),o=An(o,Pn(i)),o},getBeforeBody:function(){return In(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(e,t){var n=this,r=n._options.callbacks,a=[];return le.each(e,(function(e){var i={before:[],lines:[],after:[]};An(i.before,Pn(r.beforeLabel.call(n,e,t))),An(i.lines,r.label.call(n,e,t)),An(i.after,Pn(r.afterLabel.call(n,e,t))),a.push(i)})),a},getAfterBody:function(){return In(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var e=this,t=e._options.callbacks,n=t.beforeFooter.apply(e,arguments),r=t.footer.apply(e,arguments),a=t.afterFooter.apply(e,arguments),i=[];return i=An(i,Pn(n)),i=An(i,Pn(r)),i=An(i,Pn(a)),i},update:function(e){var t,n,r=this,a=r._options,i=r._model,o=r._model=Hn(a),s=r._active,u=r._data,l={xAlign:i.xAlign,yAlign:i.yAlign},c={x:i.x,y:i.y},d={width:i.width,height:i.height},f={x:i.caretX,y:i.caretY};if(s.length){o.opacity=1;var h=[],m=[];f=On[a.position].call(r,s,r._eventPosition);var p=[];for(t=0,n=s.length;t0&&n.stroke()},draw:function(){var e=this._chart.ctx,t=this._view;if(0!==t.opacity){var n={width:t.width,height:t.height},r={x:t.x,y:t.y},a=Math.abs(t.opacity<.001)?0:t.opacity,i=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;this._options.enabled&&i&&(e.save(),e.globalAlpha=a,this.drawBackground(r,t,e,n),r.y+=t.yPadding,le.rtl.overrideTextDirection(e,t.textDirection),this.drawTitle(r,t,e),this.drawBody(r,t,e),this.drawFooter(r,t,e),le.rtl.restoreTextDirection(e,t.textDirection),e.restore())}},handleEvent:function(e){var t=this,n=t._options,r=!1;return t._lastActive=t._lastActive||[],"mouseout"===e.type?t._active=[]:(t._active=t._chart.getElementsAtEventForMode(e,n.mode,n),n.reverse&&t._active.reverse()),r=!le.arrayEquals(t._active,t._lastActive),r&&(t._lastActive=t._active,(n.enabled||n.custom)&&(t._eventPosition={x:e.x,y:e.y},t.update(!0),t.pivot())),r}}),Wn=On,Rn=Nn;Rn.positioners=Wn;var Vn=le.valueOrDefault;function Un(){return le.merge({},[].slice.call(arguments),{merger:function(e,t,n,r){if("xAxes"===e||"yAxes"===e){var a,i,o,s=n[e].length;for(t[e]||(t[e]=[]),a=0;a=t[e].length&&t[e].push({}),!t[e][a].type||o.type&&o.type!==t[e][a].type?le.merge(t[e][a],[Dn.getScaleDefaults(i),o]):le.merge(t[e][a],o)}else le._merger(e,t,n,r)}})}function $n(){return le.merge({},[].slice.call(arguments),{merger:function(e,t,n,r){var a=t[e]||{},i=n[e];"scales"===e?t[e]=Un(a,i):"scale"===e?t[e]=le.merge(a,[Dn.getScaleDefaults(i.type),i]):le._merger(e,t,n,r)}})}function Bn(e){e=e||{};var t=e.data=e.data||{};return t.datasets=t.datasets||[],t.labels=t.labels||[],e.options=$n(Z.global,Z[e.type],e.options||{}),e}function qn(e){var t=e.options;le.each(e.scales,(function(t){Gt.removeBox(e,t)})),t=$n(Z.global,Z[e.config.type],t),e.options=e.config.options=t,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=t.tooltips,e.tooltip.initialize()}function Gn(e,t,n){var r,a=function(e){return e.id===r};do{r=t+n++}while(le.findIndex(e,a)>=0);return r}function Jn(e){return"top"===e||"bottom"===e}function Qn(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}Z._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Zn=function(e,t){return this.construct(e,t),this};le.extend(Zn.prototype,{construct:function(e,t){var n=this;t=Bn(t);var r=xn.acquireContext(e,t),a=r&&r.canvas,i=a&&a.height,o=a&&a.width;n.id=le.uid(),n.ctx=r,n.canvas=a,n.config=t,n.width=o,n.height=i,n.aspectRatio=i?o/i:null,n.options=t.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Zn.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(e){n.config.data=e}}),r&&a?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var e=this;return Yn.notify(e,"beforeInit"),le.retinaScale(e,e.options.devicePixelRatio),e.bindEvents(),e.options.responsive&&e.resize(!0),e.initToolTip(),Yn.notify(e,"afterInit"),e},clear:function(){return le.canvas.clear(this),this},stop:function(){return be.cancelAnimation(this),this},resize:function(e){var t=this,n=t.options,r=t.canvas,a=n.maintainAspectRatio&&t.aspectRatio||null,i=Math.max(0,Math.floor(le.getMaximumWidth(r))),o=Math.max(0,Math.floor(a?i/a:le.getMaximumHeight(r)));if((t.width!==i||t.height!==o)&&(r.width=t.width=i,r.height=t.height=o,r.style.width=i+"px",r.style.height=o+"px",le.retinaScale(t,n.devicePixelRatio),!e)){var s={width:i,height:o};Yn.notify(t,"resize",[s]),n.onResize&&n.onResize(t,s),t.stop(),t.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var e=this.options,t=e.scales||{},n=e.scale;le.each(t.xAxes,(function(e,n){e.id||(e.id=Gn(t.xAxes,"x-axis-",n))})),le.each(t.yAxes,(function(e,n){e.id||(e.id=Gn(t.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var e=this,t=e.options,n=e.scales||{},r=[],a=Object.keys(n).reduce((function(e,t){return e[t]=!1,e}),{});t.scales&&(r=r.concat((t.scales.xAxes||[]).map((function(e){return{options:e,dtype:"category",dposition:"bottom"}})),(t.scales.yAxes||[]).map((function(e){return{options:e,dtype:"linear",dposition:"left"}})))),t.scale&&r.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),le.each(r,(function(t){var r=t.options,i=r.id,o=Vn(r.type,t.dtype);Jn(r.position)!==Jn(t.dposition)&&(r.position=t.dposition),a[i]=!0;var s=null;if(i in n&&n[i].type===o)s=n[i],s.options=r,s.ctx=e.ctx,s.chart=e;else{var u=Dn.getScaleConstructor(o);if(!u)return;s=new u({id:i,type:o,options:r,ctx:e.ctx,chart:e}),n[s.id]=s}s.mergeTicksOptions(),t.isDefault&&(e.scale=s)})),le.each(a,(function(e,t){e||delete n[t]})),e.scales=n,Dn.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e,t,n=this,r=[],a=n.data.datasets;for(e=0,t=a.length;e=0;--n)r.drawDataset(t[n],e);Yn.notify(r,"afterDatasetsDraw",[e])}},drawDataset:function(e,t){var n=this,r={meta:e,index:e.index,easingValue:t};!1!==Yn.notify(n,"beforeDatasetDraw",[r])&&(e.controller.draw(t),Yn.notify(n,"afterDatasetDraw",[r]))},_drawTooltip:function(e){var t=this,n=t.tooltip,r={tooltip:n,easingValue:e};!1!==Yn.notify(t,"beforeTooltipDraw",[r])&&(n.draw(),Yn.notify(t,"afterTooltipDraw",[r]))},getElementAtEvent:function(e){return Ct.modes.single(this,e)},getElementsAtEvent:function(e){return Ct.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return Ct.modes["x-axis"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,t,n){var r=Ct.modes[t];return"function"===typeof r?r(this,e,n):[]},getDatasetAtEvent:function(e){return Ct.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(e){var t=this,n=t.data.datasets[e];n._meta||(n._meta={});var r=n._meta[t.id];return r||(r=n._meta[t.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n.order||0,index:e}),r},getVisibleDatasetCount:function(){for(var e=0,t=0,n=this.data.datasets.length;t=0;r--){var a=e[r];if(t(a))return a}},le.isNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},le.almostEquals=function(e,t,n){return Math.abs(e-t)=e},le.max=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.max(e,t)}),Number.NEGATIVE_INFINITY)},le.min=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.min(e,t)}),Number.POSITIVE_INFINITY)},le.sign=Math.sign?function(e){return Math.sign(e)}:function(e){return e=+e,0===e||isNaN(e)?e:e>0?1:-1},le.toRadians=function(e){return e*(Math.PI/180)},le.toDegrees=function(e){return e*(180/Math.PI)},le._decimalPlaces=function(e){if(le.isFinite(e)){var t=1,n=0;while(Math.round(e*t)/t!==e)t*=10,n++;return n}},le.getAngleFromPoint=function(e,t){var n=t.x-e.x,r=t.y-e.y,a=Math.sqrt(n*n+r*r),i=Math.atan2(r,n);return i<-.5*Math.PI&&(i+=2*Math.PI),{angle:i,distance:a}},le.distanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},le.aliasPixel=function(e){return e%2===0?0:.5},le._alignPixel=function(e,t,n){var r=e.currentDevicePixelRatio,a=n/2;return Math.round((t-a)*r)/r+a},le.splineCurve=function(e,t,n,r){var a=e.skip?t:e,i=t,o=n.skip?t:n,s=Math.sqrt(Math.pow(i.x-a.x,2)+Math.pow(i.y-a.y,2)),u=Math.sqrt(Math.pow(o.x-i.x,2)+Math.pow(o.y-i.y,2)),l=s/(s+u),c=u/(s+u);l=isNaN(l)?0:l,c=isNaN(c)?0:c;var d=r*l,f=r*c;return{previous:{x:i.x-d*(o.x-a.x),y:i.y-d*(o.y-a.y)},next:{x:i.x+f*(o.x-a.x),y:i.y+f*(o.y-a.y)}}},le.EPSILON=Number.EPSILON||1e-14,le.splineCurveMonotone=function(e){var t,n,r,a,i,o,s,u,l,c=(e||[]).map((function(e){return{model:e._model,deltaK:0,mK:0}})),d=c.length;for(t=0;t0?c[t-1]:null,a=t0?c[t-1]:null,a=t=e.length-1?e[0]:e[t+1]:t>=e.length-1?e[e.length-1]:e[t+1]},le.previousItem=function(e,t,n){return n?t<=0?e[e.length-1]:e[t-1]:t<=0?e[0]:e[t-1]},le.niceNum=function(e,t){var n,r=Math.floor(le.log10(e)),a=e/Math.pow(10,r);return n=t?a<1.5?1:a<3?2:a<7?5:10:a<=1?1:a<=2?2:a<=5?5:10,n*Math.pow(10,r)},le.requestAnimFrame=function(){return"undefined"===typeof window?function(e){e()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)}}(),le.getRelativePosition=function(e,t){var n,r,a=e.originalEvent||e,i=e.target||e.srcElement,o=i.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,r=s[0].clientY):(n=a.clientX,r=a.clientY);var u=parseFloat(le.getStyle(i,"padding-left")),l=parseFloat(le.getStyle(i,"padding-top")),c=parseFloat(le.getStyle(i,"padding-right")),d=parseFloat(le.getStyle(i,"padding-bottom")),f=o.right-o.left-u-c,h=o.bottom-o.top-l-d;return n=Math.round((n-o.left-u)/f*i.width/t.currentDevicePixelRatio),r=Math.round((r-o.top-l)/h*i.height/t.currentDevicePixelRatio),{x:n,y:r}},le.getConstraintWidth=function(e){return n(e,"max-width","clientWidth")},le.getConstraintHeight=function(e){return n(e,"max-height","clientHeight")},le._calculatePadding=function(e,t,n){return t=le.getStyle(e,t),t.indexOf("%")>-1?n*parseInt(t,10)/100:parseInt(t,10)},le._getParentNode=function(e){var t=e.parentNode;return t&&"[object ShadowRoot]"===t.toString()&&(t=t.host),t},le.getMaximumWidth=function(e){var t=le._getParentNode(e);if(!t)return e.clientWidth;var n=t.clientWidth,r=le._calculatePadding(t,"padding-left",n),a=le._calculatePadding(t,"padding-right",n),i=n-r-a,o=le.getConstraintWidth(e);return isNaN(o)?i:Math.min(i,o)},le.getMaximumHeight=function(e){var t=le._getParentNode(e);if(!t)return e.clientHeight;var n=t.clientHeight,r=le._calculatePadding(t,"padding-top",n),a=le._calculatePadding(t,"padding-bottom",n),i=n-r-a,o=le.getConstraintHeight(e);return isNaN(o)?i:Math.min(i,o)},le.getStyle=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,null).getPropertyValue(t)},le.retinaScale=function(e,t){var n=e.currentDevicePixelRatio=t||"undefined"!==typeof window&&window.devicePixelRatio||1;if(1!==n){var r=e.canvas,a=e.height,i=e.width;r.height=a*n,r.width=i*n,e.ctx.scale(n,n),r.style.height||r.style.width||(r.style.height=a+"px",r.style.width=i+"px")}},le.fontString=function(e,t,n){return t+" "+e+"px "+n},le.longestText=function(e,t,n,r){r=r||{};var a=r.data=r.data||{},i=r.garbageCollect=r.garbageCollect||[];r.font!==t&&(a=r.data={},i=r.garbageCollect=[],r.font=t),e.font=t;var o,s,u,l,c,d=0,f=n.length;for(o=0;on.length){for(o=0;or&&(r=i),r},le.numberOfLabelLines=function(e){var t=1;return le.each(e,(function(e){le.isArray(e)&&e.length>t&&(t=e.length)})),t},le.color=z?function(e){return e instanceof CanvasGradient&&(e=Z.global.defaultColor),z(e)}:function(e){return console.error("Color.js not found!"),e},le.getHoverColor=function(e){return e instanceof CanvasPattern||e instanceof CanvasGradient?e:le.color(e).saturate(.5).darken(.1).rgbString()}};function er(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function tr(e){this.options=e||{}}le.extend(tr.prototype,{formats:er,parse:er,format:er,add:er,diff:er,startOf:er,endOf:er,_create:function(e){return e}}),tr.override=function(e){le.extend(tr.prototype,e)};var nr=tr,rr={_date:nr},ar={formatters:{values:function(e){return le.isArray(e)?e:""+e},linear:function(e,t,n){var r=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(r)>1&&e!==Math.floor(e)&&(r=e-Math.floor(e));var a=le.log10(Math.abs(r)),i="";if(0!==e){var o=Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]));if(o<1e-4){var s=le.log10(Math.abs(e)),u=Math.floor(s)-Math.floor(a);u=Math.max(Math.min(u,20),0),i=e.toExponential(u)}else{var l=-1*Math.floor(a);l=Math.max(Math.min(l,20),0),i=e.toFixed(l)}}else i="0";return i},logarithmic:function(e,t,n){var r=e/Math.pow(10,Math.floor(le.log10(e)));return 0===e?"0":1===r||2===r||5===r||0===t||t===n.length-1?e.toExponential():""}}},ir=le.isArray,or=le.isNullOrUndef,sr=le.valueOrDefault,ur=le.valueAtIndexOrDefault;function lr(e,t){for(var n=[],r=e.length/t,a=0,i=e.length;au+l)))return o}function dr(e,t){le.each(e,(function(e){var n,r=e.gc,a=r.length/2;if(a>t){for(n=0;nl)return i;return Math.max(l,1)}function br(e){var t,n,r=[];for(t=0,n=e.length;t=f||c<=1||!s.isHorizontal()?s.labelRotation=d:(e=s._getLabelSizes(),t=e.widest.width,n=e.highest.height-e.highest.offset,r=Math.min(s.maxWidth,s.chart.width-t),a=u.offset?s.maxWidth/c:r/(c-1),t+6>a&&(a=r/(c-(u.offset?.5:1)),i=s.maxHeight-hr(u.gridLines)-l.padding-mr(u.scaleLabel),o=Math.sqrt(t*t+n*n),h=le.toDegrees(Math.min(Math.asin(Math.min((e.highest.height+6)/a,1)),Math.asin(Math.min(i/o,1))-Math.asin(n/o))),h=Math.max(d,Math.min(f,h))),s.labelRotation=h)},afterCalculateTickRotation:function(){le.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){le.callback(this.options.beforeFit,[this])},fit:function(){var e=this,t=e.minSize={width:0,height:0},n=e.chart,r=e.options,a=r.ticks,i=r.scaleLabel,o=r.gridLines,s=e._isVisible(),u="bottom"===r.position,l=e.isHorizontal();if(l?t.width=e.maxWidth:s&&(t.width=hr(o)+mr(i)),l?s&&(t.height=hr(o)+mr(i)):t.height=e.maxHeight,a.display&&s){var c=_r(a),d=e._getLabelSizes(),f=d.first,h=d.last,m=d.widest,p=d.highest,_=.4*c.minor.lineHeight,y=a.padding;if(l){var g=0!==e.labelRotation,v=le.toRadians(e.labelRotation),b=Math.cos(v),M=Math.sin(v),w=M*m.width+b*(p.height-(g?p.offset:0))+(g?0:_);t.height=Math.min(e.maxHeight,t.height+w+y);var L,k,x=e.getPixelForTick(0)-e.left,Y=e.right-e.getPixelForTick(e.getTicks().length-1);g?(L=u?b*f.width+M*f.offset:M*(f.height-f.offset),k=u?M*(h.height-h.offset):b*h.width+M*h.offset):(L=f.width/2,k=h.width/2),e.paddingLeft=Math.max((L-x)*e.width/(e.width-x),0)+3,e.paddingRight=Math.max((k-Y)*e.width/(e.width-Y),0)+3}else{var D=a.mirror?0:m.width+y+_;t.width=Math.min(e.maxWidth,t.width+D),e.paddingTop=f.height/2,e.paddingBottom=h.height/2}}e.handleMargins(),l?(e.width=e._length=n.width-e.margins.left-e.margins.right,e.height=t.height):(e.width=t.width,e.height=e._length=n.height-e.margins.top-e.margins.bottom)},handleMargins:function(){var e=this;e.margins&&(e.margins.left=Math.max(e.paddingLeft,e.margins.left),e.margins.top=Math.max(e.paddingTop,e.margins.top),e.margins.right=Math.max(e.paddingRight,e.margins.right),e.margins.bottom=Math.max(e.paddingBottom,e.margins.bottom))},afterFit:function(){le.callback(this.options.afterFit,[this])},isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(e){if(or(e))return NaN;if(("number"===typeof e||e instanceof Number)&&!isFinite(e))return NaN;if(e)if(this.isHorizontal()){if(void 0!==e.x)return this.getRightValue(e.x)}else if(void 0!==e.y)return this.getRightValue(e.y);return e},_convertTicksToLabels:function(e){var t,n,r,a=this;for(a.ticks=e.map((function(e){return e.value})),a.beforeTickToLabelConversion(),t=a.convertTicksToLabels(e)||a.ticks,a.afterTickToLabelConversion(),n=0,r=e.length;nr-1?null:t.getPixelForDecimal(e*a+(n?a/2:0))},getPixelForDecimal:function(e){var t=this;return t._reversePixels&&(e=1-e),t._startPixel+e*t._length},getDecimalForPixel:function(e){var t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var e=this,t=e.min,n=e.max;return e.beginAtZero?0:t<0&&n<0?n:t>0&&n>0?t:0},_autoSkip:function(e){var t,n,r,a,i=this,o=i.options.ticks,s=i._length,u=o.maxTicksLimit||s/i._tickSize()+1,l=o.major.enabled?br(e):[],c=l.length,d=l[0],f=l[c-1];if(c>u)return Mr(e,l,c/u),yr(e);if(r=vr(l,e,s,u),c>0){for(t=0,n=c-1;t1?(f-d)/(c-1):null,wr(e,r,le.isNullOrUndef(a)?0:d-a,d),wr(e,r,f,le.isNullOrUndef(a)?e.length:f+a),yr(e)}return wr(e,r),yr(e)},_tickSize:function(){var e=this,t=e.options.ticks,n=le.toRadians(e.labelRotation),r=Math.abs(Math.cos(n)),a=Math.abs(Math.sin(n)),i=e._getLabelSizes(),o=t.autoSkipPadding||0,s=i?i.widest.width+o:0,u=i?i.highest.height+o:0;return e.isHorizontal()?u*r>s*a?s/r:u/a:u*a=0&&(o=e)),void 0!==i&&(e=n.indexOf(i),e>=0&&(s=e)),t.minIndex=o,t.maxIndex=s,t.min=n[o],t.max=n[s]},buildTicks:function(){var e=this,t=e._getLabels(),n=e.minIndex,r=e.maxIndex;e.ticks=0===n&&r===t.length-1?t:t.slice(n,r+1)},getLabelForIndex:function(e,t){var n=this,r=n.chart;return r.getDatasetMeta(t).controller._getValueScaleId()===n.id?n.getRightValue(r.data.datasets[t].data[e]):n._getLabels()[e]},_configure:function(){var e=this,t=e.options.offset,n=e.ticks;kr.prototype._configure.call(e),e.isHorizontal()||(e._reversePixels=!e._reversePixels),n&&(e._startValue=e.minIndex-(t?.5:0),e._valueRange=Math.max(n.length-(t?0:1),1))},getPixelForValue:function(e,t,n){var r,a,i,o=this;return xr(t)||xr(n)||(e=o.chart.data.datasets[n].data[t]),xr(e)||(r=o.isHorizontal()?e.x:e.y),(void 0!==r||void 0!==e&&isNaN(t))&&(a=o._getLabels(),e=le.valueOrDefault(r,e),i=a.indexOf(e),t=-1!==i?i:t,isNaN(t)&&(t=e)),o.getPixelForDecimal((t-o._startValue)/o._valueRange)},getPixelForTick:function(e){var t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e],e+this.minIndex)},getValueForPixel:function(e){var t=this,n=Math.round(t._startValue+t.getDecimalForPixel(e)*t._valueRange);return Math.min(Math.max(n,0),t.ticks.length-1)},getBasePixel:function(){return this.bottom}}),Sr=Yr;Dr._defaults=Sr;var Tr=le.noop,Or=le.isNullOrUndef;function Ar(e,t){var n,r,a,i,o=[],s=1e-14,u=e.stepSize,l=u||1,c=e.maxTicks-1,d=e.min,f=e.max,h=e.precision,m=t.min,p=t.max,_=le.niceNum((p-m)/c/l)*l;if(_c&&(_=le.niceNum(i*_/c/l)*l),u||Or(h)?n=Math.pow(10,le._decimalPlaces(_)):(n=Math.pow(10,h),_=Math.ceil(_*n)/n),r=Math.floor(m/_)*_,a=Math.ceil(p/_)*_,u&&(!Or(d)&&le.almostWhole(d/_,_/1e3)&&(r=d),!Or(f)&&le.almostWhole(f/_,_/1e3)&&(a=f)),i=(a-r)/_,i=le.almostEquals(i,Math.round(i),_/1e3)?Math.round(i):Math.ceil(i),r=Math.round(r*n)/n,a=Math.round(a*n)/n,o.push(Or(d)?r:d);for(var y=1;y0&&a>0&&(e.min=0)}var i=void 0!==n.min||void 0!==n.suggestedMin,o=void 0!==n.max||void 0!==n.suggestedMax;void 0!==n.min?e.min=n.min:void 0!==n.suggestedMin&&(null===e.min?e.min=n.suggestedMin:e.min=Math.min(e.min,n.suggestedMin)),void 0!==n.max?e.max=n.max:void 0!==n.suggestedMax&&(null===e.max?e.max=n.suggestedMax:e.max=Math.max(e.max,n.suggestedMax)),i!==o&&e.min>=e.max&&(i?e.max=e.min+1:e.min=e.max-1),e.min===e.max&&(e.max++,n.beginAtZero||e.min--)},getTickLimit:function(){var e,t=this,n=t.options.ticks,r=n.stepSize,a=n.maxTicksLimit;return r?e=Math.ceil(t.max/r)-Math.floor(t.min/r)+1:(e=t._computeTickLimit(),a=a||11),a&&(e=Math.min(a,e)),e},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:Tr,buildTicks:function(){var e=this,t=e.options,n=t.ticks,r=e.getTickLimit();r=Math.max(2,r);var a={maxTicks:r,min:n.min,max:n.max,precision:n.precision,stepSize:le.valueOrDefault(n.fixedStepSize,n.stepSize)},i=e.ticks=Ar(a,e);e.handleDirectionalChanges(),e.max=le.max(i),e.min=le.min(i),n.reverse?(i.reverse(),e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),kr.prototype.convertTicksToLabels.call(e)},_configure:function(){var e,t=this,n=t.getTicks(),r=t.min,a=t.max;kr.prototype._configure.call(t),t.options.offset&&n.length&&(e=(a-r)/Math.max(n.length-1,1)/2,r-=e,a+=e),t._startValue=r,t._endValue=a,t._valueRange=a-r}}),jr={position:"left",ticks:{callback:ar.formatters.linear}},Hr=0,Cr=1;function Er(e,t,n){var r=[n.type,void 0===t&&void 0===n.stack?n.index:"",n.stack].join(".");return void 0===e[r]&&(e[r]={pos:[],neg:[]}),e[r]}function zr(e,t,n,r){var a,i,o=e.options,s=o.stacked,u=Er(t,s,n),l=u.pos,c=u.neg,d=r.length;for(a=0;at.length-1?null:this.getPixelForValue(t[e])}}),Nr=jr;Ir._defaults=Nr;var Wr=le.valueOrDefault,Rr=le.math.log10;function Vr(e,t){var n,r,a=[],i=Wr(e.min,Math.pow(10,Math.floor(Rr(t.min)))),o=Math.floor(Rr(t.max)),s=Math.ceil(t.max/Math.pow(10,o));0===i?(n=Math.floor(Rr(t.minNotZero)),r=Math.floor(t.minNotZero/Math.pow(10,n)),a.push(i),i=r*Math.pow(10,n)):(n=Math.floor(Rr(i)),r=Math.floor(i/Math.pow(10,n)));var u=n<0?Math.pow(10,Math.abs(n)):1;do{a.push(i),++r,10===r&&(r=1,++n,u=n>=0?1:u),i=Math.round(r*Math.pow(10,n)*u)/u}while(n=0?e:t}var Br=kr.extend({determineDataLimits:function(){var e,t,n,r,a,i,o=this,s=o.options,u=o.chart,l=u.data.datasets,c=o.isHorizontal();function d(e){return c?e.xAxisID===o.id:e.yAxisID===o.id}o.min=Number.POSITIVE_INFINITY,o.max=Number.NEGATIVE_INFINITY,o.minNotZero=Number.POSITIVE_INFINITY;var f=s.stacked;if(void 0===f)for(e=0;e0){var t=le.min(e),n=le.max(e);o.min=Math.min(o.min,t),o.max=Math.max(o.max,n)}}))}else for(e=0;e0?e.minNotZero=e.min:e.max<1?e.minNotZero=Math.pow(10,Math.floor(Rr(e.max))):e.minNotZero=n)},buildTicks:function(){var e=this,t=e.options.ticks,n=!e.isHorizontal(),r={min:$r(t.min),max:$r(t.max)},a=e.ticks=Vr(r,e);e.max=le.max(a),e.min=le.min(a),t.reverse?(n=!n,e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max),n&&a.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),kr.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForTick:function(e){var t=this.tickValues;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])},_getFirstTickValue:function(e){var t=Math.floor(Rr(e)),n=Math.floor(e/Math.pow(10,t));return n*Math.pow(10,t)},_configure:function(){var e=this,t=e.min,n=0;kr.prototype._configure.call(e),0===t&&(t=e._getFirstTickValue(e.minNotZero),n=Wr(e.options.ticks.fontSize,Z.global.defaultFontSize)/e._length),e._startValue=Rr(t),e._valueOffset=n,e._valueRange=(Rr(e.max)-Rr(t))/(1-n)},getPixelForValue:function(e){var t=this,n=0;return e=+t.getRightValue(e),e>t.min&&e>0&&(n=(Rr(e)-t._startValue)/t._valueRange+t._valueOffset),t.getPixelForDecimal(n)},getValueForPixel:function(e){var t=this,n=t.getDecimalForPixel(e);return 0===n&&0===t.min?0:Math.pow(10,t._startValue+(n-t._valueOffset)*t._valueRange)}}),qr=Ur;Br._defaults=qr;var Gr=le.valueOrDefault,Jr=le.valueAtIndexOrDefault,Qr=le.options.resolve,Zr={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:ar.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(e){return e}}};function Kr(e){var t=e.ticks;return t.display&&e.display?Gr(t.fontSize,Z.global.defaultFontSize)+2*t.backdropPaddingY:0}function Xr(e,t,n){return le.isArray(n)?{w:le.longestText(e,e.font,n),h:n.length*t}:{w:e.measureText(n).width,h:t}}function ea(e,t,n,r,a){return e===r||e===a?{start:t-n/2,end:t+n/2}:ea?{start:t-n,end:t}:{start:t,end:t+n}}function ta(e){var t,n,r,a=le.options._parseFont(e.options.pointLabels),i={l:0,r:e.width,t:0,b:e.height-e.paddingTop},o={};e.ctx.font=a.string,e._pointLabelSizes=[];var s=e.chart.data.labels.length;for(t=0;ti.r&&(i.r=c.end,o.r=u),d.starti.b&&(i.b=d.end,o.b=u)}e.setReductions(e.drawingArea,i,o)}function na(e){return 0===e||180===e?"center":e<180?"left":"right"}function ra(e,t,n,r){var a,i,o=n.y+r/2;if(le.isArray(t))for(a=0,i=t.length;a270||e<90)&&(n.y-=t.h)}function ia(e){var t=e.ctx,n=e.options,r=n.pointLabels,a=Kr(n),i=e.getDistanceFromCenterForValue(n.ticks.reverse?e.min:e.max),o=le.options._parseFont(r);t.save(),t.font=o.string,t.textBaseline="middle";for(var s=e.chart.data.labels.length-1;s>=0;s--){var u=0===s?a/2:0,l=e.getPointPosition(s,i+u+5),c=Jr(r.fontColor,s,Z.global.defaultFontColor);t.fillStyle=c;var d=e.getIndexAngle(s),f=le.toDegrees(d);t.textAlign=na(f),aa(f,e._pointLabelSizes[s],l),ra(t,e.pointLabels[s],l,o.lineHeight)}t.restore()}function oa(e,t,n,r){var a,i=e.ctx,o=t.circular,s=e.chart.data.labels.length,u=Jr(t.color,r-1),l=Jr(t.lineWidth,r-1);if((o||s)&&u&&l){if(i.save(),i.strokeStyle=u,i.lineWidth=l,i.setLineDash&&(i.setLineDash(t.borderDash||[]),i.lineDashOffset=t.borderDashOffset||0),i.beginPath(),o)i.arc(e.xCenter,e.yCenter,n,0,2*Math.PI);else{a=e.getPointPosition(0,n),i.moveTo(a.x,a.y);for(var c=1;c0&&r>0?n:0)},_drawGrid:function(){var e,t,n,r=this,a=r.ctx,i=r.options,o=i.gridLines,s=i.angleLines,u=Gr(s.lineWidth,o.lineWidth),l=Gr(s.color,o.color);if(i.pointLabels.display&&ia(r),o.display&&le.each(r.ticks,(function(e,n){0!==n&&(t=r.getDistanceFromCenterForValue(r.ticksAsNumbers[n]),oa(r,o,t,n))})),s.display&&u&&l){for(a.save(),a.lineWidth=u,a.strokeStyle=l,a.setLineDash&&(a.setLineDash(Qr([s.borderDash,o.borderDash,[]])),a.lineDashOffset=Qr([s.borderDashOffset,o.borderDashOffset,0])),e=r.chart.data.labels.length-1;e>=0;e--)t=r.getDistanceFromCenterForValue(i.ticks.reverse?r.min:r.max),n=r.getPointPosition(e,t),a.beginPath(),a.moveTo(r.xCenter,r.yCenter),a.lineTo(n.x,n.y),a.stroke();a.restore()}},_drawLabels:function(){var e=this,t=e.ctx,n=e.options,r=n.ticks;if(r.display){var a,i,o=e.getIndexAngle(0),s=le.options._parseFont(r),u=Gr(r.fontColor,Z.global.defaultFontColor);t.save(),t.font=s.string,t.translate(e.xCenter,e.yCenter),t.rotate(o),t.textAlign="center",t.textBaseline="middle",le.each(e.ticks,(function(n,o){(0!==o||r.reverse)&&(a=e.getDistanceFromCenterForValue(e.ticksAsNumbers[o]),r.showLabelBackdrop&&(i=t.measureText(n).width,t.fillStyle=r.backdropColor,t.fillRect(-i/2-r.backdropPaddingX,-a-s.size/2-r.backdropPaddingY,i+2*r.backdropPaddingX,s.size+2*r.backdropPaddingY)),t.fillStyle=u,t.fillText(n,0,-a))})),t.restore()}},_drawTitle:le.noop}),la=Zr;ua._defaults=la;var ca=le._deprecated,da=le.options.resolve,fa=le.valueOrDefault,ha=Number.MIN_SAFE_INTEGER||-9007199254740991,ma=Number.MAX_SAFE_INTEGER||9007199254740991,pa={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},_a=Object.keys(pa);function ya(e,t){return e-t}function ga(e){var t,n,r,a={},i=[];for(t=0,n=e.length;tt&&s=0&&o<=s){if(r=o+s>>1,a=e[r-1]||null,i=e[r],!a)return{lo:null,hi:i};if(i[t]n))return{lo:a,hi:i};s=r-1}}return{lo:i,hi:null}}function La(e,t,n,r){var a=wa(e,t,n),i=a.lo?a.hi?a.lo:e[e.length-2]:e[0],o=a.lo?a.hi?a.hi:e[e.length-1]:e[1],s=o[t]-i[t],u=s?(n-i[t])/s:0,l=(o[r]-i[r])*u;return i[r]+l}function ka(e,t){var n=e._adapter,r=e.options.time,a=r.parser,i=a||r.format,o=t;return"function"===typeof a&&(o=a(o)),le.isFinite(o)||(o="string"===typeof i?n.parse(o,i):n.parse(o)),null!==o?+o:(a||"function"!==typeof i||(o=i(t),le.isFinite(o)||(o=n.parse(o))),o)}function xa(e,t){if(le.isNullOrUndef(t))return null;var n=e.options.time,r=ka(e,e.getRightValue(t));return null===r?r:(n.round&&(r=+e._adapter.startOf(r,n.round)),r)}function Ya(e,t,n,r){var a,i,o,s=_a.length;for(a=_a.indexOf(e);a=_a.indexOf(n);i--)if(o=_a[i],pa[o].common&&e._adapter.diff(a,r,o)>=t-1)return o;return _a[n?_a.indexOf(n):0]}function Sa(e){for(var t=_a.indexOf(e)+1,n=_a.length;t1e5*l)throw t+" and "+n+" are too far apart with stepSize of "+l+" "+u;for(a=d;a=0&&(t[i].major=!0);return t}function Pa(e,t,n){var r,a,i=[],o={},s=t.length;for(r=0;r1?ga(m).sort(ya):m.sort(ya),f=Math.min(f,m[0]),h=Math.max(h,m[m.length-1])),f=xa(s,va(c))||f,h=xa(s,ba(c))||h,f=f===ma?+l.startOf(Date.now(),d):f,h=h===ha?+l.endOf(Date.now(),d)+1:h,s.min=Math.min(f,h),s.max=Math.max(f+1,h),s._table=[],s._timestamps={data:m,datasets:p,labels:_}},buildTicks:function(){var e,t,n,r=this,a=r.min,i=r.max,o=r.options,s=o.ticks,u=o.time,l=r._timestamps,c=[],d=r.getLabelCapacity(a),f=s.source,h=o.distribution;for(l="data"===f||"auto"===f&&"series"===h?l.data:"labels"===f?l.labels:Ta(r,a,i,d),"ticks"===o.bounds&&l.length&&(a=l[0],i=l[l.length-1]),a=xa(r,va(o))||a,i=xa(r,ba(o))||i,e=0,t=l.length;e=a&&n<=i&&c.push(n);return r.min=a,r.max=i,r._unit=u.unit||(s.autoSkip?Ya(u.minUnit,r.min,r.max,d):Da(r,c.length,u.minUnit,r.min,r.max)),r._majorUnit=s.major.enabled&&"year"!==r._unit?Sa(r._unit):void 0,r._table=Ma(r._timestamps.data,a,i,h),r._offsets=Oa(r._table,c,a,i,o),s.reverse&&c.reverse(),Pa(r,c,r._majorUnit)},getLabelForIndex:function(e,t){var n=this,r=n._adapter,a=n.chart.data,i=n.options.time,o=a.labels&&e=0&&e0?s:1}}),Ca=ja;Ha._defaults=Ca;var Ea={category:Dr,linear:Ir,logarithmic:Br,radialLinear:ua,time:Ha},za={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};rr._date.override("function"===typeof e?{_id:"moment",formats:function(){return za},parse:function(t,n){return"string"===typeof t&&"string"===typeof n?t=e(t,n):t instanceof e||(t=e(t)),t.isValid()?t.valueOf():null},format:function(t,n){return e(t).format(n)},add:function(t,n,r){return e(t).add(n,r).valueOf()},diff:function(t,n,r){return e(t).diff(e(n),r)},startOf:function(t,n,r){return t=e(t),"isoWeek"===n?t.isoWeekday(r).valueOf():t.startOf(n).valueOf()},endOf:function(t,n){return e(t).endOf(n).valueOf()},_create:function(t){return e(t)}}:{}),Z._set("global",{plugins:{filler:{propagate:!0}}});var Fa={dataset:function(e){var t=e.fill,n=e.chart,r=n.getDatasetMeta(t),a=r&&n.isDatasetVisible(t),i=a&&r.dataset._children||[],o=i.length||0;return o?function(e,t){return t=n)&&r;switch(i){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return i;default:return!1}}function Na(e){var t,n=e.el._model||{},r=e.el._scale||{},a=e.fill,i=null;if(isFinite(a))return null;if("start"===a?i=void 0===n.scaleBottom?r.bottom:n.scaleBottom:"end"===a?i=void 0===n.scaleTop?r.top:n.scaleTop:void 0!==n.scaleZero?i=n.scaleZero:r.getBasePixel&&(i=r.getBasePixel()),void 0!==i&&null!==i){if(void 0!==i.x&&void 0!==i.y)return i;if(le.isFinite(i))return t=r.isHorizontal(),{x:t?i:null,y:t?null:i}}return null}function Wa(e){var t,n,r,a,i,o=e.el._scale,s=o.options,u=o.chart.data.labels.length,l=e.fill,c=[];if(!u)return null;for(t=s.ticks.reverse?o.max:o.min,n=s.ticks.reverse?o.min:o.max,r=o.getPointPositionForValue(0,t),a=0;a0;--i)le.canvas.lineTo(e,n[i],n[i-1],!0);else for(o=n[0].cx,s=n[0].cy,u=Math.sqrt(Math.pow(n[0].x-o,2)+Math.pow(n[0].y-s,2)),i=a-1;i>0;--i)e.arc(o,s,u,n[i].angle,n[i-1].angle,!0)}}function qa(e,t,n,r,a,i){var o,s,u,l,c,d,f,h,m=t.length,p=r.spanGaps,_=[],y=[],g=0,v=0;for(e.beginPath(),o=0,s=m;o=0;--n)t=u[n].$filler,t&&t.visible&&(r=t.el,a=r._view,i=r._children||[],o=t.mapper,s=a.backgroundColor||Z.global.defaultColor,o&&s&&i.length&&(le.canvas.clipArea(l,e.chartArea),qa(l,i,o,a,s,r._loop),le.canvas.unclipArea(l)))}},Ja=le.rtl.getRtlAdapter,Qa=le.noop,Za=le.valueOrDefault;function Ka(e,t){return e.usePointStyle&&e.boxWidth>t?t:e.boxWidth}Z._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(e,t){var n=t.datasetIndex,r=this.chart,a=r.getDatasetMeta(n);a.hidden=null===a.hidden?!r.data.datasets[n].hidden:null,r.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(e){var t=e.data.datasets,n=e.options.legend||{},r=n.labels&&n.labels.usePointStyle;return e._getSortedDatasetMetas().map((function(n){var a=n.controller.getStyle(r?0:void 0);return{text:t[n.index].label,fillStyle:a.backgroundColor,hidden:!e.isDatasetVisible(n.index),lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:a.borderWidth,strokeStyle:a.borderColor,pointStyle:a.pointStyle,rotation:a.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(e){var t,n,r,a,i=document.createElement("ul"),o=e.data.datasets;for(i.setAttribute("class",e.id+"-legend"),t=0,n=o.length;tu.width)&&(d+=o+n.padding,c[c.length-(t>0?0:1)]=0),s[t]={left:0,top:0,width:i,height:o},c[c.length-1]+=i+n.padding})),u.height+=d}else{var f=n.padding,h=e.columnWidths=[],m=e.columnHeights=[],p=n.padding,_=0,y=0;le.each(e.legendItems,(function(e,t){var r=Ka(n,o),i=r+o/2+a.measureText(e.text).width;t>0&&y+o+2*f>u.height&&(p+=_+n.padding,h.push(_),m.push(y),_=0,y=0),_=Math.max(_,i),y+=o+f,s[t]={left:0,top:0,width:i,height:o}})),p+=_,h.push(_),m.push(y),u.width+=p}e.width=u.width,e.height=u.height}else e.width=u.width=e.height=u.height=0},afterFit:Qa,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var e=this,t=e.options,n=t.labels,r=Z.global,a=r.defaultColor,i=r.elements.line,o=e.height,s=e.columnHeights,u=e.width,l=e.lineWidths;if(t.display){var c,d=Ja(t.rtl,e.left,e.minSize.width),f=e.ctx,h=Za(n.fontColor,r.defaultFontColor),m=le.options._parseFont(n),p=m.size;f.textAlign=d.textAlign("left"),f.textBaseline="middle",f.lineWidth=.5,f.strokeStyle=h,f.fillStyle=h,f.font=m.string;var _=Ka(n,p),y=e.legendHitBoxes,g=function(e,t,r){if(!(isNaN(_)||_<=0)){f.save();var o=Za(r.lineWidth,i.borderWidth);if(f.fillStyle=Za(r.fillStyle,a),f.lineCap=Za(r.lineCap,i.borderCapStyle),f.lineDashOffset=Za(r.lineDashOffset,i.borderDashOffset),f.lineJoin=Za(r.lineJoin,i.borderJoinStyle),f.lineWidth=o,f.strokeStyle=Za(r.strokeStyle,a),f.setLineDash&&f.setLineDash(Za(r.lineDash,i.borderDash)),n&&n.usePointStyle){var s=_*Math.SQRT2/2,u=d.xPlus(e,_/2),l=t+p/2;le.canvas.drawPoint(f,r.pointStyle,s,u,l,r.rotation)}else f.fillRect(d.leftForLtr(e,_),t,_,p),0!==o&&f.strokeRect(d.leftForLtr(e,_),t,_,p);f.restore()}},v=function(e,t,n,r){var a=p/2,i=d.xPlus(e,_+a),o=t+a;f.fillText(n.text,i,o),n.hidden&&(f.beginPath(),f.lineWidth=2,f.moveTo(i,o),f.lineTo(d.xPlus(i,r),o),f.stroke())},b=function(e,r){switch(t.align){case"start":return n.padding;case"end":return e-r;default:return(e-r+n.padding)/2}},M=e.isHorizontal();c=M?{x:e.left+b(u,l[0]),y:e.top+n.padding,line:0}:{x:e.left+n.padding,y:e.top+b(o,s[0]),line:0},le.rtl.overrideTextDirection(e.ctx,t.textDirection);var w=p+n.padding;le.each(e.legendItems,(function(t,r){var a=f.measureText(t.text).width,i=_+p/2+a,h=c.x,m=c.y;d.setWidth(e.minSize.width),M?r>0&&h+i+n.padding>e.left+e.minSize.width&&(m=c.y+=w,c.line++,h=c.x=e.left+b(u,l[c.line])):r>0&&m+w>e.top+e.minSize.height&&(h=c.x=h+e.columnWidths[c.line]+n.padding,c.line++,m=c.y=e.top+b(o,s[c.line]));var L=d.x(h);g(L,m,t),y[r].left=d.leftForLtr(L,y[r].width),y[r].top=m,v(L,m,t,a),M?c.x+=i+n.padding:c.y+=w})),le.rtl.restoreTextDirection(e.ctx,t.textDirection)}},_getLegendItemAt:function(e,t){var n,r,a,i=this;if(e>=i.left&&e<=i.right&&t>=i.top&&t<=i.bottom)for(a=i.legendHitBoxes,n=0;n=r.left&&e<=r.left+r.width&&t>=r.top&&t<=r.top+r.height)return i.legendItems[n];return null},handleEvent:function(e){var t,n=this,r=n.options,a="mouseup"===e.type?"click":e.type;if("mousemove"===a){if(!r.onHover&&!r.onLeave)return}else{if("click"!==a)return;if(!r.onClick)return}t=n._getLegendItemAt(e.x,e.y),"click"===a?t&&r.onClick&&r.onClick.call(n,e.native,t):(r.onLeave&&t!==n._hoveredItem&&(n._hoveredItem&&r.onLeave.call(n,e.native,n._hoveredItem),n._hoveredItem=t),r.onHover&&t&&r.onHover.call(n,e.native,t))}});function ei(e,t){var n=new Xa({ctx:e.ctx,options:t,chart:e});Gt.configure(e,n,t),Gt.addBox(e,n),e.legend=n}var ti={id:"legend",_element:Xa,beforeInit:function(e){var t=e.options.legend;t&&ei(e,t)},beforeUpdate:function(e){var t=e.options.legend,n=e.legend;t?(le.mergeIf(t,Z.global.legend),n?(Gt.configure(e,n,t),n.options=t):ei(e,t)):n&&(Gt.removeBox(e,n),delete e.legend)},afterEvent:function(e,t){var n=e.legend;n&&n.handleEvent(t)}},ni=le.noop;Z._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var ri=ye.extend({initialize:function(e){var t=this;le.extend(t,e),t.legendHitBoxes=[]},beforeUpdate:ni,update:function(e,t,n){var r=this;return r.beforeUpdate(),r.maxWidth=e,r.maxHeight=t,r.margins=n,r.beforeSetDimensions(),r.setDimensions(),r.afterSetDimensions(),r.beforeBuildLabels(),r.buildLabels(),r.afterBuildLabels(),r.beforeFit(),r.fit(),r.afterFit(),r.afterUpdate(),r.minSize},afterUpdate:ni,beforeSetDimensions:ni,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:ni,beforeBuildLabels:ni,buildLabels:ni,afterBuildLabels:ni,beforeFit:ni,fit:function(){var e,t,n=this,r=n.options,a=n.minSize={},i=n.isHorizontal();r.display?(e=le.isArray(r.text)?r.text.length:1,t=e*le.options._parseFont(r).lineHeight+2*r.padding,n.width=a.width=i?n.maxWidth:t,n.height=a.height=i?t:n.maxHeight):n.width=a.width=n.height=a.height=0},afterFit:ni,isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function(){var e=this,t=e.ctx,n=e.options;if(n.display){var r,a,i,o=le.options._parseFont(n),s=o.lineHeight,u=s/2+n.padding,l=0,c=e.top,d=e.left,f=e.bottom,h=e.right;t.fillStyle=le.valueOrDefault(n.fontColor,Z.global.defaultFontColor),t.font=o.string,e.isHorizontal()?(a=d+(h-d)/2,i=c+u,r=h-d):(a="left"===n.position?d+u:h-u,i=c+(f-c)/2,r=f-c,l=Math.PI*("left"===n.position?-.5:.5)),t.save(),t.translate(a,i),t.rotate(l),t.textAlign="center",t.textBaseline="middle";var m=n.text;if(le.isArray(m))for(var p=0,_=0;_1?arguments[1]:void 0,n),u=o>2?arguments[2]:void 0,l=void 0===u?n:a(u,n);while(l>s)t[s++]=e;return t}},"36c3":function(e,t,n){var r=n("335c"),a=n("25eb");e.exports=function(e){return r(a(e))}},3702:function(e,t,n){var r=n("481b"),a=n("5168")("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[a]===e)}},3729:function(e,t,n){var r=n("9e69"),a=n("00fd"),i=n("29f3"),o="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;function l(e){return null==e?void 0===e?s:o:u&&u in Object(e)?a(e):i(e)}e.exports=l},3846:function(e,t,n){n("9e1e")&&"g"!=/./g.flags&&n("86cc").f(RegExp.prototype,"flags",{configurable:!0,get:n("0bfb")})},"386d":function(e,t,n){"use strict";var r=n("cb7c"),a=n("83a1"),i=n("5f1b");n("214f")("search",1,(function(e,t,n,o){return[function(n){var r=e(this),a=void 0==n?void 0:n[t];return void 0!==a?a.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=o(n,e,this);if(t.done)return t.value;var s=r(e),u=String(this),l=s.lastIndex;a(l,0)||(s.lastIndex=0);var c=i(s,u);return a(s.lastIndex,l)||(s.lastIndex=l),null===c?-1:c.index}]}))},3886:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}});return t}))},"38fd":function(e,t,n){var r=n("69a8"),a=n("4bf8"),i=n("613b")("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=a(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},"39a6":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}});return t}))},"39bd":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(e,t,n,r){var a="";if(t)switch(n){case"s":a="काही सेकंद";break;case"ss":a="%d सेकंद";break;case"m":a="एक मिनिट";break;case"mm":a="%d मिनिटे";break;case"h":a="एक तास";break;case"hh":a="%d तास";break;case"d":a="एक दिवस";break;case"dd":a="%d दिवस";break;case"M":a="एक महिना";break;case"MM":a="%d महिने";break;case"y":a="एक वर्ष";break;case"yy":a="%d वर्षे";break}else switch(n){case"s":a="काही सेकंदां";break;case"ss":a="%d सेकंदां";break;case"m":a="एका मिनिटा";break;case"mm":a="%d मिनिटां";break;case"h":a="एका तासा";break;case"hh":a="%d तासां";break;case"d":a="एका दिवसा";break;case"dd":a="%d दिवसां";break;case"M":a="एका महिन्या";break;case"MM":a="%d महिन्यां";break;case"y":a="एका वर्षा";break;case"yy":a="%d वर्षां";break}return a.replace(/%d/i,e)}var a=e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात्री"===t?e<4?e:e+12:"सकाळी"===t?e:"दुपारी"===t?e>=10?e:e+12:"सायंकाळी"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात्री":e<10?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}});return a}))},"3a38":function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},"3a39":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},r=e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}});return r}))},"3b1b":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"},n=e.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}});return n}))},"3b2b":function(e,t,n){var r=n("7726"),a=n("5dbc"),i=n("86cc").f,o=n("9093").f,s=n("aae3"),u=n("0bfb"),l=r.RegExp,c=l,d=l.prototype,f=/a/g,h=/a/g,m=new l(f)!==f;if(n("9e1e")&&(!m||n("79e5")((function(){return h[n("2b4c")("match")]=!1,l(f)!=f||l(h)==h||"/a/i"!=l(f,"i")})))){l=function(e,t){var n=this instanceof l,r=s(e),i=void 0===t;return!n&&r&&e.constructor===l&&i?e:a(m?new c(r&&!i?e.source:e,t):c((r=e instanceof l)?e.source:e,r&&i?u.call(e):t),n?this:d,l)};for(var p=function(e){e in l||i(l,e,{configurable:!0,get:function(){return c[e]},set:function(t){c[e]=t}})},_=o(c),y=0;_.length>y;)p(_[y++]);d.constructor=l,l.prototype=d,n("2aba")(r,"RegExp",l)}n("7a56")("RegExp")},"3b8d":function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n("795b"),a=n.n(r);function i(e,t,n,r,i,o,s){try{var u=e[o](s),l=u.value}catch(c){return void n(c)}u.done?t(l):a.a.resolve(l).then(r,i)}function o(e){return function(){var t=this,n=arguments;return new a.a((function(r,a){var o=e.apply(t,n);function s(e){i(o,r,a,s,u,"next",e)}function u(e){i(o,r,a,s,u,"throw",e)}s(void 0)}))}}},"3c0d":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),r=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],a=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function i(e){return e>1&&e<5&&1!==~~(e/10)}function o(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?a+(i(e)?"sekundy":"sekund"):a+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?a+(i(e)?"minuty":"minut"):a+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?a+(i(e)?"hodiny":"hodin"):a+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?a+(i(e)?"dny":"dní"):a+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?a+(i(e)?"měsíce":"měsíců"):a+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?a+(i(e)?"roky":"let"):a+"lety"}}var s=e.defineLocale("cs",{months:t,monthsShort:n,monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:o,ss:o,m:o,mm:o,h:o,hh:o,d:o,dd:o,M:o,MM:o,y:o,yy:o},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s}))},"3c11":function(e,t,n){"use strict";var r=n("63b6"),a=n("584a"),i=n("e53d"),o=n("f201"),s=n("cd78");r(r.P+r.R,"Promise",{finally:function(e){var t=o(this,a.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then((function(){return n}))}:e,n?function(n){return s(t,e()).then((function(){throw n}))}:e)}})},"3cb4":function(e,t,n){(function(t,n){e.exports=n()})("undefined"!==typeof self&&self,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fb15")}({"0273":function(e,t,n){var r=n("c1b2"),a=n("4180"),i=n("2c6c");e.exports=r?function(e,t,n){return a.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},"057f":function(e,t,n){var r=n("fc6a"),a=n("241c").f,i={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return a(e)}catch(t){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==i.call(e)?s(e):a(r(e))}},"06cf":function(e,t,n){var r=n("83ab"),a=n("d1e7"),i=n("5c6c"),o=n("fc6a"),s=n("c04e"),u=n("5135"),l=n("0cfb"),c=Object.getOwnPropertyDescriptor;t.f=r?c:function(e,t){if(e=o(e),t=s(t,!0),l)try{return c(e,t)}catch(n){}if(u(e,t))return i(!a.f.call(e,t),e[t])}},"06fa":function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},"0cfb":function(e,t,n){var r=n("83ab"),a=n("d039"),i=n("cc12");e.exports=!r&&!a((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},"159b":function(e,t,n){var r=n("da84"),a=n("fdbc"),i=n("17c2"),o=n("9112");for(var s in a){var u=r[s],l=u&&u.prototype;if(l&&l.forEach!==i)try{o(l,"forEach",i)}catch(c){l.forEach=i}}},"17c2":function(e,t,n){"use strict";var r=n("b727").forEach,a=n("b301");e.exports=a("forEach")?function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}:[].forEach},1875:function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"194a":function(e,t,n){var r=n("cc94");e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,a){return e.call(t,n,r,a)}}return function(){return e.apply(t,arguments)}}},"1be4":function(e,t,n){var r=n("d066");e.exports=r("document","documentElement")},"1c0b":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"1d80":function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"1dde":function(e,t,n){var r=n("d039"),a=n("b622"),i=a("species");e.exports=function(e){return!r((function(){var t=[],n=t.constructor={};return n[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},"23cb":function(e,t,n){var r=n("a691"),a=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?a(n+t,0):i(n,t)}},"23e7":function(e,t,n){var r=n("da84"),a=n("06cf").f,i=n("9112"),o=n("6eeb"),s=n("ce4e"),u=n("e893"),l=n("94ca");e.exports=function(e,t){var n,c,d,f,h,m,p=e.target,_=e.global,y=e.stat;if(c=_?r:y?r[p]||s(p,{}):(r[p]||{}).prototype,c)for(d in t){if(h=t[d],e.noTargetGet?(m=a(c,d),f=m&&m.value):f=c[d],n=l(_?d:p+(y?".":"#")+d,e.forced),!n&&void 0!==f){if(typeof h===typeof f)continue;u(h,f)}(e.sham||f&&f.sham)&&i(h,"sham",!0),o(c,d,h,e)}}},"241c":function(e,t,n){var r=n("ca84"),a=n("7839"),i=a.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},"2c6c":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"37e8":function(e,t,n){var r=n("83ab"),a=n("9bf2"),i=n("825a"),o=n("df75");e.exports=r?Object.defineProperties:function(e,t){i(e);var n,r=o(t),s=r.length,u=0;while(s>u)a.f(e,n=r[u++],t[n]);return e}},"3ac6":function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n("c8ba"))},"3e47":function(e,t,n){var r=n("a5eb"),a=n("c1b2"),i=n("4180");r({target:"Object",stat:!0,forced:!a,sham:!a},{defineProperty:i.f})},4160:function(e,t,n){"use strict";var r=n("23e7"),a=n("17c2");r({target:"Array",proto:!0,forced:[].forEach!=a},{forEach:a})},4180:function(e,t,n){var r=n("c1b2"),a=n("77b2"),i=n("6f8d"),o=n("7168"),s=Object.defineProperty;t.f=r?s:function(e,t,n){if(i(e),t=o(t,!0),i(n),a)try{return s(e,t,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},"428f":function(e,t,n){e.exports=n("da84")},"44ad":function(e,t,n){var r=n("d039"),a=n("c6b6"),i="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?i.call(e,""):Object(e)}:Object},"44ba":function(e,t,n){var r=n("c1b2"),a=n("7043"),i=n("2c6c"),o=n("a421"),s=n("7168"),u=n("78e7"),l=n("77b2"),c=Object.getOwnPropertyDescriptor;t.f=r?c:function(e,t){if(e=o(e),t=s(t,!0),l)try{return c(e,t)}catch(n){}if(u(e,t))return i(!a.f.call(e,t),e[t])}},4930:function(e,t,n){var r=n("d039");e.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},"4a7a":function(e,t,n){},"4d64":function(e,t,n){var r=n("fc6a"),a=n("50c4"),i=n("23cb"),o=function(e){return function(t,n,o){var s,u=r(t),l=a(u.length),c=i(o,l);if(e&&n!=n){while(l>c)if(s=u[c++],s!=s)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},"4de4":function(e,t,n){"use strict";var r=n("23e7"),a=n("b727").filter,i=n("1dde");r({target:"Array",proto:!0,forced:!i("filter")},{filter:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}})},"50c4":function(e,t,n){var r=n("a691"),a=Math.min;e.exports=function(e){return e>0?a(r(e),9007199254740991):0}},5135:function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},5692:function(e,t,n){var r=n("c430"),a=n("c6cd");(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.3.3",mode:r?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,t,n){var r=n("d066"),a=n("241c"),i=n("7418"),o=n("825a");e.exports=r("Reflect","ownKeys")||function(e){var t=a.f(o(e)),n=i.f;return n?t.concat(n(e)):t}},"5c6c":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"638c":function(e,t,n){var r=n("06fa"),a=n("fc48"),i="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?i.call(e,""):Object(e)}:Object},"65f0":function(e,t,n){var r=n("861d"),a=n("e8b5"),i=n("b622"),o=i("species");e.exports=function(e,t){var n;return a(e)&&(n=e.constructor,"function"!=typeof n||n!==Array&&!a(n.prototype)?r(n)&&(n=n[o],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},"69f3":function(e,t,n){var r,a,i,o=n("7f9a"),s=n("da84"),u=n("861d"),l=n("9112"),c=n("5135"),d=n("f772"),f=n("d012"),h=s.WeakMap,m=function(e){return i(e)?a(e):r(e,{})},p=function(e){return function(t){var n;if(!u(t)||(n=a(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}};if(o){var _=new h,y=_.get,g=_.has,v=_.set;r=function(e,t){return v.call(_,e,t),t},a=function(e){return y.call(_,e)||{}},i=function(e){return g.call(_,e)}}else{var b=d("state");f[b]=!0,r=function(e,t){return l(e,b,t),t},a=function(e){return c(e,b)?e[b]:{}},i=function(e){return c(e,b)}}e.exports={set:r,get:a,has:i,enforce:m,getterFor:p}},"6eeb":function(e,t,n){var r=n("da84"),a=n("5692"),i=n("9112"),o=n("5135"),s=n("ce4e"),u=n("9e81"),l=n("69f3"),c=l.get,d=l.enforce,f=String(u).split("toString");a("inspectSource",(function(e){return u.call(e)})),(e.exports=function(e,t,n,a){var u=!!a&&!!a.unsafe,l=!!a&&!!a.enumerable,c=!!a&&!!a.noTargetGet;"function"==typeof n&&("string"!=typeof t||o(n,"name")||i(n,"name",t),d(n).source=f.join("string"==typeof t?t:"")),e!==r?(u?!c&&e[t]&&(l=!0):delete e[t],l?e[t]=n:i(e,t,n)):l?e[t]=n:s(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&c(this).source||u.call(this)}))},"6f8d":function(e,t,n){var r=n("dfdb");e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},7043:function(e,t,n){"use strict";var r={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,i=a&&!r.call({1:2},1);t.f=i?function(e){var t=a(this,e);return!!t&&t.enumerable}:r},7168:function(e,t,n){var r=n("dfdb");e.exports=function(e,t){if(!r(e))return e;var n,a;if(t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;if("function"==typeof(n=e.valueOf)&&!r(a=n.call(e)))return a;if(!t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;throw TypeError("Can't convert object to primitive value")}},7418:function(e,t){t.f=Object.getOwnPropertySymbols},"746f":function(e,t,n){var r=n("428f"),a=n("5135"),i=n("c032"),o=n("9bf2").f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});a(t,e)||o(t,e,{value:i.f(e)})}},"764b":function(e,t){e.exports={}},"77b2":function(e,t,n){var r=n("c1b2"),a=n("06fa"),i=n("7a37");e.exports=!r&&!a((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},7839:function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"78e7":function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},"7a37":function(e,t,n){var r=n("3ac6"),a=n("dfdb"),i=r.document,o=a(i)&&a(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},"7b0b":function(e,t,n){var r=n("1d80");e.exports=function(e){return Object(r(e))}},"7c73":function(e,t,n){var r=n("825a"),a=n("37e8"),i=n("7839"),o=n("d012"),s=n("1be4"),u=n("cc12"),l=n("f772"),c=l("IE_PROTO"),d="prototype",f=function(){},h=function(){var e,t=u("iframe"),n=i.length,r="<",a="script",o=">",l="java"+a+":";t.style.display="none",s.appendChild(t),t.src=String(l),e=t.contentWindow.document,e.open(),e.write(r+a+o+"document.F=Object"+r+"/"+a+o),e.close(),h=e.F;while(n--)delete h[d][i[n]];return h()};e.exports=Object.create||function(e,t){var n;return null!==e?(f[d]=r(e),n=new f,f[d]=null,n[c]=e):n=h(),void 0===t?n:a(n,t)},o[c]=!0},"7f9a":function(e,t,n){var r=n("da84"),a=n("9e81"),i=r.WeakMap;e.exports="function"===typeof i&&/native code/.test(a.call(i))},"825a":function(e,t,n){var r=n("861d");e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},"83ab":function(e,t,n){var r=n("d039");e.exports=!r((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},8418:function(e,t,n){"use strict";var r=n("c04e"),a=n("9bf2"),i=n("5c6c");e.exports=function(e,t,n){var o=r(t);o in e?a.f(e,o,i(0,n)):e[o]=n}},"85d3":function(e,t,n){e.exports=n("9a13")},"861d":function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},"90e3":function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+r).toString(36)}},9112:function(e,t,n){var r=n("83ab"),a=n("9bf2"),i=n("5c6c");e.exports=r?function(e,t,n){return a.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},"94ca":function(e,t,n){var r=n("d039"),a=/#|\.prototype\./,i=function(e,t){var n=s[o(e)];return n==l||n!=u&&("function"==typeof t?r(t):!!t)},o=i.normalize=function(e){return String(e).replace(a,".").toLowerCase()},s=i.data={},u=i.NATIVE="N",l=i.POLYFILL="P";e.exports=i},"9a13":function(e,t,n){e.exports=n("a38c")},"9bf2":function(e,t,n){var r=n("83ab"),a=n("0cfb"),i=n("825a"),o=n("c04e"),s=Object.defineProperty;t.f=r?s:function(e,t,n){if(i(e),t=o(t,!0),i(n),a)try{return s(e,t,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},"9e81":function(e,t,n){var r=n("5692");e.exports=r("native-function-to-string",Function.toString)},a0e5:function(e,t,n){var r=n("06fa"),a=/#|\.prototype\./,i=function(e,t){var n=s[o(e)];return n==l||n!=u&&("function"==typeof t?r(t):!!t)},o=i.normalize=function(e){return String(e).replace(a,".").toLowerCase()},s=i.data={},u=i.NATIVE="N",l=i.POLYFILL="P";e.exports=i},a38c:function(e,t,n){n("3e47");var r=n("764b"),a=r.Object,i=e.exports=function(e,t,n){return a.defineProperty(e,t,n)};a.defineProperty.sham&&(i.sham=!0)},a421:function(e,t,n){var r=n("638c"),a=n("1875");e.exports=function(e){return r(a(e))}},a4d3:function(e,t,n){"use strict";var r=n("23e7"),a=n("da84"),i=n("c430"),o=n("83ab"),s=n("4930"),u=n("d039"),l=n("5135"),c=n("e8b5"),d=n("861d"),f=n("825a"),h=n("7b0b"),m=n("fc6a"),p=n("c04e"),_=n("5c6c"),y=n("7c73"),g=n("df75"),v=n("241c"),b=n("057f"),M=n("7418"),w=n("06cf"),L=n("9bf2"),k=n("d1e7"),x=n("9112"),Y=n("6eeb"),D=n("5692"),S=n("f772"),T=n("d012"),O=n("90e3"),A=n("b622"),P=n("c032"),j=n("746f"),H=n("d44e"),C=n("69f3"),E=n("b727").forEach,z=S("hidden"),F="Symbol",I="prototype",N=A("toPrimitive"),W=C.set,R=C.getterFor(F),V=Object[I],U=a.Symbol,$=a.JSON,B=$&&$.stringify,q=w.f,G=L.f,J=b.f,Q=k.f,Z=D("symbols"),K=D("op-symbols"),X=D("string-to-symbol-registry"),ee=D("symbol-to-string-registry"),te=D("wks"),ne=a.QObject,re=!ne||!ne[I]||!ne[I].findChild,ae=o&&u((function(){return 7!=y(G({},"a",{get:function(){return G(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=q(V,t);r&&delete V[t],G(e,t,n),r&&e!==V&&G(V,t,r)}:G,ie=function(e,t){var n=Z[e]=y(U[I]);return W(n,{type:F,tag:e,description:t}),o||(n.description=t),n},oe=s&&"symbol"==typeof U.iterator?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof U},se=function(e,t,n){e===V&&se(K,t,n),f(e);var r=p(t,!0);return f(n),l(Z,r)?(n.enumerable?(l(e,z)&&e[z][r]&&(e[z][r]=!1),n=y(n,{enumerable:_(0,!1)})):(l(e,z)||G(e,z,_(1,{})),e[z][r]=!0),ae(e,r,n)):G(e,r,n)},ue=function(e,t){f(e);var n=m(t),r=g(n).concat(he(n));return E(r,(function(t){o&&!ce.call(n,t)||se(e,t,n[t])})),e},le=function(e,t){return void 0===t?y(e):ue(y(e),t)},ce=function(e){var t=p(e,!0),n=Q.call(this,t);return!(this===V&&l(Z,t)&&!l(K,t))&&(!(n||!l(this,t)||!l(Z,t)||l(this,z)&&this[z][t])||n)},de=function(e,t){var n=m(e),r=p(t,!0);if(n!==V||!l(Z,r)||l(K,r)){var a=q(n,r);return!a||!l(Z,r)||l(n,z)&&n[z][r]||(a.enumerable=!0),a}},fe=function(e){var t=J(m(e)),n=[];return E(t,(function(e){l(Z,e)||l(T,e)||n.push(e)})),n},he=function(e){var t=e===V,n=J(t?K:m(e)),r=[];return E(n,(function(e){!l(Z,e)||t&&!l(V,e)||r.push(Z[e])})),r};s||(U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,t=O(e),n=function(e){this===V&&n.call(K,e),l(this,z)&&l(this[z],t)&&(this[z][t]=!1),ae(this,t,_(1,e))};return o&&re&&ae(V,t,{configurable:!0,set:n}),ie(t,e)},Y(U[I],"toString",(function(){return R(this).tag})),k.f=ce,L.f=se,w.f=de,v.f=b.f=fe,M.f=he,o&&(G(U[I],"description",{configurable:!0,get:function(){return R(this).description}}),i||Y(V,"propertyIsEnumerable",ce,{unsafe:!0})),P.f=function(e){return ie(A(e),e)}),r({global:!0,wrap:!0,forced:!s,sham:!s},{Symbol:U}),E(g(te),(function(e){j(e)})),r({target:F,stat:!0,forced:!s},{for:function(e){var t=String(e);if(l(X,t))return X[t];var n=U(t);return X[t]=n,ee[n]=t,n},keyFor:function(e){if(!oe(e))throw TypeError(e+" is not a symbol");if(l(ee,e))return ee[e]},useSetter:function(){re=!0},useSimple:function(){re=!1}}),r({target:"Object",stat:!0,forced:!s,sham:!o},{create:le,defineProperty:se,defineProperties:ue,getOwnPropertyDescriptor:de}),r({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:fe,getOwnPropertySymbols:he}),r({target:"Object",stat:!0,forced:u((function(){M.f(1)}))},{getOwnPropertySymbols:function(e){return M.f(h(e))}}),$&&r({target:"JSON",stat:!0,forced:!s||u((function(){var e=U();return"[null]"!=B([e])||"{}"!=B({a:e})||"{}"!=B(Object(e))}))},{stringify:function(e){var t,n,r=[e],a=1;while(arguments.length>a)r.push(arguments[a++]);if(n=t=r[1],(d(t)||void 0!==e)&&!oe(e))return c(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!oe(t))return t}),r[1]=t,B.apply($,r)}}),U[I][N]||x(U[I],N,U[I].valueOf),H(U,F),T[z]=!0},a5eb:function(e,t,n){"use strict";var r=n("3ac6"),a=n("44ba").f,i=n("a0e5"),o=n("764b"),s=n("194a"),u=n("0273"),l=n("78e7"),c=function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t};e.exports=function(e,t){var n,d,f,h,m,p,_,y,g,v=e.target,b=e.global,M=e.stat,w=e.proto,L=b?r:M?r[v]:(r[v]||{}).prototype,k=b?o:o[v]||(o[v]={}),x=k.prototype;for(h in t)n=i(b?h:v+(M?".":"#")+h,e.forced),d=!n&&L&&l(L,h),p=k[h],d&&(e.noTargetGet?(g=a(L,h),_=g&&g.value):_=L[h]),m=d&&_?_:t[h],d&&typeof p===typeof m||(y=e.bind&&d?s(m,r):e.wrap&&d?c(m):w&&"function"==typeof m?s(Function.call,m):m,(e.sham||m&&m.sham||p&&p.sham)&&u(y,"sham",!0),k[h]=y,w&&(f=v+"Prototype",l(o,f)||u(o,f,{}),o[f][h]=m,e.real&&x&&!x[h]&&u(x,h,m)))}},a691:function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},b0c0:function(e,t,n){var r=n("83ab"),a=n("9bf2").f,i=Function.prototype,o=i.toString,s=/^\s*function ([^ (]*)/,u="name";!r||u in i||a(i,u,{configurable:!0,get:function(){try{return o.call(this).match(s)[1]}catch(e){return""}}})},b301:function(e,t,n){"use strict";var r=n("d039");e.exports=function(e,t){var n=[][e];return!n||!r((function(){n.call(null,t||function(){throw 1},1)}))}},b622:function(e,t,n){var r=n("da84"),a=n("5692"),i=n("90e3"),o=n("4930"),s=r.Symbol,u=a("wks");e.exports=function(e){return u[e]||(u[e]=o&&s[e]||(o?s:i)("Symbol."+e))}},b64b:function(e,t,n){var r=n("23e7"),a=n("7b0b"),i=n("df75"),o=n("d039"),s=o((function(){i(1)}));r({target:"Object",stat:!0,forced:s},{keys:function(e){return i(a(e))}})},b727:function(e,t,n){var r=n("f8c2"),a=n("44ad"),i=n("7b0b"),o=n("50c4"),s=n("65f0"),u=[].push,l=function(e){var t=1==e,n=2==e,l=3==e,c=4==e,d=6==e,f=5==e||d;return function(h,m,p,_){for(var y,g,v=i(h),b=a(v),M=r(m,p,3),w=o(b.length),L=0,k=_||s,x=t?k(h,w):n?k(h,0):void 0;w>L;L++)if((f||L in b)&&(y=b[L],g=M(y,L,v),e))if(t)x[L]=g;else if(g)switch(e){case 3:return!0;case 5:return y;case 6:return L;case 2:u.call(x,y)}else if(c)return!1;return d?-1:l||c?c:x}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6)}},c032:function(e,t,n){t.f=n("b622")},c04e:function(e,t,n){var r=n("861d");e.exports=function(e,t){if(!r(e))return e;var n,a;if(t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;if("function"==typeof(n=e.valueOf)&&!r(a=n.call(e)))return a;if(!t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;throw TypeError("Can't convert object to primitive value")}},c1b2:function(e,t,n){var r=n("06fa");e.exports=!r((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},c430:function(e,t){e.exports=!1},c6b6:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},c6cd:function(e,t,n){var r=n("da84"),a=n("ce4e"),i="__core-js_shared__",o=r[i]||a(i,{});e.exports=o},c8ba:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}e.exports=n},ca84:function(e,t,n){var r=n("5135"),a=n("fc6a"),i=n("4d64").indexOf,o=n("d012");e.exports=function(e,t){var n,s=a(e),u=0,l=[];for(n in s)!r(o,n)&&r(s,n)&&l.push(n);while(t.length>u)r(s,n=t[u++])&&(~i(l,n)||l.push(n));return l}},cc12:function(e,t,n){var r=n("da84"),a=n("861d"),i=r.document,o=a(i)&&a(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},cc94:function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},ce4e:function(e,t,n){var r=n("da84"),a=n("9112");e.exports=function(e,t){try{a(r,e,t)}catch(n){r[e]=t}return t}},d012:function(e,t){e.exports={}},d039:function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},d066:function(e,t,n){var r=n("428f"),a=n("da84"),i=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e])||i(a[e]):r[e]&&r[e][t]||a[e]&&a[e][t]}},d1e7:function(e,t,n){"use strict";var r={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,i=a&&!r.call({1:2},1);t.f=i?function(e){var t=a(this,e);return!!t&&t.enumerable}:r},d44e:function(e,t,n){var r=n("9bf2").f,a=n("5135"),i=n("b622"),o=i("toStringTag");e.exports=function(e,t,n){e&&!a(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},da84:function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n("c8ba"))},dbb4:function(e,t,n){var r=n("23e7"),a=n("83ab"),i=n("56ef"),o=n("fc6a"),s=n("06cf"),u=n("8418");r({target:"Object",stat:!0,sham:!a},{getOwnPropertyDescriptors:function(e){var t,n,r=o(e),a=s.f,l=i(r),c={},d=0;while(l.length>d)n=a(r,t=l[d++]),void 0!==n&&u(c,t,n);return c}})},df75:function(e,t,n){var r=n("ca84"),a=n("7839");e.exports=Object.keys||function(e){return r(e,a)}},dfdb:function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},e439:function(e,t,n){var r=n("23e7"),a=n("d039"),i=n("fc6a"),o=n("06cf").f,s=n("83ab"),u=a((function(){o(1)})),l=!s||u;r({target:"Object",stat:!0,forced:l,sham:!s},{getOwnPropertyDescriptor:function(e,t){return o(i(e),t)}})},e893:function(e,t,n){var r=n("5135"),a=n("56ef"),i=n("06cf"),o=n("9bf2");e.exports=function(e,t){for(var n=a(t),s=o.f,u=i.f,l=0;l=10?e:e+12},week:{dow:0,doy:6}});return r}))},"3e92":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"},r=e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}});return r}))},"40c3":function(e,t,n){var r=n("6b4c"),a=n("5168")("toStringTag"),i="Arguments"==r(function(){return arguments}()),o=function(e,t){try{return e[t]}catch(n){}};e.exports=function(e){var t,n,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=o(t=Object(e),a))?n:i?r(t):"Object"==(s=r(t))&&"function"==typeof t.callee?"Arguments":s}},4178:function(e,t,n){var r,a,i,o=n("d864"),s=n("3024"),u=n("32fc"),l=n("1ec9"),c=n("e53d"),d=c.process,f=c.setImmediate,h=c.clearImmediate,m=c.MessageChannel,p=c.Dispatch,_=0,y={},g="onreadystatechange",v=function(){var e=+this;if(y.hasOwnProperty(e)){var t=y[e];delete y[e],t()}},b=function(e){v.call(e.data)};f&&h||(f=function(e){var t=[],n=1;while(arguments.length>n)t.push(arguments[n++]);return y[++_]=function(){s("function"==typeof e?e:Function(e),t)},r(_),_},h=function(e){delete y[e]},"process"==n("6b4c")(d)?r=function(e){d.nextTick(o(v,e,1))}:p&&p.now?r=function(e){p.now(o(v,e,1))}:m?(a=new m,i=a.port2,a.port1.onmessage=b,r=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(r=function(e){c.postMessage(e+"","*")},c.addEventListener("message",b,!1)):r=g in l("script")?function(e){u.appendChild(l("script"))[g]=function(){u.removeChild(this),v.call(e)}}:function(e){setTimeout(o(v,e,1),0)}),e.exports={set:f,clear:h}},"41a0":function(e,t,n){"use strict";var r=n("2aeb"),a=n("4630"),i=n("7f20"),o={};n("32e9")(o,n("2b4c")("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(o,{next:a(1,n)}),i(e,t+" Iterator")}},"423e":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}});return t}))},4245:function(e,t,n){var r=n("1290");function a(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}e.exports=a},"43fc":function(e,t,n){"use strict";var r=n("63b6"),a=n("656e"),i=n("4439");r(r.S,"Promise",{try:function(e){var t=a.f(this),n=i(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},"440c":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n,r){var a={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?a[n][0]:a[n][1]}function n(e){var t=e.substr(0,e.indexOf(" "));return a(t)?"a "+e:"an "+e}function r(e){var t=e.substr(0,e.indexOf(" "));return a(t)?"viru "+e:"virun "+e}function a(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10,n=e/10;return a(0===t?n:t)}if(e<1e4){while(e>=10)e/=10;return a(e)}return e/=1e3,a(e)}var i=e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:n,past:r,s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return i}))},4439:function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(t){return{e:!0,v:t}}}},"44b7":function(e,t,n){"use strict";var r=n("0f7c"),a=n("e9ac"),i=a("%Function%"),o=i.apply,s=i.call;e.exports=function(){return r.apply(s,arguments)},e.exports.apply=function(){return r.apply(o,arguments)}},"454f":function(e,t,n){n("46a7");var r=n("584a").Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},"456d":function(e,t,n){var r=n("4bf8"),a=n("0d58");n("5eda")("keys",(function(){return function(e){return a(r(e))}}))},4588:function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},"45f2":function(e,t,n){var r=n("d9f6").f,a=n("07e3"),i=n("5168")("toStringTag");e.exports=function(e,t,n){e&&!a(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},4630:function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"469f":function(e,t,n){n("6c1c"),n("1654"),e.exports=n("7d7b")},"46a7":function(e,t,n){var r=n("63b6");r(r.S+r.F*!n("8e60"),"Object",{defineProperty:n("d9f6").f})},"47ee":function(e,t,n){var r=n("c3a1"),a=n("9aa9"),i=n("355d");e.exports=function(e){var t=r(e),n=a.f;if(n){var o,s=n(e),u=i.f,l=0;while(s.length>l)u.call(e,o=s[l++])&&t.push(o)}return t}},"481b":function(e,t){e.exports={}},"485c":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"},n=e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var n=e%10,r=e%100-n,a=e>=100?100:null;return e+(t[n]||t[r]||t[a])},week:{dow:1,doy:7}});return n}))},4917:function(e,t,n){"use strict";var r=n("cb7c"),a=n("9def"),i=n("0390"),o=n("5f1b");n("214f")("match",1,(function(e,t,n,s){return[function(n){var r=e(this),a=void 0==n?void 0:n[t];return void 0!==a?a.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=s(n,e,this);if(t.done)return t.value;var u=r(e),l=String(this);if(!u.global)return o(u,l);var c=u.unicode;u.lastIndex=0;var d,f=[],h=0;while(null!==(d=o(u,l))){var m=String(d[0]);f[h]=m,""===m&&(u.lastIndex=i(l,a(u.lastIndex),c)),h++}return 0===h?null:f}]}))},"49ab":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}});return t}))},"49f4":function(e,t,n){var r=n("6044");function a(){this.__data__=r?r(null):{},this.size=0}e.exports=a},"4a59":function(e,t,n){var r=n("9b43"),a=n("1fa8"),i=n("33a4"),o=n("cb7c"),s=n("9def"),u=n("27ee"),l={},c={};t=e.exports=function(e,t,n,d,f){var h,m,p,_,y=f?function(){return e}:u(e),g=r(n,d,t?2:1),v=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(i(y)){for(h=s(e.length);h>v;v++)if(_=t?g(o(m=e[v])[0],m[1]):g(e[v]),_===l||_===c)return _}else for(p=y.call(e);!(m=p.next()).done;)if(_=a(p,g,m.value,t),_===l||_===c)return _};t.BREAK=l,t.RETURN=c},"4ba9":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi",r;case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta",r;case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati",r;case"dd":return r+=1===e?"dan":"dana",r;case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci",r;case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina",r}}var n=e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n}))},"4bf8":function(e,t,n){var r=n("be13");e.exports=function(e){return Object(r(e))}},"4c95":function(e,t,n){"use strict";var r=n("e53d"),a=n("584a"),i=n("d9f6"),o=n("8e60"),s=n("5168")("species");e.exports=function(e){var t="function"==typeof a[e]?a[e]:r[e];o&&t&&!t[s]&&i.f(t,s,{configurable:!0,get:function(){return this}})}},"4eb5":function(e,t,n){var r=n("6981"),a={autoSetContainer:!1},i={install:function(e){e.prototype.$clipboardConfig=a,e.prototype.$copyText=function(e,t){return new Promise((function(n,a){var i=document.createElement("button"),o=new r(i,{text:function(){return e},action:function(){return"copy"},container:"object"===typeof t?t:document.body});o.on("success",(function(e){o.destroy(),n(e)})),o.on("error",(function(e){o.destroy(),a(e)})),i.click()}))},e.directive("clipboard",{bind:function(e,t,n){if("success"===t.arg)e._v_clipboard_success=t.value;else if("error"===t.arg)e._v_clipboard_error=t.value;else{var i=new r(e,{text:function(){return t.value},action:function(){return"cut"===t.arg?"cut":"copy"},container:a.autoSetContainer?e:void 0});i.on("success",(function(t){var n=e._v_clipboard_success;n&&n(t)})),i.on("error",(function(t){var n=e._v_clipboard_error;n&&n(t)})),e._v_clipboard=i}},update:function(e,t){"success"===t.arg?e._v_clipboard_success=t.value:"error"===t.arg?e._v_clipboard_error=t.value:(e._v_clipboard.text=function(){return t.value},e._v_clipboard.action=function(){return"cut"===t.arg?"cut":"copy"})},unbind:function(e,t){"success"===t.arg?delete e._v_clipboard_success:"error"===t.arg?delete e._v_clipboard_error:(e._v_clipboard.destroy(),delete e._v_clipboard)}})},config:a};e.exports=i},"4ee1":function(e,t,n){var r=n("5168")("iterator"),a=!1;try{var i=[7][r]();i["return"]=function(){a=!0},Array.from(i,(function(){throw 2}))}catch(o){}e.exports=function(e,t){if(!t&&!a)return!1;var n=!1;try{var i=[7],s=i[r]();s.next=function(){return{done:n=!0}},i[r]=function(){return s},e(i)}catch(o){}return n}},"4f7f":function(e,t,n){"use strict";var r=n("c26b"),a=n("b39a"),i="Set";e.exports=n("e0b8")(i,(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(e){return r.def(a(this,i),e=0===e?0:e,e)}},r)},5038:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return t}))},"504c":function(e,t,n){var r=n("9e1e"),a=n("0d58"),i=n("6821"),o=n("52a7").f;e.exports=function(e){return function(t){var n,s=i(t),u=a(s),l=u.length,c=0,d=[];while(l>c)n=u[c++],r&&!o.call(s,n)||d.push(e?[n,s[n]]:s[n]);return d}}},"50d1":function(e,t,n){(function(t,n){e.exports=n()})(0,(function(){"use strict";function e(e){return"[object Array]"===Object.prototype.toString.call(e)}function t(e){return e instanceof Function}function n(e){return"[object Object]"===Object.prototype.toString.call(e)&&!t(e)&&e instanceof Object}function r(t,a){var i;for(i in a)"__proto__"!==i&&(n(a[i])||e(a[i])?(n(a[i])&&!n(t[i])&&(t[i]={}),e(a[i])&&!e(t[i])&&(t[i]=[]),r(t[i],a[i])):void 0!==a[i]&&(t[i]=a[i]))}function a(e,t){var n={};return r(n,e),r(n,t),n}var i=/^(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)$/i,o=/(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)(T)?(\d\d)(:)?(\d\d)?(:)?(\d\d)?([.,]\d+)?($|Z|([+-])(\d\d)(:)?(\d\d)?)/i,s=String(1.5).charAt(1);function u(e){var t,n,r,a,i,u,l,c,d,f,h;return f=Object.prototype.toString.call(e),"[object Date]"===f?e:"[object String]"===f?(r=e.match(o),r?(h=parseInt(r[1],10),u=parseInt(r[3],10)-1,t=parseInt(r[5],10),n=parseInt(r[7],10),i=r[9]?parseInt(r[9],10):0,d=r[11]?parseInt(r[11],10):0,a=r[12]?1e3*parseFloat(s+r[12].slice(1)):0,c=Date.UTC(h,u,t,n,i,d,a),r[13]&&r[14]&&(l=60*r[15],r[17]&&(l+=parseInt(r[17],10)),l*="-"===r[14]?-1:1,c-=60*l*1e3),new Date(c)):void 0):void 0}function l(e){var t,n,r;for(t=0;t=6}function x(e){return"number"===typeof e}function Y(e,t,n,r){e=e||"",n.prefix&&(t<0&&(t*=-1,e+="-"),e+=n.prefix);var a=n.suffix||"",i=n.precision,o=n.round;if(n.byteScale){var s=r?n.byteScale:t;s>=1099511627776?(t/=1099511627776,a=" TB"):s>=1073741824?(t/=1073741824,a=" GB"):s>=1048576?(t/=1048576,a=" MB"):s>=1024?(t/=1024,a=" KB"):a=" bytes",void 0===i&&void 0===o&&(i=3)}if(void 0!==i&&void 0!==o)throw Error("Use either round or precision, not both");if(!r&&(void 0!==i&&(t=t.toPrecision(i),n.zeros||(t=parseFloat(t))),void 0!==o))if(o<0){var u=Math.pow(10,-1*o);t=parseInt((1*t/u).toFixed(0))*u}else t=t.toFixed(o),n.zeros||(t=parseFloat(t));if(n.thousands||n.decimal){t=c(t);var l=t.split(".");t=l[0],n.thousands&&(t=t.replace(/\B(?=(\d{3})+(?!\d))/g,n.thousands)),l.length>1&&(t+=(n.decimal||".")+l[1])}return e+t+a}function D(e,t,n){return n in t?t[n]:n in e.options?e.options[n]:null}function S(e){var t,n,r;for(t=0;t25?r=25:r<10&&(r=10),n.scales.xAxes[0].ticks.callback||(n.scales.xAxes[0].ticks.callback=function(e){return e=c(e),e.length>r?e.substring(0,r-2)+"...":e})},U=function(t,n,r){var a={prefix:t.options.prefix,suffix:t.options.suffix,thousands:t.options.thousands,decimal:t.options.decimal,precision:t.options.precision,round:t.options.round,zeros:t.options.zeros};if(t.options.bytes){var i=t.data;"pie"===r&&(i=[{data:i}]);for(var o=0,s=0;so&&(o=u.data[l][1]);var c=1;while(o>=1024)c*=1024,o/=1024;a.byteScale=c}if("pie"!==r){var d=n.scales.yAxes;"bar"===r&&(d=n.scales.xAxes),a.byteScale&&(d[0].ticks.stepSize||(d[0].ticks.stepSize=a.byteScale/2),d[0].ticks.maxTicksLimit||(d[0].ticks.maxTicksLimit=4)),d[0].ticks.callback||(d[0].ticks.callback=function(e){return Y("",e,a,!0)})}if(!n.tooltips.callbacks.label)if("scatter"===r)n.tooltips.callbacks.label=function(e,t){var n=t.datasets[e.datasetIndex].label||"";return n&&(n+=": "),n+"("+e.xLabel+", "+e.yLabel+")"};else if("bubble"===r)n.tooltips.callbacks.label=function(e,t){var n=t.datasets[e.datasetIndex].label||"";n&&(n+=": ");var r=t.datasets[e.datasetIndex].data[e.index];return n+"("+e.xLabel+", "+e.yLabel+", "+r.v+")"};else if("pie"===r)n.tooltips.callbacks.label=function(t,n){var r=n.labels[t.index],i=": ";return e(r)?(r=r.slice(),r[0]+=i):r+=i,Y(r,n.datasets[t.datasetIndex].data[t.index],a)};else{var f="bar"===r?"xLabel":"yLabel";n.tooltips.callbacks.label=function(e,t){var n=t.datasets[e.datasetIndex].label||"";return n&&(n+=": "),Y(n,e[f],a)}}},$=m(a(T,O),P,j,H,C,F,I,N),B=function(e,t,n,r){var i,o=[],s=[],u=e.options.colors||A,l=!0,c=!0,h=!0,m=!0,p=!0,_=!0,k=e.data,x=0;if("bubble"===n)for(var Y=0;Yx&&(x=S.data[T][2]);var O,P,j,H,C,E=[],z=[];if("bar"===n||"column"===n||"number"!==e.xtype&&"bubble"!==e.xtype){var F,I,N=[];for(O=0;O0){var re=(R(X)?f(X):s[0]).getTime(),ae=(R(ee)?f(ee):s[0]).getTime();for(O=1;Oae&&(ae=ie)}var oe,se=(ae-re)/864e5;if(!t.scales.xAxes[0].time.unit)if(m||se>3650?(t.scales.xAxes[0].time.unit="year",oe=365):h||se>300?(t.scales.xAxes[0].time.unit="month",oe=30):l||se>10?(t.scales.xAxes[0].time.unit="day",oe=1):p||se>.5?(t.scales.xAxes[0].time.displayFormats={hour:"MMM D, h a"},t.scales.xAxes[0].time.unit="hour",oe=1/24):_&&(t.scales.xAxes[0].time.displayFormats={minute:"h:mm a"},t.scales.xAxes[0].time.unit="minute",oe=1/24/60),oe&&se>0){var ue=Math.ceil(se/oe/(e.element.offsetWidth/100));c&&1===oe&&(ue=7*Math.ceil(ue/7)),t.scales.xAxes[0].time.unitStepSize=ue}t.scales.xAxes[0].time.tooltipFormat||(l?t.scales.xAxes[0].time.tooltipFormat="ll":p?t.scales.xAxes[0].time.tooltipFormat="MMM D, h a":_&&(t.scales.xAxes[0].time.tooltipFormat="h:mm a"))}var le={labels:s,datasets:o};return le},q=function(e){this.name="chartjs",this.library=e};q.prototype.renderLineChart=function(e,t){var n={};!e.options.max&&S(e.data)&&(n.max=1);var r=$(e,a(n,e.options));U(e,r,t);var i=B(e,r,t||"line",this.library);"number"===e.xtype?(r.scales.xAxes[0].type="linear",r.scales.xAxes[0].position="bottom"):r.scales.xAxes[0].type="string"===e.xtype?"category":"time",this.drawChart(e,"line",i,r)},q.prototype.renderPieChart=function(e){var t=a({},T);e.options.donut&&(t.cutoutPercentage=50),"legend"in e.options&&P(t,e.options.legend),e.options.title&&j(t,e.options.title),t=a(t,e.options.library||{}),U(e,t,"pie");for(var n=[],r=[],i=0;i● '+Y(this.series.name+": ",this.y,r)+"
"})},ae=function(e){this.name="highcharts",this.library=e};ae.prototype.renderLineChart=function(e,t){t=t||"spline";var n={};"areaspline"===t&&(n={plotOptions:{areaspline:{stacking:"normal"},area:{stacking:"normal"},series:{marker:{enabled:!1}}}}),!1===e.options.curve&&("areaspline"===t?t="area":"spline"===t&&(t="line"));var r,a,i,o=ne(e,e.options,n);o.xAxis.type="string"===e.xtype?"category":"number"===e.xtype?"linear":"datetime",o.chart.type||(o.chart.type=t),re(e,o,t);var s=e.data;for(a=0;a0)return!1;return!0}function Re(e,t){t.options.messages&&t.options.messages.empty&&We(t.data,e)?Oe(t.element,t.options.messages.empty):(Ve(e,t),t.options.download&&!t.__downloadAttached&&"chartjs"===t.adapter&&He(t))}function Ve(e,n){var r,a,i,o;for(i="render"+e,o=n.options.adapter,Ne(),r=0;r0?new Error("No charting library found for "+e):new Error("No charting libraries found - be sure to include one before your charts")}var Ue=function(e,t){return e="number"===t?d(e):"datetime"===t?f(e):c(e),e},$e=function(e,t){var n,r,a=[];for(r=0;r1&&i.call(o[0],n,(function(){for(c=1;c=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}});return t}))},"53e2":function(e,t,n){var r=n("07e3"),a=n("241e"),i=n("5559")("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=a(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},"549b":function(e,t,n){"use strict";var r=n("d864"),a=n("63b6"),i=n("241e"),o=n("b0dc"),s=n("3702"),u=n("b447"),l=n("20fd"),c=n("7cd6");a(a.S+a.F*!n("4ee1")((function(e){Array.from(e)})),"Array",{from:function(e){var t,n,a,d,f=i(e),h="function"==typeof this?this:Array,m=arguments.length,p=m>1?arguments[1]:void 0,_=void 0!==p,y=0,g=c(f);if(_&&(p=r(p,m>2?arguments[2]:void 0,2)),void 0==g||h==Array&&s(g))for(t=u(f.length),n=new h(t);t>y;y++)l(n,y,_?p(f[y],y):f[y]);else for(d=g.call(f),n=new h;!(a=d.next()).done;y++)l(n,y,_?o(d,p,[a.value,y],!0):a.value);return n.length=y,n}})},"54a1":function(e,t,n){n("6c1c"),n("1654"),e.exports=n("95d5")},"551c":function(e,t,n){"use strict";var r,a,i,o,s=n("2d00"),u=n("7726"),l=n("9b43"),c=n("23c6"),d=n("5ca1"),f=n("d3f4"),h=n("d8e8"),m=n("f605"),p=n("4a59"),_=n("ebd6"),y=n("1991").set,g=n("8079")(),v=n("a5b8"),b=n("9c80"),M=n("a25f"),w=n("bcaa"),L="Promise",k=u.TypeError,x=u.process,Y=x&&x.versions,D=Y&&Y.v8||"",S=u[L],T="process"==c(x),O=function(){},A=a=v.f,P=!!function(){try{var e=S.resolve(1),t=(e.constructor={})[n("2b4c")("species")]=function(e){e(O,O)};return(T||"function"==typeof PromiseRejectionEvent)&&e.then(O)instanceof t&&0!==D.indexOf("6.6")&&-1===M.indexOf("Chrome/66")}catch(r){}}(),j=function(e){var t;return!(!f(e)||"function"!=typeof(t=e.then))&&t},H=function(e,t){if(!e._n){e._n=!0;var n=e._c;g((function(){var r=e._v,a=1==e._s,i=0,o=function(t){var n,i,o,s=a?t.ok:t.fail,u=t.resolve,l=t.reject,c=t.domain;try{s?(a||(2==e._h&&z(e),e._h=1),!0===s?n=r:(c&&c.enter(),n=s(r),c&&(c.exit(),o=!0)),n===t.promise?l(k("Promise-chain cycle")):(i=j(n))?i.call(n,u,l):u(n)):l(r)}catch(d){c&&!o&&c.exit(),l(d)}};while(n.length>i)o(n[i++]);e._c=[],e._n=!1,t&&!e._h&&C(e)}))}},C=function(e){y.call(u,(function(){var t,n,r,a=e._v,i=E(e);if(i&&(t=b((function(){T?x.emit("unhandledRejection",a,e):(n=u.onunhandledrejection)?n({promise:e,reason:a}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",a)})),e._h=T||E(e)?2:1),e._a=void 0,i&&t.e)throw t.v}))},E=function(e){return 1!==e._h&&0===(e._a||e._c).length},z=function(e){y.call(u,(function(){var t;T?x.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})}))},F=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),H(t,!0))},I=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw k("Promise can't be resolved itself");(t=j(e))?g((function(){var r={_w:n,_d:!1};try{t.call(e,l(I,r,1),l(F,r,1))}catch(a){F.call(r,a)}})):(n._v=e,n._s=1,H(n,!1))}catch(r){F.call({_w:n,_d:!1},r)}}};P||(S=function(e){m(this,S,L,"_h"),h(e),r.call(this);try{e(l(I,this,1),l(F,this,1))}catch(t){F.call(this,t)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n("dcbc")(S.prototype,{then:function(e,t){var n=A(_(this,S));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=T?x.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&H(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r;this.promise=e,this.resolve=l(I,e,1),this.reject=l(F,e,1)},v.f=A=function(e){return e===S||e===o?new i(e):a(e)}),d(d.G+d.W+d.F*!P,{Promise:S}),n("7f20")(S,L),n("7a56")(L),o=n("8378")[L],d(d.S+d.F*!P,L,{reject:function(e){var t=A(this),n=t.reject;return n(e),t.promise}}),d(d.S+d.F*(s||!P),L,{resolve:function(e){return w(s&&this===o?S:this,e)}}),d(d.S+d.F*!(P&&n("5cc5")((function(e){S.all(e)["catch"](O)}))),L,{all:function(e){var t=this,n=A(t),r=n.resolve,a=n.reject,i=b((function(){var n=[],i=0,o=1;p(e,!1,(function(e){var s=i++,u=!1;n.push(void 0),o++,t.resolve(e).then((function(e){u||(u=!0,n[s]=e,--o||r(n))}),a)})),--o||r(n)}));return i.e&&a(i.v),n.promise},race:function(e){var t=this,n=A(t),r=n.reject,a=b((function(){p(e,!1,(function(e){t.resolve(e).then(n.resolve,r)}))}));return a.e&&r(a.v),n.promise}})},5537:function(e,t,n){var r=n("8378"),a=n("7726"),i="__core-js_shared__",o=a[i]||(a[i]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n("2d00")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},5559:function(e,t,n){var r=n("dbdb")("keys"),a=n("62a0");e.exports=function(e){return r[e]||(r[e]=a(e))}},"55c9":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,i=e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}});return i}))},"55dd":function(e,t,n){"use strict";var r=n("5ca1"),a=n("d8e8"),i=n("4bf8"),o=n("79e5"),s=[].sort,u=[1,2,3];r(r.P+r.F*(o((function(){u.sort(void 0)}))||!o((function(){u.sort(null)}))||!n("2f21")(s)),"Array",{sort:function(e){return void 0===e?s.call(i(this)):s.call(i(this),a(e))}})},5708:function(e,t,n){"use strict";var r=Object,a=TypeError;e.exports=function(){if(null!=this&&this!==r(this))throw new a("RegExp.prototype.flags getter called on non-object");var e="";return this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.sticky&&(e+="y"),e}},"576c":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}});return t}))},"57b8":function(e,t){function n(e,t){var n={};for(var r in"string"===typeof t&&(t=[].slice.call(arguments,1)),e)e.hasOwnProperty&&!e.hasOwnProperty(r)||-1===t.indexOf(r)&&(n[r]=e[r]);return n}e.exports=n},"57ec":function(e,t,n){"use strict";var r=n("5708"),a=n("f367").supportsDescriptors,i=Object.getOwnPropertyDescriptor,o=TypeError;e.exports=function(){if(!a)throw new o("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");if("gim"===/a/gim.flags){var e=i(RegExp.prototype,"flags");if(e&&"function"===typeof e.get&&"boolean"===typeof/a/.dotAll)return e.get}return r}},"584a":function(e,t){var n=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},"585a":function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n("c8ba"))},"598a":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"],r=e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}});return r}))},"5b14":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(e,t,n,r){var a=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return a+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return a+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return a+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return a+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return a+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return a+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}var a=e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return a}))},"5b4e":function(e,t,n){var r=n("36c3"),a=n("b447"),i=n("0fc9");e.exports=function(e){return function(t,n,o){var s,u=r(t),l=a(u.length),c=i(o,l);if(e&&n!=n){while(l>c)if(s=u[c++],s!=s)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===n)return e||c||0;return!e&&-1}}},"5c3a":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}});return t}))},"5c95":function(e,t,n){var r=n("35e8");e.exports=function(e,t,n){for(var a in t)n&&e[a]?e[a]=t[a]:r(e,a,t[a]);return e}},"5c9a":function(e,t){function n(e,t){for(var n={},r=Object.keys(e),a=r.length,i=0;i=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}});return t}))},"5cc5":function(e,t,n){var r=n("2b4c")("iterator"),a=!1;try{var i=[7][r]();i["return"]=function(){a=!0},Array.from(i,(function(){throw 2}))}catch(o){}e.exports=function(e,t){if(!t&&!a)return!1;var n=!1;try{var i=[7],s=i[r]();s.next=function(){return{done:n=!0}},i[r]=function(){return s},e(i)}catch(o){}return n}},"5d58":function(e,t,n){e.exports=n("d8d6")},"5d73":function(e,t,n){e.exports=n("469f")},"5dbc":function(e,t,n){var r=n("d3f4"),a=n("8b97").set;e.exports=function(e,t,n){var i,o=t.constructor;return o!==n&&"function"==typeof o&&(i=o.prototype)!==n.prototype&&r(i)&&a&&a(e,i),e}},"5df3":function(e,t,n){"use strict";var r=n("02f4")(!0);n("01f9")(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},"5e2e":function(e,t,n){var r=n("28c9"),a=n("69d5"),i=n("b4c0"),o=n("fba5"),s=n("67ca");function u(e){var t=-1,n=null==e?0:e.length;this.clear();while(++t=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}});return t}))},"613b":function(e,t,n){var r=n("5537")("keys"),a=n("ca5a");e.exports=function(e){return r[e]||(r[e]=a(e))}},"61ab":function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;n0?40*e+55:0,o=t>0?40*t+55:0,s=n>0?40*n+55:0;r[a]=d([i,o,s])}function c(e){var t=e.toString(16);while(t.length<2)t="0"+t;return t}function d(e){var t=[],n=!0,r=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(n=(i=o.next()).done);n=!0){var s=i.value;t.push(c(s))}}catch(u){r=!0,a=u}finally{try{n||null==o["return"]||o["return"]()}finally{if(r)throw a}}return"#"+t.join("")}function f(e,t,n,r){var a;return"text"===t?a=v(n,r):"display"===t?a=m(e,n,r):"xterm256"===t?a=w(e,r.colors[n]):"rgb"===t&&(a=h(e,n)),a}function h(e,t){t=t.substring(2).slice(0,-1);var n=+t.substr(0,2),r=t.substring(5).split(";"),a=r.map((function(e){return("0"+Number(e).toString(16)).substr(-2)})).join("");return M(e,(38===n?"color:#":"background-color:#")+a)}function m(e,t,n){t=parseInt(t,10);var r,a={"-1":function(){return"
"},0:function(){return e.length&&p(e)},1:function(){return b(e,"b")},3:function(){return b(e,"i")},4:function(){return b(e,"u")},8:function(){return M(e,"display:none")},9:function(){return b(e,"strike")},22:function(){return M(e,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return k(e,"i")},24:function(){return k(e,"u")},39:function(){return w(e,n.fg)},49:function(){return L(e,n.bg)},53:function(){return M(e,"text-decoration:overline")}};return a[t]?r=a[t]():4"})).join("")}function _(e,t){for(var n=[],r=e;r<=t;r++)n.push(r);return n}function y(e){return function(t){return(null===e||t.category!==e)&&"all"!==e}}function g(e){e=parseInt(e,10);var t=null;return 0===e?t="all":1===e?t="bold":2"].join("")}function M(e,t){return b(e,"span",t)}function w(e,t){return b(e,"span","color:"+t)}function L(e,t){return b(e,"span","background-color:"+t)}function k(e,t){var n;if(e.slice(-1)[0]===t&&(n=e.pop()),n)return""}function x(e,t,n){var r=!1,a=3;function i(){return""}function o(e,t){return n("xterm256",t),""}function s(e){return t.newline?n("display",-1):n("text",e),""}function u(e,t){r=!0,0===t.trim().length&&(t="0"),t=t.trimRight(";").split(";");var a=!0,i=!1,o=void 0;try{for(var s,u=t[Symbol.iterator]();!(a=(s=u.next()).done);a=!0){var l=s.value;n("display",l)}}catch(c){i=!0,o=c}finally{try{a||null==u["return"]||u["return"]()}finally{if(i)throw o}}return""}function l(e){return n("text",e),""}function c(e){return n("rgb",e),""}var d=[{pattern:/^\x08+/,sub:i},{pattern:/^\x1b\[[012]?K/,sub:i},{pattern:/^\x1b\[\(B/,sub:i},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:c},{pattern:/^\x1b\[38;5;(\d+)m/,sub:o},{pattern:/^\n/,sub:s},{pattern:/^\r\n/,sub:s},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:u},{pattern:/^\x1b\[\d?J/,sub:i},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:i},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:i},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:l}];function f(t,n){n>a&&r||(r=!1,e=e.replace(t.pattern,t.sub))}var h=[],m=e,p=m.length;e:while(p>0){for(var _=0,y=0,g=d.length;y= 0x80 (not a basic code point)","invalid-input":"Invalid input"},M=l-c,w=Math.floor,L=String.fromCharCode;function k(e){throw new RangeError(b[e])}function x(e,t){var n=e.length,r=[];while(n--)r[n]=t(e[n]);return r}function Y(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(v,".");var a=e.split("."),i=x(a,t).join(".");return r+i}function D(e){var t,n,r=[],a=0,i=e.length;while(a=55296&&t<=56319&&a65535&&(e-=65536,t+=L(e>>>10&1023|55296),e=56320|1023&e),t+=L(e),t})).join("")}function T(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:l}function O(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function A(e,t,n){var r=0;for(e=n?w(e/h):e>>1,e+=w(e/t);e>M*d>>1;r+=l)e=w(e/M);return w(r+(M+1)*e/(e+f))}function P(e){var t,n,r,a,i,o,s,f,h,y,g=[],v=e.length,b=0,M=p,L=m;for(n=e.lastIndexOf(_),n<0&&(n=0),r=0;r=128&&k("not-basic"),g.push(e.charCodeAt(r));for(a=n>0?n+1:0;a=v&&k("invalid-input"),f=T(e.charCodeAt(a++)),(f>=l||f>w((u-b)/o))&&k("overflow"),b+=f*o,h=s<=L?c:s>=L+d?d:s-L,fw(u/y)&&k("overflow"),o*=y}t=g.length+1,L=A(b-i,t,0==i),w(b/t)>u-M&&k("overflow"),M+=w(b/t),b%=t,g.splice(b++,0,M)}return S(g)}function j(e){var t,n,r,a,i,o,s,f,h,y,g,v,b,M,x,Y=[];for(e=D(e),v=e.length,t=p,n=0,i=m,o=0;o=t&&gw((u-n)/b)&&k("overflow"),n+=(s-t)*b,t=s,o=0;ou&&k("overflow"),g==t){for(f=n,h=l;;h+=l){if(y=h<=i?c:h>=i+d?d:h-i,f=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return t}))},"64b2":function(e){e.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')},"656b":function(e,t,n){var r=n("e2e4"),a=n("f4d6");function i(e,t){t=r(t,e);var n=0,i=t.length;while(null!=e&&n11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}});return t}))},6718:function(e,t,n){var r=n("e53d"),a=n("584a"),i=n("b8e3"),o=n("ccb9"),s=n("d9f6").f;e.exports=function(e){var t=a.Symbol||(a.Symbol=i?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:o.f(e)})}},6747:function(e,t){var n=Array.isArray;e.exports=n},6762:function(e,t,n){"use strict";var r=n("5ca1"),a=n("c366")(!0);r(r.P,"Array",{includes:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")("includes")},6784:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"],r=e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}});return r}))},"67ab":function(e,t,n){var r=n("ca5a")("meta"),a=n("d3f4"),i=n("69a8"),o=n("86cc").f,s=0,u=Object.isExtensible||function(){return!0},l=!n("79e5")((function(){return u(Object.preventExtensions({}))})),c=function(e){o(e,r,{value:{i:"O"+ ++s,w:{}}})},d=function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!u(e))return"F";if(!t)return"E";c(e)}return e[r].i},f=function(e,t){if(!i(e,r)){if(!u(e))return!0;if(!t)return!1;c(e)}return e[r].w},h=function(e){return l&&m.NEED&&u(e)&&!i(e,r)&&c(e),e},m=e.exports={KEY:r,NEED:!1,fastKey:d,getWeak:f,onFreeze:h}},"67bb":function(e,t,n){e.exports=n("f921")},"67ca":function(e,t,n){var r=n("cb5a");function a(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}e.exports=a},6821:function(e,t,n){var r=n("626a"),a=n("be13");e.exports=function(e){return r(a(e))}},6887:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n){var r={mm:"munutenn",MM:"miz",dd:"devezh"};return e+" "+a(r[n],e)}function n(e){switch(r(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}function r(e){return e>9?r(e%10):e}function a(e,t){return 2===t?i(e):e}function i(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}var o=e.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:n},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){var t=1===e?"añ":"vet";return e+t},week:{dow:1,doy:4}});return o}))},"688b":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return t}))},"688e":function(e,t,n){"use strict";var r="Function.prototype.bind called on incompatible ",a=Array.prototype.slice,i=Object.prototype.toString,o="[object Function]";e.exports=function(e){var t=this;if("function"!==typeof t||i.call(t)!==o)throw new TypeError(r+t);for(var n,s=a.call(arguments,1),u=function(){if(this instanceof n){var r=t.apply(this,s.concat(a.call(arguments)));return Object(r)===r?r:this}return t.apply(e,s.concat(a.call(arguments)))},l=Math.max(0,t.length-s.length),c=[],d=0;d10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}});return t}))},"696e":function(e,t,n){n("c207"),n("1654"),n("6c1c"),n("24c5"),n("3c11"),n("43fc"),e.exports=n("584a").Promise},6981:function(e,t,n){ +/*! + * clipboard.js v2.0.4 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!function(t,n){e.exports=n()}(0,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";var 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},a=function(){function e(e,t){for(var n=0;n=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}});return n}))},"6d83":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}});return t}))},"6db7":function(e,t,n){"use strict";var r=function(e){return e!==e};e.exports=function(e,t){return 0===e&&0===t?1/e===1/t:e===t||!(!r(e)||!r(t))}},"6e98":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return t}))},"6f12":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return t}))},"6f50":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}});return t}))},7073:function(e,t,n){var r=n("b514");function a(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in r&&(e=r[e]);var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e),t}e.exports=a},7118:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),r=e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}});return r}))},"71c1":function(e,t,n){var r=n("3a38"),a=n("25eb");e.exports=function(e){return function(t,n){var i,o,s=String(a(t)),u=r(n),l=s.length;return u<0||u>=l?e?"":void 0:(i=s.charCodeAt(u),i<55296||i>56319||u+1===l||(o=s.charCodeAt(u+1))<56320||o>57343?e?s.charAt(u):i:e?s.slice(u,u+2):o-56320+(i-55296<<10)+65536)}}},7333:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}});return t}))},73334:function(e,t,n){"use strict";var r=n("9e1e"),a=n("0d58"),i=n("2621"),o=n("52a7"),s=n("4bf8"),u=n("626a"),l=Object.assign;e.exports=!l||n("79e5")((function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=l({},e)[n]||Object.keys(l({},t)).join("")!=r}))?function(e,t){var n=s(e),l=arguments.length,c=1,d=i.f,f=o.f;while(l>c){var h,m=u(arguments[c++]),p=d?a(m).concat(d(m)):a(m),_=p.length,y=0;while(_>y)h=p[y++],r&&!f.call(m,h)||(n[h]=m[h])}return n}:l},"74dc":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}});return t}))},7514:function(e,t,n){"use strict";var r=n("5ca1"),a=n("0a49")(5),i="find",o=!0;i in[]&&Array(1)[i]((function(){o=!1})),r(r.P+r.F*o,"Array",{find:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")(i)},"75fc":function(e,t,n){"use strict";var r=n("a745"),a=n.n(r);function i(e){if(a()(e)){for(var t=0,n=new Array(e.length);t1&&e<5}function a(e,t,n,a){var i=e+" ";switch(n){case"s":return t||a?"pár sekúnd":"pár sekundami";case"ss":return t||a?i+(r(e)?"sekundy":"sekúnd"):i+"sekundami";case"m":return t?"minúta":a?"minútu":"minútou";case"mm":return t||a?i+(r(e)?"minúty":"minút"):i+"minútami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?i+(r(e)?"hodiny":"hodín"):i+"hodinami";case"d":return t||a?"deň":"dňom";case"dd":return t||a?i+(r(e)?"dni":"dní"):i+"dňami";case"M":return t||a?"mesiac":"mesiacom";case"MM":return t||a?i+(r(e)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return t||a?"rok":"rokom";case"yy":return t||a?i+(r(e)?"roky":"rokov"):i+"rokmi"}}var i=e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return i}))},"7c64":function(e,t,n){var r=n("e24b"),a=n("5e2e"),i=n("79bc");function o(){this.size=0,this.__data__={hash:new r,map:new(i||a),string:new r}}e.exports=o},"7cd6":function(e,t,n){var r=n("40c3"),a=n("5168")("iterator"),i=n("481b");e.exports=n("584a").getIteratorMethod=function(e){if(void 0!=e)return e[a]||e["@@iterator"]||i[r(e)]}},"7d7b":function(e,t,n){var r=n("e4ae"),a=n("7cd6");e.exports=n("584a").getIterator=function(e){var t=a(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},"7e90":function(e,t,n){var r=n("d9f6"),a=n("e4ae"),i=n("c3a1");e.exports=n("8e60")?Object.defineProperties:function(e,t){a(e);var n,o=i(t),s=o.length,u=0;while(s>u)r.f(e,n=o[u++],t[n]);return e}},"7f20":function(e,t,n){var r=n("86cc").f,a=n("69a8"),i=n("2b4c")("toStringTag");e.exports=function(e,t,n){e&&!a(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},"7f33":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}});return t}))},"7f7f":function(e,t,n){var r=n("86cc").f,a=Function.prototype,i=/^\s*function ([^ (]*)/,o="name";o in a||n("9e1e")&&r(a,o,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(e){return""}}})},"7fae":function(e,t,n){var r=n("d6c7"),a=n("e39c"),i=n("6db7"),o=n("d8d8"),s=n("e710"),u=n("0e65"),l=Date.prototype.getTime;function c(e,t,n){var r=n||{};return!(r.strict?!i(e,t):e!==t)||(!e||!t||"object"!==typeof e&&"object"!==typeof t?r.strict?i(e,t):e==t:h(e,t,r))}function d(e){return null===e||void 0===e}function f(e){return!(!e||"object"!==typeof e||"number"!==typeof e.length)&&("function"===typeof e.copy&&"function"===typeof e.slice&&!(e.length>0&&"number"!==typeof e[0]))}function h(e,t,n){var i,h;if(typeof e!==typeof t)return!1;if(d(e)||d(t))return!1;if(e.prototype!==t.prototype)return!1;if(a(e)!==a(t))return!1;var m=o(e),p=o(t);if(m!==p)return!1;if(m||p)return e.source===t.source&&s(e)===s(t);if(u(e)&&u(t))return l.call(e)===l.call(t);var _=f(e),y=f(t);if(_!==y)return!1;if(_||y){if(e.length!==t.length)return!1;for(i=0;i=0;i--)if(g[i]!=v[i])return!1;for(i=g.length-1;i>=0;i--)if(h=g[i],!c(e[h],t[h],n))return!1;return!0}e.exports=c},8079:function(e,t,n){var r=n("7726"),a=n("1991").set,i=r.MutationObserver||r.WebKitMutationObserver,o=r.process,s=r.Promise,u="process"==n("2d95")(o);e.exports=function(){var e,t,n,l=function(){var r,a;u&&(r=o.domain)&&r.exit();while(e){a=e.fn,e=e.next;try{a()}catch(i){throw e?n():t=void 0,i}}t=void 0,r&&r.enter()};if(u)n=function(){o.nextTick(l)};else if(!i||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var c=s.resolve(void 0);n=function(){c.then(l)}}else n=function(){a.call(r,l)};else{var d=!0,f=document.createTextNode("");new i(l).observe(f,{characterData:!0}),n=function(){f.data=d=!d}}return function(r){var a={fn:r,next:void 0};t&&(t.next=a),e||(e=a,n()),t=a}}},8155:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return a+=1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund",a;case"m":return t?"ena minuta":"eno minuto";case"mm":return a+=1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami",a;case"h":return t?"ena ura":"eno uro";case"hh":return a+=1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami",a;case"d":return t||r?"en dan":"enim dnem";case"dd":return a+=1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi",a;case"M":return t||r?"en mesec":"enim mesecem";case"MM":return a+=1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci",a;case"y":return t||r?"eno leto":"enim letom";case"yy":return a+=1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti",a}}var n=e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n}))},"81e9":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function r(e,t,n,r){var i="";switch(n){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"ss":return r?"sekunnin":"sekuntia";case"m":return r?"minuutin":"minuutti";case"mm":i=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":i=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":i=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":i=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":i=r?"vuoden":"vuotta";break}return i=a(e,r)+" "+i,i}function a(e,r){return e<10?r?n[e]:t[e]:e}var i=e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return i}))},8230:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}});return r}))},8378:function(e,t){var n=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},"83a1":function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},8436:function(e,t){e.exports=function(){}},"84aa":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}});return t}))},"84f2":function(e,t){e.exports={}},"85f2":function(e,t,n){e.exports=n("454f")},8615:function(e,t,n){var r=n("5ca1"),a=n("504c")(!1);r(r.S,"Object",{values:function(e){return a(e)}})},8689:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"},r=e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}});return r}))},"86cc":function(e,t,n){var r=n("cb7c"),a=n("c69a"),i=n("6a99"),o=Object.defineProperty;t.f=n("9e1e")?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),a)try{return o(e,t,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},8840:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return t}))},"898b":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,i=e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return i}))},"8b97":function(e,t,n){var r=n("d3f4"),a=n("cb7c"),i=function(e,t){if(a(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{r=n("9b43")(Function.call,n("11e9").f(Object.prototype,"__proto__").set,2),r(e,[]),t=!(e instanceof Array)}catch(a){t=!0}return function(e,n){return i(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:i}},"8d47":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}var n=e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"===typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,n){var r=this._calendarEl[e],a=n&&n.hours();return t(r)&&(r=r.apply(n)),r.replace("{}",a%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}});return n}))},"8d57":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function r(e){return e%10<5&&e%10>1&&~~(e/10)%10!==1}function a(e,t,n){var a=e+" ";switch(n){case"ss":return a+(r(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return a+(r(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return a+(r(e)?"godziny":"godzin");case"MM":return a+(r(e)?"miesiące":"miesięcy");case"yy":return a+(r(e)?"lata":"lat")}}var i=e.defineLocale("pl",{months:function(e,r){return e?""===r?"("+n[e.month()]+"|"+t[e.month()]+")":/D MMMM/.test(r)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:a,m:a,mm:a,h:a,hh:a,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:a,y:"rok",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return i}))},"8df4":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"},r=e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}});return r}))},"8e60":function(e,t,n){e.exports=!n("294c")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},"8e6e":function(e,t,n){var r=n("5ca1"),a=n("990b"),i=n("6821"),o=n("11e9"),s=n("f1ae");r(r.S,"Object",{getOwnPropertyDescriptors:function(e){var t,n,r=i(e),u=o.f,l=a(r),c={},d=0;while(l.length>d)n=u(r,t=l[d++]),void 0!==n&&s(c,t,n);return c}})},"8e73":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},i=function(e){return function(t,n,i,o){var s=r(t),u=a[e][r(t)];return 2===s&&(u=u[n?0:1]),u.replace(/%d/i,t)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],s=e.defineLocale("ar",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});return s}))},"8f60":function(e,t,n){"use strict";var r=n("a159"),a=n("aebd"),i=n("45f2"),o={};n("35e8")(o,n("5168")("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(o,{next:a(1,n)}),i(e,t+" Iterator")}},9003:function(e,t,n){var r=n("6b4c");e.exports=Array.isArray||function(e){return"Array"==r(e)}},9043:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},r=e.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}});return r}))},9093:function(e,t,n){var r=n("ce10"),a=n("e11e").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,a)}},"90ea":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}});return t}))},9138:function(e,t,n){e.exports=n("35e8")},9166:function(e){e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},"93ed":function(e,t,n){var r=n("4245");function a(e){var t=r(this,e)["delete"](e);return this.size-=t?1:0,t}e.exports=a},9520:function(e,t,n){var r=n("3729"),a=n("1a8c"),i="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";function l(e){if(!a(e))return!1;var t=r(e);return t==o||t==s||t==i||t==u}e.exports=l},"957c":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t){var n=e.split("_");return t%10===1&&t%100!==11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){var a={ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===r?n?"минута":"минуту":e+" "+t(a[r],+e)}var r=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],a=e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:r,longMonthsParse:r,shortMonthsParse:r,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:n,m:n,mm:n,h:"час",hh:n,d:"день",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}});return a}))},"958b":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n,r){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}var n=e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}});return n}))},"95d5":function(e,t,n){var r=n("40c3"),a=n("5168")("iterator"),i=n("481b");e.exports=n("584a").isIterable=function(e){var t=Object(e);return void 0!==t[a]||"@@iterator"in t||i.hasOwnProperty(r(t))}},9609:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"},n=e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){var n=e%10,r=e>=100?100:null;return e+(t[e]||t[n]||t[r])},week:{dow:1,doy:7}});return n}))},9638:function(e,t){function n(e,t){return e===t||e!==e&&t!==t}e.exports=n},"96cf":function(e,t,n){var r=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,a="function"===typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",o=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function u(e,t,n,r){var a=t&&t.prototype instanceof p?t:p,i=Object.create(a.prototype),o=new S(r||[]);return i._invoke=k(e,n,o),i}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(r){return{type:"throw",arg:r}}}e.wrap=u;var c="suspendedStart",d="suspendedYield",f="executing",h="completed",m={};function p(){}function _(){}function y(){}var g={};g[i]=function(){return this};var v=Object.getPrototypeOf,b=v&&v(v(T([])));b&&b!==n&&r.call(b,i)&&(g=b);var M=y.prototype=p.prototype=Object.create(g);function w(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function L(e){function t(n,a,i,o){var s=l(e[n],e,a);if("throw"!==s.type){var u=s.arg,c=u.value;return c&&"object"===typeof c&&r.call(c,"__await")?Promise.resolve(c.__await).then((function(e){t("next",e,i,o)}),(function(e){t("throw",e,i,o)})):Promise.resolve(c).then((function(e){u.value=e,i(u)}),(function(e){return t("throw",e,i,o)}))}o(s.arg)}var n;function a(e,r){function a(){return new Promise((function(n,a){t(e,r,n,a)}))}return n=n?n.then(a,a):a()}this._invoke=a}function k(e,t,n){var r=c;return function(a,i){if(r===f)throw new Error("Generator is already running");if(r===h){if("throw"===a)throw i;return O()}n.method=a,n.arg=i;while(1){var o=n.delegate;if(o){var s=x(o,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===c)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var u=l(e,t,n);if("normal"===u.type){if(r=n.done?h:d,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=h,n.method="throw",n.arg=u.arg)}}}function x(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator["return"]&&(n.method="return",n.arg=t,x(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var a=l(r,e.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,m;var i=a.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function Y(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function D(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(Y,this),this.reset(!0)}function T(e){if(e){var n=e[i];if(n)return n.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var a=-1,o=function n(){while(++a=0;--i){var o=this.tryEntries[i],s=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var u=r.call(o,"catchLoc"),l=r.call(o,"finallyLoc");if(u&&l){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),D(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;D(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:T(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=r}catch(a){Function("r","regeneratorRuntime = r")(r)}},"972c":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n){var r={ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},a=" ";return(e%100>=20||e>=100&&e%100===0)&&(a=" de "),e+a+r[n]}var n=e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}});return n}))},9797:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t=e,n="",r=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return t>20?n=40===t||50===t||60===t||80===t||100===t?"fed":"ain":t>0&&(n=r[t]),e+n},week:{dow:1,doy:4}});return t}))},"990b":function(e,t,n){var r=n("9093"),a=n("2621"),i=n("cb7c"),o=n("7726").Reflect;e.exports=o&&o.ownKeys||function(e){var t=r.f(i(e)),n=a.f;return n?t.concat(n(e)):t}},"9aa9":function(e,t){t.f=Object.getOwnPropertySymbols},"9b02":function(e,t,n){var r=n("656b");function a(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}e.exports=a},"9b43":function(e,t,n){var r=n("d8e8");e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,a){return e.call(t,n,r,a)}}return function(){return e.apply(t,arguments)}}},"9c6c":function(e,t,n){var r=n("2b4c")("unscopables"),a=Array.prototype;void 0==a[r]&&n("32e9")(a,r,{}),e.exports=function(e){a[r][e]=!0}},"9c80":function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(t){return{e:!0,v:t}}}},"9def":function(e,t,n){var r=n("4588"),a=Math.min;e.exports=function(e){return e>0?a(r(e),9007199254740991):0}},"9e1e":function(e,t,n){e.exports=!n("79e5")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},"9e69":function(e,t,n){var r=n("2b3e"),a=r.Symbol;e.exports=a},"9f26":function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}});return t}))},a0d3:function(e,t,n){"use strict";var r=n("0f7c");e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},a159:function(e,t,n){var r=n("e4ae"),a=n("7e90"),i=n("1691"),o=n("5559")("IE_PROTO"),s=function(){},u="prototype",l=function(){var e,t=n("1ec9")("iframe"),r=i.length,a="<",o=">";t.style.display="none",n("32fc").appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(a+"script"+o+"document.F=Object"+a+"/script"+o),e.close(),l=e.F;while(r--)delete l[u][i[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[u]=r(e),n=new s,s[u]=null,n[o]=e):n=l(),void 0===t?n:a(n,t)}},a16e:function(e,t,n){var r=n("f0f2"),a=n("9166"),i=n("64b2"),o=n("7073"),s=l(i),u=l(r);function l(e){var t=Object.keys(e).join("|"),n=f(e);t+="|#[xX][\\da-fA-F]+|#\\d+";var r=new RegExp("&(?:"+t+");","g");return function(e){return String(e).replace(r,n)}}var c=function(){for(var e=Object.keys(a).sort(d),t=Object.keys(r).sort(d),n=0,i=0;nv;v++)if(_=t?g(o(m=e[v])[0],m[1]):g(e[v]),_===l||_===c)return _}else for(p=y.call(e);!(m=p.next()).done;)if(_=a(p,g,m.value,t),_===l||_===c)return _};t.BREAK=l,t.RETURN=c},a25f:function(e,t,n){var r=n("7726"),a=r.navigator;e.exports=a&&a.userAgent||""},a356:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}});return t}))},a481:function(e,t,n){"use strict";var r=n("cb7c"),a=n("4bf8"),i=n("9def"),o=n("4588"),s=n("0390"),u=n("5f1b"),l=Math.max,c=Math.min,d=Math.floor,f=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g,m=function(e){return void 0===e?e:String(e)};n("214f")("replace",2,(function(e,t,n,p){return[function(r,a){var i=e(this),o=void 0==r?void 0:r[t];return void 0!==o?o.call(r,i,a):n.call(String(i),r,a)},function(e,t){var a=p(n,e,this,t);if(a.done)return a.value;var d=r(e),f=String(this),h="function"===typeof t;h||(t=String(t));var y=d.global;if(y){var g=d.unicode;d.lastIndex=0}var v=[];while(1){var b=u(d,f);if(null===b)break;if(v.push(b),!y)break;var M=String(b[0]);""===M&&(d.lastIndex=s(f,i(d.lastIndex),g))}for(var w="",L=0,k=0;k=L&&(w+=f.slice(L,Y)+A,L=Y+x.length)}return w+f.slice(L)}];function _(e,t,r,i,o,s){var u=r+e.length,l=i.length,c=h;return void 0!==o&&(o=a(o),c=f),n.call(s,c,(function(n,a){var s;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,r);case"'":return t.slice(u);case"<":s=o[a.slice(1,-1)];break;default:var c=+a;if(0===c)return n;if(c>l){var f=d(c/10);return 0===f?n:f<=l?void 0===i[f-1]?a.charAt(1):i[f-1]+a.charAt(1):n}s=i[c-1]}return void 0===s?"":s}))}}))},a501:function(e,t){function n(e,t){if(!Array.isArray(e)||!Array.isArray(t))throw new Error("expected both arguments to be arrays");for(var n=[],r=e.length,a=0;a-1&&-1==n.indexOf(i)&&n.push(i)}return n}e.exports=n},a524:function(e,t,n){var r=n("4245");function a(e){return r(this,e).has(e)}e.exports=a},a5b8:function(e,t,n){"use strict";var r=n("d8e8");function a(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new a(e)}},a745:function(e,t,n){e.exports=n("f410")},a7fa:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});return t}))},aae3:function(e,t,n){var r=n("d3f4"),a=n("2d95"),i=n("2b4c")("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==a(e))}},aba2:function(e,t,n){var r=n("e53d"),a=n("4178").set,i=r.MutationObserver||r.WebKitMutationObserver,o=r.process,s=r.Promise,u="process"==n("6b4c")(o);e.exports=function(){var e,t,n,l=function(){var r,a;u&&(r=o.domain)&&r.exit();while(e){a=e.fn,e=e.next;try{a()}catch(i){throw e?n():t=void 0,i}}t=void 0,r&&r.enter()};if(u)n=function(){o.nextTick(l)};else if(!i||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var c=s.resolve(void 0);n=function(){c.then(l)}}else n=function(){a.call(r,l)};else{var d=!0,f=document.createTextNode("");new i(l).observe(f,{characterData:!0}),n=function(){f.data=d=!d}}return function(r){var a={fn:r,next:void 0};t&&(t.next=a),e||(e=a,n()),t=a}}},ac6a:function(e,t,n){for(var r=n("cadf"),a=n("0d58"),i=n("2aba"),o=n("7726"),s=n("32e9"),u=n("84f2"),l=n("2b4c"),c=l("iterator"),d=l("toStringTag"),f=u.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},m=a(h),p=0;p=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},d=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=(t.children||[]).map(p.bind(null,e)),i=Object.keys(t.attributes||{}).reduce((function(e,n){var r=t.attributes[n];switch(n){case"class":e["class"]=h(r);break;case"style":e["style"]=f(r);break;default:e.attrs[n]=r}return e}),{class:{},style:{},attrs:{}}),o=r.class,s=void 0===o?{}:o,u=r.style,d=void 0===u?{}:u,_=r.attrs,y=void 0===_?{}:_,g=c(r,["class","style","attrs"]);return"string"===typeof t?t:e(t.tag,l({class:m(i.class,s),style:l({},i.style,d),attrs:l({},i.attrs,y)},g,{props:n}),a)}var _=!1;try{_=!0}catch(L){}function y(){var e;!_&&console&&"function"===typeof console.error&&(e=console).error.apply(e,arguments)}function g(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?u({},e,t):{}}function v(e){var t,n=(t={"fa-spin":e.spin,"fa-pulse":e.pulse,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip-horizontal":"horizontal"===e.flip||"both"===e.flip,"fa-flip-vertical":"vertical"===e.flip||"both"===e.flip},u(t,"fa-"+e.size,null!==e.size),u(t,"fa-rotate-"+e.rotation,null!==e.rotation),u(t,"fa-pull-"+e.pull,null!==e.pull),u(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(n).map((function(e){return n[e]?e:null})).filter((function(e){return e}))}function b(e,t){var n=0===(e||"").length?[]:[e];return n.concat(t).join(" ")}function M(e){return null===e?null:"object"===("undefined"===typeof e?"undefined":s(e))&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"===typeof e?{prefix:"fas",iconName:e}:void 0}var w={name:"FontAwesomeIcon",functional:!0,props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:String,default:null,validator:function(e){return["horizontal","vertical","both"].indexOf(e)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(e){return["right","left"].indexOf(e)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(e){return[90,180,270].indexOf(parseInt(e,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(e){return["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(e)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},inverse:{type:Boolean,default:!1}},render:function(e,t){var n=t.props,a=n.icon,i=n.mask,o=n.symbol,s=n.title,u=M(a),c=g("classes",v(n)),d=g("transform","string"===typeof n.transform?r["d"].transform(n.transform):n.transform),f=g("mask",M(i)),h=Object(r["b"])(u,l({},c,d,f,{symbol:o,title:s}));if(!h)return y("Could not find one or more icon(s)",u,f);var m=h.abstract,_=p.bind(null,e);return _(m[0],{},t.data)}};Boolean,Boolean}).call(this,n("c8ba"))},ada2:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t){var n=e.split("_");return t%10===1&&t%100!==11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){var a={ss:n?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:n?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:n?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===r?n?"хвилина":"хвилину":"h"===r?n?"година":"годину":e+" "+t(a[r],+e)}function r(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};if(!0===e)return n["nominative"].slice(1,7).concat(n["nominative"].slice(0,1));if(!e)return n["nominative"];var r=/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative";return n[r][e.day()]}function a(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}var i=e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:r,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:a("[Сьогодні "),nextDay:a("[Завтра "),lastDay:a("[Вчора "),nextWeek:a("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return a("[Минулої] dddd [").call(this);case 1:case 2:case 4:return a("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:n,m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}});return i}))},aebd:function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},afab:function(e,t,n){var r,a; +/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.2 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(i,o){"use strict";e.exports?e.exports=o():(r=o,a="function"===typeof r?r.call(t,n,t,e):r,void 0===a||(e.exports=a))})(0,(function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return!1;var r=e.lastIndexOf(".",t-1);if(r<=0||r>=t-1)return!1;var a=n.list[e.slice(t+1)];return!!a&&a.indexOf(" "+e.slice(r+1,t)+" ")>=0},is:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return!1;var r=e.lastIndexOf(".",t-1);if(r>=0)return!1;var a=n.list[e.slice(t+1)];return!!a&&a.indexOf(" "+e.slice(0,t)+" ")>=0},get:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return null;var r=e.lastIndexOf(".",t-1);if(r<=0||r>=t-1)return null;var a=n.list[e.slice(t+1)];return a?a.indexOf(" "+e.slice(r+1,t)+" ")<0?null:e.slice(r+1):null},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n}))},b0b4:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n("85f2"),a=n.n(r);function i(e,t){for(var n=0;n0&&!a.call(e,0))for(var h=0;h0)for(var p=0;p0?a(r(e),9007199254740991):0}},b469:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}var n=e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n}))},b4c0:function(e,t,n){var r=n("cb5a");function a(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}e.exports=a},b514:function(e){e.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},b53d:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}});return t}))},b540:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}});return t}))},b702:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r={prefix:"far",iconName:"circle",icon:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"]}},b84c:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}))},b8e3:function(e,t){e.exports=!0},b97c:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10===1&&t%100!==11?e[2]:e[3]:t%10===1&&t%100!==11?e[0]:e[1]}function r(e,r,a){return e+" "+n(t[a],e,r)}function a(e,r,a){return n(t[a],e,r)}function i(e,t){return t?"dažas sekundes":"dažām sekundēm"}var o=e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:i,ss:r,m:a,mm:r,h:a,hh:r,d:a,dd:r,M:a,MM:r,y:a,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return o}))},bb71:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}var n=e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n}))},bbc0:function(e,t,n){var r=n("6044"),a="__lodash_hash_undefined__",i=Object.prototype,o=i.hasOwnProperty;function s(e){var t=this.__data__;if(r){var n=t[e];return n===a?void 0:n}return o.call(t,e)?t[e]:void 0}e.exports=s},bc13:function(e,t,n){var r=n("e53d"),a=r.navigator;e.exports=a&&a.userAgent||""},bcaa:function(e,t,n){var r=n("cb7c"),a=n("d3f4"),i=n("a5b8");e.exports=function(e,t){if(r(e),a(t)&&t.constructor===e)return t;var n=i.f(e),o=n.resolve;return o(t),n.promise}},bd86:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n("85f2"),a=n.n(r);function i(e,t,n){return t in e?a()(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},be13:function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},bf0b:function(e,t,n){var r=n("355d"),a=n("aebd"),i=n("36c3"),o=n("1bc3"),s=n("07e3"),u=n("794b"),l=Object.getOwnPropertyDescriptor;t.f=n("8e60")?l:function(e,t){if(e=i(e),t=o(t,!0),u)try{return l(e,t)}catch(n){}if(s(e,t))return a(!r.f.call(e,t),e[t])}},c074:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return i})),n.d(t,"d",(function(){return o})),n.d(t,"e",(function(){return s})),n.d(t,"f",(function(){return u})),n.d(t,"g",(function(){return l})),n.d(t,"h",(function(){return c})),n.d(t,"i",(function(){return d})),n.d(t,"j",(function(){return f})),n.d(t,"k",(function(){return h})),n.d(t,"l",(function(){return m})),n.d(t,"m",(function(){return p})),n.d(t,"n",(function(){return _})),n.d(t,"o",(function(){return y})),n.d(t,"p",(function(){return g})),n.d(t,"q",(function(){return v})),n.d(t,"r",(function(){return b})),n.d(t,"s",(function(){return M})),n.d(t,"t",(function(){return w})),n.d(t,"u",(function(){return L})),n.d(t,"v",(function(){return k})),n.d(t,"w",(function(){return x})),n.d(t,"x",(function(){return Y})),n.d(t,"y",(function(){return D})),n.d(t,"z",(function(){return S})),n.d(t,"A",(function(){return T})),n.d(t,"B",(function(){return O}));var r={prefix:"fas",iconName:"angle-down",icon:[320,512,[],"f107","M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"]},a={prefix:"fas",iconName:"angle-up",icon:[320,512,[],"f106","M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"]},i={prefix:"fas",iconName:"arrow-circle-down",icon:[512,512,[],"f0ab","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"]},o={prefix:"fas",iconName:"ban",icon:[512,512,[],"f05e","M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"]},s={prefix:"fas",iconName:"bars",icon:[448,512,[],"f0c9","M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"]},u={prefix:"fas",iconName:"boxes",icon:[576,512,[],"f468","M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"]},l={prefix:"fas",iconName:"bullhorn",icon:[576,512,[],"f0a1","M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"]},c={prefix:"fas",iconName:"chart-bar",icon:[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},d={prefix:"fas",iconName:"circle",icon:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"]},f={prefix:"fas",iconName:"clock",icon:[512,512,[],"f017","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"]},h={prefix:"fas",iconName:"cog",icon:[512,512,[],"f013","M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},m={prefix:"fas",iconName:"cube",icon:[512,512,[],"f1b2","M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"]},p={prefix:"fas",iconName:"database",icon:[448,512,[],"f1c0","M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"]},_={prefix:"fas",iconName:"envelope",icon:[512,512,[],"f0e0","M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"]},y={prefix:"fas",iconName:"exclamation-circle",icon:[512,512,[],"f06a","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},g={prefix:"fas",iconName:"exclamation-triangle",icon:[576,512,[],"f071","M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},v={prefix:"fas",iconName:"history",icon:[512,512,[],"f1da","M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"]},b={prefix:"fas",iconName:"indent",icon:[448,512,[],"f03c","M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},M={prefix:"fas",iconName:"link",icon:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"]},w={prefix:"fas",iconName:"list-ol",icon:[512,512,[],"f0cb","M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"]},L={prefix:"fas",iconName:"lock",icon:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"]},k={prefix:"fas",iconName:"microchip",icon:[512,512,[],"f2db","M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"]},x={prefix:"fas",iconName:"outdent",icon:[448,512,[],"f03b","M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},Y={prefix:"fas",iconName:"pencil-ruler",icon:[512,512,[],"f5ae","M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"]},D={prefix:"fas",iconName:"percent",icon:[448,512,[],"f295","M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"]},S={prefix:"fas",iconName:"search",icon:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"]},T={prefix:"fas",iconName:"times-circle",icon:[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"]},O={prefix:"fas",iconName:"user",icon:[448,512,[],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]}},c109:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}});return t}))},c1df:function(e,t,n){(function(e){(function(t,n){e.exports=n()})(0,(function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function i(e){t=e}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function s(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function u(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}function l(e){return void 0===e}function c(e){return"number"===typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,r=[];for(n=0;n>>0,r=0;r0)for(n=0;n0?"future":"past"];return j(n)?n(t):n.replace(/%s/i,t)}var J={};function Q(e,t){var n=e.toLowerCase();J[n]=J[n+"s"]=J[t]=e}function Z(e){return"string"===typeof e?J[e]||J[e.toLowerCase()]:void 0}function K(e){var t,n,r={};for(n in e)h(e,n)&&(t=Z(n),t&&(r[t]=e[n]));return r}var X={};function ee(e,t){X[e]=t}function te(e){var t=[];for(var n in e)t.push({unit:n,priority:X[n]});return t.sort((function(e,t){return e.priority-t.priority})),t}function ne(e,t,n){var r=""+Math.abs(e),a=t-r.length,i=e>=0;return(i?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var re=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ae=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ie={},oe={};function se(e,t,n,r){var a=r;"string"===typeof r&&(a=function(){return this[r]()}),e&&(oe[e]=a),t&&(oe[t[0]]=function(){return ne(a.apply(this,arguments),t[1],t[2])}),n&&(oe[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function ue(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function le(e){var t,n,r=e.match(re);for(t=0,n=r.length;t=0&&ae.test(e))e=e.replace(ae,r),ae.lastIndex=0,n-=1;return e}var fe=/\d/,he=/\d\d/,me=/\d{3}/,pe=/\d{4}/,_e=/[+-]?\d{6}/,ye=/\d\d?/,ge=/\d\d\d\d?/,ve=/\d\d\d\d\d\d?/,be=/\d{1,3}/,Me=/\d{1,4}/,we=/[+-]?\d{1,6}/,Le=/\d+/,ke=/[+-]?\d+/,xe=/Z|[+-]\d\d:?\d\d/gi,Ye=/Z|[+-]\d\d(?::?\d\d)?/gi,De=/[+-]?\d+(\.\d{1,3})?/,Se=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Te={};function Oe(e,t,n){Te[e]=j(t)?t:function(e,r){return e&&n?n:t}}function Ae(e,t){return h(Te,e)?Te[e](t._strict,t._locale):new RegExp(Pe(e))}function Pe(e){return je(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a})))}function je(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var He={};function Ce(e,t){var n,r=t;for("string"===typeof e&&(e=[e]),c(t)&&(r=function(e,n){n[t]=Y(e)}),n=0;n68?1900:2e3)};var Je,Qe=Ke("FullYear",!0);function Ze(){return Ge(this.year())}function Ke(e,t){return function(n){return null!=n?(et(this,e,n),a.updateOffset(this,t),this):Xe(this,e)}}function Xe(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function et(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&Ge(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),at(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function tt(e){return e=Z(e),j(this[e])?this[e]():this}function nt(e,t){if("object"===typeof e){e=K(e);for(var n=te(e),r=0;r=0?(s=new Date(e+400,t,n,r,a,i,o),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,r,a,i,o),s}function Mt(e){var t;if(e<100&&e>=0){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function wt(e,t,n){var r=7+t-n,a=(7+Mt(e,0,r).getUTCDay()-t)%7;return-a+r-1}function Lt(e,t,n,r,a){var i,o,s=(7+n-r)%7,u=wt(e,r,a),l=1+7*(t-1)+s+u;return l<=0?(i=e-1,o=qe(i)+l):l>qe(e)?(i=e+1,o=l-qe(e)):(i=e,o=l),{year:i,dayOfYear:o}}function kt(e,t,n){var r,a,i=wt(e.year(),t,n),o=Math.floor((e.dayOfYear()-i-1)/7)+1;return o<1?(a=e.year()-1,r=o+xt(a,t,n)):o>xt(e.year(),t,n)?(r=o-xt(e.year(),t,n),a=e.year()+1):(a=e.year(),r=o),{week:r,year:a}}function xt(e,t,n){var r=wt(e,t,n),a=wt(e+1,t,n);return(qe(e)-r+a)/7}function Yt(e){return kt(e,this._week.dow,this._week.doy).week}se("w",["ww",2],"wo","week"),se("W",["WW",2],"Wo","isoWeek"),Q("week","w"),Q("isoWeek","W"),ee("week",5),ee("isoWeek",5),Oe("w",ye),Oe("ww",ye,he),Oe("W",ye),Oe("WW",ye,he),Ee(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=Y(e)}));var Dt={dow:0,doy:6};function St(){return this._week.dow}function Tt(){return this._week.doy}function Ot(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function At(e){var t=kt(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Pt(e,t){return"string"!==typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"===typeof e?e:null):parseInt(e,10)}function jt(e,t){return"string"===typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Ht(e,t){return e.slice(t,7).concat(e.slice(0,t))}se("d",0,"do","day"),se("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),se("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),se("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),se("e",0,0,"weekday"),se("E",0,0,"isoWeekday"),Q("day","d"),Q("weekday","e"),Q("isoWeekday","E"),ee("day",11),ee("weekday",11),ee("isoWeekday",11),Oe("d",ye),Oe("e",ye),Oe("E",ye),Oe("dd",(function(e,t){return t.weekdaysMinRegex(e)})),Oe("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),Oe("dddd",(function(e,t){return t.weekdaysRegex(e)})),Ee(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:y(n).invalidWeekday=e})),Ee(["d","e","E"],(function(e,t,n,r){t[r]=Y(e)}));var Ct="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");function Et(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ht(n,this._week.dow):e?n[e.day()]:n}var zt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");function Ft(e){return!0===e?Ht(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}var It="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Nt(e){return!0===e?Ht(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Wt(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=p([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?(a=Je.call(this._weekdaysParse,o),-1!==a?a:null):"ddd"===t?(a=Je.call(this._shortWeekdaysParse,o),-1!==a?a:null):(a=Je.call(this._minWeekdaysParse,o),-1!==a?a:null):"dddd"===t?(a=Je.call(this._weekdaysParse,o),-1!==a?a:(a=Je.call(this._shortWeekdaysParse,o),-1!==a?a:(a=Je.call(this._minWeekdaysParse,o),-1!==a?a:null))):"ddd"===t?(a=Je.call(this._shortWeekdaysParse,o),-1!==a?a:(a=Je.call(this._weekdaysParse,o),-1!==a?a:(a=Je.call(this._minWeekdaysParse,o),-1!==a?a:null))):(a=Je.call(this._minWeekdaysParse,o),-1!==a?a:(a=Je.call(this._weekdaysParse,o),-1!==a?a:(a=Je.call(this._shortWeekdaysParse,o),-1!==a?a:null)))}function Rt(e,t,n){var r,a,i;if(this._weekdaysParseExact)return Wt.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=p([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function Vt(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Pt(e,this.localeData()),this.add(e-t,"d")):t}function Ut(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function $t(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=jt(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}var Bt=Se;function qt(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Kt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=Bt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}var Gt=Se;function Jt(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Kt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Gt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}var Qt=Se;function Zt(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Kt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Qt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Kt(){function e(e,t){return t.length-e.length}var t,n,r,a,i,o=[],s=[],u=[],l=[];for(t=0;t<7;t++)n=p([2e3,1]).day(t),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),o.push(r),s.push(a),u.push(i),l.push(r),l.push(a),l.push(i);for(o.sort(e),s.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)s[t]=je(s[t]),u[t]=je(u[t]),l[t]=je(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Xt(){return this.hours()%12||12}function en(){return this.hours()||24}function tn(e,t){se(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function nn(e,t){return t._meridiemParse}function rn(e){return"p"===(e+"").toLowerCase().charAt(0)}se("H",["HH",2],0,"hour"),se("h",["hh",2],0,Xt),se("k",["kk",2],0,en),se("hmm",0,0,(function(){return""+Xt.apply(this)+ne(this.minutes(),2)})),se("hmmss",0,0,(function(){return""+Xt.apply(this)+ne(this.minutes(),2)+ne(this.seconds(),2)})),se("Hmm",0,0,(function(){return""+this.hours()+ne(this.minutes(),2)})),se("Hmmss",0,0,(function(){return""+this.hours()+ne(this.minutes(),2)+ne(this.seconds(),2)})),tn("a",!0),tn("A",!1),Q("hour","h"),ee("hour",13),Oe("a",nn),Oe("A",nn),Oe("H",ye),Oe("h",ye),Oe("k",ye),Oe("HH",ye,he),Oe("hh",ye,he),Oe("kk",ye,he),Oe("hmm",ge),Oe("hmmss",ve),Oe("Hmm",ge),Oe("Hmmss",ve),Ce(["H","HH"],We),Ce(["k","kk"],(function(e,t,n){var r=Y(e);t[We]=24===r?0:r})),Ce(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),Ce(["h","hh"],(function(e,t,n){t[We]=Y(e),y(n).bigHour=!0})),Ce("hmm",(function(e,t,n){var r=e.length-2;t[We]=Y(e.substr(0,r)),t[Re]=Y(e.substr(r)),y(n).bigHour=!0})),Ce("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[We]=Y(e.substr(0,r)),t[Re]=Y(e.substr(r,2)),t[Ve]=Y(e.substr(a)),y(n).bigHour=!0})),Ce("Hmm",(function(e,t,n){var r=e.length-2;t[We]=Y(e.substr(0,r)),t[Re]=Y(e.substr(r))})),Ce("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[We]=Y(e.substr(0,r)),t[Re]=Y(e.substr(r,2)),t[Ve]=Y(e.substr(a))}));var an=/[ap]\.?m?\.?/i;function on(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var sn,un=Ke("Hours",!0),ln={calendar:z,longDateFormat:I,invalidDate:W,ordinal:V,dayOfMonthOrdinalParse:U,relativeTime:B,months:ot,monthsShort:ut,week:Dt,weekdays:Ct,weekdaysMin:It,weekdaysShort:zt,meridiemParse:an},cn={},dn={};function fn(e){return e?e.toLowerCase().replace("_","-"):e}function hn(e){var t,n,r,a,i=0;while(i0){if(r=mn(a.slice(0,t).join("-")),r)return r;if(n&&n.length>=t&&D(a,n,!0)>=t-1)break;t--}i++}return sn}function mn(t){var r=null;if(!cn[t]&&"undefined"!==typeof e&&e&&e.exports)try{r=sn._abbr;n("4678")("./"+t),pn(r)}catch(a){}return cn[t]}function pn(e,t){var n;return e&&(n=l(t)?gn(e):_n(e,t),n?sn=n:"undefined"!==typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),sn._abbr}function _n(e,t){if(null!==t){var n,r=ln;if(t.abbr=e,null!=cn[e])P("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=cn[e]._config;else if(null!=t.parentLocale)if(null!=cn[t.parentLocale])r=cn[t.parentLocale]._config;else{if(n=mn(t.parentLocale),null==n)return dn[t.parentLocale]||(dn[t.parentLocale]=[]),dn[t.parentLocale].push({name:e,config:t}),null;r=n._config}return cn[e]=new E(C(r,t)),dn[e]&&dn[e].forEach((function(e){_n(e.name,e.config)})),pn(e),cn[e]}return delete cn[e],null}function yn(e,t){if(null!=t){var n,r,a=ln;r=mn(e),null!=r&&(a=r._config),t=C(a,t),n=new E(t),n.parentLocale=cn[e],cn[e]=n,pn(e)}else null!=cn[e]&&(null!=cn[e].parentLocale?cn[e]=cn[e].parentLocale:null!=cn[e]&&delete cn[e]);return cn[e]}function gn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return sn;if(!o(e)){if(t=mn(e),t)return t;e=[e]}return hn(e)}function vn(){return O(cn)}function bn(e){var t,n=e._a;return n&&-2===y(e).overflow&&(t=n[Ie]<0||n[Ie]>11?Ie:n[Ne]<1||n[Ne]>at(n[Fe],n[Ie])?Ne:n[We]<0||n[We]>24||24===n[We]&&(0!==n[Re]||0!==n[Ve]||0!==n[Ue])?We:n[Re]<0||n[Re]>59?Re:n[Ve]<0||n[Ve]>59?Ve:n[Ue]<0||n[Ue]>999?Ue:-1,y(e)._overflowDayOfYear&&(tNe)&&(t=Ne),y(e)._overflowWeeks&&-1===t&&(t=$e),y(e)._overflowWeekday&&-1===t&&(t=Be),y(e).overflow=t),e}function Mn(e,t,n){return null!=e?e:null!=t?t:n}function wn(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function Ln(e){var t,n,r,a,i,o=[];if(!e._d){for(r=wn(e),e._w&&null==e._a[Ne]&&null==e._a[Ie]&&kn(e),null!=e._dayOfYear&&(i=Mn(e._a[Fe],r[Fe]),(e._dayOfYear>qe(i)||0===e._dayOfYear)&&(y(e)._overflowDayOfYear=!0),n=Mt(i,0,e._dayOfYear),e._a[Ie]=n.getUTCMonth(),e._a[Ne]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[We]&&0===e._a[Re]&&0===e._a[Ve]&&0===e._a[Ue]&&(e._nextDay=!0,e._a[We]=0),e._d=(e._useUTC?Mt:bt).apply(null,o),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[We]=24),e._w&&"undefined"!==typeof e._w.d&&e._w.d!==a&&(y(e).weekdayMismatch=!0)}}function kn(e){var t,n,r,a,i,o,s,u;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)i=1,o=4,n=Mn(t.GG,e._a[Fe],kt(Jn(),1,4).year),r=Mn(t.W,1),a=Mn(t.E,1),(a<1||a>7)&&(u=!0);else{i=e._locale._week.dow,o=e._locale._week.doy;var l=kt(Jn(),i,o);n=Mn(t.gg,e._a[Fe],l.year),r=Mn(t.w,l.week),null!=t.d?(a=t.d,(a<0||a>6)&&(u=!0)):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(u=!0)):a=i}r<1||r>xt(n,i,o)?y(e)._overflowWeeks=!0:null!=u?y(e)._overflowWeekday=!0:(s=Lt(n,r,a,i,o),e._a[Fe]=s.year,e._dayOfYear=s.dayOfYear)}var xn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Yn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Dn=/Z|[+-]\d\d(?::?\d\d)?/,Sn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Tn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],On=/^\/?Date\((\-?\d+)/i;function An(e){var t,n,r,a,i,o,s=e._i,u=xn.exec(s)||Yn.exec(s);if(u){for(y(e).iso=!0,t=0,n=Sn.length;t0&&y(e).unusedInput.push(o),s=s.slice(s.indexOf(n)+n.length),l+=n.length),oe[i]?(n?y(e).empty=!1:y(e).unusedTokens.push(i),ze(i,n,e)):e._strict&&!n&&y(e).unusedTokens.push(i);y(e).charsLeftOver=u-l,s.length>0&&y(e).unusedInput.push(s),e._a[We]<=12&&!0===y(e).bigHour&&e._a[We]>0&&(y(e).bigHour=void 0),y(e).parsedDateParts=e._a.slice(0),y(e).meridiem=e._meridiem,e._a[We]=Rn(e._locale,e._a[We],e._meridiem),Ln(e),bn(e)}else In(e);else An(e)}function Rn(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(r=e.isPM(n),r&&t<12&&(t+=12),r||12!==t||(t=0),t):t}function Vn(e){var t,n,r,a,i;if(0===e._f.length)return y(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:v()}));function Kn(e,t){var n,r;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Jn();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Mr(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(M(e,this),e=Bn(e),e._a){var t=e._isUTC?p(e._a):Jn(e._a);this._isDSTShifted=this.isValid()&&D(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function wr(){return!!this.isValid()&&!this._isUTC}function Lr(){return!!this.isValid()&&this._isUTC}function kr(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}a.updateOffset=function(){};var xr=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Yr=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Dr(e,t){var n,r,a,i=e,o=null;return sr(e)?i={ms:e._milliseconds,d:e._days,M:e._months}:c(e)?(i={},t?i[t]=e:i.milliseconds=e):(o=xr.exec(e))?(n="-"===o[1]?-1:1,i={y:0,d:Y(o[Ne])*n,h:Y(o[We])*n,m:Y(o[Re])*n,s:Y(o[Ve])*n,ms:Y(ur(1e3*o[Ue]))*n}):(o=Yr.exec(e))?(n="-"===o[1]?-1:1,i={y:Sr(o[2],n),M:Sr(o[3],n),w:Sr(o[4],n),d:Sr(o[5],n),h:Sr(o[6],n),m:Sr(o[7],n),s:Sr(o[8],n)}):null==i?i={}:"object"===typeof i&&("from"in i||"to"in i)&&(a=Or(Jn(i.from),Jn(i.to)),i={},i.ms=a.milliseconds,i.M=a.months),r=new or(i),sr(e)&&h(e,"_locale")&&(r._locale=e._locale),r}function Sr(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Tr(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Or(e,t){var n;return e.isValid()&&t.isValid()?(t=fr(t,e),e.isBefore(t)?n=Tr(e,t):(n=Tr(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Ar(e,t){return function(n,r){var a,i;return null===r||isNaN(+r)||(P(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=r,r=i),n="string"===typeof n?+n:n,a=Dr(n,r),Pr(this,a,e),this}}function Pr(e,t,n,r){var i=t._milliseconds,o=ur(t._days),s=ur(t._months);e.isValid()&&(r=null==r||r,s&&ft(e,Xe(e,"Month")+s*n),o&&et(e,"Date",Xe(e,"Date")+o*n),i&&e._d.setTime(e._d.valueOf()+i*n),r&&a.updateOffset(e,o||s))}Dr.fn=or.prototype,Dr.invalid=ir;var jr=Ar(1,"add"),Hr=Ar(-1,"subtract");function Cr(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function Er(e,t){var n=e||Jn(),r=fr(n,this).startOf("day"),i=a.calendarFormat(this,r)||"sameElse",o=t&&(j(t[i])?t[i].call(this,n):t[i]);return this.format(o||this.localeData().calendar(i,this,Jn(n)))}function zr(){return new L(this)}function Fr(e,t){var n=k(e)?e:Jn(e);return!(!this.isValid()||!n.isValid())&&(t=Z(t)||"millisecond","millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()9999?ce(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):j(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",ce(n,"Z")):ce(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Gr(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a="-MM-DD[T]HH:mm:ss.SSS",i=t+'[")]';return this.format(n+r+a+i)}function Jr(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=ce(this,e);return this.localeData().postformat(t)}function Qr(e,t){return this.isValid()&&(k(e)&&e.isValid()||Jn(e).isValid())?Dr({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Zr(e){return this.from(Jn(),e)}function Kr(e,t){return this.isValid()&&(k(e)&&e.isValid()||Jn(e).isValid())?Dr({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Xr(e){return this.to(Jn(),e)}function ea(e){var t;return void 0===e?this._locale._abbr:(t=gn(e),null!=t&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ta=T("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function na(){return this._locale}var ra=1e3,aa=60*ra,ia=60*aa,oa=3506328*ia;function sa(e,t){return(e%t+t)%t}function ua(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-oa:new Date(e,t,n).valueOf()}function la(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-oa:Date.UTC(e,t,n)}function ca(e){var t;if(e=Z(e),void 0===e||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?la:ua;switch(e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=sa(t+(this._isUTC?0:this.utcOffset()*aa),ia);break;case"minute":t=this._d.valueOf(),t-=sa(t,aa);break;case"second":t=this._d.valueOf(),t-=sa(t,ra);break}return this._d.setTime(t),a.updateOffset(this,!0),this}function da(e){var t;if(e=Z(e),void 0===e||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?la:ua;switch(e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=ia-sa(t+(this._isUTC?0:this.utcOffset()*aa),ia)-1;break;case"minute":t=this._d.valueOf(),t+=aa-sa(t,aa)-1;break;case"second":t=this._d.valueOf(),t+=ra-sa(t,ra)-1;break}return this._d.setTime(t),a.updateOffset(this,!0),this}function fa(){return this._d.valueOf()-6e4*(this._offset||0)}function ha(){return Math.floor(this.valueOf()/1e3)}function ma(){return new Date(this.valueOf())}function pa(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function _a(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function ya(){return this.isValid()?this.toISOString():null}function ga(){return g(this)}function va(){return m({},y(this))}function ba(){return y(this).overflow}function Ma(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function wa(e,t){se(0,[e,e.length],0,t)}function La(e){return Da.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function ka(e){return Da.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function xa(){return xt(this.year(),1,4)}function Ya(){var e=this.localeData()._week;return xt(this.year(),e.dow,e.doy)}function Da(e,t,n,r,a){var i;return null==e?kt(this,r,a).year:(i=xt(e,r,a),t>i&&(t=i),Sa.call(this,e,t,n,r,a))}function Sa(e,t,n,r,a){var i=Lt(e,t,n,r,a),o=Mt(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function Ta(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}se(0,["gg",2],0,(function(){return this.weekYear()%100})),se(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),wa("gggg","weekYear"),wa("ggggg","weekYear"),wa("GGGG","isoWeekYear"),wa("GGGGG","isoWeekYear"),Q("weekYear","gg"),Q("isoWeekYear","GG"),ee("weekYear",1),ee("isoWeekYear",1),Oe("G",ke),Oe("g",ke),Oe("GG",ye,he),Oe("gg",ye,he),Oe("GGGG",Me,pe),Oe("gggg",Me,pe),Oe("GGGGG",we,_e),Oe("ggggg",we,_e),Ee(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=Y(e)})),Ee(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),se("Q",0,"Qo","quarter"),Q("quarter","Q"),ee("quarter",7),Oe("Q",fe),Ce("Q",(function(e,t){t[Ie]=3*(Y(e)-1)})),se("D",["DD",2],"Do","date"),Q("date","D"),ee("date",9),Oe("D",ye),Oe("DD",ye,he),Oe("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),Ce(["D","DD"],Ne),Ce("Do",(function(e,t){t[Ne]=Y(e.match(ye)[0])}));var Oa=Ke("Date",!0);function Aa(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}se("DDD",["DDDD",3],"DDDo","dayOfYear"),Q("dayOfYear","DDD"),ee("dayOfYear",4),Oe("DDD",be),Oe("DDDD",me),Ce(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=Y(e)})),se("m",["mm",2],0,"minute"),Q("minute","m"),ee("minute",14),Oe("m",ye),Oe("mm",ye,he),Ce(["m","mm"],Re);var Pa=Ke("Minutes",!1);se("s",["ss",2],0,"second"),Q("second","s"),ee("second",15),Oe("s",ye),Oe("ss",ye,he),Ce(["s","ss"],Ve);var ja,Ha=Ke("Seconds",!1);for(se("S",0,0,(function(){return~~(this.millisecond()/100)})),se(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),se(0,["SSS",3],0,"millisecond"),se(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),se(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),se(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),se(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),se(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),se(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),Q("millisecond","ms"),ee("millisecond",16),Oe("S",be,fe),Oe("SS",be,he),Oe("SSS",be,me),ja="SSSS";ja.length<=9;ja+="S")Oe(ja,Le);function Ca(e,t){t[Ue]=Y(1e3*("0."+e))}for(ja="S";ja.length<=9;ja+="S")Ce(ja,Ca);var Ea=Ke("Milliseconds",!1);function za(){return this._isUTC?"UTC":""}function Fa(){return this._isUTC?"Coordinated Universal Time":""}se("z",0,0,"zoneAbbr"),se("zz",0,0,"zoneName");var Ia=L.prototype;function Na(e){return Jn(1e3*e)}function Wa(){return Jn.apply(null,arguments).parseZone()}function Ra(e){return e}Ia.add=jr,Ia.calendar=Er,Ia.clone=zr,Ia.diff=Ur,Ia.endOf=da,Ia.format=Jr,Ia.from=Qr,Ia.fromNow=Zr,Ia.to=Kr,Ia.toNow=Xr,Ia.get=tt,Ia.invalidAt=ba,Ia.isAfter=Fr,Ia.isBefore=Ir,Ia.isBetween=Nr,Ia.isSame=Wr,Ia.isSameOrAfter=Rr,Ia.isSameOrBefore=Vr,Ia.isValid=ga,Ia.lang=ta,Ia.locale=ea,Ia.localeData=na,Ia.max=Zn,Ia.min=Qn,Ia.parsingFlags=va,Ia.set=nt,Ia.startOf=ca,Ia.subtract=Hr,Ia.toArray=pa,Ia.toObject=_a,Ia.toDate=ma,Ia.toISOString=qr,Ia.inspect=Gr,Ia.toJSON=ya,Ia.toString=Br,Ia.unix=ha,Ia.valueOf=fa,Ia.creationData=Ma,Ia.year=Qe,Ia.isLeapYear=Ze,Ia.weekYear=La,Ia.isoWeekYear=ka,Ia.quarter=Ia.quarters=Ta,Ia.month=ht,Ia.daysInMonth=mt,Ia.week=Ia.weeks=Ot,Ia.isoWeek=Ia.isoWeeks=At,Ia.weeksInYear=Ya,Ia.isoWeeksInYear=xa,Ia.date=Oa,Ia.day=Ia.days=Vt,Ia.weekday=Ut,Ia.isoWeekday=$t,Ia.dayOfYear=Aa,Ia.hour=Ia.hours=un,Ia.minute=Ia.minutes=Pa,Ia.second=Ia.seconds=Ha,Ia.millisecond=Ia.milliseconds=Ea,Ia.utcOffset=mr,Ia.utc=_r,Ia.local=yr,Ia.parseZone=gr,Ia.hasAlignedHourOffset=vr,Ia.isDST=br,Ia.isLocal=wr,Ia.isUtcOffset=Lr,Ia.isUtc=kr,Ia.isUTC=kr,Ia.zoneAbbr=za,Ia.zoneName=Fa,Ia.dates=T("dates accessor is deprecated. Use date instead.",Oa),Ia.months=T("months accessor is deprecated. Use month instead",ht),Ia.years=T("years accessor is deprecated. Use year instead",Qe),Ia.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",pr),Ia.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Mr);var Va=E.prototype;function Ua(e,t,n,r){var a=gn(),i=p().set(r,t);return a[n](i,e)}function $a(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return Ua(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=Ua(e,r,n,"month");return a}function Ba(e,t,n,r){"boolean"===typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var a,i=gn(),o=e?i._week.dow:0;if(null!=n)return Ua(t,(n+o)%7,r,"day");var s=[];for(a=0;a<7;a++)s[a]=Ua(t,(a+o)%7,r,"day");return s}function qa(e,t){return $a(e,t,"months")}function Ga(e,t){return $a(e,t,"monthsShort")}function Ja(e,t,n){return Ba(e,t,n,"weekdays")}function Qa(e,t,n){return Ba(e,t,n,"weekdaysShort")}function Za(e,t,n){return Ba(e,t,n,"weekdaysMin")}Va.calendar=F,Va.longDateFormat=N,Va.invalidDate=R,Va.ordinal=$,Va.preparse=Ra,Va.postformat=Ra,Va.relativeTime=q,Va.pastFuture=G,Va.set=H,Va.months=st,Va.monthsShort=lt,Va.monthsParse=dt,Va.monthsRegex=gt,Va.monthsShortRegex=_t,Va.week=Yt,Va.firstDayOfYear=Tt,Va.firstDayOfWeek=St,Va.weekdays=Et,Va.weekdaysMin=Nt,Va.weekdaysShort=Ft,Va.weekdaysParse=Rt,Va.weekdaysRegex=qt,Va.weekdaysShortRegex=Jt,Va.weekdaysMinRegex=Zt,Va.isPM=rn,Va.meridiem=on,pn("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===Y(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),a.lang=T("moment.lang is deprecated. Use moment.locale instead.",pn),a.langData=T("moment.langData is deprecated. Use moment.localeData instead.",gn);var Ka=Math.abs;function Xa(){var e=this._data;return this._milliseconds=Ka(this._milliseconds),this._days=Ka(this._days),this._months=Ka(this._months),e.milliseconds=Ka(e.milliseconds),e.seconds=Ka(e.seconds),e.minutes=Ka(e.minutes),e.hours=Ka(e.hours),e.months=Ka(e.months),e.years=Ka(e.years),this}function ei(e,t,n,r){var a=Dr(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function ti(e,t){return ei(this,e,t,1)}function ni(e,t){return ei(this,e,t,-1)}function ri(e){return e<0?Math.floor(e):Math.ceil(e)}function ai(){var e,t,n,r,a,i=this._milliseconds,o=this._days,s=this._months,u=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*ri(oi(s)+o),o=0,s=0),u.milliseconds=i%1e3,e=x(i/1e3),u.seconds=e%60,t=x(e/60),u.minutes=t%60,n=x(t/60),u.hours=n%24,o+=x(n/24),a=x(ii(o)),s+=a,o-=ri(oi(a)),r=x(s/12),s%=12,u.days=o,u.months=s,u.years=r,this}function ii(e){return 4800*e/146097}function oi(e){return 146097*e/4800}function si(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if(e=Z(e),"month"===e||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+ii(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(oi(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}}function ui(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*Y(this._months/12):NaN}function li(e){return function(){return this.as(e)}}var ci=li("ms"),di=li("s"),fi=li("m"),hi=li("h"),mi=li("d"),pi=li("w"),_i=li("M"),yi=li("Q"),gi=li("y");function vi(){return Dr(this)}function bi(e){return e=Z(e),this.isValid()?this[e+"s"]():NaN}function Mi(e){return function(){return this.isValid()?this._data[e]:NaN}}var wi=Mi("milliseconds"),Li=Mi("seconds"),ki=Mi("minutes"),xi=Mi("hours"),Yi=Mi("days"),Di=Mi("months"),Si=Mi("years");function Ti(){return x(this.days()/7)}var Oi=Math.round,Ai={ss:44,s:45,m:45,h:22,d:26,M:11};function Pi(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}function ji(e,t,n){var r=Dr(e).abs(),a=Oi(r.as("s")),i=Oi(r.as("m")),o=Oi(r.as("h")),s=Oi(r.as("d")),u=Oi(r.as("M")),l=Oi(r.as("y")),c=a<=Ai.ss&&["s",a]||a0,c[4]=n,Pi.apply(null,c)}function Hi(e){return void 0===e?Oi:"function"===typeof e&&(Oi=e,!0)}function Ci(e,t){return void 0!==Ai[e]&&(void 0===t?Ai[e]:(Ai[e]=t,"s"===e&&(Ai.ss=t-1),!0))}function Ei(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=ji(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}var zi=Math.abs;function Fi(e){return(e>0)-(e<0)||+e}function Ii(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r=zi(this._milliseconds)/1e3,a=zi(this._days),i=zi(this._months);e=x(r/60),t=x(e/60),r%=60,e%=60,n=x(i/12),i%=12;var o=n,s=i,u=a,l=t,c=e,d=r?r.toFixed(3).replace(/\.?0+$/,""):"",f=this.asSeconds();if(!f)return"P0D";var h=f<0?"-":"",m=Fi(this._months)!==Fi(f)?"-":"",p=Fi(this._days)!==Fi(f)?"-":"",_=Fi(this._milliseconds)!==Fi(f)?"-":"";return h+"P"+(o?m+o+"Y":"")+(s?m+s+"M":"")+(u?p+u+"D":"")+(l||c||d?"T":"")+(l?_+l+"H":"")+(c?_+c+"M":"")+(d?_+d+"S":"")}var Ni=or.prototype;return Ni.isValid=ar,Ni.abs=Xa,Ni.add=ti,Ni.subtract=ni,Ni.as=si,Ni.asMilliseconds=ci,Ni.asSeconds=di,Ni.asMinutes=fi,Ni.asHours=hi,Ni.asDays=mi,Ni.asWeeks=pi,Ni.asMonths=_i,Ni.asQuarters=yi,Ni.asYears=gi,Ni.valueOf=ui,Ni._bubble=ai,Ni.clone=vi,Ni.get=bi,Ni.milliseconds=wi,Ni.seconds=Li,Ni.minutes=ki,Ni.hours=xi,Ni.days=Yi,Ni.weeks=Ti,Ni.months=Di,Ni.years=Si,Ni.humanize=Ei,Ni.toISOString=Ii,Ni.toString=Ii,Ni.toJSON=Ii,Ni.locale=ea,Ni.localeData=na,Ni.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ii),Ni.lang=ta,se("X",0,0,"unix"),se("x",0,0,"valueOf"),Oe("x",ke),Oe("X",De),Ce("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),Ce("x",(function(e,t,n){n._d=new Date(Y(e))})),a.version="2.24.0",i(Jn),a.fn=Ia,a.min=Xn,a.max=er,a.now=tr,a.utc=p,a.unix=Na,a.months=qa,a.isDate=d,a.locale=pn,a.invalid=v,a.duration=Dr,a.isMoment=k,a.weekdays=Ja,a.parseZone=Wa,a.localeData=gn,a.isDuration=sr,a.monthsShort=Ga,a.weekdaysMin=Za,a.defineLocale=_n,a.updateLocale=yn,a.locales=vn,a.weekdaysShort=Qa,a.normalizeUnits=Z,a.relativeTimeRounding=Hi,a.relativeTimeThreshold=Ci,a.calendarFormat=Cr,a.prototype=Ia,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}))}).call(this,n("62e4")(e))},c207:function(e,t){},c26b:function(e,t,n){"use strict";var r=n("86cc").f,a=n("2aeb"),i=n("dcbc"),o=n("9b43"),s=n("f605"),u=n("4a59"),l=n("01f9"),c=n("d53b"),d=n("7a56"),f=n("9e1e"),h=n("67ab").fastKey,m=n("b39a"),p=f?"_s":"size",_=function(e,t){var n,r=h(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,l){var c=e((function(e,r){s(e,c,t,"_i"),e._t=t,e._i=a(null),e._f=void 0,e._l=void 0,e[p]=0,void 0!=r&&u(r,n,e[l],e)}));return i(c.prototype,{clear:function(){for(var e=m(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[p]=0},delete:function(e){var n=m(this,t),r=_(n,e);if(r){var a=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=a),a&&(a.p=i),n._f==r&&(n._f=a),n._l==r&&(n._l=i),n[p]--}return!!r},forEach:function(e){m(this,t);var n,r=o(e,arguments.length>1?arguments[1]:void 0,3);while(n=n?n.n:this._f){r(n.v,n.k,this);while(n&&n.r)n=n.p}},has:function(e){return!!_(m(this,t),e)}}),f&&r(c.prototype,"size",{get:function(){return m(this,t)[p]}}),c},def:function(e,t,n){var r,a,i=_(e,t);return i?i.v=n:(e._l=i={i:a=h(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=i),r&&(r.n=i),e[p]++,"F"!==a&&(e._i[a]=i)),e},getEntry:_,setStrong:function(e,t,n){l(e,t,(function(e,n){this._t=m(e,t),this._k=n,this._l=void 0}),(function(){var e=this,t=e._k,n=e._l;while(n&&n.r)n=n.p;return e._t&&(e._l=n=n?n.n:e._t._f)?c(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(e._t=void 0,c(1))}),n?"entries":"values",!n,!0),d(t)}}},c366:function(e,t,n){var r=n("6821"),a=n("9def"),i=n("77f1");e.exports=function(e){return function(t,n,o){var s,u=r(t),l=a(u.length),c=i(o,l);if(e&&n!=n){while(l>c)if(s=u[c++],s!=s)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===n)return e||c||0;return!e&&-1}}},c367:function(e,t,n){"use strict";var r=n("8436"),a=n("50ed"),i=n("481b"),o=n("36c3");e.exports=n("30f1")(Array,"Array",(function(e,t){this._t=o(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,a(1)):a(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},c3a1:function(e,t,n){var r=n("e6f3"),a=n("1691");e.exports=Object.keys||function(e){return r(e,a)}},c69a:function(e,t,n){e.exports=!n("9e1e")&&!n("79e5")((function(){return 7!=Object.defineProperty(n("230e")("div"),"a",{get:function(){return 7}}).a}))},c7aa:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10===0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}});return t}))},c8ba:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}e.exports=n},c8bb:function(e,t,n){e.exports=n("54a1")},c8f3:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}))},c909:function(e,t,n){var r,a,i; +/*! + * URI.js - Mutating URLs + * + * Version: 1.19.2 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(o,s){"use strict";e.exports?e.exports=s(n("63c5"),n("0056"),n("afab")):(a=[n("63c5"),n("0056"),n("afab")],r=s,i="function"===typeof r?r.apply(t,a):r,void 0===i||(e.exports=i))})(0,(function(e,t,n,r){"use strict";var a=r&&r.URI;function i(e,t){var n=arguments.length>=1,r=arguments.length>=2;if(!(this instanceof i))return n?r?new i(e,t):new i(e):new i;if(void 0===e){if(n)throw new TypeError("undefined is not a valid argument for URI");e="undefined"!==typeof location?location.href+"":""}if(null===e&&n)throw new TypeError("null is not a valid argument for URI");return this.href(e),void 0!==t?this.absoluteTo(t):this}function o(e){return/^[0-9]+$/.test(e)}i.version="1.19.2";var s=i.prototype,u=Object.prototype.hasOwnProperty;function l(e){return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function c(e){return void 0===e?"Undefined":String(Object.prototype.toString.call(e)).slice(8,-1)}function d(e){return"Array"===c(e)}function f(e,t){var n,r,a={};if("RegExp"===c(t))a=null;else if(d(t))for(n=0,r=t.length;n]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi,i.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},i.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},i.hostProtocols=["http","https"],i.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,i.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},i.getDomAttribute=function(e){if(e&&e.nodeName){var t=e.nodeName.toLowerCase();if("input"!==t||"image"===e.type)return i.domAttributes[t]}},i.encode=y,i.decode=decodeURIComponent,i.iso8859=function(){i.encode=escape,i.decode=unescape},i.unicode=function(){i.encode=y,i.decode=decodeURIComponent},i.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/gi,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/gi,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/gi,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},i.encodeQuery=function(e,t){var n=i.encode(e+"");return void 0===t&&(t=i.escapeQuerySpace),t?n.replace(/%20/g,"+"):n},i.decodeQuery=function(e,t){e+="",void 0===t&&(t=i.escapeQuerySpace);try{return i.decode(t?e.replace(/\+/g,"%20"):e)}catch(n){return e}};var g,v={encode:"encode",decode:"decode"},b=function(e,t){return function(n){try{return i[t](n+"").replace(i.characters[e][t].expression,(function(n){return i.characters[e][t].map[n]}))}catch(r){return n}}};for(g in v)i[g+"PathSegment"]=b("pathname",v[g]),i[g+"UrnPathSegment"]=b("urnpath",v[g]);var M=function(e,t,n){return function(r){var a;a=n?function(e){return i[t](i[n](e))}:i[t];for(var o=(r+"").split(e),s=0,u=o.length;s-1&&(t.fragment=e.substring(n+1)||null,e=e.substring(0,n)),n=e.indexOf("?"),n>-1&&(t.query=e.substring(n+1)||null,e=e.substring(0,n)),"//"===e.substring(0,2)?(t.protocol=null,e=e.substring(2),e=i.parseAuthority(e,t)):(n=e.indexOf(":"),n>-1&&(t.protocol=e.substring(0,n)||null,t.protocol&&!t.protocol.match(i.protocol_expression)?t.protocol=void 0:"//"===e.substring(n+1,n+3)?(e=e.substring(n+3),e=i.parseAuthority(e,t)):(e=e.substring(n+1),t.urn=!0))),t.path=e,t},i.parseHost=function(e,t){e||(e=""),e=e.replace(/\\/g,"/");var n,r,a=e.indexOf("/");if(-1===a&&(a=e.length),"["===e.charAt(0))n=e.indexOf("]"),t.hostname=e.substring(1,n)||null,t.port=e.substring(n+2,a)||null,"/"===t.port&&(t.port=null);else{var o=e.indexOf(":"),s=e.indexOf("/"),u=e.indexOf(":",o+1);-1!==u&&(-1===s||u-1?r:e.length-1);return a>-1&&(-1===r||a-1?h.slice(0,m)+h.slice(m).replace(o,""):h.replace(o,""),!(h.length<=l[0].length)&&(!n.ignore||!n.ignore.test(h))){f=c+h.length;var y=t(h,c,f,e);void 0!==y?(y=String(y),e=e.slice(0,c)+y+e.slice(f),r.lastIndex=c+y.length):r.lastIndex=f}}return r.lastIndex=0,e},i.ensureValidHostname=function(t,n){var r=!!t,a=!!n,o=!1;if(a&&(o=h(i.hostProtocols,n)),o&&!r)throw new TypeError("Hostname cannot be empty, if protocol is "+n);if(t&&t.match(i.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(t).match(i.invalid_hostname_characters))throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_]')}},i.ensureValidPort=function(e){if(e){var t=Number(e);if(!(o(t)&&t>0&&t<65536))throw new TypeError('Port "'+e+'" is not a valid port')}},i.noConflict=function(e){if(e){var t={URI:this.noConflict()};return r.URITemplate&&"function"===typeof r.URITemplate.noConflict&&(t.URITemplate=r.URITemplate.noConflict()),r.IPv6&&"function"===typeof r.IPv6.noConflict&&(t.IPv6=r.IPv6.noConflict()),r.SecondLevelDomains&&"function"===typeof r.SecondLevelDomains.noConflict&&(t.SecondLevelDomains=r.SecondLevelDomains.noConflict()),t}return r.URI===this&&(r.URI=a),this},s.build=function(e){return!0===e?this._deferred_build=!0:(void 0===e||this._deferred_build)&&(this._string=i.build(this._parts),this._deferred_build=!1),this},s.clone=function(){return new i(this)},s.valueOf=s.toString=function(){return this.build(!1)._string},s.protocol=w("protocol"),s.username=w("username"),s.password=w("password"),s.hostname=w("hostname"),s.port=w("port"),s.query=L("query","?"),s.fragment=L("fragment","#"),s.search=function(e,t){var n=this.query(e,t);return"string"===typeof n&&n.length?"?"+n:n},s.hash=function(e,t){var n=this.fragment(e,t);return"string"===typeof n&&n.length?"#"+n:n},s.pathname=function(e,t){if(void 0===e||!0===e){var n=this._parts.path||(this._parts.hostname?"/":"");return e?(this._parts.urn?i.decodeUrnPath:i.decodePath)(n):n}return this._parts.urn?this._parts.path=e?i.recodeUrnPath(e):"":this._parts.path=e?i.recodePath(e):"/",this.build(!t),this},s.path=s.pathname,s.href=function(e,t){var n;if(void 0===e)return this.toString();this._string="",this._parts=i._parts();var r=e instanceof i,a="object"===typeof e&&(e.hostname||e.path||e.pathname);if(e.nodeName){var o=i.getDomAttribute(e);e=e[o]||"",a=!1}if(!r&&a&&void 0!==e.pathname&&(e=e.toString()),"string"===typeof e||e instanceof String)this._parts=i.parse(String(e),this._parts);else{if(!r&&!a)throw new TypeError("invalid input");var s=r?e._parts:e;for(n in s)"query"!==n&&u.call(this._parts,n)&&(this._parts[n]=s[n]);s.query&&this.query(s.query,!1)}return this.build(!t),this},s.is=function(e){var t=!1,r=!1,a=!1,o=!1,s=!1,u=!1,l=!1,c=!this._parts.urn;switch(this._parts.hostname&&(c=!1,r=i.ip4_expression.test(this._parts.hostname),a=i.ip6_expression.test(this._parts.hostname),t=r||a,o=!t,s=o&&n&&n.has(this._parts.hostname),u=o&&i.idn_expression.test(this._parts.hostname),l=o&&i.punycode_expression.test(this._parts.hostname)),e.toLowerCase()){case"relative":return c;case"absolute":return!c;case"domain":case"name":return o;case"sld":return s;case"ip":return t;case"ip4":case"ipv4":case"inet4":return r;case"ip6":case"ipv6":case"inet6":return a;case"idn":return u;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return l}return null};var k=s.protocol,x=s.port,Y=s.hostname;s.protocol=function(e,t){if(e&&(e=e.replace(/:(\/\/)?$/,""),!e.match(i.protocol_expression)))throw new TypeError('Protocol "'+e+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return k.call(this,e,t)},s.scheme=s.protocol,s.port=function(e,t){return this._parts.urn?void 0===e?"":this:(void 0!==e&&(0===e&&(e=null),e&&(e+="",":"===e.charAt(0)&&(e=e.substring(1)),i.ensureValidPort(e))),x.call(this,e,t))},s.hostname=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0!==e){var n={preventInvalidHostname:this._parts.preventInvalidHostname},r=i.parseHost(e,n);if("/"!==r)throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');e=n.hostname,this._parts.preventInvalidHostname&&i.ensureValidHostname(e,this._parts.protocol)}return Y.call(this,e,t)},s.origin=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var n=this.protocol(),r=this.authority();return r?(n?n+"://":"")+this.authority():""}var a=i(e);return this.protocol(a.protocol()).authority(a.authority()).build(!t),this},s.host=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildHost(this._parts):"";var n=i.parseHost(e,this._parts);if("/"!==n)throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},s.authority=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildAuthority(this._parts):"";var n=i.parseAuthority(e,this._parts);if("/"!==n)throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},s.userinfo=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var n=i.buildUserinfo(this._parts);return n?n.substring(0,n.length-1):n}return"@"!==e[e.length-1]&&(e+="@"),i.parseUserinfo(e,this._parts),this.build(!t),this},s.resource=function(e,t){var n;return void 0===e?this.path()+this.search()+this.hash():(n=i.parse(e),this._parts.path=n.path,this._parts.query=n.query,this._parts.fragment=n.fragment,this.build(!t),this)},s.subdomain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,n)||""}var r=this._parts.hostname.length-this.domain().length,a=this._parts.hostname.substring(0,r),o=new RegExp("^"+l(a));if(e&&"."!==e.charAt(e.length-1)&&(e+="."),-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");return e&&i.ensureValidHostname(e,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(o,e),this.build(!t),this},s.domain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"===typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.match(/\./g);if(n&&n.length<2)return this._parts.hostname;var r=this._parts.hostname.length-this.tld(t).length-1;return r=this._parts.hostname.lastIndexOf(".",r-1)+1,this._parts.hostname.substring(r)||""}if(!e)throw new TypeError("cannot set domain empty");if(-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");if(i.ensureValidHostname(e,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=e;else{var a=new RegExp(l(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(a,e)}return this.build(!t),this},s.tld=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"===typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var r=this._parts.hostname.lastIndexOf("."),a=this._parts.hostname.substring(r+1);return!0!==t&&n&&n.list[a.toLowerCase()]&&n.get(this._parts.hostname)||a}var i;if(!e)throw new TypeError("cannot set TLD empty");if(e.match(/[^a-zA-Z0-9-]/)){if(!n||!n.is(e))throw new TypeError('TLD "'+e+'" contains characters other than [A-Z0-9]');i=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");i=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}return this.build(!t),this},s.directory=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var n=this._parts.path.length-this.filename().length-1,r=this._parts.path.substring(0,n)||(this._parts.hostname?"/":"");return e?i.decodePath(r):r}var a=this._parts.path.length-this.filename().length,o=this._parts.path.substring(0,a),s=new RegExp("^"+l(o));return this.is("relative")||(e||(e="/"),"/"!==e.charAt(0)&&(e="/"+e)),e&&"/"!==e.charAt(e.length-1)&&(e+="/"),e=i.recodePath(e),this._parts.path=this._parts.path.replace(s,e),this.build(!t),this},s.filename=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("string"!==typeof e){if(!this._parts.path||"/"===this._parts.path)return"";var n=this._parts.path.lastIndexOf("/"),r=this._parts.path.substring(n+1);return e?i.decodePathSegment(r):r}var a=!1;"/"===e.charAt(0)&&(e=e.substring(1)),e.match(/\.?\//)&&(a=!0);var o=new RegExp(l(this.filename())+"$");return e=i.recodePath(e),this._parts.path=this._parts.path.replace(o,e),a?this.normalizePath(t):this.build(!t),this},s.suffix=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path||"/"===this._parts.path)return"";var n,r,a=this.filename(),o=a.lastIndexOf(".");return-1===o?"":(n=a.substring(o+1),r=/^[a-z0-9%]+$/i.test(n)?n:"",e?i.decodePathSegment(r):r)}"."===e.charAt(0)&&(e=e.substring(1));var s,u=this.suffix();if(u)s=e?new RegExp(l(u)+"$"):new RegExp(l("."+u)+"$");else{if(!e)return this;this._parts.path+="."+i.recodePath(e)}return s&&(e=i.recodePath(e),this._parts.path=this._parts.path.replace(s,e)),this.build(!t),this},s.segment=function(e,t,n){var r=this._parts.urn?":":"/",a=this.path(),i="/"===a.substring(0,1),o=a.split(r);if(void 0!==e&&"number"!==typeof e&&(n=t,t=e,e=void 0),void 0!==e&&"number"!==typeof e)throw new Error('Bad segment "'+e+'", must be 0-based integer');if(i&&o.shift(),e<0&&(e=Math.max(o.length+e,0)),void 0===t)return void 0===e?o:o[e];if(null===e||void 0===o[e])if(d(t)){o=[];for(var s=0,u=t.length;s=e.length?(this._t=void 0,a(1)):a(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},cb5a:function(e,t,n){var r=n("9638");function a(e,t){var n=e.length;while(n--)if(r(e[n][0],t))return n;return-1}e.exports=a},cb7c:function(e,t,n){var r=n("d3f4");e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},ccb9:function(e,t,n){t.f=n("5168")},cd1c:function(e,t,n){var r=n("e853");e.exports=function(e,t){return new(r(e))(t)}},cd78:function(e,t,n){var r=n("e4ae"),a=n("f772"),i=n("656e");e.exports=function(e,t){if(r(e),a(t)&&t.constructor===e)return t;var n=i.f(e),o=n.resolve;return o(t),n.promise}},cdab:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}});return t}))},ce10:function(e,t,n){var r=n("69a8"),a=n("6821"),i=n("c366")(!1),o=n("613b")("IE_PROTO");e.exports=function(e,t){var n,s=a(e),u=0,l=[];for(n in s)n!=o&&r(s,n)&&l.push(n);while(t.length>u)r(s,n=t[u++])&&(~i(l,n)||l.push(n));return l}},ce86:function(e,t,n){var r=n("9e69"),a=n("7948"),i=n("6747"),o=n("ffd6"),s=1/0,u=r?r.prototype:void 0,l=u?u.toString:void 0;function c(e){if("string"==typeof e)return e;if(i(e))return a(e,c)+"";if(o(e))return l?l.call(e):"";var t=e+"";return"0"==t&&1/e==-s?"-0":t}e.exports=c},cf1e:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}},n=e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var e=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return e[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n}))},cf51:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});function n(e,t,n,r){var a={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r?a[n][0]:t?a[n][0]:a[n][1]}return t}))},cf75:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq",t}function r(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret",t}function a(e,t,n,r){var a=i(e);switch(n){case"ss":return a+" lup";case"mm":return a+" tup";case"hh":return a+" rep";case"dd":return a+" jaj";case"MM":return a+" jar";case"yy":return a+" DIS"}}function i(e){var n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),a=e%10,i="";return n>0&&(i+=t[n]+"vatlh"),r>0&&(i+=(""!==i?" ":"")+t[r]+"maH"),a>0&&(i+=(""!==i?" ":"")+t[a]),""===i?"pagh":i}var o=e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:n,past:r,s:"puS lup",ss:a,m:"wa’ tup",mm:a,h:"wa’ rep",hh:a,d:"wa’ jaj",dd:a,M:"wa’ jar",MM:a,y:"wa’ DIS",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return o}))},d225:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",(function(){return r}))},d26a:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"},r=e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}});return r}))},d2c8:function(e,t,n){var r=n("aae3"),a=n("be13");e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(a(e))}},d2d4:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"});return t}))},d2d5:function(e,t,n){n("1654"),n("549b"),e.exports=n("584a").Array.from},d3f4:function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},d4ab:function(e,t,n){"use strict";var r=Object.prototype.toString;e.exports=function(e){var t=r.call(e),n="[object Arguments]"===t;return n||(n="[object Array]"!==t&&null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Function]"===r.call(e.callee)),n}},d53b:function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},d6b6:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}});return t}))},d6c7:function(e,t,n){"use strict";var r=Array.prototype.slice,a=n("d4ab"),i=Object.keys,o=i?function(e){return i(e)}:n("b189"),s=Object.keys;o.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return a(e)?s(r.call(e)):s(e)})}else Object.keys=o;return Object.keys||o},e.exports=o},d716:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}});return t}))},d842:function(e,t,n){"use strict";var r=n("50d1"),a=n.n(r),i=n("7fae"),o=n.n(i),s=function(e){return u(e)&&!l(e)};function u(e){return!!e&&"object"===typeof e}function l(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||f(e)}var c="function"===typeof Symbol&&Symbol.for,d=c?Symbol.for("react.element"):60103;function f(e){return e.$$typeof===d}function h(e){return Array.isArray(e)?[]:{}}function m(e,t){return!1!==t.clone&&t.isMergeableObject(e)?y(h(e),e,t):e}function p(e,t,n){return e.concat(t).map((function(e){return m(e,n)}))}function _(e,t,n){var r={};return n.isMergeableObject(e)&&Object.keys(e).forEach((function(t){r[t]=m(e[t],n)})),Object.keys(t).forEach((function(a){n.isMergeableObject(t[a])&&e[a]?r[a]=y(e[a],t[a],n):r[a]=m(t[a],n)})),r}function y(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||p,n.isMergeableObject=n.isMergeableObject||s;var r=Array.isArray(t),a=Array.isArray(e),i=r===a;return i?r?n.arrayMerge(e,t,n):_(e,t,n):m(t,n)}y.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return y(e,n,t)}),{})};var g=y,v=g,b=1,M=function(e,t,n){var r=["adapter","colors","curve","dataset","decimal","discrete","donut","download","label","legend","library","max","messages","min","points","prefix","refresh","stacked","suffix","thousands","title","xmax","xmin","xtitle","ytitle"];e.component(t,{props:["data","id","width","height"].concat(r),render:function(e){return e("div",{attrs:{id:this.chartId},style:this.chartStyle},["Loading..."])},data:function(){return{chartId:null}},computed:{chartStyle:function(){return this.data,this.chartOptions,{height:this.height||"300px",lineHeight:this.height||"300px",width:this.width||"100%",textAlign:"center",color:"#999",fontSize:"14px",fontFamily:"'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif"}},chartOptions:function(){for(var e={},t=r,n=0;n=20?"ste":"de")},week:{dow:1,doy:4}});return i}))},dbdb:function(e,t,n){var r=n("584a"),a=n("e53d"),i="__core-js_shared__",o=a[i]||(a[i]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n("b8e3")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},dc4d:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},r=e.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}});return r}))},dc57:function(e,t){var n=Function.prototype,r=n.toString;function a(e){if(null!=e){try{return r.call(e)}catch(t){}try{return e+""}catch(t){}}return""}e.exports=a},dcbc:function(e,t,n){var r=n("2aba");e.exports=function(e,t,n){for(var a in t)r(e,a,t[a],n);return e}},e0b8:function(e,t,n){"use strict";var r=n("7726"),a=n("5ca1"),i=n("2aba"),o=n("dcbc"),s=n("67ab"),u=n("4a59"),l=n("f605"),c=n("d3f4"),d=n("79e5"),f=n("5cc5"),h=n("7f20"),m=n("5dbc");e.exports=function(e,t,n,p,_,y){var g=r[e],v=g,b=_?"set":"add",M=v&&v.prototype,w={},L=function(e){var t=M[e];i(M,e,"delete"==e?function(e){return!(y&&!c(e))&&t.call(this,0===e?0:e)}:"has"==e?function(e){return!(y&&!c(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return y&&!c(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if("function"==typeof v&&(y||M.forEach&&!d((function(){(new v).entries().next()})))){var k=new v,x=k[b](y?{}:-0,1)!=k,Y=d((function(){k.has(1)})),D=f((function(e){new v(e)})),S=!y&&d((function(){var e=new v,t=5;while(t--)e[b](t,t);return!e.has(-0)}));D||(v=t((function(t,n){l(t,v,e);var r=m(new g,t,v);return void 0!=n&&u(n,_,r[b],r),r})),v.prototype=M,M.constructor=v),(Y||S)&&(L("delete"),L("has"),_&&L("get")),(S||x)&&L(b),y&&M.clear&&delete M.clear}else v=p.getConstructor(t,e,_,b),o(v.prototype,n),s.NEED=!0;return h(v,e),w[e]=v,a(a.G+a.W+a.F*(v!=g),w),y||p.setStrong(v,e,_),v}},e0c5:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"},r=e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}});return r}))},e0e5:function(e,t){function n(){var e=[].slice.call(arguments),t=!1;"boolean"==typeof e[0]&&(t=e.shift());var a=e[0];if(!a||"object"!=typeof a&&"function"!=typeof a)throw new Error("extendee must be an object");for(var i=e.slice(1),o=i.length,s=0;s=0&&"[object Array]"!==a.call(e)&&"[object Function]"===a.call(e.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=o,e.exports=s?i:o},e4ae:function(e,t,n){var r=n("f772");e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},e53d:function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},e6f3:function(e,t,n){var r=n("07e3"),a=n("36c3"),i=n("5b4e")(!1),o=n("5559")("IE_PROTO");e.exports=function(e,t){var n,s=a(e),u=0,l=[];for(n in s)n!=o&&r(s,n)&&l.push(n);while(t.length>u)r(s,n=t[u++])&&(~i(l,n)||l.push(n));return l}},e710:function(e,t,n){"use strict";var r=n("f367"),a=n("44b7"),i=n("5708"),o=n("57ec"),s=n("1c7e"),u=a(i);r(u,{getPolyfill:o,implementation:i,shim:s}),e.exports=u},e81d:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"},r=e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}});return r}))},e853:function(e,t,n){var r=n("d3f4"),a=n("1169"),i=n("2b4c")("species");e.exports=function(e){var t;return a(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!a(t.prototype)||(t=void 0),r(t)&&(t=t[i],null===t&&(t=void 0))),void 0===t?Array:t}},e9ac:function(e,t,n){"use strict";var r,a,i,o,s=TypeError,u=Object.getOwnPropertyDescriptor,l=function(){throw new s},c=u?function(){try{return arguments.callee,l}catch(e){try{return u(arguments,"callee").get}catch(t){return l}}}():l,d=n("5156")(),f=Object.getPrototypeOf||function(e){return e.__proto__},h=a?f(a):r,m=i?i.constructor:r,p=o?f(o):r,_=o?o():r,y="undefined"===typeof Uint8Array?r:f(Uint8Array),g={"$ %Array%":Array,"$ %ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"$ %ArrayBufferPrototype%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer.prototype,"$ %ArrayIteratorPrototype%":d?f([][Symbol.iterator]()):r,"$ %ArrayPrototype%":Array.prototype,"$ %ArrayProto_entries%":Array.prototype.entries,"$ %ArrayProto_forEach%":Array.prototype.forEach,"$ %ArrayProto_keys%":Array.prototype.keys,"$ %ArrayProto_values%":Array.prototype.values,"$ %AsyncFromSyncIteratorPrototype%":r,"$ %AsyncFunction%":m,"$ %AsyncFunctionPrototype%":m?m.prototype:r,"$ %AsyncGenerator%":o?f(_):r,"$ %AsyncGeneratorFunction%":p,"$ %AsyncGeneratorPrototype%":p?p.prototype:r,"$ %AsyncIteratorPrototype%":_&&d&&Symbol.asyncIterator?_[Symbol.asyncIterator]():r,"$ %Atomics%":"undefined"===typeof Atomics?r:Atomics,"$ %Boolean%":Boolean,"$ %BooleanPrototype%":Boolean.prototype,"$ %DataView%":"undefined"===typeof DataView?r:DataView,"$ %DataViewPrototype%":"undefined"===typeof DataView?r:DataView.prototype,"$ %Date%":Date,"$ %DatePrototype%":Date.prototype,"$ %decodeURI%":decodeURI,"$ %decodeURIComponent%":decodeURIComponent,"$ %encodeURI%":encodeURI,"$ %encodeURIComponent%":encodeURIComponent,"$ %Error%":Error,"$ %ErrorPrototype%":Error.prototype,"$ %eval%":eval,"$ %EvalError%":EvalError,"$ %EvalErrorPrototype%":EvalError.prototype,"$ %Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"$ %Float32ArrayPrototype%":"undefined"===typeof Float32Array?r:Float32Array.prototype,"$ %Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"$ %Float64ArrayPrototype%":"undefined"===typeof Float64Array?r:Float64Array.prototype,"$ %Function%":Function,"$ %FunctionPrototype%":Function.prototype,"$ %Generator%":a?f(a()):r,"$ %GeneratorFunction%":h,"$ %GeneratorPrototype%":h?h.prototype:r,"$ %Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"$ %Int8ArrayPrototype%":"undefined"===typeof Int8Array?r:Int8Array.prototype,"$ %Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"$ %Int16ArrayPrototype%":"undefined"===typeof Int16Array?r:Int8Array.prototype,"$ %Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"$ %Int32ArrayPrototype%":"undefined"===typeof Int32Array?r:Int32Array.prototype,"$ %isFinite%":isFinite,"$ %isNaN%":isNaN,"$ %IteratorPrototype%":d?f(f([][Symbol.iterator]())):r,"$ %JSON%":"object"===typeof JSON?JSON:r,"$ %JSONParse%":"object"===typeof JSON?JSON.parse:r,"$ %Map%":"undefined"===typeof Map?r:Map,"$ %MapIteratorPrototype%":"undefined"!==typeof Map&&d?f((new Map)[Symbol.iterator]()):r,"$ %MapPrototype%":"undefined"===typeof Map?r:Map.prototype,"$ %Math%":Math,"$ %Number%":Number,"$ %NumberPrototype%":Number.prototype,"$ %Object%":Object,"$ %ObjectPrototype%":Object.prototype,"$ %ObjProto_toString%":Object.prototype.toString,"$ %ObjProto_valueOf%":Object.prototype.valueOf,"$ %parseFloat%":parseFloat,"$ %parseInt%":parseInt,"$ %Promise%":"undefined"===typeof Promise?r:Promise,"$ %PromisePrototype%":"undefined"===typeof Promise?r:Promise.prototype,"$ %PromiseProto_then%":"undefined"===typeof Promise?r:Promise.prototype.then,"$ %Promise_all%":"undefined"===typeof Promise?r:Promise.all,"$ %Promise_reject%":"undefined"===typeof Promise?r:Promise.reject,"$ %Promise_resolve%":"undefined"===typeof Promise?r:Promise.resolve,"$ %Proxy%":"undefined"===typeof Proxy?r:Proxy,"$ %RangeError%":RangeError,"$ %RangeErrorPrototype%":RangeError.prototype,"$ %ReferenceError%":ReferenceError,"$ %ReferenceErrorPrototype%":ReferenceError.prototype,"$ %Reflect%":"undefined"===typeof Reflect?r:Reflect,"$ %RegExp%":RegExp,"$ %RegExpPrototype%":RegExp.prototype,"$ %Set%":"undefined"===typeof Set?r:Set,"$ %SetIteratorPrototype%":"undefined"!==typeof Set&&d?f((new Set)[Symbol.iterator]()):r,"$ %SetPrototype%":"undefined"===typeof Set?r:Set.prototype,"$ %SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"$ %SharedArrayBufferPrototype%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer.prototype,"$ %String%":String,"$ %StringIteratorPrototype%":d?f(""[Symbol.iterator]()):r,"$ %StringPrototype%":String.prototype,"$ %Symbol%":d?Symbol:r,"$ %SymbolPrototype%":d?Symbol.prototype:r,"$ %SyntaxError%":SyntaxError,"$ %SyntaxErrorPrototype%":SyntaxError.prototype,"$ %ThrowTypeError%":c,"$ %TypedArray%":y,"$ %TypedArrayPrototype%":y?y.prototype:r,"$ %TypeError%":s,"$ %TypeErrorPrototype%":s.prototype,"$ %Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"$ %Uint8ArrayPrototype%":"undefined"===typeof Uint8Array?r:Uint8Array.prototype,"$ %Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"$ %Uint8ClampedArrayPrototype%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray.prototype,"$ %Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"$ %Uint16ArrayPrototype%":"undefined"===typeof Uint16Array?r:Uint16Array.prototype,"$ %Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"$ %Uint32ArrayPrototype%":"undefined"===typeof Uint32Array?r:Uint32Array.prototype,"$ %URIError%":URIError,"$ %URIErrorPrototype%":URIError.prototype,"$ %WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"$ %WeakMapPrototype%":"undefined"===typeof WeakMap?r:WeakMap.prototype,"$ %WeakSet%":"undefined"===typeof WeakSet?r:WeakSet,"$ %WeakSetPrototype%":"undefined"===typeof WeakSet?r:WeakSet.prototype},v=n("0f7c"),b=v.call(Function.call,String.prototype.replace),M=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,w=/\\(\\)?/g,L=function(e){var t=[];return b(e,M,(function(e,n,r,a){t[t.length]=r?b(a,w,"$1"):n||e})),t},k=function(e,t){var n="$ "+e;if(!(n in g))throw new SyntaxError("intrinsic "+e+" does not exist!");if("undefined"===typeof g[n]&&!t)throw new s("intrinsic "+e+" exists, but is not available. Please file an issue!");return g[n]};e.exports=function(e,t){if(arguments.length>1&&"boolean"!==typeof t)throw new TypeError('"allowMissing" argument must be a boolean');var n=L(e);if(0===n.length)return k(e,t);for(var r=k("%"+n[0]+"%",t),a=1;a=n.length){var i=u(r,n[a]);r=i?i.get||i.value:r[n[a]]}else r=r[n[a]];return r}},ebd6:function(e,t,n){var r=n("cb7c"),a=n("d8e8"),i=n("2b4c")("species");e.exports=function(e,t){var n,o=r(e).constructor;return void 0===o||void 0==(n=r(o)[i])?t:a(n)}},ebe4:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return t}))},ebfd:function(e,t,n){var r=n("62a0")("meta"),a=n("f772"),i=n("07e3"),o=n("d9f6").f,s=0,u=Object.isExtensible||function(){return!0},l=!n("294c")((function(){return u(Object.preventExtensions({}))})),c=function(e){o(e,r,{value:{i:"O"+ ++s,w:{}}})},d=function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!u(e))return"F";if(!t)return"E";c(e)}return e[r].i},f=function(e,t){if(!i(e,r)){if(!u(e))return!0;if(!t)return!1;c(e)}return e[r].w},h=function(e){return l&&m.NEED&&u(e)&&!i(e,r)&&c(e),e},m=e.exports={KEY:r,NEED:!1,fastKey:d,getWeak:f,onFreeze:h}},ec18:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";function t(e,t,n,r){var a={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?a[n][2]?a[n][2]:a[n][1]:r?a[n][0]:a[n][1]}var n=e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n}))},ecee:function(e,t,n){"use strict";(function(e){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 a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n-1;a--){var i=n[a],o=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=i)}return x.head.insertBefore(t,r),e}}var be="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function Me(){var e=12,t="";while(e-- >0)t+=be[62*Math.random()|0];return t}function we(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Le(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(we(e[n]),'" ')}),"").trim()}function ke(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n],";")}),"")}function xe(e){return e.size!==ge.size||e.x!==ge.x||e.y!==ge.y||e.rotate!==ge.rotate||e.flipX||e.flipY}function Ye(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,a={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*t.x,", ").concat(32*t.y,") "),o="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),s="rotate(".concat(t.rotate," 0 0)"),u={transform:"".concat(i," ").concat(o," ").concat(s)},l={transform:"translate(".concat(r/2*-1," -256)")};return{outer:a,inner:u,path:l}}function De(e){var t=e.transform,n=e.width,r=void 0===n?O:n,a=e.height,i=void 0===a?O:a,o=e.startCentered,s=void 0!==o&&o,u="";return u+=s&&S?"translate(".concat(t.x/ye-r/2,"em, ").concat(t.y/ye-i/2,"em) "):s?"translate(calc(-50% + ".concat(t.x/ye,"em), calc(-50% + ").concat(t.y/ye,"em)) "):"translate(".concat(t.x/ye,"em, ").concat(t.y/ye,"em) "),u+="scale(".concat(t.size/ye*(t.flipX?-1:1),", ").concat(t.size/ye*(t.flipY?-1:1),") "),u+="rotate(".concat(t.rotate,"deg) "),u}var Se={x:0,y:0,width:"100%",height:"100%"};function Te(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function Oe(e){return"g"===e.tag?e.children:[e]}function Ae(e){var t=e.children,n=e.attributes,r=e.main,a=e.mask,i=e.transform,o=r.width,s=r.icon,l=a.width,c=a.icon,d=Ye({transform:i,containerWidth:l,iconWidth:o}),f={tag:"rect",attributes:u({},Se,{fill:"white"})},h=s.children?{children:s.children.map(Te)}:{},m={tag:"g",attributes:u({},d.inner),children:[Te(u({tag:s.tag,attributes:u({},s.attributes,d.path)},h))]},p={tag:"g",attributes:u({},d.outer),children:[m]},_="mask-".concat(Me()),y="clip-".concat(Me()),g={tag:"mask",attributes:u({},Se,{id:_,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[f,p]},v={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:Oe(c)},g]};return t.push(v,{tag:"rect",attributes:u({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(_,")")},Se)}),{children:t,attributes:n}}function Pe(e){var t=e.children,n=e.attributes,r=e.main,a=e.transform,i=e.styles,o=ke(i);if(o.length>0&&(n["style"]=o),xe(a)){var s=Ye({transform:a,containerWidth:r.width,iconWidth:r.width});t.push({tag:"g",attributes:u({},s.outer),children:[{tag:"g",attributes:u({},s.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:u({},r.icon.attributes,s.path)}]}]})}else t.push(r.icon);return{children:t,attributes:n}}function je(e){var t=e.children,n=e.main,r=e.mask,a=e.attributes,i=e.styles,o=e.transform;if(xe(o)&&n.found&&!r.found){var s=n.width,l=n.height,c={x:s/l/2,y:.5};a["style"]=ke(u({},i,{"transform-origin":"".concat(c.x+o.x/16,"em ").concat(c.y+o.y/16,"em")}))}return[{tag:"svg",attributes:a,children:t}]}function He(e){var t=e.prefix,n=e.iconName,r=e.children,a=e.attributes,i=e.symbol,o=!0===i?"".concat(t,"-").concat(V.familyPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:u({},a,{id:o}),children:r}]}]}function Ce(e){var t=e.icons,n=t.main,r=t.mask,a=e.prefix,i=e.iconName,o=e.transform,s=e.symbol,l=e.title,c=e.extra,d=e.watchable,f=void 0!==d&&d,h=r.found?r:n,m=h.width,p=h.height,_="fa-w-".concat(Math.ceil(m/p*16)),y=[V.replacementClass,i?"".concat(V.familyPrefix,"-").concat(i):"",_].filter((function(e){return-1===c.classes.indexOf(e)})).concat(c.classes).join(" "),g={children:[],attributes:u({},c.attributes,{"data-prefix":a,"data-icon":i,class:y,role:c.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(p)})};f&&(g.attributes[j]=""),l&&g.children.push({tag:"title",attributes:{id:g.attributes["aria-labelledby"]||"title-".concat(Me())},children:[l]});var v=u({},g,{prefix:a,iconName:i,main:n,mask:r,transform:o,symbol:s,styles:c.styles}),b=r.found&&n.found?Ae(v):Pe(v),M=b.children,w=b.attributes;return v.children=M,v.attributes=w,s?He(v):je(v)}function Ee(e){var t=e.content,n=e.width,r=e.height,a=e.transform,i=e.title,o=e.extra,s=e.watchable,l=void 0!==s&&s,c=u({},o.attributes,i?{title:i}:{},{class:o.classes.join(" ")});l&&(c[j]="");var d=u({},o.styles);xe(a)&&(d["transform"]=De({transform:a,startCentered:!0,width:n,height:r}),d["-webkit-transform"]=d["transform"]);var f=ke(d);f.length>0&&(c["style"]=f);var h=[];return h.push({tag:"span",attributes:c,children:[t]}),i&&h.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),h}var ze=function(){},Fe=(V.measurePerformance&&Y&&Y.mark&&Y.measure,function(e,t){return function(n,r,a,i){return e.call(t,n,r,a,i)}}),Ie=function(e,t,n,r){var a,i,o,s=Object.keys(e),u=s.length,l=void 0!==r?Fe(t,r):t;for(void 0===n?(a=1,o=e[s[0]]):(a=0,o=n);a2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,a=void 0!==r&&r,i=Object.keys(t).reduce((function(e,n){var r=t[n],a=!!r.icon;return a?e[r.iconName]=r.icon:e[n]=r,e}),{});"function"!==typeof $.hooks.addPack||a?$.styles[e]=u({},$.styles[e]||{},i):$.hooks.addPack(e,i),"fas"===e&&Ne("fa",t)}var We=$.styles,Re=$.shims,Ve=function(){var e=function(e){return Ie(We,(function(t,n,r){return t[r]=Ie(n,e,{}),t}),{})};e((function(e,t,n){return t[3]&&(e[t[3]]=n),e})),e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in We;Ie(Re,(function(e,n){var r=n[0],a=n[1],i=n[2];return"far"!==a||t||(a="fas"),e[r]={prefix:a,iconName:i},e}),{})};Ve();$.styles;function Ue(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}function $e(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,a=e.children,i=void 0===a?[]:a;return"string"===typeof e?we(e):"<".concat(t," ").concat(Le(r),">").concat(i.map($e).join(""),"")}var Be=function(e){var t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e?e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],a=n.slice(1).join("-");if(r&&"h"===a)return e.flipX=!0,e;if(r&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(r){case"grow":e.size=e.size+a;break;case"shrink":e.size=e.size-a;break;case"left":e.x=e.x-a;break;case"right":e.x=e.x+a;break;case"up":e.y=e.y-a;break;case"down":e.y=e.y+a;break;case"rotate":e.rotate=e.rotate+a;break}return e}),t):t};function qe(e){this.name="MissingIcon",this.message=e||"Icon unavailable",this.stack=(new Error).stack}qe.prototype=Object.create(Error.prototype),qe.prototype.constructor=qe;var Ge={fill:"currentColor"},Je={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},Qe=(u({},Ge,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),u({},Je,{attributeName:"opacity"}));u({},Ge,{cx:"256",cy:"364",r:"28"}),u({},Je,{attributeName:"r",values:"28;14;28;28;14;28;"}),u({},Qe,{values:"1;0;1;1;0;1;"}),u({},Ge,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),u({},Qe,{values:"1;0;0;0;0;1;"}),u({},Ge,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),u({},Qe,{values:"0;0;1;1;0;0;"}),$.styles;function Ze(e){var t=e[0],n=e[1],r=e.slice(4),a=l(r,1),i=a[0],o=null;return o=Array.isArray(i)?{tag:"g",attributes:{class:"".concat(V.familyPrefix,"-").concat(E.GROUP)},children:[{tag:"path",attributes:{class:"".concat(V.familyPrefix,"-").concat(E.SECONDARY),fill:"currentColor",d:i[0]}},{tag:"path",attributes:{class:"".concat(V.familyPrefix,"-").concat(E.PRIMARY),fill:"currentColor",d:i[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:i}},{found:!0,width:t,height:n,icon:o}}$.styles;var Ke='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';function Xe(){var e=A,t=P,n=V.familyPrefix,r=V.replacementClass,a=Ke;if(n!==e||r!==t){var i=new RegExp("\\.".concat(e,"\\-"),"g"),o=new RegExp("\\--".concat(e,"\\-"),"g"),s=new RegExp("\\.".concat(t),"g");a=a.replace(i,".".concat(n,"-")).replace(o,"--".concat(n,"-")).replace(s,".".concat(r))}return a}var et=function(){function e(){a(this,e),this.definitions={}}return o(e,[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:rt(t||{}),a=n.mask;return a&&(a=(a||{}).icon?a:rt(a||{})),e(r,u({},n,{mask:a}))}}var it=new et,ot=!1,st={transform:function(e){return Be(e)}},ut=at((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?ge:n,a=t.symbol,i=void 0!==a&&a,o=t.mask,s=void 0===o?null:o,l=t.title,c=void 0===l?null:l,d=t.classes,f=void 0===d?[]:d,h=t.attributes,m=void 0===h?{}:h,p=t.styles,_=void 0===p?{}:p;if(e){var y=e.prefix,g=e.iconName,v=e.icon;return nt(u({type:"icon"},e),(function(){return tt(),V.autoA11y&&(c?m["aria-labelledby"]="".concat(V.replacementClass,"-title-").concat(Me()):(m["aria-hidden"]="true",m["focusable"]="false")),Ce({icons:{main:Ze(v),mask:s?Ze(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:y,iconName:g,transform:u({},ge,r),symbol:i,title:c,extra:{attributes:m,styles:_,classes:f}})}))}})),lt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?ge:n,a=t.title,i=void 0===a?null:a,o=t.classes,s=void 0===o?[]:o,l=t.attributes,d=void 0===l?{}:l,f=t.styles,h=void 0===f?{}:f;return nt({type:"text",content:e},(function(){return tt(),Ee({content:e,transform:u({},ge,r),title:i,extra:{attributes:d,styles:h,classes:["".concat(V.familyPrefix,"-layers-text")].concat(c(s))}})}))}}).call(this,n("c8ba"))},eda5:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return e>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}});return t}))},f0f2:function(e){e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},f1ae:function(e,t,n){"use strict";var r=n("86cc"),a=n("4630");e.exports=function(e,t,n){t in e?r.f(e,t,a(0,n)):e[t]=n}},f201:function(e,t,n){var r=n("e4ae"),a=n("79aa"),i=n("5168")("species");e.exports=function(e,t){var n,o=r(e).constructor;return void 0===o||void 0==(n=r(o)[i])?t:a(n)}},f260:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return t}))},f367:function(e,t,n){"use strict";var r=n("d6c7"),a="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),i=Object.prototype.toString,o=Array.prototype.concat,s=Object.defineProperty,u=function(e){return"function"===typeof e&&"[object Function]"===i.call(e)},l=function(){var e={};try{for(var t in s(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(n){return!1}},c=s&&l(),d=function(e,t,n,r){(!(t in e)||u(r)&&r())&&(c?s(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},f=function(e,t){var n=arguments.length>2?arguments[2]:{},i=r(t);a&&(i=o.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}});return r}))},f410:function(e,t,n){n("1af6"),e.exports=n("584a").Array.isArray},f4d6:function(e,t,n){var r=n("ffd6"),a=1/0;function i(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-a?"-0":t}e.exports=i},f559:function(e,t,n){"use strict";var r=n("5ca1"),a=n("9def"),i=n("d2c8"),o="startsWith",s=""[o];r(r.P+r.F*n("5147")(o),"String",{startsWith:function(e){var t=i(this,e,o),n=a(Math.min(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e);return s?s.call(t,r,n):t.slice(n,n+r.length)===r}})},f605:function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},f608:function(e,t,n){var r=n("6747"),a=n("ffd6"),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;function s(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||(o.test(e)||!i.test(e)||null!=t&&e in Object(t))}e.exports=s},f6b4:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],n=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],r=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],a=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],i=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],o=e.defineLocale("gd",{months:t,monthsShort:n,monthsParseExact:!0,weekdays:r,weekdaysShort:a,weekdaysMin:i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){var t=1===e?"d":e%10===2?"na":"mh";return e+t},week:{dow:1,doy:4}});return o}))},f751:function(e,t,n){var r=n("5ca1");r(r.S+r.F,"Object",{assign:n("73334")})},f772:function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},f921:function(e,t,n){n("014b"),n("c207"),n("69d3"),n("765d"),e.exports=n("584a").Symbol},fa5b:function(e,t,n){e.exports=n("5537")("native-function-to-string",Function.toString)},fab2:function(e,t,n){var r=n("7726").document;e.exports=r&&r.documentElement},facd:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,i=e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}});return i}))},fba5:function(e,t,n){var r=n("cb5a");function a(e){return r(this.__data__,e)>-1}e.exports=a},fd7e:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}});return t}))},ffc1:function(e,t,n){var r=n("5ca1"),a=n("504c")(!0);r(r.S,"Object",{entries:function(e){return a(e)}})},ffd6:function(e,t,n){var r=n("3729"),a=n("1310"),i="[object Symbol]";function o(e){return"symbol"==typeof e||a(e)&&r(e)==i}e.exports=o},ffff:function(e,t,n){(function(e,t){t(n("c1df"))})(0,(function(e){"use strict";var t=e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return t}))}}]); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMvY2h1bmstdmVuZG9ycy5iNmNiZjU5NS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9qcy9jaHVuay12ZW5kb3JzLmI2Y2JmNTk1LmpzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztBQW1CQTs7Ozs7O0FBNjhKQTs7QUF3M1BBOzs7Ozs7O0FBOHdKQTs7Ozs7OztBQTRpeUJBOzs7Ozs7Ozs7Ozs7O0FBMmdOQTs7Ozs7Ozs7Ozs7O0FBdTZiQSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/Clockwork/Web/public/js/chunk-vendors.de559e1a.js b/Clockwork/Web/public/js/chunk-vendors.de559e1a.js deleted file mode 100644 index 55fca64b..00000000 --- a/Clockwork/Web/public/js/chunk-vendors.de559e1a.js +++ /dev/null @@ -1,118 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{"0056":function(t,e,n){var a,r; -/*! - * URI.js - Mutating URLs - * IPv6 Support - * - * Version: 1.19.1 - * - * Author: Rodney Rehm - * Web: http://medialize.github.io/URI.js/ - * - * Licensed under - * MIT License http://www.opensource.org/licenses/mit-license - * - */ -/*! - * URI.js - Mutating URLs - * IPv6 Support - * - * Version: 1.19.1 - * - * Author: Rodney Rehm - * Web: http://medialize.github.io/URI.js/ - * - * Licensed under - * MIT License http://www.opensource.org/licenses/mit-license - * - */ -(function(i,o){"use strict";t.exports?t.exports=o():(a=o,r="function"===typeof a?a.call(e,n,e,t):a,void 0===r||(t.exports=r))})(0,function(t){"use strict";var e=t&&t.IPv6;function n(t){var e,n,a=t.toLowerCase(),r=a.split(":"),i=r.length,o=8;for(""===r[0]&&""===r[1]&&""===r[2]?(r.shift(),r.shift()):""===r[0]&&""===r[1]?r.shift():""===r[i-1]&&""===r[i-2]&&r.pop(),i=r.length,-1!==r[i-1].indexOf(".")&&(o=7),e=0;e1))break;n.splice(0,1)}r[s]=n.join("")}var d=-1,u=0,c=0,f=-1,h=!1;for(s=0;su&&(d=f,u=c)):"0"===r[s]&&(h=!0,f=s,c=1);c>u&&(d=f,u=c),u>1&&r.splice(d,u,""),i=r.length;var m="";for(""===r[0]&&(m=":"),s=0;sr)X(t,n=a[r++],e[n]);return t},Z=function(t,e){return void 0===e?x(t):Q(x(t),e)},K=function(t){var e=I.call(this,t=k(t,!0));return!(this===V&&r(R,t)&&!r(N,t))&&(!(e||!r(this,t)||!r(R,t)||r(this,E)&&this[E][t])||e)},tt=function(t,e){if(t=M(t),e=k(e,!0),t!==V||!r(R,e)||r(N,e)){var n=O(t,e);return!n||!r(R,e)||r(t,E)&&t[E][e]||(n.enumerable=!0),n}},et=function(t){var e,n=A(M(t)),a=[],i=0;while(n.length>i)r(R,e=n[i++])||e==E||e==l||a.push(e);return a},nt=function(t){var e,n=t===V,a=A(n?N:M(t)),i=[],o=0;while(a.length>o)!r(R,e=a[o++])||n&&!r(V,e)||i.push(R[e]);return i};U||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var t=f(arguments.length>0?arguments[0]:void 0),e=function(n){this===V&&e.call(N,n),r(this,E)&&r(this[E],t)&&(this[E][t]=!1),J(this,t,w(1,n))};return i&&$&&J(V,t,{configurable:!0,set:e}),G(t)},s(P[z],"toString",function(){return this._k}),Y.f=tt,S.f=X,n("6abf").f=L.f=et,n("355d").f=K,D.f=nt,i&&!n("b8e3")&&s(V,"propertyIsEnumerable",K,!0),m.f=function(t){return G(h(t))}),o(o.G+o.W+o.F*!U,{Symbol:P});for(var at="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;at.length>rt;)h(at[rt++]);for(var it=T(h.store),ot=0;it.length>ot;)p(it[ot++]);o(o.S+o.F*!U,"Symbol",{for:function(t){return r(W,t+="")?W[t]:W[t]=P(t)},keyFor:function(t){if(!q(t))throw TypeError(t+" is not a symbol!");for(var e in W)if(W[e]===t)return e},useSetter:function(){$=!0},useSimple:function(){$=!1}}),o(o.S+o.F*!U,"Object",{create:Z,defineProperty:X,defineProperties:Q,getOwnPropertyDescriptor:tt,getOwnPropertyNames:et,getOwnPropertySymbols:nt});var st=d(function(){D.f(1)});o(o.S+o.F*st,"Object",{getOwnPropertySymbols:function(t){return D.f(b(t))}}),j&&o(o.S+o.F*(!U||d(function(){var t=P();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))})),"JSON",{stringify:function(t){var e,n,a=[t],r=1;while(arguments.length>r)a.push(arguments[r++]);if(n=e=a[1],(g(e)||void 0!==t)&&!q(t))return v(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!q(e))return e}),a[1]=e,C.apply(j,a)}}),P[z][F]||n("35e8")(P[z],F,P[z].valueOf),c(P,"Symbol"),c(Math,"Math",!0),c(a.JSON,"JSON",!0)},"01f9":function(t,e,n){"use strict";var a=n("2d00"),r=n("5ca1"),i=n("2aba"),o=n("32e9"),s=n("84f2"),l=n("41a0"),d=n("7f20"),u=n("38fd"),c=n("2b4c")("iterator"),f=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",p="values",_=function(){return this};t.exports=function(t,e,n,v,y,g,b){l(n,e,v);var M,k,w,x=function(t){if(!f&&t in S)return S[t];switch(t){case m:return function(){return new n(this,t)};case p:return function(){return new n(this,t)}}return function(){return new n(this,t)}},L=e+" Iterator",Y=y==p,D=!1,S=t.prototype,T=S[c]||S[h]||y&&S[y],O=T||x(y),H=y?Y?x("entries"):O:void 0,A="Array"==e&&S.entries||T;if(A&&(w=u(A.call(new t)),w!==Object.prototype&&w.next&&(d(w,L,!0),a||"function"==typeof w[c]||o(w,c,_))),Y&&T&&T.name!==p&&(D=!0,O=function(){return T.call(this)}),a&&!b||!f&&!D&&S[c]||o(S,c,O),s[e]=O,s[L]=_,y)if(M={values:Y?O:x(p),keys:g?O:x(m),entries:H},b)for(k in M)k in S||i(S,k,M[k]);else r(r.P+r.F*(f||D),e,M);return M}},"02f4":function(t,e,n){var a=n("4588"),r=n("be13");t.exports=function(t){return function(e,n){var i,o,s=String(r(e)),l=a(n),d=s.length;return l<0||l>=d?t?"":void 0:(i=s.charCodeAt(l),i<55296||i>56319||l+1===d||(o=s.charCodeAt(l+1))<56320||o>57343?t?s.charAt(l):i:t?s.slice(l,l+2):o-56320+(i-55296<<10)+65536)}}},"02fb":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(t,e){return 12===t&&(t=0),"രാത്രി"===e&&t>=4||"ഉച്ച കഴിഞ്ഞ്"===e||"വൈകുന്നേരം"===e?t+12:t},meridiem:function(t,e,n){return t<4?"രാത്രി":t<12?"രാവിലെ":t<17?"ഉച്ച കഴിഞ്ഞ്":t<20?"വൈകുന്നേരം":"രാത്രി"}});return e})},"0390":function(t,e,n){"use strict";var a=n("02f4")(!0);t.exports=function(t,e,n){return e+(n?a(t,e).length:1)}},"0395":function(t,e,n){var a=n("36c3"),r=n("6abf").f,i={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return o.slice()}};t.exports.f=function(t){return o&&"[object Window]"==i.call(t)?s(t):r(a(t))}},"03ec":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(t){var e=/сехет$/i.exec(t)?"рен":/ҫул$/i.exec(t)?"тан":"ран";return t+e},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}});return e})},"0558":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t){return t%100===11||t%10!==1}function n(t,n,a,r){var i=t+" ";switch(a){case"s":return n||r?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return e(t)?i+(n||r?"sekúndur":"sekúndum"):i+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return e(t)?i+(n||r?"mínútur":"mínútum"):n?i+"mínúta":i+"mínútu";case"hh":return e(t)?i+(n||r?"klukkustundir":"klukkustundum"):i+"klukkustund";case"d":return n?"dagur":r?"dag":"degi";case"dd":return e(t)?n?i+"dagar":i+(r?"daga":"dögum"):n?i+"dagur":i+(r?"dag":"degi");case"M":return n?"mánuður":r?"mánuð":"mánuði";case"MM":return e(t)?n?i+"mánuðir":i+(r?"mánuði":"mánuðum"):n?i+"mánuður":i+(r?"mánuð":"mánuði");case"y":return n||r?"ár":"ári";case"yy":return e(t)?i+(n||r?"ár":"árum"):i+(n||r?"ár":"ári")}}var a=t.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return a})},"0721":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e})},"079e":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(t){return"午後"===t},meridiem:function(t,e,n){return t<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(t){return t.week()M;M++)if((f||M in y)&&(p=y[M],_=g(p,M,v),t))if(n)k[M]=_;else if(_)switch(t){case 3:return!0;case 5:return p;case 6:return M;case 2:k.push(p)}else if(u)return!1;return c?-1:d||u?u:k}}},"0a84":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}});return e})},"0b07":function(t,e,n){var a=n("34ac"),r=n("3698");function i(t,e){var n=r(t,e);return a(n)?n:void 0}t.exports=i},"0bfb":function(t,e,n){"use strict";var a=n("cb7c");t.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0caa":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n,a){var r={s:["thodde secondanim","thodde second"],ss:[t+" secondanim",t+" second"],m:["eka mintan","ek minute"],mm:[t+" mintanim",t+" mintam"],h:["eka voran","ek vor"],hh:[t+" voranim",t+" voram"],d:["eka disan","ek dis"],dd:[t+" disanim",t+" dis"],M:["eka mhoinean","ek mhoino"],MM:[t+" mhoineanim",t+" mhoine"],y:["eka vorsan","ek voros"],yy:[t+" vorsanim",t+" vorsam"]};return e?r[n][0]:r[n][1]}var n=t.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(t,e){switch(e){case"D":return t+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return t}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(t,e){return 12===t&&(t=0),"rati"===e?t<4?t:t+12:"sokalli"===e?t:"donparam"===e?t>12?t:t+12:"sanje"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"rati":t<12?"sokalli":t<16?"donparam":t<20?"sanje":"rati"}});return n})},"0d58":function(t,e,n){var a=n("ce10"),r=n("e11e");t.exports=Object.keys||function(t){return a(t,r)}},"0e49":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}});return e})},"0e6b":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1===~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}});return e})},"0e81":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"},n=t.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(t,n){switch(n){case"d":case"D":case"Do":case"DD":return t;default:if(0===t)return t+"'ıncı";var a=t%10,r=t%100-a,i=t>=100?100:null;return t+(e[a]||e[r]||e[i])}},week:{dow:1,doy:7}});return n})},"0f14":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e})},"0f38":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}});return e})},"0fc9":function(t,e,n){var a=n("3a38"),r=Math.max,i=Math.min;t.exports=function(t,e){return t=a(t),t<0?r(t+e,0):i(t,e)}},"0ff2":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return e})},"10e8":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(t){return"หลังเที่ยง"===t},meridiem:function(t,e,n){return t<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}});return e})},1160:function(t,e){function n(t){if("function"==typeof t)return t;var e=Array.isArray(t)?[]:{};for(var r in t){var i=t[r],o={}.toString.call(i).slice(8,-1);e[r]="Array"==o||"Object"==o?n(i):"Date"==o?new Date(i.getTime()):"RegExp"==o?RegExp(i.source,a(i)):i}return e}function a(t){if("string"==typeof t.source.flags)return t.source.flags;var e=[];return t.global&&e.push("g"),t.ignoreCase&&e.push("i"),t.multiline&&e.push("m"),t.sticky&&e.push("y"),t.unicode&&e.push("u"),e.join("")}t.exports=n},1169:function(t,e,n){var a=n("2d95");t.exports=Array.isArray||function(t){return"Array"==a(t)}},"11e9":function(t,e,n){var a=n("52a7"),r=n("4630"),i=n("6821"),o=n("6a99"),s=n("69a8"),l=n("c69a"),d=Object.getOwnPropertyDescriptor;e.f=n("9e1e")?d:function(t,e){if(t=i(t),e=o(e,!0),l)try{return d(t,e)}catch(n){}if(s(t,e))return r(!a.f.call(t,e),t[e])}},1290:function(t,e){function n(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}t.exports=n},1310:function(t,e){function n(t){return null!=t&&"object"==typeof t}t.exports=n},1368:function(t,e,n){var a=n("da03"),r=function(){var t=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function i(t){return!!r&&r in t}t.exports=i},"13e9":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}},n=t.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var t=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return t[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"дан",dd:e.translate,M:"месец",MM:e.translate,y:"годину",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n})},1495:function(t,e,n){var a=n("86cc"),r=n("cb7c"),i=n("0d58");t.exports=n("9e1e")?Object.defineProperties:function(t,e){r(t);var n,o=i(e),s=o.length,l=0;while(s>l)a.f(t,n=o[l++],e[n]);return t}},1654:function(t,e,n){"use strict";var a=n("71c1")(!0);n("30f1")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=a(e,n),this._i+=t.length,{value:t,done:!1})})},1691:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"18d8":function(t,e,n){var a=n("234d"),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,o=a(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(r,function(t,n,a,r){e.push(a?r.replace(i,"$1"):n||t)}),e});t.exports=o},1991:function(t,e,n){var a,r,i,o=n("9b43"),s=n("31f4"),l=n("fab2"),d=n("230e"),u=n("7726"),c=u.process,f=u.setImmediate,h=u.clearImmediate,m=u.MessageChannel,p=u.Dispatch,_=0,v={},y="onreadystatechange",g=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},b=function(t){g.call(t.data)};f&&h||(f=function(t){var e=[],n=1;while(arguments.length>n)e.push(arguments[n++]);return v[++_]=function(){s("function"==typeof t?t:Function(t),e)},a(_),_},h=function(t){delete v[t]},"process"==n("2d95")(c)?a=function(t){c.nextTick(o(g,t,1))}:p&&p.now?a=function(t){p.now(o(g,t,1))}:m?(r=new m,i=r.port2,r.port1.onmessage=b,a=o(i.postMessage,i,1)):u.addEventListener&&"function"==typeof postMessage&&!u.importScripts?(a=function(t){u.postMessage(t+"","*")},u.addEventListener("message",b,!1)):a=y in d("script")?function(t){l.appendChild(d("script"))[y]=function(){l.removeChild(this),g.call(t)}}:function(t){setTimeout(o(g,t,1),0)}),t.exports={set:f,clear:h}},"1a8c":function(t,e){function n(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}t.exports=n},"1af6":function(t,e,n){var a=n("63b6");a(a.S,"Array",{isArray:n("9003")})},"1b45":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e})},"1bc3":function(t,e,n){var a=n("f772");t.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},"1cfd":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(t){return function(e,r,i,o){var s=n(e),l=a[t][n(e)];return 2===s&&(l=l[r?0:1]),l.replace(/%d/i,e)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],o=t.defineLocale("ar-ly",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:6,doy:12}});return o})},"1ec9":function(t,e,n){var a=n("f772"),r=n("e53d").document,i=a(r)&&a(r.createElement);t.exports=function(t){return i?r.createElement(t):{}}},"1efc":function(t,e){function n(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}t.exports=n},"1fa8":function(t,e,n){var a=n("cb7c");t.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(o){var i=t["return"];throw void 0!==i&&a(i.call(t)),o}}},"1fc1":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e){var n=t.split("_");return e%10===1&&e%100!==11?n[0]:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?n[1]:n[2]}function n(t,n,a){var r={ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:n?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===a?n?"хвіліна":"хвіліну":"h"===a?n?"гадзіна":"гадзіну":t+" "+e(r[a],+t)}var a=t.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:n,mm:n,h:n,hh:n,d:"дзень",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(t){return/^(дня|вечара)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночы":t<12?"раніцы":t<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t%10!==2&&t%10!==3||t%100===12||t%100===13?t+"-ы":t+"-і";case"D":return t+"-га";default:return t}},week:{dow:1,doy:7}});return a})},"1fc8":function(t,e,n){var a=n("4245");function r(t,e){var n=a(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this}t.exports=r},"201b":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(t){return/(წამი|წუთი|საათი|წელი)/.test(t)?t.replace(/ი$/,"ში"):t+"ში"},past:function(t){return/(წამი|წუთი|საათი|დღე|თვე)/.test(t)?t.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(t)?t.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(t){return 0===t?t:1===t?t+"-ლი":t<20||t<=100&&t%20===0||t%100===0?"მე-"+t:t+"-ე"},week:{dow:1,doy:7}});return e})},"20fd":function(t,e,n){"use strict";var a=n("d9f6"),r=n("aebd");t.exports=function(t,e,n){e in t?a.f(t,e,r(0,n)):t[e]=n}},2103:function(t,e,n){!function(e,n){t.exports=n()}(0,function(){var t="undefined"!=typeof window,e="undefined"!=typeof navigator,n=t&&("ontouchstart"in window||e&&navigator.msMaxTouchPoints>0)?["touchstart","click"]:["click"],a=function(t){return t},r={instances:[]};function i(t){var e="function"==typeof t;if(!e&&"object"!=typeof t)throw new Error("v-click-outside: Binding value must be a function or an object");return{handler:e?t:t.handler,middleware:t.middleware||a,events:t.events||n,isActive:!(!1===t.isActive)}}function o(t){var e=t.el,n=t.event,a=t.handler,r=t.middleware;n.target!==e&&!e.contains(n.target)&&r(n,e)&&a(n,e)}function s(t){var e=t.el,n=t.handler,a=t.middleware;return{el:e,eventHandlers:t.events.map(function(t){return{event:t,handler:function(t){return o({event:t,el:e,handler:n,middleware:a})}}})}}function l(t){var e=r.instances.findIndex(function(e){return e.el===t});-1!==e&&(r.instances[e].eventHandlers.forEach(function(t){return document.removeEventListener(t.event,t.handler)}),r.instances.splice(e,1))}return r.bind=function(t,e){var n=i(e.value);if(n.isActive){var a=s({el:t,events:n.events,handler:n.handler,middleware:n.middleware});a.eventHandlers.forEach(function(t){var e=t.event,n=t.handler;return setTimeout(function(){return document.addEventListener(e,n)},0)}),r.instances.push(a)}},r.update=function(t,e){var n=e.value,a=e.oldValue;if(JSON.stringify(n)!==JSON.stringify(a)){var d=i(n),u=d.events,c=d.handler,f=d.middleware;if(d.isActive){var h=r.instances.find(function(e){return e.el===t});h?(h.eventHandlers.forEach(function(t){return document.removeEventListener(t.event,t.handler)}),h.eventHandlers=u.map(function(e){return{event:e,handler:function(e){return o({event:e,el:t,handler:c,middleware:f})}}})):(h=s({el:t,events:u,handler:c,middleware:f}),r.instances.push(h)),h.eventHandlers.forEach(function(t){var e=t.event,n=t.handler;return setTimeout(function(){return document.addEventListener(e,n)},0)})}else l(t)}},r.unbind=l,{install:function(t){t.directive("click-outside",r)},directive:r}})},"214f":function(t,e,n){"use strict";n("b0c5");var a=n("2aba"),r=n("32e9"),i=n("79e5"),o=n("be13"),s=n("2b4c"),l=n("520a"),d=s("species"),u=!i(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$
")}),c=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var f=s(t),h=!i(function(){var e={};return e[f]=function(){return 7},7!=""[t](e)}),m=h?!i(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[d]=function(){return n}),n[f](""),!e}):void 0;if(!h||!m||"replace"===t&&!u||"split"===t&&!c){var p=/./[f],_=n(o,f,""[t],function(t,e,n,a,r){return e.exec===l?h&&!r?{done:!0,value:p.call(e,n,a)}:{done:!0,value:t.call(n,e,a)}:{done:!1}}),v=_[0],y=_[1];a(String.prototype,t,v),r(RegExp.prototype,f,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},"22f8":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"일";case"M":return t+"월";case"w":case"W":return t+"주";default:return t}},meridiemParse:/오전|오후/,isPM:function(t){return"오후"===t},meridiem:function(t,e,n){return t<12?"오전":"오후"}});return e})},"230e":function(t,e,n){var a=n("d3f4"),r=n("7726").document,i=a(r)&&a(r.createElement);t.exports=function(t){return i?r.createElement(t):{}}},"234d":function(t,e,n){var a=n("e380"),r=500;function i(t){var e=a(t,function(t){return n.size===r&&n.clear(),t}),n=e.cache;return e}t.exports=i},"23c6":function(t,e,n){var a=n("2d95"),r=n("2b4c")("toStringTag"),i="Arguments"==a(function(){return arguments}()),o=function(t,e){try{return t[e]}catch(n){}};t.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=o(e=Object(t),r))?n:i?a(e):"Object"==(s=a(e))&&"function"==typeof e.callee?"Arguments":s}},"241e":function(t,e,n){var a=n("25eb");t.exports=function(t){return Object(a(t))}},2421:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},a=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"],r=t.defineLocale("ku",{months:a,monthsShort:a,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(t){return/ئێواره‌/.test(t)},meridiem:function(t,e,n){return t<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:6,doy:12}});return r})},2478:function(t,e,n){var a=n("4245");function r(t){return a(this,t).get(t)}t.exports=r},2524:function(t,e,n){var a=n("6044"),r="__lodash_hash_undefined__";function i(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=a&&void 0===e?r:e,this}t.exports=i},2554:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n){var a=t+" ";switch(n){case"ss":return a+=1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi",a;case"m":return e?"jedna minuta":"jedne minute";case"mm":return a+=1===t?"minuta":2===t||3===t||4===t?"minute":"minuta",a;case"h":return e?"jedan sat":"jednog sata";case"hh":return a+=1===t?"sat":2===t||3===t||4===t?"sata":"sati",a;case"dd":return a+=1===t?"dan":"dana",a;case"MM":return a+=1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci",a;case"yy":return a+=1===t?"godina":2===t||3===t||4===t?"godine":"godina",a}}var n=t.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n})},"25eb":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},2621:function(t,e){e.f=Object.getOwnPropertySymbols},"26f9":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(t,e,n,a){return e?"kelios sekundės":a?"kelių sekundžių":"kelias sekundes"}function a(t,e,n,a){return e?i(n)[0]:a?i(n)[1]:i(n)[2]}function r(t){return t%10===0||t>10&&t<20}function i(t){return e[t].split("_")}function o(t,e,n,o){var s=t+" ";return 1===t?s+a(t,e,n[0],o):e?s+(r(t)?i(n)[1]:i(n)[0]):o?s+i(n)[1]:s+(r(t)?i(n)[1]:i(n)[2])}var s=t.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:n,ss:o,m:a,mm:o,h:a,hh:o,d:a,dd:o,M:a,MM:o,y:a,yy:o},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(t){return t+"-oji"},week:{dow:1,doy:4}});return s})},"27ee":function(t,e,n){var a=n("23c6"),r=n("2b4c")("iterator"),i=n("84f2");t.exports=n("8378").getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||i[a(t)]}},2877:function(t,e,n){"use strict";function a(t,e,n,a,r,i,o,s){var l,d="function"===typeof t?t.options:t;if(e&&(d.render=e,d.staticRenderFns=n,d._compiled=!0),a&&(d.functional=!0),i&&(d._scopeId="data-v-"+i),o?(l=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},d._ssrRegister=l):r&&(l=s?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(d.functional){d._injectStyles=l;var u=d.render;d.render=function(t,e){return l.call(e),u(t,e)}}else{var c=d.beforeCreate;d.beforeCreate=c?[].concat(c,l):[l]}return{exports:t,options:d}}n.d(e,"a",function(){return a})},"28a5":function(t,e,n){"use strict";var a=n("aae3"),r=n("cb7c"),i=n("ebd6"),o=n("0390"),s=n("9def"),l=n("5f1b"),d=n("520a"),u=n("79e5"),c=Math.min,f=[].push,h="split",m="length",p="lastIndex",_=4294967295,v=!u(function(){RegExp(_,"y")});n("214f")("split",2,function(t,e,n,u){var y;return y="c"=="abbc"[h](/(b)*/)[1]||4!="test"[h](/(?:)/,-1)[m]||2!="ab"[h](/(?:ab)*/)[m]||4!="."[h](/(.?)(.?)/)[m]||"."[h](/()()/)[m]>1||""[h](/.?/)[m]?function(t,e){var r=String(this);if(void 0===t&&0===e)return[];if(!a(t))return n.call(r,t,e);var i,o,s,l=[],u=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),c=0,h=void 0===e?_:e>>>0,v=new RegExp(t.source,u+"g");while(i=d.call(v,r)){if(o=v[p],o>c&&(l.push(r.slice(c,i.index)),i[m]>1&&i.index=h))break;v[p]===i.index&&v[p]++}return c===r[m]?!s&&v.test("")||l.push(""):l.push(r.slice(c)),l[m]>h?l.slice(0,h):l}:"0"[h](void 0,0)[m]?function(t,e){return void 0===t&&0===e?[]:n.call(this,t,e)}:n,[function(n,a){var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r,a):y.call(String(r),n,a)},function(t,e){var a=u(y,t,this,e,y!==n);if(a.done)return a.value;var d=r(t),f=String(this),h=i(d,RegExp),m=d.unicode,p=(d.ignoreCase?"i":"")+(d.multiline?"m":"")+(d.unicode?"u":"")+(v?"y":"g"),g=new h(v?d:"^(?:"+d.source+")",p),b=void 0===e?_:e>>>0;if(0===b)return[];if(0===f.length)return null===l(g,f)?[f]:[];var M=0,k=0,w=[];while(k=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}},n=t.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var t=["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return t[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mjesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n})},"294c":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"29f3":function(t,e){var n=Object.prototype,a=n.toString;function r(t){return a.call(t)}t.exports=r},"2aba":function(t,e,n){var a=n("7726"),r=n("32e9"),i=n("69a8"),o=n("ca5a")("src"),s=n("fa5b"),l="toString",d=(""+s).split(l);n("8378").inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var l="function"==typeof n;l&&(i(n,"name")||r(n,"name",e)),t[e]!==n&&(l&&(i(n,o)||r(n,o,t[e]?""+t[e]:d.join(String(e)))),t===a?t[e]=n:s?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,l,function(){return"function"==typeof this&&this[o]||s.call(this)})},"2aeb":function(t,e,n){var a=n("cb7c"),r=n("1495"),i=n("e11e"),o=n("613b")("IE_PROTO"),s=function(){},l="prototype",d=function(){var t,e=n("230e")("iframe"),a=i.length,r="<",o=">";e.style.display="none",n("fab2").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(r+"script"+o+"document.F=Object"+r+"/script"+o),t.close(),d=t.F;while(a--)delete d[l][i[a]];return d()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[l]=a(t),n=new s,s[l]=null,n[o]=t):n=d(),void 0===e?n:r(n,e)}},"2b0e":function(t,e,n){"use strict";(function(t){ -/*! - * Vue.js v2.6.10 - * (c) 2014-2019 Evan You - * Released under the MIT License. - */ -var n=Object.freeze({});function a(t){return void 0===t||null===t}function r(t){return void 0!==t&&null!==t}function i(t){return!0===t}function o(t){return!1===t}function s(t){return"string"===typeof t||"number"===typeof t||"symbol"===typeof t||"boolean"===typeof t}function l(t){return null!==t&&"object"===typeof t}var d=Object.prototype.toString;function u(t){return"[object Object]"===d.call(t)}function c(t){return"[object RegExp]"===d.call(t)}function f(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function h(t){return r(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||u(t)&&t.toString===d?JSON.stringify(t,null,2):String(t)}function p(t){var e=parseFloat(t);return isNaN(e)?t:e}function _(t,e){for(var n=Object.create(null),a=t.split(","),r=0;r-1)return t.splice(n,1)}}var g=Object.prototype.hasOwnProperty;function b(t,e){return g.call(t,e)}function M(t){var e=Object.create(null);return function(n){var a=e[n];return a||(e[n]=t(n))}}var k=/-(\w)/g,w=M(function(t){return t.replace(k,function(t,e){return e?e.toUpperCase():""})}),x=M(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),L=/\B([A-Z])/g,Y=M(function(t){return t.replace(L,"-$1").toLowerCase()});function D(t,e){function n(n){var a=arguments.length;return a?a>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function S(t,e){return t.bind(e)}var T=Function.prototype.bind?S:D;function O(t,e){e=e||0;var n=t.length-e,a=new Array(n);while(n--)a[n]=t[n+e];return a}function H(t,e){for(var n in e)t[n]=e[n];return t}function A(t){for(var e={},n=0;n0,nt=K&&K.indexOf("edge/")>0,at=(K&&K.indexOf("android"),K&&/iphone|ipad|ipod|ios/.test(K)||"ios"===Z),rt=(K&&/chrome\/\d+/.test(K),K&&/phantomjs/.test(K),K&&K.match(/firefox\/(\d+)/)),it={}.watch,ot=!1;if(X)try{var st={};Object.defineProperty(st,"passive",{get:function(){ot=!0}}),window.addEventListener("test-passive",null,st)}catch(wo){}var lt=function(){return void 0===G&&(G=!X&&!Q&&"undefined"!==typeof t&&(t["process"]&&"server"===t["process"].env.VUE_ENV)),G},dt=X&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ut(t){return"function"===typeof t&&/native code/.test(t.toString())}var ct,ft="undefined"!==typeof Symbol&&ut(Symbol)&&"undefined"!==typeof Reflect&&ut(Reflect.ownKeys);ct="undefined"!==typeof Set&&ut(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ht=P,mt=0,pt=function(){this.id=mt++,this.subs=[]};pt.prototype.addSub=function(t){this.subs.push(t)},pt.prototype.removeSub=function(t){y(this.subs,t)},pt.prototype.depend=function(){pt.target&&pt.target.addDep(this)},pt.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(i&&!b(r,"default"))o=!1;else if(""===o||o===Y(t)){var l=te(String,r.type);(l<0||s0&&(o=De(o,(e||"")+"_"+n),Ye(o[0])&&Ye(d)&&(u[l]=kt(d.text+o[0].text),o.shift()),u.push.apply(u,o)):s(o)?Ye(d)?u[l]=kt(d.text+o):""!==o&&u.push(kt(o)):Ye(o)&&Ye(d)?u[l]=kt(d.text+o.text):(i(t._isVList)&&r(o.tag)&&a(o.key)&&r(e)&&(o.key="__vlist"+e+"_"+n+"__"),u.push(o)));return u}function Se(t){var e=t.$options.provide;e&&(t._provided="function"===typeof e?e.call(t):e)}function Te(t){var e=Oe(t.$options.inject,t);e&&(Tt(!1),Object.keys(e).forEach(function(n){jt(t,n,e[n])}),Tt(!0))}function Oe(t,e){if(t){for(var n=Object.create(null),a=ft?Reflect.ownKeys(t):Object.keys(t),r=0;r0,o=t?!!t.$stable:!i,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(o&&a&&a!==n&&s===a.$key&&!i&&!a.$hasNormal)return a;for(var l in r={},t)t[l]&&"$"!==l[0]&&(r[l]=je(e,l,t[l]))}else r={};for(var d in e)d in r||(r[d]=Ce(e,d));return t&&Object.isExtensible(t)&&(t._normalized=r),B(r,"$stable",o),B(r,"$key",s),B(r,"$hasNormal",i),r}function je(t,e,n){var a=function(){var t=arguments.length?n.apply(null,arguments):n({});return t=t&&"object"===typeof t&&!Array.isArray(t)?[t]:Le(t),t&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:a,enumerable:!0,configurable:!0}),a}function Ce(t,e){return function(){return t[e]}}function ze(t,e){var n,a,i,o,s;if(Array.isArray(t)||"string"===typeof t)for(n=new Array(t.length),a=0,i=t.length;a1?O(n):n;for(var a=O(arguments,1),r='event handler for "'+t+'"',i=0,o=n.length;idocument.createEvent("Event").timeStamp&&(Gn=function(){return qn.now()})}function Xn(){var t,e;for(Jn=Gn(),Un=!0,Wn.sort(function(t,e){return t.id-e.id}),Bn=0;BnBn&&Wn[n].id>t.id)n--;Wn.splice(n+1,0,t)}else Wn.push(t);Vn||(Vn=!0,me(Xn))}}var ea=0,na=function(t,e,n,a,r){this.vm=t,r&&(t._watcher=this),t._watchers.push(this),a?(this.deep=!!a.deep,this.user=!!a.user,this.lazy=!!a.lazy,this.sync=!!a.sync,this.before=a.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++ea,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ct,this.newDepIds=new ct,this.expression="","function"===typeof e?this.getter=e:(this.getter=J(e),this.getter||(this.getter=P)),this.value=this.lazy?void 0:this.get()};na.prototype.get=function(){var t;vt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(wo){if(!this.user)throw wo;ee(wo,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&_e(t),yt(),this.cleanupDeps()}return t},na.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},na.prototype.cleanupDeps=function(){var t=this.deps.length;while(t--){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},na.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():ta(this)},na.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||l(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(wo){ee(wo,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},na.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},na.prototype.depend=function(){var t=this.deps.length;while(t--)this.deps[t].depend()},na.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);var t=this.deps.length;while(t--)this.deps[t].removeSub(this);this.active=!1}};var aa={enumerable:!0,configurable:!0,get:P,set:P};function ra(t,e,n){aa.get=function(){return this[e][n]},aa.set=function(t){this[e][n]=t},Object.defineProperty(t,n,aa)}function ia(t){t._watchers=[];var e=t.$options;e.props&&oa(t,e.props),e.methods&&ma(t,e.methods),e.data?sa(t):Pt(t._data={},!0),e.computed&&ua(t,e.computed),e.watch&&e.watch!==it&&pa(t,e.watch)}function oa(t,e){var n=t.$options.propsData||{},a=t._props={},r=t.$options._propKeys=[],i=!t.$parent;i||Tt(!1);var o=function(i){r.push(i);var o=Xt(i,e,n,t);jt(a,i,o),i in t||ra(t,"_props",i)};for(var s in e)o(s);Tt(!0)}function sa(t){var e=t.$options.data;e=t._data="function"===typeof e?la(e,t):e||{},u(e)||(e={});var n=Object.keys(e),a=t.$options.props,r=(t.$options.methods,n.length);while(r--){var i=n[r];0,a&&b(a,i)||U(i)||ra(t,"_data",i)}Pt(e,!0)}function la(t,e){vt();try{return t.call(e,e)}catch(wo){return ee(wo,e,"data()"),{}}finally{yt()}}var da={lazy:!0};function ua(t,e){var n=t._computedWatchers=Object.create(null),a=lt();for(var r in e){var i=e[r],o="function"===typeof i?i:i.get;0,a||(n[r]=new na(t,o||P,P,da)),r in t||ca(t,r,i)}}function ca(t,e,n){var a=!lt();"function"===typeof n?(aa.get=a?fa(e):ha(n),aa.set=P):(aa.get=n.get?a&&!1!==n.cache?fa(e):ha(n.get):P,aa.set=n.set||P),Object.defineProperty(t,e,aa)}function fa(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),pt.target&&e.depend(),e.value}}function ha(t){return function(){return t.call(this,this)}}function ma(t,e){t.$options.props;for(var n in e)t[n]="function"!==typeof e[n]?P:T(e[n],t)}function pa(t,e){for(var n in e){var a=e[n];if(Array.isArray(a))for(var r=0;r-1)return this;var n=O(arguments,1);return n.unshift(this),"function"===typeof t.install?t.install.apply(t,n):"function"===typeof t&&t.apply(null,n),e.push(t),this}}function La(t){t.mixin=function(t){return this.options=Gt(this.options,t),this}}function Ya(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,a=n.cid,r=t._Ctor||(t._Ctor={});if(r[a])return r[a];var i=t.name||n.options.name;var o=function(t){this._init(t)};return o.prototype=Object.create(n.prototype),o.prototype.constructor=o,o.cid=e++,o.options=Gt(n.options,t),o["super"]=n,o.options.props&&Da(o),o.options.computed&&Sa(o),o.extend=n.extend,o.mixin=n.mixin,o.use=n.use,W.forEach(function(t){o[t]=n[t]}),i&&(o.options.components[i]=o),o.superOptions=n.options,o.extendOptions=t,o.sealedOptions=H({},o.options),r[a]=o,o}}function Da(t){var e=t.options.props;for(var n in e)ra(t.prototype,"_props",n)}function Sa(t){var e=t.options.computed;for(var n in e)ca(t.prototype,n,e[n])}function Ta(t){W.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&u(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"===typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}function Oa(t){return t&&(t.Ctor.options.name||t.tag)}function Ha(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!c(t)&&t.test(e)}function Aa(t,e){var n=t.cache,a=t.keys,r=t._vnode;for(var i in n){var o=n[i];if(o){var s=Oa(o.componentOptions);s&&!e(s)&&Pa(n,i,a,r)}}}function Pa(t,e,n,a){var r=t[e];!r||a&&r.tag===a.tag||r.componentInstance.$destroy(),t[e]=null,y(n,e)}ga(wa),va(wa),Tn(wa),Pn(wa),yn(wa);var ja=[String,RegExp,Array],Ca={name:"keep-alive",abstract:!0,props:{include:ja,exclude:ja,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Pa(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",function(e){Aa(t,function(t){return Ha(e,t)})}),this.$watch("exclude",function(e){Aa(t,function(t){return!Ha(e,t)})})},render:function(){var t=this.$slots.default,e=wn(t),n=e&&e.componentOptions;if(n){var a=Oa(n),r=this,i=r.include,o=r.exclude;if(i&&(!a||!Ha(i,a))||o&&a&&Ha(o,a))return e;var s=this,l=s.cache,d=s.keys,u=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;l[u]?(e.componentInstance=l[u].componentInstance,y(d,u),d.push(u)):(l[u]=e,d.push(u),this.max&&d.length>parseInt(this.max)&&Pa(l,d[0],d,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}},za={KeepAlive:Ca};function Ea(t){var e={get:function(){return N}};Object.defineProperty(t,"config",e),t.util={warn:ht,extend:H,mergeOptions:Gt,defineReactive:jt},t.set=Ct,t.delete=zt,t.nextTick=me,t.observable=function(t){return Pt(t),t},t.options=Object.create(null),W.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,H(t.options.components,za),xa(t),La(t),Ya(t),Ta(t)}Ea(wa),Object.defineProperty(wa.prototype,"$isServer",{get:lt}),Object.defineProperty(wa.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(wa,"FunctionalRenderContext",{value:Qe}),wa.version="2.6.10";var Fa=_("style,class"),Ia=_("input,textarea,option,select,progress"),Wa=function(t,e,n){return"value"===n&&Ia(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Ra=_("contenteditable,draggable,spellcheck"),Na=_("events,caret,typing,plaintext-only"),Va=function(t,e){return Ga(e)||"false"===e?"false":"contenteditable"===t&&Na(e)?e:"true"},Ua=_("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Ba="http://www.w3.org/1999/xlink",$a=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Ja=function(t){return $a(t)?t.slice(6,t.length):""},Ga=function(t){return null==t||!1===t};function qa(t){var e=t.data,n=t,a=t;while(r(a.componentInstance))a=a.componentInstance._vnode,a&&a.data&&(e=Xa(a.data,e));while(r(n=n.parent))n&&n.data&&(e=Xa(e,n.data));return Qa(e.staticClass,e.class)}function Xa(t,e){return{staticClass:Za(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function Qa(t,e){return r(t)||r(e)?Za(t,Ka(e)):""}function Za(t,e){return t?e?t+" "+e:t:e||""}function Ka(t){return Array.isArray(t)?tr(t):l(t)?er(t):"string"===typeof t?t:""}function tr(t){for(var e,n="",a=0,i=t.length;a-1?sr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:sr[t]=/HTMLUnknownElement/.test(e.toString())}var dr=_("text,number,password,search,email,tel,url");function ur(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function cr(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function fr(t,e){return document.createElementNS(nr[t],e)}function hr(t){return document.createTextNode(t)}function mr(t){return document.createComment(t)}function pr(t,e,n){t.insertBefore(e,n)}function _r(t,e){t.removeChild(e)}function vr(t,e){t.appendChild(e)}function yr(t){return t.parentNode}function gr(t){return t.nextSibling}function br(t){return t.tagName}function Mr(t,e){t.textContent=e}function kr(t,e){t.setAttribute(e,"")}var wr=Object.freeze({createElement:cr,createElementNS:fr,createTextNode:hr,createComment:mr,insertBefore:pr,removeChild:_r,appendChild:vr,parentNode:yr,nextSibling:gr,tagName:br,setTextContent:Mr,setStyleScope:kr}),xr={create:function(t,e){Lr(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Lr(t,!0),Lr(e))},destroy:function(t){Lr(t,!0)}};function Lr(t,e){var n=t.data.ref;if(r(n)){var a=t.context,i=t.componentInstance||t.elm,o=a.$refs;e?Array.isArray(o[n])?y(o[n],i):o[n]===i&&(o[n]=void 0):t.data.refInFor?Array.isArray(o[n])?o[n].indexOf(i)<0&&o[n].push(i):o[n]=[i]:o[n]=i}}var Yr=new gt("",{},[]),Dr=["create","activate","update","remove","destroy"];function Sr(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&r(t.data)===r(e.data)&&Tr(t,e)||i(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&a(e.asyncFactory.error))}function Tr(t,e){if("input"!==t.tag)return!0;var n,a=r(n=t.data)&&r(n=n.attrs)&&n.type,i=r(n=e.data)&&r(n=n.attrs)&&n.type;return a===i||dr(a)&&dr(i)}function Or(t,e,n){var a,i,o={};for(a=e;a<=n;++a)i=t[a].key,r(i)&&(o[i]=a);return o}function Hr(t){var e,n,o={},l=t.modules,d=t.nodeOps;for(e=0;ep?(c=a(n[y+1])?null:n[y+1].elm,w(t,c,n,m,y,i)):m>y&&L(t,e,f,p)}function S(t,e,n,a){for(var i=n;i-1?Nr(t,e,n):Ua(e)?Ga(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Ra(e)?t.setAttribute(e,Va(e,n)):$a(e)?Ga(n)?t.removeAttributeNS(Ba,Ja(e)):t.setAttributeNS(Ba,e,n):Nr(t,e,n)}function Nr(t,e,n){if(Ga(n))t.removeAttribute(e);else{if(tt&&!et&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var a=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",a)};t.addEventListener("input",a),t.__ieph=!0}t.setAttribute(e,n)}}var Vr={create:Wr,update:Wr};function Ur(t,e){var n=e.elm,i=e.data,o=t.data;if(!(a(i.staticClass)&&a(i.class)&&(a(o)||a(o.staticClass)&&a(o.class)))){var s=qa(e),l=n._transitionClasses;r(l)&&(s=Za(s,Ka(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Br,$r={create:Ur,update:Ur},Jr="__r",Gr="__c";function qr(t){if(r(t[Jr])){var e=tt?"change":"input";t[e]=[].concat(t[Jr],t[e]||[]),delete t[Jr]}r(t[Gr])&&(t.change=[].concat(t[Gr],t.change||[]),delete t[Gr])}function Xr(t,e,n){var a=Br;return function r(){var i=e.apply(null,arguments);null!==i&&Kr(t,r,n,a)}}var Qr=oe&&!(rt&&Number(rt[1])<=53);function Zr(t,e,n,a){if(Qr){var r=Jn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=r||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Br.addEventListener(t,e,ot?{capture:n,passive:a}:n)}function Kr(t,e,n,a){(a||Br).removeEventListener(t,e._wrapper||e,n)}function ti(t,e){if(!a(t.data.on)||!a(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Br=e.elm,qr(n),be(n,r,Zr,Kr,Xr,e.context),Br=void 0}}var ei,ni={create:ti,update:ti};function ai(t,e){if(!a(t.data.domProps)||!a(e.data.domProps)){var n,i,o=e.elm,s=t.data.domProps||{},l=e.data.domProps||{};for(n in r(l.__ob__)&&(l=e.data.domProps=H({},l)),s)n in l||(o[n]="");for(n in l){if(i=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),i===s[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=i;var d=a(i)?"":String(i);ri(o,d)&&(o.value=d)}else if("innerHTML"===n&&rr(o.tagName)&&a(o.innerHTML)){ei=ei||document.createElement("div"),ei.innerHTML=""+i+"";var u=ei.firstChild;while(o.firstChild)o.removeChild(o.firstChild);while(u.firstChild)o.appendChild(u.firstChild)}else if(i!==s[n])try{o[n]=i}catch(wo){}}}}function ri(t,e){return!t.composing&&("OPTION"===t.tagName||ii(t,e)||oi(t,e))}function ii(t,e){var n=!0;try{n=document.activeElement!==t}catch(wo){}return n&&t.value!==e}function oi(t,e){var n=t.value,a=t._vModifiers;if(r(a)){if(a.number)return p(n)!==p(e);if(a.trim)return n.trim()!==e.trim()}return n!==e}var si={create:ai,update:ai},li=M(function(t){var e={},n=/;(?![^(]*\))/g,a=/:(.+)/;return t.split(n).forEach(function(t){if(t){var n=t.split(a);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e});function di(t){var e=ui(t.style);return t.staticStyle?H(t.staticStyle,e):e}function ui(t){return Array.isArray(t)?A(t):"string"===typeof t?li(t):t}function ci(t,e){var n,a={};if(e){var r=t;while(r.componentInstance)r=r.componentInstance._vnode,r&&r.data&&(n=di(r.data))&&H(a,n)}(n=di(t.data))&&H(a,n);var i=t;while(i=i.parent)i.data&&(n=di(i.data))&&H(a,n);return a}var fi,hi=/^--/,mi=/\s*!important$/,pi=function(t,e,n){if(hi.test(e))t.style.setProperty(e,n);else if(mi.test(n))t.style.setProperty(Y(e),n.replace(mi,""),"important");else{var a=vi(e);if(Array.isArray(n))for(var r=0,i=n.length;r-1?e.split(bi).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function ki(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(bi).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" "+(t.getAttribute("class")||"")+" ",a=" "+e+" ";while(n.indexOf(a)>=0)n=n.replace(a," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function wi(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&H(e,xi(t.name||"v")),H(e,t),e}return"string"===typeof t?xi(t):void 0}}var xi=M(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Li=X&&!et,Yi="transition",Di="animation",Si="transition",Ti="transitionend",Oi="animation",Hi="animationend";Li&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Si="WebkitTransition",Ti="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Oi="WebkitAnimation",Hi="webkitAnimationEnd"));var Ai=X?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Pi(t){Ai(function(){Ai(t)})}function ji(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Mi(t,e))}function Ci(t,e){t._transitionClasses&&y(t._transitionClasses,e),ki(t,e)}function zi(t,e,n){var a=Fi(t,e),r=a.type,i=a.timeout,o=a.propCount;if(!r)return n();var s=r===Yi?Ti:Hi,l=0,d=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++l>=o&&d()};setTimeout(function(){l0&&(n=Yi,u=o,c=i.length):e===Di?d>0&&(n=Di,u=d,c=l.length):(u=Math.max(o,d),n=u>0?o>d?Yi:Di:null,c=n?n===Yi?i.length:l.length:0);var f=n===Yi&&Ei.test(a[Si+"Property"]);return{type:n,timeout:u,propCount:c,hasTransform:f}}function Ii(t,e){while(t.length1}function Bi(t,e){!0!==e.data.show&&Ri(e)}var $i=X?{create:Bi,activate:Bi,remove:function(t,e){!0!==t.data.show?Ni(t,e):e()}}:{},Ji=[Vr,$r,ni,si,gi,$i],Gi=Ji.concat(Ir),qi=Hr({nodeOps:wr,modules:Gi});et&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&ao(t,"input")});var Xi={inserted:function(t,e,n,a){"select"===n.tag?(a.elm&&!a.elm._vOptions?Me(n,"postpatch",function(){Xi.componentUpdated(t,e,n)}):Qi(t,e,n.context),t._vOptions=[].map.call(t.options,to)):("textarea"===n.tag||dr(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",eo),t.addEventListener("compositionend",no),t.addEventListener("change",no),et&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Qi(t,e,n.context);var a=t._vOptions,r=t._vOptions=[].map.call(t.options,to);if(r.some(function(t,e){return!z(t,a[e])})){var i=t.multiple?e.value.some(function(t){return Ki(t,r)}):e.value!==e.oldValue&&Ki(e.value,r);i&&ao(t,"change")}}}};function Qi(t,e,n){Zi(t,e,n),(tt||nt)&&setTimeout(function(){Zi(t,e,n)},0)}function Zi(t,e,n){var a=e.value,r=t.multiple;if(!r||Array.isArray(a)){for(var i,o,s=0,l=t.options.length;s-1,o.selected!==i&&(o.selected=i);else if(z(to(o),a))return void(t.selectedIndex!==s&&(t.selectedIndex=s));r||(t.selectedIndex=-1)}}function Ki(t,e){return e.every(function(e){return!z(e,t)})}function to(t){return"_value"in t?t._value:t.value}function eo(t){t.target.composing=!0}function no(t){t.target.composing&&(t.target.composing=!1,ao(t.target,"input"))}function ao(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ro(t){return!t.componentInstance||t.data&&t.data.transition?t:ro(t.componentInstance._vnode)}var io={bind:function(t,e,n){var a=e.value;n=ro(n);var r=n.data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;a&&r?(n.data.show=!0,Ri(n,function(){t.style.display=i})):t.style.display=a?i:"none"},update:function(t,e,n){var a=e.value,r=e.oldValue;if(!a!==!r){n=ro(n);var i=n.data&&n.data.transition;i?(n.data.show=!0,a?Ri(n,function(){t.style.display=t.__vOriginalDisplay}):Ni(n,function(){t.style.display="none"})):t.style.display=a?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,a,r){r||(t.style.display=t.__vOriginalDisplay)}},oo={model:Xi,show:io},so={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function lo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?lo(wn(e.children)):t}function uo(t){var e={},n=t.$options;for(var a in n.propsData)e[a]=t[a];var r=n._parentListeners;for(var i in r)e[w(i)]=r[i];return e}function co(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function fo(t){while(t=t.parent)if(t.data.transition)return!0}function ho(t,e){return e.key===t.key&&e.tag===t.tag}var mo=function(t){return t.tag||kn(t)},po=function(t){return"show"===t.name},_o={name:"transition",props:so,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(mo),n.length)){0;var a=this.mode;0;var r=n[0];if(fo(this.$vnode))return r;var i=lo(r);if(!i)return r;if(this._leaving)return co(t,r);var o="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?o+"comment":o+i.tag:s(i.key)?0===String(i.key).indexOf(o)?i.key:o+i.key:i.key;var l=(i.data||(i.data={})).transition=uo(this),d=this._vnode,u=lo(d);if(i.data.directives&&i.data.directives.some(po)&&(i.data.show=!0),u&&u.data&&!ho(i,u)&&!kn(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var c=u.data.transition=H({},l);if("out-in"===a)return this._leaving=!0,Me(c,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),co(t,r);if("in-out"===a){if(kn(i))return d;var f,h=function(){f()};Me(l,"afterEnter",h),Me(l,"enterCancelled",h),Me(c,"delayLeave",function(t){f=t})}}return r}}},vo=H({tag:String,moveClass:String},so);delete vo.mode;var yo={props:vo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,a){var r=Hn(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,r(),e.call(t,n,a)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),a=this.prevChildren=this.children,r=this.$slots.default||[],i=this.children=[],o=uo(this),s=0;s=20?"ste":"de")},week:{dow:1,doy:4}});return e})},"2d00":function(t,e){t.exports=!1},"2d95":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"2e8c":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}});return e})},"2ead":function(t,e,n){(function(t){(function(t,n){n(e)})(0,function(e){"use strict";var n="undefined"!==typeof window?window:"undefined"!==typeof t?t:"undefined"!==typeof self?self:{};function a(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function r(t,e){return e={exports:{}},t(e,e.exports),e.exports}var i=r(function(t,e){var r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t}; -//! moment.js -//! version : 2.19.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -//! moment.js -//! version : 2.19.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -(function(n,a){"object"===r(e)?t.exports=a():n.moment=a()})(n,function(){var e,n;function i(){return e.apply(null,arguments)}function o(t){e=t}function s(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function l(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function d(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function u(t){return void 0===t}function c(t){return"number"===typeof t||"[object Number]"===Object.prototype.toString.call(t)}function f(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function h(t,e){var n,a=[];for(n=0;n>>0,a=0;a0)for(n=0;n0?"future":"past"];return j(n)?n(e):n.replace(/%s/i,e)}var X={};function Q(t,e){var n=t.toLowerCase();X[n]=X[n+"s"]=X[e]=t}function Z(t){return"string"===typeof t?X[t]||X[t.toLowerCase()]:void 0}function K(t){var e,n,a={};for(n in t)m(t,n)&&(e=Z(n),e&&(a[e]=t[n]));return a}var tt={};function et(t,e){tt[t]=e}function nt(t){var e=[];for(var n in t)e.push({unit:n,priority:tt[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}function at(t,e,n){var a=""+Math.abs(t),r=e-a.length,i=t>=0;return(i?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+a}var rt=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,it=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ot={},st={};function lt(t,e,n,a){var r=a;"string"===typeof a&&(r=function(){return this[a]()}),t&&(st[t]=r),e&&(st[e[0]]=function(){return at(r.apply(this,arguments),e[1],e[2])}),n&&(st[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function dt(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function ut(t){var e,n,a=t.match(rt);for(e=0,n=a.length;e=0&&it.test(t))t=t.replace(it,a),it.lastIndex=0,n-=1;return t}var ht=/\d/,mt=/\d\d/,pt=/\d{3}/,_t=/\d{4}/,vt=/[+-]?\d{6}/,yt=/\d\d?/,gt=/\d\d\d\d?/,bt=/\d\d\d\d\d\d?/,Mt=/\d{1,3}/,kt=/\d{1,4}/,wt=/[+-]?\d{1,6}/,xt=/\d+/,Lt=/[+-]?\d+/,Yt=/Z|[+-]\d\d:?\d\d/gi,Dt=/Z|[+-]\d\d(?::?\d\d)?/gi,St=/[+-]?\d+(\.\d{1,3})?/,Tt=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ot={};function Ht(t,e,n){Ot[t]=j(e)?e:function(t,a){return t&&n?n:e}}function At(t,e){return m(Ot,t)?Ot[t](e._strict,e._locale):new RegExp(Pt(t))}function Pt(t){return jt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,a,r){return e||n||a||r}))}function jt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Ct={};function zt(t,e){var n,a=e;for("string"===typeof t&&(t=[t]),c(e)&&(a=function(t,n){n[e]=D(t)}),n=0;n68?1900:2e3)};var Xt,Qt=Kt("FullYear",!0);function Zt(){return qt(this.year())}function Kt(t,e){return function(n){return null!=n?(ee(this,t,n),i.updateOffset(this,e),this):te(this,t)}}function te(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function ee(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&qt(t.year())?t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),ie(n,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](n))}function ne(t){return t=Z(t),j(this[t])?this[t]():this}function ae(t,e){if("object"===("undefined"===typeof t?"undefined":r(t))){t=K(t);for(var n=nt(t),a=0;a=0&&isFinite(s.getFullYear())&&s.setFullYear(t),s}function ke(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function we(t,e,n){var a=7+e-n,r=(7+ke(t,0,a).getUTCDay()-e)%7;return-r+a-1}function xe(t,e,n,a,r){var i,o,s=(7+n-a)%7,l=we(t,a,r),d=1+7*(e-1)+s+l;return d<=0?(i=t-1,o=Gt(i)+d):d>Gt(t)?(i=t+1,o=d-Gt(t)):(i=t,o=d),{year:i,dayOfYear:o}}function Le(t,e,n){var a,r,i=we(t.year(),e,n),o=Math.floor((t.dayOfYear()-i-1)/7)+1;return o<1?(r=t.year()-1,a=o+Ye(r,e,n)):o>Ye(t.year(),e,n)?(a=o-Ye(t.year(),e,n),r=t.year()+1):(r=t.year(),a=o),{week:a,year:r}}function Ye(t,e,n){var a=we(t,e,n),r=we(t+1,e,n);return(Gt(t)-a+r)/7}function De(t){return Le(t,this._week.dow,this._week.doy).week}lt("w",["ww",2],"wo","week"),lt("W",["WW",2],"Wo","isoWeek"),Q("week","w"),Q("isoWeek","W"),et("week",5),et("isoWeek",5),Ht("w",yt),Ht("ww",yt,mt),Ht("W",yt),Ht("WW",yt,mt),Et(["w","ww","W","WW"],function(t,e,n,a){e[a.substr(0,1)]=D(t)});var Se={dow:0,doy:6};function Te(){return this._week.dow}function Oe(){return this._week.doy}function He(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ae(t){var e=Le(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Pe(t,e){return"string"!==typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"===typeof t?t:null):parseInt(t,10)}function je(t,e){return"string"===typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}lt("d",0,"do","day"),lt("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),lt("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),lt("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),lt("e",0,0,"weekday"),lt("E",0,0,"isoWeekday"),Q("day","d"),Q("weekday","e"),Q("isoWeekday","E"),et("day",11),et("weekday",11),et("isoWeekday",11),Ht("d",yt),Ht("e",yt),Ht("E",yt),Ht("dd",function(t,e){return e.weekdaysMinRegex(t)}),Ht("ddd",function(t,e){return e.weekdaysShortRegex(t)}),Ht("dddd",function(t,e){return e.weekdaysRegex(t)}),Et(["dd","ddd","dddd"],function(t,e,n,a){var r=n._locale.weekdaysParse(t,a,n._strict);null!=r?e.d=r:y(n).invalidWeekday=t}),Et(["d","e","E"],function(t,e,n,a){e[a]=D(t)});var Ce="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");function ze(t,e){return t?s(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:s(this._weekdays)?this._weekdays:this._weekdays["standalone"]}var Ee="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");function Fe(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}var Ie="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function We(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Re(t,e,n){var a,r,i,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;a<7;++a)i=_([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===e?(r=Xt.call(this._weekdaysParse,o),-1!==r?r:null):"ddd"===e?(r=Xt.call(this._shortWeekdaysParse,o),-1!==r?r:null):(r=Xt.call(this._minWeekdaysParse,o),-1!==r?r:null):"dddd"===e?(r=Xt.call(this._weekdaysParse,o),-1!==r?r:(r=Xt.call(this._shortWeekdaysParse,o),-1!==r?r:(r=Xt.call(this._minWeekdaysParse,o),-1!==r?r:null))):"ddd"===e?(r=Xt.call(this._shortWeekdaysParse,o),-1!==r?r:(r=Xt.call(this._weekdaysParse,o),-1!==r?r:(r=Xt.call(this._minWeekdaysParse,o),-1!==r?r:null))):(r=Xt.call(this._minWeekdaysParse,o),-1!==r?r:(r=Xt.call(this._weekdaysParse,o),-1!==r?r:(r=Xt.call(this._shortWeekdaysParse,o),-1!==r?r:null)))}function Ne(t,e,n){var a,r,i;if(this._weekdaysParseExact)return Re.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){if(r=_([2e3,1]).day(a),n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp("^"+this.weekdays(r,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[a]=new RegExp("^"+this.weekdaysShort(r,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[a]=new RegExp("^"+this.weekdaysMin(r,"").replace(".",".?")+"$","i")),this._weekdaysParse[a]||(i="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[a]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}}function Ve(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Pe(t,this.localeData()),this.add(t-e,"d")):e}function Ue(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Be(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=je(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}var $e=Tt;function Je(t){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Ze.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=$e),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}var Ge=Tt;function qe(t){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Ze.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ge),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}var Xe=Tt;function Qe(t){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Ze.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Xe),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ze(){function t(t,e){return e.length-t.length}var e,n,a,r,i,o=[],s=[],l=[],d=[];for(e=0;e<7;e++)n=_([2e3,1]).day(e),a=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),i=this.weekdays(n,""),o.push(a),s.push(r),l.push(i),d.push(a),d.push(r),d.push(i);for(o.sort(t),s.sort(t),l.sort(t),d.sort(t),e=0;e<7;e++)s[e]=jt(s[e]),l[e]=jt(l[e]),d[e]=jt(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Ke(){return this.hours()%12||12}function tn(){return this.hours()||24}function en(t,e){lt(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function nn(t,e){return e._meridiemParse}function an(t){return"p"===(t+"").toLowerCase().charAt(0)}lt("H",["HH",2],0,"hour"),lt("h",["hh",2],0,Ke),lt("k",["kk",2],0,tn),lt("hmm",0,0,function(){return""+Ke.apply(this)+at(this.minutes(),2)}),lt("hmmss",0,0,function(){return""+Ke.apply(this)+at(this.minutes(),2)+at(this.seconds(),2)}),lt("Hmm",0,0,function(){return""+this.hours()+at(this.minutes(),2)}),lt("Hmmss",0,0,function(){return""+this.hours()+at(this.minutes(),2)+at(this.seconds(),2)}),en("a",!0),en("A",!1),Q("hour","h"),et("hour",13),Ht("a",nn),Ht("A",nn),Ht("H",yt),Ht("h",yt),Ht("k",yt),Ht("HH",yt,mt),Ht("hh",yt,mt),Ht("kk",yt,mt),Ht("hmm",gt),Ht("hmmss",bt),Ht("Hmm",gt),Ht("Hmmss",bt),zt(["H","HH"],Nt),zt(["k","kk"],function(t,e,n){var a=D(t);e[Nt]=24===a?0:a}),zt(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),zt(["h","hh"],function(t,e,n){e[Nt]=D(t),y(n).bigHour=!0}),zt("hmm",function(t,e,n){var a=t.length-2;e[Nt]=D(t.substr(0,a)),e[Vt]=D(t.substr(a)),y(n).bigHour=!0}),zt("hmmss",function(t,e,n){var a=t.length-4,r=t.length-2;e[Nt]=D(t.substr(0,a)),e[Vt]=D(t.substr(a,2)),e[Ut]=D(t.substr(r)),y(n).bigHour=!0}),zt("Hmm",function(t,e,n){var a=t.length-2;e[Nt]=D(t.substr(0,a)),e[Vt]=D(t.substr(a))}),zt("Hmmss",function(t,e,n){var a=t.length-4,r=t.length-2;e[Nt]=D(t.substr(0,a)),e[Vt]=D(t.substr(a,2)),e[Ut]=D(t.substr(r))});var rn=/[ap]\.?m?\.?/i;function on(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}var sn,ln=Kt("Hours",!0),dn={calendar:F,longDateFormat:W,invalidDate:N,ordinal:U,dayOfMonthOrdinalParse:B,relativeTime:J,months:se,monthsShort:de,week:Se,weekdays:Ce,weekdaysMin:Ie,weekdaysShort:Ee,meridiemParse:rn},un={},cn={};function fn(t){return t?t.toLowerCase().replace("_","-"):t}function hn(t){var e,n,a,r,i=0;while(i0){if(a=mn(r.slice(0,e).join("-")),a)return a;if(n&&n.length>=e&&S(r,n,!0)>=e-1)break;e--}i++}return null}function mn(e){var n=null;if(!un[e]&&t&&t.exports)try{n=sn._abbr;var r=a;r("./locale/"+e),pn(n)}catch(i){}return un[e]}function pn(t,e){var n;return t&&(n=u(e)?yn(t):_n(t,e),n&&(sn=n)),sn._abbr}function _n(t,e){if(null!==e){var n=dn;if(e.abbr=t,null!=un[t])P("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=un[t]._config;else if(null!=e.parentLocale){if(null==un[e.parentLocale])return cn[e.parentLocale]||(cn[e.parentLocale]=[]),cn[e.parentLocale].push({name:t,config:e}),null;n=un[e.parentLocale]._config}return un[t]=new E(z(n,e)),cn[t]&&cn[t].forEach(function(t){_n(t.name,t.config)}),pn(t),un[t]}return delete un[t],null}function vn(t,e){if(null!=e){var n,a=dn;null!=un[t]&&(a=un[t]._config),e=z(a,e),n=new E(e),n.parentLocale=un[t],un[t]=n,pn(t)}else null!=un[t]&&(null!=un[t].parentLocale?un[t]=un[t].parentLocale:null!=un[t]&&delete un[t]);return un[t]}function yn(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return sn;if(!s(t)){if(e=mn(t),e)return e;t=[t]}return hn(t)}function gn(){return H(un)}function bn(t){var e,n=t._a;return n&&-2===y(t).overflow&&(e=n[Wt]<0||n[Wt]>11?Wt:n[Rt]<1||n[Rt]>ie(n[It],n[Wt])?Rt:n[Nt]<0||n[Nt]>24||24===n[Nt]&&(0!==n[Vt]||0!==n[Ut]||0!==n[Bt])?Nt:n[Vt]<0||n[Vt]>59?Vt:n[Ut]<0||n[Ut]>59?Ut:n[Bt]<0||n[Bt]>999?Bt:-1,y(t)._overflowDayOfYear&&(eRt)&&(e=Rt),y(t)._overflowWeeks&&-1===e&&(e=$t),y(t)._overflowWeekday&&-1===e&&(e=Jt),y(t).overflow=e),t}function Mn(t,e,n){return null!=t?t:null!=e?e:n}function kn(t){var e=new Date(i.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function wn(t){var e,n,a,r,i=[];if(!t._d){for(a=kn(t),t._w&&null==t._a[Rt]&&null==t._a[Wt]&&xn(t),null!=t._dayOfYear&&(r=Mn(t._a[It],a[It]),(t._dayOfYear>Gt(r)||0===t._dayOfYear)&&(y(t)._overflowDayOfYear=!0),n=ke(r,0,t._dayOfYear),t._a[Wt]=n.getUTCMonth(),t._a[Rt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=i[e]=a[e];for(;e<7;e++)t._a[e]=i[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Nt]&&0===t._a[Vt]&&0===t._a[Ut]&&0===t._a[Bt]&&(t._nextDay=!0,t._a[Nt]=0),t._d=(t._useUTC?ke:Me).apply(null,i),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Nt]=24),t._w&&"undefined"!==typeof t._w.d&&t._w.d!==t._d.getDay()&&(y(t).weekdayMismatch=!0)}}function xn(t){var e,n,a,r,i,o,s,l;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)i=1,o=4,n=Mn(e.GG,t._a[It],Le(qn(),1,4).year),a=Mn(e.W,1),r=Mn(e.E,1),(r<1||r>7)&&(l=!0);else{i=t._locale._week.dow,o=t._locale._week.doy;var d=Le(qn(),i,o);n=Mn(e.gg,t._a[It],d.year),a=Mn(e.w,d.week),null!=e.d?(r=e.d,(r<0||r>6)&&(l=!0)):null!=e.e?(r=e.e+i,(e.e<0||e.e>6)&&(l=!0)):r=i}a<1||a>Ye(n,i,o)?y(t)._overflowWeeks=!0:null!=l?y(t)._overflowWeekday=!0:(s=xe(n,a,r,i,o),t._a[It]=s.year,t._dayOfYear=s.dayOfYear)}var Ln=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Yn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Dn=/Z|[+-]\d\d(?::?\d\d)?/,Sn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Tn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],On=/^\/?Date\((\-?\d+)/i;function Hn(t){var e,n,a,r,i,o,s=t._i,l=Ln.exec(s)||Yn.exec(s);if(l){for(y(t).iso=!0,e=0,n=Sn.length;e0&&y(t).unusedInput.push(o),s=s.slice(s.indexOf(n)+n.length),d+=n.length),st[r]?(n?y(t).empty=!1:y(t).unusedTokens.push(r),Ft(r,n,t)):t._strict&&!n&&y(t).unusedTokens.push(r);y(t).charsLeftOver=l-d,s.length>0&&y(t).unusedInput.push(s),t._a[Nt]<=12&&!0===y(t).bigHour&&t._a[Nt]>0&&(y(t).bigHour=void 0),y(t).parsedDateParts=t._a.slice(0),y(t).meridiem=t._meridiem,t._a[Nt]=Nn(t._locale,t._a[Nt],t._meridiem),wn(t),bn(t)}else In(t);else Hn(t)}function Nn(t,e,n){var a;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(a=t.isPM(n),a&&e<12&&(e+=12),a||12!==e||(e=0),e):e}function Vn(t){var e,n,a,r,i;if(0===t._f.length)return y(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis?this:t:b()});function Zn(t,e){var n,a;if(1===e.length&&s(e[0])&&(e=e[0]),!e.length)return qn();for(n=e[0],a=1;athis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ma(){if(!u(this._isDSTShifted))return this._isDSTShifted;var t={};if(k(t,this),t=$n(t),t._a){var e=t._isUTC?_(t._a):qn(t._a);this._isDSTShifted=this.isValid()&&S(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function ka(){return!!this.isValid()&&!this._isUTC}function wa(){return!!this.isValid()&&this._isUTC}function xa(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}i.updateOffset=function(){};var La=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ya=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Da(t,e){var n,a,i,o=t,s=null;return sa(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:c(t)?(o={},e?o[e]=t:o.milliseconds=t):(s=La.exec(t))?(n="-"===s[1]?-1:1,o={y:0,d:D(s[Rt])*n,h:D(s[Nt])*n,m:D(s[Vt])*n,s:D(s[Ut])*n,ms:D(la(1e3*s[Bt]))*n}):(s=Ya.exec(t))?(n="-"===s[1]?-1:(s[1],1),o={y:Sa(s[2],n),M:Sa(s[3],n),w:Sa(s[4],n),d:Sa(s[5],n),h:Sa(s[6],n),m:Sa(s[7],n),s:Sa(s[8],n)}):null==o?o={}:"object"===("undefined"===typeof o?"undefined":r(o))&&("from"in o||"to"in o)&&(i=Oa(qn(o.from),qn(o.to)),o={},o.ms=i.milliseconds,o.M=i.months),a=new oa(o),sa(t)&&m(t,"_locale")&&(a._locale=t._locale),a}function Sa(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Ta(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Oa(t,e){var n;return t.isValid()&&e.isValid()?(e=fa(e,t),t.isBefore(e)?n=Ta(t,e):(n=Ta(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Ha(t,e){return function(n,a){var r,i;return null===a||isNaN(+a)||(P(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=a,a=i),n="string"===typeof n?+n:n,r=Da(n,a),Aa(this,r,t),this}}function Aa(t,e,n,a){var r=e._milliseconds,o=la(e._days),s=la(e._months);t.isValid()&&(a=null==a||a,s&&he(t,te(t,"Month")+s*n),o&&ee(t,"Date",te(t,"Date")+o*n),r&&t._d.setTime(t._d.valueOf()+r*n),a&&i.updateOffset(t,o||s))}Da.fn=oa.prototype,Da.invalid=ia;var Pa=Ha(1,"add"),ja=Ha(-1,"subtract");function Ca(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function za(t,e){var n=t||qn(),a=fa(n,this).startOf("day"),r=i.calendarFormat(this,a)||"sameElse",o=e&&(j(e[r])?e[r].call(this,n):e[r]);return this.format(o||this.localeData().calendar(r,this,qn(n)))}function Ea(){return new x(this)}function Fa(t,e){var n=L(t)?t:qn(t);return!(!this.isValid()||!n.isValid())&&(e=Z(u(e)?"millisecond":e),"millisecond"===e?this.valueOf()>n.valueOf():n.valueOf()9999?ct(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):j(Date.prototype.toISOString)?this.toDate().toISOString():ct(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function Ga(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',a=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r="-MM-DD[T]HH:mm:ss.SSS",i=e+'[")]';return this.format(n+a+r+i)}function qa(t){t||(t=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var e=ct(this,t);return this.localeData().postformat(e)}function Xa(t,e){return this.isValid()&&(L(t)&&t.isValid()||qn(t).isValid())?Da({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Qa(t){return this.from(qn(),t)}function Za(t,e){return this.isValid()&&(L(t)&&t.isValid()||qn(t).isValid())?Da({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Ka(t){return this.to(qn(),t)}function tr(t){var e;return void 0===t?this._locale._abbr:(e=yn(t),null!=e&&(this._locale=e),this)}i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",i.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var er=O("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});function nr(){return this._locale}function ar(t){switch(t=Z(t),t){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function rr(t){return t=Z(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function ir(){return this._d.valueOf()-6e4*(this._offset||0)}function or(){return Math.floor(this.valueOf()/1e3)}function sr(){return new Date(this.valueOf())}function lr(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function dr(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function ur(){return this.isValid()?this.toISOString():null}function cr(){return g(this)}function fr(){return p({},y(this))}function hr(){return y(this).overflow}function mr(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function pr(t,e){lt(0,[t,t.length],0,e)}function _r(t){return br.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function vr(t){return br.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function yr(){return Ye(this.year(),1,4)}function gr(){var t=this.localeData()._week;return Ye(this.year(),t.dow,t.doy)}function br(t,e,n,a,r){var i;return null==t?Le(this,a,r).year:(i=Ye(t,a,r),e>i&&(e=i),Mr.call(this,t,e,n,a,r))}function Mr(t,e,n,a,r){var i=xe(t,e,n,a,r),o=ke(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function kr(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}lt(0,["gg",2],0,function(){return this.weekYear()%100}),lt(0,["GG",2],0,function(){return this.isoWeekYear()%100}),pr("gggg","weekYear"),pr("ggggg","weekYear"),pr("GGGG","isoWeekYear"),pr("GGGGG","isoWeekYear"),Q("weekYear","gg"),Q("isoWeekYear","GG"),et("weekYear",1),et("isoWeekYear",1),Ht("G",Lt),Ht("g",Lt),Ht("GG",yt,mt),Ht("gg",yt,mt),Ht("GGGG",kt,_t),Ht("gggg",kt,_t),Ht("GGGGG",wt,vt),Ht("ggggg",wt,vt),Et(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,a){e[a.substr(0,2)]=D(t)}),Et(["gg","GG"],function(t,e,n,a){e[a]=i.parseTwoDigitYear(t)}),lt("Q",0,"Qo","quarter"),Q("quarter","Q"),et("quarter",7),Ht("Q",ht),zt("Q",function(t,e){e[Wt]=3*(D(t)-1)}),lt("D",["DD",2],"Do","date"),Q("date","D"),et("date",9),Ht("D",yt),Ht("DD",yt,mt),Ht("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),zt(["D","DD"],Rt),zt("Do",function(t,e){e[Rt]=D(t.match(yt)[0],10)});var wr=Kt("Date",!0);function xr(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}lt("DDD",["DDDD",3],"DDDo","dayOfYear"),Q("dayOfYear","DDD"),et("dayOfYear",4),Ht("DDD",Mt),Ht("DDDD",pt),zt(["DDD","DDDD"],function(t,e,n){n._dayOfYear=D(t)}),lt("m",["mm",2],0,"minute"),Q("minute","m"),et("minute",14),Ht("m",yt),Ht("mm",yt,mt),zt(["m","mm"],Vt);var Lr=Kt("Minutes",!1);lt("s",["ss",2],0,"second"),Q("second","s"),et("second",15),Ht("s",yt),Ht("ss",yt,mt),zt(["s","ss"],Ut);var Yr,Dr=Kt("Seconds",!1);for(lt("S",0,0,function(){return~~(this.millisecond()/100)}),lt(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),lt(0,["SSS",3],0,"millisecond"),lt(0,["SSSS",4],0,function(){return 10*this.millisecond()}),lt(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),lt(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),lt(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),lt(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),lt(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),Q("millisecond","ms"),et("millisecond",16),Ht("S",Mt,ht),Ht("SS",Mt,mt),Ht("SSS",Mt,pt),Yr="SSSS";Yr.length<=9;Yr+="S")Ht(Yr,xt);function Sr(t,e){e[Bt]=D(1e3*("0."+t))}for(Yr="S";Yr.length<=9;Yr+="S")zt(Yr,Sr);var Tr=Kt("Milliseconds",!1);function Or(){return this._isUTC?"UTC":""}function Hr(){return this._isUTC?"Coordinated Universal Time":""}lt("z",0,0,"zoneAbbr"),lt("zz",0,0,"zoneName");var Ar=x.prototype;function Pr(t){return qn(1e3*t)}function jr(){return qn.apply(null,arguments).parseZone()}function Cr(t){return t}Ar.add=Pa,Ar.calendar=za,Ar.clone=Ea,Ar.diff=Ua,Ar.endOf=rr,Ar.format=qa,Ar.from=Xa,Ar.fromNow=Qa,Ar.to=Za,Ar.toNow=Ka,Ar.get=ne,Ar.invalidAt=hr,Ar.isAfter=Fa,Ar.isBefore=Ia,Ar.isBetween=Wa,Ar.isSame=Ra,Ar.isSameOrAfter=Na,Ar.isSameOrBefore=Va,Ar.isValid=cr,Ar.lang=er,Ar.locale=tr,Ar.localeData=nr,Ar.max=Qn,Ar.min=Xn,Ar.parsingFlags=fr,Ar.set=ae,Ar.startOf=ar,Ar.subtract=ja,Ar.toArray=lr,Ar.toObject=dr,Ar.toDate=sr,Ar.toISOString=Ja,Ar.inspect=Ga,Ar.toJSON=ur,Ar.toString=$a,Ar.unix=or,Ar.valueOf=ir,Ar.creationData=mr,Ar.year=Qt,Ar.isLeapYear=Zt,Ar.weekYear=_r,Ar.isoWeekYear=vr,Ar.quarter=Ar.quarters=kr,Ar.month=me,Ar.daysInMonth=pe,Ar.week=Ar.weeks=He,Ar.isoWeek=Ar.isoWeeks=Ae,Ar.weeksInYear=gr,Ar.isoWeeksInYear=yr,Ar.date=wr,Ar.day=Ar.days=Ve,Ar.weekday=Ue,Ar.isoWeekday=Be,Ar.dayOfYear=xr,Ar.hour=Ar.hours=ln,Ar.minute=Ar.minutes=Lr,Ar.second=Ar.seconds=Dr,Ar.millisecond=Ar.milliseconds=Tr,Ar.utcOffset=ma,Ar.utc=_a,Ar.local=va,Ar.parseZone=ya,Ar.hasAlignedHourOffset=ga,Ar.isDST=ba,Ar.isLocal=ka,Ar.isUtcOffset=wa,Ar.isUtc=xa,Ar.isUTC=xa,Ar.zoneAbbr=Or,Ar.zoneName=Hr,Ar.dates=O("dates accessor is deprecated. Use date instead.",wr),Ar.months=O("months accessor is deprecated. Use month instead",me),Ar.years=O("years accessor is deprecated. Use year instead",Qt),Ar.zone=O("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",pa),Ar.isDSTShifted=O("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ma);var zr=E.prototype;function Er(t,e,n,a){var r=yn(),i=_().set(a,e);return r[n](i,t)}function Fr(t,e,n){if(c(t)&&(e=t,t=void 0),t=t||"",null!=e)return Er(t,e,n,"month");var a,r=[];for(a=0;a<12;a++)r[a]=Er(t,a,n,"month");return r}function Ir(t,e,n,a){"boolean"===typeof t?(c(e)&&(n=e,e=void 0),e=e||""):(e=t,n=e,t=!1,c(e)&&(n=e,e=void 0),e=e||"");var r,i=yn(),o=t?i._week.dow:0;if(null!=n)return Er(e,(n+o)%7,a,"day");var s=[];for(r=0;r<7;r++)s[r]=Er(e,(r+o)%7,a,"day");return s}function Wr(t,e){return Fr(t,e,"months")}function Rr(t,e){return Fr(t,e,"monthsShort")}function Nr(t,e,n){return Ir(t,e,n,"weekdays")}function Vr(t,e,n){return Ir(t,e,n,"weekdaysShort")}function Ur(t,e,n){return Ir(t,e,n,"weekdaysMin")}zr.calendar=I,zr.longDateFormat=R,zr.invalidDate=V,zr.ordinal=$,zr.preparse=Cr,zr.postformat=Cr,zr.relativeTime=G,zr.pastFuture=q,zr.set=C,zr.months=le,zr.monthsShort=ue,zr.monthsParse=fe,zr.monthsRegex=ge,zr.monthsShortRegex=ve,zr.week=De,zr.firstDayOfYear=Oe,zr.firstDayOfWeek=Te,zr.weekdays=ze,zr.weekdaysMin=We,zr.weekdaysShort=Fe,zr.weekdaysParse=Ne,zr.weekdaysRegex=Je,zr.weekdaysShortRegex=qe,zr.weekdaysMinRegex=Qe,zr.isPM=an,zr.meridiem=on,pn("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===D(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),i.lang=O("moment.lang is deprecated. Use moment.locale instead.",pn),i.langData=O("moment.langData is deprecated. Use moment.localeData instead.",yn);var Br=Math.abs;function $r(){var t=this._data;return this._milliseconds=Br(this._milliseconds),this._days=Br(this._days),this._months=Br(this._months),t.milliseconds=Br(t.milliseconds),t.seconds=Br(t.seconds),t.minutes=Br(t.minutes),t.hours=Br(t.hours),t.months=Br(t.months),t.years=Br(t.years),this}function Jr(t,e,n,a){var r=Da(e,n);return t._milliseconds+=a*r._milliseconds,t._days+=a*r._days,t._months+=a*r._months,t._bubble()}function Gr(t,e){return Jr(this,t,e,1)}function qr(t,e){return Jr(this,t,e,-1)}function Xr(t){return t<0?Math.floor(t):Math.ceil(t)}function Qr(){var t,e,n,a,r,i=this._milliseconds,o=this._days,s=this._months,l=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*Xr(Kr(s)+o),o=0,s=0),l.milliseconds=i%1e3,t=Y(i/1e3),l.seconds=t%60,e=Y(t/60),l.minutes=e%60,n=Y(e/60),l.hours=n%24,o+=Y(n/24),r=Y(Zr(o)),s+=r,o-=Xr(Kr(r)),a=Y(s/12),s%=12,l.days=o,l.months=s,l.years=a,this}function Zr(t){return 4800*t/146097}function Kr(t){return 146097*t/4800}function ti(t){if(!this.isValid())return NaN;var e,n,a=this._milliseconds;if(t=Z(t),"month"===t||"year"===t)return e=this._days+a/864e5,n=this._months+Zr(e),"month"===t?n:n/12;switch(e=this._days+Math.round(Kr(this._months)),t){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hour":return 24*e+a/36e5;case"minute":return 1440*e+a/6e4;case"second":return 86400*e+a/1e3;case"millisecond":return Math.floor(864e5*e)+a;default:throw new Error("Unknown unit "+t)}}function ei(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*D(this._months/12):NaN}function ni(t){return function(){return this.as(t)}}var ai=ni("ms"),ri=ni("s"),ii=ni("m"),oi=ni("h"),si=ni("d"),li=ni("w"),di=ni("M"),ui=ni("y");function ci(){return Da(this)}function fi(t){return t=Z(t),this.isValid()?this[t+"s"]():NaN}function hi(t){return function(){return this.isValid()?this._data[t]:NaN}}var mi=hi("milliseconds"),pi=hi("seconds"),_i=hi("minutes"),vi=hi("hours"),yi=hi("days"),gi=hi("months"),bi=hi("years");function Mi(){return Y(this.days()/7)}var ki=Math.round,wi={ss:44,s:45,m:45,h:22,d:26,M:11};function xi(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}function Li(t,e,n){var a=Da(t).abs(),r=ki(a.as("s")),i=ki(a.as("m")),o=ki(a.as("h")),s=ki(a.as("d")),l=ki(a.as("M")),d=ki(a.as("y")),u=r<=wi.ss&&["s",r]||r0,u[4]=n,xi.apply(null,u)}function Yi(t){return void 0===t?ki:"function"===typeof t&&(ki=t,!0)}function Di(t,e){return void 0!==wi[t]&&(void 0===e?wi[t]:(wi[t]=e,"s"===t&&(wi.ss=e-1),!0))}function Si(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=Li(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}var Ti=Math.abs;function Oi(t){return(t>0)-(t<0)||+t}function Hi(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,a=Ti(this._milliseconds)/1e3,r=Ti(this._days),i=Ti(this._months);t=Y(a/60),e=Y(t/60),a%=60,t%=60,n=Y(i/12),i%=12;var o=n,s=i,l=r,d=e,u=t,c=a?a.toFixed(3).replace(/\.?0+$/,""):"",f=this.asSeconds();if(!f)return"P0D";var h=f<0?"-":"",m=Oi(this._months)!==Oi(f)?"-":"",p=Oi(this._days)!==Oi(f)?"-":"",_=Oi(this._milliseconds)!==Oi(f)?"-":"";return h+"P"+(o?m+o+"Y":"")+(s?m+s+"M":"")+(l?p+l+"D":"")+(d||u||c?"T":"")+(d?_+d+"H":"")+(u?_+u+"M":"")+(c?_+c+"S":"")}var Ai=oa.prototype;return Ai.isValid=ra,Ai.abs=$r,Ai.add=Gr,Ai.subtract=qr,Ai.as=ti,Ai.asMilliseconds=ai,Ai.asSeconds=ri,Ai.asMinutes=ii,Ai.asHours=oi,Ai.asDays=si,Ai.asWeeks=li,Ai.asMonths=di,Ai.asYears=ui,Ai.valueOf=ei,Ai._bubble=Qr,Ai.clone=ci,Ai.get=fi,Ai.milliseconds=mi,Ai.seconds=pi,Ai.minutes=_i,Ai.hours=vi,Ai.days=yi,Ai.weeks=Mi,Ai.months=gi,Ai.years=bi,Ai.humanize=Si,Ai.toISOString=Hi,Ai.toString=Hi,Ai.toJSON=Hi,Ai.locale=tr,Ai.localeData=nr,Ai.toIsoString=O("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Hi),Ai.lang=er,lt("X",0,0,"unix"),lt("x",0,0,"valueOf"),Ht("x",Lt),Ht("X",St),zt("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),zt("x",function(t,e,n){n._d=new Date(D(t))}),i.version="2.19.1",o(qn),i.fn=Ar,i.min=Kn,i.max=ta,i.now=ea,i.utc=_,i.unix=Pr,i.months=Wr,i.isDate=f,i.locale=pn,i.invalid=b,i.duration=Da,i.isMoment=L,i.weekdays=Nr,i.parseZone=jr,i.localeData=yn,i.isDuration=sa,i.monthsShort=Rr,i.weekdaysMin=Ur,i.defineLocale=_n,i.updateLocale=vn,i.locales=gn,i.weekdaysShort=Vr,i.normalizeUnits=Z,i.relativeTimeRounding=Yi,i.relativeTimeThreshold=Di,i.calendarFormat=Ca,i.prototype=Ar,i})}),o="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function s(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1?arguments[1]:void 0)}})},"30ef":function(t,e,n){ -/*! - * Chart.js v2.8.0 - * https://www.chartjs.org - * (c) 2019 Chart.js Contributors - * Released under the MIT License - */ -(function(e,a){t.exports=a(function(){try{return n("c1df")}catch(t){}}())})(0,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t["default"]:t;var e={rgb2hsl:n,rgb2hsv:a,rgb2hwb:i,rgb2cmyk:o,rgb2keyword:s,rgb2xyz:l,rgb2lab:d,rgb2lch:u,hsl2rgb:c,hsl2hsv:f,hsl2hwb:h,hsl2cmyk:m,hsl2keyword:p,hsv2rgb:_,hsv2hsl:v,hsv2hwb:y,hsv2cmyk:M,hsv2keyword:k,hwb2rgb:w,hwb2hsl:x,hwb2hsv:L,hwb2cmyk:Y,hwb2keyword:D,cmyk2rgb:S,cmyk2hsl:T,cmyk2hsv:O,cmyk2hwb:H,cmyk2keyword:A,keyword2rgb:N,keyword2hsl:V,keyword2hsv:U,keyword2hwb:B,keyword2cmyk:$,keyword2lab:J,keyword2xyz:G,xyz2rgb:P,xyz2lab:j,xyz2lch:C,lab2xyz:z,lab2rgb:F,lab2lch:E,lch2lab:I,lch2xyz:W,lch2rgb:R};function n(t){var e,n,a,r=t[0]/255,i=t[1]/255,o=t[2]/255,s=Math.min(r,i,o),l=Math.max(r,i,o),d=l-s;return l==s?e=0:r==l?e=(i-o)/d:i==l?e=2+(o-r)/d:o==l&&(e=4+(r-i)/d),e=Math.min(60*e,360),e<0&&(e+=360),a=(s+l)/2,n=l==s?0:a<=.5?d/(l+s):d/(2-l-s),[e,100*n,100*a]}function a(t){var e,n,a,r=t[0],i=t[1],o=t[2],s=Math.min(r,i,o),l=Math.max(r,i,o),d=l-s;return n=0==l?0:d/l*1e3/10,l==s?e=0:r==l?e=(i-o)/d:i==l?e=2+(o-r)/d:o==l&&(e=4+(r-i)/d),e=Math.min(60*e,360),e<0&&(e+=360),a=l/255*1e3/10,[e,n,a]}function i(t){var e=t[0],a=t[1],r=t[2],i=n(t)[0],o=1/255*Math.min(e,Math.min(a,r));r=1-1/255*Math.max(e,Math.max(a,r));return[i,100*o,100*r]}function o(t){var e,n,a,r,i=t[0]/255,o=t[1]/255,s=t[2]/255;return r=Math.min(1-i,1-o,1-s),e=(1-i-r)/(1-r)||0,n=(1-o-r)/(1-r)||0,a=(1-s-r)/(1-r)||0,[100*e,100*n,100*a,100*r]}function s(t){return X[JSON.stringify(t)]}function l(t){var e=t[0]/255,n=t[1]/255,a=t[2]/255;e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92;var r=.4124*e+.3576*n+.1805*a,i=.2126*e+.7152*n+.0722*a,o=.0193*e+.1192*n+.9505*a;return[100*r,100*i,100*o]}function d(t){var e,n,a,r=l(t),i=r[0],o=r[1],s=r[2];return i/=95.047,o/=100,s/=108.883,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,e=116*o-16,n=500*(i-o),a=200*(o-s),[e,n,a]}function u(t){return E(d(t))}function c(t){var e,n,a,r,i,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return i=255*l,[i,i,i];n=l<.5?l*(1+s):l+s-l*s,e=2*l-n,r=[0,0,0];for(var d=0;d<3;d++)a=o+1/3*-(d-1),a<0&&a++,a>1&&a--,i=6*a<1?e+6*(n-e)*a:2*a<1?n:3*a<2?e+(n-e)*(2/3-a)*6:e,r[d]=255*i;return r}function f(t){var e,n,a=t[0],r=t[1]/100,i=t[2]/100;return 0===i?[0,0,0]:(i*=2,r*=i<=1?i:2-i,n=(i+r)/2,e=2*r/(i+r),[a,100*e,100*n])}function h(t){return i(c(t))}function m(t){return o(c(t))}function p(t){return s(c(t))}function _(t){var e=t[0]/60,n=t[1]/100,a=t[2]/100,r=Math.floor(e)%6,i=e-Math.floor(e),o=255*a*(1-n),s=255*a*(1-n*i),l=255*a*(1-n*(1-i));a*=255;switch(r){case 0:return[a,l,o];case 1:return[s,a,o];case 2:return[o,a,l];case 3:return[o,s,a];case 4:return[l,o,a];case 5:return[a,o,s]}}function v(t){var e,n,a=t[0],r=t[1]/100,i=t[2]/100;return n=(2-r)*i,e=r*i,e/=n<=1?n:2-n,e=e||0,n/=2,[a,100*e,100*n]}function y(t){return i(_(t))}function M(t){return o(_(t))}function k(t){return s(_(t))}function w(t){var e,n,a,i,o=t[0]/360,s=t[1]/100,l=t[2]/100,d=s+l;switch(d>1&&(s/=d,l/=d),e=Math.floor(6*o),n=1-l,a=6*o-e,0!=(1&e)&&(a=1-a),i=s+a*(n-s),e){default:case 6:case 0:r=n,g=i,b=s;break;case 1:r=i,g=n,b=s;break;case 2:r=s,g=n,b=i;break;case 3:r=s,g=i,b=n;break;case 4:r=i,g=s,b=n;break;case 5:r=n,g=s,b=i;break}return[255*r,255*g,255*b]}function x(t){return n(w(t))}function L(t){return a(w(t))}function Y(t){return o(w(t))}function D(t){return s(w(t))}function S(t){var e,n,a,r=t[0]/100,i=t[1]/100,o=t[2]/100,s=t[3]/100;return e=1-Math.min(1,r*(1-s)+s),n=1-Math.min(1,i*(1-s)+s),a=1-Math.min(1,o*(1-s)+s),[255*e,255*n,255*a]}function T(t){return n(S(t))}function O(t){return a(S(t))}function H(t){return i(S(t))}function A(t){return s(S(t))}function P(t){var e,n,a,r=t[0]/100,i=t[1]/100,o=t[2]/100;return e=3.2406*r+-1.5372*i+-.4986*o,n=-.9689*r+1.8758*i+.0415*o,a=.0557*r+-.204*i+1.057*o,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),a=Math.min(Math.max(0,a),1),[255*e,255*n,255*a]}function j(t){var e,n,a,r=t[0],i=t[1],o=t[2];return r/=95.047,i/=100,o/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,e=116*i-16,n=500*(r-i),a=200*(i-o),[e,n,a]}function C(t){return E(j(t))}function z(t){var e,n,a,r,i=t[0],o=t[1],s=t[2];return i<=8?(n=100*i/903.3,r=n/100*7.787+16/116):(n=100*Math.pow((i+16)/116,3),r=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(o/500+r-16/116)/7.787:95.047*Math.pow(o/500+r,3),a=a/108.883<=.008859?a=108.883*(r-s/200-16/116)/7.787:108.883*Math.pow(r-s/200,3),[e,n,a]}function E(t){var e,n,a,r=t[0],i=t[1],o=t[2];return e=Math.atan2(o,i),n=360*e/2/Math.PI,n<0&&(n+=360),a=Math.sqrt(i*i+o*o),[r,a,n]}function F(t){return P(z(t))}function I(t){var e,n,a,r=t[0],i=t[1],o=t[2];return a=o/360*2*Math.PI,e=i*Math.cos(a),n=i*Math.sin(a),[r,e,n]}function W(t){return z(I(t))}function R(t){return F(I(t))}function N(t){return q[t]}function V(t){return n(N(t))}function U(t){return a(N(t))}function B(t){return i(N(t))}function $(t){return o(N(t))}function J(t){return d(N(t))}function G(t){return l(N(t))}var q={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},X={};for(var Q in q)X[JSON.stringify(q[Q])]=Q;var Z=function(){return new at};for(var K in e){Z[K+"Raw"]=function(t){return function(n){return"number"==typeof n&&(n=Array.prototype.slice.call(arguments)),e[t](n)}}(K);var tt=/(\w+)2(\w+)/.exec(K),et=tt[1],nt=tt[2];Z[et]=Z[et]||{},Z[et][nt]=Z[K]=function(t){return function(n){"number"==typeof n&&(n=Array.prototype.slice.call(arguments));var a=e[t](n);if("string"==typeof a||void 0===a)return a;for(var r=0;r=0&&e<1?wt(Math.round(255*e)):"")}function mt(t,e){return e<1||t[3]&&t[3]<1?pt(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"}function pt(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function _t(t,e){if(e<1||t[3]&&t[3]<1)return vt(t,e);var n=Math.round(t[0]/255*100),a=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return"rgb("+n+"%, "+a+"%, "+r+"%)"}function vt(t,e){var n=Math.round(t[0]/255*100),a=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return"rgba("+n+"%, "+a+"%, "+r+"%, "+(e||t[3]||1)+")"}function yt(t,e){return e<1||t[3]&&t[3]<1?gt(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"}function gt(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function bt(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"}function Mt(t){return xt[t.slice(0,3)]}function kt(t,e,n){return Math.min(Math.max(e,t),n)}function wt(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var xt={};for(var Lt in it)xt[it[Lt]]=Lt;var Yt=function(t){return t instanceof Yt?t:this instanceof Yt?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"===typeof t?(e=ot.getRgba(t),e?this.setValues("rgb",e):(e=ot.getHsla(t))?this.setValues("hsl",e):(e=ot.getHwb(t))&&this.setValues("hwb",e)):"object"===typeof t&&(e=t,void 0!==e.r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new Yt(t);var e};Yt.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t%=360,t=t<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return ot.hexString(this.values.rgb)},rgbString:function(){return ot.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return ot.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return ot.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return ot.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return ot.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return ot.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return ot.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],n=0;nn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb,e=(299*t[0]+587*t[1]+114*t[2])/1e3;return e<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,a=t,r=void 0===e?.5:e,i=2*r-1,o=n.alpha()-a.alpha(),s=((i*o===-1?i:(i+o)/(1+i*o))+1)/2,l=1-s;return this.rgb(s*n.red()+l*a.red(),s*n.green()+l*a.green(),s*n.blue()+l*a.blue()).alpha(n.alpha()*r+a.alpha()*(1-r))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new Yt,a=this.values,r=n.values;for(var i in a)a.hasOwnProperty(i)&&(t=a[i],e={}.toString.call(t),"[object Array]"===e?r[i]=t.slice(0):"[object Number]"===e?r[i]=t:console.error("unexpected color value:",t));return n}},Yt.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},Yt.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},Yt.prototype.getValues=function(t){for(var e=this.values,n={},a=0;a=0;r--)e.call(n,t[r],r);else for(r=0;r=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),-a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),a*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:2===(t/=.5)?1:(n||(n=.45),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),t<1?a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:a*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-Ot.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*Ot.easeInBounce(2*t):.5*Ot.easeOutBounce(2*t-1)+.5}},Ht={effects:Ot};Tt.easingEffects=Ot;var At=Math.PI,Pt=At/180,jt=2*At,Ct=At/2,zt=At/4,Et=2*At/3,Ft={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,a,r,i){if(i){var o=Math.min(i,r/2,a/2),s=e+o,l=n+o,d=e+a-o,u=n+r-o;t.moveTo(e,l),se.left-n&&t.xe.top-n&&t.y0&&t.requestAnimationFrame()},advance:function(){var t,e,n,a,r=this.animations,i=0;while(i=n?(Bt.callback(t.onAnimationComplete,[t],e),e.animating=!1,r.splice(i,1)):++i}},ee=Bt.options.resolve,ne=["push","pop","shift","splice","unshift"];function ae(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ne.forEach(function(e){var n="onData"+e.charAt(0).toUpperCase()+e.slice(1),a=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),r=a.apply(this,e);return Bt.each(t._chartjs.listeners,function(t){"function"===typeof t[n]&&t[n].apply(t,e)}),r}})}))}function re(t,e){var n=t._chartjs;if(n){var a=n.listeners,r=a.indexOf(e);-1!==r&&a.splice(r,1),a.length>0||(ne.forEach(function(e){delete t[e]}),delete t._chartjs)}}var ie=function(t,e){this.initialize(t,e)};Bt.extend(ie.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&re(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,a=n.getMeta(),r=n.getDataset().data||[],i=a.data;for(t=0,e=r.length;ta&&t.insertElements(a,r-a)},insertElements:function(t,e){for(var n=0;ns)r-=2*Math.PI;while(r=o&&r<=s,d=i>=n.innerRadius&&i<=n.outerRadius;return l&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t,e=this._chart.ctx,n=this._view,a=n.startAngle,r=n.endAngle,i="inner"===n.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(n.x,n.y,Math.max(n.outerRadius-i,0),a,r),e.arc(n.x,n.y,n.innerRadius,r,a,!0),e.closePath(),e.fillStyle=n.backgroundColor,e.fill(),n.borderWidth&&("inner"===n.borderAlign?(e.beginPath(),t=i/n.outerRadius,e.arc(n.x,n.y,n.outerRadius,a-t,r+t),n.innerRadius>i?(t=i/n.innerRadius,e.arc(n.x,n.y,n.innerRadius-i,r+t,a-t,!0)):e.arc(n.x,n.y,i,r+Math.PI/2,a-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(n.x,n.y,n.outerRadius,a,r),e.arc(n.x,n.y,n.innerRadius,r,a,!0),e.closePath(),e.lineWidth=2*n.borderWidth,e.lineJoin="round"):(e.lineWidth=n.borderWidth,e.lineJoin="bevel"),e.strokeStyle=n.borderColor,e.stroke()),e.restore()}}),le=Bt.valueOrDefault,de=Rt.global.defaultColor;Rt._set("global",{elements:{line:{tension:.4,backgroundColor:de,borderWidth:3,borderColor:de,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var ue=Qt.extend({draw:function(){var t,e,n,a,r=this,i=r._view,o=r._chart.ctx,s=i.spanGaps,l=r._children.slice(),d=Rt.global,u=d.elements.line,c=-1;for(r._loop&&l.length&&l.push(l[0]),o.save(),o.lineCap=i.borderCapStyle||u.borderCapStyle,o.setLineDash&&o.setLineDash(i.borderDash||u.borderDash),o.lineDashOffset=le(i.borderDashOffset,u.borderDashOffset),o.lineJoin=i.borderJoinStyle||u.borderJoinStyle,o.lineWidth=le(i.borderWidth,u.borderWidth),o.strokeStyle=i.borderColor||d.defaultColor,o.beginPath(),c=-1,t=0;tt.x&&(e=ge(e,"left","right")):t.basen?n:a,r:l.right||r<0?0:r>e?e:r,b:l.bottom||i<0?0:i>n?n:i,l:l.left||o<0?0:o>e?e:o}}function ke(t){var e=ye(t),n=e.right-e.left,a=e.bottom-e.top,r=Me(t,n/2,a/2);return{outer:{x:e.left,y:e.top,w:n,h:a},inner:{x:e.left+r.l,y:e.top+r.t,w:n-r.l-r.r,h:a-r.t-r.b}}}function we(t,e,n){var a=null===e,r=null===n,i=!(!t||a&&r)&&ye(t);return i&&(a||e>=i.left&&e<=i.right)&&(r||n>=i.top&&n<=i.bottom)}Rt._set("global",{elements:{rectangle:{backgroundColor:_e,borderColor:_e,borderSkipped:"bottom",borderWidth:0}}});var xe=Qt.extend({draw:function(){var t=this._chart.ctx,e=this._view,n=ke(e),a=n.outer,r=n.inner;t.fillStyle=e.backgroundColor,t.fillRect(a.x,a.y,a.w,a.h),a.w===r.w&&a.h===r.h||(t.save(),t.beginPath(),t.rect(a.x,a.y,a.w,a.h),t.clip(),t.fillStyle=e.borderColor,t.rect(r.x,r.y,r.w,r.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return we(this._view,t,e)},inLabelRange:function(t,e){var n=this._view;return ve(n)?we(n,t,null):we(n,null,e)},inXRange:function(t){return we(this._view,t,null)},inYRange:function(t){return we(this._view,null,t)},getCenterPoint:function(){var t,e,n=this._view;return ve(n)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return ve(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),Le={},Ye=se,De=ue,Se=pe,Te=xe;Le.Arc=Ye,Le.Line=De,Le.Point=Se,Le.Rectangle=Te;var Oe=Bt.options.resolve;function He(t,e){var n,a,r,i,o=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(r=1,i=e.length;r0?Math.min(o,a-n):o,n=a;return o}function Ae(t,e,n){var a,r,i=n.barThickness,o=e.stackCount,s=e.pixels[t];return Bt.isNullOrUndef(i)?(a=e.min*n.categoryPercentage,r=n.barPercentage):(a=i*o,r=1),{chunk:a/o,ratio:r,start:s-a/2}}function Pe(t,e,n){var a,r,i=e.pixels,o=i[t],s=t>0?i[t-1]:null,l=t=0&&r>0)&&(y+=r));return i=c.getPixelForValue(y),o=c.getPixelForValue(y+m),s=o-i,void 0!==p&&Math.abs(s)=0&&!f||m<0&&f?i-p:i+p),{size:s,base:i,head:o,center:o+s/2}},calculateBarIndexPixels:function(t,e,n){var a=this,r=n.scale.options,i="flex"===r.barThickness?Pe(e,n,r):Ae(e,n,r),o=a.getStackIndex(t,a.getMeta().stack),s=i.start+i.chunk*o+i.chunk/2,l=Math.min(Bt.valueOrDefault(r.maxBarThickness,1/0),i.chunk*i.ratio);return{base:s-l/2,head:s+l/2,center:s,size:l}},draw:function(){var t=this,e=t.chart,n=t._getValueScale(),a=t.getMeta().data,r=t.getDataset(),i=a.length,o=0;for(Bt.canvas.clipArea(e.ctx,e.chartArea);o');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var i=0;i'),r[i]&&e.push(r[i]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,a){var r=t.getDatasetMeta(0),i=e.datasets[0],o=r.data[a],s=o&&o.custom||{},l=t.options.elements.arc,d=Fe([s.backgroundColor,i.backgroundColor,l.backgroundColor],void 0,a),u=Fe([s.borderColor,i.borderColor,l.borderColor],void 0,a),c=Fe([s.borderWidth,i.borderWidth,l.borderWidth],void 0,a);return{text:n,fillStyle:d,strokeStyle:u,lineWidth:c,hidden:isNaN(i.data[a])||r.data[a].hidden,index:a}}):[]}},onClick:function(t,e){var n,a,r,i=e.index,o=this.chart;for(n=0,a=(o.data.datasets||[]).length;n=Math.PI?-1:_<-Math.PI?1:0);var v=_+m,y={x:Math.cos(_),y:Math.sin(_)},g={x:Math.cos(v),y:Math.sin(v)},b=_<=0&&v>=0||_<=2*Math.PI&&2*Math.PI<=v,M=_<=.5*Math.PI&&.5*Math.PI<=v||_<=2.5*Math.PI&&2.5*Math.PI<=v,k=_<=-Math.PI&&-Math.PI<=v||_<=Math.PI&&Math.PI<=v,w=_<=.5*-Math.PI&&.5*-Math.PI<=v||_<=1.5*Math.PI&&1.5*Math.PI<=v,x=h/100,L={x:k?-1:Math.min(y.x*(y.x<0?1:x),g.x*(g.x<0?1:x)),y:w?-1:Math.min(y.y*(y.y<0?1:x),g.y*(g.y<0?1:x))},Y={x:b?1:Math.max(y.x*(y.x>0?1:x),g.x*(g.x>0?1:x)),y:M?1:Math.max(y.y*(y.y>0?1:x),g.y*(g.y>0?1:x))},D={width:.5*(Y.x-L.x),height:.5*(Y.y-L.y)};d=Math.min(s/D.width,l/D.height),u={x:-.5*(Y.x+L.x),y:-.5*(Y.y+L.y)}}for(e=0,n=f.length;e0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,n,a,r,i,o,s,l,d=this,u=0,c=d.chart;if(!t)for(e=0,n=c.data.datasets.length;eu?s:u,u=l>u?l:u);return u},setHoverStyle:function(t){var e=t._model,n=t._options,a=Bt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Ie(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=Ie(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=Ie(n.hoverBorderWidth,n.borderWidth)},_resolveElementOptions:function(t,e){var n,a,r,i=this,o=i.chart,s=i.getDataset(),l=t.custom||{},d=o.options.elements.arc,u={},c={chart:o,dataIndex:e,dataset:s,datasetIndex:i.index},f=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(n=0,a=f.length;n0&&Ue(d[t-1]._model,l)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,l.left,l.right),n.controlPointPreviousY=u(n.controlPointPreviousY,l.top,l.bottom)),t');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var i=0;i'),r[i]&&e.push(r[i]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,a){var r=t.getDatasetMeta(0),i=e.datasets[0],o=r.data[a],s=o.custom||{},l=t.options.elements.arc,d=Je([s.backgroundColor,i.backgroundColor,l.backgroundColor],void 0,a),u=Je([s.borderColor,i.borderColor,l.borderColor],void 0,a),c=Je([s.borderWidth,i.borderWidth,l.borderWidth],void 0,a);return{text:n,fillStyle:d,strokeStyle:u,lineWidth:c,hidden:isNaN(i.data[a])||r.data[a].hidden,index:a}}):[]}},onClick:function(t,e){var n,a,r,i=e.index,o=this.chart;for(n=0,a=(o.data.datasets||[]).length;n0&&(i=t.getDatasetMeta(i[0]._datasetIndex).data),i},"x-axis":function(t,e){return sn(t,e,{intersect:!1})},point:function(t,e){var n=en(e,t);return an(t,n)},nearest:function(t,e,n){var a=en(e,t);n.axis=n.axis||"xy";var r=on(n.axis);return rn(t,a,n.intersect,r)},x:function(t,e,n){var a=en(e,t),r=[],i=!1;return nn(t,function(t){t.inXRange(a.x)&&r.push(t),t.inRange(a.x,a.y)&&(i=!0)}),n.intersect&&!i&&(r=[]),r},y:function(t,e,n){var a=en(e,t),r=[],i=!1;return nn(t,function(t){t.inYRange(a.y)&&r.push(t),t.inRange(a.x,a.y)&&(i=!0)}),n.intersect&&!i&&(r=[]),r}}};function dn(t,e){return Bt.where(t,function(t){return t.position===e})}function un(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var a=e?n:t,r=e?t:n;return a.weight===r.weight?a._tmpIndex_-r._tmpIndex_:a.weight-r.weight}),t.forEach(function(t){delete t._tmpIndex_})}function cn(t){var e=0,n=0,a=0,r=0;return Bt.each(t,function(t){if(t.getPadding){var i=t.getPadding();e=Math.max(e,i.top),n=Math.max(n,i.left),a=Math.max(a,i.bottom),r=Math.max(r,i.right)}}),{top:e,left:n,bottom:a,right:r}}function fn(t,e){Bt.each(t,function(t){e[t.position]+=t.isHorizontal()?t.height:t.width})}Rt._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var hn={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var a,r=["fullWidth","position","weight"],i=r.length,o=0;o div {\n\tposition: absolute;\n\twidth: 1000000px;\n\theight: 1000000px;\n\tleft: 0;\n\ttop: 0;\n}\n\n.chartjs-size-monitor-shrink > div {\n\tposition: absolute;\n\twidth: 200%;\n\theight: 200%;\n\tleft: 0;\n\ttop: 0;\n}\n",_n=Object.freeze({default:pn});function vn(t){return t&&t.default||t}var yn=vn(_n),gn="$chartjs",bn="chartjs-",Mn=bn+"size-monitor",kn=bn+"render-monitor",wn=bn+"render-animation",xn=["animationstart","webkitAnimationStart"],Ln={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function Yn(t,e){var n=Bt.getStyle(t,e),a=n&&n.match(/^(\d+)(\.\d+)?px$/);return a?Number(a[1]):void 0}function Dn(t,e){var n=t.style,a=t.getAttribute("height"),r=t.getAttribute("width");if(t[gn]={initial:{height:a,width:r,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===r||""===r){var i=Yn(t,"width");void 0!==i&&(t.width=i)}if(null===a||""===a)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var o=Yn(t,"height");void 0!==i&&(t.height=o)}return t}var Sn=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(n){}return t}(),Tn=!!Sn&&{passive:!0};function On(t,e,n){t.addEventListener(e,n,Tn)}function Hn(t,e,n){t.removeEventListener(e,n,Tn)}function An(t,e,n,a,r){return{type:t,chart:e,native:r||null,x:void 0!==n?n:null,y:void 0!==a?a:null}}function Pn(t,e){var n=Ln[t.type]||t.type,a=Bt.getRelativePosition(t,e);return An(n,e,a.x,a.y,t)}function jn(t,e){var n=!1,a=[];return function(){a=Array.prototype.slice.call(arguments),e=e||this,n||(n=!0,Bt.requestAnimFrame.call(window,function(){n=!1,t.apply(e,a)}))}}function Cn(t){var e=document.createElement("div");return e.className=t||"",e}function zn(t){var e=1e6,n=Cn(Mn),a=Cn(Mn+"-expand"),r=Cn(Mn+"-shrink");a.appendChild(Cn()),r.appendChild(Cn()),n.appendChild(a),n.appendChild(r),n._reset=function(){a.scrollLeft=e,a.scrollTop=e,r.scrollLeft=e,r.scrollTop=e};var i=function(){n._reset(),t()};return On(a,"scroll",i.bind(a,"expand")),On(r,"scroll",i.bind(r,"shrink")),n}function En(t,e){var n=t[gn]||(t[gn]={}),a=n.renderProxy=function(t){t.animationName===wn&&e()};Bt.each(xn,function(e){On(t,e,a)}),n.reflow=!!t.offsetParent,t.classList.add(kn)}function Fn(t){var e=t[gn]||{},n=e.renderProxy;n&&(Bt.each(xn,function(e){Hn(t,e,n)}),delete e.renderProxy),t.classList.remove(kn)}function In(t,e,n){var a=t[gn]||(t[gn]={}),r=a.resizer=zn(jn(function(){if(a.resizer){var r=n.options.maintainAspectRatio&&t.parentNode,i=r?r.clientWidth:0;e(An("resize",n)),r&&r.clientWidth0){var i=t[0];i.label?n=i.label:i.xLabel?n=i.xLabel:r>0&&i.index-1?t.split("\n"):t}function Qn(t){var e=t._xScale,n=t._yScale||t._scale,a=t._index,r=t._datasetIndex,i=t._chart.getDatasetMeta(r).controller,o=i._getIndexScale(),s=i._getValueScale();return{xLabel:e?e.getLabelForIndex(a,r):"",yLabel:n?n.getLabelForIndex(a,r):"",label:o?""+o.getLabelForIndex(a,r):"",value:s?""+s.getLabelForIndex(a,r):"",index:a,datasetIndex:r,x:t._model.x,y:t._model.y}}function Zn(t){var e=Rt.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:Jn(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:Jn(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:Jn(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:Jn(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:Jn(t.titleFontStyle,e.defaultFontStyle),titleFontSize:Jn(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:Jn(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:Jn(t.footerFontStyle,e.defaultFontStyle),footerFontSize:Jn(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Kn(t,e){var n=t._chart.ctx,a=2*e.yPadding,r=0,i=e.body,o=i.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);o+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,l=e.footer.length,d=e.titleFontSize,u=e.bodyFontSize,c=e.footerFontSize;a+=s*d,a+=s?(s-1)*e.titleSpacing:0,a+=s?e.titleMarginBottom:0,a+=o*u,a+=o?(o-1)*e.bodySpacing:0,a+=l?e.footerMarginTop:0,a+=l*c,a+=l?(l-1)*e.footerSpacing:0;var f=0,h=function(t){r=Math.max(r,n.measureText(t).width+f)};return n.font=Bt.fontString(d,e._titleFontStyle,e._titleFontFamily),Bt.each(e.title,h),n.font=Bt.fontString(u,e._bodyFontStyle,e._bodyFontFamily),Bt.each(e.beforeBody.concat(e.afterBody),h),f=e.displayColors?u+2:0,Bt.each(i,function(t){Bt.each(t.before,h),Bt.each(t.lines,h),Bt.each(t.after,h)}),f=0,n.font=Bt.fontString(c,e._footerFontStyle,e._footerFontFamily),Bt.each(e.footer,h),r+=2*e.xPadding,{width:r,height:a}}function ta(t,e){var n,a,r,i,o,s=t._model,l=t._chart,d=t._chart.chartArea,u="center",c="center";s.yl.height-e.height&&(c="bottom");var f=(d.left+d.right)/2,h=(d.top+d.bottom)/2;"center"===c?(n=function(t){return t<=f},a=function(t){return t>f}):(n=function(t){return t<=e.width/2},a=function(t){return t>=l.width-e.width/2}),r=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},i=function(t){return t-e.width-s.caretSize-s.caretPadding<0},o=function(t){return t<=h?"top":"bottom"},n(s.x)?(u="left",r(s.x)&&(u="center",c=o(s.y))):a(s.x)&&(u="right",i(s.x)&&(u="center",c=o(s.y)));var m=t._options;return{xAlign:m.xAlign?m.xAlign:u,yAlign:m.yAlign?m.yAlign:c}}function ea(t,e,n,a){var r=t.x,i=t.y,o=t.caretSize,s=t.caretPadding,l=t.cornerRadius,d=n.xAlign,u=n.yAlign,c=o+s,f=l+s;return"right"===d?r-=e.width:"center"===d&&(r-=e.width/2,r+e.width>a.width&&(r=a.width-e.width),r<0&&(r=0)),"top"===u?i+=c:i-="bottom"===u?e.height+c:e.height/2,"center"===u?"left"===d?r+=c:"right"===d&&(r-=c):"left"===d?r-=f:"right"===d&&(r+=f),{x:r,y:i}}function na(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function aa(t){return qn([],Xn(t))}var ra=Qt.extend({initialize:function(){this._model=Zn(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options,n=e.callbacks,a=n.beforeTitle.apply(t,arguments),r=n.title.apply(t,arguments),i=n.afterTitle.apply(t,arguments),o=[];return o=qn(o,Xn(a)),o=qn(o,Xn(r)),o=qn(o,Xn(i)),o},getBeforeBody:function(){return aa(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,a=n._options.callbacks,r=[];return Bt.each(t,function(t){var i={before:[],lines:[],after:[]};qn(i.before,Xn(a.beforeLabel.call(n,t,e))),qn(i.lines,a.label.call(n,t,e)),qn(i.after,Xn(a.afterLabel.call(n,t,e))),r.push(i)}),r},getAfterBody:function(){return aa(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this,e=t._options.callbacks,n=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),r=e.afterFooter.apply(t,arguments),i=[];return i=qn(i,Xn(n)),i=qn(i,Xn(a)),i=qn(i,Xn(r)),i},update:function(t){var e,n,a=this,r=a._options,i=a._model,o=a._model=Zn(r),s=a._active,l=a._data,d={xAlign:i.xAlign,yAlign:i.yAlign},u={x:i.x,y:i.y},c={width:i.width,height:i.height},f={x:i.caretX,y:i.caretY};if(s.length){o.opacity=1;var h=[],m=[];f=Gn[r.position].call(a,s,a._eventPosition);var p=[];for(e=0,n=s.length;e0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},a={x:e.x,y:e.y},r=Math.abs(e.opacity<.001)?0:e.opacity,i=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&i&&(t.save(),t.globalAlpha=r,this.drawBackground(a,e,t,n),a.y+=e.yPadding,this.drawTitle(a,e,t),this.drawBody(a,e,t),this.drawFooter(a,e,t),t.restore())}},handleEvent:function(t){var e=this,n=e._options,a=!1;return e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),a=!Bt.arrayEquals(e._active,e._lastActive),a&&(e._lastActive=e._active,(n.enabled||n.custom)&&(e._eventPosition={x:t.x,y:t.y},e.update(!0),e.pivot())),a}}),ia=Gn,oa=ra;oa.positioners=ia;var sa=Bt.valueOrDefault;function la(){return Bt.merge({},[].slice.call(arguments),{merger:function(t,e,n,a){if("xAxes"===t||"yAxes"===t){var r,i,o,s=n[t].length;for(e[t]||(e[t]=[]),r=0;r=e[t].length&&e[t].push({}),!e[t][r].type||o.type&&o.type!==e[t][r].type?Bt.merge(e[t][r],[$n.getScaleDefaults(i),o]):Bt.merge(e[t][r],o)}else Bt._merger(t,e,n,a)}})}function da(){return Bt.merge({},[].slice.call(arguments),{merger:function(t,e,n,a){var r=e[t]||{},i=n[t];"scales"===t?e[t]=la(r,i):"scale"===t?e[t]=Bt.merge(r,[$n.getScaleDefaults(i.type),i]):Bt._merger(t,e,n,a)}})}function ua(t){t=t||{};var e=t.data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=da(Rt.global,Rt[t.type],t.options||{}),t}function ca(t){var e=t.options;Bt.each(t.scales,function(e){hn.removeBox(t,e)}),e=da(Rt.global,Rt[t.config.type],e),t.options=t.config.options=e,t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.tooltip._options=e.tooltips,t.tooltip.initialize()}function fa(t){return"top"===t||"bottom"===t}Rt._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var ha=function(t,e){return this.construct(t,e),this};Bt.extend(ha.prototype,{construct:function(t,e){var n=this;e=ua(e);var a=Un.acquireContext(t,e),r=a&&a.canvas,i=r&&r.height,o=r&&r.width;n.id=Bt.uid(),n.ctx=a,n.canvas=r,n.config=e,n.width=o,n.height=i,n.aspectRatio=i?o/i:null,n.options=e.options,n._bufferedRender=!1,n.chart=n,n.controller=n,ha.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(t){n.config.data=t}}),a&&r?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Bn.notify(t,"beforeInit"),Bt.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),Bn.notify(t,"afterInit"),t},clear:function(){return Bt.canvas.clear(this),this},stop:function(){return te.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,a=e.canvas,r=n.maintainAspectRatio&&e.aspectRatio||null,i=Math.max(0,Math.floor(Bt.getMaximumWidth(a))),o=Math.max(0,Math.floor(r?i/r:Bt.getMaximumHeight(a)));if((e.width!==i||e.height!==o)&&(a.width=e.width=i,a.height=e.height=o,a.style.width=i+"px",a.style.height=o+"px",Bt.retinaScale(e,n.devicePixelRatio),!t)){var s={width:i,height:o};Bn.notify(e,"resize",[s]),n.onResize&&n.onResize(e,s),e.stop(),e.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;Bt.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),Bt.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,n=t.scales||{},a=[],r=Object.keys(n).reduce(function(t,e){return t[e]=!1,t},{});e.scales&&(a=a.concat((e.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(e.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),e.scale&&a.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),Bt.each(a,function(e){var a=e.options,i=a.id,o=sa(a.type,e.dtype);fa(a.position)!==fa(e.dposition)&&(a.position=e.dposition),r[i]=!0;var s=null;if(i in n&&n[i].type===o)s=n[i],s.options=a,s.ctx=t.ctx,s.chart=t;else{var l=$n.getScaleConstructor(o);if(!l)return;s=new l({id:i,type:o,options:a,ctx:t.ctx,chart:t}),n[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)}),Bt.each(r,function(t,e){t||delete n[e]}),t.scales=n,$n.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return Bt.each(t.data.datasets,function(n,a){var r=t.getDatasetMeta(a),i=n.type||t.config.type;if(r.type&&r.type!==i&&(t.destroyDatasetMeta(a),r=t.getDatasetMeta(a)),r.type=i,r.controller)r.controller.updateIndex(a),r.controller.linkScales();else{var o=tn[r.type];if(void 0===o)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new o(t,a),e.push(r.controller)}},t),e},resetElements:function(){var t=this;Bt.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e=this;if(t&&"object"===typeof t||(t={duration:t,lazy:arguments[1]}),ca(e),Bn._invalidate(e),!1!==Bn.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var n=e.buildOrUpdateControllers();Bt.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()},e),e.updateLayout(),e.options.animation&&e.options.animation.duration&&Bt.each(n,function(t){t.reset()}),e.updateDatasets(),e.tooltip.initialize(),e.lastActive=[],Bn.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){var t=this;!1!==Bn.notify(t,"beforeLayout")&&(hn.update(this,this.width,this.height),Bn.notify(t,"afterScaleUpdate"),Bn.notify(t,"afterLayout"))},updateDatasets:function(){var t=this;if(!1!==Bn.notify(t,"beforeDatasetsUpdate")){for(var e=0,n=t.data.datasets.length;e=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);Bn.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this,a=n.getDatasetMeta(t),r={meta:a,index:t,easingValue:e};!1!==Bn.notify(n,"beforeDatasetDraw",[r])&&(a.controller.draw(e),Bn.notify(n,"afterDatasetDraw",[r]))},_drawTooltip:function(t){var e=this,n=e.tooltip,a={tooltip:n,easingValue:t};!1!==Bn.notify(e,"beforeTooltipDraw",[a])&&(n.draw(),Bn.notify(e,"afterTooltipDraw",[a]))},getElementAtEvent:function(t){return ln.modes.single(this,t)},getElementsAtEvent:function(t){return ln.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ln.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var a=ln.modes[e];return"function"===typeof a?a(this,t,n):[]},getDatasetAtEvent:function(t){return ln.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var a=n._meta[e.id];return a||(a=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),a},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e=0;a--){var r=t[a];if(e(r))return r}},Bt.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},Bt.almostEquals=function(t,e,n){return Math.abs(t-e)t},Bt.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},Bt.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},Bt.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return t=+t,0===t||isNaN(t)?t:t>0?1:-1},Bt.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,n=Math.round(e),a=t===Math.pow(10,n);return a?n:e},Bt.toRadians=function(t){return t*(Math.PI/180)},Bt.toDegrees=function(t){return t*(180/Math.PI)},Bt._decimalPlaces=function(t){if(Bt.isFinite(t)){var e=1,n=0;while(Math.round(t*e)/e!==t)e*=10,n++;return n}},Bt.getAngleFromPoint=function(t,e){var n=e.x-t.x,a=e.y-t.y,r=Math.sqrt(n*n+a*a),i=Math.atan2(a,n);return i<-.5*Math.PI&&(i+=2*Math.PI),{angle:i,distance:r}},Bt.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},Bt.aliasPixel=function(t){return t%2===0?0:.5},Bt._alignPixel=function(t,e,n){var a=t.currentDevicePixelRatio,r=n/2;return Math.round((e-r)*a)/a+r},Bt.splineCurve=function(t,e,n,a){var r=t.skip?e:t,i=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(i.x-r.x,2)+Math.pow(i.y-r.y,2)),l=Math.sqrt(Math.pow(o.x-i.x,2)+Math.pow(o.y-i.y,2)),d=s/(s+l),u=l/(s+l);d=isNaN(d)?0:d,u=isNaN(u)?0:u;var c=a*d,f=a*u;return{previous:{x:i.x-c*(o.x-r.x),y:i.y-c*(o.y-r.y)},next:{x:i.x+f*(o.x-r.x),y:i.y+f*(o.y-r.y)}}},Bt.EPSILON=Number.EPSILON||1e-14,Bt.splineCurveMonotone=function(t){var e,n,a,r,i,o,s,l,d,u=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),c=u.length;for(e=0;e0?u[e-1]:null,r=e0?u[e-1]:null,r=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},Bt.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},Bt.niceNum=function(t,e){var n,a=Math.floor(Bt.log10(t)),r=t/Math.pow(10,a);return n=e?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10,n*Math.pow(10,a)},Bt.requestAnimFrame=function(){return"undefined"===typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),Bt.getRelativePosition=function(t,e){var n,a,r=t.originalEvent||t,i=t.target||t.srcElement,o=i.getBoundingClientRect(),s=r.touches;s&&s.length>0?(n=s[0].clientX,a=s[0].clientY):(n=r.clientX,a=r.clientY);var l=parseFloat(Bt.getStyle(i,"padding-left")),d=parseFloat(Bt.getStyle(i,"padding-top")),u=parseFloat(Bt.getStyle(i,"padding-right")),c=parseFloat(Bt.getStyle(i,"padding-bottom")),f=o.right-o.left-l-u,h=o.bottom-o.top-d-c;return n=Math.round((n-o.left-l)/f*i.width/e.currentDevicePixelRatio),a=Math.round((a-o.top-d)/h*i.height/e.currentDevicePixelRatio),{x:n,y:a}},Bt.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},Bt.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},Bt._calculatePadding=function(t,e,n){return e=Bt.getStyle(t,e),e.indexOf("%")>-1?n*parseInt(e,10)/100:parseInt(e,10)},Bt._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},Bt.getMaximumWidth=function(t){var e=Bt._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,a=Bt._calculatePadding(e,"padding-left",n),r=Bt._calculatePadding(e,"padding-right",n),i=n-a-r,o=Bt.getConstraintWidth(t);return isNaN(o)?i:Math.min(i,o)},Bt.getMaximumHeight=function(t){var e=Bt._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,a=Bt._calculatePadding(e,"padding-top",n),r=Bt._calculatePadding(e,"padding-bottom",n),i=n-a-r,o=Bt.getConstraintHeight(t);return isNaN(o)?i:Math.min(i,o)},Bt.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},Bt.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!==typeof window&&window.devicePixelRatio||1;if(1!==n){var a=t.canvas,r=t.height,i=t.width;a.height=r*n,a.width=i*n,t.ctx.scale(n,n),a.style.height||a.style.width||(a.style.height=r+"px",a.style.width=i+"px")}},Bt.fontString=function(t,e,n){return e+" "+t+"px "+n},Bt.longestText=function(t,e,n,a){a=a||{};var r=a.data=a.data||{},i=a.garbageCollect=a.garbageCollect||[];a.font!==e&&(r=a.data={},i=a.garbageCollect=[],a.font=e),t.font=e;var o=0;Bt.each(n,function(e){void 0!==e&&null!==e&&!0!==Bt.isArray(e)?o=Bt.measureText(t,r,i,o,e):Bt.isArray(e)&&Bt.each(e,function(e){void 0===e||null===e||Bt.isArray(e)||(o=Bt.measureText(t,r,i,o,e))})});var s=i.length/2;if(s>n.length){for(var l=0;la&&(a=i),a},Bt.numberOfLabelLines=function(t){var e=1;return Bt.each(t,function(t){Bt.isArray(t)&&t.length>e&&(e=t.length)}),e},Bt.color=Dt?function(t){return t instanceof CanvasGradient&&(t=Rt.global.defaultColor),Dt(t)}:function(t){return console.error("Color.js not found!"),t},Bt.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:Bt.color(t).saturate(.5).darken(.1).rgbString()}};function _a(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function va(t){this.options=t||{}}Bt.extend(va.prototype,{formats:_a,parse:_a,format:_a,add:_a,diff:_a,startOf:_a,endOf:_a,_create:function(t){return t}}),va.override=function(t){Bt.extend(va.prototype,t)};var ya=va,ga={_date:ya},ba={formatters:{values:function(t){return Bt.isArray(t)?t:""+t},linear:function(t,e,n){var a=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var r=Bt.log10(Math.abs(a)),i="";if(0!==t){var o=Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]));if(o<1e-4){var s=Bt.log10(Math.abs(t));i=t.toExponential(Math.floor(s)-Math.floor(r))}else{var l=-1*Math.floor(r);l=Math.max(Math.min(l,20),0),i=t.toFixed(l)}}else i="0";return i},logarithmic:function(t,e,n){var a=t/Math.pow(10,Math.floor(Bt.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}},Ma=Bt.valueOrDefault,ka=Bt.valueAtIndexOrDefault;function wa(t){var e,n,a=[];for(e=0,n=t.length;eu&&it.maxHeight){i--;break}i++,d=o*l}}t.labelRotation=i},afterCalculateTickRotation:function(){Bt.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){Bt.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=wa(t._ticks),a=t.options,r=a.ticks,i=a.scaleLabel,o=a.gridLines,s=t._isVisible(),l=a.position,d=t.isHorizontal(),u=Bt.options._parseFont,c=u(r),f=a.gridLines.tickMarkLength;if(e.width=d?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&o.drawTicks?f:0,e.height=d?s&&o.drawTicks?f:0:t.maxHeight,i.display&&s){var h=u(i),m=Bt.options.toPadding(i.padding),p=h.lineHeight+m.height;d?e.height+=p:e.width+=p}if(r.display&&s){var _=Bt.longestText(t.ctx,c.string,n,t.longestTextCache),v=Bt.numberOfLabelLines(n),y=.5*c.size,g=t.options.ticks.padding;if(t._maxLabelLines=v,t.longestLabelWidth=_,d){var b=Bt.toRadians(t.labelRotation),M=Math.cos(b),k=Math.sin(b),w=k*_+c.lineHeight*v+y;e.height=Math.min(t.maxHeight,e.height+w+g),t.ctx.font=c.string;var x,L,Y=La(t.ctx,n[0],c.string),D=La(t.ctx,n[n.length-1],c.string),S=t.getPixelForTick(0)-t.left,T=t.right-t.getPixelForTick(n.length-1);0!==t.labelRotation?(x="bottom"===l?M*Y:M*y,L="bottom"===l?M*y:M*D):(x=Y/2,L=D/2),t.paddingLeft=Math.max(x-S,0)+3,t.paddingRight=Math.max(L-T,0)+3}else r.mirror?_=0:_+=g+y,e.width=Math.min(t.maxWidth,e.width+_),t.paddingTop=c.size/2,t.paddingBottom=c.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){Bt.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(Bt.isNullOrUndef(t))return NaN;if(("number"===typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:Bt.noop,getPixelForValue:Bt.noop,getValueForPixel:Bt.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var a=e.width-(e.paddingLeft+e.paddingRight),r=a/Math.max(e._ticks.length-(n?0:1),1),i=r*t+e.paddingLeft;n&&(i+=r/2);var o=e.left+i;return o+=e.isFullWidth()?e.margins.left:0,o}var s=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(s/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=e.width-(e.paddingLeft+e.paddingRight),a=n*t+e.paddingLeft,r=e.left+a;return r+=e.isFullWidth()?e.margins.left:0,r}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,n=t.max;return t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},_autoSkip:function(t){var e,n,a=this,r=a.isHorizontal(),i=a.options.ticks.minor,o=t.length,s=!1,l=i.maxTicksLimit,d=a._tickSize()*(o-1),u=r?a.width-(a.paddingLeft+a.paddingRight):a.height-(a.paddingTop+a.PaddingBottom),c=[];for(d>u&&(s=1+Math.floor(d/u)),o>l&&(s=Math.max(s,1+Math.floor(o/l))),e=0;e1&&e%s>0&&delete n.label,c.push(n);return c},_tickSize:function(){var t=this,e=t.isHorizontal(),n=t.options.ticks.minor,a=Bt.toRadians(t.labelRotation),r=Math.abs(Math.cos(a)),i=Math.abs(Math.sin(a)),o=n.autoSkipPadding||0,s=t.longestLabelWidth+o||0,l=Bt.options._parseFont(n),d=t._maxLabelLines*l.lineHeight+o||0;return e?d*r>s*i?s/r:d/i:d*iu&&(_=Bt.niceNum(i*_/u/d)*d),l||Ha(h)?n=Math.pow(10,Bt._decimalPlaces(_)):(n=Math.pow(10,h),_=Math.ceil(_*n)/n),a=Math.floor(m/_)*_,r=Math.ceil(p/_)*_,l&&(!Ha(c)&&Bt.almostWhole(c/_,_/1e3)&&(a=c),!Ha(f)&&Bt.almostWhole(f/_,_/1e3)&&(r=f)),i=(r-a)/_,i=Bt.almostEquals(i,Math.round(i),_/1e3)?Math.round(i):Math.ceil(i),a=Math.round(a*n)/n,r=Math.round(r*n)/n,o.push(Ha(c)?a:c);for(var v=1;v0&&r>0&&(t.min=0)}var i=void 0!==n.min||void 0!==n.suggestedMin,o=void 0!==n.max||void 0!==n.suggestedMax;void 0!==n.min?t.min=n.min:void 0!==n.suggestedMin&&(null===t.min?t.min=n.suggestedMin:t.min=Math.min(t.min,n.suggestedMin)),void 0!==n.max?t.max=n.max:void 0!==n.suggestedMax&&(null===t.max?t.max=n.suggestedMax:t.max=Math.max(t.max,n.suggestedMax)),i!==o&&t.min>=t.max&&(i?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,n.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this,n=e.options.ticks,a=n.stepSize,r=n.maxTicksLimit;return a?t=Math.ceil(e.max/a)-Math.floor(e.min/a)+1:(t=e._computeTickLimit(),r=r||11),r&&(t=Math.min(r,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:Oa,buildTicks:function(){var t=this,e=t.options,n=e.ticks,a=t.getTickLimit();a=Math.max(2,a);var r={maxTicks:a,min:n.min,max:n.max,precision:n.precision,stepSize:Bt.valueOrDefault(n.fixedStepSize,n.stepSize)},i=t.ticks=Aa(r,t);t.handleDirectionalChanges(),t.max=Bt.max(i),t.min=Bt.min(i),n.reverse?(i.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),Ya.prototype.convertTicksToLabels.call(t)}}),ja={position:"left",ticks:{callback:ba.formatters.linear}},Ca=Pa.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,a=n.data,r=a.datasets,i=t.isHorizontal(),o=0,s=1;function l(e){return i?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var d=e.stacked;if(void 0===d&&Bt.each(r,function(t,e){if(!d){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&l(a)&&void 0!==a.stack&&(d=!0)}}),e.stacked||d){var u={};Bt.each(r,function(a,r){var i=n.getDatasetMeta(r),o=[i.type,void 0===e.stacked&&void 0===i.stack?r:"",i.stack].join(".");void 0===u[o]&&(u[o]={positiveValues:[],negativeValues:[]});var s=u[o].positiveValues,d=u[o].negativeValues;n.isDatasetVisible(r)&&l(i)&&Bt.each(a.data,function(n,a){var r=+t.getRightValue(n);isNaN(r)||i.data[a].hidden||(s[a]=s[a]||0,d[a]=d[a]||0,e.relativePoints?s[a]=100:r<0?d[a]+=r:s[a]+=r)})}),Bt.each(u,function(e){var n=e.positiveValues.concat(e.negativeValues),a=Bt.min(n),r=Bt.max(n);t.min=null===t.min?a:Math.min(t.min,a),t.max=null===t.max?r:Math.max(t.max,r)})}else Bt.each(r,function(e,a){var r=n.getDatasetMeta(a);n.isDatasetVisible(a)&&l(r)&&Bt.each(e.data,function(e,n){var a=+t.getRightValue(e);isNaN(a)||r.data[n].hidden||(null===t.min?t.min=a:at.max&&(t.max=a))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:o,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:s,this.handleTickRangeOptions()},_computeTickLimit:function(){var t,e=this;return e.isHorizontal()?Math.ceil(e.width/40):(t=Bt.options._parseFont(e.options.ticks),Math.ceil(e.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,n=this,a=n.start,r=+n.getRightValue(t),i=n.end-a;return e=n.isHorizontal()?n.left+n.width/i*(r-a):n.bottom-n.height/i*(r-a),e},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),a=n?e.width:e.height,r=(n?t-e.left:e.bottom-t)/a;return e.start+(e.end-e.start)*r},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}}),za=ja;Ca._defaults=za;var Ea=Bt.valueOrDefault;function Fa(t,e){var n,a,r=[],i=Ea(t.min,Math.pow(10,Math.floor(Bt.log10(e.min)))),o=Math.floor(Bt.log10(e.max)),s=Math.ceil(e.max/Math.pow(10,o));0===i?(n=Math.floor(Bt.log10(e.minNotZero)),a=Math.floor(e.minNotZero/Math.pow(10,n)),r.push(i),i=a*Math.pow(10,n)):(n=Math.floor(Bt.log10(i)),a=Math.floor(i/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{r.push(i),++a,10===a&&(a=1,++n,l=n>=0?1:l),i=Math.round(a*Math.pow(10,n)*l)/l}while(n=0?t:e}var Ra=Ya.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,a=n.data,r=a.datasets,i=t.isHorizontal();function o(e){return i?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var s=e.stacked;if(void 0===s&&Bt.each(r,function(t,e){if(!s){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&o(a)&&void 0!==a.stack&&(s=!0)}}),e.stacked||s){var l={};Bt.each(r,function(a,r){var i=n.getDatasetMeta(r),s=[i.type,void 0===e.stacked&&void 0===i.stack?r:"",i.stack].join(".");n.isDatasetVisible(r)&&o(i)&&(void 0===l[s]&&(l[s]=[]),Bt.each(a.data,function(e,n){var a=l[s],r=+t.getRightValue(e);isNaN(r)||i.data[n].hidden||r<0||(a[n]=a[n]||0,a[n]+=r)}))}),Bt.each(l,function(e){if(e.length>0){var n=Bt.min(e),a=Bt.max(e);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)}})}else Bt.each(r,function(e,a){var r=n.getDatasetMeta(a);n.isDatasetVisible(a)&&o(r)&&Bt.each(e.data,function(e,n){var a=+t.getRightValue(e);isNaN(a)||r.data[n].hidden||a<0||(null===t.min?t.min=a:at.max&&(t.max=a),0!==a&&(null===t.minNotZero||a0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(Bt.log10(t.max))):t.minNotZero=n)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),a={min:Wa(e.min),max:Wa(e.max)},r=t.ticks=Fa(a,t);t.max=Bt.max(r),t.min=Bt.min(r),e.reverse?(n=!n,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),n&&r.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),Ya.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(Bt.log10(t)),n=Math.floor(t/Math.pow(10,e));return n*Math.pow(10,e)},getPixelForValue:function(t){var e,n,a,r,i,o=this,s=o.options.ticks,l=s.reverse,d=Bt.log10,u=o._getFirstTickValue(o.minNotZero),c=0;return t=+o.getRightValue(t),l?(a=o.end,r=o.start,i=-1):(a=o.start,r=o.end,i=1),o.isHorizontal()?(e=o.width,n=l?o.right:o.left):(e=o.height,i*=-1,n=l?o.top:o.bottom),t!==a&&(0===a&&(c=Ea(s.fontSize,Rt.global.defaultFontSize),e-=c,a=u),0!==t&&(c+=e/(d(r)-d(a))*(d(t)-d(a))),n+=i*c),n},getValueForPixel:function(t){var e,n,a,r,i=this,o=i.options.ticks,s=o.reverse,l=Bt.log10,d=i._getFirstTickValue(i.minNotZero);if(s?(n=i.end,a=i.start):(n=i.start,a=i.end),i.isHorizontal()?(e=i.width,r=s?i.right-t:t-i.left):(e=i.height,r=s?t-i.top:i.bottom-t),r!==n){if(0===n){var u=Ea(o.fontSize,Rt.global.defaultFontSize);r-=u,e-=u,n=d}r*=l(a)-l(n),r/=e,r=Math.pow(10,l(n)+r)}return r}}),Na=Ia;Ra._defaults=Na;var Va=Bt.valueOrDefault,Ua=Bt.valueAtIndexOrDefault,Ba=Bt.options.resolve,$a={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:ba.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Ja(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function Ga(t){var e=t.ticks;return e.display&&t.display?Va(e.fontSize,Rt.global.defaultFontSize)+2*e.backdropPaddingY:0}function qa(t,e,n){return Bt.isArray(n)?{w:Bt.longestText(t,t.font,n),h:n.length*e}:{w:t.measureText(n).width,h:e}}function Xa(t,e,n,a,r){return t===a||t===r?{start:e-n/2,end:e+n/2}:tr?{start:e-n,end:e}:{start:e,end:e+n}}function Qa(t){var e,n,a,r=Bt.options._parseFont(t.options.pointLabels),i={l:0,r:t.width,t:0,b:t.height-t.paddingTop},o={};t.ctx.font=r.string,t._pointLabelSizes=[];var s=Ja(t);for(e=0;ei.r&&(i.r=u.end,o.r=l),c.starti.b&&(i.b=c.end,o.b=l)}t.setReductions(t.drawingArea,i,o)}function Za(t){return 0===t||180===t?"center":t<180?"left":"right"}function Ka(t,e,n,a){var r,i,o=n.y+a/2;if(Bt.isArray(e))for(r=0,i=e.length;r270||t<90)&&(n.y-=e.h)}function er(t){var e=t.ctx,n=t.options,a=n.angleLines,r=n.gridLines,i=n.pointLabels,o=Va(a.lineWidth,r.lineWidth),s=Va(a.color,r.color),l=Ga(n);e.save(),e.lineWidth=o,e.strokeStyle=s,e.setLineDash&&(e.setLineDash(Ba([a.borderDash,r.borderDash,[]])),e.lineDashOffset=Ba([a.borderDashOffset,r.borderDashOffset,0]));var d=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),u=Bt.options._parseFont(i);e.font=u.string,e.textBaseline="middle";for(var c=Ja(t)-1;c>=0;c--){if(a.display&&o&&s){var f=t.getPointPosition(c,d);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(f.x,f.y),e.stroke()}if(i.display){var h=0===c?l/2:0,m=t.getPointPosition(c,d+h+5),p=Ua(i.fontColor,c,Rt.global.defaultFontColor);e.fillStyle=p;var _=t.getIndexAngle(c),v=Bt.toDegrees(_);e.textAlign=Za(v),tr(v,t._pointLabelSizes[c],m),Ka(e,t.pointLabels[c]||"",m,u.lineHeight)}}e.restore()}function nr(t,e,n,a){var r,i=t.ctx,o=e.circular,s=Ja(t),l=Ua(e.color,a-1),d=Ua(e.lineWidth,a-1);if((o||s)&&l&&d){if(i.save(),i.strokeStyle=l,i.lineWidth=d,i.setLineDash&&(i.setLineDash(e.borderDash||[]),i.lineDashOffset=e.borderDashOffset||0),i.beginPath(),o)i.arc(t.xCenter,t.yCenter,n,0,2*Math.PI);else{r=t.getPointPosition(0,n),i.moveTo(r.x,r.y);for(var u=1;u0&&n>0?e:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,a=e.ticks;if(e.display){var r=t.ctx,i=this.getIndexAngle(0),o=Bt.options._parseFont(a);(e.angleLines.display||e.pointLabels.display)&&er(t),Bt.each(t.ticks,function(e,s){if(s>0||a.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(n.display&&0!==s&&nr(t,n,l,s),a.display){var d=Va(a.fontColor,Rt.global.defaultFontColor);if(r.font=o.string,r.save(),r.translate(t.xCenter,t.yCenter),r.rotate(i),a.showLabelBackdrop){var u=r.measureText(e).width;r.fillStyle=a.backdropColor,r.fillRect(-u/2-a.backdropPaddingX,-l-o.size/2-a.backdropPaddingY,u+2*a.backdropPaddingX,o.size+2*a.backdropPaddingY)}r.textAlign="center",r.textBaseline="middle",r.fillStyle=d,r.fillText(e,0,-l),r.restore()}}})}}}),ir=$a;rr._defaults=ir;var or=Bt.valueOrDefault,sr=Number.MIN_SAFE_INTEGER||-9007199254740991,lr=Number.MAX_SAFE_INTEGER||9007199254740991,dr={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},ur=Object.keys(dr);function cr(t,e){return t-e}function fr(t){var e,n,a,r={},i=[];for(e=0,n=t.length;ee&&s=0&&o<=s){if(a=o+s>>1,r=t[a-1]||null,i=t[a],!r)return{lo:null,hi:i};if(i[e]n))return{lo:r,hi:i};s=a-1}}return{lo:i,hi:null}}function pr(t,e,n,a){var r=mr(t,e,n),i=r.lo?r.hi?r.lo:t[t.length-2]:t[0],o=r.lo?r.hi?r.hi:t[t.length-1]:t[1],s=o[e]-i[e],l=s?(n-i[e])/s:0,d=(o[a]-i[a])*l;return i[a]+d}function _r(t,e){var n=t._adapter,a=t.options.time,r=a.parser,i=r||a.format,o=e;return"function"===typeof r&&(o=r(o)),Bt.isFinite(o)||(o="string"===typeof i?n.parse(o,i):n.parse(o)),null!==o?+o:(r||"function"!==typeof i||(o=i(e),Bt.isFinite(o)||(o=n.parse(o))),o)}function vr(t,e){if(Bt.isNullOrUndef(e))return null;var n=t.options.time,a=_r(t,t.getRightValue(e));return null===a?a:(n.round&&(a=+t._adapter.startOf(a,n.round)),a)}function yr(t,e,n,a){var r,i,o,s=e-t,l=dr[n],d=l.size,u=l.steps;if(!u)return Math.ceil(s/(a*d));for(r=0,i=u.length;r=ur.indexOf(n);i--)if(o=ur[i],dr[o].common&&t._adapter.diff(r,a,o)>=e.length)return o;return ur[n?ur.indexOf(n):0]}function Mr(t){for(var e=ur.indexOf(t)+1,n=ur.length;e=r&&n<=i&&d.push(n);return a.min=r,a.max=i,a._unit=s.unit||br(a,d,s.minUnit,a.min,a.max),a._majorUnit=Mr(a._unit),a._table=hr(a._timestamps.data,r,i,o.distribution),a._offsets=wr(a._table,d,r,i,o),o.ticks.reverse&&d.reverse(),xr(a,d,a._majorUnit)},getLabelForIndex:function(t,e){var n=this,a=n._adapter,r=n.chart.data,i=n.options.time,o=r.labels&&t=0&&t0?o:1}}),Dr=Lr;Yr._defaults=Dr;var Sr={category:Sa,linear:Ca,logarithmic:Ra,radialLinear:rr,time:Yr},Tr={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};ga._date.override("function"===typeof t?{_id:"moment",formats:function(){return Tr},parse:function(e,n){return"string"===typeof e&&"string"===typeof n?e=t(e,n):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,n){return t(e).format(n)},add:function(e,n,a){return t(e).add(n,a).valueOf()},diff:function(e,n,a){return t.duration(t(e).diff(t(n))).as(a)},startOf:function(e,n,a){return e=t(e),"isoWeek"===n?e.isoWeekday(a).valueOf():e.startOf(n).valueOf()},endOf:function(e,n){return t(e).endOf(n).valueOf()},_create:function(e){return t(e)}}:{}),Rt._set("global",{plugins:{filler:{propagate:!0}}});var Or={dataset:function(t){var e=t.fill,n=t.chart,a=n.getDatasetMeta(e),r=a&&n.isDatasetVisible(e),i=r&&a.dataset._children||[],o=i.length||0;return o?function(t,e){return e=n)&&a;switch(i){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return i;default:return!1}}function Ar(t){var e,n=t.el._model||{},a=t.el._scale||{},r=t.fill,i=null;if(isFinite(r))return null;if("start"===r?i=void 0===n.scaleBottom?a.bottom:n.scaleBottom:"end"===r?i=void 0===n.scaleTop?a.top:n.scaleTop:void 0!==n.scaleZero?i=n.scaleZero:a.getBasePosition?i=a.getBasePosition():a.getBasePixel&&(i=a.getBasePixel()),void 0!==i&&null!==i){if(void 0!==i.x&&void 0!==i.y)return i;if(Bt.isFinite(i))return e=a.isHorizontal(),{x:e?i:null,y:e?null:i}}return null}function Pr(t,e,n){var a,r=t[e],i=r.fill,o=[e];if(!n)return i;while(!1!==i&&-1===o.indexOf(i)){if(!isFinite(i))return i;if(a=t[i],!a)return!1;if(a.visible)return i;o.push(i),i=a.fill}return!1}function jr(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),Or[n](t))}function Cr(t){return t&&!t.skip}function zr(t,e,n,a,r){var i;if(a&&r){for(t.moveTo(e[0].x,e[0].y),i=1;i0;--i)Bt.canvas.lineTo(t,n[i],n[i-1],!0)}}function Er(t,e,n,a,r,i){var o,s,l,d,u,c,f,h=e.length,m=a.spanGaps,p=[],_=[],v=0,y=0;for(t.beginPath(),o=0,s=h+!!i;oe?e:t.boxWidth}Rt._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,a=this.chart,r=a.getDatasetMeta(n);r.hidden=null===r.hidden?!a.data.datasets[n].hidden:null,a.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return Bt.isArray(e.datasets)?e.datasets.map(function(e,n){return{text:e.label,fillStyle:Bt.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(n),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:n}},this):[]}}},legendCallback:function(t){var e=[];e.push('
    ');for(var n=0;n'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("");return e.push("
"),e.join("")}});var Nr=Qt.extend({initialize:function(t){Bt.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:Ir,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:Ir,beforeSetDimensions:Ir,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Ir,beforeBuildLabels:Ir,buildLabels:function(){var t=this,e=t.options.labels||{},n=Bt.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:Ir,beforeFit:Ir,fit:function(){var t=this,e=t.options,n=e.labels,a=e.display,r=t.ctx,i=Bt.options._parseFont(n),o=i.size,s=t.legendHitBoxes=[],l=t.minSize,d=t.isHorizontal();if(d?(l.width=t.maxWidth,l.height=a?10:0):(l.width=a?10:0,l.height=t.maxHeight),a)if(r.font=i.string,d){var u=t.lineWidths=[0],c=0;r.textAlign="left",r.textBaseline="top",Bt.each(t.legendItems,function(t,e){var a=Rr(n,o),i=a+o/2+r.measureText(t.text).width;(0===e||u[u.length-1]+i+n.padding>l.width)&&(c+=o+n.padding,u[u.length-(e>0?0:1)]=n.padding),s[e]={left:0,top:0,width:i,height:o},u[u.length-1]+=i+n.padding}),l.height+=c}else{var f=n.padding,h=t.columnWidths=[],m=n.padding,p=0,_=0,v=o+f;Bt.each(t.legendItems,function(t,e){var a=Rr(n,o),i=a+o/2+r.measureText(t.text).width;e>0&&_+v>l.height-f&&(m+=p+n.padding,h.push(p),p=0,_=0),p=Math.max(p,i),_+=v,s[e]={left:0,top:0,width:i,height:o}}),m+=p,h.push(p),l.width+=m}t.width=l.width,t.height=l.height},afterFit:Ir,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,a=Rt.global,r=a.defaultColor,i=a.elements.line,o=t.width,s=t.lineWidths;if(e.display){var l,d=t.ctx,u=Wr(n.fontColor,a.defaultFontColor),c=Bt.options._parseFont(n),f=c.size;d.textAlign="left",d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=u,d.fillStyle=u,d.font=c.string;var h=Rr(n,f),m=t.legendHitBoxes,p=function(t,n,a){if(!(isNaN(h)||h<=0)){d.save();var o=Wr(a.lineWidth,i.borderWidth);if(d.fillStyle=Wr(a.fillStyle,r),d.lineCap=Wr(a.lineCap,i.borderCapStyle),d.lineDashOffset=Wr(a.lineDashOffset,i.borderDashOffset),d.lineJoin=Wr(a.lineJoin,i.borderJoinStyle),d.lineWidth=o,d.strokeStyle=Wr(a.strokeStyle,r),d.setLineDash&&d.setLineDash(Wr(a.lineDash,i.borderDash)),e.labels&&e.labels.usePointStyle){var s=h*Math.SQRT2/2,l=t+h/2,u=n+f/2;Bt.canvas.drawPoint(d,a.pointStyle,s,l,u)}else 0!==o&&d.strokeRect(t,n,h,f),d.fillRect(t,n,h,f);d.restore()}},_=function(t,e,n,a){var r=f/2,i=h+r+t,o=e+r;d.fillText(n.text,i,o),n.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(i,o),d.lineTo(i+a,o),d.stroke())},v=t.isHorizontal();l=v?{x:t.left+(o-s[0])/2+n.padding,y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+n.padding,line:0};var y=f+n.padding;Bt.each(t.legendItems,function(e,a){var r=d.measureText(e.text).width,i=h+f/2+r,u=l.x,c=l.y;v?a>0&&u+i+n.padding>t.left+t.minSize.width&&(c=l.y+=y,l.line++,u=l.x=t.left+(o-s[l.line])/2+n.padding):a>0&&c+y>t.top+t.minSize.height&&(u=l.x=u+t.columnWidths[l.line]+n.padding,c=l.y=t.top+n.padding,l.line++),p(u,c,e),m[a].left=u,m[a].top=c,_(u,c,e,r),v?l.x+=i+n.padding:l.y+=y})}},_getLegendItemAt:function(t,e){var n,a,r,i=this;if(t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom)for(r=i.legendHitBoxes,n=0;n=a.left&&t<=a.left+a.width&&e>=a.top&&e<=a.top+a.height)return i.legendItems[n];return null},handleEvent:function(t){var e,n=this,a=n.options,r="mouseup"===t.type?"click":t.type;if("mousemove"===r){if(!a.onHover&&!a.onLeave)return}else{if("click"!==r)return;if(!a.onClick)return}e=n._getLegendItemAt(t.x,t.y),"click"===r?e&&a.onClick&&a.onClick.call(n,t.native,e):(a.onLeave&&e!==n._hoveredItem&&(n._hoveredItem&&a.onLeave.call(n,t.native,n._hoveredItem),n._hoveredItem=e),a.onHover&&e&&a.onHover.call(n,t.native,e))}});function Vr(t,e){var n=new Nr({ctx:t.ctx,options:e,chart:t});hn.configure(t,n,e),hn.addBox(t,n),t.legend=n}var Ur={id:"legend",_element:Nr,beforeInit:function(t){var e=t.options.legend;e&&Vr(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(Bt.mergeIf(e,Rt.global.legend),n?(hn.configure(t,n,e),n.options=e):Vr(t,e)):n&&(hn.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}},Br=Bt.noop;Rt._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var $r=Qt.extend({initialize:function(t){var e=this;Bt.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:Br,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:Br,beforeSetDimensions:Br,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Br,beforeBuildLabels:Br,buildLabels:Br,afterBuildLabels:Br,beforeFit:Br,fit:function(){var t=this,e=t.options,n=e.display,a=t.minSize,r=Bt.isArray(e.text)?e.text.length:1,i=Bt.options._parseFont(e),o=n?r*i.lineHeight+2*e.padding:0;t.isHorizontal()?(a.width=t.maxWidth,a.height=o):(a.width=o,a.height=t.maxHeight),t.width=a.width,t.height=a.height},afterFit:Br,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=t.options;if(n.display){var a,r,i,o=Bt.options._parseFont(n),s=o.lineHeight,l=s/2+n.padding,d=0,u=t.top,c=t.left,f=t.bottom,h=t.right;e.fillStyle=Bt.valueOrDefault(n.fontColor,Rt.global.defaultFontColor),e.font=o.string,t.isHorizontal()?(r=c+(h-c)/2,i=u+l,a=h-c):(r="left"===n.position?c+l:h-l,i=u+(f-u)/2,a=f-u,d=Math.PI*("left"===n.position?-.5:.5)),e.save(),e.translate(r,i),e.rotate(d),e.textAlign="center",e.textBaseline="middle";var m=n.text;if(Bt.isArray(m))for(var p=0,_=0;_1?arguments[1]:void 0,n),l=o>2?arguments[2]:void 0,d=void 0===l?n:r(l,n);while(d>s)e[s++]=t;return e}},"36c3":function(t,e,n){var a=n("335c"),r=n("25eb");t.exports=function(t){return a(r(t))}},3702:function(t,e,n){var a=n("481b"),r=n("5168")("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(a.Array===t||i[r]===t)}},3729:function(t,e,n){var a=n("9e69"),r=n("00fd"),i=n("29f3"),o="[object Null]",s="[object Undefined]",l=a?a.toStringTag:void 0;function d(t){return null==t?void 0===t?s:o:l&&l in Object(t)?r(t):i(t)}t.exports=d},3846:function(t,e,n){n("9e1e")&&"g"!=/./g.flags&&n("86cc").f(RegExp.prototype,"flags",{configurable:!0,get:n("0bfb")})},"386d":function(t,e,n){"use strict";var a=n("cb7c"),r=n("83a1"),i=n("5f1b");n("214f")("search",1,function(t,e,n,o){return[function(n){var a=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,a):new RegExp(n)[e](String(a))},function(t){var e=o(n,t,this);if(e.done)return e.value;var s=a(t),l=String(this),d=s.lastIndex;r(d,0)||(s.lastIndex=0);var u=i(s,l);return r(s.lastIndex,d)||(s.lastIndex=d),null===u?-1:u.index}]})},3886:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1===~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}});return e})},"38fd":function(t,e,n){var a=n("69a8"),r=n("4bf8"),i=n("613b")("IE_PROTO"),o=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),a(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?o:null}},"39a6":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1===~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}});return e})},"39bd":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function a(t,e,n,a){var r="";if(e)switch(n){case"s":r="काही सेकंद";break;case"ss":r="%d सेकंद";break;case"m":r="एक मिनिट";break;case"mm":r="%d मिनिटे";break;case"h":r="एक तास";break;case"hh":r="%d तास";break;case"d":r="एक दिवस";break;case"dd":r="%d दिवस";break;case"M":r="एक महिना";break;case"MM":r="%d महिने";break;case"y":r="एक वर्ष";break;case"yy":r="%d वर्षे";break}else switch(n){case"s":r="काही सेकंदां";break;case"ss":r="%d सेकंदां";break;case"m":r="एका मिनिटा";break;case"mm":r="%d मिनिटां";break;case"h":r="एका तासा";break;case"hh":r="%d तासां";break;case"d":r="एका दिवसा";break;case"dd":r="%d दिवसां";break;case"M":r="एका महिन्या";break;case"MM":r="%d महिन्यां";break;case"y":r="एका वर्षा";break;case"yy":r="%d वर्षां";break}return r.replace(/%d/i,t)}var r=t.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात्री"===e?t<4?t:t+12:"सकाळी"===e?t:"दुपारी"===e?t>=10?t:t+12:"सायंकाळी"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात्री":t<10?"सकाळी":t<17?"दुपारी":t<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}});return r})},"3a38":function(t,e){var n=Math.ceil,a=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?a:n)(t)}},"3a39":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},a=t.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(t,e){return 12===t&&(t=0),"राति"===e?t<4?t:t+12:"बिहान"===e?t:"दिउँसो"===e?t>=10?t:t+12:"साँझ"===e?t+12:void 0},meridiem:function(t,e,n){return t<3?"राति":t<12?"बिहान":t<16?"दिउँसो":t<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}});return a})},"3b1b":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"},n=t.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(t,e){return 12===t&&(t=0),"шаб"===e?t<4?t:t+12:"субҳ"===e?t:"рӯз"===e?t>=11?t:t+12:"бегоҳ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"шаб":t<11?"субҳ":t<16?"рӯз":t<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(t){var n=t%10,a=t>=100?100:null;return t+(e[t]||e[n]||e[a])},week:{dow:1,doy:7}});return n})},"3b2b":function(t,e,n){var a=n("7726"),r=n("5dbc"),i=n("86cc").f,o=n("9093").f,s=n("aae3"),l=n("0bfb"),d=a.RegExp,u=d,c=d.prototype,f=/a/g,h=/a/g,m=new d(f)!==f;if(n("9e1e")&&(!m||n("79e5")(function(){return h[n("2b4c")("match")]=!1,d(f)!=f||d(h)==h||"/a/i"!=d(f,"i")}))){d=function(t,e){var n=this instanceof d,a=s(t),i=void 0===e;return!n&&a&&t.constructor===d&&i?t:r(m?new u(a&&!i?t.source:t,e):u((a=t instanceof d)?t.source:t,a&&i?l.call(t):e),n?this:c,d)};for(var p=function(t){t in d||i(d,t,{configurable:!0,get:function(){return u[t]},set:function(e){u[t]=e}})},_=o(u),v=0;_.length>v;)p(_[v++]);c.constructor=d,d.prototype=c,n("2aba")(a,"RegExp",d)}n("7a56")("RegExp")},"3c0d":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),a=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],r=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function i(t){return t>1&&t<5&&1!==~~(t/10)}function o(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"pár sekund":"pár sekundami";case"ss":return e||a?r+(i(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":a?"minutu":"minutou";case"mm":return e||a?r+(i(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":a?"hodinu":"hodinou";case"hh":return e||a?r+(i(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||a?"den":"dnem";case"dd":return e||a?r+(i(t)?"dny":"dní"):r+"dny";case"M":return e||a?"měsíc":"měsícem";case"MM":return e||a?r+(i(t)?"měsíce":"měsíců"):r+"měsíci";case"y":return e||a?"rok":"rokem";case"yy":return e||a?r+(i(t)?"roky":"let"):r+"lety"}}var s=t.defineLocale("cs",{months:e,monthsShort:n,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:o,ss:o,m:o,mm:o,h:o,hh:o,d:o,dd:o,M:o,MM:o,y:o,yy:o},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return s})},"3de5":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"},a=t.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(t){return t+"வது"},preparse:function(t){return t.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(t,e,n){return t<2?" யாமம்":t<6?" வைகறை":t<10?" காலை":t<14?" நண்பகல்":t<18?" எற்பாடு":t<22?" மாலை":" யாமம்"},meridiemHour:function(t,e){return 12===t&&(t=0),"யாமம்"===e?t<2?t:t+12:"வைகறை"===e||"காலை"===e?t:"நண்பகல்"===e&&t>=10?t:t+12},week:{dow:0,doy:6}});return a})},"3e92":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"},a=t.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(t){return t.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ರಾತ್ರಿ"===e?t<4?t:t+12:"ಬೆಳಿಗ್ಗೆ"===e?t:"ಮಧ್ಯಾಹ್ನ"===e?t>=10?t:t+12:"ಸಂಜೆ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ರಾತ್ರಿ":t<10?"ಬೆಳಿಗ್ಗೆ":t<17?"ಮಧ್ಯಾಹ್ನ":t<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(t){return t+"ನೇ"},week:{dow:0,doy:6}});return a})},"40c3":function(t,e,n){var a=n("6b4c"),r=n("5168")("toStringTag"),i="Arguments"==a(function(){return arguments}()),o=function(t,e){try{return t[e]}catch(n){}};t.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=o(e=Object(t),r))?n:i?a(e):"Object"==(s=a(e))&&"function"==typeof e.callee?"Arguments":s}},"41a0":function(t,e,n){"use strict";var a=n("2aeb"),r=n("4630"),i=n("7f20"),o={};n("32e9")(o,n("2b4c")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=a(o,{next:r(1,n)}),i(t,e+" Iterator")}},"423e":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}});return e})},4245:function(t,e,n){var a=n("1290");function r(t,e){var n=t.__data__;return a(e)?n["string"==typeof e?"string":"hash"]:n.map}t.exports=r},"440c":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n,a){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return e?r[n][0]:r[n][1]}function n(t){var e=t.substr(0,t.indexOf(" "));return r(e)?"a "+t:"an "+t}function a(t){var e=t.substr(0,t.indexOf(" "));return r(e)?"viru "+t:"virun "+t}function r(t){if(t=parseInt(t,10),isNaN(t))return!1;if(t<0)return!0;if(t<10)return 4<=t&&t<=7;if(t<100){var e=t%10,n=t/10;return r(0===e?n:e)}if(t<1e4){while(t>=10)t/=10;return r(t)}return t/=1e3,r(t)}var i=t.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:n,past:a,s:"e puer Sekonnen",ss:"%d Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d Méint",y:e,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return i})},"454f":function(t,e,n){n("46a7");var a=n("584a").Object;t.exports=function(t,e,n){return a.defineProperty(t,e,n)}},"456d":function(t,e,n){var a=n("4bf8"),r=n("0d58");n("5eda")("keys",function(){return function(t){return r(a(t))}})},4588:function(t,e){var n=Math.ceil,a=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?a:n)(t)}},"45f2":function(t,e,n){var a=n("d9f6").f,r=n("07e3"),i=n("5168")("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},4630:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"469f":function(t,e,n){n("6c1c"),n("1654"),t.exports=n("7d7b")},"46a7":function(t,e,n){var a=n("63b6");a(a.S+a.F*!n("8e60"),"Object",{defineProperty:n("d9f6").f})},"47ee":function(t,e,n){var a=n("c3a1"),r=n("9aa9"),i=n("355d");t.exports=function(t){var e=a(t),n=r.f;if(n){var o,s=n(t),l=i.f,d=0;while(s.length>d)l.call(t,o=s[d++])&&e.push(o)}return e}},"481b":function(t,e){t.exports={}},"485c":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"},n=t.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(t){return/^(gündüz|axşam)$/.test(t)},meridiem:function(t,e,n){return t<4?"gecə":t<12?"səhər":t<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(t){if(0===t)return t+"-ıncı";var n=t%10,a=t%100-n,r=t>=100?100:null;return t+(e[n]||e[a]||e[r])},week:{dow:1,doy:7}});return n})},4917:function(t,e,n){"use strict";var a=n("cb7c"),r=n("9def"),i=n("0390"),o=n("5f1b");n("214f")("match",1,function(t,e,n,s){return[function(n){var a=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,a):new RegExp(n)[e](String(a))},function(t){var e=s(n,t,this);if(e.done)return e.value;var l=a(t),d=String(this);if(!l.global)return o(l,d);var u=l.unicode;l.lastIndex=0;var c,f=[],h=0;while(null!==(c=o(l,d))){var m=String(c[0]);f[h]=m,""===m&&(l.lastIndex=i(d,r(l.lastIndex),u)),h++}return 0===h?null:f}]})},"49ab":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}});return e})},"49f4":function(t,e,n){var a=n("6044");function r(){this.__data__=a?a(null):{},this.size=0}t.exports=r},"4a59":function(t,e,n){var a=n("9b43"),r=n("1fa8"),i=n("33a4"),o=n("cb7c"),s=n("9def"),l=n("27ee"),d={},u={};e=t.exports=function(t,e,n,c,f){var h,m,p,_,v=f?function(){return t}:l(t),y=a(n,c,e?2:1),g=0;if("function"!=typeof v)throw TypeError(t+" is not iterable!");if(i(v)){for(h=s(t.length);h>g;g++)if(_=e?y(o(m=t[g])[0],m[1]):y(t[g]),_===d||_===u)return _}else for(p=v.call(t);!(m=p.next()).done;)if(_=r(p,y,m.value,e),_===d||_===u)return _};e.BREAK=d,e.RETURN=u},"4ba9":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n){var a=t+" ";switch(n){case"ss":return a+=1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi",a;case"m":return e?"jedna minuta":"jedne minute";case"mm":return a+=1===t?"minuta":2===t||3===t||4===t?"minute":"minuta",a;case"h":return e?"jedan sat":"jednog sata";case"hh":return a+=1===t?"sat":2===t||3===t||4===t?"sata":"sati",a;case"dd":return a+=1===t?"dan":"dana",a;case"MM":return a+=1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci",a;case"yy":return a+=1===t?"godina":2===t||3===t||4===t?"godine":"godina",a}}var n=t.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n})},"4bf8":function(t,e,n){var a=n("be13");t.exports=function(t){return Object(a(t))}},"4eb5":function(t,e,n){var a=n("6981"),r={autoSetContainer:!1},i={install:function(t){t.prototype.$clipboardConfig=r,t.prototype.$copyText=function(t,e){return new Promise(function(n,r){var i=document.createElement("button"),o=new a(i,{text:function(){return t},action:function(){return"copy"},container:"object"===typeof e?e:document.body});o.on("success",function(t){o.destroy(),n(t)}),o.on("error",function(t){o.destroy(),r(t)}),i.click()})},t.directive("clipboard",{bind:function(t,e,n){if("success"===e.arg)t._v_clipboard_success=e.value;else if("error"===e.arg)t._v_clipboard_error=e.value;else{var i=new a(t,{text:function(){return e.value},action:function(){return"cut"===e.arg?"cut":"copy"},container:r.autoSetContainer?t:void 0});i.on("success",function(e){var n=t._v_clipboard_success;n&&n(e)}),i.on("error",function(e){var n=t._v_clipboard_error;n&&n(e)}),t._v_clipboard=i}},update:function(t,e){"success"===e.arg?t._v_clipboard_success=e.value:"error"===e.arg?t._v_clipboard_error=e.value:(t._v_clipboard.text=function(){return e.value},t._v_clipboard.action=function(){return"cut"===e.arg?"cut":"copy"})},unbind:function(t,e){"success"===e.arg?delete t._v_clipboard_success:"error"===e.arg?delete t._v_clipboard_error:(t._v_clipboard.destroy(),delete t._v_clipboard)}})},config:r};t.exports=i},"4ee1":function(t,e,n){var a=n("5168")("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}t.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],s=i[a]();s.next=function(){return{done:n=!0}},i[a]=function(){return s},t(i)}catch(o){}return n}},"4f7f":function(t,e,n){"use strict";var a=n("c26b"),r=n("b39a"),i="Set";t.exports=n("e0b8")(i,function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return a.def(r(this,i),t=0===t?0:t,t)}},a)},5038:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"siang":t<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return e})},"504c":function(t,e,n){var a=n("9e1e"),r=n("0d58"),i=n("6821"),o=n("52a7").f;t.exports=function(t){return function(e){var n,s=i(e),l=r(s),d=l.length,u=0,c=[];while(d>u)n=l[u++],a&&!o.call(s,n)||c.push(t?[n,s[n]]:s[n]);return c}}},"50d1":function(t,e,n){(function(e,n){t.exports=n()})(0,function(){"use strict";function t(t){return"[object Array]"===Object.prototype.toString.call(t)}function e(t){return t instanceof Function}function n(t){return"[object Object]"===Object.prototype.toString.call(t)}function a(e,r){var i;for(i in r)n(r[i])||t(r[i])?(n(r[i])&&!n(e[i])&&(e[i]={}),t(r[i])&&!t(e[i])&&(e[i]=[]),a(e[i],r[i])):void 0!==r[i]&&(e[i]=r[i])}function r(t,e){var n={};return a(n,t),a(n,e),n}var i=/^(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)$/i,o=/(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)(T)?(\d\d)(:)?(\d\d)?(:)?(\d\d)?([.,]\d+)?($|Z|([+-])(\d\d)(:)?(\d\d)?)/i,s=String(1.5).charAt(1);function l(t){var e,n,a,r,i,l,d,u,c,f,h;return f=Object.prototype.toString.call(t),"[object Date]"===f?t:"[object String]"===f?(a=t.match(o),a?(h=parseInt(a[1],10),l=parseInt(a[3],10)-1,e=parseInt(a[5],10),n=parseInt(a[7],10),i=a[9]?parseInt(a[9],10):0,c=a[11]?parseInt(a[11],10):0,r=a[12]?1e3*parseFloat(s+a[12].slice(1)):0,u=Date.UTC(h,l,e,n,i,c,r),a[13]&&a[14]&&(d=60*a[15],a[17]&&(d+=parseInt(a[17],10)),d*="-"===a[14]?-1:1,u-=60*d*1e3),new Date(u)):void 0):void 0}function d(t){var e,n,a;for(e=0;e=6}function L(t){return"number"===typeof t}function Y(t,e,n){if(t=t||"",n.prefix&&(e<0&&(e*=-1,t+="-"),t+=n.prefix),n.thousands||n.decimal){e=u(e);var a=e.split(".");e=a[0],n.thousands&&(e=e.replace(/\B(?=(\d{3})+(?!\d))/g,n.thousands)),a.length>1&&(e+=(n.decimal||".")+a[1])}return t+e+(n.suffix||"")}function D(t,e,n){return n in e?e[n]:n in t.options?t.options[n]:null}function S(t){var e,n,a;for(e=0;e25?a=25:a<10&&(a=10),n.scales.xAxes[0].ticks.callback||(n.scales.xAxes[0].ticks.callback=function(t){return t=u(t),t.length>a?t.substring(0,a-2)+"...":t})},U=function(e,n,a){var r={prefix:e.options.prefix,suffix:e.options.suffix,thousands:e.options.thousands,decimal:e.options.decimal};if("pie"!==a){var i=n.scales.yAxes;"bar"===a&&(i=n.scales.xAxes),i[0].ticks.callback||(i[0].ticks.callback=function(t){return Y("",t,r)})}if(!n.tooltips.callbacks.label)if("scatter"===a)n.tooltips.callbacks.label=function(t,e){var n=e.datasets[t.datasetIndex].label||"";return n&&(n+=": "),n+"("+t.xLabel+", "+t.yLabel+")"};else if("bubble"===a)n.tooltips.callbacks.label=function(t,e){var n=e.datasets[t.datasetIndex].label||"";n&&(n+=": ");var a=e.datasets[t.datasetIndex].data[t.index];return n+"("+t.xLabel+", "+t.yLabel+", "+a.v+")"};else if("pie"===a)n.tooltips.callbacks.label=function(e,n){var a=n.labels[e.index],i=": ";return t(a)?(a=a.slice(),a[0]+=i):a+=i,Y(a,n.datasets[e.datasetIndex].data[e.index],r)};else{var o="bar"===a?"xLabel":"yLabel";n.tooltips.callbacks.label=function(t,e){var n=e.datasets[t.datasetIndex].label||"";return n&&(n+=": "),Y(n,t[o],r)}}},B=m(r(T,O),A,P,j,C,F,I,W),$=function(t,e,n){var a,i=[],o=[],s=t.options.colors||H,l=!0,d=!0,u=!0,h=!0,m=!0,p=!0,_=t.data,x=0;if("bubble"===n)for(var L=0;L<_.length;L++)for(var Y=_[L],S=0;Sx&&(x=Y.data[S][2]);var T,O,A,P,j,C=[],z=[];if("bar"===n||"column"===n||"number"!==t.xtype&&"bubble"!==t.xtype){var E,F,I=[];for(T=0;T<_.length;T++)for(A=_[T],O=0;O0){var tt=(N(Z)?f(Z):o[0]).getTime(),et=(N(K)?f(K):o[0]).getTime();for(T=1;Tet&&(et=nt)}var at,rt=(et-tt)/864e5;if(!e.scales.xAxes[0].time.unit)if(h||rt>3650?(e.scales.xAxes[0].time.unit="year",at=365):u||rt>300?(e.scales.xAxes[0].time.unit="month",at=30):l||rt>10?(e.scales.xAxes[0].time.unit="day",at=1):m||rt>.5?(e.scales.xAxes[0].time.displayFormats={hour:"MMM D, h a"},e.scales.xAxes[0].time.unit="hour",at=1/24):p&&(e.scales.xAxes[0].time.displayFormats={minute:"h:mm a"},e.scales.xAxes[0].time.unit="minute",at=1/24/60),at&&rt>0){var it=Math.ceil(rt/at/(t.element.offsetWidth/100));d&&1===at&&(it=7*Math.ceil(it/7)),e.scales.xAxes[0].time.unitStepSize=it}e.scales.xAxes[0].time.tooltipFormat||(l?e.scales.xAxes[0].time.tooltipFormat="ll":m?e.scales.xAxes[0].time.tooltipFormat="MMM D, h a":p&&(e.scales.xAxes[0].time.tooltipFormat="h:mm a"))}var ot={labels:o,datasets:i};return ot},J=function(t){this.name="chartjs",this.library=t};J.prototype.renderLineChart=function(t,e){var n={};!t.options.max&&S(t.data)&&(n.max=1);var a=B(t,r(n,t.options));U(t,a,e);var i=$(t,a,e||"line");"number"===t.xtype?(a.scales.xAxes[0].type="linear",a.scales.xAxes[0].position="bottom"):a.scales.xAxes[0].type="string"===t.xtype?"category":"time",this.drawChart(t,"line",i,a)},J.prototype.renderPieChart=function(t){var e=r({},T);t.options.donut&&(e.cutoutPercentage=50),"legend"in t.options&&A(e,t.options.legend),t.options.title&&P(e,t.options.title),e=r(e,t.options.library||{}),U(t,e,"pie");for(var n=[],a=[],i=0;i● '+Y(this.series.name+": ",this.y,a)+"
"})},rt=function(t){this.name="highcharts",this.library=t};rt.prototype.renderLineChart=function(t,e){e=e||"spline";var n={};"areaspline"===e&&(n={plotOptions:{areaspline:{stacking:"normal"},area:{stacking:"normal"},series:{marker:{enabled:!1}}}}),!1===t.options.curve&&("areaspline"===e?e="area":"spline"===e&&(e="line"));var a,r,i,o=nt(t,t.options,n);o.xAxis.type="string"===t.xtype?"category":"number"===t.xtype?"linear":"datetime",o.chart.type||(o.chart.type=e),at(t,o,e);var s=t.data;for(r=0;r0)return!1;return!0}function Nt(t,e){e.options.messages&&e.options.messages.empty&&Rt(e.data,t)?Ot(e.element,e.options.messages.empty):(Vt(t,e),e.options.download&&!e.__downloadAttached&&"chartjs"===e.adapter&&jt(e))}function Vt(t,n){var a,r,i,o;for(i="render"+t,o=n.options.adapter,Wt(),a=0;a0?new Error("No charting library found for "+t):new Error("No charting libraries found - be sure to include one before your charts")}var Ut=function(t,e){return t="number"===e?c(t):"datetime"===e?f(t):u(t),t},Bt=function(t,e){var n,a,r=[];for(a=0;a1&&i.call(o[0],n,function(){for(u=1;u=11?t:t+12:"entsambama"===e||"ebusuku"===e?0===t?0:t+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}});return e})},"53e2":function(t,e,n){var a=n("07e3"),r=n("241e"),i=n("5559")("IE_PROTO"),o=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),a(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?o:null}},"549b":function(t,e,n){"use strict";var a=n("d864"),r=n("63b6"),i=n("241e"),o=n("b0dc"),s=n("3702"),l=n("b447"),d=n("20fd"),u=n("7cd6");r(r.S+r.F*!n("4ee1")(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,r,c,f=i(t),h="function"==typeof this?this:Array,m=arguments.length,p=m>1?arguments[1]:void 0,_=void 0!==p,v=0,y=u(f);if(_&&(p=a(p,m>2?arguments[2]:void 0,2)),void 0==y||h==Array&&s(y))for(e=l(f.length),n=new h(e);e>v;v++)d(n,v,_?p(f[v],v):f[v]);else for(c=y.call(f),n=new h;!(r=c.next()).done;v++)d(n,v,_?o(c,p,[r.value,v],!0):r.value);return n.length=v,n}})},"54a1":function(t,e,n){n("6c1c"),n("1654"),t.exports=n("95d5")},"551c":function(t,e,n){"use strict";var a,r,i,o,s=n("2d00"),l=n("7726"),d=n("9b43"),u=n("23c6"),c=n("5ca1"),f=n("d3f4"),h=n("d8e8"),m=n("f605"),p=n("4a59"),_=n("ebd6"),v=n("1991").set,y=n("8079")(),g=n("a5b8"),b=n("9c80"),M=n("a25f"),k=n("bcaa"),w="Promise",x=l.TypeError,L=l.process,Y=L&&L.versions,D=Y&&Y.v8||"",S=l[w],T="process"==u(L),O=function(){},H=r=g.f,A=!!function(){try{var t=S.resolve(1),e=(t.constructor={})[n("2b4c")("species")]=function(t){t(O,O)};return(T||"function"==typeof PromiseRejectionEvent)&&t.then(O)instanceof e&&0!==D.indexOf("6.6")&&-1===M.indexOf("Chrome/66")}catch(a){}}(),P=function(t){var e;return!(!f(t)||"function"!=typeof(e=t.then))&&e},j=function(t,e){if(!t._n){t._n=!0;var n=t._c;y(function(){var a=t._v,r=1==t._s,i=0,o=function(e){var n,i,o,s=r?e.ok:e.fail,l=e.resolve,d=e.reject,u=e.domain;try{s?(r||(2==t._h&&E(t),t._h=1),!0===s?n=a:(u&&u.enter(),n=s(a),u&&(u.exit(),o=!0)),n===e.promise?d(x("Promise-chain cycle")):(i=P(n))?i.call(n,l,d):l(n)):d(a)}catch(c){u&&!o&&u.exit(),d(c)}};while(n.length>i)o(n[i++]);t._c=[],t._n=!1,e&&!t._h&&C(t)})}},C=function(t){v.call(l,function(){var e,n,a,r=t._v,i=z(t);if(i&&(e=b(function(){T?L.emit("unhandledRejection",r,t):(n=l.onunhandledrejection)?n({promise:t,reason:r}):(a=l.console)&&a.error&&a.error("Unhandled promise rejection",r)}),t._h=T||z(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},z=function(t){return 1!==t._h&&0===(t._a||t._c).length},E=function(t){v.call(l,function(){var e;T?L.emit("rejectionHandled",t):(e=l.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,e=e._w||e,e._v=t,e._s=2,e._a||(e._a=e._c.slice()),j(e,!0))},I=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw x("Promise can't be resolved itself");(e=P(t))?y(function(){var a={_w:n,_d:!1};try{e.call(t,d(I,a,1),d(F,a,1))}catch(r){F.call(a,r)}}):(n._v=t,n._s=1,j(n,!1))}catch(a){F.call({_w:n,_d:!1},a)}}};A||(S=function(t){m(this,S,w,"_h"),h(t),a.call(this);try{t(d(I,this,1),d(F,this,1))}catch(e){F.call(this,e)}},a=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},a.prototype=n("dcbc")(S.prototype,{then:function(t,e){var n=H(_(this,S));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=T?L.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&j(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new a;this.promise=t,this.resolve=d(I,t,1),this.reject=d(F,t,1)},g.f=H=function(t){return t===S||t===o?new i(t):r(t)}),c(c.G+c.W+c.F*!A,{Promise:S}),n("7f20")(S,w),n("7a56")(w),o=n("8378")[w],c(c.S+c.F*!A,w,{reject:function(t){var e=H(this),n=e.reject;return n(t),e.promise}}),c(c.S+c.F*(s||!A),w,{resolve:function(t){return k(s&&this===o?S:this,t)}}),c(c.S+c.F*!(A&&n("5cc5")(function(t){S.all(t)["catch"](O)})),w,{all:function(t){var e=this,n=H(e),a=n.resolve,r=n.reject,i=b(function(){var n=[],i=0,o=1;p(t,!1,function(t){var s=i++,l=!1;n.push(void 0),o++,e.resolve(t).then(function(t){l||(l=!0,n[s]=t,--o||a(n))},r)}),--o||a(n)});return i.e&&r(i.v),n.promise},race:function(t){var e=this,n=H(e),a=n.reject,r=b(function(){p(t,!1,function(t){e.resolve(t).then(n.resolve,a)})});return r.e&&a(r.v),n.promise}})},5537:function(t,e,n){var a=n("8378"),r=n("7726"),i="__core-js_shared__",o=r[i]||(r[i]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:a.version,mode:n("2d00")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},5559:function(t,e,n){var a=n("dbdb")("keys"),r=n("62a0");t.exports=function(t){return a[t]||(a[t]=r(t))}},"55c9":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,i=t.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}});return i})},"55dd":function(t,e,n){"use strict";var a=n("5ca1"),r=n("d8e8"),i=n("4bf8"),o=n("79e5"),s=[].sort,l=[1,2,3];a(a.P+a.F*(o(function(){l.sort(void 0)})||!o(function(){l.sort(null)})||!n("2f21")(s)),"Array",{sort:function(t){return void 0===t?s.call(i(this)):s.call(i(this),r(t))}})},"576c":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1===~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}});return e})},"57b8":function(t,e){function n(t,e){var n={};for(var a in"string"===typeof e&&(e=[].slice.call(arguments,1)),t)t.hasOwnProperty&&!t.hasOwnProperty(a)||-1===e.indexOf(a)&&(n[a]=t[a]);return n}t.exports=n},"584a":function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},"585a":function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(this,n("c8ba"))},"598a":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"],a=t.defineLocale("dv",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(t){return"މފ"===t},meridiem:function(t,e,n){return t<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:7,doy:12}});return a})},"5b14":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(t,e,n,a){var r=t;switch(n){case"s":return a||e?"néhány másodperc":"néhány másodperce";case"ss":return r+(a||e)?" másodperc":" másodperce";case"m":return"egy"+(a||e?" perc":" perce");case"mm":return r+(a||e?" perc":" perce");case"h":return"egy"+(a||e?" óra":" órája");case"hh":return r+(a||e?" óra":" órája");case"d":return"egy"+(a||e?" nap":" napja");case"dd":return r+(a||e?" nap":" napja");case"M":return"egy"+(a||e?" hónap":" hónapja");case"MM":return r+(a||e?" hónap":" hónapja");case"y":return"egy"+(a||e?" év":" éve");case"yy":return r+(a||e?" év":" éve")}return""}function a(t){return(t?"":"[múlt] ")+"["+e[this.day()]+"] LT[-kor]"}var r=t.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(t){return"u"===t.charAt(1).toLowerCase()},meridiem:function(t,e,n){return t<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return a.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return a.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return r})},"5b4e":function(t,e,n){var a=n("36c3"),r=n("b447"),i=n("0fc9");t.exports=function(t){return function(e,n,o){var s,l=a(e),d=r(l.length),u=i(o,d);if(t&&n!=n){while(d>u)if(s=l[u++],s!=s)return!0}else for(;d>u;u++)if((t||u in l)&&l[u]===n)return t||u||0;return!t&&-1}}},"5c3a":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"下午"===e||"晚上"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"周";default:return t}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}});return e})},"5ca1":function(t,e,n){var a=n("7726"),r=n("8378"),i=n("32e9"),o=n("2aba"),s=n("9b43"),l="prototype",d=function(t,e,n){var u,c,f,h,m=t&d.F,p=t&d.G,_=t&d.S,v=t&d.P,y=t&d.B,g=p?a:_?a[e]||(a[e]={}):(a[e]||{})[l],b=p?r:r[e]||(r[e]={}),M=b[l]||(b[l]={});for(u in p&&(n=e),n)c=!m&&g&&void 0!==g[u],f=(c?g:n)[u],h=y&&c?s(f,a):v&&"function"==typeof f?s(Function.call,f):f,g&&o(g,u,f,t&d.U),b[u]!=f&&i(b,u,h),v&&M[u]!=f&&(M[u]=f)};a.core=r,d.F=1,d.G=2,d.S=4,d.P=8,d.B=16,d.W=32,d.U=64,d.R=128,t.exports=d},"5cbb":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(t,e){return 12===t&&(t=0),"రాత్రి"===e?t<4?t:t+12:"ఉదయం"===e?t:"మధ్యాహ్నం"===e?t>=10?t:t+12:"సాయంత్రం"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"రాత్రి":t<10?"ఉదయం":t<17?"మధ్యాహ్నం":t<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}});return e})},"5cc5":function(t,e,n){var a=n("2b4c")("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}t.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],s=i[a]();s.next=function(){return{done:n=!0}},i[a]=function(){return s},t(i)}catch(o){}return n}},"5d58":function(t,e,n){t.exports=n("d8d6")},"5d73":function(t,e,n){t.exports=n("469f")},"5dbc":function(t,e,n){var a=n("d3f4"),r=n("8b97").set;t.exports=function(t,e,n){var i,o=e.constructor;return o!==n&&"function"==typeof o&&(i=o.prototype)!==n.prototype&&a(i)&&r&&r(t,i),t}},"5df3":function(t,e,n){"use strict";var a=n("02f4")(!0);n("01f9")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=a(e,n),this._i+=t.length,{value:t,done:!1})})},"5e2e":function(t,e,n){var a=n("28c9"),r=n("69d5"),i=n("b4c0"),o=n("fba5"),s=n("67ca");function l(t){var e=-1,n=null==t?0:t.length;this.clear();while(++e=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"يېرىم كېچە":a<900?"سەھەر":a<1130?"چۈشتىن بۇرۇن":a<1230?"چۈش":a<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"-كۈنى";case"w":case"W":return t+"-ھەپتە";default:return t}},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:7}});return e})},"613b":function(t,e,n){var a=n("5537")("keys"),r=n("ca5a");t.exports=function(t){return a[t]||(a[t]=r(t))}},"626a":function(t,e,n){var a=n("2d95");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},"62a0":function(t,e){var n=0,a=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+a).toString(36))}},"62e4":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"63b6":function(t,e,n){var a=n("e53d"),r=n("584a"),i=n("d864"),o=n("35e8"),s=n("07e3"),l="prototype",d=function(t,e,n){var u,c,f,h=t&d.F,m=t&d.G,p=t&d.S,_=t&d.P,v=t&d.B,y=t&d.W,g=m?r:r[e]||(r[e]={}),b=g[l],M=m?a:p?a[e]:(a[e]||{})[l];for(u in m&&(n=e),n)c=!h&&M&&void 0!==M[u],c&&s(g,u)||(f=c?M[u]:n[u],g[u]=m&&"function"!=typeof M[u]?n[u]:v&&c?i(f,a):y&&M[u]==f?function(t){var e=function(e,n,a){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,a)}return t.apply(this,arguments)};return e[l]=t[l],e}(f):_&&"function"==typeof f?i(Function.call,f):f,_&&((g.virtual||(g.virtual={}))[u]=f,t&d.R&&b&&!b[u]&&o(b,u,f)))};d.F=1,d.G=2,d.S=4,d.P=8,d.B=16,d.W=32,d.U=64,d.R=128,t.exports=d},"63c5":function(t,e,n){(function(t,a){var r;/*! https://mths.be/punycode v1.4.0 by @mathias */(function(i){e&&e.nodeType,t&&t.nodeType;var o="object"==typeof a&&a;o.global!==o&&o.window!==o&&o.self;var s,l=2147483647,d=36,u=1,c=26,f=38,h=700,m=72,p=128,_="-",v=/^xn--/,y=/[^\x20-\x7E]/,g=/[\x2E\u3002\uFF0E\uFF61]/g,b={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},M=d-u,k=Math.floor,w=String.fromCharCode;function x(t){throw new RangeError(b[t])}function L(t,e){var n=t.length,a=[];while(n--)a[n]=e(t[n]);return a}function Y(t,e){var n=t.split("@"),a="";n.length>1&&(a=n[0]+"@",t=n[1]),t=t.replace(g,".");var r=t.split("."),i=L(r,e).join(".");return a+i}function D(t){var e,n,a=[],r=0,i=t.length;while(r=55296&&e<=56319&&r65535&&(t-=65536,e+=w(t>>>10&1023|55296),t=56320|1023&t),e+=w(t),e}).join("")}function T(t){return t-48<10?t-22:t-65<26?t-65:t-97<26?t-97:d}function O(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function H(t,e,n){var a=0;for(t=n?k(t/h):t>>1,t+=k(t/e);t>M*c>>1;a+=d)t=k(t/M);return k(a+(M+1)*t/(t+f))}function A(t){var e,n,a,r,i,o,s,f,h,v,y=[],g=t.length,b=0,M=p,w=m;for(n=t.lastIndexOf(_),n<0&&(n=0),a=0;a=128&&x("not-basic"),y.push(t.charCodeAt(a));for(r=n>0?n+1:0;r=g&&x("invalid-input"),f=T(t.charCodeAt(r++)),(f>=d||f>k((l-b)/o))&&x("overflow"),b+=f*o,h=s<=w?u:s>=w+c?c:s-w,fk(l/v)&&x("overflow"),o*=v}e=y.length+1,w=H(b-i,e,0==i),k(b/e)>l-M&&x("overflow"),M+=k(b/e),b%=e,y.splice(b++,0,M)}return S(y)}function P(t){var e,n,a,r,i,o,s,f,h,v,y,g,b,M,L,Y=[];for(t=D(t),g=t.length,e=p,n=0,i=m,o=0;o=e&&yk((l-n)/b)&&x("overflow"),n+=(s-e)*b,e=s,o=0;ol&&x("overflow"),y==e){for(f=n,h=d;;h+=d){if(v=h<=i?u:h>=i+c?c:h-i,f=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return e})},"656b":function(t,e,n){var a=n("e2e4"),r=n("f4d6");function i(t,e){e=a(e,t);var n=0,i=e.length;while(null!=t&&n11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}});return e})},6718:function(t,e,n){var a=n("e53d"),r=n("584a"),i=n("b8e3"),o=n("ccb9"),s=n("d9f6").f;t.exports=function(t){var e=r.Symbol||(r.Symbol=i?{}:a.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:o.f(t)})}},6747:function(t,e){var n=Array.isArray;t.exports=n},6762:function(t,e,n){"use strict";var a=n("5ca1"),r=n("c366")(!0);a(a.P,"Array",{includes:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")("includes")},6784:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"],a=t.defineLocale("sd",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(t){return"شام"===t},meridiem:function(t,e,n){return t<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:4}});return a})},"67ab":function(t,e,n){var a=n("ca5a")("meta"),r=n("d3f4"),i=n("69a8"),o=n("86cc").f,s=0,l=Object.isExtensible||function(){return!0},d=!n("79e5")(function(){return l(Object.preventExtensions({}))}),u=function(t){o(t,a,{value:{i:"O"+ ++s,w:{}}})},c=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,a)){if(!l(t))return"F";if(!e)return"E";u(t)}return t[a].i},f=function(t,e){if(!i(t,a)){if(!l(t))return!0;if(!e)return!1;u(t)}return t[a].w},h=function(t){return d&&m.NEED&&l(t)&&!i(t,a)&&u(t),t},m=t.exports={KEY:a,NEED:!1,fastKey:c,getWeak:f,onFreeze:h}},"67bb":function(t,e,n){t.exports=n("f921")},"67ca":function(t,e,n){var a=n("cb5a");function r(t,e){var n=this.__data__,r=a(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}t.exports=r},6821:function(t,e,n){var a=n("626a"),r=n("be13");t.exports=function(t){return a(r(t))}},6887:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n){var a={mm:"munutenn",MM:"miz",dd:"devezh"};return t+" "+r(a[n],t)}function n(t){switch(a(t)){case 1:case 3:case 4:case 5:case 9:return t+" bloaz";default:return t+" vloaz"}}function a(t){return t>9?a(t%10):t}function r(t,e){return 2===e?i(t):t}function i(t){var e={m:"v",b:"v",d:"z"};return void 0===e[t.charAt(0)]?t:e[t.charAt(0)]+t.substring(1)}var o=t.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:e,h:"un eur",hh:"%d eur",d:"un devezh",dd:e,M:"ur miz",MM:e,y:"ur bloaz",yy:n},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(t){var e=1===t?"añ":"vet";return t+e},week:{dow:1,doy:4}});return o})},"688b":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e})},6909:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}});return e})},6981:function(t,e,n){ -/*! - * clipboard.js v2.0.4 - * https://zenorocha.github.io/clipboard.js - * - * Licensed MIT © Zeno Rocha - */ -!function(e,n){t.exports=n()}(0,function(){return function(t){var e={};function n(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(a,r,function(e){return t[e]}.bind(null,r));return a},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var n=0;n=100?100:null;return t+(e[t]||e[n]||e[a])},week:{dow:1,doy:7}});return n})},"6d83":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}});return e})},"6e98":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e})},"6f12":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e})},"6f50":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1===~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}});return e})},7118:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),a=t.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}});return a})},"71c1":function(t,e,n){var a=n("3a38"),r=n("25eb");t.exports=function(t){return function(e,n){var i,o,s=String(r(e)),l=a(n),d=s.length;return l<0||l>=d?t?"":void 0:(i=s.charCodeAt(l),i<55296||i>56319||l+1===d||(o=s.charCodeAt(l+1))<56320||o>57343?t?s.charAt(l):i:t?s.slice(l,l+2):o-56320+(i-55296<<10)+65536)}}},7333:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1===~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}});return e})},73334:function(t,e,n){"use strict";var a=n("9e1e"),r=n("0d58"),i=n("2621"),o=n("52a7"),s=n("4bf8"),l=n("626a"),d=Object.assign;t.exports=!d||n("79e5")(function(){var t={},e={},n=Symbol(),a="abcdefghijklmnopqrst";return t[n]=7,a.split("").forEach(function(t){e[t]=t}),7!=d({},t)[n]||Object.keys(d({},e)).join("")!=a})?function(t,e){var n=s(t),d=arguments.length,u=1,c=i.f,f=o.f;while(d>u){var h,m=l(arguments[u++]),p=c?r(m).concat(c(m)):r(m),_=p.length,v=0;while(_>v)h=p[v++],a&&!f.call(m,h)||(n[h]=m[h])}return n}:d},"74dc":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}});return e})},7514:function(t,e,n){"use strict";var a=n("5ca1"),r=n("0a49")(5),i="find",o=!0;i in[]&&Array(1)[i](function(){o=!1}),a(a.P+a.F*o,"Array",{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")(i)},"75fc":function(t,e,n){"use strict";var a=n("a745"),r=n.n(a);function i(t){if(r()(t)){for(var e=0,n=new Array(t.length);e1&&t<5}function r(t,e,n,r){var i=t+" ";switch(n){case"s":return e||r?"pár sekúnd":"pár sekundami";case"ss":return e||r?i+(a(t)?"sekundy":"sekúnd"):i+"sekundami";case"m":return e?"minúta":r?"minútu":"minútou";case"mm":return e||r?i+(a(t)?"minúty":"minút"):i+"minútami";case"h":return e?"hodina":r?"hodinu":"hodinou";case"hh":return e||r?i+(a(t)?"hodiny":"hodín"):i+"hodinami";case"d":return e||r?"deň":"dňom";case"dd":return e||r?i+(a(t)?"dni":"dní"):i+"dňami";case"M":return e||r?"mesiac":"mesiacom";case"MM":return e||r?i+(a(t)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return e||r?"rok":"rokom";case"yy":return e||r?i+(a(t)?"roky":"rokov"):i+"rokmi"}}var i=t.defineLocale("sk",{months:e,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return i})},"7c64":function(t,e,n){var a=n("e24b"),r=n("5e2e"),i=n("79bc");function o(){this.size=0,this.__data__={hash:new a,map:new(i||r),string:new a}}t.exports=o},"7cd6":function(t,e,n){var a=n("40c3"),r=n("5168")("iterator"),i=n("481b");t.exports=n("584a").getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||i[a(t)]}},"7d7b":function(t,e,n){var a=n("e4ae"),r=n("7cd6");t.exports=n("584a").getIterator=function(t){var e=r(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return a(e.call(t))}},"7e90":function(t,e,n){var a=n("d9f6"),r=n("e4ae"),i=n("c3a1");t.exports=n("8e60")?Object.defineProperties:function(t,e){r(t);var n,o=i(e),s=o.length,l=0;while(s>l)a.f(t,n=o[l++],e[n]);return t}},"7f20":function(t,e,n){var a=n("86cc").f,r=n("69a8"),i=n("2b4c")("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},"7f33":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}});return e})},"7f7f":function(t,e,n){var a=n("86cc").f,r=Function.prototype,i=/^\s*function ([^ (]*)/,o="name";o in r||n("9e1e")&&a(r,o,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},"7fae":function(t,e,n){var a=Array.prototype.slice,r=n("3260"),i=n("997d"),o=t.exports=function(t,e,n){return n||(n={}),t===e||(t instanceof Date&&e instanceof Date?t.getTime()===e.getTime():!t||!e||"object"!=typeof t&&"object"!=typeof e?n.strict?t===e:t==e:d(t,e,n))};function s(t){return null===t||void 0===t}function l(t){return!(!t||"object"!==typeof t||"number"!==typeof t.length)&&("function"===typeof t.copy&&"function"===typeof t.slice&&!(t.length>0&&"number"!==typeof t[0]))}function d(t,e,n){var d,u;if(s(t)||s(e))return!1;if(t.prototype!==e.prototype)return!1;if(i(t))return!!i(e)&&(t=a.call(t),e=a.call(e),o(t,e,n));if(l(t)){if(!l(e))return!1;if(t.length!==e.length)return!1;for(d=0;d=0;d--)if(c[d]!=f[d])return!1;for(d=c.length-1;d>=0;d--)if(u=c[d],!o(t[u],e[u],n))return!1;return typeof t===typeof e}},8079:function(t,e,n){var a=n("7726"),r=n("1991").set,i=a.MutationObserver||a.WebKitMutationObserver,o=a.process,s=a.Promise,l="process"==n("2d95")(o);t.exports=function(){var t,e,n,d=function(){var a,r;l&&(a=o.domain)&&a.exit();while(t){r=t.fn,t=t.next;try{r()}catch(i){throw t?n():e=void 0,i}}e=void 0,a&&a.enter()};if(l)n=function(){o.nextTick(d)};else if(!i||a.navigator&&a.navigator.standalone)if(s&&s.resolve){var u=s.resolve(void 0);n=function(){u.then(d)}}else n=function(){r.call(a,d)};else{var c=!0,f=document.createTextNode("");new i(d).observe(f,{characterData:!0}),n=function(){f.data=c=!c}}return function(a){var r={fn:a,next:void 0};e&&(e.next=r),t||(t=r,n()),e=r}}},8155:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"nekaj sekund":"nekaj sekundami";case"ss":return r+=1===t?e?"sekundo":"sekundi":2===t?e||a?"sekundi":"sekundah":t<5?e||a?"sekunde":"sekundah":"sekund",r;case"m":return e?"ena minuta":"eno minuto";case"mm":return r+=1===t?e?"minuta":"minuto":2===t?e||a?"minuti":"minutama":t<5?e||a?"minute":"minutami":e||a?"minut":"minutami",r;case"h":return e?"ena ura":"eno uro";case"hh":return r+=1===t?e?"ura":"uro":2===t?e||a?"uri":"urama":t<5?e||a?"ure":"urami":e||a?"ur":"urami",r;case"d":return e||a?"en dan":"enim dnem";case"dd":return r+=1===t?e||a?"dan":"dnem":2===t?e||a?"dni":"dnevoma":e||a?"dni":"dnevi",r;case"M":return e||a?"en mesec":"enim mesecem";case"MM":return r+=1===t?e||a?"mesec":"mesecem":2===t?e||a?"meseca":"mesecema":t<5?e||a?"mesece":"meseci":e||a?"mesecev":"meseci",r;case"y":return e||a?"eno leto":"enim letom";case"yy":return r+=1===t?e||a?"leto":"letom":2===t?e||a?"leti":"letoma":t<5?e||a?"leta":"leti":e||a?"let":"leti",r}}var n=t.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n})},"81e9":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",e[7],e[8],e[9]];function a(t,e,n,a){var i="";switch(n){case"s":return a?"muutaman sekunnin":"muutama sekunti";case"ss":return a?"sekunnin":"sekuntia";case"m":return a?"minuutin":"minuutti";case"mm":i=a?"minuutin":"minuuttia";break;case"h":return a?"tunnin":"tunti";case"hh":i=a?"tunnin":"tuntia";break;case"d":return a?"päivän":"päivä";case"dd":i=a?"päivän":"päivää";break;case"M":return a?"kuukauden":"kuukausi";case"MM":i=a?"kuukauden":"kuukautta";break;case"y":return a?"vuoden":"vuosi";case"yy":i=a?"vuoden":"vuotta";break}return i=r(t,a)+" "+i,i}function r(t,a){return t<10?a?n[t]:e[t]:t}var i=t.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return i})},8230:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},a=t.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:0,doy:6}});return a})},8378:function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},"83a1":function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},8436:function(t,e){t.exports=function(){}},"84aa":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}});return e})},"84f2":function(t,e){t.exports={}},"85f2":function(t,e,n){t.exports=n("454f")},8615:function(t,e,n){var a=n("5ca1"),r=n("504c")(!1);a(a.S,"Object",{values:function(t){return r(t)}})},8689:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"},a=t.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(t){return t.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}});return a})},"86cc":function(t,e,n){var a=n("cb7c"),r=n("c69a"),i=n("6a99"),o=Object.defineProperty;e.f=n("9e1e")?Object.defineProperty:function(t,e,n){if(a(t),e=i(e,!0),a(n),r)try{return o(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},8840:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(t){return 0===t.indexOf("un")?"n"+t:"en "+t},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e})},"898b":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,i=t.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return i})},"8b97":function(t,e,n){var a=n("d3f4"),r=n("cb7c"),i=function(t,e){if(r(t),!a(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,a){try{a=n("9b43")(Function.call,n("11e9").f(Object.prototype,"__proto__").set,2),a(t,[]),e=!(t instanceof Array)}catch(r){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:a(t,n),t}}({},!1):void 0),check:i}},"8d47":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}var n=t.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(t,e){return t?"string"===typeof e&&/D/.test(e.substring(0,e.indexOf("MMMM")))?this._monthsGenitiveEl[t.month()]:this._monthsNominativeEl[t.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(t,e,n){return t>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(t){return"μ"===(t+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(t,n){var a=this._calendarEl[t],r=n&&n.hours();return e(a)&&(a=a.apply(n)),a.replace("{}",r%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}});return n})},"8d57":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function a(t){return t%10<5&&t%10>1&&~~(t/10)%10!==1}function r(t,e,n){var r=t+" ";switch(n){case"ss":return r+(a(t)?"sekundy":"sekund");case"m":return e?"minuta":"minutę";case"mm":return r+(a(t)?"minuty":"minut");case"h":return e?"godzina":"godzinę";case"hh":return r+(a(t)?"godziny":"godzin");case"MM":return r+(a(t)?"miesiące":"miesięcy");case"yy":return r+(a(t)?"lata":"lat")}}var i=t.defineLocale("pl",{months:function(t,a){return t?""===a?"("+n[t.month()]+"|"+e[t.month()]+")":/D MMMM/.test(a)?n[t.month()]:e[t.month()]:e},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:r,m:r,mm:r,h:r,hh:r,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:r,y:"rok",yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return i})},"8df4":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"},a=t.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(t){return/بعد از ظهر/.test(t)},meridiem:function(t,e,n){return t<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(t){return t.replace(/[۰-۹]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}});return a})},"8e60":function(t,e,n){t.exports=!n("294c")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"8e6e":function(t,e,n){var a=n("5ca1"),r=n("990b"),i=n("6821"),o=n("11e9"),s=n("f1ae");a(a.S,"Object",{getOwnPropertyDescriptors:function(t){var e,n,a=i(t),l=o.f,d=r(a),u={},c=0;while(d.length>c)n=l(a,e=d[c++]),void 0!==n&&s(u,e,n);return u}})},"8e73":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},a=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},i=function(t){return function(e,n,i,o){var s=a(e),l=r[t][a(e)];return 2===s&&(l=l[n?0:1]),l.replace(/%d/i,e)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],s=t.defineLocale("ar",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:6,doy:12}});return s})},"8f60":function(t,e,n){"use strict";var a=n("a159"),r=n("aebd"),i=n("45f2"),o={};n("35e8")(o,n("5168")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=a(o,{next:r(1,n)}),i(t,e+" Iterator")}},9003:function(t,e,n){var a=n("6b4c");t.exports=Array.isArray||function(t){return"Array"==a(t)}},9043:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},a=t.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(t){return t.replace(/[১২৩৪৫৬৭৮৯০]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(t,e){return 12===t&&(t=0),"রাত"===e&&t>=4||"দুপুর"===e&&t<5||"বিকাল"===e?t+12:t},meridiem:function(t,e,n){return t<4?"রাত":t<10?"সকাল":t<17?"দুপুর":t<20?"বিকাল":"রাত"},week:{dow:0,doy:6}});return a})},9093:function(t,e,n){var a=n("ce10"),r=n("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return a(t,r)}},"90ea":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}});return e})},9138:function(t,e,n){t.exports=n("35e8")},"93ed":function(t,e,n){var a=n("4245");function r(t){var e=a(this,t)["delete"](t);return this.size-=e?1:0,e}t.exports=r},9520:function(t,e,n){var a=n("3729"),r=n("1a8c"),i="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",l="[object Proxy]";function d(t){if(!r(t))return!1;var e=a(t);return e==o||e==s||e==i||e==l}t.exports=d},"957c":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e){var n=t.split("_");return e%10===1&&e%100!==11?n[0]:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?n[1]:n[2]}function n(t,n,a){var r={ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===a?n?"минута":"минуту":t+" "+e(r[a],+t)}var a=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],r=t.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:a,longMonthsParse:a,shortMonthsParse:a,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:n,m:n,mm:n,h:"час",hh:n,d:"день",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(t){return/^(дня|вечера)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночи":t<12?"утра":t<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":return t+"-й";case"D":return t+"-го";case"w":case"W":return t+"-я";default:return t}},week:{dow:1,doy:4}});return r})},"958b":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n,a){switch(n){case"s":return e?"хэдхэн секунд":"хэдхэн секундын";case"ss":return t+(e?" секунд":" секундын");case"m":case"mm":return t+(e?" минут":" минутын");case"h":case"hh":return t+(e?" цаг":" цагийн");case"d":case"dd":return t+(e?" өдөр":" өдрийн");case"M":case"MM":return t+(e?" сар":" сарын");case"y":case"yy":return t+(e?" жил":" жилийн");default:return t}}var n=t.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(t){return"ҮХ"===t},meridiem:function(t,e,n){return t<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+" өдөр";default:return t}}});return n})},"95d5":function(t,e,n){var a=n("40c3"),r=n("5168")("iterator"),i=n("481b");t.exports=n("584a").isIterable=function(t){var e=Object(t);return void 0!==e[r]||"@@iterator"in e||i.hasOwnProperty(a(e))}},9609:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"},n=t.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(t){var n=t%10,a=t>=100?100:null;return t+(e[t]||e[n]||e[a])},week:{dow:1,doy:7}});return n})},9638:function(t,e){function n(t,e){return t===e||t!==t&&e!==e}t.exports=n},"972c":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n){var a={ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},r=" ";return(t%100>=20||t>=100&&t%100===0)&&(r=" de "),t+r+a[n]}var n=t.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:e,m:"un minut",mm:e,h:"o oră",hh:e,d:"o zi",dd:e,M:"o lună",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}});return n})},9797:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(t){var e=t,n="",a=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return e>20?n=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(n=a[e]),t+n},week:{dow:1,doy:4}});return e})},"990b":function(t,e,n){var a=n("9093"),r=n("2621"),i=n("cb7c"),o=n("7726").Reflect;t.exports=o&&o.ownKeys||function(t){var e=a.f(i(t)),n=r.f;return n?e.concat(n(t)):e}},"997d":function(t,e){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function a(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function r(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Object.prototype.hasOwnProperty.call(t,"callee")&&!Object.prototype.propertyIsEnumerable.call(t,"callee")||!1}e=t.exports=n?a:r,e.supported=a,e.unsupported=r},"9aa9":function(t,e){e.f=Object.getOwnPropertySymbols},"9b02":function(t,e,n){var a=n("656b");function r(t,e,n){var r=null==t?void 0:a(t,e);return void 0===r?n:r}t.exports=r},"9b43":function(t,e,n){var a=n("d8e8");t.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},"9c6c":function(t,e,n){var a=n("2b4c")("unscopables"),r=Array.prototype;void 0==r[a]&&n("32e9")(r,a,{}),t.exports=function(t){r[a][t]=!0}},"9c80":function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},"9def":function(t,e,n){var a=n("4588"),r=Math.min;t.exports=function(t){return t>0?r(a(t),9007199254740991):0}},"9e1e":function(t,e,n){t.exports=!n("79e5")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"9e69":function(t,e,n){var a=n("2b3e"),r=a.Symbol;t.exports=r},"9f26":function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(t,e){switch(e){case"D":return t+(1===t?"er":"");default:case"M":case"Q":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}});return e})},a159:function(t,e,n){var a=n("e4ae"),r=n("7e90"),i=n("1691"),o=n("5559")("IE_PROTO"),s=function(){},l="prototype",d=function(){var t,e=n("1ec9")("iframe"),a=i.length,r="<",o=">";e.style.display="none",n("32fc").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(r+"script"+o+"document.F=Object"+r+"/script"+o),t.close(),d=t.F;while(a--)delete d[l][i[a]];return d()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[l]=a(t),n=new s,s[l]=null,n[o]=t):n=d(),void 0===e?n:r(n,e)}},a25f:function(t,e,n){var a=n("7726"),r=a.navigator;t.exports=r&&r.userAgent||""},a356:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}});return e})},a481:function(t,e,n){"use strict";var a=n("cb7c"),r=n("4bf8"),i=n("9def"),o=n("4588"),s=n("0390"),l=n("5f1b"),d=Math.max,u=Math.min,c=Math.floor,f=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g,m=function(t){return void 0===t?t:String(t)};n("214f")("replace",2,function(t,e,n,p){return[function(a,r){var i=t(this),o=void 0==a?void 0:a[e];return void 0!==o?o.call(a,i,r):n.call(String(i),a,r)},function(t,e){var r=p(n,t,this,e);if(r.done)return r.value;var c=a(t),f=String(this),h="function"===typeof e;h||(e=String(e));var v=c.global;if(v){var y=c.unicode;c.lastIndex=0}var g=[];while(1){var b=l(c,f);if(null===b)break;if(g.push(b),!v)break;var M=String(b[0]);""===M&&(c.lastIndex=s(f,i(c.lastIndex),y))}for(var k="",w=0,x=0;x=w&&(k+=f.slice(w,Y)+H,w=Y+L.length)}return k+f.slice(w)}];function _(t,e,a,i,o,s){var l=a+t.length,d=i.length,u=h;return void 0!==o&&(o=r(o),u=f),n.call(s,u,function(n,r){var s;switch(r.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,a);case"'":return e.slice(l);case"<":s=o[r.slice(1,-1)];break;default:var u=+r;if(0===u)return n;if(u>d){var f=c(u/10);return 0===f?n:f<=d?void 0===i[f-1]?r.charAt(1):i[f-1]+r.charAt(1):n}s=i[u-1]}return void 0===s?"":s})}})},a524:function(t,e,n){var a=n("4245");function r(t){return a(this,t).has(t)}t.exports=r},a5b8:function(t,e,n){"use strict";var a=n("d8e8");function r(t){var e,n;this.promise=new t(function(t,a){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=a}),this.resolve=a(e),this.reject=a(n)}t.exports.f=function(t){return new r(t)}},a745:function(t,e,n){t.exports=n("f410")},a7fa:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});return e})},aae3:function(t,e,n){var a=n("d3f4"),r=n("2d95"),i=n("2b4c")("match");t.exports=function(t){var e;return a(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==r(t))}},ac6a:function(t,e,n){for(var a=n("cadf"),r=n("0d58"),i=n("2aba"),o=n("7726"),s=n("32e9"),l=n("84f2"),d=n("2b4c"),u=d("iterator"),c=d("toStringTag"),f=l.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},m=r(h),p=0;p=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},c=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=(e.children||[]).map(p.bind(null,t)),i=Object.keys(e.attributes||{}).reduce(function(t,n){var a=e.attributes[n];switch(n){case"class":t["class"]=h(a);break;case"style":t["style"]=f(a);break;default:t.attrs[n]=a}return t},{class:{},style:{},attrs:{}}),o=a.class,s=void 0===o?{}:o,l=a.style,c=void 0===l?{}:l,_=a.attrs,v=void 0===_?{}:_,y=u(a,["class","style","attrs"]);return"string"===typeof e?e:t(e.tag,d({class:m(i.class,s),style:d({},i.style,c),attrs:d({},i.attrs,v)},y,{props:n}),r)}var _=!1;try{_=!0}catch(w){}function v(){var t;!_&&console&&"function"===typeof console.error&&(t=console).error.apply(t,arguments)}function y(t,e){return Array.isArray(e)&&e.length>0||!Array.isArray(e)&&e?l({},t,e):{}}function g(t){var e,n=(e={"fa-spin":t.spin,"fa-pulse":t.pulse,"fa-fw":t.fixedWidth,"fa-border":t.border,"fa-li":t.listItem,"fa-flip-horizontal":"horizontal"===t.flip||"both"===t.flip,"fa-flip-vertical":"vertical"===t.flip||"both"===t.flip},l(e,"fa-"+t.size,null!==t.size),l(e,"fa-rotate-"+t.rotation,null!==t.rotation),l(e,"fa-pull-"+t.pull,null!==t.pull),e);return Object.keys(n).map(function(t){return n[t]?t:null}).filter(function(t){return t})}function b(t,e){var n=0===(t||"").length?[]:[t];return n.concat(e).join(" ")}function M(t){return null===t?null:"object"===("undefined"===typeof t?"undefined":s(t))&&t.prefix&&t.iconName?t:Array.isArray(t)&&2===t.length?{prefix:t[0],iconName:t[1]}:"string"===typeof t?{prefix:"fas",iconName:t}:void 0}var k={name:"FontAwesomeIcon",functional:!0,props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:String,default:null,validator:function(t){return["horizontal","vertical","both"].indexOf(t)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(t){return["right","left"].indexOf(t)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(t){return[90,180,270].indexOf(parseInt(t,10))>-1}},size:{type:String,default:null,validator:function(t){return["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(t)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null}},render:function(t,e){var n=e.props,r=n.icon,i=n.mask,o=n.symbol,s=n.title,l=M(r),u=y("classes",g(n)),c=y("transform","string"===typeof n.transform?a["d"].transform(n.transform):n.transform),f=y("mask",M(i)),h=Object(a["b"])(l,d({},u,c,f,{symbol:o,title:s}));if(!h)return v("Could not find one or more icon(s)",l,f);var m=h.abstract,_=p.bind(null,t);return _(m[0],{},e.data)}};Boolean,String,Number,String,Object}).call(this,n("c8ba"))},ada2:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e){var n=t.split("_");return e%10===1&&e%100!==11?n[0]:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?n[1]:n[2]}function n(t,n,a){var r={ss:n?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:n?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:n?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===a?n?"хвилина":"хвилину":"h"===a?n?"година":"годину":t+" "+e(r[a],+t)}function a(t,e){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};if(!0===t)return n["nominative"].slice(1,7).concat(n["nominative"].slice(0,1));if(!t)return n["nominative"];var a=/(\[[ВвУу]\]) ?dddd/.test(e)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(e)?"genitive":"nominative";return n[a][t.day()]}function r(t){return function(){return t+"о"+(11===this.hours()?"б":"")+"] LT"}}var i=t.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:a,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:r("[Сьогодні "),nextDay:r("[Завтра "),lastDay:r("[Вчора "),nextWeek:r("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return r("[Минулої] dddd [").call(this);case 1:case 2:case 4:return r("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:n,m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(t){return/^(дня|вечора)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночі":t<12?"ранку":t<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t+"-й";case"D":return t+"-го";default:return t}},week:{dow:1,doy:7}});return i})},aebd:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},afab:function(t,e,n){var a,r; -/*! - * URI.js - Mutating URLs - * Second Level Domain (SLD) Support - * - * Version: 1.19.1 - * - * Author: Rodney Rehm - * Web: http://medialize.github.io/URI.js/ - * - * Licensed under - * MIT License http://www.opensource.org/licenses/mit-license - * - */ -/*! - * URI.js - Mutating URLs - * Second Level Domain (SLD) Support - * - * Version: 1.19.1 - * - * Author: Rodney Rehm - * Web: http://medialize.github.io/URI.js/ - * - * Licensed under - * MIT License http://www.opensource.org/licenses/mit-license - * - */ -(function(i,o){"use strict";t.exports?t.exports=o():(a=o,r="function"===typeof a?a.call(e,n,e,t):a,void 0===r||(t.exports=r))})(0,function(t){"use strict";var e=t&&t.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(t){var e=t.lastIndexOf(".");if(e<=0||e>=t.length-1)return!1;var a=t.lastIndexOf(".",e-1);if(a<=0||a>=e-1)return!1;var r=n.list[t.slice(e+1)];return!!r&&r.indexOf(" "+t.slice(a+1,e)+" ")>=0},is:function(t){var e=t.lastIndexOf(".");if(e<=0||e>=t.length-1)return!1;var a=t.lastIndexOf(".",e-1);if(a>=0)return!1;var r=n.list[t.slice(e+1)];return!!r&&r.indexOf(" "+t.slice(0,e)+" ")>=0},get:function(t){var e=t.lastIndexOf(".");if(e<=0||e>=t.length-1)return null;var a=t.lastIndexOf(".",e-1);if(a<=0||a>=e-1)return null;var r=n.list[t.slice(e+1)];return r?r.indexOf(" "+t.slice(a+1,e)+" ")<0?null:t.slice(a+1):null},noConflict:function(){return t.SecondLevelDomains===this&&(t.SecondLevelDomains=e),this}};return n})},b0b4:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("85f2"),r=n.n(a);function i(t,e){for(var n=0;n0?r(a(t),9007199254740991):0}},b469:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}var n=t.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n})},b4c0:function(t,e,n){var a=n("cb5a");function r(t){var e=this.__data__,n=a(e,t);return n<0?void 0:e[n][1]}t.exports=r},b53d:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}});return e})},b540:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(t,e){return 12===t&&(t=0),"enjing"===e?t:"siyang"===e?t>=11?t:t+12:"sonten"===e||"ndalu"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"enjing":t<15?"siyang":t<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}});return e})},b702:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a={prefix:"far",iconName:"circle",icon:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"]}},b84c:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e})},b8e3:function(t,e){t.exports=!0},b97c:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(t,e,n){return n?e%10===1&&e%100!==11?t[2]:t[3]:e%10===1&&e%100!==11?t[0]:t[1]}function a(t,a,r){return t+" "+n(e[r],t,a)}function r(t,a,r){return n(e[r],t,a)}function i(t,e){return e?"dažas sekundes":"dažām sekundēm"}var o=t.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:i,ss:a,m:r,mm:a,h:r,hh:a,d:r,dd:a,M:r,MM:a,y:r,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return o})},bb71:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}var n=t.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n})},bbc0:function(t,e,n){var a=n("6044"),r="__lodash_hash_undefined__",i=Object.prototype,o=i.hasOwnProperty;function s(t){var e=this.__data__;if(a){var n=e[t];return n===r?void 0:n}return o.call(e,t)?e[t]:void 0}t.exports=s},bcaa:function(t,e,n){var a=n("cb7c"),r=n("d3f4"),i=n("a5b8");t.exports=function(t,e){if(a(t),r(e)&&e.constructor===t)return e;var n=i.f(t),o=n.resolve;return o(e),n.promise}},bd86:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("85f2"),r=n.n(a);function i(t,e,n){return e in t?r()(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},be13:function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},bf0b:function(t,e,n){var a=n("355d"),r=n("aebd"),i=n("36c3"),o=n("1bc3"),s=n("07e3"),l=n("794b"),d=Object.getOwnPropertyDescriptor;e.f=n("8e60")?d:function(t,e){if(t=i(t),e=o(e,!0),l)try{return d(t,e)}catch(n){}if(s(t,e))return r(!a.f.call(t,e),t[e])}},c074:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n.d(e,"b",function(){return r}),n.d(e,"c",function(){return i}),n.d(e,"d",function(){return o}),n.d(e,"e",function(){return s}),n.d(e,"f",function(){return l}),n.d(e,"g",function(){return d}),n.d(e,"h",function(){return u}),n.d(e,"i",function(){return c}),n.d(e,"j",function(){return f}),n.d(e,"k",function(){return h}),n.d(e,"l",function(){return m}),n.d(e,"m",function(){return p}),n.d(e,"n",function(){return _}),n.d(e,"o",function(){return v}),n.d(e,"p",function(){return y}),n.d(e,"q",function(){return g}),n.d(e,"r",function(){return b}),n.d(e,"s",function(){return M}),n.d(e,"t",function(){return k}),n.d(e,"u",function(){return w});var a={prefix:"fas",iconName:"angle-down",icon:[320,512,[],"f107","M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"]},r={prefix:"fas",iconName:"angle-up",icon:[320,512,[],"f106","M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"]},i={prefix:"fas",iconName:"arrow-circle-down",icon:[512,512,[],"f0ab","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"]},o={prefix:"fas",iconName:"ban",icon:[512,512,[],"f05e","M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"]},s={prefix:"fas",iconName:"bars",icon:[448,512,[],"f0c9","M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"]},l={prefix:"fas",iconName:"chart-bar",icon:[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},d={prefix:"fas",iconName:"circle",icon:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"]},u={prefix:"fas",iconName:"clock",icon:[512,512,[],"f017","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"]},c={prefix:"fas",iconName:"cog",icon:[512,512,[],"f013","M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},f={prefix:"fas",iconName:"exclamation-circle",icon:[512,512,[],"f06a","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},h={prefix:"fas",iconName:"exclamation-triangle",icon:[576,512,[],"f071","M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},m={prefix:"fas",iconName:"indent",icon:[448,512,[],"f03c","M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},p={prefix:"fas",iconName:"link",icon:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"]},_={prefix:"fas",iconName:"list-ol",icon:[512,512,[],"f0cb","M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"]},v={prefix:"fas",iconName:"lock",icon:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"]},y={prefix:"fas",iconName:"microchip",icon:[512,512,[],"f2db","M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"]},g={prefix:"fas",iconName:"outdent",icon:[448,512,[],"f03b","M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},b={prefix:"fas",iconName:"percent",icon:[448,512,[],"f295","M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"]},M={prefix:"fas",iconName:"search",icon:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"]},k={prefix:"fas",iconName:"times-circle",icon:[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"]},w={prefix:"fas",iconName:"user",icon:[448,512,[],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]}},c109:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}});return e})},c1df:function(t,e,n){(function(t){(function(e,n){t.exports=n()})(0,function(){"use strict";var e,a;function r(){return e.apply(null,arguments)}function i(t){e=t}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function s(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function l(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function d(t){return void 0===t}function u(t){return"number"===typeof t||"[object Number]"===Object.prototype.toString.call(t)}function c(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function f(t,e){var n,a=[];for(n=0;n>>0,a=0;a0)for(n=0;n0?"future":"past"];return P(n)?n(e):n.replace(/%s/i,e)}var q={};function X(t,e){var n=t.toLowerCase();q[n]=q[n+"s"]=q[e]=t}function Q(t){return"string"===typeof t?q[t]||q[t.toLowerCase()]:void 0}function Z(t){var e,n,a={};for(n in t)h(t,n)&&(e=Q(n),e&&(a[e]=t[n]));return a}var K={};function tt(t,e){K[t]=e}function et(t){var e=[];for(var n in t)e.push({unit:n,priority:K[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}function nt(t,e,n){var a=""+Math.abs(t),r=e-a.length,i=t>=0;return(i?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+a}var at=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,rt=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,it={},ot={};function st(t,e,n,a){var r=a;"string"===typeof a&&(r=function(){return this[a]()}),t&&(ot[t]=r),e&&(ot[e[0]]=function(){return nt(r.apply(this,arguments),e[1],e[2])}),n&&(ot[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function lt(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function dt(t){var e,n,a=t.match(at);for(e=0,n=a.length;e=0&&rt.test(t))t=t.replace(rt,a),rt.lastIndex=0,n-=1;return t}var ft=/\d/,ht=/\d\d/,mt=/\d{3}/,pt=/\d{4}/,_t=/[+-]?\d{6}/,vt=/\d\d?/,yt=/\d\d\d\d?/,gt=/\d\d\d\d\d\d?/,bt=/\d{1,3}/,Mt=/\d{1,4}/,kt=/[+-]?\d{1,6}/,wt=/\d+/,xt=/[+-]?\d+/,Lt=/Z|[+-]\d\d:?\d\d/gi,Yt=/Z|[+-]\d\d(?::?\d\d)?/gi,Dt=/[+-]?\d+(\.\d{1,3})?/,St=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Tt={};function Ot(t,e,n){Tt[t]=P(e)?e:function(t,a){return t&&n?n:e}}function Ht(t,e){return h(Tt,t)?Tt[t](e._strict,e._locale):new RegExp(At(t))}function At(t){return Pt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,a,r){return e||n||a||r}))}function Pt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var jt={};function Ct(t,e){var n,a=e;for("string"===typeof t&&(t=[t]),u(e)&&(a=function(t,n){n[e]=Y(t)}),n=0;n68?1900:2e3)};var qt,Xt=Zt("FullYear",!0);function Qt(){return Gt(this.year())}function Zt(t,e){return function(n){return null!=n?(te(this,t,n),r.updateOffset(this,e),this):Kt(this,t)}}function Kt(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function te(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&Gt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),re(n,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](n))}function ee(t){return t=Q(t),P(this[t])?this[t]():this}function ne(t,e){if("object"===typeof t){t=Z(t);for(var n=et(t),a=0;a=0?(s=new Date(t+400,e,n,a,r,i,o),isFinite(s.getFullYear())&&s.setFullYear(t)):s=new Date(t,e,n,a,r,i,o),s}function Me(t){var e;if(t<100&&t>=0){var n=Array.prototype.slice.call(arguments);n[0]=t+400,e=new Date(Date.UTC.apply(null,n)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function ke(t,e,n){var a=7+e-n,r=(7+Me(t,0,a).getUTCDay()-e)%7;return-r+a-1}function we(t,e,n,a,r){var i,o,s=(7+n-a)%7,l=ke(t,a,r),d=1+7*(e-1)+s+l;return d<=0?(i=t-1,o=Jt(i)+d):d>Jt(t)?(i=t+1,o=d-Jt(t)):(i=t,o=d),{year:i,dayOfYear:o}}function xe(t,e,n){var a,r,i=ke(t.year(),e,n),o=Math.floor((t.dayOfYear()-i-1)/7)+1;return o<1?(r=t.year()-1,a=o+Le(r,e,n)):o>Le(t.year(),e,n)?(a=o-Le(t.year(),e,n),r=t.year()+1):(r=t.year(),a=o),{week:a,year:r}}function Le(t,e,n){var a=ke(t,e,n),r=ke(t+1,e,n);return(Jt(t)-a+r)/7}function Ye(t){return xe(t,this._week.dow,this._week.doy).week}st("w",["ww",2],"wo","week"),st("W",["WW",2],"Wo","isoWeek"),X("week","w"),X("isoWeek","W"),tt("week",5),tt("isoWeek",5),Ot("w",vt),Ot("ww",vt,ht),Ot("W",vt),Ot("WW",vt,ht),zt(["w","ww","W","WW"],function(t,e,n,a){e[a.substr(0,1)]=Y(t)});var De={dow:0,doy:6};function Se(){return this._week.dow}function Te(){return this._week.doy}function Oe(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function He(t){var e=xe(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Ae(t,e){return"string"!==typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"===typeof t?t:null):parseInt(t,10)}function Pe(t,e){return"string"===typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function je(t,e){return t.slice(e,7).concat(t.slice(0,e))}st("d",0,"do","day"),st("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),st("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),st("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),st("e",0,0,"weekday"),st("E",0,0,"isoWeekday"),X("day","d"),X("weekday","e"),X("isoWeekday","E"),tt("day",11),tt("weekday",11),tt("isoWeekday",11),Ot("d",vt),Ot("e",vt),Ot("E",vt),Ot("dd",function(t,e){return e.weekdaysMinRegex(t)}),Ot("ddd",function(t,e){return e.weekdaysShortRegex(t)}),Ot("dddd",function(t,e){return e.weekdaysRegex(t)}),zt(["dd","ddd","dddd"],function(t,e,n,a){var r=n._locale.weekdaysParse(t,a,n._strict);null!=r?e.d=r:v(n).invalidWeekday=t}),zt(["d","e","E"],function(t,e,n,a){e[a]=Y(t)});var Ce="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");function ze(t,e){var n=o(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?je(n,this._week.dow):t?n[t.day()]:n}var Ee="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");function Fe(t){return!0===t?je(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort}var Ie="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function We(t){return!0===t?je(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Re(t,e,n){var a,r,i,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;a<7;++a)i=p([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===e?(r=qt.call(this._weekdaysParse,o),-1!==r?r:null):"ddd"===e?(r=qt.call(this._shortWeekdaysParse,o),-1!==r?r:null):(r=qt.call(this._minWeekdaysParse,o),-1!==r?r:null):"dddd"===e?(r=qt.call(this._weekdaysParse,o),-1!==r?r:(r=qt.call(this._shortWeekdaysParse,o),-1!==r?r:(r=qt.call(this._minWeekdaysParse,o),-1!==r?r:null))):"ddd"===e?(r=qt.call(this._shortWeekdaysParse,o),-1!==r?r:(r=qt.call(this._weekdaysParse,o),-1!==r?r:(r=qt.call(this._minWeekdaysParse,o),-1!==r?r:null))):(r=qt.call(this._minWeekdaysParse,o),-1!==r?r:(r=qt.call(this._weekdaysParse,o),-1!==r?r:(r=qt.call(this._shortWeekdaysParse,o),-1!==r?r:null)))}function Ne(t,e,n){var a,r,i;if(this._weekdaysParseExact)return Re.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){if(r=p([2e3,1]).day(a),n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[a]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[a]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[a]||(i="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[a]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}}function Ve(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Ae(t,this.localeData()),this.add(t-e,"d")):e}function Ue(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Be(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pe(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}var $e=St;function Je(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ze.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=$e),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}var Ge=St;function qe(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ze.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ge),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}var Xe=St;function Qe(t){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Ze.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Xe),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ze(){function t(t,e){return e.length-t.length}var e,n,a,r,i,o=[],s=[],l=[],d=[];for(e=0;e<7;e++)n=p([2e3,1]).day(e),a=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),i=this.weekdays(n,""),o.push(a),s.push(r),l.push(i),d.push(a),d.push(r),d.push(i);for(o.sort(t),s.sort(t),l.sort(t),d.sort(t),e=0;e<7;e++)s[e]=Pt(s[e]),l[e]=Pt(l[e]),d[e]=Pt(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Ke(){return this.hours()%12||12}function tn(){return this.hours()||24}function en(t,e){st(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function nn(t,e){return e._meridiemParse}function an(t){return"p"===(t+"").toLowerCase().charAt(0)}st("H",["HH",2],0,"hour"),st("h",["hh",2],0,Ke),st("k",["kk",2],0,tn),st("hmm",0,0,function(){return""+Ke.apply(this)+nt(this.minutes(),2)}),st("hmmss",0,0,function(){return""+Ke.apply(this)+nt(this.minutes(),2)+nt(this.seconds(),2)}),st("Hmm",0,0,function(){return""+this.hours()+nt(this.minutes(),2)}),st("Hmmss",0,0,function(){return""+this.hours()+nt(this.minutes(),2)+nt(this.seconds(),2)}),en("a",!0),en("A",!1),X("hour","h"),tt("hour",13),Ot("a",nn),Ot("A",nn),Ot("H",vt),Ot("h",vt),Ot("k",vt),Ot("HH",vt,ht),Ot("hh",vt,ht),Ot("kk",vt,ht),Ot("hmm",yt),Ot("hmmss",gt),Ot("Hmm",yt),Ot("Hmmss",gt),Ct(["H","HH"],Rt),Ct(["k","kk"],function(t,e,n){var a=Y(t);e[Rt]=24===a?0:a}),Ct(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),Ct(["h","hh"],function(t,e,n){e[Rt]=Y(t),v(n).bigHour=!0}),Ct("hmm",function(t,e,n){var a=t.length-2;e[Rt]=Y(t.substr(0,a)),e[Nt]=Y(t.substr(a)),v(n).bigHour=!0}),Ct("hmmss",function(t,e,n){var a=t.length-4,r=t.length-2;e[Rt]=Y(t.substr(0,a)),e[Nt]=Y(t.substr(a,2)),e[Vt]=Y(t.substr(r)),v(n).bigHour=!0}),Ct("Hmm",function(t,e,n){var a=t.length-2;e[Rt]=Y(t.substr(0,a)),e[Nt]=Y(t.substr(a))}),Ct("Hmmss",function(t,e,n){var a=t.length-4,r=t.length-2;e[Rt]=Y(t.substr(0,a)),e[Nt]=Y(t.substr(a,2)),e[Vt]=Y(t.substr(r))});var rn=/[ap]\.?m?\.?/i;function on(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}var sn,ln=Zt("Hours",!0),dn={calendar:E,longDateFormat:I,invalidDate:R,ordinal:V,dayOfMonthOrdinalParse:U,relativeTime:$,months:oe,monthsShort:le,week:De,weekdays:Ce,weekdaysMin:Ie,weekdaysShort:Ee,meridiemParse:rn},un={},cn={};function fn(t){return t?t.toLowerCase().replace("_","-"):t}function hn(t){var e,n,a,r,i=0;while(i0){if(a=mn(r.slice(0,e).join("-")),a)return a;if(n&&n.length>=e&&D(r,n,!0)>=e-1)break;e--}i++}return sn}function mn(e){var a=null;if(!un[e]&&"undefined"!==typeof t&&t&&t.exports)try{a=sn._abbr;n("4678")("./"+e),pn(a)}catch(r){}return un[e]}function pn(t,e){var n;return t&&(n=d(e)?yn(t):_n(t,e),n?sn=n:"undefined"!==typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),sn._abbr}function _n(t,e){if(null!==e){var n,a=dn;if(e.abbr=t,null!=un[t])A("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),a=un[t]._config;else if(null!=e.parentLocale)if(null!=un[e.parentLocale])a=un[e.parentLocale]._config;else{if(n=mn(e.parentLocale),null==n)return cn[e.parentLocale]||(cn[e.parentLocale]=[]),cn[e.parentLocale].push({name:t,config:e}),null;a=n._config}return un[t]=new z(C(a,e)),cn[t]&&cn[t].forEach(function(t){_n(t.name,t.config)}),pn(t),un[t]}return delete un[t],null}function vn(t,e){if(null!=e){var n,a,r=dn;a=mn(t),null!=a&&(r=a._config),e=C(r,e),n=new z(e),n.parentLocale=un[t],un[t]=n,pn(t)}else null!=un[t]&&(null!=un[t].parentLocale?un[t]=un[t].parentLocale:null!=un[t]&&delete un[t]);return un[t]}function yn(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return sn;if(!o(t)){if(e=mn(t),e)return e;t=[t]}return hn(t)}function gn(){return O(un)}function bn(t){var e,n=t._a;return n&&-2===v(t).overflow&&(e=n[It]<0||n[It]>11?It:n[Wt]<1||n[Wt]>re(n[Ft],n[It])?Wt:n[Rt]<0||n[Rt]>24||24===n[Rt]&&(0!==n[Nt]||0!==n[Vt]||0!==n[Ut])?Rt:n[Nt]<0||n[Nt]>59?Nt:n[Vt]<0||n[Vt]>59?Vt:n[Ut]<0||n[Ut]>999?Ut:-1,v(t)._overflowDayOfYear&&(eWt)&&(e=Wt),v(t)._overflowWeeks&&-1===e&&(e=Bt),v(t)._overflowWeekday&&-1===e&&(e=$t),v(t).overflow=e),t}function Mn(t,e,n){return null!=t?t:null!=e?e:n}function kn(t){var e=new Date(r.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function wn(t){var e,n,a,r,i,o=[];if(!t._d){for(a=kn(t),t._w&&null==t._a[Wt]&&null==t._a[It]&&xn(t),null!=t._dayOfYear&&(i=Mn(t._a[Ft],a[Ft]),(t._dayOfYear>Jt(i)||0===t._dayOfYear)&&(v(t)._overflowDayOfYear=!0),n=Me(i,0,t._dayOfYear),t._a[It]=n.getUTCMonth(),t._a[Wt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=a[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Rt]&&0===t._a[Nt]&&0===t._a[Vt]&&0===t._a[Ut]&&(t._nextDay=!0,t._a[Rt]=0),t._d=(t._useUTC?Me:be).apply(null,o),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Rt]=24),t._w&&"undefined"!==typeof t._w.d&&t._w.d!==r&&(v(t).weekdayMismatch=!0)}}function xn(t){var e,n,a,r,i,o,s,l;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)i=1,o=4,n=Mn(e.GG,t._a[Ft],xe(qn(),1,4).year),a=Mn(e.W,1),r=Mn(e.E,1),(r<1||r>7)&&(l=!0);else{i=t._locale._week.dow,o=t._locale._week.doy;var d=xe(qn(),i,o);n=Mn(e.gg,t._a[Ft],d.year),a=Mn(e.w,d.week),null!=e.d?(r=e.d,(r<0||r>6)&&(l=!0)):null!=e.e?(r=e.e+i,(e.e<0||e.e>6)&&(l=!0)):r=i}a<1||a>Le(n,i,o)?v(t)._overflowWeeks=!0:null!=l?v(t)._overflowWeekday=!0:(s=we(n,a,r,i,o),t._a[Ft]=s.year,t._dayOfYear=s.dayOfYear)}var Ln=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Yn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Dn=/Z|[+-]\d\d(?::?\d\d)?/,Sn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Tn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],On=/^\/?Date\((\-?\d+)/i;function Hn(t){var e,n,a,r,i,o,s=t._i,l=Ln.exec(s)||Yn.exec(s);if(l){for(v(t).iso=!0,e=0,n=Sn.length;e0&&v(t).unusedInput.push(o),s=s.slice(s.indexOf(n)+n.length),d+=n.length),ot[i]?(n?v(t).empty=!1:v(t).unusedTokens.push(i),Et(i,n,t)):t._strict&&!n&&v(t).unusedTokens.push(i);v(t).charsLeftOver=l-d,s.length>0&&v(t).unusedInput.push(s),t._a[Rt]<=12&&!0===v(t).bigHour&&t._a[Rt]>0&&(v(t).bigHour=void 0),v(t).parsedDateParts=t._a.slice(0),v(t).meridiem=t._meridiem,t._a[Rt]=Nn(t._locale,t._a[Rt],t._meridiem),wn(t),bn(t)}else In(t);else Hn(t)}function Nn(t,e,n){var a;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(a=t.isPM(n),a&&e<12&&(e+=12),a||12!==e||(e=0),e):e}function Vn(t){var e,n,a,r,i;if(0===t._f.length)return v(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis?this:t:g()});function Zn(t,e){var n,a;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return qn();for(n=e[0],a=1;athis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ma(){if(!d(this._isDSTShifted))return this._isDSTShifted;var t={};if(M(t,this),t=$n(t),t._a){var e=t._isUTC?p(t._a):qn(t._a);this._isDSTShifted=this.isValid()&&D(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function ka(){return!!this.isValid()&&!this._isUTC}function wa(){return!!this.isValid()&&this._isUTC}function xa(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}r.updateOffset=function(){};var La=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ya=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Da(t,e){var n,a,r,i=t,o=null;return sa(t)?i={ms:t._milliseconds,d:t._days,M:t._months}:u(t)?(i={},e?i[e]=t:i.milliseconds=t):(o=La.exec(t))?(n="-"===o[1]?-1:1,i={y:0,d:Y(o[Wt])*n,h:Y(o[Rt])*n,m:Y(o[Nt])*n,s:Y(o[Vt])*n,ms:Y(la(1e3*o[Ut]))*n}):(o=Ya.exec(t))?(n="-"===o[1]?-1:1,i={y:Sa(o[2],n),M:Sa(o[3],n),w:Sa(o[4],n),d:Sa(o[5],n),h:Sa(o[6],n),m:Sa(o[7],n),s:Sa(o[8],n)}):null==i?i={}:"object"===typeof i&&("from"in i||"to"in i)&&(r=Oa(qn(i.from),qn(i.to)),i={},i.ms=r.milliseconds,i.M=r.months),a=new oa(i),sa(t)&&h(t,"_locale")&&(a._locale=t._locale),a}function Sa(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Ta(t,e){var n={};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Oa(t,e){var n;return t.isValid()&&e.isValid()?(e=fa(e,t),t.isBefore(e)?n=Ta(t,e):(n=Ta(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Ha(t,e){return function(n,a){var r,i;return null===a||isNaN(+a)||(A(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=a,a=i),n="string"===typeof n?+n:n,r=Da(n,a),Aa(this,r,t),this}}function Aa(t,e,n,a){var i=e._milliseconds,o=la(e._days),s=la(e._months);t.isValid()&&(a=null==a||a,s&&fe(t,Kt(t,"Month")+s*n),o&&te(t,"Date",Kt(t,"Date")+o*n),i&&t._d.setTime(t._d.valueOf()+i*n),a&&r.updateOffset(t,o||s))}Da.fn=oa.prototype,Da.invalid=ia;var Pa=Ha(1,"add"),ja=Ha(-1,"subtract");function Ca(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function za(t,e){var n=t||qn(),a=fa(n,this).startOf("day"),i=r.calendarFormat(this,a)||"sameElse",o=e&&(P(e[i])?e[i].call(this,n):e[i]);return this.format(o||this.localeData().calendar(i,this,qn(n)))}function Ea(){return new w(this)}function Fa(t,e){var n=x(t)?t:qn(t);return!(!this.isValid()||!n.isValid())&&(e=Q(e)||"millisecond","millisecond"===e?this.valueOf()>n.valueOf():n.valueOf()9999?ut(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):P(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",ut(n,"Z")):ut(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function Ga(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',a=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r="-MM-DD[T]HH:mm:ss.SSS",i=e+'[")]';return this.format(n+a+r+i)}function qa(t){t||(t=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var e=ut(this,t);return this.localeData().postformat(e)}function Xa(t,e){return this.isValid()&&(x(t)&&t.isValid()||qn(t).isValid())?Da({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Qa(t){return this.from(qn(),t)}function Za(t,e){return this.isValid()&&(x(t)&&t.isValid()||qn(t).isValid())?Da({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Ka(t){return this.to(qn(),t)}function tr(t){var e;return void 0===t?this._locale._abbr:(e=yn(t),null!=e&&(this._locale=e),this)}r.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",r.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var er=T("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});function nr(){return this._locale}var ar=1e3,rr=60*ar,ir=60*rr,or=3506328*ir;function sr(t,e){return(t%e+e)%e}function lr(t,e,n){return t<100&&t>=0?new Date(t+400,e,n)-or:new Date(t,e,n).valueOf()}function dr(t,e,n){return t<100&&t>=0?Date.UTC(t+400,e,n)-or:Date.UTC(t,e,n)}function ur(t){var e;if(t=Q(t),void 0===t||"millisecond"===t||!this.isValid())return this;var n=this._isUTC?dr:lr;switch(t){case"year":e=n(this.year(),0,1);break;case"quarter":e=n(this.year(),this.month()-this.month()%3,1);break;case"month":e=n(this.year(),this.month(),1);break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=n(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=sr(e+(this._isUTC?0:this.utcOffset()*rr),ir);break;case"minute":e=this._d.valueOf(),e-=sr(e,rr);break;case"second":e=this._d.valueOf(),e-=sr(e,ar);break}return this._d.setTime(e),r.updateOffset(this,!0),this}function cr(t){var e;if(t=Q(t),void 0===t||"millisecond"===t||!this.isValid())return this;var n=this._isUTC?dr:lr;switch(t){case"year":e=n(this.year()+1,0,1)-1;break;case"quarter":e=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=n(this.year(),this.month()+1,1)-1;break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=ir-sr(e+(this._isUTC?0:this.utcOffset()*rr),ir)-1;break;case"minute":e=this._d.valueOf(),e+=rr-sr(e,rr)-1;break;case"second":e=this._d.valueOf(),e+=ar-sr(e,ar)-1;break}return this._d.setTime(e),r.updateOffset(this,!0),this}function fr(){return this._d.valueOf()-6e4*(this._offset||0)}function hr(){return Math.floor(this.valueOf()/1e3)}function mr(){return new Date(this.valueOf())}function pr(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function _r(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function vr(){return this.isValid()?this.toISOString():null}function yr(){return y(this)}function gr(){return m({},v(this))}function br(){return v(this).overflow}function Mr(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function kr(t,e){st(0,[t,t.length],0,e)}function wr(t){return Dr.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function xr(t){return Dr.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Lr(){return Le(this.year(),1,4)}function Yr(){var t=this.localeData()._week;return Le(this.year(),t.dow,t.doy)}function Dr(t,e,n,a,r){var i;return null==t?xe(this,a,r).year:(i=Le(t,a,r),e>i&&(e=i),Sr.call(this,t,e,n,a,r))}function Sr(t,e,n,a,r){var i=we(t,e,n,a,r),o=Me(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function Tr(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}st(0,["gg",2],0,function(){return this.weekYear()%100}),st(0,["GG",2],0,function(){return this.isoWeekYear()%100}),kr("gggg","weekYear"),kr("ggggg","weekYear"),kr("GGGG","isoWeekYear"),kr("GGGGG","isoWeekYear"),X("weekYear","gg"),X("isoWeekYear","GG"),tt("weekYear",1),tt("isoWeekYear",1),Ot("G",xt),Ot("g",xt),Ot("GG",vt,ht),Ot("gg",vt,ht),Ot("GGGG",Mt,pt),Ot("gggg",Mt,pt),Ot("GGGGG",kt,_t),Ot("ggggg",kt,_t),zt(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,a){e[a.substr(0,2)]=Y(t)}),zt(["gg","GG"],function(t,e,n,a){e[a]=r.parseTwoDigitYear(t)}),st("Q",0,"Qo","quarter"),X("quarter","Q"),tt("quarter",7),Ot("Q",ft),Ct("Q",function(t,e){e[It]=3*(Y(t)-1)}),st("D",["DD",2],"Do","date"),X("date","D"),tt("date",9),Ot("D",vt),Ot("DD",vt,ht),Ot("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),Ct(["D","DD"],Wt),Ct("Do",function(t,e){e[Wt]=Y(t.match(vt)[0])});var Or=Zt("Date",!0);function Hr(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}st("DDD",["DDDD",3],"DDDo","dayOfYear"),X("dayOfYear","DDD"),tt("dayOfYear",4),Ot("DDD",bt),Ot("DDDD",mt),Ct(["DDD","DDDD"],function(t,e,n){n._dayOfYear=Y(t)}),st("m",["mm",2],0,"minute"),X("minute","m"),tt("minute",14),Ot("m",vt),Ot("mm",vt,ht),Ct(["m","mm"],Nt);var Ar=Zt("Minutes",!1);st("s",["ss",2],0,"second"),X("second","s"),tt("second",15),Ot("s",vt),Ot("ss",vt,ht),Ct(["s","ss"],Vt);var Pr,jr=Zt("Seconds",!1);for(st("S",0,0,function(){return~~(this.millisecond()/100)}),st(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),st(0,["SSS",3],0,"millisecond"),st(0,["SSSS",4],0,function(){return 10*this.millisecond()}),st(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),st(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),st(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),st(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),st(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),X("millisecond","ms"),tt("millisecond",16),Ot("S",bt,ft),Ot("SS",bt,ht),Ot("SSS",bt,mt),Pr="SSSS";Pr.length<=9;Pr+="S")Ot(Pr,wt);function Cr(t,e){e[Ut]=Y(1e3*("0."+t))}for(Pr="S";Pr.length<=9;Pr+="S")Ct(Pr,Cr);var zr=Zt("Milliseconds",!1);function Er(){return this._isUTC?"UTC":""}function Fr(){return this._isUTC?"Coordinated Universal Time":""}st("z",0,0,"zoneAbbr"),st("zz",0,0,"zoneName");var Ir=w.prototype;function Wr(t){return qn(1e3*t)}function Rr(){return qn.apply(null,arguments).parseZone()}function Nr(t){return t}Ir.add=Pa,Ir.calendar=za,Ir.clone=Ea,Ir.diff=Ua,Ir.endOf=cr,Ir.format=qa,Ir.from=Xa,Ir.fromNow=Qa,Ir.to=Za,Ir.toNow=Ka,Ir.get=ee,Ir.invalidAt=br,Ir.isAfter=Fa,Ir.isBefore=Ia,Ir.isBetween=Wa,Ir.isSame=Ra,Ir.isSameOrAfter=Na,Ir.isSameOrBefore=Va,Ir.isValid=yr,Ir.lang=er,Ir.locale=tr,Ir.localeData=nr,Ir.max=Qn,Ir.min=Xn,Ir.parsingFlags=gr,Ir.set=ne,Ir.startOf=ur,Ir.subtract=ja,Ir.toArray=pr,Ir.toObject=_r,Ir.toDate=mr,Ir.toISOString=Ja,Ir.inspect=Ga,Ir.toJSON=vr,Ir.toString=$a,Ir.unix=hr,Ir.valueOf=fr,Ir.creationData=Mr,Ir.year=Xt,Ir.isLeapYear=Qt,Ir.weekYear=wr,Ir.isoWeekYear=xr,Ir.quarter=Ir.quarters=Tr,Ir.month=he,Ir.daysInMonth=me,Ir.week=Ir.weeks=Oe,Ir.isoWeek=Ir.isoWeeks=He,Ir.weeksInYear=Yr,Ir.isoWeeksInYear=Lr,Ir.date=Or,Ir.day=Ir.days=Ve,Ir.weekday=Ue,Ir.isoWeekday=Be,Ir.dayOfYear=Hr,Ir.hour=Ir.hours=ln,Ir.minute=Ir.minutes=Ar,Ir.second=Ir.seconds=jr,Ir.millisecond=Ir.milliseconds=zr,Ir.utcOffset=ma,Ir.utc=_a,Ir.local=va,Ir.parseZone=ya,Ir.hasAlignedHourOffset=ga,Ir.isDST=ba,Ir.isLocal=ka,Ir.isUtcOffset=wa,Ir.isUtc=xa,Ir.isUTC=xa,Ir.zoneAbbr=Er,Ir.zoneName=Fr,Ir.dates=T("dates accessor is deprecated. Use date instead.",Or),Ir.months=T("months accessor is deprecated. Use month instead",he),Ir.years=T("years accessor is deprecated. Use year instead",Xt),Ir.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",pa),Ir.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ma);var Vr=z.prototype;function Ur(t,e,n,a){var r=yn(),i=p().set(a,e);return r[n](i,t)}function Br(t,e,n){if(u(t)&&(e=t,t=void 0),t=t||"",null!=e)return Ur(t,e,n,"month");var a,r=[];for(a=0;a<12;a++)r[a]=Ur(t,a,n,"month");return r}function $r(t,e,n,a){"boolean"===typeof t?(u(e)&&(n=e,e=void 0),e=e||""):(e=t,n=e,t=!1,u(e)&&(n=e,e=void 0),e=e||"");var r,i=yn(),o=t?i._week.dow:0;if(null!=n)return Ur(e,(n+o)%7,a,"day");var s=[];for(r=0;r<7;r++)s[r]=Ur(e,(r+o)%7,a,"day");return s}function Jr(t,e){return Br(t,e,"months")}function Gr(t,e){return Br(t,e,"monthsShort")}function qr(t,e,n){return $r(t,e,n,"weekdays")}function Xr(t,e,n){return $r(t,e,n,"weekdaysShort")}function Qr(t,e,n){return $r(t,e,n,"weekdaysMin")}Vr.calendar=F,Vr.longDateFormat=W,Vr.invalidDate=N,Vr.ordinal=B,Vr.preparse=Nr,Vr.postformat=Nr,Vr.relativeTime=J,Vr.pastFuture=G,Vr.set=j,Vr.months=se,Vr.monthsShort=de,Vr.monthsParse=ce,Vr.monthsRegex=ye,Vr.monthsShortRegex=_e,Vr.week=Ye,Vr.firstDayOfYear=Te,Vr.firstDayOfWeek=Se,Vr.weekdays=ze,Vr.weekdaysMin=We,Vr.weekdaysShort=Fe,Vr.weekdaysParse=Ne,Vr.weekdaysRegex=Je,Vr.weekdaysShortRegex=qe,Vr.weekdaysMinRegex=Qe,Vr.isPM=an,Vr.meridiem=on,pn("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===Y(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),r.lang=T("moment.lang is deprecated. Use moment.locale instead.",pn),r.langData=T("moment.langData is deprecated. Use moment.localeData instead.",yn);var Zr=Math.abs;function Kr(){var t=this._data;return this._milliseconds=Zr(this._milliseconds),this._days=Zr(this._days),this._months=Zr(this._months),t.milliseconds=Zr(t.milliseconds),t.seconds=Zr(t.seconds),t.minutes=Zr(t.minutes),t.hours=Zr(t.hours),t.months=Zr(t.months),t.years=Zr(t.years),this}function ti(t,e,n,a){var r=Da(e,n);return t._milliseconds+=a*r._milliseconds,t._days+=a*r._days,t._months+=a*r._months,t._bubble()}function ei(t,e){return ti(this,t,e,1)}function ni(t,e){return ti(this,t,e,-1)}function ai(t){return t<0?Math.floor(t):Math.ceil(t)}function ri(){var t,e,n,a,r,i=this._milliseconds,o=this._days,s=this._months,l=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*ai(oi(s)+o),o=0,s=0),l.milliseconds=i%1e3,t=L(i/1e3),l.seconds=t%60,e=L(t/60),l.minutes=e%60,n=L(e/60),l.hours=n%24,o+=L(n/24),r=L(ii(o)),s+=r,o-=ai(oi(r)),a=L(s/12),s%=12,l.days=o,l.months=s,l.years=a,this}function ii(t){return 4800*t/146097}function oi(t){return 146097*t/4800}function si(t){if(!this.isValid())return NaN;var e,n,a=this._milliseconds;if(t=Q(t),"month"===t||"quarter"===t||"year"===t)switch(e=this._days+a/864e5,n=this._months+ii(e),t){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(e=this._days+Math.round(oi(this._months)),t){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hour":return 24*e+a/36e5;case"minute":return 1440*e+a/6e4;case"second":return 86400*e+a/1e3;case"millisecond":return Math.floor(864e5*e)+a;default:throw new Error("Unknown unit "+t)}}function li(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*Y(this._months/12):NaN}function di(t){return function(){return this.as(t)}}var ui=di("ms"),ci=di("s"),fi=di("m"),hi=di("h"),mi=di("d"),pi=di("w"),_i=di("M"),vi=di("Q"),yi=di("y");function gi(){return Da(this)}function bi(t){return t=Q(t),this.isValid()?this[t+"s"]():NaN}function Mi(t){return function(){return this.isValid()?this._data[t]:NaN}}var ki=Mi("milliseconds"),wi=Mi("seconds"),xi=Mi("minutes"),Li=Mi("hours"),Yi=Mi("days"),Di=Mi("months"),Si=Mi("years");function Ti(){return L(this.days()/7)}var Oi=Math.round,Hi={ss:44,s:45,m:45,h:22,d:26,M:11};function Ai(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}function Pi(t,e,n){var a=Da(t).abs(),r=Oi(a.as("s")),i=Oi(a.as("m")),o=Oi(a.as("h")),s=Oi(a.as("d")),l=Oi(a.as("M")),d=Oi(a.as("y")),u=r<=Hi.ss&&["s",r]||r0,u[4]=n,Ai.apply(null,u)}function ji(t){return void 0===t?Oi:"function"===typeof t&&(Oi=t,!0)}function Ci(t,e){return void 0!==Hi[t]&&(void 0===e?Hi[t]:(Hi[t]=e,"s"===t&&(Hi.ss=e-1),!0))}function zi(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=Pi(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}var Ei=Math.abs;function Fi(t){return(t>0)-(t<0)||+t}function Ii(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,a=Ei(this._milliseconds)/1e3,r=Ei(this._days),i=Ei(this._months);t=L(a/60),e=L(t/60),a%=60,t%=60,n=L(i/12),i%=12;var o=n,s=i,l=r,d=e,u=t,c=a?a.toFixed(3).replace(/\.?0+$/,""):"",f=this.asSeconds();if(!f)return"P0D";var h=f<0?"-":"",m=Fi(this._months)!==Fi(f)?"-":"",p=Fi(this._days)!==Fi(f)?"-":"",_=Fi(this._milliseconds)!==Fi(f)?"-":"";return h+"P"+(o?m+o+"Y":"")+(s?m+s+"M":"")+(l?p+l+"D":"")+(d||u||c?"T":"")+(d?_+d+"H":"")+(u?_+u+"M":"")+(c?_+c+"S":"")}var Wi=oa.prototype;return Wi.isValid=ra,Wi.abs=Kr,Wi.add=ei,Wi.subtract=ni,Wi.as=si,Wi.asMilliseconds=ui,Wi.asSeconds=ci,Wi.asMinutes=fi,Wi.asHours=hi,Wi.asDays=mi,Wi.asWeeks=pi,Wi.asMonths=_i,Wi.asQuarters=vi,Wi.asYears=yi,Wi.valueOf=li,Wi._bubble=ri,Wi.clone=gi,Wi.get=bi,Wi.milliseconds=ki,Wi.seconds=wi,Wi.minutes=xi,Wi.hours=Li,Wi.days=Yi,Wi.weeks=Ti,Wi.months=Di,Wi.years=Si,Wi.humanize=zi,Wi.toISOString=Ii,Wi.toString=Ii,Wi.toJSON=Ii,Wi.locale=tr,Wi.localeData=nr,Wi.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ii),Wi.lang=er,st("X",0,0,"unix"),st("x",0,0,"valueOf"),Ot("x",xt),Ot("X",Dt),Ct("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),Ct("x",function(t,e,n){n._d=new Date(Y(t))}),r.version="2.24.0",i(qn),r.fn=Ir,r.min=Kn,r.max=ta,r.now=ea,r.utc=p,r.unix=Wr,r.months=Jr,r.isDate=c,r.locale=pn,r.invalid=g,r.duration=Da,r.isMoment=x,r.weekdays=qr,r.parseZone=Rr,r.localeData=yn,r.isDuration=sa,r.monthsShort=Gr,r.weekdaysMin=Qr,r.defineLocale=_n,r.updateLocale=vn,r.locales=gn,r.weekdaysShort=Xr,r.normalizeUnits=Q,r.relativeTimeRounding=ji,r.relativeTimeThreshold=Ci,r.calendarFormat=Ca,r.prototype=Ir,r.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},r})}).call(this,n("62e4")(t))},c207:function(t,e){},c26b:function(t,e,n){"use strict";var a=n("86cc").f,r=n("2aeb"),i=n("dcbc"),o=n("9b43"),s=n("f605"),l=n("4a59"),d=n("01f9"),u=n("d53b"),c=n("7a56"),f=n("9e1e"),h=n("67ab").fastKey,m=n("b39a"),p=f?"_s":"size",_=function(t,e){var n,a=h(e);if("F"!==a)return t._i[a];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,d){var u=t(function(t,a){s(t,u,e,"_i"),t._t=e,t._i=r(null),t._f=void 0,t._l=void 0,t[p]=0,void 0!=a&&l(a,n,t[d],t)});return i(u.prototype,{clear:function(){for(var t=m(this,e),n=t._i,a=t._f;a;a=a.n)a.r=!0,a.p&&(a.p=a.p.n=void 0),delete n[a.i];t._f=t._l=void 0,t[p]=0},delete:function(t){var n=m(this,e),a=_(n,t);if(a){var r=a.n,i=a.p;delete n._i[a.i],a.r=!0,i&&(i.n=r),r&&(r.p=i),n._f==a&&(n._f=r),n._l==a&&(n._l=i),n[p]--}return!!a},forEach:function(t){m(this,e);var n,a=o(t,arguments.length>1?arguments[1]:void 0,3);while(n=n?n.n:this._f){a(n.v,n.k,this);while(n&&n.r)n=n.p}},has:function(t){return!!_(m(this,e),t)}}),f&&a(u.prototype,"size",{get:function(){return m(this,e)[p]}}),u},def:function(t,e,n){var a,r,i=_(t,e);return i?i.v=n:(t._l=i={i:r=h(e,!0),k:e,v:n,p:a=t._l,n:void 0,r:!1},t._f||(t._f=i),a&&(a.n=i),t[p]++,"F"!==r&&(t._i[r]=i)),t},getEntry:_,setStrong:function(t,e,n){d(t,e,function(t,n){this._t=m(t,e),this._k=n,this._l=void 0},function(){var t=this,e=t._k,n=t._l;while(n&&n.r)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?u(0,"keys"==e?n.k:"values"==e?n.v:[n.k,n.v]):(t._t=void 0,u(1))},n?"entries":"values",!n,!0),c(e)}}},c366:function(t,e,n){var a=n("6821"),r=n("9def"),i=n("77f1");t.exports=function(t){return function(e,n,o){var s,l=a(e),d=r(l.length),u=i(o,d);if(t&&n!=n){while(d>u)if(s=l[u++],s!=s)return!0}else for(;d>u;u++)if((t||u in l)&&l[u]===n)return t||u||0;return!t&&-1}}},c367:function(t,e,n){"use strict";var a=n("8436"),r=n("50ed"),i=n("481b"),o=n("36c3");t.exports=n("30f1")(Array,"Array",function(t,e){this._t=o(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):r(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,a("keys"),a("values"),a("entries")},c3a1:function(t,e,n){var a=n("e6f3"),r=n("1691");t.exports=Object.keys||function(t){return a(t,r)}},c69a:function(t,e,n){t.exports=!n("9e1e")&&!n("79e5")(function(){return 7!=Object.defineProperty(n("230e")("div"),"a",{get:function(){return 7}}).a})},c7aa:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(t){return 2===t?"שעתיים":t+" שעות"},d:"יום",dd:function(t){return 2===t?"יומיים":t+" ימים"},M:"חודש",MM:function(t){return 2===t?"חודשיים":t+" חודשים"},y:"שנה",yy:function(t){return 2===t?"שנתיים":t%10===0&&10!==t?t+" שנה":t+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(t){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(t)},meridiem:function(t,e,n){return t<5?"לפנות בוקר":t<10?"בבוקר":t<12?n?'לפנה"צ':"לפני הצהריים":t<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}});return e})},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(a){"object"===typeof window&&(n=window)}t.exports=n},c8bb:function(t,e,n){t.exports=n("54a1")},c8f3:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(t){return"M"===t.charAt(0)},meridiem:function(t,e,n){return t<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e})},c909:function(t,e,n){var a,r,i; -/*! - * URI.js - Mutating URLs - * - * Version: 1.19.1 - * - * Author: Rodney Rehm - * Web: http://medialize.github.io/URI.js/ - * - * Licensed under - * MIT License http://www.opensource.org/licenses/mit-license - * - */ -/*! - * URI.js - Mutating URLs - * - * Version: 1.19.1 - * - * Author: Rodney Rehm - * Web: http://medialize.github.io/URI.js/ - * - * Licensed under - * MIT License http://www.opensource.org/licenses/mit-license - * - */ -(function(o,s){"use strict";t.exports?t.exports=s(n("63c5"),n("0056"),n("afab")):(r=[n("63c5"),n("0056"),n("afab")],a=s,i="function"===typeof a?a.apply(e,r):a,void 0===i||(t.exports=i))})(0,function(t,e,n,a){"use strict";var r=a&&a.URI;function i(t,e){var n=arguments.length>=1,a=arguments.length>=2;if(!(this instanceof i))return n?a?new i(t,e):new i(t):new i;if(void 0===t){if(n)throw new TypeError("undefined is not a valid argument for URI");t="undefined"!==typeof location?location.href+"":""}if(null===t&&n)throw new TypeError("null is not a valid argument for URI");return this.href(t),void 0!==e?this.absoluteTo(e):this}function o(t){return/^[0-9]+$/.test(t)}i.version="1.19.1";var s=i.prototype,l=Object.prototype.hasOwnProperty;function d(t){return t.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function u(t){return void 0===t?"Undefined":String(Object.prototype.toString.call(t)).slice(8,-1)}function c(t){return"Array"===u(t)}function f(t,e){var n,a,r={};if("RegExp"===u(e))r=null;else if(c(e))for(n=0,a=e.length;n]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi,i.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},i.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},i.hostProtocols=["http","https"],i.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,i.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},i.getDomAttribute=function(t){if(t&&t.nodeName){var e=t.nodeName.toLowerCase();if("input"!==e||"image"===t.type)return i.domAttributes[e]}},i.encode=v,i.decode=decodeURIComponent,i.iso8859=function(){i.encode=escape,i.decode=unescape},i.unicode=function(){i.encode=v,i.decode=decodeURIComponent},i.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/gi,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/gi,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/gi,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},i.encodeQuery=function(t,e){var n=i.encode(t+"");return void 0===e&&(e=i.escapeQuerySpace),e?n.replace(/%20/g,"+"):n},i.decodeQuery=function(t,e){t+="",void 0===e&&(e=i.escapeQuerySpace);try{return i.decode(e?t.replace(/\+/g,"%20"):t)}catch(n){return t}};var y,g={encode:"encode",decode:"decode"},b=function(t,e){return function(n){try{return i[e](n+"").replace(i.characters[t][e].expression,function(n){return i.characters[t][e].map[n]})}catch(a){return n}}};for(y in g)i[y+"PathSegment"]=b("pathname",g[y]),i[y+"UrnPathSegment"]=b("urnpath",g[y]);var M=function(t,e,n){return function(a){var r;r=n?function(t){return i[e](i[n](t))}:i[e];for(var o=(a+"").split(t),s=0,l=o.length;s-1&&(e.fragment=t.substring(n+1)||null,t=t.substring(0,n)),n=t.indexOf("?"),n>-1&&(e.query=t.substring(n+1)||null,t=t.substring(0,n)),"//"===t.substring(0,2)?(e.protocol=null,t=t.substring(2),t=i.parseAuthority(t,e)):(n=t.indexOf(":"),n>-1&&(e.protocol=t.substring(0,n)||null,e.protocol&&!e.protocol.match(i.protocol_expression)?e.protocol=void 0:"//"===t.substring(n+1,n+3)?(t=t.substring(n+3),t=i.parseAuthority(t,e)):(t=t.substring(n+1),e.urn=!0))),e.path=t,e},i.parseHost=function(t,e){t||(t=""),t=t.replace(/\\/g,"/");var n,a,r=t.indexOf("/");if(-1===r&&(r=t.length),"["===t.charAt(0))n=t.indexOf("]"),e.hostname=t.substring(1,n)||null,e.port=t.substring(n+2,r)||null,"/"===e.port&&(e.port=null);else{var o=t.indexOf(":"),s=t.indexOf("/"),l=t.indexOf(":",o+1);-1!==l&&(-1===s||l-1?a:t.length-1);return r>-1&&(-1===a||r-1?h.slice(0,m)+h.slice(m).replace(o,""):h.replace(o,""),!(h.length<=d[0].length)&&(!n.ignore||!n.ignore.test(h))){f=u+h.length;var v=e(h,u,f,t);void 0!==v?(v=String(v),t=t.slice(0,u)+v+t.slice(f),a.lastIndex=u+v.length):a.lastIndex=f}}return a.lastIndex=0,t},i.ensureValidHostname=function(e,n){var a=!!e,r=!!n,o=!1;if(r&&(o=h(i.hostProtocols,n)),o&&!a)throw new TypeError("Hostname cannot be empty, if protocol is "+n);if(e&&e.match(i.invalid_hostname_characters)){if(!t)throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(t.toASCII(e).match(i.invalid_hostname_characters))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-:_]')}},i.ensureValidPort=function(t){if(t){var e=Number(t);if(!(o(e)&&e>0&&e<65536))throw new TypeError('Port "'+t+'" is not a valid port')}},i.noConflict=function(t){if(t){var e={URI:this.noConflict()};return a.URITemplate&&"function"===typeof a.URITemplate.noConflict&&(e.URITemplate=a.URITemplate.noConflict()),a.IPv6&&"function"===typeof a.IPv6.noConflict&&(e.IPv6=a.IPv6.noConflict()),a.SecondLevelDomains&&"function"===typeof a.SecondLevelDomains.noConflict&&(e.SecondLevelDomains=a.SecondLevelDomains.noConflict()),e}return a.URI===this&&(a.URI=r),this},s.build=function(t){return!0===t?this._deferred_build=!0:(void 0===t||this._deferred_build)&&(this._string=i.build(this._parts),this._deferred_build=!1),this},s.clone=function(){return new i(this)},s.valueOf=s.toString=function(){return this.build(!1)._string},s.protocol=k("protocol"),s.username=k("username"),s.password=k("password"),s.hostname=k("hostname"),s.port=k("port"),s.query=w("query","?"),s.fragment=w("fragment","#"),s.search=function(t,e){var n=this.query(t,e);return"string"===typeof n&&n.length?"?"+n:n},s.hash=function(t,e){var n=this.fragment(t,e);return"string"===typeof n&&n.length?"#"+n:n},s.pathname=function(t,e){if(void 0===t||!0===t){var n=this._parts.path||(this._parts.hostname?"/":"");return t?(this._parts.urn?i.decodeUrnPath:i.decodePath)(n):n}return this._parts.urn?this._parts.path=t?i.recodeUrnPath(t):"":this._parts.path=t?i.recodePath(t):"/",this.build(!e),this},s.path=s.pathname,s.href=function(t,e){var n;if(void 0===t)return this.toString();this._string="",this._parts=i._parts();var a=t instanceof i,r="object"===typeof t&&(t.hostname||t.path||t.pathname);if(t.nodeName){var o=i.getDomAttribute(t);t=t[o]||"",r=!1}if(!a&&r&&void 0!==t.pathname&&(t=t.toString()),"string"===typeof t||t instanceof String)this._parts=i.parse(String(t),this._parts);else{if(!a&&!r)throw new TypeError("invalid input");var s=a?t._parts:t;for(n in s)"query"!==n&&l.call(this._parts,n)&&(this._parts[n]=s[n]);s.query&&this.query(s.query,!1)}return this.build(!e),this},s.is=function(t){var e=!1,a=!1,r=!1,o=!1,s=!1,l=!1,d=!1,u=!this._parts.urn;switch(this._parts.hostname&&(u=!1,a=i.ip4_expression.test(this._parts.hostname),r=i.ip6_expression.test(this._parts.hostname),e=a||r,o=!e,s=o&&n&&n.has(this._parts.hostname),l=o&&i.idn_expression.test(this._parts.hostname),d=o&&i.punycode_expression.test(this._parts.hostname)),t.toLowerCase()){case"relative":return u;case"absolute":return!u;case"domain":case"name":return o;case"sld":return s;case"ip":return e;case"ip4":case"ipv4":case"inet4":return a;case"ip6":case"ipv6":case"inet6":return r;case"idn":return l;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return d}return null};var x=s.protocol,L=s.port,Y=s.hostname;s.protocol=function(t,e){if(t&&(t=t.replace(/:(\/\/)?$/,""),!t.match(i.protocol_expression)))throw new TypeError('Protocol "'+t+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return x.call(this,t,e)},s.scheme=s.protocol,s.port=function(t,e){return this._parts.urn?void 0===t?"":this:(void 0!==t&&(0===t&&(t=null),t&&(t+="",":"===t.charAt(0)&&(t=t.substring(1)),i.ensureValidPort(t))),L.call(this,t,e))},s.hostname=function(t,e){if(this._parts.urn)return void 0===t?"":this;if(void 0!==t){var n={preventInvalidHostname:this._parts.preventInvalidHostname},a=i.parseHost(t,n);if("/"!==a)throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-]');t=n.hostname,this._parts.preventInvalidHostname&&i.ensureValidHostname(t,this._parts.protocol)}return Y.call(this,t,e)},s.origin=function(t,e){if(this._parts.urn)return void 0===t?"":this;if(void 0===t){var n=this.protocol(),a=this.authority();return a?(n?n+"://":"")+this.authority():""}var r=i(t);return this.protocol(r.protocol()).authority(r.authority()).build(!e),this},s.host=function(t,e){if(this._parts.urn)return void 0===t?"":this;if(void 0===t)return this._parts.hostname?i.buildHost(this._parts):"";var n=i.parseHost(t,this._parts);if("/"!==n)throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-]');return this.build(!e),this},s.authority=function(t,e){if(this._parts.urn)return void 0===t?"":this;if(void 0===t)return this._parts.hostname?i.buildAuthority(this._parts):"";var n=i.parseAuthority(t,this._parts);if("/"!==n)throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-]');return this.build(!e),this},s.userinfo=function(t,e){if(this._parts.urn)return void 0===t?"":this;if(void 0===t){var n=i.buildUserinfo(this._parts);return n?n.substring(0,n.length-1):n}return"@"!==t[t.length-1]&&(t+="@"),i.parseUserinfo(t,this._parts),this.build(!e),this},s.resource=function(t,e){var n;return void 0===t?this.path()+this.search()+this.hash():(n=i.parse(t),this._parts.path=n.path,this._parts.query=n.query,this._parts.fragment=n.fragment,this.build(!e),this)},s.subdomain=function(t,e){if(this._parts.urn)return void 0===t?"":this;if(void 0===t){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,n)||""}var a=this._parts.hostname.length-this.domain().length,r=this._parts.hostname.substring(0,a),o=new RegExp("^"+d(r));if(t&&"."!==t.charAt(t.length-1)&&(t+="."),-1!==t.indexOf(":"))throw new TypeError("Domains cannot contain colons");return t&&i.ensureValidHostname(t,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(o,t),this.build(!e),this},s.domain=function(t,e){if(this._parts.urn)return void 0===t?"":this;if("boolean"===typeof t&&(e=t,t=void 0),void 0===t){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.match(/\./g);if(n&&n.length<2)return this._parts.hostname;var a=this._parts.hostname.length-this.tld(e).length-1;return a=this._parts.hostname.lastIndexOf(".",a-1)+1,this._parts.hostname.substring(a)||""}if(!t)throw new TypeError("cannot set domain empty");if(-1!==t.indexOf(":"))throw new TypeError("Domains cannot contain colons");if(i.ensureValidHostname(t,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=t;else{var r=new RegExp(d(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(r,t)}return this.build(!e),this},s.tld=function(t,e){if(this._parts.urn)return void 0===t?"":this;if("boolean"===typeof t&&(e=t,t=void 0),void 0===t){if(!this._parts.hostname||this.is("IP"))return"";var a=this._parts.hostname.lastIndexOf("."),r=this._parts.hostname.substring(a+1);return!0!==e&&n&&n.list[r.toLowerCase()]&&n.get(this._parts.hostname)||r}var i;if(!t)throw new TypeError("cannot set TLD empty");if(t.match(/[^a-zA-Z0-9-]/)){if(!n||!n.is(t))throw new TypeError('TLD "'+t+'" contains characters other than [A-Z0-9]');i=new RegExp(d(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,t)}else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");i=new RegExp(d(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,t)}return this.build(!e),this},s.directory=function(t,e){if(this._parts.urn)return void 0===t?"":this;if(void 0===t||!0===t){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var n=this._parts.path.length-this.filename().length-1,a=this._parts.path.substring(0,n)||(this._parts.hostname?"/":"");return t?i.decodePath(a):a}var r=this._parts.path.length-this.filename().length,o=this._parts.path.substring(0,r),s=new RegExp("^"+d(o));return this.is("relative")||(t||(t="/"),"/"!==t.charAt(0)&&(t="/"+t)),t&&"/"!==t.charAt(t.length-1)&&(t+="/"),t=i.recodePath(t),this._parts.path=this._parts.path.replace(s,t),this.build(!e),this},s.filename=function(t,e){if(this._parts.urn)return void 0===t?"":this;if("string"!==typeof t){if(!this._parts.path||"/"===this._parts.path)return"";var n=this._parts.path.lastIndexOf("/"),a=this._parts.path.substring(n+1);return t?i.decodePathSegment(a):a}var r=!1;"/"===t.charAt(0)&&(t=t.substring(1)),t.match(/\.?\//)&&(r=!0);var o=new RegExp(d(this.filename())+"$");return t=i.recodePath(t),this._parts.path=this._parts.path.replace(o,t),r?this.normalizePath(e):this.build(!e),this},s.suffix=function(t,e){if(this._parts.urn)return void 0===t?"":this;if(void 0===t||!0===t){if(!this._parts.path||"/"===this._parts.path)return"";var n,a,r=this.filename(),o=r.lastIndexOf(".");return-1===o?"":(n=r.substring(o+1),a=/^[a-z0-9%]+$/i.test(n)?n:"",t?i.decodePathSegment(a):a)}"."===t.charAt(0)&&(t=t.substring(1));var s,l=this.suffix();if(l)s=t?new RegExp(d(l)+"$"):new RegExp(d("."+l)+"$");else{if(!t)return this;this._parts.path+="."+i.recodePath(t)}return s&&(t=i.recodePath(t),this._parts.path=this._parts.path.replace(s,t)),this.build(!e),this},s.segment=function(t,e,n){var a=this._parts.urn?":":"/",r=this.path(),i="/"===r.substring(0,1),o=r.split(a);if(void 0!==t&&"number"!==typeof t&&(n=e,e=t,t=void 0),void 0!==t&&"number"!==typeof t)throw new Error('Bad segment "'+t+'", must be 0-based integer');if(i&&o.shift(),t<0&&(t=Math.max(o.length+t,0)),void 0===e)return void 0===t?o:o[t];if(null===t||void 0===o[t])if(c(e)){o=[];for(var s=0,l=e.length;s=t.length?(this._t=void 0,r(1)):r(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,a("keys"),a("values"),a("entries")},cb5a:function(t,e,n){var a=n("9638");function r(t,e){var n=t.length;while(n--)if(a(t[n][0],e))return n;return-1}t.exports=r},cb7c:function(t,e,n){var a=n("d3f4");t.exports=function(t){if(!a(t))throw TypeError(t+" is not an object!");return t}},ccb9:function(t,e,n){e.f=n("5168")},cd1c:function(t,e,n){var a=n("e853");t.exports=function(t,e){return new(a(t))(e)}},cdab:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10,n=1===~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}});return e})},ce10:function(t,e,n){var a=n("69a8"),r=n("6821"),i=n("c366")(!1),o=n("613b")("IE_PROTO");t.exports=function(t,e){var n,s=r(t),l=0,d=[];for(n in s)n!=o&&a(s,n)&&d.push(n);while(e.length>l)a(s,n=e[l++])&&(~i(d,n)||d.push(n));return d}},ce86:function(t,e,n){var a=n("9e69"),r=n("7948"),i=n("6747"),o=n("ffd6"),s=1/0,l=a?a.prototype:void 0,d=l?l.toString:void 0;function u(t){if("string"==typeof t)return t;if(i(t))return r(t,u)+"";if(o(t))return d?d.call(t):"";var e=t+"";return"0"==e&&1/t==-s?"-0":e}t.exports=u},cf1e:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}},n=t.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var t=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return t[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});return n})},cf51:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(t){return"d'o"===t.toLowerCase()},meridiem:function(t,e,n){return t>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});function n(t,e,n,a){var r={s:["viensas secunds","'iensas secunds"],ss:[t+" secunds",t+" secunds"],m:["'n míut","'iens míut"],mm:[t+" míuts",t+" míuts"],h:["'n þora","'iensa þora"],hh:[t+" þoras",t+" þoras"],d:["'n ziua","'iensa ziua"],dd:[t+" ziuas",t+" ziuas"],M:["'n mes","'iens mes"],MM:[t+" mesen",t+" mesen"],y:["'n ar","'iens ar"],yy:[t+" ars",t+" ars"]};return a?r[n][0]:e?r[n][0]:r[n][1]}return e})},cf75:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(t){var e=t;return e=-1!==t.indexOf("jaj")?e.slice(0,-3)+"leS":-1!==t.indexOf("jar")?e.slice(0,-3)+"waQ":-1!==t.indexOf("DIS")?e.slice(0,-3)+"nem":e+" pIq",e}function a(t){var e=t;return e=-1!==t.indexOf("jaj")?e.slice(0,-3)+"Hu’":-1!==t.indexOf("jar")?e.slice(0,-3)+"wen":-1!==t.indexOf("DIS")?e.slice(0,-3)+"ben":e+" ret",e}function r(t,e,n,a){var r=i(t);switch(n){case"ss":return r+" lup";case"mm":return r+" tup";case"hh":return r+" rep";case"dd":return r+" jaj";case"MM":return r+" jar";case"yy":return r+" DIS"}}function i(t){var n=Math.floor(t%1e3/100),a=Math.floor(t%100/10),r=t%10,i="";return n>0&&(i+=e[n]+"vatlh"),a>0&&(i+=(""!==i?" ":"")+e[a]+"maH"),r>0&&(i+=(""!==i?" ":"")+e[r]),""===i?"pagh":i}var o=t.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:n,past:a,s:"puS lup",ss:r,m:"wa’ tup",mm:r,h:"wa’ rep",hh:r,d:"wa’ jaj",dd:r,M:"wa’ jar",MM:r,y:"wa’ DIS",yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return o})},d225:function(t,e,n){"use strict";function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,"a",function(){return a})},d26a:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"},a=t.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(t){return t.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(t,e){return 12===t&&(t=0),"མཚན་མོ"===e&&t>=4||"ཉིན་གུང"===e&&t<5||"དགོང་དག"===e?t+12:t},meridiem:function(t,e,n){return t<4?"མཚན་མོ":t<10?"ཞོགས་ཀས":t<17?"ཉིན་གུང":t<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}});return a})},d2c8:function(t,e,n){var a=n("aae3"),r=n("be13");t.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(r(t))}},d2d4:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"});return e})},d2d5:function(t,e,n){n("1654"),n("549b"),t.exports=n("584a").Array.from},d3f4:function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},d53b:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},d6b6:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(t){return/^(ցերեկվա|երեկոյան)$/.test(t)},meridiem:function(t){return t<4?"գիշերվա":t<12?"առավոտվա":t<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(t,e){switch(e){case"DDD":case"w":case"W":case"DDDo":return 1===t?t+"-ին":t+"-րդ";default:return t}},week:{dow:1,doy:7}});return e})},d716:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(t,e){var n=1===t?"r":2===t?"n":3===t?"r":4===t?"t":"è";return"w"!==e&&"W"!==e||(n="a"),t+n},week:{dow:1,doy:4}});return e})},d842:function(t,e,n){"use strict";var a=n("50d1"),r=n.n(a),i=n("7fae"),o=n.n(i),s=function(t){return l(t)&&!d(t)};function l(t){return!!t&&"object"===typeof t}function d(t){var e=Object.prototype.toString.call(t);return"[object RegExp]"===e||"[object Date]"===e||f(t)}var u="function"===typeof Symbol&&Symbol.for,c=u?Symbol.for("react.element"):60103;function f(t){return t.$$typeof===c}function h(t){return Array.isArray(t)?[]:{}}function m(t,e){return!1!==e.clone&&e.isMergeableObject(t)?v(h(t),t,e):t}function p(t,e,n){return t.concat(e).map(function(t){return m(t,n)})}function _(t,e,n){var a={};return n.isMergeableObject(t)&&Object.keys(t).forEach(function(e){a[e]=m(t[e],n)}),Object.keys(e).forEach(function(r){n.isMergeableObject(e[r])&&t[r]?a[r]=v(t[r],e[r],n):a[r]=m(e[r],n)}),a}function v(t,e,n){n=n||{},n.arrayMerge=n.arrayMerge||p,n.isMergeableObject=n.isMergeableObject||s;var a=Array.isArray(e),r=Array.isArray(t),i=a===r;return i?a?n.arrayMerge(t,e,n):_(t,e,n):m(e,n)}v.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(t,n){return v(t,n,e)},{})};var y=v,g=y,b=1,M=function(t,e,n){var a=["adapter","colors","curve","dataset","decimal","discrete","donut","download","label","legend","library","max","messages","min","points","prefix","refresh","stacked","suffix","thousands","title","xmax","xmin","xtitle","ytitle"];t.component(e,{props:["data","id","width","height"].concat(a),render:function(t){return t("div",{attrs:{id:this.chartId},style:this.chartStyle},["Loading..."])},data:function(){return{chartId:null}},computed:{chartStyle:function(){return this.data,this.chartOptions,{height:this.height||"300px",lineHeight:this.height||"300px",width:this.width||"100%",textAlign:"center",color:"#999",fontSize:"14px",fontFamily:"'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif"}},chartOptions:function(){for(var t={},e=a,n=0;n=20?"ste":"de")},week:{dow:1,doy:4}});return i})},dbdb:function(t,e,n){var a=n("584a"),r=n("e53d"),i="__core-js_shared__",o=r[i]||(r[i]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:a.version,mode:n("b8e3")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},dc4d:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},a=t.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात"===e?t<4?t:t+12:"सुबह"===e?t:"दोपहर"===e?t>=10?t:t+12:"शाम"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात":t<10?"सुबह":t<17?"दोपहर":t<20?"शाम":"रात"},week:{dow:0,doy:6}});return a})},dc57:function(t,e){var n=Function.prototype,a=n.toString;function r(t){if(null!=t){try{return a.call(t)}catch(e){}try{return t+""}catch(e){}}return""}t.exports=r},dcbc:function(t,e,n){var a=n("2aba");t.exports=function(t,e,n){for(var r in e)a(t,r,e[r],n);return t}},e0b8:function(t,e,n){"use strict";var a=n("7726"),r=n("5ca1"),i=n("2aba"),o=n("dcbc"),s=n("67ab"),l=n("4a59"),d=n("f605"),u=n("d3f4"),c=n("79e5"),f=n("5cc5"),h=n("7f20"),m=n("5dbc");t.exports=function(t,e,n,p,_,v){var y=a[t],g=y,b=_?"set":"add",M=g&&g.prototype,k={},w=function(t){var e=M[t];i(M,t,"delete"==t?function(t){return!(v&&!u(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(v&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return v&&!u(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof g&&(v||M.forEach&&!c(function(){(new g).entries().next()}))){var x=new g,L=x[b](v?{}:-0,1)!=x,Y=c(function(){x.has(1)}),D=f(function(t){new g(t)}),S=!v&&c(function(){var t=new g,e=5;while(e--)t[b](e,e);return!t.has(-0)});D||(g=e(function(e,n){d(e,g,t);var a=m(new y,e,g);return void 0!=n&&l(n,_,a[b],a),a}),g.prototype=M,M.constructor=g),(Y||S)&&(w("delete"),w("has"),_&&w("get")),(S||L)&&w(b),v&&M.clear&&delete M.clear}else g=p.getConstructor(e,t,_,b),o(g.prototype,n),s.NEED=!0;return h(g,t),k[t]=g,r(r.G+r.W+r.F*(g!=y),k),v||p.setStrong(g,t,_),g}},e0c5:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"},a=t.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(t){return t.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(t,e){return 12===t&&(t=0),"રાત"===e?t<4?t:t+12:"સવાર"===e?t:"બપોર"===e?t>=10?t:t+12:"સાંજ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"રાત":t<10?"સવાર":t<17?"બપોર":t<20?"સાંજ":"રાત"},week:{dow:0,doy:6}});return a})},e0e5:function(t,e){function n(){var t=[].slice.call(arguments),e=!1;"boolean"==typeof t[0]&&(e=t.shift());var r=t[0];if(!r||"object"!=typeof r&&"function"!=typeof r)throw new Error("extendee must be an object");for(var i=t.slice(1),o=i.length,s=0;sl)a(s,n=e[l++])&&(~i(d,n)||d.push(n));return d}},e81d:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"},a=t.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(t){return"ល្ងាច"===t},meridiem:function(t,e,n){return t<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(t){return t.replace(/[១២៣៤៥៦៧៨៩០]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}});return a})},e853:function(t,e,n){var a=n("d3f4"),r=n("1169"),i=n("2b4c")("species");t.exports=function(t){var e;return r(t)&&(e=t.constructor,"function"!=typeof e||e!==Array&&!r(e.prototype)||(e=void 0),a(e)&&(e=e[i],null===e&&(e=void 0))),void 0===e?Array:e}},ebd6:function(t,e,n){var a=n("cb7c"),r=n("d8e8"),i=n("2b4c")("species");t.exports=function(t,e){var n,o=a(t).constructor;return void 0===o||void 0==(n=a(o)[i])?e:r(n)}},ebe4:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}});return e})},ebfd:function(t,e,n){var a=n("62a0")("meta"),r=n("f772"),i=n("07e3"),o=n("d9f6").f,s=0,l=Object.isExtensible||function(){return!0},d=!n("294c")(function(){return l(Object.preventExtensions({}))}),u=function(t){o(t,a,{value:{i:"O"+ ++s,w:{}}})},c=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,a)){if(!l(t))return"F";if(!e)return"E";u(t)}return t[a].i},f=function(t,e){if(!i(t,a)){if(!l(t))return!0;if(!e)return!1;u(t)}return t[a].w},h=function(t){return d&&m.NEED&&l(t)&&!i(t,a)&&u(t),t},m=t.exports={KEY:a,NEED:!1,fastKey:c,getWeak:f,onFreeze:h}},ec18:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";function e(t,e,n,a){var r={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[t+"sekundi",t+"sekundit"],m:["ühe minuti","üks minut"],mm:[t+" minuti",t+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[t+" tunni",t+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[t+" kuu",t+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[t+" aasta",t+" aastat"]};return e?r[n][2]?r[n][2]:r[n][1]:a?r[n][0]:r[n][1]}var n=t.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:"%d päeva",M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return n})},ecee:function(t,e,n){"use strict";(function(t){function a(t){return a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var n=0;n-1;r--){var i=n[r],o=(i.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(a=i)}return L.head.insertBefore(e,a),t}}var gt="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function bt(){var t=12,e="";while(t-- >0)e+=gt[62*Math.random()|0];return e}function Mt(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function kt(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(Mt(t[n]),'" ')},"").trim()}function wt(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(t[n],";")},"")}function xt(t){return t.size!==vt.size||t.x!==vt.x||t.y!==vt.y||t.rotate!==vt.rotate||t.flipX||t.flipY}function Lt(t){var e=t.transform,n=t.containerWidth,a=t.iconWidth,r={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*e.x,", ").concat(32*e.y,") "),o="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),s="rotate(".concat(e.rotate," 0 0)"),l={transform:"".concat(i," ").concat(o," ").concat(s)},d={transform:"translate(".concat(a/2*-1," -256)")};return{outer:r,inner:l,path:d}}function Yt(t){var e=t.transform,n=t.width,a=void 0===n?O:n,r=t.height,i=void 0===r?O:r,o=t.startCentered,s=void 0!==o&&o,l="";return l+=s&&S?"translate(".concat(e.x/_t-a/2,"em, ").concat(e.y/_t-i/2,"em) "):s?"translate(calc(-50% + ".concat(e.x/_t,"em), calc(-50% + ").concat(e.y/_t,"em)) "):"translate(".concat(e.x/_t,"em, ").concat(e.y/_t,"em) "),l+="scale(".concat(e.size/_t*(e.flipX?-1:1),", ").concat(e.size/_t*(e.flipY?-1:1),") "),l+="rotate(".concat(e.rotate,"deg) "),l}var Dt={x:0,y:0,width:"100%",height:"100%"};function St(t){var e=t.children,n=t.attributes,a=t.main,r=t.mask,i=t.transform,o=a.width,s=a.icon,d=r.width,u=r.icon,c=Lt({transform:i,containerWidth:d,iconWidth:o}),f={tag:"rect",attributes:l({},Dt,{fill:"white"})},h={tag:"g",attributes:l({},c.inner),children:[{tag:"path",attributes:l({},s.attributes,c.path,{fill:"black"})}]},m={tag:"g",attributes:l({},c.outer),children:[h]},p="mask-".concat(bt()),_="clip-".concat(bt()),v={tag:"mask",attributes:l({},Dt,{id:p,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[f,m]},y={tag:"defs",children:[{tag:"clipPath",attributes:{id:_},children:[u]},v]};return e.push(y,{tag:"rect",attributes:l({fill:"currentColor","clip-path":"url(#".concat(_,")"),mask:"url(#".concat(p,")")},Dt)}),{children:e,attributes:n}}function Tt(t){var e=t.children,n=t.attributes,a=t.main,r=t.transform,i=t.styles,o=wt(i);if(o.length>0&&(n["style"]=o),xt(r)){var s=Lt({transform:r,containerWidth:a.width,iconWidth:a.width});e.push({tag:"g",attributes:l({},s.outer),children:[{tag:"g",attributes:l({},s.inner),children:[{tag:a.icon.tag,children:a.icon.children,attributes:l({},a.icon.attributes,s.path)}]}]})}else e.push(a.icon);return{children:e,attributes:n}}function Ot(t){var e=t.children,n=t.main,a=t.mask,r=t.attributes,i=t.styles,o=t.transform;if(xt(o)&&n.found&&!a.found){var s=n.width,d=n.height,u={x:s/d/2,y:.5};r["style"]=wt(l({},i,{"transform-origin":"".concat(u.x+o.x/16,"em ").concat(u.y+o.y/16,"em")}))}return[{tag:"svg",attributes:r,children:e}]}function Ht(t){var e=t.prefix,n=t.iconName,a=t.children,r=t.attributes,i=t.symbol,o=!0===i?"".concat(e,"-").concat(N.familyPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:l({},r,{id:o}),children:a}]}]}function At(t){var e=t.icons,n=e.main,a=e.mask,r=t.prefix,i=t.iconName,o=t.transform,s=t.symbol,d=t.title,u=t.extra,c=t.watchable,f=void 0!==c&&c,h=a.found?a:n,m=h.width,p=h.height,_="fa-w-".concat(Math.ceil(m/p*16)),v=[N.replacementClass,i?"".concat(N.familyPrefix,"-").concat(i):"",_].filter(function(t){return-1===u.classes.indexOf(t)}).concat(u.classes).join(" "),y={children:[],attributes:l({},u.attributes,{"data-prefix":r,"data-icon":i,class:v,role:u.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(p)})};f&&(y.attributes[P]=""),d&&y.children.push({tag:"title",attributes:{id:y.attributes["aria-labelledby"]||"title-".concat(bt())},children:[d]});var g=l({},y,{prefix:r,iconName:i,main:n,mask:a,transform:o,symbol:s,styles:u.styles}),b=a.found&&n.found?St(g):Tt(g),M=b.children,k=b.attributes;return g.children=M,g.attributes=k,s?Ht(g):Ot(g)}function Pt(t){var e=t.content,n=t.width,a=t.height,r=t.transform,i=t.title,o=t.extra,s=t.watchable,d=void 0!==s&&s,u=l({},o.attributes,i?{title:i}:{},{class:o.classes.join(" ")});d&&(u[P]="");var c=l({},o.styles);xt(r)&&(c["transform"]=Yt({transform:r,startCentered:!0,width:n,height:a}),c["-webkit-transform"]=c["transform"]);var f=wt(c);f.length>0&&(u["style"]=f);var h=[];return h.push({tag:"span",attributes:u,children:[e]}),i&&h.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),h}var jt=function(){},Ct=(N.measurePerformance&&Y&&Y.mark&&Y.measure,function(t,e){return function(n,a,r,i){return t.call(e,n,a,r,i)}}),zt=function(t,e,n,a){var r,i,o,s=Object.keys(t),l=s.length,d=void 0!==a?Ct(e,a):e;for(void 0===n?(r=1,o=t[s[0]]):(r=0,o=n);r2&&void 0!==arguments[2]?arguments[2]:{},a=n.skipHooks,r=void 0!==a&&a,i=Object.keys(e).reduce(function(t,n){var a=e[n],r=!!a.icon;return r?t[a.iconName]=a.icon:t[n]=a,t},{});"function"!==typeof U.hooks.addPack||r?U.styles[t]=l({},U.styles[t]||{},i):U.hooks.addPack(t,i),"fas"===t&&Et("fa",e)}var Ft=U.styles,It=U.shims,Wt=function(){var t=function(t){return zt(Ft,function(e,n,a){return e[a]=zt(n,t,{}),e},{})};t(function(t,e,n){return e[3]&&(t[e[3]]=n),t}),t(function(t,e,n){var a=e[2];return t[n]=n,a.forEach(function(e){t[e]=n}),t});var e="far"in Ft;zt(It,function(t,n){var a=n[0],r=n[1],i=n[2];return"far"!==r||e||(r="fas"),t[a]={prefix:r,iconName:i},t},{})};Wt();U.styles;function Rt(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}function Nt(t){var e=t.tag,n=t.attributes,a=void 0===n?{}:n,r=t.children,i=void 0===r?[]:r;return"string"===typeof t?Mt(t):"<".concat(e," ").concat(kt(a),">").concat(i.map(Nt).join(""),"")}var Vt=function(t){var e={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t?t.toLowerCase().split(" ").reduce(function(t,e){var n=e.toLowerCase().split("-"),a=n[0],r=n.slice(1).join("-");if(a&&"h"===r)return t.flipX=!0,t;if(a&&"v"===r)return t.flipY=!0,t;if(r=parseFloat(r),isNaN(r))return t;switch(a){case"grow":t.size=t.size+r;break;case"shrink":t.size=t.size-r;break;case"left":t.x=t.x-r;break;case"right":t.x=t.x+r;break;case"up":t.y=t.y-r;break;case"down":t.y=t.y+r;break;case"rotate":t.rotate=t.rotate+r;break}return t},e):e};function Ut(t){this.name="MissingIcon",this.message=t||"Icon unavailable",this.stack=(new Error).stack}Ut.prototype=Object.create(Error.prototype),Ut.prototype.constructor=Ut;var Bt={fill:"currentColor"},$t={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},Jt=(l({},Bt,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),l({},$t,{attributeName:"opacity"}));l({},Bt,{cx:"256",cy:"364",r:"28"}),l({},$t,{attributeName:"r",values:"28;14;28;28;14;28;"}),l({},Jt,{values:"1;0;1;1;0;1;"}),l({},Bt,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),l({},Jt,{values:"1;0;0;0;0;1;"}),l({},Bt,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),l({},Jt,{values:"0;0;1;1;0;0;"}),U.styles;U.styles;var Gt='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}';function qt(){var t=H,e=A,n=N.familyPrefix,a=N.replacementClass,r=Gt;if(n!==t||a!==e){var i=new RegExp("\\.".concat(t,"\\-"),"g"),o=new RegExp("\\.".concat(e),"g");r=r.replace(i,".".concat(n,"-")).replace(o,".".concat(a))}return r}var Xt=function(){function t(){r(this,t),this.definitions={}}return o(t,[{key:"add",value:function(){for(var t=this,e=arguments.length,n=new Array(e),a=0;a1&&void 0!==arguments[1]?arguments[1]:{},a=(e||{}).icon?e:te(e||{}),r=n.mask;return r&&(r=(r||{}).icon?r:te(r||{})),t(a,l({},n,{mask:r}))}}var ne=new Xt,ae=!1,re={transform:function(t){return Vt(t)}},ie=ee(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.transform,a=void 0===n?vt:n,r=e.symbol,i=void 0!==r&&r,o=e.mask,s=void 0===o?null:o,d=e.title,u=void 0===d?null:d,c=e.classes,f=void 0===c?[]:c,h=e.attributes,m=void 0===h?{}:h,p=e.styles,_=void 0===p?{}:p;if(t){var v=t.prefix,y=t.iconName,g=t.icon;return Kt(l({type:"icon"},t),function(){return Zt(),N.autoA11y&&(u?m["aria-labelledby"]="".concat(N.replacementClass,"-title-").concat(bt()):(m["aria-hidden"]="true",m["focusable"]="false")),At({icons:{main:Qt(g),mask:s?Qt(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:v,iconName:y,transform:l({},vt,a),symbol:i,title:u,extra:{attributes:m,styles:_,classes:f}})})}}),oe=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.transform,a=void 0===n?vt:n,r=e.title,i=void 0===r?null:r,o=e.classes,s=void 0===o?[]:o,d=e.attributes,c=void 0===d?{}:d,f=e.styles,h=void 0===f?{}:f;return Kt({type:"text",content:t},function(){return Zt(),Pt({content:t,transform:l({},vt,a),title:i,extra:{attributes:c,styles:h,classes:["".concat(N.familyPrefix,"-layers-text")].concat(u(s))}})})}}).call(this,n("c8ba"))},eda5:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(t){return t+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(t){return"ප.ව."===t||"පස් වරු"===t},meridiem:function(t,e,n){return t>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}});return e})},f035:function(t,e,n){ -/*! - * vue-spinkit v1.4.1 - * (c) 2018-present Chanwit Piromplad - * Released under the MIT License. - */ -!function(e,n){t.exports=n()}(0,function(){"use strict";var t={circle:{className:"sk-circle",divCount:12},"cube-grid":{className:"sk-cube-grid",divCount:9},wave:{className:"sk-wave",divCount:5},"folding-cube":{className:"sk-folding-cube",divCount:4},"three-bounce":{className:"sk-three-bounce",divCount:3},"double-bounce":{className:"sk-double-bounce",divCount:2},"wandering-cubes":{className:"sk-wandering-cubes",divCount:2},"chasing-dots":{className:"sk-chasing-dots",divCount:2},"rotating-plane":{className:"sk-rotating-plane",divCount:1},pulse:{className:"sk-pulse",divCount:1},wordpress:{className:"sk-wordpress",divCount:1},"fading-circle":{className:"sk-fading-circle",divCount:12}},e={"ball-grid-beat":{divCount:9},"ball-grid-pulse":{divCount:9},"line-spin-fade-loader":{divCount:8},"ball-spin-fade-loader":{divCount:8},"ball-pulse-rise":{divCount:5},"line-scale":{divCount:5},"line-scale-pulse-out":{divCount:5},"line-scale-pulse-out-rapid":{divCount:5},pacman:{divCount:5},"line-scale-party":{divCount:4},"ball-triangle-path":{divCount:3},"ball-scale-multiple":{divCount:3},"ball-scale-ripple-multiple":{divCount:3},"ball-pulse-sync":{divCount:3},"ball-beat":{divCount:3},"ball-zig-zag":{divCount:2},"ball-zig-zag-deflect":{divCount:2},"ball-clip-rotate-pulse":{divCount:2},"ball-clip-rotate-multiple":{divCount:2},"ball-clip-rotate":{divCount:1},"ball-scale-ripple":{divCount:1},"triangle-skew-spin":{divCount:1}},n={spinkitSpinners:t,loadersCssSpinners:e,allSpinners:Object.assign({},t,e)};return function(){if("undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],e=document.createElement("style"),n="/** * * All animations must live in their own file * in the animations directory and be included * here. * */ /** * Styles shared by multiple animations */ /** * Dots */ @-webkit-keyframes scale { 0% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; } 45% { -webkit-transform: scale(0.1); transform: scale(0.1); opacity: 0.7; } 80% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; } } @keyframes scale { 0% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; } 45% { -webkit-transform: scale(0.1); transform: scale(0.1); opacity: 0.7; } 80% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; } } .ball-pulse > div[data-v-39432f99]:nth-child(0) { -webkit-animation: scale 0.75s -0.36s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); animation: scale 0.75s -0.36s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } .ball-pulse > div[data-v-39432f99]:nth-child(1) { -webkit-animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } .ball-pulse > div[data-v-39432f99]:nth-child(2) { -webkit-animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } .ball-pulse > div[data-v-39432f99]:nth-child(3) { -webkit-animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } .ball-pulse > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; } @-webkit-keyframes ball-pulse-sync { 33% { -webkit-transform: translateY(10px); transform: translateY(10px); } 66% { -webkit-transform: translateY(-10px); transform: translateY(-10px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } @keyframes ball-pulse-sync { 33% { -webkit-transform: translateY(10px); transform: translateY(10px); } 66% { -webkit-transform: translateY(-10px); transform: translateY(-10px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } .ball-pulse-sync > div[data-v-39432f99]:nth-child(0) { -webkit-animation: ball-pulse-sync 0.6s -0.21s infinite ease-in-out; animation: ball-pulse-sync 0.6s -0.21s infinite ease-in-out; } .ball-pulse-sync > div[data-v-39432f99]:nth-child(1) { -webkit-animation: ball-pulse-sync 0.6s -0.14s infinite ease-in-out; animation: ball-pulse-sync 0.6s -0.14s infinite ease-in-out; } .ball-pulse-sync > div[data-v-39432f99]:nth-child(2) { -webkit-animation: ball-pulse-sync 0.6s -0.07s infinite ease-in-out; animation: ball-pulse-sync 0.6s -0.07s infinite ease-in-out; } .ball-pulse-sync > div[data-v-39432f99]:nth-child(3) { -webkit-animation: ball-pulse-sync 0.6s 0s infinite ease-in-out; animation: ball-pulse-sync 0.6s 0s infinite ease-in-out; } .ball-pulse-sync > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; } @-webkit-keyframes ball-scale { 0% { -webkit-transform: scale(0); transform: scale(0); } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 0; } } @keyframes ball-scale { 0% { -webkit-transform: scale(0); transform: scale(0); } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 0; } } .ball-scale > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; height: 60px; width: 60px; -webkit-animation: ball-scale 1s 0s ease-in-out infinite; animation: ball-scale 1s 0s ease-in-out infinite; } @keyframes ball-scale { 0% { -webkit-transform: scale(0); transform: scale(0); } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 0; } } .ball-scale > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; height: 60px; width: 60px; -webkit-animation: ball-scale 1s 0s ease-in-out infinite; animation: ball-scale 1s 0s ease-in-out infinite; } .ball-scale-random[data-v-39432f99] { width: 37px; height: 40px; } .ball-scale-random > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; display: inline-block; height: 30px; width: 30px; -webkit-animation: ball-scale 1s 0s ease-in-out infinite; animation: ball-scale 1s 0s ease-in-out infinite; } .ball-scale-random > div[data-v-39432f99]:nth-child(1) { margin-left: -7px; -webkit-animation: ball-scale 1s 0.2s ease-in-out infinite; animation: ball-scale 1s 0.2s ease-in-out infinite; } .ball-scale-random > div[data-v-39432f99]:nth-child(3) { margin-left: -2px; margin-top: 9px; -webkit-animation: ball-scale 1s 0.5s ease-in-out infinite; animation: ball-scale 1s 0.5s ease-in-out infinite; } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 50% { -webkit-transform: rotate(180deg); transform: rotate(180deg); } 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes rotate { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 50% { -webkit-transform: rotate(180deg); transform: rotate(180deg); } 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } .ball-rotate[data-v-39432f99] { position: relative; } .ball-rotate > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; position: relative; } .ball-rotate > div[data-v-39432f99]:first-child { -webkit-animation: rotate 1s 0s cubic-bezier(0.7, -0.13, 0.22, 0.86) infinite; animation: rotate 1s 0s cubic-bezier(0.7, -0.13, 0.22, 0.86) infinite; } .ball-rotate > div[data-v-39432f99]:before, .ball-rotate > div[data-v-39432f99]:after { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; content: \"\"; position: absolute; opacity: 0.8; } .ball-rotate > div[data-v-39432f99]:before { top: 0px; left: -28px; } .ball-rotate > div[data-v-39432f99]:after { top: 0px; left: 25px; } @keyframes rotate { 0% { -webkit-transform: rotate(0deg) scale(1); transform: rotate(0deg) scale(1); } 50% { -webkit-transform: rotate(180deg) scale(0.6); transform: rotate(180deg) scale(0.6); } 100% { -webkit-transform: rotate(360deg) scale(1); transform: rotate(360deg) scale(1); } } .ball-clip-rotate > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; border: 2px solid #fff; border-bottom-color: transparent; height: 25px; width: 25px; background: transparent !important; display: inline-block; -webkit-animation: rotate 0.75s 0s linear infinite; animation: rotate 0.75s 0s linear infinite; } @keyframes rotate { 0% { -webkit-transform: rotate(0deg) scale(1); transform: rotate(0deg) scale(1); } 50% { -webkit-transform: rotate(180deg) scale(0.6); transform: rotate(180deg) scale(0.6); } 100% { -webkit-transform: rotate(360deg) scale(1); transform: rotate(360deg) scale(1); } } @keyframes scale { 30% { -webkit-transform: scale(0.3); transform: scale(0.3); } 100% { -webkit-transform: scale(1); transform: scale(1); } } .ball-clip-rotate-pulse[data-v-39432f99] { position: relative; -webkit-transform: translateY(-15px); transform: translateY(-15px); } .ball-clip-rotate-pulse > div[data-v-39432f99] { -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; top: 0px; left: 0px; border-radius: 100%; } .ball-clip-rotate-pulse > div[data-v-39432f99]:first-child { background: #fff; height: 16px; width: 16px; top: 7px; left: -7px; -webkit-animation: scale 1s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; animation: scale 1s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; } .ball-clip-rotate-pulse > div[data-v-39432f99]:last-child { position: absolute; border: 2px solid #fff; width: 30px; height: 30px; left: -16px; top: -2px; background: transparent; border: 2px solid; border-color: #fff transparent #fff transparent; -webkit-animation: rotate 1s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; animation: rotate 1s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; -webkit-animation-duration: 1s; animation-duration: 1s; } @keyframes rotate { 0% { -webkit-transform: rotate(0deg) scale(1); transform: rotate(0deg) scale(1); } 50% { -webkit-transform: rotate(180deg) scale(0.6); transform: rotate(180deg) scale(0.6); } 100% { -webkit-transform: rotate(360deg) scale(1); transform: rotate(360deg) scale(1); } } .ball-clip-rotate-multiple[data-v-39432f99] { position: relative; } .ball-clip-rotate-multiple > div[data-v-39432f99] { -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; left: -20px; top: -20px; border: 2px solid #fff; border-bottom-color: transparent; border-top-color: transparent; border-radius: 100%; height: 35px; width: 35px; -webkit-animation: rotate 1s 0s ease-in-out infinite; animation: rotate 1s 0s ease-in-out infinite; } .ball-clip-rotate-multiple > div[data-v-39432f99]:last-child { display: inline-block; top: -10px; left: -10px; width: 15px; height: 15px; -webkit-animation-duration: 0.5s; animation-duration: 0.5s; border-color: #fff transparent #fff transparent; -webkit-animation-direction: reverse; animation-direction: reverse; } @-webkit-keyframes ball-scale-ripple { 0% { -webkit-transform: scale(0.1); transform: scale(0.1); opacity: 1; } 70% { -webkit-transform: scale(1); transform: scale(1); opacity: 0.7; } 100% { opacity: 0.0; } } @keyframes ball-scale-ripple { 0% { -webkit-transform: scale(0.1); transform: scale(0.1); opacity: 1; } 70% { -webkit-transform: scale(1); transform: scale(1); opacity: 0.7; } 100% { opacity: 0.0; } } .ball-scale-ripple > div[data-v-39432f99] { -webkit-animation-fill-mode: both; animation-fill-mode: both; height: 50px; width: 50px; border-radius: 100%; border: 2px solid #fff; -webkit-animation: ball-scale-ripple 1s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8); animation: ball-scale-ripple 1s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8); } @-webkit-keyframes ball-scale-ripple-multiple { 0% { -webkit-transform: scale(0.1); transform: scale(0.1); opacity: 1; } 70% { -webkit-transform: scale(1); transform: scale(1); opacity: 0.7; } 100% { opacity: 0.0; } } @keyframes ball-scale-ripple-multiple { 0% { -webkit-transform: scale(0.1); transform: scale(0.1); opacity: 1; } 70% { -webkit-transform: scale(1); transform: scale(1); opacity: 0.7; } 100% { opacity: 0.0; } } .ball-scale-ripple-multiple[data-v-39432f99] { position: relative; -webkit-transform: translateY(-25px); transform: translateY(-25px); } .ball-scale-ripple-multiple > div[data-v-39432f99]:nth-child(0) { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .ball-scale-ripple-multiple > div[data-v-39432f99]:nth-child(1) { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .ball-scale-ripple-multiple > div[data-v-39432f99]:nth-child(2) { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .ball-scale-ripple-multiple > div[data-v-39432f99]:nth-child(3) { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .ball-scale-ripple-multiple > div[data-v-39432f99] { -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; top: -2px; left: -26px; width: 50px; height: 50px; border-radius: 100%; border: 2px solid #fff; -webkit-animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8); animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8); } @-webkit-keyframes ball-beat { 50% { opacity: 0.2; -webkit-transform: scale(0.75); transform: scale(0.75); } 100% { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } } @keyframes ball-beat { 50% { opacity: 0.2; -webkit-transform: scale(0.75); transform: scale(0.75); } 100% { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } } .ball-beat > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; -webkit-animation: ball-beat 0.7s 0s infinite linear; animation: ball-beat 0.7s 0s infinite linear; } .ball-beat > div[data-v-39432f99]:nth-child(2n-1) { -webkit-animation-delay: -0.35s !important; animation-delay: -0.35s !important; } @-webkit-keyframes ball-scale-multiple { 0% { -webkit-transform: scale(0); transform: scale(0); opacity: 0; } 5% { opacity: 1; } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 0; } } @keyframes ball-scale-multiple { 0% { -webkit-transform: scale(0); transform: scale(0); opacity: 0; } 5% { opacity: 1; } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 0; } } .ball-scale-multiple[data-v-39432f99] { position: relative; -webkit-transform: translateY(-30px); transform: translateY(-30px); } .ball-scale-multiple > div[data-v-39432f99]:nth-child(2) { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .ball-scale-multiple > div[data-v-39432f99]:nth-child(3) { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .ball-scale-multiple > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; left: -30px; top: 0px; opacity: 0; margin: 0; width: 60px; height: 60px; -webkit-animation: ball-scale-multiple 1s 0s linear infinite; animation: ball-scale-multiple 1s 0s linear infinite; } @-webkit-keyframes ball-triangle-path-1 { 33% { -webkit-transform: translate(25px, -50px); transform: translate(25px, -50px); } 66% { -webkit-transform: translate(50px, 0px); transform: translate(50px, 0px); } 100% { -webkit-transform: translate(0px, 0px); transform: translate(0px, 0px); } } @keyframes ball-triangle-path-1 { 33% { -webkit-transform: translate(25px, -50px); transform: translate(25px, -50px); } 66% { -webkit-transform: translate(50px, 0px); transform: translate(50px, 0px); } 100% { -webkit-transform: translate(0px, 0px); transform: translate(0px, 0px); } } @-webkit-keyframes ball-triangle-path-2 { 33% { -webkit-transform: translate(25px, 50px); transform: translate(25px, 50px); } 66% { -webkit-transform: translate(-25px, 50px); transform: translate(-25px, 50px); } 100% { -webkit-transform: translate(0px, 0px); transform: translate(0px, 0px); } } @keyframes ball-triangle-path-2 { 33% { -webkit-transform: translate(25px, 50px); transform: translate(25px, 50px); } 66% { -webkit-transform: translate(-25px, 50px); transform: translate(-25px, 50px); } 100% { -webkit-transform: translate(0px, 0px); transform: translate(0px, 0px); } } @-webkit-keyframes ball-triangle-path-3 { 33% { -webkit-transform: translate(-50px, 0px); transform: translate(-50px, 0px); } 66% { -webkit-transform: translate(-25px, -50px); transform: translate(-25px, -50px); } 100% { -webkit-transform: translate(0px, 0px); transform: translate(0px, 0px); } } @keyframes ball-triangle-path-3 { 33% { -webkit-transform: translate(-50px, 0px); transform: translate(-50px, 0px); } 66% { -webkit-transform: translate(-25px, -50px); transform: translate(-25px, -50px); } 100% { -webkit-transform: translate(0px, 0px); transform: translate(0px, 0px); } } .ball-triangle-path[data-v-39432f99] { position: relative; -webkit-transform: translate(-29.994px, -37.50938px); transform: translate(-29.994px, -37.50938px); } .ball-triangle-path > div[data-v-39432f99]:nth-child(1) { -webkit-animation-name: ball-triangle-path-1; animation-name: ball-triangle-path-1; -webkit-animation-delay: 0; animation-delay: 0; -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } .ball-triangle-path > div[data-v-39432f99]:nth-child(2) { -webkit-animation-name: ball-triangle-path-2; animation-name: ball-triangle-path-2; -webkit-animation-delay: 0; animation-delay: 0; -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } .ball-triangle-path > div[data-v-39432f99]:nth-child(3) { -webkit-animation-name: ball-triangle-path-3; animation-name: ball-triangle-path-3; -webkit-animation-delay: 0; animation-delay: 0; -webkit-animation-duration: 2s; animation-duration: 2s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } .ball-triangle-path > div[data-v-39432f99] { -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; width: 10px; height: 10px; border-radius: 100%; border: 1px solid #fff; } .ball-triangle-path > div[data-v-39432f99]:nth-of-type(1) { top: 50px; } .ball-triangle-path > div[data-v-39432f99]:nth-of-type(2) { left: 25px; } .ball-triangle-path > div[data-v-39432f99]:nth-of-type(3) { top: 50px; left: 50px; } @-webkit-keyframes ball-pulse-rise-even { 0% { -webkit-transform: scale(1.1); transform: scale(1.1); } 25% { -webkit-transform: translateY(-30px); transform: translateY(-30px); } 50% { -webkit-transform: scale(0.4); transform: scale(0.4); } 75% { -webkit-transform: translateY(30px); transform: translateY(30px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); -webkit-transform: scale(1); transform: scale(1); } } @keyframes ball-pulse-rise-even { 0% { -webkit-transform: scale(1.1); transform: scale(1.1); } 25% { -webkit-transform: translateY(-30px); transform: translateY(-30px); } 50% { -webkit-transform: scale(0.4); transform: scale(0.4); } 75% { -webkit-transform: translateY(30px); transform: translateY(30px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); -webkit-transform: scale(1); transform: scale(1); } } @-webkit-keyframes ball-pulse-rise-odd { 0% { -webkit-transform: scale(0.4); transform: scale(0.4); } 25% { -webkit-transform: translateY(30px); transform: translateY(30px); } 50% { -webkit-transform: scale(1.1); transform: scale(1.1); } 75% { -webkit-transform: translateY(-30px); transform: translateY(-30px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); -webkit-transform: scale(0.75); transform: scale(0.75); } } @keyframes ball-pulse-rise-odd { 0% { -webkit-transform: scale(0.4); transform: scale(0.4); } 25% { -webkit-transform: translateY(30px); transform: translateY(30px); } 50% { -webkit-transform: scale(1.1); transform: scale(1.1); } 75% { -webkit-transform: translateY(-30px); transform: translateY(-30px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); -webkit-transform: scale(0.75); transform: scale(0.75); } } .ball-pulse-rise > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: cubic-bezier(0.15, 0.46, 0.9, 0.6); animation-timing-function: cubic-bezier(0.15, 0.46, 0.9, 0.6); -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-delay: 0; animation-delay: 0; } .ball-pulse-rise > div[data-v-39432f99]:nth-child(2n) { -webkit-animation-name: ball-pulse-rise-even; animation-name: ball-pulse-rise-even; } .ball-pulse-rise > div[data-v-39432f99]:nth-child(2n-1) { -webkit-animation-name: ball-pulse-rise-odd; animation-name: ball-pulse-rise-odd; } @-webkit-keyframes ball-grid-beat { 50% { opacity: 0.7; } 100% { opacity: 1; } } @keyframes ball-grid-beat { 50% { opacity: 0.7; } 100% { opacity: 1; } } .ball-grid-beat[data-v-39432f99] { width: 57px; } .ball-grid-beat > div[data-v-39432f99]:nth-child(1) { -webkit-animation-delay: 0.44s; animation-delay: 0.44s; -webkit-animation-duration: 1.27s; animation-duration: 1.27s; } .ball-grid-beat > div[data-v-39432f99]:nth-child(2) { -webkit-animation-delay: 0.2s; animation-delay: 0.2s; -webkit-animation-duration: 1.52s; animation-duration: 1.52s; } .ball-grid-beat > div[data-v-39432f99]:nth-child(3) { -webkit-animation-delay: 0.14s; animation-delay: 0.14s; -webkit-animation-duration: 0.61s; animation-duration: 0.61s; } .ball-grid-beat > div[data-v-39432f99]:nth-child(4) { -webkit-animation-delay: 0.15s; animation-delay: 0.15s; -webkit-animation-duration: 0.82s; animation-duration: 0.82s; } .ball-grid-beat > div[data-v-39432f99]:nth-child(5) { -webkit-animation-delay: -0.01s; animation-delay: -0.01s; -webkit-animation-duration: 1.24s; animation-duration: 1.24s; } .ball-grid-beat > div[data-v-39432f99]:nth-child(6) { -webkit-animation-delay: -0.07s; animation-delay: -0.07s; -webkit-animation-duration: 1.35s; animation-duration: 1.35s; } .ball-grid-beat > div[data-v-39432f99]:nth-child(7) { -webkit-animation-delay: 0.29s; animation-delay: 0.29s; -webkit-animation-duration: 1.44s; animation-duration: 1.44s; } .ball-grid-beat > div[data-v-39432f99]:nth-child(8) { -webkit-animation-delay: 0.63s; animation-delay: 0.63s; -webkit-animation-duration: 1.19s; animation-duration: 1.19s; } .ball-grid-beat > div[data-v-39432f99]:nth-child(9) { -webkit-animation-delay: -0.18s; animation-delay: -0.18s; -webkit-animation-duration: 1.48s; animation-duration: 1.48s; } .ball-grid-beat > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; float: left; -webkit-animation-name: ball-grid-beat; animation-name: ball-grid-beat; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-delay: 0; animation-delay: 0; } @-webkit-keyframes ball-grid-pulse { 0% { -webkit-transform: scale(1); transform: scale(1); } 50% { -webkit-transform: scale(0.5); transform: scale(0.5); opacity: 0.7; } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; } } @keyframes ball-grid-pulse { 0% { -webkit-transform: scale(1); transform: scale(1); } 50% { -webkit-transform: scale(0.5); transform: scale(0.5); opacity: 0.7; } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; } } .ball-grid-pulse[data-v-39432f99] { width: 57px; } .ball-grid-pulse > div[data-v-39432f99]:nth-child(1) { -webkit-animation-delay: 0.58s; animation-delay: 0.58s; -webkit-animation-duration: 0.9s; animation-duration: 0.9s; } .ball-grid-pulse > div[data-v-39432f99]:nth-child(2) { -webkit-animation-delay: 0.01s; animation-delay: 0.01s; -webkit-animation-duration: 0.94s; animation-duration: 0.94s; } .ball-grid-pulse > div[data-v-39432f99]:nth-child(3) { -webkit-animation-delay: 0.25s; animation-delay: 0.25s; -webkit-animation-duration: 1.43s; animation-duration: 1.43s; } .ball-grid-pulse > div[data-v-39432f99]:nth-child(4) { -webkit-animation-delay: -0.03s; animation-delay: -0.03s; -webkit-animation-duration: 0.74s; animation-duration: 0.74s; } .ball-grid-pulse > div[data-v-39432f99]:nth-child(5) { -webkit-animation-delay: 0.21s; animation-delay: 0.21s; -webkit-animation-duration: 0.68s; animation-duration: 0.68s; } .ball-grid-pulse > div[data-v-39432f99]:nth-child(6) { -webkit-animation-delay: 0.25s; animation-delay: 0.25s; -webkit-animation-duration: 1.17s; animation-duration: 1.17s; } .ball-grid-pulse > div[data-v-39432f99]:nth-child(7) { -webkit-animation-delay: 0.46s; animation-delay: 0.46s; -webkit-animation-duration: 1.41s; animation-duration: 1.41s; } .ball-grid-pulse > div[data-v-39432f99]:nth-child(8) { -webkit-animation-delay: 0.02s; animation-delay: 0.02s; -webkit-animation-duration: 1.56s; animation-duration: 1.56s; } .ball-grid-pulse > div[data-v-39432f99]:nth-child(9) { -webkit-animation-delay: 0.13s; animation-delay: 0.13s; -webkit-animation-duration: 0.78s; animation-duration: 0.78s; } .ball-grid-pulse > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; float: left; -webkit-animation-name: ball-grid-pulse; animation-name: ball-grid-pulse; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-delay: 0; animation-delay: 0; } @-webkit-keyframes ball-spin-fade-loader { 50% { opacity: 0.3; -webkit-transform: scale(0.4); transform: scale(0.4); } 100% { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } } @keyframes ball-spin-fade-loader { 50% { opacity: 0.3; -webkit-transform: scale(0.4); transform: scale(0.4); } 100% { opacity: 1; -webkit-transform: scale(1); transform: scale(1); } } .ball-spin-fade-loader[data-v-39432f99] { position: relative; top: -10px; left: -10px; } .ball-spin-fade-loader > div[data-v-39432f99]:nth-child(1) { top: 25px; left: 0; -webkit-animation: ball-spin-fade-loader 1s -0.96s infinite linear; animation: ball-spin-fade-loader 1s -0.96s infinite linear; } .ball-spin-fade-loader > div[data-v-39432f99]:nth-child(2) { top: 17.04545px; left: 17.04545px; -webkit-animation: ball-spin-fade-loader 1s -0.84s infinite linear; animation: ball-spin-fade-loader 1s -0.84s infinite linear; } .ball-spin-fade-loader > div[data-v-39432f99]:nth-child(3) { top: 0; left: 25px; -webkit-animation: ball-spin-fade-loader 1s -0.72s infinite linear; animation: ball-spin-fade-loader 1s -0.72s infinite linear; } .ball-spin-fade-loader > div[data-v-39432f99]:nth-child(4) { top: -17.04545px; left: 17.04545px; -webkit-animation: ball-spin-fade-loader 1s -0.6s infinite linear; animation: ball-spin-fade-loader 1s -0.6s infinite linear; } .ball-spin-fade-loader > div[data-v-39432f99]:nth-child(5) { top: -25px; left: 0; -webkit-animation: ball-spin-fade-loader 1s -0.48s infinite linear; animation: ball-spin-fade-loader 1s -0.48s infinite linear; } .ball-spin-fade-loader > div[data-v-39432f99]:nth-child(6) { top: -17.04545px; left: -17.04545px; -webkit-animation: ball-spin-fade-loader 1s -0.36s infinite linear; animation: ball-spin-fade-loader 1s -0.36s infinite linear; } .ball-spin-fade-loader > div[data-v-39432f99]:nth-child(7) { top: 0; left: -25px; -webkit-animation: ball-spin-fade-loader 1s -0.24s infinite linear; animation: ball-spin-fade-loader 1s -0.24s infinite linear; } .ball-spin-fade-loader > div[data-v-39432f99]:nth-child(8) { top: 17.04545px; left: -17.04545px; -webkit-animation: ball-spin-fade-loader 1s -0.12s infinite linear; animation: ball-spin-fade-loader 1s -0.12s infinite linear; } .ball-spin-fade-loader > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; } @-webkit-keyframes ball-spin-loader { 75% { opacity: 0.2; } 100% { opacity: 1; } } @keyframes ball-spin-loader { 75% { opacity: 0.2; } 100% { opacity: 1; } } .ball-spin-loader[data-v-39432f99] { position: relative; } .ball-spin-loader > span[data-v-39432f99]:nth-child(1) { top: 45px; left: 0; -webkit-animation: ball-spin-loader 2s 0.9s infinite linear; animation: ball-spin-loader 2s 0.9s infinite linear; } .ball-spin-loader > span[data-v-39432f99]:nth-child(2) { top: 30.68182px; left: 30.68182px; -webkit-animation: ball-spin-loader 2s 1.8s infinite linear; animation: ball-spin-loader 2s 1.8s infinite linear; } .ball-spin-loader > span[data-v-39432f99]:nth-child(3) { top: 0; left: 45px; -webkit-animation: ball-spin-loader 2s 2.7s infinite linear; animation: ball-spin-loader 2s 2.7s infinite linear; } .ball-spin-loader > span[data-v-39432f99]:nth-child(4) { top: -30.68182px; left: 30.68182px; -webkit-animation: ball-spin-loader 2s 3.6s infinite linear; animation: ball-spin-loader 2s 3.6s infinite linear; } .ball-spin-loader > span[data-v-39432f99]:nth-child(5) { top: -45px; left: 0; -webkit-animation: ball-spin-loader 2s 4.5s infinite linear; animation: ball-spin-loader 2s 4.5s infinite linear; } .ball-spin-loader > span[data-v-39432f99]:nth-child(6) { top: -30.68182px; left: -30.68182px; -webkit-animation: ball-spin-loader 2s 5.4s infinite linear; animation: ball-spin-loader 2s 5.4s infinite linear; } .ball-spin-loader > span[data-v-39432f99]:nth-child(7) { top: 0; left: -45px; -webkit-animation: ball-spin-loader 2s 6.3s infinite linear; animation: ball-spin-loader 2s 6.3s infinite linear; } .ball-spin-loader > span[data-v-39432f99]:nth-child(8) { top: 30.68182px; left: -30.68182px; -webkit-animation: ball-spin-loader 2s 7.2s infinite linear; animation: ball-spin-loader 2s 7.2s infinite linear; } .ball-spin-loader > div[data-v-39432f99] { -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; width: 15px; height: 15px; border-radius: 100%; background: green; } @-webkit-keyframes ball-zig { 33% { -webkit-transform: translate(-15px, -30px); transform: translate(-15px, -30px); } 66% { -webkit-transform: translate(15px, -30px); transform: translate(15px, -30px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @keyframes ball-zig { 33% { -webkit-transform: translate(-15px, -30px); transform: translate(-15px, -30px); } 66% { -webkit-transform: translate(15px, -30px); transform: translate(15px, -30px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @-webkit-keyframes ball-zag { 33% { -webkit-transform: translate(15px, 30px); transform: translate(15px, 30px); } 66% { -webkit-transform: translate(-15px, 30px); transform: translate(-15px, 30px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @keyframes ball-zag { 33% { -webkit-transform: translate(15px, 30px); transform: translate(15px, 30px); } 66% { -webkit-transform: translate(-15px, 30px); transform: translate(-15px, 30px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } .ball-zig-zag[data-v-39432f99] { position: relative; -webkit-transform: translate(-15px, -15px); transform: translate(-15px, -15px); } .ball-zig-zag > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; margin-left: 15px; top: 4px; left: -7px; } .ball-zig-zag > div[data-v-39432f99]:first-child { -webkit-animation: ball-zig 0.7s 0s infinite linear; animation: ball-zig 0.7s 0s infinite linear; } .ball-zig-zag > div[data-v-39432f99]:last-child { -webkit-animation: ball-zag 0.7s 0s infinite linear; animation: ball-zag 0.7s 0s infinite linear; } @-webkit-keyframes ball-zig-deflect { 17% { -webkit-transform: translate(-15px, -30px); transform: translate(-15px, -30px); } 34% { -webkit-transform: translate(15px, -30px); transform: translate(15px, -30px); } 50% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 67% { -webkit-transform: translate(15px, -30px); transform: translate(15px, -30px); } 84% { -webkit-transform: translate(-15px, -30px); transform: translate(-15px, -30px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @keyframes ball-zig-deflect { 17% { -webkit-transform: translate(-15px, -30px); transform: translate(-15px, -30px); } 34% { -webkit-transform: translate(15px, -30px); transform: translate(15px, -30px); } 50% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 67% { -webkit-transform: translate(15px, -30px); transform: translate(15px, -30px); } 84% { -webkit-transform: translate(-15px, -30px); transform: translate(-15px, -30px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @-webkit-keyframes ball-zag-deflect { 17% { -webkit-transform: translate(15px, 30px); transform: translate(15px, 30px); } 34% { -webkit-transform: translate(-15px, 30px); transform: translate(-15px, 30px); } 50% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 67% { -webkit-transform: translate(-15px, 30px); transform: translate(-15px, 30px); } 84% { -webkit-transform: translate(15px, 30px); transform: translate(15px, 30px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @keyframes ball-zag-deflect { 17% { -webkit-transform: translate(15px, 30px); transform: translate(15px, 30px); } 34% { -webkit-transform: translate(-15px, 30px); transform: translate(-15px, 30px); } 50% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 67% { -webkit-transform: translate(-15px, 30px); transform: translate(-15px, 30px); } 84% { -webkit-transform: translate(15px, 30px); transform: translate(15px, 30px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } .ball-zig-zag-deflect[data-v-39432f99] { position: relative; -webkit-transform: translate(-15px, -15px); transform: translate(-15px, -15px); } .ball-zig-zag-deflect > div[data-v-39432f99] { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; margin-left: 15px; top: 4px; left: -7px; } .ball-zig-zag-deflect > div[data-v-39432f99]:first-child { -webkit-animation: ball-zig-deflect 1.5s 0s infinite linear; animation: ball-zig-deflect 1.5s 0s infinite linear; } .ball-zig-zag-deflect > div[data-v-39432f99]:last-child { -webkit-animation: ball-zag-deflect 1.5s 0s infinite linear; animation: ball-zag-deflect 1.5s 0s infinite linear; } /** * Lines */ @-webkit-keyframes line-scale { 0% { -webkit-transform: scaley(1); transform: scaley(1); } 50% { -webkit-transform: scaley(0.4); transform: scaley(0.4); } 100% { -webkit-transform: scaley(1); transform: scaley(1); } } @keyframes line-scale { 0% { -webkit-transform: scaley(1); transform: scaley(1); } 50% { -webkit-transform: scaley(0.4); transform: scaley(0.4); } 100% { -webkit-transform: scaley(1); transform: scaley(1); } } .line-scale > div[data-v-39432f99]:nth-child(1) { -webkit-animation: line-scale 1s -0.4s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); animation: line-scale 1s -0.4s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } .line-scale > div[data-v-39432f99]:nth-child(2) { -webkit-animation: line-scale 1s -0.3s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); animation: line-scale 1s -0.3s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } .line-scale > div[data-v-39432f99]:nth-child(3) { -webkit-animation: line-scale 1s -0.2s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); animation: line-scale 1s -0.2s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } .line-scale > div[data-v-39432f99]:nth-child(4) { -webkit-animation: line-scale 1s -0.1s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); animation: line-scale 1s -0.1s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } .line-scale > div[data-v-39432f99]:nth-child(5) { -webkit-animation: line-scale 1s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); animation: line-scale 1s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } .line-scale > div[data-v-39432f99] { background-color: #fff; width: 4px; height: 35px; border-radius: 2px; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; } @-webkit-keyframes line-scale-party { 0% { -webkit-transform: scale(1); transform: scale(1); } 50% { -webkit-transform: scale(0.5); transform: scale(0.5); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @keyframes line-scale-party { 0% { -webkit-transform: scale(1); transform: scale(1); } 50% { -webkit-transform: scale(0.5); transform: scale(0.5); } 100% { -webkit-transform: scale(1); transform: scale(1); } } .line-scale-party > div[data-v-39432f99]:nth-child(1) { -webkit-animation-delay: -0.09s; animation-delay: -0.09s; -webkit-animation-duration: 0.83s; animation-duration: 0.83s; } .line-scale-party > div[data-v-39432f99]:nth-child(2) { -webkit-animation-delay: 0.33s; animation-delay: 0.33s; -webkit-animation-duration: 0.64s; animation-duration: 0.64s; } .line-scale-party > div[data-v-39432f99]:nth-child(3) { -webkit-animation-delay: 0.32s; animation-delay: 0.32s; -webkit-animation-duration: 0.39s; animation-duration: 0.39s; } .line-scale-party > div[data-v-39432f99]:nth-child(4) { -webkit-animation-delay: 0.47s; animation-delay: 0.47s; -webkit-animation-duration: 0.52s; animation-duration: 0.52s; } .line-scale-party > div[data-v-39432f99] { background-color: #fff; width: 4px; height: 35px; border-radius: 2px; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; -webkit-animation-name: line-scale-party; animation-name: line-scale-party; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-delay: 0; animation-delay: 0; } @-webkit-keyframes line-scale-pulse-out { 0% { -webkit-transform: scaley(1); transform: scaley(1); } 50% { -webkit-transform: scaley(0.4); transform: scaley(0.4); } 100% { -webkit-transform: scaley(1); transform: scaley(1); } } @keyframes line-scale-pulse-out { 0% { -webkit-transform: scaley(1); transform: scaley(1); } 50% { -webkit-transform: scaley(0.4); transform: scaley(0.4); } 100% { -webkit-transform: scaley(1); transform: scaley(1); } } .line-scale-pulse-out > div[data-v-39432f99] { background-color: #fff; width: 4px; height: 35px; border-radius: 2px; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; -webkit-animation: line-scale-pulse-out 0.9s -0.6s infinite cubic-bezier(0.85, 0.25, 0.37, 0.85); animation: line-scale-pulse-out 0.9s -0.6s infinite cubic-bezier(0.85, 0.25, 0.37, 0.85); } .line-scale-pulse-out > div[data-v-39432f99]:nth-child(2), .line-scale-pulse-out > div[data-v-39432f99]:nth-child(4) { -webkit-animation-delay: -0.4s !important; animation-delay: -0.4s !important; } .line-scale-pulse-out > div[data-v-39432f99]:nth-child(1), .line-scale-pulse-out > div[data-v-39432f99]:nth-child(5) { -webkit-animation-delay: -0.2s !important; animation-delay: -0.2s !important; } @-webkit-keyframes line-scale-pulse-out-rapid { 0% { -webkit-transform: scaley(1); transform: scaley(1); } 80% { -webkit-transform: scaley(0.3); transform: scaley(0.3); } 90% { -webkit-transform: scaley(1); transform: scaley(1); } } @keyframes line-scale-pulse-out-rapid { 0% { -webkit-transform: scaley(1); transform: scaley(1); } 80% { -webkit-transform: scaley(0.3); transform: scaley(0.3); } 90% { -webkit-transform: scaley(1); transform: scaley(1); } } .line-scale-pulse-out-rapid > div[data-v-39432f99] { background-color: #fff; width: 4px; height: 35px; border-radius: 2px; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; display: inline-block; -webkit-animation: line-scale-pulse-out-rapid 0.9s -0.5s infinite cubic-bezier(0.11, 0.49, 0.38, 0.78); animation: line-scale-pulse-out-rapid 0.9s -0.5s infinite cubic-bezier(0.11, 0.49, 0.38, 0.78); } .line-scale-pulse-out-rapid > div[data-v-39432f99]:nth-child(2), .line-scale-pulse-out-rapid > div[data-v-39432f99]:nth-child(4) { -webkit-animation-delay: -0.25s !important; animation-delay: -0.25s !important; } .line-scale-pulse-out-rapid > div[data-v-39432f99]:nth-child(1), .line-scale-pulse-out-rapid > div[data-v-39432f99]:nth-child(5) { -webkit-animation-delay: 0s !important; animation-delay: 0s !important; } @-webkit-keyframes line-spin-fade-loader { 50% { opacity: 0.3; } 100% { opacity: 1; } } @keyframes line-spin-fade-loader { 50% { opacity: 0.3; } 100% { opacity: 1; } } .line-spin-fade-loader[data-v-39432f99] { position: relative; top: -10px; left: -4px; } .line-spin-fade-loader > div[data-v-39432f99]:nth-child(1) { top: 20px; left: 0; -webkit-animation: line-spin-fade-loader 1.2s -0.84s infinite ease-in-out; animation: line-spin-fade-loader 1.2s -0.84s infinite ease-in-out; } .line-spin-fade-loader > div[data-v-39432f99]:nth-child(2) { top: 13.63636px; left: 13.63636px; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); -webkit-animation: line-spin-fade-loader 1.2s -0.72s infinite ease-in-out; animation: line-spin-fade-loader 1.2s -0.72s infinite ease-in-out; } .line-spin-fade-loader > div[data-v-39432f99]:nth-child(3) { top: 0; left: 20px; -webkit-transform: rotate(90deg); transform: rotate(90deg); -webkit-animation: line-spin-fade-loader 1.2s -0.6s infinite ease-in-out; animation: line-spin-fade-loader 1.2s -0.6s infinite ease-in-out; } .line-spin-fade-loader > div[data-v-39432f99]:nth-child(4) { top: -13.63636px; left: 13.63636px; -webkit-transform: rotate(45deg); transform: rotate(45deg); -webkit-animation: line-spin-fade-loader 1.2s -0.48s infinite ease-in-out; animation: line-spin-fade-loader 1.2s -0.48s infinite ease-in-out; } .line-spin-fade-loader > div[data-v-39432f99]:nth-child(5) { top: -20px; left: 0; -webkit-animation: line-spin-fade-loader 1.2s -0.36s infinite ease-in-out; animation: line-spin-fade-loader 1.2s -0.36s infinite ease-in-out; } .line-spin-fade-loader > div[data-v-39432f99]:nth-child(6) { top: -13.63636px; left: -13.63636px; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); -webkit-animation: line-spin-fade-loader 1.2s -0.24s infinite ease-in-out; animation: line-spin-fade-loader 1.2s -0.24s infinite ease-in-out; } .line-spin-fade-loader > div[data-v-39432f99]:nth-child(7) { top: 0; left: -20px; -webkit-transform: rotate(90deg); transform: rotate(90deg); -webkit-animation: line-spin-fade-loader 1.2s -0.12s infinite ease-in-out; animation: line-spin-fade-loader 1.2s -0.12s infinite ease-in-out; } .line-spin-fade-loader > div[data-v-39432f99]:nth-child(8) { top: 13.63636px; left: -13.63636px; -webkit-transform: rotate(45deg); transform: rotate(45deg); -webkit-animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out; animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out; } .line-spin-fade-loader > div[data-v-39432f99] { background-color: #fff; width: 4px; height: 35px; border-radius: 2px; margin: 2px; -webkit-animation-fill-mode: both; animation-fill-mode: both; position: absolute; width: 5px; height: 15px; } /** * Misc */ @-webkit-keyframes triangle-skew-spin { 25% { -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0); transform: perspective(100px) rotateX(180deg) rotateY(0); } 50% { -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg); transform: perspective(100px) rotateX(180deg) rotateY(180deg); } 75% { -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg); transform: perspective(100px) rotateX(0) rotateY(180deg); } 100% { -webkit-transform: perspective(100px) rotateX(0) rotateY(0); transform: perspective(100px) rotateX(0) rotateY(0); } } @keyframes triangle-skew-spin { 25% { -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0); transform: perspective(100px) rotateX(180deg) rotateY(0); } 50% { -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg); transform: perspective(100px) rotateX(180deg) rotateY(180deg); } 75% { -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg); transform: perspective(100px) rotateX(0) rotateY(180deg); } 100% { -webkit-transform: perspective(100px) rotateX(0) rotateY(0); transform: perspective(100px) rotateX(0) rotateY(0); } } .triangle-skew-spin > div[data-v-39432f99] { -webkit-animation-fill-mode: both; animation-fill-mode: both; width: 0; height: 0; border-left: 20px solid transparent; border-right: 20px solid transparent; border-bottom: 20px solid #fff; -webkit-animation: triangle-skew-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; animation: triangle-skew-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; } @-webkit-keyframes square-spin { 25% { -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0); transform: perspective(100px) rotateX(180deg) rotateY(0); } 50% { -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg); transform: perspective(100px) rotateX(180deg) rotateY(180deg); } 75% { -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg); transform: perspective(100px) rotateX(0) rotateY(180deg); } 100% { -webkit-transform: perspective(100px) rotateX(0) rotateY(0); transform: perspective(100px) rotateX(0) rotateY(0); } } @keyframes square-spin { 25% { -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0); transform: perspective(100px) rotateX(180deg) rotateY(0); } 50% { -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg); transform: perspective(100px) rotateX(180deg) rotateY(180deg); } 75% { -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg); transform: perspective(100px) rotateX(0) rotateY(180deg); } 100% { -webkit-transform: perspective(100px) rotateX(0) rotateY(0); transform: perspective(100px) rotateX(0) rotateY(0); } } .square-spin > div[data-v-39432f99] { -webkit-animation-fill-mode: both; animation-fill-mode: both; width: 50px; height: 50px; background: #fff; border: 1px solid red; -webkit-animation: square-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; animation: square-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; } @-webkit-keyframes rotate_pacman_half_up { 0% { -webkit-transform: rotate(270deg); transform: rotate(270deg); } 50% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } 100% { -webkit-transform: rotate(270deg); transform: rotate(270deg); } } @keyframes rotate_pacman_half_up { 0% { -webkit-transform: rotate(270deg); transform: rotate(270deg); } 50% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } 100% { -webkit-transform: rotate(270deg); transform: rotate(270deg); } } @-webkit-keyframes rotate_pacman_half_down { 0% { -webkit-transform: rotate(90deg); transform: rotate(90deg); } 50% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(90deg); transform: rotate(90deg); } } @keyframes rotate_pacman_half_down { 0% { -webkit-transform: rotate(90deg); transform: rotate(90deg); } 50% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(90deg); transform: rotate(90deg); } } @-webkit-keyframes pacman-balls { 75% { opacity: 0.7; } 100% { -webkit-transform: translate(-100px, -6.25px); transform: translate(-100px, -6.25px); } } @keyframes pacman-balls { 75% { opacity: 0.7; } 100% { -webkit-transform: translate(-100px, -6.25px); transform: translate(-100px, -6.25px); } } .pacman[data-v-39432f99] { position: relative; } .pacman > div[data-v-39432f99]:nth-child(2) { -webkit-animation: pacman-balls 1s -0.99s infinite linear; animation: pacman-balls 1s -0.99s infinite linear; } .pacman > div[data-v-39432f99]:nth-child(3) { -webkit-animation: pacman-balls 1s -0.66s infinite linear; animation: pacman-balls 1s -0.66s infinite linear; } .pacman > div[data-v-39432f99]:nth-child(4) { -webkit-animation: pacman-balls 1s -0.33s infinite linear; animation: pacman-balls 1s -0.33s infinite linear; } .pacman > div[data-v-39432f99]:nth-child(5) { -webkit-animation: pacman-balls 1s 0s infinite linear; animation: pacman-balls 1s 0s infinite linear; } .pacman > div[data-v-39432f99]:first-of-type { width: 0px; height: 0px; border-right: 25px solid transparent; border-top: 25px solid #fff; border-left: 25px solid #fff; border-bottom: 25px solid #fff; border-radius: 25px; -webkit-animation: rotate_pacman_half_up 0.5s 0s infinite; animation: rotate_pacman_half_up 0.5s 0s infinite; position: relative; left: -30px; } .pacman > div[data-v-39432f99]:nth-child(2) { width: 0px; height: 0px; border-right: 25px solid transparent; border-top: 25px solid #fff; border-left: 25px solid #fff; border-bottom: 25px solid #fff; border-radius: 25px; -webkit-animation: rotate_pacman_half_down 0.5s 0s infinite; animation: rotate_pacman_half_down 0.5s 0s infinite; margin-top: -50px; position: relative; left: -30px; } .pacman > div[data-v-39432f99]:nth-child(3), .pacman > div[data-v-39432f99]:nth-child(4), .pacman > div[data-v-39432f99]:nth-child(5), .pacman > div[data-v-39432f99]:nth-child(6) { background-color: #fff; width: 15px; height: 15px; border-radius: 100%; margin: 2px; width: 10px; height: 10px; position: absolute; -webkit-transform: translate(0, -6.25px); transform: translate(0, -6.25px); top: 25px; left: 70px; } @-webkit-keyframes cube-transition { 25% { -webkit-transform: translateX(50px) scale(0.5) rotate(-90deg); transform: translateX(50px) scale(0.5) rotate(-90deg); } 50% { -webkit-transform: translate(50px, 50px) rotate(-180deg); transform: translate(50px, 50px) rotate(-180deg); } 75% { -webkit-transform: translateY(50px) scale(0.5) rotate(-270deg); transform: translateY(50px) scale(0.5) rotate(-270deg); } 100% { -webkit-transform: rotate(-360deg); transform: rotate(-360deg); } } @keyframes cube-transition { 25% { -webkit-transform: translateX(50px) scale(0.5) rotate(-90deg); transform: translateX(50px) scale(0.5) rotate(-90deg); } 50% { -webkit-transform: translate(50px, 50px) rotate(-180deg); transform: translate(50px, 50px) rotate(-180deg); } 75% { -webkit-transform: translateY(50px) scale(0.5) rotate(-270deg); transform: translateY(50px) scale(0.5) rotate(-270deg); } 100% { -webkit-transform: rotate(-360deg); transform: rotate(-360deg); } } .cube-transition[data-v-39432f99] { position: relative; -webkit-transform: translate(-25px, -25px); transform: translate(-25px, -25px); } .cube-transition > div[data-v-39432f99] { -webkit-animation-fill-mode: both; animation-fill-mode: both; width: 10px; height: 10px; position: absolute; top: -5px; left: -5px; background-color: #fff; -webkit-animation: cube-transition 1.6s 0s infinite ease-in-out; animation: cube-transition 1.6s 0s infinite ease-in-out; } .cube-transition > div[data-v-39432f99]:last-child { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } @-webkit-keyframes spin-rotate { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 50% { -webkit-transform: rotate(180deg); transform: rotate(180deg); } 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes spin-rotate { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 50% { -webkit-transform: rotate(180deg); transform: rotate(180deg); } 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } .semi-circle-spin[data-v-39432f99] { position: relative; width: 35px; height: 35px; overflow: hidden; } .semi-circle-spin > div[data-v-39432f99] { position: absolute; border-width: 0px; border-radius: 100%; -webkit-animation: spin-rotate 0.6s 0s infinite linear; animation: spin-rotate 0.6s 0s infinite linear; background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(70%, transparent), color-stop(30%, #fff), to(#fff)); background-image: linear-gradient(transparent 0%, transparent 70%, #fff 30%, #fff 100%); width: 100%; height: 100%; } @-webkit-keyframes bar-progress { 0% { -webkit-transform: scaleY(20%); transform: scaleY(20%); opacity: 1; } 25% { -webkit-transform: translateX(6%) scaleY(10%); transform: translateX(6%) scaleY(10%); opacity: 0.7; } 50% { -webkit-transform: translateX(20%) scaleY(20%); transform: translateX(20%) scaleY(20%); opacity: 1; } 75% { -webkit-transform: translateX(6%) scaleY(10%); transform: translateX(6%) scaleY(10%); opacity: 0.7; } 100% { -webkit-transform: scaleY(20%); transform: scaleY(20%); opacity: 1; } } @keyframes bar-progress { 0% { -webkit-transform: scaleY(20%); transform: scaleY(20%); opacity: 1; } 25% { -webkit-transform: translateX(6%) scaleY(10%); transform: translateX(6%) scaleY(10%); opacity: 0.7; } 50% { -webkit-transform: translateX(20%) scaleY(20%); transform: translateX(20%) scaleY(20%); opacity: 1; } 75% { -webkit-transform: translateX(6%) scaleY(10%); transform: translateX(6%) scaleY(10%); opacity: 0.7; } 100% { -webkit-transform: scaleY(20%); transform: scaleY(20%); opacity: 1; } } .bar-progress[data-v-39432f99] { width: 30%; height: 12px; } .bar-progress > div[data-v-39432f99] { position: relative; width: 20%; height: 12px; border-radius: 10px; background-color: #fff; -webkit-animation: bar-progress 3s cubic-bezier(0.57, 0.1, 0.44, 0.93) infinite; animation: bar-progress 3s cubic-bezier(0.57, 0.1, 0.44, 0.93) infinite; opacity: 1; } @-webkit-keyframes bar-swing { 0% { left: 0; } 50% { left: 70%; } 100% { left: 0; } } @keyframes bar-swing { 0% { left: 0; } 50% { left: 70%; } 100% { left: 0; } } .bar-swing[data-v-39432f99] { width: 30%; height: 8px; } .bar-swing > div[data-v-39432f99] { position: relative; width: 30%; height: 8px; border-radius: 10px; background-color: #fff; -webkit-animation: bar-swing 1.5s infinite; animation: bar-swing 1.5s infinite; } @-webkit-keyframes bar-swing-container { 0% { left: 0; -webkit-transform: translateX(0); transform: translateX(0); } 50% { left: 70%; -webkit-transform: translateX(-4px); transform: translateX(-4px); } 100% { left: 0; -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes bar-swing-container { 0% { left: 0; -webkit-transform: translateX(0); transform: translateX(0); } 50% { left: 70%; -webkit-transform: translateX(-4px); transform: translateX(-4px); } 100% { left: 0; -webkit-transform: translateX(0); transform: translateX(0); } } .bar-swing-container[data-v-39432f99] { width: 20%; height: 8px; position: relative; } .bar-swing-container div[data-v-39432f99]:nth-child(1) { position: absolute; width: 100%; background-color: rgba(255, 255, 255, 0.2); height: 12px; border-radius: 10px; } .bar-swing-container div[data-v-39432f99]:nth-child(2) { position: absolute; width: 30%; height: 8px; border-radius: 10px; background-color: #fff; -webkit-animation: bar-swing-container 2s cubic-bezier(0.91, 0.35, 0.12, 0.6) infinite; animation: bar-swing-container 2s cubic-bezier(0.91, 0.35, 0.12, 0.6) infinite; margin: 2px 2px 0; } .sk-spinner[data-v-39432f99] { color: #333; } .sk-spinner > div[data-v-39432f99] { background-color: currentColor; } @-webkit-keyframes sk-fade-in { 0% { opacity: 0; } 50% { opacity: 0; } 100% { opacity: 1; } } @keyframes sk-fade-in { 0% { opacity: 0; } 50% { opacity: 0; } 100% { opacity: 1; } } .sk-fade-in[data-v-39432f99] { -webkit-animation: sk-fade-in 2s; animation: sk-fade-in 2s; } .sk-fade-in-half-second[data-v-39432f99] { -webkit-animation: sk-fade-in 1s; animation: sk-fade-in 1s; } .sk-fade-in-quarter-second[data-v-39432f99] { -webkit-animation: sk-fade-in 0.5s; animation: sk-fade-in 0.5s; } .sk-rotating-plane > div[data-v-39432f99] { width: 27px; height: 27px; background-color: currentColor; -webkit-animation: sk-rotateplane 1.2s infinite ease-in-out; animation: sk-rotateplane 1.2s infinite ease-in-out; } @-webkit-keyframes sk-rotateplane { 0% { -webkit-transform: perspective(120px) } 50% { -webkit-transform: perspective(120px) rotateY(180deg) } 100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) } } @keyframes sk-rotateplane { 0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); } 50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); } 100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } } .sk-double-bounce[data-v-39432f99] { width: 27px; height: 27px; position: relative; } .sk-double-bounce > div[data-v-39432f99] { width: 100%; height: 100%; border-radius: 50%; background-color: currentColor; opacity: 0.6; position: absolute; top: 0; left: 0; -webkit-animation: sk-bounce 2.0s infinite ease-in-out; animation: sk-bounce 2.0s infinite ease-in-out; } .sk-double-bounce > div[data-v-39432f99]:last-child { -webkit-animation-delay: -1.0s; animation-delay: -1.0s; } @-webkit-keyframes sk-bounce { 0%, 100% { -webkit-transform: scale(0.0) } 50% { -webkit-transform: scale(1.0) } } @keyframes sk-bounce { 0%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0); } 50% { transform: scale(1.0); -webkit-transform: scale(1.0); } } .sk-wave[data-v-39432f99] { width: 50px; height: 40px; text-align: center; font-size: 10px; } .sk-wave > div[data-v-39432f99] { background-color: currentColor; height: 100%; width: 6px; margin: 0 3px 0 0; display: inline-block; -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; animation: sk-stretchdelay 1.2s infinite ease-in-out; } .sk-wave > div[data-v-39432f99]:nth-child(2) { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .sk-wave > div[data-v-39432f99]:nth-child(3) { -webkit-animation-delay: -1.0s; animation-delay: -1.0s; } .sk-wave > div[data-v-39432f99]:nth-child(4) { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .sk-wave > div[data-v-39432f99]:nth-child(5) { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } @-webkit-keyframes sk-stretchdelay { 0%, 40%, 100% { -webkit-transform: scaleY(0.4) } 20% { -webkit-transform: scaleY(1.0) } } @keyframes sk-stretchdelay { 0%, 40%, 100% { transform: scaleY(0.4); -webkit-transform: scaleY(0.4); } 20% { transform: scaleY(1.0); -webkit-transform: scaleY(1.0); } } .sk-wandering-cubes[data-v-39432f99] { width: 52px; height: 52px; position: relative; } .sk-wandering-cubes > div[data-v-39432f99] { background-color: currentColor; width: 10px; height: 10px; position: absolute; top: 0; left: 0; -webkit-animation: sk-cubemove 1.8s infinite ease-in-out; animation: sk-cubemove 1.8s infinite ease-in-out; } .sk-wandering-cubes > div[data-v-39432f99]:last-child { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } @-webkit-keyframes sk-cubemove { 25% { -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5) } 50% { -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg) } 75% { -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5) } 100% { -webkit-transform: rotate(-360deg) } } @keyframes sk-cubemove { 25% { transform: translateX(42px) rotate(-90deg) scale(0.5); -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5); } 50% { /* Hack to make FF rotate in the right direction */ transform: translateX(42px) translateY(42px) rotate(-179deg); -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg); } 50.1%[data-v-39432f99] { transform: translateX(42px) translateY(42px) rotate(-180deg); -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg); } 75% { transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); } 100% { transform: rotate(-360deg); -webkit-transform: rotate(-360deg); } } .sk-pulse > div[data-v-39432f99] { width: 27px; height: 27px; background-color: currentColor; border-radius: 100%; -webkit-animation: sk-scaleout 1.0s infinite ease-in-out; animation: sk-scaleout 1.0s infinite ease-in-out; } @-webkit-keyframes sk-scaleout { 0% { -webkit-transform: scale(0.0) } 100% { -webkit-transform: scale(1.0); opacity: 0; } } @keyframes sk-scaleout { 0% { transform: scale(0.0); -webkit-transform: scale(0.0); } 100% { transform: scale(1.0); -webkit-transform: scale(1.0); opacity: 0; } } .sk-chasing-dots[data-v-39432f99] { width: 27px; height: 27px; position: relative; -webkit-animation: sk-rotate 2.0s infinite linear; animation: sk-rotate 2.0s infinite linear; } .sk-chasing-dots > div[data-v-39432f99] { width: 60%; height: 60%; display: inline-block; position: absolute; top: 0; background-color: currentColor; border-radius: 100%; -webkit-animation: sk-bounce 2.0s infinite ease-in-out; animation: sk-bounce 2.0s infinite ease-in-out; } .sk-chasing-dots > div[data-v-39432f99]:last-child { top: auto; bottom: 0; -webkit-animation-delay: -1.0s; animation-delay: -1.0s; } @-webkit-keyframes sk-rotate { 100% { -webkit-transform: rotate(360deg) }} @keyframes sk-rotate { 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg); } } @-webkit-keyframes sk-bounce { 0%, 100% { -webkit-transform: scale(0.0) } 50% { -webkit-transform: scale(1.0) } } @keyframes sk-bounce { 0%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0); } 50% { transform: scale(1.0); -webkit-transform: scale(1.0); } } .sk-three-bounce[data-v-39432f99] { height: 18px; } .sk-three-bounce > div[data-v-39432f99] { width: 18px; height: 18px; background-color: currentColor; border-radius: 100%; display: inline-block; -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out; animation: sk-bouncedelay 1.4s infinite ease-in-out; /* Prevent first frame from flickering when animation starts */ -webkit-animation-fill-mode: both; animation-fill-mode: both; } .sk-three-bounce > div[data-v-39432f99]:first-child { -webkit-animation-delay: -0.32s; animation-delay: -0.32s; } .sk-three-bounce > div[data-v-39432f99]:nth-child(2) { -webkit-animation-delay: -0.16s; animation-delay: -0.16s; } @-webkit-keyframes sk-bouncedelay { 0%, 80%, 100% { -webkit-transform: scale(0.0) } 40% { -webkit-transform: scale(1.0) } } @keyframes sk-bouncedelay { 0%, 80%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0); } 40% { transform: scale(1.0); -webkit-transform: scale(1.0); } } .sk-circle[data-v-39432f99] { width: 40px; height: 40px; position: relative; } .sk-circle > div[data-v-39432f99] { background-color: initial; width: 100%; height: 100%; position: absolute; left: 0; top: 0; } .sk-circle > div[data-v-39432f99]::before { content: ''; display: block; margin: 0 auto; width: 20%; height: 20%; background-color: currentColor; border-radius: 100%; -webkit-animation: sk-bouncedelay 1.2s infinite ease-in-out; animation: sk-bouncedelay 1.2s infinite ease-in-out; /* Prevent first frame from flickering when animation starts */ -webkit-animation-fill-mode: both; animation-fill-mode: both; } .sk-circle > div[data-v-39432f99]:nth-child(2) { -webkit-transform: rotate(30deg); transform: rotate(30deg) } .sk-circle > div[data-v-39432f99]:nth-child(3) { -webkit-transform: rotate(60deg); transform: rotate(60deg) } .sk-circle > div[data-v-39432f99]:nth-child(4) { -webkit-transform: rotate(90deg); transform: rotate(90deg) } .sk-circle > div[data-v-39432f99]:nth-child(5) { -webkit-transform: rotate(120deg); transform: rotate(120deg) } .sk-circle > div[data-v-39432f99]:nth-child(6) { -webkit-transform: rotate(150deg); transform: rotate(150deg) } .sk-circle > div[data-v-39432f99]:nth-child(7) { -webkit-transform: rotate(180deg); transform: rotate(180deg) } .sk-circle > div[data-v-39432f99]:nth-child(8) { -webkit-transform: rotate(210deg); transform: rotate(210deg) } .sk-circle > div[data-v-39432f99]:nth-child(9) { -webkit-transform: rotate(240deg); transform: rotate(240deg) } .sk-circle > div[data-v-39432f99]:nth-child(10) { -webkit-transform: rotate(270deg); transform: rotate(270deg) } .sk-circle > div[data-v-39432f99]:nth-child(11) { -webkit-transform: rotate(300deg); transform: rotate(300deg) } .sk-circle > div[data-v-39432f99]:nth-child(12) { -webkit-transform: rotate(330deg); transform: rotate(330deg) } .sk-circle > div[data-v-39432f99]:nth-child(2)::before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s } .sk-circle > div[data-v-39432f99]:nth-child(3)::before { -webkit-animation-delay: -1.0s; animation-delay: -1.0s } .sk-circle > div[data-v-39432f99]:nth-child(4)::before { -webkit-animation-delay: -0.9s; animation-delay: -0.9s } .sk-circle > div[data-v-39432f99]:nth-child(5)::before { -webkit-animation-delay: -0.8s; animation-delay: -0.8s } .sk-circle > div[data-v-39432f99]:nth-child(6)::before { -webkit-animation-delay: -0.7s; animation-delay: -0.7s } .sk-circle > div[data-v-39432f99]:nth-child(7)::before { -webkit-animation-delay: -0.6s; animation-delay: -0.6s } .sk-circle > div[data-v-39432f99]:nth-child(8)::before { -webkit-animation-delay: -0.5s; animation-delay: -0.5s } .sk-circle > div[data-v-39432f99]:nth-child(9)::before { -webkit-animation-delay: -0.4s; animation-delay: -0.4s } .sk-circle > div[data-v-39432f99]:nth-child(10)::before { -webkit-animation-delay: -0.3s; animation-delay: -0.3s } .sk-circle > div[data-v-39432f99]:nth-child(11)::before { -webkit-animation-delay: -0.2s; animation-delay: -0.2s } .sk-circle > div[data-v-39432f99]:nth-child(12)::before { -webkit-animation-delay: -0.1s; animation-delay: -0.1s } @-webkit-keyframes sk-bouncedelay { 0%, 80%, 100% { -webkit-transform: scale(0.0) } 40% { -webkit-transform: scale(1.0) } } @keyframes sk-bouncedelay { 0%, 80%, 100% { -webkit-transform: scale(0.0); transform: scale(0.0); } 40% { -webkit-transform: scale(1.0); transform: scale(1.0); } } .sk-cube-grid[data-v-39432f99] { width: 40px; height: 40px; } .sk-cube-grid > div[data-v-39432f99] { width: 33%; height: 33%; background-color: currentColor; float: left; -webkit-animation: sk-scaleDelay 1.3s infinite ease-in-out; animation: sk-scaleDelay 1.3s infinite ease-in-out; } /* * Spinner positions * 1 2 3 * 4 5 6 * 7 8 9 */ .sk-cube-grid > div[data-v-39432f99]:nth-child(1) { -webkit-animation-delay: 0.2s; animation-delay: 0.2s } .sk-cube-grid > div[data-v-39432f99]:nth-child(2) { -webkit-animation-delay: 0.3s; animation-delay: 0.3s } .sk-cube-grid > div[data-v-39432f99]:nth-child(3) { -webkit-animation-delay: 0.4s; animation-delay: 0.4s } .sk-cube-grid > div[data-v-39432f99]:nth-child(4) { -webkit-animation-delay: 0.1s; animation-delay: 0.1s } .sk-cube-grid > div[data-v-39432f99]:nth-child(5) { -webkit-animation-delay: 0.2s; animation-delay: 0.2s } .sk-cube-grid > div[data-v-39432f99]:nth-child(6) { -webkit-animation-delay: 0.3s; animation-delay: 0.3s } .sk-cube-grid > div[data-v-39432f99]:nth-child(7) { -webkit-animation-delay: 0.0s; animation-delay: 0.0s } .sk-cube-grid > div[data-v-39432f99]:nth-child(8) { -webkit-animation-delay: 0.1s; animation-delay: 0.1s } .sk-cube-grid > div[data-v-39432f99]:nth-child(9) { -webkit-animation-delay: 0.2s; animation-delay: 0.2s } @-webkit-keyframes sk-scaleDelay { 0%, 70%, 100% { -webkit-transform:scale3D(1.0, 1.0, 1.0) } 35% { -webkit-transform:scale3D(0.0, 0.0, 1.0) } } @keyframes sk-scaleDelay { 0%, 70%, 100% { -webkit-transform:scale3D(1.0, 1.0, 1.0); transform:scale3D(1.0, 1.0, 1.0) } 35% { -webkit-transform:scale3D(0.0, 0.0, 1.0); transform:scale3D(0.0, 0.0, 1.0) } } .sk-fading-circle[data-v-39432f99] { width: 40px; height: 40px; position: relative; } .sk-fading-circle > div[data-v-39432f99] { background-color: initial; width: 100%; height: 100%; position: absolute; left: 0; top: 0; } .sk-fading-circle > div[data-v-39432f99]::before { content: ''; display: block; margin: 0 auto; width: 15%; height: 15%; background-color: currentColor; border-radius: 100%; -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; } .sk-fading-circle > div[data-v-39432f99]:nth-child(2) { -webkit-transform: rotate(30deg); transform: rotate(30deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(3) { -webkit-transform: rotate(60deg); transform: rotate(60deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(4) { -webkit-transform: rotate(90deg); transform: rotate(90deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(5) { -webkit-transform: rotate(120deg); transform: rotate(120deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(6) { -webkit-transform: rotate(150deg); transform: rotate(150deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(7) { -webkit-transform: rotate(180deg); transform: rotate(180deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(8) { -webkit-transform: rotate(210deg); transform: rotate(210deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(9) { -webkit-transform: rotate(240deg); transform: rotate(240deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(10) { -webkit-transform: rotate(270deg); transform: rotate(270deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(11) { -webkit-transform: rotate(300deg); transform: rotate(300deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(12) { -webkit-transform: rotate(330deg); transform: rotate(330deg); } .sk-fading-circle > div[data-v-39432f99]:nth-child(2)::before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(3)::before { -webkit-animation-delay: -1s; animation-delay: -1s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(4)::before { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(5)::before { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(6)::before { -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(7)::before { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(8)::before { -webkit-animation-delay: -0.5s; animation-delay: -0.5s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(9)::before { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(10)::before { -webkit-animation-delay: -0.3s; animation-delay: -0.3s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(11)::before { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .sk-fading-circle > div[data-v-39432f99]:nth-child(12)::before { -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } @-webkit-keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } } @keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } } .sk-folding-cube[data-v-39432f99] { width: 40px; height: 40px; position: relative; -webkit-transform: rotateZ(45deg); transform: rotateZ(45deg); } .sk-folding-cube > div[data-v-39432f99] { background-color: initial; float: left; width: 50%; height: 50%; position: relative; -webkit-transform: scale(1.1); transform: scale(1.1); } .sk-folding-cube > div[data-v-39432f99]::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: currentColor; -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both; animation: sk-foldCubeAngle 2.4s infinite linear both; -webkit-transform-origin: 100% 100%; transform-origin: 100% 100%; } .sk-folding-cube > div[data-v-39432f99]:nth-child(2) { -webkit-transform: scale(1.1) rotateZ(90deg); transform: scale(1.1) rotateZ(90deg); } .sk-folding-cube > div[data-v-39432f99]:nth-child(4) { -webkit-transform: scale(1.1) rotateZ(180deg); transform: scale(1.1) rotateZ(180deg); } .sk-folding-cube > div[data-v-39432f99]:nth-child(3) { -webkit-transform: scale(1.1) rotateZ(270deg); transform: scale(1.1) rotateZ(270deg); } .sk-folding-cube > div[data-v-39432f99]:nth-child(2)::before { -webkit-animation-delay: 0.3s; animation-delay: 0.3s; } .sk-folding-cube > div[data-v-39432f99]:nth-child(4)::before { -webkit-animation-delay: 0.6s; animation-delay: 0.6s; } .sk-folding-cube > div[data-v-39432f99]:nth-child(3)::before { -webkit-animation-delay: 0.9s; animation-delay: 0.9s; } @-webkit-keyframes sk-foldCubeAngle { 0%, 10% { -webkit-transform: perspective(140px) rotateX(-180deg); transform: perspective(140px) rotateX(-180deg); opacity: 0; } 25%, 75% { -webkit-transform: perspective(140px) rotateX(0deg); transform: perspective(140px) rotateX(0deg); opacity: 1; } 90%, 100% { -webkit-transform: perspective(140px) rotateY(180deg); transform: perspective(140px) rotateY(180deg); opacity: 0; } } @keyframes sk-foldCubeAngle { 0%, 10% { -webkit-transform: perspective(140px) rotateX(-180deg); transform: perspective(140px) rotateX(-180deg); opacity: 0; } 25%, 75% { -webkit-transform: perspective(140px) rotateX(0deg); transform: perspective(140px) rotateX(0deg); opacity: 1; } 90%, 100% { -webkit-transform: perspective(140px) rotateY(180deg); transform: perspective(140px) rotateY(180deg); opacity: 0; } } .sk-wordpress > div[data-v-39432f99] { width: 27px; height: 27px; background-color: currentColor; display: inline-block; border-radius: 27px; position: relative; -webkit-animation: sk-inner-circle 1s linear infinite; animation: sk-inner-circle 1s linear infinite; } .sk-wordpress > div[data-v-39432f99]::after { content: ''; display: block; background-color: #fff; width: 8px; height: 8px; position: absolute; border-radius: 8px; top: 5px; left: 5px; } @-webkit-keyframes sk-inner-circle { 0% { -webkit-transform: rotate(0); } 100% { -webkit-transform: rotate(360deg); } } @keyframes sk-inner-circle { 0% { transform: rotate(0); -webkit-transform:rotate(0); } 100% { transform: rotate(360deg); -webkit-transform:rotate(360deg); } } .ball-triangle-path > div[data-v-39432f99], .ball-scale-ripple-multiple > div[data-v-39432f99], .ball-scale-ripple > div[data-v-39432f99] { background-color: initial; border-color: currentColor; } .ball-clip-rotate > div[data-v-39432f99] { background-color: initial; border-top-color: currentColor; border-right-color: currentColor; border-left-color: currentColor; } .ball-clip-rotate-pulse > div[data-v-39432f99]:first-child { background-color: currentColor; } .ball-clip-rotate-pulse > div[data-v-39432f99]:last-child { background-color: initial; border-top-color: currentColor; border-bottom-color: currentColor; } .ball-clip-rotate-multiple > div[data-v-39432f99]:first-child { background-color: initial; border-right-color: currentColor; border-left-color: currentColor; } .ball-clip-rotate-multiple > div[data-v-39432f99]:last-child { background-color: initial; border-top-color: currentColor; border-bottom-color: currentColor; } .triangle-skew-spin > div[data-v-39432f99] { background-color: initial; border-bottom-color: currentColor; } .pacman > div[data-v-39432f99]:nth-child(1), .pacman > div[data-v-39432f99]:nth-child(2) { background-color: initial; border-top-color: currentColor; border-left-color: currentColor; border-bottom-color: currentColor; } .pacman > div[data-v-39432f99]:nth-child(3), .pacman > div[data-v-39432f99]:nth-child(4), .pacman > div[data-v-39432f99]:nth-child(5) { background-color: currentColor; } /*# sourceMappingURL=Spinner.vue.map */";e.type="text/css",e.styleSheet?e.styleSheet.cssText=n:e.appendChild(document.createTextNode(n)),t.appendChild(e)}}(),{render:function(){var t,e,n,a=this,r=a.$createElement,i=a._self._c||r;return""!==a.loading.className?i("div",{class:[(t={"sk-fade-in":"full"===a.fadeIn&&!a.noFadeIn,"sk-fade-in-half-second":"half"===a.fadeIn&&!a.noFadeIn,"sk-fade-in-quarter-second":"quarter"===a.fadeIn&&!a.noFadeIn},e=a.className,n=!!a.className,e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t),"sk-spinner",a.loading.className],style:a.style},a._l(a.loading.divCount,function(t,e){return i("div",{key:e})})):a._e()},staticRenderFns:[],_scopeId:"data-v-39432f99",name:"Spinner",props:{name:{type:String,default:"three-bounce"},color:{type:String,default:""},noFadeIn:{type:Boolean,default:!1},fadeIn:{type:String,default:"full"},className:{type:String,default:""},width:{type:String,default:""},height:{type:String,default:""}},data:function(){return{allSpinners:n.allSpinners}},computed:{loading:function(){var t=this.allSpinners[this.name];if(void 0!==t){var e=void 0!==t.className?t.className:this.name;return Object.assign({},t,{className:e})}return{className:"",divCount:0}},style:function(){return(""!==this.color?"color: "+this.color+";":"")+(""!==this.width?"width: "+this.width+"px;":"")+(""!==this.height?"height: "+this.height+"px;":"")}}}})},f1ae:function(t,e,n){"use strict";var a=n("86cc"),r=n("4630");t.exports=function(t,e,n){e in t?a.f(t,e,r(0,n)):t[e]=n}},f260:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}});return e})},f3ff:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"},a=t.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(t){return t.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ਰਾਤ"===e?t<4?t:t+12:"ਸਵੇਰ"===e?t:"ਦੁਪਹਿਰ"===e?t>=10?t:t+12:"ਸ਼ਾਮ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ਰਾਤ":t<10?"ਸਵੇਰ":t<17?"ਦੁਪਹਿਰ":t<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}});return a})},f410:function(t,e,n){n("1af6"),t.exports=n("584a").Array.isArray},f4d6:function(t,e,n){var a=n("ffd6"),r=1/0;function i(t){if("string"==typeof t||a(t))return t;var e=t+"";return"0"==e&&1/t==-r?"-0":e}t.exports=i},f559:function(t,e,n){"use strict";var a=n("5ca1"),r=n("9def"),i=n("d2c8"),o="startsWith",s=""[o];a(a.P+a.F*n("5147")(o),"String",{startsWith:function(t){var e=i(this,t,o),n=r(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),a=String(t);return s?s.call(e,a,n):e.slice(n,n+a.length)===a}})},f605:function(t,e){t.exports=function(t,e,n,a){if(!(t instanceof e)||void 0!==a&&a in t)throw TypeError(n+": incorrect invocation!");return t}},f608:function(t,e,n){var a=n("6747"),r=n("ffd6"),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;function s(t,e){if(a(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!r(t))||(o.test(t)||!i.test(t)||null!=e&&t in Object(e))}t.exports=s},f6b4:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],n=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],a=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],r=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],i=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],o=t.defineLocale("gd",{months:e,monthsShort:n,monthsParseExact:!0,weekdays:a,weekdaysShort:r,weekdaysMin:i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){var e=1===t?"d":t%10===2?"na":"mh";return t+e},week:{dow:1,doy:4}});return o})},f751:function(t,e,n){var a=n("5ca1");a(a.S+a.F,"Object",{assign:n("73334")})},f772:function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},f921:function(t,e,n){n("014b"),n("c207"),n("69d3"),n("765d"),t.exports=n("584a").Symbol},fa5b:function(t,e,n){t.exports=n("5537")("native-function-to-string",Function.toString)},fab2:function(t,e,n){var a=n("7726").document;t.exports=a&&a.documentElement},facd:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,i=t.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}});return i})},fba5:function(t,e,n){var a=n("cb5a");function r(t){return a(this.__data__,t)>-1}t.exports=r},fd7e:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n},week:{dow:1,doy:4}});return e})},ffc1:function(t,e,n){var a=n("5ca1"),r=n("504c")(!0);a(a.S,"Object",{entries:function(t){return r(t)}})},ffd6:function(t,e,n){var a=n("3729"),r=n("1310"),i="[object Symbol]";function o(t){return"symbol"==typeof t||r(t)&&a(t)==i}t.exports=o},ffff:function(t,e,n){(function(t,e){e(n("c1df"))})(0,function(t){"use strict";var e=t.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});return e})}}]); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMvY2h1bmstdmVuZG9ycy5kZTU1OWUxYS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91cmlqcy9zcmMvSVB2Ni5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlL2Rpc3QvdnVlLnJ1bnRpbWUuZXNtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy92dWUtbW9tZW50L2Rpc3QvdnVlLW1vbWVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2hhcnQuanMvZGlzdC9DaGFydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xpcGJvYXJkL2Rpc3QvY2xpcGJvYXJkLm1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdXJpanMvc3JjL1NlY29uZExldmVsRG9tYWlucy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdXJpanMvc3JjL1VSSS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLXNwaW5raXQvcHVibGljL3Z1ZS1zcGlua2l0Lm1pbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIFVSSS5qcyAtIE11dGF0aW5nIFVSTHNcbiAqIElQdjYgU3VwcG9ydFxuICpcbiAqIFZlcnNpb246IDEuMTkuMVxuICpcbiAqIEF1dGhvcjogUm9kbmV5IFJlaG1cbiAqIFdlYjogaHR0cDovL21lZGlhbGl6ZS5naXRodWIuaW8vVVJJLmpzL1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyXG4gKiAgIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqXG4gKi9cblxuKGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG4gICd1c2Ugc3RyaWN0JztcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3VtZGpzL3VtZC9ibG9iL21hc3Rlci9yZXR1cm5FeHBvcnRzLmpzXG4gIGlmICh0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JyAmJiBtb2R1bGUuZXhwb3J0cykge1xuICAgIC8vIE5vZGVcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICAvLyBBTUQuIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBtb2R1bGUuXG4gICAgZGVmaW5lKGZhY3RvcnkpO1xuICB9IGVsc2Uge1xuICAgIC8vIEJyb3dzZXIgZ2xvYmFscyAocm9vdCBpcyB3aW5kb3cpXG4gICAgcm9vdC5JUHY2ID0gZmFjdG9yeShyb290KTtcbiAgfVxufSh0aGlzLCBmdW5jdGlvbiAocm9vdCkge1xuICAndXNlIHN0cmljdCc7XG5cbiAgLypcbiAgdmFyIF9pbiA9IFwiZmU4MDowMDAwOjAwMDA6MDAwMDowMjA0OjYxZmY6ZmU5ZDpmMTU2XCI7XG4gIHZhciBfb3V0ID0gSVB2Ni5iZXN0KF9pbik7XG4gIHZhciBfZXhwZWN0ZWQgPSBcImZlODA6OjIwNDo2MWZmOmZlOWQ6ZjE1NlwiO1xuXG4gIGNvbnNvbGUubG9nKF9pbiwgX291dCwgX2V4cGVjdGVkLCBfb3V0ID09PSBfZXhwZWN0ZWQpO1xuICAqL1xuXG4gIC8vIHNhdmUgY3VycmVudCBJUHY2IHZhcmlhYmxlLCBpZiBhbnlcbiAgdmFyIF9JUHY2ID0gcm9vdCAmJiByb290LklQdjY7XG5cbiAgZnVuY3Rpb24gYmVzdFByZXNlbnRhdGlvbihhZGRyZXNzKSB7XG4gICAgLy8gYmFzZWQgb246XG4gICAgLy8gSmF2YXNjcmlwdCB0byB0ZXN0IGFuIElQdjYgYWRkcmVzcyBmb3IgcHJvcGVyIGZvcm1hdCwgYW5kIHRvXG4gICAgLy8gcHJlc2VudCB0aGUgXCJiZXN0IHRleHQgcmVwcmVzZW50YXRpb25cIiBhY2NvcmRpbmcgdG8gSUVURiBEcmFmdCBSRkMgYXRcbiAgICAvLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLTZtYW4tdGV4dC1hZGRyLXJlcHJlc2VudGF0aW9uLTA0XG4gICAgLy8gOCBGZWIgMjAxMCBSaWNoIEJyb3duLCBEYXJ0d2FyZSwgTExDXG4gICAgLy8gUGxlYXNlIGZlZWwgZnJlZSB0byB1c2UgdGhpcyBjb2RlIGFzIGxvbmcgYXMgeW91IHByb3ZpZGUgYSBsaW5rIHRvXG4gICAgLy8gaHR0cDovL3d3dy5pbnRlcm1hcHBlci5jb21cbiAgICAvLyBodHRwOi8vaW50ZXJtYXBwZXIuY29tL3N1cHBvcnQvdG9vbHMvSVBWNi1WYWxpZGF0b3IuYXNweFxuICAgIC8vIGh0dHA6Ly9kb3dubG9hZC5kYXJ0d2FyZS5jb20vdGhpcmRwYXJ0eS9pcHY2dmFsaWRhdG9yLmpzXG5cbiAgICB2YXIgX2FkZHJlc3MgPSBhZGRyZXNzLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFyIHNlZ21lbnRzID0gX2FkZHJlc3Muc3BsaXQoJzonKTtcbiAgICB2YXIgbGVuZ3RoID0gc2VnbWVudHMubGVuZ3RoO1xuICAgIHZhciB0b3RhbCA9IDg7XG5cbiAgICAvLyB0cmltIGNvbG9ucyAoOjogb3IgOjphOmI6Y+KApiBvciDigKZhOmI6Yzo6KVxuICAgIGlmIChzZWdtZW50c1swXSA9PT0gJycgJiYgc2VnbWVudHNbMV0gPT09ICcnICYmIHNlZ21lbnRzWzJdID09PSAnJykge1xuICAgICAgLy8gbXVzdCBoYXZlIGJlZW4gOjpcbiAgICAgIC8vIHJlbW92ZSBmaXJzdCB0d28gaXRlbXNcbiAgICAgIHNlZ21lbnRzLnNoaWZ0KCk7XG4gICAgICBzZWdtZW50cy5zaGlmdCgpO1xuICAgIH0gZWxzZSBpZiAoc2VnbWVudHNbMF0gPT09ICcnICYmIHNlZ21lbnRzWzFdID09PSAnJykge1xuICAgICAgLy8gbXVzdCBoYXZlIGJlZW4gOjp4eHh4XG4gICAgICAvLyByZW1vdmUgdGhlIGZpcnN0IGl0ZW1cbiAgICAgIHNlZ21lbnRzLnNoaWZ0KCk7XG4gICAgfSBlbHNlIGlmIChzZWdtZW50c1tsZW5ndGggLSAxXSA9PT0gJycgJiYgc2VnbWVudHNbbGVuZ3RoIC0gMl0gPT09ICcnKSB7XG4gICAgICAvLyBtdXN0IGhhdmUgYmVlbiB4eHh4OjpcbiAgICAgIHNlZ21lbnRzLnBvcCgpO1xuICAgIH1cblxuICAgIGxlbmd0aCA9IHNlZ21lbnRzLmxlbmd0aDtcblxuICAgIC8vIGFkanVzdCB0b3RhbCBzZWdtZW50cyBmb3IgSVB2NCB0cmFpbGVyXG4gICAgaWYgKHNlZ21lbnRzW2xlbmd0aCAtIDFdLmluZGV4T2YoJy4nKSAhPT0gLTEpIHtcbiAgICAgIC8vIGZvdW5kIGEgXCIuXCIgd2hpY2ggbWVhbnMgSVB2NFxuICAgICAgdG90YWwgPSA3O1xuICAgIH1cblxuICAgIC8vIGZpbGwgZW1wdHkgc2VnbWVudHMgdGhlbSB3aXRoIFwiMDAwMFwiXG4gICAgdmFyIHBvcztcbiAgICBmb3IgKHBvcyA9IDA7IHBvcyA8IGxlbmd0aDsgcG9zKyspIHtcbiAgICAgIGlmIChzZWdtZW50c1twb3NdID09PSAnJykge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocG9zIDwgdG90YWwpIHtcbiAgICAgIHNlZ21lbnRzLnNwbGljZShwb3MsIDEsICcwMDAwJyk7XG4gICAgICB3aGlsZSAoc2VnbWVudHMubGVuZ3RoIDwgdG90YWwpIHtcbiAgICAgICAgc2VnbWVudHMuc3BsaWNlKHBvcywgMCwgJzAwMDAnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdHJpcCBsZWFkaW5nIHplcm9zXG4gICAgdmFyIF9zZWdtZW50cztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvdGFsOyBpKyspIHtcbiAgICAgIF9zZWdtZW50cyA9IHNlZ21lbnRzW2ldLnNwbGl0KCcnKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgMyA7IGorKykge1xuICAgICAgICBpZiAoX3NlZ21lbnRzWzBdID09PSAnMCcgJiYgX3NlZ21lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBfc2VnbWVudHMuc3BsaWNlKDAsMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2VnbWVudHNbaV0gPSBfc2VnbWVudHMuam9pbignJyk7XG4gICAgfVxuXG4gICAgLy8gZmluZCBsb25nZXN0IHNlcXVlbmNlIG9mIHplcm9lcyBhbmQgY29hbGVzY2UgdGhlbSBpbnRvIG9uZSBzZWdtZW50XG4gICAgdmFyIGJlc3QgPSAtMTtcbiAgICB2YXIgX2Jlc3QgPSAwO1xuICAgIHZhciBfY3VycmVudCA9IDA7XG4gICAgdmFyIGN1cnJlbnQgPSAtMTtcbiAgICB2YXIgaW56ZXJvZXMgPSBmYWxzZTtcbiAgICAvLyBpOyBhbHJlYWR5IGRlY2xhcmVkXG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgdG90YWw7IGkrKykge1xuICAgICAgaWYgKGluemVyb2VzKSB7XG4gICAgICAgIGlmIChzZWdtZW50c1tpXSA9PT0gJzAnKSB7XG4gICAgICAgICAgX2N1cnJlbnQgKz0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbnplcm9lcyA9IGZhbHNlO1xuICAgICAgICAgIGlmIChfY3VycmVudCA+IF9iZXN0KSB7XG4gICAgICAgICAgICBiZXN0ID0gY3VycmVudDtcbiAgICAgICAgICAgIF9iZXN0ID0gX2N1cnJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc2VnbWVudHNbaV0gPT09ICcwJykge1xuICAgICAgICAgIGluemVyb2VzID0gdHJ1ZTtcbiAgICAgICAgICBjdXJyZW50ID0gaTtcbiAgICAgICAgICBfY3VycmVudCA9IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoX2N1cnJlbnQgPiBfYmVzdCkge1xuICAgICAgYmVzdCA9IGN1cnJlbnQ7XG4gICAgICBfYmVzdCA9IF9jdXJyZW50O1xuICAgIH1cblxuICAgIGlmIChfYmVzdCA+IDEpIHtcbiAgICAgIHNlZ21lbnRzLnNwbGljZShiZXN0LCBfYmVzdCwgJycpO1xuICAgIH1cblxuICAgIGxlbmd0aCA9IHNlZ21lbnRzLmxlbmd0aDtcblxuICAgIC8vIGFzc2VtYmxlIHJlbWFpbmluZyBzZWdtZW50c1xuICAgIHZhciByZXN1bHQgPSAnJztcbiAgICBpZiAoc2VnbWVudHNbMF0gPT09ICcnKSAge1xuICAgICAgcmVzdWx0ID0gJzonO1xuICAgIH1cblxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgcmVzdWx0ICs9IHNlZ21lbnRzW2ldO1xuICAgICAgaWYgKGkgPT09IGxlbmd0aCAtIDEpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJlc3VsdCArPSAnOic7XG4gICAgfVxuXG4gICAgaWYgKHNlZ21lbnRzW2xlbmd0aCAtIDFdID09PSAnJykge1xuICAgICAgcmVzdWx0ICs9ICc6JztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gbm9Db25mbGljdCgpIHtcbiAgICAvKmpzaGludCB2YWxpZHRoaXM6IHRydWUgKi9cbiAgICBpZiAocm9vdC5JUHY2ID09PSB0aGlzKSB7XG4gICAgICByb290LklQdjYgPSBfSVB2NjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYmVzdDogYmVzdFByZXNlbnRhdGlvbixcbiAgICBub0NvbmZsaWN0OiBub0NvbmZsaWN0XG4gIH07XG59KSk7XG4iLCIvKiFcbiAqIFZ1ZS5qcyB2Mi42LjEwXG4gKiAoYykgMjAxNC0yMDE5IEV2YW4gWW91XG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cbi8qICAqL1xuXG52YXIgZW1wdHlPYmplY3QgPSBPYmplY3QuZnJlZXplKHt9KTtcblxuLy8gVGhlc2UgaGVscGVycyBwcm9kdWNlIGJldHRlciBWTSBjb2RlIGluIEpTIGVuZ2luZXMgZHVlIHRvIHRoZWlyXG4vLyBleHBsaWNpdG5lc3MgYW5kIGZ1bmN0aW9uIGlubGluaW5nLlxuZnVuY3Rpb24gaXNVbmRlZiAodikge1xuICByZXR1cm4gdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IG51bGxcbn1cblxuZnVuY3Rpb24gaXNEZWYgKHYpIHtcbiAgcmV0dXJuIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsXG59XG5cbmZ1bmN0aW9uIGlzVHJ1ZSAodikge1xuICByZXR1cm4gdiA9PT0gdHJ1ZVxufVxuXG5mdW5jdGlvbiBpc0ZhbHNlICh2KSB7XG4gIHJldHVybiB2ID09PSBmYWxzZVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHZhbHVlIGlzIHByaW1pdGl2ZS5cbiAqL1xuZnVuY3Rpb24gaXNQcmltaXRpdmUgKHZhbHVlKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHxcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdzeW1ib2wnIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbidcbiAgKVxufVxuXG4vKipcbiAqIFF1aWNrIG9iamVjdCBjaGVjayAtIHRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgdG8gdGVsbFxuICogT2JqZWN0cyBmcm9tIHByaW1pdGl2ZSB2YWx1ZXMgd2hlbiB3ZSBrbm93IHRoZSB2YWx1ZVxuICogaXMgYSBKU09OLWNvbXBsaWFudCB0eXBlLlxuICovXG5mdW5jdGlvbiBpc09iamVjdCAob2JqKSB7XG4gIHJldHVybiBvYmogIT09IG51bGwgJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCdcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHJhdyB0eXBlIHN0cmluZyBvZiBhIHZhbHVlLCBlLmcuLCBbb2JqZWN0IE9iamVjdF0uXG4gKi9cbnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiB0b1Jhd1R5cGUgKHZhbHVlKSB7XG4gIHJldHVybiBfdG9TdHJpbmcuY2FsbCh2YWx1ZSkuc2xpY2UoOCwgLTEpXG59XG5cbi8qKlxuICogU3RyaWN0IG9iamVjdCB0eXBlIGNoZWNrLiBPbmx5IHJldHVybnMgdHJ1ZVxuICogZm9yIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0cy5cbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCAob2JqKSB7XG4gIHJldHVybiBfdG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBPYmplY3RdJ1xufVxuXG5mdW5jdGlvbiBpc1JlZ0V4cCAodikge1xuICByZXR1cm4gX3RvU3RyaW5nLmNhbGwodikgPT09ICdbb2JqZWN0IFJlZ0V4cF0nXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdmFsIGlzIGEgdmFsaWQgYXJyYXkgaW5kZXguXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRBcnJheUluZGV4ICh2YWwpIHtcbiAgdmFyIG4gPSBwYXJzZUZsb2F0KFN0cmluZyh2YWwpKTtcbiAgcmV0dXJuIG4gPj0gMCAmJiBNYXRoLmZsb29yKG4pID09PSBuICYmIGlzRmluaXRlKHZhbClcbn1cblxuZnVuY3Rpb24gaXNQcm9taXNlICh2YWwpIHtcbiAgcmV0dXJuIChcbiAgICBpc0RlZih2YWwpICYmXG4gICAgdHlwZW9mIHZhbC50aGVuID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIHZhbC5jYXRjaCA9PT0gJ2Z1bmN0aW9uJ1xuICApXG59XG5cbi8qKlxuICogQ29udmVydCBhIHZhbHVlIHRvIGEgc3RyaW5nIHRoYXQgaXMgYWN0dWFsbHkgcmVuZGVyZWQuXG4gKi9cbmZ1bmN0aW9uIHRvU3RyaW5nICh2YWwpIHtcbiAgcmV0dXJuIHZhbCA9PSBudWxsXG4gICAgPyAnJ1xuICAgIDogQXJyYXkuaXNBcnJheSh2YWwpIHx8IChpc1BsYWluT2JqZWN0KHZhbCkgJiYgdmFsLnRvU3RyaW5nID09PSBfdG9TdHJpbmcpXG4gICAgICA/IEpTT04uc3RyaW5naWZ5KHZhbCwgbnVsbCwgMilcbiAgICAgIDogU3RyaW5nKHZhbClcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFuIGlucHV0IHZhbHVlIHRvIGEgbnVtYmVyIGZvciBwZXJzaXN0ZW5jZS5cbiAqIElmIHRoZSBjb252ZXJzaW9uIGZhaWxzLCByZXR1cm4gb3JpZ2luYWwgc3RyaW5nLlxuICovXG5mdW5jdGlvbiB0b051bWJlciAodmFsKSB7XG4gIHZhciBuID0gcGFyc2VGbG9hdCh2YWwpO1xuICByZXR1cm4gaXNOYU4obikgPyB2YWwgOiBuXG59XG5cbi8qKlxuICogTWFrZSBhIG1hcCBhbmQgcmV0dXJuIGEgZnVuY3Rpb24gZm9yIGNoZWNraW5nIGlmIGEga2V5XG4gKiBpcyBpbiB0aGF0IG1hcC5cbiAqL1xuZnVuY3Rpb24gbWFrZU1hcCAoXG4gIHN0cixcbiAgZXhwZWN0c0xvd2VyQ2FzZVxuKSB7XG4gIHZhciBtYXAgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB2YXIgbGlzdCA9IHN0ci5zcGxpdCgnLCcpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICBtYXBbbGlzdFtpXV0gPSB0cnVlO1xuICB9XG4gIHJldHVybiBleHBlY3RzTG93ZXJDYXNlXG4gICAgPyBmdW5jdGlvbiAodmFsKSB7IHJldHVybiBtYXBbdmFsLnRvTG93ZXJDYXNlKCldOyB9XG4gICAgOiBmdW5jdGlvbiAodmFsKSB7IHJldHVybiBtYXBbdmFsXTsgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgdGFnIGlzIGEgYnVpbHQtaW4gdGFnLlxuICovXG52YXIgaXNCdWlsdEluVGFnID0gbWFrZU1hcCgnc2xvdCxjb21wb25lbnQnLCB0cnVlKTtcblxuLyoqXG4gKiBDaGVjayBpZiBhbiBhdHRyaWJ1dGUgaXMgYSByZXNlcnZlZCBhdHRyaWJ1dGUuXG4gKi9cbnZhciBpc1Jlc2VydmVkQXR0cmlidXRlID0gbWFrZU1hcCgna2V5LHJlZixzbG90LHNsb3Qtc2NvcGUsaXMnKTtcblxuLyoqXG4gKiBSZW1vdmUgYW4gaXRlbSBmcm9tIGFuIGFycmF5LlxuICovXG5mdW5jdGlvbiByZW1vdmUgKGFyciwgaXRlbSkge1xuICBpZiAoYXJyLmxlbmd0aCkge1xuICAgIHZhciBpbmRleCA9IGFyci5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICByZXR1cm4gYXJyLnNwbGljZShpbmRleCwgMSlcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGFuIG9iamVjdCBoYXMgdGhlIHByb3BlcnR5LlxuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuZnVuY3Rpb24gaGFzT3duIChvYmosIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSlcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBjYWNoZWQgdmVyc2lvbiBvZiBhIHB1cmUgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNhY2hlZCAoZm4pIHtcbiAgdmFyIGNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcmV0dXJuIChmdW5jdGlvbiBjYWNoZWRGbiAoc3RyKSB7XG4gICAgdmFyIGhpdCA9IGNhY2hlW3N0cl07XG4gICAgcmV0dXJuIGhpdCB8fCAoY2FjaGVbc3RyXSA9IGZuKHN0cikpXG4gIH0pXG59XG5cbi8qKlxuICogQ2FtZWxpemUgYSBoeXBoZW4tZGVsaW1pdGVkIHN0cmluZy5cbiAqL1xudmFyIGNhbWVsaXplUkUgPSAvLShcXHcpL2c7XG52YXIgY2FtZWxpemUgPSBjYWNoZWQoZnVuY3Rpb24gKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoY2FtZWxpemVSRSwgZnVuY3Rpb24gKF8sIGMpIHsgcmV0dXJuIGMgPyBjLnRvVXBwZXJDYXNlKCkgOiAnJzsgfSlcbn0pO1xuXG4vKipcbiAqIENhcGl0YWxpemUgYSBzdHJpbmcuXG4gKi9cbnZhciBjYXBpdGFsaXplID0gY2FjaGVkKGZ1bmN0aW9uIChzdHIpIHtcbiAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKVxufSk7XG5cbi8qKlxuICogSHlwaGVuYXRlIGEgY2FtZWxDYXNlIHN0cmluZy5cbiAqL1xudmFyIGh5cGhlbmF0ZVJFID0gL1xcQihbQS1aXSkvZztcbnZhciBoeXBoZW5hdGUgPSBjYWNoZWQoZnVuY3Rpb24gKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoaHlwaGVuYXRlUkUsICctJDEnKS50b0xvd2VyQ2FzZSgpXG59KTtcblxuLyoqXG4gKiBTaW1wbGUgYmluZCBwb2x5ZmlsbCBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQsXG4gKiBlLmcuLCBQaGFudG9tSlMgMS54LiBUZWNobmljYWxseSwgd2UgZG9uJ3QgbmVlZCB0aGlzIGFueW1vcmVcbiAqIHNpbmNlIG5hdGl2ZSBiaW5kIGlzIG5vdyBwZXJmb3JtYW50IGVub3VnaCBpbiBtb3N0IGJyb3dzZXJzLlxuICogQnV0IHJlbW92aW5nIGl0IHdvdWxkIG1lYW4gYnJlYWtpbmcgY29kZSB0aGF0IHdhcyBhYmxlIHRvIHJ1biBpblxuICogUGhhbnRvbUpTIDEueCwgc28gdGhpcyBtdXN0IGJlIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIHBvbHlmaWxsQmluZCAoZm4sIGN0eCkge1xuICBmdW5jdGlvbiBib3VuZEZuIChhKSB7XG4gICAgdmFyIGwgPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHJldHVybiBsXG4gICAgICA/IGwgPiAxXG4gICAgICAgID8gZm4uYXBwbHkoY3R4LCBhcmd1bWVudHMpXG4gICAgICAgIDogZm4uY2FsbChjdHgsIGEpXG4gICAgICA6IGZuLmNhbGwoY3R4KVxuICB9XG5cbiAgYm91bmRGbi5fbGVuZ3RoID0gZm4ubGVuZ3RoO1xuICByZXR1cm4gYm91bmRGblxufVxuXG5mdW5jdGlvbiBuYXRpdmVCaW5kIChmbiwgY3R4KSB7XG4gIHJldHVybiBmbi5iaW5kKGN0eClcbn1cblxudmFyIGJpbmQgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZFxuICA/IG5hdGl2ZUJpbmRcbiAgOiBwb2x5ZmlsbEJpbmQ7XG5cbi8qKlxuICogQ29udmVydCBhbiBBcnJheS1saWtlIG9iamVjdCB0byBhIHJlYWwgQXJyYXkuXG4gKi9cbmZ1bmN0aW9uIHRvQXJyYXkgKGxpc3QsIHN0YXJ0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMDtcbiAgdmFyIGkgPSBsaXN0Lmxlbmd0aCAtIHN0YXJ0O1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGkpO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgcmV0W2ldID0gbGlzdFtpICsgc3RhcnRdO1xuICB9XG4gIHJldHVybiByZXRcbn1cblxuLyoqXG4gKiBNaXggcHJvcGVydGllcyBpbnRvIHRhcmdldCBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGV4dGVuZCAodG8sIF9mcm9tKSB7XG4gIGZvciAodmFyIGtleSBpbiBfZnJvbSkge1xuICAgIHRvW2tleV0gPSBfZnJvbVtrZXldO1xuICB9XG4gIHJldHVybiB0b1xufVxuXG4vKipcbiAqIE1lcmdlIGFuIEFycmF5IG9mIE9iamVjdHMgaW50byBhIHNpbmdsZSBPYmplY3QuXG4gKi9cbmZ1bmN0aW9uIHRvT2JqZWN0IChhcnIpIHtcbiAgdmFyIHJlcyA9IHt9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnJbaV0pIHtcbiAgICAgIGV4dGVuZChyZXMsIGFycltpXSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cblxuLyoqXG4gKiBQZXJmb3JtIG5vIG9wZXJhdGlvbi5cbiAqIFN0dWJiaW5nIGFyZ3MgdG8gbWFrZSBGbG93IGhhcHB5IHdpdGhvdXQgbGVhdmluZyB1c2VsZXNzIHRyYW5zcGlsZWQgY29kZVxuICogd2l0aCAuLi5yZXN0IChodHRwczovL2Zsb3cub3JnL2Jsb2cvMjAxNy8wNS8wNy9TdHJpY3QtRnVuY3Rpb24tQ2FsbC1Bcml0eS8pLlxuICovXG5mdW5jdGlvbiBub29wIChhLCBiLCBjKSB7fVxuXG4vKipcbiAqIEFsd2F5cyByZXR1cm4gZmFsc2UuXG4gKi9cbnZhciBubyA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7IHJldHVybiBmYWxzZTsgfTtcblxuLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xuXG4vKipcbiAqIFJldHVybiB0aGUgc2FtZSB2YWx1ZS5cbiAqL1xudmFyIGlkZW50aXR5ID0gZnVuY3Rpb24gKF8pIHsgcmV0dXJuIF87IH07XG5cbi8qKlxuICogQ2hlY2sgaWYgdHdvIHZhbHVlcyBhcmUgbG9vc2VseSBlcXVhbCAtIHRoYXQgaXMsXG4gKiBpZiB0aGV5IGFyZSBwbGFpbiBvYmplY3RzLCBkbyB0aGV5IGhhdmUgdGhlIHNhbWUgc2hhcGU/XG4gKi9cbmZ1bmN0aW9uIGxvb3NlRXF1YWwgKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHsgcmV0dXJuIHRydWUgfVxuICB2YXIgaXNPYmplY3RBID0gaXNPYmplY3QoYSk7XG4gIHZhciBpc09iamVjdEIgPSBpc09iamVjdChiKTtcbiAgaWYgKGlzT2JqZWN0QSAmJiBpc09iamVjdEIpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIGlzQXJyYXlBID0gQXJyYXkuaXNBcnJheShhKTtcbiAgICAgIHZhciBpc0FycmF5QiA9IEFycmF5LmlzQXJyYXkoYik7XG4gICAgICBpZiAoaXNBcnJheUEgJiYgaXNBcnJheUIpIHtcbiAgICAgICAgcmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KGZ1bmN0aW9uIChlLCBpKSB7XG4gICAgICAgICAgcmV0dXJuIGxvb3NlRXF1YWwoZSwgYltpXSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoYSBpbnN0YW5jZW9mIERhdGUgJiYgYiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGEuZ2V0VGltZSgpID09PSBiLmdldFRpbWUoKVxuICAgICAgfSBlbHNlIGlmICghaXNBcnJheUEgJiYgIWlzQXJyYXlCKSB7XG4gICAgICAgIHZhciBrZXlzQSA9IE9iamVjdC5rZXlzKGEpO1xuICAgICAgICB2YXIga2V5c0IgPSBPYmplY3Qua2V5cyhiKTtcbiAgICAgICAgcmV0dXJuIGtleXNBLmxlbmd0aCA9PT0ga2V5c0IubGVuZ3RoICYmIGtleXNBLmV2ZXJ5KGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICByZXR1cm4gbG9vc2VFcXVhbChhW2tleV0sIGJba2V5XSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH0gZWxzZSBpZiAoIWlzT2JqZWN0QSAmJiAhaXNPYmplY3RCKSB7XG4gICAgcmV0dXJuIFN0cmluZyhhKSA9PT0gU3RyaW5nKGIpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGZpcnN0IGluZGV4IGF0IHdoaWNoIGEgbG9vc2VseSBlcXVhbCB2YWx1ZSBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBhcnJheSAoaWYgdmFsdWUgaXMgYSBwbGFpbiBvYmplY3QsIHRoZSBhcnJheSBtdXN0XG4gKiBjb250YWluIGFuIG9iamVjdCBvZiB0aGUgc2FtZSBzaGFwZSksIG9yIC0xIGlmIGl0IGlzIG5vdCBwcmVzZW50LlxuICovXG5mdW5jdGlvbiBsb29zZUluZGV4T2YgKGFyciwgdmFsKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGxvb3NlRXF1YWwoYXJyW2ldLCB2YWwpKSB7IHJldHVybiBpIH1cbiAgfVxuICByZXR1cm4gLTFcbn1cblxuLyoqXG4gKiBFbnN1cmUgYSBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBvbmNlLlxuICovXG5mdW5jdGlvbiBvbmNlIChmbikge1xuICB2YXIgY2FsbGVkID0gZmFsc2U7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFjYWxsZWQpIHtcbiAgICAgIGNhbGxlZCA9IHRydWU7XG4gICAgICBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgU1NSX0FUVFIgPSAnZGF0YS1zZXJ2ZXItcmVuZGVyZWQnO1xuXG52YXIgQVNTRVRfVFlQRVMgPSBbXG4gICdjb21wb25lbnQnLFxuICAnZGlyZWN0aXZlJyxcbiAgJ2ZpbHRlcidcbl07XG5cbnZhciBMSUZFQ1lDTEVfSE9PS1MgPSBbXG4gICdiZWZvcmVDcmVhdGUnLFxuICAnY3JlYXRlZCcsXG4gICdiZWZvcmVNb3VudCcsXG4gICdtb3VudGVkJyxcbiAgJ2JlZm9yZVVwZGF0ZScsXG4gICd1cGRhdGVkJyxcbiAgJ2JlZm9yZURlc3Ryb3knLFxuICAnZGVzdHJveWVkJyxcbiAgJ2FjdGl2YXRlZCcsXG4gICdkZWFjdGl2YXRlZCcsXG4gICdlcnJvckNhcHR1cmVkJyxcbiAgJ3NlcnZlclByZWZldGNoJ1xuXTtcblxuLyogICovXG5cblxuXG52YXIgY29uZmlnID0gKHtcbiAgLyoqXG4gICAqIE9wdGlvbiBtZXJnZSBzdHJhdGVnaWVzICh1c2VkIGluIGNvcmUvdXRpbC9vcHRpb25zKVxuICAgKi9cbiAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gIG9wdGlvbk1lcmdlU3RyYXRlZ2llczogT2JqZWN0LmNyZWF0ZShudWxsKSxcblxuICAvKipcbiAgICogV2hldGhlciB0byBzdXBwcmVzcyB3YXJuaW5ncy5cbiAgICovXG4gIHNpbGVudDogZmFsc2UsXG5cbiAgLyoqXG4gICAqIFNob3cgcHJvZHVjdGlvbiBtb2RlIHRpcCBtZXNzYWdlIG9uIGJvb3Q/XG4gICAqL1xuICBwcm9kdWN0aW9uVGlwOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nLFxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBkZXZ0b29sc1xuICAgKi9cbiAgZGV2dG9vbHM6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVjb3JkIHBlcmZcbiAgICovXG4gIHBlcmZvcm1hbmNlOiBmYWxzZSxcblxuICAvKipcbiAgICogRXJyb3IgaGFuZGxlciBmb3Igd2F0Y2hlciBlcnJvcnNcbiAgICovXG4gIGVycm9ySGFuZGxlcjogbnVsbCxcblxuICAvKipcbiAgICogV2FybiBoYW5kbGVyIGZvciB3YXRjaGVyIHdhcm5zXG4gICAqL1xuICB3YXJuSGFuZGxlcjogbnVsbCxcblxuICAvKipcbiAgICogSWdub3JlIGNlcnRhaW4gY3VzdG9tIGVsZW1lbnRzXG4gICAqL1xuICBpZ25vcmVkRWxlbWVudHM6IFtdLFxuXG4gIC8qKlxuICAgKiBDdXN0b20gdXNlciBrZXkgYWxpYXNlcyBmb3Igdi1vblxuICAgKi9cbiAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gIGtleUNvZGVzOiBPYmplY3QuY3JlYXRlKG51bGwpLFxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHRhZyBpcyByZXNlcnZlZCBzbyB0aGF0IGl0IGNhbm5vdCBiZSByZWdpc3RlcmVkIGFzIGFcbiAgICogY29tcG9uZW50LiBUaGlzIGlzIHBsYXRmb3JtLWRlcGVuZGVudCBhbmQgbWF5IGJlIG92ZXJ3cml0dGVuLlxuICAgKi9cbiAgaXNSZXNlcnZlZFRhZzogbm8sXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGF0dHJpYnV0ZSBpcyByZXNlcnZlZCBzbyB0aGF0IGl0IGNhbm5vdCBiZSB1c2VkIGFzIGEgY29tcG9uZW50XG4gICAqIHByb3AuIFRoaXMgaXMgcGxhdGZvcm0tZGVwZW5kZW50IGFuZCBtYXkgYmUgb3ZlcndyaXR0ZW4uXG4gICAqL1xuICBpc1Jlc2VydmVkQXR0cjogbm8sXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgdGFnIGlzIGFuIHVua25vd24gZWxlbWVudC5cbiAgICogUGxhdGZvcm0tZGVwZW5kZW50LlxuICAgKi9cbiAgaXNVbmtub3duRWxlbWVudDogbm8sXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmFtZXNwYWNlIG9mIGFuIGVsZW1lbnRcbiAgICovXG4gIGdldFRhZ05hbWVzcGFjZTogbm9vcCxcblxuICAvKipcbiAgICogUGFyc2UgdGhlIHJlYWwgdGFnIG5hbWUgZm9yIHRoZSBzcGVjaWZpYyBwbGF0Zm9ybS5cbiAgICovXG4gIHBhcnNlUGxhdGZvcm1UYWdOYW1lOiBpZGVudGl0eSxcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gYXR0cmlidXRlIG11c3QgYmUgYm91bmQgdXNpbmcgcHJvcGVydHksIGUuZy4gdmFsdWVcbiAgICogUGxhdGZvcm0tZGVwZW5kZW50LlxuICAgKi9cbiAgbXVzdFVzZVByb3A6IG5vLFxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIHVwZGF0ZXMgYXN5bmNocm9ub3VzbHkuIEludGVuZGVkIHRvIGJlIHVzZWQgYnkgVnVlIFRlc3QgVXRpbHNcbiAgICogVGhpcyB3aWxsIHNpZ25pZmljYW50bHkgcmVkdWNlIHBlcmZvcm1hbmNlIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGFzeW5jOiB0cnVlLFxuXG4gIC8qKlxuICAgKiBFeHBvc2VkIGZvciBsZWdhY3kgcmVhc29uc1xuICAgKi9cbiAgX2xpZmVjeWNsZUhvb2tzOiBMSUZFQ1lDTEVfSE9PS1Ncbn0pO1xuXG4vKiAgKi9cblxuLyoqXG4gKiB1bmljb2RlIGxldHRlcnMgdXNlZCBmb3IgcGFyc2luZyBodG1sIHRhZ3MsIGNvbXBvbmVudCBuYW1lcyBhbmQgcHJvcGVydHkgcGF0aHMuXG4gKiB1c2luZyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUzL3NlbWFudGljcy1zY3JpcHRpbmcuaHRtbCNwb3RlbnRpYWxjdXN0b21lbGVtZW50bmFtZVxuICogc2tpcHBpbmcgXFx1MTAwMDAtXFx1RUZGRkYgZHVlIHRvIGl0IGZyZWV6aW5nIHVwIFBoYW50b21KU1xuICovXG52YXIgdW5pY29kZVJlZ0V4cCA9IC9hLXpBLVpcXHUwMEI3XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjAzRi1cXHUyMDQwXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZELztcblxuLyoqXG4gKiBDaGVjayBpZiBhIHN0cmluZyBzdGFydHMgd2l0aCAkIG9yIF9cbiAqL1xuZnVuY3Rpb24gaXNSZXNlcnZlZCAoc3RyKSB7XG4gIHZhciBjID0gKHN0ciArICcnKS5jaGFyQ29kZUF0KDApO1xuICByZXR1cm4gYyA9PT0gMHgyNCB8fCBjID09PSAweDVGXG59XG5cbi8qKlxuICogRGVmaW5lIGEgcHJvcGVydHkuXG4gKi9cbmZ1bmN0aW9uIGRlZiAob2JqLCBrZXksIHZhbCwgZW51bWVyYWJsZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICB2YWx1ZTogdmFsLFxuICAgIGVudW1lcmFibGU6ICEhZW51bWVyYWJsZSxcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbi8qKlxuICogUGFyc2Ugc2ltcGxlIHBhdGguXG4gKi9cbnZhciBiYWlsUkUgPSBuZXcgUmVnRXhwKChcIlteXCIgKyAodW5pY29kZVJlZ0V4cC5zb3VyY2UpICsgXCIuJF9cXFxcZF1cIikpO1xuZnVuY3Rpb24gcGFyc2VQYXRoIChwYXRoKSB7XG4gIGlmIChiYWlsUkUudGVzdChwYXRoKSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBzZWdtZW50cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChvYmopIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIW9iaikgeyByZXR1cm4gfVxuICAgICAgb2JqID0gb2JqW3NlZ21lbnRzW2ldXTtcbiAgICB9XG4gICAgcmV0dXJuIG9ialxuICB9XG59XG5cbi8qICAqL1xuXG4vLyBjYW4gd2UgdXNlIF9fcHJvdG9fXz9cbnZhciBoYXNQcm90byA9ICdfX3Byb3RvX18nIGluIHt9O1xuXG4vLyBCcm93c2VyIGVudmlyb25tZW50IHNuaWZmaW5nXG52YXIgaW5Ccm93c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG52YXIgaW5XZWV4ID0gdHlwZW9mIFdYRW52aXJvbm1lbnQgIT09ICd1bmRlZmluZWQnICYmICEhV1hFbnZpcm9ubWVudC5wbGF0Zm9ybTtcbnZhciB3ZWV4UGxhdGZvcm0gPSBpbldlZXggJiYgV1hFbnZpcm9ubWVudC5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpO1xudmFyIFVBID0gaW5Ccm93c2VyICYmIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XG52YXIgaXNJRSA9IFVBICYmIC9tc2llfHRyaWRlbnQvLnRlc3QoVUEpO1xudmFyIGlzSUU5ID0gVUEgJiYgVUEuaW5kZXhPZignbXNpZSA5LjAnKSA+IDA7XG52YXIgaXNFZGdlID0gVUEgJiYgVUEuaW5kZXhPZignZWRnZS8nKSA+IDA7XG52YXIgaXNBbmRyb2lkID0gKFVBICYmIFVBLmluZGV4T2YoJ2FuZHJvaWQnKSA+IDApIHx8ICh3ZWV4UGxhdGZvcm0gPT09ICdhbmRyb2lkJyk7XG52YXIgaXNJT1MgPSAoVUEgJiYgL2lwaG9uZXxpcGFkfGlwb2R8aW9zLy50ZXN0KFVBKSkgfHwgKHdlZXhQbGF0Zm9ybSA9PT0gJ2lvcycpO1xudmFyIGlzQ2hyb21lID0gVUEgJiYgL2Nocm9tZVxcL1xcZCsvLnRlc3QoVUEpICYmICFpc0VkZ2U7XG52YXIgaXNQaGFudG9tSlMgPSBVQSAmJiAvcGhhbnRvbWpzLy50ZXN0KFVBKTtcbnZhciBpc0ZGID0gVUEgJiYgVUEubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKTtcblxuLy8gRmlyZWZveCBoYXMgYSBcIndhdGNoXCIgZnVuY3Rpb24gb24gT2JqZWN0LnByb3RvdHlwZS4uLlxudmFyIG5hdGl2ZVdhdGNoID0gKHt9KS53YXRjaDtcblxudmFyIHN1cHBvcnRzUGFzc2l2ZSA9IGZhbHNlO1xuaWYgKGluQnJvd3Nlcikge1xuICB0cnkge1xuICAgIHZhciBvcHRzID0ge307XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9wdHMsICdwYXNzaXZlJywgKHtcbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0ICgpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgc3VwcG9ydHNQYXNzaXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSk7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mbG93L2lzc3Vlcy8yODVcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdC1wYXNzaXZlJywgbnVsbCwgb3B0cyk7XG4gIH0gY2F0Y2ggKGUpIHt9XG59XG5cbi8vIHRoaXMgbmVlZHMgdG8gYmUgbGF6eS1ldmFsZWQgYmVjYXVzZSB2dWUgbWF5IGJlIHJlcXVpcmVkIGJlZm9yZVxuLy8gdnVlLXNlcnZlci1yZW5kZXJlciBjYW4gc2V0IFZVRV9FTlZcbnZhciBfaXNTZXJ2ZXI7XG52YXIgaXNTZXJ2ZXJSZW5kZXJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChfaXNTZXJ2ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghaW5Ccm93c2VyICYmICFpbldlZXggJiYgdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIGRldGVjdCBwcmVzZW5jZSBvZiB2dWUtc2VydmVyLXJlbmRlcmVyIGFuZCBhdm9pZFxuICAgICAgLy8gV2VicGFjayBzaGltbWluZyB0aGUgcHJvY2Vzc1xuICAgICAgX2lzU2VydmVyID0gZ2xvYmFsWydwcm9jZXNzJ10gJiYgZ2xvYmFsWydwcm9jZXNzJ10uZW52LlZVRV9FTlYgPT09ICdzZXJ2ZXInO1xuICAgIH0gZWxzZSB7XG4gICAgICBfaXNTZXJ2ZXIgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIF9pc1NlcnZlclxufTtcblxuLy8gZGV0ZWN0IGRldnRvb2xzXG52YXIgZGV2dG9vbHMgPSBpbkJyb3dzZXIgJiYgd2luZG93Ll9fVlVFX0RFVlRPT0xTX0dMT0JBTF9IT09LX187XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBpc05hdGl2ZSAoQ3Rvcikge1xuICByZXR1cm4gdHlwZW9mIEN0b3IgPT09ICdmdW5jdGlvbicgJiYgL25hdGl2ZSBjb2RlLy50ZXN0KEN0b3IudG9TdHJpbmcoKSlcbn1cblxudmFyIGhhc1N5bWJvbCA9XG4gIHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFN5bWJvbCkgJiZcbiAgdHlwZW9mIFJlZmxlY3QgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFJlZmxlY3Qub3duS2V5cyk7XG5cbnZhciBfU2V0O1xuLyogaXN0YW5idWwgaWdub3JlIGlmICovIC8vICRmbG93LWRpc2FibGUtbGluZVxuaWYgKHR5cGVvZiBTZXQgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFNldCkpIHtcbiAgLy8gdXNlIG5hdGl2ZSBTZXQgd2hlbiBhdmFpbGFibGUuXG4gIF9TZXQgPSBTZXQ7XG59IGVsc2Uge1xuICAvLyBhIG5vbi1zdGFuZGFyZCBTZXQgcG9seWZpbGwgdGhhdCBvbmx5IHdvcmtzIHdpdGggcHJpbWl0aXZlIGtleXMuXG4gIF9TZXQgPSAvKkBfX1BVUkVfXyovKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXQgKCkge1xuICAgICAgdGhpcy5zZXQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIH1cbiAgICBTZXQucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIGhhcyAoa2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXRba2V5XSA9PT0gdHJ1ZVxuICAgIH07XG4gICAgU2V0LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBhZGQgKGtleSkge1xuICAgICAgdGhpcy5zZXRba2V5XSA9IHRydWU7XG4gICAgfTtcbiAgICBTZXQucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gY2xlYXIgKCkge1xuICAgICAgdGhpcy5zZXQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIH07XG5cbiAgICByZXR1cm4gU2V0O1xuICB9KCkpO1xufVxuXG4vKiAgKi9cblxudmFyIHdhcm4gPSBub29wO1xudmFyIHRpcCA9IG5vb3A7XG52YXIgZ2VuZXJhdGVDb21wb25lbnRUcmFjZSA9IChub29wKTsgLy8gd29yayBhcm91bmQgZmxvdyBjaGVja1xudmFyIGZvcm1hdENvbXBvbmVudE5hbWUgPSAobm9vcCk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBoYXNDb25zb2xlID0gdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnO1xuICB2YXIgY2xhc3NpZnlSRSA9IC8oPzpefFstX10pKFxcdykvZztcbiAgdmFyIGNsYXNzaWZ5ID0gZnVuY3Rpb24gKHN0cikgeyByZXR1cm4gc3RyXG4gICAgLnJlcGxhY2UoY2xhc3NpZnlSRSwgZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMudG9VcHBlckNhc2UoKTsgfSlcbiAgICAucmVwbGFjZSgvWy1fXS9nLCAnJyk7IH07XG5cbiAgd2FybiA9IGZ1bmN0aW9uIChtc2csIHZtKSB7XG4gICAgdmFyIHRyYWNlID0gdm0gPyBnZW5lcmF0ZUNvbXBvbmVudFRyYWNlKHZtKSA6ICcnO1xuXG4gICAgaWYgKGNvbmZpZy53YXJuSGFuZGxlcikge1xuICAgICAgY29uZmlnLndhcm5IYW5kbGVyLmNhbGwobnVsbCwgbXNnLCB2bSwgdHJhY2UpO1xuICAgIH0gZWxzZSBpZiAoaGFzQ29uc29sZSAmJiAoIWNvbmZpZy5zaWxlbnQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKChcIltWdWUgd2Fybl06IFwiICsgbXNnICsgdHJhY2UpKTtcbiAgICB9XG4gIH07XG5cbiAgdGlwID0gZnVuY3Rpb24gKG1zZywgdm0pIHtcbiAgICBpZiAoaGFzQ29uc29sZSAmJiAoIWNvbmZpZy5zaWxlbnQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJbVnVlIHRpcF06IFwiICsgbXNnICsgKFxuICAgICAgICB2bSA/IGdlbmVyYXRlQ29tcG9uZW50VHJhY2Uodm0pIDogJydcbiAgICAgICkpO1xuICAgIH1cbiAgfTtcblxuICBmb3JtYXRDb21wb25lbnROYW1lID0gZnVuY3Rpb24gKHZtLCBpbmNsdWRlRmlsZSkge1xuICAgIGlmICh2bS4kcm9vdCA9PT0gdm0pIHtcbiAgICAgIHJldHVybiAnPFJvb3Q+J1xuICAgIH1cbiAgICB2YXIgb3B0aW9ucyA9IHR5cGVvZiB2bSA9PT0gJ2Z1bmN0aW9uJyAmJiB2bS5jaWQgIT0gbnVsbFxuICAgICAgPyB2bS5vcHRpb25zXG4gICAgICA6IHZtLl9pc1Z1ZVxuICAgICAgICA/IHZtLiRvcHRpb25zIHx8IHZtLmNvbnN0cnVjdG9yLm9wdGlvbnNcbiAgICAgICAgOiB2bTtcbiAgICB2YXIgbmFtZSA9IG9wdGlvbnMubmFtZSB8fCBvcHRpb25zLl9jb21wb25lbnRUYWc7XG4gICAgdmFyIGZpbGUgPSBvcHRpb25zLl9fZmlsZTtcbiAgICBpZiAoIW5hbWUgJiYgZmlsZSkge1xuICAgICAgdmFyIG1hdGNoID0gZmlsZS5tYXRjaCgvKFteL1xcXFxdKylcXC52dWUkLyk7XG4gICAgICBuYW1lID0gbWF0Y2ggJiYgbWF0Y2hbMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIChuYW1lID8gKFwiPFwiICsgKGNsYXNzaWZ5KG5hbWUpKSArIFwiPlwiKSA6IFwiPEFub255bW91cz5cIikgK1xuICAgICAgKGZpbGUgJiYgaW5jbHVkZUZpbGUgIT09IGZhbHNlID8gKFwiIGF0IFwiICsgZmlsZSkgOiAnJylcbiAgICApXG4gIH07XG5cbiAgdmFyIHJlcGVhdCA9IGZ1bmN0aW9uIChzdHIsIG4pIHtcbiAgICB2YXIgcmVzID0gJyc7XG4gICAgd2hpbGUgKG4pIHtcbiAgICAgIGlmIChuICUgMiA9PT0gMSkgeyByZXMgKz0gc3RyOyB9XG4gICAgICBpZiAobiA+IDEpIHsgc3RyICs9IHN0cjsgfVxuICAgICAgbiA+Pj0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc1xuICB9O1xuXG4gIGdlbmVyYXRlQ29tcG9uZW50VHJhY2UgPSBmdW5jdGlvbiAodm0pIHtcbiAgICBpZiAodm0uX2lzVnVlICYmIHZtLiRwYXJlbnQpIHtcbiAgICAgIHZhciB0cmVlID0gW107XG4gICAgICB2YXIgY3VycmVudFJlY3Vyc2l2ZVNlcXVlbmNlID0gMDtcbiAgICAgIHdoaWxlICh2bSkge1xuICAgICAgICBpZiAodHJlZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdmFyIGxhc3QgPSB0cmVlW3RyZWUubGVuZ3RoIC0gMV07XG4gICAgICAgICAgaWYgKGxhc3QuY29uc3RydWN0b3IgPT09IHZtLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICBjdXJyZW50UmVjdXJzaXZlU2VxdWVuY2UrKztcbiAgICAgICAgICAgIHZtID0gdm0uJHBhcmVudDtcbiAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UmVjdXJzaXZlU2VxdWVuY2UgPiAwKSB7XG4gICAgICAgICAgICB0cmVlW3RyZWUubGVuZ3RoIC0gMV0gPSBbbGFzdCwgY3VycmVudFJlY3Vyc2l2ZVNlcXVlbmNlXTtcbiAgICAgICAgICAgIGN1cnJlbnRSZWN1cnNpdmVTZXF1ZW5jZSA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRyZWUucHVzaCh2bSk7XG4gICAgICAgIHZtID0gdm0uJHBhcmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnXFxuXFxuZm91bmQgaW5cXG5cXG4nICsgdHJlZVxuICAgICAgICAubWFwKGZ1bmN0aW9uICh2bSwgaSkgeyByZXR1cm4gKFwiXCIgKyAoaSA9PT0gMCA/ICctLS0+ICcgOiByZXBlYXQoJyAnLCA1ICsgaSAqIDIpKSArIChBcnJheS5pc0FycmF5KHZtKVxuICAgICAgICAgICAgPyAoKGZvcm1hdENvbXBvbmVudE5hbWUodm1bMF0pKSArIFwiLi4uIChcIiArICh2bVsxXSkgKyBcIiByZWN1cnNpdmUgY2FsbHMpXCIpXG4gICAgICAgICAgICA6IGZvcm1hdENvbXBvbmVudE5hbWUodm0pKSk7IH0pXG4gICAgICAgIC5qb2luKCdcXG4nKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFwiXFxuXFxuKGZvdW5kIGluIFwiICsgKGZvcm1hdENvbXBvbmVudE5hbWUodm0pKSArIFwiKVwiKVxuICAgIH1cbiAgfTtcbn1cblxuLyogICovXG5cbnZhciB1aWQgPSAwO1xuXG4vKipcbiAqIEEgZGVwIGlzIGFuIG9ic2VydmFibGUgdGhhdCBjYW4gaGF2ZSBtdWx0aXBsZVxuICogZGlyZWN0aXZlcyBzdWJzY3JpYmluZyB0byBpdC5cbiAqL1xudmFyIERlcCA9IGZ1bmN0aW9uIERlcCAoKSB7XG4gIHRoaXMuaWQgPSB1aWQrKztcbiAgdGhpcy5zdWJzID0gW107XG59O1xuXG5EZXAucHJvdG90eXBlLmFkZFN1YiA9IGZ1bmN0aW9uIGFkZFN1YiAoc3ViKSB7XG4gIHRoaXMuc3Vicy5wdXNoKHN1Yik7XG59O1xuXG5EZXAucHJvdG90eXBlLnJlbW92ZVN1YiA9IGZ1bmN0aW9uIHJlbW92ZVN1YiAoc3ViKSB7XG4gIHJlbW92ZSh0aGlzLnN1YnMsIHN1Yik7XG59O1xuXG5EZXAucHJvdG90eXBlLmRlcGVuZCA9IGZ1bmN0aW9uIGRlcGVuZCAoKSB7XG4gIGlmIChEZXAudGFyZ2V0KSB7XG4gICAgRGVwLnRhcmdldC5hZGREZXAodGhpcyk7XG4gIH1cbn07XG5cbkRlcC5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gbm90aWZ5ICgpIHtcbiAgLy8gc3RhYmlsaXplIHRoZSBzdWJzY3JpYmVyIGxpc3QgZmlyc3RcbiAgdmFyIHN1YnMgPSB0aGlzLnN1YnMuc2xpY2UoKTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIWNvbmZpZy5hc3luYykge1xuICAgIC8vIHN1YnMgYXJlbid0IHNvcnRlZCBpbiBzY2hlZHVsZXIgaWYgbm90IHJ1bm5pbmcgYXN5bmNcbiAgICAvLyB3ZSBuZWVkIHRvIHNvcnQgdGhlbSBub3cgdG8gbWFrZSBzdXJlIHRoZXkgZmlyZSBpbiBjb3JyZWN0XG4gICAgLy8gb3JkZXJcbiAgICBzdWJzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEuaWQgLSBiLmlkOyB9KTtcbiAgfVxuICBmb3IgKHZhciBpID0gMCwgbCA9IHN1YnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgc3Vic1tpXS51cGRhdGUoKTtcbiAgfVxufTtcblxuLy8gVGhlIGN1cnJlbnQgdGFyZ2V0IHdhdGNoZXIgYmVpbmcgZXZhbHVhdGVkLlxuLy8gVGhpcyBpcyBnbG9iYWxseSB1bmlxdWUgYmVjYXVzZSBvbmx5IG9uZSB3YXRjaGVyXG4vLyBjYW4gYmUgZXZhbHVhdGVkIGF0IGEgdGltZS5cbkRlcC50YXJnZXQgPSBudWxsO1xudmFyIHRhcmdldFN0YWNrID0gW107XG5cbmZ1bmN0aW9uIHB1c2hUYXJnZXQgKHRhcmdldCkge1xuICB0YXJnZXRTdGFjay5wdXNoKHRhcmdldCk7XG4gIERlcC50YXJnZXQgPSB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIHBvcFRhcmdldCAoKSB7XG4gIHRhcmdldFN0YWNrLnBvcCgpO1xuICBEZXAudGFyZ2V0ID0gdGFyZ2V0U3RhY2tbdGFyZ2V0U3RhY2subGVuZ3RoIC0gMV07XG59XG5cbi8qICAqL1xuXG52YXIgVk5vZGUgPSBmdW5jdGlvbiBWTm9kZSAoXG4gIHRhZyxcbiAgZGF0YSxcbiAgY2hpbGRyZW4sXG4gIHRleHQsXG4gIGVsbSxcbiAgY29udGV4dCxcbiAgY29tcG9uZW50T3B0aW9ucyxcbiAgYXN5bmNGYWN0b3J5XG4pIHtcbiAgdGhpcy50YWcgPSB0YWc7XG4gIHRoaXMuZGF0YSA9IGRhdGE7XG4gIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgdGhpcy50ZXh0ID0gdGV4dDtcbiAgdGhpcy5lbG0gPSBlbG07XG4gIHRoaXMubnMgPSB1bmRlZmluZWQ7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gIHRoaXMuZm5Db250ZXh0ID0gdW5kZWZpbmVkO1xuICB0aGlzLmZuT3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5mblNjb3BlSWQgPSB1bmRlZmluZWQ7XG4gIHRoaXMua2V5ID0gZGF0YSAmJiBkYXRhLmtleTtcbiAgdGhpcy5jb21wb25lbnRPcHRpb25zID0gY29tcG9uZW50T3B0aW9ucztcbiAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWQ7XG4gIHRoaXMucmF3ID0gZmFsc2U7XG4gIHRoaXMuaXNTdGF0aWMgPSBmYWxzZTtcbiAgdGhpcy5pc1Jvb3RJbnNlcnQgPSB0cnVlO1xuICB0aGlzLmlzQ29tbWVudCA9IGZhbHNlO1xuICB0aGlzLmlzQ2xvbmVkID0gZmFsc2U7XG4gIHRoaXMuaXNPbmNlID0gZmFsc2U7XG4gIHRoaXMuYXN5bmNGYWN0b3J5ID0gYXN5bmNGYWN0b3J5O1xuICB0aGlzLmFzeW5jTWV0YSA9IHVuZGVmaW5lZDtcbiAgdGhpcy5pc0FzeW5jUGxhY2Vob2xkZXIgPSBmYWxzZTtcbn07XG5cbnZhciBwcm90b3R5cGVBY2Nlc3NvcnMgPSB7IGNoaWxkOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH07XG5cbi8vIERFUFJFQ0FURUQ6IGFsaWFzIGZvciBjb21wb25lbnRJbnN0YW5jZSBmb3IgYmFja3dhcmRzIGNvbXBhdC5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5wcm90b3R5cGVBY2Nlc3NvcnMuY2hpbGQuZ2V0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZVxufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoIFZOb2RlLnByb3RvdHlwZSwgcHJvdG90eXBlQWNjZXNzb3JzICk7XG5cbnZhciBjcmVhdGVFbXB0eVZOb2RlID0gZnVuY3Rpb24gKHRleHQpIHtcbiAgaWYgKCB0ZXh0ID09PSB2b2lkIDAgKSB0ZXh0ID0gJyc7XG5cbiAgdmFyIG5vZGUgPSBuZXcgVk5vZGUoKTtcbiAgbm9kZS50ZXh0ID0gdGV4dDtcbiAgbm9kZS5pc0NvbW1lbnQgPSB0cnVlO1xuICByZXR1cm4gbm9kZVxufTtcblxuZnVuY3Rpb24gY3JlYXRlVGV4dFZOb2RlICh2YWwpIHtcbiAgcmV0dXJuIG5ldyBWTm9kZSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBTdHJpbmcodmFsKSlcbn1cblxuLy8gb3B0aW1pemVkIHNoYWxsb3cgY2xvbmVcbi8vIHVzZWQgZm9yIHN0YXRpYyBub2RlcyBhbmQgc2xvdCBub2RlcyBiZWNhdXNlIHRoZXkgbWF5IGJlIHJldXNlZCBhY3Jvc3Ncbi8vIG11bHRpcGxlIHJlbmRlcnMsIGNsb25pbmcgdGhlbSBhdm9pZHMgZXJyb3JzIHdoZW4gRE9NIG1hbmlwdWxhdGlvbnMgcmVseVxuLy8gb24gdGhlaXIgZWxtIHJlZmVyZW5jZS5cbmZ1bmN0aW9uIGNsb25lVk5vZGUgKHZub2RlKSB7XG4gIHZhciBjbG9uZWQgPSBuZXcgVk5vZGUoXG4gICAgdm5vZGUudGFnLFxuICAgIHZub2RlLmRhdGEsXG4gICAgLy8gIzc5NzVcbiAgICAvLyBjbG9uZSBjaGlsZHJlbiBhcnJheSB0byBhdm9pZCBtdXRhdGluZyBvcmlnaW5hbCBpbiBjYXNlIG9mIGNsb25pbmdcbiAgICAvLyBhIGNoaWxkLlxuICAgIHZub2RlLmNoaWxkcmVuICYmIHZub2RlLmNoaWxkcmVuLnNsaWNlKCksXG4gICAgdm5vZGUudGV4dCxcbiAgICB2bm9kZS5lbG0sXG4gICAgdm5vZGUuY29udGV4dCxcbiAgICB2bm9kZS5jb21wb25lbnRPcHRpb25zLFxuICAgIHZub2RlLmFzeW5jRmFjdG9yeVxuICApO1xuICBjbG9uZWQubnMgPSB2bm9kZS5ucztcbiAgY2xvbmVkLmlzU3RhdGljID0gdm5vZGUuaXNTdGF0aWM7XG4gIGNsb25lZC5rZXkgPSB2bm9kZS5rZXk7XG4gIGNsb25lZC5pc0NvbW1lbnQgPSB2bm9kZS5pc0NvbW1lbnQ7XG4gIGNsb25lZC5mbkNvbnRleHQgPSB2bm9kZS5mbkNvbnRleHQ7XG4gIGNsb25lZC5mbk9wdGlvbnMgPSB2bm9kZS5mbk9wdGlvbnM7XG4gIGNsb25lZC5mblNjb3BlSWQgPSB2bm9kZS5mblNjb3BlSWQ7XG4gIGNsb25lZC5hc3luY01ldGEgPSB2bm9kZS5hc3luY01ldGE7XG4gIGNsb25lZC5pc0Nsb25lZCA9IHRydWU7XG4gIHJldHVybiBjbG9uZWRcbn1cblxuLypcbiAqIG5vdCB0eXBlIGNoZWNraW5nIHRoaXMgZmlsZSBiZWNhdXNlIGZsb3cgZG9lc24ndCBwbGF5IHdlbGwgd2l0aFxuICogZHluYW1pY2FsbHkgYWNjZXNzaW5nIG1ldGhvZHMgb24gQXJyYXkgcHJvdG90eXBlXG4gKi9cblxudmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG52YXIgYXJyYXlNZXRob2RzID0gT2JqZWN0LmNyZWF0ZShhcnJheVByb3RvKTtcblxudmFyIG1ldGhvZHNUb1BhdGNoID0gW1xuICAncHVzaCcsXG4gICdwb3AnLFxuICAnc2hpZnQnLFxuICAndW5zaGlmdCcsXG4gICdzcGxpY2UnLFxuICAnc29ydCcsXG4gICdyZXZlcnNlJ1xuXTtcblxuLyoqXG4gKiBJbnRlcmNlcHQgbXV0YXRpbmcgbWV0aG9kcyBhbmQgZW1pdCBldmVudHNcbiAqL1xubWV0aG9kc1RvUGF0Y2guZm9yRWFjaChmdW5jdGlvbiAobWV0aG9kKSB7XG4gIC8vIGNhY2hlIG9yaWdpbmFsIG1ldGhvZFxuICB2YXIgb3JpZ2luYWwgPSBhcnJheVByb3RvW21ldGhvZF07XG4gIGRlZihhcnJheU1ldGhvZHMsIG1ldGhvZCwgZnVuY3Rpb24gbXV0YXRvciAoKSB7XG4gICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB3aGlsZSAoIGxlbi0tICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiBdO1xuXG4gICAgdmFyIHJlc3VsdCA9IG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIHZhciBvYiA9IHRoaXMuX19vYl9fO1xuICAgIHZhciBpbnNlcnRlZDtcbiAgICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgICAgY2FzZSAncHVzaCc6XG4gICAgICBjYXNlICd1bnNoaWZ0JzpcbiAgICAgICAgaW5zZXJ0ZWQgPSBhcmdzO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnc3BsaWNlJzpcbiAgICAgICAgaW5zZXJ0ZWQgPSBhcmdzLnNsaWNlKDIpO1xuICAgICAgICBicmVha1xuICAgIH1cbiAgICBpZiAoaW5zZXJ0ZWQpIHsgb2Iub2JzZXJ2ZUFycmF5KGluc2VydGVkKTsgfVxuICAgIC8vIG5vdGlmeSBjaGFuZ2VcbiAgICBvYi5kZXAubm90aWZ5KCk7XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KTtcbn0pO1xuXG4vKiAgKi9cblxudmFyIGFycmF5S2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFycmF5TWV0aG9kcyk7XG5cbi8qKlxuICogSW4gc29tZSBjYXNlcyB3ZSBtYXkgd2FudCB0byBkaXNhYmxlIG9ic2VydmF0aW9uIGluc2lkZSBhIGNvbXBvbmVudCdzXG4gKiB1cGRhdGUgY29tcHV0YXRpb24uXG4gKi9cbnZhciBzaG91bGRPYnNlcnZlID0gdHJ1ZTtcblxuZnVuY3Rpb24gdG9nZ2xlT2JzZXJ2aW5nICh2YWx1ZSkge1xuICBzaG91bGRPYnNlcnZlID0gdmFsdWU7XG59XG5cbi8qKlxuICogT2JzZXJ2ZXIgY2xhc3MgdGhhdCBpcyBhdHRhY2hlZCB0byBlYWNoIG9ic2VydmVkXG4gKiBvYmplY3QuIE9uY2UgYXR0YWNoZWQsIHRoZSBvYnNlcnZlciBjb252ZXJ0cyB0aGUgdGFyZ2V0XG4gKiBvYmplY3QncyBwcm9wZXJ0eSBrZXlzIGludG8gZ2V0dGVyL3NldHRlcnMgdGhhdFxuICogY29sbGVjdCBkZXBlbmRlbmNpZXMgYW5kIGRpc3BhdGNoIHVwZGF0ZXMuXG4gKi9cbnZhciBPYnNlcnZlciA9IGZ1bmN0aW9uIE9ic2VydmVyICh2YWx1ZSkge1xuICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIHRoaXMuZGVwID0gbmV3IERlcCgpO1xuICB0aGlzLnZtQ291bnQgPSAwO1xuICBkZWYodmFsdWUsICdfX29iX18nLCB0aGlzKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgaWYgKGhhc1Byb3RvKSB7XG4gICAgICBwcm90b0F1Z21lbnQodmFsdWUsIGFycmF5TWV0aG9kcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvcHlBdWdtZW50KHZhbHVlLCBhcnJheU1ldGhvZHMsIGFycmF5S2V5cyk7XG4gICAgfVxuICAgIHRoaXMub2JzZXJ2ZUFycmF5KHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLndhbGsodmFsdWUpO1xuICB9XG59O1xuXG4vKipcbiAqIFdhbGsgdGhyb3VnaCBhbGwgcHJvcGVydGllcyBhbmQgY29udmVydCB0aGVtIGludG9cbiAqIGdldHRlci9zZXR0ZXJzLiBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlblxuICogdmFsdWUgdHlwZSBpcyBPYmplY3QuXG4gKi9cbk9ic2VydmVyLnByb3RvdHlwZS53YWxrID0gZnVuY3Rpb24gd2FsayAob2JqKSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEob2JqLCBrZXlzW2ldKTtcbiAgfVxufTtcblxuLyoqXG4gKiBPYnNlcnZlIGEgbGlzdCBvZiBBcnJheSBpdGVtcy5cbiAqL1xuT2JzZXJ2ZXIucHJvdG90eXBlLm9ic2VydmVBcnJheSA9IGZ1bmN0aW9uIG9ic2VydmVBcnJheSAoaXRlbXMpIHtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBpdGVtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBvYnNlcnZlKGl0ZW1zW2ldKTtcbiAgfVxufTtcblxuLy8gaGVscGVyc1xuXG4vKipcbiAqIEF1Z21lbnQgYSB0YXJnZXQgT2JqZWN0IG9yIEFycmF5IGJ5IGludGVyY2VwdGluZ1xuICogdGhlIHByb3RvdHlwZSBjaGFpbiB1c2luZyBfX3Byb3RvX19cbiAqL1xuZnVuY3Rpb24gcHJvdG9BdWdtZW50ICh0YXJnZXQsIHNyYykge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xuICB0YXJnZXQuX19wcm90b19fID0gc3JjO1xuICAvKiBlc2xpbnQtZW5hYmxlIG5vLXByb3RvICovXG59XG5cbi8qKlxuICogQXVnbWVudCBhIHRhcmdldCBPYmplY3Qgb3IgQXJyYXkgYnkgZGVmaW5pbmdcbiAqIGhpZGRlbiBwcm9wZXJ0aWVzLlxuICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gY29weUF1Z21lbnQgKHRhcmdldCwgc3JjLCBrZXlzKSB7XG4gIGZvciAodmFyIGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBkZWYodGFyZ2V0LCBrZXksIHNyY1trZXldKTtcbiAgfVxufVxuXG4vKipcbiAqIEF0dGVtcHQgdG8gY3JlYXRlIGFuIG9ic2VydmVyIGluc3RhbmNlIGZvciBhIHZhbHVlLFxuICogcmV0dXJucyB0aGUgbmV3IG9ic2VydmVyIGlmIHN1Y2Nlc3NmdWxseSBvYnNlcnZlZCxcbiAqIG9yIHRoZSBleGlzdGluZyBvYnNlcnZlciBpZiB0aGUgdmFsdWUgYWxyZWFkeSBoYXMgb25lLlxuICovXG5mdW5jdGlvbiBvYnNlcnZlICh2YWx1ZSwgYXNSb290RGF0YSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCB2YWx1ZSBpbnN0YW5jZW9mIFZOb2RlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIG9iO1xuICBpZiAoaGFzT3duKHZhbHVlLCAnX19vYl9fJykgJiYgdmFsdWUuX19vYl9fIGluc3RhbmNlb2YgT2JzZXJ2ZXIpIHtcbiAgICBvYiA9IHZhbHVlLl9fb2JfXztcbiAgfSBlbHNlIGlmIChcbiAgICBzaG91bGRPYnNlcnZlICYmXG4gICAgIWlzU2VydmVyUmVuZGVyaW5nKCkgJiZcbiAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgaXNQbGFpbk9iamVjdCh2YWx1ZSkpICYmXG4gICAgT2JqZWN0LmlzRXh0ZW5zaWJsZSh2YWx1ZSkgJiZcbiAgICAhdmFsdWUuX2lzVnVlXG4gICkge1xuICAgIG9iID0gbmV3IE9ic2VydmVyKHZhbHVlKTtcbiAgfVxuICBpZiAoYXNSb290RGF0YSAmJiBvYikge1xuICAgIG9iLnZtQ291bnQrKztcbiAgfVxuICByZXR1cm4gb2Jcbn1cblxuLyoqXG4gKiBEZWZpbmUgYSByZWFjdGl2ZSBwcm9wZXJ0eSBvbiBhbiBPYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGRlZmluZVJlYWN0aXZlJCQxIChcbiAgb2JqLFxuICBrZXksXG4gIHZhbCxcbiAgY3VzdG9tU2V0dGVyLFxuICBzaGFsbG93XG4pIHtcbiAgdmFyIGRlcCA9IG5ldyBEZXAoKTtcblxuICB2YXIgcHJvcGVydHkgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KTtcbiAgaWYgKHByb3BlcnR5ICYmIHByb3BlcnR5LmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIGNhdGVyIGZvciBwcmUtZGVmaW5lZCBnZXR0ZXIvc2V0dGVyc1xuICB2YXIgZ2V0dGVyID0gcHJvcGVydHkgJiYgcHJvcGVydHkuZ2V0O1xuICB2YXIgc2V0dGVyID0gcHJvcGVydHkgJiYgcHJvcGVydHkuc2V0O1xuICBpZiAoKCFnZXR0ZXIgfHwgc2V0dGVyKSAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgdmFsID0gb2JqW2tleV07XG4gIH1cblxuICB2YXIgY2hpbGRPYiA9ICFzaGFsbG93ICYmIG9ic2VydmUodmFsKTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiByZWFjdGl2ZUdldHRlciAoKSB7XG4gICAgICB2YXIgdmFsdWUgPSBnZXR0ZXIgPyBnZXR0ZXIuY2FsbChvYmopIDogdmFsO1xuICAgICAgaWYgKERlcC50YXJnZXQpIHtcbiAgICAgICAgZGVwLmRlcGVuZCgpO1xuICAgICAgICBpZiAoY2hpbGRPYikge1xuICAgICAgICAgIGNoaWxkT2IuZGVwLmRlcGVuZCgpO1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgZGVwZW5kQXJyYXkodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfSxcbiAgICBzZXQ6IGZ1bmN0aW9uIHJlYWN0aXZlU2V0dGVyIChuZXdWYWwpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGdldHRlciA/IGdldHRlci5jYWxsKG9iaikgOiB2YWw7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1zZWxmLWNvbXBhcmUgKi9cbiAgICAgIGlmIChuZXdWYWwgPT09IHZhbHVlIHx8IChuZXdWYWwgIT09IG5ld1ZhbCAmJiB2YWx1ZSAhPT0gdmFsdWUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgLyogZXNsaW50LWVuYWJsZSBuby1zZWxmLWNvbXBhcmUgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGN1c3RvbVNldHRlcikge1xuICAgICAgICBjdXN0b21TZXR0ZXIoKTtcbiAgICAgIH1cbiAgICAgIC8vICM3OTgxOiBmb3IgYWNjZXNzb3IgcHJvcGVydGllcyB3aXRob3V0IHNldHRlclxuICAgICAgaWYgKGdldHRlciAmJiAhc2V0dGVyKSB7IHJldHVybiB9XG4gICAgICBpZiAoc2V0dGVyKSB7XG4gICAgICAgIHNldHRlci5jYWxsKG9iaiwgbmV3VmFsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbCA9IG5ld1ZhbDtcbiAgICAgIH1cbiAgICAgIGNoaWxkT2IgPSAhc2hhbGxvdyAmJiBvYnNlcnZlKG5ld1ZhbCk7XG4gICAgICBkZXAubm90aWZ5KCk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBTZXQgYSBwcm9wZXJ0eSBvbiBhbiBvYmplY3QuIEFkZHMgdGhlIG5ldyBwcm9wZXJ0eSBhbmRcbiAqIHRyaWdnZXJzIGNoYW5nZSBub3RpZmljYXRpb24gaWYgdGhlIHByb3BlcnR5IGRvZXNuJ3RcbiAqIGFscmVhZHkgZXhpc3QuXG4gKi9cbmZ1bmN0aW9uIHNldCAodGFyZ2V0LCBrZXksIHZhbCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIChpc1VuZGVmKHRhcmdldCkgfHwgaXNQcmltaXRpdmUodGFyZ2V0KSlcbiAgKSB7XG4gICAgd2FybigoXCJDYW5ub3Qgc2V0IHJlYWN0aXZlIHByb3BlcnR5IG9uIHVuZGVmaW5lZCwgbnVsbCwgb3IgcHJpbWl0aXZlIHZhbHVlOiBcIiArICgodGFyZ2V0KSkpKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpICYmIGlzVmFsaWRBcnJheUluZGV4KGtleSkpIHtcbiAgICB0YXJnZXQubGVuZ3RoID0gTWF0aC5tYXgodGFyZ2V0Lmxlbmd0aCwga2V5KTtcbiAgICB0YXJnZXQuc3BsaWNlKGtleSwgMSwgdmFsKTtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgaWYgKGtleSBpbiB0YXJnZXQgJiYgIShrZXkgaW4gT2JqZWN0LnByb3RvdHlwZSkpIHtcbiAgICB0YXJnZXRba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgdmFyIG9iID0gKHRhcmdldCkuX19vYl9fO1xuICBpZiAodGFyZ2V0Ll9pc1Z1ZSB8fCAob2IgJiYgb2Iudm1Db3VudCkpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAnQXZvaWQgYWRkaW5nIHJlYWN0aXZlIHByb3BlcnRpZXMgdG8gYSBWdWUgaW5zdGFuY2Ugb3IgaXRzIHJvb3QgJGRhdGEgJyArXG4gICAgICAnYXQgcnVudGltZSAtIGRlY2xhcmUgaXQgdXBmcm9udCBpbiB0aGUgZGF0YSBvcHRpb24uJ1xuICAgICk7XG4gICAgcmV0dXJuIHZhbFxuICB9XG4gIGlmICghb2IpIHtcbiAgICB0YXJnZXRba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgZGVmaW5lUmVhY3RpdmUkJDEob2IudmFsdWUsIGtleSwgdmFsKTtcbiAgb2IuZGVwLm5vdGlmeSgpO1xuICByZXR1cm4gdmFsXG59XG5cbi8qKlxuICogRGVsZXRlIGEgcHJvcGVydHkgYW5kIHRyaWdnZXIgY2hhbmdlIGlmIG5lY2Vzc2FyeS5cbiAqL1xuZnVuY3Rpb24gZGVsICh0YXJnZXQsIGtleSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIChpc1VuZGVmKHRhcmdldCkgfHwgaXNQcmltaXRpdmUodGFyZ2V0KSlcbiAgKSB7XG4gICAgd2FybigoXCJDYW5ub3QgZGVsZXRlIHJlYWN0aXZlIHByb3BlcnR5IG9uIHVuZGVmaW5lZCwgbnVsbCwgb3IgcHJpbWl0aXZlIHZhbHVlOiBcIiArICgodGFyZ2V0KSkpKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpICYmIGlzVmFsaWRBcnJheUluZGV4KGtleSkpIHtcbiAgICB0YXJnZXQuc3BsaWNlKGtleSwgMSk7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIG9iID0gKHRhcmdldCkuX19vYl9fO1xuICBpZiAodGFyZ2V0Ll9pc1Z1ZSB8fCAob2IgJiYgb2Iudm1Db3VudCkpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAnQXZvaWQgZGVsZXRpbmcgcHJvcGVydGllcyBvbiBhIFZ1ZSBpbnN0YW5jZSBvciBpdHMgcm9vdCAkZGF0YSAnICtcbiAgICAgICctIGp1c3Qgc2V0IGl0IHRvIG51bGwuJ1xuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKCFoYXNPd24odGFyZ2V0LCBrZXkpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgZGVsZXRlIHRhcmdldFtrZXldO1xuICBpZiAoIW9iKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgb2IuZGVwLm5vdGlmeSgpO1xufVxuXG4vKipcbiAqIENvbGxlY3QgZGVwZW5kZW5jaWVzIG9uIGFycmF5IGVsZW1lbnRzIHdoZW4gdGhlIGFycmF5IGlzIHRvdWNoZWQsIHNpbmNlXG4gKiB3ZSBjYW5ub3QgaW50ZXJjZXB0IGFycmF5IGVsZW1lbnQgYWNjZXNzIGxpa2UgcHJvcGVydHkgZ2V0dGVycy5cbiAqL1xuZnVuY3Rpb24gZGVwZW5kQXJyYXkgKHZhbHVlKSB7XG4gIGZvciAodmFyIGUgPSAodm9pZCAwKSwgaSA9IDAsIGwgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBlID0gdmFsdWVbaV07XG4gICAgZSAmJiBlLl9fb2JfXyAmJiBlLl9fb2JfXy5kZXAuZGVwZW5kKCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZSkpIHtcbiAgICAgIGRlcGVuZEFycmF5KGUpO1xuICAgIH1cbiAgfVxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBPcHRpb24gb3ZlcndyaXRpbmcgc3RyYXRlZ2llcyBhcmUgZnVuY3Rpb25zIHRoYXQgaGFuZGxlXG4gKiBob3cgdG8gbWVyZ2UgYSBwYXJlbnQgb3B0aW9uIHZhbHVlIGFuZCBhIGNoaWxkIG9wdGlvblxuICogdmFsdWUgaW50byB0aGUgZmluYWwgdmFsdWUuXG4gKi9cbnZhciBzdHJhdHMgPSBjb25maWcub3B0aW9uTWVyZ2VTdHJhdGVnaWVzO1xuXG4vKipcbiAqIE9wdGlvbnMgd2l0aCByZXN0cmljdGlvbnNcbiAqL1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgc3RyYXRzLmVsID0gc3RyYXRzLnByb3BzRGF0YSA9IGZ1bmN0aW9uIChwYXJlbnQsIGNoaWxkLCB2bSwga2V5KSB7XG4gICAgaWYgKCF2bSkge1xuICAgICAgd2FybihcbiAgICAgICAgXCJvcHRpb24gXFxcIlwiICsga2V5ICsgXCJcXFwiIGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIGluc3RhbmNlIFwiICtcbiAgICAgICAgJ2NyZWF0aW9uIHdpdGggdGhlIGBuZXdgIGtleXdvcmQuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmF1bHRTdHJhdChwYXJlbnQsIGNoaWxkKVxuICB9O1xufVxuXG4vKipcbiAqIEhlbHBlciB0aGF0IHJlY3Vyc2l2ZWx5IG1lcmdlcyB0d28gZGF0YSBvYmplY3RzIHRvZ2V0aGVyLlxuICovXG5mdW5jdGlvbiBtZXJnZURhdGEgKHRvLCBmcm9tKSB7XG4gIGlmICghZnJvbSkgeyByZXR1cm4gdG8gfVxuICB2YXIga2V5LCB0b1ZhbCwgZnJvbVZhbDtcblxuICB2YXIga2V5cyA9IGhhc1N5bWJvbFxuICAgID8gUmVmbGVjdC5vd25LZXlzKGZyb20pXG4gICAgOiBPYmplY3Qua2V5cyhmcm9tKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBrZXlzW2ldO1xuICAgIC8vIGluIGNhc2UgdGhlIG9iamVjdCBpcyBhbHJlYWR5IG9ic2VydmVkLi4uXG4gICAgaWYgKGtleSA9PT0gJ19fb2JfXycpIHsgY29udGludWUgfVxuICAgIHRvVmFsID0gdG9ba2V5XTtcbiAgICBmcm9tVmFsID0gZnJvbVtrZXldO1xuICAgIGlmICghaGFzT3duKHRvLCBrZXkpKSB7XG4gICAgICBzZXQodG8sIGtleSwgZnJvbVZhbCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRvVmFsICE9PSBmcm9tVmFsICYmXG4gICAgICBpc1BsYWluT2JqZWN0KHRvVmFsKSAmJlxuICAgICAgaXNQbGFpbk9iamVjdChmcm9tVmFsKVxuICAgICkge1xuICAgICAgbWVyZ2VEYXRhKHRvVmFsLCBmcm9tVmFsKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRvXG59XG5cbi8qKlxuICogRGF0YVxuICovXG5mdW5jdGlvbiBtZXJnZURhdGFPckZuIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbCxcbiAgdm1cbikge1xuICBpZiAoIXZtKSB7XG4gICAgLy8gaW4gYSBWdWUuZXh0ZW5kIG1lcmdlLCBib3RoIHNob3VsZCBiZSBmdW5jdGlvbnNcbiAgICBpZiAoIWNoaWxkVmFsKSB7XG4gICAgICByZXR1cm4gcGFyZW50VmFsXG4gICAgfVxuICAgIGlmICghcGFyZW50VmFsKSB7XG4gICAgICByZXR1cm4gY2hpbGRWYWxcbiAgICB9XG4gICAgLy8gd2hlbiBwYXJlbnRWYWwgJiBjaGlsZFZhbCBhcmUgYm90aCBwcmVzZW50LFxuICAgIC8vIHdlIG5lZWQgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZVxuICAgIC8vIG1lcmdlZCByZXN1bHQgb2YgYm90aCBmdW5jdGlvbnMuLi4gbm8gbmVlZCB0b1xuICAgIC8vIGNoZWNrIGlmIHBhcmVudFZhbCBpcyBhIGZ1bmN0aW9uIGhlcmUgYmVjYXVzZVxuICAgIC8vIGl0IGhhcyB0byBiZSBhIGZ1bmN0aW9uIHRvIHBhc3MgcHJldmlvdXMgbWVyZ2VzLlxuICAgIHJldHVybiBmdW5jdGlvbiBtZXJnZWREYXRhRm4gKCkge1xuICAgICAgcmV0dXJuIG1lcmdlRGF0YShcbiAgICAgICAgdHlwZW9mIGNoaWxkVmFsID09PSAnZnVuY3Rpb24nID8gY2hpbGRWYWwuY2FsbCh0aGlzLCB0aGlzKSA6IGNoaWxkVmFsLFxuICAgICAgICB0eXBlb2YgcGFyZW50VmFsID09PSAnZnVuY3Rpb24nID8gcGFyZW50VmFsLmNhbGwodGhpcywgdGhpcykgOiBwYXJlbnRWYWxcbiAgICAgIClcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIG1lcmdlZEluc3RhbmNlRGF0YUZuICgpIHtcbiAgICAgIC8vIGluc3RhbmNlIG1lcmdlXG4gICAgICB2YXIgaW5zdGFuY2VEYXRhID0gdHlwZW9mIGNoaWxkVmFsID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gY2hpbGRWYWwuY2FsbCh2bSwgdm0pXG4gICAgICAgIDogY2hpbGRWYWw7XG4gICAgICB2YXIgZGVmYXVsdERhdGEgPSB0eXBlb2YgcGFyZW50VmFsID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gcGFyZW50VmFsLmNhbGwodm0sIHZtKVxuICAgICAgICA6IHBhcmVudFZhbDtcbiAgICAgIGlmIChpbnN0YW5jZURhdGEpIHtcbiAgICAgICAgcmV0dXJuIG1lcmdlRGF0YShpbnN0YW5jZURhdGEsIGRlZmF1bHREYXRhKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHREYXRhXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnN0cmF0cy5kYXRhID0gZnVuY3Rpb24gKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsLFxuICB2bVxuKSB7XG4gIGlmICghdm0pIHtcbiAgICBpZiAoY2hpbGRWYWwgJiYgdHlwZW9mIGNoaWxkVmFsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgICdUaGUgXCJkYXRhXCIgb3B0aW9uIHNob3VsZCBiZSBhIGZ1bmN0aW9uICcgK1xuICAgICAgICAndGhhdCByZXR1cm5zIGEgcGVyLWluc3RhbmNlIHZhbHVlIGluIGNvbXBvbmVudCAnICtcbiAgICAgICAgJ2RlZmluaXRpb25zLicsXG4gICAgICAgIHZtXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gcGFyZW50VmFsXG4gICAgfVxuICAgIHJldHVybiBtZXJnZURhdGFPckZuKHBhcmVudFZhbCwgY2hpbGRWYWwpXG4gIH1cblxuICByZXR1cm4gbWVyZ2VEYXRhT3JGbihwYXJlbnRWYWwsIGNoaWxkVmFsLCB2bSlcbn07XG5cbi8qKlxuICogSG9va3MgYW5kIHByb3BzIGFyZSBtZXJnZWQgYXMgYXJyYXlzLlxuICovXG5mdW5jdGlvbiBtZXJnZUhvb2sgKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsXG4pIHtcbiAgdmFyIHJlcyA9IGNoaWxkVmFsXG4gICAgPyBwYXJlbnRWYWxcbiAgICAgID8gcGFyZW50VmFsLmNvbmNhdChjaGlsZFZhbClcbiAgICAgIDogQXJyYXkuaXNBcnJheShjaGlsZFZhbClcbiAgICAgICAgPyBjaGlsZFZhbFxuICAgICAgICA6IFtjaGlsZFZhbF1cbiAgICA6IHBhcmVudFZhbDtcbiAgcmV0dXJuIHJlc1xuICAgID8gZGVkdXBlSG9va3MocmVzKVxuICAgIDogcmVzXG59XG5cbmZ1bmN0aW9uIGRlZHVwZUhvb2tzIChob29rcykge1xuICB2YXIgcmVzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3MubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAocmVzLmluZGV4T2YoaG9va3NbaV0pID09PSAtMSkge1xuICAgICAgcmVzLnB1c2goaG9va3NbaV0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbkxJRkVDWUNMRV9IT09LUy5mb3JFYWNoKGZ1bmN0aW9uIChob29rKSB7XG4gIHN0cmF0c1tob29rXSA9IG1lcmdlSG9vaztcbn0pO1xuXG4vKipcbiAqIEFzc2V0c1xuICpcbiAqIFdoZW4gYSB2bSBpcyBwcmVzZW50IChpbnN0YW5jZSBjcmVhdGlvbiksIHdlIG5lZWQgdG8gZG9cbiAqIGEgdGhyZWUtd2F5IG1lcmdlIGJldHdlZW4gY29uc3RydWN0b3Igb3B0aW9ucywgaW5zdGFuY2VcbiAqIG9wdGlvbnMgYW5kIHBhcmVudCBvcHRpb25zLlxuICovXG5mdW5jdGlvbiBtZXJnZUFzc2V0cyAoXG4gIHBhcmVudFZhbCxcbiAgY2hpbGRWYWwsXG4gIHZtLFxuICBrZXlcbikge1xuICB2YXIgcmVzID0gT2JqZWN0LmNyZWF0ZShwYXJlbnRWYWwgfHwgbnVsbCk7XG4gIGlmIChjaGlsZFZhbCkge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgYXNzZXJ0T2JqZWN0VHlwZShrZXksIGNoaWxkVmFsLCB2bSk7XG4gICAgcmV0dXJuIGV4dGVuZChyZXMsIGNoaWxkVmFsKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiByZXNcbiAgfVxufVxuXG5BU1NFVF9UWVBFUy5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gIHN0cmF0c1t0eXBlICsgJ3MnXSA9IG1lcmdlQXNzZXRzO1xufSk7XG5cbi8qKlxuICogV2F0Y2hlcnMuXG4gKlxuICogV2F0Y2hlcnMgaGFzaGVzIHNob3VsZCBub3Qgb3ZlcndyaXRlIG9uZVxuICogYW5vdGhlciwgc28gd2UgbWVyZ2UgdGhlbSBhcyBhcnJheXMuXG4gKi9cbnN0cmF0cy53YXRjaCA9IGZ1bmN0aW9uIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbCxcbiAgdm0sXG4gIGtleVxuKSB7XG4gIC8vIHdvcmsgYXJvdW5kIEZpcmVmb3gncyBPYmplY3QucHJvdG90eXBlLndhdGNoLi4uXG4gIGlmIChwYXJlbnRWYWwgPT09IG5hdGl2ZVdhdGNoKSB7IHBhcmVudFZhbCA9IHVuZGVmaW5lZDsgfVxuICBpZiAoY2hpbGRWYWwgPT09IG5hdGl2ZVdhdGNoKSB7IGNoaWxkVmFsID0gdW5kZWZpbmVkOyB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWNoaWxkVmFsKSB7IHJldHVybiBPYmplY3QuY3JlYXRlKHBhcmVudFZhbCB8fCBudWxsKSB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgYXNzZXJ0T2JqZWN0VHlwZShrZXksIGNoaWxkVmFsLCB2bSk7XG4gIH1cbiAgaWYgKCFwYXJlbnRWYWwpIHsgcmV0dXJuIGNoaWxkVmFsIH1cbiAgdmFyIHJldCA9IHt9O1xuICBleHRlbmQocmV0LCBwYXJlbnRWYWwpO1xuICBmb3IgKHZhciBrZXkkMSBpbiBjaGlsZFZhbCkge1xuICAgIHZhciBwYXJlbnQgPSByZXRba2V5JDFdO1xuICAgIHZhciBjaGlsZCA9IGNoaWxkVmFsW2tleSQxXTtcbiAgICBpZiAocGFyZW50ICYmICFBcnJheS5pc0FycmF5KHBhcmVudCkpIHtcbiAgICAgIHBhcmVudCA9IFtwYXJlbnRdO1xuICAgIH1cbiAgICByZXRba2V5JDFdID0gcGFyZW50XG4gICAgICA/IHBhcmVudC5jb25jYXQoY2hpbGQpXG4gICAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGQpID8gY2hpbGQgOiBbY2hpbGRdO1xuICB9XG4gIHJldHVybiByZXRcbn07XG5cbi8qKlxuICogT3RoZXIgb2JqZWN0IGhhc2hlcy5cbiAqL1xuc3RyYXRzLnByb3BzID1cbnN0cmF0cy5tZXRob2RzID1cbnN0cmF0cy5pbmplY3QgPVxuc3RyYXRzLmNvbXB1dGVkID0gZnVuY3Rpb24gKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsLFxuICB2bSxcbiAga2V5XG4pIHtcbiAgaWYgKGNoaWxkVmFsICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBhc3NlcnRPYmplY3RUeXBlKGtleSwgY2hpbGRWYWwsIHZtKTtcbiAgfVxuICBpZiAoIXBhcmVudFZhbCkgeyByZXR1cm4gY2hpbGRWYWwgfVxuICB2YXIgcmV0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgZXh0ZW5kKHJldCwgcGFyZW50VmFsKTtcbiAgaWYgKGNoaWxkVmFsKSB7IGV4dGVuZChyZXQsIGNoaWxkVmFsKTsgfVxuICByZXR1cm4gcmV0XG59O1xuc3RyYXRzLnByb3ZpZGUgPSBtZXJnZURhdGFPckZuO1xuXG4vKipcbiAqIERlZmF1bHQgc3RyYXRlZ3kuXG4gKi9cbnZhciBkZWZhdWx0U3RyYXQgPSBmdW5jdGlvbiAocGFyZW50VmFsLCBjaGlsZFZhbCkge1xuICByZXR1cm4gY2hpbGRWYWwgPT09IHVuZGVmaW5lZFxuICAgID8gcGFyZW50VmFsXG4gICAgOiBjaGlsZFZhbFxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBjb21wb25lbnQgbmFtZXNcbiAqL1xuZnVuY3Rpb24gY2hlY2tDb21wb25lbnRzIChvcHRpb25zKSB7XG4gIGZvciAodmFyIGtleSBpbiBvcHRpb25zLmNvbXBvbmVudHMpIHtcbiAgICB2YWxpZGF0ZUNvbXBvbmVudE5hbWUoa2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNvbXBvbmVudE5hbWUgKG5hbWUpIHtcbiAgaWYgKCFuZXcgUmVnRXhwKChcIl5bYS16QS1aXVtcXFxcLVxcXFwuMC05X1wiICsgKHVuaWNvZGVSZWdFeHAuc291cmNlKSArIFwiXSokXCIpKS50ZXN0KG5hbWUpKSB7XG4gICAgd2FybihcbiAgICAgICdJbnZhbGlkIGNvbXBvbmVudCBuYW1lOiBcIicgKyBuYW1lICsgJ1wiLiBDb21wb25lbnQgbmFtZXMgJyArXG4gICAgICAnc2hvdWxkIGNvbmZvcm0gdG8gdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSBpbiBodG1sNSBzcGVjaWZpY2F0aW9uLidcbiAgICApO1xuICB9XG4gIGlmIChpc0J1aWx0SW5UYWcobmFtZSkgfHwgY29uZmlnLmlzUmVzZXJ2ZWRUYWcobmFtZSkpIHtcbiAgICB3YXJuKFxuICAgICAgJ0RvIG5vdCB1c2UgYnVpbHQtaW4gb3IgcmVzZXJ2ZWQgSFRNTCBlbGVtZW50cyBhcyBjb21wb25lbnQgJyArXG4gICAgICAnaWQ6ICcgKyBuYW1lXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEVuc3VyZSBhbGwgcHJvcHMgb3B0aW9uIHN5bnRheCBhcmUgbm9ybWFsaXplZCBpbnRvIHRoZVxuICogT2JqZWN0LWJhc2VkIGZvcm1hdC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplUHJvcHMgKG9wdGlvbnMsIHZtKSB7XG4gIHZhciBwcm9wcyA9IG9wdGlvbnMucHJvcHM7XG4gIGlmICghcHJvcHMpIHsgcmV0dXJuIH1cbiAgdmFyIHJlcyA9IHt9O1xuICB2YXIgaSwgdmFsLCBuYW1lO1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcykpIHtcbiAgICBpID0gcHJvcHMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHZhbCA9IHByb3BzW2ldO1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5hbWUgPSBjYW1lbGl6ZSh2YWwpO1xuICAgICAgICByZXNbbmFtZV0gPSB7IHR5cGU6IG51bGwgfTtcbiAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3YXJuKCdwcm9wcyBtdXN0IGJlIHN0cmluZ3Mgd2hlbiB1c2luZyBhcnJheSBzeW50YXguJyk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QocHJvcHMpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7XG4gICAgICB2YWwgPSBwcm9wc1trZXldO1xuICAgICAgbmFtZSA9IGNhbWVsaXplKGtleSk7XG4gICAgICByZXNbbmFtZV0gPSBpc1BsYWluT2JqZWN0KHZhbClcbiAgICAgICAgPyB2YWxcbiAgICAgICAgOiB7IHR5cGU6IHZhbCB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgd2FybihcbiAgICAgIFwiSW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uIFxcXCJwcm9wc1xcXCI6IGV4cGVjdGVkIGFuIEFycmF5IG9yIGFuIE9iamVjdCwgXCIgK1xuICAgICAgXCJidXQgZ290IFwiICsgKHRvUmF3VHlwZShwcm9wcykpICsgXCIuXCIsXG4gICAgICB2bVxuICAgICk7XG4gIH1cbiAgb3B0aW9ucy5wcm9wcyA9IHJlcztcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYWxsIGluamVjdGlvbnMgaW50byBPYmplY3QtYmFzZWQgZm9ybWF0XG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUluamVjdCAob3B0aW9ucywgdm0pIHtcbiAgdmFyIGluamVjdCA9IG9wdGlvbnMuaW5qZWN0O1xuICBpZiAoIWluamVjdCkgeyByZXR1cm4gfVxuICB2YXIgbm9ybWFsaXplZCA9IG9wdGlvbnMuaW5qZWN0ID0ge307XG4gIGlmIChBcnJheS5pc0FycmF5KGluamVjdCkpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluamVjdC5sZW5ndGg7IGkrKykge1xuICAgICAgbm9ybWFsaXplZFtpbmplY3RbaV1dID0geyBmcm9tOiBpbmplY3RbaV0gfTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdChpbmplY3QpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGluamVjdCkge1xuICAgICAgdmFyIHZhbCA9IGluamVjdFtrZXldO1xuICAgICAgbm9ybWFsaXplZFtrZXldID0gaXNQbGFpbk9iamVjdCh2YWwpXG4gICAgICAgID8gZXh0ZW5kKHsgZnJvbToga2V5IH0sIHZhbClcbiAgICAgICAgOiB7IGZyb206IHZhbCB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgd2FybihcbiAgICAgIFwiSW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uIFxcXCJpbmplY3RcXFwiOiBleHBlY3RlZCBhbiBBcnJheSBvciBhbiBPYmplY3QsIFwiICtcbiAgICAgIFwiYnV0IGdvdCBcIiArICh0b1Jhd1R5cGUoaW5qZWN0KSkgKyBcIi5cIixcbiAgICAgIHZtXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSByYXcgZnVuY3Rpb24gZGlyZWN0aXZlcyBpbnRvIG9iamVjdCBmb3JtYXQuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURpcmVjdGl2ZXMgKG9wdGlvbnMpIHtcbiAgdmFyIGRpcnMgPSBvcHRpb25zLmRpcmVjdGl2ZXM7XG4gIGlmIChkaXJzKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRpcnMpIHtcbiAgICAgIHZhciBkZWYkJDEgPSBkaXJzW2tleV07XG4gICAgICBpZiAodHlwZW9mIGRlZiQkMSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBkaXJzW2tleV0gPSB7IGJpbmQ6IGRlZiQkMSwgdXBkYXRlOiBkZWYkJDEgfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0T2JqZWN0VHlwZSAobmFtZSwgdmFsdWUsIHZtKSB7XG4gIGlmICghaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICB3YXJuKFxuICAgICAgXCJJbnZhbGlkIHZhbHVlIGZvciBvcHRpb24gXFxcIlwiICsgbmFtZSArIFwiXFxcIjogZXhwZWN0ZWQgYW4gT2JqZWN0LCBcIiArXG4gICAgICBcImJ1dCBnb3QgXCIgKyAodG9SYXdUeXBlKHZhbHVlKSkgKyBcIi5cIixcbiAgICAgIHZtXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIE1lcmdlIHR3byBvcHRpb24gb2JqZWN0cyBpbnRvIGEgbmV3IG9uZS5cbiAqIENvcmUgdXRpbGl0eSB1c2VkIGluIGJvdGggaW5zdGFudGlhdGlvbiBhbmQgaW5oZXJpdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlT3B0aW9ucyAoXG4gIHBhcmVudCxcbiAgY2hpbGQsXG4gIHZtXG4pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjaGVja0NvbXBvbmVudHMoY2hpbGQpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNoaWxkID0gY2hpbGQub3B0aW9ucztcbiAgfVxuXG4gIG5vcm1hbGl6ZVByb3BzKGNoaWxkLCB2bSk7XG4gIG5vcm1hbGl6ZUluamVjdChjaGlsZCwgdm0pO1xuICBub3JtYWxpemVEaXJlY3RpdmVzKGNoaWxkKTtcblxuICAvLyBBcHBseSBleHRlbmRzIGFuZCBtaXhpbnMgb24gdGhlIGNoaWxkIG9wdGlvbnMsXG4gIC8vIGJ1dCBvbmx5IGlmIGl0IGlzIGEgcmF3IG9wdGlvbnMgb2JqZWN0IHRoYXQgaXNuJ3RcbiAgLy8gdGhlIHJlc3VsdCBvZiBhbm90aGVyIG1lcmdlT3B0aW9ucyBjYWxsLlxuICAvLyBPbmx5IG1lcmdlZCBvcHRpb25zIGhhcyB0aGUgX2Jhc2UgcHJvcGVydHkuXG4gIGlmICghY2hpbGQuX2Jhc2UpIHtcbiAgICBpZiAoY2hpbGQuZXh0ZW5kcykge1xuICAgICAgcGFyZW50ID0gbWVyZ2VPcHRpb25zKHBhcmVudCwgY2hpbGQuZXh0ZW5kcywgdm0pO1xuICAgIH1cbiAgICBpZiAoY2hpbGQubWl4aW5zKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGNoaWxkLm1peGlucy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgcGFyZW50ID0gbWVyZ2VPcHRpb25zKHBhcmVudCwgY2hpbGQubWl4aW5zW2ldLCB2bSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIG9wdGlvbnMgPSB7fTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gcGFyZW50KSB7XG4gICAgbWVyZ2VGaWVsZChrZXkpO1xuICB9XG4gIGZvciAoa2V5IGluIGNoaWxkKSB7XG4gICAgaWYgKCFoYXNPd24ocGFyZW50LCBrZXkpKSB7XG4gICAgICBtZXJnZUZpZWxkKGtleSk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIG1lcmdlRmllbGQgKGtleSkge1xuICAgIHZhciBzdHJhdCA9IHN0cmF0c1trZXldIHx8IGRlZmF1bHRTdHJhdDtcbiAgICBvcHRpb25zW2tleV0gPSBzdHJhdChwYXJlbnRba2V5XSwgY2hpbGRba2V5XSwgdm0sIGtleSk7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGFuIGFzc2V0LlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJlY2F1c2UgY2hpbGQgaW5zdGFuY2VzIG5lZWQgYWNjZXNzXG4gKiB0byBhc3NldHMgZGVmaW5lZCBpbiBpdHMgYW5jZXN0b3IgY2hhaW4uXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVBc3NldCAoXG4gIG9wdGlvbnMsXG4gIHR5cGUsXG4gIGlkLFxuICB3YXJuTWlzc2luZ1xuKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAodHlwZW9mIGlkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBhc3NldHMgPSBvcHRpb25zW3R5cGVdO1xuICAvLyBjaGVjayBsb2NhbCByZWdpc3RyYXRpb24gdmFyaWF0aW9ucyBmaXJzdFxuICBpZiAoaGFzT3duKGFzc2V0cywgaWQpKSB7IHJldHVybiBhc3NldHNbaWRdIH1cbiAgdmFyIGNhbWVsaXplZElkID0gY2FtZWxpemUoaWQpO1xuICBpZiAoaGFzT3duKGFzc2V0cywgY2FtZWxpemVkSWQpKSB7IHJldHVybiBhc3NldHNbY2FtZWxpemVkSWRdIH1cbiAgdmFyIFBhc2NhbENhc2VJZCA9IGNhcGl0YWxpemUoY2FtZWxpemVkSWQpO1xuICBpZiAoaGFzT3duKGFzc2V0cywgUGFzY2FsQ2FzZUlkKSkgeyByZXR1cm4gYXNzZXRzW1Bhc2NhbENhc2VJZF0gfVxuICAvLyBmYWxsYmFjayB0byBwcm90b3R5cGUgY2hhaW5cbiAgdmFyIHJlcyA9IGFzc2V0c1tpZF0gfHwgYXNzZXRzW2NhbWVsaXplZElkXSB8fCBhc3NldHNbUGFzY2FsQ2FzZUlkXTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2Fybk1pc3NpbmcgJiYgIXJlcykge1xuICAgIHdhcm4oXG4gICAgICAnRmFpbGVkIHRvIHJlc29sdmUgJyArIHR5cGUuc2xpY2UoMCwgLTEpICsgJzogJyArIGlkLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG4vKiAgKi9cblxuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcCAoXG4gIGtleSxcbiAgcHJvcE9wdGlvbnMsXG4gIHByb3BzRGF0YSxcbiAgdm1cbikge1xuICB2YXIgcHJvcCA9IHByb3BPcHRpb25zW2tleV07XG4gIHZhciBhYnNlbnQgPSAhaGFzT3duKHByb3BzRGF0YSwga2V5KTtcbiAgdmFyIHZhbHVlID0gcHJvcHNEYXRhW2tleV07XG4gIC8vIGJvb2xlYW4gY2FzdGluZ1xuICB2YXIgYm9vbGVhbkluZGV4ID0gZ2V0VHlwZUluZGV4KEJvb2xlYW4sIHByb3AudHlwZSk7XG4gIGlmIChib29sZWFuSW5kZXggPiAtMSkge1xuICAgIGlmIChhYnNlbnQgJiYgIWhhc093bihwcm9wLCAnZGVmYXVsdCcpKSB7XG4gICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBoeXBoZW5hdGUoa2V5KSkge1xuICAgICAgLy8gb25seSBjYXN0IGVtcHR5IHN0cmluZyAvIHNhbWUgbmFtZSB0byBib29sZWFuIGlmXG4gICAgICAvLyBib29sZWFuIGhhcyBoaWdoZXIgcHJpb3JpdHlcbiAgICAgIHZhciBzdHJpbmdJbmRleCA9IGdldFR5cGVJbmRleChTdHJpbmcsIHByb3AudHlwZSk7XG4gICAgICBpZiAoc3RyaW5nSW5kZXggPCAwIHx8IGJvb2xlYW5JbmRleCA8IHN0cmluZ0luZGV4KSB7XG4gICAgICAgIHZhbHVlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gY2hlY2sgZGVmYXVsdCB2YWx1ZVxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlID0gZ2V0UHJvcERlZmF1bHRWYWx1ZSh2bSwgcHJvcCwga2V5KTtcbiAgICAvLyBzaW5jZSB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBhIGZyZXNoIGNvcHksXG4gICAgLy8gbWFrZSBzdXJlIHRvIG9ic2VydmUgaXQuXG4gICAgdmFyIHByZXZTaG91bGRPYnNlcnZlID0gc2hvdWxkT2JzZXJ2ZTtcbiAgICB0b2dnbGVPYnNlcnZpbmcodHJ1ZSk7XG4gICAgb2JzZXJ2ZSh2YWx1ZSk7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKHByZXZTaG91bGRPYnNlcnZlKTtcbiAgfVxuICBpZiAoXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIC8vIHNraXAgdmFsaWRhdGlvbiBmb3Igd2VleCByZWN5Y2xlLWxpc3QgY2hpbGQgY29tcG9uZW50IHByb3BzXG4gICAgIShmYWxzZSlcbiAgKSB7XG4gICAgYXNzZXJ0UHJvcChwcm9wLCBrZXksIHZhbHVlLCB2bSwgYWJzZW50KTtcbiAgfVxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYSBwcm9wLlxuICovXG5mdW5jdGlvbiBnZXRQcm9wRGVmYXVsdFZhbHVlICh2bSwgcHJvcCwga2V5KSB7XG4gIC8vIG5vIGRlZmF1bHQsIHJldHVybiB1bmRlZmluZWRcbiAgaWYgKCFoYXNPd24ocHJvcCwgJ2RlZmF1bHQnKSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuICB2YXIgZGVmID0gcHJvcC5kZWZhdWx0O1xuICAvLyB3YXJuIGFnYWluc3Qgbm9uLWZhY3RvcnkgZGVmYXVsdHMgZm9yIE9iamVjdCAmIEFycmF5XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzT2JqZWN0KGRlZikpIHtcbiAgICB3YXJuKFxuICAgICAgJ0ludmFsaWQgZGVmYXVsdCB2YWx1ZSBmb3IgcHJvcCBcIicgKyBrZXkgKyAnXCI6ICcgK1xuICAgICAgJ1Byb3BzIHdpdGggdHlwZSBPYmplY3QvQXJyYXkgbXVzdCB1c2UgYSBmYWN0b3J5IGZ1bmN0aW9uICcgK1xuICAgICAgJ3RvIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZS4nLFxuICAgICAgdm1cbiAgICApO1xuICB9XG4gIC8vIHRoZSByYXcgcHJvcCB2YWx1ZSB3YXMgYWxzbyB1bmRlZmluZWQgZnJvbSBwcmV2aW91cyByZW5kZXIsXG4gIC8vIHJldHVybiBwcmV2aW91cyBkZWZhdWx0IHZhbHVlIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHdhdGNoZXIgdHJpZ2dlclxuICBpZiAodm0gJiYgdm0uJG9wdGlvbnMucHJvcHNEYXRhICYmXG4gICAgdm0uJG9wdGlvbnMucHJvcHNEYXRhW2tleV0gPT09IHVuZGVmaW5lZCAmJlxuICAgIHZtLl9wcm9wc1trZXldICE9PSB1bmRlZmluZWRcbiAgKSB7XG4gICAgcmV0dXJuIHZtLl9wcm9wc1trZXldXG4gIH1cbiAgLy8gY2FsbCBmYWN0b3J5IGZ1bmN0aW9uIGZvciBub24tRnVuY3Rpb24gdHlwZXNcbiAgLy8gYSB2YWx1ZSBpcyBGdW5jdGlvbiBpZiBpdHMgcHJvdG90eXBlIGlzIGZ1bmN0aW9uIGV2ZW4gYWNyb3NzIGRpZmZlcmVudCBleGVjdXRpb24gY29udGV4dFxuICByZXR1cm4gdHlwZW9mIGRlZiA9PT0gJ2Z1bmN0aW9uJyAmJiBnZXRUeXBlKHByb3AudHlwZSkgIT09ICdGdW5jdGlvbidcbiAgICA/IGRlZi5jYWxsKHZtKVxuICAgIDogZGVmXG59XG5cbi8qKlxuICogQXNzZXJ0IHdoZXRoZXIgYSBwcm9wIGlzIHZhbGlkLlxuICovXG5mdW5jdGlvbiBhc3NlcnRQcm9wIChcbiAgcHJvcCxcbiAgbmFtZSxcbiAgdmFsdWUsXG4gIHZtLFxuICBhYnNlbnRcbikge1xuICBpZiAocHJvcC5yZXF1aXJlZCAmJiBhYnNlbnQpIHtcbiAgICB3YXJuKFxuICAgICAgJ01pc3NpbmcgcmVxdWlyZWQgcHJvcDogXCInICsgbmFtZSArICdcIicsXG4gICAgICB2bVxuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHZhbHVlID09IG51bGwgJiYgIXByb3AucmVxdWlyZWQpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgdHlwZSA9IHByb3AudHlwZTtcbiAgdmFyIHZhbGlkID0gIXR5cGUgfHwgdHlwZSA9PT0gdHJ1ZTtcbiAgdmFyIGV4cGVjdGVkVHlwZXMgPSBbXTtcbiAgaWYgKHR5cGUpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGUgPSBbdHlwZV07XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZS5sZW5ndGggJiYgIXZhbGlkOyBpKyspIHtcbiAgICAgIHZhciBhc3NlcnRlZFR5cGUgPSBhc3NlcnRUeXBlKHZhbHVlLCB0eXBlW2ldKTtcbiAgICAgIGV4cGVjdGVkVHlwZXMucHVzaChhc3NlcnRlZFR5cGUuZXhwZWN0ZWRUeXBlIHx8ICcnKTtcbiAgICAgIHZhbGlkID0gYXNzZXJ0ZWRUeXBlLnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIGlmICghdmFsaWQpIHtcbiAgICB3YXJuKFxuICAgICAgZ2V0SW52YWxpZFR5cGVNZXNzYWdlKG5hbWUsIHZhbHVlLCBleHBlY3RlZFR5cGVzKSxcbiAgICAgIHZtXG4gICAgKTtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgdmFsaWRhdG9yID0gcHJvcC52YWxpZGF0b3I7XG4gIGlmICh2YWxpZGF0b3IpIHtcbiAgICBpZiAoIXZhbGlkYXRvcih2YWx1ZSkpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdJbnZhbGlkIHByb3A6IGN1c3RvbSB2YWxpZGF0b3IgY2hlY2sgZmFpbGVkIGZvciBwcm9wIFwiJyArIG5hbWUgKyAnXCIuJyxcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbnZhciBzaW1wbGVDaGVja1JFID0gL14oU3RyaW5nfE51bWJlcnxCb29sZWFufEZ1bmN0aW9ufFN5bWJvbCkkLztcblxuZnVuY3Rpb24gYXNzZXJ0VHlwZSAodmFsdWUsIHR5cGUpIHtcbiAgdmFyIHZhbGlkO1xuICB2YXIgZXhwZWN0ZWRUeXBlID0gZ2V0VHlwZSh0eXBlKTtcbiAgaWYgKHNpbXBsZUNoZWNrUkUudGVzdChleHBlY3RlZFR5cGUpKSB7XG4gICAgdmFyIHQgPSB0eXBlb2YgdmFsdWU7XG4gICAgdmFsaWQgPSB0ID09PSBleHBlY3RlZFR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICAvLyBmb3IgcHJpbWl0aXZlIHdyYXBwZXIgb2JqZWN0c1xuICAgIGlmICghdmFsaWQgJiYgdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbGlkID0gdmFsdWUgaW5zdGFuY2VvZiB0eXBlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09ICdPYmplY3QnKSB7XG4gICAgdmFsaWQgPSBpc1BsYWluT2JqZWN0KHZhbHVlKTtcbiAgfSBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09ICdBcnJheScpIHtcbiAgICB2YWxpZCA9IEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHZhbGlkID0gdmFsdWUgaW5zdGFuY2VvZiB0eXBlO1xuICB9XG4gIHJldHVybiB7XG4gICAgdmFsaWQ6IHZhbGlkLFxuICAgIGV4cGVjdGVkVHlwZTogZXhwZWN0ZWRUeXBlXG4gIH1cbn1cblxuLyoqXG4gKiBVc2UgZnVuY3Rpb24gc3RyaW5nIG5hbWUgdG8gY2hlY2sgYnVpbHQtaW4gdHlwZXMsXG4gKiBiZWNhdXNlIGEgc2ltcGxlIGVxdWFsaXR5IGNoZWNrIHdpbGwgZmFpbCB3aGVuIHJ1bm5pbmdcbiAqIGFjcm9zcyBkaWZmZXJlbnQgdm1zIC8gaWZyYW1lcy5cbiAqL1xuZnVuY3Rpb24gZ2V0VHlwZSAoZm4pIHtcbiAgdmFyIG1hdGNoID0gZm4gJiYgZm4udG9TdHJpbmcoKS5tYXRjaCgvXlxccypmdW5jdGlvbiAoXFx3KykvKTtcbiAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiAnJ1xufVxuXG5mdW5jdGlvbiBpc1NhbWVUeXBlIChhLCBiKSB7XG4gIHJldHVybiBnZXRUeXBlKGEpID09PSBnZXRUeXBlKGIpXG59XG5cbmZ1bmN0aW9uIGdldFR5cGVJbmRleCAodHlwZSwgZXhwZWN0ZWRUeXBlcykge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRUeXBlcykpIHtcbiAgICByZXR1cm4gaXNTYW1lVHlwZShleHBlY3RlZFR5cGVzLCB0eXBlKSA/IDAgOiAtMVxuICB9XG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBleHBlY3RlZFR5cGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGlzU2FtZVR5cGUoZXhwZWN0ZWRUeXBlc1tpXSwgdHlwZSkpIHtcbiAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG4gIHJldHVybiAtMVxufVxuXG5mdW5jdGlvbiBnZXRJbnZhbGlkVHlwZU1lc3NhZ2UgKG5hbWUsIHZhbHVlLCBleHBlY3RlZFR5cGVzKSB7XG4gIHZhciBtZXNzYWdlID0gXCJJbnZhbGlkIHByb3A6IHR5cGUgY2hlY2sgZmFpbGVkIGZvciBwcm9wIFxcXCJcIiArIG5hbWUgKyBcIlxcXCIuXCIgK1xuICAgIFwiIEV4cGVjdGVkIFwiICsgKGV4cGVjdGVkVHlwZXMubWFwKGNhcGl0YWxpemUpLmpvaW4oJywgJykpO1xuICB2YXIgZXhwZWN0ZWRUeXBlID0gZXhwZWN0ZWRUeXBlc1swXTtcbiAgdmFyIHJlY2VpdmVkVHlwZSA9IHRvUmF3VHlwZSh2YWx1ZSk7XG4gIHZhciBleHBlY3RlZFZhbHVlID0gc3R5bGVWYWx1ZSh2YWx1ZSwgZXhwZWN0ZWRUeXBlKTtcbiAgdmFyIHJlY2VpdmVkVmFsdWUgPSBzdHlsZVZhbHVlKHZhbHVlLCByZWNlaXZlZFR5cGUpO1xuICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIHNwZWNpZnkgZXhwZWN0ZWQgdmFsdWVcbiAgaWYgKGV4cGVjdGVkVHlwZXMubGVuZ3RoID09PSAxICYmXG4gICAgICBpc0V4cGxpY2FibGUoZXhwZWN0ZWRUeXBlKSAmJlxuICAgICAgIWlzQm9vbGVhbihleHBlY3RlZFR5cGUsIHJlY2VpdmVkVHlwZSkpIHtcbiAgICBtZXNzYWdlICs9IFwiIHdpdGggdmFsdWUgXCIgKyBleHBlY3RlZFZhbHVlO1xuICB9XG4gIG1lc3NhZ2UgKz0gXCIsIGdvdCBcIiArIHJlY2VpdmVkVHlwZSArIFwiIFwiO1xuICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIHNwZWNpZnkgcmVjZWl2ZWQgdmFsdWVcbiAgaWYgKGlzRXhwbGljYWJsZShyZWNlaXZlZFR5cGUpKSB7XG4gICAgbWVzc2FnZSArPSBcIndpdGggdmFsdWUgXCIgKyByZWNlaXZlZFZhbHVlICsgXCIuXCI7XG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuZnVuY3Rpb24gc3R5bGVWYWx1ZSAodmFsdWUsIHR5cGUpIHtcbiAgaWYgKHR5cGUgPT09ICdTdHJpbmcnKSB7XG4gICAgcmV0dXJuIChcIlxcXCJcIiArIHZhbHVlICsgXCJcXFwiXCIpXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ051bWJlcicpIHtcbiAgICByZXR1cm4gKFwiXCIgKyAoTnVtYmVyKHZhbHVlKSkpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcIlwiICsgdmFsdWUpXG4gIH1cbn1cblxuZnVuY3Rpb24gaXNFeHBsaWNhYmxlICh2YWx1ZSkge1xuICB2YXIgZXhwbGljaXRUeXBlcyA9IFsnc3RyaW5nJywgJ251bWJlcicsICdib29sZWFuJ107XG4gIHJldHVybiBleHBsaWNpdFR5cGVzLnNvbWUoZnVuY3Rpb24gKGVsZW0pIHsgcmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IGVsZW07IH0pXG59XG5cbmZ1bmN0aW9uIGlzQm9vbGVhbiAoKSB7XG4gIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHdoaWxlICggbGVuLS0gKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuIF07XG5cbiAgcmV0dXJuIGFyZ3Muc29tZShmdW5jdGlvbiAoZWxlbSkgeyByZXR1cm4gZWxlbS50b0xvd2VyQ2FzZSgpID09PSAnYm9vbGVhbic7IH0pXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBoYW5kbGVFcnJvciAoZXJyLCB2bSwgaW5mbykge1xuICAvLyBEZWFjdGl2YXRlIGRlcHMgdHJhY2tpbmcgd2hpbGUgcHJvY2Vzc2luZyBlcnJvciBoYW5kbGVyIHRvIGF2b2lkIHBvc3NpYmxlIGluZmluaXRlIHJlbmRlcmluZy5cbiAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVleC9pc3N1ZXMvMTUwNVxuICBwdXNoVGFyZ2V0KCk7XG4gIHRyeSB7XG4gICAgaWYgKHZtKSB7XG4gICAgICB2YXIgY3VyID0gdm07XG4gICAgICB3aGlsZSAoKGN1ciA9IGN1ci4kcGFyZW50KSkge1xuICAgICAgICB2YXIgaG9va3MgPSBjdXIuJG9wdGlvbnMuZXJyb3JDYXB0dXJlZDtcbiAgICAgICAgaWYgKGhvb2tzKSB7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBob29rcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdmFyIGNhcHR1cmUgPSBob29rc1tpXS5jYWxsKGN1ciwgZXJyLCB2bSwgaW5mbykgPT09IGZhbHNlO1xuICAgICAgICAgICAgICBpZiAoY2FwdHVyZSkgeyByZXR1cm4gfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBnbG9iYWxIYW5kbGVFcnJvcihlLCBjdXIsICdlcnJvckNhcHR1cmVkIGhvb2snKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZ2xvYmFsSGFuZGxlRXJyb3IoZXJyLCB2bSwgaW5mbyk7XG4gIH0gZmluYWxseSB7XG4gICAgcG9wVGFyZ2V0KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlV2l0aEVycm9ySGFuZGxpbmcgKFxuICBoYW5kbGVyLFxuICBjb250ZXh0LFxuICBhcmdzLFxuICB2bSxcbiAgaW5mb1xuKSB7XG4gIHZhciByZXM7XG4gIHRyeSB7XG4gICAgcmVzID0gYXJncyA/IGhhbmRsZXIuYXBwbHkoY29udGV4dCwgYXJncykgOiBoYW5kbGVyLmNhbGwoY29udGV4dCk7XG4gICAgaWYgKHJlcyAmJiAhcmVzLl9pc1Z1ZSAmJiBpc1Byb21pc2UocmVzKSAmJiAhcmVzLl9oYW5kbGVkKSB7XG4gICAgICByZXMuY2F0Y2goZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGUsIHZtLCBpbmZvICsgXCIgKFByb21pc2UvYXN5bmMpXCIpOyB9KTtcbiAgICAgIC8vIGlzc3VlICM5NTExXG4gICAgICAvLyBhdm9pZCBjYXRjaCB0cmlnZ2VyaW5nIG11bHRpcGxlIHRpbWVzIHdoZW4gbmVzdGVkIGNhbGxzXG4gICAgICByZXMuX2hhbmRsZWQgPSB0cnVlO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGhhbmRsZUVycm9yKGUsIHZtLCBpbmZvKTtcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdsb2JhbEhhbmRsZUVycm9yIChlcnIsIHZtLCBpbmZvKSB7XG4gIGlmIChjb25maWcuZXJyb3JIYW5kbGVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjb25maWcuZXJyb3JIYW5kbGVyLmNhbGwobnVsbCwgZXJyLCB2bSwgaW5mbylcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBpZiB0aGUgdXNlciBpbnRlbnRpb25hbGx5IHRocm93cyB0aGUgb3JpZ2luYWwgZXJyb3IgaW4gdGhlIGhhbmRsZXIsXG4gICAgICAvLyBkbyBub3QgbG9nIGl0IHR3aWNlXG4gICAgICBpZiAoZSAhPT0gZXJyKSB7XG4gICAgICAgIGxvZ0Vycm9yKGUsIG51bGwsICdjb25maWcuZXJyb3JIYW5kbGVyJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGxvZ0Vycm9yKGVyciwgdm0sIGluZm8pO1xufVxuXG5mdW5jdGlvbiBsb2dFcnJvciAoZXJyLCB2bSwgaW5mbykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHdhcm4oKFwiRXJyb3IgaW4gXCIgKyBpbmZvICsgXCI6IFxcXCJcIiArIChlcnIudG9TdHJpbmcoKSkgKyBcIlxcXCJcIiksIHZtKTtcbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoKGluQnJvd3NlciB8fCBpbldlZXgpICYmIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBlcnJcbiAgfVxufVxuXG4vKiAgKi9cblxudmFyIGlzVXNpbmdNaWNyb1Rhc2sgPSBmYWxzZTtcblxudmFyIGNhbGxiYWNrcyA9IFtdO1xudmFyIHBlbmRpbmcgPSBmYWxzZTtcblxuZnVuY3Rpb24gZmx1c2hDYWxsYmFja3MgKCkge1xuICBwZW5kaW5nID0gZmFsc2U7XG4gIHZhciBjb3BpZXMgPSBjYWxsYmFja3Muc2xpY2UoMCk7XG4gIGNhbGxiYWNrcy5sZW5ndGggPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvcGllcy5sZW5ndGg7IGkrKykge1xuICAgIGNvcGllc1tpXSgpO1xuICB9XG59XG5cbi8vIEhlcmUgd2UgaGF2ZSBhc3luYyBkZWZlcnJpbmcgd3JhcHBlcnMgdXNpbmcgbWljcm90YXNrcy5cbi8vIEluIDIuNSB3ZSB1c2VkIChtYWNybykgdGFza3MgKGluIGNvbWJpbmF0aW9uIHdpdGggbWljcm90YXNrcykuXG4vLyBIb3dldmVyLCBpdCBoYXMgc3VidGxlIHByb2JsZW1zIHdoZW4gc3RhdGUgaXMgY2hhbmdlZCByaWdodCBiZWZvcmUgcmVwYWludFxuLy8gKGUuZy4gIzY4MTMsIG91dC1pbiB0cmFuc2l0aW9ucykuXG4vLyBBbHNvLCB1c2luZyAobWFjcm8pIHRhc2tzIGluIGV2ZW50IGhhbmRsZXIgd291bGQgY2F1c2Ugc29tZSB3ZWlyZCBiZWhhdmlvcnNcbi8vIHRoYXQgY2Fubm90IGJlIGNpcmN1bXZlbnRlZCAoZS5nLiAjNzEwOSwgIzcxNTMsICM3NTQ2LCAjNzgzNCwgIzgxMDkpLlxuLy8gU28gd2Ugbm93IHVzZSBtaWNyb3Rhc2tzIGV2ZXJ5d2hlcmUsIGFnYWluLlxuLy8gQSBtYWpvciBkcmF3YmFjayBvZiB0aGlzIHRyYWRlb2ZmIGlzIHRoYXQgdGhlcmUgYXJlIHNvbWUgc2NlbmFyaW9zXG4vLyB3aGVyZSBtaWNyb3Rhc2tzIGhhdmUgdG9vIGhpZ2ggYSBwcmlvcml0eSBhbmQgZmlyZSBpbiBiZXR3ZWVuIHN1cHBvc2VkbHlcbi8vIHNlcXVlbnRpYWwgZXZlbnRzIChlLmcuICM0NTIxLCAjNjY5MCwgd2hpY2ggaGF2ZSB3b3JrYXJvdW5kcylcbi8vIG9yIGV2ZW4gYmV0d2VlbiBidWJibGluZyBvZiB0aGUgc2FtZSBldmVudCAoIzY1NjYpLlxudmFyIHRpbWVyRnVuYztcblxuLy8gVGhlIG5leHRUaWNrIGJlaGF2aW9yIGxldmVyYWdlcyB0aGUgbWljcm90YXNrIHF1ZXVlLCB3aGljaCBjYW4gYmUgYWNjZXNzZWRcbi8vIHZpYSBlaXRoZXIgbmF0aXZlIFByb21pc2UudGhlbiBvciBNdXRhdGlvbk9ic2VydmVyLlxuLy8gTXV0YXRpb25PYnNlcnZlciBoYXMgd2lkZXIgc3VwcG9ydCwgaG93ZXZlciBpdCBpcyBzZXJpb3VzbHkgYnVnZ2VkIGluXG4vLyBVSVdlYlZpZXcgaW4gaU9TID49IDkuMy4zIHdoZW4gdHJpZ2dlcmVkIGluIHRvdWNoIGV2ZW50IGhhbmRsZXJzLiBJdFxuLy8gY29tcGxldGVseSBzdG9wcyB3b3JraW5nIGFmdGVyIHRyaWdnZXJpbmcgYSBmZXcgdGltZXMuLi4gc28sIGlmIG5hdGl2ZVxuLy8gUHJvbWlzZSBpcyBhdmFpbGFibGUsIHdlIHdpbGwgdXNlIGl0OlxuLyogaXN0YW5idWwgaWdub3JlIG5leHQsICRmbG93LWRpc2FibGUtbGluZSAqL1xuaWYgKHR5cGVvZiBQcm9taXNlICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShQcm9taXNlKSkge1xuICB2YXIgcCA9IFByb21pc2UucmVzb2x2ZSgpO1xuICB0aW1lckZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgcC50aGVuKGZsdXNoQ2FsbGJhY2tzKTtcbiAgICAvLyBJbiBwcm9ibGVtYXRpYyBVSVdlYlZpZXdzLCBQcm9taXNlLnRoZW4gZG9lc24ndCBjb21wbGV0ZWx5IGJyZWFrLCBidXRcbiAgICAvLyBpdCBjYW4gZ2V0IHN0dWNrIGluIGEgd2VpcmQgc3RhdGUgd2hlcmUgY2FsbGJhY2tzIGFyZSBwdXNoZWQgaW50byB0aGVcbiAgICAvLyBtaWNyb3Rhc2sgcXVldWUgYnV0IHRoZSBxdWV1ZSBpc24ndCBiZWluZyBmbHVzaGVkLCB1bnRpbCB0aGUgYnJvd3NlclxuICAgIC8vIG5lZWRzIHRvIGRvIHNvbWUgb3RoZXIgd29yaywgZS5nLiBoYW5kbGUgYSB0aW1lci4gVGhlcmVmb3JlIHdlIGNhblxuICAgIC8vIFwiZm9yY2VcIiB0aGUgbWljcm90YXNrIHF1ZXVlIHRvIGJlIGZsdXNoZWQgYnkgYWRkaW5nIGFuIGVtcHR5IHRpbWVyLlxuICAgIGlmIChpc0lPUykgeyBzZXRUaW1lb3V0KG5vb3ApOyB9XG4gIH07XG4gIGlzVXNpbmdNaWNyb1Rhc2sgPSB0cnVlO1xufSBlbHNlIGlmICghaXNJRSAmJiB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgKFxuICBpc05hdGl2ZShNdXRhdGlvbk9ic2VydmVyKSB8fFxuICAvLyBQaGFudG9tSlMgYW5kIGlPUyA3LnhcbiAgTXV0YXRpb25PYnNlcnZlci50b1N0cmluZygpID09PSAnW29iamVjdCBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3JdJ1xuKSkge1xuICAvLyBVc2UgTXV0YXRpb25PYnNlcnZlciB3aGVyZSBuYXRpdmUgUHJvbWlzZSBpcyBub3QgYXZhaWxhYmxlLFxuICAvLyBlLmcuIFBoYW50b21KUywgaU9TNywgQW5kcm9pZCA0LjRcbiAgLy8gKCM2NDY2IE11dGF0aW9uT2JzZXJ2ZXIgaXMgdW5yZWxpYWJsZSBpbiBJRTExKVxuICB2YXIgY291bnRlciA9IDE7XG4gIHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZsdXNoQ2FsbGJhY2tzKTtcbiAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGNvdW50ZXIpKTtcbiAgb2JzZXJ2ZXIub2JzZXJ2ZSh0ZXh0Tm9kZSwge1xuICAgIGNoYXJhY3RlckRhdGE6IHRydWVcbiAgfSk7XG4gIHRpbWVyRnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICBjb3VudGVyID0gKGNvdW50ZXIgKyAxKSAlIDI7XG4gICAgdGV4dE5vZGUuZGF0YSA9IFN0cmluZyhjb3VudGVyKTtcbiAgfTtcbiAgaXNVc2luZ01pY3JvVGFzayA9IHRydWU7XG59IGVsc2UgaWYgKHR5cGVvZiBzZXRJbW1lZGlhdGUgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKHNldEltbWVkaWF0ZSkpIHtcbiAgLy8gRmFsbGJhY2sgdG8gc2V0SW1tZWRpYXRlLlxuICAvLyBUZWNoaW5pY2FsbHkgaXQgbGV2ZXJhZ2VzIHRoZSAobWFjcm8pIHRhc2sgcXVldWUsXG4gIC8vIGJ1dCBpdCBpcyBzdGlsbCBhIGJldHRlciBjaG9pY2UgdGhhbiBzZXRUaW1lb3V0LlxuICB0aW1lckZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgc2V0SW1tZWRpYXRlKGZsdXNoQ2FsbGJhY2tzKTtcbiAgfTtcbn0gZWxzZSB7XG4gIC8vIEZhbGxiYWNrIHRvIHNldFRpbWVvdXQuXG4gIHRpbWVyRnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICBzZXRUaW1lb3V0KGZsdXNoQ2FsbGJhY2tzLCAwKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gbmV4dFRpY2sgKGNiLCBjdHgpIHtcbiAgdmFyIF9yZXNvbHZlO1xuICBjYWxsYmFja3MucHVzaChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGNiKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjYi5jYWxsKGN0eCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGUsIGN0eCwgJ25leHRUaWNrJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChfcmVzb2x2ZSkge1xuICAgICAgX3Jlc29sdmUoY3R4KTtcbiAgICB9XG4gIH0pO1xuICBpZiAoIXBlbmRpbmcpIHtcbiAgICBwZW5kaW5nID0gdHJ1ZTtcbiAgICB0aW1lckZ1bmMoKTtcbiAgfVxuICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgaWYgKCFjYiAmJiB0eXBlb2YgUHJvbWlzZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgIF9yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICB9KVxuICB9XG59XG5cbi8qICAqL1xuXG4vKiBub3QgdHlwZSBjaGVja2luZyB0aGlzIGZpbGUgYmVjYXVzZSBmbG93IGRvZXNuJ3QgcGxheSB3ZWxsIHdpdGggUHJveHkgKi9cblxudmFyIGluaXRQcm94eTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIGFsbG93ZWRHbG9iYWxzID0gbWFrZU1hcChcbiAgICAnSW5maW5pdHksdW5kZWZpbmVkLE5hTixpc0Zpbml0ZSxpc05hTiwnICtcbiAgICAncGFyc2VGbG9hdCxwYXJzZUludCxkZWNvZGVVUkksZGVjb2RlVVJJQ29tcG9uZW50LGVuY29kZVVSSSxlbmNvZGVVUklDb21wb25lbnQsJyArXG4gICAgJ01hdGgsTnVtYmVyLERhdGUsQXJyYXksT2JqZWN0LEJvb2xlYW4sU3RyaW5nLFJlZ0V4cCxNYXAsU2V0LEpTT04sSW50bCwnICtcbiAgICAncmVxdWlyZScgLy8gZm9yIFdlYnBhY2svQnJvd3NlcmlmeVxuICApO1xuXG4gIHZhciB3YXJuTm9uUHJlc2VudCA9IGZ1bmN0aW9uICh0YXJnZXQsIGtleSkge1xuICAgIHdhcm4oXG4gICAgICBcIlByb3BlcnR5IG9yIG1ldGhvZCBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaXMgbm90IGRlZmluZWQgb24gdGhlIGluc3RhbmNlIGJ1dCBcIiArXG4gICAgICAncmVmZXJlbmNlZCBkdXJpbmcgcmVuZGVyLiBNYWtlIHN1cmUgdGhhdCB0aGlzIHByb3BlcnR5IGlzIHJlYWN0aXZlLCAnICtcbiAgICAgICdlaXRoZXIgaW4gdGhlIGRhdGEgb3B0aW9uLCBvciBmb3IgY2xhc3MtYmFzZWQgY29tcG9uZW50cywgYnkgJyArXG4gICAgICAnaW5pdGlhbGl6aW5nIHRoZSBwcm9wZXJ0eS4gJyArXG4gICAgICAnU2VlOiBodHRwczovL3Z1ZWpzLm9yZy92Mi9ndWlkZS9yZWFjdGl2aXR5Lmh0bWwjRGVjbGFyaW5nLVJlYWN0aXZlLVByb3BlcnRpZXMuJyxcbiAgICAgIHRhcmdldFxuICAgICk7XG4gIH07XG5cbiAgdmFyIHdhcm5SZXNlcnZlZFByZWZpeCA9IGZ1bmN0aW9uICh0YXJnZXQsIGtleSkge1xuICAgIHdhcm4oXG4gICAgICBcIlByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiBtdXN0IGJlIGFjY2Vzc2VkIHdpdGggXFxcIiRkYXRhLlwiICsga2V5ICsgXCJcXFwiIGJlY2F1c2UgXCIgK1xuICAgICAgJ3Byb3BlcnRpZXMgc3RhcnRpbmcgd2l0aCBcIiRcIiBvciBcIl9cIiBhcmUgbm90IHByb3hpZWQgaW4gdGhlIFZ1ZSBpbnN0YW5jZSB0byAnICtcbiAgICAgICdwcmV2ZW50IGNvbmZsaWN0cyB3aXRoIFZ1ZSBpbnRlcm5hbHMnICtcbiAgICAgICdTZWU6IGh0dHBzOi8vdnVlanMub3JnL3YyL2FwaS8jZGF0YScsXG4gICAgICB0YXJnZXRcbiAgICApO1xuICB9O1xuXG4gIHZhciBoYXNQcm94eSA9XG4gICAgdHlwZW9mIFByb3h5ICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShQcm94eSk7XG5cbiAgaWYgKGhhc1Byb3h5KSB7XG4gICAgdmFyIGlzQnVpbHRJbk1vZGlmaWVyID0gbWFrZU1hcCgnc3RvcCxwcmV2ZW50LHNlbGYsY3RybCxzaGlmdCxhbHQsbWV0YSxleGFjdCcpO1xuICAgIGNvbmZpZy5rZXlDb2RlcyA9IG5ldyBQcm94eShjb25maWcua2V5Q29kZXMsIHtcbiAgICAgIHNldDogZnVuY3Rpb24gc2V0ICh0YXJnZXQsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGlzQnVpbHRJbk1vZGlmaWVyKGtleSkpIHtcbiAgICAgICAgICB3YXJuKChcIkF2b2lkIG92ZXJ3cml0aW5nIGJ1aWx0LWluIG1vZGlmaWVyIGluIGNvbmZpZy5rZXlDb2RlczogLlwiICsga2V5KSk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB2YXIgaGFzSGFuZGxlciA9IHtcbiAgICBoYXM6IGZ1bmN0aW9uIGhhcyAodGFyZ2V0LCBrZXkpIHtcbiAgICAgIHZhciBoYXMgPSBrZXkgaW4gdGFyZ2V0O1xuICAgICAgdmFyIGlzQWxsb3dlZCA9IGFsbG93ZWRHbG9iYWxzKGtleSkgfHxcbiAgICAgICAgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmIGtleS5jaGFyQXQoMCkgPT09ICdfJyAmJiAhKGtleSBpbiB0YXJnZXQuJGRhdGEpKTtcbiAgICAgIGlmICghaGFzICYmICFpc0FsbG93ZWQpIHtcbiAgICAgICAgaWYgKGtleSBpbiB0YXJnZXQuJGRhdGEpIHsgd2FyblJlc2VydmVkUHJlZml4KHRhcmdldCwga2V5KTsgfVxuICAgICAgICBlbHNlIHsgd2Fybk5vblByZXNlbnQodGFyZ2V0LCBrZXkpOyB9XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzIHx8ICFpc0FsbG93ZWRcbiAgICB9XG4gIH07XG5cbiAgdmFyIGdldEhhbmRsZXIgPSB7XG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQgKHRhcmdldCwga2V5KSB7XG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYgIShrZXkgaW4gdGFyZ2V0KSkge1xuICAgICAgICBpZiAoa2V5IGluIHRhcmdldC4kZGF0YSkgeyB3YXJuUmVzZXJ2ZWRQcmVmaXgodGFyZ2V0LCBrZXkpOyB9XG4gICAgICAgIGVsc2UgeyB3YXJuTm9uUHJlc2VudCh0YXJnZXQsIGtleSk7IH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0YXJnZXRba2V5XVxuICAgIH1cbiAgfTtcblxuICBpbml0UHJveHkgPSBmdW5jdGlvbiBpbml0UHJveHkgKHZtKSB7XG4gICAgaWYgKGhhc1Byb3h5KSB7XG4gICAgICAvLyBkZXRlcm1pbmUgd2hpY2ggcHJveHkgaGFuZGxlciB0byB1c2VcbiAgICAgIHZhciBvcHRpb25zID0gdm0uJG9wdGlvbnM7XG4gICAgICB2YXIgaGFuZGxlcnMgPSBvcHRpb25zLnJlbmRlciAmJiBvcHRpb25zLnJlbmRlci5fd2l0aFN0cmlwcGVkXG4gICAgICAgID8gZ2V0SGFuZGxlclxuICAgICAgICA6IGhhc0hhbmRsZXI7XG4gICAgICB2bS5fcmVuZGVyUHJveHkgPSBuZXcgUHJveHkodm0sIGhhbmRsZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdm0uX3JlbmRlclByb3h5ID0gdm07XG4gICAgfVxuICB9O1xufVxuXG4vKiAgKi9cblxudmFyIHNlZW5PYmplY3RzID0gbmV3IF9TZXQoKTtcblxuLyoqXG4gKiBSZWN1cnNpdmVseSB0cmF2ZXJzZSBhbiBvYmplY3QgdG8gZXZva2UgYWxsIGNvbnZlcnRlZFxuICogZ2V0dGVycywgc28gdGhhdCBldmVyeSBuZXN0ZWQgcHJvcGVydHkgaW5zaWRlIHRoZSBvYmplY3RcbiAqIGlzIGNvbGxlY3RlZCBhcyBhIFwiZGVlcFwiIGRlcGVuZGVuY3kuXG4gKi9cbmZ1bmN0aW9uIHRyYXZlcnNlICh2YWwpIHtcbiAgX3RyYXZlcnNlKHZhbCwgc2Vlbk9iamVjdHMpO1xuICBzZWVuT2JqZWN0cy5jbGVhcigpO1xufVxuXG5mdW5jdGlvbiBfdHJhdmVyc2UgKHZhbCwgc2Vlbikge1xuICB2YXIgaSwga2V5cztcbiAgdmFyIGlzQSA9IEFycmF5LmlzQXJyYXkodmFsKTtcbiAgaWYgKCghaXNBICYmICFpc09iamVjdCh2YWwpKSB8fCBPYmplY3QuaXNGcm96ZW4odmFsKSB8fCB2YWwgaW5zdGFuY2VvZiBWTm9kZSkge1xuICAgIHJldHVyblxuICB9XG4gIGlmICh2YWwuX19vYl9fKSB7XG4gICAgdmFyIGRlcElkID0gdmFsLl9fb2JfXy5kZXAuaWQ7XG4gICAgaWYgKHNlZW4uaGFzKGRlcElkKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNlZW4uYWRkKGRlcElkKTtcbiAgfVxuICBpZiAoaXNBKSB7XG4gICAgaSA9IHZhbC5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkgeyBfdHJhdmVyc2UodmFsW2ldLCBzZWVuKTsgfVxuICB9IGVsc2Uge1xuICAgIGtleXMgPSBPYmplY3Qua2V5cyh2YWwpO1xuICAgIGkgPSBrZXlzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7IF90cmF2ZXJzZSh2YWxba2V5c1tpXV0sIHNlZW4pOyB9XG4gIH1cbn1cblxudmFyIG1hcms7XG52YXIgbWVhc3VyZTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIHBlcmYgPSBpbkJyb3dzZXIgJiYgd2luZG93LnBlcmZvcm1hbmNlO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKFxuICAgIHBlcmYgJiZcbiAgICBwZXJmLm1hcmsgJiZcbiAgICBwZXJmLm1lYXN1cmUgJiZcbiAgICBwZXJmLmNsZWFyTWFya3MgJiZcbiAgICBwZXJmLmNsZWFyTWVhc3VyZXNcbiAgKSB7XG4gICAgbWFyayA9IGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuIHBlcmYubWFyayh0YWcpOyB9O1xuICAgIG1lYXN1cmUgPSBmdW5jdGlvbiAobmFtZSwgc3RhcnRUYWcsIGVuZFRhZykge1xuICAgICAgcGVyZi5tZWFzdXJlKG5hbWUsIHN0YXJ0VGFnLCBlbmRUYWcpO1xuICAgICAgcGVyZi5jbGVhck1hcmtzKHN0YXJ0VGFnKTtcbiAgICAgIHBlcmYuY2xlYXJNYXJrcyhlbmRUYWcpO1xuICAgICAgLy8gcGVyZi5jbGVhck1lYXN1cmVzKG5hbWUpXG4gICAgfTtcbiAgfVxufVxuXG4vKiAgKi9cblxudmFyIG5vcm1hbGl6ZUV2ZW50ID0gY2FjaGVkKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciBwYXNzaXZlID0gbmFtZS5jaGFyQXQoMCkgPT09ICcmJztcbiAgbmFtZSA9IHBhc3NpdmUgPyBuYW1lLnNsaWNlKDEpIDogbmFtZTtcbiAgdmFyIG9uY2UkJDEgPSBuYW1lLmNoYXJBdCgwKSA9PT0gJ34nOyAvLyBQcmVmaXhlZCBsYXN0LCBjaGVja2VkIGZpcnN0XG4gIG5hbWUgPSBvbmNlJCQxID8gbmFtZS5zbGljZSgxKSA6IG5hbWU7XG4gIHZhciBjYXB0dXJlID0gbmFtZS5jaGFyQXQoMCkgPT09ICchJztcbiAgbmFtZSA9IGNhcHR1cmUgPyBuYW1lLnNsaWNlKDEpIDogbmFtZTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIG9uY2U6IG9uY2UkJDEsXG4gICAgY2FwdHVyZTogY2FwdHVyZSxcbiAgICBwYXNzaXZlOiBwYXNzaXZlXG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBjcmVhdGVGbkludm9rZXIgKGZucywgdm0pIHtcbiAgZnVuY3Rpb24gaW52b2tlciAoKSB7XG4gICAgdmFyIGFyZ3VtZW50cyQxID0gYXJndW1lbnRzO1xuXG4gICAgdmFyIGZucyA9IGludm9rZXIuZm5zO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGZucykpIHtcbiAgICAgIHZhciBjbG9uZWQgPSBmbnMuc2xpY2UoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2xvbmVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGludm9rZVdpdGhFcnJvckhhbmRsaW5nKGNsb25lZFtpXSwgbnVsbCwgYXJndW1lbnRzJDEsIHZtLCBcInYtb24gaGFuZGxlclwiKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gcmV0dXJuIGhhbmRsZXIgcmV0dXJuIHZhbHVlIGZvciBzaW5nbGUgaGFuZGxlcnNcbiAgICAgIHJldHVybiBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhmbnMsIG51bGwsIGFyZ3VtZW50cywgdm0sIFwidi1vbiBoYW5kbGVyXCIpXG4gICAgfVxuICB9XG4gIGludm9rZXIuZm5zID0gZm5zO1xuICByZXR1cm4gaW52b2tlclxufVxuXG5mdW5jdGlvbiB1cGRhdGVMaXN0ZW5lcnMgKFxuICBvbixcbiAgb2xkT24sXG4gIGFkZCxcbiAgcmVtb3ZlJCQxLFxuICBjcmVhdGVPbmNlSGFuZGxlcixcbiAgdm1cbikge1xuICB2YXIgbmFtZSwgZGVmJCQxLCBjdXIsIG9sZCwgZXZlbnQ7XG4gIGZvciAobmFtZSBpbiBvbikge1xuICAgIGRlZiQkMSA9IGN1ciA9IG9uW25hbWVdO1xuICAgIG9sZCA9IG9sZE9uW25hbWVdO1xuICAgIGV2ZW50ID0gbm9ybWFsaXplRXZlbnQobmFtZSk7XG4gICAgaWYgKGlzVW5kZWYoY3VyKSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICBcIkludmFsaWQgaGFuZGxlciBmb3IgZXZlbnQgXFxcIlwiICsgKGV2ZW50Lm5hbWUpICsgXCJcXFwiOiBnb3QgXCIgKyBTdHJpbmcoY3VyKSxcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChpc1VuZGVmKG9sZCkpIHtcbiAgICAgIGlmIChpc1VuZGVmKGN1ci5mbnMpKSB7XG4gICAgICAgIGN1ciA9IG9uW25hbWVdID0gY3JlYXRlRm5JbnZva2VyKGN1ciwgdm0pO1xuICAgICAgfVxuICAgICAgaWYgKGlzVHJ1ZShldmVudC5vbmNlKSkge1xuICAgICAgICBjdXIgPSBvbltuYW1lXSA9IGNyZWF0ZU9uY2VIYW5kbGVyKGV2ZW50Lm5hbWUsIGN1ciwgZXZlbnQuY2FwdHVyZSk7XG4gICAgICB9XG4gICAgICBhZGQoZXZlbnQubmFtZSwgY3VyLCBldmVudC5jYXB0dXJlLCBldmVudC5wYXNzaXZlLCBldmVudC5wYXJhbXMpO1xuICAgIH0gZWxzZSBpZiAoY3VyICE9PSBvbGQpIHtcbiAgICAgIG9sZC5mbnMgPSBjdXI7XG4gICAgICBvbltuYW1lXSA9IG9sZDtcbiAgICB9XG4gIH1cbiAgZm9yIChuYW1lIGluIG9sZE9uKSB7XG4gICAgaWYgKGlzVW5kZWYob25bbmFtZV0pKSB7XG4gICAgICBldmVudCA9IG5vcm1hbGl6ZUV2ZW50KG5hbWUpO1xuICAgICAgcmVtb3ZlJCQxKGV2ZW50Lm5hbWUsIG9sZE9uW25hbWVdLCBldmVudC5jYXB0dXJlKTtcbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIG1lcmdlVk5vZGVIb29rIChkZWYsIGhvb2tLZXksIGhvb2spIHtcbiAgaWYgKGRlZiBpbnN0YW5jZW9mIFZOb2RlKSB7XG4gICAgZGVmID0gZGVmLmRhdGEuaG9vayB8fCAoZGVmLmRhdGEuaG9vayA9IHt9KTtcbiAgfVxuICB2YXIgaW52b2tlcjtcbiAgdmFyIG9sZEhvb2sgPSBkZWZbaG9va0tleV07XG5cbiAgZnVuY3Rpb24gd3JhcHBlZEhvb2sgKCkge1xuICAgIGhvb2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAvLyBpbXBvcnRhbnQ6IHJlbW92ZSBtZXJnZWQgaG9vayB0byBlbnN1cmUgaXQncyBjYWxsZWQgb25seSBvbmNlXG4gICAgLy8gYW5kIHByZXZlbnQgbWVtb3J5IGxlYWtcbiAgICByZW1vdmUoaW52b2tlci5mbnMsIHdyYXBwZWRIb29rKTtcbiAgfVxuXG4gIGlmIChpc1VuZGVmKG9sZEhvb2spKSB7XG4gICAgLy8gbm8gZXhpc3RpbmcgaG9va1xuICAgIGludm9rZXIgPSBjcmVhdGVGbkludm9rZXIoW3dyYXBwZWRIb29rXSk7XG4gIH0gZWxzZSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGlzRGVmKG9sZEhvb2suZm5zKSAmJiBpc1RydWUob2xkSG9vay5tZXJnZWQpKSB7XG4gICAgICAvLyBhbHJlYWR5IGEgbWVyZ2VkIGludm9rZXJcbiAgICAgIGludm9rZXIgPSBvbGRIb29rO1xuICAgICAgaW52b2tlci5mbnMucHVzaCh3cmFwcGVkSG9vayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGV4aXN0aW5nIHBsYWluIGhvb2tcbiAgICAgIGludm9rZXIgPSBjcmVhdGVGbkludm9rZXIoW29sZEhvb2ssIHdyYXBwZWRIb29rXSk7XG4gICAgfVxuICB9XG5cbiAgaW52b2tlci5tZXJnZWQgPSB0cnVlO1xuICBkZWZbaG9va0tleV0gPSBpbnZva2VyO1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZXh0cmFjdFByb3BzRnJvbVZOb2RlRGF0YSAoXG4gIGRhdGEsXG4gIEN0b3IsXG4gIHRhZ1xuKSB7XG4gIC8vIHdlIGFyZSBvbmx5IGV4dHJhY3RpbmcgcmF3IHZhbHVlcyBoZXJlLlxuICAvLyB2YWxpZGF0aW9uIGFuZCBkZWZhdWx0IHZhbHVlcyBhcmUgaGFuZGxlZCBpbiB0aGUgY2hpbGRcbiAgLy8gY29tcG9uZW50IGl0c2VsZi5cbiAgdmFyIHByb3BPcHRpb25zID0gQ3Rvci5vcHRpb25zLnByb3BzO1xuICBpZiAoaXNVbmRlZihwcm9wT3B0aW9ucykpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgcmVzID0ge307XG4gIHZhciBhdHRycyA9IGRhdGEuYXR0cnM7XG4gIHZhciBwcm9wcyA9IGRhdGEucHJvcHM7XG4gIGlmIChpc0RlZihhdHRycykgfHwgaXNEZWYocHJvcHMpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHByb3BPcHRpb25zKSB7XG4gICAgICB2YXIgYWx0S2V5ID0gaHlwaGVuYXRlKGtleSk7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIga2V5SW5Mb3dlckNhc2UgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGtleSAhPT0ga2V5SW5Mb3dlckNhc2UgJiZcbiAgICAgICAgICBhdHRycyAmJiBoYXNPd24oYXR0cnMsIGtleUluTG93ZXJDYXNlKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aXAoXG4gICAgICAgICAgICBcIlByb3AgXFxcIlwiICsga2V5SW5Mb3dlckNhc2UgKyBcIlxcXCIgaXMgcGFzc2VkIHRvIGNvbXBvbmVudCBcIiArXG4gICAgICAgICAgICAoZm9ybWF0Q29tcG9uZW50TmFtZSh0YWcgfHwgQ3RvcikpICsgXCIsIGJ1dCB0aGUgZGVjbGFyZWQgcHJvcCBuYW1lIGlzXCIgK1xuICAgICAgICAgICAgXCIgXFxcIlwiICsga2V5ICsgXCJcXFwiLiBcIiArXG4gICAgICAgICAgICBcIk5vdGUgdGhhdCBIVE1MIGF0dHJpYnV0ZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUgYW5kIGNhbWVsQ2FzZWQgXCIgK1xuICAgICAgICAgICAgXCJwcm9wcyBuZWVkIHRvIHVzZSB0aGVpciBrZWJhYi1jYXNlIGVxdWl2YWxlbnRzIHdoZW4gdXNpbmcgaW4tRE9NIFwiICtcbiAgICAgICAgICAgIFwidGVtcGxhdGVzLiBZb3Ugc2hvdWxkIHByb2JhYmx5IHVzZSBcXFwiXCIgKyBhbHRLZXkgKyBcIlxcXCIgaW5zdGVhZCBvZiBcXFwiXCIgKyBrZXkgKyBcIlxcXCIuXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjaGVja1Byb3AocmVzLCBwcm9wcywga2V5LCBhbHRLZXksIHRydWUpIHx8XG4gICAgICBjaGVja1Byb3AocmVzLCBhdHRycywga2V5LCBhbHRLZXksIGZhbHNlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBjaGVja1Byb3AgKFxuICByZXMsXG4gIGhhc2gsXG4gIGtleSxcbiAgYWx0S2V5LFxuICBwcmVzZXJ2ZVxuKSB7XG4gIGlmIChpc0RlZihoYXNoKSkge1xuICAgIGlmIChoYXNPd24oaGFzaCwga2V5KSkge1xuICAgICAgcmVzW2tleV0gPSBoYXNoW2tleV07XG4gICAgICBpZiAoIXByZXNlcnZlKSB7XG4gICAgICAgIGRlbGV0ZSBoYXNoW2tleV07XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gZWxzZSBpZiAoaGFzT3duKGhhc2gsIGFsdEtleSkpIHtcbiAgICAgIHJlc1trZXldID0gaGFzaFthbHRLZXldO1xuICAgICAgaWYgKCFwcmVzZXJ2ZSkge1xuICAgICAgICBkZWxldGUgaGFzaFthbHRLZXldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qICAqL1xuXG4vLyBUaGUgdGVtcGxhdGUgY29tcGlsZXIgYXR0ZW1wdHMgdG8gbWluaW1pemUgdGhlIG5lZWQgZm9yIG5vcm1hbGl6YXRpb24gYnlcbi8vIHN0YXRpY2FsbHkgYW5hbHl6aW5nIHRoZSB0ZW1wbGF0ZSBhdCBjb21waWxlIHRpbWUuXG4vL1xuLy8gRm9yIHBsYWluIEhUTUwgbWFya3VwLCBub3JtYWxpemF0aW9uIGNhbiBiZSBjb21wbGV0ZWx5IHNraXBwZWQgYmVjYXVzZSB0aGVcbi8vIGdlbmVyYXRlZCByZW5kZXIgZnVuY3Rpb24gaXMgZ3VhcmFudGVlZCB0byByZXR1cm4gQXJyYXk8Vk5vZGU+LiBUaGVyZSBhcmVcbi8vIHR3byBjYXNlcyB3aGVyZSBleHRyYSBub3JtYWxpemF0aW9uIGlzIG5lZWRlZDpcblxuLy8gMS4gV2hlbiB0aGUgY2hpbGRyZW4gY29udGFpbnMgY29tcG9uZW50cyAtIGJlY2F1c2UgYSBmdW5jdGlvbmFsIGNvbXBvbmVudFxuLy8gbWF5IHJldHVybiBhbiBBcnJheSBpbnN0ZWFkIG9mIGEgc2luZ2xlIHJvb3QuIEluIHRoaXMgY2FzZSwganVzdCBhIHNpbXBsZVxuLy8gbm9ybWFsaXphdGlvbiBpcyBuZWVkZWQgLSBpZiBhbnkgY2hpbGQgaXMgYW4gQXJyYXksIHdlIGZsYXR0ZW4gdGhlIHdob2xlXG4vLyB0aGluZyB3aXRoIEFycmF5LnByb3RvdHlwZS5jb25jYXQuIEl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgb25seSAxLWxldmVsIGRlZXBcbi8vIGJlY2F1c2UgZnVuY3Rpb25hbCBjb21wb25lbnRzIGFscmVhZHkgbm9ybWFsaXplIHRoZWlyIG93biBjaGlsZHJlbi5cbmZ1bmN0aW9uIHNpbXBsZU5vcm1hbGl6ZUNoaWxkcmVuIChjaGlsZHJlbikge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW5baV0pKSB7XG4gICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSwgY2hpbGRyZW4pXG4gICAgfVxuICB9XG4gIHJldHVybiBjaGlsZHJlblxufVxuXG4vLyAyLiBXaGVuIHRoZSBjaGlsZHJlbiBjb250YWlucyBjb25zdHJ1Y3RzIHRoYXQgYWx3YXlzIGdlbmVyYXRlZCBuZXN0ZWQgQXJyYXlzLFxuLy8gZS5nLiA8dGVtcGxhdGU+LCA8c2xvdD4sIHYtZm9yLCBvciB3aGVuIHRoZSBjaGlsZHJlbiBpcyBwcm92aWRlZCBieSB1c2VyXG4vLyB3aXRoIGhhbmQtd3JpdHRlbiByZW5kZXIgZnVuY3Rpb25zIC8gSlNYLiBJbiBzdWNoIGNhc2VzIGEgZnVsbCBub3JtYWxpemF0aW9uXG4vLyBpcyBuZWVkZWQgdG8gY2F0ZXIgdG8gYWxsIHBvc3NpYmxlIHR5cGVzIG9mIGNoaWxkcmVuIHZhbHVlcy5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNoaWxkcmVuIChjaGlsZHJlbikge1xuICByZXR1cm4gaXNQcmltaXRpdmUoY2hpbGRyZW4pXG4gICAgPyBbY3JlYXRlVGV4dFZOb2RlKGNoaWxkcmVuKV1cbiAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pXG4gICAgICA/IG5vcm1hbGl6ZUFycmF5Q2hpbGRyZW4oY2hpbGRyZW4pXG4gICAgICA6IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBpc1RleHROb2RlIChub2RlKSB7XG4gIHJldHVybiBpc0RlZihub2RlKSAmJiBpc0RlZihub2RlLnRleHQpICYmIGlzRmFsc2Uobm9kZS5pc0NvbW1lbnQpXG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUFycmF5Q2hpbGRyZW4gKGNoaWxkcmVuLCBuZXN0ZWRJbmRleCkge1xuICB2YXIgcmVzID0gW107XG4gIHZhciBpLCBjLCBsYXN0SW5kZXgsIGxhc3Q7XG4gIGZvciAoaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgIGMgPSBjaGlsZHJlbltpXTtcbiAgICBpZiAoaXNVbmRlZihjKSB8fCB0eXBlb2YgYyA9PT0gJ2Jvb2xlYW4nKSB7IGNvbnRpbnVlIH1cbiAgICBsYXN0SW5kZXggPSByZXMubGVuZ3RoIC0gMTtcbiAgICBsYXN0ID0gcmVzW2xhc3RJbmRleF07XG4gICAgLy8gIG5lc3RlZFxuICAgIGlmIChBcnJheS5pc0FycmF5KGMpKSB7XG4gICAgICBpZiAoYy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGMgPSBub3JtYWxpemVBcnJheUNoaWxkcmVuKGMsICgobmVzdGVkSW5kZXggfHwgJycpICsgXCJfXCIgKyBpKSk7XG4gICAgICAgIC8vIG1lcmdlIGFkamFjZW50IHRleHQgbm9kZXNcbiAgICAgICAgaWYgKGlzVGV4dE5vZGUoY1swXSkgJiYgaXNUZXh0Tm9kZShsYXN0KSkge1xuICAgICAgICAgIHJlc1tsYXN0SW5kZXhdID0gY3JlYXRlVGV4dFZOb2RlKGxhc3QudGV4dCArIChjWzBdKS50ZXh0KTtcbiAgICAgICAgICBjLnNoaWZ0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnB1c2guYXBwbHkocmVzLCBjKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzUHJpbWl0aXZlKGMpKSB7XG4gICAgICBpZiAoaXNUZXh0Tm9kZShsYXN0KSkge1xuICAgICAgICAvLyBtZXJnZSBhZGphY2VudCB0ZXh0IG5vZGVzXG4gICAgICAgIC8vIHRoaXMgaXMgbmVjZXNzYXJ5IGZvciBTU1IgaHlkcmF0aW9uIGJlY2F1c2UgdGV4dCBub2RlcyBhcmVcbiAgICAgICAgLy8gZXNzZW50aWFsbHkgbWVyZ2VkIHdoZW4gcmVuZGVyZWQgdG8gSFRNTCBzdHJpbmdzXG4gICAgICAgIHJlc1tsYXN0SW5kZXhdID0gY3JlYXRlVGV4dFZOb2RlKGxhc3QudGV4dCArIGMpO1xuICAgICAgfSBlbHNlIGlmIChjICE9PSAnJykge1xuICAgICAgICAvLyBjb252ZXJ0IHByaW1pdGl2ZSB0byB2bm9kZVxuICAgICAgICByZXMucHVzaChjcmVhdGVUZXh0Vk5vZGUoYykpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXNUZXh0Tm9kZShjKSAmJiBpc1RleHROb2RlKGxhc3QpKSB7XG4gICAgICAgIC8vIG1lcmdlIGFkamFjZW50IHRleHQgbm9kZXNcbiAgICAgICAgcmVzW2xhc3RJbmRleF0gPSBjcmVhdGVUZXh0Vk5vZGUobGFzdC50ZXh0ICsgYy50ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRlZmF1bHQga2V5IGZvciBuZXN0ZWQgYXJyYXkgY2hpbGRyZW4gKGxpa2VseSBnZW5lcmF0ZWQgYnkgdi1mb3IpXG4gICAgICAgIGlmIChpc1RydWUoY2hpbGRyZW4uX2lzVkxpc3QpICYmXG4gICAgICAgICAgaXNEZWYoYy50YWcpICYmXG4gICAgICAgICAgaXNVbmRlZihjLmtleSkgJiZcbiAgICAgICAgICBpc0RlZihuZXN0ZWRJbmRleCkpIHtcbiAgICAgICAgICBjLmtleSA9IFwiX192bGlzdFwiICsgbmVzdGVkSW5kZXggKyBcIl9cIiArIGkgKyBcIl9fXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnB1c2goYyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRQcm92aWRlICh2bSkge1xuICB2YXIgcHJvdmlkZSA9IHZtLiRvcHRpb25zLnByb3ZpZGU7XG4gIGlmIChwcm92aWRlKSB7XG4gICAgdm0uX3Byb3ZpZGVkID0gdHlwZW9mIHByb3ZpZGUgPT09ICdmdW5jdGlvbidcbiAgICAgID8gcHJvdmlkZS5jYWxsKHZtKVxuICAgICAgOiBwcm92aWRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRJbmplY3Rpb25zICh2bSkge1xuICB2YXIgcmVzdWx0ID0gcmVzb2x2ZUluamVjdCh2bS4kb3B0aW9ucy5pbmplY3QsIHZtKTtcbiAgaWYgKHJlc3VsdCkge1xuICAgIHRvZ2dsZU9ic2VydmluZyhmYWxzZSk7XG4gICAgT2JqZWN0LmtleXMocmVzdWx0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwga2V5LCByZXN1bHRba2V5XSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICBcIkF2b2lkIG11dGF0aW5nIGFuIGluamVjdGVkIHZhbHVlIGRpcmVjdGx5IHNpbmNlIHRoZSBjaGFuZ2VzIHdpbGwgYmUgXCIgK1xuICAgICAgICAgICAgXCJvdmVyd3JpdHRlbiB3aGVuZXZlciB0aGUgcHJvdmlkZWQgY29tcG9uZW50IHJlLXJlbmRlcnMuIFwiICtcbiAgICAgICAgICAgIFwiaW5qZWN0aW9uIGJlaW5nIG11dGF0ZWQ6IFxcXCJcIiArIGtleSArIFwiXFxcIlwiLFxuICAgICAgICAgICAgdm1cbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCBrZXksIHJlc3VsdFtrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0b2dnbGVPYnNlcnZpbmcodHJ1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUluamVjdCAoaW5qZWN0LCB2bSkge1xuICBpZiAoaW5qZWN0KSB7XG4gICAgLy8gaW5qZWN0IGlzIDphbnkgYmVjYXVzZSBmbG93IGlzIG5vdCBzbWFydCBlbm91Z2ggdG8gZmlndXJlIG91dCBjYWNoZWRcbiAgICB2YXIgcmVzdWx0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB2YXIga2V5cyA9IGhhc1N5bWJvbFxuICAgICAgPyBSZWZsZWN0Lm93bktleXMoaW5qZWN0KVxuICAgICAgOiBPYmplY3Qua2V5cyhpbmplY3QpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICAgIC8vICM2NTc0IGluIGNhc2UgdGhlIGluamVjdCBvYmplY3QgaXMgb2JzZXJ2ZWQuLi5cbiAgICAgIGlmIChrZXkgPT09ICdfX29iX18nKSB7IGNvbnRpbnVlIH1cbiAgICAgIHZhciBwcm92aWRlS2V5ID0gaW5qZWN0W2tleV0uZnJvbTtcbiAgICAgIHZhciBzb3VyY2UgPSB2bTtcbiAgICAgIHdoaWxlIChzb3VyY2UpIHtcbiAgICAgICAgaWYgKHNvdXJjZS5fcHJvdmlkZWQgJiYgaGFzT3duKHNvdXJjZS5fcHJvdmlkZWQsIHByb3ZpZGVLZXkpKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBzb3VyY2UuX3Byb3ZpZGVkW3Byb3ZpZGVLZXldO1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgc291cmNlID0gc291cmNlLiRwYXJlbnQ7XG4gICAgICB9XG4gICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICBpZiAoJ2RlZmF1bHQnIGluIGluamVjdFtrZXldKSB7XG4gICAgICAgICAgdmFyIHByb3ZpZGVEZWZhdWx0ID0gaW5qZWN0W2tleV0uZGVmYXVsdDtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IHR5cGVvZiBwcm92aWRlRGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyBwcm92aWRlRGVmYXVsdC5jYWxsKHZtKVxuICAgICAgICAgICAgOiBwcm92aWRlRGVmYXVsdDtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgd2FybigoXCJJbmplY3Rpb24gXFxcIlwiICsga2V5ICsgXCJcXFwiIG5vdCBmb3VuZFwiKSwgdm0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuXG4vKiAgKi9cblxuXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHJlc29sdmluZyByYXcgY2hpbGRyZW4gVk5vZGVzIGludG8gYSBzbG90IG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZVNsb3RzIChcbiAgY2hpbGRyZW4sXG4gIGNvbnRleHRcbikge1xuICBpZiAoIWNoaWxkcmVuIHx8ICFjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuICB2YXIgc2xvdHMgPSB7fTtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICB2YXIgZGF0YSA9IGNoaWxkLmRhdGE7XG4gICAgLy8gcmVtb3ZlIHNsb3QgYXR0cmlidXRlIGlmIHRoZSBub2RlIGlzIHJlc29sdmVkIGFzIGEgVnVlIHNsb3Qgbm9kZVxuICAgIGlmIChkYXRhICYmIGRhdGEuYXR0cnMgJiYgZGF0YS5hdHRycy5zbG90KSB7XG4gICAgICBkZWxldGUgZGF0YS5hdHRycy5zbG90O1xuICAgIH1cbiAgICAvLyBuYW1lZCBzbG90cyBzaG91bGQgb25seSBiZSByZXNwZWN0ZWQgaWYgdGhlIHZub2RlIHdhcyByZW5kZXJlZCBpbiB0aGVcbiAgICAvLyBzYW1lIGNvbnRleHQuXG4gICAgaWYgKChjaGlsZC5jb250ZXh0ID09PSBjb250ZXh0IHx8IGNoaWxkLmZuQ29udGV4dCA9PT0gY29udGV4dCkgJiZcbiAgICAgIGRhdGEgJiYgZGF0YS5zbG90ICE9IG51bGxcbiAgICApIHtcbiAgICAgIHZhciBuYW1lID0gZGF0YS5zbG90O1xuICAgICAgdmFyIHNsb3QgPSAoc2xvdHNbbmFtZV0gfHwgKHNsb3RzW25hbWVdID0gW10pKTtcbiAgICAgIGlmIChjaGlsZC50YWcgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgICAgc2xvdC5wdXNoLmFwcGx5KHNsb3QsIGNoaWxkLmNoaWxkcmVuIHx8IFtdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNsb3QucHVzaChjaGlsZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIChzbG90cy5kZWZhdWx0IHx8IChzbG90cy5kZWZhdWx0ID0gW10pKS5wdXNoKGNoaWxkKTtcbiAgICB9XG4gIH1cbiAgLy8gaWdub3JlIHNsb3RzIHRoYXQgY29udGFpbnMgb25seSB3aGl0ZXNwYWNlXG4gIGZvciAodmFyIG5hbWUkMSBpbiBzbG90cykge1xuICAgIGlmIChzbG90c1tuYW1lJDFdLmV2ZXJ5KGlzV2hpdGVzcGFjZSkpIHtcbiAgICAgIGRlbGV0ZSBzbG90c1tuYW1lJDFdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2xvdHNcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlIChub2RlKSB7XG4gIHJldHVybiAobm9kZS5pc0NvbW1lbnQgJiYgIW5vZGUuYXN5bmNGYWN0b3J5KSB8fCBub2RlLnRleHQgPT09ICcgJ1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gbm9ybWFsaXplU2NvcGVkU2xvdHMgKFxuICBzbG90cyxcbiAgbm9ybWFsU2xvdHMsXG4gIHByZXZTbG90c1xuKSB7XG4gIHZhciByZXM7XG4gIHZhciBoYXNOb3JtYWxTbG90cyA9IE9iamVjdC5rZXlzKG5vcm1hbFNsb3RzKS5sZW5ndGggPiAwO1xuICB2YXIgaXNTdGFibGUgPSBzbG90cyA/ICEhc2xvdHMuJHN0YWJsZSA6ICFoYXNOb3JtYWxTbG90cztcbiAgdmFyIGtleSA9IHNsb3RzICYmIHNsb3RzLiRrZXk7XG4gIGlmICghc2xvdHMpIHtcbiAgICByZXMgPSB7fTtcbiAgfSBlbHNlIGlmIChzbG90cy5fbm9ybWFsaXplZCkge1xuICAgIC8vIGZhc3QgcGF0aCAxOiBjaGlsZCBjb21wb25lbnQgcmUtcmVuZGVyIG9ubHksIHBhcmVudCBkaWQgbm90IGNoYW5nZVxuICAgIHJldHVybiBzbG90cy5fbm9ybWFsaXplZFxuICB9IGVsc2UgaWYgKFxuICAgIGlzU3RhYmxlICYmXG4gICAgcHJldlNsb3RzICYmXG4gICAgcHJldlNsb3RzICE9PSBlbXB0eU9iamVjdCAmJlxuICAgIGtleSA9PT0gcHJldlNsb3RzLiRrZXkgJiZcbiAgICAhaGFzTm9ybWFsU2xvdHMgJiZcbiAgICAhcHJldlNsb3RzLiRoYXNOb3JtYWxcbiAgKSB7XG4gICAgLy8gZmFzdCBwYXRoIDI6IHN0YWJsZSBzY29wZWQgc2xvdHMgdy8gbm8gbm9ybWFsIHNsb3RzIHRvIHByb3h5LFxuICAgIC8vIG9ubHkgbmVlZCB0byBub3JtYWxpemUgb25jZVxuICAgIHJldHVybiBwcmV2U2xvdHNcbiAgfSBlbHNlIHtcbiAgICByZXMgPSB7fTtcbiAgICBmb3IgKHZhciBrZXkkMSBpbiBzbG90cykge1xuICAgICAgaWYgKHNsb3RzW2tleSQxXSAmJiBrZXkkMVswXSAhPT0gJyQnKSB7XG4gICAgICAgIHJlc1trZXkkMV0gPSBub3JtYWxpemVTY29wZWRTbG90KG5vcm1hbFNsb3RzLCBrZXkkMSwgc2xvdHNba2V5JDFdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gZXhwb3NlIG5vcm1hbCBzbG90cyBvbiBzY29wZWRTbG90c1xuICBmb3IgKHZhciBrZXkkMiBpbiBub3JtYWxTbG90cykge1xuICAgIGlmICghKGtleSQyIGluIHJlcykpIHtcbiAgICAgIHJlc1trZXkkMl0gPSBwcm94eU5vcm1hbFNsb3Qobm9ybWFsU2xvdHMsIGtleSQyKTtcbiAgICB9XG4gIH1cbiAgLy8gYXZvcmlheiBzZWVtcyB0byBtb2NrIGEgbm9uLWV4dGVuc2libGUgJHNjb3BlZFNsb3RzIG9iamVjdFxuICAvLyBhbmQgd2hlbiB0aGF0IGlzIHBhc3NlZCBkb3duIHRoaXMgd291bGQgY2F1c2UgYW4gZXJyb3JcbiAgaWYgKHNsb3RzICYmIE9iamVjdC5pc0V4dGVuc2libGUoc2xvdHMpKSB7XG4gICAgKHNsb3RzKS5fbm9ybWFsaXplZCA9IHJlcztcbiAgfVxuICBkZWYocmVzLCAnJHN0YWJsZScsIGlzU3RhYmxlKTtcbiAgZGVmKHJlcywgJyRrZXknLCBrZXkpO1xuICBkZWYocmVzLCAnJGhhc05vcm1hbCcsIGhhc05vcm1hbFNsb3RzKTtcbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVTY29wZWRTbG90KG5vcm1hbFNsb3RzLCBrZXksIGZuKSB7XG4gIHZhciBub3JtYWxpemVkID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXMgPSBhcmd1bWVudHMubGVuZ3RoID8gZm4uYXBwbHkobnVsbCwgYXJndW1lbnRzKSA6IGZuKHt9KTtcbiAgICByZXMgPSByZXMgJiYgdHlwZW9mIHJlcyA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkocmVzKVxuICAgICAgPyBbcmVzXSAvLyBzaW5nbGUgdm5vZGVcbiAgICAgIDogbm9ybWFsaXplQ2hpbGRyZW4ocmVzKTtcbiAgICByZXR1cm4gcmVzICYmIChcbiAgICAgIHJlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIChyZXMubGVuZ3RoID09PSAxICYmIHJlc1swXS5pc0NvbW1lbnQpIC8vICM5NjU4XG4gICAgKSA/IHVuZGVmaW5lZFxuICAgICAgOiByZXNcbiAgfTtcbiAgLy8gdGhpcyBpcyBhIHNsb3QgdXNpbmcgdGhlIG5ldyB2LXNsb3Qgc3ludGF4IHdpdGhvdXQgc2NvcGUuIGFsdGhvdWdoIGl0IGlzXG4gIC8vIGNvbXBpbGVkIGFzIGEgc2NvcGVkIHNsb3QsIHJlbmRlciBmbiB1c2VycyB3b3VsZCBleHBlY3QgaXQgdG8gYmUgcHJlc2VudFxuICAvLyBvbiB0aGlzLiRzbG90cyBiZWNhdXNlIHRoZSB1c2FnZSBpcyBzZW1hbnRpY2FsbHkgYSBub3JtYWwgc2xvdC5cbiAgaWYgKGZuLnByb3h5KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5vcm1hbFNsb3RzLCBrZXksIHtcbiAgICAgIGdldDogbm9ybWFsaXplZCxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZFxufVxuXG5mdW5jdGlvbiBwcm94eU5vcm1hbFNsb3Qoc2xvdHMsIGtleSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gc2xvdHNba2V5XTsgfVxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgcmVuZGVyaW5nIHYtZm9yIGxpc3RzLlxuICovXG5mdW5jdGlvbiByZW5kZXJMaXN0IChcbiAgdmFsLFxuICByZW5kZXJcbikge1xuICB2YXIgcmV0LCBpLCBsLCBrZXlzLCBrZXk7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkgfHwgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXQgPSBuZXcgQXJyYXkodmFsLmxlbmd0aCk7XG4gICAgZm9yIChpID0gMCwgbCA9IHZhbC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHJldFtpXSA9IHJlbmRlcih2YWxbaV0sIGkpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIHJldCA9IG5ldyBBcnJheSh2YWwpO1xuICAgIGZvciAoaSA9IDA7IGkgPCB2YWw7IGkrKykge1xuICAgICAgcmV0W2ldID0gcmVuZGVyKGkgKyAxLCBpKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNPYmplY3QodmFsKSkge1xuICAgIGlmIChoYXNTeW1ib2wgJiYgdmFsW1N5bWJvbC5pdGVyYXRvcl0pIHtcbiAgICAgIHJldCA9IFtdO1xuICAgICAgdmFyIGl0ZXJhdG9yID0gdmFsW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgIHZhciByZXN1bHQgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICB3aGlsZSAoIXJlc3VsdC5kb25lKSB7XG4gICAgICAgIHJldC5wdXNoKHJlbmRlcihyZXN1bHQudmFsdWUsIHJldC5sZW5ndGgpKTtcbiAgICAgICAgcmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBrZXlzID0gT2JqZWN0LmtleXModmFsKTtcbiAgICAgIHJldCA9IG5ldyBBcnJheShrZXlzLmxlbmd0aCk7XG4gICAgICBmb3IgKGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgcmV0W2ldID0gcmVuZGVyKHZhbFtrZXldLCBrZXksIGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoIWlzRGVmKHJldCkpIHtcbiAgICByZXQgPSBbXTtcbiAgfVxuICAocmV0KS5faXNWTGlzdCA9IHRydWU7XG4gIHJldHVybiByZXRcbn1cblxuLyogICovXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHJlbmRlcmluZyA8c2xvdD5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyU2xvdCAoXG4gIG5hbWUsXG4gIGZhbGxiYWNrLFxuICBwcm9wcyxcbiAgYmluZE9iamVjdFxuKSB7XG4gIHZhciBzY29wZWRTbG90Rm4gPSB0aGlzLiRzY29wZWRTbG90c1tuYW1lXTtcbiAgdmFyIG5vZGVzO1xuICBpZiAoc2NvcGVkU2xvdEZuKSB7IC8vIHNjb3BlZCBzbG90XG4gICAgcHJvcHMgPSBwcm9wcyB8fCB7fTtcbiAgICBpZiAoYmluZE9iamVjdCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIWlzT2JqZWN0KGJpbmRPYmplY3QpKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgJ3Nsb3Qgdi1iaW5kIHdpdGhvdXQgYXJndW1lbnQgZXhwZWN0cyBhbiBPYmplY3QnLFxuICAgICAgICAgIHRoaXNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHByb3BzID0gZXh0ZW5kKGV4dGVuZCh7fSwgYmluZE9iamVjdCksIHByb3BzKTtcbiAgICB9XG4gICAgbm9kZXMgPSBzY29wZWRTbG90Rm4ocHJvcHMpIHx8IGZhbGxiYWNrO1xuICB9IGVsc2Uge1xuICAgIG5vZGVzID0gdGhpcy4kc2xvdHNbbmFtZV0gfHwgZmFsbGJhY2s7XG4gIH1cblxuICB2YXIgdGFyZ2V0ID0gcHJvcHMgJiYgcHJvcHMuc2xvdDtcbiAgaWYgKHRhcmdldCkge1xuICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScsIHsgc2xvdDogdGFyZ2V0IH0sIG5vZGVzKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBub2Rlc1xuICB9XG59XG5cbi8qICAqL1xuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciByZXNvbHZpbmcgZmlsdGVyc1xuICovXG5mdW5jdGlvbiByZXNvbHZlRmlsdGVyIChpZCkge1xuICByZXR1cm4gcmVzb2x2ZUFzc2V0KHRoaXMuJG9wdGlvbnMsICdmaWx0ZXJzJywgaWQsIHRydWUpIHx8IGlkZW50aXR5XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpc0tleU5vdE1hdGNoIChleHBlY3QsIGFjdHVhbCkge1xuICBpZiAoQXJyYXkuaXNBcnJheShleHBlY3QpKSB7XG4gICAgcmV0dXJuIGV4cGVjdC5pbmRleE9mKGFjdHVhbCkgPT09IC0xXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGV4cGVjdCAhPT0gYWN0dWFsXG4gIH1cbn1cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgY2hlY2tpbmcga2V5Q29kZXMgZnJvbSBjb25maWcuXG4gKiBleHBvc2VkIGFzIFZ1ZS5wcm90b3R5cGUuX2tcbiAqIHBhc3NpbmcgaW4gZXZlbnRLZXlOYW1lIGFzIGxhc3QgYXJndW1lbnQgc2VwYXJhdGVseSBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICovXG5mdW5jdGlvbiBjaGVja0tleUNvZGVzIChcbiAgZXZlbnRLZXlDb2RlLFxuICBrZXksXG4gIGJ1aWx0SW5LZXlDb2RlLFxuICBldmVudEtleU5hbWUsXG4gIGJ1aWx0SW5LZXlOYW1lXG4pIHtcbiAgdmFyIG1hcHBlZEtleUNvZGUgPSBjb25maWcua2V5Q29kZXNba2V5XSB8fCBidWlsdEluS2V5Q29kZTtcbiAgaWYgKGJ1aWx0SW5LZXlOYW1lICYmIGV2ZW50S2V5TmFtZSAmJiAhY29uZmlnLmtleUNvZGVzW2tleV0pIHtcbiAgICByZXR1cm4gaXNLZXlOb3RNYXRjaChidWlsdEluS2V5TmFtZSwgZXZlbnRLZXlOYW1lKVxuICB9IGVsc2UgaWYgKG1hcHBlZEtleUNvZGUpIHtcbiAgICByZXR1cm4gaXNLZXlOb3RNYXRjaChtYXBwZWRLZXlDb2RlLCBldmVudEtleUNvZGUpXG4gIH0gZWxzZSBpZiAoZXZlbnRLZXlOYW1lKSB7XG4gICAgcmV0dXJuIGh5cGhlbmF0ZShldmVudEtleU5hbWUpICE9PSBrZXlcbiAgfVxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgbWVyZ2luZyB2LWJpbmQ9XCJvYmplY3RcIiBpbnRvIGEgVk5vZGUncyBkYXRhLlxuICovXG5mdW5jdGlvbiBiaW5kT2JqZWN0UHJvcHMgKFxuICBkYXRhLFxuICB0YWcsXG4gIHZhbHVlLFxuICBhc1Byb3AsXG4gIGlzU3luY1xuKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgICd2LWJpbmQgd2l0aG91dCBhcmd1bWVudCBleHBlY3RzIGFuIE9iamVjdCBvciBBcnJheSB2YWx1ZScsXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IHRvT2JqZWN0KHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHZhciBoYXNoO1xuICAgICAgdmFyIGxvb3AgPSBmdW5jdGlvbiAoIGtleSApIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGtleSA9PT0gJ2NsYXNzJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ3N0eWxlJyB8fFxuICAgICAgICAgIGlzUmVzZXJ2ZWRBdHRyaWJ1dGUoa2V5KVxuICAgICAgICApIHtcbiAgICAgICAgICBoYXNoID0gZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgdHlwZSA9IGRhdGEuYXR0cnMgJiYgZGF0YS5hdHRycy50eXBlO1xuICAgICAgICAgIGhhc2ggPSBhc1Byb3AgfHwgY29uZmlnLm11c3RVc2VQcm9wKHRhZywgdHlwZSwga2V5KVxuICAgICAgICAgICAgPyBkYXRhLmRvbVByb3BzIHx8IChkYXRhLmRvbVByb3BzID0ge30pXG4gICAgICAgICAgICA6IGRhdGEuYXR0cnMgfHwgKGRhdGEuYXR0cnMgPSB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNhbWVsaXplZEtleSA9IGNhbWVsaXplKGtleSk7XG4gICAgICAgIHZhciBoeXBoZW5hdGVkS2V5ID0gaHlwaGVuYXRlKGtleSk7XG4gICAgICAgIGlmICghKGNhbWVsaXplZEtleSBpbiBoYXNoKSAmJiAhKGh5cGhlbmF0ZWRLZXkgaW4gaGFzaCkpIHtcbiAgICAgICAgICBoYXNoW2tleV0gPSB2YWx1ZVtrZXldO1xuXG4gICAgICAgICAgaWYgKGlzU3luYykge1xuICAgICAgICAgICAgdmFyIG9uID0gZGF0YS5vbiB8fCAoZGF0YS5vbiA9IHt9KTtcbiAgICAgICAgICAgIG9uWyhcInVwZGF0ZTpcIiArIGtleSldID0gZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICB2YWx1ZVtrZXldID0gJGV2ZW50O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZSkgbG9vcCgga2V5ICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhXG59XG5cbi8qICAqL1xuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciByZW5kZXJpbmcgc3RhdGljIHRyZWVzLlxuICovXG5mdW5jdGlvbiByZW5kZXJTdGF0aWMgKFxuICBpbmRleCxcbiAgaXNJbkZvclxuKSB7XG4gIHZhciBjYWNoZWQgPSB0aGlzLl9zdGF0aWNUcmVlcyB8fCAodGhpcy5fc3RhdGljVHJlZXMgPSBbXSk7XG4gIHZhciB0cmVlID0gY2FjaGVkW2luZGV4XTtcbiAgLy8gaWYgaGFzIGFscmVhZHktcmVuZGVyZWQgc3RhdGljIHRyZWUgYW5kIG5vdCBpbnNpZGUgdi1mb3IsXG4gIC8vIHdlIGNhbiByZXVzZSB0aGUgc2FtZSB0cmVlLlxuICBpZiAodHJlZSAmJiAhaXNJbkZvcikge1xuICAgIHJldHVybiB0cmVlXG4gIH1cbiAgLy8gb3RoZXJ3aXNlLCByZW5kZXIgYSBmcmVzaCB0cmVlLlxuICB0cmVlID0gY2FjaGVkW2luZGV4XSA9IHRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW2luZGV4XS5jYWxsKFxuICAgIHRoaXMuX3JlbmRlclByb3h5LFxuICAgIG51bGwsXG4gICAgdGhpcyAvLyBmb3IgcmVuZGVyIGZucyBnZW5lcmF0ZWQgZm9yIGZ1bmN0aW9uYWwgY29tcG9uZW50IHRlbXBsYXRlc1xuICApO1xuICBtYXJrU3RhdGljKHRyZWUsIChcIl9fc3RhdGljX19cIiArIGluZGV4KSwgZmFsc2UpO1xuICByZXR1cm4gdHJlZVxufVxuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciB2LW9uY2UuXG4gKiBFZmZlY3RpdmVseSBpdCBtZWFucyBtYXJraW5nIHRoZSBub2RlIGFzIHN0YXRpYyB3aXRoIGEgdW5pcXVlIGtleS5cbiAqL1xuZnVuY3Rpb24gbWFya09uY2UgKFxuICB0cmVlLFxuICBpbmRleCxcbiAga2V5XG4pIHtcbiAgbWFya1N0YXRpYyh0cmVlLCAoXCJfX29uY2VfX1wiICsgaW5kZXggKyAoa2V5ID8gKFwiX1wiICsga2V5KSA6IFwiXCIpKSwgdHJ1ZSk7XG4gIHJldHVybiB0cmVlXG59XG5cbmZ1bmN0aW9uIG1hcmtTdGF0aWMgKFxuICB0cmVlLFxuICBrZXksXG4gIGlzT25jZVxuKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHRyZWUpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodHJlZVtpXSAmJiB0eXBlb2YgdHJlZVtpXSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgbWFya1N0YXRpY05vZGUodHJlZVtpXSwgKGtleSArIFwiX1wiICsgaSksIGlzT25jZSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG1hcmtTdGF0aWNOb2RlKHRyZWUsIGtleSwgaXNPbmNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrU3RhdGljTm9kZSAobm9kZSwga2V5LCBpc09uY2UpIHtcbiAgbm9kZS5pc1N0YXRpYyA9IHRydWU7XG4gIG5vZGUua2V5ID0ga2V5O1xuICBub2RlLmlzT25jZSA9IGlzT25jZTtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGJpbmRPYmplY3RMaXN0ZW5lcnMgKGRhdGEsIHZhbHVlKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGlmICghaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgJ3Ytb24gd2l0aG91dCBhcmd1bWVudCBleHBlY3RzIGFuIE9iamVjdCB2YWx1ZScsXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBvbiA9IGRhdGEub24gPSBkYXRhLm9uID8gZXh0ZW5kKHt9LCBkYXRhLm9uKSA6IHt9O1xuICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIHZhciBleGlzdGluZyA9IG9uW2tleV07XG4gICAgICAgIHZhciBvdXJzID0gdmFsdWVba2V5XTtcbiAgICAgICAgb25ba2V5XSA9IGV4aXN0aW5nID8gW10uY29uY2F0KGV4aXN0aW5nLCBvdXJzKSA6IG91cnM7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiByZXNvbHZlU2NvcGVkU2xvdHMgKFxuICBmbnMsIC8vIHNlZSBmbG93L3Zub2RlXG4gIHJlcyxcbiAgLy8gdGhlIGZvbGxvd2luZyBhcmUgYWRkZWQgaW4gMi42XG4gIGhhc0R5bmFtaWNLZXlzLFxuICBjb250ZW50SGFzaEtleVxuKSB7XG4gIHJlcyA9IHJlcyB8fCB7ICRzdGFibGU6ICFoYXNEeW5hbWljS2V5cyB9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGZucy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzbG90ID0gZm5zW2ldO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNsb3QpKSB7XG4gICAgICByZXNvbHZlU2NvcGVkU2xvdHMoc2xvdCwgcmVzLCBoYXNEeW5hbWljS2V5cyk7XG4gICAgfSBlbHNlIGlmIChzbG90KSB7XG4gICAgICAvLyBtYXJrZXIgZm9yIHJldmVyc2UgcHJveHlpbmcgdi1zbG90IHdpdGhvdXQgc2NvcGUgb24gdGhpcy4kc2xvdHNcbiAgICAgIGlmIChzbG90LnByb3h5KSB7XG4gICAgICAgIHNsb3QuZm4ucHJveHkgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmVzW3Nsb3Qua2V5XSA9IHNsb3QuZm47XG4gICAgfVxuICB9XG4gIGlmIChjb250ZW50SGFzaEtleSkge1xuICAgIChyZXMpLiRrZXkgPSBjb250ZW50SGFzaEtleTtcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBiaW5kRHluYW1pY0tleXMgKGJhc2VPYmosIHZhbHVlcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHZhciBrZXkgPSB2YWx1ZXNbaV07XG4gICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmIGtleSkge1xuICAgICAgYmFzZU9ialt2YWx1ZXNbaV1dID0gdmFsdWVzW2kgKyAxXTtcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYga2V5ICE9PSAnJyAmJiBrZXkgIT09IG51bGwpIHtcbiAgICAgIC8vIG51bGwgaXMgYSBzcGVpY2FsIHZhbHVlIGZvciBleHBsaWNpdGx5IHJlbW92aW5nIGEgYmluZGluZ1xuICAgICAgd2FybihcbiAgICAgICAgKFwiSW52YWxpZCB2YWx1ZSBmb3IgZHluYW1pYyBkaXJlY3RpdmUgYXJndW1lbnQgKGV4cGVjdGVkIHN0cmluZyBvciBudWxsKTogXCIgKyBrZXkpLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYmFzZU9ialxufVxuXG4vLyBoZWxwZXIgdG8gZHluYW1pY2FsbHkgYXBwZW5kIG1vZGlmaWVyIHJ1bnRpbWUgbWFya2VycyB0byBldmVudCBuYW1lcy5cbi8vIGVuc3VyZSBvbmx5IGFwcGVuZCB3aGVuIHZhbHVlIGlzIGFscmVhZHkgc3RyaW5nLCBvdGhlcndpc2UgaXQgd2lsbCBiZSBjYXN0XG4vLyB0byBzdHJpbmcgYW5kIGNhdXNlIHRoZSB0eXBlIGNoZWNrIHRvIG1pc3MuXG5mdW5jdGlvbiBwcmVwZW5kTW9kaWZpZXIgKHZhbHVlLCBzeW1ib2wpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBzeW1ib2wgKyB2YWx1ZSA6IHZhbHVlXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbnN0YWxsUmVuZGVySGVscGVycyAodGFyZ2V0KSB7XG4gIHRhcmdldC5fbyA9IG1hcmtPbmNlO1xuICB0YXJnZXQuX24gPSB0b051bWJlcjtcbiAgdGFyZ2V0Ll9zID0gdG9TdHJpbmc7XG4gIHRhcmdldC5fbCA9IHJlbmRlckxpc3Q7XG4gIHRhcmdldC5fdCA9IHJlbmRlclNsb3Q7XG4gIHRhcmdldC5fcSA9IGxvb3NlRXF1YWw7XG4gIHRhcmdldC5faSA9IGxvb3NlSW5kZXhPZjtcbiAgdGFyZ2V0Ll9tID0gcmVuZGVyU3RhdGljO1xuICB0YXJnZXQuX2YgPSByZXNvbHZlRmlsdGVyO1xuICB0YXJnZXQuX2sgPSBjaGVja0tleUNvZGVzO1xuICB0YXJnZXQuX2IgPSBiaW5kT2JqZWN0UHJvcHM7XG4gIHRhcmdldC5fdiA9IGNyZWF0ZVRleHRWTm9kZTtcbiAgdGFyZ2V0Ll9lID0gY3JlYXRlRW1wdHlWTm9kZTtcbiAgdGFyZ2V0Ll91ID0gcmVzb2x2ZVNjb3BlZFNsb3RzO1xuICB0YXJnZXQuX2cgPSBiaW5kT2JqZWN0TGlzdGVuZXJzO1xuICB0YXJnZXQuX2QgPSBiaW5kRHluYW1pY0tleXM7XG4gIHRhcmdldC5fcCA9IHByZXBlbmRNb2RpZmllcjtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIEZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0IChcbiAgZGF0YSxcbiAgcHJvcHMsXG4gIGNoaWxkcmVuLFxuICBwYXJlbnQsXG4gIEN0b3Jcbikge1xuICB2YXIgdGhpcyQxID0gdGhpcztcblxuICB2YXIgb3B0aW9ucyA9IEN0b3Iub3B0aW9ucztcbiAgLy8gZW5zdXJlIHRoZSBjcmVhdGVFbGVtZW50IGZ1bmN0aW9uIGluIGZ1bmN0aW9uYWwgY29tcG9uZW50c1xuICAvLyBnZXRzIGEgdW5pcXVlIGNvbnRleHQgLSB0aGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdCBuYW1lZCBzbG90IGNoZWNrXG4gIHZhciBjb250ZXh0Vm07XG4gIGlmIChoYXNPd24ocGFyZW50LCAnX3VpZCcpKSB7XG4gICAgY29udGV4dFZtID0gT2JqZWN0LmNyZWF0ZShwYXJlbnQpO1xuICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgIGNvbnRleHRWbS5fb3JpZ2luYWwgPSBwYXJlbnQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gdGhlIGNvbnRleHQgdm0gcGFzc2VkIGluIGlzIGEgZnVuY3Rpb25hbCBjb250ZXh0IGFzIHdlbGwuXG4gICAgLy8gaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGFyZSBhYmxlIHRvIGdldCBhIGhvbGQgdG8gdGhlXG4gICAgLy8gcmVhbCBjb250ZXh0IGluc3RhbmNlLlxuICAgIGNvbnRleHRWbSA9IHBhcmVudDtcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICBwYXJlbnQgPSBwYXJlbnQuX29yaWdpbmFsO1xuICB9XG4gIHZhciBpc0NvbXBpbGVkID0gaXNUcnVlKG9wdGlvbnMuX2NvbXBpbGVkKTtcbiAgdmFyIG5lZWROb3JtYWxpemF0aW9uID0gIWlzQ29tcGlsZWQ7XG5cbiAgdGhpcy5kYXRhID0gZGF0YTtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICB0aGlzLmxpc3RlbmVycyA9IGRhdGEub24gfHwgZW1wdHlPYmplY3Q7XG4gIHRoaXMuaW5qZWN0aW9ucyA9IHJlc29sdmVJbmplY3Qob3B0aW9ucy5pbmplY3QsIHBhcmVudCk7XG4gIHRoaXMuc2xvdHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCF0aGlzJDEuJHNsb3RzKSB7XG4gICAgICBub3JtYWxpemVTY29wZWRTbG90cyhcbiAgICAgICAgZGF0YS5zY29wZWRTbG90cyxcbiAgICAgICAgdGhpcyQxLiRzbG90cyA9IHJlc29sdmVTbG90cyhjaGlsZHJlbiwgcGFyZW50KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMkMS4kc2xvdHNcbiAgfTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3Njb3BlZFNsb3RzJywgKHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZ2V0ICgpIHtcbiAgICAgIHJldHVybiBub3JtYWxpemVTY29wZWRTbG90cyhkYXRhLnNjb3BlZFNsb3RzLCB0aGlzLnNsb3RzKCkpXG4gICAgfVxuICB9KSk7XG5cbiAgLy8gc3VwcG9ydCBmb3IgY29tcGlsZWQgZnVuY3Rpb25hbCB0ZW1wbGF0ZVxuICBpZiAoaXNDb21waWxlZCkge1xuICAgIC8vIGV4cG9zaW5nICRvcHRpb25zIGZvciByZW5kZXJTdGF0aWMoKVxuICAgIHRoaXMuJG9wdGlvbnMgPSBvcHRpb25zO1xuICAgIC8vIHByZS1yZXNvbHZlIHNsb3RzIGZvciByZW5kZXJTbG90KClcbiAgICB0aGlzLiRzbG90cyA9IHRoaXMuc2xvdHMoKTtcbiAgICB0aGlzLiRzY29wZWRTbG90cyA9IG5vcm1hbGl6ZVNjb3BlZFNsb3RzKGRhdGEuc2NvcGVkU2xvdHMsIHRoaXMuJHNsb3RzKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLl9zY29wZUlkKSB7XG4gICAgdGhpcy5fYyA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgICB2YXIgdm5vZGUgPSBjcmVhdGVFbGVtZW50KGNvbnRleHRWbSwgYSwgYiwgYywgZCwgbmVlZE5vcm1hbGl6YXRpb24pO1xuICAgICAgaWYgKHZub2RlICYmICFBcnJheS5pc0FycmF5KHZub2RlKSkge1xuICAgICAgICB2bm9kZS5mblNjb3BlSWQgPSBvcHRpb25zLl9zY29wZUlkO1xuICAgICAgICB2bm9kZS5mbkNvbnRleHQgPSBwYXJlbnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm5vZGVcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHRoaXMuX2MgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkgeyByZXR1cm4gY3JlYXRlRWxlbWVudChjb250ZXh0Vm0sIGEsIGIsIGMsIGQsIG5lZWROb3JtYWxpemF0aW9uKTsgfTtcbiAgfVxufVxuXG5pbnN0YWxsUmVuZGVySGVscGVycyhGdW5jdGlvbmFsUmVuZGVyQ29udGV4dC5wcm90b3R5cGUpO1xuXG5mdW5jdGlvbiBjcmVhdGVGdW5jdGlvbmFsQ29tcG9uZW50IChcbiAgQ3RvcixcbiAgcHJvcHNEYXRhLFxuICBkYXRhLFxuICBjb250ZXh0Vm0sXG4gIGNoaWxkcmVuXG4pIHtcbiAgdmFyIG9wdGlvbnMgPSBDdG9yLm9wdGlvbnM7XG4gIHZhciBwcm9wcyA9IHt9O1xuICB2YXIgcHJvcE9wdGlvbnMgPSBvcHRpb25zLnByb3BzO1xuICBpZiAoaXNEZWYocHJvcE9wdGlvbnMpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHByb3BPcHRpb25zKSB7XG4gICAgICBwcm9wc1trZXldID0gdmFsaWRhdGVQcm9wKGtleSwgcHJvcE9wdGlvbnMsIHByb3BzRGF0YSB8fCBlbXB0eU9iamVjdCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChpc0RlZihkYXRhLmF0dHJzKSkgeyBtZXJnZVByb3BzKHByb3BzLCBkYXRhLmF0dHJzKTsgfVxuICAgIGlmIChpc0RlZihkYXRhLnByb3BzKSkgeyBtZXJnZVByb3BzKHByb3BzLCBkYXRhLnByb3BzKTsgfVxuICB9XG5cbiAgdmFyIHJlbmRlckNvbnRleHQgPSBuZXcgRnVuY3Rpb25hbFJlbmRlckNvbnRleHQoXG4gICAgZGF0YSxcbiAgICBwcm9wcyxcbiAgICBjaGlsZHJlbixcbiAgICBjb250ZXh0Vm0sXG4gICAgQ3RvclxuICApO1xuXG4gIHZhciB2bm9kZSA9IG9wdGlvbnMucmVuZGVyLmNhbGwobnVsbCwgcmVuZGVyQ29udGV4dC5fYywgcmVuZGVyQ29udGV4dCk7XG5cbiAgaWYgKHZub2RlIGluc3RhbmNlb2YgVk5vZGUpIHtcbiAgICByZXR1cm4gY2xvbmVBbmRNYXJrRnVuY3Rpb25hbFJlc3VsdCh2bm9kZSwgZGF0YSwgcmVuZGVyQ29udGV4dC5wYXJlbnQsIG9wdGlvbnMsIHJlbmRlckNvbnRleHQpXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2bm9kZSkpIHtcbiAgICB2YXIgdm5vZGVzID0gbm9ybWFsaXplQ2hpbGRyZW4odm5vZGUpIHx8IFtdO1xuICAgIHZhciByZXMgPSBuZXcgQXJyYXkodm5vZGVzLmxlbmd0aCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2bm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc1tpXSA9IGNsb25lQW5kTWFya0Z1bmN0aW9uYWxSZXN1bHQodm5vZGVzW2ldLCBkYXRhLCByZW5kZXJDb250ZXh0LnBhcmVudCwgb3B0aW9ucywgcmVuZGVyQ29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfVxufVxuXG5mdW5jdGlvbiBjbG9uZUFuZE1hcmtGdW5jdGlvbmFsUmVzdWx0ICh2bm9kZSwgZGF0YSwgY29udGV4dFZtLCBvcHRpb25zLCByZW5kZXJDb250ZXh0KSB7XG4gIC8vICM3ODE3IGNsb25lIG5vZGUgYmVmb3JlIHNldHRpbmcgZm5Db250ZXh0LCBvdGhlcndpc2UgaWYgdGhlIG5vZGUgaXMgcmV1c2VkXG4gIC8vIChlLmcuIGl0IHdhcyBmcm9tIGEgY2FjaGVkIG5vcm1hbCBzbG90KSB0aGUgZm5Db250ZXh0IGNhdXNlcyBuYW1lZCBzbG90c1xuICAvLyB0aGF0IHNob3VsZCBub3QgYmUgbWF0Y2hlZCB0byBtYXRjaC5cbiAgdmFyIGNsb25lID0gY2xvbmVWTm9kZSh2bm9kZSk7XG4gIGNsb25lLmZuQ29udGV4dCA9IGNvbnRleHRWbTtcbiAgY2xvbmUuZm5PcHRpb25zID0gb3B0aW9ucztcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAoY2xvbmUuZGV2dG9vbHNNZXRhID0gY2xvbmUuZGV2dG9vbHNNZXRhIHx8IHt9KS5yZW5kZXJDb250ZXh0ID0gcmVuZGVyQ29udGV4dDtcbiAgfVxuICBpZiAoZGF0YS5zbG90KSB7XG4gICAgKGNsb25lLmRhdGEgfHwgKGNsb25lLmRhdGEgPSB7fSkpLnNsb3QgPSBkYXRhLnNsb3Q7XG4gIH1cbiAgcmV0dXJuIGNsb25lXG59XG5cbmZ1bmN0aW9uIG1lcmdlUHJvcHMgKHRvLCBmcm9tKSB7XG4gIGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG4gICAgdG9bY2FtZWxpemUoa2V5KV0gPSBmcm9tW2tleV07XG4gIH1cbn1cblxuLyogICovXG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLyogICovXG5cbi8vIGlubGluZSBob29rcyB0byBiZSBpbnZva2VkIG9uIGNvbXBvbmVudCBWTm9kZXMgZHVyaW5nIHBhdGNoXG52YXIgY29tcG9uZW50Vk5vZGVIb29rcyA9IHtcbiAgaW5pdDogZnVuY3Rpb24gaW5pdCAodm5vZGUsIGh5ZHJhdGluZykge1xuICAgIGlmIChcbiAgICAgIHZub2RlLmNvbXBvbmVudEluc3RhbmNlICYmXG4gICAgICAhdm5vZGUuY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkICYmXG4gICAgICB2bm9kZS5kYXRhLmtlZXBBbGl2ZVxuICAgICkge1xuICAgICAgLy8ga2VwdC1hbGl2ZSBjb21wb25lbnRzLCB0cmVhdCBhcyBhIHBhdGNoXG4gICAgICB2YXIgbW91bnRlZE5vZGUgPSB2bm9kZTsgLy8gd29yayBhcm91bmQgZmxvd1xuICAgICAgY29tcG9uZW50Vk5vZGVIb29rcy5wcmVwYXRjaChtb3VudGVkTm9kZSwgbW91bnRlZE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY2hpbGQgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSA9IGNyZWF0ZUNvbXBvbmVudEluc3RhbmNlRm9yVm5vZGUoXG4gICAgICAgIHZub2RlLFxuICAgICAgICBhY3RpdmVJbnN0YW5jZVxuICAgICAgKTtcbiAgICAgIGNoaWxkLiRtb3VudChoeWRyYXRpbmcgPyB2bm9kZS5lbG0gOiB1bmRlZmluZWQsIGh5ZHJhdGluZyk7XG4gICAgfVxuICB9LFxuXG4gIHByZXBhdGNoOiBmdW5jdGlvbiBwcmVwYXRjaCAob2xkVm5vZGUsIHZub2RlKSB7XG4gICAgdmFyIG9wdGlvbnMgPSB2bm9kZS5jb21wb25lbnRPcHRpb25zO1xuICAgIHZhciBjaGlsZCA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlID0gb2xkVm5vZGUuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgdXBkYXRlQ2hpbGRDb21wb25lbnQoXG4gICAgICBjaGlsZCxcbiAgICAgIG9wdGlvbnMucHJvcHNEYXRhLCAvLyB1cGRhdGVkIHByb3BzXG4gICAgICBvcHRpb25zLmxpc3RlbmVycywgLy8gdXBkYXRlZCBsaXN0ZW5lcnNcbiAgICAgIHZub2RlLCAvLyBuZXcgcGFyZW50IHZub2RlXG4gICAgICBvcHRpb25zLmNoaWxkcmVuIC8vIG5ldyBjaGlsZHJlblxuICAgICk7XG4gIH0sXG5cbiAgaW5zZXJ0OiBmdW5jdGlvbiBpbnNlcnQgKHZub2RlKSB7XG4gICAgdmFyIGNvbnRleHQgPSB2bm9kZS5jb250ZXh0O1xuICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIGlmICghY29tcG9uZW50SW5zdGFuY2UuX2lzTW91bnRlZCkge1xuICAgICAgY29tcG9uZW50SW5zdGFuY2UuX2lzTW91bnRlZCA9IHRydWU7XG4gICAgICBjYWxsSG9vayhjb21wb25lbnRJbnN0YW5jZSwgJ21vdW50ZWQnKTtcbiAgICB9XG4gICAgaWYgKHZub2RlLmRhdGEua2VlcEFsaXZlKSB7XG4gICAgICBpZiAoY29udGV4dC5faXNNb3VudGVkKSB7XG4gICAgICAgIC8vIHZ1ZS1yb3V0ZXIjMTIxMlxuICAgICAgICAvLyBEdXJpbmcgdXBkYXRlcywgYSBrZXB0LWFsaXZlIGNvbXBvbmVudCdzIGNoaWxkIGNvbXBvbmVudHMgbWF5XG4gICAgICAgIC8vIGNoYW5nZSwgc28gZGlyZWN0bHkgd2Fsa2luZyB0aGUgdHJlZSBoZXJlIG1heSBjYWxsIGFjdGl2YXRlZCBob29rc1xuICAgICAgICAvLyBvbiBpbmNvcnJlY3QgY2hpbGRyZW4uIEluc3RlYWQgd2UgcHVzaCB0aGVtIGludG8gYSBxdWV1ZSB3aGljaCB3aWxsXG4gICAgICAgIC8vIGJlIHByb2Nlc3NlZCBhZnRlciB0aGUgd2hvbGUgcGF0Y2ggcHJvY2VzcyBlbmRlZC5cbiAgICAgICAgcXVldWVBY3RpdmF0ZWRDb21wb25lbnQoY29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aXZhdGVDaGlsZENvbXBvbmVudChjb21wb25lbnRJbnN0YW5jZSwgdHJ1ZSAvKiBkaXJlY3QgKi8pO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95ICh2bm9kZSkge1xuICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIGlmICghY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkKSB7XG4gICAgICBpZiAoIXZub2RlLmRhdGEua2VlcEFsaXZlKSB7XG4gICAgICAgIGNvbXBvbmVudEluc3RhbmNlLiRkZXN0cm95KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWFjdGl2YXRlQ2hpbGRDb21wb25lbnQoY29tcG9uZW50SW5zdGFuY2UsIHRydWUgLyogZGlyZWN0ICovKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbnZhciBob29rc1RvTWVyZ2UgPSBPYmplY3Qua2V5cyhjb21wb25lbnRWTm9kZUhvb2tzKTtcblxuZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50IChcbiAgQ3RvcixcbiAgZGF0YSxcbiAgY29udGV4dCxcbiAgY2hpbGRyZW4sXG4gIHRhZ1xuKSB7XG4gIGlmIChpc1VuZGVmKEN0b3IpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgYmFzZUN0b3IgPSBjb250ZXh0LiRvcHRpb25zLl9iYXNlO1xuXG4gIC8vIHBsYWluIG9wdGlvbnMgb2JqZWN0OiB0dXJuIGl0IGludG8gYSBjb25zdHJ1Y3RvclxuICBpZiAoaXNPYmplY3QoQ3RvcikpIHtcbiAgICBDdG9yID0gYmFzZUN0b3IuZXh0ZW5kKEN0b3IpO1xuICB9XG5cbiAgLy8gaWYgYXQgdGhpcyBzdGFnZSBpdCdzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIGFuIGFzeW5jIGNvbXBvbmVudCBmYWN0b3J5LFxuICAvLyByZWplY3QuXG4gIGlmICh0eXBlb2YgQ3RvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB3YXJuKChcIkludmFsaWQgQ29tcG9uZW50IGRlZmluaXRpb246IFwiICsgKFN0cmluZyhDdG9yKSkpLCBjb250ZXh0KTtcbiAgICB9XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBhc3luYyBjb21wb25lbnRcbiAgdmFyIGFzeW5jRmFjdG9yeTtcbiAgaWYgKGlzVW5kZWYoQ3Rvci5jaWQpKSB7XG4gICAgYXN5bmNGYWN0b3J5ID0gQ3RvcjtcbiAgICBDdG9yID0gcmVzb2x2ZUFzeW5jQ29tcG9uZW50KGFzeW5jRmFjdG9yeSwgYmFzZUN0b3IpO1xuICAgIGlmIChDdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHJldHVybiBhIHBsYWNlaG9sZGVyIG5vZGUgZm9yIGFzeW5jIGNvbXBvbmVudCwgd2hpY2ggaXMgcmVuZGVyZWRcbiAgICAgIC8vIGFzIGEgY29tbWVudCBub2RlIGJ1dCBwcmVzZXJ2ZXMgYWxsIHRoZSByYXcgaW5mb3JtYXRpb24gZm9yIHRoZSBub2RlLlxuICAgICAgLy8gdGhlIGluZm9ybWF0aW9uIHdpbGwgYmUgdXNlZCBmb3IgYXN5bmMgc2VydmVyLXJlbmRlcmluZyBhbmQgaHlkcmF0aW9uLlxuICAgICAgcmV0dXJuIGNyZWF0ZUFzeW5jUGxhY2Vob2xkZXIoXG4gICAgICAgIGFzeW5jRmFjdG9yeSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIHRhZ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGRhdGEgPSBkYXRhIHx8IHt9O1xuXG4gIC8vIHJlc29sdmUgY29uc3RydWN0b3Igb3B0aW9ucyBpbiBjYXNlIGdsb2JhbCBtaXhpbnMgYXJlIGFwcGxpZWQgYWZ0ZXJcbiAgLy8gY29tcG9uZW50IGNvbnN0cnVjdG9yIGNyZWF0aW9uXG4gIHJlc29sdmVDb25zdHJ1Y3Rvck9wdGlvbnMoQ3Rvcik7XG5cbiAgLy8gdHJhbnNmb3JtIGNvbXBvbmVudCB2LW1vZGVsIGRhdGEgaW50byBwcm9wcyAmIGV2ZW50c1xuICBpZiAoaXNEZWYoZGF0YS5tb2RlbCkpIHtcbiAgICB0cmFuc2Zvcm1Nb2RlbChDdG9yLm9wdGlvbnMsIGRhdGEpO1xuICB9XG5cbiAgLy8gZXh0cmFjdCBwcm9wc1xuICB2YXIgcHJvcHNEYXRhID0gZXh0cmFjdFByb3BzRnJvbVZOb2RlRGF0YShkYXRhLCBDdG9yLCB0YWcpO1xuXG4gIC8vIGZ1bmN0aW9uYWwgY29tcG9uZW50XG4gIGlmIChpc1RydWUoQ3Rvci5vcHRpb25zLmZ1bmN0aW9uYWwpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUZ1bmN0aW9uYWxDb21wb25lbnQoQ3RvciwgcHJvcHNEYXRhLCBkYXRhLCBjb250ZXh0LCBjaGlsZHJlbilcbiAgfVxuXG4gIC8vIGV4dHJhY3QgbGlzdGVuZXJzLCBzaW5jZSB0aGVzZSBuZWVkcyB0byBiZSB0cmVhdGVkIGFzXG4gIC8vIGNoaWxkIGNvbXBvbmVudCBsaXN0ZW5lcnMgaW5zdGVhZCBvZiBET00gbGlzdGVuZXJzXG4gIHZhciBsaXN0ZW5lcnMgPSBkYXRhLm9uO1xuICAvLyByZXBsYWNlIHdpdGggbGlzdGVuZXJzIHdpdGggLm5hdGl2ZSBtb2RpZmllclxuICAvLyBzbyBpdCBnZXRzIHByb2Nlc3NlZCBkdXJpbmcgcGFyZW50IGNvbXBvbmVudCBwYXRjaC5cbiAgZGF0YS5vbiA9IGRhdGEubmF0aXZlT247XG5cbiAgaWYgKGlzVHJ1ZShDdG9yLm9wdGlvbnMuYWJzdHJhY3QpKSB7XG4gICAgLy8gYWJzdHJhY3QgY29tcG9uZW50cyBkbyBub3Qga2VlcCBhbnl0aGluZ1xuICAgIC8vIG90aGVyIHRoYW4gcHJvcHMgJiBsaXN0ZW5lcnMgJiBzbG90XG5cbiAgICAvLyB3b3JrIGFyb3VuZCBmbG93XG4gICAgdmFyIHNsb3QgPSBkYXRhLnNsb3Q7XG4gICAgZGF0YSA9IHt9O1xuICAgIGlmIChzbG90KSB7XG4gICAgICBkYXRhLnNsb3QgPSBzbG90O1xuICAgIH1cbiAgfVxuXG4gIC8vIGluc3RhbGwgY29tcG9uZW50IG1hbmFnZW1lbnQgaG9va3Mgb250byB0aGUgcGxhY2Vob2xkZXIgbm9kZVxuICBpbnN0YWxsQ29tcG9uZW50SG9va3MoZGF0YSk7XG5cbiAgLy8gcmV0dXJuIGEgcGxhY2Vob2xkZXIgdm5vZGVcbiAgdmFyIG5hbWUgPSBDdG9yLm9wdGlvbnMubmFtZSB8fCB0YWc7XG4gIHZhciB2bm9kZSA9IG5ldyBWTm9kZShcbiAgICAoXCJ2dWUtY29tcG9uZW50LVwiICsgKEN0b3IuY2lkKSArIChuYW1lID8gKFwiLVwiICsgbmFtZSkgOiAnJykpLFxuICAgIGRhdGEsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbnRleHQsXG4gICAgeyBDdG9yOiBDdG9yLCBwcm9wc0RhdGE6IHByb3BzRGF0YSwgbGlzdGVuZXJzOiBsaXN0ZW5lcnMsIHRhZzogdGFnLCBjaGlsZHJlbjogY2hpbGRyZW4gfSxcbiAgICBhc3luY0ZhY3RvcnlcbiAgKTtcblxuICByZXR1cm4gdm5vZGVcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50SW5zdGFuY2VGb3JWbm9kZSAoXG4gIHZub2RlLCAvLyB3ZSBrbm93IGl0J3MgTW91bnRlZENvbXBvbmVudFZOb2RlIGJ1dCBmbG93IGRvZXNuJ3RcbiAgcGFyZW50IC8vIGFjdGl2ZUluc3RhbmNlIGluIGxpZmVjeWNsZSBzdGF0ZVxuKSB7XG4gIHZhciBvcHRpb25zID0ge1xuICAgIF9pc0NvbXBvbmVudDogdHJ1ZSxcbiAgICBfcGFyZW50Vm5vZGU6IHZub2RlLFxuICAgIHBhcmVudDogcGFyZW50XG4gIH07XG4gIC8vIGNoZWNrIGlubGluZS10ZW1wbGF0ZSByZW5kZXIgZnVuY3Rpb25zXG4gIHZhciBpbmxpbmVUZW1wbGF0ZSA9IHZub2RlLmRhdGEuaW5saW5lVGVtcGxhdGU7XG4gIGlmIChpc0RlZihpbmxpbmVUZW1wbGF0ZSkpIHtcbiAgICBvcHRpb25zLnJlbmRlciA9IGlubGluZVRlbXBsYXRlLnJlbmRlcjtcbiAgICBvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IGlubGluZVRlbXBsYXRlLnN0YXRpY1JlbmRlckZucztcbiAgfVxuICByZXR1cm4gbmV3IHZub2RlLmNvbXBvbmVudE9wdGlvbnMuQ3RvcihvcHRpb25zKVxufVxuXG5mdW5jdGlvbiBpbnN0YWxsQ29tcG9uZW50SG9va3MgKGRhdGEpIHtcbiAgdmFyIGhvb2tzID0gZGF0YS5ob29rIHx8IChkYXRhLmhvb2sgPSB7fSk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3NUb01lcmdlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGhvb2tzVG9NZXJnZVtpXTtcbiAgICB2YXIgZXhpc3RpbmcgPSBob29rc1trZXldO1xuICAgIHZhciB0b01lcmdlID0gY29tcG9uZW50Vk5vZGVIb29rc1trZXldO1xuICAgIGlmIChleGlzdGluZyAhPT0gdG9NZXJnZSAmJiAhKGV4aXN0aW5nICYmIGV4aXN0aW5nLl9tZXJnZWQpKSB7XG4gICAgICBob29rc1trZXldID0gZXhpc3RpbmcgPyBtZXJnZUhvb2skMSh0b01lcmdlLCBleGlzdGluZykgOiB0b01lcmdlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZUhvb2skMSAoZjEsIGYyKSB7XG4gIHZhciBtZXJnZWQgPSBmdW5jdGlvbiAoYSwgYikge1xuICAgIC8vIGZsb3cgY29tcGxhaW5zIGFib3V0IGV4dHJhIGFyZ3Mgd2hpY2ggaXMgd2h5IHdlIHVzZSBhbnlcbiAgICBmMShhLCBiKTtcbiAgICBmMihhLCBiKTtcbiAgfTtcbiAgbWVyZ2VkLl9tZXJnZWQgPSB0cnVlO1xuICByZXR1cm4gbWVyZ2VkXG59XG5cbi8vIHRyYW5zZm9ybSBjb21wb25lbnQgdi1tb2RlbCBpbmZvICh2YWx1ZSBhbmQgY2FsbGJhY2spIGludG9cbi8vIHByb3AgYW5kIGV2ZW50IGhhbmRsZXIgcmVzcGVjdGl2ZWx5LlxuZnVuY3Rpb24gdHJhbnNmb3JtTW9kZWwgKG9wdGlvbnMsIGRhdGEpIHtcbiAgdmFyIHByb3AgPSAob3B0aW9ucy5tb2RlbCAmJiBvcHRpb25zLm1vZGVsLnByb3ApIHx8ICd2YWx1ZSc7XG4gIHZhciBldmVudCA9IChvcHRpb25zLm1vZGVsICYmIG9wdGlvbnMubW9kZWwuZXZlbnQpIHx8ICdpbnB1dCdcbiAgOyhkYXRhLmF0dHJzIHx8IChkYXRhLmF0dHJzID0ge30pKVtwcm9wXSA9IGRhdGEubW9kZWwudmFsdWU7XG4gIHZhciBvbiA9IGRhdGEub24gfHwgKGRhdGEub24gPSB7fSk7XG4gIHZhciBleGlzdGluZyA9IG9uW2V2ZW50XTtcbiAgdmFyIGNhbGxiYWNrID0gZGF0YS5tb2RlbC5jYWxsYmFjaztcbiAgaWYgKGlzRGVmKGV4aXN0aW5nKSkge1xuICAgIGlmIChcbiAgICAgIEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpXG4gICAgICAgID8gZXhpc3RpbmcuaW5kZXhPZihjYWxsYmFjaykgPT09IC0xXG4gICAgICAgIDogZXhpc3RpbmcgIT09IGNhbGxiYWNrXG4gICAgKSB7XG4gICAgICBvbltldmVudF0gPSBbY2FsbGJhY2tdLmNvbmNhdChleGlzdGluZyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9uW2V2ZW50XSA9IGNhbGxiYWNrO1xuICB9XG59XG5cbi8qICAqL1xuXG52YXIgU0lNUExFX05PUk1BTElaRSA9IDE7XG52YXIgQUxXQVlTX05PUk1BTElaRSA9IDI7XG5cbi8vIHdyYXBwZXIgZnVuY3Rpb24gZm9yIHByb3ZpZGluZyBhIG1vcmUgZmxleGlibGUgaW50ZXJmYWNlXG4vLyB3aXRob3V0IGdldHRpbmcgeWVsbGVkIGF0IGJ5IGZsb3dcbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQgKFxuICBjb250ZXh0LFxuICB0YWcsXG4gIGRhdGEsXG4gIGNoaWxkcmVuLFxuICBub3JtYWxpemF0aW9uVHlwZSxcbiAgYWx3YXlzTm9ybWFsaXplXG4pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkgfHwgaXNQcmltaXRpdmUoZGF0YSkpIHtcbiAgICBub3JtYWxpemF0aW9uVHlwZSA9IGNoaWxkcmVuO1xuICAgIGNoaWxkcmVuID0gZGF0YTtcbiAgICBkYXRhID0gdW5kZWZpbmVkO1xuICB9XG4gIGlmIChpc1RydWUoYWx3YXlzTm9ybWFsaXplKSkge1xuICAgIG5vcm1hbGl6YXRpb25UeXBlID0gQUxXQVlTX05PUk1BTElaRTtcbiAgfVxuICByZXR1cm4gX2NyZWF0ZUVsZW1lbnQoY29udGV4dCwgdGFnLCBkYXRhLCBjaGlsZHJlbiwgbm9ybWFsaXphdGlvblR5cGUpXG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVFbGVtZW50IChcbiAgY29udGV4dCxcbiAgdGFnLFxuICBkYXRhLFxuICBjaGlsZHJlbixcbiAgbm9ybWFsaXphdGlvblR5cGVcbikge1xuICBpZiAoaXNEZWYoZGF0YSkgJiYgaXNEZWYoKGRhdGEpLl9fb2JfXykpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICBcIkF2b2lkIHVzaW5nIG9ic2VydmVkIGRhdGEgb2JqZWN0IGFzIHZub2RlIGRhdGE6IFwiICsgKEpTT04uc3RyaW5naWZ5KGRhdGEpKSArIFwiXFxuXCIgK1xuICAgICAgJ0Fsd2F5cyBjcmVhdGUgZnJlc2ggdm5vZGUgZGF0YSBvYmplY3RzIGluIGVhY2ggcmVuZGVyIScsXG4gICAgICBjb250ZXh0XG4gICAgKTtcbiAgICByZXR1cm4gY3JlYXRlRW1wdHlWTm9kZSgpXG4gIH1cbiAgLy8gb2JqZWN0IHN5bnRheCBpbiB2LWJpbmRcbiAgaWYgKGlzRGVmKGRhdGEpICYmIGlzRGVmKGRhdGEuaXMpKSB7XG4gICAgdGFnID0gZGF0YS5pcztcbiAgfVxuICBpZiAoIXRhZykge1xuICAgIC8vIGluIGNhc2Ugb2YgY29tcG9uZW50IDppcyBzZXQgdG8gZmFsc3kgdmFsdWVcbiAgICByZXR1cm4gY3JlYXRlRW1wdHlWTm9kZSgpXG4gIH1cbiAgLy8gd2FybiBhZ2FpbnN0IG5vbi1wcmltaXRpdmUga2V5XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgaXNEZWYoZGF0YSkgJiYgaXNEZWYoZGF0YS5rZXkpICYmICFpc1ByaW1pdGl2ZShkYXRhLmtleSlcbiAgKSB7XG4gICAge1xuICAgICAgd2FybihcbiAgICAgICAgJ0F2b2lkIHVzaW5nIG5vbi1wcmltaXRpdmUgdmFsdWUgYXMga2V5LCAnICtcbiAgICAgICAgJ3VzZSBzdHJpbmcvbnVtYmVyIHZhbHVlIGluc3RlYWQuJyxcbiAgICAgICAgY29udGV4dFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgLy8gc3VwcG9ydCBzaW5nbGUgZnVuY3Rpb24gY2hpbGRyZW4gYXMgZGVmYXVsdCBzY29wZWQgc2xvdFxuICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcbiAgICB0eXBlb2YgY2hpbGRyZW5bMF0gPT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgZGF0YSA9IGRhdGEgfHwge307XG4gICAgZGF0YS5zY29wZWRTbG90cyA9IHsgZGVmYXVsdDogY2hpbGRyZW5bMF0gfTtcbiAgICBjaGlsZHJlbi5sZW5ndGggPSAwO1xuICB9XG4gIGlmIChub3JtYWxpemF0aW9uVHlwZSA9PT0gQUxXQVlTX05PUk1BTElaRSkge1xuICAgIGNoaWxkcmVuID0gbm9ybWFsaXplQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICB9IGVsc2UgaWYgKG5vcm1hbGl6YXRpb25UeXBlID09PSBTSU1QTEVfTk9STUFMSVpFKSB7XG4gICAgY2hpbGRyZW4gPSBzaW1wbGVOb3JtYWxpemVDaGlsZHJlbihjaGlsZHJlbik7XG4gIH1cbiAgdmFyIHZub2RlLCBucztcbiAgaWYgKHR5cGVvZiB0YWcgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIEN0b3I7XG4gICAgbnMgPSAoY29udGV4dC4kdm5vZGUgJiYgY29udGV4dC4kdm5vZGUubnMpIHx8IGNvbmZpZy5nZXRUYWdOYW1lc3BhY2UodGFnKTtcbiAgICBpZiAoY29uZmlnLmlzUmVzZXJ2ZWRUYWcodGFnKSkge1xuICAgICAgLy8gcGxhdGZvcm0gYnVpbHQtaW4gZWxlbWVudHNcbiAgICAgIHZub2RlID0gbmV3IFZOb2RlKFxuICAgICAgICBjb25maWcucGFyc2VQbGF0Zm9ybVRhZ05hbWUodGFnKSwgZGF0YSwgY2hpbGRyZW4sXG4gICAgICAgIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250ZXh0XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoKCFkYXRhIHx8ICFkYXRhLnByZSkgJiYgaXNEZWYoQ3RvciA9IHJlc29sdmVBc3NldChjb250ZXh0LiRvcHRpb25zLCAnY29tcG9uZW50cycsIHRhZykpKSB7XG4gICAgICAvLyBjb21wb25lbnRcbiAgICAgIHZub2RlID0gY3JlYXRlQ29tcG9uZW50KEN0b3IsIGRhdGEsIGNvbnRleHQsIGNoaWxkcmVuLCB0YWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB1bmtub3duIG9yIHVubGlzdGVkIG5hbWVzcGFjZWQgZWxlbWVudHNcbiAgICAgIC8vIGNoZWNrIGF0IHJ1bnRpbWUgYmVjYXVzZSBpdCBtYXkgZ2V0IGFzc2lnbmVkIGEgbmFtZXNwYWNlIHdoZW4gaXRzXG4gICAgICAvLyBwYXJlbnQgbm9ybWFsaXplcyBjaGlsZHJlblxuICAgICAgdm5vZGUgPSBuZXcgVk5vZGUoXG4gICAgICAgIHRhZywgZGF0YSwgY2hpbGRyZW4sXG4gICAgICAgIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250ZXh0XG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBkaXJlY3QgY29tcG9uZW50IG9wdGlvbnMgLyBjb25zdHJ1Y3RvclxuICAgIHZub2RlID0gY3JlYXRlQ29tcG9uZW50KHRhZywgZGF0YSwgY29udGV4dCwgY2hpbGRyZW4pO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZub2RlKSkge1xuICAgIHJldHVybiB2bm9kZVxuICB9IGVsc2UgaWYgKGlzRGVmKHZub2RlKSkge1xuICAgIGlmIChpc0RlZihucykpIHsgYXBwbHlOUyh2bm9kZSwgbnMpOyB9XG4gICAgaWYgKGlzRGVmKGRhdGEpKSB7IHJlZ2lzdGVyRGVlcEJpbmRpbmdzKGRhdGEpOyB9XG4gICAgcmV0dXJuIHZub2RlXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVtcHR5Vk5vZGUoKVxuICB9XG59XG5cbmZ1bmN0aW9uIGFwcGx5TlMgKHZub2RlLCBucywgZm9yY2UpIHtcbiAgdm5vZGUubnMgPSBucztcbiAgaWYgKHZub2RlLnRhZyA9PT0gJ2ZvcmVpZ25PYmplY3QnKSB7XG4gICAgLy8gdXNlIGRlZmF1bHQgbmFtZXNwYWNlIGluc2lkZSBmb3JlaWduT2JqZWN0XG4gICAgbnMgPSB1bmRlZmluZWQ7XG4gICAgZm9yY2UgPSB0cnVlO1xuICB9XG4gIGlmIChpc0RlZih2bm9kZS5jaGlsZHJlbikpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IHZub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gdm5vZGUuY2hpbGRyZW5baV07XG4gICAgICBpZiAoaXNEZWYoY2hpbGQudGFnKSAmJiAoXG4gICAgICAgIGlzVW5kZWYoY2hpbGQubnMpIHx8IChpc1RydWUoZm9yY2UpICYmIGNoaWxkLnRhZyAhPT0gJ3N2ZycpKSkge1xuICAgICAgICBhcHBseU5TKGNoaWxkLCBucywgZm9yY2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyByZWYgIzUzMThcbi8vIG5lY2Vzc2FyeSB0byBlbnN1cmUgcGFyZW50IHJlLXJlbmRlciB3aGVuIGRlZXAgYmluZGluZ3MgbGlrZSA6c3R5bGUgYW5kXG4vLyA6Y2xhc3MgYXJlIHVzZWQgb24gc2xvdCBub2Rlc1xuZnVuY3Rpb24gcmVnaXN0ZXJEZWVwQmluZGluZ3MgKGRhdGEpIHtcbiAgaWYgKGlzT2JqZWN0KGRhdGEuc3R5bGUpKSB7XG4gICAgdHJhdmVyc2UoZGF0YS5zdHlsZSk7XG4gIH1cbiAgaWYgKGlzT2JqZWN0KGRhdGEuY2xhc3MpKSB7XG4gICAgdHJhdmVyc2UoZGF0YS5jbGFzcyk7XG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRSZW5kZXIgKHZtKSB7XG4gIHZtLl92bm9kZSA9IG51bGw7IC8vIHRoZSByb290IG9mIHRoZSBjaGlsZCB0cmVlXG4gIHZtLl9zdGF0aWNUcmVlcyA9IG51bGw7IC8vIHYtb25jZSBjYWNoZWQgdHJlZXNcbiAgdmFyIG9wdGlvbnMgPSB2bS4kb3B0aW9ucztcbiAgdmFyIHBhcmVudFZub2RlID0gdm0uJHZub2RlID0gb3B0aW9ucy5fcGFyZW50Vm5vZGU7IC8vIHRoZSBwbGFjZWhvbGRlciBub2RlIGluIHBhcmVudCB0cmVlXG4gIHZhciByZW5kZXJDb250ZXh0ID0gcGFyZW50Vm5vZGUgJiYgcGFyZW50Vm5vZGUuY29udGV4dDtcbiAgdm0uJHNsb3RzID0gcmVzb2x2ZVNsb3RzKG9wdGlvbnMuX3JlbmRlckNoaWxkcmVuLCByZW5kZXJDb250ZXh0KTtcbiAgdm0uJHNjb3BlZFNsb3RzID0gZW1wdHlPYmplY3Q7XG4gIC8vIGJpbmQgdGhlIGNyZWF0ZUVsZW1lbnQgZm4gdG8gdGhpcyBpbnN0YW5jZVxuICAvLyBzbyB0aGF0IHdlIGdldCBwcm9wZXIgcmVuZGVyIGNvbnRleHQgaW5zaWRlIGl0LlxuICAvLyBhcmdzIG9yZGVyOiB0YWcsIGRhdGEsIGNoaWxkcmVuLCBub3JtYWxpemF0aW9uVHlwZSwgYWx3YXlzTm9ybWFsaXplXG4gIC8vIGludGVybmFsIHZlcnNpb24gaXMgdXNlZCBieSByZW5kZXIgZnVuY3Rpb25zIGNvbXBpbGVkIGZyb20gdGVtcGxhdGVzXG4gIHZtLl9jID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHsgcmV0dXJuIGNyZWF0ZUVsZW1lbnQodm0sIGEsIGIsIGMsIGQsIGZhbHNlKTsgfTtcbiAgLy8gbm9ybWFsaXphdGlvbiBpcyBhbHdheXMgYXBwbGllZCBmb3IgdGhlIHB1YmxpYyB2ZXJzaW9uLCB1c2VkIGluXG4gIC8vIHVzZXItd3JpdHRlbiByZW5kZXIgZnVuY3Rpb25zLlxuICB2bS4kY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IHJldHVybiBjcmVhdGVFbGVtZW50KHZtLCBhLCBiLCBjLCBkLCB0cnVlKTsgfTtcblxuICAvLyAkYXR0cnMgJiAkbGlzdGVuZXJzIGFyZSBleHBvc2VkIGZvciBlYXNpZXIgSE9DIGNyZWF0aW9uLlxuICAvLyB0aGV5IG5lZWQgdG8gYmUgcmVhY3RpdmUgc28gdGhhdCBIT0NzIHVzaW5nIHRoZW0gYXJlIGFsd2F5cyB1cGRhdGVkXG4gIHZhciBwYXJlbnREYXRhID0gcGFyZW50Vm5vZGUgJiYgcGFyZW50Vm5vZGUuZGF0YTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCAnJGF0dHJzJywgcGFyZW50RGF0YSAmJiBwYXJlbnREYXRhLmF0dHJzIHx8IGVtcHR5T2JqZWN0LCBmdW5jdGlvbiAoKSB7XG4gICAgICAhaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50ICYmIHdhcm4oXCIkYXR0cnMgaXMgcmVhZG9ubHkuXCIsIHZtKTtcbiAgICB9LCB0cnVlKTtcbiAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwgJyRsaXN0ZW5lcnMnLCBvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnMgfHwgZW1wdHlPYmplY3QsIGZ1bmN0aW9uICgpIHtcbiAgICAgICFpc1VwZGF0aW5nQ2hpbGRDb21wb25lbnQgJiYgd2FybihcIiRsaXN0ZW5lcnMgaXMgcmVhZG9ubHkuXCIsIHZtKTtcbiAgICB9LCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwgJyRhdHRycycsIHBhcmVudERhdGEgJiYgcGFyZW50RGF0YS5hdHRycyB8fCBlbXB0eU9iamVjdCwgbnVsbCwgdHJ1ZSk7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEodm0sICckbGlzdGVuZXJzJywgb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzIHx8IGVtcHR5T2JqZWN0LCBudWxsLCB0cnVlKTtcbiAgfVxufVxuXG52YXIgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlID0gbnVsbDtcblxuZnVuY3Rpb24gcmVuZGVyTWl4aW4gKFZ1ZSkge1xuICAvLyBpbnN0YWxsIHJ1bnRpbWUgY29udmVuaWVuY2UgaGVscGVyc1xuICBpbnN0YWxsUmVuZGVySGVscGVycyhWdWUucHJvdG90eXBlKTtcblxuICBWdWUucHJvdG90eXBlLiRuZXh0VGljayA9IGZ1bmN0aW9uIChmbikge1xuICAgIHJldHVybiBuZXh0VGljayhmbiwgdGhpcylcbiAgfTtcblxuICBWdWUucHJvdG90eXBlLl9yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICB2YXIgcmVmID0gdm0uJG9wdGlvbnM7XG4gICAgdmFyIHJlbmRlciA9IHJlZi5yZW5kZXI7XG4gICAgdmFyIF9wYXJlbnRWbm9kZSA9IHJlZi5fcGFyZW50Vm5vZGU7XG5cbiAgICBpZiAoX3BhcmVudFZub2RlKSB7XG4gICAgICB2bS4kc2NvcGVkU2xvdHMgPSBub3JtYWxpemVTY29wZWRTbG90cyhcbiAgICAgICAgX3BhcmVudFZub2RlLmRhdGEuc2NvcGVkU2xvdHMsXG4gICAgICAgIHZtLiRzbG90cyxcbiAgICAgICAgdm0uJHNjb3BlZFNsb3RzXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIHNldCBwYXJlbnQgdm5vZGUuIHRoaXMgYWxsb3dzIHJlbmRlciBmdW5jdGlvbnMgdG8gaGF2ZSBhY2Nlc3NcbiAgICAvLyB0byB0aGUgZGF0YSBvbiB0aGUgcGxhY2Vob2xkZXIgbm9kZS5cbiAgICB2bS4kdm5vZGUgPSBfcGFyZW50Vm5vZGU7XG4gICAgLy8gcmVuZGVyIHNlbGZcbiAgICB2YXIgdm5vZGU7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBtYWludGFpbiBhIHN0YWNrIGJlY2F1ZXMgYWxsIHJlbmRlciBmbnMgYXJlIGNhbGxlZFxuICAgICAgLy8gc2VwYXJhdGVseSBmcm9tIG9uZSBhbm90aGVyLiBOZXN0ZWQgY29tcG9uZW50J3MgcmVuZGVyIGZucyBhcmUgY2FsbGVkXG4gICAgICAvLyB3aGVuIHBhcmVudCBjb21wb25lbnQgaXMgcGF0Y2hlZC5cbiAgICAgIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSA9IHZtO1xuICAgICAgdm5vZGUgPSByZW5kZXIuY2FsbCh2bS5fcmVuZGVyUHJveHksIHZtLiRjcmVhdGVFbGVtZW50KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBoYW5kbGVFcnJvcihlLCB2bSwgXCJyZW5kZXJcIik7XG4gICAgICAvLyByZXR1cm4gZXJyb3IgcmVuZGVyIHJlc3VsdCxcbiAgICAgIC8vIG9yIHByZXZpb3VzIHZub2RlIHRvIHByZXZlbnQgcmVuZGVyIGVycm9yIGNhdXNpbmcgYmxhbmsgY29tcG9uZW50XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdm0uJG9wdGlvbnMucmVuZGVyRXJyb3IpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2bm9kZSA9IHZtLiRvcHRpb25zLnJlbmRlckVycm9yLmNhbGwodm0uX3JlbmRlclByb3h5LCB2bS4kY3JlYXRlRWxlbWVudCwgZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBoYW5kbGVFcnJvcihlLCB2bSwgXCJyZW5kZXJFcnJvclwiKTtcbiAgICAgICAgICB2bm9kZSA9IHZtLl92bm9kZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdm5vZGUgPSB2bS5fdm5vZGU7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICAgIC8vIGlmIHRoZSByZXR1cm5lZCBhcnJheSBjb250YWlucyBvbmx5IGEgc2luZ2xlIG5vZGUsIGFsbG93IGl0XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodm5vZGUpICYmIHZub2RlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdm5vZGUgPSB2bm9kZVswXTtcbiAgICB9XG4gICAgLy8gcmV0dXJuIGVtcHR5IHZub2RlIGluIGNhc2UgdGhlIHJlbmRlciBmdW5jdGlvbiBlcnJvcmVkIG91dFxuICAgIGlmICghKHZub2RlIGluc3RhbmNlb2YgVk5vZGUpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBBcnJheS5pc0FycmF5KHZub2RlKSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgICdNdWx0aXBsZSByb290IG5vZGVzIHJldHVybmVkIGZyb20gcmVuZGVyIGZ1bmN0aW9uLiBSZW5kZXIgZnVuY3Rpb24gJyArXG4gICAgICAgICAgJ3Nob3VsZCByZXR1cm4gYSBzaW5nbGUgcm9vdCBub2RlLicsXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHZub2RlID0gY3JlYXRlRW1wdHlWTm9kZSgpO1xuICAgIH1cbiAgICAvLyBzZXQgcGFyZW50XG4gICAgdm5vZGUucGFyZW50ID0gX3BhcmVudFZub2RlO1xuICAgIHJldHVybiB2bm9kZVxuICB9O1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZW5zdXJlQ3RvciAoY29tcCwgYmFzZSkge1xuICBpZiAoXG4gICAgY29tcC5fX2VzTW9kdWxlIHx8XG4gICAgKGhhc1N5bWJvbCAmJiBjb21wW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICdNb2R1bGUnKVxuICApIHtcbiAgICBjb21wID0gY29tcC5kZWZhdWx0O1xuICB9XG4gIHJldHVybiBpc09iamVjdChjb21wKVxuICAgID8gYmFzZS5leHRlbmQoY29tcClcbiAgICA6IGNvbXBcbn1cblxuZnVuY3Rpb24gY3JlYXRlQXN5bmNQbGFjZWhvbGRlciAoXG4gIGZhY3RvcnksXG4gIGRhdGEsXG4gIGNvbnRleHQsXG4gIGNoaWxkcmVuLFxuICB0YWdcbikge1xuICB2YXIgbm9kZSA9IGNyZWF0ZUVtcHR5Vk5vZGUoKTtcbiAgbm9kZS5hc3luY0ZhY3RvcnkgPSBmYWN0b3J5O1xuICBub2RlLmFzeW5jTWV0YSA9IHsgZGF0YTogZGF0YSwgY29udGV4dDogY29udGV4dCwgY2hpbGRyZW46IGNoaWxkcmVuLCB0YWc6IHRhZyB9O1xuICByZXR1cm4gbm9kZVxufVxuXG5mdW5jdGlvbiByZXNvbHZlQXN5bmNDb21wb25lbnQgKFxuICBmYWN0b3J5LFxuICBiYXNlQ3RvclxuKSB7XG4gIGlmIChpc1RydWUoZmFjdG9yeS5lcnJvcikgJiYgaXNEZWYoZmFjdG9yeS5lcnJvckNvbXApKSB7XG4gICAgcmV0dXJuIGZhY3RvcnkuZXJyb3JDb21wXG4gIH1cblxuICBpZiAoaXNEZWYoZmFjdG9yeS5yZXNvbHZlZCkpIHtcbiAgICByZXR1cm4gZmFjdG9yeS5yZXNvbHZlZFxuICB9XG5cbiAgdmFyIG93bmVyID0gY3VycmVudFJlbmRlcmluZ0luc3RhbmNlO1xuICBpZiAob3duZXIgJiYgaXNEZWYoZmFjdG9yeS5vd25lcnMpICYmIGZhY3Rvcnkub3duZXJzLmluZGV4T2Yob3duZXIpID09PSAtMSkge1xuICAgIC8vIGFscmVhZHkgcGVuZGluZ1xuICAgIGZhY3Rvcnkub3duZXJzLnB1c2gob3duZXIpO1xuICB9XG5cbiAgaWYgKGlzVHJ1ZShmYWN0b3J5LmxvYWRpbmcpICYmIGlzRGVmKGZhY3RvcnkubG9hZGluZ0NvbXApKSB7XG4gICAgcmV0dXJuIGZhY3RvcnkubG9hZGluZ0NvbXBcbiAgfVxuXG4gIGlmIChvd25lciAmJiAhaXNEZWYoZmFjdG9yeS5vd25lcnMpKSB7XG4gICAgdmFyIG93bmVycyA9IGZhY3Rvcnkub3duZXJzID0gW293bmVyXTtcbiAgICB2YXIgc3luYyA9IHRydWU7XG4gICAgdmFyIHRpbWVyTG9hZGluZyA9IG51bGw7XG4gICAgdmFyIHRpbWVyVGltZW91dCA9IG51bGxcblxuICAgIDsob3duZXIpLiRvbignaG9vazpkZXN0cm95ZWQnLCBmdW5jdGlvbiAoKSB7IHJldHVybiByZW1vdmUob3duZXJzLCBvd25lcik7IH0pO1xuXG4gICAgdmFyIGZvcmNlUmVuZGVyID0gZnVuY3Rpb24gKHJlbmRlckNvbXBsZXRlZCkge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBvd25lcnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIChvd25lcnNbaV0pLiRmb3JjZVVwZGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVuZGVyQ29tcGxldGVkKSB7XG4gICAgICAgIG93bmVycy5sZW5ndGggPSAwO1xuICAgICAgICBpZiAodGltZXJMb2FkaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyTG9hZGluZyk7XG4gICAgICAgICAgdGltZXJMb2FkaW5nID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGltZXJUaW1lb3V0ICE9PSBudWxsKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyVGltZW91dCk7XG4gICAgICAgICAgdGltZXJUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB2YXIgcmVzb2x2ZSA9IG9uY2UoZnVuY3Rpb24gKHJlcykge1xuICAgICAgLy8gY2FjaGUgcmVzb2x2ZWRcbiAgICAgIGZhY3RvcnkucmVzb2x2ZWQgPSBlbnN1cmVDdG9yKHJlcywgYmFzZUN0b3IpO1xuICAgICAgLy8gaW52b2tlIGNhbGxiYWNrcyBvbmx5IGlmIHRoaXMgaXMgbm90IGEgc3luY2hyb25vdXMgcmVzb2x2ZVxuICAgICAgLy8gKGFzeW5jIHJlc29sdmVzIGFyZSBzaGltbWVkIGFzIHN5bmNocm9ub3VzIGR1cmluZyBTU1IpXG4gICAgICBpZiAoIXN5bmMpIHtcbiAgICAgICAgZm9yY2VSZW5kZXIodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvd25lcnMubGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciByZWplY3QgPSBvbmNlKGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgXCJGYWlsZWQgdG8gcmVzb2x2ZSBhc3luYyBjb21wb25lbnQ6IFwiICsgKFN0cmluZyhmYWN0b3J5KSkgK1xuICAgICAgICAocmVhc29uID8gKFwiXFxuUmVhc29uOiBcIiArIHJlYXNvbikgOiAnJylcbiAgICAgICk7XG4gICAgICBpZiAoaXNEZWYoZmFjdG9yeS5lcnJvckNvbXApKSB7XG4gICAgICAgIGZhY3RvcnkuZXJyb3IgPSB0cnVlO1xuICAgICAgICBmb3JjZVJlbmRlcih0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciByZXMgPSBmYWN0b3J5KHJlc29sdmUsIHJlamVjdCk7XG5cbiAgICBpZiAoaXNPYmplY3QocmVzKSkge1xuICAgICAgaWYgKGlzUHJvbWlzZShyZXMpKSB7XG4gICAgICAgIC8vICgpID0+IFByb21pc2VcbiAgICAgICAgaWYgKGlzVW5kZWYoZmFjdG9yeS5yZXNvbHZlZCkpIHtcbiAgICAgICAgICByZXMudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzUHJvbWlzZShyZXMuY29tcG9uZW50KSkge1xuICAgICAgICByZXMuY29tcG9uZW50LnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcblxuICAgICAgICBpZiAoaXNEZWYocmVzLmVycm9yKSkge1xuICAgICAgICAgIGZhY3RvcnkuZXJyb3JDb21wID0gZW5zdXJlQ3RvcihyZXMuZXJyb3IsIGJhc2VDdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0RlZihyZXMubG9hZGluZykpIHtcbiAgICAgICAgICBmYWN0b3J5LmxvYWRpbmdDb21wID0gZW5zdXJlQ3RvcihyZXMubG9hZGluZywgYmFzZUN0b3IpO1xuICAgICAgICAgIGlmIChyZXMuZGVsYXkgPT09IDApIHtcbiAgICAgICAgICAgIGZhY3RvcnkubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRpbWVyTG9hZGluZyA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICB0aW1lckxvYWRpbmcgPSBudWxsO1xuICAgICAgICAgICAgICBpZiAoaXNVbmRlZihmYWN0b3J5LnJlc29sdmVkKSAmJiBpc1VuZGVmKGZhY3RvcnkuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgZmFjdG9yeS5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBmb3JjZVJlbmRlcihmYWxzZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHJlcy5kZWxheSB8fCAyMDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0RlZihyZXMudGltZW91dCkpIHtcbiAgICAgICAgICB0aW1lclRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRpbWVyVGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICBpZiAoaXNVbmRlZihmYWN0b3J5LnJlc29sdmVkKSkge1xuICAgICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJ1xuICAgICAgICAgICAgICAgICAgPyAoXCJ0aW1lb3V0IChcIiArIChyZXMudGltZW91dCkgKyBcIm1zKVwiKVxuICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgcmVzLnRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3luYyA9IGZhbHNlO1xuICAgIC8vIHJldHVybiBpbiBjYXNlIHJlc29sdmVkIHN5bmNocm9ub3VzbHlcbiAgICByZXR1cm4gZmFjdG9yeS5sb2FkaW5nXG4gICAgICA/IGZhY3RvcnkubG9hZGluZ0NvbXBcbiAgICAgIDogZmFjdG9yeS5yZXNvbHZlZFxuICB9XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpc0FzeW5jUGxhY2Vob2xkZXIgKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUuaXNDb21tZW50ICYmIG5vZGUuYXN5bmNGYWN0b3J5XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBnZXRGaXJzdENvbXBvbmVudENoaWxkIChjaGlsZHJlbikge1xuICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgYyA9IGNoaWxkcmVuW2ldO1xuICAgICAgaWYgKGlzRGVmKGMpICYmIChpc0RlZihjLmNvbXBvbmVudE9wdGlvbnMpIHx8IGlzQXN5bmNQbGFjZWhvbGRlcihjKSkpIHtcbiAgICAgICAgcmV0dXJuIGNcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0RXZlbnRzICh2bSkge1xuICB2bS5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgdm0uX2hhc0hvb2tFdmVudCA9IGZhbHNlO1xuICAvLyBpbml0IHBhcmVudCBhdHRhY2hlZCBldmVudHNcbiAgdmFyIGxpc3RlbmVycyA9IHZtLiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7XG4gIGlmIChsaXN0ZW5lcnMpIHtcbiAgICB1cGRhdGVDb21wb25lbnRMaXN0ZW5lcnModm0sIGxpc3RlbmVycyk7XG4gIH1cbn1cblxudmFyIHRhcmdldDtcblxuZnVuY3Rpb24gYWRkIChldmVudCwgZm4pIHtcbiAgdGFyZ2V0LiRvbihldmVudCwgZm4pO1xufVxuXG5mdW5jdGlvbiByZW1vdmUkMSAoZXZlbnQsIGZuKSB7XG4gIHRhcmdldC4kb2ZmKGV2ZW50LCBmbik7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU9uY2VIYW5kbGVyIChldmVudCwgZm4pIHtcbiAgdmFyIF90YXJnZXQgPSB0YXJnZXQ7XG4gIHJldHVybiBmdW5jdGlvbiBvbmNlSGFuZGxlciAoKSB7XG4gICAgdmFyIHJlcyA9IGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgaWYgKHJlcyAhPT0gbnVsbCkge1xuICAgICAgX3RhcmdldC4kb2ZmKGV2ZW50LCBvbmNlSGFuZGxlcik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbXBvbmVudExpc3RlbmVycyAoXG4gIHZtLFxuICBsaXN0ZW5lcnMsXG4gIG9sZExpc3RlbmVyc1xuKSB7XG4gIHRhcmdldCA9IHZtO1xuICB1cGRhdGVMaXN0ZW5lcnMobGlzdGVuZXJzLCBvbGRMaXN0ZW5lcnMgfHwge30sIGFkZCwgcmVtb3ZlJDEsIGNyZWF0ZU9uY2VIYW5kbGVyLCB2bSk7XG4gIHRhcmdldCA9IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZXZlbnRzTWl4aW4gKFZ1ZSkge1xuICB2YXIgaG9va1JFID0gL15ob29rOi87XG4gIFZ1ZS5wcm90b3R5cGUuJG9uID0gZnVuY3Rpb24gKGV2ZW50LCBmbikge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXZlbnQpKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGV2ZW50Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICB2bS4kb24oZXZlbnRbaV0sIGZuKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgKHZtLl9ldmVudHNbZXZlbnRdIHx8ICh2bS5fZXZlbnRzW2V2ZW50XSA9IFtdKSkucHVzaChmbik7XG4gICAgICAvLyBvcHRpbWl6ZSBob29rOmV2ZW50IGNvc3QgYnkgdXNpbmcgYSBib29sZWFuIGZsYWcgbWFya2VkIGF0IHJlZ2lzdHJhdGlvblxuICAgICAgLy8gaW5zdGVhZCBvZiBhIGhhc2ggbG9va3VwXG4gICAgICBpZiAoaG9va1JFLnRlc3QoZXZlbnQpKSB7XG4gICAgICAgIHZtLl9oYXNIb29rRXZlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdm1cbiAgfTtcblxuICBWdWUucHJvdG90eXBlLiRvbmNlID0gZnVuY3Rpb24gKGV2ZW50LCBmbikge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgZnVuY3Rpb24gb24gKCkge1xuICAgICAgdm0uJG9mZihldmVudCwgb24pO1xuICAgICAgZm4uYXBwbHkodm0sIGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIG9uLmZuID0gZm47XG4gICAgdm0uJG9uKGV2ZW50LCBvbik7XG4gICAgcmV0dXJuIHZtXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kb2ZmID0gZnVuY3Rpb24gKGV2ZW50LCBmbikge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgLy8gYWxsXG4gICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICB2bS5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHJldHVybiB2bVxuICAgIH1cbiAgICAvLyBhcnJheSBvZiBldmVudHNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShldmVudCkpIHtcbiAgICAgIGZvciAodmFyIGkkMSA9IDAsIGwgPSBldmVudC5sZW5ndGg7IGkkMSA8IGw7IGkkMSsrKSB7XG4gICAgICAgIHZtLiRvZmYoZXZlbnRbaSQxXSwgZm4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZtXG4gICAgfVxuICAgIC8vIHNwZWNpZmljIGV2ZW50XG4gICAgdmFyIGNicyA9IHZtLl9ldmVudHNbZXZlbnRdO1xuICAgIGlmICghY2JzKSB7XG4gICAgICByZXR1cm4gdm1cbiAgICB9XG4gICAgaWYgKCFmbikge1xuICAgICAgdm0uX2V2ZW50c1tldmVudF0gPSBudWxsO1xuICAgICAgcmV0dXJuIHZtXG4gICAgfVxuICAgIC8vIHNwZWNpZmljIGhhbmRsZXJcbiAgICB2YXIgY2I7XG4gICAgdmFyIGkgPSBjYnMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIGNiID0gY2JzW2ldO1xuICAgICAgaWYgKGNiID09PSBmbiB8fCBjYi5mbiA9PT0gZm4pIHtcbiAgICAgICAgY2JzLnNwbGljZShpLCAxKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZtXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kZW1pdCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBsb3dlckNhc2VFdmVudCA9IGV2ZW50LnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAobG93ZXJDYXNlRXZlbnQgIT09IGV2ZW50ICYmIHZtLl9ldmVudHNbbG93ZXJDYXNlRXZlbnRdKSB7XG4gICAgICAgIHRpcChcbiAgICAgICAgICBcIkV2ZW50IFxcXCJcIiArIGxvd2VyQ2FzZUV2ZW50ICsgXCJcXFwiIGlzIGVtaXR0ZWQgaW4gY29tcG9uZW50IFwiICtcbiAgICAgICAgICAoZm9ybWF0Q29tcG9uZW50TmFtZSh2bSkpICsgXCIgYnV0IHRoZSBoYW5kbGVyIGlzIHJlZ2lzdGVyZWQgZm9yIFxcXCJcIiArIGV2ZW50ICsgXCJcXFwiLiBcIiArXG4gICAgICAgICAgXCJOb3RlIHRoYXQgSFRNTCBhdHRyaWJ1dGVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlIGFuZCB5b3UgY2Fubm90IHVzZSBcIiArXG4gICAgICAgICAgXCJ2LW9uIHRvIGxpc3RlbiB0byBjYW1lbENhc2UgZXZlbnRzIHdoZW4gdXNpbmcgaW4tRE9NIHRlbXBsYXRlcy4gXCIgK1xuICAgICAgICAgIFwiWW91IHNob3VsZCBwcm9iYWJseSB1c2UgXFxcIlwiICsgKGh5cGhlbmF0ZShldmVudCkpICsgXCJcXFwiIGluc3RlYWQgb2YgXFxcIlwiICsgZXZlbnQgKyBcIlxcXCIuXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGNicyA9IHZtLl9ldmVudHNbZXZlbnRdO1xuICAgIGlmIChjYnMpIHtcbiAgICAgIGNicyA9IGNicy5sZW5ndGggPiAxID8gdG9BcnJheShjYnMpIDogY2JzO1xuICAgICAgdmFyIGFyZ3MgPSB0b0FycmF5KGFyZ3VtZW50cywgMSk7XG4gICAgICB2YXIgaW5mbyA9IFwiZXZlbnQgaGFuZGxlciBmb3IgXFxcIlwiICsgZXZlbnQgKyBcIlxcXCJcIjtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gY2JzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhjYnNbaV0sIHZtLCBhcmdzLCB2bSwgaW5mbyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2bVxuICB9O1xufVxuXG4vKiAgKi9cblxudmFyIGFjdGl2ZUluc3RhbmNlID0gbnVsbDtcbnZhciBpc1VwZGF0aW5nQ2hpbGRDb21wb25lbnQgPSBmYWxzZTtcblxuZnVuY3Rpb24gc2V0QWN0aXZlSW5zdGFuY2Uodm0pIHtcbiAgdmFyIHByZXZBY3RpdmVJbnN0YW5jZSA9IGFjdGl2ZUluc3RhbmNlO1xuICBhY3RpdmVJbnN0YW5jZSA9IHZtO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIGFjdGl2ZUluc3RhbmNlID0gcHJldkFjdGl2ZUluc3RhbmNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRMaWZlY3ljbGUgKHZtKSB7XG4gIHZhciBvcHRpb25zID0gdm0uJG9wdGlvbnM7XG5cbiAgLy8gbG9jYXRlIGZpcnN0IG5vbi1hYnN0cmFjdCBwYXJlbnRcbiAgdmFyIHBhcmVudCA9IG9wdGlvbnMucGFyZW50O1xuICBpZiAocGFyZW50ICYmICFvcHRpb25zLmFic3RyYWN0KSB7XG4gICAgd2hpbGUgKHBhcmVudC4kb3B0aW9ucy5hYnN0cmFjdCAmJiBwYXJlbnQuJHBhcmVudCkge1xuICAgICAgcGFyZW50ID0gcGFyZW50LiRwYXJlbnQ7XG4gICAgfVxuICAgIHBhcmVudC4kY2hpbGRyZW4ucHVzaCh2bSk7XG4gIH1cblxuICB2bS4kcGFyZW50ID0gcGFyZW50O1xuICB2bS4kcm9vdCA9IHBhcmVudCA/IHBhcmVudC4kcm9vdCA6IHZtO1xuXG4gIHZtLiRjaGlsZHJlbiA9IFtdO1xuICB2bS4kcmVmcyA9IHt9O1xuXG4gIHZtLl93YXRjaGVyID0gbnVsbDtcbiAgdm0uX2luYWN0aXZlID0gbnVsbDtcbiAgdm0uX2RpcmVjdEluYWN0aXZlID0gZmFsc2U7XG4gIHZtLl9pc01vdW50ZWQgPSBmYWxzZTtcbiAgdm0uX2lzRGVzdHJveWVkID0gZmFsc2U7XG4gIHZtLl9pc0JlaW5nRGVzdHJveWVkID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGxpZmVjeWNsZU1peGluIChWdWUpIHtcbiAgVnVlLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKHZub2RlLCBoeWRyYXRpbmcpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIHZhciBwcmV2RWwgPSB2bS4kZWw7XG4gICAgdmFyIHByZXZWbm9kZSA9IHZtLl92bm9kZTtcbiAgICB2YXIgcmVzdG9yZUFjdGl2ZUluc3RhbmNlID0gc2V0QWN0aXZlSW5zdGFuY2Uodm0pO1xuICAgIHZtLl92bm9kZSA9IHZub2RlO1xuICAgIC8vIFZ1ZS5wcm90b3R5cGUuX19wYXRjaF9fIGlzIGluamVjdGVkIGluIGVudHJ5IHBvaW50c1xuICAgIC8vIGJhc2VkIG9uIHRoZSByZW5kZXJpbmcgYmFja2VuZCB1c2VkLlxuICAgIGlmICghcHJldlZub2RlKSB7XG4gICAgICAvLyBpbml0aWFsIHJlbmRlclxuICAgICAgdm0uJGVsID0gdm0uX19wYXRjaF9fKHZtLiRlbCwgdm5vZGUsIGh5ZHJhdGluZywgZmFsc2UgLyogcmVtb3ZlT25seSAqLyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHVwZGF0ZXNcbiAgICAgIHZtLiRlbCA9IHZtLl9fcGF0Y2hfXyhwcmV2Vm5vZGUsIHZub2RlKTtcbiAgICB9XG4gICAgcmVzdG9yZUFjdGl2ZUluc3RhbmNlKCk7XG4gICAgLy8gdXBkYXRlIF9fdnVlX18gcmVmZXJlbmNlXG4gICAgaWYgKHByZXZFbCkge1xuICAgICAgcHJldkVsLl9fdnVlX18gPSBudWxsO1xuICAgIH1cbiAgICBpZiAodm0uJGVsKSB7XG4gICAgICB2bS4kZWwuX192dWVfXyA9IHZtO1xuICAgIH1cbiAgICAvLyBpZiBwYXJlbnQgaXMgYW4gSE9DLCB1cGRhdGUgaXRzICRlbCBhcyB3ZWxsXG4gICAgaWYgKHZtLiR2bm9kZSAmJiB2bS4kcGFyZW50ICYmIHZtLiR2bm9kZSA9PT0gdm0uJHBhcmVudC5fdm5vZGUpIHtcbiAgICAgIHZtLiRwYXJlbnQuJGVsID0gdm0uJGVsO1xuICAgIH1cbiAgICAvLyB1cGRhdGVkIGhvb2sgaXMgY2FsbGVkIGJ5IHRoZSBzY2hlZHVsZXIgdG8gZW5zdXJlIHRoYXQgY2hpbGRyZW4gYXJlXG4gICAgLy8gdXBkYXRlZCBpbiBhIHBhcmVudCdzIHVwZGF0ZWQgaG9vay5cbiAgfTtcblxuICBWdWUucHJvdG90eXBlLiRmb3JjZVVwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGlmICh2bS5fd2F0Y2hlcikge1xuICAgICAgdm0uX3dhdGNoZXIudXBkYXRlKCk7XG4gICAgfVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJGRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICBpZiAodm0uX2lzQmVpbmdEZXN0cm95ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYWxsSG9vayh2bSwgJ2JlZm9yZURlc3Ryb3knKTtcbiAgICB2bS5faXNCZWluZ0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgLy8gcmVtb3ZlIHNlbGYgZnJvbSBwYXJlbnRcbiAgICB2YXIgcGFyZW50ID0gdm0uJHBhcmVudDtcbiAgICBpZiAocGFyZW50ICYmICFwYXJlbnQuX2lzQmVpbmdEZXN0cm95ZWQgJiYgIXZtLiRvcHRpb25zLmFic3RyYWN0KSB7XG4gICAgICByZW1vdmUocGFyZW50LiRjaGlsZHJlbiwgdm0pO1xuICAgIH1cbiAgICAvLyB0ZWFyZG93biB3YXRjaGVyc1xuICAgIGlmICh2bS5fd2F0Y2hlcikge1xuICAgICAgdm0uX3dhdGNoZXIudGVhcmRvd24oKTtcbiAgICB9XG4gICAgdmFyIGkgPSB2bS5fd2F0Y2hlcnMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHZtLl93YXRjaGVyc1tpXS50ZWFyZG93bigpO1xuICAgIH1cbiAgICAvLyByZW1vdmUgcmVmZXJlbmNlIGZyb20gZGF0YSBvYlxuICAgIC8vIGZyb3plbiBvYmplY3QgbWF5IG5vdCBoYXZlIG9ic2VydmVyLlxuICAgIGlmICh2bS5fZGF0YS5fX29iX18pIHtcbiAgICAgIHZtLl9kYXRhLl9fb2JfXy52bUNvdW50LS07XG4gICAgfVxuICAgIC8vIGNhbGwgdGhlIGxhc3QgaG9vay4uLlxuICAgIHZtLl9pc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgLy8gaW52b2tlIGRlc3Ryb3kgaG9va3Mgb24gY3VycmVudCByZW5kZXJlZCB0cmVlXG4gICAgdm0uX19wYXRjaF9fKHZtLl92bm9kZSwgbnVsbCk7XG4gICAgLy8gZmlyZSBkZXN0cm95ZWQgaG9va1xuICAgIGNhbGxIb29rKHZtLCAnZGVzdHJveWVkJyk7XG4gICAgLy8gdHVybiBvZmYgYWxsIGluc3RhbmNlIGxpc3RlbmVycy5cbiAgICB2bS4kb2ZmKCk7XG4gICAgLy8gcmVtb3ZlIF9fdnVlX18gcmVmZXJlbmNlXG4gICAgaWYgKHZtLiRlbCkge1xuICAgICAgdm0uJGVsLl9fdnVlX18gPSBudWxsO1xuICAgIH1cbiAgICAvLyByZWxlYXNlIGNpcmN1bGFyIHJlZmVyZW5jZSAoIzY3NTkpXG4gICAgaWYgKHZtLiR2bm9kZSkge1xuICAgICAgdm0uJHZub2RlLnBhcmVudCA9IG51bGw7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBtb3VudENvbXBvbmVudCAoXG4gIHZtLFxuICBlbCxcbiAgaHlkcmF0aW5nXG4pIHtcbiAgdm0uJGVsID0gZWw7XG4gIGlmICghdm0uJG9wdGlvbnMucmVuZGVyKSB7XG4gICAgdm0uJG9wdGlvbnMucmVuZGVyID0gY3JlYXRlRW1wdHlWTm9kZTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoKHZtLiRvcHRpb25zLnRlbXBsYXRlICYmIHZtLiRvcHRpb25zLnRlbXBsYXRlLmNoYXJBdCgwKSAhPT0gJyMnKSB8fFxuICAgICAgICB2bS4kb3B0aW9ucy5lbCB8fCBlbCkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgICdZb3UgYXJlIHVzaW5nIHRoZSBydW50aW1lLW9ubHkgYnVpbGQgb2YgVnVlIHdoZXJlIHRoZSB0ZW1wbGF0ZSAnICtcbiAgICAgICAgICAnY29tcGlsZXIgaXMgbm90IGF2YWlsYWJsZS4gRWl0aGVyIHByZS1jb21waWxlIHRoZSB0ZW1wbGF0ZXMgaW50byAnICtcbiAgICAgICAgICAncmVuZGVyIGZ1bmN0aW9ucywgb3IgdXNlIHRoZSBjb21waWxlci1pbmNsdWRlZCBidWlsZC4nLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgICdGYWlsZWQgdG8gbW91bnQgY29tcG9uZW50OiB0ZW1wbGF0ZSBvciByZW5kZXIgZnVuY3Rpb24gbm90IGRlZmluZWQuJyxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjYWxsSG9vayh2bSwgJ2JlZm9yZU1vdW50Jyk7XG5cbiAgdmFyIHVwZGF0ZUNvbXBvbmVudDtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGNvbmZpZy5wZXJmb3JtYW5jZSAmJiBtYXJrKSB7XG4gICAgdXBkYXRlQ29tcG9uZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIG5hbWUgPSB2bS5fbmFtZTtcbiAgICAgIHZhciBpZCA9IHZtLl91aWQ7XG4gICAgICB2YXIgc3RhcnRUYWcgPSBcInZ1ZS1wZXJmLXN0YXJ0OlwiICsgaWQ7XG4gICAgICB2YXIgZW5kVGFnID0gXCJ2dWUtcGVyZi1lbmQ6XCIgKyBpZDtcblxuICAgICAgbWFyayhzdGFydFRhZyk7XG4gICAgICB2YXIgdm5vZGUgPSB2bS5fcmVuZGVyKCk7XG4gICAgICBtYXJrKGVuZFRhZyk7XG4gICAgICBtZWFzdXJlKChcInZ1ZSBcIiArIG5hbWUgKyBcIiByZW5kZXJcIiksIHN0YXJ0VGFnLCBlbmRUYWcpO1xuXG4gICAgICBtYXJrKHN0YXJ0VGFnKTtcbiAgICAgIHZtLl91cGRhdGUodm5vZGUsIGh5ZHJhdGluZyk7XG4gICAgICBtYXJrKGVuZFRhZyk7XG4gICAgICBtZWFzdXJlKChcInZ1ZSBcIiArIG5hbWUgKyBcIiBwYXRjaFwiKSwgc3RhcnRUYWcsIGVuZFRhZyk7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB1cGRhdGVDb21wb25lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2bS5fdXBkYXRlKHZtLl9yZW5kZXIoKSwgaHlkcmF0aW5nKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gd2Ugc2V0IHRoaXMgdG8gdm0uX3dhdGNoZXIgaW5zaWRlIHRoZSB3YXRjaGVyJ3MgY29uc3RydWN0b3JcbiAgLy8gc2luY2UgdGhlIHdhdGNoZXIncyBpbml0aWFsIHBhdGNoIG1heSBjYWxsICRmb3JjZVVwZGF0ZSAoZS5nLiBpbnNpZGUgY2hpbGRcbiAgLy8gY29tcG9uZW50J3MgbW91bnRlZCBob29rKSwgd2hpY2ggcmVsaWVzIG9uIHZtLl93YXRjaGVyIGJlaW5nIGFscmVhZHkgZGVmaW5lZFxuICBuZXcgV2F0Y2hlcih2bSwgdXBkYXRlQ29tcG9uZW50LCBub29wLCB7XG4gICAgYmVmb3JlOiBmdW5jdGlvbiBiZWZvcmUgKCkge1xuICAgICAgaWYgKHZtLl9pc01vdW50ZWQgJiYgIXZtLl9pc0Rlc3Ryb3llZCkge1xuICAgICAgICBjYWxsSG9vayh2bSwgJ2JlZm9yZVVwZGF0ZScpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgdHJ1ZSAvKiBpc1JlbmRlcldhdGNoZXIgKi8pO1xuICBoeWRyYXRpbmcgPSBmYWxzZTtcblxuICAvLyBtYW51YWxseSBtb3VudGVkIGluc3RhbmNlLCBjYWxsIG1vdW50ZWQgb24gc2VsZlxuICAvLyBtb3VudGVkIGlzIGNhbGxlZCBmb3IgcmVuZGVyLWNyZWF0ZWQgY2hpbGQgY29tcG9uZW50cyBpbiBpdHMgaW5zZXJ0ZWQgaG9va1xuICBpZiAodm0uJHZub2RlID09IG51bGwpIHtcbiAgICB2bS5faXNNb3VudGVkID0gdHJ1ZTtcbiAgICBjYWxsSG9vayh2bSwgJ21vdW50ZWQnKTtcbiAgfVxuICByZXR1cm4gdm1cbn1cblxuZnVuY3Rpb24gdXBkYXRlQ2hpbGRDb21wb25lbnQgKFxuICB2bSxcbiAgcHJvcHNEYXRhLFxuICBsaXN0ZW5lcnMsXG4gIHBhcmVudFZub2RlLFxuICByZW5kZXJDaGlsZHJlblxuKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIGRldGVybWluZSB3aGV0aGVyIGNvbXBvbmVudCBoYXMgc2xvdCBjaGlsZHJlblxuICAvLyB3ZSBuZWVkIHRvIGRvIHRoaXMgYmVmb3JlIG92ZXJ3cml0aW5nICRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbi5cblxuICAvLyBjaGVjayBpZiB0aGVyZSBhcmUgZHluYW1pYyBzY29wZWRTbG90cyAoaGFuZC13cml0dGVuIG9yIGNvbXBpbGVkIGJ1dCB3aXRoXG4gIC8vIGR5bmFtaWMgc2xvdCBuYW1lcykuIFN0YXRpYyBzY29wZWQgc2xvdHMgY29tcGlsZWQgZnJvbSB0ZW1wbGF0ZSBoYXMgdGhlXG4gIC8vIFwiJHN0YWJsZVwiIG1hcmtlci5cbiAgdmFyIG5ld1Njb3BlZFNsb3RzID0gcGFyZW50Vm5vZGUuZGF0YS5zY29wZWRTbG90cztcbiAgdmFyIG9sZFNjb3BlZFNsb3RzID0gdm0uJHNjb3BlZFNsb3RzO1xuICB2YXIgaGFzRHluYW1pY1Njb3BlZFNsb3QgPSAhIShcbiAgICAobmV3U2NvcGVkU2xvdHMgJiYgIW5ld1Njb3BlZFNsb3RzLiRzdGFibGUpIHx8XG4gICAgKG9sZFNjb3BlZFNsb3RzICE9PSBlbXB0eU9iamVjdCAmJiAhb2xkU2NvcGVkU2xvdHMuJHN0YWJsZSkgfHxcbiAgICAobmV3U2NvcGVkU2xvdHMgJiYgdm0uJHNjb3BlZFNsb3RzLiRrZXkgIT09IG5ld1Njb3BlZFNsb3RzLiRrZXkpXG4gICk7XG5cbiAgLy8gQW55IHN0YXRpYyBzbG90IGNoaWxkcmVuIGZyb20gdGhlIHBhcmVudCBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyBwYXJlbnQnc1xuICAvLyB1cGRhdGUuIER5bmFtaWMgc2NvcGVkIHNsb3RzIG1heSBhbHNvIGhhdmUgY2hhbmdlZC4gSW4gc3VjaCBjYXNlcywgYSBmb3JjZWRcbiAgLy8gdXBkYXRlIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgY29ycmVjdG5lc3MuXG4gIHZhciBuZWVkc0ZvcmNlVXBkYXRlID0gISEoXG4gICAgcmVuZGVyQ2hpbGRyZW4gfHwgICAgICAgICAgICAgICAvLyBoYXMgbmV3IHN0YXRpYyBzbG90c1xuICAgIHZtLiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbiB8fCAgLy8gaGFzIG9sZCBzdGF0aWMgc2xvdHNcbiAgICBoYXNEeW5hbWljU2NvcGVkU2xvdFxuICApO1xuXG4gIHZtLiRvcHRpb25zLl9wYXJlbnRWbm9kZSA9IHBhcmVudFZub2RlO1xuICB2bS4kdm5vZGUgPSBwYXJlbnRWbm9kZTsgLy8gdXBkYXRlIHZtJ3MgcGxhY2Vob2xkZXIgbm9kZSB3aXRob3V0IHJlLXJlbmRlclxuXG4gIGlmICh2bS5fdm5vZGUpIHsgLy8gdXBkYXRlIGNoaWxkIHRyZWUncyBwYXJlbnRcbiAgICB2bS5fdm5vZGUucGFyZW50ID0gcGFyZW50Vm5vZGU7XG4gIH1cbiAgdm0uJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVuID0gcmVuZGVyQ2hpbGRyZW47XG5cbiAgLy8gdXBkYXRlICRhdHRycyBhbmQgJGxpc3RlbmVycyBoYXNoXG4gIC8vIHRoZXNlIGFyZSBhbHNvIHJlYWN0aXZlIHNvIHRoZXkgbWF5IHRyaWdnZXIgY2hpbGQgdXBkYXRlIGlmIHRoZSBjaGlsZFxuICAvLyB1c2VkIHRoZW0gZHVyaW5nIHJlbmRlclxuICB2bS4kYXR0cnMgPSBwYXJlbnRWbm9kZS5kYXRhLmF0dHJzIHx8IGVtcHR5T2JqZWN0O1xuICB2bS4kbGlzdGVuZXJzID0gbGlzdGVuZXJzIHx8IGVtcHR5T2JqZWN0O1xuXG4gIC8vIHVwZGF0ZSBwcm9wc1xuICBpZiAocHJvcHNEYXRhICYmIHZtLiRvcHRpb25zLnByb3BzKSB7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKGZhbHNlKTtcbiAgICB2YXIgcHJvcHMgPSB2bS5fcHJvcHM7XG4gICAgdmFyIHByb3BLZXlzID0gdm0uJG9wdGlvbnMuX3Byb3BLZXlzIHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcEtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBwcm9wS2V5c1tpXTtcbiAgICAgIHZhciBwcm9wT3B0aW9ucyA9IHZtLiRvcHRpb25zLnByb3BzOyAvLyB3dGYgZmxvdz9cbiAgICAgIHByb3BzW2tleV0gPSB2YWxpZGF0ZVByb3Aoa2V5LCBwcm9wT3B0aW9ucywgcHJvcHNEYXRhLCB2bSk7XG4gICAgfVxuICAgIHRvZ2dsZU9ic2VydmluZyh0cnVlKTtcbiAgICAvLyBrZWVwIGEgY29weSBvZiByYXcgcHJvcHNEYXRhXG4gICAgdm0uJG9wdGlvbnMucHJvcHNEYXRhID0gcHJvcHNEYXRhO1xuICB9XG5cbiAgLy8gdXBkYXRlIGxpc3RlbmVyc1xuICBsaXN0ZW5lcnMgPSBsaXN0ZW5lcnMgfHwgZW1wdHlPYmplY3Q7XG4gIHZhciBvbGRMaXN0ZW5lcnMgPSB2bS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO1xuICB2bS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzID0gbGlzdGVuZXJzO1xuICB1cGRhdGVDb21wb25lbnRMaXN0ZW5lcnModm0sIGxpc3RlbmVycywgb2xkTGlzdGVuZXJzKTtcblxuICAvLyByZXNvbHZlIHNsb3RzICsgZm9yY2UgdXBkYXRlIGlmIGhhcyBjaGlsZHJlblxuICBpZiAobmVlZHNGb3JjZVVwZGF0ZSkge1xuICAgIHZtLiRzbG90cyA9IHJlc29sdmVTbG90cyhyZW5kZXJDaGlsZHJlbiwgcGFyZW50Vm5vZGUuY29udGV4dCk7XG4gICAgdm0uJGZvcmNlVXBkYXRlKCk7XG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCA9IGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzSW5JbmFjdGl2ZVRyZWUgKHZtKSB7XG4gIHdoaWxlICh2bSAmJiAodm0gPSB2bS4kcGFyZW50KSkge1xuICAgIGlmICh2bS5faW5hY3RpdmUpIHsgcmV0dXJuIHRydWUgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50ICh2bSwgZGlyZWN0KSB7XG4gIGlmIChkaXJlY3QpIHtcbiAgICB2bS5fZGlyZWN0SW5hY3RpdmUgPSBmYWxzZTtcbiAgICBpZiAoaXNJbkluYWN0aXZlVHJlZSh2bSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfSBlbHNlIGlmICh2bS5fZGlyZWN0SW5hY3RpdmUpIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodm0uX2luYWN0aXZlIHx8IHZtLl9pbmFjdGl2ZSA9PT0gbnVsbCkge1xuICAgIHZtLl9pbmFjdGl2ZSA9IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdm0uJGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KHZtLiRjaGlsZHJlbltpXSk7XG4gICAgfVxuICAgIGNhbGxIb29rKHZtLCAnYWN0aXZhdGVkJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVhY3RpdmF0ZUNoaWxkQ29tcG9uZW50ICh2bSwgZGlyZWN0KSB7XG4gIGlmIChkaXJlY3QpIHtcbiAgICB2bS5fZGlyZWN0SW5hY3RpdmUgPSB0cnVlO1xuICAgIGlmIChpc0luSW5hY3RpdmVUcmVlKHZtKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG4gIGlmICghdm0uX2luYWN0aXZlKSB7XG4gICAgdm0uX2luYWN0aXZlID0gdHJ1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZtLiRjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgZGVhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KHZtLiRjaGlsZHJlbltpXSk7XG4gICAgfVxuICAgIGNhbGxIb29rKHZtLCAnZGVhY3RpdmF0ZWQnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYWxsSG9vayAodm0sIGhvb2spIHtcbiAgLy8gIzc1NzMgZGlzYWJsZSBkZXAgY29sbGVjdGlvbiB3aGVuIGludm9raW5nIGxpZmVjeWNsZSBob29rc1xuICBwdXNoVGFyZ2V0KCk7XG4gIHZhciBoYW5kbGVycyA9IHZtLiRvcHRpb25zW2hvb2tdO1xuICB2YXIgaW5mbyA9IGhvb2sgKyBcIiBob29rXCI7XG4gIGlmIChoYW5kbGVycykge1xuICAgIGZvciAodmFyIGkgPSAwLCBqID0gaGFuZGxlcnMubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhoYW5kbGVyc1tpXSwgdm0sIG51bGwsIHZtLCBpbmZvKTtcbiAgICB9XG4gIH1cbiAgaWYgKHZtLl9oYXNIb29rRXZlbnQpIHtcbiAgICB2bS4kZW1pdCgnaG9vazonICsgaG9vayk7XG4gIH1cbiAgcG9wVGFyZ2V0KCk7XG59XG5cbi8qICAqL1xuXG52YXIgTUFYX1VQREFURV9DT1VOVCA9IDEwMDtcblxudmFyIHF1ZXVlID0gW107XG52YXIgYWN0aXZhdGVkQ2hpbGRyZW4gPSBbXTtcbnZhciBoYXMgPSB7fTtcbnZhciBjaXJjdWxhciA9IHt9O1xudmFyIHdhaXRpbmcgPSBmYWxzZTtcbnZhciBmbHVzaGluZyA9IGZhbHNlO1xudmFyIGluZGV4ID0gMDtcblxuLyoqXG4gKiBSZXNldCB0aGUgc2NoZWR1bGVyJ3Mgc3RhdGUuXG4gKi9cbmZ1bmN0aW9uIHJlc2V0U2NoZWR1bGVyU3RhdGUgKCkge1xuICBpbmRleCA9IHF1ZXVlLmxlbmd0aCA9IGFjdGl2YXRlZENoaWxkcmVuLmxlbmd0aCA9IDA7XG4gIGhhcyA9IHt9O1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNpcmN1bGFyID0ge307XG4gIH1cbiAgd2FpdGluZyA9IGZsdXNoaW5nID0gZmFsc2U7XG59XG5cbi8vIEFzeW5jIGVkZ2UgY2FzZSAjNjU2NiByZXF1aXJlcyBzYXZpbmcgdGhlIHRpbWVzdGFtcCB3aGVuIGV2ZW50IGxpc3RlbmVycyBhcmVcbi8vIGF0dGFjaGVkLiBIb3dldmVyLCBjYWxsaW5nIHBlcmZvcm1hbmNlLm5vdygpIGhhcyBhIHBlcmYgb3ZlcmhlYWQgZXNwZWNpYWxseVxuLy8gaWYgdGhlIHBhZ2UgaGFzIHRob3VzYW5kcyBvZiBldmVudCBsaXN0ZW5lcnMuIEluc3RlYWQsIHdlIHRha2UgYSB0aW1lc3RhbXBcbi8vIGV2ZXJ5IHRpbWUgdGhlIHNjaGVkdWxlciBmbHVzaGVzIGFuZCB1c2UgdGhhdCBmb3IgYWxsIGV2ZW50IGxpc3RlbmVyc1xuLy8gYXR0YWNoZWQgZHVyaW5nIHRoYXQgZmx1c2guXG52YXIgY3VycmVudEZsdXNoVGltZXN0YW1wID0gMDtcblxuLy8gQXN5bmMgZWRnZSBjYXNlIGZpeCByZXF1aXJlcyBzdG9yaW5nIGFuIGV2ZW50IGxpc3RlbmVyJ3MgYXR0YWNoIHRpbWVzdGFtcC5cbnZhciBnZXROb3cgPSBEYXRlLm5vdztcblxuLy8gRGV0ZXJtaW5lIHdoYXQgZXZlbnQgdGltZXN0YW1wIHRoZSBicm93c2VyIGlzIHVzaW5nLiBBbm5veWluZ2x5LCB0aGVcbi8vIHRpbWVzdGFtcCBjYW4gZWl0aGVyIGJlIGhpLXJlcyAocmVsYXRpdmUgdG8gcGFnZSBsb2FkKSBvciBsb3ctcmVzXG4vLyAocmVsYXRpdmUgdG8gVU5JWCBlcG9jaCksIHNvIGluIG9yZGVyIHRvIGNvbXBhcmUgdGltZSB3ZSBoYXZlIHRvIHVzZSB0aGVcbi8vIHNhbWUgdGltZXN0YW1wIHR5cGUgd2hlbiBzYXZpbmcgdGhlIGZsdXNoIHRpbWVzdGFtcC5cbi8vIEFsbCBJRSB2ZXJzaW9ucyB1c2UgbG93LXJlcyBldmVudCB0aW1lc3RhbXBzLCBhbmQgaGF2ZSBwcm9ibGVtYXRpYyBjbG9ja1xuLy8gaW1wbGVtZW50YXRpb25zICgjOTYzMilcbmlmIChpbkJyb3dzZXIgJiYgIWlzSUUpIHtcbiAgdmFyIHBlcmZvcm1hbmNlID0gd2luZG93LnBlcmZvcm1hbmNlO1xuICBpZiAoXG4gICAgcGVyZm9ybWFuY2UgJiZcbiAgICB0eXBlb2YgcGVyZm9ybWFuY2Uubm93ID09PSAnZnVuY3Rpb24nICYmXG4gICAgZ2V0Tm93KCkgPiBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKS50aW1lU3RhbXBcbiAgKSB7XG4gICAgLy8gaWYgdGhlIGV2ZW50IHRpbWVzdGFtcCwgYWx0aG91Z2ggZXZhbHVhdGVkIEFGVEVSIHRoZSBEYXRlLm5vdygpLCBpc1xuICAgIC8vIHNtYWxsZXIgdGhhbiBpdCwgaXQgbWVhbnMgdGhlIGV2ZW50IGlzIHVzaW5nIGEgaGktcmVzIHRpbWVzdGFtcCxcbiAgICAvLyBhbmQgd2UgbmVlZCB0byB1c2UgdGhlIGhpLXJlcyB2ZXJzaW9uIGZvciBldmVudCBsaXN0ZW5lciB0aW1lc3RhbXBzIGFzXG4gICAgLy8gd2VsbC5cbiAgICBnZXROb3cgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBwZXJmb3JtYW5jZS5ub3coKTsgfTtcbiAgfVxufVxuXG4vKipcbiAqIEZsdXNoIGJvdGggcXVldWVzIGFuZCBydW4gdGhlIHdhdGNoZXJzLlxuICovXG5mdW5jdGlvbiBmbHVzaFNjaGVkdWxlclF1ZXVlICgpIHtcbiAgY3VycmVudEZsdXNoVGltZXN0YW1wID0gZ2V0Tm93KCk7XG4gIGZsdXNoaW5nID0gdHJ1ZTtcbiAgdmFyIHdhdGNoZXIsIGlkO1xuXG4gIC8vIFNvcnQgcXVldWUgYmVmb3JlIGZsdXNoLlxuICAvLyBUaGlzIGVuc3VyZXMgdGhhdDpcbiAgLy8gMS4gQ29tcG9uZW50cyBhcmUgdXBkYXRlZCBmcm9tIHBhcmVudCB0byBjaGlsZC4gKGJlY2F1c2UgcGFyZW50IGlzIGFsd2F5c1xuICAvLyAgICBjcmVhdGVkIGJlZm9yZSB0aGUgY2hpbGQpXG4gIC8vIDIuIEEgY29tcG9uZW50J3MgdXNlciB3YXRjaGVycyBhcmUgcnVuIGJlZm9yZSBpdHMgcmVuZGVyIHdhdGNoZXIgKGJlY2F1c2VcbiAgLy8gICAgdXNlciB3YXRjaGVycyBhcmUgY3JlYXRlZCBiZWZvcmUgdGhlIHJlbmRlciB3YXRjaGVyKVxuICAvLyAzLiBJZiBhIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQgZHVyaW5nIGEgcGFyZW50IGNvbXBvbmVudCdzIHdhdGNoZXIgcnVuLFxuICAvLyAgICBpdHMgd2F0Y2hlcnMgY2FuIGJlIHNraXBwZWQuXG4gIHF1ZXVlLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEuaWQgLSBiLmlkOyB9KTtcblxuICAvLyBkbyBub3QgY2FjaGUgbGVuZ3RoIGJlY2F1c2UgbW9yZSB3YXRjaGVycyBtaWdodCBiZSBwdXNoZWRcbiAgLy8gYXMgd2UgcnVuIGV4aXN0aW5nIHdhdGNoZXJzXG4gIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHF1ZXVlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgIHdhdGNoZXIgPSBxdWV1ZVtpbmRleF07XG4gICAgaWYgKHdhdGNoZXIuYmVmb3JlKSB7XG4gICAgICB3YXRjaGVyLmJlZm9yZSgpO1xuICAgIH1cbiAgICBpZCA9IHdhdGNoZXIuaWQ7XG4gICAgaGFzW2lkXSA9IG51bGw7XG4gICAgd2F0Y2hlci5ydW4oKTtcbiAgICAvLyBpbiBkZXYgYnVpbGQsIGNoZWNrIGFuZCBzdG9wIGNpcmN1bGFyIHVwZGF0ZXMuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaGFzW2lkXSAhPSBudWxsKSB7XG4gICAgICBjaXJjdWxhcltpZF0gPSAoY2lyY3VsYXJbaWRdIHx8IDApICsgMTtcbiAgICAgIGlmIChjaXJjdWxhcltpZF0gPiBNQVhfVVBEQVRFX0NPVU5UKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgJ1lvdSBtYXkgaGF2ZSBhbiBpbmZpbml0ZSB1cGRhdGUgbG9vcCAnICsgKFxuICAgICAgICAgICAgd2F0Y2hlci51c2VyXG4gICAgICAgICAgICAgID8gKFwiaW4gd2F0Y2hlciB3aXRoIGV4cHJlc3Npb24gXFxcIlwiICsgKHdhdGNoZXIuZXhwcmVzc2lvbikgKyBcIlxcXCJcIilcbiAgICAgICAgICAgICAgOiBcImluIGEgY29tcG9uZW50IHJlbmRlciBmdW5jdGlvbi5cIlxuICAgICAgICAgICksXG4gICAgICAgICAgd2F0Y2hlci52bVxuICAgICAgICApO1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGtlZXAgY29waWVzIG9mIHBvc3QgcXVldWVzIGJlZm9yZSByZXNldHRpbmcgc3RhdGVcbiAgdmFyIGFjdGl2YXRlZFF1ZXVlID0gYWN0aXZhdGVkQ2hpbGRyZW4uc2xpY2UoKTtcbiAgdmFyIHVwZGF0ZWRRdWV1ZSA9IHF1ZXVlLnNsaWNlKCk7XG5cbiAgcmVzZXRTY2hlZHVsZXJTdGF0ZSgpO1xuXG4gIC8vIGNhbGwgY29tcG9uZW50IHVwZGF0ZWQgYW5kIGFjdGl2YXRlZCBob29rc1xuICBjYWxsQWN0aXZhdGVkSG9va3MoYWN0aXZhdGVkUXVldWUpO1xuICBjYWxsVXBkYXRlZEhvb2tzKHVwZGF0ZWRRdWV1ZSk7XG5cbiAgLy8gZGV2dG9vbCBob29rXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoZGV2dG9vbHMgJiYgY29uZmlnLmRldnRvb2xzKSB7XG4gICAgZGV2dG9vbHMuZW1pdCgnZmx1c2gnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlZEhvb2tzIChxdWV1ZSkge1xuICB2YXIgaSA9IHF1ZXVlLmxlbmd0aDtcbiAgd2hpbGUgKGktLSkge1xuICAgIHZhciB3YXRjaGVyID0gcXVldWVbaV07XG4gICAgdmFyIHZtID0gd2F0Y2hlci52bTtcbiAgICBpZiAodm0uX3dhdGNoZXIgPT09IHdhdGNoZXIgJiYgdm0uX2lzTW91bnRlZCAmJiAhdm0uX2lzRGVzdHJveWVkKSB7XG4gICAgICBjYWxsSG9vayh2bSwgJ3VwZGF0ZWQnKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBRdWV1ZSBhIGtlcHQtYWxpdmUgY29tcG9uZW50IHRoYXQgd2FzIGFjdGl2YXRlZCBkdXJpbmcgcGF0Y2guXG4gKiBUaGUgcXVldWUgd2lsbCBiZSBwcm9jZXNzZWQgYWZ0ZXIgdGhlIGVudGlyZSB0cmVlIGhhcyBiZWVuIHBhdGNoZWQuXG4gKi9cbmZ1bmN0aW9uIHF1ZXVlQWN0aXZhdGVkQ29tcG9uZW50ICh2bSkge1xuICAvLyBzZXR0aW5nIF9pbmFjdGl2ZSB0byBmYWxzZSBoZXJlIHNvIHRoYXQgYSByZW5kZXIgZnVuY3Rpb24gY2FuXG4gIC8vIHJlbHkgb24gY2hlY2tpbmcgd2hldGhlciBpdCdzIGluIGFuIGluYWN0aXZlIHRyZWUgKGUuZy4gcm91dGVyLXZpZXcpXG4gIHZtLl9pbmFjdGl2ZSA9IGZhbHNlO1xuICBhY3RpdmF0ZWRDaGlsZHJlbi5wdXNoKHZtKTtcbn1cblxuZnVuY3Rpb24gY2FsbEFjdGl2YXRlZEhvb2tzIChxdWV1ZSkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgcXVldWVbaV0uX2luYWN0aXZlID0gdHJ1ZTtcbiAgICBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KHF1ZXVlW2ldLCB0cnVlIC8qIHRydWUgKi8pO1xuICB9XG59XG5cbi8qKlxuICogUHVzaCBhIHdhdGNoZXIgaW50byB0aGUgd2F0Y2hlciBxdWV1ZS5cbiAqIEpvYnMgd2l0aCBkdXBsaWNhdGUgSURzIHdpbGwgYmUgc2tpcHBlZCB1bmxlc3MgaXQnc1xuICogcHVzaGVkIHdoZW4gdGhlIHF1ZXVlIGlzIGJlaW5nIGZsdXNoZWQuXG4gKi9cbmZ1bmN0aW9uIHF1ZXVlV2F0Y2hlciAod2F0Y2hlcikge1xuICB2YXIgaWQgPSB3YXRjaGVyLmlkO1xuICBpZiAoaGFzW2lkXSA9PSBudWxsKSB7XG4gICAgaGFzW2lkXSA9IHRydWU7XG4gICAgaWYgKCFmbHVzaGluZykge1xuICAgICAgcXVldWUucHVzaCh3YXRjaGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgYWxyZWFkeSBmbHVzaGluZywgc3BsaWNlIHRoZSB3YXRjaGVyIGJhc2VkIG9uIGl0cyBpZFxuICAgICAgLy8gaWYgYWxyZWFkeSBwYXN0IGl0cyBpZCwgaXQgd2lsbCBiZSBydW4gbmV4dCBpbW1lZGlhdGVseS5cbiAgICAgIHZhciBpID0gcXVldWUubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlIChpID4gaW5kZXggJiYgcXVldWVbaV0uaWQgPiB3YXRjaGVyLmlkKSB7XG4gICAgICAgIGktLTtcbiAgICAgIH1cbiAgICAgIHF1ZXVlLnNwbGljZShpICsgMSwgMCwgd2F0Y2hlcik7XG4gICAgfVxuICAgIC8vIHF1ZXVlIHRoZSBmbHVzaFxuICAgIGlmICghd2FpdGluZykge1xuICAgICAgd2FpdGluZyA9IHRydWU7XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFjb25maWcuYXN5bmMpIHtcbiAgICAgICAgZmx1c2hTY2hlZHVsZXJRdWV1ZSgpO1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIG5leHRUaWNrKGZsdXNoU2NoZWR1bGVyUXVldWUpO1xuICAgIH1cbiAgfVxufVxuXG4vKiAgKi9cblxuXG5cbnZhciB1aWQkMiA9IDA7XG5cbi8qKlxuICogQSB3YXRjaGVyIHBhcnNlcyBhbiBleHByZXNzaW9uLCBjb2xsZWN0cyBkZXBlbmRlbmNpZXMsXG4gKiBhbmQgZmlyZXMgY2FsbGJhY2sgd2hlbiB0aGUgZXhwcmVzc2lvbiB2YWx1ZSBjaGFuZ2VzLlxuICogVGhpcyBpcyB1c2VkIGZvciBib3RoIHRoZSAkd2F0Y2goKSBhcGkgYW5kIGRpcmVjdGl2ZXMuXG4gKi9cbnZhciBXYXRjaGVyID0gZnVuY3Rpb24gV2F0Y2hlciAoXG4gIHZtLFxuICBleHBPckZuLFxuICBjYixcbiAgb3B0aW9ucyxcbiAgaXNSZW5kZXJXYXRjaGVyXG4pIHtcbiAgdGhpcy52bSA9IHZtO1xuICBpZiAoaXNSZW5kZXJXYXRjaGVyKSB7XG4gICAgdm0uX3dhdGNoZXIgPSB0aGlzO1xuICB9XG4gIHZtLl93YXRjaGVycy5wdXNoKHRoaXMpO1xuICAvLyBvcHRpb25zXG4gIGlmIChvcHRpb25zKSB7XG4gICAgdGhpcy5kZWVwID0gISFvcHRpb25zLmRlZXA7XG4gICAgdGhpcy51c2VyID0gISFvcHRpb25zLnVzZXI7XG4gICAgdGhpcy5sYXp5ID0gISFvcHRpb25zLmxhenk7XG4gICAgdGhpcy5zeW5jID0gISFvcHRpb25zLnN5bmM7XG4gICAgdGhpcy5iZWZvcmUgPSBvcHRpb25zLmJlZm9yZTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmRlZXAgPSB0aGlzLnVzZXIgPSB0aGlzLmxhenkgPSB0aGlzLnN5bmMgPSBmYWxzZTtcbiAgfVxuICB0aGlzLmNiID0gY2I7XG4gIHRoaXMuaWQgPSArK3VpZCQyOyAvLyB1aWQgZm9yIGJhdGNoaW5nXG4gIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgdGhpcy5kaXJ0eSA9IHRoaXMubGF6eTsgLy8gZm9yIGxhenkgd2F0Y2hlcnNcbiAgdGhpcy5kZXBzID0gW107XG4gIHRoaXMubmV3RGVwcyA9IFtdO1xuICB0aGlzLmRlcElkcyA9IG5ldyBfU2V0KCk7XG4gIHRoaXMubmV3RGVwSWRzID0gbmV3IF9TZXQoKTtcbiAgdGhpcy5leHByZXNzaW9uID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJ1xuICAgID8gZXhwT3JGbi50b1N0cmluZygpXG4gICAgOiAnJztcbiAgLy8gcGFyc2UgZXhwcmVzc2lvbiBmb3IgZ2V0dGVyXG4gIGlmICh0eXBlb2YgZXhwT3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRoaXMuZ2V0dGVyID0gZXhwT3JGbjtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmdldHRlciA9IHBhcnNlUGF0aChleHBPckZuKTtcbiAgICBpZiAoIXRoaXMuZ2V0dGVyKSB7XG4gICAgICB0aGlzLmdldHRlciA9IG5vb3A7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgIFwiRmFpbGVkIHdhdGNoaW5nIHBhdGg6IFxcXCJcIiArIGV4cE9yRm4gKyBcIlxcXCIgXCIgK1xuICAgICAgICAnV2F0Y2hlciBvbmx5IGFjY2VwdHMgc2ltcGxlIGRvdC1kZWxpbWl0ZWQgcGF0aHMuICcgK1xuICAgICAgICAnRm9yIGZ1bGwgY29udHJvbCwgdXNlIGEgZnVuY3Rpb24gaW5zdGVhZC4nLFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgdGhpcy52YWx1ZSA9IHRoaXMubGF6eVxuICAgID8gdW5kZWZpbmVkXG4gICAgOiB0aGlzLmdldCgpO1xufTtcblxuLyoqXG4gKiBFdmFsdWF0ZSB0aGUgZ2V0dGVyLCBhbmQgcmUtY29sbGVjdCBkZXBlbmRlbmNpZXMuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIGdldCAoKSB7XG4gIHB1c2hUYXJnZXQodGhpcyk7XG4gIHZhciB2YWx1ZTtcbiAgdmFyIHZtID0gdGhpcy52bTtcbiAgdHJ5IHtcbiAgICB2YWx1ZSA9IHRoaXMuZ2V0dGVyLmNhbGwodm0sIHZtKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgIGhhbmRsZUVycm9yKGUsIHZtLCAoXCJnZXR0ZXIgZm9yIHdhdGNoZXIgXFxcIlwiICsgKHRoaXMuZXhwcmVzc2lvbikgKyBcIlxcXCJcIikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlXG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIC8vIFwidG91Y2hcIiBldmVyeSBwcm9wZXJ0eSBzbyB0aGV5IGFyZSBhbGwgdHJhY2tlZCBhc1xuICAgIC8vIGRlcGVuZGVuY2llcyBmb3IgZGVlcCB3YXRjaGluZ1xuICAgIGlmICh0aGlzLmRlZXApIHtcbiAgICAgIHRyYXZlcnNlKHZhbHVlKTtcbiAgICB9XG4gICAgcG9wVGFyZ2V0KCk7XG4gICAgdGhpcy5jbGVhbnVwRGVwcygpO1xuICB9XG4gIHJldHVybiB2YWx1ZVxufTtcblxuLyoqXG4gKiBBZGQgYSBkZXBlbmRlbmN5IHRvIHRoaXMgZGlyZWN0aXZlLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS5hZGREZXAgPSBmdW5jdGlvbiBhZGREZXAgKGRlcCkge1xuICB2YXIgaWQgPSBkZXAuaWQ7XG4gIGlmICghdGhpcy5uZXdEZXBJZHMuaGFzKGlkKSkge1xuICAgIHRoaXMubmV3RGVwSWRzLmFkZChpZCk7XG4gICAgdGhpcy5uZXdEZXBzLnB1c2goZGVwKTtcbiAgICBpZiAoIXRoaXMuZGVwSWRzLmhhcyhpZCkpIHtcbiAgICAgIGRlcC5hZGRTdWIodGhpcyk7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIENsZWFuIHVwIGZvciBkZXBlbmRlbmN5IGNvbGxlY3Rpb24uXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmNsZWFudXBEZXBzID0gZnVuY3Rpb24gY2xlYW51cERlcHMgKCkge1xuICB2YXIgaSA9IHRoaXMuZGVwcy5sZW5ndGg7XG4gIHdoaWxlIChpLS0pIHtcbiAgICB2YXIgZGVwID0gdGhpcy5kZXBzW2ldO1xuICAgIGlmICghdGhpcy5uZXdEZXBJZHMuaGFzKGRlcC5pZCkpIHtcbiAgICAgIGRlcC5yZW1vdmVTdWIodGhpcyk7XG4gICAgfVxuICB9XG4gIHZhciB0bXAgPSB0aGlzLmRlcElkcztcbiAgdGhpcy5kZXBJZHMgPSB0aGlzLm5ld0RlcElkcztcbiAgdGhpcy5uZXdEZXBJZHMgPSB0bXA7XG4gIHRoaXMubmV3RGVwSWRzLmNsZWFyKCk7XG4gIHRtcCA9IHRoaXMuZGVwcztcbiAgdGhpcy5kZXBzID0gdGhpcy5uZXdEZXBzO1xuICB0aGlzLm5ld0RlcHMgPSB0bXA7XG4gIHRoaXMubmV3RGVwcy5sZW5ndGggPSAwO1xufTtcblxuLyoqXG4gKiBTdWJzY3JpYmVyIGludGVyZmFjZS5cbiAqIFdpbGwgYmUgY2FsbGVkIHdoZW4gYSBkZXBlbmRlbmN5IGNoYW5nZXMuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIHVwZGF0ZSAoKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmICh0aGlzLmxhenkpIHtcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgfSBlbHNlIGlmICh0aGlzLnN5bmMpIHtcbiAgICB0aGlzLnJ1bigpO1xuICB9IGVsc2Uge1xuICAgIHF1ZXVlV2F0Y2hlcih0aGlzKTtcbiAgfVxufTtcblxuLyoqXG4gKiBTY2hlZHVsZXIgam9iIGludGVyZmFjZS5cbiAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBzY2hlZHVsZXIuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uIHJ1biAoKSB7XG4gIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0KCk7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT09IHRoaXMudmFsdWUgfHxcbiAgICAgIC8vIERlZXAgd2F0Y2hlcnMgYW5kIHdhdGNoZXJzIG9uIE9iamVjdC9BcnJheXMgc2hvdWxkIGZpcmUgZXZlblxuICAgICAgLy8gd2hlbiB0aGUgdmFsdWUgaXMgdGhlIHNhbWUsIGJlY2F1c2UgdGhlIHZhbHVlIG1heVxuICAgICAgLy8gaGF2ZSBtdXRhdGVkLlxuICAgICAgaXNPYmplY3QodmFsdWUpIHx8XG4gICAgICB0aGlzLmRlZXBcbiAgICApIHtcbiAgICAgIC8vIHNldCBuZXcgdmFsdWVcbiAgICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICBpZiAodGhpcy51c2VyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy5jYi5jYWxsKHRoaXMudm0sIHZhbHVlLCBvbGRWYWx1ZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBoYW5kbGVFcnJvcihlLCB0aGlzLnZtLCAoXCJjYWxsYmFjayBmb3Igd2F0Y2hlciBcXFwiXCIgKyAodGhpcy5leHByZXNzaW9uKSArIFwiXFxcIlwiKSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2IuY2FsbCh0aGlzLnZtLCB2YWx1ZSwgb2xkVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBFdmFsdWF0ZSB0aGUgdmFsdWUgb2YgdGhlIHdhdGNoZXIuXG4gKiBUaGlzIG9ubHkgZ2V0cyBjYWxsZWQgZm9yIGxhenkgd2F0Y2hlcnMuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmV2YWx1YXRlID0gZnVuY3Rpb24gZXZhbHVhdGUgKCkge1xuICB0aGlzLnZhbHVlID0gdGhpcy5nZXQoKTtcbiAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xufTtcblxuLyoqXG4gKiBEZXBlbmQgb24gYWxsIGRlcHMgY29sbGVjdGVkIGJ5IHRoaXMgd2F0Y2hlci5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUuZGVwZW5kID0gZnVuY3Rpb24gZGVwZW5kICgpIHtcbiAgdmFyIGkgPSB0aGlzLmRlcHMubGVuZ3RoO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgdGhpcy5kZXBzW2ldLmRlcGVuZCgpO1xuICB9XG59O1xuXG4vKipcbiAqIFJlbW92ZSBzZWxmIGZyb20gYWxsIGRlcGVuZGVuY2llcycgc3Vic2NyaWJlciBsaXN0LlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS50ZWFyZG93biA9IGZ1bmN0aW9uIHRlYXJkb3duICgpIHtcbiAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgLy8gcmVtb3ZlIHNlbGYgZnJvbSB2bSdzIHdhdGNoZXIgbGlzdFxuICAgIC8vIHRoaXMgaXMgYSBzb21ld2hhdCBleHBlbnNpdmUgb3BlcmF0aW9uIHNvIHdlIHNraXAgaXRcbiAgICAvLyBpZiB0aGUgdm0gaXMgYmVpbmcgZGVzdHJveWVkLlxuICAgIGlmICghdGhpcy52bS5faXNCZWluZ0Rlc3Ryb3llZCkge1xuICAgICAgcmVtb3ZlKHRoaXMudm0uX3dhdGNoZXJzLCB0aGlzKTtcbiAgICB9XG4gICAgdmFyIGkgPSB0aGlzLmRlcHMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHRoaXMuZGVwc1tpXS5yZW1vdmVTdWIodGhpcyk7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gIH1cbn07XG5cbi8qICAqL1xuXG52YXIgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uID0ge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogbm9vcCxcbiAgc2V0OiBub29wXG59O1xuXG5mdW5jdGlvbiBwcm94eSAodGFyZ2V0LCBzb3VyY2VLZXksIGtleSkge1xuICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uZ2V0ID0gZnVuY3Rpb24gcHJveHlHZXR0ZXIgKCkge1xuICAgIHJldHVybiB0aGlzW3NvdXJjZUtleV1ba2V5XVxuICB9O1xuICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uc2V0ID0gZnVuY3Rpb24gcHJveHlTZXR0ZXIgKHZhbCkge1xuICAgIHRoaXNbc291cmNlS2V5XVtrZXldID0gdmFsO1xuICB9O1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbik7XG59XG5cbmZ1bmN0aW9uIGluaXRTdGF0ZSAodm0pIHtcbiAgdm0uX3dhdGNoZXJzID0gW107XG4gIHZhciBvcHRzID0gdm0uJG9wdGlvbnM7XG4gIGlmIChvcHRzLnByb3BzKSB7IGluaXRQcm9wcyh2bSwgb3B0cy5wcm9wcyk7IH1cbiAgaWYgKG9wdHMubWV0aG9kcykgeyBpbml0TWV0aG9kcyh2bSwgb3B0cy5tZXRob2RzKTsgfVxuICBpZiAob3B0cy5kYXRhKSB7XG4gICAgaW5pdERhdGEodm0pO1xuICB9IGVsc2Uge1xuICAgIG9ic2VydmUodm0uX2RhdGEgPSB7fSwgdHJ1ZSAvKiBhc1Jvb3REYXRhICovKTtcbiAgfVxuICBpZiAob3B0cy5jb21wdXRlZCkgeyBpbml0Q29tcHV0ZWQodm0sIG9wdHMuY29tcHV0ZWQpOyB9XG4gIGlmIChvcHRzLndhdGNoICYmIG9wdHMud2F0Y2ggIT09IG5hdGl2ZVdhdGNoKSB7XG4gICAgaW5pdFdhdGNoKHZtLCBvcHRzLndhdGNoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0UHJvcHMgKHZtLCBwcm9wc09wdGlvbnMpIHtcbiAgdmFyIHByb3BzRGF0YSA9IHZtLiRvcHRpb25zLnByb3BzRGF0YSB8fCB7fTtcbiAgdmFyIHByb3BzID0gdm0uX3Byb3BzID0ge307XG4gIC8vIGNhY2hlIHByb3Aga2V5cyBzbyB0aGF0IGZ1dHVyZSBwcm9wcyB1cGRhdGVzIGNhbiBpdGVyYXRlIHVzaW5nIEFycmF5XG4gIC8vIGluc3RlYWQgb2YgZHluYW1pYyBvYmplY3Qga2V5IGVudW1lcmF0aW9uLlxuICB2YXIga2V5cyA9IHZtLiRvcHRpb25zLl9wcm9wS2V5cyA9IFtdO1xuICB2YXIgaXNSb290ID0gIXZtLiRwYXJlbnQ7XG4gIC8vIHJvb3QgaW5zdGFuY2UgcHJvcHMgc2hvdWxkIGJlIGNvbnZlcnRlZFxuICBpZiAoIWlzUm9vdCkge1xuICAgIHRvZ2dsZU9ic2VydmluZyhmYWxzZSk7XG4gIH1cbiAgdmFyIGxvb3AgPSBmdW5jdGlvbiAoIGtleSApIHtcbiAgICBrZXlzLnB1c2goa2V5KTtcbiAgICB2YXIgdmFsdWUgPSB2YWxpZGF0ZVByb3Aoa2V5LCBwcm9wc09wdGlvbnMsIHByb3BzRGF0YSwgdm0pO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBoeXBoZW5hdGVkS2V5ID0gaHlwaGVuYXRlKGtleSk7XG4gICAgICBpZiAoaXNSZXNlcnZlZEF0dHJpYnV0ZShoeXBoZW5hdGVkS2V5KSB8fFxuICAgICAgICAgIGNvbmZpZy5pc1Jlc2VydmVkQXR0cihoeXBoZW5hdGVkS2V5KSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIChcIlxcXCJcIiArIGh5cGhlbmF0ZWRLZXkgKyBcIlxcXCIgaXMgYSByZXNlcnZlZCBhdHRyaWJ1dGUgYW5kIGNhbm5vdCBiZSB1c2VkIGFzIGNvbXBvbmVudCBwcm9wLlwiKSxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZGVmaW5lUmVhY3RpdmUkJDEocHJvcHMsIGtleSwgdmFsdWUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFpc1Jvb3QgJiYgIWlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCkge1xuICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICBcIkF2b2lkIG11dGF0aW5nIGEgcHJvcCBkaXJlY3RseSBzaW5jZSB0aGUgdmFsdWUgd2lsbCBiZSBcIiArXG4gICAgICAgICAgICBcIm92ZXJ3cml0dGVuIHdoZW5ldmVyIHRoZSBwYXJlbnQgY29tcG9uZW50IHJlLXJlbmRlcnMuIFwiICtcbiAgICAgICAgICAgIFwiSW5zdGVhZCwgdXNlIGEgZGF0YSBvciBjb21wdXRlZCBwcm9wZXJ0eSBiYXNlZCBvbiB0aGUgcHJvcCdzIFwiICtcbiAgICAgICAgICAgIFwidmFsdWUuIFByb3AgYmVpbmcgbXV0YXRlZDogXFxcIlwiICsga2V5ICsgXCJcXFwiXCIsXG4gICAgICAgICAgICB2bVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWZpbmVSZWFjdGl2ZSQkMShwcm9wcywga2V5LCB2YWx1ZSk7XG4gICAgfVxuICAgIC8vIHN0YXRpYyBwcm9wcyBhcmUgYWxyZWFkeSBwcm94aWVkIG9uIHRoZSBjb21wb25lbnQncyBwcm90b3R5cGVcbiAgICAvLyBkdXJpbmcgVnVlLmV4dGVuZCgpLiBXZSBvbmx5IG5lZWQgdG8gcHJveHkgcHJvcHMgZGVmaW5lZCBhdFxuICAgIC8vIGluc3RhbnRpYXRpb24gaGVyZS5cbiAgICBpZiAoIShrZXkgaW4gdm0pKSB7XG4gICAgICBwcm94eSh2bSwgXCJfcHJvcHNcIiwga2V5KTtcbiAgICB9XG4gIH07XG5cbiAgZm9yICh2YXIga2V5IGluIHByb3BzT3B0aW9ucykgbG9vcCgga2V5ICk7XG4gIHRvZ2dsZU9ic2VydmluZyh0cnVlKTtcbn1cblxuZnVuY3Rpb24gaW5pdERhdGEgKHZtKSB7XG4gIHZhciBkYXRhID0gdm0uJG9wdGlvbnMuZGF0YTtcbiAgZGF0YSA9IHZtLl9kYXRhID0gdHlwZW9mIGRhdGEgPT09ICdmdW5jdGlvbidcbiAgICA/IGdldERhdGEoZGF0YSwgdm0pXG4gICAgOiBkYXRhIHx8IHt9O1xuICBpZiAoIWlzUGxhaW5PYmplY3QoZGF0YSkpIHtcbiAgICBkYXRhID0ge307XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgJ2RhdGEgZnVuY3Rpb25zIHNob3VsZCByZXR1cm4gYW4gb2JqZWN0OlxcbicgK1xuICAgICAgJ2h0dHBzOi8vdnVlanMub3JnL3YyL2d1aWRlL2NvbXBvbmVudHMuaHRtbCNkYXRhLU11c3QtQmUtYS1GdW5jdGlvbicsXG4gICAgICB2bVxuICAgICk7XG4gIH1cbiAgLy8gcHJveHkgZGF0YSBvbiBpbnN0YW5jZVxuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGRhdGEpO1xuICB2YXIgcHJvcHMgPSB2bS4kb3B0aW9ucy5wcm9wcztcbiAgdmFyIG1ldGhvZHMgPSB2bS4kb3B0aW9ucy5tZXRob2RzO1xuICB2YXIgaSA9IGtleXMubGVuZ3RoO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChtZXRob2RzICYmIGhhc093bihtZXRob2RzLCBrZXkpKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgKFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQgYXMgYSBkYXRhIHByb3BlcnR5LlwiKSxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMgJiYgaGFzT3duKHByb3BzLCBrZXkpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgIFwiVGhlIGRhdGEgcHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiIGlzIGFscmVhZHkgZGVjbGFyZWQgYXMgYSBwcm9wLiBcIiArXG4gICAgICAgIFwiVXNlIHByb3AgZGVmYXVsdCB2YWx1ZSBpbnN0ZWFkLlwiLFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKCFpc1Jlc2VydmVkKGtleSkpIHtcbiAgICAgIHByb3h5KHZtLCBcIl9kYXRhXCIsIGtleSk7XG4gICAgfVxuICB9XG4gIC8vIG9ic2VydmUgZGF0YVxuICBvYnNlcnZlKGRhdGEsIHRydWUgLyogYXNSb290RGF0YSAqLyk7XG59XG5cbmZ1bmN0aW9uIGdldERhdGEgKGRhdGEsIHZtKSB7XG4gIC8vICM3NTczIGRpc2FibGUgZGVwIGNvbGxlY3Rpb24gd2hlbiBpbnZva2luZyBkYXRhIGdldHRlcnNcbiAgcHVzaFRhcmdldCgpO1xuICB0cnkge1xuICAgIHJldHVybiBkYXRhLmNhbGwodm0sIHZtKVxuICB9IGNhdGNoIChlKSB7XG4gICAgaGFuZGxlRXJyb3IoZSwgdm0sIFwiZGF0YSgpXCIpO1xuICAgIHJldHVybiB7fVxuICB9IGZpbmFsbHkge1xuICAgIHBvcFRhcmdldCgpO1xuICB9XG59XG5cbnZhciBjb21wdXRlZFdhdGNoZXJPcHRpb25zID0geyBsYXp5OiB0cnVlIH07XG5cbmZ1bmN0aW9uIGluaXRDb21wdXRlZCAodm0sIGNvbXB1dGVkKSB7XG4gIC8vICRmbG93LWRpc2FibGUtbGluZVxuICB2YXIgd2F0Y2hlcnMgPSB2bS5fY29tcHV0ZWRXYXRjaGVycyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8vIGNvbXB1dGVkIHByb3BlcnRpZXMgYXJlIGp1c3QgZ2V0dGVycyBkdXJpbmcgU1NSXG4gIHZhciBpc1NTUiA9IGlzU2VydmVyUmVuZGVyaW5nKCk7XG5cbiAgZm9yICh2YXIga2V5IGluIGNvbXB1dGVkKSB7XG4gICAgdmFyIHVzZXJEZWYgPSBjb21wdXRlZFtrZXldO1xuICAgIHZhciBnZXR0ZXIgPSB0eXBlb2YgdXNlckRlZiA9PT0gJ2Z1bmN0aW9uJyA/IHVzZXJEZWYgOiB1c2VyRGVmLmdldDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBnZXR0ZXIgPT0gbnVsbCkge1xuICAgICAgd2FybihcbiAgICAgICAgKFwiR2V0dGVyIGlzIG1pc3NpbmcgZm9yIGNvbXB1dGVkIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIi5cIiksXG4gICAgICAgIHZtXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghaXNTU1IpIHtcbiAgICAgIC8vIGNyZWF0ZSBpbnRlcm5hbCB3YXRjaGVyIGZvciB0aGUgY29tcHV0ZWQgcHJvcGVydHkuXG4gICAgICB3YXRjaGVyc1trZXldID0gbmV3IFdhdGNoZXIoXG4gICAgICAgIHZtLFxuICAgICAgICBnZXR0ZXIgfHwgbm9vcCxcbiAgICAgICAgbm9vcCxcbiAgICAgICAgY29tcHV0ZWRXYXRjaGVyT3B0aW9uc1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBjb21wb25lbnQtZGVmaW5lZCBjb21wdXRlZCBwcm9wZXJ0aWVzIGFyZSBhbHJlYWR5IGRlZmluZWQgb24gdGhlXG4gICAgLy8gY29tcG9uZW50IHByb3RvdHlwZS4gV2Ugb25seSBuZWVkIHRvIGRlZmluZSBjb21wdXRlZCBwcm9wZXJ0aWVzIGRlZmluZWRcbiAgICAvLyBhdCBpbnN0YW50aWF0aW9uIGhlcmUuXG4gICAgaWYgKCEoa2V5IGluIHZtKSkge1xuICAgICAgZGVmaW5lQ29tcHV0ZWQodm0sIGtleSwgdXNlckRlZik7XG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAoa2V5IGluIHZtLiRkYXRhKSB7XG4gICAgICAgIHdhcm4oKFwiVGhlIGNvbXB1dGVkIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiBpcyBhbHJlYWR5IGRlZmluZWQgaW4gZGF0YS5cIiksIHZtKTtcbiAgICAgIH0gZWxzZSBpZiAodm0uJG9wdGlvbnMucHJvcHMgJiYga2V5IGluIHZtLiRvcHRpb25zLnByb3BzKSB7XG4gICAgICAgIHdhcm4oKFwiVGhlIGNvbXB1dGVkIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiBpcyBhbHJlYWR5IGRlZmluZWQgYXMgYSBwcm9wLlwiKSwgdm0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZpbmVDb21wdXRlZCAoXG4gIHRhcmdldCxcbiAga2V5LFxuICB1c2VyRGVmXG4pIHtcbiAgdmFyIHNob3VsZENhY2hlID0gIWlzU2VydmVyUmVuZGVyaW5nKCk7XG4gIGlmICh0eXBlb2YgdXNlckRlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5nZXQgPSBzaG91bGRDYWNoZVxuICAgICAgPyBjcmVhdGVDb21wdXRlZEdldHRlcihrZXkpXG4gICAgICA6IGNyZWF0ZUdldHRlckludm9rZXIodXNlckRlZik7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9IG5vb3A7XG4gIH0gZWxzZSB7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLmdldCA9IHVzZXJEZWYuZ2V0XG4gICAgICA/IHNob3VsZENhY2hlICYmIHVzZXJEZWYuY2FjaGUgIT09IGZhbHNlXG4gICAgICAgID8gY3JlYXRlQ29tcHV0ZWRHZXR0ZXIoa2V5KVxuICAgICAgICA6IGNyZWF0ZUdldHRlckludm9rZXIodXNlckRlZi5nZXQpXG4gICAgICA6IG5vb3A7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9IHVzZXJEZWYuc2V0IHx8IG5vb3A7XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5zZXQgPT09IG5vb3ApIHtcbiAgICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2FybihcbiAgICAgICAgKFwiQ29tcHV0ZWQgcHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiIHdhcyBhc3NpZ25lZCB0byBidXQgaXQgaGFzIG5vIHNldHRlci5cIiksXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbik7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbXB1dGVkR2V0dGVyIChrZXkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNvbXB1dGVkR2V0dGVyICgpIHtcbiAgICB2YXIgd2F0Y2hlciA9IHRoaXMuX2NvbXB1dGVkV2F0Y2hlcnMgJiYgdGhpcy5fY29tcHV0ZWRXYXRjaGVyc1trZXldO1xuICAgIGlmICh3YXRjaGVyKSB7XG4gICAgICBpZiAod2F0Y2hlci5kaXJ0eSkge1xuICAgICAgICB3YXRjaGVyLmV2YWx1YXRlKCk7XG4gICAgICB9XG4gICAgICBpZiAoRGVwLnRhcmdldCkge1xuICAgICAgICB3YXRjaGVyLmRlcGVuZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdhdGNoZXIudmFsdWVcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlR2V0dGVySW52b2tlcihmbikge1xuICByZXR1cm4gZnVuY3Rpb24gY29tcHV0ZWRHZXR0ZXIgKCkge1xuICAgIHJldHVybiBmbi5jYWxsKHRoaXMsIHRoaXMpXG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdE1ldGhvZHMgKHZtLCBtZXRob2RzKSB7XG4gIHZhciBwcm9wcyA9IHZtLiRvcHRpb25zLnByb3BzO1xuICBmb3IgKHZhciBrZXkgaW4gbWV0aG9kcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIG1ldGhvZHNba2V5XSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBoYXMgdHlwZSBcXFwiXCIgKyAodHlwZW9mIG1ldGhvZHNba2V5XSkgKyBcIlxcXCIgaW4gdGhlIGNvbXBvbmVudCBkZWZpbml0aW9uLiBcIiArXG4gICAgICAgICAgXCJEaWQgeW91IHJlZmVyZW5jZSB0aGUgZnVuY3Rpb24gY29ycmVjdGx5P1wiLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMgJiYgaGFzT3duKHByb3BzLCBrZXkpKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgKFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQgYXMgYSBwcm9wLlwiKSxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKChrZXkgaW4gdm0pICYmIGlzUmVzZXJ2ZWQoa2V5KSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBjb25mbGljdHMgd2l0aCBhbiBleGlzdGluZyBWdWUgaW5zdGFuY2UgbWV0aG9kLiBcIiArXG4gICAgICAgICAgXCJBdm9pZCBkZWZpbmluZyBjb21wb25lbnQgbWV0aG9kcyB0aGF0IHN0YXJ0IHdpdGggXyBvciAkLlwiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHZtW2tleV0gPSB0eXBlb2YgbWV0aG9kc1trZXldICE9PSAnZnVuY3Rpb24nID8gbm9vcCA6IGJpbmQobWV0aG9kc1trZXldLCB2bSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdFdhdGNoICh2bSwgd2F0Y2gpIHtcbiAgZm9yICh2YXIga2V5IGluIHdhdGNoKSB7XG4gICAgdmFyIGhhbmRsZXIgPSB3YXRjaFtrZXldO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGhhbmRsZXIpKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhhbmRsZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY3JlYXRlV2F0Y2hlcih2bSwga2V5LCBoYW5kbGVyW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY3JlYXRlV2F0Y2hlcih2bSwga2V5LCBoYW5kbGVyKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlV2F0Y2hlciAoXG4gIHZtLFxuICBleHBPckZuLFxuICBoYW5kbGVyLFxuICBvcHRpb25zXG4pIHtcbiAgaWYgKGlzUGxhaW5PYmplY3QoaGFuZGxlcikpIHtcbiAgICBvcHRpb25zID0gaGFuZGxlcjtcbiAgICBoYW5kbGVyID0gaGFuZGxlci5oYW5kbGVyO1xuICB9XG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ3N0cmluZycpIHtcbiAgICBoYW5kbGVyID0gdm1baGFuZGxlcl07XG4gIH1cbiAgcmV0dXJuIHZtLiR3YXRjaChleHBPckZuLCBoYW5kbGVyLCBvcHRpb25zKVxufVxuXG5mdW5jdGlvbiBzdGF0ZU1peGluIChWdWUpIHtcbiAgLy8gZmxvdyBzb21laG93IGhhcyBwcm9ibGVtcyB3aXRoIGRpcmVjdGx5IGRlY2xhcmVkIGRlZmluaXRpb24gb2JqZWN0XG4gIC8vIHdoZW4gdXNpbmcgT2JqZWN0LmRlZmluZVByb3BlcnR5LCBzbyB3ZSBoYXZlIHRvIHByb2NlZHVyYWxseSBidWlsZCB1cFxuICAvLyB0aGUgb2JqZWN0IGhlcmUuXG4gIHZhciBkYXRhRGVmID0ge307XG4gIGRhdGFEZWYuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fZGF0YSB9O1xuICB2YXIgcHJvcHNEZWYgPSB7fTtcbiAgcHJvcHNEZWYuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fcHJvcHMgfTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBkYXRhRGVmLnNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdBdm9pZCByZXBsYWNpbmcgaW5zdGFuY2Ugcm9vdCAkZGF0YS4gJyArXG4gICAgICAgICdVc2UgbmVzdGVkIGRhdGEgcHJvcGVydGllcyBpbnN0ZWFkLicsXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfTtcbiAgICBwcm9wc0RlZi5zZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3YXJuKFwiJHByb3BzIGlzIHJlYWRvbmx5LlwiLCB0aGlzKTtcbiAgICB9O1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUucHJvdG90eXBlLCAnJGRhdGEnLCBkYXRhRGVmKTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZS5wcm90b3R5cGUsICckcHJvcHMnLCBwcm9wc0RlZik7XG5cbiAgVnVlLnByb3RvdHlwZS4kc2V0ID0gc2V0O1xuICBWdWUucHJvdG90eXBlLiRkZWxldGUgPSBkZWw7XG5cbiAgVnVlLnByb3RvdHlwZS4kd2F0Y2ggPSBmdW5jdGlvbiAoXG4gICAgZXhwT3JGbixcbiAgICBjYixcbiAgICBvcHRpb25zXG4gICkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QoY2IpKSB7XG4gICAgICByZXR1cm4gY3JlYXRlV2F0Y2hlcih2bSwgZXhwT3JGbiwgY2IsIG9wdGlvbnMpXG4gICAgfVxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIG9wdGlvbnMudXNlciA9IHRydWU7XG4gICAgdmFyIHdhdGNoZXIgPSBuZXcgV2F0Y2hlcih2bSwgZXhwT3JGbiwgY2IsIG9wdGlvbnMpO1xuICAgIGlmIChvcHRpb25zLmltbWVkaWF0ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY2IuY2FsbCh2bSwgd2F0Y2hlci52YWx1ZSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgdm0sIChcImNhbGxiYWNrIGZvciBpbW1lZGlhdGUgd2F0Y2hlciBcXFwiXCIgKyAod2F0Y2hlci5leHByZXNzaW9uKSArIFwiXFxcIlwiKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiB1bndhdGNoRm4gKCkge1xuICAgICAgd2F0Y2hlci50ZWFyZG93bigpO1xuICAgIH1cbiAgfTtcbn1cblxuLyogICovXG5cbnZhciB1aWQkMyA9IDA7XG5cbmZ1bmN0aW9uIGluaXRNaXhpbiAoVnVlKSB7XG4gIFZ1ZS5wcm90b3R5cGUuX2luaXQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgLy8gYSB1aWRcbiAgICB2bS5fdWlkID0gdWlkJDMrKztcblxuICAgIHZhciBzdGFydFRhZywgZW5kVGFnO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGNvbmZpZy5wZXJmb3JtYW5jZSAmJiBtYXJrKSB7XG4gICAgICBzdGFydFRhZyA9IFwidnVlLXBlcmYtc3RhcnQ6XCIgKyAodm0uX3VpZCk7XG4gICAgICBlbmRUYWcgPSBcInZ1ZS1wZXJmLWVuZDpcIiArICh2bS5fdWlkKTtcbiAgICAgIG1hcmsoc3RhcnRUYWcpO1xuICAgIH1cblxuICAgIC8vIGEgZmxhZyB0byBhdm9pZCB0aGlzIGJlaW5nIG9ic2VydmVkXG4gICAgdm0uX2lzVnVlID0gdHJ1ZTtcbiAgICAvLyBtZXJnZSBvcHRpb25zXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5faXNDb21wb25lbnQpIHtcbiAgICAgIC8vIG9wdGltaXplIGludGVybmFsIGNvbXBvbmVudCBpbnN0YW50aWF0aW9uXG4gICAgICAvLyBzaW5jZSBkeW5hbWljIG9wdGlvbnMgbWVyZ2luZyBpcyBwcmV0dHkgc2xvdywgYW5kIG5vbmUgb2YgdGhlXG4gICAgICAvLyBpbnRlcm5hbCBjb21wb25lbnQgb3B0aW9ucyBuZWVkcyBzcGVjaWFsIHRyZWF0bWVudC5cbiAgICAgIGluaXRJbnRlcm5hbENvbXBvbmVudCh2bSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZtLiRvcHRpb25zID0gbWVyZ2VPcHRpb25zKFxuICAgICAgICByZXNvbHZlQ29uc3RydWN0b3JPcHRpb25zKHZtLmNvbnN0cnVjdG9yKSxcbiAgICAgICAgb3B0aW9ucyB8fCB7fSxcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGluaXRQcm94eSh2bSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZtLl9yZW5kZXJQcm94eSA9IHZtO1xuICAgIH1cbiAgICAvLyBleHBvc2UgcmVhbCBzZWxmXG4gICAgdm0uX3NlbGYgPSB2bTtcbiAgICBpbml0TGlmZWN5Y2xlKHZtKTtcbiAgICBpbml0RXZlbnRzKHZtKTtcbiAgICBpbml0UmVuZGVyKHZtKTtcbiAgICBjYWxsSG9vayh2bSwgJ2JlZm9yZUNyZWF0ZScpO1xuICAgIGluaXRJbmplY3Rpb25zKHZtKTsgLy8gcmVzb2x2ZSBpbmplY3Rpb25zIGJlZm9yZSBkYXRhL3Byb3BzXG4gICAgaW5pdFN0YXRlKHZtKTtcbiAgICBpbml0UHJvdmlkZSh2bSk7IC8vIHJlc29sdmUgcHJvdmlkZSBhZnRlciBkYXRhL3Byb3BzXG4gICAgY2FsbEhvb2sodm0sICdjcmVhdGVkJyk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBjb25maWcucGVyZm9ybWFuY2UgJiYgbWFyaykge1xuICAgICAgdm0uX25hbWUgPSBmb3JtYXRDb21wb25lbnROYW1lKHZtLCBmYWxzZSk7XG4gICAgICBtYXJrKGVuZFRhZyk7XG4gICAgICBtZWFzdXJlKChcInZ1ZSBcIiArICh2bS5fbmFtZSkgKyBcIiBpbml0XCIpLCBzdGFydFRhZywgZW5kVGFnKTtcbiAgICB9XG5cbiAgICBpZiAodm0uJG9wdGlvbnMuZWwpIHtcbiAgICAgIHZtLiRtb3VudCh2bS4kb3B0aW9ucy5lbCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBpbml0SW50ZXJuYWxDb21wb25lbnQgKHZtLCBvcHRpb25zKSB7XG4gIHZhciBvcHRzID0gdm0uJG9wdGlvbnMgPSBPYmplY3QuY3JlYXRlKHZtLmNvbnN0cnVjdG9yLm9wdGlvbnMpO1xuICAvLyBkb2luZyB0aGlzIGJlY2F1c2UgaXQncyBmYXN0ZXIgdGhhbiBkeW5hbWljIGVudW1lcmF0aW9uLlxuICB2YXIgcGFyZW50Vm5vZGUgPSBvcHRpb25zLl9wYXJlbnRWbm9kZTtcbiAgb3B0cy5wYXJlbnQgPSBvcHRpb25zLnBhcmVudDtcbiAgb3B0cy5fcGFyZW50Vm5vZGUgPSBwYXJlbnRWbm9kZTtcblxuICB2YXIgdm5vZGVDb21wb25lbnRPcHRpb25zID0gcGFyZW50Vm5vZGUuY29tcG9uZW50T3B0aW9ucztcbiAgb3B0cy5wcm9wc0RhdGEgPSB2bm9kZUNvbXBvbmVudE9wdGlvbnMucHJvcHNEYXRhO1xuICBvcHRzLl9wYXJlbnRMaXN0ZW5lcnMgPSB2bm9kZUNvbXBvbmVudE9wdGlvbnMubGlzdGVuZXJzO1xuICBvcHRzLl9yZW5kZXJDaGlsZHJlbiA9IHZub2RlQ29tcG9uZW50T3B0aW9ucy5jaGlsZHJlbjtcbiAgb3B0cy5fY29tcG9uZW50VGFnID0gdm5vZGVDb21wb25lbnRPcHRpb25zLnRhZztcblxuICBpZiAob3B0aW9ucy5yZW5kZXIpIHtcbiAgICBvcHRzLnJlbmRlciA9IG9wdGlvbnMucmVuZGVyO1xuICAgIG9wdHMuc3RhdGljUmVuZGVyRm5zID0gb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnM7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUNvbnN0cnVjdG9yT3B0aW9ucyAoQ3Rvcikge1xuICB2YXIgb3B0aW9ucyA9IEN0b3Iub3B0aW9ucztcbiAgaWYgKEN0b3Iuc3VwZXIpIHtcbiAgICB2YXIgc3VwZXJPcHRpb25zID0gcmVzb2x2ZUNvbnN0cnVjdG9yT3B0aW9ucyhDdG9yLnN1cGVyKTtcbiAgICB2YXIgY2FjaGVkU3VwZXJPcHRpb25zID0gQ3Rvci5zdXBlck9wdGlvbnM7XG4gICAgaWYgKHN1cGVyT3B0aW9ucyAhPT0gY2FjaGVkU3VwZXJPcHRpb25zKSB7XG4gICAgICAvLyBzdXBlciBvcHRpb24gY2hhbmdlZCxcbiAgICAgIC8vIG5lZWQgdG8gcmVzb2x2ZSBuZXcgb3B0aW9ucy5cbiAgICAgIEN0b3Iuc3VwZXJPcHRpb25zID0gc3VwZXJPcHRpb25zO1xuICAgICAgLy8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBsYXRlLW1vZGlmaWVkL2F0dGFjaGVkIG9wdGlvbnMgKCM0OTc2KVxuICAgICAgdmFyIG1vZGlmaWVkT3B0aW9ucyA9IHJlc29sdmVNb2RpZmllZE9wdGlvbnMoQ3Rvcik7XG4gICAgICAvLyB1cGRhdGUgYmFzZSBleHRlbmQgb3B0aW9uc1xuICAgICAgaWYgKG1vZGlmaWVkT3B0aW9ucykge1xuICAgICAgICBleHRlbmQoQ3Rvci5leHRlbmRPcHRpb25zLCBtb2RpZmllZE9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgb3B0aW9ucyA9IEN0b3Iub3B0aW9ucyA9IG1lcmdlT3B0aW9ucyhzdXBlck9wdGlvbnMsIEN0b3IuZXh0ZW5kT3B0aW9ucyk7XG4gICAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICAgIG9wdGlvbnMuY29tcG9uZW50c1tvcHRpb25zLm5hbWVdID0gQ3RvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVkT3B0aW9ucyAoQ3Rvcikge1xuICB2YXIgbW9kaWZpZWQ7XG4gIHZhciBsYXRlc3QgPSBDdG9yLm9wdGlvbnM7XG4gIHZhciBzZWFsZWQgPSBDdG9yLnNlYWxlZE9wdGlvbnM7XG4gIGZvciAodmFyIGtleSBpbiBsYXRlc3QpIHtcbiAgICBpZiAobGF0ZXN0W2tleV0gIT09IHNlYWxlZFtrZXldKSB7XG4gICAgICBpZiAoIW1vZGlmaWVkKSB7IG1vZGlmaWVkID0ge307IH1cbiAgICAgIG1vZGlmaWVkW2tleV0gPSBsYXRlc3Rba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1vZGlmaWVkXG59XG5cbmZ1bmN0aW9uIFZ1ZSAob3B0aW9ucykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICEodGhpcyBpbnN0YW5jZW9mIFZ1ZSlcbiAgKSB7XG4gICAgd2FybignVnVlIGlzIGEgY29uc3RydWN0b3IgYW5kIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB0aGUgYG5ld2Aga2V5d29yZCcpO1xuICB9XG4gIHRoaXMuX2luaXQob3B0aW9ucyk7XG59XG5cbmluaXRNaXhpbihWdWUpO1xuc3RhdGVNaXhpbihWdWUpO1xuZXZlbnRzTWl4aW4oVnVlKTtcbmxpZmVjeWNsZU1peGluKFZ1ZSk7XG5yZW5kZXJNaXhpbihWdWUpO1xuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdFVzZSAoVnVlKSB7XG4gIFZ1ZS51c2UgPSBmdW5jdGlvbiAocGx1Z2luKSB7XG4gICAgdmFyIGluc3RhbGxlZFBsdWdpbnMgPSAodGhpcy5faW5zdGFsbGVkUGx1Z2lucyB8fCAodGhpcy5faW5zdGFsbGVkUGx1Z2lucyA9IFtdKSk7XG4gICAgaWYgKGluc3RhbGxlZFBsdWdpbnMuaW5kZXhPZihwbHVnaW4pID4gLTEpIHtcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgLy8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAgdmFyIGFyZ3MgPSB0b0FycmF5KGFyZ3VtZW50cywgMSk7XG4gICAgYXJncy51bnNoaWZ0KHRoaXMpO1xuICAgIGlmICh0eXBlb2YgcGx1Z2luLmluc3RhbGwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBsdWdpbi5pbnN0YWxsLmFwcGx5KHBsdWdpbiwgYXJncyk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcGx1Z2luID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwbHVnaW4uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgfVxuICAgIGluc3RhbGxlZFBsdWdpbnMucHVzaChwbHVnaW4pO1xuICAgIHJldHVybiB0aGlzXG4gIH07XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0TWl4aW4kMSAoVnVlKSB7XG4gIFZ1ZS5taXhpbiA9IGZ1bmN0aW9uIChtaXhpbikge1xuICAgIHRoaXMub3B0aW9ucyA9IG1lcmdlT3B0aW9ucyh0aGlzLm9wdGlvbnMsIG1peGluKTtcbiAgICByZXR1cm4gdGhpc1xuICB9O1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdEV4dGVuZCAoVnVlKSB7XG4gIC8qKlxuICAgKiBFYWNoIGluc3RhbmNlIGNvbnN0cnVjdG9yLCBpbmNsdWRpbmcgVnVlLCBoYXMgYSB1bmlxdWVcbiAgICogY2lkLiBUaGlzIGVuYWJsZXMgdXMgdG8gY3JlYXRlIHdyYXBwZWQgXCJjaGlsZFxuICAgKiBjb25zdHJ1Y3RvcnNcIiBmb3IgcHJvdG90eXBhbCBpbmhlcml0YW5jZSBhbmQgY2FjaGUgdGhlbS5cbiAgICovXG4gIFZ1ZS5jaWQgPSAwO1xuICB2YXIgY2lkID0gMTtcblxuICAvKipcbiAgICogQ2xhc3MgaW5oZXJpdGFuY2VcbiAgICovXG4gIFZ1ZS5leHRlbmQgPSBmdW5jdGlvbiAoZXh0ZW5kT3B0aW9ucykge1xuICAgIGV4dGVuZE9wdGlvbnMgPSBleHRlbmRPcHRpb25zIHx8IHt9O1xuICAgIHZhciBTdXBlciA9IHRoaXM7XG4gICAgdmFyIFN1cGVySWQgPSBTdXBlci5jaWQ7XG4gICAgdmFyIGNhY2hlZEN0b3JzID0gZXh0ZW5kT3B0aW9ucy5fQ3RvciB8fCAoZXh0ZW5kT3B0aW9ucy5fQ3RvciA9IHt9KTtcbiAgICBpZiAoY2FjaGVkQ3RvcnNbU3VwZXJJZF0pIHtcbiAgICAgIHJldHVybiBjYWNoZWRDdG9yc1tTdXBlcklkXVxuICAgIH1cblxuICAgIHZhciBuYW1lID0gZXh0ZW5kT3B0aW9ucy5uYW1lIHx8IFN1cGVyLm9wdGlvbnMubmFtZTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBuYW1lKSB7XG4gICAgICB2YWxpZGF0ZUNvbXBvbmVudE5hbWUobmFtZSk7XG4gICAgfVxuXG4gICAgdmFyIFN1YiA9IGZ1bmN0aW9uIFZ1ZUNvbXBvbmVudCAob3B0aW9ucykge1xuICAgICAgdGhpcy5faW5pdChvcHRpb25zKTtcbiAgICB9O1xuICAgIFN1Yi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFN1cGVyLnByb3RvdHlwZSk7XG4gICAgU3ViLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFN1YjtcbiAgICBTdWIuY2lkID0gY2lkKys7XG4gICAgU3ViLm9wdGlvbnMgPSBtZXJnZU9wdGlvbnMoXG4gICAgICBTdXBlci5vcHRpb25zLFxuICAgICAgZXh0ZW5kT3B0aW9uc1xuICAgICk7XG4gICAgU3ViWydzdXBlciddID0gU3VwZXI7XG5cbiAgICAvLyBGb3IgcHJvcHMgYW5kIGNvbXB1dGVkIHByb3BlcnRpZXMsIHdlIGRlZmluZSB0aGUgcHJveHkgZ2V0dGVycyBvblxuICAgIC8vIHRoZSBWdWUgaW5zdGFuY2VzIGF0IGV4dGVuc2lvbiB0aW1lLCBvbiB0aGUgZXh0ZW5kZWQgcHJvdG90eXBlLiBUaGlzXG4gICAgLy8gYXZvaWRzIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBjYWxscyBmb3IgZWFjaCBpbnN0YW5jZSBjcmVhdGVkLlxuICAgIGlmIChTdWIub3B0aW9ucy5wcm9wcykge1xuICAgICAgaW5pdFByb3BzJDEoU3ViKTtcbiAgICB9XG4gICAgaWYgKFN1Yi5vcHRpb25zLmNvbXB1dGVkKSB7XG4gICAgICBpbml0Q29tcHV0ZWQkMShTdWIpO1xuICAgIH1cblxuICAgIC8vIGFsbG93IGZ1cnRoZXIgZXh0ZW5zaW9uL21peGluL3BsdWdpbiB1c2FnZVxuICAgIFN1Yi5leHRlbmQgPSBTdXBlci5leHRlbmQ7XG4gICAgU3ViLm1peGluID0gU3VwZXIubWl4aW47XG4gICAgU3ViLnVzZSA9IFN1cGVyLnVzZTtcblxuICAgIC8vIGNyZWF0ZSBhc3NldCByZWdpc3RlcnMsIHNvIGV4dGVuZGVkIGNsYXNzZXNcbiAgICAvLyBjYW4gaGF2ZSB0aGVpciBwcml2YXRlIGFzc2V0cyB0b28uXG4gICAgQVNTRVRfVFlQRVMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgU3ViW3R5cGVdID0gU3VwZXJbdHlwZV07XG4gICAgfSk7XG4gICAgLy8gZW5hYmxlIHJlY3Vyc2l2ZSBzZWxmLWxvb2t1cFxuICAgIGlmIChuYW1lKSB7XG4gICAgICBTdWIub3B0aW9ucy5jb21wb25lbnRzW25hbWVdID0gU3ViO1xuICAgIH1cblxuICAgIC8vIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIHN1cGVyIG9wdGlvbnMgYXQgZXh0ZW5zaW9uIHRpbWUuXG4gICAgLy8gbGF0ZXIgYXQgaW5zdGFudGlhdGlvbiB3ZSBjYW4gY2hlY2sgaWYgU3VwZXIncyBvcHRpb25zIGhhdmVcbiAgICAvLyBiZWVuIHVwZGF0ZWQuXG4gICAgU3ViLnN1cGVyT3B0aW9ucyA9IFN1cGVyLm9wdGlvbnM7XG4gICAgU3ViLmV4dGVuZE9wdGlvbnMgPSBleHRlbmRPcHRpb25zO1xuICAgIFN1Yi5zZWFsZWRPcHRpb25zID0gZXh0ZW5kKHt9LCBTdWIub3B0aW9ucyk7XG5cbiAgICAvLyBjYWNoZSBjb25zdHJ1Y3RvclxuICAgIGNhY2hlZEN0b3JzW1N1cGVySWRdID0gU3ViO1xuICAgIHJldHVybiBTdWJcbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5pdFByb3BzJDEgKENvbXApIHtcbiAgdmFyIHByb3BzID0gQ29tcC5vcHRpb25zLnByb3BzO1xuICBmb3IgKHZhciBrZXkgaW4gcHJvcHMpIHtcbiAgICBwcm94eShDb21wLnByb3RvdHlwZSwgXCJfcHJvcHNcIiwga2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0Q29tcHV0ZWQkMSAoQ29tcCkge1xuICB2YXIgY29tcHV0ZWQgPSBDb21wLm9wdGlvbnMuY29tcHV0ZWQ7XG4gIGZvciAodmFyIGtleSBpbiBjb21wdXRlZCkge1xuICAgIGRlZmluZUNvbXB1dGVkKENvbXAucHJvdG90eXBlLCBrZXksIGNvbXB1dGVkW2tleV0pO1xuICB9XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0QXNzZXRSZWdpc3RlcnMgKFZ1ZSkge1xuICAvKipcbiAgICogQ3JlYXRlIGFzc2V0IHJlZ2lzdHJhdGlvbiBtZXRob2RzLlxuICAgKi9cbiAgQVNTRVRfVFlQRVMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICAgIFZ1ZVt0eXBlXSA9IGZ1bmN0aW9uIChcbiAgICAgIGlkLFxuICAgICAgZGVmaW5pdGlvblxuICAgICkge1xuICAgICAgaWYgKCFkZWZpbml0aW9uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNbdHlwZSArICdzJ11baWRdXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZSA9PT0gJ2NvbXBvbmVudCcpIHtcbiAgICAgICAgICB2YWxpZGF0ZUNvbXBvbmVudE5hbWUoaWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSAnY29tcG9uZW50JyAmJiBpc1BsYWluT2JqZWN0KGRlZmluaXRpb24pKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi5uYW1lID0gZGVmaW5pdGlvbi5uYW1lIHx8IGlkO1xuICAgICAgICAgIGRlZmluaXRpb24gPSB0aGlzLm9wdGlvbnMuX2Jhc2UuZXh0ZW5kKGRlZmluaXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSAnZGlyZWN0aXZlJyAmJiB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGRlZmluaXRpb24gPSB7IGJpbmQ6IGRlZmluaXRpb24sIHVwZGF0ZTogZGVmaW5pdGlvbiB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9uc1t0eXBlICsgJ3MnXVtpZF0gPSBkZWZpbml0aW9uO1xuICAgICAgICByZXR1cm4gZGVmaW5pdGlvblxuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuXG4vKiAgKi9cblxuXG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWUgKG9wdHMpIHtcbiAgcmV0dXJuIG9wdHMgJiYgKG9wdHMuQ3Rvci5vcHRpb25zLm5hbWUgfHwgb3B0cy50YWcpXG59XG5cbmZ1bmN0aW9uIG1hdGNoZXMgKHBhdHRlcm4sIG5hbWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocGF0dGVybikpIHtcbiAgICByZXR1cm4gcGF0dGVybi5pbmRleE9mKG5hbWUpID4gLTFcbiAgfSBlbHNlIGlmICh0eXBlb2YgcGF0dGVybiA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGF0dGVybi5zcGxpdCgnLCcpLmluZGV4T2YobmFtZSkgPiAtMVxuICB9IGVsc2UgaWYgKGlzUmVnRXhwKHBhdHRlcm4pKSB7XG4gICAgcmV0dXJuIHBhdHRlcm4udGVzdChuYW1lKVxuICB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBwcnVuZUNhY2hlIChrZWVwQWxpdmVJbnN0YW5jZSwgZmlsdGVyKSB7XG4gIHZhciBjYWNoZSA9IGtlZXBBbGl2ZUluc3RhbmNlLmNhY2hlO1xuICB2YXIga2V5cyA9IGtlZXBBbGl2ZUluc3RhbmNlLmtleXM7XG4gIHZhciBfdm5vZGUgPSBrZWVwQWxpdmVJbnN0YW5jZS5fdm5vZGU7XG4gIGZvciAodmFyIGtleSBpbiBjYWNoZSkge1xuICAgIHZhciBjYWNoZWROb2RlID0gY2FjaGVba2V5XTtcbiAgICBpZiAoY2FjaGVkTm9kZSkge1xuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKGNhY2hlZE5vZGUuY29tcG9uZW50T3B0aW9ucyk7XG4gICAgICBpZiAobmFtZSAmJiAhZmlsdGVyKG5hbWUpKSB7XG4gICAgICAgIHBydW5lQ2FjaGVFbnRyeShjYWNoZSwga2V5LCBrZXlzLCBfdm5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcnVuZUNhY2hlRW50cnkgKFxuICBjYWNoZSxcbiAga2V5LFxuICBrZXlzLFxuICBjdXJyZW50XG4pIHtcbiAgdmFyIGNhY2hlZCQkMSA9IGNhY2hlW2tleV07XG4gIGlmIChjYWNoZWQkJDEgJiYgKCFjdXJyZW50IHx8IGNhY2hlZCQkMS50YWcgIT09IGN1cnJlbnQudGFnKSkge1xuICAgIGNhY2hlZCQkMS5jb21wb25lbnRJbnN0YW5jZS4kZGVzdHJveSgpO1xuICB9XG4gIGNhY2hlW2tleV0gPSBudWxsO1xuICByZW1vdmUoa2V5cywga2V5KTtcbn1cblxudmFyIHBhdHRlcm5UeXBlcyA9IFtTdHJpbmcsIFJlZ0V4cCwgQXJyYXldO1xuXG52YXIgS2VlcEFsaXZlID0ge1xuICBuYW1lOiAna2VlcC1hbGl2ZScsXG4gIGFic3RyYWN0OiB0cnVlLFxuXG4gIHByb3BzOiB7XG4gICAgaW5jbHVkZTogcGF0dGVyblR5cGVzLFxuICAgIGV4Y2x1ZGU6IHBhdHRlcm5UeXBlcyxcbiAgICBtYXg6IFtTdHJpbmcsIE51bWJlcl1cbiAgfSxcblxuICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkICgpIHtcbiAgICB0aGlzLmNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLmtleXMgPSBbXTtcbiAgfSxcblxuICBkZXN0cm95ZWQ6IGZ1bmN0aW9uIGRlc3Ryb3llZCAoKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHRoaXMuY2FjaGUpIHtcbiAgICAgIHBydW5lQ2FjaGVFbnRyeSh0aGlzLmNhY2hlLCBrZXksIHRoaXMua2V5cyk7XG4gICAgfVxuICB9LFxuXG4gIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQgKCkge1xuICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgdGhpcy4kd2F0Y2goJ2luY2x1ZGUnLCBmdW5jdGlvbiAodmFsKSB7XG4gICAgICBwcnVuZUNhY2hlKHRoaXMkMSwgZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIG1hdGNoZXModmFsLCBuYW1lKTsgfSk7XG4gICAgfSk7XG4gICAgdGhpcy4kd2F0Y2goJ2V4Y2x1ZGUnLCBmdW5jdGlvbiAodmFsKSB7XG4gICAgICBwcnVuZUNhY2hlKHRoaXMkMSwgZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuICFtYXRjaGVzKHZhbCwgbmFtZSk7IH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyICgpIHtcbiAgICB2YXIgc2xvdCA9IHRoaXMuJHNsb3RzLmRlZmF1bHQ7XG4gICAgdmFyIHZub2RlID0gZ2V0Rmlyc3RDb21wb25lbnRDaGlsZChzbG90KTtcbiAgICB2YXIgY29tcG9uZW50T3B0aW9ucyA9IHZub2RlICYmIHZub2RlLmNvbXBvbmVudE9wdGlvbnM7XG4gICAgaWYgKGNvbXBvbmVudE9wdGlvbnMpIHtcbiAgICAgIC8vIGNoZWNrIHBhdHRlcm5cbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZShjb21wb25lbnRPcHRpb25zKTtcbiAgICAgIHZhciByZWYgPSB0aGlzO1xuICAgICAgdmFyIGluY2x1ZGUgPSByZWYuaW5jbHVkZTtcbiAgICAgIHZhciBleGNsdWRlID0gcmVmLmV4Y2x1ZGU7XG4gICAgICBpZiAoXG4gICAgICAgIC8vIG5vdCBpbmNsdWRlZFxuICAgICAgICAoaW5jbHVkZSAmJiAoIW5hbWUgfHwgIW1hdGNoZXMoaW5jbHVkZSwgbmFtZSkpKSB8fFxuICAgICAgICAvLyBleGNsdWRlZFxuICAgICAgICAoZXhjbHVkZSAmJiBuYW1lICYmIG1hdGNoZXMoZXhjbHVkZSwgbmFtZSkpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHZub2RlXG4gICAgICB9XG5cbiAgICAgIHZhciByZWYkMSA9IHRoaXM7XG4gICAgICB2YXIgY2FjaGUgPSByZWYkMS5jYWNoZTtcbiAgICAgIHZhciBrZXlzID0gcmVmJDEua2V5cztcbiAgICAgIHZhciBrZXkgPSB2bm9kZS5rZXkgPT0gbnVsbFxuICAgICAgICAvLyBzYW1lIGNvbnN0cnVjdG9yIG1heSBnZXQgcmVnaXN0ZXJlZCBhcyBkaWZmZXJlbnQgbG9jYWwgY29tcG9uZW50c1xuICAgICAgICAvLyBzbyBjaWQgYWxvbmUgaXMgbm90IGVub3VnaCAoIzMyNjkpXG4gICAgICAgID8gY29tcG9uZW50T3B0aW9ucy5DdG9yLmNpZCArIChjb21wb25lbnRPcHRpb25zLnRhZyA/IChcIjo6XCIgKyAoY29tcG9uZW50T3B0aW9ucy50YWcpKSA6ICcnKVxuICAgICAgICA6IHZub2RlLmtleTtcbiAgICAgIGlmIChjYWNoZVtrZXldKSB7XG4gICAgICAgIHZub2RlLmNvbXBvbmVudEluc3RhbmNlID0gY2FjaGVba2V5XS5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgLy8gbWFrZSBjdXJyZW50IGtleSBmcmVzaGVzdFxuICAgICAgICByZW1vdmUoa2V5cywga2V5KTtcbiAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYWNoZVtrZXldID0gdm5vZGU7XG4gICAgICAgIGtleXMucHVzaChrZXkpO1xuICAgICAgICAvLyBwcnVuZSBvbGRlc3QgZW50cnlcbiAgICAgICAgaWYgKHRoaXMubWF4ICYmIGtleXMubGVuZ3RoID4gcGFyc2VJbnQodGhpcy5tYXgpKSB7XG4gICAgICAgICAgcHJ1bmVDYWNoZUVudHJ5KGNhY2hlLCBrZXlzWzBdLCBrZXlzLCB0aGlzLl92bm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdm5vZGUuZGF0YS5rZWVwQWxpdmUgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdm5vZGUgfHwgKHNsb3QgJiYgc2xvdFswXSlcbiAgfVxufTtcblxudmFyIGJ1aWx0SW5Db21wb25lbnRzID0ge1xuICBLZWVwQWxpdmU6IEtlZXBBbGl2ZVxufTtcblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRHbG9iYWxBUEkgKFZ1ZSkge1xuICAvLyBjb25maWdcbiAgdmFyIGNvbmZpZ0RlZiA9IHt9O1xuICBjb25maWdEZWYuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnOyB9O1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbmZpZ0RlZi5zZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3YXJuKFxuICAgICAgICAnRG8gbm90IHJlcGxhY2UgdGhlIFZ1ZS5jb25maWcgb2JqZWN0LCBzZXQgaW5kaXZpZHVhbCBmaWVsZHMgaW5zdGVhZC4nXG4gICAgICApO1xuICAgIH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZSwgJ2NvbmZpZycsIGNvbmZpZ0RlZik7XG5cbiAgLy8gZXhwb3NlZCB1dGlsIG1ldGhvZHMuXG4gIC8vIE5PVEU6IHRoZXNlIGFyZSBub3QgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJIC0gYXZvaWQgcmVseWluZyBvblxuICAvLyB0aGVtIHVubGVzcyB5b3UgYXJlIGF3YXJlIG9mIHRoZSByaXNrLlxuICBWdWUudXRpbCA9IHtcbiAgICB3YXJuOiB3YXJuLFxuICAgIGV4dGVuZDogZXh0ZW5kLFxuICAgIG1lcmdlT3B0aW9uczogbWVyZ2VPcHRpb25zLFxuICAgIGRlZmluZVJlYWN0aXZlOiBkZWZpbmVSZWFjdGl2ZSQkMVxuICB9O1xuXG4gIFZ1ZS5zZXQgPSBzZXQ7XG4gIFZ1ZS5kZWxldGUgPSBkZWw7XG4gIFZ1ZS5uZXh0VGljayA9IG5leHRUaWNrO1xuXG4gIC8vIDIuNiBleHBsaWNpdCBvYnNlcnZhYmxlIEFQSVxuICBWdWUub2JzZXJ2YWJsZSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICBvYnNlcnZlKG9iaik7XG4gICAgcmV0dXJuIG9ialxuICB9O1xuXG4gIFZ1ZS5vcHRpb25zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgQVNTRVRfVFlQRVMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICAgIFZ1ZS5vcHRpb25zW3R5cGUgKyAncyddID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfSk7XG5cbiAgLy8gdGhpcyBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBcImJhc2VcIiBjb25zdHJ1Y3RvciB0byBleHRlbmQgYWxsIHBsYWluLW9iamVjdFxuICAvLyBjb21wb25lbnRzIHdpdGggaW4gV2VleCdzIG11bHRpLWluc3RhbmNlIHNjZW5hcmlvcy5cbiAgVnVlLm9wdGlvbnMuX2Jhc2UgPSBWdWU7XG5cbiAgZXh0ZW5kKFZ1ZS5vcHRpb25zLmNvbXBvbmVudHMsIGJ1aWx0SW5Db21wb25lbnRzKTtcblxuICBpbml0VXNlKFZ1ZSk7XG4gIGluaXRNaXhpbiQxKFZ1ZSk7XG4gIGluaXRFeHRlbmQoVnVlKTtcbiAgaW5pdEFzc2V0UmVnaXN0ZXJzKFZ1ZSk7XG59XG5cbmluaXRHbG9iYWxBUEkoVnVlKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZS5wcm90b3R5cGUsICckaXNTZXJ2ZXInLCB7XG4gIGdldDogaXNTZXJ2ZXJSZW5kZXJpbmdcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoVnVlLnByb3RvdHlwZSwgJyRzc3JDb250ZXh0Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCAoKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy4kdm5vZGUgJiYgdGhpcy4kdm5vZGUuc3NyQ29udGV4dFxuICB9XG59KTtcblxuLy8gZXhwb3NlIEZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0IGZvciBzc3IgcnVudGltZSBoZWxwZXIgaW5zdGFsbGF0aW9uXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoVnVlLCAnRnVuY3Rpb25hbFJlbmRlckNvbnRleHQnLCB7XG4gIHZhbHVlOiBGdW5jdGlvbmFsUmVuZGVyQ29udGV4dFxufSk7XG5cblZ1ZS52ZXJzaW9uID0gJzIuNi4xMCc7XG5cbi8qICAqL1xuXG4vLyB0aGVzZSBhcmUgcmVzZXJ2ZWQgZm9yIHdlYiBiZWNhdXNlIHRoZXkgYXJlIGRpcmVjdGx5IGNvbXBpbGVkIGF3YXlcbi8vIGR1cmluZyB0ZW1wbGF0ZSBjb21waWxhdGlvblxudmFyIGlzUmVzZXJ2ZWRBdHRyID0gbWFrZU1hcCgnc3R5bGUsY2xhc3MnKTtcblxuLy8gYXR0cmlidXRlcyB0aGF0IHNob3VsZCBiZSB1c2luZyBwcm9wcyBmb3IgYmluZGluZ1xudmFyIGFjY2VwdFZhbHVlID0gbWFrZU1hcCgnaW5wdXQsdGV4dGFyZWEsb3B0aW9uLHNlbGVjdCxwcm9ncmVzcycpO1xudmFyIG11c3RVc2VQcm9wID0gZnVuY3Rpb24gKHRhZywgdHlwZSwgYXR0cikge1xuICByZXR1cm4gKFxuICAgIChhdHRyID09PSAndmFsdWUnICYmIGFjY2VwdFZhbHVlKHRhZykpICYmIHR5cGUgIT09ICdidXR0b24nIHx8XG4gICAgKGF0dHIgPT09ICdzZWxlY3RlZCcgJiYgdGFnID09PSAnb3B0aW9uJykgfHxcbiAgICAoYXR0ciA9PT0gJ2NoZWNrZWQnICYmIHRhZyA9PT0gJ2lucHV0JykgfHxcbiAgICAoYXR0ciA9PT0gJ211dGVkJyAmJiB0YWcgPT09ICd2aWRlbycpXG4gIClcbn07XG5cbnZhciBpc0VudW1lcmF0ZWRBdHRyID0gbWFrZU1hcCgnY29udGVudGVkaXRhYmxlLGRyYWdnYWJsZSxzcGVsbGNoZWNrJyk7XG5cbnZhciBpc1ZhbGlkQ29udGVudEVkaXRhYmxlVmFsdWUgPSBtYWtlTWFwKCdldmVudHMsY2FyZXQsdHlwaW5nLHBsYWludGV4dC1vbmx5Jyk7XG5cbnZhciBjb252ZXJ0RW51bWVyYXRlZFZhbHVlID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGlzRmFsc3lBdHRyVmFsdWUodmFsdWUpIHx8IHZhbHVlID09PSAnZmFsc2UnXG4gICAgPyAnZmFsc2UnXG4gICAgLy8gYWxsb3cgYXJiaXRyYXJ5IHN0cmluZyB2YWx1ZSBmb3IgY29udGVudGVkaXRhYmxlXG4gICAgOiBrZXkgPT09ICdjb250ZW50ZWRpdGFibGUnICYmIGlzVmFsaWRDb250ZW50RWRpdGFibGVWYWx1ZSh2YWx1ZSlcbiAgICAgID8gdmFsdWVcbiAgICAgIDogJ3RydWUnXG59O1xuXG52YXIgaXNCb29sZWFuQXR0ciA9IG1ha2VNYXAoXG4gICdhbGxvd2Z1bGxzY3JlZW4sYXN5bmMsYXV0b2ZvY3VzLGF1dG9wbGF5LGNoZWNrZWQsY29tcGFjdCxjb250cm9scyxkZWNsYXJlLCcgK1xuICAnZGVmYXVsdCxkZWZhdWx0Y2hlY2tlZCxkZWZhdWx0bXV0ZWQsZGVmYXVsdHNlbGVjdGVkLGRlZmVyLGRpc2FibGVkLCcgK1xuICAnZW5hYmxlZCxmb3Jtbm92YWxpZGF0ZSxoaWRkZW4saW5kZXRlcm1pbmF0ZSxpbmVydCxpc21hcCxpdGVtc2NvcGUsbG9vcCxtdWx0aXBsZSwnICtcbiAgJ211dGVkLG5vaHJlZixub3Jlc2l6ZSxub3NoYWRlLG5vdmFsaWRhdGUsbm93cmFwLG9wZW4scGF1c2VvbmV4aXQscmVhZG9ubHksJyArXG4gICdyZXF1aXJlZCxyZXZlcnNlZCxzY29wZWQsc2VhbWxlc3Msc2VsZWN0ZWQsc29ydGFibGUsdHJhbnNsYXRlLCcgK1xuICAndHJ1ZXNwZWVkLHR5cGVtdXN0bWF0Y2gsdmlzaWJsZSdcbik7XG5cbnZhciB4bGlua05TID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnO1xuXG52YXIgaXNYbGluayA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBuYW1lLmNoYXJBdCg1KSA9PT0gJzonICYmIG5hbWUuc2xpY2UoMCwgNSkgPT09ICd4bGluaydcbn07XG5cbnZhciBnZXRYbGlua1Byb3AgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gaXNYbGluayhuYW1lKSA/IG5hbWUuc2xpY2UoNiwgbmFtZS5sZW5ndGgpIDogJydcbn07XG5cbnZhciBpc0ZhbHN5QXR0clZhbHVlID0gZnVuY3Rpb24gKHZhbCkge1xuICByZXR1cm4gdmFsID09IG51bGwgfHwgdmFsID09PSBmYWxzZVxufTtcblxuLyogICovXG5cbmZ1bmN0aW9uIGdlbkNsYXNzRm9yVm5vZGUgKHZub2RlKSB7XG4gIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgdmFyIHBhcmVudE5vZGUgPSB2bm9kZTtcbiAgdmFyIGNoaWxkTm9kZSA9IHZub2RlO1xuICB3aGlsZSAoaXNEZWYoY2hpbGROb2RlLmNvbXBvbmVudEluc3RhbmNlKSkge1xuICAgIGNoaWxkTm9kZSA9IGNoaWxkTm9kZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7XG4gICAgaWYgKGNoaWxkTm9kZSAmJiBjaGlsZE5vZGUuZGF0YSkge1xuICAgICAgZGF0YSA9IG1lcmdlQ2xhc3NEYXRhKGNoaWxkTm9kZS5kYXRhLCBkYXRhKTtcbiAgICB9XG4gIH1cbiAgd2hpbGUgKGlzRGVmKHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLnBhcmVudCkpIHtcbiAgICBpZiAocGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBtZXJnZUNsYXNzRGF0YShkYXRhLCBwYXJlbnROb2RlLmRhdGEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVuZGVyQ2xhc3MoZGF0YS5zdGF0aWNDbGFzcywgZGF0YS5jbGFzcylcbn1cblxuZnVuY3Rpb24gbWVyZ2VDbGFzc0RhdGEgKGNoaWxkLCBwYXJlbnQpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGF0aWNDbGFzczogY29uY2F0KGNoaWxkLnN0YXRpY0NsYXNzLCBwYXJlbnQuc3RhdGljQ2xhc3MpLFxuICAgIGNsYXNzOiBpc0RlZihjaGlsZC5jbGFzcylcbiAgICAgID8gW2NoaWxkLmNsYXNzLCBwYXJlbnQuY2xhc3NdXG4gICAgICA6IHBhcmVudC5jbGFzc1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlckNsYXNzIChcbiAgc3RhdGljQ2xhc3MsXG4gIGR5bmFtaWNDbGFzc1xuKSB7XG4gIGlmIChpc0RlZihzdGF0aWNDbGFzcykgfHwgaXNEZWYoZHluYW1pY0NsYXNzKSkge1xuICAgIHJldHVybiBjb25jYXQoc3RhdGljQ2xhc3MsIHN0cmluZ2lmeUNsYXNzKGR5bmFtaWNDbGFzcykpXG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuICcnXG59XG5cbmZ1bmN0aW9uIGNvbmNhdCAoYSwgYikge1xuICByZXR1cm4gYSA/IGIgPyAoYSArICcgJyArIGIpIDogYSA6IChiIHx8ICcnKVxufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlDbGFzcyAodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeUFycmF5KHZhbHVlKVxuICB9XG4gIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc3RyaW5naWZ5T2JqZWN0KHZhbHVlKVxuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuICcnXG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUFycmF5ICh2YWx1ZSkge1xuICB2YXIgcmVzID0gJyc7XG4gIHZhciBzdHJpbmdpZmllZDtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBpZiAoaXNEZWYoc3RyaW5naWZpZWQgPSBzdHJpbmdpZnlDbGFzcyh2YWx1ZVtpXSkpICYmIHN0cmluZ2lmaWVkICE9PSAnJykge1xuICAgICAgaWYgKHJlcykgeyByZXMgKz0gJyAnOyB9XG4gICAgICByZXMgKz0gc3RyaW5naWZpZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5T2JqZWN0ICh2YWx1ZSkge1xuICB2YXIgcmVzID0gJyc7XG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmICh2YWx1ZVtrZXldKSB7XG4gICAgICBpZiAocmVzKSB7IHJlcyArPSAnICc7IH1cbiAgICAgIHJlcyArPSBrZXk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogICovXG5cbnZhciBuYW1lc3BhY2VNYXAgPSB7XG4gIHN2ZzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcbiAgbWF0aDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnXG59O1xuXG52YXIgaXNIVE1MVGFnID0gbWFrZU1hcChcbiAgJ2h0bWwsYm9keSxiYXNlLGhlYWQsbGluayxtZXRhLHN0eWxlLHRpdGxlLCcgK1xuICAnYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGZvb3RlcixoZWFkZXIsaDEsaDIsaDMsaDQsaDUsaDYsaGdyb3VwLG5hdixzZWN0aW9uLCcgK1xuICAnZGl2LGRkLGRsLGR0LGZpZ2NhcHRpb24sZmlndXJlLHBpY3R1cmUsaHIsaW1nLGxpLG1haW4sb2wscCxwcmUsdWwsJyArXG4gICdhLGIsYWJicixiZGksYmRvLGJyLGNpdGUsY29kZSxkYXRhLGRmbixlbSxpLGtiZCxtYXJrLHEscnAscnQscnRjLHJ1YnksJyArXG4gICdzLHNhbXAsc21hbGwsc3BhbixzdHJvbmcsc3ViLHN1cCx0aW1lLHUsdmFyLHdicixhcmVhLGF1ZGlvLG1hcCx0cmFjayx2aWRlbywnICtcbiAgJ2VtYmVkLG9iamVjdCxwYXJhbSxzb3VyY2UsY2FudmFzLHNjcmlwdCxub3NjcmlwdCxkZWwsaW5zLCcgK1xuICAnY2FwdGlvbixjb2wsY29sZ3JvdXAsdGFibGUsdGhlYWQsdGJvZHksdGQsdGgsdHIsJyArXG4gICdidXR0b24sZGF0YWxpc3QsZmllbGRzZXQsZm9ybSxpbnB1dCxsYWJlbCxsZWdlbmQsbWV0ZXIsb3B0Z3JvdXAsb3B0aW9uLCcgK1xuICAnb3V0cHV0LHByb2dyZXNzLHNlbGVjdCx0ZXh0YXJlYSwnICtcbiAgJ2RldGFpbHMsZGlhbG9nLG1lbnUsbWVudWl0ZW0sc3VtbWFyeSwnICtcbiAgJ2NvbnRlbnQsZWxlbWVudCxzaGFkb3csdGVtcGxhdGUsYmxvY2txdW90ZSxpZnJhbWUsdGZvb3QnXG4pO1xuXG4vLyB0aGlzIG1hcCBpcyBpbnRlbnRpb25hbGx5IHNlbGVjdGl2ZSwgb25seSBjb3ZlcmluZyBTVkcgZWxlbWVudHMgdGhhdCBtYXlcbi8vIGNvbnRhaW4gY2hpbGQgZWxlbWVudHMuXG52YXIgaXNTVkcgPSBtYWtlTWFwKFxuICAnc3ZnLGFuaW1hdGUsY2lyY2xlLGNsaXBwYXRoLGN1cnNvcixkZWZzLGRlc2MsZWxsaXBzZSxmaWx0ZXIsZm9udC1mYWNlLCcgK1xuICAnZm9yZWlnbk9iamVjdCxnLGdseXBoLGltYWdlLGxpbmUsbWFya2VyLG1hc2ssbWlzc2luZy1nbHlwaCxwYXRoLHBhdHRlcm4sJyArXG4gICdwb2x5Z29uLHBvbHlsaW5lLHJlY3Qsc3dpdGNoLHN5bWJvbCx0ZXh0LHRleHRwYXRoLHRzcGFuLHVzZSx2aWV3JyxcbiAgdHJ1ZVxuKTtcblxudmFyIGlzUmVzZXJ2ZWRUYWcgPSBmdW5jdGlvbiAodGFnKSB7XG4gIHJldHVybiBpc0hUTUxUYWcodGFnKSB8fCBpc1NWRyh0YWcpXG59O1xuXG5mdW5jdGlvbiBnZXRUYWdOYW1lc3BhY2UgKHRhZykge1xuICBpZiAoaXNTVkcodGFnKSkge1xuICAgIHJldHVybiAnc3ZnJ1xuICB9XG4gIC8vIGJhc2ljIHN1cHBvcnQgZm9yIE1hdGhNTFxuICAvLyBub3RlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBvdGhlciBNYXRoTUwgZWxlbWVudHMgYmVpbmcgY29tcG9uZW50IHJvb3RzXG4gIGlmICh0YWcgPT09ICdtYXRoJykge1xuICAgIHJldHVybiAnbWF0aCdcbiAgfVxufVxuXG52YXIgdW5rbm93bkVsZW1lbnRDYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5mdW5jdGlvbiBpc1Vua25vd25FbGVtZW50ICh0YWcpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICghaW5Ccm93c2VyKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZiAoaXNSZXNlcnZlZFRhZyh0YWcpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgdGFnID0gdGFnLnRvTG93ZXJDYXNlKCk7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAodW5rbm93bkVsZW1lbnRDYWNoZVt0YWddICE9IG51bGwpIHtcbiAgICByZXR1cm4gdW5rbm93bkVsZW1lbnRDYWNoZVt0YWddXG4gIH1cbiAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpO1xuICBpZiAodGFnLmluZGV4T2YoJy0nKSA+IC0xKSB7XG4gICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjgyMTAzNjQvMTA3MDI0NFxuICAgIHJldHVybiAodW5rbm93bkVsZW1lbnRDYWNoZVt0YWddID0gKFxuICAgICAgZWwuY29uc3RydWN0b3IgPT09IHdpbmRvdy5IVE1MVW5rbm93bkVsZW1lbnQgfHxcbiAgICAgIGVsLmNvbnN0cnVjdG9yID09PSB3aW5kb3cuSFRNTEVsZW1lbnRcbiAgICApKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiAodW5rbm93bkVsZW1lbnRDYWNoZVt0YWddID0gL0hUTUxVbmtub3duRWxlbWVudC8udGVzdChlbC50b1N0cmluZygpKSlcbiAgfVxufVxuXG52YXIgaXNUZXh0SW5wdXRUeXBlID0gbWFrZU1hcCgndGV4dCxudW1iZXIscGFzc3dvcmQsc2VhcmNoLGVtYWlsLHRlbCx1cmwnKTtcblxuLyogICovXG5cbi8qKlxuICogUXVlcnkgYW4gZWxlbWVudCBzZWxlY3RvciBpZiBpdCdzIG5vdCBhbiBlbGVtZW50IGFscmVhZHkuXG4gKi9cbmZ1bmN0aW9uIHF1ZXJ5IChlbCkge1xuICBpZiAodHlwZW9mIGVsID09PSAnc3RyaW5nJykge1xuICAgIHZhciBzZWxlY3RlZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWwpO1xuICAgIGlmICghc2VsZWN0ZWQpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIGVsZW1lbnQ6ICcgKyBlbFxuICAgICAgKTtcbiAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWRcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZWxcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCQxICh0YWdOYW1lLCB2bm9kZSkge1xuICB2YXIgZWxtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtcbiAgaWYgKHRhZ05hbWUgIT09ICdzZWxlY3QnKSB7XG4gICAgcmV0dXJuIGVsbVxuICB9XG4gIC8vIGZhbHNlIG9yIG51bGwgd2lsbCByZW1vdmUgdGhlIGF0dHJpYnV0ZSBidXQgdW5kZWZpbmVkIHdpbGwgbm90XG4gIGlmICh2bm9kZS5kYXRhICYmIHZub2RlLmRhdGEuYXR0cnMgJiYgdm5vZGUuZGF0YS5hdHRycy5tdWx0aXBsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZWxtLnNldEF0dHJpYnV0ZSgnbXVsdGlwbGUnLCAnbXVsdGlwbGUnKTtcbiAgfVxuICByZXR1cm4gZWxtXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnROUyAobmFtZXNwYWNlLCB0YWdOYW1lKSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlTWFwW25hbWVzcGFjZV0sIHRhZ05hbWUpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlICh0ZXh0KSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDb21tZW50ICh0ZXh0KSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KHRleHQpXG59XG5cbmZ1bmN0aW9uIGluc2VydEJlZm9yZSAocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xuICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShuZXdOb2RlLCByZWZlcmVuY2VOb2RlKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGQgKG5vZGUsIGNoaWxkKSB7XG4gIG5vZGUucmVtb3ZlQ2hpbGQoY2hpbGQpO1xufVxuXG5mdW5jdGlvbiBhcHBlbmRDaGlsZCAobm9kZSwgY2hpbGQpIHtcbiAgbm9kZS5hcHBlbmRDaGlsZChjaGlsZCk7XG59XG5cbmZ1bmN0aW9uIHBhcmVudE5vZGUgKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZVxufVxuXG5mdW5jdGlvbiBuZXh0U2libGluZyAobm9kZSkge1xuICByZXR1cm4gbm9kZS5uZXh0U2libGluZ1xufVxuXG5mdW5jdGlvbiB0YWdOYW1lIChub2RlKSB7XG4gIHJldHVybiBub2RlLnRhZ05hbWVcbn1cblxuZnVuY3Rpb24gc2V0VGV4dENvbnRlbnQgKG5vZGUsIHRleHQpIHtcbiAgbm9kZS50ZXh0Q29udGVudCA9IHRleHQ7XG59XG5cbmZ1bmN0aW9uIHNldFN0eWxlU2NvcGUgKG5vZGUsIHNjb3BlSWQpIHtcbiAgbm9kZS5zZXRBdHRyaWJ1dGUoc2NvcGVJZCwgJycpO1xufVxuXG52YXIgbm9kZU9wcyA9IC8qI19fUFVSRV9fKi9PYmplY3QuZnJlZXplKHtcbiAgY3JlYXRlRWxlbWVudDogY3JlYXRlRWxlbWVudCQxLFxuICBjcmVhdGVFbGVtZW50TlM6IGNyZWF0ZUVsZW1lbnROUyxcbiAgY3JlYXRlVGV4dE5vZGU6IGNyZWF0ZVRleHROb2RlLFxuICBjcmVhdGVDb21tZW50OiBjcmVhdGVDb21tZW50LFxuICBpbnNlcnRCZWZvcmU6IGluc2VydEJlZm9yZSxcbiAgcmVtb3ZlQ2hpbGQ6IHJlbW92ZUNoaWxkLFxuICBhcHBlbmRDaGlsZDogYXBwZW5kQ2hpbGQsXG4gIHBhcmVudE5vZGU6IHBhcmVudE5vZGUsXG4gIG5leHRTaWJsaW5nOiBuZXh0U2libGluZyxcbiAgdGFnTmFtZTogdGFnTmFtZSxcbiAgc2V0VGV4dENvbnRlbnQ6IHNldFRleHRDb250ZW50LFxuICBzZXRTdHlsZVNjb3BlOiBzZXRTdHlsZVNjb3BlXG59KTtcblxuLyogICovXG5cbnZhciByZWYgPSB7XG4gIGNyZWF0ZTogZnVuY3Rpb24gY3JlYXRlIChfLCB2bm9kZSkge1xuICAgIHJlZ2lzdGVyUmVmKHZub2RlKTtcbiAgfSxcbiAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUgKG9sZFZub2RlLCB2bm9kZSkge1xuICAgIGlmIChvbGRWbm9kZS5kYXRhLnJlZiAhPT0gdm5vZGUuZGF0YS5yZWYpIHtcbiAgICAgIHJlZ2lzdGVyUmVmKG9sZFZub2RlLCB0cnVlKTtcbiAgICAgIHJlZ2lzdGVyUmVmKHZub2RlKTtcbiAgICB9XG4gIH0sXG4gIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3kgKHZub2RlKSB7XG4gICAgcmVnaXN0ZXJSZWYodm5vZGUsIHRydWUpO1xuICB9XG59O1xuXG5mdW5jdGlvbiByZWdpc3RlclJlZiAodm5vZGUsIGlzUmVtb3ZhbCkge1xuICB2YXIga2V5ID0gdm5vZGUuZGF0YS5yZWY7XG4gIGlmICghaXNEZWYoa2V5KSkgeyByZXR1cm4gfVxuXG4gIHZhciB2bSA9IHZub2RlLmNvbnRleHQ7XG4gIHZhciByZWYgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSB8fCB2bm9kZS5lbG07XG4gIHZhciByZWZzID0gdm0uJHJlZnM7XG4gIGlmIChpc1JlbW92YWwpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzW2tleV0pKSB7XG4gICAgICByZW1vdmUocmVmc1trZXldLCByZWYpO1xuICAgIH0gZWxzZSBpZiAocmVmc1trZXldID09PSByZWYpIHtcbiAgICAgIHJlZnNba2V5XSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHZub2RlLmRhdGEucmVmSW5Gb3IpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZWZzW2tleV0pKSB7XG4gICAgICAgIHJlZnNba2V5XSA9IFtyZWZdO1xuICAgICAgfSBlbHNlIGlmIChyZWZzW2tleV0uaW5kZXhPZihyZWYpIDwgMCkge1xuICAgICAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICAgICAgcmVmc1trZXldLnB1c2gocmVmKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVmc1trZXldID0gcmVmO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFZpcnR1YWwgRE9NIHBhdGNoaW5nIGFsZ29yaXRobSBiYXNlZCBvbiBTbmFiYmRvbSBieVxuICogU2ltb24gRnJpaXMgVmluZHVtIChAcGFsZGVwaW5kKVxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcGFsZGVwaW5kL3NuYWJiZG9tL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqXG4gKiBtb2RpZmllZCBieSBFdmFuIFlvdSAoQHl5eDk5MDgwMylcbiAqXG4gKiBOb3QgdHlwZS1jaGVja2luZyB0aGlzIGJlY2F1c2UgdGhpcyBmaWxlIGlzIHBlcmYtY3JpdGljYWwgYW5kIHRoZSBjb3N0XG4gKiBvZiBtYWtpbmcgZmxvdyB1bmRlcnN0YW5kIGl0IGlzIG5vdCB3b3J0aCBpdC5cbiAqL1xuXG52YXIgZW1wdHlOb2RlID0gbmV3IFZOb2RlKCcnLCB7fSwgW10pO1xuXG52YXIgaG9va3MgPSBbJ2NyZWF0ZScsICdhY3RpdmF0ZScsICd1cGRhdGUnLCAncmVtb3ZlJywgJ2Rlc3Ryb3knXTtcblxuZnVuY3Rpb24gc2FtZVZub2RlIChhLCBiKSB7XG4gIHJldHVybiAoXG4gICAgYS5rZXkgPT09IGIua2V5ICYmIChcbiAgICAgIChcbiAgICAgICAgYS50YWcgPT09IGIudGFnICYmXG4gICAgICAgIGEuaXNDb21tZW50ID09PSBiLmlzQ29tbWVudCAmJlxuICAgICAgICBpc0RlZihhLmRhdGEpID09PSBpc0RlZihiLmRhdGEpICYmXG4gICAgICAgIHNhbWVJbnB1dFR5cGUoYSwgYilcbiAgICAgICkgfHwgKFxuICAgICAgICBpc1RydWUoYS5pc0FzeW5jUGxhY2Vob2xkZXIpICYmXG4gICAgICAgIGEuYXN5bmNGYWN0b3J5ID09PSBiLmFzeW5jRmFjdG9yeSAmJlxuICAgICAgICBpc1VuZGVmKGIuYXN5bmNGYWN0b3J5LmVycm9yKVxuICAgICAgKVxuICAgIClcbiAgKVxufVxuXG5mdW5jdGlvbiBzYW1lSW5wdXRUeXBlIChhLCBiKSB7XG4gIGlmIChhLnRhZyAhPT0gJ2lucHV0JykgeyByZXR1cm4gdHJ1ZSB9XG4gIHZhciBpO1xuICB2YXIgdHlwZUEgPSBpc0RlZihpID0gYS5kYXRhKSAmJiBpc0RlZihpID0gaS5hdHRycykgJiYgaS50eXBlO1xuICB2YXIgdHlwZUIgPSBpc0RlZihpID0gYi5kYXRhKSAmJiBpc0RlZihpID0gaS5hdHRycykgJiYgaS50eXBlO1xuICByZXR1cm4gdHlwZUEgPT09IHR5cGVCIHx8IGlzVGV4dElucHV0VHlwZSh0eXBlQSkgJiYgaXNUZXh0SW5wdXRUeXBlKHR5cGVCKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVLZXlUb09sZElkeCAoY2hpbGRyZW4sIGJlZ2luSWR4LCBlbmRJZHgpIHtcbiAgdmFyIGksIGtleTtcbiAgdmFyIG1hcCA9IHt9O1xuICBmb3IgKGkgPSBiZWdpbklkeDsgaSA8PSBlbmRJZHg7ICsraSkge1xuICAgIGtleSA9IGNoaWxkcmVuW2ldLmtleTtcbiAgICBpZiAoaXNEZWYoa2V5KSkgeyBtYXBba2V5XSA9IGk7IH1cbiAgfVxuICByZXR1cm4gbWFwXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBhdGNoRnVuY3Rpb24gKGJhY2tlbmQpIHtcbiAgdmFyIGksIGo7XG4gIHZhciBjYnMgPSB7fTtcblxuICB2YXIgbW9kdWxlcyA9IGJhY2tlbmQubW9kdWxlcztcbiAgdmFyIG5vZGVPcHMgPSBiYWNrZW5kLm5vZGVPcHM7XG5cbiAgZm9yIChpID0gMDsgaSA8IGhvb2tzLmxlbmd0aDsgKytpKSB7XG4gICAgY2JzW2hvb2tzW2ldXSA9IFtdO1xuICAgIGZvciAoaiA9IDA7IGogPCBtb2R1bGVzLmxlbmd0aDsgKytqKSB7XG4gICAgICBpZiAoaXNEZWYobW9kdWxlc1tqXVtob29rc1tpXV0pKSB7XG4gICAgICAgIGNic1tob29rc1tpXV0ucHVzaChtb2R1bGVzW2pdW2hvb2tzW2ldXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZW1wdHlOb2RlQXQgKGVsbSkge1xuICAgIHJldHVybiBuZXcgVk5vZGUobm9kZU9wcy50YWdOYW1lKGVsbSkudG9Mb3dlckNhc2UoKSwge30sIFtdLCB1bmRlZmluZWQsIGVsbSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVJtQ2IgKGNoaWxkRWxtLCBsaXN0ZW5lcnMpIHtcbiAgICBmdW5jdGlvbiByZW1vdmUkJDEgKCkge1xuICAgICAgaWYgKC0tcmVtb3ZlJCQxLmxpc3RlbmVycyA9PT0gMCkge1xuICAgICAgICByZW1vdmVOb2RlKGNoaWxkRWxtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVtb3ZlJCQxLmxpc3RlbmVycyA9IGxpc3RlbmVycztcbiAgICByZXR1cm4gcmVtb3ZlJCQxXG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVOb2RlIChlbCkge1xuICAgIHZhciBwYXJlbnQgPSBub2RlT3BzLnBhcmVudE5vZGUoZWwpO1xuICAgIC8vIGVsZW1lbnQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIHJlbW92ZWQgZHVlIHRvIHYtaHRtbCAvIHYtdGV4dFxuICAgIGlmIChpc0RlZihwYXJlbnQpKSB7XG4gICAgICBub2RlT3BzLnJlbW92ZUNoaWxkKHBhcmVudCwgZWwpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzVW5rbm93bkVsZW1lbnQkJDEgKHZub2RlLCBpblZQcmUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgIWluVlByZSAmJlxuICAgICAgIXZub2RlLm5zICYmXG4gICAgICAhKFxuICAgICAgICBjb25maWcuaWdub3JlZEVsZW1lbnRzLmxlbmd0aCAmJlxuICAgICAgICBjb25maWcuaWdub3JlZEVsZW1lbnRzLnNvbWUoZnVuY3Rpb24gKGlnbm9yZSkge1xuICAgICAgICAgIHJldHVybiBpc1JlZ0V4cChpZ25vcmUpXG4gICAgICAgICAgICA/IGlnbm9yZS50ZXN0KHZub2RlLnRhZylcbiAgICAgICAgICAgIDogaWdub3JlID09PSB2bm9kZS50YWdcbiAgICAgICAgfSlcbiAgICAgICkgJiZcbiAgICAgIGNvbmZpZy5pc1Vua25vd25FbGVtZW50KHZub2RlLnRhZylcbiAgICApXG4gIH1cblxuICB2YXIgY3JlYXRpbmdFbG1JblZQcmUgPSAwO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVsbSAoXG4gICAgdm5vZGUsXG4gICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLFxuICAgIHBhcmVudEVsbSxcbiAgICByZWZFbG0sXG4gICAgbmVzdGVkLFxuICAgIG93bmVyQXJyYXksXG4gICAgaW5kZXhcbiAgKSB7XG4gICAgaWYgKGlzRGVmKHZub2RlLmVsbSkgJiYgaXNEZWYob3duZXJBcnJheSkpIHtcbiAgICAgIC8vIFRoaXMgdm5vZGUgd2FzIHVzZWQgaW4gYSBwcmV2aW91cyByZW5kZXIhXG4gICAgICAvLyBub3cgaXQncyB1c2VkIGFzIGEgbmV3IG5vZGUsIG92ZXJ3cml0aW5nIGl0cyBlbG0gd291bGQgY2F1c2VcbiAgICAgIC8vIHBvdGVudGlhbCBwYXRjaCBlcnJvcnMgZG93biB0aGUgcm9hZCB3aGVuIGl0J3MgdXNlZCBhcyBhbiBpbnNlcnRpb25cbiAgICAgIC8vIHJlZmVyZW5jZSBub2RlLiBJbnN0ZWFkLCB3ZSBjbG9uZSB0aGUgbm9kZSBvbi1kZW1hbmQgYmVmb3JlIGNyZWF0aW5nXG4gICAgICAvLyBhc3NvY2lhdGVkIERPTSBlbGVtZW50IGZvciBpdC5cbiAgICAgIHZub2RlID0gb3duZXJBcnJheVtpbmRleF0gPSBjbG9uZVZOb2RlKHZub2RlKTtcbiAgICB9XG5cbiAgICB2bm9kZS5pc1Jvb3RJbnNlcnQgPSAhbmVzdGVkOyAvLyBmb3IgdHJhbnNpdGlvbiBlbnRlciBjaGVja1xuICAgIGlmIChjcmVhdGVDb21wb25lbnQodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCByZWZFbG0pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gICAgdmFyIGNoaWxkcmVuID0gdm5vZGUuY2hpbGRyZW47XG4gICAgdmFyIHRhZyA9IHZub2RlLnRhZztcbiAgICBpZiAoaXNEZWYodGFnKSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5wcmUpIHtcbiAgICAgICAgICBjcmVhdGluZ0VsbUluVlByZSsrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1Vua25vd25FbGVtZW50JCQxKHZub2RlLCBjcmVhdGluZ0VsbUluVlByZSkpIHtcbiAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgJ1Vua25vd24gY3VzdG9tIGVsZW1lbnQ6IDwnICsgdGFnICsgJz4gLSBkaWQgeW91ICcgK1xuICAgICAgICAgICAgJ3JlZ2lzdGVyIHRoZSBjb21wb25lbnQgY29ycmVjdGx5PyBGb3IgcmVjdXJzaXZlIGNvbXBvbmVudHMsICcgK1xuICAgICAgICAgICAgJ21ha2Ugc3VyZSB0byBwcm92aWRlIHRoZSBcIm5hbWVcIiBvcHRpb24uJyxcbiAgICAgICAgICAgIHZub2RlLmNvbnRleHRcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZub2RlLmVsbSA9IHZub2RlLm5zXG4gICAgICAgID8gbm9kZU9wcy5jcmVhdGVFbGVtZW50TlModm5vZGUubnMsIHRhZylcbiAgICAgICAgOiBub2RlT3BzLmNyZWF0ZUVsZW1lbnQodGFnLCB2bm9kZSk7XG4gICAgICBzZXRTY29wZSh2bm9kZSk7XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAge1xuICAgICAgICBjcmVhdGVDaGlsZHJlbih2bm9kZSwgY2hpbGRyZW4sIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgIGlmIChpc0RlZihkYXRhKSkge1xuICAgICAgICAgIGludm9rZUNyZWF0ZUhvb2tzKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgICB9XG4gICAgICAgIGluc2VydChwYXJlbnRFbG0sIHZub2RlLmVsbSwgcmVmRWxtKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgZGF0YSAmJiBkYXRhLnByZSkge1xuICAgICAgICBjcmVhdGluZ0VsbUluVlByZS0tO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNUcnVlKHZub2RlLmlzQ29tbWVudCkpIHtcbiAgICAgIHZub2RlLmVsbSA9IG5vZGVPcHMuY3JlYXRlQ29tbWVudCh2bm9kZS50ZXh0KTtcbiAgICAgIGluc2VydChwYXJlbnRFbG0sIHZub2RlLmVsbSwgcmVmRWxtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdm5vZGUuZWxtID0gbm9kZU9wcy5jcmVhdGVUZXh0Tm9kZSh2bm9kZS50ZXh0KTtcbiAgICAgIGluc2VydChwYXJlbnRFbG0sIHZub2RlLmVsbSwgcmVmRWxtKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVDb21wb25lbnQgKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgcmVmRWxtKSB7XG4gICAgdmFyIGkgPSB2bm9kZS5kYXRhO1xuICAgIGlmIChpc0RlZihpKSkge1xuICAgICAgdmFyIGlzUmVhY3RpdmF0ZWQgPSBpc0RlZih2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkgJiYgaS5rZWVwQWxpdmU7XG4gICAgICBpZiAoaXNEZWYoaSA9IGkuaG9vaykgJiYgaXNEZWYoaSA9IGkuaW5pdCkpIHtcbiAgICAgICAgaSh2bm9kZSwgZmFsc2UgLyogaHlkcmF0aW5nICovKTtcbiAgICAgIH1cbiAgICAgIC8vIGFmdGVyIGNhbGxpbmcgdGhlIGluaXQgaG9vaywgaWYgdGhlIHZub2RlIGlzIGEgY2hpbGQgY29tcG9uZW50XG4gICAgICAvLyBpdCBzaG91bGQndmUgY3JlYXRlZCBhIGNoaWxkIGluc3RhbmNlIGFuZCBtb3VudGVkIGl0LiB0aGUgY2hpbGRcbiAgICAgIC8vIGNvbXBvbmVudCBhbHNvIGhhcyBzZXQgdGhlIHBsYWNlaG9sZGVyIHZub2RlJ3MgZWxtLlxuICAgICAgLy8gaW4gdGhhdCBjYXNlIHdlIGNhbiBqdXN0IHJldHVybiB0aGUgZWxlbWVudCBhbmQgYmUgZG9uZS5cbiAgICAgIGlmIChpc0RlZih2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkpIHtcbiAgICAgICAgaW5pdENvbXBvbmVudCh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgaW5zZXJ0KHBhcmVudEVsbSwgdm5vZGUuZWxtLCByZWZFbG0pO1xuICAgICAgICBpZiAoaXNUcnVlKGlzUmVhY3RpdmF0ZWQpKSB7XG4gICAgICAgICAgcmVhY3RpdmF0ZUNvbXBvbmVudCh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIHJlZkVsbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpbml0Q29tcG9uZW50ICh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKSB7XG4gICAgaWYgKGlzRGVmKHZub2RlLmRhdGEucGVuZGluZ0luc2VydCkpIHtcbiAgICAgIGluc2VydGVkVm5vZGVRdWV1ZS5wdXNoLmFwcGx5KGluc2VydGVkVm5vZGVRdWV1ZSwgdm5vZGUuZGF0YS5wZW5kaW5nSW5zZXJ0KTtcbiAgICAgIHZub2RlLmRhdGEucGVuZGluZ0luc2VydCA9IG51bGw7XG4gICAgfVxuICAgIHZub2RlLmVsbSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlLiRlbDtcbiAgICBpZiAoaXNQYXRjaGFibGUodm5vZGUpKSB7XG4gICAgICBpbnZva2VDcmVhdGVIb29rcyh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgIHNldFNjb3BlKHZub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZW1wdHkgY29tcG9uZW50IHJvb3QuXG4gICAgICAvLyBza2lwIGFsbCBlbGVtZW50LXJlbGF0ZWQgbW9kdWxlcyBleGNlcHQgZm9yIHJlZiAoIzM0NTUpXG4gICAgICByZWdpc3RlclJlZih2bm9kZSk7XG4gICAgICAvLyBtYWtlIHN1cmUgdG8gaW52b2tlIHRoZSBpbnNlcnQgaG9va1xuICAgICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLnB1c2godm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWN0aXZhdGVDb21wb25lbnQgKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgcmVmRWxtKSB7XG4gICAgdmFyIGk7XG4gICAgLy8gaGFjayBmb3IgIzQzMzk6IGEgcmVhY3RpdmF0ZWQgY29tcG9uZW50IHdpdGggaW5uZXIgdHJhbnNpdGlvblxuICAgIC8vIGRvZXMgbm90IHRyaWdnZXIgYmVjYXVzZSB0aGUgaW5uZXIgbm9kZSdzIGNyZWF0ZWQgaG9va3MgYXJlIG5vdCBjYWxsZWRcbiAgICAvLyBhZ2Fpbi4gSXQncyBub3QgaWRlYWwgdG8gaW52b2x2ZSBtb2R1bGUtc3BlY2lmaWMgbG9naWMgaW4gaGVyZSBidXRcbiAgICAvLyB0aGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYSBiZXR0ZXIgd2F5IHRvIGRvIGl0LlxuICAgIHZhciBpbm5lck5vZGUgPSB2bm9kZTtcbiAgICB3aGlsZSAoaW5uZXJOb2RlLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICBpbm5lck5vZGUgPSBpbm5lck5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO1xuICAgICAgaWYgKGlzRGVmKGkgPSBpbm5lck5vZGUuZGF0YSkgJiYgaXNEZWYoaSA9IGkudHJhbnNpdGlvbikpIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNicy5hY3RpdmF0ZS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIGNicy5hY3RpdmF0ZVtpXShlbXB0eU5vZGUsIGlubmVyTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLnB1c2goaW5uZXJOb2RlKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdW5saWtlIGEgbmV3bHkgY3JlYXRlZCBjb21wb25lbnQsXG4gICAgLy8gYSByZWFjdGl2YXRlZCBrZWVwLWFsaXZlIGNvbXBvbmVudCBkb2Vzbid0IGluc2VydCBpdHNlbGZcbiAgICBpbnNlcnQocGFyZW50RWxtLCB2bm9kZS5lbG0sIHJlZkVsbSk7XG4gIH1cblxuICBmdW5jdGlvbiBpbnNlcnQgKHBhcmVudCwgZWxtLCByZWYkJDEpIHtcbiAgICBpZiAoaXNEZWYocGFyZW50KSkge1xuICAgICAgaWYgKGlzRGVmKHJlZiQkMSkpIHtcbiAgICAgICAgaWYgKG5vZGVPcHMucGFyZW50Tm9kZShyZWYkJDEpID09PSBwYXJlbnQpIHtcbiAgICAgICAgICBub2RlT3BzLmluc2VydEJlZm9yZShwYXJlbnQsIGVsbSwgcmVmJCQxKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZU9wcy5hcHBlbmRDaGlsZChwYXJlbnQsIGVsbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQ2hpbGRyZW4gKHZub2RlLCBjaGlsZHJlbiwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjaGVja0R1cGxpY2F0ZUtleXMoY2hpbGRyZW4pO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7ICsraSkge1xuICAgICAgICBjcmVhdGVFbG0oY2hpbGRyZW5baV0sIGluc2VydGVkVm5vZGVRdWV1ZSwgdm5vZGUuZWxtLCBudWxsLCB0cnVlLCBjaGlsZHJlbiwgaSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1ByaW1pdGl2ZSh2bm9kZS50ZXh0KSkge1xuICAgICAgbm9kZU9wcy5hcHBlbmRDaGlsZCh2bm9kZS5lbG0sIG5vZGVPcHMuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKHZub2RlLnRleHQpKSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNQYXRjaGFibGUgKHZub2RlKSB7XG4gICAgd2hpbGUgKHZub2RlLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICB2bm9kZSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGVmKHZub2RlLnRhZylcbiAgfVxuXG4gIGZ1bmN0aW9uIGludm9rZUNyZWF0ZUhvb2tzICh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKSB7XG4gICAgZm9yICh2YXIgaSQxID0gMDsgaSQxIDwgY2JzLmNyZWF0ZS5sZW5ndGg7ICsraSQxKSB7XG4gICAgICBjYnMuY3JlYXRlW2kkMV0oZW1wdHlOb2RlLCB2bm9kZSk7XG4gICAgfVxuICAgIGkgPSB2bm9kZS5kYXRhLmhvb2s7IC8vIFJldXNlIHZhcmlhYmxlXG4gICAgaWYgKGlzRGVmKGkpKSB7XG4gICAgICBpZiAoaXNEZWYoaS5jcmVhdGUpKSB7IGkuY3JlYXRlKGVtcHR5Tm9kZSwgdm5vZGUpOyB9XG4gICAgICBpZiAoaXNEZWYoaS5pbnNlcnQpKSB7IGluc2VydGVkVm5vZGVRdWV1ZS5wdXNoKHZub2RlKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHNldCBzY29wZSBpZCBhdHRyaWJ1dGUgZm9yIHNjb3BlZCBDU1MuXG4gIC8vIHRoaXMgaXMgaW1wbGVtZW50ZWQgYXMgYSBzcGVjaWFsIGNhc2UgdG8gYXZvaWQgdGhlIG92ZXJoZWFkXG4gIC8vIG9mIGdvaW5nIHRocm91Z2ggdGhlIG5vcm1hbCBhdHRyaWJ1dGUgcGF0Y2hpbmcgcHJvY2Vzcy5cbiAgZnVuY3Rpb24gc2V0U2NvcGUgKHZub2RlKSB7XG4gICAgdmFyIGk7XG4gICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5mblNjb3BlSWQpKSB7XG4gICAgICBub2RlT3BzLnNldFN0eWxlU2NvcGUodm5vZGUuZWxtLCBpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGFuY2VzdG9yID0gdm5vZGU7XG4gICAgICB3aGlsZSAoYW5jZXN0b3IpIHtcbiAgICAgICAgaWYgKGlzRGVmKGkgPSBhbmNlc3Rvci5jb250ZXh0KSAmJiBpc0RlZihpID0gaS4kb3B0aW9ucy5fc2NvcGVJZCkpIHtcbiAgICAgICAgICBub2RlT3BzLnNldFN0eWxlU2NvcGUodm5vZGUuZWxtLCBpKTtcbiAgICAgICAgfVxuICAgICAgICBhbmNlc3RvciA9IGFuY2VzdG9yLnBhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZm9yIHNsb3QgY29udGVudCB0aGV5IHNob3VsZCBhbHNvIGdldCB0aGUgc2NvcGVJZCBmcm9tIHRoZSBob3N0IGluc3RhbmNlLlxuICAgIGlmIChpc0RlZihpID0gYWN0aXZlSW5zdGFuY2UpICYmXG4gICAgICBpICE9PSB2bm9kZS5jb250ZXh0ICYmXG4gICAgICBpICE9PSB2bm9kZS5mbkNvbnRleHQgJiZcbiAgICAgIGlzRGVmKGkgPSBpLiRvcHRpb25zLl9zY29wZUlkKVxuICAgICkge1xuICAgICAgbm9kZU9wcy5zZXRTdHlsZVNjb3BlKHZub2RlLmVsbSwgaSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gYWRkVm5vZGVzIChwYXJlbnRFbG0sIHJlZkVsbSwgdm5vZGVzLCBzdGFydElkeCwgZW5kSWR4LCBpbnNlcnRlZFZub2RlUXVldWUpIHtcbiAgICBmb3IgKDsgc3RhcnRJZHggPD0gZW5kSWR4OyArK3N0YXJ0SWR4KSB7XG4gICAgICBjcmVhdGVFbG0odm5vZGVzW3N0YXJ0SWR4XSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIHJlZkVsbSwgZmFsc2UsIHZub2Rlcywgc3RhcnRJZHgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGludm9rZURlc3Ryb3lIb29rICh2bm9kZSkge1xuICAgIHZhciBpLCBqO1xuICAgIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgICBpZiAoaXNEZWYoZGF0YSkpIHtcbiAgICAgIGlmIChpc0RlZihpID0gZGF0YS5ob29rKSAmJiBpc0RlZihpID0gaS5kZXN0cm95KSkgeyBpKHZub2RlKTsgfVxuICAgICAgZm9yIChpID0gMDsgaSA8IGNicy5kZXN0cm95Lmxlbmd0aDsgKytpKSB7IGNicy5kZXN0cm95W2ldKHZub2RlKTsgfVxuICAgIH1cbiAgICBpZiAoaXNEZWYoaSA9IHZub2RlLmNoaWxkcmVuKSkge1xuICAgICAgZm9yIChqID0gMDsgaiA8IHZub2RlLmNoaWxkcmVuLmxlbmd0aDsgKytqKSB7XG4gICAgICAgIGludm9rZURlc3Ryb3lIb29rKHZub2RlLmNoaWxkcmVuW2pdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVWbm9kZXMgKHBhcmVudEVsbSwgdm5vZGVzLCBzdGFydElkeCwgZW5kSWR4KSB7XG4gICAgZm9yICg7IHN0YXJ0SWR4IDw9IGVuZElkeDsgKytzdGFydElkeCkge1xuICAgICAgdmFyIGNoID0gdm5vZGVzW3N0YXJ0SWR4XTtcbiAgICAgIGlmIChpc0RlZihjaCkpIHtcbiAgICAgICAgaWYgKGlzRGVmKGNoLnRhZykpIHtcbiAgICAgICAgICByZW1vdmVBbmRJbnZva2VSZW1vdmVIb29rKGNoKTtcbiAgICAgICAgICBpbnZva2VEZXN0cm95SG9vayhjaCk7XG4gICAgICAgIH0gZWxzZSB7IC8vIFRleHQgbm9kZVxuICAgICAgICAgIHJlbW92ZU5vZGUoY2guZWxtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbW92ZUFuZEludm9rZVJlbW92ZUhvb2sgKHZub2RlLCBybSkge1xuICAgIGlmIChpc0RlZihybSkgfHwgaXNEZWYodm5vZGUuZGF0YSkpIHtcbiAgICAgIHZhciBpO1xuICAgICAgdmFyIGxpc3RlbmVycyA9IGNicy5yZW1vdmUubGVuZ3RoICsgMTtcbiAgICAgIGlmIChpc0RlZihybSkpIHtcbiAgICAgICAgLy8gd2UgaGF2ZSBhIHJlY3Vyc2l2ZWx5IHBhc3NlZCBkb3duIHJtIGNhbGxiYWNrXG4gICAgICAgIC8vIGluY3JlYXNlIHRoZSBsaXN0ZW5lcnMgY291bnRcbiAgICAgICAgcm0ubGlzdGVuZXJzICs9IGxpc3RlbmVycztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRpcmVjdGx5IHJlbW92aW5nXG4gICAgICAgIHJtID0gY3JlYXRlUm1DYih2bm9kZS5lbG0sIGxpc3RlbmVycyk7XG4gICAgICB9XG4gICAgICAvLyByZWN1cnNpdmVseSBpbnZva2UgaG9va3Mgb24gY2hpbGQgY29tcG9uZW50IHJvb3Qgbm9kZVxuICAgICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkgJiYgaXNEZWYoaSA9IGkuX3Zub2RlKSAmJiBpc0RlZihpLmRhdGEpKSB7XG4gICAgICAgIHJlbW92ZUFuZEludm9rZVJlbW92ZUhvb2soaSwgcm0pO1xuICAgICAgfVxuICAgICAgZm9yIChpID0gMDsgaSA8IGNicy5yZW1vdmUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY2JzLnJlbW92ZVtpXSh2bm9kZSwgcm0pO1xuICAgICAgfVxuICAgICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5kYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLnJlbW92ZSkpIHtcbiAgICAgICAgaSh2bm9kZSwgcm0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcm0oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVtb3ZlTm9kZSh2bm9kZS5lbG0pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZUNoaWxkcmVuIChwYXJlbnRFbG0sIG9sZENoLCBuZXdDaCwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCByZW1vdmVPbmx5KSB7XG4gICAgdmFyIG9sZFN0YXJ0SWR4ID0gMDtcbiAgICB2YXIgbmV3U3RhcnRJZHggPSAwO1xuICAgIHZhciBvbGRFbmRJZHggPSBvbGRDaC5sZW5ndGggLSAxO1xuICAgIHZhciBvbGRTdGFydFZub2RlID0gb2xkQ2hbMF07XG4gICAgdmFyIG9sZEVuZFZub2RlID0gb2xkQ2hbb2xkRW5kSWR4XTtcbiAgICB2YXIgbmV3RW5kSWR4ID0gbmV3Q2gubGVuZ3RoIC0gMTtcbiAgICB2YXIgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWzBdO1xuICAgIHZhciBuZXdFbmRWbm9kZSA9IG5ld0NoW25ld0VuZElkeF07XG4gICAgdmFyIG9sZEtleVRvSWR4LCBpZHhJbk9sZCwgdm5vZGVUb01vdmUsIHJlZkVsbTtcblxuICAgIC8vIHJlbW92ZU9ubHkgaXMgYSBzcGVjaWFsIGZsYWcgdXNlZCBvbmx5IGJ5IDx0cmFuc2l0aW9uLWdyb3VwPlxuICAgIC8vIHRvIGVuc3VyZSByZW1vdmVkIGVsZW1lbnRzIHN0YXkgaW4gY29ycmVjdCByZWxhdGl2ZSBwb3NpdGlvbnNcbiAgICAvLyBkdXJpbmcgbGVhdmluZyB0cmFuc2l0aW9uc1xuICAgIHZhciBjYW5Nb3ZlID0gIXJlbW92ZU9ubHk7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY2hlY2tEdXBsaWNhdGVLZXlzKG5ld0NoKTtcbiAgICB9XG5cbiAgICB3aGlsZSAob2xkU3RhcnRJZHggPD0gb2xkRW5kSWR4ICYmIG5ld1N0YXJ0SWR4IDw9IG5ld0VuZElkeCkge1xuICAgICAgaWYgKGlzVW5kZWYob2xkU3RhcnRWbm9kZSkpIHtcbiAgICAgICAgb2xkU3RhcnRWbm9kZSA9IG9sZENoWysrb2xkU3RhcnRJZHhdOyAvLyBWbm9kZSBoYXMgYmVlbiBtb3ZlZCBsZWZ0XG4gICAgICB9IGVsc2UgaWYgKGlzVW5kZWYob2xkRW5kVm5vZGUpKSB7XG4gICAgICAgIG9sZEVuZFZub2RlID0gb2xkQ2hbLS1vbGRFbmRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3U3RhcnRWbm9kZSkpIHtcbiAgICAgICAgcGF0Y2hWbm9kZShvbGRTdGFydFZub2RlLCBuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG5ld0NoLCBuZXdTdGFydElkeCk7XG4gICAgICAgIG9sZFN0YXJ0Vm5vZGUgPSBvbGRDaFsrK29sZFN0YXJ0SWR4XTtcbiAgICAgICAgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWysrbmV3U3RhcnRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkRW5kVm5vZGUsIG5ld0VuZFZub2RlKSkge1xuICAgICAgICBwYXRjaFZub2RlKG9sZEVuZFZub2RlLCBuZXdFbmRWbm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBuZXdDaCwgbmV3RW5kSWR4KTtcbiAgICAgICAgb2xkRW5kVm5vZGUgPSBvbGRDaFstLW9sZEVuZElkeF07XG4gICAgICAgIG5ld0VuZFZub2RlID0gbmV3Q2hbLS1uZXdFbmRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3RW5kVm5vZGUpKSB7IC8vIFZub2RlIG1vdmVkIHJpZ2h0XG4gICAgICAgIHBhdGNoVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3RW5kVm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbmV3Q2gsIG5ld0VuZElkeCk7XG4gICAgICAgIGNhbk1vdmUgJiYgbm9kZU9wcy5pbnNlcnRCZWZvcmUocGFyZW50RWxtLCBvbGRTdGFydFZub2RlLmVsbSwgbm9kZU9wcy5uZXh0U2libGluZyhvbGRFbmRWbm9kZS5lbG0pKTtcbiAgICAgICAgb2xkU3RhcnRWbm9kZSA9IG9sZENoWysrb2xkU3RhcnRJZHhdO1xuICAgICAgICBuZXdFbmRWbm9kZSA9IG5ld0NoWy0tbmV3RW5kSWR4XTtcbiAgICAgIH0gZWxzZSBpZiAoc2FtZVZub2RlKG9sZEVuZFZub2RlLCBuZXdTdGFydFZub2RlKSkgeyAvLyBWbm9kZSBtb3ZlZCBsZWZ0XG4gICAgICAgIHBhdGNoVm5vZGUob2xkRW5kVm5vZGUsIG5ld1N0YXJ0Vm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbmV3Q2gsIG5ld1N0YXJ0SWR4KTtcbiAgICAgICAgY2FuTW92ZSAmJiBub2RlT3BzLmluc2VydEJlZm9yZShwYXJlbnRFbG0sIG9sZEVuZFZub2RlLmVsbSwgb2xkU3RhcnRWbm9kZS5lbG0pO1xuICAgICAgICBvbGRFbmRWbm9kZSA9IG9sZENoWy0tb2xkRW5kSWR4XTtcbiAgICAgICAgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWysrbmV3U3RhcnRJZHhdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzVW5kZWYob2xkS2V5VG9JZHgpKSB7IG9sZEtleVRvSWR4ID0gY3JlYXRlS2V5VG9PbGRJZHgob2xkQ2gsIG9sZFN0YXJ0SWR4LCBvbGRFbmRJZHgpOyB9XG4gICAgICAgIGlkeEluT2xkID0gaXNEZWYobmV3U3RhcnRWbm9kZS5rZXkpXG4gICAgICAgICAgPyBvbGRLZXlUb0lkeFtuZXdTdGFydFZub2RlLmtleV1cbiAgICAgICAgICA6IGZpbmRJZHhJbk9sZChuZXdTdGFydFZub2RlLCBvbGRDaCwgb2xkU3RhcnRJZHgsIG9sZEVuZElkeCk7XG4gICAgICAgIGlmIChpc1VuZGVmKGlkeEluT2xkKSkgeyAvLyBOZXcgZWxlbWVudFxuICAgICAgICAgIGNyZWF0ZUVsbShuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgb2xkU3RhcnRWbm9kZS5lbG0sIGZhbHNlLCBuZXdDaCwgbmV3U3RhcnRJZHgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZub2RlVG9Nb3ZlID0gb2xkQ2hbaWR4SW5PbGRdO1xuICAgICAgICAgIGlmIChzYW1lVm5vZGUodm5vZGVUb01vdmUsIG5ld1N0YXJ0Vm5vZGUpKSB7XG4gICAgICAgICAgICBwYXRjaFZub2RlKHZub2RlVG9Nb3ZlLCBuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG5ld0NoLCBuZXdTdGFydElkeCk7XG4gICAgICAgICAgICBvbGRDaFtpZHhJbk9sZF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjYW5Nb3ZlICYmIG5vZGVPcHMuaW5zZXJ0QmVmb3JlKHBhcmVudEVsbSwgdm5vZGVUb01vdmUuZWxtLCBvbGRTdGFydFZub2RlLmVsbSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHNhbWUga2V5IGJ1dCBkaWZmZXJlbnQgZWxlbWVudC4gdHJlYXQgYXMgbmV3IGVsZW1lbnRcbiAgICAgICAgICAgIGNyZWF0ZUVsbShuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgb2xkU3RhcnRWbm9kZS5lbG0sIGZhbHNlLCBuZXdDaCwgbmV3U3RhcnRJZHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdTdGFydFZub2RlID0gbmV3Q2hbKytuZXdTdGFydElkeF07XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvbGRTdGFydElkeCA+IG9sZEVuZElkeCkge1xuICAgICAgcmVmRWxtID0gaXNVbmRlZihuZXdDaFtuZXdFbmRJZHggKyAxXSkgPyBudWxsIDogbmV3Q2hbbmV3RW5kSWR4ICsgMV0uZWxtO1xuICAgICAgYWRkVm5vZGVzKHBhcmVudEVsbSwgcmVmRWxtLCBuZXdDaCwgbmV3U3RhcnRJZHgsIG5ld0VuZElkeCwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICB9IGVsc2UgaWYgKG5ld1N0YXJ0SWR4ID4gbmV3RW5kSWR4KSB7XG4gICAgICByZW1vdmVWbm9kZXMocGFyZW50RWxtLCBvbGRDaCwgb2xkU3RhcnRJZHgsIG9sZEVuZElkeCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tEdXBsaWNhdGVLZXlzIChjaGlsZHJlbikge1xuICAgIHZhciBzZWVuS2V5cyA9IHt9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB2bm9kZSA9IGNoaWxkcmVuW2ldO1xuICAgICAgdmFyIGtleSA9IHZub2RlLmtleTtcbiAgICAgIGlmIChpc0RlZihrZXkpKSB7XG4gICAgICAgIGlmIChzZWVuS2V5c1trZXldKSB7XG4gICAgICAgICAgd2FybihcbiAgICAgICAgICAgIChcIkR1cGxpY2F0ZSBrZXlzIGRldGVjdGVkOiAnXCIgKyBrZXkgKyBcIicuIFRoaXMgbWF5IGNhdXNlIGFuIHVwZGF0ZSBlcnJvci5cIiksXG4gICAgICAgICAgICB2bm9kZS5jb250ZXh0XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWVuS2V5c1trZXldID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGZpbmRJZHhJbk9sZCAobm9kZSwgb2xkQ2gsIHN0YXJ0LCBlbmQpIHtcbiAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgdmFyIGMgPSBvbGRDaFtpXTtcbiAgICAgIGlmIChpc0RlZihjKSAmJiBzYW1lVm5vZGUobm9kZSwgYykpIHsgcmV0dXJuIGkgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHBhdGNoVm5vZGUgKFxuICAgIG9sZFZub2RlLFxuICAgIHZub2RlLFxuICAgIGluc2VydGVkVm5vZGVRdWV1ZSxcbiAgICBvd25lckFycmF5LFxuICAgIGluZGV4LFxuICAgIHJlbW92ZU9ubHlcbiAgKSB7XG4gICAgaWYgKG9sZFZub2RlID09PSB2bm9kZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzRGVmKHZub2RlLmVsbSkgJiYgaXNEZWYob3duZXJBcnJheSkpIHtcbiAgICAgIC8vIGNsb25lIHJldXNlZCB2bm9kZVxuICAgICAgdm5vZGUgPSBvd25lckFycmF5W2luZGV4XSA9IGNsb25lVk5vZGUodm5vZGUpO1xuICAgIH1cblxuICAgIHZhciBlbG0gPSB2bm9kZS5lbG0gPSBvbGRWbm9kZS5lbG07XG5cbiAgICBpZiAoaXNUcnVlKG9sZFZub2RlLmlzQXN5bmNQbGFjZWhvbGRlcikpIHtcbiAgICAgIGlmIChpc0RlZih2bm9kZS5hc3luY0ZhY3RvcnkucmVzb2x2ZWQpKSB7XG4gICAgICAgIGh5ZHJhdGUob2xkVm5vZGUuZWxtLCB2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZub2RlLmlzQXN5bmNQbGFjZWhvbGRlciA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyByZXVzZSBlbGVtZW50IGZvciBzdGF0aWMgdHJlZXMuXG4gICAgLy8gbm90ZSB3ZSBvbmx5IGRvIHRoaXMgaWYgdGhlIHZub2RlIGlzIGNsb25lZCAtXG4gICAgLy8gaWYgdGhlIG5ldyBub2RlIGlzIG5vdCBjbG9uZWQgaXQgbWVhbnMgdGhlIHJlbmRlciBmdW5jdGlvbnMgaGF2ZSBiZWVuXG4gICAgLy8gcmVzZXQgYnkgdGhlIGhvdC1yZWxvYWQtYXBpIGFuZCB3ZSBuZWVkIHRvIGRvIGEgcHJvcGVyIHJlLXJlbmRlci5cbiAgICBpZiAoaXNUcnVlKHZub2RlLmlzU3RhdGljKSAmJlxuICAgICAgaXNUcnVlKG9sZFZub2RlLmlzU3RhdGljKSAmJlxuICAgICAgdm5vZGUua2V5ID09PSBvbGRWbm9kZS5rZXkgJiZcbiAgICAgIChpc1RydWUodm5vZGUuaXNDbG9uZWQpIHx8IGlzVHJ1ZSh2bm9kZS5pc09uY2UpKVxuICAgICkge1xuICAgICAgdm5vZGUuY29tcG9uZW50SW5zdGFuY2UgPSBvbGRWbm9kZS5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHZhciBpO1xuICAgIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgICBpZiAoaXNEZWYoZGF0YSkgJiYgaXNEZWYoaSA9IGRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkucHJlcGF0Y2gpKSB7XG4gICAgICBpKG9sZFZub2RlLCB2bm9kZSk7XG4gICAgfVxuXG4gICAgdmFyIG9sZENoID0gb2xkVm5vZGUuY2hpbGRyZW47XG4gICAgdmFyIGNoID0gdm5vZGUuY2hpbGRyZW47XG4gICAgaWYgKGlzRGVmKGRhdGEpICYmIGlzUGF0Y2hhYmxlKHZub2RlKSkge1xuICAgICAgZm9yIChpID0gMDsgaSA8IGNicy51cGRhdGUubGVuZ3RoOyArK2kpIHsgY2JzLnVwZGF0ZVtpXShvbGRWbm9kZSwgdm5vZGUpOyB9XG4gICAgICBpZiAoaXNEZWYoaSA9IGRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkudXBkYXRlKSkgeyBpKG9sZFZub2RlLCB2bm9kZSk7IH1cbiAgICB9XG4gICAgaWYgKGlzVW5kZWYodm5vZGUudGV4dCkpIHtcbiAgICAgIGlmIChpc0RlZihvbGRDaCkgJiYgaXNEZWYoY2gpKSB7XG4gICAgICAgIGlmIChvbGRDaCAhPT0gY2gpIHsgdXBkYXRlQ2hpbGRyZW4oZWxtLCBvbGRDaCwgY2gsIGluc2VydGVkVm5vZGVRdWV1ZSwgcmVtb3ZlT25seSk7IH1cbiAgICAgIH0gZWxzZSBpZiAoaXNEZWYoY2gpKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY2hlY2tEdXBsaWNhdGVLZXlzKGNoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEZWYob2xkVm5vZGUudGV4dCkpIHsgbm9kZU9wcy5zZXRUZXh0Q29udGVudChlbG0sICcnKTsgfVxuICAgICAgICBhZGRWbm9kZXMoZWxtLCBudWxsLCBjaCwgMCwgY2gubGVuZ3RoIC0gMSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNEZWYob2xkQ2gpKSB7XG4gICAgICAgIHJlbW92ZVZub2RlcyhlbG0sIG9sZENoLCAwLCBvbGRDaC5sZW5ndGggLSAxKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNEZWYob2xkVm5vZGUudGV4dCkpIHtcbiAgICAgICAgbm9kZU9wcy5zZXRUZXh0Q29udGVudChlbG0sICcnKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG9sZFZub2RlLnRleHQgIT09IHZub2RlLnRleHQpIHtcbiAgICAgIG5vZGVPcHMuc2V0VGV4dENvbnRlbnQoZWxtLCB2bm9kZS50ZXh0KTtcbiAgICB9XG4gICAgaWYgKGlzRGVmKGRhdGEpKSB7XG4gICAgICBpZiAoaXNEZWYoaSA9IGRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkucG9zdHBhdGNoKSkgeyBpKG9sZFZub2RlLCB2bm9kZSk7IH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VJbnNlcnRIb29rICh2bm9kZSwgcXVldWUsIGluaXRpYWwpIHtcbiAgICAvLyBkZWxheSBpbnNlcnQgaG9va3MgZm9yIGNvbXBvbmVudCByb290IG5vZGVzLCBpbnZva2UgdGhlbSBhZnRlciB0aGVcbiAgICAvLyBlbGVtZW50IGlzIHJlYWxseSBpbnNlcnRlZFxuICAgIGlmIChpc1RydWUoaW5pdGlhbCkgJiYgaXNEZWYodm5vZGUucGFyZW50KSkge1xuICAgICAgdm5vZGUucGFyZW50LmRhdGEucGVuZGluZ0luc2VydCA9IHF1ZXVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXVlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHF1ZXVlW2ldLmRhdGEuaG9vay5pbnNlcnQocXVldWVbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBoeWRyYXRpb25CYWlsZWQgPSBmYWxzZTtcbiAgLy8gbGlzdCBvZiBtb2R1bGVzIHRoYXQgY2FuIHNraXAgY3JlYXRlIGhvb2sgZHVyaW5nIGh5ZHJhdGlvbiBiZWNhdXNlIHRoZXlcbiAgLy8gYXJlIGFscmVhZHkgcmVuZGVyZWQgb24gdGhlIGNsaWVudCBvciBoYXMgbm8gbmVlZCBmb3IgaW5pdGlhbGl6YXRpb25cbiAgLy8gTm90ZTogc3R5bGUgaXMgZXhjbHVkZWQgYmVjYXVzZSBpdCByZWxpZXMgb24gaW5pdGlhbCBjbG9uZSBmb3IgZnV0dXJlXG4gIC8vIGRlZXAgdXBkYXRlcyAoIzcwNjMpLlxuICB2YXIgaXNSZW5kZXJlZE1vZHVsZSA9IG1ha2VNYXAoJ2F0dHJzLGNsYXNzLHN0YXRpY0NsYXNzLHN0YXRpY1N0eWxlLGtleScpO1xuXG4gIC8vIE5vdGU6IHRoaXMgaXMgYSBicm93c2VyLW9ubHkgZnVuY3Rpb24gc28gd2UgY2FuIGFzc3VtZSBlbG1zIGFyZSBET00gbm9kZXMuXG4gIGZ1bmN0aW9uIGh5ZHJhdGUgKGVsbSwgdm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgaW5WUHJlKSB7XG4gICAgdmFyIGk7XG4gICAgdmFyIHRhZyA9IHZub2RlLnRhZztcbiAgICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gICAgdmFyIGNoaWxkcmVuID0gdm5vZGUuY2hpbGRyZW47XG4gICAgaW5WUHJlID0gaW5WUHJlIHx8IChkYXRhICYmIGRhdGEucHJlKTtcbiAgICB2bm9kZS5lbG0gPSBlbG07XG5cbiAgICBpZiAoaXNUcnVlKHZub2RlLmlzQ29tbWVudCkgJiYgaXNEZWYodm5vZGUuYXN5bmNGYWN0b3J5KSkge1xuICAgICAgdm5vZGUuaXNBc3luY1BsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIC8vIGFzc2VydCBub2RlIG1hdGNoXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmICghYXNzZXJ0Tm9kZU1hdGNoKGVsbSwgdm5vZGUsIGluVlByZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc0RlZihkYXRhKSkge1xuICAgICAgaWYgKGlzRGVmKGkgPSBkYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLmluaXQpKSB7IGkodm5vZGUsIHRydWUgLyogaHlkcmF0aW5nICovKTsgfVxuICAgICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkpIHtcbiAgICAgICAgLy8gY2hpbGQgY29tcG9uZW50LiBpdCBzaG91bGQgaGF2ZSBoeWRyYXRlZCBpdHMgb3duIHRyZWUuXG4gICAgICAgIGluaXRDb21wb25lbnQodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc0RlZih0YWcpKSB7XG4gICAgICBpZiAoaXNEZWYoY2hpbGRyZW4pKSB7XG4gICAgICAgIC8vIGVtcHR5IGVsZW1lbnQsIGFsbG93IGNsaWVudCB0byBwaWNrIHVwIGFuZCBwb3B1bGF0ZSBjaGlsZHJlblxuICAgICAgICBpZiAoIWVsbS5oYXNDaGlsZE5vZGVzKCkpIHtcbiAgICAgICAgICBjcmVhdGVDaGlsZHJlbih2bm9kZSwgY2hpbGRyZW4sIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdi1odG1sIGFuZCBkb21Qcm9wczogaW5uZXJIVE1MXG4gICAgICAgICAgaWYgKGlzRGVmKGkgPSBkYXRhKSAmJiBpc0RlZihpID0gaS5kb21Qcm9wcykgJiYgaXNEZWYoaSA9IGkuaW5uZXJIVE1MKSkge1xuICAgICAgICAgICAgaWYgKGkgIT09IGVsbS5pbm5lckhUTUwpIHtcbiAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAgICAgIWh5ZHJhdGlvbkJhaWxlZFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBoeWRyYXRpb25CYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignUGFyZW50OiAnLCBlbG0pO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybignc2VydmVyIGlubmVySFRNTDogJywgaSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdjbGllbnQgaW5uZXJIVE1MOiAnLCBlbG0uaW5uZXJIVE1MKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaXRlcmF0ZSBhbmQgY29tcGFyZSBjaGlsZHJlbiBsaXN0c1xuICAgICAgICAgICAgdmFyIGNoaWxkcmVuTWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgdmFyIGNoaWxkTm9kZSA9IGVsbS5maXJzdENoaWxkO1xuICAgICAgICAgICAgZm9yICh2YXIgaSQxID0gMDsgaSQxIDwgY2hpbGRyZW4ubGVuZ3RoOyBpJDErKykge1xuICAgICAgICAgICAgICBpZiAoIWNoaWxkTm9kZSB8fCAhaHlkcmF0ZShjaGlsZE5vZGUsIGNoaWxkcmVuW2kkMV0sIGluc2VydGVkVm5vZGVRdWV1ZSwgaW5WUHJlKSkge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNoaWxkTm9kZSA9IGNoaWxkTm9kZS5uZXh0U2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlmIGNoaWxkTm9kZSBpcyBub3QgbnVsbCwgaXQgbWVhbnMgdGhlIGFjdHVhbCBjaGlsZE5vZGVzIGxpc3QgaXNcbiAgICAgICAgICAgIC8vIGxvbmdlciB0aGFuIHRoZSB2aXJ0dWFsIGNoaWxkcmVuIGxpc3QuXG4gICAgICAgICAgICBpZiAoIWNoaWxkcmVuTWF0Y2ggfHwgY2hpbGROb2RlKSB7XG4gICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgICAgICAgICFoeWRyYXRpb25CYWlsZWRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgaHlkcmF0aW9uQmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1BhcmVudDogJywgZWxtKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ01pc21hdGNoaW5nIGNoaWxkTm9kZXMgdnMuIFZOb2RlczogJywgZWxtLmNoaWxkTm9kZXMsIGNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpc0RlZihkYXRhKSkge1xuICAgICAgICB2YXIgZnVsbEludm9rZSA9IGZhbHNlO1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgIGlmICghaXNSZW5kZXJlZE1vZHVsZShrZXkpKSB7XG4gICAgICAgICAgICBmdWxsSW52b2tlID0gdHJ1ZTtcbiAgICAgICAgICAgIGludm9rZUNyZWF0ZUhvb2tzKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmdWxsSW52b2tlICYmIGRhdGFbJ2NsYXNzJ10pIHtcbiAgICAgICAgICAvLyBlbnN1cmUgY29sbGVjdGluZyBkZXBzIGZvciBkZWVwIGNsYXNzIGJpbmRpbmdzIGZvciBmdXR1cmUgdXBkYXRlc1xuICAgICAgICAgIHRyYXZlcnNlKGRhdGFbJ2NsYXNzJ10pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlbG0uZGF0YSAhPT0gdm5vZGUudGV4dCkge1xuICAgICAgZWxtLmRhdGEgPSB2bm9kZS50ZXh0O1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZnVuY3Rpb24gYXNzZXJ0Tm9kZU1hdGNoIChub2RlLCB2bm9kZSwgaW5WUHJlKSB7XG4gICAgaWYgKGlzRGVmKHZub2RlLnRhZykpIHtcbiAgICAgIHJldHVybiB2bm9kZS50YWcuaW5kZXhPZigndnVlLWNvbXBvbmVudCcpID09PSAwIHx8IChcbiAgICAgICAgIWlzVW5rbm93bkVsZW1lbnQkJDEodm5vZGUsIGluVlByZSkgJiZcbiAgICAgICAgdm5vZGUudGFnLnRvTG93ZXJDYXNlKCkgPT09IChub2RlLnRhZ05hbWUgJiYgbm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub2RlLm5vZGVUeXBlID09PSAodm5vZGUuaXNDb21tZW50ID8gOCA6IDMpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHBhdGNoIChvbGRWbm9kZSwgdm5vZGUsIGh5ZHJhdGluZywgcmVtb3ZlT25seSkge1xuICAgIGlmIChpc1VuZGVmKHZub2RlKSkge1xuICAgICAgaWYgKGlzRGVmKG9sZFZub2RlKSkgeyBpbnZva2VEZXN0cm95SG9vayhvbGRWbm9kZSk7IH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHZhciBpc0luaXRpYWxQYXRjaCA9IGZhbHNlO1xuICAgIHZhciBpbnNlcnRlZFZub2RlUXVldWUgPSBbXTtcblxuICAgIGlmIChpc1VuZGVmKG9sZFZub2RlKSkge1xuICAgICAgLy8gZW1wdHkgbW91bnQgKGxpa2VseSBhcyBjb21wb25lbnQpLCBjcmVhdGUgbmV3IHJvb3QgZWxlbWVudFxuICAgICAgaXNJbml0aWFsUGF0Y2ggPSB0cnVlO1xuICAgICAgY3JlYXRlRWxtKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgaXNSZWFsRWxlbWVudCA9IGlzRGVmKG9sZFZub2RlLm5vZGVUeXBlKTtcbiAgICAgIGlmICghaXNSZWFsRWxlbWVudCAmJiBzYW1lVm5vZGUob2xkVm5vZGUsIHZub2RlKSkge1xuICAgICAgICAvLyBwYXRjaCBleGlzdGluZyByb290IG5vZGVcbiAgICAgICAgcGF0Y2hWbm9kZShvbGRWbm9kZSwgdm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbnVsbCwgbnVsbCwgcmVtb3ZlT25seSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNSZWFsRWxlbWVudCkge1xuICAgICAgICAgIC8vIG1vdW50aW5nIHRvIGEgcmVhbCBlbGVtZW50XG4gICAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyBpcyBzZXJ2ZXItcmVuZGVyZWQgY29udGVudCBhbmQgaWYgd2UgY2FuIHBlcmZvcm1cbiAgICAgICAgICAvLyBhIHN1Y2Nlc3NmdWwgaHlkcmF0aW9uLlxuICAgICAgICAgIGlmIChvbGRWbm9kZS5ub2RlVHlwZSA9PT0gMSAmJiBvbGRWbm9kZS5oYXNBdHRyaWJ1dGUoU1NSX0FUVFIpKSB7XG4gICAgICAgICAgICBvbGRWbm9kZS5yZW1vdmVBdHRyaWJ1dGUoU1NSX0FUVFIpO1xuICAgICAgICAgICAgaHlkcmF0aW5nID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzVHJ1ZShoeWRyYXRpbmcpKSB7XG4gICAgICAgICAgICBpZiAoaHlkcmF0ZShvbGRWbm9kZSwgdm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSkpIHtcbiAgICAgICAgICAgICAgaW52b2tlSW5zZXJ0SG9vayh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG9sZFZub2RlXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgd2FybihcbiAgICAgICAgICAgICAgICAnVGhlIGNsaWVudC1zaWRlIHJlbmRlcmVkIHZpcnR1YWwgRE9NIHRyZWUgaXMgbm90IG1hdGNoaW5nICcgK1xuICAgICAgICAgICAgICAgICdzZXJ2ZXItcmVuZGVyZWQgY29udGVudC4gVGhpcyBpcyBsaWtlbHkgY2F1c2VkIGJ5IGluY29ycmVjdCAnICtcbiAgICAgICAgICAgICAgICAnSFRNTCBtYXJrdXAsIGZvciBleGFtcGxlIG5lc3RpbmcgYmxvY2stbGV2ZWwgZWxlbWVudHMgaW5zaWRlICcgK1xuICAgICAgICAgICAgICAgICc8cD4sIG9yIG1pc3NpbmcgPHRib2R5Pi4gQmFpbGluZyBoeWRyYXRpb24gYW5kIHBlcmZvcm1pbmcgJyArXG4gICAgICAgICAgICAgICAgJ2Z1bGwgY2xpZW50LXNpZGUgcmVuZGVyLidcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZWl0aGVyIG5vdCBzZXJ2ZXItcmVuZGVyZWQsIG9yIGh5ZHJhdGlvbiBmYWlsZWQuXG4gICAgICAgICAgLy8gY3JlYXRlIGFuIGVtcHR5IG5vZGUgYW5kIHJlcGxhY2UgaXRcbiAgICAgICAgICBvbGRWbm9kZSA9IGVtcHR5Tm9kZUF0KG9sZFZub2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlcGxhY2luZyBleGlzdGluZyBlbGVtZW50XG4gICAgICAgIHZhciBvbGRFbG0gPSBvbGRWbm9kZS5lbG07XG4gICAgICAgIHZhciBwYXJlbnRFbG0gPSBub2RlT3BzLnBhcmVudE5vZGUob2xkRWxtKTtcblxuICAgICAgICAvLyBjcmVhdGUgbmV3IG5vZGVcbiAgICAgICAgY3JlYXRlRWxtKFxuICAgICAgICAgIHZub2RlLFxuICAgICAgICAgIGluc2VydGVkVm5vZGVRdWV1ZSxcbiAgICAgICAgICAvLyBleHRyZW1lbHkgcmFyZSBlZGdlIGNhc2U6IGRvIG5vdCBpbnNlcnQgaWYgb2xkIGVsZW1lbnQgaXMgaW4gYVxuICAgICAgICAgIC8vIGxlYXZpbmcgdHJhbnNpdGlvbi4gT25seSBoYXBwZW5zIHdoZW4gY29tYmluaW5nIHRyYW5zaXRpb24gK1xuICAgICAgICAgIC8vIGtlZXAtYWxpdmUgKyBIT0NzLiAoIzQ1OTApXG4gICAgICAgICAgb2xkRWxtLl9sZWF2ZUNiID8gbnVsbCA6IHBhcmVudEVsbSxcbiAgICAgICAgICBub2RlT3BzLm5leHRTaWJsaW5nKG9sZEVsbSlcbiAgICAgICAgKTtcblxuICAgICAgICAvLyB1cGRhdGUgcGFyZW50IHBsYWNlaG9sZGVyIG5vZGUgZWxlbWVudCwgcmVjdXJzaXZlbHlcbiAgICAgICAgaWYgKGlzRGVmKHZub2RlLnBhcmVudCkpIHtcbiAgICAgICAgICB2YXIgYW5jZXN0b3IgPSB2bm9kZS5wYXJlbnQ7XG4gICAgICAgICAgdmFyIHBhdGNoYWJsZSA9IGlzUGF0Y2hhYmxlKHZub2RlKTtcbiAgICAgICAgICB3aGlsZSAoYW5jZXN0b3IpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2JzLmRlc3Ryb3kubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgY2JzLmRlc3Ryb3lbaV0oYW5jZXN0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW5jZXN0b3IuZWxtID0gdm5vZGUuZWxtO1xuICAgICAgICAgICAgaWYgKHBhdGNoYWJsZSkge1xuICAgICAgICAgICAgICBmb3IgKHZhciBpJDEgPSAwOyBpJDEgPCBjYnMuY3JlYXRlLmxlbmd0aDsgKytpJDEpIHtcbiAgICAgICAgICAgICAgICBjYnMuY3JlYXRlW2kkMV0oZW1wdHlOb2RlLCBhbmNlc3Rvcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gIzY1MTNcbiAgICAgICAgICAgICAgLy8gaW52b2tlIGluc2VydCBob29rcyB0aGF0IG1heSBoYXZlIGJlZW4gbWVyZ2VkIGJ5IGNyZWF0ZSBob29rcy5cbiAgICAgICAgICAgICAgLy8gZS5nLiBmb3IgZGlyZWN0aXZlcyB0aGF0IHVzZXMgdGhlIFwiaW5zZXJ0ZWRcIiBob29rLlxuICAgICAgICAgICAgICB2YXIgaW5zZXJ0ID0gYW5jZXN0b3IuZGF0YS5ob29rLmluc2VydDtcbiAgICAgICAgICAgICAgaWYgKGluc2VydC5tZXJnZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBzdGFydCBhdCBpbmRleCAxIHRvIGF2b2lkIHJlLWludm9raW5nIGNvbXBvbmVudCBtb3VudGVkIGhvb2tcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpJDIgPSAxOyBpJDIgPCBpbnNlcnQuZm5zLmxlbmd0aDsgaSQyKyspIHtcbiAgICAgICAgICAgICAgICAgIGluc2VydC5mbnNbaSQyXSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVnaXN0ZXJSZWYoYW5jZXN0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci5wYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZGVzdHJveSBvbGQgbm9kZVxuICAgICAgICBpZiAoaXNEZWYocGFyZW50RWxtKSkge1xuICAgICAgICAgIHJlbW92ZVZub2RlcyhwYXJlbnRFbG0sIFtvbGRWbm9kZV0sIDAsIDApO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVmKG9sZFZub2RlLnRhZykpIHtcbiAgICAgICAgICBpbnZva2VEZXN0cm95SG9vayhvbGRWbm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnZva2VJbnNlcnRIb29rKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIGlzSW5pdGlhbFBhdGNoKTtcbiAgICByZXR1cm4gdm5vZGUuZWxtXG4gIH1cbn1cblxuLyogICovXG5cbnZhciBkaXJlY3RpdmVzID0ge1xuICBjcmVhdGU6IHVwZGF0ZURpcmVjdGl2ZXMsXG4gIHVwZGF0ZTogdXBkYXRlRGlyZWN0aXZlcyxcbiAgZGVzdHJveTogZnVuY3Rpb24gdW5iaW5kRGlyZWN0aXZlcyAodm5vZGUpIHtcbiAgICB1cGRhdGVEaXJlY3RpdmVzKHZub2RlLCBlbXB0eU5vZGUpO1xuICB9XG59O1xuXG5mdW5jdGlvbiB1cGRhdGVEaXJlY3RpdmVzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgaWYgKG9sZFZub2RlLmRhdGEuZGlyZWN0aXZlcyB8fCB2bm9kZS5kYXRhLmRpcmVjdGl2ZXMpIHtcbiAgICBfdXBkYXRlKG9sZFZub2RlLCB2bm9kZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX3VwZGF0ZSAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBpc0NyZWF0ZSA9IG9sZFZub2RlID09PSBlbXB0eU5vZGU7XG4gIHZhciBpc0Rlc3Ryb3kgPSB2bm9kZSA9PT0gZW1wdHlOb2RlO1xuICB2YXIgb2xkRGlycyA9IG5vcm1hbGl6ZURpcmVjdGl2ZXMkMShvbGRWbm9kZS5kYXRhLmRpcmVjdGl2ZXMsIG9sZFZub2RlLmNvbnRleHQpO1xuICB2YXIgbmV3RGlycyA9IG5vcm1hbGl6ZURpcmVjdGl2ZXMkMSh2bm9kZS5kYXRhLmRpcmVjdGl2ZXMsIHZub2RlLmNvbnRleHQpO1xuXG4gIHZhciBkaXJzV2l0aEluc2VydCA9IFtdO1xuICB2YXIgZGlyc1dpdGhQb3N0cGF0Y2ggPSBbXTtcblxuICB2YXIga2V5LCBvbGREaXIsIGRpcjtcbiAgZm9yIChrZXkgaW4gbmV3RGlycykge1xuICAgIG9sZERpciA9IG9sZERpcnNba2V5XTtcbiAgICBkaXIgPSBuZXdEaXJzW2tleV07XG4gICAgaWYgKCFvbGREaXIpIHtcbiAgICAgIC8vIG5ldyBkaXJlY3RpdmUsIGJpbmRcbiAgICAgIGNhbGxIb29rJDEoZGlyLCAnYmluZCcsIHZub2RlLCBvbGRWbm9kZSk7XG4gICAgICBpZiAoZGlyLmRlZiAmJiBkaXIuZGVmLmluc2VydGVkKSB7XG4gICAgICAgIGRpcnNXaXRoSW5zZXJ0LnB1c2goZGlyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXhpc3RpbmcgZGlyZWN0aXZlLCB1cGRhdGVcbiAgICAgIGRpci5vbGRWYWx1ZSA9IG9sZERpci52YWx1ZTtcbiAgICAgIGRpci5vbGRBcmcgPSBvbGREaXIuYXJnO1xuICAgICAgY2FsbEhvb2skMShkaXIsICd1cGRhdGUnLCB2bm9kZSwgb2xkVm5vZGUpO1xuICAgICAgaWYgKGRpci5kZWYgJiYgZGlyLmRlZi5jb21wb25lbnRVcGRhdGVkKSB7XG4gICAgICAgIGRpcnNXaXRoUG9zdHBhdGNoLnB1c2goZGlyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoZGlyc1dpdGhJbnNlcnQubGVuZ3RoKSB7XG4gICAgdmFyIGNhbGxJbnNlcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpcnNXaXRoSW5zZXJ0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNhbGxIb29rJDEoZGlyc1dpdGhJbnNlcnRbaV0sICdpbnNlcnRlZCcsIHZub2RlLCBvbGRWbm9kZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAoaXNDcmVhdGUpIHtcbiAgICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAnaW5zZXJ0JywgY2FsbEluc2VydCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxJbnNlcnQoKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZGlyc1dpdGhQb3N0cGF0Y2gubGVuZ3RoKSB7XG4gICAgbWVyZ2VWTm9kZUhvb2sodm5vZGUsICdwb3N0cGF0Y2gnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpcnNXaXRoUG9zdHBhdGNoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNhbGxIb29rJDEoZGlyc1dpdGhQb3N0cGF0Y2hbaV0sICdjb21wb25lbnRVcGRhdGVkJywgdm5vZGUsIG9sZFZub2RlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlmICghaXNDcmVhdGUpIHtcbiAgICBmb3IgKGtleSBpbiBvbGREaXJzKSB7XG4gICAgICBpZiAoIW5ld0RpcnNba2V5XSkge1xuICAgICAgICAvLyBubyBsb25nZXIgcHJlc2VudCwgdW5iaW5kXG4gICAgICAgIGNhbGxIb29rJDEob2xkRGlyc1trZXldLCAndW5iaW5kJywgb2xkVm5vZGUsIG9sZFZub2RlLCBpc0Rlc3Ryb3kpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgZW1wdHlNb2RpZmllcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG5mdW5jdGlvbiBub3JtYWxpemVEaXJlY3RpdmVzJDEgKFxuICBkaXJzLFxuICB2bVxuKSB7XG4gIHZhciByZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBpZiAoIWRpcnMpIHtcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICByZXR1cm4gcmVzXG4gIH1cbiAgdmFyIGksIGRpcjtcbiAgZm9yIChpID0gMDsgaSA8IGRpcnMubGVuZ3RoOyBpKyspIHtcbiAgICBkaXIgPSBkaXJzW2ldO1xuICAgIGlmICghZGlyLm1vZGlmaWVycykge1xuICAgICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgICBkaXIubW9kaWZpZXJzID0gZW1wdHlNb2RpZmllcnM7XG4gICAgfVxuICAgIHJlc1tnZXRSYXdEaXJOYW1lKGRpcildID0gZGlyO1xuICAgIGRpci5kZWYgPSByZXNvbHZlQXNzZXQodm0uJG9wdGlvbnMsICdkaXJlY3RpdmVzJywgZGlyLm5hbWUsIHRydWUpO1xuICB9XG4gIC8vICRmbG93LWRpc2FibGUtbGluZVxuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdldFJhd0Rpck5hbWUgKGRpcikge1xuICByZXR1cm4gZGlyLnJhd05hbWUgfHwgKChkaXIubmFtZSkgKyBcIi5cIiArIChPYmplY3Qua2V5cyhkaXIubW9kaWZpZXJzIHx8IHt9KS5qb2luKCcuJykpKVxufVxuXG5mdW5jdGlvbiBjYWxsSG9vayQxIChkaXIsIGhvb2ssIHZub2RlLCBvbGRWbm9kZSwgaXNEZXN0cm95KSB7XG4gIHZhciBmbiA9IGRpci5kZWYgJiYgZGlyLmRlZltob29rXTtcbiAgaWYgKGZuKSB7XG4gICAgdHJ5IHtcbiAgICAgIGZuKHZub2RlLmVsbSwgZGlyLCB2bm9kZSwgb2xkVm5vZGUsIGlzRGVzdHJveSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaGFuZGxlRXJyb3IoZSwgdm5vZGUuY29udGV4dCwgKFwiZGlyZWN0aXZlIFwiICsgKGRpci5uYW1lKSArIFwiIFwiICsgaG9vayArIFwiIGhvb2tcIikpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgYmFzZU1vZHVsZXMgPSBbXG4gIHJlZixcbiAgZGlyZWN0aXZlc1xuXTtcblxuLyogICovXG5cbmZ1bmN0aW9uIHVwZGF0ZUF0dHJzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgdmFyIG9wdHMgPSB2bm9kZS5jb21wb25lbnRPcHRpb25zO1xuICBpZiAoaXNEZWYob3B0cykgJiYgb3B0cy5DdG9yLm9wdGlvbnMuaW5oZXJpdEF0dHJzID09PSBmYWxzZSkge1xuICAgIHJldHVyblxuICB9XG4gIGlmIChpc1VuZGVmKG9sZFZub2RlLmRhdGEuYXR0cnMpICYmIGlzVW5kZWYodm5vZGUuZGF0YS5hdHRycykpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIga2V5LCBjdXIsIG9sZDtcbiAgdmFyIGVsbSA9IHZub2RlLmVsbTtcbiAgdmFyIG9sZEF0dHJzID0gb2xkVm5vZGUuZGF0YS5hdHRycyB8fCB7fTtcbiAgdmFyIGF0dHJzID0gdm5vZGUuZGF0YS5hdHRycyB8fCB7fTtcbiAgLy8gY2xvbmUgb2JzZXJ2ZWQgb2JqZWN0cywgYXMgdGhlIHVzZXIgcHJvYmFibHkgd2FudHMgdG8gbXV0YXRlIGl0XG4gIGlmIChpc0RlZihhdHRycy5fX29iX18pKSB7XG4gICAgYXR0cnMgPSB2bm9kZS5kYXRhLmF0dHJzID0gZXh0ZW5kKHt9LCBhdHRycyk7XG4gIH1cblxuICBmb3IgKGtleSBpbiBhdHRycykge1xuICAgIGN1ciA9IGF0dHJzW2tleV07XG4gICAgb2xkID0gb2xkQXR0cnNba2V5XTtcbiAgICBpZiAob2xkICE9PSBjdXIpIHtcbiAgICAgIHNldEF0dHIoZWxtLCBrZXksIGN1cik7XG4gICAgfVxuICB9XG4gIC8vICM0MzkxOiBpbiBJRTksIHNldHRpbmcgdHlwZSBjYW4gcmVzZXQgdmFsdWUgZm9yIGlucHV0W3R5cGU9cmFkaW9dXG4gIC8vICM2NjY2OiBJRS9FZGdlIGZvcmNlcyBwcm9ncmVzcyB2YWx1ZSBkb3duIHRvIDEgYmVmb3JlIHNldHRpbmcgYSBtYXhcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICgoaXNJRSB8fCBpc0VkZ2UpICYmIGF0dHJzLnZhbHVlICE9PSBvbGRBdHRycy52YWx1ZSkge1xuICAgIHNldEF0dHIoZWxtLCAndmFsdWUnLCBhdHRycy52YWx1ZSk7XG4gIH1cbiAgZm9yIChrZXkgaW4gb2xkQXR0cnMpIHtcbiAgICBpZiAoaXNVbmRlZihhdHRyc1trZXldKSkge1xuICAgICAgaWYgKGlzWGxpbmsoa2V5KSkge1xuICAgICAgICBlbG0ucmVtb3ZlQXR0cmlidXRlTlMoeGxpbmtOUywgZ2V0WGxpbmtQcm9wKGtleSkpO1xuICAgICAgfSBlbHNlIGlmICghaXNFbnVtZXJhdGVkQXR0cihrZXkpKSB7XG4gICAgICAgIGVsbS5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0QXR0ciAoZWwsIGtleSwgdmFsdWUpIHtcbiAgaWYgKGVsLnRhZ05hbWUuaW5kZXhPZignLScpID4gLTEpIHtcbiAgICBiYXNlU2V0QXR0cihlbCwga2V5LCB2YWx1ZSk7XG4gIH0gZWxzZSBpZiAoaXNCb29sZWFuQXR0cihrZXkpKSB7XG4gICAgLy8gc2V0IGF0dHJpYnV0ZSBmb3IgYmxhbmsgdmFsdWVcbiAgICAvLyBlLmcuIDxvcHRpb24gZGlzYWJsZWQ+U2VsZWN0IG9uZTwvb3B0aW9uPlxuICAgIGlmIChpc0ZhbHN5QXR0clZhbHVlKHZhbHVlKSkge1xuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRlY2huaWNhbGx5IGFsbG93ZnVsbHNjcmVlbiBpcyBhIGJvb2xlYW4gYXR0cmlidXRlIGZvciA8aWZyYW1lPixcbiAgICAgIC8vIGJ1dCBGbGFzaCBleHBlY3RzIGEgdmFsdWUgb2YgXCJ0cnVlXCIgd2hlbiB1c2VkIG9uIDxlbWJlZD4gdGFnXG4gICAgICB2YWx1ZSA9IGtleSA9PT0gJ2FsbG93ZnVsbHNjcmVlbicgJiYgZWwudGFnTmFtZSA9PT0gJ0VNQkVEJ1xuICAgICAgICA/ICd0cnVlJ1xuICAgICAgICA6IGtleTtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNFbnVtZXJhdGVkQXR0cihrZXkpKSB7XG4gICAgZWwuc2V0QXR0cmlidXRlKGtleSwgY29udmVydEVudW1lcmF0ZWRWYWx1ZShrZXksIHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNYbGluayhrZXkpKSB7XG4gICAgaWYgKGlzRmFsc3lBdHRyVmFsdWUodmFsdWUpKSB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGVOUyh4bGlua05TLCBnZXRYbGlua1Byb3Aoa2V5KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZU5TKHhsaW5rTlMsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBiYXNlU2V0QXR0cihlbCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZVNldEF0dHIgKGVsLCBrZXksIHZhbHVlKSB7XG4gIGlmIChpc0ZhbHN5QXR0clZhbHVlKHZhbHVlKSkge1xuICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICB9IGVsc2Uge1xuICAgIC8vICM3MTM4OiBJRTEwICYgMTEgZmlyZXMgaW5wdXQgZXZlbnQgd2hlbiBzZXR0aW5nIHBsYWNlaG9sZGVyIG9uXG4gICAgLy8gPHRleHRhcmVhPi4uLiBibG9jayB0aGUgZmlyc3QgaW5wdXQgZXZlbnQgYW5kIHJlbW92ZSB0aGUgYmxvY2tlclxuICAgIC8vIGltbWVkaWF0ZWx5LlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChcbiAgICAgIGlzSUUgJiYgIWlzSUU5ICYmXG4gICAgICBlbC50YWdOYW1lID09PSAnVEVYVEFSRUEnICYmXG4gICAgICBrZXkgPT09ICdwbGFjZWhvbGRlcicgJiYgdmFsdWUgIT09ICcnICYmICFlbC5fX2llcGhcbiAgICApIHtcbiAgICAgIHZhciBibG9ja2VyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBibG9ja2VyKTtcbiAgICAgIH07XG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGJsb2NrZXIpO1xuICAgICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgICBlbC5fX2llcGggPSB0cnVlOyAvKiBJRSBwbGFjZWhvbGRlciBwYXRjaGVkICovXG4gICAgfVxuICAgIGVsLnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKTtcbiAgfVxufVxuXG52YXIgYXR0cnMgPSB7XG4gIGNyZWF0ZTogdXBkYXRlQXR0cnMsXG4gIHVwZGF0ZTogdXBkYXRlQXR0cnNcbn07XG5cbi8qICAqL1xuXG5mdW5jdGlvbiB1cGRhdGVDbGFzcyAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBlbCA9IHZub2RlLmVsbTtcbiAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICB2YXIgb2xkRGF0YSA9IG9sZFZub2RlLmRhdGE7XG4gIGlmIChcbiAgICBpc1VuZGVmKGRhdGEuc3RhdGljQ2xhc3MpICYmXG4gICAgaXNVbmRlZihkYXRhLmNsYXNzKSAmJiAoXG4gICAgICBpc1VuZGVmKG9sZERhdGEpIHx8IChcbiAgICAgICAgaXNVbmRlZihvbGREYXRhLnN0YXRpY0NsYXNzKSAmJlxuICAgICAgICBpc1VuZGVmKG9sZERhdGEuY2xhc3MpXG4gICAgICApXG4gICAgKVxuICApIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBjbHMgPSBnZW5DbGFzc0ZvclZub2RlKHZub2RlKTtcblxuICAvLyBoYW5kbGUgdHJhbnNpdGlvbiBjbGFzc2VzXG4gIHZhciB0cmFuc2l0aW9uQ2xhc3MgPSBlbC5fdHJhbnNpdGlvbkNsYXNzZXM7XG4gIGlmIChpc0RlZih0cmFuc2l0aW9uQ2xhc3MpKSB7XG4gICAgY2xzID0gY29uY2F0KGNscywgc3RyaW5naWZ5Q2xhc3ModHJhbnNpdGlvbkNsYXNzKSk7XG4gIH1cblxuICAvLyBzZXQgdGhlIGNsYXNzXG4gIGlmIChjbHMgIT09IGVsLl9wcmV2Q2xhc3MpIHtcbiAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgY2xzKTtcbiAgICBlbC5fcHJldkNsYXNzID0gY2xzO1xuICB9XG59XG5cbnZhciBrbGFzcyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVDbGFzcyxcbiAgdXBkYXRlOiB1cGRhdGVDbGFzc1xufTtcblxuLyogICovXG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLyogICovXG5cbi8vIGluIHNvbWUgY2FzZXMsIHRoZSBldmVudCB1c2VkIGhhcyB0byBiZSBkZXRlcm1pbmVkIGF0IHJ1bnRpbWVcbi8vIHNvIHdlIHVzZWQgc29tZSByZXNlcnZlZCB0b2tlbnMgZHVyaW5nIGNvbXBpbGUuXG52YXIgUkFOR0VfVE9LRU4gPSAnX19yJztcbnZhciBDSEVDS0JPWF9SQURJT19UT0tFTiA9ICdfX2MnO1xuXG4vKiAgKi9cblxuLy8gbm9ybWFsaXplIHYtbW9kZWwgZXZlbnQgdG9rZW5zIHRoYXQgY2FuIG9ubHkgYmUgZGV0ZXJtaW5lZCBhdCBydW50aW1lLlxuLy8gaXQncyBpbXBvcnRhbnQgdG8gcGxhY2UgdGhlIGV2ZW50IGFzIHRoZSBmaXJzdCBpbiB0aGUgYXJyYXkgYmVjYXVzZVxuLy8gdGhlIHdob2xlIHBvaW50IGlzIGVuc3VyaW5nIHRoZSB2LW1vZGVsIGNhbGxiYWNrIGdldHMgY2FsbGVkIGJlZm9yZVxuLy8gdXNlci1hdHRhY2hlZCBoYW5kbGVycy5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUV2ZW50cyAob24pIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihvbltSQU5HRV9UT0tFTl0pKSB7XG4gICAgLy8gSUUgaW5wdXRbdHlwZT1yYW5nZV0gb25seSBzdXBwb3J0cyBgY2hhbmdlYCBldmVudFxuICAgIHZhciBldmVudCA9IGlzSUUgPyAnY2hhbmdlJyA6ICdpbnB1dCc7XG4gICAgb25bZXZlbnRdID0gW10uY29uY2F0KG9uW1JBTkdFX1RPS0VOXSwgb25bZXZlbnRdIHx8IFtdKTtcbiAgICBkZWxldGUgb25bUkFOR0VfVE9LRU5dO1xuICB9XG4gIC8vIFRoaXMgd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWQgdG8gZml4ICM0NTIxIGJ1dCBubyBsb25nZXIgbmVjZXNzYXJ5XG4gIC8vIGFmdGVyIDIuNS4gS2VlcGluZyBpdCBmb3IgYmFja3dhcmRzIGNvbXBhdCB3aXRoIGdlbmVyYXRlZCBjb2RlIGZyb20gPCAyLjRcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihvbltDSEVDS0JPWF9SQURJT19UT0tFTl0pKSB7XG4gICAgb24uY2hhbmdlID0gW10uY29uY2F0KG9uW0NIRUNLQk9YX1JBRElPX1RPS0VOXSwgb24uY2hhbmdlIHx8IFtdKTtcbiAgICBkZWxldGUgb25bQ0hFQ0tCT1hfUkFESU9fVE9LRU5dO1xuICB9XG59XG5cbnZhciB0YXJnZXQkMTtcblxuZnVuY3Rpb24gY3JlYXRlT25jZUhhbmRsZXIkMSAoZXZlbnQsIGhhbmRsZXIsIGNhcHR1cmUpIHtcbiAgdmFyIF90YXJnZXQgPSB0YXJnZXQkMTsgLy8gc2F2ZSBjdXJyZW50IHRhcmdldCBlbGVtZW50IGluIGNsb3N1cmVcbiAgcmV0dXJuIGZ1bmN0aW9uIG9uY2VIYW5kbGVyICgpIHtcbiAgICB2YXIgcmVzID0gaGFuZGxlci5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIGlmIChyZXMgIT09IG51bGwpIHtcbiAgICAgIHJlbW92ZSQyKGV2ZW50LCBvbmNlSGFuZGxlciwgY2FwdHVyZSwgX3RhcmdldCk7XG4gICAgfVxuICB9XG59XG5cbi8vICM5NDQ2OiBGaXJlZm94IDw9IDUzIChpbiBwYXJ0aWN1bGFyLCBFU1IgNTIpIGhhcyBpbmNvcnJlY3QgRXZlbnQudGltZVN0YW1wXG4vLyBpbXBsZW1lbnRhdGlvbiBhbmQgZG9lcyBub3QgZmlyZSBtaWNyb3Rhc2tzIGluIGJldHdlZW4gZXZlbnQgcHJvcGFnYXRpb24sIHNvXG4vLyBzYWZlIHRvIGV4Y2x1ZGUuXG52YXIgdXNlTWljcm90YXNrRml4ID0gaXNVc2luZ01pY3JvVGFzayAmJiAhKGlzRkYgJiYgTnVtYmVyKGlzRkZbMV0pIDw9IDUzKTtcblxuZnVuY3Rpb24gYWRkJDEgKFxuICBuYW1lLFxuICBoYW5kbGVyLFxuICBjYXB0dXJlLFxuICBwYXNzaXZlXG4pIHtcbiAgLy8gYXN5bmMgZWRnZSBjYXNlICM2NTY2OiBpbm5lciBjbGljayBldmVudCB0cmlnZ2VycyBwYXRjaCwgZXZlbnQgaGFuZGxlclxuICAvLyBhdHRhY2hlZCB0byBvdXRlciBlbGVtZW50IGR1cmluZyBwYXRjaCwgYW5kIHRyaWdnZXJlZCBhZ2Fpbi4gVGhpc1xuICAvLyBoYXBwZW5zIGJlY2F1c2UgYnJvd3NlcnMgZmlyZSBtaWNyb3Rhc2sgdGlja3MgYmV0d2VlbiBldmVudCBwcm9wYWdhdGlvbi5cbiAgLy8gdGhlIHNvbHV0aW9uIGlzIHNpbXBsZTogd2Ugc2F2ZSB0aGUgdGltZXN0YW1wIHdoZW4gYSBoYW5kbGVyIGlzIGF0dGFjaGVkLFxuICAvLyBhbmQgdGhlIGhhbmRsZXIgd291bGQgb25seSBmaXJlIGlmIHRoZSBldmVudCBwYXNzZWQgdG8gaXQgd2FzIGZpcmVkXG4gIC8vIEFGVEVSIGl0IHdhcyBhdHRhY2hlZC5cbiAgaWYgKHVzZU1pY3JvdGFza0ZpeCkge1xuICAgIHZhciBhdHRhY2hlZFRpbWVzdGFtcCA9IGN1cnJlbnRGbHVzaFRpbWVzdGFtcDtcbiAgICB2YXIgb3JpZ2luYWwgPSBoYW5kbGVyO1xuICAgIGhhbmRsZXIgPSBvcmlnaW5hbC5fd3JhcHBlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIC8vIG5vIGJ1YmJsaW5nLCBzaG91bGQgYWx3YXlzIGZpcmUuXG4gICAgICAgIC8vIHRoaXMgaXMganVzdCBhIHNhZmV0eSBuZXQgaW4gY2FzZSBldmVudC50aW1lU3RhbXAgaXMgdW5yZWxpYWJsZSBpblxuICAgICAgICAvLyBjZXJ0YWluIHdlaXJkIGVudmlyb25tZW50cy4uLlxuICAgICAgICBlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0IHx8XG4gICAgICAgIC8vIGV2ZW50IGlzIGZpcmVkIGFmdGVyIGhhbmRsZXIgYXR0YWNobWVudFxuICAgICAgICBlLnRpbWVTdGFtcCA+PSBhdHRhY2hlZFRpbWVzdGFtcCB8fFxuICAgICAgICAvLyBiYWlsIGZvciBlbnZpcm9ubWVudHMgdGhhdCBoYXZlIGJ1Z2d5IGV2ZW50LnRpbWVTdGFtcCBpbXBsZW1lbnRhdGlvbnNcbiAgICAgICAgLy8gIzk0NjIgaU9TIDkgYnVnOiBldmVudC50aW1lU3RhbXAgaXMgMCBhZnRlciBoaXN0b3J5LnB1c2hTdGF0ZVxuICAgICAgICAvLyAjOTY4MSBRdFdlYkVuZ2luZSBldmVudC50aW1lU3RhbXAgaXMgbmVnYXRpdmUgdmFsdWVcbiAgICAgICAgZS50aW1lU3RhbXAgPD0gMCB8fFxuICAgICAgICAvLyAjOTQ0OCBiYWlsIGlmIGV2ZW50IGlzIGZpcmVkIGluIGFub3RoZXIgZG9jdW1lbnQgaW4gYSBtdWx0aS1wYWdlXG4gICAgICAgIC8vIGVsZWN0cm9uL253LmpzIGFwcCwgc2luY2UgZXZlbnQudGltZVN0YW1wIHdpbGwgYmUgdXNpbmcgYSBkaWZmZXJlbnRcbiAgICAgICAgLy8gc3RhcnRpbmcgcmVmZXJlbmNlXG4gICAgICAgIGUudGFyZ2V0Lm93bmVyRG9jdW1lbnQgIT09IGRvY3VtZW50XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHRhcmdldCQxLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgbmFtZSxcbiAgICBoYW5kbGVyLFxuICAgIHN1cHBvcnRzUGFzc2l2ZVxuICAgICAgPyB7IGNhcHR1cmU6IGNhcHR1cmUsIHBhc3NpdmU6IHBhc3NpdmUgfVxuICAgICAgOiBjYXB0dXJlXG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZSQyIChcbiAgbmFtZSxcbiAgaGFuZGxlcixcbiAgY2FwdHVyZSxcbiAgX3RhcmdldFxuKSB7XG4gIChfdGFyZ2V0IHx8IHRhcmdldCQxKS5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgIG5hbWUsXG4gICAgaGFuZGxlci5fd3JhcHBlciB8fCBoYW5kbGVyLFxuICAgIGNhcHR1cmVcbiAgKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRE9NTGlzdGVuZXJzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgaWYgKGlzVW5kZWYob2xkVm5vZGUuZGF0YS5vbikgJiYgaXNVbmRlZih2bm9kZS5kYXRhLm9uKSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBvbiA9IHZub2RlLmRhdGEub24gfHwge307XG4gIHZhciBvbGRPbiA9IG9sZFZub2RlLmRhdGEub24gfHwge307XG4gIHRhcmdldCQxID0gdm5vZGUuZWxtO1xuICBub3JtYWxpemVFdmVudHMob24pO1xuICB1cGRhdGVMaXN0ZW5lcnMob24sIG9sZE9uLCBhZGQkMSwgcmVtb3ZlJDIsIGNyZWF0ZU9uY2VIYW5kbGVyJDEsIHZub2RlLmNvbnRleHQpO1xuICB0YXJnZXQkMSA9IHVuZGVmaW5lZDtcbn1cblxudmFyIGV2ZW50cyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVET01MaXN0ZW5lcnMsXG4gIHVwZGF0ZTogdXBkYXRlRE9NTGlzdGVuZXJzXG59O1xuXG4vKiAgKi9cblxudmFyIHN2Z0NvbnRhaW5lcjtcblxuZnVuY3Rpb24gdXBkYXRlRE9NUHJvcHMgKG9sZFZub2RlLCB2bm9kZSkge1xuICBpZiAoaXNVbmRlZihvbGRWbm9kZS5kYXRhLmRvbVByb3BzKSAmJiBpc1VuZGVmKHZub2RlLmRhdGEuZG9tUHJvcHMpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIGtleSwgY3VyO1xuICB2YXIgZWxtID0gdm5vZGUuZWxtO1xuICB2YXIgb2xkUHJvcHMgPSBvbGRWbm9kZS5kYXRhLmRvbVByb3BzIHx8IHt9O1xuICB2YXIgcHJvcHMgPSB2bm9kZS5kYXRhLmRvbVByb3BzIHx8IHt9O1xuICAvLyBjbG9uZSBvYnNlcnZlZCBvYmplY3RzLCBhcyB0aGUgdXNlciBwcm9iYWJseSB3YW50cyB0byBtdXRhdGUgaXRcbiAgaWYgKGlzRGVmKHByb3BzLl9fb2JfXykpIHtcbiAgICBwcm9wcyA9IHZub2RlLmRhdGEuZG9tUHJvcHMgPSBleHRlbmQoe30sIHByb3BzKTtcbiAgfVxuXG4gIGZvciAoa2V5IGluIG9sZFByb3BzKSB7XG4gICAgaWYgKCEoa2V5IGluIHByb3BzKSkge1xuICAgICAgZWxtW2tleV0gPSAnJztcbiAgICB9XG4gIH1cblxuICBmb3IgKGtleSBpbiBwcm9wcykge1xuICAgIGN1ciA9IHByb3BzW2tleV07XG4gICAgLy8gaWdub3JlIGNoaWxkcmVuIGlmIHRoZSBub2RlIGhhcyB0ZXh0Q29udGVudCBvciBpbm5lckhUTUwsXG4gICAgLy8gYXMgdGhlc2Ugd2lsbCB0aHJvdyBhd2F5IGV4aXN0aW5nIERPTSBub2RlcyBhbmQgY2F1c2UgcmVtb3ZhbCBlcnJvcnNcbiAgICAvLyBvbiBzdWJzZXF1ZW50IHBhdGNoZXMgKCMzMzYwKVxuICAgIGlmIChrZXkgPT09ICd0ZXh0Q29udGVudCcgfHwga2V5ID09PSAnaW5uZXJIVE1MJykge1xuICAgICAgaWYgKHZub2RlLmNoaWxkcmVuKSB7IHZub2RlLmNoaWxkcmVuLmxlbmd0aCA9IDA7IH1cbiAgICAgIGlmIChjdXIgPT09IG9sZFByb3BzW2tleV0pIHsgY29udGludWUgfVxuICAgICAgLy8gIzY2MDEgd29yayBhcm91bmQgQ2hyb21lIHZlcnNpb24gPD0gNTUgYnVnIHdoZXJlIHNpbmdsZSB0ZXh0Tm9kZVxuICAgICAgLy8gcmVwbGFjZWQgYnkgaW5uZXJIVE1ML3RleHRDb250ZW50IHJldGFpbnMgaXRzIHBhcmVudE5vZGUgcHJvcGVydHlcbiAgICAgIGlmIChlbG0uY2hpbGROb2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgZWxtLnJlbW92ZUNoaWxkKGVsbS5jaGlsZE5vZGVzWzBdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoa2V5ID09PSAndmFsdWUnICYmIGVsbS50YWdOYW1lICE9PSAnUFJPR1JFU1MnKSB7XG4gICAgICAvLyBzdG9yZSB2YWx1ZSBhcyBfdmFsdWUgYXMgd2VsbCBzaW5jZVxuICAgICAgLy8gbm9uLXN0cmluZyB2YWx1ZXMgd2lsbCBiZSBzdHJpbmdpZmllZFxuICAgICAgZWxtLl92YWx1ZSA9IGN1cjtcbiAgICAgIC8vIGF2b2lkIHJlc2V0dGluZyBjdXJzb3IgcG9zaXRpb24gd2hlbiB2YWx1ZSBpcyB0aGUgc2FtZVxuICAgICAgdmFyIHN0ckN1ciA9IGlzVW5kZWYoY3VyKSA/ICcnIDogU3RyaW5nKGN1cik7XG4gICAgICBpZiAoc2hvdWxkVXBkYXRlVmFsdWUoZWxtLCBzdHJDdXIpKSB7XG4gICAgICAgIGVsbS52YWx1ZSA9IHN0ckN1cjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2lubmVySFRNTCcgJiYgaXNTVkcoZWxtLnRhZ05hbWUpICYmIGlzVW5kZWYoZWxtLmlubmVySFRNTCkpIHtcbiAgICAgIC8vIElFIGRvZXNuJ3Qgc3VwcG9ydCBpbm5lckhUTUwgZm9yIFNWRyBlbGVtZW50c1xuICAgICAgc3ZnQ29udGFpbmVyID0gc3ZnQ29udGFpbmVyIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgc3ZnQ29udGFpbmVyLmlubmVySFRNTCA9IFwiPHN2Zz5cIiArIGN1ciArIFwiPC9zdmc+XCI7XG4gICAgICB2YXIgc3ZnID0gc3ZnQ29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgICB3aGlsZSAoZWxtLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgZWxtLnJlbW92ZUNoaWxkKGVsbS5maXJzdENoaWxkKTtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChzdmcuZmlyc3RDaGlsZCkge1xuICAgICAgICBlbG0uYXBwZW5kQ2hpbGQoc3ZnLmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAvLyBza2lwIHRoZSB1cGRhdGUgaWYgb2xkIGFuZCBuZXcgVkRPTSBzdGF0ZSBpcyB0aGUgc2FtZS5cbiAgICAgIC8vIGB2YWx1ZWAgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5IGJlY2F1c2UgdGhlIERPTSB2YWx1ZSBtYXkgYmUgdGVtcG9yYXJpbHlcbiAgICAgIC8vIG91dCBvZiBzeW5jIHdpdGggVkRPTSBzdGF0ZSBkdWUgdG8gZm9jdXMsIGNvbXBvc2l0aW9uIGFuZCBtb2RpZmllcnMuXG4gICAgICAvLyBUaGlzICAjNDUyMSBieSBza2lwcGluZyB0aGUgdW5uZWNlc2FycnkgYGNoZWNrZWRgIHVwZGF0ZS5cbiAgICAgIGN1ciAhPT0gb2xkUHJvcHNba2V5XVxuICAgICkge1xuICAgICAgLy8gc29tZSBwcm9wZXJ0eSB1cGRhdGVzIGNhbiB0aHJvd1xuICAgICAgLy8gZS5nLiBgdmFsdWVgIG9uIDxwcm9ncmVzcz4gdy8gbm9uLWZpbml0ZSB2YWx1ZVxuICAgICAgdHJ5IHtcbiAgICAgICAgZWxtW2tleV0gPSBjdXI7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuICAgIH1cbiAgfVxufVxuXG4vLyBjaGVjayBwbGF0Zm9ybXMvd2ViL3V0aWwvYXR0cnMuanMgYWNjZXB0VmFsdWVcblxuXG5mdW5jdGlvbiBzaG91bGRVcGRhdGVWYWx1ZSAoZWxtLCBjaGVja1ZhbCkge1xuICByZXR1cm4gKCFlbG0uY29tcG9zaW5nICYmIChcbiAgICBlbG0udGFnTmFtZSA9PT0gJ09QVElPTicgfHxcbiAgICBpc05vdEluRm9jdXNBbmREaXJ0eShlbG0sIGNoZWNrVmFsKSB8fFxuICAgIGlzRGlydHlXaXRoTW9kaWZpZXJzKGVsbSwgY2hlY2tWYWwpXG4gICkpXG59XG5cbmZ1bmN0aW9uIGlzTm90SW5Gb2N1c0FuZERpcnR5IChlbG0sIGNoZWNrVmFsKSB7XG4gIC8vIHJldHVybiB0cnVlIHdoZW4gdGV4dGJveCAoLm51bWJlciBhbmQgLnRyaW0pIGxvc2VzIGZvY3VzIGFuZCBpdHMgdmFsdWUgaXNcbiAgLy8gbm90IGVxdWFsIHRvIHRoZSB1cGRhdGVkIHZhbHVlXG4gIHZhciBub3RJbkZvY3VzID0gdHJ1ZTtcbiAgLy8gIzYxNTdcbiAgLy8gd29yayBhcm91bmQgSUUgYnVnIHdoZW4gYWNjZXNzaW5nIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW4gYW4gaWZyYW1lXG4gIHRyeSB7IG5vdEluRm9jdXMgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBlbG07IH0gY2F0Y2ggKGUpIHt9XG4gIHJldHVybiBub3RJbkZvY3VzICYmIGVsbS52YWx1ZSAhPT0gY2hlY2tWYWxcbn1cblxuZnVuY3Rpb24gaXNEaXJ0eVdpdGhNb2RpZmllcnMgKGVsbSwgbmV3VmFsKSB7XG4gIHZhciB2YWx1ZSA9IGVsbS52YWx1ZTtcbiAgdmFyIG1vZGlmaWVycyA9IGVsbS5fdk1vZGlmaWVyczsgLy8gaW5qZWN0ZWQgYnkgdi1tb2RlbCBydW50aW1lXG4gIGlmIChpc0RlZihtb2RpZmllcnMpKSB7XG4gICAgaWYgKG1vZGlmaWVycy5udW1iZXIpIHtcbiAgICAgIHJldHVybiB0b051bWJlcih2YWx1ZSkgIT09IHRvTnVtYmVyKG5ld1ZhbClcbiAgICB9XG4gICAgaWYgKG1vZGlmaWVycy50cmltKSB7XG4gICAgICByZXR1cm4gdmFsdWUudHJpbSgpICE9PSBuZXdWYWwudHJpbSgpXG4gICAgfVxuICB9XG4gIHJldHVybiB2YWx1ZSAhPT0gbmV3VmFsXG59XG5cbnZhciBkb21Qcm9wcyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVET01Qcm9wcyxcbiAgdXBkYXRlOiB1cGRhdGVET01Qcm9wc1xufTtcblxuLyogICovXG5cbnZhciBwYXJzZVN0eWxlVGV4dCA9IGNhY2hlZChmdW5jdGlvbiAoY3NzVGV4dCkge1xuICB2YXIgcmVzID0ge307XG4gIHZhciBsaXN0RGVsaW1pdGVyID0gLzsoPyFbXihdKlxcKSkvZztcbiAgdmFyIHByb3BlcnR5RGVsaW1pdGVyID0gLzooLispLztcbiAgY3NzVGV4dC5zcGxpdChsaXN0RGVsaW1pdGVyKS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHZhciB0bXAgPSBpdGVtLnNwbGl0KHByb3BlcnR5RGVsaW1pdGVyKTtcbiAgICAgIHRtcC5sZW5ndGggPiAxICYmIChyZXNbdG1wWzBdLnRyaW0oKV0gPSB0bXBbMV0udHJpbSgpKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzXG59KTtcblxuLy8gbWVyZ2Ugc3RhdGljIGFuZCBkeW5hbWljIHN0eWxlIGRhdGEgb24gdGhlIHNhbWUgdm5vZGVcbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0eWxlRGF0YSAoZGF0YSkge1xuICB2YXIgc3R5bGUgPSBub3JtYWxpemVTdHlsZUJpbmRpbmcoZGF0YS5zdHlsZSk7XG4gIC8vIHN0YXRpYyBzdHlsZSBpcyBwcmUtcHJvY2Vzc2VkIGludG8gYW4gb2JqZWN0IGR1cmluZyBjb21waWxhdGlvblxuICAvLyBhbmQgaXMgYWx3YXlzIGEgZnJlc2ggb2JqZWN0LCBzbyBpdCdzIHNhZmUgdG8gbWVyZ2UgaW50byBpdFxuICByZXR1cm4gZGF0YS5zdGF0aWNTdHlsZVxuICAgID8gZXh0ZW5kKGRhdGEuc3RhdGljU3R5bGUsIHN0eWxlKVxuICAgIDogc3R5bGVcbn1cblxuLy8gbm9ybWFsaXplIHBvc3NpYmxlIGFycmF5IC8gc3RyaW5nIHZhbHVlcyBpbnRvIE9iamVjdFxuZnVuY3Rpb24gbm9ybWFsaXplU3R5bGVCaW5kaW5nIChiaW5kaW5nU3R5bGUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYmluZGluZ1N0eWxlKSkge1xuICAgIHJldHVybiB0b09iamVjdChiaW5kaW5nU3R5bGUpXG4gIH1cbiAgaWYgKHR5cGVvZiBiaW5kaW5nU3R5bGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcnNlU3R5bGVUZXh0KGJpbmRpbmdTdHlsZSlcbiAgfVxuICByZXR1cm4gYmluZGluZ1N0eWxlXG59XG5cbi8qKlxuICogcGFyZW50IGNvbXBvbmVudCBzdHlsZSBzaG91bGQgYmUgYWZ0ZXIgY2hpbGQnc1xuICogc28gdGhhdCBwYXJlbnQgY29tcG9uZW50J3Mgc3R5bGUgY291bGQgb3ZlcnJpZGUgaXRcbiAqL1xuZnVuY3Rpb24gZ2V0U3R5bGUgKHZub2RlLCBjaGVja0NoaWxkKSB7XG4gIHZhciByZXMgPSB7fTtcbiAgdmFyIHN0eWxlRGF0YTtcblxuICBpZiAoY2hlY2tDaGlsZCkge1xuICAgIHZhciBjaGlsZE5vZGUgPSB2bm9kZTtcbiAgICB3aGlsZSAoY2hpbGROb2RlLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICBjaGlsZE5vZGUgPSBjaGlsZE5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO1xuICAgICAgaWYgKFxuICAgICAgICBjaGlsZE5vZGUgJiYgY2hpbGROb2RlLmRhdGEgJiZcbiAgICAgICAgKHN0eWxlRGF0YSA9IG5vcm1hbGl6ZVN0eWxlRGF0YShjaGlsZE5vZGUuZGF0YSkpXG4gICAgICApIHtcbiAgICAgICAgZXh0ZW5kKHJlcywgc3R5bGVEYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoKHN0eWxlRGF0YSA9IG5vcm1hbGl6ZVN0eWxlRGF0YSh2bm9kZS5kYXRhKSkpIHtcbiAgICBleHRlbmQocmVzLCBzdHlsZURhdGEpO1xuICB9XG5cbiAgdmFyIHBhcmVudE5vZGUgPSB2bm9kZTtcbiAgd2hpbGUgKChwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnQpKSB7XG4gICAgaWYgKHBhcmVudE5vZGUuZGF0YSAmJiAoc3R5bGVEYXRhID0gbm9ybWFsaXplU3R5bGVEYXRhKHBhcmVudE5vZGUuZGF0YSkpKSB7XG4gICAgICBleHRlbmQocmVzLCBzdHlsZURhdGEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qICAqL1xuXG52YXIgY3NzVmFyUkUgPSAvXi0tLztcbnZhciBpbXBvcnRhbnRSRSA9IC9cXHMqIWltcG9ydGFudCQvO1xudmFyIHNldFByb3AgPSBmdW5jdGlvbiAoZWwsIG5hbWUsIHZhbCkge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGNzc1ZhclJFLnRlc3QobmFtZSkpIHtcbiAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eShuYW1lLCB2YWwpO1xuICB9IGVsc2UgaWYgKGltcG9ydGFudFJFLnRlc3QodmFsKSkge1xuICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KGh5cGhlbmF0ZShuYW1lKSwgdmFsLnJlcGxhY2UoaW1wb3J0YW50UkUsICcnKSwgJ2ltcG9ydGFudCcpO1xuICB9IGVsc2Uge1xuICAgIHZhciBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZShuYW1lKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAvLyBTdXBwb3J0IHZhbHVlcyBhcnJheSBjcmVhdGVkIGJ5IGF1dG9wcmVmaXhlciwgZS5nLlxuICAgICAgLy8ge2Rpc3BsYXk6IFtcIi13ZWJraXQtYm94XCIsIFwiLW1zLWZsZXhib3hcIiwgXCJmbGV4XCJdfVxuICAgICAgLy8gU2V0IHRoZW0gb25lIGJ5IG9uZSwgYW5kIHRoZSBicm93c2VyIHdpbGwgb25seSBzZXQgdGhvc2UgaXQgY2FuIHJlY29nbml6ZVxuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHZhbC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBlbC5zdHlsZVtub3JtYWxpemVkTmFtZV0gPSB2YWxbaV07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnN0eWxlW25vcm1hbGl6ZWROYW1lXSA9IHZhbDtcbiAgICB9XG4gIH1cbn07XG5cbnZhciB2ZW5kb3JOYW1lcyA9IFsnV2Via2l0JywgJ01veicsICdtcyddO1xuXG52YXIgZW1wdHlTdHlsZTtcbnZhciBub3JtYWxpemUgPSBjYWNoZWQoZnVuY3Rpb24gKHByb3ApIHtcbiAgZW1wdHlTdHlsZSA9IGVtcHR5U3R5bGUgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykuc3R5bGU7XG4gIHByb3AgPSBjYW1lbGl6ZShwcm9wKTtcbiAgaWYgKHByb3AgIT09ICdmaWx0ZXInICYmIChwcm9wIGluIGVtcHR5U3R5bGUpKSB7XG4gICAgcmV0dXJuIHByb3BcbiAgfVxuICB2YXIgY2FwTmFtZSA9IHByb3AuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwcm9wLnNsaWNlKDEpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHZlbmRvck5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG5hbWUgPSB2ZW5kb3JOYW1lc1tpXSArIGNhcE5hbWU7XG4gICAgaWYgKG5hbWUgaW4gZW1wdHlTdHlsZSkge1xuICAgICAgcmV0dXJuIG5hbWVcbiAgICB9XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB1cGRhdGVTdHlsZSAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgdmFyIG9sZERhdGEgPSBvbGRWbm9kZS5kYXRhO1xuXG4gIGlmIChpc1VuZGVmKGRhdGEuc3RhdGljU3R5bGUpICYmIGlzVW5kZWYoZGF0YS5zdHlsZSkgJiZcbiAgICBpc1VuZGVmKG9sZERhdGEuc3RhdGljU3R5bGUpICYmIGlzVW5kZWYob2xkRGF0YS5zdHlsZSlcbiAgKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgY3VyLCBuYW1lO1xuICB2YXIgZWwgPSB2bm9kZS5lbG07XG4gIHZhciBvbGRTdGF0aWNTdHlsZSA9IG9sZERhdGEuc3RhdGljU3R5bGU7XG4gIHZhciBvbGRTdHlsZUJpbmRpbmcgPSBvbGREYXRhLm5vcm1hbGl6ZWRTdHlsZSB8fCBvbGREYXRhLnN0eWxlIHx8IHt9O1xuXG4gIC8vIGlmIHN0YXRpYyBzdHlsZSBleGlzdHMsIHN0eWxlYmluZGluZyBhbHJlYWR5IG1lcmdlZCBpbnRvIGl0IHdoZW4gZG9pbmcgbm9ybWFsaXplU3R5bGVEYXRhXG4gIHZhciBvbGRTdHlsZSA9IG9sZFN0YXRpY1N0eWxlIHx8IG9sZFN0eWxlQmluZGluZztcblxuICB2YXIgc3R5bGUgPSBub3JtYWxpemVTdHlsZUJpbmRpbmcodm5vZGUuZGF0YS5zdHlsZSkgfHwge307XG5cbiAgLy8gc3RvcmUgbm9ybWFsaXplZCBzdHlsZSB1bmRlciBhIGRpZmZlcmVudCBrZXkgZm9yIG5leHQgZGlmZlxuICAvLyBtYWtlIHN1cmUgdG8gY2xvbmUgaXQgaWYgaXQncyByZWFjdGl2ZSwgc2luY2UgdGhlIHVzZXIgbGlrZWx5IHdhbnRzXG4gIC8vIHRvIG11dGF0ZSBpdC5cbiAgdm5vZGUuZGF0YS5ub3JtYWxpemVkU3R5bGUgPSBpc0RlZihzdHlsZS5fX29iX18pXG4gICAgPyBleHRlbmQoe30sIHN0eWxlKVxuICAgIDogc3R5bGU7XG5cbiAgdmFyIG5ld1N0eWxlID0gZ2V0U3R5bGUodm5vZGUsIHRydWUpO1xuXG4gIGZvciAobmFtZSBpbiBvbGRTdHlsZSkge1xuICAgIGlmIChpc1VuZGVmKG5ld1N0eWxlW25hbWVdKSkge1xuICAgICAgc2V0UHJvcChlbCwgbmFtZSwgJycpO1xuICAgIH1cbiAgfVxuICBmb3IgKG5hbWUgaW4gbmV3U3R5bGUpIHtcbiAgICBjdXIgPSBuZXdTdHlsZVtuYW1lXTtcbiAgICBpZiAoY3VyICE9PSBvbGRTdHlsZVtuYW1lXSkge1xuICAgICAgLy8gaWU5IHNldHRpbmcgdG8gbnVsbCBoYXMgbm8gZWZmZWN0LCBtdXN0IHVzZSBlbXB0eSBzdHJpbmdcbiAgICAgIHNldFByb3AoZWwsIG5hbWUsIGN1ciA9PSBudWxsID8gJycgOiBjdXIpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgc3R5bGUgPSB7XG4gIGNyZWF0ZTogdXBkYXRlU3R5bGUsXG4gIHVwZGF0ZTogdXBkYXRlU3R5bGVcbn07XG5cbi8qICAqL1xuXG52YXIgd2hpdGVzcGFjZVJFID0gL1xccysvO1xuXG4vKipcbiAqIEFkZCBjbGFzcyB3aXRoIGNvbXBhdGliaWxpdHkgZm9yIFNWRyBzaW5jZSBjbGFzc0xpc3QgaXMgbm90IHN1cHBvcnRlZCBvblxuICogU1ZHIGVsZW1lbnRzIGluIElFXG4gKi9cbmZ1bmN0aW9uIGFkZENsYXNzIChlbCwgY2xzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWNscyB8fCAhKGNscyA9IGNscy50cmltKCkpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoZWwuY2xhc3NMaXN0KSB7XG4gICAgaWYgKGNscy5pbmRleE9mKCcgJykgPiAtMSkge1xuICAgICAgY2xzLnNwbGl0KHdoaXRlc3BhY2VSRSkuZm9yRWFjaChmdW5jdGlvbiAoYykgeyByZXR1cm4gZWwuY2xhc3NMaXN0LmFkZChjKTsgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLmNsYXNzTGlzdC5hZGQoY2xzKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGN1ciA9IFwiIFwiICsgKGVsLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSB8fCAnJykgKyBcIiBcIjtcbiAgICBpZiAoY3VyLmluZGV4T2YoJyAnICsgY2xzICsgJyAnKSA8IDApIHtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAoY3VyICsgY2xzKS50cmltKCkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZSBjbGFzcyB3aXRoIGNvbXBhdGliaWxpdHkgZm9yIFNWRyBzaW5jZSBjbGFzc0xpc3QgaXMgbm90IHN1cHBvcnRlZCBvblxuICogU1ZHIGVsZW1lbnRzIGluIElFXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUNsYXNzIChlbCwgY2xzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWNscyB8fCAhKGNscyA9IGNscy50cmltKCkpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoZWwuY2xhc3NMaXN0KSB7XG4gICAgaWYgKGNscy5pbmRleE9mKCcgJykgPiAtMSkge1xuICAgICAgY2xzLnNwbGl0KHdoaXRlc3BhY2VSRSkuZm9yRWFjaChmdW5jdGlvbiAoYykgeyByZXR1cm4gZWwuY2xhc3NMaXN0LnJlbW92ZShjKTsgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoY2xzKTtcbiAgICB9XG4gICAgaWYgKCFlbC5jbGFzc0xpc3QubGVuZ3RoKSB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBjdXIgPSBcIiBcIiArIChlbC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJycpICsgXCIgXCI7XG4gICAgdmFyIHRhciA9ICcgJyArIGNscyArICcgJztcbiAgICB3aGlsZSAoY3VyLmluZGV4T2YodGFyKSA+PSAwKSB7XG4gICAgICBjdXIgPSBjdXIucmVwbGFjZSh0YXIsICcgJyk7XG4gICAgfVxuICAgIGN1ciA9IGN1ci50cmltKCk7XG4gICAgaWYgKGN1cikge1xuICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsIGN1cik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnY2xhc3MnKTtcbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIHJlc29sdmVUcmFuc2l0aW9uIChkZWYkJDEpIHtcbiAgaWYgKCFkZWYkJDEpIHtcbiAgICByZXR1cm5cbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAodHlwZW9mIGRlZiQkMSA9PT0gJ29iamVjdCcpIHtcbiAgICB2YXIgcmVzID0ge307XG4gICAgaWYgKGRlZiQkMS5jc3MgIT09IGZhbHNlKSB7XG4gICAgICBleHRlbmQocmVzLCBhdXRvQ3NzVHJhbnNpdGlvbihkZWYkJDEubmFtZSB8fCAndicpKTtcbiAgICB9XG4gICAgZXh0ZW5kKHJlcywgZGVmJCQxKTtcbiAgICByZXR1cm4gcmVzXG4gIH0gZWxzZSBpZiAodHlwZW9mIGRlZiQkMSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gYXV0b0Nzc1RyYW5zaXRpb24oZGVmJCQxKVxuICB9XG59XG5cbnZhciBhdXRvQ3NzVHJhbnNpdGlvbiA9IGNhY2hlZChmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4ge1xuICAgIGVudGVyQ2xhc3M6IChuYW1lICsgXCItZW50ZXJcIiksXG4gICAgZW50ZXJUb0NsYXNzOiAobmFtZSArIFwiLWVudGVyLXRvXCIpLFxuICAgIGVudGVyQWN0aXZlQ2xhc3M6IChuYW1lICsgXCItZW50ZXItYWN0aXZlXCIpLFxuICAgIGxlYXZlQ2xhc3M6IChuYW1lICsgXCItbGVhdmVcIiksXG4gICAgbGVhdmVUb0NsYXNzOiAobmFtZSArIFwiLWxlYXZlLXRvXCIpLFxuICAgIGxlYXZlQWN0aXZlQ2xhc3M6IChuYW1lICsgXCItbGVhdmUtYWN0aXZlXCIpXG4gIH1cbn0pO1xuXG52YXIgaGFzVHJhbnNpdGlvbiA9IGluQnJvd3NlciAmJiAhaXNJRTk7XG52YXIgVFJBTlNJVElPTiA9ICd0cmFuc2l0aW9uJztcbnZhciBBTklNQVRJT04gPSAnYW5pbWF0aW9uJztcblxuLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eS9ldmVudCBzbmlmZmluZ1xudmFyIHRyYW5zaXRpb25Qcm9wID0gJ3RyYW5zaXRpb24nO1xudmFyIHRyYW5zaXRpb25FbmRFdmVudCA9ICd0cmFuc2l0aW9uZW5kJztcbnZhciBhbmltYXRpb25Qcm9wID0gJ2FuaW1hdGlvbic7XG52YXIgYW5pbWF0aW9uRW5kRXZlbnQgPSAnYW5pbWF0aW9uZW5kJztcbmlmIChoYXNUcmFuc2l0aW9uKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAod2luZG93Lm9udHJhbnNpdGlvbmVuZCA9PT0gdW5kZWZpbmVkICYmXG4gICAgd2luZG93Lm9ud2Via2l0dHJhbnNpdGlvbmVuZCAhPT0gdW5kZWZpbmVkXG4gICkge1xuICAgIHRyYW5zaXRpb25Qcm9wID0gJ1dlYmtpdFRyYW5zaXRpb24nO1xuICAgIHRyYW5zaXRpb25FbmRFdmVudCA9ICd3ZWJraXRUcmFuc2l0aW9uRW5kJztcbiAgfVxuICBpZiAod2luZG93Lm9uYW5pbWF0aW9uZW5kID09PSB1bmRlZmluZWQgJiZcbiAgICB3aW5kb3cub253ZWJraXRhbmltYXRpb25lbmQgIT09IHVuZGVmaW5lZFxuICApIHtcbiAgICBhbmltYXRpb25Qcm9wID0gJ1dlYmtpdEFuaW1hdGlvbic7XG4gICAgYW5pbWF0aW9uRW5kRXZlbnQgPSAnd2Via2l0QW5pbWF0aW9uRW5kJztcbiAgfVxufVxuXG4vLyBiaW5kaW5nIHRvIHdpbmRvdyBpcyBuZWNlc3NhcnkgdG8gbWFrZSBob3QgcmVsb2FkIHdvcmsgaW4gSUUgaW4gc3RyaWN0IG1vZGVcbnZhciByYWYgPSBpbkJyb3dzZXJcbiAgPyB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgPyB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KVxuICAgIDogc2V0VGltZW91dFxuICA6IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGZ1bmN0aW9uIChmbikgeyByZXR1cm4gZm4oKTsgfTtcblxuZnVuY3Rpb24gbmV4dEZyYW1lIChmbikge1xuICByYWYoZnVuY3Rpb24gKCkge1xuICAgIHJhZihmbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRUcmFuc2l0aW9uQ2xhc3MgKGVsLCBjbHMpIHtcbiAgdmFyIHRyYW5zaXRpb25DbGFzc2VzID0gZWwuX3RyYW5zaXRpb25DbGFzc2VzIHx8IChlbC5fdHJhbnNpdGlvbkNsYXNzZXMgPSBbXSk7XG4gIGlmICh0cmFuc2l0aW9uQ2xhc3Nlcy5pbmRleE9mKGNscykgPCAwKSB7XG4gICAgdHJhbnNpdGlvbkNsYXNzZXMucHVzaChjbHMpO1xuICAgIGFkZENsYXNzKGVsLCBjbHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVRyYW5zaXRpb25DbGFzcyAoZWwsIGNscykge1xuICBpZiAoZWwuX3RyYW5zaXRpb25DbGFzc2VzKSB7XG4gICAgcmVtb3ZlKGVsLl90cmFuc2l0aW9uQ2xhc3NlcywgY2xzKTtcbiAgfVxuICByZW1vdmVDbGFzcyhlbCwgY2xzKTtcbn1cblxuZnVuY3Rpb24gd2hlblRyYW5zaXRpb25FbmRzIChcbiAgZWwsXG4gIGV4cGVjdGVkVHlwZSxcbiAgY2Jcbikge1xuICB2YXIgcmVmID0gZ2V0VHJhbnNpdGlvbkluZm8oZWwsIGV4cGVjdGVkVHlwZSk7XG4gIHZhciB0eXBlID0gcmVmLnR5cGU7XG4gIHZhciB0aW1lb3V0ID0gcmVmLnRpbWVvdXQ7XG4gIHZhciBwcm9wQ291bnQgPSByZWYucHJvcENvdW50O1xuICBpZiAoIXR5cGUpIHsgcmV0dXJuIGNiKCkgfVxuICB2YXIgZXZlbnQgPSB0eXBlID09PSBUUkFOU0lUSU9OID8gdHJhbnNpdGlvbkVuZEV2ZW50IDogYW5pbWF0aW9uRW5kRXZlbnQ7XG4gIHZhciBlbmRlZCA9IDA7XG4gIHZhciBlbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgb25FbmQpO1xuICAgIGNiKCk7XG4gIH07XG4gIHZhciBvbkVuZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKGUudGFyZ2V0ID09PSBlbCkge1xuICAgICAgaWYgKCsrZW5kZWQgPj0gcHJvcENvdW50KSB7XG4gICAgICAgIGVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGVuZGVkIDwgcHJvcENvdW50KSB7XG4gICAgICBlbmQoKTtcbiAgICB9XG4gIH0sIHRpbWVvdXQgKyAxKTtcbiAgZWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgb25FbmQpO1xufVxuXG52YXIgdHJhbnNmb3JtUkUgPSAvXFxiKHRyYW5zZm9ybXxhbGwpKCx8JCkvO1xuXG5mdW5jdGlvbiBnZXRUcmFuc2l0aW9uSW5mbyAoZWwsIGV4cGVjdGVkVHlwZSkge1xuICB2YXIgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpO1xuICAvLyBKU0RPTSBtYXkgcmV0dXJuIHVuZGVmaW5lZCBmb3IgdHJhbnNpdGlvbiBwcm9wZXJ0aWVzXG4gIHZhciB0cmFuc2l0aW9uRGVsYXlzID0gKHN0eWxlc1t0cmFuc2l0aW9uUHJvcCArICdEZWxheSddIHx8ICcnKS5zcGxpdCgnLCAnKTtcbiAgdmFyIHRyYW5zaXRpb25EdXJhdGlvbnMgPSAoc3R5bGVzW3RyYW5zaXRpb25Qcm9wICsgJ0R1cmF0aW9uJ10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgdHJhbnNpdGlvblRpbWVvdXQgPSBnZXRUaW1lb3V0KHRyYW5zaXRpb25EZWxheXMsIHRyYW5zaXRpb25EdXJhdGlvbnMpO1xuICB2YXIgYW5pbWF0aW9uRGVsYXlzID0gKHN0eWxlc1thbmltYXRpb25Qcm9wICsgJ0RlbGF5J10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgYW5pbWF0aW9uRHVyYXRpb25zID0gKHN0eWxlc1thbmltYXRpb25Qcm9wICsgJ0R1cmF0aW9uJ10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgYW5pbWF0aW9uVGltZW91dCA9IGdldFRpbWVvdXQoYW5pbWF0aW9uRGVsYXlzLCBhbmltYXRpb25EdXJhdGlvbnMpO1xuXG4gIHZhciB0eXBlO1xuICB2YXIgdGltZW91dCA9IDA7XG4gIHZhciBwcm9wQ291bnQgPSAwO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGV4cGVjdGVkVHlwZSA9PT0gVFJBTlNJVElPTikge1xuICAgIGlmICh0cmFuc2l0aW9uVGltZW91dCA+IDApIHtcbiAgICAgIHR5cGUgPSBUUkFOU0lUSU9OO1xuICAgICAgdGltZW91dCA9IHRyYW5zaXRpb25UaW1lb3V0O1xuICAgICAgcHJvcENvdW50ID0gdHJhbnNpdGlvbkR1cmF0aW9ucy5sZW5ndGg7XG4gICAgfVxuICB9IGVsc2UgaWYgKGV4cGVjdGVkVHlwZSA9PT0gQU5JTUFUSU9OKSB7XG4gICAgaWYgKGFuaW1hdGlvblRpbWVvdXQgPiAwKSB7XG4gICAgICB0eXBlID0gQU5JTUFUSU9OO1xuICAgICAgdGltZW91dCA9IGFuaW1hdGlvblRpbWVvdXQ7XG4gICAgICBwcm9wQ291bnQgPSBhbmltYXRpb25EdXJhdGlvbnMubGVuZ3RoO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aW1lb3V0ID0gTWF0aC5tYXgodHJhbnNpdGlvblRpbWVvdXQsIGFuaW1hdGlvblRpbWVvdXQpO1xuICAgIHR5cGUgPSB0aW1lb3V0ID4gMFxuICAgICAgPyB0cmFuc2l0aW9uVGltZW91dCA+IGFuaW1hdGlvblRpbWVvdXRcbiAgICAgICAgPyBUUkFOU0lUSU9OXG4gICAgICAgIDogQU5JTUFUSU9OXG4gICAgICA6IG51bGw7XG4gICAgcHJvcENvdW50ID0gdHlwZVxuICAgICAgPyB0eXBlID09PSBUUkFOU0lUSU9OXG4gICAgICAgID8gdHJhbnNpdGlvbkR1cmF0aW9ucy5sZW5ndGhcbiAgICAgICAgOiBhbmltYXRpb25EdXJhdGlvbnMubGVuZ3RoXG4gICAgICA6IDA7XG4gIH1cbiAgdmFyIGhhc1RyYW5zZm9ybSA9XG4gICAgdHlwZSA9PT0gVFJBTlNJVElPTiAmJlxuICAgIHRyYW5zZm9ybVJFLnRlc3Qoc3R5bGVzW3RyYW5zaXRpb25Qcm9wICsgJ1Byb3BlcnR5J10pO1xuICByZXR1cm4ge1xuICAgIHR5cGU6IHR5cGUsXG4gICAgdGltZW91dDogdGltZW91dCxcbiAgICBwcm9wQ291bnQ6IHByb3BDb3VudCxcbiAgICBoYXNUcmFuc2Zvcm06IGhhc1RyYW5zZm9ybVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRpbWVvdXQgKGRlbGF5cywgZHVyYXRpb25zKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHdoaWxlIChkZWxheXMubGVuZ3RoIDwgZHVyYXRpb25zLmxlbmd0aCkge1xuICAgIGRlbGF5cyA9IGRlbGF5cy5jb25jYXQoZGVsYXlzKTtcbiAgfVxuXG4gIHJldHVybiBNYXRoLm1heC5hcHBseShudWxsLCBkdXJhdGlvbnMubWFwKGZ1bmN0aW9uIChkLCBpKSB7XG4gICAgcmV0dXJuIHRvTXMoZCkgKyB0b01zKGRlbGF5c1tpXSlcbiAgfSkpXG59XG5cbi8vIE9sZCB2ZXJzaW9ucyBvZiBDaHJvbWl1bSAoYmVsb3cgNjEuMC4zMTYzLjEwMCkgZm9ybWF0cyBmbG9hdGluZyBwb2ludGVyIG51bWJlcnNcbi8vIGluIGEgbG9jYWxlLWRlcGVuZGVudCB3YXksIHVzaW5nIGEgY29tbWEgaW5zdGVhZCBvZiBhIGRvdC5cbi8vIElmIGNvbW1hIGlzIG5vdCByZXBsYWNlZCB3aXRoIGEgZG90LCB0aGUgaW5wdXQgd2lsbCBiZSByb3VuZGVkIGRvd24gKGkuZS4gYWN0aW5nXG4vLyBhcyBhIGZsb29yIGZ1bmN0aW9uKSBjYXVzaW5nIHVuZXhwZWN0ZWQgYmVoYXZpb3JzXG5mdW5jdGlvbiB0b01zIChzKSB7XG4gIHJldHVybiBOdW1iZXIocy5zbGljZSgwLCAtMSkucmVwbGFjZSgnLCcsICcuJykpICogMTAwMFxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZW50ZXIgKHZub2RlLCB0b2dnbGVEaXNwbGF5KSB7XG4gIHZhciBlbCA9IHZub2RlLmVsbTtcblxuICAvLyBjYWxsIGxlYXZlIGNhbGxiYWNrIG5vd1xuICBpZiAoaXNEZWYoZWwuX2xlYXZlQ2IpKSB7XG4gICAgZWwuX2xlYXZlQ2IuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICBlbC5fbGVhdmVDYigpO1xuICB9XG5cbiAgdmFyIGRhdGEgPSByZXNvbHZlVHJhbnNpdGlvbih2bm9kZS5kYXRhLnRyYW5zaXRpb24pO1xuICBpZiAoaXNVbmRlZihkYXRhKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihlbC5fZW50ZXJDYikgfHwgZWwubm9kZVR5cGUgIT09IDEpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBjc3MgPSBkYXRhLmNzcztcbiAgdmFyIHR5cGUgPSBkYXRhLnR5cGU7XG4gIHZhciBlbnRlckNsYXNzID0gZGF0YS5lbnRlckNsYXNzO1xuICB2YXIgZW50ZXJUb0NsYXNzID0gZGF0YS5lbnRlclRvQ2xhc3M7XG4gIHZhciBlbnRlckFjdGl2ZUNsYXNzID0gZGF0YS5lbnRlckFjdGl2ZUNsYXNzO1xuICB2YXIgYXBwZWFyQ2xhc3MgPSBkYXRhLmFwcGVhckNsYXNzO1xuICB2YXIgYXBwZWFyVG9DbGFzcyA9IGRhdGEuYXBwZWFyVG9DbGFzcztcbiAgdmFyIGFwcGVhckFjdGl2ZUNsYXNzID0gZGF0YS5hcHBlYXJBY3RpdmVDbGFzcztcbiAgdmFyIGJlZm9yZUVudGVyID0gZGF0YS5iZWZvcmVFbnRlcjtcbiAgdmFyIGVudGVyID0gZGF0YS5lbnRlcjtcbiAgdmFyIGFmdGVyRW50ZXIgPSBkYXRhLmFmdGVyRW50ZXI7XG4gIHZhciBlbnRlckNhbmNlbGxlZCA9IGRhdGEuZW50ZXJDYW5jZWxsZWQ7XG4gIHZhciBiZWZvcmVBcHBlYXIgPSBkYXRhLmJlZm9yZUFwcGVhcjtcbiAgdmFyIGFwcGVhciA9IGRhdGEuYXBwZWFyO1xuICB2YXIgYWZ0ZXJBcHBlYXIgPSBkYXRhLmFmdGVyQXBwZWFyO1xuICB2YXIgYXBwZWFyQ2FuY2VsbGVkID0gZGF0YS5hcHBlYXJDYW5jZWxsZWQ7XG4gIHZhciBkdXJhdGlvbiA9IGRhdGEuZHVyYXRpb247XG5cbiAgLy8gYWN0aXZlSW5zdGFuY2Ugd2lsbCBhbHdheXMgYmUgdGhlIDx0cmFuc2l0aW9uPiBjb21wb25lbnQgbWFuYWdpbmcgdGhpc1xuICAvLyB0cmFuc2l0aW9uLiBPbmUgZWRnZSBjYXNlIHRvIGNoZWNrIGlzIHdoZW4gdGhlIDx0cmFuc2l0aW9uPiBpcyBwbGFjZWRcbiAgLy8gYXMgdGhlIHJvb3Qgbm9kZSBvZiBhIGNoaWxkIGNvbXBvbmVudC4gSW4gdGhhdCBjYXNlIHdlIG5lZWQgdG8gY2hlY2tcbiAgLy8gPHRyYW5zaXRpb24+J3MgcGFyZW50IGZvciBhcHBlYXIgY2hlY2suXG4gIHZhciBjb250ZXh0ID0gYWN0aXZlSW5zdGFuY2U7XG4gIHZhciB0cmFuc2l0aW9uTm9kZSA9IGFjdGl2ZUluc3RhbmNlLiR2bm9kZTtcbiAgd2hpbGUgKHRyYW5zaXRpb25Ob2RlICYmIHRyYW5zaXRpb25Ob2RlLnBhcmVudCkge1xuICAgIGNvbnRleHQgPSB0cmFuc2l0aW9uTm9kZS5jb250ZXh0O1xuICAgIHRyYW5zaXRpb25Ob2RlID0gdHJhbnNpdGlvbk5vZGUucGFyZW50O1xuICB9XG5cbiAgdmFyIGlzQXBwZWFyID0gIWNvbnRleHQuX2lzTW91bnRlZCB8fCAhdm5vZGUuaXNSb290SW5zZXJ0O1xuXG4gIGlmIChpc0FwcGVhciAmJiAhYXBwZWFyICYmIGFwcGVhciAhPT0gJycpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBzdGFydENsYXNzID0gaXNBcHBlYXIgJiYgYXBwZWFyQ2xhc3NcbiAgICA/IGFwcGVhckNsYXNzXG4gICAgOiBlbnRlckNsYXNzO1xuICB2YXIgYWN0aXZlQ2xhc3MgPSBpc0FwcGVhciAmJiBhcHBlYXJBY3RpdmVDbGFzc1xuICAgID8gYXBwZWFyQWN0aXZlQ2xhc3NcbiAgICA6IGVudGVyQWN0aXZlQ2xhc3M7XG4gIHZhciB0b0NsYXNzID0gaXNBcHBlYXIgJiYgYXBwZWFyVG9DbGFzc1xuICAgID8gYXBwZWFyVG9DbGFzc1xuICAgIDogZW50ZXJUb0NsYXNzO1xuXG4gIHZhciBiZWZvcmVFbnRlckhvb2sgPSBpc0FwcGVhclxuICAgID8gKGJlZm9yZUFwcGVhciB8fCBiZWZvcmVFbnRlcilcbiAgICA6IGJlZm9yZUVudGVyO1xuICB2YXIgZW50ZXJIb29rID0gaXNBcHBlYXJcbiAgICA/ICh0eXBlb2YgYXBwZWFyID09PSAnZnVuY3Rpb24nID8gYXBwZWFyIDogZW50ZXIpXG4gICAgOiBlbnRlcjtcbiAgdmFyIGFmdGVyRW50ZXJIb29rID0gaXNBcHBlYXJcbiAgICA/IChhZnRlckFwcGVhciB8fCBhZnRlckVudGVyKVxuICAgIDogYWZ0ZXJFbnRlcjtcbiAgdmFyIGVudGVyQ2FuY2VsbGVkSG9vayA9IGlzQXBwZWFyXG4gICAgPyAoYXBwZWFyQ2FuY2VsbGVkIHx8IGVudGVyQ2FuY2VsbGVkKVxuICAgIDogZW50ZXJDYW5jZWxsZWQ7XG5cbiAgdmFyIGV4cGxpY2l0RW50ZXJEdXJhdGlvbiA9IHRvTnVtYmVyKFxuICAgIGlzT2JqZWN0KGR1cmF0aW9uKVxuICAgICAgPyBkdXJhdGlvbi5lbnRlclxuICAgICAgOiBkdXJhdGlvblxuICApO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGV4cGxpY2l0RW50ZXJEdXJhdGlvbiAhPSBudWxsKSB7XG4gICAgY2hlY2tEdXJhdGlvbihleHBsaWNpdEVudGVyRHVyYXRpb24sICdlbnRlcicsIHZub2RlKTtcbiAgfVxuXG4gIHZhciBleHBlY3RzQ1NTID0gY3NzICE9PSBmYWxzZSAmJiAhaXNJRTk7XG4gIHZhciB1c2VyV2FudHNDb250cm9sID0gZ2V0SG9va0FyZ3VtZW50c0xlbmd0aChlbnRlckhvb2spO1xuXG4gIHZhciBjYiA9IGVsLl9lbnRlckNiID0gb25jZShmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgdG9DbGFzcyk7XG4gICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIGFjdGl2ZUNsYXNzKTtcbiAgICB9XG4gICAgaWYgKGNiLmNhbmNlbGxlZCkge1xuICAgICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBzdGFydENsYXNzKTtcbiAgICAgIH1cbiAgICAgIGVudGVyQ2FuY2VsbGVkSG9vayAmJiBlbnRlckNhbmNlbGxlZEhvb2soZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZnRlckVudGVySG9vayAmJiBhZnRlckVudGVySG9vayhlbCk7XG4gICAgfVxuICAgIGVsLl9lbnRlckNiID0gbnVsbDtcbiAgfSk7XG5cbiAgaWYgKCF2bm9kZS5kYXRhLnNob3cpIHtcbiAgICAvLyByZW1vdmUgcGVuZGluZyBsZWF2ZSBlbGVtZW50IG9uIGVudGVyIGJ5IGluamVjdGluZyBhbiBpbnNlcnQgaG9va1xuICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAnaW5zZXJ0JywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHBhcmVudCA9IGVsLnBhcmVudE5vZGU7XG4gICAgICB2YXIgcGVuZGluZ05vZGUgPSBwYXJlbnQgJiYgcGFyZW50Ll9wZW5kaW5nICYmIHBhcmVudC5fcGVuZGluZ1t2bm9kZS5rZXldO1xuICAgICAgaWYgKHBlbmRpbmdOb2RlICYmXG4gICAgICAgIHBlbmRpbmdOb2RlLnRhZyA9PT0gdm5vZGUudGFnICYmXG4gICAgICAgIHBlbmRpbmdOb2RlLmVsbS5fbGVhdmVDYlxuICAgICAgKSB7XG4gICAgICAgIHBlbmRpbmdOb2RlLmVsbS5fbGVhdmVDYigpO1xuICAgICAgfVxuICAgICAgZW50ZXJIb29rICYmIGVudGVySG9vayhlbCwgY2IpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gc3RhcnQgZW50ZXIgdHJhbnNpdGlvblxuICBiZWZvcmVFbnRlckhvb2sgJiYgYmVmb3JlRW50ZXJIb29rKGVsKTtcbiAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIHN0YXJ0Q2xhc3MpO1xuICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgYWN0aXZlQ2xhc3MpO1xuICAgIG5leHRGcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIHN0YXJ0Q2xhc3MpO1xuICAgICAgaWYgKCFjYi5jYW5jZWxsZWQpIHtcbiAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCB0b0NsYXNzKTtcbiAgICAgICAgaWYgKCF1c2VyV2FudHNDb250cm9sKSB7XG4gICAgICAgICAgaWYgKGlzVmFsaWREdXJhdGlvbihleHBsaWNpdEVudGVyRHVyYXRpb24pKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCBleHBsaWNpdEVudGVyRHVyYXRpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aGVuVHJhbnNpdGlvbkVuZHMoZWwsIHR5cGUsIGNiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlmICh2bm9kZS5kYXRhLnNob3cpIHtcbiAgICB0b2dnbGVEaXNwbGF5ICYmIHRvZ2dsZURpc3BsYXkoKTtcbiAgICBlbnRlckhvb2sgJiYgZW50ZXJIb29rKGVsLCBjYik7XG4gIH1cblxuICBpZiAoIWV4cGVjdHNDU1MgJiYgIXVzZXJXYW50c0NvbnRyb2wpIHtcbiAgICBjYigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGxlYXZlICh2bm9kZSwgcm0pIHtcbiAgdmFyIGVsID0gdm5vZGUuZWxtO1xuXG4gIC8vIGNhbGwgZW50ZXIgY2FsbGJhY2sgbm93XG4gIGlmIChpc0RlZihlbC5fZW50ZXJDYikpIHtcbiAgICBlbC5fZW50ZXJDYi5jYW5jZWxsZWQgPSB0cnVlO1xuICAgIGVsLl9lbnRlckNiKCk7XG4gIH1cblxuICB2YXIgZGF0YSA9IHJlc29sdmVUcmFuc2l0aW9uKHZub2RlLmRhdGEudHJhbnNpdGlvbik7XG4gIGlmIChpc1VuZGVmKGRhdGEpIHx8IGVsLm5vZGVUeXBlICE9PSAxKSB7XG4gICAgcmV0dXJuIHJtKClcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoaXNEZWYoZWwuX2xlYXZlQ2IpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgY3NzID0gZGF0YS5jc3M7XG4gIHZhciB0eXBlID0gZGF0YS50eXBlO1xuICB2YXIgbGVhdmVDbGFzcyA9IGRhdGEubGVhdmVDbGFzcztcbiAgdmFyIGxlYXZlVG9DbGFzcyA9IGRhdGEubGVhdmVUb0NsYXNzO1xuICB2YXIgbGVhdmVBY3RpdmVDbGFzcyA9IGRhdGEubGVhdmVBY3RpdmVDbGFzcztcbiAgdmFyIGJlZm9yZUxlYXZlID0gZGF0YS5iZWZvcmVMZWF2ZTtcbiAgdmFyIGxlYXZlID0gZGF0YS5sZWF2ZTtcbiAgdmFyIGFmdGVyTGVhdmUgPSBkYXRhLmFmdGVyTGVhdmU7XG4gIHZhciBsZWF2ZUNhbmNlbGxlZCA9IGRhdGEubGVhdmVDYW5jZWxsZWQ7XG4gIHZhciBkZWxheUxlYXZlID0gZGF0YS5kZWxheUxlYXZlO1xuICB2YXIgZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuXG4gIHZhciBleHBlY3RzQ1NTID0gY3NzICE9PSBmYWxzZSAmJiAhaXNJRTk7XG4gIHZhciB1c2VyV2FudHNDb250cm9sID0gZ2V0SG9va0FyZ3VtZW50c0xlbmd0aChsZWF2ZSk7XG5cbiAgdmFyIGV4cGxpY2l0TGVhdmVEdXJhdGlvbiA9IHRvTnVtYmVyKFxuICAgIGlzT2JqZWN0KGR1cmF0aW9uKVxuICAgICAgPyBkdXJhdGlvbi5sZWF2ZVxuICAgICAgOiBkdXJhdGlvblxuICApO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzRGVmKGV4cGxpY2l0TGVhdmVEdXJhdGlvbikpIHtcbiAgICBjaGVja0R1cmF0aW9uKGV4cGxpY2l0TGVhdmVEdXJhdGlvbiwgJ2xlYXZlJywgdm5vZGUpO1xuICB9XG5cbiAgdmFyIGNiID0gZWwuX2xlYXZlQ2IgPSBvbmNlKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZWwucGFyZW50Tm9kZSAmJiBlbC5wYXJlbnROb2RlLl9wZW5kaW5nKSB7XG4gICAgICBlbC5wYXJlbnROb2RlLl9wZW5kaW5nW3Zub2RlLmtleV0gPSBudWxsO1xuICAgIH1cbiAgICBpZiAoZXhwZWN0c0NTUykge1xuICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZVRvQ2xhc3MpO1xuICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUFjdGl2ZUNsYXNzKTtcbiAgICB9XG4gICAgaWYgKGNiLmNhbmNlbGxlZCkge1xuICAgICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUNsYXNzKTtcbiAgICAgIH1cbiAgICAgIGxlYXZlQ2FuY2VsbGVkICYmIGxlYXZlQ2FuY2VsbGVkKGVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm0oKTtcbiAgICAgIGFmdGVyTGVhdmUgJiYgYWZ0ZXJMZWF2ZShlbCk7XG4gICAgfVxuICAgIGVsLl9sZWF2ZUNiID0gbnVsbDtcbiAgfSk7XG5cbiAgaWYgKGRlbGF5TGVhdmUpIHtcbiAgICBkZWxheUxlYXZlKHBlcmZvcm1MZWF2ZSk7XG4gIH0gZWxzZSB7XG4gICAgcGVyZm9ybUxlYXZlKCk7XG4gIH1cblxuICBmdW5jdGlvbiBwZXJmb3JtTGVhdmUgKCkge1xuICAgIC8vIHRoZSBkZWxheWVkIGxlYXZlIG1heSBoYXZlIGFscmVhZHkgYmVlbiBjYW5jZWxsZWRcbiAgICBpZiAoY2IuY2FuY2VsbGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgLy8gcmVjb3JkIGxlYXZpbmcgZWxlbWVudFxuICAgIGlmICghdm5vZGUuZGF0YS5zaG93ICYmIGVsLnBhcmVudE5vZGUpIHtcbiAgICAgIChlbC5wYXJlbnROb2RlLl9wZW5kaW5nIHx8IChlbC5wYXJlbnROb2RlLl9wZW5kaW5nID0ge30pKVsodm5vZGUua2V5KV0gPSB2bm9kZTtcbiAgICB9XG4gICAgYmVmb3JlTGVhdmUgJiYgYmVmb3JlTGVhdmUoZWwpO1xuICAgIGlmIChleHBlY3RzQ1NTKSB7XG4gICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlQ2xhc3MpO1xuICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUFjdGl2ZUNsYXNzKTtcbiAgICAgIG5leHRGcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVDbGFzcyk7XG4gICAgICAgIGlmICghY2IuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZVRvQ2xhc3MpO1xuICAgICAgICAgIGlmICghdXNlcldhbnRzQ29udHJvbCkge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWREdXJhdGlvbihleHBsaWNpdExlYXZlRHVyYXRpb24pKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoY2IsIGV4cGxpY2l0TGVhdmVEdXJhdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB3aGVuVHJhbnNpdGlvbkVuZHMoZWwsIHR5cGUsIGNiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBsZWF2ZSAmJiBsZWF2ZShlbCwgY2IpO1xuICAgIGlmICghZXhwZWN0c0NTUyAmJiAhdXNlcldhbnRzQ29udHJvbCkge1xuICAgICAgY2IoKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gb25seSB1c2VkIGluIGRldiBtb2RlXG5mdW5jdGlvbiBjaGVja0R1cmF0aW9uICh2YWwsIG5hbWUsIHZub2RlKSB7XG4gIGlmICh0eXBlb2YgdmFsICE9PSAnbnVtYmVyJykge1xuICAgIHdhcm4oXG4gICAgICBcIjx0cmFuc2l0aW9uPiBleHBsaWNpdCBcIiArIG5hbWUgKyBcIiBkdXJhdGlvbiBpcyBub3QgYSB2YWxpZCBudW1iZXIgLSBcIiArXG4gICAgICBcImdvdCBcIiArIChKU09OLnN0cmluZ2lmeSh2YWwpKSArIFwiLlwiLFxuICAgICAgdm5vZGUuY29udGV4dFxuICAgICk7XG4gIH0gZWxzZSBpZiAoaXNOYU4odmFsKSkge1xuICAgIHdhcm4oXG4gICAgICBcIjx0cmFuc2l0aW9uPiBleHBsaWNpdCBcIiArIG5hbWUgKyBcIiBkdXJhdGlvbiBpcyBOYU4gLSBcIiArXG4gICAgICAndGhlIGR1cmF0aW9uIGV4cHJlc3Npb24gbWlnaHQgYmUgaW5jb3JyZWN0LicsXG4gICAgICB2bm9kZS5jb250ZXh0XG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ZhbGlkRHVyYXRpb24gKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbClcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYSB0cmFuc2l0aW9uIGhvb2sncyBhcmd1bWVudCBsZW5ndGguIFRoZSBob29rIG1heSBiZTpcbiAqIC0gYSBtZXJnZWQgaG9vayAoaW52b2tlcikgd2l0aCB0aGUgb3JpZ2luYWwgaW4gLmZuc1xuICogLSBhIHdyYXBwZWQgY29tcG9uZW50IG1ldGhvZCAoY2hlY2sgLl9sZW5ndGgpXG4gKiAtIGEgcGxhaW4gZnVuY3Rpb24gKC5sZW5ndGgpXG4gKi9cbmZ1bmN0aW9uIGdldEhvb2tBcmd1bWVudHNMZW5ndGggKGZuKSB7XG4gIGlmIChpc1VuZGVmKGZuKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHZhciBpbnZva2VyRm5zID0gZm4uZm5zO1xuICBpZiAoaXNEZWYoaW52b2tlckZucykpIHtcbiAgICAvLyBpbnZva2VyXG4gICAgcmV0dXJuIGdldEhvb2tBcmd1bWVudHNMZW5ndGgoXG4gICAgICBBcnJheS5pc0FycmF5KGludm9rZXJGbnMpXG4gICAgICAgID8gaW52b2tlckZuc1swXVxuICAgICAgICA6IGludm9rZXJGbnNcbiAgICApXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChmbi5fbGVuZ3RoIHx8IGZuLmxlbmd0aCkgPiAxXG4gIH1cbn1cblxuZnVuY3Rpb24gX2VudGVyIChfLCB2bm9kZSkge1xuICBpZiAodm5vZGUuZGF0YS5zaG93ICE9PSB0cnVlKSB7XG4gICAgZW50ZXIodm5vZGUpO1xuICB9XG59XG5cbnZhciB0cmFuc2l0aW9uID0gaW5Ccm93c2VyID8ge1xuICBjcmVhdGU6IF9lbnRlcixcbiAgYWN0aXZhdGU6IF9lbnRlcixcbiAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUkJDEgKHZub2RlLCBybSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHZub2RlLmRhdGEuc2hvdyAhPT0gdHJ1ZSkge1xuICAgICAgbGVhdmUodm5vZGUsIHJtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm0oKTtcbiAgICB9XG4gIH1cbn0gOiB7fTtcblxudmFyIHBsYXRmb3JtTW9kdWxlcyA9IFtcbiAgYXR0cnMsXG4gIGtsYXNzLFxuICBldmVudHMsXG4gIGRvbVByb3BzLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvblxuXTtcblxuLyogICovXG5cbi8vIHRoZSBkaXJlY3RpdmUgbW9kdWxlIHNob3VsZCBiZSBhcHBsaWVkIGxhc3QsIGFmdGVyIGFsbFxuLy8gYnVpbHQtaW4gbW9kdWxlcyBoYXZlIGJlZW4gYXBwbGllZC5cbnZhciBtb2R1bGVzID0gcGxhdGZvcm1Nb2R1bGVzLmNvbmNhdChiYXNlTW9kdWxlcyk7XG5cbnZhciBwYXRjaCA9IGNyZWF0ZVBhdGNoRnVuY3Rpb24oeyBub2RlT3BzOiBub2RlT3BzLCBtb2R1bGVzOiBtb2R1bGVzIH0pO1xuXG4vKipcbiAqIE5vdCB0eXBlIGNoZWNraW5nIHRoaXMgZmlsZSBiZWNhdXNlIGZsb3cgZG9lc24ndCBsaWtlIGF0dGFjaGluZ1xuICogcHJvcGVydGllcyB0byBFbGVtZW50cy5cbiAqL1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChpc0lFOSkge1xuICAvLyBodHRwOi8vd3d3Lm1hdHRzNDExLmNvbS9wb3N0L2ludGVybmV0LWV4cGxvcmVyLTktb25pbnB1dC9cbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgZnVuY3Rpb24gKCkge1xuICAgIHZhciBlbCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGVsICYmIGVsLnZtb2RlbCkge1xuICAgICAgdHJpZ2dlcihlbCwgJ2lucHV0Jyk7XG4gICAgfVxuICB9KTtcbn1cblxudmFyIGRpcmVjdGl2ZSA9IHtcbiAgaW5zZXJ0ZWQ6IGZ1bmN0aW9uIGluc2VydGVkIChlbCwgYmluZGluZywgdm5vZGUsIG9sZFZub2RlKSB7XG4gICAgaWYgKHZub2RlLnRhZyA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgIC8vICM2OTAzXG4gICAgICBpZiAob2xkVm5vZGUuZWxtICYmICFvbGRWbm9kZS5lbG0uX3ZPcHRpb25zKSB7XG4gICAgICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAncG9zdHBhdGNoJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGRpcmVjdGl2ZS5jb21wb25lbnRVcGRhdGVkKGVsLCBiaW5kaW5nLCB2bm9kZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZub2RlLmNvbnRleHQpO1xuICAgICAgfVxuICAgICAgZWwuX3ZPcHRpb25zID0gW10ubWFwLmNhbGwoZWwub3B0aW9ucywgZ2V0VmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodm5vZGUudGFnID09PSAndGV4dGFyZWEnIHx8IGlzVGV4dElucHV0VHlwZShlbC50eXBlKSkge1xuICAgICAgZWwuX3ZNb2RpZmllcnMgPSBiaW5kaW5nLm1vZGlmaWVycztcbiAgICAgIGlmICghYmluZGluZy5tb2RpZmllcnMubGF6eSkge1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0Jywgb25Db21wb3NpdGlvblN0YXJ0KTtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25lbmQnLCBvbkNvbXBvc2l0aW9uRW5kKTtcbiAgICAgICAgLy8gU2FmYXJpIDwgMTAuMiAmIFVJV2ViVmlldyBkb2Vzbid0IGZpcmUgY29tcG9zaXRpb25lbmQgd2hlblxuICAgICAgICAvLyBzd2l0Y2hpbmcgZm9jdXMgYmVmb3JlIGNvbmZpcm1pbmcgY29tcG9zaXRpb24gY2hvaWNlXG4gICAgICAgIC8vIHRoaXMgYWxzbyBmaXhlcyB0aGUgaXNzdWUgd2hlcmUgc29tZSBicm93c2VycyBlLmcuIGlPUyBDaHJvbWVcbiAgICAgICAgLy8gZmlyZXMgXCJjaGFuZ2VcIiBpbnN0ZWFkIG9mIFwiaW5wdXRcIiBvbiBhdXRvY29tcGxldGUuXG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ29tcG9zaXRpb25FbmQpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgaWYgKGlzSUU5KSB7XG4gICAgICAgICAgZWwudm1vZGVsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBjb21wb25lbnRVcGRhdGVkOiBmdW5jdGlvbiBjb21wb25lbnRVcGRhdGVkIChlbCwgYmluZGluZywgdm5vZGUpIHtcbiAgICBpZiAodm5vZGUudGFnID09PSAnc2VsZWN0Jykge1xuICAgICAgc2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZub2RlLmNvbnRleHQpO1xuICAgICAgLy8gaW4gY2FzZSB0aGUgb3B0aW9ucyByZW5kZXJlZCBieSB2LWZvciBoYXZlIGNoYW5nZWQsXG4gICAgICAvLyBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHZhbHVlIGlzIG91dC1vZi1zeW5jIHdpdGggdGhlIHJlbmRlcmVkIG9wdGlvbnMuXG4gICAgICAvLyBkZXRlY3Qgc3VjaCBjYXNlcyBhbmQgZmlsdGVyIG91dCB2YWx1ZXMgdGhhdCBubyBsb25nZXIgaGFzIGEgbWF0Y2hpbmdcbiAgICAgIC8vIG9wdGlvbiBpbiB0aGUgRE9NLlxuICAgICAgdmFyIHByZXZPcHRpb25zID0gZWwuX3ZPcHRpb25zO1xuICAgICAgdmFyIGN1ck9wdGlvbnMgPSBlbC5fdk9wdGlvbnMgPSBbXS5tYXAuY2FsbChlbC5vcHRpb25zLCBnZXRWYWx1ZSk7XG4gICAgICBpZiAoY3VyT3B0aW9ucy5zb21lKGZ1bmN0aW9uIChvLCBpKSB7IHJldHVybiAhbG9vc2VFcXVhbChvLCBwcmV2T3B0aW9uc1tpXSk7IH0pKSB7XG4gICAgICAgIC8vIHRyaWdnZXIgY2hhbmdlIGV2ZW50IGlmXG4gICAgICAgIC8vIG5vIG1hdGNoaW5nIG9wdGlvbiBmb3VuZCBmb3IgYXQgbGVhc3Qgb25lIHZhbHVlXG4gICAgICAgIHZhciBuZWVkUmVzZXQgPSBlbC5tdWx0aXBsZVxuICAgICAgICAgID8gYmluZGluZy52YWx1ZS5zb21lKGZ1bmN0aW9uICh2KSB7IHJldHVybiBoYXNOb01hdGNoaW5nT3B0aW9uKHYsIGN1ck9wdGlvbnMpOyB9KVxuICAgICAgICAgIDogYmluZGluZy52YWx1ZSAhPT0gYmluZGluZy5vbGRWYWx1ZSAmJiBoYXNOb01hdGNoaW5nT3B0aW9uKGJpbmRpbmcudmFsdWUsIGN1ck9wdGlvbnMpO1xuICAgICAgICBpZiAobmVlZFJlc2V0KSB7XG4gICAgICAgICAgdHJpZ2dlcihlbCwgJ2NoYW5nZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiBzZXRTZWxlY3RlZCAoZWwsIGJpbmRpbmcsIHZtKSB7XG4gIGFjdHVhbGx5U2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZtKTtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0lFIHx8IGlzRWRnZSkge1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgYWN0dWFsbHlTZXRTZWxlY3RlZChlbCwgYmluZGluZywgdm0pO1xuICAgIH0sIDApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFjdHVhbGx5U2V0U2VsZWN0ZWQgKGVsLCBiaW5kaW5nLCB2bSkge1xuICB2YXIgdmFsdWUgPSBiaW5kaW5nLnZhbHVlO1xuICB2YXIgaXNNdWx0aXBsZSA9IGVsLm11bHRpcGxlO1xuICBpZiAoaXNNdWx0aXBsZSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICBcIjxzZWxlY3QgbXVsdGlwbGUgdi1tb2RlbD1cXFwiXCIgKyAoYmluZGluZy5leHByZXNzaW9uKSArIFwiXFxcIj4gXCIgK1xuICAgICAgXCJleHBlY3RzIGFuIEFycmF5IHZhbHVlIGZvciBpdHMgYmluZGluZywgYnV0IGdvdCBcIiArIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLnNsaWNlKDgsIC0xKSksXG4gICAgICB2bVxuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIHNlbGVjdGVkLCBvcHRpb247XG4gIGZvciAodmFyIGkgPSAwLCBsID0gZWwub3B0aW9ucy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBvcHRpb24gPSBlbC5vcHRpb25zW2ldO1xuICAgIGlmIChpc011bHRpcGxlKSB7XG4gICAgICBzZWxlY3RlZCA9IGxvb3NlSW5kZXhPZih2YWx1ZSwgZ2V0VmFsdWUob3B0aW9uKSkgPiAtMTtcbiAgICAgIGlmIChvcHRpb24uc2VsZWN0ZWQgIT09IHNlbGVjdGVkKSB7XG4gICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobG9vc2VFcXVhbChnZXRWYWx1ZShvcHRpb24pLCB2YWx1ZSkpIHtcbiAgICAgICAgaWYgKGVsLnNlbGVjdGVkSW5kZXggIT09IGkpIHtcbiAgICAgICAgICBlbC5zZWxlY3RlZEluZGV4ID0gaTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCFpc011bHRpcGxlKSB7XG4gICAgZWwuc2VsZWN0ZWRJbmRleCA9IC0xO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhc05vTWF0Y2hpbmdPcHRpb24gKHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBvcHRpb25zLmV2ZXJ5KGZ1bmN0aW9uIChvKSB7IHJldHVybiAhbG9vc2VFcXVhbChvLCB2YWx1ZSk7IH0pXG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlIChvcHRpb24pIHtcbiAgcmV0dXJuICdfdmFsdWUnIGluIG9wdGlvblxuICAgID8gb3B0aW9uLl92YWx1ZVxuICAgIDogb3B0aW9uLnZhbHVlXG59XG5cbmZ1bmN0aW9uIG9uQ29tcG9zaXRpb25TdGFydCAoZSkge1xuICBlLnRhcmdldC5jb21wb3NpbmcgPSB0cnVlO1xufVxuXG5mdW5jdGlvbiBvbkNvbXBvc2l0aW9uRW5kIChlKSB7XG4gIC8vIHByZXZlbnQgdHJpZ2dlcmluZyBhbiBpbnB1dCBldmVudCBmb3Igbm8gcmVhc29uXG4gIGlmICghZS50YXJnZXQuY29tcG9zaW5nKSB7IHJldHVybiB9XG4gIGUudGFyZ2V0LmNvbXBvc2luZyA9IGZhbHNlO1xuICB0cmlnZ2VyKGUudGFyZ2V0LCAnaW5wdXQnKTtcbn1cblxuZnVuY3Rpb24gdHJpZ2dlciAoZWwsIHR5cGUpIHtcbiAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO1xuICBlLmluaXRFdmVudCh0eXBlLCB0cnVlLCB0cnVlKTtcbiAgZWwuZGlzcGF0Y2hFdmVudChlKTtcbn1cblxuLyogICovXG5cbi8vIHJlY3Vyc2l2ZWx5IHNlYXJjaCBmb3IgcG9zc2libGUgdHJhbnNpdGlvbiBkZWZpbmVkIGluc2lkZSB0aGUgY29tcG9uZW50IHJvb3RcbmZ1bmN0aW9uIGxvY2F0ZU5vZGUgKHZub2RlKSB7XG4gIHJldHVybiB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSAmJiAoIXZub2RlLmRhdGEgfHwgIXZub2RlLmRhdGEudHJhbnNpdGlvbilcbiAgICA/IGxvY2F0ZU5vZGUodm5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlKVxuICAgIDogdm5vZGVcbn1cblxudmFyIHNob3cgPSB7XG4gIGJpbmQ6IGZ1bmN0aW9uIGJpbmQgKGVsLCByZWYsIHZub2RlKSB7XG4gICAgdmFyIHZhbHVlID0gcmVmLnZhbHVlO1xuXG4gICAgdm5vZGUgPSBsb2NhdGVOb2RlKHZub2RlKTtcbiAgICB2YXIgdHJhbnNpdGlvbiQkMSA9IHZub2RlLmRhdGEgJiYgdm5vZGUuZGF0YS50cmFuc2l0aW9uO1xuICAgIHZhciBvcmlnaW5hbERpc3BsYXkgPSBlbC5fX3ZPcmlnaW5hbERpc3BsYXkgPVxuICAgICAgZWwuc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnID8gJycgOiBlbC5zdHlsZS5kaXNwbGF5O1xuICAgIGlmICh2YWx1ZSAmJiB0cmFuc2l0aW9uJCQxKSB7XG4gICAgICB2bm9kZS5kYXRhLnNob3cgPSB0cnVlO1xuICAgICAgZW50ZXIodm5vZGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IG9yaWdpbmFsRGlzcGxheTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gdmFsdWUgPyBvcmlnaW5hbERpc3BsYXkgOiAnbm9uZSc7XG4gICAgfVxuICB9LFxuXG4gIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlIChlbCwgcmVmLCB2bm9kZSkge1xuICAgIHZhciB2YWx1ZSA9IHJlZi52YWx1ZTtcbiAgICB2YXIgb2xkVmFsdWUgPSByZWYub2xkVmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXZhbHVlID09PSAhb2xkVmFsdWUpIHsgcmV0dXJuIH1cbiAgICB2bm9kZSA9IGxvY2F0ZU5vZGUodm5vZGUpO1xuICAgIHZhciB0cmFuc2l0aW9uJCQxID0gdm5vZGUuZGF0YSAmJiB2bm9kZS5kYXRhLnRyYW5zaXRpb247XG4gICAgaWYgKHRyYW5zaXRpb24kJDEpIHtcbiAgICAgIHZub2RlLmRhdGEuc2hvdyA9IHRydWU7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgZW50ZXIodm5vZGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gZWwuX192T3JpZ2luYWxEaXNwbGF5O1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxlYXZlKHZub2RlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZSA/IGVsLl9fdk9yaWdpbmFsRGlzcGxheSA6ICdub25lJztcbiAgICB9XG4gIH0sXG5cbiAgdW5iaW5kOiBmdW5jdGlvbiB1bmJpbmQgKFxuICAgIGVsLFxuICAgIGJpbmRpbmcsXG4gICAgdm5vZGUsXG4gICAgb2xkVm5vZGUsXG4gICAgaXNEZXN0cm95XG4gICkge1xuICAgIGlmICghaXNEZXN0cm95KSB7XG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gZWwuX192T3JpZ2luYWxEaXNwbGF5O1xuICAgIH1cbiAgfVxufTtcblxudmFyIHBsYXRmb3JtRGlyZWN0aXZlcyA9IHtcbiAgbW9kZWw6IGRpcmVjdGl2ZSxcbiAgc2hvdzogc2hvd1xufTtcblxuLyogICovXG5cbnZhciB0cmFuc2l0aW9uUHJvcHMgPSB7XG4gIG5hbWU6IFN0cmluZyxcbiAgYXBwZWFyOiBCb29sZWFuLFxuICBjc3M6IEJvb2xlYW4sXG4gIG1vZGU6IFN0cmluZyxcbiAgdHlwZTogU3RyaW5nLFxuICBlbnRlckNsYXNzOiBTdHJpbmcsXG4gIGxlYXZlQ2xhc3M6IFN0cmluZyxcbiAgZW50ZXJUb0NsYXNzOiBTdHJpbmcsXG4gIGxlYXZlVG9DbGFzczogU3RyaW5nLFxuICBlbnRlckFjdGl2ZUNsYXNzOiBTdHJpbmcsXG4gIGxlYXZlQWN0aXZlQ2xhc3M6IFN0cmluZyxcbiAgYXBwZWFyQ2xhc3M6IFN0cmluZyxcbiAgYXBwZWFyQWN0aXZlQ2xhc3M6IFN0cmluZyxcbiAgYXBwZWFyVG9DbGFzczogU3RyaW5nLFxuICBkdXJhdGlvbjogW051bWJlciwgU3RyaW5nLCBPYmplY3RdXG59O1xuXG4vLyBpbiBjYXNlIHRoZSBjaGlsZCBpcyBhbHNvIGFuIGFic3RyYWN0IGNvbXBvbmVudCwgZS5nLiA8a2VlcC1hbGl2ZT5cbi8vIHdlIHdhbnQgdG8gcmVjdXJzaXZlbHkgcmV0cmlldmUgdGhlIHJlYWwgY29tcG9uZW50IHRvIGJlIHJlbmRlcmVkXG5mdW5jdGlvbiBnZXRSZWFsQ2hpbGQgKHZub2RlKSB7XG4gIHZhciBjb21wT3B0aW9ucyA9IHZub2RlICYmIHZub2RlLmNvbXBvbmVudE9wdGlvbnM7XG4gIGlmIChjb21wT3B0aW9ucyAmJiBjb21wT3B0aW9ucy5DdG9yLm9wdGlvbnMuYWJzdHJhY3QpIHtcbiAgICByZXR1cm4gZ2V0UmVhbENoaWxkKGdldEZpcnN0Q29tcG9uZW50Q2hpbGQoY29tcE9wdGlvbnMuY2hpbGRyZW4pKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB2bm9kZVxuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2l0aW9uRGF0YSAoY29tcCkge1xuICB2YXIgZGF0YSA9IHt9O1xuICB2YXIgb3B0aW9ucyA9IGNvbXAuJG9wdGlvbnM7XG4gIC8vIHByb3BzXG4gIGZvciAodmFyIGtleSBpbiBvcHRpb25zLnByb3BzRGF0YSkge1xuICAgIGRhdGFba2V5XSA9IGNvbXBba2V5XTtcbiAgfVxuICAvLyBldmVudHMuXG4gIC8vIGV4dHJhY3QgbGlzdGVuZXJzIGFuZCBwYXNzIHRoZW0gZGlyZWN0bHkgdG8gdGhlIHRyYW5zaXRpb24gbWV0aG9kc1xuICB2YXIgbGlzdGVuZXJzID0gb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO1xuICBmb3IgKHZhciBrZXkkMSBpbiBsaXN0ZW5lcnMpIHtcbiAgICBkYXRhW2NhbWVsaXplKGtleSQxKV0gPSBsaXN0ZW5lcnNba2V5JDFdO1xuICB9XG4gIHJldHVybiBkYXRhXG59XG5cbmZ1bmN0aW9uIHBsYWNlaG9sZGVyIChoLCByYXdDaGlsZCkge1xuICBpZiAoL1xcZC1rZWVwLWFsaXZlJC8udGVzdChyYXdDaGlsZC50YWcpKSB7XG4gICAgcmV0dXJuIGgoJ2tlZXAtYWxpdmUnLCB7XG4gICAgICBwcm9wczogcmF3Q2hpbGQuY29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGFcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGhhc1BhcmVudFRyYW5zaXRpb24gKHZub2RlKSB7XG4gIHdoaWxlICgodm5vZGUgPSB2bm9kZS5wYXJlbnQpKSB7XG4gICAgaWYgKHZub2RlLmRhdGEudHJhbnNpdGlvbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTYW1lQ2hpbGQgKGNoaWxkLCBvbGRDaGlsZCkge1xuICByZXR1cm4gb2xkQ2hpbGQua2V5ID09PSBjaGlsZC5rZXkgJiYgb2xkQ2hpbGQudGFnID09PSBjaGlsZC50YWdcbn1cblxudmFyIGlzTm90VGV4dE5vZGUgPSBmdW5jdGlvbiAoYykgeyByZXR1cm4gYy50YWcgfHwgaXNBc3luY1BsYWNlaG9sZGVyKGMpOyB9O1xuXG52YXIgaXNWU2hvd0RpcmVjdGl2ZSA9IGZ1bmN0aW9uIChkKSB7IHJldHVybiBkLm5hbWUgPT09ICdzaG93JzsgfTtcblxudmFyIFRyYW5zaXRpb24gPSB7XG4gIG5hbWU6ICd0cmFuc2l0aW9uJyxcbiAgcHJvcHM6IHRyYW5zaXRpb25Qcm9wcyxcbiAgYWJzdHJhY3Q6IHRydWUsXG5cbiAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIgKGgpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuJHNsb3RzLmRlZmF1bHQ7XG4gICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gZmlsdGVyIG91dCB0ZXh0IG5vZGVzIChwb3NzaWJsZSB3aGl0ZXNwYWNlcylcbiAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlcihpc05vdFRleHROb2RlKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIWNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gd2FybiBtdWx0aXBsZSBlbGVtZW50c1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICc8dHJhbnNpdGlvbj4gY2FuIG9ubHkgYmUgdXNlZCBvbiBhIHNpbmdsZSBlbGVtZW50LiBVc2UgJyArXG4gICAgICAgICc8dHJhbnNpdGlvbi1ncm91cD4gZm9yIGxpc3RzLicsXG4gICAgICAgIHRoaXMuJHBhcmVudFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgbW9kZSA9IHRoaXMubW9kZTtcblxuICAgIC8vIHdhcm4gaW52YWxpZCBtb2RlXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIG1vZGUgJiYgbW9kZSAhPT0gJ2luLW91dCcgJiYgbW9kZSAhPT0gJ291dC1pbidcbiAgICApIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdpbnZhbGlkIDx0cmFuc2l0aW9uPiBtb2RlOiAnICsgbW9kZSxcbiAgICAgICAgdGhpcy4kcGFyZW50XG4gICAgICApO1xuICAgIH1cblxuICAgIHZhciByYXdDaGlsZCA9IGNoaWxkcmVuWzBdO1xuXG4gICAgLy8gaWYgdGhpcyBpcyBhIGNvbXBvbmVudCByb290IG5vZGUgYW5kIHRoZSBjb21wb25lbnQnc1xuICAgIC8vIHBhcmVudCBjb250YWluZXIgbm9kZSBhbHNvIGhhcyB0cmFuc2l0aW9uLCBza2lwLlxuICAgIGlmIChoYXNQYXJlbnRUcmFuc2l0aW9uKHRoaXMuJHZub2RlKSkge1xuICAgICAgcmV0dXJuIHJhd0NoaWxkXG4gICAgfVxuXG4gICAgLy8gYXBwbHkgdHJhbnNpdGlvbiBkYXRhIHRvIGNoaWxkXG4gICAgLy8gdXNlIGdldFJlYWxDaGlsZCgpIHRvIGlnbm9yZSBhYnN0cmFjdCBjb21wb25lbnRzIGUuZy4ga2VlcC1hbGl2ZVxuICAgIHZhciBjaGlsZCA9IGdldFJlYWxDaGlsZChyYXdDaGlsZCk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCFjaGlsZCkge1xuICAgICAgcmV0dXJuIHJhd0NoaWxkXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2xlYXZpbmcpIHtcbiAgICAgIHJldHVybiBwbGFjZWhvbGRlcihoLCByYXdDaGlsZClcbiAgICB9XG5cbiAgICAvLyBlbnN1cmUgYSBrZXkgdGhhdCBpcyB1bmlxdWUgdG8gdGhlIHZub2RlIHR5cGUgYW5kIHRvIHRoaXMgdHJhbnNpdGlvblxuICAgIC8vIGNvbXBvbmVudCBpbnN0YW5jZS4gVGhpcyBrZXkgd2lsbCBiZSB1c2VkIHRvIHJlbW92ZSBwZW5kaW5nIGxlYXZpbmcgbm9kZXNcbiAgICAvLyBkdXJpbmcgZW50ZXJpbmcuXG4gICAgdmFyIGlkID0gXCJfX3RyYW5zaXRpb24tXCIgKyAodGhpcy5fdWlkKSArIFwiLVwiO1xuICAgIGNoaWxkLmtleSA9IGNoaWxkLmtleSA9PSBudWxsXG4gICAgICA/IGNoaWxkLmlzQ29tbWVudFxuICAgICAgICA/IGlkICsgJ2NvbW1lbnQnXG4gICAgICAgIDogaWQgKyBjaGlsZC50YWdcbiAgICAgIDogaXNQcmltaXRpdmUoY2hpbGQua2V5KVxuICAgICAgICA/IChTdHJpbmcoY2hpbGQua2V5KS5pbmRleE9mKGlkKSA9PT0gMCA/IGNoaWxkLmtleSA6IGlkICsgY2hpbGQua2V5KVxuICAgICAgICA6IGNoaWxkLmtleTtcblxuICAgIHZhciBkYXRhID0gKGNoaWxkLmRhdGEgfHwgKGNoaWxkLmRhdGEgPSB7fSkpLnRyYW5zaXRpb24gPSBleHRyYWN0VHJhbnNpdGlvbkRhdGEodGhpcyk7XG4gICAgdmFyIG9sZFJhd0NoaWxkID0gdGhpcy5fdm5vZGU7XG4gICAgdmFyIG9sZENoaWxkID0gZ2V0UmVhbENoaWxkKG9sZFJhd0NoaWxkKTtcblxuICAgIC8vIG1hcmsgdi1zaG93XG4gICAgLy8gc28gdGhhdCB0aGUgdHJhbnNpdGlvbiBtb2R1bGUgY2FuIGhhbmQgb3ZlciB0aGUgY29udHJvbCB0byB0aGUgZGlyZWN0aXZlXG4gICAgaWYgKGNoaWxkLmRhdGEuZGlyZWN0aXZlcyAmJiBjaGlsZC5kYXRhLmRpcmVjdGl2ZXMuc29tZShpc1ZTaG93RGlyZWN0aXZlKSkge1xuICAgICAgY2hpbGQuZGF0YS5zaG93ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvbGRDaGlsZCAmJlxuICAgICAgb2xkQ2hpbGQuZGF0YSAmJlxuICAgICAgIWlzU2FtZUNoaWxkKGNoaWxkLCBvbGRDaGlsZCkgJiZcbiAgICAgICFpc0FzeW5jUGxhY2Vob2xkZXIob2xkQ2hpbGQpICYmXG4gICAgICAvLyAjNjY4NyBjb21wb25lbnQgcm9vdCBpcyBhIGNvbW1lbnQgbm9kZVxuICAgICAgIShvbGRDaGlsZC5jb21wb25lbnRJbnN0YW5jZSAmJiBvbGRDaGlsZC5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUuaXNDb21tZW50KVxuICAgICkge1xuICAgICAgLy8gcmVwbGFjZSBvbGQgY2hpbGQgdHJhbnNpdGlvbiBkYXRhIHdpdGggZnJlc2ggb25lXG4gICAgICAvLyBpbXBvcnRhbnQgZm9yIGR5bmFtaWMgdHJhbnNpdGlvbnMhXG4gICAgICB2YXIgb2xkRGF0YSA9IG9sZENoaWxkLmRhdGEudHJhbnNpdGlvbiA9IGV4dGVuZCh7fSwgZGF0YSk7XG4gICAgICAvLyBoYW5kbGUgdHJhbnNpdGlvbiBtb2RlXG4gICAgICBpZiAobW9kZSA9PT0gJ291dC1pbicpIHtcbiAgICAgICAgLy8gcmV0dXJuIHBsYWNlaG9sZGVyIG5vZGUgYW5kIHF1ZXVlIHVwZGF0ZSB3aGVuIGxlYXZlIGZpbmlzaGVzXG4gICAgICAgIHRoaXMuX2xlYXZpbmcgPSB0cnVlO1xuICAgICAgICBtZXJnZVZOb2RlSG9vayhvbGREYXRhLCAnYWZ0ZXJMZWF2ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aGlzJDEuX2xlYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzJDEuJGZvcmNlVXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXIoaCwgcmF3Q2hpbGQpXG4gICAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdpbi1vdXQnKSB7XG4gICAgICAgIGlmIChpc0FzeW5jUGxhY2Vob2xkZXIoY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIG9sZFJhd0NoaWxkXG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRlbGF5ZWRMZWF2ZTtcbiAgICAgICAgdmFyIHBlcmZvcm1MZWF2ZSA9IGZ1bmN0aW9uICgpIHsgZGVsYXllZExlYXZlKCk7IH07XG4gICAgICAgIG1lcmdlVk5vZGVIb29rKGRhdGEsICdhZnRlckVudGVyJywgcGVyZm9ybUxlYXZlKTtcbiAgICAgICAgbWVyZ2VWTm9kZUhvb2soZGF0YSwgJ2VudGVyQ2FuY2VsbGVkJywgcGVyZm9ybUxlYXZlKTtcbiAgICAgICAgbWVyZ2VWTm9kZUhvb2sob2xkRGF0YSwgJ2RlbGF5TGVhdmUnLCBmdW5jdGlvbiAobGVhdmUpIHsgZGVsYXllZExlYXZlID0gbGVhdmU7IH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByYXdDaGlsZFxuICB9XG59O1xuXG4vKiAgKi9cblxudmFyIHByb3BzID0gZXh0ZW5kKHtcbiAgdGFnOiBTdHJpbmcsXG4gIG1vdmVDbGFzczogU3RyaW5nXG59LCB0cmFuc2l0aW9uUHJvcHMpO1xuXG5kZWxldGUgcHJvcHMubW9kZTtcblxudmFyIFRyYW5zaXRpb25Hcm91cCA9IHtcbiAgcHJvcHM6IHByb3BzLFxuXG4gIGJlZm9yZU1vdW50OiBmdW5jdGlvbiBiZWZvcmVNb3VudCAoKSB7XG4gICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICB2YXIgdXBkYXRlID0gdGhpcy5fdXBkYXRlO1xuICAgIHRoaXMuX3VwZGF0ZSA9IGZ1bmN0aW9uICh2bm9kZSwgaHlkcmF0aW5nKSB7XG4gICAgICB2YXIgcmVzdG9yZUFjdGl2ZUluc3RhbmNlID0gc2V0QWN0aXZlSW5zdGFuY2UodGhpcyQxKTtcbiAgICAgIC8vIGZvcmNlIHJlbW92aW5nIHBhc3NcbiAgICAgIHRoaXMkMS5fX3BhdGNoX18oXG4gICAgICAgIHRoaXMkMS5fdm5vZGUsXG4gICAgICAgIHRoaXMkMS5rZXB0LFxuICAgICAgICBmYWxzZSwgLy8gaHlkcmF0aW5nXG4gICAgICAgIHRydWUgLy8gcmVtb3ZlT25seSAoIWltcG9ydGFudCwgYXZvaWRzIHVubmVjZXNzYXJ5IG1vdmVzKVxuICAgICAgKTtcbiAgICAgIHRoaXMkMS5fdm5vZGUgPSB0aGlzJDEua2VwdDtcbiAgICAgIHJlc3RvcmVBY3RpdmVJbnN0YW5jZSgpO1xuICAgICAgdXBkYXRlLmNhbGwodGhpcyQxLCB2bm9kZSwgaHlkcmF0aW5nKTtcbiAgICB9O1xuICB9LFxuXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyIChoKSB7XG4gICAgdmFyIHRhZyA9IHRoaXMudGFnIHx8IHRoaXMuJHZub2RlLmRhdGEudGFnIHx8ICdzcGFuJztcbiAgICB2YXIgbWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB2YXIgcHJldkNoaWxkcmVuID0gdGhpcy5wcmV2Q2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuO1xuICAgIHZhciByYXdDaGlsZHJlbiA9IHRoaXMuJHNsb3RzLmRlZmF1bHQgfHwgW107XG4gICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbiA9IFtdO1xuICAgIHZhciB0cmFuc2l0aW9uRGF0YSA9IGV4dHJhY3RUcmFuc2l0aW9uRGF0YSh0aGlzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmF3Q2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjID0gcmF3Q2hpbGRyZW5baV07XG4gICAgICBpZiAoYy50YWcpIHtcbiAgICAgICAgaWYgKGMua2V5ICE9IG51bGwgJiYgU3RyaW5nKGMua2V5KS5pbmRleE9mKCdfX3ZsaXN0JykgIT09IDApIHtcbiAgICAgICAgICBjaGlsZHJlbi5wdXNoKGMpO1xuICAgICAgICAgIG1hcFtjLmtleV0gPSBjXG4gICAgICAgICAgOyhjLmRhdGEgfHwgKGMuZGF0YSA9IHt9KSkudHJhbnNpdGlvbiA9IHRyYW5zaXRpb25EYXRhO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICB2YXIgb3B0cyA9IGMuY29tcG9uZW50T3B0aW9ucztcbiAgICAgICAgICB2YXIgbmFtZSA9IG9wdHMgPyAob3B0cy5DdG9yLm9wdGlvbnMubmFtZSB8fCBvcHRzLnRhZyB8fCAnJykgOiBjLnRhZztcbiAgICAgICAgICB3YXJuKChcIjx0cmFuc2l0aW9uLWdyb3VwPiBjaGlsZHJlbiBtdXN0IGJlIGtleWVkOiA8XCIgKyBuYW1lICsgXCI+XCIpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcmV2Q2hpbGRyZW4pIHtcbiAgICAgIHZhciBrZXB0ID0gW107XG4gICAgICB2YXIgcmVtb3ZlZCA9IFtdO1xuICAgICAgZm9yICh2YXIgaSQxID0gMDsgaSQxIDwgcHJldkNoaWxkcmVuLmxlbmd0aDsgaSQxKyspIHtcbiAgICAgICAgdmFyIGMkMSA9IHByZXZDaGlsZHJlbltpJDFdO1xuICAgICAgICBjJDEuZGF0YS50cmFuc2l0aW9uID0gdHJhbnNpdGlvbkRhdGE7XG4gICAgICAgIGMkMS5kYXRhLnBvcyA9IGMkMS5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGlmIChtYXBbYyQxLmtleV0pIHtcbiAgICAgICAgICBrZXB0LnB1c2goYyQxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZW1vdmVkLnB1c2goYyQxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5rZXB0ID0gaCh0YWcsIG51bGwsIGtlcHQpO1xuICAgICAgdGhpcy5yZW1vdmVkID0gcmVtb3ZlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gaCh0YWcsIG51bGwsIGNoaWxkcmVuKVxuICB9LFxuXG4gIHVwZGF0ZWQ6IGZ1bmN0aW9uIHVwZGF0ZWQgKCkge1xuICAgIHZhciBjaGlsZHJlbiA9IHRoaXMucHJldkNoaWxkcmVuO1xuICAgIHZhciBtb3ZlQ2xhc3MgPSB0aGlzLm1vdmVDbGFzcyB8fCAoKHRoaXMubmFtZSB8fCAndicpICsgJy1tb3ZlJyk7XG4gICAgaWYgKCFjaGlsZHJlbi5sZW5ndGggfHwgIXRoaXMuaGFzTW92ZShjaGlsZHJlblswXS5lbG0sIG1vdmVDbGFzcykpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHdlIGRpdmlkZSB0aGUgd29yayBpbnRvIHRocmVlIGxvb3BzIHRvIGF2b2lkIG1peGluZyBET00gcmVhZHMgYW5kIHdyaXRlc1xuICAgIC8vIGluIGVhY2ggaXRlcmF0aW9uIC0gd2hpY2ggaGVscHMgcHJldmVudCBsYXlvdXQgdGhyYXNoaW5nLlxuICAgIGNoaWxkcmVuLmZvckVhY2goY2FsbFBlbmRpbmdDYnMpO1xuICAgIGNoaWxkcmVuLmZvckVhY2gocmVjb3JkUG9zaXRpb24pO1xuICAgIGNoaWxkcmVuLmZvckVhY2goYXBwbHlUcmFuc2xhdGlvbik7XG5cbiAgICAvLyBmb3JjZSByZWZsb3cgdG8gcHV0IGV2ZXJ5dGhpbmcgaW4gcG9zaXRpb25cbiAgICAvLyBhc3NpZ24gdG8gdGhpcyB0byBhdm9pZCBiZWluZyByZW1vdmVkIGluIHRyZWUtc2hha2luZ1xuICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgIHRoaXMuX3JlZmxvdyA9IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0O1xuXG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgICAgaWYgKGMuZGF0YS5tb3ZlZCkge1xuICAgICAgICB2YXIgZWwgPSBjLmVsbTtcbiAgICAgICAgdmFyIHMgPSBlbC5zdHlsZTtcbiAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBtb3ZlQ2xhc3MpO1xuICAgICAgICBzLnRyYW5zZm9ybSA9IHMuV2Via2l0VHJhbnNmb3JtID0gcy50cmFuc2l0aW9uRHVyYXRpb24gPSAnJztcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcih0cmFuc2l0aW9uRW5kRXZlbnQsIGVsLl9tb3ZlQ2IgPSBmdW5jdGlvbiBjYiAoZSkge1xuICAgICAgICAgIGlmIChlICYmIGUudGFyZ2V0ICE9PSBlbCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZSB8fCAvdHJhbnNmb3JtJC8udGVzdChlLnByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIodHJhbnNpdGlvbkVuZEV2ZW50LCBjYik7XG4gICAgICAgICAgICBlbC5fbW92ZUNiID0gbnVsbDtcbiAgICAgICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbW92ZUNsYXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBoYXNNb3ZlOiBmdW5jdGlvbiBoYXNNb3ZlIChlbCwgbW92ZUNsYXNzKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghaGFzVHJhbnNpdGlvbikge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKHRoaXMuX2hhc01vdmUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc01vdmVcbiAgICAgIH1cbiAgICAgIC8vIERldGVjdCB3aGV0aGVyIGFuIGVsZW1lbnQgd2l0aCB0aGUgbW92ZSBjbGFzcyBhcHBsaWVkIGhhc1xuICAgICAgLy8gQ1NTIHRyYW5zaXRpb25zLiBTaW5jZSB0aGUgZWxlbWVudCBtYXkgYmUgaW5zaWRlIGFuIGVudGVyaW5nXG4gICAgICAvLyB0cmFuc2l0aW9uIGF0IHRoaXMgdmVyeSBtb21lbnQsIHdlIG1ha2UgYSBjbG9uZSBvZiBpdCBhbmQgcmVtb3ZlXG4gICAgICAvLyBhbGwgb3RoZXIgdHJhbnNpdGlvbiBjbGFzc2VzIGFwcGxpZWQgdG8gZW5zdXJlIG9ubHkgdGhlIG1vdmUgY2xhc3NcbiAgICAgIC8vIGlzIGFwcGxpZWQuXG4gICAgICB2YXIgY2xvbmUgPSBlbC5jbG9uZU5vZGUoKTtcbiAgICAgIGlmIChlbC5fdHJhbnNpdGlvbkNsYXNzZXMpIHtcbiAgICAgICAgZWwuX3RyYW5zaXRpb25DbGFzc2VzLmZvckVhY2goZnVuY3Rpb24gKGNscykgeyByZW1vdmVDbGFzcyhjbG9uZSwgY2xzKTsgfSk7XG4gICAgICB9XG4gICAgICBhZGRDbGFzcyhjbG9uZSwgbW92ZUNsYXNzKTtcbiAgICAgIGNsb25lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICB0aGlzLiRlbC5hcHBlbmRDaGlsZChjbG9uZSk7XG4gICAgICB2YXIgaW5mbyA9IGdldFRyYW5zaXRpb25JbmZvKGNsb25lKTtcbiAgICAgIHRoaXMuJGVsLnJlbW92ZUNoaWxkKGNsb25lKTtcbiAgICAgIHJldHVybiAodGhpcy5faGFzTW92ZSA9IGluZm8uaGFzVHJhbnNmb3JtKVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gY2FsbFBlbmRpbmdDYnMgKGMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChjLmVsbS5fbW92ZUNiKSB7XG4gICAgYy5lbG0uX21vdmVDYigpO1xuICB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoYy5lbG0uX2VudGVyQ2IpIHtcbiAgICBjLmVsbS5fZW50ZXJDYigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlY29yZFBvc2l0aW9uIChjKSB7XG4gIGMuZGF0YS5uZXdQb3MgPSBjLmVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbn1cblxuZnVuY3Rpb24gYXBwbHlUcmFuc2xhdGlvbiAoYykge1xuICB2YXIgb2xkUG9zID0gYy5kYXRhLnBvcztcbiAgdmFyIG5ld1BvcyA9IGMuZGF0YS5uZXdQb3M7XG4gIHZhciBkeCA9IG9sZFBvcy5sZWZ0IC0gbmV3UG9zLmxlZnQ7XG4gIHZhciBkeSA9IG9sZFBvcy50b3AgLSBuZXdQb3MudG9wO1xuICBpZiAoZHggfHwgZHkpIHtcbiAgICBjLmRhdGEubW92ZWQgPSB0cnVlO1xuICAgIHZhciBzID0gYy5lbG0uc3R5bGU7XG4gICAgcy50cmFuc2Zvcm0gPSBzLldlYmtpdFRyYW5zZm9ybSA9IFwidHJhbnNsYXRlKFwiICsgZHggKyBcInB4LFwiICsgZHkgKyBcInB4KVwiO1xuICAgIHMudHJhbnNpdGlvbkR1cmF0aW9uID0gJzBzJztcbiAgfVxufVxuXG52YXIgcGxhdGZvcm1Db21wb25lbnRzID0ge1xuICBUcmFuc2l0aW9uOiBUcmFuc2l0aW9uLFxuICBUcmFuc2l0aW9uR3JvdXA6IFRyYW5zaXRpb25Hcm91cFxufTtcblxuLyogICovXG5cbi8vIGluc3RhbGwgcGxhdGZvcm0gc3BlY2lmaWMgdXRpbHNcblZ1ZS5jb25maWcubXVzdFVzZVByb3AgPSBtdXN0VXNlUHJvcDtcblZ1ZS5jb25maWcuaXNSZXNlcnZlZFRhZyA9IGlzUmVzZXJ2ZWRUYWc7XG5WdWUuY29uZmlnLmlzUmVzZXJ2ZWRBdHRyID0gaXNSZXNlcnZlZEF0dHI7XG5WdWUuY29uZmlnLmdldFRhZ05hbWVzcGFjZSA9IGdldFRhZ05hbWVzcGFjZTtcblZ1ZS5jb25maWcuaXNVbmtub3duRWxlbWVudCA9IGlzVW5rbm93bkVsZW1lbnQ7XG5cbi8vIGluc3RhbGwgcGxhdGZvcm0gcnVudGltZSBkaXJlY3RpdmVzICYgY29tcG9uZW50c1xuZXh0ZW5kKFZ1ZS5vcHRpb25zLmRpcmVjdGl2ZXMsIHBsYXRmb3JtRGlyZWN0aXZlcyk7XG5leHRlbmQoVnVlLm9wdGlvbnMuY29tcG9uZW50cywgcGxhdGZvcm1Db21wb25lbnRzKTtcblxuLy8gaW5zdGFsbCBwbGF0Zm9ybSBwYXRjaCBmdW5jdGlvblxuVnVlLnByb3RvdHlwZS5fX3BhdGNoX18gPSBpbkJyb3dzZXIgPyBwYXRjaCA6IG5vb3A7XG5cbi8vIHB1YmxpYyBtb3VudCBtZXRob2RcblZ1ZS5wcm90b3R5cGUuJG1vdW50ID0gZnVuY3Rpb24gKFxuICBlbCxcbiAgaHlkcmF0aW5nXG4pIHtcbiAgZWwgPSBlbCAmJiBpbkJyb3dzZXIgPyBxdWVyeShlbCkgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBtb3VudENvbXBvbmVudCh0aGlzLCBlbCwgaHlkcmF0aW5nKVxufTtcblxuLy8gZGV2dG9vbHMgZ2xvYmFsIGhvb2tcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5pZiAoaW5Ccm93c2VyKSB7XG4gIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgIGlmIChjb25maWcuZGV2dG9vbHMpIHtcbiAgICAgIGlmIChkZXZ0b29scykge1xuICAgICAgICBkZXZ0b29scy5lbWl0KCdpbml0JywgVnVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICd0ZXN0J1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGVbY29uc29sZS5pbmZvID8gJ2luZm8nIDogJ2xvZyddKFxuICAgICAgICAgICdEb3dubG9hZCB0aGUgVnVlIERldnRvb2xzIGV4dGVuc2lvbiBmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTpcXG4nICtcbiAgICAgICAgICAnaHR0cHM6Ly9naXRodWIuY29tL3Z1ZWpzL3Z1ZS1kZXZ0b29scydcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcgJiZcbiAgICAgIGNvbmZpZy5wcm9kdWN0aW9uVGlwICE9PSBmYWxzZSAmJlxuICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnXG4gICAgKSB7XG4gICAgICBjb25zb2xlW2NvbnNvbGUuaW5mbyA/ICdpbmZvJyA6ICdsb2cnXShcbiAgICAgICAgXCJZb3UgYXJlIHJ1bm5pbmcgVnVlIGluIGRldmVsb3BtZW50IG1vZGUuXFxuXCIgK1xuICAgICAgICBcIk1ha2Ugc3VyZSB0byB0dXJuIG9uIHByb2R1Y3Rpb24gbW9kZSB3aGVuIGRlcGxveWluZyBmb3IgcHJvZHVjdGlvbi5cXG5cIiArXG4gICAgICAgIFwiU2VlIG1vcmUgdGlwcyBhdCBodHRwczovL3Z1ZWpzLm9yZy9ndWlkZS9kZXBsb3ltZW50Lmh0bWxcIlxuICAgICAgKTtcbiAgICB9XG4gIH0sIDApO1xufVxuXG4vKiAgKi9cblxuZXhwb3J0IGRlZmF1bHQgVnVlO1xuIiwiKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcblx0dHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gZmFjdG9yeShleHBvcnRzKSA6XG5cdHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJ2V4cG9ydHMnXSwgZmFjdG9yeSkgOlxuXHQoZmFjdG9yeSgoZ2xvYmFsLnZ1ZU1vbWVudCA9IHt9KSkpO1xufSh0aGlzLCAoZnVuY3Rpb24gKGV4cG9ydHMpIHsgJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29tbW9uanNHbG9iYWwgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHt9O1xuXG5mdW5jdGlvbiBjb21tb25qc1JlcXVpcmUgKCkge1xuXHR0aHJvdyBuZXcgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IHJvbGx1cC1wbHVnaW4tY29tbW9uanMnKTtcbn1cblxuXG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbW1vbmpzTW9kdWxlKGZuLCBtb2R1bGUpIHtcblx0cmV0dXJuIG1vZHVsZSA9IHsgZXhwb3J0czoge30gfSwgZm4obW9kdWxlLCBtb2R1bGUuZXhwb3J0cyksIG1vZHVsZS5leHBvcnRzO1xufVxuXG52YXIgbW9tZW50ID0gY3JlYXRlQ29tbW9uanNNb2R1bGUoZnVuY3Rpb24gKG1vZHVsZSwgZXhwb3J0cykge1xudmFyIF90eXBlb2YgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIiA/IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH0gOiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9O1xuXG4vLyEgbW9tZW50LmpzXG4vLyEgdmVyc2lvbiA6IDIuMTkuMVxuLy8hIGF1dGhvcnMgOiBUaW0gV29vZCwgSXNrcmVuIENoZXJuZXYsIE1vbWVudC5qcyBjb250cmlidXRvcnNcbi8vISBsaWNlbnNlIDogTUlUXG4vLyEgbW9tZW50anMuY29tXG5cbihmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICAgKF90eXBlb2YoZXhwb3J0cykpID09PSAnb2JqZWN0JyAmJiAnb2JqZWN0JyAhPT0gJ3VuZGVmaW5lZCcgPyBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKSA6IHR5cGVvZiB1bmRlZmluZWQgPT09ICdmdW5jdGlvbicgJiYgdW5kZWZpbmVkLmFtZCA/IHVuZGVmaW5lZChmYWN0b3J5KSA6IGdsb2JhbC5tb21lbnQgPSBmYWN0b3J5KCk7XG59KShjb21tb25qc0dsb2JhbCwgZnVuY3Rpb24gKCkge1xuICAgIHZhciBob29rQ2FsbGJhY2s7XG5cbiAgICBmdW5jdGlvbiBob29rcygpIHtcbiAgICAgICAgcmV0dXJuIGhvb2tDYWxsYmFjay5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgZG9uZSB0byByZWdpc3RlciB0aGUgbWV0aG9kIGNhbGxlZCB3aXRoIG1vbWVudCgpXG4gICAgLy8gd2l0aG91dCBjcmVhdGluZyBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gICAgZnVuY3Rpb24gc2V0SG9va0NhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgICAgIGhvb2tDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQXJyYXkoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0IGluc3RhbmNlb2YgQXJyYXkgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc09iamVjdChpbnB1dCkge1xuICAgICAgICAvLyBJRTggd2lsbCB0cmVhdCB1bmRlZmluZWQgYW5kIG51bGwgYXMgb2JqZWN0IGlmIGl0IHdhc24ndCBmb3JcbiAgICAgICAgLy8gaW5wdXQgIT0gbnVsbFxuICAgICAgICByZXR1cm4gaW5wdXQgIT0gbnVsbCAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBPYmplY3RdJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc09iamVjdEVtcHR5KG9iaikge1xuICAgICAgICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBrO1xuICAgICAgICAgICAgZm9yIChrIGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVbmRlZmluZWQoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09PSB2b2lkIDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNOdW1iZXIoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgTnVtYmVyXSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXRlKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCBpbnN0YW5jZW9mIERhdGUgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1hcChhcnIsIGZuKSB7XG4gICAgICAgIHZhciByZXMgPSBbXSxcbiAgICAgICAgICAgIGk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIHJlcy5wdXNoKGZuKGFycltpXSwgaSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFzT3duUHJvcChhLCBiKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgYik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXh0ZW5kKGEsIGIpIHtcbiAgICAgICAgZm9yICh2YXIgaSBpbiBiKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcChiLCBpKSkge1xuICAgICAgICAgICAgICAgIGFbaV0gPSBiW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc093blByb3AoYiwgJ3RvU3RyaW5nJykpIHtcbiAgICAgICAgICAgIGEudG9TdHJpbmcgPSBiLnRvU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc093blByb3AoYiwgJ3ZhbHVlT2YnKSkge1xuICAgICAgICAgICAgYS52YWx1ZU9mID0gYi52YWx1ZU9mO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGE7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCB0cnVlKS51dGMoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZWZhdWx0UGFyc2luZ0ZsYWdzKCkge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIGRlZXAgY2xvbmUgdGhpcyBvYmplY3QuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbXB0eTogZmFsc2UsXG4gICAgICAgICAgICB1bnVzZWRUb2tlbnM6IFtdLFxuICAgICAgICAgICAgdW51c2VkSW5wdXQ6IFtdLFxuICAgICAgICAgICAgb3ZlcmZsb3c6IC0yLFxuICAgICAgICAgICAgY2hhcnNMZWZ0T3ZlcjogMCxcbiAgICAgICAgICAgIG51bGxJbnB1dDogZmFsc2UsXG4gICAgICAgICAgICBpbnZhbGlkTW9udGg6IG51bGwsXG4gICAgICAgICAgICBpbnZhbGlkRm9ybWF0OiBmYWxzZSxcbiAgICAgICAgICAgIHVzZXJJbnZhbGlkYXRlZDogZmFsc2UsXG4gICAgICAgICAgICBpc286IGZhbHNlLFxuICAgICAgICAgICAgcGFyc2VkRGF0ZVBhcnRzOiBbXSxcbiAgICAgICAgICAgIG1lcmlkaWVtOiBudWxsLFxuICAgICAgICAgICAgcmZjMjgyMjogZmFsc2UsXG4gICAgICAgICAgICB3ZWVrZGF5TWlzbWF0Y2g6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyc2luZ0ZsYWdzKG0pIHtcbiAgICAgICAgaWYgKG0uX3BmID09IG51bGwpIHtcbiAgICAgICAgICAgIG0uX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtLl9wZjtcbiAgICB9XG5cbiAgICB2YXIgc29tZTtcbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLnNvbWUpIHtcbiAgICAgICAgc29tZSA9IEFycmF5LnByb3RvdHlwZS5zb21lO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNvbWUgPSBmdW5jdGlvbiBzb21lKGZ1bikge1xuICAgICAgICAgICAgdmFyIHQgPSBPYmplY3QodGhpcyk7XG4gICAgICAgICAgICB2YXIgbGVuID0gdC5sZW5ndGggPj4+IDA7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSBpbiB0ICYmIGZ1bi5jYWxsKHRoaXMsIHRbaV0sIGksIHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmFsaWQobSkge1xuICAgICAgICBpZiAobS5faXNWYWxpZCA9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgZmxhZ3MgPSBnZXRQYXJzaW5nRmxhZ3MobSk7XG4gICAgICAgICAgICB2YXIgcGFyc2VkUGFydHMgPSBzb21lLmNhbGwoZmxhZ3MucGFyc2VkRGF0ZVBhcnRzLCBmdW5jdGlvbiAoaSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpICE9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBpc05vd1ZhbGlkID0gIWlzTmFOKG0uX2QuZ2V0VGltZSgpKSAmJiBmbGFncy5vdmVyZmxvdyA8IDAgJiYgIWZsYWdzLmVtcHR5ICYmICFmbGFncy5pbnZhbGlkTW9udGggJiYgIWZsYWdzLmludmFsaWRXZWVrZGF5ICYmICFmbGFncy53ZWVrZGF5TWlzbWF0Y2ggJiYgIWZsYWdzLm51bGxJbnB1dCAmJiAhZmxhZ3MuaW52YWxpZEZvcm1hdCAmJiAhZmxhZ3MudXNlckludmFsaWRhdGVkICYmICghZmxhZ3MubWVyaWRpZW0gfHwgZmxhZ3MubWVyaWRpZW0gJiYgcGFyc2VkUGFydHMpO1xuXG4gICAgICAgICAgICBpZiAobS5fc3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgaXNOb3dWYWxpZCA9IGlzTm93VmFsaWQgJiYgZmxhZ3MuY2hhcnNMZWZ0T3ZlciA9PT0gMCAmJiBmbGFncy51bnVzZWRUb2tlbnMubGVuZ3RoID09PSAwICYmIGZsYWdzLmJpZ0hvdXIgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKE9iamVjdC5pc0Zyb3plbiA9PSBudWxsIHx8ICFPYmplY3QuaXNGcm96ZW4obSkpIHtcbiAgICAgICAgICAgICAgICBtLl9pc1ZhbGlkID0gaXNOb3dWYWxpZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTm93VmFsaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG0uX2lzVmFsaWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZChmbGFncykge1xuICAgICAgICB2YXIgbSA9IGNyZWF0ZVVUQyhOYU4pO1xuICAgICAgICBpZiAoZmxhZ3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgZXh0ZW5kKGdldFBhcnNpbmdGbGFncyhtKSwgZmxhZ3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLnVzZXJJbnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICAvLyBQbHVnaW5zIHRoYXQgYWRkIHByb3BlcnRpZXMgc2hvdWxkIGFsc28gYWRkIHRoZSBrZXkgaGVyZSAobnVsbCB2YWx1ZSksXG4gICAgLy8gc28gd2UgY2FuIHByb3Blcmx5IGNsb25lIG91cnNlbHZlcy5cbiAgICB2YXIgbW9tZW50UHJvcGVydGllcyA9IGhvb2tzLm1vbWVudFByb3BlcnRpZXMgPSBbXTtcblxuICAgIGZ1bmN0aW9uIGNvcHlDb25maWcodG8sIGZyb20pIHtcbiAgICAgICAgdmFyIGksIHByb3AsIHZhbDtcblxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzQU1vbWVudE9iamVjdCkpIHtcbiAgICAgICAgICAgIHRvLl9pc0FNb21lbnRPYmplY3QgPSBmcm9tLl9pc0FNb21lbnRPYmplY3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9pKSkge1xuICAgICAgICAgICAgdG8uX2kgPSBmcm9tLl9pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fZikpIHtcbiAgICAgICAgICAgIHRvLl9mID0gZnJvbS5fZjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2wpKSB7XG4gICAgICAgICAgICB0by5fbCA9IGZyb20uX2w7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9zdHJpY3QpKSB7XG4gICAgICAgICAgICB0by5fc3RyaWN0ID0gZnJvbS5fc3RyaWN0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fdHptKSkge1xuICAgICAgICAgICAgdG8uX3R6bSA9IGZyb20uX3R6bTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzVVRDKSkge1xuICAgICAgICAgICAgdG8uX2lzVVRDID0gZnJvbS5faXNVVEM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9vZmZzZXQpKSB7XG4gICAgICAgICAgICB0by5fb2Zmc2V0ID0gZnJvbS5fb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fcGYpKSB7XG4gICAgICAgICAgICB0by5fcGYgPSBnZXRQYXJzaW5nRmxhZ3MoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9sb2NhbGUpKSB7XG4gICAgICAgICAgICB0by5fbG9jYWxlID0gZnJvbS5fbG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vbWVudFByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1vbWVudFByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBwcm9wID0gbW9tZW50UHJvcGVydGllc1tpXTtcbiAgICAgICAgICAgICAgICB2YWwgPSBmcm9tW3Byb3BdO1xuICAgICAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQodmFsKSkge1xuICAgICAgICAgICAgICAgICAgICB0b1twcm9wXSA9IHZhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG87XG4gICAgfVxuXG4gICAgdmFyIHVwZGF0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICAgIC8vIE1vbWVudCBwcm90b3R5cGUgb2JqZWN0XG4gICAgZnVuY3Rpb24gTW9tZW50KGNvbmZpZykge1xuICAgICAgICBjb3B5Q29uZmlnKHRoaXMsIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2QgPSBuZXcgRGF0ZShjb25maWcuX2QgIT0gbnVsbCA/IGNvbmZpZy5fZC5nZXRUaW1lKCkgOiBOYU4pO1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9kID0gbmV3IERhdGUoTmFOKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQcmV2ZW50IGluZmluaXRlIGxvb3AgaW4gY2FzZSB1cGRhdGVPZmZzZXQgY3JlYXRlcyBuZXcgbW9tZW50XG4gICAgICAgIC8vIG9iamVjdHMuXG4gICAgICAgIGlmICh1cGRhdGVJblByb2dyZXNzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdXBkYXRlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcyk7XG4gICAgICAgICAgICB1cGRhdGVJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc01vbWVudChvYmopIHtcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIE1vbWVudCB8fCBvYmogIT0gbnVsbCAmJiBvYmouX2lzQU1vbWVudE9iamVjdCAhPSBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic0Zsb29yKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgLy8gLTAgLT4gMFxuICAgICAgICAgICAgcmV0dXJuIE1hdGguY2VpbChudW1iZXIpIHx8IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9JbnQoYXJndW1lbnRGb3JDb2VyY2lvbikge1xuICAgICAgICB2YXIgY29lcmNlZE51bWJlciA9ICthcmd1bWVudEZvckNvZXJjaW9uLFxuICAgICAgICAgICAgdmFsdWUgPSAwO1xuXG4gICAgICAgIGlmIChjb2VyY2VkTnVtYmVyICE9PSAwICYmIGlzRmluaXRlKGNvZXJjZWROdW1iZXIpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGFic0Zsb29yKGNvZXJjZWROdW1iZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8vIGNvbXBhcmUgdHdvIGFycmF5cywgcmV0dXJuIHRoZSBudW1iZXIgb2YgZGlmZmVyZW5jZXNcbiAgICBmdW5jdGlvbiBjb21wYXJlQXJyYXlzKGFycmF5MSwgYXJyYXkyLCBkb250Q29udmVydCkge1xuICAgICAgICB2YXIgbGVuID0gTWF0aC5taW4oYXJyYXkxLmxlbmd0aCwgYXJyYXkyLmxlbmd0aCksXG4gICAgICAgICAgICBsZW5ndGhEaWZmID0gTWF0aC5hYnMoYXJyYXkxLmxlbmd0aCAtIGFycmF5Mi5sZW5ndGgpLFxuICAgICAgICAgICAgZGlmZnMgPSAwLFxuICAgICAgICAgICAgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZG9udENvbnZlcnQgJiYgYXJyYXkxW2ldICE9PSBhcnJheTJbaV0gfHwgIWRvbnRDb252ZXJ0ICYmIHRvSW50KGFycmF5MVtpXSkgIT09IHRvSW50KGFycmF5MltpXSkpIHtcbiAgICAgICAgICAgICAgICBkaWZmcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaWZmcyArIGxlbmd0aERpZmY7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Fybihtc2cpIHtcbiAgICAgICAgaWYgKGhvb2tzLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyA9PT0gZmFsc2UgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUud2Fybikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdEZXByZWNhdGlvbiB3YXJuaW5nOiAnICsgbXNnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlcHJlY2F0ZShtc2csIGZuKSB7XG4gICAgICAgIHZhciBmaXJzdFRpbWUgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiBleHRlbmQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyKG51bGwsIG1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICB2YXIgYXJnO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZyA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBpZiAoX3R5cGVvZihhcmd1bWVudHNbaV0pID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnICs9ICdcXG5bJyArIGkgKyAnXSAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGFyZ3VtZW50c1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyArPSBrZXkgKyAnOiAnICsgYXJndW1lbnRzWzBdW2tleV0gKyAnLCAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnNsaWNlKDAsIC0yKTsgLy8gUmVtb3ZlIHRyYWlsaW5nIGNvbW1hIGFuZCBzcGFjZVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MucHVzaChhcmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3YXJuKG1zZyArICdcXG5Bcmd1bWVudHM6ICcgKyBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzKS5qb2luKCcnKSArICdcXG4nICsgbmV3IEVycm9yKCkuc3RhY2spO1xuICAgICAgICAgICAgICAgIGZpcnN0VGltZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sIGZuKTtcbiAgICB9XG5cbiAgICB2YXIgZGVwcmVjYXRpb25zID0ge307XG5cbiAgICBmdW5jdGlvbiBkZXByZWNhdGVTaW1wbGUobmFtZSwgbXNnKSB7XG4gICAgICAgIGlmIChob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyKG5hbWUsIG1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFkZXByZWNhdGlvbnNbbmFtZV0pIHtcbiAgICAgICAgICAgIHdhcm4obXNnKTtcbiAgICAgICAgICAgIGRlcHJlY2F0aW9uc1tuYW1lXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBob29rcy5zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MgPSBmYWxzZTtcbiAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgPSBudWxsO1xuXG4gICAgZnVuY3Rpb24gaXNGdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBGdW5jdGlvbiB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldChjb25maWcpIHtcbiAgICAgICAgdmFyIHByb3AsIGk7XG4gICAgICAgIGZvciAoaSBpbiBjb25maWcpIHtcbiAgICAgICAgICAgIHByb3AgPSBjb25maWdbaV07XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihwcm9wKSkge1xuICAgICAgICAgICAgICAgIHRoaXNbaV0gPSBwcm9wO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzWydfJyArIGldID0gcHJvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIC8vIExlbmllbnQgb3JkaW5hbCBwYXJzaW5nIGFjY2VwdHMganVzdCBhIG51bWJlciBpbiBhZGRpdGlvbiB0b1xuICAgICAgICAvLyBudW1iZXIgKyAocG9zc2libHkpIHN0dWZmIGNvbWluZyBmcm9tIF9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlLlxuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgXCJvcmRpbmFsUGFyc2VcIiBmYWxsYmFjayBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gICAgICAgIHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50ID0gbmV3IFJlZ0V4cCgodGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZS5zb3VyY2UgfHwgdGhpcy5fb3JkaW5hbFBhcnNlLnNvdXJjZSkgKyAnfCcgKyAvXFxkezEsMn0vLnNvdXJjZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY2hpbGRDb25maWcpIHtcbiAgICAgICAgdmFyIHJlcyA9IGV4dGVuZCh7fSwgcGFyZW50Q29uZmlnKSxcbiAgICAgICAgICAgIHByb3A7XG4gICAgICAgIGZvciAocHJvcCBpbiBjaGlsZENvbmZpZykge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHBhcmVudENvbmZpZ1twcm9wXSkgJiYgaXNPYmplY3QoY2hpbGRDb25maWdbcHJvcF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBwYXJlbnRDb25maWdbcHJvcF0pO1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBjaGlsZENvbmZpZ1twcm9wXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZENvbmZpZ1twcm9wXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IGNoaWxkQ29uZmlnW3Byb3BdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSByZXNbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAocHJvcCBpbiBwYXJlbnRDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKHBhcmVudENvbmZpZywgcHJvcCkgJiYgIWhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApICYmIGlzT2JqZWN0KHBhcmVudENvbmZpZ1twcm9wXSkpIHtcbiAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgY2hhbmdlcyB0byBwcm9wZXJ0aWVzIGRvbid0IG1vZGlmeSBwYXJlbnQgY29uZmlnXG4gICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gZXh0ZW5kKHt9LCByZXNbcHJvcF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTG9jYWxlKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0KGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIga2V5cztcblxuICAgIGlmIChPYmplY3Qua2V5cykge1xuICAgICAgICBrZXlzID0gT2JqZWN0LmtleXM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAga2V5cyA9IGZ1bmN0aW9uIGtleXMob2JqKSB7XG4gICAgICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgICAgICByZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoaSBpbiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcChvYmosIGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRDYWxlbmRhciA9IHtcbiAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBjYWxlbmRhcihrZXksIG1vbSwgbm93KSB7XG4gICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9jYWxlbmRhcltrZXldIHx8IHRoaXMuX2NhbGVuZGFyWydzYW1lRWxzZSddO1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihvdXRwdXQpID8gb3V0cHV0LmNhbGwobW9tLCBub3cpIDogb3V0cHV0O1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9uZ0RhdGVGb3JtYXQgPSB7XG4gICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgTDogJ01NL0REL1lZWVknLFxuICAgICAgICBMTDogJ01NTU0gRCwgWVlZWScsXG4gICAgICAgIExMTDogJ01NTU0gRCwgWVlZWSBoOm1tIEEnLFxuICAgICAgICBMTExMOiAnZGRkZCwgTU1NTSBELCBZWVlZIGg6bW0gQSdcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gbG9uZ0RhdGVGb3JtYXQoa2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldLFxuICAgICAgICAgICAgZm9ybWF0VXBwZXIgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXkudG9VcHBlckNhc2UoKV07XG5cbiAgICAgICAgaWYgKGZvcm1hdCB8fCAhZm9ybWF0VXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldID0gZm9ybWF0VXBwZXIucmVwbGFjZSgvTU1NTXxNTXxERHxkZGRkL2csIGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWwuc2xpY2UoMSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0SW52YWxpZERhdGUgPSAnSW52YWxpZCBkYXRlJztcblxuICAgIGZ1bmN0aW9uIGludmFsaWREYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52YWxpZERhdGU7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRPcmRpbmFsID0gJyVkJztcbiAgICB2YXIgZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UgPSAvXFxkezEsMn0vO1xuXG4gICAgZnVuY3Rpb24gb3JkaW5hbChudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yZGluYWwucmVwbGFjZSgnJWQnLCBudW1iZXIpO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0UmVsYXRpdmVUaW1lID0ge1xuICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgeXk6ICclZCB5ZWFycydcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fcmVsYXRpdmVUaW1lW3N0cmluZ107XG4gICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKG91dHB1dCkgPyBvdXRwdXQobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSA6IG91dHB1dC5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhc3RGdXR1cmUoZGlmZiwgb3V0cHV0KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbZGlmZiA+IDAgPyAnZnV0dXJlJyA6ICdwYXN0J107XG4gICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGZvcm1hdCkgPyBmb3JtYXQob3V0cHV0KSA6IGZvcm1hdC5yZXBsYWNlKC8lcy9pLCBvdXRwdXQpO1xuICAgIH1cblxuICAgIHZhciBhbGlhc2VzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRVbml0QWxpYXModW5pdCwgc2hvcnRoYW5kKSB7XG4gICAgICAgIHZhciBsb3dlckNhc2UgPSB1bml0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGFsaWFzZXNbbG93ZXJDYXNlXSA9IGFsaWFzZXNbbG93ZXJDYXNlICsgJ3MnXSA9IGFsaWFzZXNbc2hvcnRoYW5kXSA9IHVuaXQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplVW5pdHModW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB1bml0cyA9PT0gJ3N0cmluZycgPyBhbGlhc2VzW3VuaXRzXSB8fCBhbGlhc2VzW3VuaXRzLnRvTG93ZXJDYXNlKCldIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdFVuaXRzKGlucHV0T2JqZWN0KSB7XG4gICAgICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSB7fSxcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wLFxuICAgICAgICAgICAgcHJvcDtcblxuICAgICAgICBmb3IgKHByb3AgaW4gaW5wdXRPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGlucHV0T2JqZWN0LCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wID0gbm9ybWFsaXplVW5pdHMocHJvcCk7XG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRQcm9wKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRJbnB1dFtub3JtYWxpemVkUHJvcF0gPSBpbnB1dE9iamVjdFtwcm9wXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZElucHV0O1xuICAgIH1cblxuICAgIHZhciBwcmlvcml0aWVzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRVbml0UHJpb3JpdHkodW5pdCwgcHJpb3JpdHkpIHtcbiAgICAgICAgcHJpb3JpdGllc1t1bml0XSA9IHByaW9yaXR5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFByaW9yaXRpemVkVW5pdHModW5pdHNPYmopIHtcbiAgICAgICAgdmFyIHVuaXRzID0gW107XG4gICAgICAgIGZvciAodmFyIHUgaW4gdW5pdHNPYmopIHtcbiAgICAgICAgICAgIHVuaXRzLnB1c2goeyB1bml0OiB1LCBwcmlvcml0eTogcHJpb3JpdGllc1t1XSB9KTtcbiAgICAgICAgfVxuICAgICAgICB1bml0cy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdW5pdHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gemVyb0ZpbGwobnVtYmVyLCB0YXJnZXRMZW5ndGgsIGZvcmNlU2lnbikge1xuICAgICAgICB2YXIgYWJzTnVtYmVyID0gJycgKyBNYXRoLmFicyhudW1iZXIpLFxuICAgICAgICAgICAgemVyb3NUb0ZpbGwgPSB0YXJnZXRMZW5ndGggLSBhYnNOdW1iZXIubGVuZ3RoLFxuICAgICAgICAgICAgc2lnbiA9IG51bWJlciA+PSAwO1xuICAgICAgICByZXR1cm4gKHNpZ24gPyBmb3JjZVNpZ24gPyAnKycgOiAnJyA6ICctJykgKyBNYXRoLnBvdygxMCwgTWF0aC5tYXgoMCwgemVyb3NUb0ZpbGwpKS50b1N0cmluZygpLnN1YnN0cigxKSArIGFic051bWJlcjtcbiAgICB9XG5cbiAgICB2YXIgZm9ybWF0dGluZ1Rva2VucyA9IC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhbSGhdbW0oc3MpP3xNb3xNTT9NP00/fERvfERERG98REQ/RD9EP3xkZGQ/ZD98ZG8/fHdbb3x3XT98V1tvfFddP3xRbz98WVlZWVlZfFlZWVlZfFlZWVl8WVl8Z2coZ2dnPyk/fEdHKEdHRz8pP3xlfEV8YXxBfGhoP3xISD98a2s/fG1tP3xzcz98U3sxLDl9fHh8WHx6ej98Wlo/fC4pL2c7XG5cbiAgICB2YXIgbG9jYWxGb3JtYXR0aW5nVG9rZW5zID0gLyhcXFtbXlxcW10qXFxdKXwoXFxcXCk/KExUU3xMVHxMTD9MP0w/fGx7MSw0fSkvZztcblxuICAgIHZhciBmb3JtYXRGdW5jdGlvbnMgPSB7fTtcblxuICAgIHZhciBmb3JtYXRUb2tlbkZ1bmN0aW9ucyA9IHt9O1xuXG4gICAgLy8gdG9rZW46ICAgICdNJ1xuICAgIC8vIHBhZGRlZDogICBbJ01NJywgMl1cbiAgICAvLyBvcmRpbmFsOiAgJ01vJ1xuICAgIC8vIGNhbGxiYWNrOiBmdW5jdGlvbiAoKSB7IHRoaXMubW9udGgoKSArIDEgfVxuICAgIGZ1bmN0aW9uIGFkZEZvcm1hdFRva2VuKHRva2VuLCBwYWRkZWQsIG9yZGluYWwsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBmdW5jID0gY2FsbGJhY2s7XG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBmdW5jID0gZnVuY3Rpb24gZnVuYygpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1tjYWxsYmFja10oKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYWRkZWQpIHtcbiAgICAgICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zW3BhZGRlZFswXV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHplcm9GaWxsKGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgcGFkZGVkWzFdLCBwYWRkZWRbMl0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3JkaW5hbCkge1xuICAgICAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbb3JkaW5hbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm9yZGluYWwoZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpLCB0b2tlbik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhpbnB1dCkge1xuICAgICAgICBpZiAoaW5wdXQubWF0Y2goL1xcW1tcXHNcXFNdLykpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9eXFxbfFxcXSQvZywgJycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9cXFxcL2csICcnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlRm9ybWF0RnVuY3Rpb24oZm9ybWF0KSB7XG4gICAgICAgIHZhciBhcnJheSA9IGZvcm1hdC5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBsZW5ndGg7XG5cbiAgICAgICAgZm9yIChpID0gMCwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXRUb2tlbkZ1bmN0aW9uc1thcnJheVtpXV0pIHtcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IGZvcm1hdFRva2VuRnVuY3Rpb25zW2FycmF5W2ldXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbaV0gPSByZW1vdmVGb3JtYXR0aW5nVG9rZW5zKGFycmF5W2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAobW9tKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gJycsXG4gICAgICAgICAgICAgICAgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIG91dHB1dCArPSBpc0Z1bmN0aW9uKGFycmF5W2ldKSA/IGFycmF5W2ldLmNhbGwobW9tLCBmb3JtYXQpIDogYXJyYXlbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIGZvcm1hdCBkYXRlIHVzaW5nIG5hdGl2ZSBkYXRlIG9iamVjdFxuICAgIGZ1bmN0aW9uIGZvcm1hdE1vbWVudChtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG0ubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtYXQgPSBleHBhbmRGb3JtYXQoZm9ybWF0LCBtLmxvY2FsZURhdGEoKSk7XG4gICAgICAgIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdID0gZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0gfHwgbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdKG0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4cGFuZEZvcm1hdChmb3JtYXQsIGxvY2FsZSkge1xuICAgICAgICB2YXIgaSA9IDU7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVwbGFjZUxvbmdEYXRlRm9ybWF0VG9rZW5zKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLmxvbmdEYXRlRm9ybWF0KGlucHV0KSB8fCBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAoaSA+PSAwICYmIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKGxvY2FsRm9ybWF0dGluZ1Rva2VucywgcmVwbGFjZUxvbmdEYXRlRm9ybWF0VG9rZW5zKTtcbiAgICAgICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgaSAtPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICB2YXIgbWF0Y2gxID0gL1xcZC87IC8vICAgICAgIDAgLSA5XG4gICAgdmFyIG1hdGNoMiA9IC9cXGRcXGQvOyAvLyAgICAgIDAwIC0gOTlcbiAgICB2YXIgbWF0Y2gzID0gL1xcZHszfS87IC8vICAgICAwMDAgLSA5OTlcbiAgICB2YXIgbWF0Y2g0ID0gL1xcZHs0fS87IC8vICAgIDAwMDAgLSA5OTk5XG4gICAgdmFyIG1hdGNoNiA9IC9bKy1dP1xcZHs2fS87IC8vIC05OTk5OTkgLSA5OTk5OTlcbiAgICB2YXIgbWF0Y2gxdG8yID0gL1xcZFxcZD8vOyAvLyAgICAgICAwIC0gOTlcbiAgICB2YXIgbWF0Y2gzdG80ID0gL1xcZFxcZFxcZFxcZD8vOyAvLyAgICAgOTk5IC0gOTk5OVxuICAgIHZhciBtYXRjaDV0bzYgPSAvXFxkXFxkXFxkXFxkXFxkXFxkPy87IC8vICAgOTk5OTkgLSA5OTk5OTlcbiAgICB2YXIgbWF0Y2gxdG8zID0gL1xcZHsxLDN9LzsgLy8gICAgICAgMCAtIDk5OVxuICAgIHZhciBtYXRjaDF0bzQgPSAvXFxkezEsNH0vOyAvLyAgICAgICAwIC0gOTk5OVxuICAgIHZhciBtYXRjaDF0bzYgPSAvWystXT9cXGR7MSw2fS87IC8vIC05OTk5OTkgLSA5OTk5OTlcblxuICAgIHZhciBtYXRjaFVuc2lnbmVkID0gL1xcZCsvOyAvLyAgICAgICAwIC0gaW5mXG4gICAgdmFyIG1hdGNoU2lnbmVkID0gL1srLV0/XFxkKy87IC8vICAgIC1pbmYgLSBpbmZcblxuICAgIHZhciBtYXRjaE9mZnNldCA9IC9afFsrLV1cXGRcXGQ6P1xcZFxcZC9naTsgLy8gKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaXG4gICAgdmFyIG1hdGNoU2hvcnRPZmZzZXQgPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy9naTsgLy8gKzAwIC0wMCArMDA6MDAgLTAwOjAwICswMDAwIC0wMDAwIG9yIFpcblxuICAgIHZhciBtYXRjaFRpbWVzdGFtcCA9IC9bKy1dP1xcZCsoXFwuXFxkezEsM30pPy87IC8vIDEyMzQ1Njc4OSAxMjM0NTY3ODkuMTIzXG5cbiAgICAvLyBhbnkgd29yZCAob3IgdHdvKSBjaGFyYWN0ZXJzIG9yIG51bWJlcnMgaW5jbHVkaW5nIHR3by90aHJlZSB3b3JkIG1vbnRoIGluIGFyYWJpYy5cbiAgICAvLyBpbmNsdWRlcyBzY290dGlzaCBnYWVsaWMgdHdvIHdvcmQgYW5kIGh5cGhlbmF0ZWQgbW9udGhzXG4gICAgdmFyIG1hdGNoV29yZCA9IC9bMC05XSpbJ2EtelxcdTAwQTAtXFx1MDVGRlxcdTA3MDAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0rfFtcXHUwNjAwLVxcdTA2RkZcXC9dKyhcXHMqP1tcXHUwNjAwLVxcdTA2RkZdKyl7MSwyfS9pO1xuXG4gICAgdmFyIHJlZ2V4ZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFJlZ2V4VG9rZW4odG9rZW4sIHJlZ2V4LCBzdHJpY3RSZWdleCkge1xuICAgICAgICByZWdleGVzW3Rva2VuXSA9IGlzRnVuY3Rpb24ocmVnZXgpID8gcmVnZXggOiBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZURhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBpc1N0cmljdCAmJiBzdHJpY3RSZWdleCA/IHN0cmljdFJlZ2V4IDogcmVnZXg7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyc2VSZWdleEZvclRva2VuKHRva2VuLCBjb25maWcpIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHJlZ2V4ZXMsIHRva2VuKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAodW5lc2NhcGVGb3JtYXQodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWdleGVzW3Rva2VuXShjb25maWcuX3N0cmljdCwgY29uZmlnLl9sb2NhbGUpO1xuICAgIH1cblxuICAgIC8vIENvZGUgZnJvbSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM1NjE0OTMvaXMtdGhlcmUtYS1yZWdleHAtZXNjYXBlLWZ1bmN0aW9uLWluLWphdmFzY3JpcHRcbiAgICBmdW5jdGlvbiB1bmVzY2FwZUZvcm1hdChzKSB7XG4gICAgICAgIHJldHVybiByZWdleEVzY2FwZShzLnJlcGxhY2UoJ1xcXFwnLCAnJykucmVwbGFjZSgvXFxcXChcXFspfFxcXFwoXFxdKXxcXFsoW15cXF1cXFtdKilcXF18XFxcXCguKS9nLCBmdW5jdGlvbiAobWF0Y2hlZCwgcDEsIHAyLCBwMywgcDQpIHtcbiAgICAgICAgICAgIHJldHVybiBwMSB8fCBwMiB8fCBwMyB8fCBwNDtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlZ2V4RXNjYXBlKHMpIHtcbiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvWy1cXC9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyk7XG4gICAgfVxuXG4gICAgdmFyIHRva2VucyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gYWRkUGFyc2VUb2tlbih0b2tlbiwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBmdW5jID0gY2FsbGJhY2s7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0b2tlbiA9IFt0b2tlbl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTnVtYmVyKGNhbGxiYWNrKSkge1xuICAgICAgICAgICAgZnVuYyA9IGZ1bmN0aW9uIGZ1bmMoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbY2FsbGJhY2tdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdG9rZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbltpXV0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkV2Vla1BhcnNlVG9rZW4odG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgICAgIGFkZFBhcnNlVG9rZW4odG9rZW4sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgICAgIGNvbmZpZy5fdyA9IGNvbmZpZy5fdyB8fCB7fTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGlucHV0LCBjb25maWcuX3csIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgaW5wdXQsIGNvbmZpZykge1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCAmJiBoYXNPd25Qcm9wKHRva2VucywgdG9rZW4pKSB7XG4gICAgICAgICAgICB0b2tlbnNbdG9rZW5dKGlucHV0LCBjb25maWcuX2EsIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIFlFQVIgPSAwO1xuICAgIHZhciBNT05USCA9IDE7XG4gICAgdmFyIERBVEUgPSAyO1xuICAgIHZhciBIT1VSID0gMztcbiAgICB2YXIgTUlOVVRFID0gNDtcbiAgICB2YXIgU0VDT05EID0gNTtcbiAgICB2YXIgTUlMTElTRUNPTkQgPSA2O1xuICAgIHZhciBXRUVLID0gNztcbiAgICB2YXIgV0VFS0RBWSA9IDg7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignWScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHkgPSB0aGlzLnllYXIoKTtcbiAgICAgICAgcmV0dXJuIHkgPD0gOTk5OSA/ICcnICsgeSA6ICcrJyArIHk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcigpICUgMTAwO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZJywgNF0sIDAsICd5ZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZWScsIDVdLCAwLCAneWVhcicpO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVlZWVlZJywgNiwgdHJ1ZV0sIDAsICd5ZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3llYXInLCAneScpO1xuXG4gICAgLy8gUFJJT1JJVElFU1xuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd5ZWFyJywgMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdZJywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZWVknLCBtYXRjaDF0bzQsIG1hdGNoNCk7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWVknLCBtYXRjaDF0bzYsIG1hdGNoNik7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWVlZJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ1lZWVlZJywgJ1lZWVlZWSddLCBZRUFSKTtcbiAgICBhZGRQYXJzZVRva2VuKCdZWVlZJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtZRUFSXSA9IGlucHV0Lmxlbmd0aCA9PT0gMiA/IGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KSA6IHRvSW50KGlucHV0KTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdZWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBwYXJzZUludChpbnB1dCwgMTApO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7XG4gICAgICAgIHJldHVybiBpc0xlYXBZZWFyKHllYXIpID8gMzY2IDogMzY1O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcikge1xuICAgICAgICByZXR1cm4geWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMCB8fCB5ZWFyICUgNDAwID09PSAwO1xuICAgIH1cblxuICAgIC8vIEhPT0tTXG5cbiAgICBob29rcy5wYXJzZVR3b0RpZ2l0WWVhciA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdG9JbnQoaW5wdXQpICsgKHRvSW50KGlucHV0KSA+IDY4ID8gMTkwMCA6IDIwMDApO1xuICAgIH07XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0WWVhciA9IG1ha2VHZXRTZXQoJ0Z1bGxZZWFyJywgdHJ1ZSk7XG5cbiAgICBmdW5jdGlvbiBnZXRJc0xlYXBZZWFyKCkge1xuICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih0aGlzLnllYXIoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUdldFNldCh1bml0LCBrZWVwVGltZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldCQxKHRoaXMsIHVuaXQsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywga2VlcFRpbWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMsIHVuaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldChtb20sIHVuaXQpIHtcbiAgICAgICAgcmV0dXJuIG1vbS5pc1ZhbGlkKCkgPyBtb20uX2RbJ2dldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0oKSA6IE5hTjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXQkMShtb20sIHVuaXQsIHZhbHVlKSB7XG4gICAgICAgIGlmIChtb20uaXNWYWxpZCgpICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmICh1bml0ID09PSAnRnVsbFllYXInICYmIGlzTGVhcFllYXIobW9tLnllYXIoKSkpIHtcbiAgICAgICAgICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0odmFsdWUsIG1vbS5tb250aCgpLCBkYXlzSW5Nb250aCh2YWx1ZSwgbW9tLm1vbnRoKCkpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIHN0cmluZ0dldCh1bml0cykge1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhpc1t1bml0c10pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpc1t1bml0c10oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdHJpbmdTZXQodW5pdHMsIHZhbHVlKSB7XG4gICAgICAgIGlmICgodHlwZW9mIHVuaXRzID09PSAndW5kZWZpbmVkJyA/ICd1bmRlZmluZWQnIDogX3R5cGVvZih1bml0cykpID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVPYmplY3RVbml0cyh1bml0cyk7XG4gICAgICAgICAgICB2YXIgcHJpb3JpdGl6ZWQgPSBnZXRQcmlvcml0aXplZFVuaXRzKHVuaXRzKTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJpb3JpdGl6ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzW3ByaW9yaXRpemVkW2ldLnVuaXRdKHVuaXRzW3ByaW9yaXRpemVkW2ldLnVuaXRdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhpc1t1bml0c10pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHNdKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb2QobiwgeCkge1xuICAgICAgICByZXR1cm4gKG4gJSB4ICsgeCkgJSB4O1xuICAgIH1cblxuICAgIHZhciBpbmRleE9mO1xuXG4gICAgaWYgKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7XG4gICAgICAgIGluZGV4T2YgPSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpbmRleE9mID0gZnVuY3Rpb24gaW5kZXhPZihvKSB7XG4gICAgICAgICAgICAvLyBJIGtub3dcbiAgICAgICAgICAgIHZhciBpO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpc1tpXSA9PT0gbykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF5c0luTW9udGgoeWVhciwgbW9udGgpIHtcbiAgICAgICAgaWYgKGlzTmFOKHllYXIpIHx8IGlzTmFOKG1vbnRoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbW9kTW9udGggPSBtb2QobW9udGgsIDEyKTtcbiAgICAgICAgeWVhciArPSAobW9udGggLSBtb2RNb250aCkgLyAxMjtcbiAgICAgICAgcmV0dXJuIG1vZE1vbnRoID09PSAxID8gaXNMZWFwWWVhcih5ZWFyKSA/IDI5IDogMjggOiAzMSAtIG1vZE1vbnRoICUgNyAlIDI7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ00nLCBbJ01NJywgMl0sICdNbycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGgoKSArIDE7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignTU1NJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzU2hvcnQodGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdNTU1NJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzKHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ21vbnRoJywgJ00nKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21vbnRoJywgOCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdNJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdNTScsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdNTU0nLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLm1vbnRoc1Nob3J0UmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NTU0nLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLm1vbnRoc1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydNJywgJ01NJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbTU9OVEhdID0gdG9JbnQoaW5wdXQpIC0gMTtcbiAgICB9KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydNTU0nLCAnTU1NTSddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciBtb250aCA9IGNvbmZpZy5fbG9jYWxlLm1vbnRoc1BhcnNlKGlucHV0LCB0b2tlbiwgY29uZmlnLl9zdHJpY3QpO1xuICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgZmluZCBhIG1vbnRoIG5hbWUsIG1hcmsgdGhlIGRhdGUgYXMgaW52YWxpZC5cbiAgICAgICAgaWYgKG1vbnRoICE9IG51bGwpIHtcbiAgICAgICAgICAgIGFycmF5W01PTlRIXSA9IG1vbnRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZE1vbnRoID0gaW5wdXQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIExPQ0FMRVNcblxuICAgIHZhciBNT05USFNfSU5fRk9STUFUID0gL0Rbb0RdPyhcXFtbXlxcW1xcXV0qXFxdfFxccykrTU1NTT8vO1xuICAgIHZhciBkZWZhdWx0TG9jYWxlTW9udGhzID0gJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gbG9jYWxlTW9udGhzKG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocykgPyB0aGlzLl9tb250aHMgOiB0aGlzLl9tb250aHNbJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHMpID8gdGhpcy5fbW9udGhzW20ubW9udGgoKV0gOiB0aGlzLl9tb250aHNbKHRoaXMuX21vbnRocy5pc0Zvcm1hdCB8fCBNT05USFNfSU5fRk9STUFUKS50ZXN0KGZvcm1hdCkgPyAnZm9ybWF0JyA6ICdzdGFuZGFsb25lJ11bbS5tb250aCgpXTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0ID0gJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRoc1Nob3J0KG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRoc1Nob3J0KSA/IHRoaXMuX21vbnRoc1Nob3J0IDogdGhpcy5fbW9udGhzU2hvcnRbJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHNTaG9ydCkgPyB0aGlzLl9tb250aHNTaG9ydFttLm1vbnRoKCldIDogdGhpcy5fbW9udGhzU2hvcnRbTU9OVEhTX0lOX0ZPUk1BVC50ZXN0KGZvcm1hdCkgPyAnZm9ybWF0JyA6ICdzdGFuZGFsb25lJ11bbS5tb250aCgpXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVTdHJpY3RQYXJzZShtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgaWksXG4gICAgICAgICAgICBtb20sXG4gICAgICAgICAgICBsbGMgPSBtb250aE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgdXNlZFxuICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyArK2kpIHtcbiAgICAgICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldID0gdGhpcy5tb250aHNTaG9ydChtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZVtpXSA9IHRoaXMubW9udGhzKG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRoc1BhcnNlKG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7XG5cbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVTdHJpY3RQYXJzZS5jYWxsKHRoaXMsIG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETzogYWRkIHNvcnRpbmdcbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSBtb250aCAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlclxuICAgICAgICAvLyBzZWUgc29ydGluZyBpbiBjb21wdXRlTW9udGhzUGFyc2VcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMubW9udGhzKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnJykgKyAnJCcsICdpJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy5tb250aHNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzdHJpY3QgJiYgIXRoaXMuX21vbnRoc1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgcmVnZXggPSAnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKSArICd8XicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChyZWdleC5yZXBsYWNlKCcuJywgJycpLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGVzdCB0aGUgcmVnZXhcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnTU1NTScgJiYgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnTU1NJyAmJiB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyaWN0ICYmIHRoaXMuX21vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gc2V0TW9udGgobW9tLCB2YWx1ZSkge1xuICAgICAgICB2YXIgZGF5T2ZNb250aDtcblxuICAgICAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIC8vIE5vIG9wXG4gICAgICAgICAgICByZXR1cm4gbW9tO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICgvXlxcZCskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdG9JbnQodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG1vbS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IEFub3RoZXIgc2lsZW50IGZhaWx1cmU/XG4gICAgICAgICAgICAgICAgaWYgKCFpc051bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkYXlPZk1vbnRoID0gTWF0aC5taW4obW9tLmRhdGUoKSwgZGF5c0luTW9udGgobW9tLnllYXIoKSwgdmFsdWUpKTtcbiAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArICdNb250aCddKHZhbHVlLCBkYXlPZk1vbnRoKTtcbiAgICAgICAgcmV0dXJuIG1vbTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRNb250aCh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0TW9udGgodGhpcywgdmFsdWUpO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMsICdNb250aCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RGF5c0luTW9udGgoKSB7XG4gICAgICAgIHJldHVybiBkYXlzSW5Nb250aCh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpKTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXggPSBtYXRjaFdvcmQ7XG4gICAgZnVuY3Rpb24gbW9udGhzU2hvcnRSZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fbW9udGhzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVNb250aHNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzU2hvcnRSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRSZWdleCA9IGRlZmF1bHRNb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgPyB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4IDogdGhpcy5fbW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TW9udGhzUmVnZXggPSBtYXRjaFdvcmQ7XG4gICAgZnVuY3Rpb24gbW9udGhzUmVnZXgoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlTW9udGhzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1JlZ2V4ID0gZGVmYXVsdE1vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ICYmIGlzU3RyaWN0ID8gdGhpcy5fbW9udGhzU3RyaWN0UmVnZXggOiB0aGlzLl9tb250aHNSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVNb250aHNQYXJzZSgpIHtcbiAgICAgICAgZnVuY3Rpb24gY21wTGVuUmV2KGEsIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBiLmxlbmd0aCAtIGEubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNob3J0UGllY2VzID0gW10sXG4gICAgICAgICAgICBsb25nUGllY2VzID0gW10sXG4gICAgICAgICAgICBtaXhlZFBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIG1vbTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgICAgICBzaG9ydFBpZWNlcy5wdXNoKHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykpO1xuICAgICAgICAgICAgbG9uZ1BpZWNlcy5wdXNoKHRoaXMubW9udGhzKG1vbSwgJycpKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2godGhpcy5tb250aHMobW9tLCAnJykpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaCh0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTb3J0aW5nIG1ha2VzIHN1cmUgaWYgb25lIG1vbnRoIChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgICAgIC8vIHdpbGwgbWF0Y2ggdGhlIGxvbmdlciBwaWVjZS5cbiAgICAgICAgc2hvcnRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbWl4ZWRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgc2hvcnRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShzaG9ydFBpZWNlc1tpXSk7XG4gICAgICAgICAgICBsb25nUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobG9uZ1BpZWNlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDI0OyBpKyspIHtcbiAgICAgICAgICAgIG1peGVkUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobWl4ZWRQaWVjZXNbaV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbW9udGhzUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaXhlZFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX21vbnRoc1Nob3J0UmVnZXggPSB0aGlzLl9tb250aHNSZWdleDtcbiAgICAgICAgdGhpcy5fbW9udGhzU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBsb25nUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIHNob3J0UGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVEYXRlKHksIG0sIGQsIGgsIE0sIHMsIG1zKSB7XG4gICAgICAgIC8vIGNhbid0IGp1c3QgYXBwbHkoKSB0byBjcmVhdGUgYSBkYXRlOlxuICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMTgxMzQ4XG4gICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoeSwgbSwgZCwgaCwgTSwgcywgbXMpO1xuXG4gICAgICAgIC8vIHRoZSBkYXRlIGNvbnN0cnVjdG9yIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDAgJiYgaXNGaW5pdGUoZGF0ZS5nZXRGdWxsWWVhcigpKSkge1xuICAgICAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcih5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVVVENEYXRlKHkpIHtcbiAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQy5hcHBseShudWxsLCBhcmd1bWVudHMpKTtcblxuICAgICAgICAvLyB0aGUgRGF0ZS5VVEMgZnVuY3Rpb24gcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCAmJiBpc0Zpbml0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCkpKSB7XG4gICAgICAgICAgICBkYXRlLnNldFVUQ0Z1bGxZZWFyKHkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0LW9mLWZpcnN0LXdlZWsgLSBzdGFydC1vZi15ZWFyXG4gICAgZnVuY3Rpb24gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSB7XG4gICAgICAgIHZhciAvLyBmaXJzdC13ZWVrIGRheSAtLSB3aGljaCBqYW51YXJ5IGlzIGFsd2F5cyBpbiB0aGUgZmlyc3Qgd2VlayAoNCBmb3IgaXNvLCAxIGZvciBvdGhlcilcbiAgICAgICAgZndkID0gNyArIGRvdyAtIGRveSxcblxuICAgICAgICAvLyBmaXJzdC13ZWVrIGRheSBsb2NhbCB3ZWVrZGF5IC0tIHdoaWNoIGxvY2FsIHdlZWtkYXkgaXMgZndkXG4gICAgICAgIGZ3ZGx3ID0gKDcgKyBjcmVhdGVVVENEYXRlKHllYXIsIDAsIGZ3ZCkuZ2V0VVRDRGF5KCkgLSBkb3cpICUgNztcblxuICAgICAgICByZXR1cm4gLWZ3ZGx3ICsgZndkIC0gMTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlI0NhbGN1bGF0aW5nX2FfZGF0ZV9naXZlbl90aGVfeWVhci4yQ193ZWVrX251bWJlcl9hbmRfd2Vla2RheVxuICAgIGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrcyh5ZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgbG9jYWxXZWVrZGF5ID0gKDcgKyB3ZWVrZGF5IC0gZG93KSAlIDcsXG4gICAgICAgICAgICB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgICAgIGRheU9mWWVhciA9IDEgKyA3ICogKHdlZWsgLSAxKSArIGxvY2FsV2Vla2RheSArIHdlZWtPZmZzZXQsXG4gICAgICAgICAgICByZXNZZWFyLFxuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyO1xuXG4gICAgICAgIGlmIChkYXlPZlllYXIgPD0gMCkge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXIgLSAxO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5c0luWWVhcihyZXNZZWFyKSArIGRheU9mWWVhcjtcbiAgICAgICAgfSBlbHNlIGlmIChkYXlPZlllYXIgPiBkYXlzSW5ZZWFyKHllYXIpKSB7XG4gICAgICAgICAgICByZXNZZWFyID0geWVhciArIDE7XG4gICAgICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXIgLSBkYXlzSW5ZZWFyKHllYXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXI7XG4gICAgICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeWVhcjogcmVzWWVhcixcbiAgICAgICAgICAgIGRheU9mWWVhcjogcmVzRGF5T2ZZZWFyXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Vla09mWWVhcihtb20sIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KG1vbS55ZWFyKCksIGRvdywgZG95KSxcbiAgICAgICAgICAgIHdlZWsgPSBNYXRoLmZsb29yKChtb20uZGF5T2ZZZWFyKCkgLSB3ZWVrT2Zmc2V0IC0gMSkgLyA3KSArIDEsXG4gICAgICAgICAgICByZXNXZWVrLFxuICAgICAgICAgICAgcmVzWWVhcjtcblxuICAgICAgICBpZiAod2VlayA8IDEpIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpIC0gMTtcbiAgICAgICAgICAgIHJlc1dlZWsgPSB3ZWVrICsgd2Vla3NJblllYXIocmVzWWVhciwgZG93LCBkb3kpO1xuICAgICAgICB9IGVsc2UgaWYgKHdlZWsgPiB3ZWVrc0luWWVhcihtb20ueWVhcigpLCBkb3csIGRveSkpIHtcbiAgICAgICAgICAgIHJlc1dlZWsgPSB3ZWVrIC0gd2Vla3NJblllYXIobW9tLnllYXIoKSwgZG93LCBkb3kpO1xuICAgICAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCkgKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCk7XG4gICAgICAgICAgICByZXNXZWVrID0gd2VlaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3ZWVrOiByZXNXZWVrLFxuICAgICAgICAgICAgeWVhcjogcmVzWWVhclxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtzSW5ZZWFyKHllYXIsIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgICAgIHdlZWtPZmZzZXROZXh0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIgKyAxLCBkb3csIGRveSk7XG4gICAgICAgIHJldHVybiAoZGF5c0luWWVhcih5ZWFyKSAtIHdlZWtPZmZzZXQgKyB3ZWVrT2Zmc2V0TmV4dCkgLyA3O1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCd3JywgWyd3dycsIDJdLCAnd28nLCAnd2VlaycpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdXJywgWydXVycsIDJdLCAnV28nLCAnaXNvV2VlaycpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrJywgJ3cnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWsnLCAnVycpO1xuXG4gICAgLy8gUFJJT1JJVElFU1xuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd3ZWVrJywgNSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrJywgNSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCd3JywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCd3dycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdXJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdXVycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsndycsICd3dycsICdXJywgJ1dXJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuLnN1YnN0cigwLCAxKV0gPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrKG1vbSkge1xuICAgICAgICByZXR1cm4gd2Vla09mWWVhcihtb20sIHRoaXMuX3dlZWsuZG93LCB0aGlzLl93ZWVrLmRveSkud2VlaztcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWsgPSB7XG4gICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgIGRveTogNiAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxc3QgaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZUZpcnN0RGF5T2ZXZWVrKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Vlay5kb3c7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlRmlyc3REYXlPZlllYXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93ZWVrLmRveTtcbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXRXZWVrKGlucHV0KSB7XG4gICAgICAgIHZhciB3ZWVrID0gdGhpcy5sb2NhbGVEYXRhKCkud2Vlayh0aGlzKTtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrIDogdGhpcy5hZGQoKGlucHV0IC0gd2VlaykgKiA3LCAnZCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldElTT1dlZWsoaW5wdXQpIHtcbiAgICAgICAgdmFyIHdlZWsgPSB3ZWVrT2ZZZWFyKHRoaXMsIDEsIDQpLndlZWs7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2VlayA6IHRoaXMuYWRkKChpbnB1dCAtIHdlZWspICogNywgJ2QnKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignZCcsIDAsICdkbycsICdkYXknKTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzTWluKHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZGRkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNTaG9ydCh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2RkZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5cyh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2UnLCAwLCAwLCAnd2Vla2RheScpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdFJywgMCwgMCwgJ2lzb1dlZWtkYXknKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnZGF5JywgJ2QnKTtcbiAgICBhZGRVbml0QWxpYXMoJ3dlZWtkYXknLCAnZScpO1xuICAgIGFkZFVuaXRBbGlhcygnaXNvV2Vla2RheScsICdFJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnZGF5JywgMTEpO1xuICAgIGFkZFVuaXRQcmlvcml0eSgnd2Vla2RheScsIDExKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWtkYXknLCAxMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdkJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdlJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdFJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdkZCcsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNNaW5SZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignZGRkJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1Nob3J0UmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2RkZGQnLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydkZCcsICdkZGQnLCAnZGRkZCddLCBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgdmFyIHdlZWtkYXkgPSBjb25maWcuX2xvY2FsZS53ZWVrZGF5c1BhcnNlKGlucHV0LCB0b2tlbiwgY29uZmlnLl9zdHJpY3QpO1xuICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgZ2V0IGEgd2Vla2RheSBuYW1lLCBtYXJrIHRoZSBkYXRlIGFzIGludmFsaWRcbiAgICAgICAgaWYgKHdlZWtkYXkgIT0gbnVsbCkge1xuICAgICAgICAgICAgd2Vlay5kID0gd2Vla2RheTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmludmFsaWRXZWVrZGF5ID0gaW5wdXQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZCcsICdlJywgJ0UnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW5dID0gdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgZnVuY3Rpb24gcGFyc2VXZWVrZGF5KGlucHV0LCBsb2NhbGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNOYU4oaW5wdXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoaW5wdXQsIDEwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0ID0gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpO1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJc29XZWVrZGF5KGlucHV0LCBsb2NhbGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCkgJSA3IHx8IDc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzTmFOKGlucHV0KSA/IG51bGwgOiBpbnB1dDtcbiAgICB9XG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWtkYXlzID0gJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzKG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX3dlZWtkYXlzKSA/IHRoaXMuX3dlZWtkYXlzIDogdGhpcy5fd2Vla2RheXNbJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl93ZWVrZGF5cykgPyB0aGlzLl93ZWVrZGF5c1ttLmRheSgpXSA6IHRoaXMuX3dlZWtkYXlzW3RoaXMuX3dlZWtkYXlzLmlzRm9ybWF0LnRlc3QoZm9ybWF0KSA/ICdmb3JtYXQnIDogJ3N0YW5kYWxvbmUnXVttLmRheSgpXTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQgPSAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzU2hvcnQobSkge1xuICAgICAgICByZXR1cm4gbSA/IHRoaXMuX3dlZWtkYXlzU2hvcnRbbS5kYXkoKV0gOiB0aGlzLl93ZWVrZGF5c1Nob3J0O1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9jYWxlV2Vla2RheXNNaW4gPSAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNNaW4obSkge1xuICAgICAgICByZXR1cm4gbSA/IHRoaXMuX3dlZWtkYXlzTWluW20uZGF5KCldIDogdGhpcy5fd2Vla2RheXNNaW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlU3RyaWN0UGFyc2UkMSh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBpaSxcbiAgICAgICAgICAgIG1vbSxcbiAgICAgICAgICAgIGxsYyA9IHdlZWtkYXlOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlID0gW107XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyArK2kpIHtcbiAgICAgICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNNaW4obW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5cyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2RkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdkZGRkJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNQYXJzZSh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7XG5cbiAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVN0cmljdFBhcnNlJDEuY2FsbCh0aGlzLCB3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlKSB7XG4gICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcblxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy53ZWVrZGF5cyhtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcLj8nKSArICckJywgJ2knKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcLj8nKSArICckJywgJ2knKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cCgnXicgKyB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnXFwuPycpICsgJyQnLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgcmVnZXggPSAnXicgKyB0aGlzLndlZWtkYXlzKG1vbSwgJycpICsgJ3xeJyArIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKSArICd8XicgKyB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdkZGRkJyAmJiB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnZGRkJyAmJiB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyaWN0ICYmIGZvcm1hdCA9PT0gJ2RkJyAmJiB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3QgJiYgdGhpcy5fd2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0RGF5T2ZXZWVrKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF5ID0gdGhpcy5faXNVVEMgPyB0aGlzLl9kLmdldFVUQ0RheSgpIDogdGhpcy5fZC5nZXREYXkoKTtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlucHV0ID0gcGFyc2VXZWVrZGF5KGlucHV0LCB0aGlzLmxvY2FsZURhdGEoKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGQoaW5wdXQgLSBkYXksICdkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZGF5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0TG9jYWxlRGF5T2ZXZWVrKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd2Vla2RheSA9ICh0aGlzLmRheSgpICsgNyAtIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdykgJSA3O1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWtkYXkgOiB0aGlzLmFkZChpbnB1dCAtIHdlZWtkYXksICdkJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPRGF5T2ZXZWVrKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGJlaGF2ZXMgdGhlIHNhbWUgYXMgbW9tZW50I2RheSBleGNlcHRcbiAgICAgICAgLy8gYXMgYSBnZXR0ZXIsIHJldHVybnMgNyBpbnN0ZWFkIG9mIDAgKDEtNyByYW5nZSBpbnN0ZWFkIG9mIDAtNilcbiAgICAgICAgLy8gYXMgYSBzZXR0ZXIsIHN1bmRheSBzaG91bGQgYmVsb25nIHRvIHRoZSBwcmV2aW91cyB3ZWVrLlxuXG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgd2Vla2RheSA9IHBhcnNlSXNvV2Vla2RheShpbnB1dCwgdGhpcy5sb2NhbGVEYXRhKCkpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KHRoaXMuZGF5KCkgJSA3ID8gd2Vla2RheSA6IHdlZWtkYXkgLSA3KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpIHx8IDc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdFdlZWtkYXlzUmVnZXggPSBtYXRjaFdvcmQ7XG4gICAgZnVuY3Rpb24gd2Vla2RheXNSZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNSZWdleCA9IGRlZmF1bHRXZWVrZGF5c1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgPyB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4IDogdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0V2Vla2RheXNTaG9ydFJlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgIGZ1bmN0aW9uIHdlZWtkYXlzU2hvcnRSZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzU2hvcnRSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgPyB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggOiB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdFdlZWtkYXlzTWluUmVnZXggPSBtYXRjaFdvcmQ7XG4gICAgZnVuY3Rpb24gd2Vla2RheXNNaW5SZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNNaW5SZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5SZWdleCA9IGRlZmF1bHRXZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgPyB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4IDogdGhpcy5fd2Vla2RheXNNaW5SZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVXZWVrZGF5c1BhcnNlKCkge1xuICAgICAgICBmdW5jdGlvbiBjbXBMZW5SZXYoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGIubGVuZ3RoIC0gYS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbWluUGllY2VzID0gW10sXG4gICAgICAgICAgICBzaG9ydFBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbG9uZ1BpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbWl4ZWRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBtb20sXG4gICAgICAgICAgICBtaW5wLFxuICAgICAgICAgICAgc2hvcnRwLFxuICAgICAgICAgICAgbG9uZ3A7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgbWlucCA9IHRoaXMud2Vla2RheXNNaW4obW9tLCAnJyk7XG4gICAgICAgICAgICBzaG9ydHAgPSB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJyk7XG4gICAgICAgICAgICBsb25ncCA9IHRoaXMud2Vla2RheXMobW9tLCAnJyk7XG4gICAgICAgICAgICBtaW5QaWVjZXMucHVzaChtaW5wKTtcbiAgICAgICAgICAgIHNob3J0UGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKG1pbnApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChzaG9ydHApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSB3ZWVrZGF5IChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgICAgIC8vIHdpbGwgbWF0Y2ggdGhlIGxvbmdlciBwaWVjZS5cbiAgICAgICAgbWluUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgc2hvcnRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbWl4ZWRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICBzaG9ydFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKHNob3J0UGllY2VzW2ldKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXNbaV0gPSByZWdleEVzY2FwZShsb25nUGllY2VzW2ldKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobWl4ZWRQaWVjZXNbaV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fd2Vla2RheXNSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG1peGVkUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4ID0gdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5SZWdleCA9IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG5cbiAgICAgICAgdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIGxvbmdQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBzaG9ydFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaW5QaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGZ1bmN0aW9uIGhGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvdXJzKCkgJSAxMiB8fCAxMjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBrRm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3VycygpIHx8IDI0O1xuICAgIH1cblxuICAgIGFkZEZvcm1hdFRva2VuKCdIJywgWydISCcsIDJdLCAwLCAnaG91cicpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdoJywgWydoaCcsIDJdLCAwLCBoRm9ybWF0KTtcbiAgICBhZGRGb3JtYXRUb2tlbignaycsIFsna2snLCAyXSwgMCwga0Zvcm1hdCk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignaG1tJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJycgKyBoRm9ybWF0LmFwcGx5KHRoaXMpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2htbXNzJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJycgKyBoRm9ybWF0LmFwcGx5KHRoaXMpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpICsgemVyb0ZpbGwodGhpcy5zZWNvbmRzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0htbScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgdGhpcy5ob3VycygpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0htbXNzJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJycgKyB0aGlzLmhvdXJzKCkgKyB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMikgKyB6ZXJvRmlsbCh0aGlzLnNlY29uZHMoKSwgMik7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtZXJpZGllbSh0b2tlbiwgbG93ZXJjYXNlKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKHRva2VuLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0odGhpcy5ob3VycygpLCB0aGlzLm1pbnV0ZXMoKSwgbG93ZXJjYXNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWVyaWRpZW0oJ2EnLCB0cnVlKTtcbiAgICBtZXJpZGllbSgnQScsIGZhbHNlKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnaG91cicsICdoJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnaG91cicsIDEzKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGZ1bmN0aW9uIG1hdGNoTWVyaWRpZW0oaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLl9tZXJpZGllbVBhcnNlO1xuICAgIH1cblxuICAgIGFkZFJlZ2V4VG9rZW4oJ2EnLCBtYXRjaE1lcmlkaWVtKTtcbiAgICBhZGRSZWdleFRva2VuKCdBJywgbWF0Y2hNZXJpZGllbSk7XG4gICAgYWRkUmVnZXhUb2tlbignSCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignaCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignaycsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignSEgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignaGgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbigna2snLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5cbiAgICBhZGRSZWdleFRva2VuKCdobW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2htbXNzJywgbWF0Y2g1dG82KTtcbiAgICBhZGRSZWdleFRva2VuKCdIbW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0htbXNzJywgbWF0Y2g1dG82KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydIJywgJ0hIJ10sIEhPVVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydrJywgJ2trJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIga0lucHV0ID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBhcnJheVtIT1VSXSA9IGtJbnB1dCA9PT0gMjQgPyAwIDoga0lucHV0O1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oWydhJywgJ0EnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5faXNQbSA9IGNvbmZpZy5fbG9jYWxlLmlzUE0oaW5wdXQpO1xuICAgICAgICBjb25maWcuX21lcmlkaWVtID0gaW5wdXQ7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2gnLCAnaGgnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW0nLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvcyA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvcykpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvcykpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW1zcycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQ7XG4gICAgICAgIHZhciBwb3MyID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zMSkpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICAgICAgYXJyYXlbU0VDT05EXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MyKSk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ0htbScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zKSk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignSG1tc3MnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvczEgPSBpbnB1dC5sZW5ndGggLSA0O1xuICAgICAgICB2YXIgcG9zMiA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvczEpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MxLCAyKSk7XG4gICAgICAgIGFycmF5W1NFQ09ORF0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMikpO1xuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlSXNQTShpbnB1dCkge1xuICAgICAgICAvLyBJRTggUXVpcmtzIE1vZGUgJiBJRTcgU3RhbmRhcmRzIE1vZGUgZG8gbm90IGFsbG93IGFjY2Vzc2luZyBzdHJpbmdzIGxpa2UgYXJyYXlzXG4gICAgICAgIC8vIFVzaW5nIGNoYXJBdCBzaG91bGQgYmUgbW9yZSBjb21wYXRpYmxlLlxuICAgICAgICByZXR1cm4gKGlucHV0ICsgJycpLnRvTG93ZXJDYXNlKCkuY2hhckF0KDApID09PSAncCc7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNZXJpZGllbVBhcnNlID0gL1thcF1cXC4/bT9cXC4/L2k7XG4gICAgZnVuY3Rpb24gbG9jYWxlTWVyaWRpZW0oaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ3BtJyA6ICdQTSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdhbScgOiAnQU0nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgLy8gU2V0dGluZyB0aGUgaG91ciBzaG91bGQga2VlcCB0aGUgdGltZSwgYmVjYXVzZSB0aGUgdXNlciBleHBsaWNpdGx5XG4gICAgLy8gc3BlY2lmaWVkIHdoaWNoIGhvdXIgaGUgd2FudHMuIFNvIHRyeWluZyB0byBtYWludGFpbiB0aGUgc2FtZSBob3VyIChpblxuICAgIC8vIGEgbmV3IHRpbWV6b25lKSBtYWtlcyBzZW5zZS4gQWRkaW5nL3N1YnRyYWN0aW5nIGhvdXJzIGRvZXMgbm90IGZvbGxvd1xuICAgIC8vIHRoaXMgcnVsZS5cbiAgICB2YXIgZ2V0U2V0SG91ciA9IG1ha2VHZXRTZXQoJ0hvdXJzJywgdHJ1ZSk7XG5cbiAgICAvLyBtb250aHNcbiAgICAvLyB3ZWVrXG4gICAgLy8gd2Vla2RheXNcbiAgICAvLyBtZXJpZGllbVxuICAgIHZhciBiYXNlQ29uZmlnID0ge1xuICAgICAgICBjYWxlbmRhcjogZGVmYXVsdENhbGVuZGFyLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDogZGVmYXVsdExvbmdEYXRlRm9ybWF0LFxuICAgICAgICBpbnZhbGlkRGF0ZTogZGVmYXVsdEludmFsaWREYXRlLFxuICAgICAgICBvcmRpbmFsOiBkZWZhdWx0T3JkaW5hbCxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UsXG4gICAgICAgIHJlbGF0aXZlVGltZTogZGVmYXVsdFJlbGF0aXZlVGltZSxcblxuICAgICAgICBtb250aHM6IGRlZmF1bHRMb2NhbGVNb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQsXG5cbiAgICAgICAgd2VlazogZGVmYXVsdExvY2FsZVdlZWssXG5cbiAgICAgICAgd2Vla2RheXM6IGRlZmF1bHRMb2NhbGVXZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW46IGRlZmF1bHRMb2NhbGVXZWVrZGF5c01pbixcbiAgICAgICAgd2Vla2RheXNTaG9ydDogZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQsXG5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogZGVmYXVsdExvY2FsZU1lcmlkaWVtUGFyc2VcbiAgICB9O1xuXG4gICAgLy8gaW50ZXJuYWwgc3RvcmFnZSBmb3IgbG9jYWxlIGNvbmZpZyBmaWxlc1xuICAgIHZhciBsb2NhbGVzID0ge307XG4gICAgdmFyIGxvY2FsZUZhbWlsaWVzID0ge307XG4gICAgdmFyIGdsb2JhbExvY2FsZTtcblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUxvY2FsZShrZXkpIHtcbiAgICAgICAgcmV0dXJuIGtleSA/IGtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJ18nLCAnLScpIDoga2V5O1xuICAgIH1cblxuICAgIC8vIHBpY2sgdGhlIGxvY2FsZSBmcm9tIHRoZSBhcnJheVxuICAgIC8vIHRyeSBbJ2VuLWF1JywgJ2VuLWdiJ10gYXMgJ2VuLWF1JywgJ2VuLWdiJywgJ2VuJywgYXMgaW4gbW92ZSB0aHJvdWdoIHRoZSBsaXN0IHRyeWluZyBlYWNoXG4gICAgLy8gc3Vic3RyaW5nIGZyb20gbW9zdCBzcGVjaWZpYyB0byBsZWFzdCwgYnV0IG1vdmUgdG8gdGhlIG5leHQgYXJyYXkgaXRlbSBpZiBpdCdzIGEgbW9yZSBzcGVjaWZpYyB2YXJpYW50IHRoYW4gdGhlIGN1cnJlbnQgcm9vdFxuICAgIGZ1bmN0aW9uIGNob29zZUxvY2FsZShuYW1lcykge1xuICAgICAgICB2YXIgaSA9IDAsXG4gICAgICAgICAgICBqLFxuICAgICAgICAgICAgbmV4dCxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgIHNwbGl0O1xuXG4gICAgICAgIHdoaWxlIChpIDwgbmFtZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzcGxpdCA9IG5vcm1hbGl6ZUxvY2FsZShuYW1lc1tpXSkuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgIGogPSBzcGxpdC5sZW5ndGg7XG4gICAgICAgICAgICBuZXh0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2kgKyAxXSk7XG4gICAgICAgICAgICBuZXh0ID0gbmV4dCA/IG5leHQuc3BsaXQoJy0nKSA6IG51bGw7XG4gICAgICAgICAgICB3aGlsZSAoaiA+IDApIHtcbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKHNwbGl0LnNsaWNlKDAsIGopLmpvaW4oJy0nKSk7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobmV4dCAmJiBuZXh0Lmxlbmd0aCA+PSBqICYmIGNvbXBhcmVBcnJheXMoc3BsaXQsIG5leHQsIHRydWUpID49IGogLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vdGhlIG5leHQgYXJyYXkgaXRlbSBpcyBiZXR0ZXIgdGhhbiBhIHNoYWxsb3dlciBzdWJzdHJpbmcgb2YgdGhpcyBvbmVcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGotLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2FkTG9jYWxlKG5hbWUpIHtcbiAgICAgICAgdmFyIG9sZExvY2FsZSA9IG51bGw7XG4gICAgICAgIC8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIHJlZ2lzdGVyIGFuZCBsb2FkIGFsbCB0aGUgbG9jYWxlcyBpbiBOb2RlXG4gICAgICAgIGlmICghbG9jYWxlc1tuYW1lXSAmJiAnb2JqZWN0JyAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG9sZExvY2FsZSA9IGdsb2JhbExvY2FsZS5fYWJicjtcbiAgICAgICAgICAgICAgICB2YXIgYWxpYXNlZFJlcXVpcmUgPSBjb21tb25qc1JlcXVpcmU7XG4gICAgICAgICAgICAgICAgYWxpYXNlZFJlcXVpcmUoJy4vbG9jYWxlLycgKyBuYW1lKTtcbiAgICAgICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUob2xkTG9jYWxlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGxvYWQgbG9jYWxlIGFuZCB0aGVuIHNldCB0aGUgZ2xvYmFsIGxvY2FsZS4gIElmXG4gICAgLy8gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgaW4sIGl0IHdpbGwgc2ltcGx5IHJldHVybiB0aGUgY3VycmVudCBnbG9iYWxcbiAgICAvLyBsb2NhbGUga2V5LlxuICAgIGZ1bmN0aW9uIGdldFNldEdsb2JhbExvY2FsZShrZXksIHZhbHVlcykge1xuICAgICAgICB2YXIgZGF0YTtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxlKGtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBkZWZpbmVMb2NhbGUoa2V5LCB2YWx1ZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIC8vIG1vbWVudC5kdXJhdGlvbi5fbG9jYWxlID0gbW9tZW50Ll9sb2NhbGUgPSBkYXRhO1xuICAgICAgICAgICAgICAgIGdsb2JhbExvY2FsZSA9IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlLl9hYmJyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlZmluZUxvY2FsZShuYW1lLCBjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIHBhcmVudENvbmZpZyA9IGJhc2VDb25maWc7XG4gICAgICAgICAgICBjb25maWcuYWJiciA9IG5hbWU7XG4gICAgICAgICAgICBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZGVwcmVjYXRlU2ltcGxlKCdkZWZpbmVMb2NhbGVPdmVycmlkZScsICd1c2UgbW9tZW50LnVwZGF0ZUxvY2FsZShsb2NhbGVOYW1lLCBjb25maWcpIHRvIGNoYW5nZSAnICsgJ2FuIGV4aXN0aW5nIGxvY2FsZS4gbW9tZW50LmRlZmluZUxvY2FsZShsb2NhbGVOYW1lLCAnICsgJ2NvbmZpZykgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgY3JlYXRpbmcgYSBuZXcgbG9jYWxlICcgKyAnU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvZGVmaW5lLWxvY2FsZS8gZm9yIG1vcmUgaW5mby4nKTtcbiAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGVzW25hbWVdLl9jb25maWc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5wYXJlbnRMb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gbG9jYWxlc1tjb25maWcucGFyZW50TG9jYWxlXS5fY29uZmlnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUZhbWlsaWVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdID0gW107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnOiBjb25maWdcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBuZXcgTG9jYWxlKG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNvbmZpZykpO1xuXG4gICAgICAgICAgICBpZiAobG9jYWxlRmFtaWxpZXNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tuYW1lXS5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmluZUxvY2FsZSh4Lm5hbWUsIHguY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgICAgICAvLyBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBsb2NhbGUgQUZURVIgYWxsIGNoaWxkIGxvY2FsZXMgaGF2ZSBiZWVuXG4gICAgICAgICAgICAvLyBjcmVhdGVkLCBzbyB3ZSB3b24ndCBlbmQgdXAgd2l0aCB0aGUgY2hpbGQgbG9jYWxlIHNldC5cbiAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB1c2VmdWwgZm9yIHRlc3RpbmdcbiAgICAgICAgICAgIGRlbGV0ZSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVMb2NhbGUobmFtZSwgY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGxvY2FsZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBiYXNlQ29uZmlnO1xuICAgICAgICAgICAgLy8gTUVSR0VcbiAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGVzW25hbWVdLl9jb25maWc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25maWcgPSBtZXJnZUNvbmZpZ3MocGFyZW50Q29uZmlnLCBjb25maWcpO1xuICAgICAgICAgICAgbG9jYWxlID0gbmV3IExvY2FsZShjb25maWcpO1xuICAgICAgICAgICAgbG9jYWxlLnBhcmVudExvY2FsZSA9IGxvY2FsZXNbbmFtZV07XG4gICAgICAgICAgICBsb2NhbGVzW25hbWVdID0gbG9jYWxlO1xuXG4gICAgICAgICAgICAvLyBiYWNrd2FyZHMgY29tcGF0IGZvciBub3c6IGFsc28gc2V0IHRoZSBsb2NhbGVcbiAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHBhc3MgbnVsbCBmb3IgY29uZmlnIHRvIHVudXBkYXRlLCB1c2VmdWwgZm9yIHRlc3RzXG4gICAgICAgICAgICBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTtcbiAgICB9XG5cbiAgICAvLyByZXR1cm5zIGxvY2FsZSBkYXRhXG4gICAgZnVuY3Rpb24gZ2V0TG9jYWxlKGtleSkge1xuICAgICAgICB2YXIgbG9jYWxlO1xuXG4gICAgICAgIGlmIChrZXkgJiYga2V5Ll9sb2NhbGUgJiYga2V5Ll9sb2NhbGUuX2FiYnIpIHtcbiAgICAgICAgICAgIGtleSA9IGtleS5fbG9jYWxlLl9hYmJyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQXJyYXkoa2V5KSkge1xuICAgICAgICAgICAgLy9zaG9ydC1jaXJjdWl0IGV2ZXJ5dGhpbmcgZWxzZVxuICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShrZXkpO1xuICAgICAgICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBrZXkgPSBba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjaG9vc2VMb2NhbGUoa2V5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TG9jYWxlcygpIHtcbiAgICAgICAgcmV0dXJuIGtleXMobG9jYWxlcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tPdmVyZmxvdyhtKSB7XG4gICAgICAgIHZhciBvdmVyZmxvdztcbiAgICAgICAgdmFyIGEgPSBtLl9hO1xuXG4gICAgICAgIGlmIChhICYmIGdldFBhcnNpbmdGbGFncyhtKS5vdmVyZmxvdyA9PT0gLTIpIHtcbiAgICAgICAgICAgIG92ZXJmbG93ID0gYVtNT05USF0gPCAwIHx8IGFbTU9OVEhdID4gMTEgPyBNT05USCA6IGFbREFURV0gPCAxIHx8IGFbREFURV0gPiBkYXlzSW5Nb250aChhW1lFQVJdLCBhW01PTlRIXSkgPyBEQVRFIDogYVtIT1VSXSA8IDAgfHwgYVtIT1VSXSA+IDI0IHx8IGFbSE9VUl0gPT09IDI0ICYmIChhW01JTlVURV0gIT09IDAgfHwgYVtTRUNPTkRdICE9PSAwIHx8IGFbTUlMTElTRUNPTkRdICE9PSAwKSA/IEhPVVIgOiBhW01JTlVURV0gPCAwIHx8IGFbTUlOVVRFXSA+IDU5ID8gTUlOVVRFIDogYVtTRUNPTkRdIDwgMCB8fCBhW1NFQ09ORF0gPiA1OSA/IFNFQ09ORCA6IGFbTUlMTElTRUNPTkRdIDwgMCB8fCBhW01JTExJU0VDT05EXSA+IDk5OSA/IE1JTExJU0VDT05EIDogLTE7XG5cbiAgICAgICAgICAgIGlmIChnZXRQYXJzaW5nRmxhZ3MobSkuX292ZXJmbG93RGF5T2ZZZWFyICYmIChvdmVyZmxvdyA8IFlFQVIgfHwgb3ZlcmZsb3cgPiBEQVRFKSkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gREFURTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChnZXRQYXJzaW5nRmxhZ3MobSkuX292ZXJmbG93V2Vla3MgJiYgb3ZlcmZsb3cgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBXRUVLO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dXZWVrZGF5ICYmIG92ZXJmbG93ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gV0VFS0RBWTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLm92ZXJmbG93ID0gb3ZlcmZsb3c7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICAvLyBQaWNrIHRoZSBmaXJzdCBkZWZpbmVkIG9mIHR3byBvciB0aHJlZSBhcmd1bWVudHMuXG4gICAgZnVuY3Rpb24gZGVmYXVsdHMoYSwgYiwgYykge1xuICAgICAgICBpZiAoYSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYiAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjdXJyZW50RGF0ZUFycmF5KGNvbmZpZykge1xuICAgICAgICAvLyBob29rcyBpcyBhY3R1YWxseSB0aGUgZXhwb3J0ZWQgbW9tZW50IG9iamVjdFxuICAgICAgICB2YXIgbm93VmFsdWUgPSBuZXcgRGF0ZShob29rcy5ub3coKSk7XG4gICAgICAgIGlmIChjb25maWcuX3VzZVVUQykge1xuICAgICAgICAgICAgcmV0dXJuIFtub3dWYWx1ZS5nZXRVVENGdWxsWWVhcigpLCBub3dWYWx1ZS5nZXRVVENNb250aCgpLCBub3dWYWx1ZS5nZXRVVENEYXRlKCldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbbm93VmFsdWUuZ2V0RnVsbFllYXIoKSwgbm93VmFsdWUuZ2V0TW9udGgoKSwgbm93VmFsdWUuZ2V0RGF0ZSgpXTtcbiAgICB9XG5cbiAgICAvLyBjb252ZXJ0IGFuIGFycmF5IHRvIGEgZGF0ZS5cbiAgICAvLyB0aGUgYXJyYXkgc2hvdWxkIG1pcnJvciB0aGUgcGFyYW1ldGVycyBiZWxvd1xuICAgIC8vIG5vdGU6IGFsbCB2YWx1ZXMgcGFzdCB0aGUgeWVhciBhcmUgb3B0aW9uYWwgYW5kIHdpbGwgZGVmYXVsdCB0byB0aGUgbG93ZXN0IHBvc3NpYmxlIHZhbHVlLlxuICAgIC8vIFt5ZWFyLCBtb250aCwgZGF5ICwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kXVxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21BcnJheShjb25maWcpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgaW5wdXQgPSBbXSxcbiAgICAgICAgICAgIGN1cnJlbnREYXRlLFxuICAgICAgICAgICAgeWVhclRvVXNlO1xuXG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGVBcnJheShjb25maWcpO1xuXG4gICAgICAgIC8vY29tcHV0ZSBkYXkgb2YgdGhlIHllYXIgZnJvbSB3ZWVrcyBhbmQgd2Vla2RheXNcbiAgICAgICAgaWYgKGNvbmZpZy5fdyAmJiBjb25maWcuX2FbREFURV0gPT0gbnVsbCAmJiBjb25maWcuX2FbTU9OVEhdID09IG51bGwpIHtcbiAgICAgICAgICAgIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9pZiB0aGUgZGF5IG9mIHRoZSB5ZWFyIGlzIHNldCwgZmlndXJlIG91dCB3aGF0IGl0IGlzXG4gICAgICAgIGlmIChjb25maWcuX2RheU9mWWVhciAhPSBudWxsKSB7XG4gICAgICAgICAgICB5ZWFyVG9Vc2UgPSBkZWZhdWx0cyhjb25maWcuX2FbWUVBUl0sIGN1cnJlbnREYXRlW1lFQVJdKTtcblxuICAgICAgICAgICAgaWYgKGNvbmZpZy5fZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyVG9Vc2UpIHx8IGNvbmZpZy5fZGF5T2ZZZWFyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuX292ZXJmbG93RGF5T2ZZZWFyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGF0ZSA9IGNyZWF0ZVVUQ0RhdGUoeWVhclRvVXNlLCAwLCBjb25maWcuX2RheU9mWWVhcik7XG4gICAgICAgICAgICBjb25maWcuX2FbTU9OVEhdID0gZGF0ZS5nZXRVVENNb250aCgpO1xuICAgICAgICAgICAgY29uZmlnLl9hW0RBVEVdID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWZhdWx0IHRvIGN1cnJlbnQgZGF0ZS5cbiAgICAgICAgLy8gKiBpZiBubyB5ZWFyLCBtb250aCwgZGF5IG9mIG1vbnRoIGFyZSBnaXZlbiwgZGVmYXVsdCB0byB0b2RheVxuICAgICAgICAvLyAqIGlmIGRheSBvZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBtb250aCBhbmQgeWVhclxuICAgICAgICAvLyAqIGlmIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG9ubHkgeWVhclxuICAgICAgICAvLyAqIGlmIHllYXIgaXMgZ2l2ZW4sIGRvbid0IGRlZmF1bHQgYW55dGhpbmdcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgJiYgY29uZmlnLl9hW2ldID09IG51bGw7ICsraSkge1xuICAgICAgICAgICAgY29uZmlnLl9hW2ldID0gaW5wdXRbaV0gPSBjdXJyZW50RGF0ZVtpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFplcm8gb3V0IHdoYXRldmVyIHdhcyBub3QgZGVmYXVsdGVkLCBpbmNsdWRpbmcgdGltZVxuICAgICAgICBmb3IgKDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgY29uZmlnLl9hW2ldID0gaW5wdXRbaV0gPSBjb25maWcuX2FbaV0gPT0gbnVsbCA/IGkgPT09IDIgPyAxIDogMCA6IGNvbmZpZy5fYVtpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGZvciAyNDowMDowMC4wMDBcbiAgICAgICAgaWYgKGNvbmZpZy5fYVtIT1VSXSA9PT0gMjQgJiYgY29uZmlnLl9hW01JTlVURV0gPT09IDAgJiYgY29uZmlnLl9hW1NFQ09ORF0gPT09IDAgJiYgY29uZmlnLl9hW01JTExJU0VDT05EXSA9PT0gMCkge1xuICAgICAgICAgICAgY29uZmlnLl9uZXh0RGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWcuX2QgPSAoY29uZmlnLl91c2VVVEMgPyBjcmVhdGVVVENEYXRlIDogY3JlYXRlRGF0ZSkuYXBwbHkobnVsbCwgaW5wdXQpO1xuICAgICAgICAvLyBBcHBseSB0aW1lem9uZSBvZmZzZXQgZnJvbSBpbnB1dC4gVGhlIGFjdHVhbCB1dGNPZmZzZXQgY2FuIGJlIGNoYW5nZWRcbiAgICAgICAgLy8gd2l0aCBwYXJzZVpvbmUuXG4gICAgICAgIGlmIChjb25maWcuX3R6bSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25maWcuX2Quc2V0VVRDTWludXRlcyhjb25maWcuX2QuZ2V0VVRDTWludXRlcygpIC0gY29uZmlnLl90em0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbmZpZy5fbmV4dERheSkge1xuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gMjQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBmb3IgbWlzbWF0Y2hpbmcgZGF5IG9mIHdlZWtcbiAgICAgICAgaWYgKGNvbmZpZy5fdyAmJiB0eXBlb2YgY29uZmlnLl93LmQgIT09ICd1bmRlZmluZWQnICYmIGNvbmZpZy5fdy5kICE9PSBjb25maWcuX2QuZ2V0RGF5KCkpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLndlZWtkYXlNaXNtYXRjaCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkYXlPZlllYXJGcm9tV2Vla0luZm8oY29uZmlnKSB7XG4gICAgICAgIHZhciB3LCB3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3ksIHRlbXAsIHdlZWtkYXlPdmVyZmxvdztcblxuICAgICAgICB3ID0gY29uZmlnLl93O1xuICAgICAgICBpZiAody5HRyAhPSBudWxsIHx8IHcuVyAhPSBudWxsIHx8IHcuRSAhPSBudWxsKSB7XG4gICAgICAgICAgICBkb3cgPSAxO1xuICAgICAgICAgICAgZG95ID0gNDtcblxuICAgICAgICAgICAgLy8gVE9ETzogV2UgbmVlZCB0byB0YWtlIHRoZSBjdXJyZW50IGlzb1dlZWtZZWFyLCBidXQgdGhhdCBkZXBlbmRzIG9uXG4gICAgICAgICAgICAvLyBob3cgd2UgaW50ZXJwcmV0IG5vdyAobG9jYWwsIHV0YywgZml4ZWQgb2Zmc2V0KS4gU28gY3JlYXRlXG4gICAgICAgICAgICAvLyBhIG5vdyB2ZXJzaW9uIG9mIGN1cnJlbnQgY29uZmlnICh0YWtlIGxvY2FsL3V0Yy9vZmZzZXQgZmxhZ3MsIGFuZFxuICAgICAgICAgICAgLy8gY3JlYXRlIG5vdykuXG4gICAgICAgICAgICB3ZWVrWWVhciA9IGRlZmF1bHRzKHcuR0csIGNvbmZpZy5fYVtZRUFSXSwgd2Vla09mWWVhcihjcmVhdGVMb2NhbCgpLCAxLCA0KS55ZWFyKTtcbiAgICAgICAgICAgIHdlZWsgPSBkZWZhdWx0cyh3LlcsIDEpO1xuICAgICAgICAgICAgd2Vla2RheSA9IGRlZmF1bHRzKHcuRSwgMSk7XG4gICAgICAgICAgICBpZiAod2Vla2RheSA8IDEgfHwgd2Vla2RheSA+IDcpIHtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZG93ID0gY29uZmlnLl9sb2NhbGUuX3dlZWsuZG93O1xuICAgICAgICAgICAgZG95ID0gY29uZmlnLl9sb2NhbGUuX3dlZWsuZG95O1xuXG4gICAgICAgICAgICB2YXIgY3VyV2VlayA9IHdlZWtPZlllYXIoY3JlYXRlTG9jYWwoKSwgZG93LCBkb3kpO1xuXG4gICAgICAgICAgICB3ZWVrWWVhciA9IGRlZmF1bHRzKHcuZ2csIGNvbmZpZy5fYVtZRUFSXSwgY3VyV2Vlay55ZWFyKTtcblxuICAgICAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IHdlZWsuXG4gICAgICAgICAgICB3ZWVrID0gZGVmYXVsdHMody53LCBjdXJXZWVrLndlZWspO1xuXG4gICAgICAgICAgICBpZiAody5kICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyB3ZWVrZGF5IC0tIGxvdyBkYXkgbnVtYmVycyBhcmUgY29uc2lkZXJlZCBuZXh0IHdlZWtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gdy5kO1xuICAgICAgICAgICAgICAgIGlmICh3ZWVrZGF5IDwgMCB8fCB3ZWVrZGF5ID4gNikge1xuICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAody5lICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBsb2NhbCB3ZWVrZGF5IC0tIGNvdW50aW5nIHN0YXJ0cyBmcm9tIGJlZ2luaW5nIG9mIHdlZWtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gdy5lICsgZG93O1xuICAgICAgICAgICAgICAgIGlmICh3LmUgPCAwIHx8IHcuZSA+IDYpIHtcbiAgICAgICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gYmVnaW5pbmcgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSBkb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdlZWsgPCAxIHx8IHdlZWsgPiB3ZWVrc0luWWVhcih3ZWVrWWVhciwgZG93LCBkb3kpKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dXZWVrcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAod2Vla2RheU92ZXJmbG93ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtkYXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGVtcCA9IGRheU9mWWVhckZyb21XZWVrcyh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpO1xuICAgICAgICAgICAgY29uZmlnLl9hW1lFQVJdID0gdGVtcC55ZWFyO1xuICAgICAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0ZW1wLmRheU9mWWVhcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGlzbyA4NjAxIHJlZ2V4XG4gICAgLy8gMDAwMC0wMC0wMCAwMDAwLVcwMCBvciAwMDAwLVcwMC0wICsgVCArIDAwIG9yIDAwOjAwIG9yIDAwOjAwOjAwIG9yIDAwOjAwOjAwLjAwMCArICswMDowMCBvciArMDAwMCBvciArMDApXG4gICAgdmFyIGV4dGVuZGVkSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pLSg/OlxcZFxcZC1cXGRcXGR8V1xcZFxcZC1cXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzo6XFxkXFxkKD86OlxcZFxcZCg/OlsuLF1cXGQrKT8pPyk/KShbXFwrXFwtXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC87XG4gICAgdmFyIGJhc2ljSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pKD86XFxkXFxkXFxkXFxkfFdcXGRcXGRcXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzpcXGRcXGQoPzpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoW1xcK1xcLV1cXGRcXGQoPzo6P1xcZFxcZCk/fFxccypaKT8pPyQvO1xuXG4gICAgdmFyIHR6UmVnZXggPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy87XG5cbiAgICB2YXIgaXNvRGF0ZXMgPSBbWydZWVlZWVktTU0tREQnLCAvWystXVxcZHs2fS1cXGRcXGQtXFxkXFxkL10sIFsnWVlZWS1NTS1ERCcsIC9cXGR7NH0tXFxkXFxkLVxcZFxcZC9dLCBbJ0dHR0ctW1ddV1ctRScsIC9cXGR7NH0tV1xcZFxcZC1cXGQvXSwgWydHR0dHLVtXXVdXJywgL1xcZHs0fS1XXFxkXFxkLywgZmFsc2VdLCBbJ1lZWVktREREJywgL1xcZHs0fS1cXGR7M30vXSwgWydZWVlZLU1NJywgL1xcZHs0fS1cXGRcXGQvLCBmYWxzZV0sIFsnWVlZWVlZTU1ERCcsIC9bKy1dXFxkezEwfS9dLCBbJ1lZWVlNTUREJywgL1xcZHs4fS9dLFxuICAgIC8vIFlZWVlNTSBpcyBOT1QgYWxsb3dlZCBieSB0aGUgc3RhbmRhcmRcbiAgICBbJ0dHR0dbV11XV0UnLCAvXFxkezR9V1xcZHszfS9dLCBbJ0dHR0dbV11XVycsIC9cXGR7NH1XXFxkezJ9LywgZmFsc2VdLCBbJ1lZWVlEREQnLCAvXFxkezd9L11dO1xuXG4gICAgLy8gaXNvIHRpbWUgZm9ybWF0cyBhbmQgcmVnZXhlc1xuICAgIHZhciBpc29UaW1lcyA9IFtbJ0hIOm1tOnNzLlNTU1MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGRcXC5cXGQrL10sIFsnSEg6bW06c3MsU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZCxcXGQrL10sIFsnSEg6bW06c3MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGQvXSwgWydISDptbScsIC9cXGRcXGQ6XFxkXFxkL10sIFsnSEhtbXNzLlNTU1MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkXFwuXFxkKy9dLCBbJ0hIbW1zcyxTU1NTJywgL1xcZFxcZFxcZFxcZFxcZFxcZCxcXGQrL10sIFsnSEhtbXNzJywgL1xcZFxcZFxcZFxcZFxcZFxcZC9dLCBbJ0hIbW0nLCAvXFxkXFxkXFxkXFxkL10sIFsnSEgnLCAvXFxkXFxkL11dO1xuXG4gICAgdmFyIGFzcE5ldEpzb25SZWdleCA9IC9eXFwvP0RhdGVcXCgoXFwtP1xcZCspL2k7XG5cbiAgICAvLyBkYXRlIGZyb20gaXNvIGZvcm1hdFxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21JU08oY29uZmlnKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIHN0cmluZyA9IGNvbmZpZy5faSxcbiAgICAgICAgICAgIG1hdGNoID0gZXh0ZW5kZWRJc29SZWdleC5leGVjKHN0cmluZykgfHwgYmFzaWNJc29SZWdleC5leGVjKHN0cmluZyksXG4gICAgICAgICAgICBhbGxvd1RpbWUsXG4gICAgICAgICAgICBkYXRlRm9ybWF0LFxuICAgICAgICAgICAgdGltZUZvcm1hdCxcbiAgICAgICAgICAgIHR6Rm9ybWF0O1xuXG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaXNvID0gdHJ1ZTtcblxuICAgICAgICAgICAgZm9yIChpID0gMCwgbCA9IGlzb0RhdGVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpc29EYXRlc1tpXVsxXS5leGVjKG1hdGNoWzFdKSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ID0gaXNvRGF0ZXNbaV1bMF07XG4gICAgICAgICAgICAgICAgICAgIGFsbG93VGltZSA9IGlzb0RhdGVzW2ldWzJdICE9PSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGVGb3JtYXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaFszXSkge1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDAsIGwgPSBpc29UaW1lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzb1RpbWVzW2ldWzFdLmV4ZWMobWF0Y2hbM10pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaFsyXSBzaG91bGQgYmUgJ1QnIG9yIHNwYWNlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lRm9ybWF0ID0gKG1hdGNoWzJdIHx8ICcgJykgKyBpc29UaW1lc1tpXVswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aW1lRm9ybWF0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWFsbG93VGltZSAmJiB0aW1lRm9ybWF0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hbNF0pIHtcbiAgICAgICAgICAgICAgICBpZiAodHpSZWdleC5leGVjKG1hdGNoWzRdKSkge1xuICAgICAgICAgICAgICAgICAgICB0ekZvcm1hdCA9ICdaJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbmZpZy5fZiA9IGRhdGVGb3JtYXQgKyAodGltZUZvcm1hdCB8fCAnJykgKyAodHpGb3JtYXQgfHwgJycpO1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSRkMgMjgyMiByZWdleDogRm9yIGRldGFpbHMgc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyODIyI3NlY3Rpb24tMy4zXG4gICAgdmFyIHJmYzI4MjIgPSAvXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLD9cXHMpPyhcXGR7MSwyfSlcXHMoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpXFxzKFxcZHsyLDR9KVxccyhcXGRcXGQpOihcXGRcXGQpKD86OihcXGRcXGQpKT9cXHMoPzooVVR8R01UfFtFQ01QXVtTRF1UKXwoW1p6XSl8KFsrLV1cXGR7NH0pKSQvO1xuXG4gICAgZnVuY3Rpb24gZXh0cmFjdEZyb21SRkMyODIyU3RyaW5ncyh5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cikge1xuICAgICAgICB2YXIgcmVzdWx0ID0gW3VudHJ1bmNhdGVZZWFyKHllYXJTdHIpLCBkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQuaW5kZXhPZihtb250aFN0ciksIHBhcnNlSW50KGRheVN0ciwgMTApLCBwYXJzZUludChob3VyU3RyLCAxMCksIHBhcnNlSW50KG1pbnV0ZVN0ciwgMTApXTtcblxuICAgICAgICBpZiAoc2Vjb25kU3RyKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChwYXJzZUludChzZWNvbmRTdHIsIDEwKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVudHJ1bmNhdGVZZWFyKHllYXJTdHIpIHtcbiAgICAgICAgdmFyIHllYXIgPSBwYXJzZUludCh5ZWFyU3RyLCAxMCk7XG4gICAgICAgIGlmICh5ZWFyIDw9IDQ5KSB7XG4gICAgICAgICAgICByZXR1cm4gMjAwMCArIHllYXI7XG4gICAgICAgIH0gZWxzZSBpZiAoeWVhciA8PSA5OTkpIHtcbiAgICAgICAgICAgIHJldHVybiAxOTAwICsgeWVhcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geWVhcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcmVwcm9jZXNzUkZDMjgyMihzKSB7XG4gICAgICAgIC8vIFJlbW92ZSBjb21tZW50cyBhbmQgZm9sZGluZyB3aGl0ZXNwYWNlIGFuZCByZXBsYWNlIG11bHRpcGxlLXNwYWNlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG4gICAgICAgIHJldHVybiBzLnJlcGxhY2UoL1xcKFteKV0qXFwpfFtcXG5cXHRdL2csICcgJykucmVwbGFjZSgvKFxcc1xccyspL2csICcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrV2Vla2RheSh3ZWVrZGF5U3RyLCBwYXJzZWRJbnB1dCwgY29uZmlnKSB7XG4gICAgICAgIGlmICh3ZWVrZGF5U3RyKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBSZXBsYWNlIHRoZSB2YW5pbGxhIEpTIERhdGUgb2JqZWN0IHdpdGggYW4gaW5kZXBlbnRlbnQgZGF5LW9mLXdlZWsgY2hlY2suXG4gICAgICAgICAgICB2YXIgd2Vla2RheVByb3ZpZGVkID0gZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQuaW5kZXhPZih3ZWVrZGF5U3RyKSxcbiAgICAgICAgICAgICAgICB3ZWVrZGF5QWN0dWFsID0gbmV3IERhdGUocGFyc2VkSW5wdXRbMF0sIHBhcnNlZElucHV0WzFdLCBwYXJzZWRJbnB1dFsyXSkuZ2V0RGF5KCk7XG4gICAgICAgICAgICBpZiAod2Vla2RheVByb3ZpZGVkICE9PSB3ZWVrZGF5QWN0dWFsKSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFyIG9ic09mZnNldHMgPSB7XG4gICAgICAgIFVUOiAwLFxuICAgICAgICBHTVQ6IDAsXG4gICAgICAgIEVEVDogLTQgKiA2MCxcbiAgICAgICAgRVNUOiAtNSAqIDYwLFxuICAgICAgICBDRFQ6IC01ICogNjAsXG4gICAgICAgIENTVDogLTYgKiA2MCxcbiAgICAgICAgTURUOiAtNiAqIDYwLFxuICAgICAgICBNU1Q6IC03ICogNjAsXG4gICAgICAgIFBEVDogLTcgKiA2MCxcbiAgICAgICAgUFNUOiAtOCAqIDYwXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZU9mZnNldChvYnNPZmZzZXQsIG1pbGl0YXJ5T2Zmc2V0LCBudW1PZmZzZXQpIHtcbiAgICAgICAgaWYgKG9ic09mZnNldCkge1xuICAgICAgICAgICAgcmV0dXJuIG9ic09mZnNldHNbb2JzT2Zmc2V0XTtcbiAgICAgICAgfSBlbHNlIGlmIChtaWxpdGFyeU9mZnNldCkge1xuICAgICAgICAgICAgLy8gdGhlIG9ubHkgYWxsb3dlZCBtaWxpdGFyeSB0eiBpcyBaXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBobSA9IHBhcnNlSW50KG51bU9mZnNldCwgMTApO1xuICAgICAgICAgICAgdmFyIG0gPSBobSAlIDEwMCxcbiAgICAgICAgICAgICAgICBoID0gKGhtIC0gbSkgLyAxMDA7XG4gICAgICAgICAgICByZXR1cm4gaCAqIDYwICsgbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgYW5kIHRpbWUgZnJvbSByZWYgMjgyMiBmb3JtYXRcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tUkZDMjgyMihjb25maWcpIHtcbiAgICAgICAgdmFyIG1hdGNoID0gcmZjMjgyMi5leGVjKHByZXByb2Nlc3NSRkMyODIyKGNvbmZpZy5faSkpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIHZhciBwYXJzZWRBcnJheSA9IGV4dHJhY3RGcm9tUkZDMjgyMlN0cmluZ3MobWF0Y2hbNF0sIG1hdGNoWzNdLCBtYXRjaFsyXSwgbWF0Y2hbNV0sIG1hdGNoWzZdLCBtYXRjaFs3XSk7XG4gICAgICAgICAgICBpZiAoIWNoZWNrV2Vla2RheShtYXRjaFsxXSwgcGFyc2VkQXJyYXksIGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbmZpZy5fYSA9IHBhcnNlZEFycmF5O1xuICAgICAgICAgICAgY29uZmlnLl90em0gPSBjYWxjdWxhdGVPZmZzZXQobWF0Y2hbOF0sIG1hdGNoWzldLCBtYXRjaFsxMF0pO1xuXG4gICAgICAgICAgICBjb25maWcuX2QgPSBjcmVhdGVVVENEYXRlLmFwcGx5KG51bGwsIGNvbmZpZy5fYSk7XG4gICAgICAgICAgICBjb25maWcuX2Quc2V0VVRDTWludXRlcyhjb25maWcuX2QuZ2V0VVRDTWludXRlcygpIC0gY29uZmlnLl90em0pO1xuXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5yZmMyODIyID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGF0ZSBmcm9tIGlzbyBmb3JtYXQgb3IgZmFsbGJhY2tcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tU3RyaW5nKGNvbmZpZykge1xuICAgICAgICB2YXIgbWF0Y2hlZCA9IGFzcE5ldEpzb25SZWdleC5leGVjKGNvbmZpZy5faSk7XG5cbiAgICAgICAgaWYgKG1hdGNoZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKCttYXRjaGVkWzFdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZ0Zyb21JU08oY29uZmlnKTtcbiAgICAgICAgaWYgKGNvbmZpZy5faXNWYWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdGcm9tUkZDMjgyMihjb25maWcpO1xuICAgICAgICBpZiAoY29uZmlnLl9pc1ZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5faXNWYWxpZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpbmFsIGF0dGVtcHQsIHVzZSBJbnB1dCBGYWxsYmFja1xuICAgICAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpO1xuICAgIH1cblxuICAgIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrID0gZGVwcmVjYXRlKCd2YWx1ZSBwcm92aWRlZCBpcyBub3QgaW4gYSByZWNvZ25pemVkIFJGQzI4MjIgb3IgSVNPIGZvcm1hdC4gbW9tZW50IGNvbnN0cnVjdGlvbiBmYWxscyBiYWNrIHRvIGpzIERhdGUoKSwgJyArICd3aGljaCBpcyBub3QgcmVsaWFibGUgYWNyb3NzIGFsbCBicm93c2VycyBhbmQgdmVyc2lvbnMuIE5vbiBSRkMyODIyL0lTTyBkYXRlIGZvcm1hdHMgYXJlICcgKyAnZGlzY291cmFnZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyBtYWpvciByZWxlYXNlLiBQbGVhc2UgcmVmZXIgdG8gJyArICdodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2pzLWRhdGUvIGZvciBtb3JlIGluZm8uJywgZnVuY3Rpb24gKGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShjb25maWcuX2kgKyAoY29uZmlnLl91c2VVVEMgPyAnIFVUQycgOiAnJykpO1xuICAgIH0pO1xuXG4gICAgLy8gY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gdGhlIElTTyBzdGFuZGFyZFxuICAgIGhvb2tzLklTT184NjAxID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBjb25zdGFudCB0aGF0IHJlZmVycyB0byB0aGUgUkZDIDI4MjIgZm9ybVxuICAgIGhvb2tzLlJGQ18yODIyID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBmb3JtYXQgc3RyaW5nXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpIHtcbiAgICAgICAgLy8gVE9ETzogTW92ZSB0aGlzIHRvIGFub3RoZXIgcGFydCBvZiB0aGUgY3JlYXRpb24gZmxvdyB0byBwcmV2ZW50IGNpcmN1bGFyIGRlcHNcbiAgICAgICAgaWYgKGNvbmZpZy5fZiA9PT0gaG9va3MuSVNPXzg2MDEpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21JU08oY29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLl9mID09PSBob29rcy5SRkNfMjgyMikge1xuICAgICAgICAgICAgY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25maWcuX2EgPSBbXTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZW1wdHkgPSB0cnVlO1xuXG4gICAgICAgIC8vIFRoaXMgYXJyYXkgaXMgdXNlZCB0byBtYWtlIGEgRGF0ZSwgZWl0aGVyIHdpdGggYG5ldyBEYXRlYCBvciBgRGF0ZS5VVENgXG4gICAgICAgIHZhciBzdHJpbmcgPSAnJyArIGNvbmZpZy5faSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBwYXJzZWRJbnB1dCxcbiAgICAgICAgICAgIHRva2VucyxcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgc2tpcHBlZCxcbiAgICAgICAgICAgIHN0cmluZ0xlbmd0aCA9IHN0cmluZy5sZW5ndGgsXG4gICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoID0gMDtcblxuICAgICAgICB0b2tlbnMgPSBleHBhbmRGb3JtYXQoY29uZmlnLl9mLCBjb25maWcuX2xvY2FsZSkubWF0Y2goZm9ybWF0dGluZ1Rva2VucykgfHwgW107XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW4gPSB0b2tlbnNbaV07XG4gICAgICAgICAgICBwYXJzZWRJbnB1dCA9IChzdHJpbmcubWF0Y2goZ2V0UGFyc2VSZWdleEZvclRva2VuKHRva2VuLCBjb25maWcpKSB8fCBbXSlbMF07XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygndG9rZW4nLCB0b2tlbiwgJ3BhcnNlZElucHV0JywgcGFyc2VkSW5wdXQsXG4gICAgICAgICAgICAvLyAgICAgICAgICdyZWdleCcsIGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBza2lwcGVkID0gc3RyaW5nLnN1YnN0cigwLCBzdHJpbmcuaW5kZXhPZihwYXJzZWRJbnB1dCkpO1xuICAgICAgICAgICAgICAgIGlmIChza2lwcGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChza2lwcGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKHN0cmluZy5pbmRleE9mKHBhcnNlZElucHV0KSArIHBhcnNlZElucHV0Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdG90YWxQYXJzZWRJbnB1dExlbmd0aCArPSBwYXJzZWRJbnB1dC5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBkb24ndCBwYXJzZSBpZiBpdCdzIG5vdCBhIGtub3duIHRva2VuXG4gICAgICAgICAgICBpZiAoZm9ybWF0VG9rZW5GdW5jdGlvbnNbdG9rZW5dKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVtcHR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkVG9rZW5zLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgcGFyc2VkSW5wdXQsIGNvbmZpZyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5fc3RyaWN0ICYmICFwYXJzZWRJbnB1dCkge1xuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZFRva2Vucy5wdXNoKHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFkZCByZW1haW5pbmcgdW5wYXJzZWQgaW5wdXQgbGVuZ3RoIHRvIHRoZSBzdHJpbmdcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuY2hhcnNMZWZ0T3ZlciA9IHN0cmluZ0xlbmd0aCAtIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGg7XG4gICAgICAgIGlmIChzdHJpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2xlYXIgXzEyaCBmbGFnIGlmIGhvdXIgaXMgPD0gMTJcbiAgICAgICAgaWYgKGNvbmZpZy5fYVtIT1VSXSA8PSAxMiAmJiBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID09PSB0cnVlICYmIGNvbmZpZy5fYVtIT1VSXSA+IDApIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5wYXJzZWREYXRlUGFydHMgPSBjb25maWcuX2Euc2xpY2UoMCk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLm1lcmlkaWVtID0gY29uZmlnLl9tZXJpZGllbTtcbiAgICAgICAgLy8gaGFuZGxlIG1lcmlkaWVtXG4gICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IG1lcmlkaWVtRml4V3JhcChjb25maWcuX2xvY2FsZSwgY29uZmlnLl9hW0hPVVJdLCBjb25maWcuX21lcmlkaWVtKTtcblxuICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICAgICAgY2hlY2tPdmVyZmxvdyhjb25maWcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1lcmlkaWVtRml4V3JhcChsb2NhbGUsIGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgIHZhciBpc1BtO1xuXG4gICAgICAgIGlmIChtZXJpZGllbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvXG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9jYWxlLm1lcmlkaWVtSG91ciAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLm1lcmlkaWVtSG91cihob3VyLCBtZXJpZGllbSk7XG4gICAgICAgIH0gZWxzZSBpZiAobG9jYWxlLmlzUE0gIT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gRmFsbGJhY2tcbiAgICAgICAgICAgIGlzUG0gPSBsb2NhbGUuaXNQTShtZXJpZGllbSk7XG4gICAgICAgICAgICBpZiAoaXNQbSAmJiBob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyICs9IDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc1BtICYmIGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IHN1cHBvc2VkIHRvIGhhcHBlblxuICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBhcnJheSBvZiBmb3JtYXQgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheShjb25maWcpIHtcbiAgICAgICAgdmFyIHRlbXBDb25maWcsIGJlc3RNb21lbnQsIHNjb3JlVG9CZWF0LCBpLCBjdXJyZW50U2NvcmU7XG5cbiAgICAgICAgaWYgKGNvbmZpZy5fZi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmludmFsaWRGb3JtYXQgPSB0cnVlO1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoTmFOKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb25maWcuX2YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZSA9IDA7XG4gICAgICAgICAgICB0ZW1wQ29uZmlnID0gY29weUNvbmZpZyh7fSwgY29uZmlnKTtcbiAgICAgICAgICAgIGlmIChjb25maWcuX3VzZVVUQyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGVtcENvbmZpZy5fdXNlVVRDID0gY29uZmlnLl91c2VVVEM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZW1wQ29uZmlnLl9mID0gY29uZmlnLl9mW2ldO1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdCh0ZW1wQ29uZmlnKTtcblxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKHRlbXBDb25maWcpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGFueSBpbnB1dCB0aGF0IHdhcyBub3QgcGFyc2VkIGFkZCBhIHBlbmFsdHkgZm9yIHRoYXQgZm9ybWF0XG4gICAgICAgICAgICBjdXJyZW50U2NvcmUgKz0gZ2V0UGFyc2luZ0ZsYWdzKHRlbXBDb25maWcpLmNoYXJzTGVmdE92ZXI7XG5cbiAgICAgICAgICAgIC8vb3IgdG9rZW5zXG4gICAgICAgICAgICBjdXJyZW50U2NvcmUgKz0gZ2V0UGFyc2luZ0ZsYWdzKHRlbXBDb25maWcpLnVudXNlZFRva2Vucy5sZW5ndGggKiAxMDtcblxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKHRlbXBDb25maWcpLnNjb3JlID0gY3VycmVudFNjb3JlO1xuXG4gICAgICAgICAgICBpZiAoc2NvcmVUb0JlYXQgPT0gbnVsbCB8fCBjdXJyZW50U2NvcmUgPCBzY29yZVRvQmVhdCkge1xuICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID0gY3VycmVudFNjb3JlO1xuICAgICAgICAgICAgICAgIGJlc3RNb21lbnQgPSB0ZW1wQ29uZmlnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXh0ZW5kKGNvbmZpZywgYmVzdE1vbWVudCB8fCB0ZW1wQ29uZmlnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb25maWdGcm9tT2JqZWN0KGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnLl9kKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaSA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKGNvbmZpZy5faSk7XG4gICAgICAgIGNvbmZpZy5fYSA9IG1hcChbaS55ZWFyLCBpLm1vbnRoLCBpLmRheSB8fCBpLmRhdGUsIGkuaG91ciwgaS5taW51dGUsIGkuc2Vjb25kLCBpLm1pbGxpc2Vjb25kXSwgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgcmV0dXJuIG9iaiAmJiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uZmlnRnJvbUFycmF5KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRnJvbUNvbmZpZyhjb25maWcpIHtcbiAgICAgICAgdmFyIHJlcyA9IG5ldyBNb21lbnQoY2hlY2tPdmVyZmxvdyhwcmVwYXJlQ29uZmlnKGNvbmZpZykpKTtcbiAgICAgICAgaWYgKHJlcy5fbmV4dERheSkge1xuICAgICAgICAgICAgLy8gQWRkaW5nIGlzIHNtYXJ0IGVub3VnaCBhcm91bmQgRFNUXG4gICAgICAgICAgICByZXMuYWRkKDEsICdkJyk7XG4gICAgICAgICAgICByZXMuX25leHREYXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZXBhcmVDb25maWcoY29uZmlnKSB7XG4gICAgICAgIHZhciBpbnB1dCA9IGNvbmZpZy5faSxcbiAgICAgICAgICAgIGZvcm1hdCA9IGNvbmZpZy5fZjtcblxuICAgICAgICBjb25maWcuX2xvY2FsZSA9IGNvbmZpZy5fbG9jYWxlIHx8IGdldExvY2FsZShjb25maWcuX2wpO1xuXG4gICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCB8fCBmb3JtYXQgPT09IHVuZGVmaW5lZCAmJiBpbnB1dCA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKHsgbnVsbElucHV0OiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbmZpZy5faSA9IGlucHV0ID0gY29uZmlnLl9sb2NhbGUucHJlcGFyc2UoaW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTW9tZW50KGlucHV0KSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNb21lbnQoY2hlY2tPdmVyZmxvdyhpbnB1dCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGF0ZShpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IGlucHV0O1xuICAgICAgICB9IGVsc2UgaWYgKGlzQXJyYXkoZm9ybWF0KSkge1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0KSB7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWdGcm9tSW5wdXQoY29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNWYWxpZChjb25maWcpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb25maWdGcm9tSW5wdXQoY29uZmlnKSB7XG4gICAgICAgIHZhciBpbnB1dCA9IGNvbmZpZy5faTtcbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaG9va3Mubm93KCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGF0ZShpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGlucHV0LnZhbHVlT2YoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZyhjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2EgPSBtYXAoaW5wdXQuc2xpY2UoMCksIGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQob2JqLCAxMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21BcnJheShjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnRnJvbU9iamVjdChjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkge1xuICAgICAgICAgICAgLy8gZnJvbSBtaWxsaXNlY29uZHNcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGlucHV0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrKGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCBpc1VUQykge1xuICAgICAgICB2YXIgYyA9IHt9O1xuXG4gICAgICAgIGlmIChsb2NhbGUgPT09IHRydWUgfHwgbG9jYWxlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgc3RyaWN0ID0gbG9jYWxlO1xuICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KGlucHV0KSAmJiBpc09iamVjdEVtcHR5KGlucHV0KSB8fCBpc0FycmF5KGlucHV0KSAmJiBpbnB1dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGlucHV0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIG9iamVjdCBjb25zdHJ1Y3Rpb24gbXVzdCBiZSBkb25lIHRoaXMgd2F5LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQyM1xuICAgICAgICBjLl9pc0FNb21lbnRPYmplY3QgPSB0cnVlO1xuICAgICAgICBjLl91c2VVVEMgPSBjLl9pc1VUQyA9IGlzVVRDO1xuICAgICAgICBjLl9sID0gbG9jYWxlO1xuICAgICAgICBjLl9pID0gaW5wdXQ7XG4gICAgICAgIGMuX2YgPSBmb3JtYXQ7XG4gICAgICAgIGMuX3N0cmljdCA9IHN0cmljdDtcblxuICAgICAgICByZXR1cm4gY3JlYXRlRnJvbUNvbmZpZyhjKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVMb2NhbChpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHZhciBwcm90b3R5cGVNaW4gPSBkZXByZWNhdGUoJ21vbWVudCgpLm1pbiBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1heCBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgb3RoZXIgPSBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gb3RoZXIgPCB0aGlzID8gdGhpcyA6IG90aGVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFyIHByb3RvdHlwZU1heCA9IGRlcHJlY2F0ZSgnbW9tZW50KCkubWF4IGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWluIGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBvdGhlciA9IGNyZWF0ZUxvY2FsLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSAmJiBvdGhlci5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvdGhlciA+IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCgpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBQaWNrIGEgbW9tZW50IG0gZnJvbSBtb21lbnRzIHNvIHRoYXQgbVtmbl0ob3RoZXIpIGlzIHRydWUgZm9yIGFsbFxuICAgIC8vIG90aGVyLiBUaGlzIHJlbGllcyBvbiB0aGUgZnVuY3Rpb24gZm4gdG8gYmUgdHJhbnNpdGl2ZS5cbiAgICAvL1xuICAgIC8vIG1vbWVudHMgc2hvdWxkIGVpdGhlciBiZSBhbiBhcnJheSBvZiBtb21lbnQgb2JqZWN0cyBvciBhbiBhcnJheSwgd2hvc2VcbiAgICAvLyBmaXJzdCBlbGVtZW50IGlzIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzLlxuICAgIGZ1bmN0aW9uIHBpY2tCeShmbiwgbW9tZW50cykge1xuICAgICAgICB2YXIgcmVzLCBpO1xuICAgICAgICBpZiAobW9tZW50cy5sZW5ndGggPT09IDEgJiYgaXNBcnJheShtb21lbnRzWzBdKSkge1xuICAgICAgICAgICAgbW9tZW50cyA9IG1vbWVudHNbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtb21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzID0gbW9tZW50c1swXTtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IG1vbWVudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmICghbW9tZW50c1tpXS5pc1ZhbGlkKCkgfHwgbW9tZW50c1tpXVtmbl0ocmVzKSkge1xuICAgICAgICAgICAgICAgIHJlcyA9IG1vbWVudHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBVc2UgW10uc29ydCBpbnN0ZWFkP1xuICAgIGZ1bmN0aW9uIG1pbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG5cbiAgICAgICAgcmV0dXJuIHBpY2tCeSgnaXNCZWZvcmUnLCBhcmdzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXgoKSB7XG4gICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuXG4gICAgICAgIHJldHVybiBwaWNrQnkoJ2lzQWZ0ZXInLCBhcmdzKTtcbiAgICB9XG5cbiAgICB2YXIgbm93ID0gZnVuY3Rpb24gbm93KCkge1xuICAgICAgICByZXR1cm4gRGF0ZS5ub3cgPyBEYXRlLm5vdygpIDogK25ldyBEYXRlKCk7XG4gICAgfTtcblxuICAgIHZhciBvcmRlcmluZyA9IFsneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsICdtaWxsaXNlY29uZCddO1xuXG4gICAgZnVuY3Rpb24gaXNEdXJhdGlvblZhbGlkKG0pIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIG0pIHtcbiAgICAgICAgICAgIGlmICghKGluZGV4T2YuY2FsbChvcmRlcmluZywga2V5KSAhPT0gLTEgJiYgKG1ba2V5XSA9PSBudWxsIHx8ICFpc05hTihtW2tleV0pKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdW5pdEhhc0RlY2ltYWwgPSBmYWxzZTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcmRlcmluZy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgaWYgKG1bb3JkZXJpbmdbaV1dKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVuaXRIYXNEZWNpbWFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gb25seSBhbGxvdyBub24taW50ZWdlcnMgZm9yIHNtYWxsZXN0IHVuaXRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlRmxvYXQobVtvcmRlcmluZ1tpXV0pICE9PSB0b0ludChtW29yZGVyaW5nW2ldXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pdEhhc0RlY2ltYWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmFsaWQkMSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmFsaWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZCQxKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oTmFOKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBEdXJhdGlvbihkdXJhdGlvbikge1xuICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0ID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoZHVyYXRpb24pLFxuICAgICAgICAgICAgeWVhcnMgPSBub3JtYWxpemVkSW5wdXQueWVhciB8fCAwLFxuICAgICAgICAgICAgcXVhcnRlcnMgPSBub3JtYWxpemVkSW5wdXQucXVhcnRlciB8fCAwLFxuICAgICAgICAgICAgbW9udGhzID0gbm9ybWFsaXplZElucHV0Lm1vbnRoIHx8IDAsXG4gICAgICAgICAgICB3ZWVrcyA9IG5vcm1hbGl6ZWRJbnB1dC53ZWVrIHx8IDAsXG4gICAgICAgICAgICBkYXlzID0gbm9ybWFsaXplZElucHV0LmRheSB8fCAwLFxuICAgICAgICAgICAgaG91cnMgPSBub3JtYWxpemVkSW5wdXQuaG91ciB8fCAwLFxuICAgICAgICAgICAgbWludXRlcyA9IG5vcm1hbGl6ZWRJbnB1dC5taW51dGUgfHwgMCxcbiAgICAgICAgICAgIHNlY29uZHMgPSBub3JtYWxpemVkSW5wdXQuc2Vjb25kIHx8IDAsXG4gICAgICAgICAgICBtaWxsaXNlY29uZHMgPSBub3JtYWxpemVkSW5wdXQubWlsbGlzZWNvbmQgfHwgMDtcblxuICAgICAgICB0aGlzLl9pc1ZhbGlkID0gaXNEdXJhdGlvblZhbGlkKG5vcm1hbGl6ZWRJbnB1dCk7XG5cbiAgICAgICAgLy8gcmVwcmVzZW50YXRpb24gZm9yIGRhdGVBZGRSZW1vdmVcbiAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzID0gK21pbGxpc2Vjb25kcyArIHNlY29uZHMgKiAxZTMgKyAvLyAxMDAwXG4gICAgICAgIG1pbnV0ZXMgKiA2ZTQgKyAvLyAxMDAwICogNjBcbiAgICAgICAgaG91cnMgKiAxMDAwICogNjAgKiA2MDsgLy91c2luZyAxMDAwICogNjAgKiA2MCBpbnN0ZWFkIG9mIDM2ZTUgdG8gYXZvaWQgZmxvYXRpbmcgcG9pbnQgcm91bmRpbmcgZXJyb3JzIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8yOTc4XG4gICAgICAgIC8vIEJlY2F1c2Ugb2YgZGF0ZUFkZFJlbW92ZSB0cmVhdHMgMjQgaG91cnMgYXMgZGlmZmVyZW50IGZyb20gYVxuICAgICAgICAvLyBkYXkgd2hlbiB3b3JraW5nIGFyb3VuZCBEU1QsIHdlIG5lZWQgdG8gc3RvcmUgdGhlbSBzZXBhcmF0ZWx5XG4gICAgICAgIHRoaXMuX2RheXMgPSArZGF5cyArIHdlZWtzICogNztcbiAgICAgICAgLy8gSXQgaXMgaW1wb3NzaWJsZSB0byB0cmFuc2xhdGUgbW9udGhzIGludG8gZGF5cyB3aXRob3V0IGtub3dpbmdcbiAgICAgICAgLy8gd2hpY2ggbW9udGhzIHlvdSBhcmUgYXJlIHRhbGtpbmcgYWJvdXQsIHNvIHdlIGhhdmUgdG8gc3RvcmVcbiAgICAgICAgLy8gaXQgc2VwYXJhdGVseS5cbiAgICAgICAgdGhpcy5fbW9udGhzID0gK21vbnRocyArIHF1YXJ0ZXJzICogMyArIHllYXJzICogMTI7XG5cbiAgICAgICAgdGhpcy5fZGF0YSA9IHt9O1xuXG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IGdldExvY2FsZSgpO1xuXG4gICAgICAgIHRoaXMuX2J1YmJsZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRHVyYXRpb24ob2JqKSB7XG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEdXJhdGlvbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhYnNSb3VuZChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKC0xICogbnVtYmVyKSAqIC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGZ1bmN0aW9uIG9mZnNldCh0b2tlbiwgc2VwYXJhdG9yKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKHRva2VuLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy51dGNPZmZzZXQoKTtcbiAgICAgICAgICAgIHZhciBzaWduID0gJysnO1xuICAgICAgICAgICAgaWYgKG9mZnNldCA8IDApIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHNpZ24gPSAnLSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2lnbiArIHplcm9GaWxsKH5+KG9mZnNldCAvIDYwKSwgMikgKyBzZXBhcmF0b3IgKyB6ZXJvRmlsbCh+fm9mZnNldCAlIDYwLCAyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb2Zmc2V0KCdaJywgJzonKTtcbiAgICBvZmZzZXQoJ1paJywgJycpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignWicsIG1hdGNoU2hvcnRPZmZzZXQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1paJywgbWF0Y2hTaG9ydE9mZnNldCk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ1onLCAnWlonXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fdXNlVVRDID0gdHJ1ZTtcbiAgICAgICAgY29uZmlnLl90em0gPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoU2hvcnRPZmZzZXQsIGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIC8vIHRpbWV6b25lIGNodW5rZXJcbiAgICAvLyAnKzEwOjAwJyA+IFsnMTAnLCAgJzAwJ11cbiAgICAvLyAnLTE1MzAnICA+IFsnLTE1JywgJzMwJ11cbiAgICB2YXIgY2h1bmtPZmZzZXQgPSAvKFtcXCtcXC1dfFxcZFxcZCkvZ2k7XG5cbiAgICBmdW5jdGlvbiBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoZXIsIHN0cmluZykge1xuICAgICAgICB2YXIgbWF0Y2hlcyA9IChzdHJpbmcgfHwgJycpLm1hdGNoKG1hdGNoZXIpO1xuXG4gICAgICAgIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjaHVuayA9IG1hdGNoZXNbbWF0Y2hlcy5sZW5ndGggLSAxXSB8fCBbXTtcbiAgICAgICAgdmFyIHBhcnRzID0gKGNodW5rICsgJycpLm1hdGNoKGNodW5rT2Zmc2V0KSB8fCBbJy0nLCAwLCAwXTtcbiAgICAgICAgdmFyIG1pbnV0ZXMgPSArKHBhcnRzWzFdICogNjApICsgdG9JbnQocGFydHNbMl0pO1xuXG4gICAgICAgIHJldHVybiBtaW51dGVzID09PSAwID8gMCA6IHBhcnRzWzBdID09PSAnKycgPyBtaW51dGVzIDogLW1pbnV0ZXM7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGEgbW9tZW50IGZyb20gaW5wdXQsIHRoYXQgaXMgbG9jYWwvdXRjL3pvbmUgZXF1aXZhbGVudCB0byBtb2RlbC5cbiAgICBmdW5jdGlvbiBjbG9uZVdpdGhPZmZzZXQoaW5wdXQsIG1vZGVsKSB7XG4gICAgICAgIHZhciByZXMsIGRpZmY7XG4gICAgICAgIGlmIChtb2RlbC5faXNVVEMpIHtcbiAgICAgICAgICAgIHJlcyA9IG1vZGVsLmNsb25lKCk7XG4gICAgICAgICAgICBkaWZmID0gKGlzTW9tZW50KGlucHV0KSB8fCBpc0RhdGUoaW5wdXQpID8gaW5wdXQudmFsdWVPZigpIDogY3JlYXRlTG9jYWwoaW5wdXQpLnZhbHVlT2YoKSkgLSByZXMudmFsdWVPZigpO1xuICAgICAgICAgICAgLy8gVXNlIGxvdy1sZXZlbCBhcGksIGJlY2F1c2UgdGhpcyBmbiBpcyBsb3ctbGV2ZWwgYXBpLlxuICAgICAgICAgICAgcmVzLl9kLnNldFRpbWUocmVzLl9kLnZhbHVlT2YoKSArIGRpZmYpO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHJlcywgZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVMb2NhbChpbnB1dCkubG9jYWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldERhdGVPZmZzZXQobSkge1xuICAgICAgICAvLyBPbiBGaXJlZm94LjI0IERhdGUjZ2V0VGltZXpvbmVPZmZzZXQgcmV0dXJucyBhIGZsb2F0aW5nIHBvaW50LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9wdWxsLzE4NzFcbiAgICAgICAgcmV0dXJuIC1NYXRoLnJvdW5kKG0uX2QuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDE1KSAqIDE1O1xuICAgIH1cblxuICAgIC8vIEhPT0tTXG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIGEgbW9tZW50IGlzIG11dGF0ZWQuXG4gICAgLy8gSXQgaXMgaW50ZW5kZWQgdG8ga2VlcCB0aGUgb2Zmc2V0IGluIHN5bmMgd2l0aCB0aGUgdGltZXpvbmUuXG4gICAgaG9va3MudXBkYXRlT2Zmc2V0ID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICAvLyBrZWVwTG9jYWxUaW1lID0gdHJ1ZSBtZWFucyBvbmx5IGNoYW5nZSB0aGUgdGltZXpvbmUsIHdpdGhvdXRcbiAgICAvLyBhZmZlY3RpbmcgdGhlIGxvY2FsIGhvdXIuIFNvIDU6MzE6MjYgKzAzMDAgLS1bdXRjT2Zmc2V0KDIsIHRydWUpXS0tPlxuICAgIC8vIDU6MzE6MjYgKzAyMDAgSXQgaXMgcG9zc2libGUgdGhhdCA1OjMxOjI2IGRvZXNuJ3QgZXhpc3Qgd2l0aCBvZmZzZXRcbiAgICAvLyArMDIwMCwgc28gd2UgYWRqdXN0IHRoZSB0aW1lIGFzIG5lZWRlZCwgdG8gYmUgdmFsaWQuXG4gICAgLy9cbiAgICAvLyBLZWVwaW5nIHRoZSB0aW1lIGFjdHVhbGx5IGFkZHMvc3VidHJhY3RzIChvbmUgaG91cilcbiAgICAvLyBmcm9tIHRoZSBhY3R1YWwgcmVwcmVzZW50ZWQgdGltZS4gVGhhdCBpcyB3aHkgd2UgY2FsbCB1cGRhdGVPZmZzZXRcbiAgICAvLyBhIHNlY29uZCB0aW1lLiBJbiBjYXNlIGl0IHdhbnRzIHVzIHRvIGNoYW5nZSB0aGUgb2Zmc2V0IGFnYWluXG4gICAgLy8gX2NoYW5nZUluUHJvZ3Jlc3MgPT0gdHJ1ZSBjYXNlLCB0aGVuIHdlIGhhdmUgdG8gYWRqdXN0LCBiZWNhdXNlXG4gICAgLy8gdGhlcmUgaXMgbm8gc3VjaCB0aW1lIGluIHRoZSBnaXZlbiB0aW1lem9uZS5cbiAgICBmdW5jdGlvbiBnZXRTZXRPZmZzZXQoaW5wdXQsIGtlZXBMb2NhbFRpbWUsIGtlZXBNaW51dGVzKSB7XG4gICAgICAgIHZhciBvZmZzZXQgPSB0aGlzLl9vZmZzZXQgfHwgMCxcbiAgICAgICAgICAgIGxvY2FsQWRqdXN0O1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgIT0gbnVsbCA/IHRoaXMgOiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoU2hvcnRPZmZzZXQsIGlucHV0KTtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChNYXRoLmFicyhpbnB1dCkgPCAxNiAmJiAha2VlcE1pbnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBpbnB1dCA9IGlucHV0ICogNjA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2lzVVRDICYmIGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgICAgICAgICBsb2NhbEFkanVzdCA9IGdldERhdGVPZmZzZXQodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9vZmZzZXQgPSBpbnB1dDtcbiAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChsb2NhbEFkanVzdCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGQobG9jYWxBZGp1c3QsICdtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob2Zmc2V0ICE9PSBpbnB1dCkge1xuICAgICAgICAgICAgICAgIGlmICgha2VlcExvY2FsVGltZSB8fCB0aGlzLl9jaGFuZ2VJblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZFN1YnRyYWN0KHRoaXMsIGNyZWF0ZUR1cmF0aW9uKGlucHV0IC0gb2Zmc2V0LCAnbScpLCAxLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VJblByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc1VUQyA/IG9mZnNldCA6IGdldERhdGVPZmZzZXQodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRab25lKGlucHV0LCBrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gLWlucHV0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldChpbnB1dCwga2VlcExvY2FsVGltZSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIC10aGlzLnV0Y09mZnNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0T2Zmc2V0VG9VVEMoa2VlcExvY2FsVGltZSkge1xuICAgICAgICByZXR1cm4gdGhpcy51dGNPZmZzZXQoMCwga2VlcExvY2FsVGltZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0T2Zmc2V0VG9Mb2NhbChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgIGlmICh0aGlzLl9pc1VUQykge1xuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoMCwga2VlcExvY2FsVGltZSk7XG4gICAgICAgICAgICB0aGlzLl9pc1VUQyA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoa2VlcExvY2FsVGltZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3VidHJhY3QoZ2V0RGF0ZU9mZnNldCh0aGlzKSwgJ20nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRPZmZzZXRUb1BhcnNlZE9mZnNldCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3R6bSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCh0aGlzLl90em0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5faSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhciB0Wm9uZSA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hPZmZzZXQsIHRoaXMuX2kpO1xuICAgICAgICAgICAgaWYgKHRab25lICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnV0Y09mZnNldCh0Wm9uZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KDAsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhc0FsaWduZWRIb3VyT2Zmc2V0KGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dCA9IGlucHV0ID8gY3JlYXRlTG9jYWwoaW5wdXQpLnV0Y09mZnNldCgpIDogMDtcblxuICAgICAgICByZXR1cm4gKHRoaXMudXRjT2Zmc2V0KCkgLSBpbnB1dCkgJSA2MCA9PT0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0RheWxpZ2h0U2F2aW5nVGltZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXRjT2Zmc2V0KCkgPiB0aGlzLmNsb25lKCkubW9udGgoMCkudXRjT2Zmc2V0KCkgfHwgdGhpcy51dGNPZmZzZXQoKSA+IHRoaXMuY2xvbmUoKS5tb250aCg1KS51dGNPZmZzZXQoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWQoKSB7XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQodGhpcy5faXNEU1RTaGlmdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzRFNUU2hpZnRlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjID0ge307XG5cbiAgICAgICAgY29weUNvbmZpZyhjLCB0aGlzKTtcbiAgICAgICAgYyA9IHByZXBhcmVDb25maWcoYyk7XG5cbiAgICAgICAgaWYgKGMuX2EpIHtcbiAgICAgICAgICAgIHZhciBvdGhlciA9IGMuX2lzVVRDID8gY3JlYXRlVVRDKGMuX2EpIDogY3JlYXRlTG9jYWwoYy5fYSk7XG4gICAgICAgICAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPSB0aGlzLmlzVmFsaWQoKSAmJiBjb21wYXJlQXJyYXlzKGMuX2EsIG90aGVyLnRvQXJyYXkoKSkgPiAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faXNEU1RTaGlmdGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTG9jYWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/ICF0aGlzLl9pc1VUQyA6IGZhbHNlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVXRjT2Zmc2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9pc1VUQyA6IGZhbHNlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVXRjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9pc1VUQyAmJiB0aGlzLl9vZmZzZXQgPT09IDAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBBU1AuTkVUIGpzb24gZGF0ZSBmb3JtYXQgcmVnZXhcbiAgICB2YXIgYXNwTmV0UmVnZXggPSAvXihcXC18XFwrKT8oPzooXFxkKilbLiBdKT8oXFxkKylcXDooXFxkKykoPzpcXDooXFxkKykoXFwuXFxkKik/KT8kLztcblxuICAgIC8vIGZyb20gaHR0cDovL2RvY3MuY2xvc3VyZS1saWJyYXJ5Lmdvb2dsZWNvZGUuY29tL2dpdC9jbG9zdXJlX2dvb2dfZGF0ZV9kYXRlLmpzLnNvdXJjZS5odG1sXG4gICAgLy8gc29tZXdoYXQgbW9yZSBpbiBsaW5lIHdpdGggNC40LjMuMiAyMDA0IHNwZWMsIGJ1dCBhbGxvd3MgZGVjaW1hbCBhbnl3aGVyZVxuICAgIC8vIGFuZCBmdXJ0aGVyIG1vZGlmaWVkIHRvIGFsbG93IGZvciBzdHJpbmdzIGNvbnRhaW5pbmcgYm90aCB3ZWVrIGFuZCBkYXlcbiAgICB2YXIgaXNvUmVnZXggPSAvXigtfFxcKyk/UCg/OihbLStdP1swLTksLl0qKVkpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVcpPyg/OihbLStdP1swLTksLl0qKUQpPyg/OlQoPzooWy0rXT9bMC05LC5dKilIKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilTKT8pPyQvO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlRHVyYXRpb24oaW5wdXQsIGtleSkge1xuICAgICAgICB2YXIgZHVyYXRpb24gPSBpbnB1dCxcblxuICAgICAgICAvLyBtYXRjaGluZyBhZ2FpbnN0IHJlZ2V4cCBpcyBleHBlbnNpdmUsIGRvIGl0IG9uIGRlbWFuZFxuICAgICAgICBtYXRjaCA9IG51bGwsXG4gICAgICAgICAgICBzaWduLFxuICAgICAgICAgICAgcmV0LFxuICAgICAgICAgICAgZGlmZlJlcztcblxuICAgICAgICBpZiAoaXNEdXJhdGlvbihpbnB1dCkpIHtcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge1xuICAgICAgICAgICAgICAgIG1zOiBpbnB1dC5fbWlsbGlzZWNvbmRzLFxuICAgICAgICAgICAgICAgIGQ6IGlucHV0Ll9kYXlzLFxuICAgICAgICAgICAgICAgIE06IGlucHV0Ll9tb250aHNcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoaW5wdXQpKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uW2tleV0gPSBpbnB1dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb24ubWlsbGlzZWNvbmRzID0gaW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoISEobWF0Y2ggPSBhc3BOZXRSZWdleC5leGVjKGlucHV0KSkpIHtcbiAgICAgICAgICAgIHNpZ24gPSBtYXRjaFsxXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgICAgICBkOiB0b0ludChtYXRjaFtEQVRFXSkgKiBzaWduLFxuICAgICAgICAgICAgICAgIGg6IHRvSW50KG1hdGNoW0hPVVJdKSAqIHNpZ24sXG4gICAgICAgICAgICAgICAgbTogdG9JbnQobWF0Y2hbTUlOVVRFXSkgKiBzaWduLFxuICAgICAgICAgICAgICAgIHM6IHRvSW50KG1hdGNoW1NFQ09ORF0pICogc2lnbixcbiAgICAgICAgICAgICAgICBtczogdG9JbnQoYWJzUm91bmQobWF0Y2hbTUlMTElTRUNPTkRdICogMTAwMCkpICogc2lnbiAvLyB0aGUgbWlsbGlzZWNvbmQgZGVjaW1hbCBwb2ludCBpcyBpbmNsdWRlZCBpbiB0aGUgbWF0Y2hcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoISEobWF0Y2ggPSBpc29SZWdleC5leGVjKGlucHV0KSkpIHtcbiAgICAgICAgICAgIHNpZ24gPSBtYXRjaFsxXSA9PT0gJy0nID8gLTEgOiBtYXRjaFsxXSA9PT0gJysnID8gMSA6IDE7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB5OiBwYXJzZUlzbyhtYXRjaFsyXSwgc2lnbiksXG4gICAgICAgICAgICAgICAgTTogcGFyc2VJc28obWF0Y2hbM10sIHNpZ24pLFxuICAgICAgICAgICAgICAgIHc6IHBhcnNlSXNvKG1hdGNoWzRdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBkOiBwYXJzZUlzbyhtYXRjaFs1XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgaDogcGFyc2VJc28obWF0Y2hbNl0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIG06IHBhcnNlSXNvKG1hdGNoWzddLCBzaWduKSxcbiAgICAgICAgICAgICAgICBzOiBwYXJzZUlzbyhtYXRjaFs4XSwgc2lnbilcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoZHVyYXRpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gY2hlY2tzIGZvciBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICAgICAgfSBlbHNlIGlmICgodHlwZW9mIGR1cmF0aW9uID09PSAndW5kZWZpbmVkJyA/ICd1bmRlZmluZWQnIDogX3R5cGVvZihkdXJhdGlvbikpID09PSAnb2JqZWN0JyAmJiAoJ2Zyb20nIGluIGR1cmF0aW9uIHx8ICd0bycgaW4gZHVyYXRpb24pKSB7XG4gICAgICAgICAgICBkaWZmUmVzID0gbW9tZW50c0RpZmZlcmVuY2UoY3JlYXRlTG9jYWwoZHVyYXRpb24uZnJvbSksIGNyZWF0ZUxvY2FsKGR1cmF0aW9uLnRvKSk7XG5cbiAgICAgICAgICAgIGR1cmF0aW9uID0ge307XG4gICAgICAgICAgICBkdXJhdGlvbi5tcyA9IGRpZmZSZXMubWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgZHVyYXRpb24uTSA9IGRpZmZSZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0ID0gbmV3IER1cmF0aW9uKGR1cmF0aW9uKTtcblxuICAgICAgICBpZiAoaXNEdXJhdGlvbihpbnB1dCkgJiYgaGFzT3duUHJvcChpbnB1dCwgJ19sb2NhbGUnKSkge1xuICAgICAgICAgICAgcmV0Ll9sb2NhbGUgPSBpbnB1dC5fbG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICBjcmVhdGVEdXJhdGlvbi5mbiA9IER1cmF0aW9uLnByb3RvdHlwZTtcbiAgICBjcmVhdGVEdXJhdGlvbi5pbnZhbGlkID0gY3JlYXRlSW52YWxpZCQxO1xuXG4gICAgZnVuY3Rpb24gcGFyc2VJc28oaW5wLCBzaWduKSB7XG4gICAgICAgIC8vIFdlJ2Qgbm9ybWFsbHkgdXNlIH5+aW5wIGZvciB0aGlzLCBidXQgdW5mb3J0dW5hdGVseSBpdCBhbHNvXG4gICAgICAgIC8vIGNvbnZlcnRzIGZsb2F0cyB0byBpbnRzLlxuICAgICAgICAvLyBpbnAgbWF5IGJlIHVuZGVmaW5lZCwgc28gY2FyZWZ1bCBjYWxsaW5nIHJlcGxhY2Ugb24gaXQuXG4gICAgICAgIHZhciByZXMgPSBpbnAgJiYgcGFyc2VGbG9hdChpbnAucmVwbGFjZSgnLCcsICcuJykpO1xuICAgICAgICAvLyBhcHBseSBzaWduIHdoaWxlIHdlJ3JlIGF0IGl0XG4gICAgICAgIHJldHVybiAoaXNOYU4ocmVzKSA/IDAgOiByZXMpICogc2lnbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7XG4gICAgICAgIHZhciByZXMgPSB7IG1pbGxpc2Vjb25kczogMCwgbW9udGhzOiAwIH07XG5cbiAgICAgICAgcmVzLm1vbnRocyA9IG90aGVyLm1vbnRoKCkgLSBiYXNlLm1vbnRoKCkgKyAob3RoZXIueWVhcigpIC0gYmFzZS55ZWFyKCkpICogMTI7XG4gICAgICAgIGlmIChiYXNlLmNsb25lKCkuYWRkKHJlcy5tb250aHMsICdNJykuaXNBZnRlcihvdGhlcikpIHtcbiAgICAgICAgICAgIC0tcmVzLm1vbnRocztcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5taWxsaXNlY29uZHMgPSArb3RoZXIgLSArYmFzZS5jbG9uZSgpLmFkZChyZXMubW9udGhzLCAnTScpO1xuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpIHtcbiAgICAgICAgdmFyIHJlcztcbiAgICAgICAgaWYgKCEoYmFzZS5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgbWlsbGlzZWNvbmRzOiAwLCBtb250aHM6IDAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIG90aGVyID0gY2xvbmVXaXRoT2Zmc2V0KG90aGVyLCBiYXNlKTtcbiAgICAgICAgaWYgKGJhc2UuaXNCZWZvcmUob3RoZXIpKSB7XG4gICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcyA9IHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2Uob3RoZXIsIGJhc2UpO1xuICAgICAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9IC1yZXMubWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgcmVzLm1vbnRocyA9IC1yZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiByZW1vdmUgJ25hbWUnIGFyZyBhZnRlciBkZXByZWNhdGlvbiBpcyByZW1vdmVkXG4gICAgZnVuY3Rpb24gY3JlYXRlQWRkZXIoZGlyZWN0aW9uLCBuYW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHZhciBkdXIsIHRtcDtcbiAgICAgICAgICAgIC8vaW52ZXJ0IHRoZSBhcmd1bWVudHMsIGJ1dCBjb21wbGFpbiBhYm91dCBpdFxuICAgICAgICAgICAgaWYgKHBlcmlvZCAhPT0gbnVsbCAmJiAhaXNOYU4oK3BlcmlvZCkpIHtcbiAgICAgICAgICAgICAgICBkZXByZWNhdGVTaW1wbGUobmFtZSwgJ21vbWVudCgpLicgKyBuYW1lICsgJyhwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4nICsgbmFtZSArICcobnVtYmVyLCBwZXJpb2QpLiAnICsgJ1NlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2FkZC1pbnZlcnRlZC1wYXJhbS8gZm9yIG1vcmUgaW5mby4nKTtcbiAgICAgICAgICAgICAgICB0bXAgPSB2YWw7dmFsID0gcGVyaW9kO3BlcmlvZCA9IHRtcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFsID0gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyArdmFsIDogdmFsO1xuICAgICAgICAgICAgZHVyID0gY3JlYXRlRHVyYXRpb24odmFsLCBwZXJpb2QpO1xuICAgICAgICAgICAgYWRkU3VidHJhY3QodGhpcywgZHVyLCBkaXJlY3Rpb24pO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkU3VidHJhY3QobW9tLCBkdXJhdGlvbiwgaXNBZGRpbmcsIHVwZGF0ZU9mZnNldCkge1xuICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gZHVyYXRpb24uX21pbGxpc2Vjb25kcyxcbiAgICAgICAgICAgIGRheXMgPSBhYnNSb3VuZChkdXJhdGlvbi5fZGF5cyksXG4gICAgICAgICAgICBtb250aHMgPSBhYnNSb3VuZChkdXJhdGlvbi5fbW9udGhzKTtcblxuICAgICAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIC8vIE5vIG9wXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGVPZmZzZXQgPSB1cGRhdGVPZmZzZXQgPT0gbnVsbCA/IHRydWUgOiB1cGRhdGVPZmZzZXQ7XG5cbiAgICAgICAgaWYgKG1vbnRocykge1xuICAgICAgICAgICAgc2V0TW9udGgobW9tLCBnZXQobW9tLCAnTW9udGgnKSArIG1vbnRocyAqIGlzQWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF5cykge1xuICAgICAgICAgICAgc2V0JDEobW9tLCAnRGF0ZScsIGdldChtb20sICdEYXRlJykgKyBkYXlzICogaXNBZGRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtaWxsaXNlY29uZHMpIHtcbiAgICAgICAgICAgIG1vbS5fZC5zZXRUaW1lKG1vbS5fZC52YWx1ZU9mKCkgKyBtaWxsaXNlY29uZHMgKiBpc0FkZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVwZGF0ZU9mZnNldCkge1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KG1vbSwgZGF5cyB8fCBtb250aHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGFkZCA9IGNyZWF0ZUFkZGVyKDEsICdhZGQnKTtcbiAgICB2YXIgc3VidHJhY3QgPSBjcmVhdGVBZGRlcigtMSwgJ3N1YnRyYWN0Jyk7XG5cbiAgICBmdW5jdGlvbiBnZXRDYWxlbmRhckZvcm1hdChteU1vbWVudCwgbm93KSB7XG4gICAgICAgIHZhciBkaWZmID0gbXlNb21lbnQuZGlmZihub3csICdkYXlzJywgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBkaWZmIDwgLTYgPyAnc2FtZUVsc2UnIDogZGlmZiA8IC0xID8gJ2xhc3RXZWVrJyA6IGRpZmYgPCAwID8gJ2xhc3REYXknIDogZGlmZiA8IDEgPyAnc2FtZURheScgOiBkaWZmIDwgMiA/ICduZXh0RGF5JyA6IGRpZmYgPCA3ID8gJ25leHRXZWVrJyA6ICdzYW1lRWxzZSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2FsZW5kYXIkMSh0aW1lLCBmb3JtYXRzKSB7XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gY29tcGFyZSB0aGUgc3RhcnQgb2YgdG9kYXksIHZzIHRoaXMuXG4gICAgICAgIC8vIEdldHRpbmcgc3RhcnQtb2YtdG9kYXkgZGVwZW5kcyBvbiB3aGV0aGVyIHdlJ3JlIGxvY2FsL3V0Yy9vZmZzZXQgb3Igbm90LlxuICAgICAgICB2YXIgbm93ID0gdGltZSB8fCBjcmVhdGVMb2NhbCgpLFxuICAgICAgICAgICAgc29kID0gY2xvbmVXaXRoT2Zmc2V0KG5vdywgdGhpcykuc3RhcnRPZignZGF5JyksXG4gICAgICAgICAgICBmb3JtYXQgPSBob29rcy5jYWxlbmRhckZvcm1hdCh0aGlzLCBzb2QpIHx8ICdzYW1lRWxzZSc7XG5cbiAgICAgICAgdmFyIG91dHB1dCA9IGZvcm1hdHMgJiYgKGlzRnVuY3Rpb24oZm9ybWF0c1tmb3JtYXRdKSA/IGZvcm1hdHNbZm9ybWF0XS5jYWxsKHRoaXMsIG5vdykgOiBmb3JtYXRzW2Zvcm1hdF0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdChvdXRwdXQgfHwgdGhpcy5sb2NhbGVEYXRhKCkuY2FsZW5kYXIoZm9ybWF0LCB0aGlzLCBjcmVhdGVMb2NhbChub3cpKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTW9tZW50KHRoaXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQWZ0ZXIoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCk7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHMoIWlzVW5kZWZpbmVkKHVuaXRzKSA/IHVuaXRzIDogJ21pbGxpc2Vjb25kJyk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID4gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxJbnB1dC52YWx1ZU9mKCkgPCB0aGlzLmNsb25lKCkuc3RhcnRPZih1bml0cykudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNCZWZvcmUoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCk7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHMoIWlzVW5kZWZpbmVkKHVuaXRzKSA/IHVuaXRzIDogJ21pbGxpc2Vjb25kJyk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpIDwgbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmVuZE9mKHVuaXRzKS52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQmV0d2Vlbihmcm9tLCB0bywgdW5pdHMsIGluY2x1c2l2aXR5KSB7XG4gICAgICAgIGluY2x1c2l2aXR5ID0gaW5jbHVzaXZpdHkgfHwgJygpJztcbiAgICAgICAgcmV0dXJuIChpbmNsdXNpdml0eVswXSA9PT0gJygnID8gdGhpcy5pc0FmdGVyKGZyb20sIHVuaXRzKSA6ICF0aGlzLmlzQmVmb3JlKGZyb20sIHVuaXRzKSkgJiYgKGluY2x1c2l2aXR5WzFdID09PSAnKScgPyB0aGlzLmlzQmVmb3JlKHRvLCB1bml0cykgOiAhdGhpcy5pc0FmdGVyKHRvLCB1bml0cykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzU2FtZShpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KSxcbiAgICAgICAgICAgIGlucHV0TXM7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMgfHwgJ21pbGxpc2Vjb25kJyk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID09PSBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlucHV0TXMgPSBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkuc3RhcnRPZih1bml0cykudmFsdWVPZigpIDw9IGlucHV0TXMgJiYgaW5wdXRNcyA8PSB0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpLnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzU2FtZU9yQWZ0ZXIoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShpbnB1dCwgdW5pdHMpIHx8IHRoaXMuaXNBZnRlcihpbnB1dCwgdW5pdHMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzU2FtZU9yQmVmb3JlKGlucHV0LCB1bml0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoaW5wdXQsIHVuaXRzKSB8fCB0aGlzLmlzQmVmb3JlKGlucHV0LCB1bml0cyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGlmZihpbnB1dCwgdW5pdHMsIGFzRmxvYXQpIHtcbiAgICAgICAgdmFyIHRoYXQsIHpvbmVEZWx0YSwgZGVsdGEsIG91dHB1dDtcblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhhdCA9IGNsb25lV2l0aE9mZnNldChpbnB1dCwgdGhpcyk7XG5cbiAgICAgICAgaWYgKCF0aGF0LmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHpvbmVEZWx0YSA9ICh0aGF0LnV0Y09mZnNldCgpIC0gdGhpcy51dGNPZmZzZXQoKSkgKiA2ZTQ7XG5cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMTI7YnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpO2JyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMzticmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDFlMzticmVhazsgLy8gMTAwMFxuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gNmU0O2JyZWFrOyAvLyAxMDAwICogNjBcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyAzNmU1O2JyZWFrOyAvLyAxMDAwICogNjAgKiA2MFxuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQgLSB6b25lRGVsdGEpIC8gODY0ZTU7YnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQsIG5lZ2F0ZSBkc3RcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCAtIHpvbmVEZWx0YSkgLyA2MDQ4ZTU7YnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQgKiA3LCBuZWdhdGUgZHN0XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIG91dHB1dCA9IHRoaXMgLSB0aGF0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFzRmxvYXQgPyBvdXRwdXQgOiBhYnNGbG9vcihvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoRGlmZihhLCBiKSB7XG4gICAgICAgIC8vIGRpZmZlcmVuY2UgaW4gbW9udGhzXG4gICAgICAgIHZhciB3aG9sZU1vbnRoRGlmZiA9IChiLnllYXIoKSAtIGEueWVhcigpKSAqIDEyICsgKGIubW9udGgoKSAtIGEubW9udGgoKSksXG5cbiAgICAgICAgLy8gYiBpcyBpbiAoYW5jaG9yIC0gMSBtb250aCwgYW5jaG9yICsgMSBtb250aClcbiAgICAgICAgYW5jaG9yID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiwgJ21vbnRocycpLFxuICAgICAgICAgICAgYW5jaG9yMixcbiAgICAgICAgICAgIGFkanVzdDtcblxuICAgICAgICBpZiAoYiAtIGFuY2hvciA8IDApIHtcbiAgICAgICAgICAgIGFuY2hvcjIgPSBhLmNsb25lKCkuYWRkKHdob2xlTW9udGhEaWZmIC0gMSwgJ21vbnRocycpO1xuICAgICAgICAgICAgLy8gbGluZWFyIGFjcm9zcyB0aGUgbW9udGhcbiAgICAgICAgICAgIGFkanVzdCA9IChiIC0gYW5jaG9yKSAvIChhbmNob3IgLSBhbmNob3IyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFuY2hvcjIgPSBhLmNsb25lKCkuYWRkKHdob2xlTW9udGhEaWZmICsgMSwgJ21vbnRocycpO1xuICAgICAgICAgICAgLy8gbGluZWFyIGFjcm9zcyB0aGUgbW9udGhcbiAgICAgICAgICAgIGFkanVzdCA9IChiIC0gYW5jaG9yKSAvIChhbmNob3IyIC0gYW5jaG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vY2hlY2sgZm9yIG5lZ2F0aXZlIHplcm8sIHJldHVybiB6ZXJvIGlmIG5lZ2F0aXZlIHplcm9cbiAgICAgICAgcmV0dXJuIC0od2hvbGVNb250aERpZmYgKyBhZGp1c3QpIHx8IDA7XG4gICAgfVxuXG4gICAgaG9va3MuZGVmYXVsdEZvcm1hdCA9ICdZWVlZLU1NLUREVEhIOm1tOnNzWic7XG4gICAgaG9va3MuZGVmYXVsdEZvcm1hdFV0YyA9ICdZWVlZLU1NLUREVEhIOm1tOnNzW1pdJztcblxuICAgIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmxvY2FsZSgnZW4nKS5mb3JtYXQoJ2RkZCBNTU0gREQgWVlZWSBISDptbTpzcyBbR01UXVpaJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9JU09TdHJpbmcoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtID0gdGhpcy5jbG9uZSgpLnV0YygpO1xuICAgICAgICBpZiAobS55ZWFyKCkgPCAwIHx8IG0ueWVhcigpID4gOTk5OSkge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE1vbWVudChtLCAnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpKSB7XG4gICAgICAgICAgICAvLyBuYXRpdmUgaW1wbGVtZW50YXRpb24gaXMgfjUweCBmYXN0ZXIsIHVzZSBpdCB3aGVuIHdlIGNhblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9EYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0TW9tZW50KG0sICdZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgaHVtYW4gcmVhZGFibGUgcmVwcmVzZW50YXRpb24gb2YgYSBtb21lbnQgdGhhdCBjYW5cbiAgICAgKiBhbHNvIGJlIGV2YWx1YXRlZCB0byBnZXQgYSBuZXcgbW9tZW50IHdoaWNoIGlzIHRoZSBzYW1lXG4gICAgICpcbiAgICAgKiBAbGluayBodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QvZG9jcy9hcGkvdXRpbC5odG1sI3V0aWxfY3VzdG9tX2luc3BlY3RfZnVuY3Rpb25fb25fb2JqZWN0c1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluc3BlY3QoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnbW9tZW50LmludmFsaWQoLyogJyArIHRoaXMuX2kgKyAnICovKSc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZ1bmMgPSAnbW9tZW50JztcbiAgICAgICAgdmFyIHpvbmUgPSAnJztcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9jYWwoKSkge1xuICAgICAgICAgICAgZnVuYyA9IHRoaXMudXRjT2Zmc2V0KCkgPT09IDAgPyAnbW9tZW50LnV0YycgOiAnbW9tZW50LnBhcnNlWm9uZSc7XG4gICAgICAgICAgICB6b25lID0gJ1onO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcmVmaXggPSAnWycgKyBmdW5jICsgJyhcIl0nO1xuICAgICAgICB2YXIgeWVhciA9IDAgPD0gdGhpcy55ZWFyKCkgJiYgdGhpcy55ZWFyKCkgPD0gOTk5OSA/ICdZWVlZJyA6ICdZWVlZWVknO1xuICAgICAgICB2YXIgZGF0ZXRpbWUgPSAnLU1NLUREW1RdSEg6bW06c3MuU1NTJztcbiAgICAgICAgdmFyIHN1ZmZpeCA9IHpvbmUgKyAnW1wiKV0nO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdChwcmVmaXggKyB5ZWFyICsgZGF0ZXRpbWUgKyBzdWZmaXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZvcm1hdChpbnB1dFN0cmluZykge1xuICAgICAgICBpZiAoIWlucHV0U3RyaW5nKSB7XG4gICAgICAgICAgICBpbnB1dFN0cmluZyA9IHRoaXMuaXNVdGMoKSA/IGhvb2tzLmRlZmF1bHRGb3JtYXRVdGMgOiBob29rcy5kZWZhdWx0Rm9ybWF0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBvdXRwdXQgPSBmb3JtYXRNb21lbnQodGhpcywgaW5wdXRTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkucG9zdGZvcm1hdChvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb20odGltZSwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgKGlzTW9tZW50KHRpbWUpICYmIHRpbWUuaXNWYWxpZCgpIHx8IGNyZWF0ZUxvY2FsKHRpbWUpLmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih7IHRvOiB0aGlzLCBmcm9tOiB0aW1lIH0pLmxvY2FsZSh0aGlzLmxvY2FsZSgpKS5odW1hbml6ZSghd2l0aG91dFN1ZmZpeCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb21Ob3cod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvKHRpbWUsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpICYmIChpc01vbWVudCh0aW1lKSAmJiB0aW1lLmlzVmFsaWQoKSB8fCBjcmVhdGVMb2NhbCh0aW1lKS5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oeyBmcm9tOiB0aGlzLCB0bzogdGltZSB9KS5sb2NhbGUodGhpcy5sb2NhbGUoKSkuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b05vdyh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIC8vIElmIHBhc3NlZCBhIGxvY2FsZSBrZXksIGl0IHdpbGwgc2V0IHRoZSBsb2NhbGUgZm9yIHRoaXNcbiAgICAvLyBpbnN0YW5jZS4gIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIGxvY2FsZSBjb25maWd1cmF0aW9uXG4gICAgLy8gdmFyaWFibGVzIGZvciB0aGlzIGluc3RhbmNlLlxuICAgIGZ1bmN0aW9uIGxvY2FsZShrZXkpIHtcbiAgICAgICAgdmFyIG5ld0xvY2FsZURhdGE7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlLl9hYmJyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3TG9jYWxlRGF0YSA9IGdldExvY2FsZShrZXkpO1xuICAgICAgICAgICAgaWYgKG5ld0xvY2FsZURhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvY2FsZSA9IG5ld0xvY2FsZURhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBsYW5nID0gZGVwcmVjYXRlKCdtb21lbnQoKS5sYW5nKCkgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCwgdXNlIG1vbWVudCgpLmxvY2FsZURhdGEoKSB0byBnZXQgdGhlIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb24uIFVzZSBtb21lbnQoKS5sb2NhbGUoKSB0byBjaGFuZ2UgbGFuZ3VhZ2VzLicsIGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGUoa2V5KTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdGFydE9mKHVuaXRzKSB7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICAvLyB0aGUgZm9sbG93aW5nIHN3aXRjaCBpbnRlbnRpb25hbGx5IG9taXRzIGJyZWFrIGtleXdvcmRzXG4gICAgICAgIC8vIHRvIHV0aWxpemUgZmFsbGluZyB0aHJvdWdoIHRoZSBjYXNlcy5cbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5tb250aCgwKTtcbiAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSgxKTtcbiAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgY2FzZSAnaXNvV2Vlayc6XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5ob3VycygwKTtcbiAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIHRoaXMubWludXRlcygwKTtcbiAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWNvbmRzKDApO1xuICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICB0aGlzLm1pbGxpc2Vjb25kcygwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdlZWtzIGFyZSBhIHNwZWNpYWwgY2FzZVxuICAgICAgICBpZiAodW5pdHMgPT09ICd3ZWVrJykge1xuICAgICAgICAgICAgdGhpcy53ZWVrZGF5KDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ2lzb1dlZWsnKSB7XG4gICAgICAgICAgICB0aGlzLmlzb1dlZWtkYXkoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBxdWFydGVycyBhcmUgYWxzbyBzcGVjaWFsXG4gICAgICAgIGlmICh1bml0cyA9PT0gJ3F1YXJ0ZXInKSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoKE1hdGguZmxvb3IodGhpcy5tb250aCgpIC8gMykgKiAzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVuZE9mKHVuaXRzKSB7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAodW5pdHMgPT09IHVuZGVmaW5lZCB8fCB1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAnZGF0ZScgaXMgYW4gYWxpYXMgZm9yICdkYXknLCBzbyBpdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhcyBzdWNoLlxuICAgICAgICBpZiAodW5pdHMgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgdW5pdHMgPSAnZGF5JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0T2YodW5pdHMpLmFkZCgxLCB1bml0cyA9PT0gJ2lzb1dlZWsnID8gJ3dlZWsnIDogdW5pdHMpLnN1YnRyYWN0KDEsICdtcycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbHVlT2YoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kLnZhbHVlT2YoKSAtICh0aGlzLl9vZmZzZXQgfHwgMCkgKiA2MDAwMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1bml4KCkge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKSAvIDEwMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvRGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0FycmF5KCkge1xuICAgICAgICB2YXIgbSA9IHRoaXM7XG4gICAgICAgIHJldHVybiBbbS55ZWFyKCksIG0ubW9udGgoKSwgbS5kYXRlKCksIG0uaG91cigpLCBtLm1pbnV0ZSgpLCBtLnNlY29uZCgpLCBtLm1pbGxpc2Vjb25kKCldO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvT2JqZWN0KCkge1xuICAgICAgICB2YXIgbSA9IHRoaXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB5ZWFyczogbS55ZWFyKCksXG4gICAgICAgICAgICBtb250aHM6IG0ubW9udGgoKSxcbiAgICAgICAgICAgIGRhdGU6IG0uZGF0ZSgpLFxuICAgICAgICAgICAgaG91cnM6IG0uaG91cnMoKSxcbiAgICAgICAgICAgIG1pbnV0ZXM6IG0ubWludXRlcygpLFxuICAgICAgICAgICAgc2Vjb25kczogbS5zZWNvbmRzKCksXG4gICAgICAgICAgICBtaWxsaXNlY29uZHM6IG0ubWlsbGlzZWNvbmRzKClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0pTT04oKSB7XG4gICAgICAgIC8vIG5ldyBEYXRlKE5hTikudG9KU09OKCkgPT09IG51bGxcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy50b0lTT1N0cmluZygpIDogbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1ZhbGlkJDIoKSB7XG4gICAgICAgIHJldHVybiBpc1ZhbGlkKHRoaXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNpbmdGbGFncygpIHtcbiAgICAgICAgcmV0dXJuIGV4dGVuZCh7fSwgZ2V0UGFyc2luZ0ZsYWdzKHRoaXMpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbnZhbGlkQXQoKSB7XG4gICAgICAgIHJldHVybiBnZXRQYXJzaW5nRmxhZ3ModGhpcykub3ZlcmZsb3c7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRpb25EYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaW5wdXQ6IHRoaXMuX2ksXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuX2YsXG4gICAgICAgICAgICBsb2NhbGU6IHRoaXMuX2xvY2FsZSxcbiAgICAgICAgICAgIGlzVVRDOiB0aGlzLl9pc1VUQyxcbiAgICAgICAgICAgIHN0cmljdDogdGhpcy5fc3RyaWN0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydnZycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndlZWtZZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ0dHJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvV2Vla1llYXIoKSAlIDEwMDtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4odG9rZW4sIGdldHRlcikge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbigwLCBbdG9rZW4sIHRva2VuLmxlbmd0aF0sIDAsIGdldHRlcik7XG4gICAgfVxuXG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignZ2dnZycsICd3ZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ2dnZ2dnJywgJ3dlZWtZZWFyJyk7XG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignR0dHRycsICdpc29XZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ0dHR0dHJywgJ2lzb1dlZWtZZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3dlZWtZZWFyJywgJ2dnJyk7XG4gICAgYWRkVW5pdEFsaWFzKCdpc29XZWVrWWVhcicsICdHRycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnd2Vla1llYXInLCAxKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWtZZWFyJywgMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdHJywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2cnLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignR0cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignZ2cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignR0dHRycsIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdnZ2dnJywgbWF0Y2gxdG80LCBtYXRjaDQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHR0dHJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2dnZ2dnJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydnZ2dnJywgJ2dnZ2dnJywgJ0dHR0cnLCAnR0dHR0cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW4uc3Vic3RyKDAsIDIpXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZ2cnLCAnR0cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW5dID0gaG9va3MucGFyc2VUd29EaWdpdFllYXIoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2Vla1llYXIoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGdldFNldFdlZWtZZWFySGVscGVyLmNhbGwodGhpcywgaW5wdXQsIHRoaXMud2VlaygpLCB0aGlzLndlZWtkYXkoKSwgdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93LCB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3kpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldElTT1dlZWtZZWFyKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKHRoaXMsIGlucHV0LCB0aGlzLmlzb1dlZWsoKSwgdGhpcy5pc29XZWVrZGF5KCksIDEsIDQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldElTT1dlZWtzSW5ZZWFyKCkge1xuICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy55ZWFyKCksIDEsIDQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFdlZWtzSW5ZZWFyKCkge1xuICAgICAgICB2YXIgd2Vla0luZm8gPSB0aGlzLmxvY2FsZURhdGEoKS5fd2VlaztcbiAgICAgICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMueWVhcigpLCB3ZWVrSW5mby5kb3csIHdlZWtJbmZvLmRveSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2Vla1llYXJIZWxwZXIoaW5wdXQsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrc1RhcmdldDtcbiAgICAgICAgaWYgKGlucHV0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB3ZWVrT2ZZZWFyKHRoaXMsIGRvdywgZG95KS55ZWFyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2Vla3NUYXJnZXQgPSB3ZWVrc0luWWVhcihpbnB1dCwgZG93LCBkb3kpO1xuICAgICAgICAgICAgaWYgKHdlZWsgPiB3ZWVrc1RhcmdldCkge1xuICAgICAgICAgICAgICAgIHdlZWsgPSB3ZWVrc1RhcmdldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzZXRXZWVrQWxsLmNhbGwodGhpcywgaW5wdXQsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFdlZWtBbGwod2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSB7XG4gICAgICAgIHZhciBkYXlPZlllYXJEYXRhID0gZGF5T2ZZZWFyRnJvbVdlZWtzKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSksXG4gICAgICAgICAgICBkYXRlID0gY3JlYXRlVVRDRGF0ZShkYXlPZlllYXJEYXRhLnllYXIsIDAsIGRheU9mWWVhckRhdGEuZGF5T2ZZZWFyKTtcblxuICAgICAgICB0aGlzLnllYXIoZGF0ZS5nZXRVVENGdWxsWWVhcigpKTtcbiAgICAgICAgdGhpcy5tb250aChkYXRlLmdldFVUQ01vbnRoKCkpO1xuICAgICAgICB0aGlzLmRhdGUoZGF0ZS5nZXRVVENEYXRlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignUScsIDAsICdRbycsICdxdWFydGVyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3F1YXJ0ZXInLCAnUScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgncXVhcnRlcicsIDcpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignUScsIG1hdGNoMSk7XG4gICAgYWRkUGFyc2VUb2tlbignUScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbTU9OVEhdID0gKHRvSW50KGlucHV0KSAtIDEpICogMztcbiAgICB9KTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldFF1YXJ0ZXIoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyBNYXRoLmNlaWwoKHRoaXMubW9udGgoKSArIDEpIC8gMykgOiB0aGlzLm1vbnRoKChpbnB1dCAtIDEpICogMyArIHRoaXMubW9udGgoKSAlIDMpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdEJywgWydERCcsIDJdLCAnRG8nLCAnZGF0ZScpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdkYXRlJywgJ0QnKTtcblxuICAgIC8vIFBSSU9ST0lUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnZGF0ZScsIDkpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignRCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignREQnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignRG8nLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgXCJvcmRpbmFsUGFyc2VcIiBmYWxsYmFjayBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gICAgICAgIHJldHVybiBpc1N0cmljdCA/IGxvY2FsZS5fZGF5T2ZNb250aE9yZGluYWxQYXJzZSB8fCBsb2NhbGUuX29yZGluYWxQYXJzZSA6IGxvY2FsZS5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQ7XG4gICAgfSk7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsnRCcsICdERCddLCBEQVRFKTtcbiAgICBhZGRQYXJzZVRva2VuKCdEbycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbREFURV0gPSB0b0ludChpbnB1dC5tYXRjaChtYXRjaDF0bzIpWzBdLCAxMCk7XG4gICAgfSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0RGF5T2ZNb250aCA9IG1ha2VHZXRTZXQoJ0RhdGUnLCB0cnVlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdEREQnLCBbJ0REREQnLCAzXSwgJ0RERG8nLCAnZGF5T2ZZZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RheU9mWWVhcicsICdEREQnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdkYXlPZlllYXInLCA0KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ0RERCcsIG1hdGNoMXRvMyk7XG4gICAgYWRkUmVnZXhUb2tlbignRERERCcsIG1hdGNoMyk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ0RERCcsICdEREREJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2RheU9mWWVhciA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldERheU9mWWVhcihpbnB1dCkge1xuICAgICAgICB2YXIgZGF5T2ZZZWFyID0gTWF0aC5yb3VuZCgodGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ2RheScpIC0gdGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ3llYXInKSkgLyA4NjRlNSkgKyAxO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IGRheU9mWWVhciA6IHRoaXMuYWRkKGlucHV0IC0gZGF5T2ZZZWFyLCAnZCcpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdtJywgWydtbScsIDJdLCAwLCAnbWludXRlJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ21pbnV0ZScsICdtJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdtaW51dGUnLCAxNCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdtJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdtbScsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRQYXJzZVRva2VuKFsnbScsICdtbSddLCBNSU5VVEUpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldE1pbnV0ZSA9IG1ha2VHZXRTZXQoJ01pbnV0ZXMnLCBmYWxzZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbigncycsIFsnc3MnLCAyXSwgMCwgJ3NlY29uZCcpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdzZWNvbmQnLCAncycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnc2Vjb25kJywgMTUpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbigncycsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignc3MnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUGFyc2VUb2tlbihbJ3MnLCAnc3MnXSwgU0VDT05EKTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRTZWNvbmQgPSBtYWtlR2V0U2V0KCdTZWNvbmRzJywgZmFsc2UpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1MnLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMDApO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTUycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTUycsIDNdLCAwLCAnbWlsbGlzZWNvbmQnKTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1MnLCA0XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTUycsIDVdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1MnLCA2XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTU1MnLCA3XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTUycsIDhdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTU1MnLCA5XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDAwMDtcbiAgICB9KTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbWlsbGlzZWNvbmQnLCAnbXMnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21pbGxpc2Vjb25kJywgMTYpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignUycsIG1hdGNoMXRvMywgbWF0Y2gxKTtcbiAgICBhZGRSZWdleFRva2VuKCdTUycsIG1hdGNoMXRvMywgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdTU1MnLCBtYXRjaDF0bzMsIG1hdGNoMyk7XG5cbiAgICB2YXIgdG9rZW47XG4gICAgZm9yICh0b2tlbiA9ICdTU1NTJzsgdG9rZW4ubGVuZ3RoIDw9IDk7IHRva2VuICs9ICdTJykge1xuICAgICAgICBhZGRSZWdleFRva2VuKHRva2VuLCBtYXRjaFVuc2lnbmVkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU1zKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNSUxMSVNFQ09ORF0gPSB0b0ludCgoJzAuJyArIGlucHV0KSAqIDEwMDApO1xuICAgIH1cblxuICAgIGZvciAodG9rZW4gPSAnUyc7IHRva2VuLmxlbmd0aCA8PSA5OyB0b2tlbiArPSAnUycpIHtcbiAgICAgICAgYWRkUGFyc2VUb2tlbih0b2tlbiwgcGFyc2VNcyk7XG4gICAgfVxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRNaWxsaXNlY29uZCA9IG1ha2VHZXRTZXQoJ01pbGxpc2Vjb25kcycsIGZhbHNlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCd6JywgMCwgMCwgJ3pvbmVBYmJyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3p6JywgMCwgMCwgJ3pvbmVOYW1lJyk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRab25lQWJicigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gJ1VUQycgOiAnJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRab25lTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gJ0Nvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lJyA6ICcnO1xuICAgIH1cblxuICAgIHZhciBwcm90byA9IE1vbWVudC5wcm90b3R5cGU7XG5cbiAgICBwcm90by5hZGQgPSBhZGQ7XG4gICAgcHJvdG8uY2FsZW5kYXIgPSBjYWxlbmRhciQxO1xuICAgIHByb3RvLmNsb25lID0gY2xvbmU7XG4gICAgcHJvdG8uZGlmZiA9IGRpZmY7XG4gICAgcHJvdG8uZW5kT2YgPSBlbmRPZjtcbiAgICBwcm90by5mb3JtYXQgPSBmb3JtYXQ7XG4gICAgcHJvdG8uZnJvbSA9IGZyb207XG4gICAgcHJvdG8uZnJvbU5vdyA9IGZyb21Ob3c7XG4gICAgcHJvdG8udG8gPSB0bztcbiAgICBwcm90by50b05vdyA9IHRvTm93O1xuICAgIHByb3RvLmdldCA9IHN0cmluZ0dldDtcbiAgICBwcm90by5pbnZhbGlkQXQgPSBpbnZhbGlkQXQ7XG4gICAgcHJvdG8uaXNBZnRlciA9IGlzQWZ0ZXI7XG4gICAgcHJvdG8uaXNCZWZvcmUgPSBpc0JlZm9yZTtcbiAgICBwcm90by5pc0JldHdlZW4gPSBpc0JldHdlZW47XG4gICAgcHJvdG8uaXNTYW1lID0gaXNTYW1lO1xuICAgIHByb3RvLmlzU2FtZU9yQWZ0ZXIgPSBpc1NhbWVPckFmdGVyO1xuICAgIHByb3RvLmlzU2FtZU9yQmVmb3JlID0gaXNTYW1lT3JCZWZvcmU7XG4gICAgcHJvdG8uaXNWYWxpZCA9IGlzVmFsaWQkMjtcbiAgICBwcm90by5sYW5nID0gbGFuZztcbiAgICBwcm90by5sb2NhbGUgPSBsb2NhbGU7XG4gICAgcHJvdG8ubG9jYWxlRGF0YSA9IGxvY2FsZURhdGE7XG4gICAgcHJvdG8ubWF4ID0gcHJvdG90eXBlTWF4O1xuICAgIHByb3RvLm1pbiA9IHByb3RvdHlwZU1pbjtcbiAgICBwcm90by5wYXJzaW5nRmxhZ3MgPSBwYXJzaW5nRmxhZ3M7XG4gICAgcHJvdG8uc2V0ID0gc3RyaW5nU2V0O1xuICAgIHByb3RvLnN0YXJ0T2YgPSBzdGFydE9mO1xuICAgIHByb3RvLnN1YnRyYWN0ID0gc3VidHJhY3Q7XG4gICAgcHJvdG8udG9BcnJheSA9IHRvQXJyYXk7XG4gICAgcHJvdG8udG9PYmplY3QgPSB0b09iamVjdDtcbiAgICBwcm90by50b0RhdGUgPSB0b0RhdGU7XG4gICAgcHJvdG8udG9JU09TdHJpbmcgPSB0b0lTT1N0cmluZztcbiAgICBwcm90by5pbnNwZWN0ID0gaW5zcGVjdDtcbiAgICBwcm90by50b0pTT04gPSB0b0pTT047XG4gICAgcHJvdG8udG9TdHJpbmcgPSB0b1N0cmluZztcbiAgICBwcm90by51bml4ID0gdW5peDtcbiAgICBwcm90by52YWx1ZU9mID0gdmFsdWVPZjtcbiAgICBwcm90by5jcmVhdGlvbkRhdGEgPSBjcmVhdGlvbkRhdGE7XG5cbiAgICAvLyBZZWFyXG4gICAgcHJvdG8ueWVhciA9IGdldFNldFllYXI7XG4gICAgcHJvdG8uaXNMZWFwWWVhciA9IGdldElzTGVhcFllYXI7XG5cbiAgICAvLyBXZWVrIFllYXJcbiAgICBwcm90by53ZWVrWWVhciA9IGdldFNldFdlZWtZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtZZWFyID0gZ2V0U2V0SVNPV2Vla1llYXI7XG5cbiAgICAvLyBRdWFydGVyXG4gICAgcHJvdG8ucXVhcnRlciA9IHByb3RvLnF1YXJ0ZXJzID0gZ2V0U2V0UXVhcnRlcjtcblxuICAgIC8vIE1vbnRoXG4gICAgcHJvdG8ubW9udGggPSBnZXRTZXRNb250aDtcbiAgICBwcm90by5kYXlzSW5Nb250aCA9IGdldERheXNJbk1vbnRoO1xuXG4gICAgLy8gV2Vla1xuICAgIHByb3RvLndlZWsgPSBwcm90by53ZWVrcyA9IGdldFNldFdlZWs7XG4gICAgcHJvdG8uaXNvV2VlayA9IHByb3RvLmlzb1dlZWtzID0gZ2V0U2V0SVNPV2VlaztcbiAgICBwcm90by53ZWVrc0luWWVhciA9IGdldFdlZWtzSW5ZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtzSW5ZZWFyID0gZ2V0SVNPV2Vla3NJblllYXI7XG5cbiAgICAvLyBEYXlcbiAgICBwcm90by5kYXRlID0gZ2V0U2V0RGF5T2ZNb250aDtcbiAgICBwcm90by5kYXkgPSBwcm90by5kYXlzID0gZ2V0U2V0RGF5T2ZXZWVrO1xuICAgIHByb3RvLndlZWtkYXkgPSBnZXRTZXRMb2NhbGVEYXlPZldlZWs7XG4gICAgcHJvdG8uaXNvV2Vla2RheSA9IGdldFNldElTT0RheU9mV2VlaztcbiAgICBwcm90by5kYXlPZlllYXIgPSBnZXRTZXREYXlPZlllYXI7XG5cbiAgICAvLyBIb3VyXG4gICAgcHJvdG8uaG91ciA9IHByb3RvLmhvdXJzID0gZ2V0U2V0SG91cjtcblxuICAgIC8vIE1pbnV0ZVxuICAgIHByb3RvLm1pbnV0ZSA9IHByb3RvLm1pbnV0ZXMgPSBnZXRTZXRNaW51dGU7XG5cbiAgICAvLyBTZWNvbmRcbiAgICBwcm90by5zZWNvbmQgPSBwcm90by5zZWNvbmRzID0gZ2V0U2V0U2Vjb25kO1xuXG4gICAgLy8gTWlsbGlzZWNvbmRcbiAgICBwcm90by5taWxsaXNlY29uZCA9IHByb3RvLm1pbGxpc2Vjb25kcyA9IGdldFNldE1pbGxpc2Vjb25kO1xuXG4gICAgLy8gT2Zmc2V0XG4gICAgcHJvdG8udXRjT2Zmc2V0ID0gZ2V0U2V0T2Zmc2V0O1xuICAgIHByb3RvLnV0YyA9IHNldE9mZnNldFRvVVRDO1xuICAgIHByb3RvLmxvY2FsID0gc2V0T2Zmc2V0VG9Mb2NhbDtcbiAgICBwcm90by5wYXJzZVpvbmUgPSBzZXRPZmZzZXRUb1BhcnNlZE9mZnNldDtcbiAgICBwcm90by5oYXNBbGlnbmVkSG91ck9mZnNldCA9IGhhc0FsaWduZWRIb3VyT2Zmc2V0O1xuICAgIHByb3RvLmlzRFNUID0gaXNEYXlsaWdodFNhdmluZ1RpbWU7XG4gICAgcHJvdG8uaXNMb2NhbCA9IGlzTG9jYWw7XG4gICAgcHJvdG8uaXNVdGNPZmZzZXQgPSBpc1V0Y09mZnNldDtcbiAgICBwcm90by5pc1V0YyA9IGlzVXRjO1xuICAgIHByb3RvLmlzVVRDID0gaXNVdGM7XG5cbiAgICAvLyBUaW1lem9uZVxuICAgIHByb3RvLnpvbmVBYmJyID0gZ2V0Wm9uZUFiYnI7XG4gICAgcHJvdG8uem9uZU5hbWUgPSBnZXRab25lTmFtZTtcblxuICAgIC8vIERlcHJlY2F0aW9uc1xuICAgIHByb3RvLmRhdGVzID0gZGVwcmVjYXRlKCdkYXRlcyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgZGF0ZSBpbnN0ZWFkLicsIGdldFNldERheU9mTW9udGgpO1xuICAgIHByb3RvLm1vbnRocyA9IGRlcHJlY2F0ZSgnbW9udGhzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb250aCBpbnN0ZWFkJywgZ2V0U2V0TW9udGgpO1xuICAgIHByb3RvLnllYXJzID0gZGVwcmVjYXRlKCd5ZWFycyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgeWVhciBpbnN0ZWFkJywgZ2V0U2V0WWVhcik7XG4gICAgcHJvdG8uem9uZSA9IGRlcHJlY2F0ZSgnbW9tZW50KCkuem9uZSBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50KCkudXRjT2Zmc2V0IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3Mvem9uZS8nLCBnZXRTZXRab25lKTtcbiAgICBwcm90by5pc0RTVFNoaWZ0ZWQgPSBkZXByZWNhdGUoJ2lzRFNUU2hpZnRlZCBpcyBkZXByZWNhdGVkLiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kc3Qtc2hpZnRlZC8gZm9yIG1vcmUgaW5mb3JtYXRpb24nLCBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWQpO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlVW5peChpbnB1dCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwoaW5wdXQgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJblpvbmUoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpLnBhcnNlWm9uZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZVBhcnNlUG9zdEZvcm1hdChzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8kMSA9IExvY2FsZS5wcm90b3R5cGU7XG5cbiAgICBwcm90byQxLmNhbGVuZGFyID0gY2FsZW5kYXI7XG4gICAgcHJvdG8kMS5sb25nRGF0ZUZvcm1hdCA9IGxvbmdEYXRlRm9ybWF0O1xuICAgIHByb3RvJDEuaW52YWxpZERhdGUgPSBpbnZhbGlkRGF0ZTtcbiAgICBwcm90byQxLm9yZGluYWwgPSBvcmRpbmFsO1xuICAgIHByb3RvJDEucHJlcGFyc2UgPSBwcmVQYXJzZVBvc3RGb3JtYXQ7XG4gICAgcHJvdG8kMS5wb3N0Zm9ybWF0ID0gcHJlUGFyc2VQb3N0Rm9ybWF0O1xuICAgIHByb3RvJDEucmVsYXRpdmVUaW1lID0gcmVsYXRpdmVUaW1lO1xuICAgIHByb3RvJDEucGFzdEZ1dHVyZSA9IHBhc3RGdXR1cmU7XG4gICAgcHJvdG8kMS5zZXQgPSBzZXQ7XG5cbiAgICAvLyBNb250aFxuICAgIHByb3RvJDEubW9udGhzID0gbG9jYWxlTW9udGhzO1xuICAgIHByb3RvJDEubW9udGhzU2hvcnQgPSBsb2NhbGVNb250aHNTaG9ydDtcbiAgICBwcm90byQxLm1vbnRoc1BhcnNlID0gbG9jYWxlTW9udGhzUGFyc2U7XG4gICAgcHJvdG8kMS5tb250aHNSZWdleCA9IG1vbnRoc1JlZ2V4O1xuICAgIHByb3RvJDEubW9udGhzU2hvcnRSZWdleCA9IG1vbnRoc1Nob3J0UmVnZXg7XG5cbiAgICAvLyBXZWVrXG4gICAgcHJvdG8kMS53ZWVrID0gbG9jYWxlV2VlaztcbiAgICBwcm90byQxLmZpcnN0RGF5T2ZZZWFyID0gbG9jYWxlRmlyc3REYXlPZlllYXI7XG4gICAgcHJvdG8kMS5maXJzdERheU9mV2VlayA9IGxvY2FsZUZpcnN0RGF5T2ZXZWVrO1xuXG4gICAgLy8gRGF5IG9mIFdlZWtcbiAgICBwcm90byQxLndlZWtkYXlzID0gbG9jYWxlV2Vla2RheXM7XG4gICAgcHJvdG8kMS53ZWVrZGF5c01pbiA9IGxvY2FsZVdlZWtkYXlzTWluO1xuICAgIHByb3RvJDEud2Vla2RheXNTaG9ydCA9IGxvY2FsZVdlZWtkYXlzU2hvcnQ7XG4gICAgcHJvdG8kMS53ZWVrZGF5c1BhcnNlID0gbG9jYWxlV2Vla2RheXNQYXJzZTtcblxuICAgIHByb3RvJDEud2Vla2RheXNSZWdleCA9IHdlZWtkYXlzUmVnZXg7XG4gICAgcHJvdG8kMS53ZWVrZGF5c1Nob3J0UmVnZXggPSB3ZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgcHJvdG8kMS53ZWVrZGF5c01pblJlZ2V4ID0gd2Vla2RheXNNaW5SZWdleDtcblxuICAgIC8vIEhvdXJzXG4gICAgcHJvdG8kMS5pc1BNID0gbG9jYWxlSXNQTTtcbiAgICBwcm90byQxLm1lcmlkaWVtID0gbG9jYWxlTWVyaWRpZW07XG5cbiAgICBmdW5jdGlvbiBnZXQkMShmb3JtYXQsIGluZGV4LCBmaWVsZCwgc2V0dGVyKSB7XG4gICAgICAgIHZhciBsb2NhbGUgPSBnZXRMb2NhbGUoKTtcbiAgICAgICAgdmFyIHV0YyA9IGNyZWF0ZVVUQygpLnNldChzZXR0ZXIsIGluZGV4KTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZVtmaWVsZF0odXRjLCBmb3JtYXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RNb250aHNJbXBsKGZvcm1hdCwgaW5kZXgsIGZpZWxkKSB7XG4gICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcblxuICAgICAgICBpZiAoaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldCQxKGZvcm1hdCwgaW5kZXgsIGZpZWxkLCAnbW9udGgnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpO1xuICAgICAgICB2YXIgb3V0ID0gW107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICBvdXRbaV0gPSBnZXQkMShmb3JtYXQsIGksIGZpZWxkLCAnbW9udGgnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cblxuICAgIC8vICgpXG4gICAgLy8gKDUpXG4gICAgLy8gKGZtdCwgNSlcbiAgICAvLyAoZm10KVxuICAgIC8vICh0cnVlKVxuICAgIC8vICh0cnVlLCA1KVxuICAgIC8vICh0cnVlLCBmbXQsIDUpXG4gICAgLy8gKHRydWUsIGZtdClcbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgZmllbGQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsb2NhbGVTb3J0ZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGxvY2FsZVNvcnRlZDtcbiAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgbG9jYWxlU29ydGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbG9jYWxlID0gZ2V0TG9jYWxlKCksXG4gICAgICAgICAgICBzaGlmdCA9IGxvY2FsZVNvcnRlZCA/IGxvY2FsZS5fd2Vlay5kb3cgOiAwO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0JDEoZm9ybWF0LCAoaW5kZXggKyBzaGlmdCkgJSA3LCBmaWVsZCwgJ2RheScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGk7XG4gICAgICAgIHZhciBvdXQgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgb3V0W2ldID0gZ2V0JDEoZm9ybWF0LCAoaSArIHNoaWZ0KSAlIDcsIGZpZWxkLCAnZGF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzKGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RNb250aHNJbXBsKGZvcm1hdCwgaW5kZXgsICdtb250aHMnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzU2hvcnQoZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdE1vbnRoc0ltcGwoZm9ybWF0LCBpbmRleCwgJ21vbnRoc1Nob3J0Jyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5cycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c1Nob3J0KGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5c1Nob3J0Jyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzTWluKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5c01pbicpO1xuICAgIH1cblxuICAgIGdldFNldEdsb2JhbExvY2FsZSgnZW4nLCB7XG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSh0aHxzdHxuZHxyZCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiBvcmRpbmFsKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSB0b0ludChudW1iZXIgJSAxMDAgLyAxMCkgPT09IDEgPyAndGgnIDogYiA9PT0gMSA/ICdzdCcgOiBiID09PSAyID8gJ25kJyA6IGIgPT09IDMgPyAncmQnIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNpZGUgZWZmZWN0IGltcG9ydHNcbiAgICBob29rcy5sYW5nID0gZGVwcmVjYXRlKCdtb21lbnQubGFuZyBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZSBpbnN0ZWFkLicsIGdldFNldEdsb2JhbExvY2FsZSk7XG4gICAgaG9va3MubGFuZ0RhdGEgPSBkZXByZWNhdGUoJ21vbWVudC5sYW5nRGF0YSBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZURhdGEgaW5zdGVhZC4nLCBnZXRMb2NhbGUpO1xuXG4gICAgdmFyIG1hdGhBYnMgPSBNYXRoLmFicztcblxuICAgIGZ1bmN0aW9uIGFicygpIHtcbiAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9kYXRhO1xuXG4gICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyA9IG1hdGhBYnModGhpcy5fbWlsbGlzZWNvbmRzKTtcbiAgICAgICAgdGhpcy5fZGF5cyA9IG1hdGhBYnModGhpcy5fZGF5cyk7XG4gICAgICAgIHRoaXMuX21vbnRocyA9IG1hdGhBYnModGhpcy5fbW9udGhzKTtcblxuICAgICAgICBkYXRhLm1pbGxpc2Vjb25kcyA9IG1hdGhBYnMoZGF0YS5taWxsaXNlY29uZHMpO1xuICAgICAgICBkYXRhLnNlY29uZHMgPSBtYXRoQWJzKGRhdGEuc2Vjb25kcyk7XG4gICAgICAgIGRhdGEubWludXRlcyA9IG1hdGhBYnMoZGF0YS5taW51dGVzKTtcbiAgICAgICAgZGF0YS5ob3VycyA9IG1hdGhBYnMoZGF0YS5ob3Vycyk7XG4gICAgICAgIGRhdGEubW9udGhzID0gbWF0aEFicyhkYXRhLm1vbnRocyk7XG4gICAgICAgIGRhdGEueWVhcnMgPSBtYXRoQWJzKGRhdGEueWVhcnMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFN1YnRyYWN0JDEoZHVyYXRpb24sIGlucHV0LCB2YWx1ZSwgZGlyZWN0aW9uKSB7XG4gICAgICAgIHZhciBvdGhlciA9IGNyZWF0ZUR1cmF0aW9uKGlucHV0LCB2YWx1ZSk7XG5cbiAgICAgICAgZHVyYXRpb24uX21pbGxpc2Vjb25kcyArPSBkaXJlY3Rpb24gKiBvdGhlci5fbWlsbGlzZWNvbmRzO1xuICAgICAgICBkdXJhdGlvbi5fZGF5cyArPSBkaXJlY3Rpb24gKiBvdGhlci5fZGF5cztcbiAgICAgICAgZHVyYXRpb24uX21vbnRocyArPSBkaXJlY3Rpb24gKiBvdGhlci5fbW9udGhzO1xuXG4gICAgICAgIHJldHVybiBkdXJhdGlvbi5fYnViYmxlKCk7XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydHMgb25seSAyLjAtc3R5bGUgYWRkKDEsICdzJykgb3IgYWRkKGR1cmF0aW9uKVxuICAgIGZ1bmN0aW9uIGFkZCQxKGlucHV0LCB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gYWRkU3VidHJhY3QkMSh0aGlzLCBpbnB1dCwgdmFsdWUsIDEpO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnRzIG9ubHkgMi4wLXN0eWxlIHN1YnRyYWN0KDEsICdzJykgb3Igc3VidHJhY3QoZHVyYXRpb24pXG4gICAgZnVuY3Rpb24gc3VidHJhY3QkMShpbnB1dCwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGFkZFN1YnRyYWN0JDEodGhpcywgaW5wdXQsIHZhbHVlLCAtMSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWJzQ2VpbChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKG51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBidWJibGUoKSB7XG4gICAgICAgIHZhciBtaWxsaXNlY29uZHMgPSB0aGlzLl9taWxsaXNlY29uZHM7XG4gICAgICAgIHZhciBkYXlzID0gdGhpcy5fZGF5cztcbiAgICAgICAgdmFyIG1vbnRocyA9IHRoaXMuX21vbnRocztcbiAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9kYXRhO1xuICAgICAgICB2YXIgc2Vjb25kcywgbWludXRlcywgaG91cnMsIHllYXJzLCBtb250aHNGcm9tRGF5cztcblxuICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgbWl4IG9mIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSB2YWx1ZXMsIGJ1YmJsZSBkb3duIGZpcnN0XG4gICAgICAgIC8vIGNoZWNrOiBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMjE2NlxuICAgICAgICBpZiAoIShtaWxsaXNlY29uZHMgPj0gMCAmJiBkYXlzID49IDAgJiYgbW9udGhzID49IDAgfHwgbWlsbGlzZWNvbmRzIDw9IDAgJiYgZGF5cyA8PSAwICYmIG1vbnRocyA8PSAwKSkge1xuICAgICAgICAgICAgbWlsbGlzZWNvbmRzICs9IGFic0NlaWwobW9udGhzVG9EYXlzKG1vbnRocykgKyBkYXlzKSAqIDg2NGU1O1xuICAgICAgICAgICAgZGF5cyA9IDA7XG4gICAgICAgICAgICBtb250aHMgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGJ1YmJsZXMgdXAgdmFsdWVzLCBzZWUgdGhlIHRlc3RzIGZvclxuICAgICAgICAvLyBleGFtcGxlcyBvZiB3aGF0IHRoYXQgbWVhbnMuXG4gICAgICAgIGRhdGEubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzICUgMTAwMDtcblxuICAgICAgICBzZWNvbmRzID0gYWJzRmxvb3IobWlsbGlzZWNvbmRzIC8gMTAwMCk7XG4gICAgICAgIGRhdGEuc2Vjb25kcyA9IHNlY29uZHMgJSA2MDtcblxuICAgICAgICBtaW51dGVzID0gYWJzRmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICAgICAgZGF0YS5taW51dGVzID0gbWludXRlcyAlIDYwO1xuXG4gICAgICAgIGhvdXJzID0gYWJzRmxvb3IobWludXRlcyAvIDYwKTtcbiAgICAgICAgZGF0YS5ob3VycyA9IGhvdXJzICUgMjQ7XG5cbiAgICAgICAgZGF5cyArPSBhYnNGbG9vcihob3VycyAvIDI0KTtcblxuICAgICAgICAvLyBjb252ZXJ0IGRheXMgdG8gbW9udGhzXG4gICAgICAgIG1vbnRoc0Zyb21EYXlzID0gYWJzRmxvb3IoZGF5c1RvTW9udGhzKGRheXMpKTtcbiAgICAgICAgbW9udGhzICs9IG1vbnRoc0Zyb21EYXlzO1xuICAgICAgICBkYXlzIC09IGFic0NlaWwobW9udGhzVG9EYXlzKG1vbnRoc0Zyb21EYXlzKSk7XG5cbiAgICAgICAgLy8gMTIgbW9udGhzIC0+IDEgeWVhclxuICAgICAgICB5ZWFycyA9IGFic0Zsb29yKG1vbnRocyAvIDEyKTtcbiAgICAgICAgbW9udGhzICU9IDEyO1xuXG4gICAgICAgIGRhdGEuZGF5cyA9IGRheXM7XG4gICAgICAgIGRhdGEubW9udGhzID0gbW9udGhzO1xuICAgICAgICBkYXRhLnllYXJzID0geWVhcnM7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF5c1RvTW9udGhzKGRheXMpIHtcbiAgICAgICAgLy8gNDAwIHllYXJzIGhhdmUgMTQ2MDk3IGRheXMgKHRha2luZyBpbnRvIGFjY291bnQgbGVhcCB5ZWFyIHJ1bGVzKVxuICAgICAgICAvLyA0MDAgeWVhcnMgaGF2ZSAxMiBtb250aHMgPT09IDQ4MDBcbiAgICAgICAgcmV0dXJuIGRheXMgKiA0ODAwIC8gMTQ2MDk3O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoc1RvRGF5cyhtb250aHMpIHtcbiAgICAgICAgLy8gdGhlIHJldmVyc2Ugb2YgZGF5c1RvTW9udGhzXG4gICAgICAgIHJldHVybiBtb250aHMgKiAxNDYwOTcgLyA0ODAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFzKHVuaXRzKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRheXM7XG4gICAgICAgIHZhciBtb250aHM7XG4gICAgICAgIHZhciBtaWxsaXNlY29uZHMgPSB0aGlzLl9taWxsaXNlY29uZHM7XG5cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICAgICAgaWYgKHVuaXRzID09PSAnbW9udGgnIHx8IHVuaXRzID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzICsgbWlsbGlzZWNvbmRzIC8gODY0ZTU7XG4gICAgICAgICAgICBtb250aHMgPSB0aGlzLl9tb250aHMgKyBkYXlzVG9Nb250aHMoZGF5cyk7XG4gICAgICAgICAgICByZXR1cm4gdW5pdHMgPT09ICdtb250aCcgPyBtb250aHMgOiBtb250aHMgLyAxMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGhhbmRsZSBtaWxsaXNlY29uZHMgc2VwYXJhdGVseSBiZWNhdXNlIG9mIGZsb2F0aW5nIHBvaW50IG1hdGggZXJyb3JzIChpc3N1ZSAjMTg2NylcbiAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzICsgTWF0aC5yb3VuZChtb250aHNUb0RheXModGhpcy5fbW9udGhzKSk7XG4gICAgICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXlzIC8gNyArIG1pbGxpc2Vjb25kcyAvIDYwNDhlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyArIG1pbGxpc2Vjb25kcyAvIDg2NGU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyAqIDI0ICsgbWlsbGlzZWNvbmRzIC8gMzZlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyAqIDE0NDAgKyBtaWxsaXNlY29uZHMgLyA2ZTQ7XG4gICAgICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgKiA4NjQwMCArIG1pbGxpc2Vjb25kcyAvIDEwMDA7XG4gICAgICAgICAgICAgICAgLy8gTWF0aC5mbG9vciBwcmV2ZW50cyBmbG9hdGluZyBwb2ludCBtYXRoIGVycm9ycyBoZXJlXG4gICAgICAgICAgICAgICAgY2FzZSAnbWlsbGlzZWNvbmQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihkYXlzICogODY0ZTUpICsgbWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biB1bml0ICcgKyB1bml0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBVc2UgdGhpcy5hcygnbXMnKT9cbiAgICBmdW5jdGlvbiB2YWx1ZU9mJDEoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbGxpc2Vjb25kcyArIHRoaXMuX2RheXMgKiA4NjRlNSArIHRoaXMuX21vbnRocyAlIDEyICogMjU5MmU2ICsgdG9JbnQodGhpcy5fbW9udGhzIC8gMTIpICogMzE1MzZlNjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlQXMoYWxpYXMpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFzKGFsaWFzKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgYXNNaWxsaXNlY29uZHMgPSBtYWtlQXMoJ21zJyk7XG4gICAgdmFyIGFzU2Vjb25kcyA9IG1ha2VBcygncycpO1xuICAgIHZhciBhc01pbnV0ZXMgPSBtYWtlQXMoJ20nKTtcbiAgICB2YXIgYXNIb3VycyA9IG1ha2VBcygnaCcpO1xuICAgIHZhciBhc0RheXMgPSBtYWtlQXMoJ2QnKTtcbiAgICB2YXIgYXNXZWVrcyA9IG1ha2VBcygndycpO1xuICAgIHZhciBhc01vbnRocyA9IG1ha2VBcygnTScpO1xuICAgIHZhciBhc1llYXJzID0gbWFrZUFzKCd5Jyk7XG5cbiAgICBmdW5jdGlvbiBjbG9uZSQxKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24odGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0JDIodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXNbdW5pdHMgKyAncyddKCkgOiBOYU47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUdldHRlcihuYW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9kYXRhW25hbWVdIDogTmFOO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBtaWxsaXNlY29uZHMgPSBtYWtlR2V0dGVyKCdtaWxsaXNlY29uZHMnKTtcbiAgICB2YXIgc2Vjb25kcyA9IG1ha2VHZXR0ZXIoJ3NlY29uZHMnKTtcbiAgICB2YXIgbWludXRlcyA9IG1ha2VHZXR0ZXIoJ21pbnV0ZXMnKTtcbiAgICB2YXIgaG91cnMgPSBtYWtlR2V0dGVyKCdob3VycycpO1xuICAgIHZhciBkYXlzID0gbWFrZUdldHRlcignZGF5cycpO1xuICAgIHZhciBtb250aHMgPSBtYWtlR2V0dGVyKCdtb250aHMnKTtcbiAgICB2YXIgeWVhcnMgPSBtYWtlR2V0dGVyKCd5ZWFycycpO1xuXG4gICAgZnVuY3Rpb24gd2Vla3MoKSB7XG4gICAgICAgIHJldHVybiBhYnNGbG9vcih0aGlzLmRheXMoKSAvIDcpO1xuICAgIH1cblxuICAgIHZhciByb3VuZCA9IE1hdGgucm91bmQ7XG4gICAgdmFyIHRocmVzaG9sZHMgPSB7XG4gICAgICAgIHNzOiA0NCwgLy8gYSBmZXcgc2Vjb25kcyB0byBzZWNvbmRzXG4gICAgICAgIHM6IDQ1LCAvLyBzZWNvbmRzIHRvIG1pbnV0ZVxuICAgICAgICBtOiA0NSwgLy8gbWludXRlcyB0byBob3VyXG4gICAgICAgIGg6IDIyLCAvLyBob3VycyB0byBkYXlcbiAgICAgICAgZDogMjYsIC8vIGRheXMgdG8gbW9udGhcbiAgICAgICAgTTogMTEgLy8gbW9udGhzIHRvIHllYXJcbiAgICB9O1xuXG4gICAgLy8gaGVscGVyIGZ1bmN0aW9uIGZvciBtb21lbnQuZm4uZnJvbSwgbW9tZW50LmZuLmZyb21Ob3csIGFuZCBtb21lbnQuZHVyYXRpb24uZm4uaHVtYW5pemVcbiAgICBmdW5jdGlvbiBzdWJzdGl0dXRlVGltZUFnbyhzdHJpbmcsIG51bWJlciwgd2l0aG91dFN1ZmZpeCwgaXNGdXR1cmUsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLnJlbGF0aXZlVGltZShudW1iZXIgfHwgMSwgISF3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWUkMShwb3NOZWdEdXJhdGlvbiwgd2l0aG91dFN1ZmZpeCwgbG9jYWxlKSB7XG4gICAgICAgIHZhciBkdXJhdGlvbiA9IGNyZWF0ZUR1cmF0aW9uKHBvc05lZ0R1cmF0aW9uKS5hYnMoKTtcbiAgICAgICAgdmFyIHNlY29uZHMgPSByb3VuZChkdXJhdGlvbi5hcygncycpKTtcbiAgICAgICAgdmFyIG1pbnV0ZXMgPSByb3VuZChkdXJhdGlvbi5hcygnbScpKTtcbiAgICAgICAgdmFyIGhvdXJzID0gcm91bmQoZHVyYXRpb24uYXMoJ2gnKSk7XG4gICAgICAgIHZhciBkYXlzID0gcm91bmQoZHVyYXRpb24uYXMoJ2QnKSk7XG4gICAgICAgIHZhciBtb250aHMgPSByb3VuZChkdXJhdGlvbi5hcygnTScpKTtcbiAgICAgICAgdmFyIHllYXJzID0gcm91bmQoZHVyYXRpb24uYXMoJ3knKSk7XG5cbiAgICAgICAgdmFyIGEgPSBzZWNvbmRzIDw9IHRocmVzaG9sZHMuc3MgJiYgWydzJywgc2Vjb25kc10gfHwgc2Vjb25kcyA8IHRocmVzaG9sZHMucyAmJiBbJ3NzJywgc2Vjb25kc10gfHwgbWludXRlcyA8PSAxICYmIFsnbSddIHx8IG1pbnV0ZXMgPCB0aHJlc2hvbGRzLm0gJiYgWydtbScsIG1pbnV0ZXNdIHx8IGhvdXJzIDw9IDEgJiYgWydoJ10gfHwgaG91cnMgPCB0aHJlc2hvbGRzLmggJiYgWydoaCcsIGhvdXJzXSB8fCBkYXlzIDw9IDEgJiYgWydkJ10gfHwgZGF5cyA8IHRocmVzaG9sZHMuZCAmJiBbJ2RkJywgZGF5c10gfHwgbW9udGhzIDw9IDEgJiYgWydNJ10gfHwgbW9udGhzIDwgdGhyZXNob2xkcy5NICYmIFsnTU0nLCBtb250aHNdIHx8IHllYXJzIDw9IDEgJiYgWyd5J10gfHwgWyd5eScsIHllYXJzXTtcblxuICAgICAgICBhWzJdID0gd2l0aG91dFN1ZmZpeDtcbiAgICAgICAgYVszXSA9ICtwb3NOZWdEdXJhdGlvbiA+IDA7XG4gICAgICAgIGFbNF0gPSBsb2NhbGU7XG4gICAgICAgIHJldHVybiBzdWJzdGl0dXRlVGltZUFnby5hcHBseShudWxsLCBhKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gc2V0IHRoZSByb3VuZGluZyBmdW5jdGlvbiBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzXG4gICAgZnVuY3Rpb24gZ2V0U2V0UmVsYXRpdmVUaW1lUm91bmRpbmcocm91bmRpbmdGdW5jdGlvbikge1xuICAgICAgICBpZiAocm91bmRpbmdGdW5jdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gcm91bmQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByb3VuZGluZ0Z1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByb3VuZCA9IHJvdW5kaW5nRnVuY3Rpb247XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHNldCBhIHRocmVzaG9sZCBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzXG4gICAgZnVuY3Rpb24gZ2V0U2V0UmVsYXRpdmVUaW1lVGhyZXNob2xkKHRocmVzaG9sZCwgbGltaXQpIHtcbiAgICAgICAgaWYgKHRocmVzaG9sZHNbdGhyZXNob2xkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbWl0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJlc2hvbGRzW3RocmVzaG9sZF07XG4gICAgICAgIH1cbiAgICAgICAgdGhyZXNob2xkc1t0aHJlc2hvbGRdID0gbGltaXQ7XG4gICAgICAgIGlmICh0aHJlc2hvbGQgPT09ICdzJykge1xuICAgICAgICAgICAgdGhyZXNob2xkcy5zcyA9IGxpbWl0IC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBodW1hbml6ZSh3aXRoU3VmZml4KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGxvY2FsZSA9IHRoaXMubG9jYWxlRGF0YSgpO1xuICAgICAgICB2YXIgb3V0cHV0ID0gcmVsYXRpdmVUaW1lJDEodGhpcywgIXdpdGhTdWZmaXgsIGxvY2FsZSk7XG5cbiAgICAgICAgaWYgKHdpdGhTdWZmaXgpIHtcbiAgICAgICAgICAgIG91dHB1dCA9IGxvY2FsZS5wYXN0RnV0dXJlKCt0aGlzLCBvdXRwdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxvY2FsZS5wb3N0Zm9ybWF0KG91dHB1dCk7XG4gICAgfVxuXG4gICAgdmFyIGFicyQxID0gTWF0aC5hYnM7XG5cbiAgICBmdW5jdGlvbiBzaWduKHgpIHtcbiAgICAgICAgcmV0dXJuICh4ID4gMCkgLSAoeCA8IDApIHx8ICt4O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSVNPU3RyaW5nJDEoKSB7XG4gICAgICAgIC8vIGZvciBJU08gc3RyaW5ncyB3ZSBkbyBub3QgdXNlIHRoZSBub3JtYWwgYnViYmxpbmcgcnVsZXM6XG4gICAgICAgIC8vICAqIG1pbGxpc2Vjb25kcyBidWJibGUgdXAgdW50aWwgdGhleSBiZWNvbWUgaG91cnNcbiAgICAgICAgLy8gICogZGF5cyBkbyBub3QgYnViYmxlIGF0IGFsbFxuICAgICAgICAvLyAgKiBtb250aHMgYnViYmxlIHVwIHVudGlsIHRoZXkgYmVjb21lIHllYXJzXG4gICAgICAgIC8vIFRoaXMgaXMgYmVjYXVzZSB0aGVyZSBpcyBubyBjb250ZXh0LWZyZWUgY29udmVyc2lvbiBiZXR3ZWVuIGhvdXJzIGFuZCBkYXlzXG4gICAgICAgIC8vICh0aGluayBvZiBjbG9jayBjaGFuZ2VzKVxuICAgICAgICAvLyBhbmQgYWxzbyBub3QgYmV0d2VlbiBkYXlzIGFuZCBtb250aHMgKDI4LTMxIGRheXMgcGVyIG1vbnRoKVxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZWNvbmRzID0gYWJzJDEodGhpcy5fbWlsbGlzZWNvbmRzKSAvIDEwMDA7XG4gICAgICAgIHZhciBkYXlzID0gYWJzJDEodGhpcy5fZGF5cyk7XG4gICAgICAgIHZhciBtb250aHMgPSBhYnMkMSh0aGlzLl9tb250aHMpO1xuICAgICAgICB2YXIgbWludXRlcywgaG91cnMsIHllYXJzO1xuXG4gICAgICAgIC8vIDM2MDAgc2Vjb25kcyAtPiA2MCBtaW51dGVzIC0+IDEgaG91clxuICAgICAgICBtaW51dGVzID0gYWJzRmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICAgICAgaG91cnMgPSBhYnNGbG9vcihtaW51dGVzIC8gNjApO1xuICAgICAgICBzZWNvbmRzICU9IDYwO1xuICAgICAgICBtaW51dGVzICU9IDYwO1xuXG4gICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXJcbiAgICAgICAgeWVhcnMgPSBhYnNGbG9vcihtb250aHMgLyAxMik7XG4gICAgICAgIG1vbnRocyAlPSAxMjtcblxuICAgICAgICAvLyBpbnNwaXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vZG9yZGlsbGUvbW9tZW50LWlzb2R1cmF0aW9uL2Jsb2IvbWFzdGVyL21vbWVudC5pc29kdXJhdGlvbi5qc1xuICAgICAgICB2YXIgWSA9IHllYXJzO1xuICAgICAgICB2YXIgTSA9IG1vbnRocztcbiAgICAgICAgdmFyIEQgPSBkYXlzO1xuICAgICAgICB2YXIgaCA9IGhvdXJzO1xuICAgICAgICB2YXIgbSA9IG1pbnV0ZXM7XG4gICAgICAgIHZhciBzID0gc2Vjb25kcyA/IHNlY29uZHMudG9GaXhlZCgzKS5yZXBsYWNlKC9cXC4/MCskLywgJycpIDogJyc7XG4gICAgICAgIHZhciB0b3RhbCA9IHRoaXMuYXNTZWNvbmRzKCk7XG5cbiAgICAgICAgaWYgKCF0b3RhbCkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhcyBDIydzIChOb2RhKSBhbmQgcHl0aG9uIChpc29kYXRlKS4uLlxuICAgICAgICAgICAgLy8gYnV0IG5vdCBvdGhlciBKUyAoZ29vZy5kYXRlKVxuICAgICAgICAgICAgcmV0dXJuICdQMEQnO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHRvdGFsU2lnbiA9IHRvdGFsIDwgMCA/ICctJyA6ICcnO1xuICAgICAgICB2YXIgeW1TaWduID0gc2lnbih0aGlzLl9tb250aHMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuICAgICAgICB2YXIgZGF5c1NpZ24gPSBzaWduKHRoaXMuX2RheXMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuICAgICAgICB2YXIgaG1zU2lnbiA9IHNpZ24odGhpcy5fbWlsbGlzZWNvbmRzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcblxuICAgICAgICByZXR1cm4gdG90YWxTaWduICsgJ1AnICsgKFkgPyB5bVNpZ24gKyBZICsgJ1knIDogJycpICsgKE0gPyB5bVNpZ24gKyBNICsgJ00nIDogJycpICsgKEQgPyBkYXlzU2lnbiArIEQgKyAnRCcgOiAnJykgKyAoaCB8fCBtIHx8IHMgPyAnVCcgOiAnJykgKyAoaCA/IGhtc1NpZ24gKyBoICsgJ0gnIDogJycpICsgKG0gPyBobXNTaWduICsgbSArICdNJyA6ICcnKSArIChzID8gaG1zU2lnbiArIHMgKyAnUycgOiAnJyk7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvJDIgPSBEdXJhdGlvbi5wcm90b3R5cGU7XG5cbiAgICBwcm90byQyLmlzVmFsaWQgPSBpc1ZhbGlkJDE7XG4gICAgcHJvdG8kMi5hYnMgPSBhYnM7XG4gICAgcHJvdG8kMi5hZGQgPSBhZGQkMTtcbiAgICBwcm90byQyLnN1YnRyYWN0ID0gc3VidHJhY3QkMTtcbiAgICBwcm90byQyLmFzID0gYXM7XG4gICAgcHJvdG8kMi5hc01pbGxpc2Vjb25kcyA9IGFzTWlsbGlzZWNvbmRzO1xuICAgIHByb3RvJDIuYXNTZWNvbmRzID0gYXNTZWNvbmRzO1xuICAgIHByb3RvJDIuYXNNaW51dGVzID0gYXNNaW51dGVzO1xuICAgIHByb3RvJDIuYXNIb3VycyA9IGFzSG91cnM7XG4gICAgcHJvdG8kMi5hc0RheXMgPSBhc0RheXM7XG4gICAgcHJvdG8kMi5hc1dlZWtzID0gYXNXZWVrcztcbiAgICBwcm90byQyLmFzTW9udGhzID0gYXNNb250aHM7XG4gICAgcHJvdG8kMi5hc1llYXJzID0gYXNZZWFycztcbiAgICBwcm90byQyLnZhbHVlT2YgPSB2YWx1ZU9mJDE7XG4gICAgcHJvdG8kMi5fYnViYmxlID0gYnViYmxlO1xuICAgIHByb3RvJDIuY2xvbmUgPSBjbG9uZSQxO1xuICAgIHByb3RvJDIuZ2V0ID0gZ2V0JDI7XG4gICAgcHJvdG8kMi5taWxsaXNlY29uZHMgPSBtaWxsaXNlY29uZHM7XG4gICAgcHJvdG8kMi5zZWNvbmRzID0gc2Vjb25kcztcbiAgICBwcm90byQyLm1pbnV0ZXMgPSBtaW51dGVzO1xuICAgIHByb3RvJDIuaG91cnMgPSBob3VycztcbiAgICBwcm90byQyLmRheXMgPSBkYXlzO1xuICAgIHByb3RvJDIud2Vla3MgPSB3ZWVrcztcbiAgICBwcm90byQyLm1vbnRocyA9IG1vbnRocztcbiAgICBwcm90byQyLnllYXJzID0geWVhcnM7XG4gICAgcHJvdG8kMi5odW1hbml6ZSA9IGh1bWFuaXplO1xuICAgIHByb3RvJDIudG9JU09TdHJpbmcgPSB0b0lTT1N0cmluZyQxO1xuICAgIHByb3RvJDIudG9TdHJpbmcgPSB0b0lTT1N0cmluZyQxO1xuICAgIHByb3RvJDIudG9KU09OID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLmxvY2FsZSA9IGxvY2FsZTtcbiAgICBwcm90byQyLmxvY2FsZURhdGEgPSBsb2NhbGVEYXRhO1xuXG4gICAgLy8gRGVwcmVjYXRpb25zXG4gICAgcHJvdG8kMi50b0lzb1N0cmluZyA9IGRlcHJlY2F0ZSgndG9Jc29TdHJpbmcoKSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIHRvSVNPU3RyaW5nKCkgaW5zdGVhZCAobm90aWNlIHRoZSBjYXBpdGFscyknLCB0b0lTT1N0cmluZyQxKTtcbiAgICBwcm90byQyLmxhbmcgPSBsYW5nO1xuXG4gICAgLy8gU2lkZSBlZmZlY3QgaW1wb3J0c1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1gnLCAwLCAwLCAndW5peCcpO1xuICAgIGFkZEZvcm1hdFRva2VuKCd4JywgMCwgMCwgJ3ZhbHVlT2YnKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ3gnLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignWCcsIG1hdGNoVGltZXN0YW1wKTtcbiAgICBhZGRQYXJzZVRva2VuKCdYJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHBhcnNlRmxvYXQoaW5wdXQsIDEwKSAqIDEwMDApO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ3gnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUodG9JbnQoaW5wdXQpKTtcbiAgICB9KTtcblxuICAgIC8vIFNpZGUgZWZmZWN0IGltcG9ydHNcblxuXG4gICAgaG9va3MudmVyc2lvbiA9ICcyLjE5LjEnO1xuXG4gICAgc2V0SG9va0NhbGxiYWNrKGNyZWF0ZUxvY2FsKTtcblxuICAgIGhvb2tzLmZuID0gcHJvdG87XG4gICAgaG9va3MubWluID0gbWluO1xuICAgIGhvb2tzLm1heCA9IG1heDtcbiAgICBob29rcy5ub3cgPSBub3c7XG4gICAgaG9va3MudXRjID0gY3JlYXRlVVRDO1xuICAgIGhvb2tzLnVuaXggPSBjcmVhdGVVbml4O1xuICAgIGhvb2tzLm1vbnRocyA9IGxpc3RNb250aHM7XG4gICAgaG9va3MuaXNEYXRlID0gaXNEYXRlO1xuICAgIGhvb2tzLmxvY2FsZSA9IGdldFNldEdsb2JhbExvY2FsZTtcbiAgICBob29rcy5pbnZhbGlkID0gY3JlYXRlSW52YWxpZDtcbiAgICBob29rcy5kdXJhdGlvbiA9IGNyZWF0ZUR1cmF0aW9uO1xuICAgIGhvb2tzLmlzTW9tZW50ID0gaXNNb21lbnQ7XG4gICAgaG9va3Mud2Vla2RheXMgPSBsaXN0V2Vla2RheXM7XG4gICAgaG9va3MucGFyc2Vab25lID0gY3JlYXRlSW5ab25lO1xuICAgIGhvb2tzLmxvY2FsZURhdGEgPSBnZXRMb2NhbGU7XG4gICAgaG9va3MuaXNEdXJhdGlvbiA9IGlzRHVyYXRpb247XG4gICAgaG9va3MubW9udGhzU2hvcnQgPSBsaXN0TW9udGhzU2hvcnQ7XG4gICAgaG9va3Mud2Vla2RheXNNaW4gPSBsaXN0V2Vla2RheXNNaW47XG4gICAgaG9va3MuZGVmaW5lTG9jYWxlID0gZGVmaW5lTG9jYWxlO1xuICAgIGhvb2tzLnVwZGF0ZUxvY2FsZSA9IHVwZGF0ZUxvY2FsZTtcbiAgICBob29rcy5sb2NhbGVzID0gbGlzdExvY2FsZXM7XG4gICAgaG9va3Mud2Vla2RheXNTaG9ydCA9IGxpc3RXZWVrZGF5c1Nob3J0O1xuICAgIGhvb2tzLm5vcm1hbGl6ZVVuaXRzID0gbm9ybWFsaXplVW5pdHM7XG4gICAgaG9va3MucmVsYXRpdmVUaW1lUm91bmRpbmcgPSBnZXRTZXRSZWxhdGl2ZVRpbWVSb3VuZGluZztcbiAgICBob29rcy5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQgPSBnZXRTZXRSZWxhdGl2ZVRpbWVUaHJlc2hvbGQ7XG4gICAgaG9va3MuY2FsZW5kYXJGb3JtYXQgPSBnZXRDYWxlbmRhckZvcm1hdDtcbiAgICBob29rcy5wcm90b3R5cGUgPSBwcm90bztcblxuICAgIHJldHVybiBob29rcztcbn0pO1xufSk7XG5cbnZhciBfdHlwZW9mID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIgPyBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqO1xufSA6IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG59O1xuXG5mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IEFycmF5KGFyci5sZW5ndGgpOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcnIyW2ldID0gYXJyW2ldO1xuICAgIH1yZXR1cm4gYXJyMjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShhcnIpO1xuICB9XG59XG5cbnZhciB2dWVNb21lbnQgPSB7XG4gIGluc3RhbGw6IGZ1bmN0aW9uIGluc3RhbGwoVnVlLCBvcHRpb25zKSB7XG4gICAgdmFyIG1vbWVudCQkMSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5tb21lbnQgPyBvcHRpb25zLm1vbWVudCA6IG1vbWVudDtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFZ1ZS5wcm90b3R5cGUsIHtcbiAgICAgICRtb21lbnQ6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgICAgcmV0dXJuIG1vbWVudCQkMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgVnVlLm1vbWVudCA9IG1vbWVudCQkMTtcblxuICAgIFZ1ZS5maWx0ZXIoJ21vbWVudCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBhcmd1bWVudHMkMSA9IGFyZ3VtZW50cztcblxuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50cyQxW19rZXldO1xuICAgICAgfVxuXG4gICAgICBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncyk7XG4gICAgICB2YXIgaW5wdXQgPSBhcmdzLnNoaWZ0KCk7XG4gICAgICB2YXIgZGF0ZSA9IHZvaWQgMDtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpICYmIHR5cGVvZiBpbnB1dFswXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gSWYgaW5wdXQgaXMgYXJyYXksIGFzc3VtZSB3ZSdyZSBiZWluZyBwYXNzZWQgYSBmb3JtYXQgcGF0dGVybiB0byBwYXJzZSBhZ2FpbnN0LlxuICAgICAgICAvLyBGb3JtYXQgcGF0dGVybiB3aWxsIGFjY2VwdCBhbiBhcnJheSBvZiBwb3RlbnRpYWwgZm9ybWF0cyB0byBwYXJzZSBhZ2FpbnN0LlxuICAgICAgICAvLyBEYXRlIHN0cmluZyBzaG91bGQgYmUgYXQgWzBdLCBmb3JtYXQgcGF0dGVybihzKSBzaG91bGQgYmUgYXQgWzFdXG4gICAgICAgIGRhdGUgPSBtb21lbnQkJDEoaW5wdXRbMF0sIGlucHV0WzFdLCB0cnVlKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJykge1xuICAgICAgICBpZiAoaW5wdXQudG9TdHJpbmcoKS5sZW5ndGggPCAxMikge1xuICAgICAgICAgIC8vIElmIGlucHV0IGlzIGFuIGludGVnZXIgd2l0aCBmZXdlciB0aGFuIDEyIGRpZ2l0cywgYXNzdW1lIFVuaXggc2Vjb25kcy4uLlxuICAgICAgICAgIGRhdGUgPSBtb21lbnQkJDEudW5peChpbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gLi5vdGhlcndpc2UsIGFzc3VtZSBtaWxsaXNlY29uZHMuXG4gICAgICAgICAgZGF0ZSA9IG1vbWVudCQkMShpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgdGhyb3cgdGhlIGlucHV0IGF0IG1vbWVudCBhbmQgc2VlIHdoYXQgaGFwcGVucy4uLlxuICAgICAgICBkYXRlID0gbW9tZW50JCQxKGlucHV0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpbnB1dCB8fCAhZGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgLy8gTG9nIGEgd2FybmluZyBpZiBtb21lbnQgY291bGRuJ3QgcmVjb25jaWxlIHRoZSBpbnB1dC4gQmV0dGVyIHRoYW4gdGhyb3dpbmcgYW4gZXJyb3I/XG4gICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IGJ1aWxkIGEgdmFsaWQgYG1vbWVudGAgb2JqZWN0IGZyb20gaW5wdXQuJyk7XG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gcGFyc2UoKSB7XG4gICAgICAgIHZhciBhcmd1bWVudHMkMSA9IGFyZ3VtZW50cztcblxuICAgICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzJDFbX2tleTJdO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpO1xuICAgICAgICB2YXIgbWV0aG9kID0gYXJncy5zaGlmdCgpO1xuXG4gICAgICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICAgICAgY2FzZSAnYWRkJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgKiBNdXRhdGVzIHRoZSBvcmlnaW5hbCBtb21lbnQgYnkgYWRkaW5nIHRpbWUuXG4gICAgICAgICAgICAgICogaHR0cDovL21vbWVudGpzLmNvbS9kb2NzLyMvbWFuaXB1bGF0aW5nL2FkZC9cbiAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICB2YXIgYWRkZW5kcyA9IGFyZ3Muc2hpZnQoKS5zcGxpdCgnLCcpLm1hcChGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCwgU3RyaW5nLnByb3RvdHlwZS50cmltKTtcbiAgICAgICAgICAgICAgdmFyIG9iaiA9IHt9O1xuXG4gICAgICAgICAgICAgIGZvciAodmFyIG4gPSAwOyBuIDwgYWRkZW5kcy5sZW5ndGg7IG4rKykge1xuICAgICAgICAgICAgICAgIHZhciBhZGRlbmQgPSBhZGRlbmRzW25dLnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgb2JqW2FkZGVuZFsxXV0gPSBhZGRlbmRbMF07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGF0ZS5hZGQob2JqKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdzdWJ0cmFjdCc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICogTXV0YXRlcyB0aGUgb3JpZ2luYWwgbW9tZW50IGJ5IHN1YnRyYWN0aW5nIHRpbWUuXG4gICAgICAgICAgICAgICogaHR0cDovL21vbWVudGpzLmNvbS9kb2NzLyMvbWFuaXB1bGF0aW5nL3N1YnRyYWN0L1xuICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgIHZhciBzdWJ0cmFoZW5kcyA9IGFyZ3Muc2hpZnQoKS5zcGxpdCgnLCcpLm1hcChGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCwgU3RyaW5nLnByb3RvdHlwZS50cmltKTtcbiAgICAgICAgICAgICAgdmFyIF9vYmogPSB7fTtcblxuICAgICAgICAgICAgICBmb3IgKHZhciBfbiA9IDA7IF9uIDwgc3VidHJhaGVuZHMubGVuZ3RoOyBfbisrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN1YnRyYWhlbmQgPSBzdWJ0cmFoZW5kc1tfbl0uc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBfb2JqW3N1YnRyYWhlbmRbMV1dID0gc3VidHJhaGVuZFswXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkYXRlLnN1YnRyYWN0KF9vYmopO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ2Zyb20nOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAqIERpc3BsYXkgYSBtb21lbnQgaW4gcmVsYXRpdmUgdGltZSwgZWl0aGVyIGZyb20gbm93IG9yIGZyb20gYSBzcGVjaWZpZWQgZGF0ZS5cbiAgICAgICAgICAgICAgKiBodHRwOi8vbW9tZW50anMuY29tL2RvY3MvIy9kaXNwbGF5aW5nL2Zyb21ub3cvXG4gICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgdmFyIGZyb20gPSAnbm93JztcbiAgICAgICAgICAgICAgdmFyIHJlbW92ZVN1ZmZpeCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgIGlmIChhcmdzWzBdID09PSAnbm93JykgeyBhcmdzLnNoaWZ0KCk7IH1cbiAgICAgICAgICAgICAgLy8gSWYgdmFsaWQsIGFzc3VtZSBpdCBpcyBhIGRhdGUgd2Ugd2FudCB0aGUgb3V0cHV0IGNvbXB1dGVkIGFnYWluc3QuXG4gICAgICAgICAgICAgIGlmIChtb21lbnQkJDEoYXJnc1swXSkuaXNWYWxpZCgpKSB7IGZyb20gPSBtb21lbnQkJDEoYXJncy5zaGlmdCgpKTsgfVxuXG4gICAgICAgICAgICAgIGlmIChhcmdzWzBdID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgYXJncy5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIHJlbW92ZVN1ZmZpeCA9IHRydWU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoZnJvbSAhPT0gJ25vdycpIHtcbiAgICAgICAgICAgICAgICBkYXRlID0gZGF0ZS5mcm9tKGZyb20sIHJlbW92ZVN1ZmZpeCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0ZSA9IGRhdGUuZnJvbU5vdyhyZW1vdmVTdWZmaXgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnZGlmZic6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICogTXV0YXRlcyB0aGUgb3JpZ2luYWwgbW9tZW50IGJ5IGRvaW5nIGEgZGlmZmVyZW5jZSB3aXRoIGFub3RoZXIgZGF0ZS5cbiAgICAgICAgICAgICAgKiBodHRwOi8vbW9tZW50anMuY29tL2RvY3MvIy9kaXNwbGF5aW5nL2RpZmZlcmVuY2UvXG4gICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgdmFyIHJlZmVyZW5jZVRpbWUgPSBtb21lbnQkJDEoKTtcbiAgICAgICAgICAgICAgdmFyIHVuaXRzID0gJyc7XG4gICAgICAgICAgICAgIHZhciBmbG9hdCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgIGlmIChtb21lbnQkJDEoYXJnc1swXSkuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdmFsaWQsIGFzc3VtZSBpdCBpcyBhIGRhdGUgd2Ugd2FudCB0aGUgb3V0cHV0IGNvbXB1dGVkIGFnYWluc3QuXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlVGltZSA9IG1vbWVudCQkMShhcmdzLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3NbMF0gPT09IG51bGwgfHwgYXJnc1swXSA9PT0gJ25vdycpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBudWxsIG9yICdub3cnLCByZW1vdmUgYXJndW1lbnQgYW5kIHByb2NlZWQgd2l0aCBkZWZhdWx0IHJlZmVyZW5jZVRpbWUuXG4gICAgICAgICAgICAgICAgYXJncy5zaGlmdCgpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGFyZ3NbMF0pIHsgdW5pdHMgPSBhcmdzLnNoaWZ0KCk7IH1cblxuICAgICAgICAgICAgICBpZiAoYXJnc1swXSA9PT0gdHJ1ZSkgeyBmbG9hdCA9IGFyZ3Muc2hpZnQoKTsgfVxuXG4gICAgICAgICAgICAgIGRhdGUgPSBkYXRlLmRpZmYocmVmZXJlbmNlVGltZSwgdW5pdHMsIGZsb2F0KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdjYWxlbmRhcic6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICogRm9ybWF0cyBhIGRhdGUgd2l0aCBkaWZmZXJlbnQgc3RyaW5ncyBkZXBlbmRpbmcgb24gaG93IGNsb3NlXG4gICAgICAgICAgICAgICogdG8gYSBjZXJ0YWluIGRhdGUgKHRvZGF5IGJ5IGRlZmF1bHQpIHRoZSBkYXRlIGlzLlxuICAgICAgICAgICAgICAqIGh0dHA6Ly9tb21lbnRqcy5jb20vZG9jcy8jL2Rpc3BsYXlpbmcvY2FsZW5kYXItdGltZS9cbiAgICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgICB2YXIgX3JlZmVyZW5jZVRpbWUgPSBtb21lbnQkJDEoKTtcbiAgICAgICAgICAgICAgdmFyIGZvcm1hdHMgPSB7fTtcblxuICAgICAgICAgICAgICBpZiAobW9tZW50JCQxKGFyZ3NbMF0pLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIC8vIElmIHZhbGlkLCBhc3N1bWUgaXQgaXMgYSBkYXRlIHdlIHdhbnQgdGhlIG91dHB1dCBjb21wdXRlZCBhZ2FpbnN0LlxuICAgICAgICAgICAgICAgIF9yZWZlcmVuY2VUaW1lID0gbW9tZW50JCQxKGFyZ3Muc2hpZnQoKSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1swXSA9PT0gbnVsbCB8fCBhcmdzWzBdID09PSAnbm93Jykge1xuICAgICAgICAgICAgICAgIC8vIElmIG51bGwgb3IgJ25vdycsIHJlbW92ZSBhcmd1bWVudCBhbmQgcHJvY2VlZCB3aXRoIGRlZmF1bHQgcmVmZXJlbmNlVGltZS5cbiAgICAgICAgICAgICAgICBhcmdzLnNoaWZ0KCk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoX3R5cGVvZihhcmdzWzBdKSA9PT0gJ29iamVjdCcpIHsgZm9ybWF0cyA9IGFyZ3Muc2hpZnQoKTsgfVxuXG4gICAgICAgICAgICAgIGRhdGUgPSBkYXRlLmNhbGVuZGFyKF9yZWZlcmVuY2VUaW1lLCBmb3JtYXRzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICd1dGMnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAqIE11dGF0ZXMgdGhlIG9yaWdpbmFsIG1vbWVudCBieSBjb252ZXJ0aW5nIHRvIFVUQ1xuICAgICAgICAgICAgICAqIGh0dHBzOi8vbW9tZW50anMuY29tL2RvY3MvIy9tYW5pcHVsYXRpbmcvdXRjL1xuICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBkYXRlLnV0YygpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3RpbWV6b25lJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgKiBNdXRhdGVzIHRoZSBvcmlnaW5hbCBtb21lbnQgYnkgY29udmVydGluZyB0byBhIG5ldyB0aW1lem9uZS5cbiAgICAgICAgICAgICAgKiBodHRwczovL21vbWVudGpzLmNvbS90aW1lem9uZS9kb2NzLyMvdXNpbmctdGltZXpvbmVzL2NvbnZlcnRpbmctdG8tem9uZS9cbiAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgZGF0ZS50eihhcmdzLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICogRm9ybWF0cyBhIGRhdGUgYnkgdGFraW5nIGEgc3RyaW5nIG9mIHRva2VucyBhbmQgcmVwbGFjaW5nXG4gICAgICAgICAgICAgICogdGhlbSB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICAgICAgICAgICAgICAqIGh0dHA6Ly9tb21lbnRqcy5jb20vZG9jcy8jL2Rpc3BsYXlpbmcvZm9ybWF0L1xuICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgIHZhciBmb3JtYXQgPSBtZXRob2Q7XG4gICAgICAgICAgICAgIGRhdGUgPSBkYXRlLmZvcm1hdChmb3JtYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoKSB7IHBhcnNlLmFwcGx5KHBhcnNlLCBhcmdzKTsgfVxuICAgICAgfVxuXG4gICAgICBwYXJzZS5hcHBseShwYXJzZSwgYXJncyk7XG5cbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH0pO1xuXG4gICAgVnVlLmZpbHRlcignZHVyYXRpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgYXJndW1lbnRzJDEgPSBhcmd1bWVudHM7XG5cbiAgICAgIGZvciAodmFyIF9sZW4zID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4zKSwgX2tleTMgPSAwOyBfa2V5MyA8IF9sZW4zOyBfa2V5MysrKSB7XG4gICAgICAgIGFyZ3NbX2tleTNdID0gYXJndW1lbnRzJDFbX2tleTNdO1xuICAgICAgfVxuXG4gICAgICAvKlxuICAgICAgKiBCYXNpYyBwYXNzLXRocm91Z2ggZmlsdGVyIGZvciBsZXZlcmFnaW5nIG1vbWVudC5qcydzIGFiaWxpdHlcbiAgICAgICogdG8gbWFuaXB1bGF0ZSBhbmQgZGlzcGxheSBkdXJhdGlvbnMuXG4gICAgICAqIGh0dHBzOi8vbW9tZW50anMuY29tL2RvY3MvIy9kdXJhdGlvbnMvXG4gICAgICAqL1xuICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpO1xuICAgICAgdmFyIGlucHV0ID0gYXJncy5zaGlmdCgpO1xuICAgICAgdmFyIG1ldGhvZCA9IGFyZ3Muc2hpZnQoKTtcblxuICAgICAgZnVuY3Rpb24gY3JlYXRlRHVyYXRpb24odGltZSkge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodGltZSkpIHsgdGltZSA9IFt0aW1lXTsgfVxuICAgICAgICB2YXIgcmVzdWx0ID0gbW9tZW50JCQxLmR1cmF0aW9uLmFwcGx5KG1vbWVudCQkMSwgX3RvQ29uc3VtYWJsZUFycmF5KHRpbWUpKTtcbiAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCgpKSB7IGNvbnNvbGUud2FybignQ291bGQgbm90IGJ1aWxkIGEgdmFsaWQgYGR1cmF0aW9uYCBvYmplY3QgZnJvbSBpbnB1dC4nKTsgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgdmFyIGR1cmF0aW9uID0gY3JlYXRlRHVyYXRpb24oaW5wdXQpO1xuXG4gICAgICBpZiAobWV0aG9kID09PSAnYWRkJyB8fCBtZXRob2QgPT09ICdzdWJ0cmFjdCcpIHtcbiAgICAgICAgLy8gR2VuZXJhdGVzIGEgZHVyYXRpb24gb2JqZWN0IGFuZCBlaXRoZXIgYWRkcyBvciBzdWJ0cmFjdHMgaXRcbiAgICAgICAgLy8gZnJvbSBvdXIgb3JpZ2luYWwgZHVyYXRpb24uXG4gICAgICAgIHZhciBkdXJhdGlvbkNoYW5nZSA9IGNyZWF0ZUR1cmF0aW9uKGFyZ3MpO1xuICAgICAgICBkdXJhdGlvblttZXRob2RdKGR1cmF0aW9uQ2hhbmdlKTtcbiAgICAgIH0gZWxzZSBpZiAoZHVyYXRpb24gJiYgZHVyYXRpb25bbWV0aG9kXSkge1xuICAgICAgICB2YXIgX2R1cmF0aW9uO1xuXG4gICAgICAgIC8vIFRoaXMgZ2l2ZXMgYSBmdWxsIHByb3h5IHRvIG1vbWVudC5kdXJhdGlvbiBmdW5jdGlvbnMuXG4gICAgICAgIGR1cmF0aW9uID0gKF9kdXJhdGlvbiA9IGR1cmF0aW9uKVttZXRob2RdLmFwcGx5KF9kdXJhdGlvbiwgX3RvQ29uc3VtYWJsZUFycmF5KGFyZ3MpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGR1cmF0aW9uO1xuICAgIH0pO1xuICB9XG59O1xuXG52YXIgdnVlTW9tZW50XzEgPSB2dWVNb21lbnQuaW5zdGFsbDtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gdnVlTW9tZW50O1xuZXhwb3J0cy5pbnN0YWxsID0gdnVlTW9tZW50XzE7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG5cbn0pKSk7XG4iLCIvKiFcbiAqIENoYXJ0LmpzIHYyLjguMFxuICogaHR0cHM6Ly93d3cuY2hhcnRqcy5vcmdcbiAqIChjKSAyMDE5IENoYXJ0LmpzIENvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlXG4gKi9cbihmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG50eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgPyBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoZnVuY3Rpb24oKSB7IHRyeSB7IHJldHVybiByZXF1aXJlKCdtb21lbnQnKTsgfSBjYXRjaChlKSB7IH0gfSgpKSA6XG50eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWydyZXF1aXJlJ10sIGZ1bmN0aW9uKHJlcXVpcmUpIHsgcmV0dXJuIGZhY3RvcnkoZnVuY3Rpb24oKSB7IHRyeSB7IHJldHVybiByZXF1aXJlKCdtb21lbnQnKTsgfSBjYXRjaChlKSB7IH0gfSgpKTsgfSkgOlxuKGdsb2JhbC5DaGFydCA9IGZhY3RvcnkoZ2xvYmFsLm1vbWVudCkpO1xufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbm1vbWVudCA9IG1vbWVudCAmJiBtb21lbnQuaGFzT3duUHJvcGVydHkoJ2RlZmF1bHQnKSA/IG1vbWVudFsnZGVmYXVsdCddIDogbW9tZW50O1xuXG4vKiBNSVQgbGljZW5zZSAqL1xuXG52YXIgY29udmVyc2lvbnMgPSB7XG4gIHJnYjJoc2w6IHJnYjJoc2wsXG4gIHJnYjJoc3Y6IHJnYjJoc3YsXG4gIHJnYjJod2I6IHJnYjJod2IsXG4gIHJnYjJjbXlrOiByZ2IyY215ayxcbiAgcmdiMmtleXdvcmQ6IHJnYjJrZXl3b3JkLFxuICByZ2IyeHl6OiByZ2IyeHl6LFxuICByZ2IybGFiOiByZ2IybGFiLFxuICByZ2IybGNoOiByZ2IybGNoLFxuXG4gIGhzbDJyZ2I6IGhzbDJyZ2IsXG4gIGhzbDJoc3Y6IGhzbDJoc3YsXG4gIGhzbDJod2I6IGhzbDJod2IsXG4gIGhzbDJjbXlrOiBoc2wyY215ayxcbiAgaHNsMmtleXdvcmQ6IGhzbDJrZXl3b3JkLFxuXG4gIGhzdjJyZ2I6IGhzdjJyZ2IsXG4gIGhzdjJoc2w6IGhzdjJoc2wsXG4gIGhzdjJod2I6IGhzdjJod2IsXG4gIGhzdjJjbXlrOiBoc3YyY215ayxcbiAgaHN2MmtleXdvcmQ6IGhzdjJrZXl3b3JkLFxuXG4gIGh3YjJyZ2I6IGh3YjJyZ2IsXG4gIGh3YjJoc2w6IGh3YjJoc2wsXG4gIGh3YjJoc3Y6IGh3YjJoc3YsXG4gIGh3YjJjbXlrOiBod2IyY215ayxcbiAgaHdiMmtleXdvcmQ6IGh3YjJrZXl3b3JkLFxuXG4gIGNteWsycmdiOiBjbXlrMnJnYixcbiAgY215azJoc2w6IGNteWsyaHNsLFxuICBjbXlrMmhzdjogY215azJoc3YsXG4gIGNteWsyaHdiOiBjbXlrMmh3YixcbiAgY215azJrZXl3b3JkOiBjbXlrMmtleXdvcmQsXG5cbiAga2V5d29yZDJyZ2I6IGtleXdvcmQycmdiLFxuICBrZXl3b3JkMmhzbDoga2V5d29yZDJoc2wsXG4gIGtleXdvcmQyaHN2OiBrZXl3b3JkMmhzdixcbiAga2V5d29yZDJod2I6IGtleXdvcmQyaHdiLFxuICBrZXl3b3JkMmNteWs6IGtleXdvcmQyY215ayxcbiAga2V5d29yZDJsYWI6IGtleXdvcmQybGFiLFxuICBrZXl3b3JkMnh5ejoga2V5d29yZDJ4eXosXG5cbiAgeHl6MnJnYjogeHl6MnJnYixcbiAgeHl6MmxhYjogeHl6MmxhYixcbiAgeHl6MmxjaDogeHl6MmxjaCxcblxuICBsYWIyeHl6OiBsYWIyeHl6LFxuICBsYWIycmdiOiBsYWIycmdiLFxuICBsYWIybGNoOiBsYWIybGNoLFxuXG4gIGxjaDJsYWI6IGxjaDJsYWIsXG4gIGxjaDJ4eXo6IGxjaDJ4eXosXG4gIGxjaDJyZ2I6IGxjaDJyZ2Jcbn07XG5cblxuZnVuY3Rpb24gcmdiMmhzbChyZ2IpIHtcbiAgdmFyIHIgPSByZ2JbMF0vMjU1LFxuICAgICAgZyA9IHJnYlsxXS8yNTUsXG4gICAgICBiID0gcmdiWzJdLzI1NSxcbiAgICAgIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpLFxuICAgICAgbWF4ID0gTWF0aC5tYXgociwgZywgYiksXG4gICAgICBkZWx0YSA9IG1heCAtIG1pbixcbiAgICAgIGgsIHMsIGw7XG5cbiAgaWYgKG1heCA9PSBtaW4pXG4gICAgaCA9IDA7XG4gIGVsc2UgaWYgKHIgPT0gbWF4KVxuICAgIGggPSAoZyAtIGIpIC8gZGVsdGE7XG4gIGVsc2UgaWYgKGcgPT0gbWF4KVxuICAgIGggPSAyICsgKGIgLSByKSAvIGRlbHRhO1xuICBlbHNlIGlmIChiID09IG1heClcbiAgICBoID0gNCArIChyIC0gZykvIGRlbHRhO1xuXG4gIGggPSBNYXRoLm1pbihoICogNjAsIDM2MCk7XG5cbiAgaWYgKGggPCAwKVxuICAgIGggKz0gMzYwO1xuXG4gIGwgPSAobWluICsgbWF4KSAvIDI7XG5cbiAgaWYgKG1heCA9PSBtaW4pXG4gICAgcyA9IDA7XG4gIGVsc2UgaWYgKGwgPD0gMC41KVxuICAgIHMgPSBkZWx0YSAvIChtYXggKyBtaW4pO1xuICBlbHNlXG4gICAgcyA9IGRlbHRhIC8gKDIgLSBtYXggLSBtaW4pO1xuXG4gIHJldHVybiBbaCwgcyAqIDEwMCwgbCAqIDEwMF07XG59XG5cbmZ1bmN0aW9uIHJnYjJoc3YocmdiKSB7XG4gIHZhciByID0gcmdiWzBdLFxuICAgICAgZyA9IHJnYlsxXSxcbiAgICAgIGIgPSByZ2JbMl0sXG4gICAgICBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcbiAgICAgIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLFxuICAgICAgZGVsdGEgPSBtYXggLSBtaW4sXG4gICAgICBoLCBzLCB2O1xuXG4gIGlmIChtYXggPT0gMClcbiAgICBzID0gMDtcbiAgZWxzZVxuICAgIHMgPSAoZGVsdGEvbWF4ICogMTAwMCkvMTA7XG5cbiAgaWYgKG1heCA9PSBtaW4pXG4gICAgaCA9IDA7XG4gIGVsc2UgaWYgKHIgPT0gbWF4KVxuICAgIGggPSAoZyAtIGIpIC8gZGVsdGE7XG4gIGVsc2UgaWYgKGcgPT0gbWF4KVxuICAgIGggPSAyICsgKGIgLSByKSAvIGRlbHRhO1xuICBlbHNlIGlmIChiID09IG1heClcbiAgICBoID0gNCArIChyIC0gZykgLyBkZWx0YTtcblxuICBoID0gTWF0aC5taW4oaCAqIDYwLCAzNjApO1xuXG4gIGlmIChoIDwgMClcbiAgICBoICs9IDM2MDtcblxuICB2ID0gKChtYXggLyAyNTUpICogMTAwMCkgLyAxMDtcblxuICByZXR1cm4gW2gsIHMsIHZdO1xufVxuXG5mdW5jdGlvbiByZ2IyaHdiKHJnYikge1xuICB2YXIgciA9IHJnYlswXSxcbiAgICAgIGcgPSByZ2JbMV0sXG4gICAgICBiID0gcmdiWzJdLFxuICAgICAgaCA9IHJnYjJoc2wocmdiKVswXSxcbiAgICAgIHcgPSAxLzI1NSAqIE1hdGgubWluKHIsIE1hdGgubWluKGcsIGIpKSxcbiAgICAgIGIgPSAxIC0gMS8yNTUgKiBNYXRoLm1heChyLCBNYXRoLm1heChnLCBiKSk7XG5cbiAgcmV0dXJuIFtoLCB3ICogMTAwLCBiICogMTAwXTtcbn1cblxuZnVuY3Rpb24gcmdiMmNteWsocmdiKSB7XG4gIHZhciByID0gcmdiWzBdIC8gMjU1LFxuICAgICAgZyA9IHJnYlsxXSAvIDI1NSxcbiAgICAgIGIgPSByZ2JbMl0gLyAyNTUsXG4gICAgICBjLCBtLCB5LCBrO1xuXG4gIGsgPSBNYXRoLm1pbigxIC0gciwgMSAtIGcsIDEgLSBiKTtcbiAgYyA9ICgxIC0gciAtIGspIC8gKDEgLSBrKSB8fCAwO1xuICBtID0gKDEgLSBnIC0gaykgLyAoMSAtIGspIHx8IDA7XG4gIHkgPSAoMSAtIGIgLSBrKSAvICgxIC0gaykgfHwgMDtcbiAgcmV0dXJuIFtjICogMTAwLCBtICogMTAwLCB5ICogMTAwLCBrICogMTAwXTtcbn1cblxuZnVuY3Rpb24gcmdiMmtleXdvcmQocmdiKSB7XG4gIHJldHVybiByZXZlcnNlS2V5d29yZHNbSlNPTi5zdHJpbmdpZnkocmdiKV07XG59XG5cbmZ1bmN0aW9uIHJnYjJ4eXoocmdiKSB7XG4gIHZhciByID0gcmdiWzBdIC8gMjU1LFxuICAgICAgZyA9IHJnYlsxXSAvIDI1NSxcbiAgICAgIGIgPSByZ2JbMl0gLyAyNTU7XG5cbiAgLy8gYXNzdW1lIHNSR0JcbiAgciA9IHIgPiAwLjA0MDQ1ID8gTWF0aC5wb3coKChyICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpIDogKHIgLyAxMi45Mik7XG4gIGcgPSBnID4gMC4wNDA0NSA/IE1hdGgucG93KCgoZyArIDAuMDU1KSAvIDEuMDU1KSwgMi40KSA6IChnIC8gMTIuOTIpO1xuICBiID0gYiA+IDAuMDQwNDUgPyBNYXRoLnBvdygoKGIgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCkgOiAoYiAvIDEyLjkyKTtcblxuICB2YXIgeCA9IChyICogMC40MTI0KSArIChnICogMC4zNTc2KSArIChiICogMC4xODA1KTtcbiAgdmFyIHkgPSAociAqIDAuMjEyNikgKyAoZyAqIDAuNzE1MikgKyAoYiAqIDAuMDcyMik7XG4gIHZhciB6ID0gKHIgKiAwLjAxOTMpICsgKGcgKiAwLjExOTIpICsgKGIgKiAwLjk1MDUpO1xuXG4gIHJldHVybiBbeCAqIDEwMCwgeSAqMTAwLCB6ICogMTAwXTtcbn1cblxuZnVuY3Rpb24gcmdiMmxhYihyZ2IpIHtcbiAgdmFyIHh5eiA9IHJnYjJ4eXoocmdiKSxcbiAgICAgICAgeCA9IHh5elswXSxcbiAgICAgICAgeSA9IHh5elsxXSxcbiAgICAgICAgeiA9IHh5elsyXSxcbiAgICAgICAgbCwgYSwgYjtcblxuICB4IC89IDk1LjA0NztcbiAgeSAvPSAxMDA7XG4gIHogLz0gMTA4Ljg4MztcblxuICB4ID0geCA+IDAuMDA4ODU2ID8gTWF0aC5wb3coeCwgMS8zKSA6ICg3Ljc4NyAqIHgpICsgKDE2IC8gMTE2KTtcbiAgeSA9IHkgPiAwLjAwODg1NiA/IE1hdGgucG93KHksIDEvMykgOiAoNy43ODcgKiB5KSArICgxNiAvIDExNik7XG4gIHogPSB6ID4gMC4wMDg4NTYgPyBNYXRoLnBvdyh6LCAxLzMpIDogKDcuNzg3ICogeikgKyAoMTYgLyAxMTYpO1xuXG4gIGwgPSAoMTE2ICogeSkgLSAxNjtcbiAgYSA9IDUwMCAqICh4IC0geSk7XG4gIGIgPSAyMDAgKiAoeSAtIHopO1xuXG4gIHJldHVybiBbbCwgYSwgYl07XG59XG5cbmZ1bmN0aW9uIHJnYjJsY2goYXJncykge1xuICByZXR1cm4gbGFiMmxjaChyZ2IybGFiKGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24gaHNsMnJnYihoc2wpIHtcbiAgdmFyIGggPSBoc2xbMF0gLyAzNjAsXG4gICAgICBzID0gaHNsWzFdIC8gMTAwLFxuICAgICAgbCA9IGhzbFsyXSAvIDEwMCxcbiAgICAgIHQxLCB0MiwgdDMsIHJnYiwgdmFsO1xuXG4gIGlmIChzID09IDApIHtcbiAgICB2YWwgPSBsICogMjU1O1xuICAgIHJldHVybiBbdmFsLCB2YWwsIHZhbF07XG4gIH1cblxuICBpZiAobCA8IDAuNSlcbiAgICB0MiA9IGwgKiAoMSArIHMpO1xuICBlbHNlXG4gICAgdDIgPSBsICsgcyAtIGwgKiBzO1xuICB0MSA9IDIgKiBsIC0gdDI7XG5cbiAgcmdiID0gWzAsIDAsIDBdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IDM7IGkrKykge1xuICAgIHQzID0gaCArIDEgLyAzICogLSAoaSAtIDEpO1xuICAgIHQzIDwgMCAmJiB0MysrO1xuICAgIHQzID4gMSAmJiB0My0tO1xuXG4gICAgaWYgKDYgKiB0MyA8IDEpXG4gICAgICB2YWwgPSB0MSArICh0MiAtIHQxKSAqIDYgKiB0MztcbiAgICBlbHNlIGlmICgyICogdDMgPCAxKVxuICAgICAgdmFsID0gdDI7XG4gICAgZWxzZSBpZiAoMyAqIHQzIDwgMilcbiAgICAgIHZhbCA9IHQxICsgKHQyIC0gdDEpICogKDIgLyAzIC0gdDMpICogNjtcbiAgICBlbHNlXG4gICAgICB2YWwgPSB0MTtcblxuICAgIHJnYltpXSA9IHZhbCAqIDI1NTtcbiAgfVxuXG4gIHJldHVybiByZ2I7XG59XG5cbmZ1bmN0aW9uIGhzbDJoc3YoaHNsKSB7XG4gIHZhciBoID0gaHNsWzBdLFxuICAgICAgcyA9IGhzbFsxXSAvIDEwMCxcbiAgICAgIGwgPSBoc2xbMl0gLyAxMDAsXG4gICAgICBzdiwgdjtcblxuICBpZihsID09PSAwKSB7XG4gICAgICAvLyBubyBuZWVkIHRvIGRvIGNhbGMgb24gYmxhY2tcbiAgICAgIC8vIGFsc28gYXZvaWRzIGRpdmlkZSBieSAwIGVycm9yXG4gICAgICByZXR1cm4gWzAsIDAsIDBdO1xuICB9XG5cbiAgbCAqPSAyO1xuICBzICo9IChsIDw9IDEpID8gbCA6IDIgLSBsO1xuICB2ID0gKGwgKyBzKSAvIDI7XG4gIHN2ID0gKDIgKiBzKSAvIChsICsgcyk7XG4gIHJldHVybiBbaCwgc3YgKiAxMDAsIHYgKiAxMDBdO1xufVxuXG5mdW5jdGlvbiBoc2wyaHdiKGFyZ3MpIHtcbiAgcmV0dXJuIHJnYjJod2IoaHNsMnJnYihhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIGhzbDJjbXlrKGFyZ3MpIHtcbiAgcmV0dXJuIHJnYjJjbXlrKGhzbDJyZ2IoYXJncykpO1xufVxuXG5mdW5jdGlvbiBoc2wya2V5d29yZChhcmdzKSB7XG4gIHJldHVybiByZ2Iya2V5d29yZChoc2wycmdiKGFyZ3MpKTtcbn1cblxuXG5mdW5jdGlvbiBoc3YycmdiKGhzdikge1xuICB2YXIgaCA9IGhzdlswXSAvIDYwLFxuICAgICAgcyA9IGhzdlsxXSAvIDEwMCxcbiAgICAgIHYgPSBoc3ZbMl0gLyAxMDAsXG4gICAgICBoaSA9IE1hdGguZmxvb3IoaCkgJSA2O1xuXG4gIHZhciBmID0gaCAtIE1hdGguZmxvb3IoaCksXG4gICAgICBwID0gMjU1ICogdiAqICgxIC0gcyksXG4gICAgICBxID0gMjU1ICogdiAqICgxIC0gKHMgKiBmKSksXG4gICAgICB0ID0gMjU1ICogdiAqICgxIC0gKHMgKiAoMSAtIGYpKSksXG4gICAgICB2ID0gMjU1ICogdjtcblxuICBzd2l0Y2goaGkpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZXR1cm4gW3YsIHQsIHBdO1xuICAgIGNhc2UgMTpcbiAgICAgIHJldHVybiBbcSwgdiwgcF07XG4gICAgY2FzZSAyOlxuICAgICAgcmV0dXJuIFtwLCB2LCB0XTtcbiAgICBjYXNlIDM6XG4gICAgICByZXR1cm4gW3AsIHEsIHZdO1xuICAgIGNhc2UgNDpcbiAgICAgIHJldHVybiBbdCwgcCwgdl07XG4gICAgY2FzZSA1OlxuICAgICAgcmV0dXJuIFt2LCBwLCBxXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoc3YyaHNsKGhzdikge1xuICB2YXIgaCA9IGhzdlswXSxcbiAgICAgIHMgPSBoc3ZbMV0gLyAxMDAsXG4gICAgICB2ID0gaHN2WzJdIC8gMTAwLFxuICAgICAgc2wsIGw7XG5cbiAgbCA9ICgyIC0gcykgKiB2O1xuICBzbCA9IHMgKiB2O1xuICBzbCAvPSAobCA8PSAxKSA/IGwgOiAyIC0gbDtcbiAgc2wgPSBzbCB8fCAwO1xuICBsIC89IDI7XG4gIHJldHVybiBbaCwgc2wgKiAxMDAsIGwgKiAxMDBdO1xufVxuXG5mdW5jdGlvbiBoc3YyaHdiKGFyZ3MpIHtcbiAgcmV0dXJuIHJnYjJod2IoaHN2MnJnYihhcmdzKSlcbn1cblxuZnVuY3Rpb24gaHN2MmNteWsoYXJncykge1xuICByZXR1cm4gcmdiMmNteWsoaHN2MnJnYihhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIGhzdjJrZXl3b3JkKGFyZ3MpIHtcbiAgcmV0dXJuIHJnYjJrZXl3b3JkKGhzdjJyZ2IoYXJncykpO1xufVxuXG4vLyBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MtY29sb3IvI2h3Yi10by1yZ2JcbmZ1bmN0aW9uIGh3YjJyZ2IoaHdiKSB7XG4gIHZhciBoID0gaHdiWzBdIC8gMzYwLFxuICAgICAgd2ggPSBod2JbMV0gLyAxMDAsXG4gICAgICBibCA9IGh3YlsyXSAvIDEwMCxcbiAgICAgIHJhdGlvID0gd2ggKyBibCxcbiAgICAgIGksIHYsIGYsIG47XG5cbiAgLy8gd2ggKyBibCBjYW50IGJlID4gMVxuICBpZiAocmF0aW8gPiAxKSB7XG4gICAgd2ggLz0gcmF0aW87XG4gICAgYmwgLz0gcmF0aW87XG4gIH1cblxuICBpID0gTWF0aC5mbG9vcig2ICogaCk7XG4gIHYgPSAxIC0gYmw7XG4gIGYgPSA2ICogaCAtIGk7XG4gIGlmICgoaSAmIDB4MDEpICE9IDApIHtcbiAgICBmID0gMSAtIGY7XG4gIH1cbiAgbiA9IHdoICsgZiAqICh2IC0gd2gpOyAgLy8gbGluZWFyIGludGVycG9sYXRpb25cblxuICBzd2l0Y2ggKGkpIHtcbiAgICBkZWZhdWx0OlxuICAgIGNhc2UgNjpcbiAgICBjYXNlIDA6IHIgPSB2OyBnID0gbjsgYiA9IHdoOyBicmVhaztcbiAgICBjYXNlIDE6IHIgPSBuOyBnID0gdjsgYiA9IHdoOyBicmVhaztcbiAgICBjYXNlIDI6IHIgPSB3aDsgZyA9IHY7IGIgPSBuOyBicmVhaztcbiAgICBjYXNlIDM6IHIgPSB3aDsgZyA9IG47IGIgPSB2OyBicmVhaztcbiAgICBjYXNlIDQ6IHIgPSBuOyBnID0gd2g7IGIgPSB2OyBicmVhaztcbiAgICBjYXNlIDU6IHIgPSB2OyBnID0gd2g7IGIgPSBuOyBicmVhaztcbiAgfVxuXG4gIHJldHVybiBbciAqIDI1NSwgZyAqIDI1NSwgYiAqIDI1NV07XG59XG5cbmZ1bmN0aW9uIGh3YjJoc2woYXJncykge1xuICByZXR1cm4gcmdiMmhzbChod2IycmdiKGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24gaHdiMmhzdihhcmdzKSB7XG4gIHJldHVybiByZ2IyaHN2KGh3YjJyZ2IoYXJncykpO1xufVxuXG5mdW5jdGlvbiBod2IyY215ayhhcmdzKSB7XG4gIHJldHVybiByZ2IyY215ayhod2IycmdiKGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24gaHdiMmtleXdvcmQoYXJncykge1xuICByZXR1cm4gcmdiMmtleXdvcmQoaHdiMnJnYihhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIGNteWsycmdiKGNteWspIHtcbiAgdmFyIGMgPSBjbXlrWzBdIC8gMTAwLFxuICAgICAgbSA9IGNteWtbMV0gLyAxMDAsXG4gICAgICB5ID0gY215a1syXSAvIDEwMCxcbiAgICAgIGsgPSBjbXlrWzNdIC8gMTAwLFxuICAgICAgciwgZywgYjtcblxuICByID0gMSAtIE1hdGgubWluKDEsIGMgKiAoMSAtIGspICsgayk7XG4gIGcgPSAxIC0gTWF0aC5taW4oMSwgbSAqICgxIC0gaykgKyBrKTtcbiAgYiA9IDEgLSBNYXRoLm1pbigxLCB5ICogKDEgLSBrKSArIGspO1xuICByZXR1cm4gW3IgKiAyNTUsIGcgKiAyNTUsIGIgKiAyNTVdO1xufVxuXG5mdW5jdGlvbiBjbXlrMmhzbChhcmdzKSB7XG4gIHJldHVybiByZ2IyaHNsKGNteWsycmdiKGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24gY215azJoc3YoYXJncykge1xuICByZXR1cm4gcmdiMmhzdihjbXlrMnJnYihhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIGNteWsyaHdiKGFyZ3MpIHtcbiAgcmV0dXJuIHJnYjJod2IoY215azJyZ2IoYXJncykpO1xufVxuXG5mdW5jdGlvbiBjbXlrMmtleXdvcmQoYXJncykge1xuICByZXR1cm4gcmdiMmtleXdvcmQoY215azJyZ2IoYXJncykpO1xufVxuXG5cbmZ1bmN0aW9uIHh5ejJyZ2IoeHl6KSB7XG4gIHZhciB4ID0geHl6WzBdIC8gMTAwLFxuICAgICAgeSA9IHh5elsxXSAvIDEwMCxcbiAgICAgIHogPSB4eXpbMl0gLyAxMDAsXG4gICAgICByLCBnLCBiO1xuXG4gIHIgPSAoeCAqIDMuMjQwNikgKyAoeSAqIC0xLjUzNzIpICsgKHogKiAtMC40OTg2KTtcbiAgZyA9ICh4ICogLTAuOTY4OSkgKyAoeSAqIDEuODc1OCkgKyAoeiAqIDAuMDQxNSk7XG4gIGIgPSAoeCAqIDAuMDU1NykgKyAoeSAqIC0wLjIwNDApICsgKHogKiAxLjA1NzApO1xuXG4gIC8vIGFzc3VtZSBzUkdCXG4gIHIgPSByID4gMC4wMDMxMzA4ID8gKCgxLjA1NSAqIE1hdGgucG93KHIsIDEuMCAvIDIuNCkpIC0gMC4wNTUpXG4gICAgOiByID0gKHIgKiAxMi45Mik7XG5cbiAgZyA9IGcgPiAwLjAwMzEzMDggPyAoKDEuMDU1ICogTWF0aC5wb3coZywgMS4wIC8gMi40KSkgLSAwLjA1NSlcbiAgICA6IGcgPSAoZyAqIDEyLjkyKTtcblxuICBiID0gYiA+IDAuMDAzMTMwOCA/ICgoMS4wNTUgKiBNYXRoLnBvdyhiLCAxLjAgLyAyLjQpKSAtIDAuMDU1KVxuICAgIDogYiA9IChiICogMTIuOTIpO1xuXG4gIHIgPSBNYXRoLm1pbihNYXRoLm1heCgwLCByKSwgMSk7XG4gIGcgPSBNYXRoLm1pbihNYXRoLm1heCgwLCBnKSwgMSk7XG4gIGIgPSBNYXRoLm1pbihNYXRoLm1heCgwLCBiKSwgMSk7XG5cbiAgcmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XTtcbn1cblxuZnVuY3Rpb24geHl6MmxhYih4eXopIHtcbiAgdmFyIHggPSB4eXpbMF0sXG4gICAgICB5ID0geHl6WzFdLFxuICAgICAgeiA9IHh5elsyXSxcbiAgICAgIGwsIGEsIGI7XG5cbiAgeCAvPSA5NS4wNDc7XG4gIHkgLz0gMTAwO1xuICB6IC89IDEwOC44ODM7XG5cbiAgeCA9IHggPiAwLjAwODg1NiA/IE1hdGgucG93KHgsIDEvMykgOiAoNy43ODcgKiB4KSArICgxNiAvIDExNik7XG4gIHkgPSB5ID4gMC4wMDg4NTYgPyBNYXRoLnBvdyh5LCAxLzMpIDogKDcuNzg3ICogeSkgKyAoMTYgLyAxMTYpO1xuICB6ID0geiA+IDAuMDA4ODU2ID8gTWF0aC5wb3coeiwgMS8zKSA6ICg3Ljc4NyAqIHopICsgKDE2IC8gMTE2KTtcblxuICBsID0gKDExNiAqIHkpIC0gMTY7XG4gIGEgPSA1MDAgKiAoeCAtIHkpO1xuICBiID0gMjAwICogKHkgLSB6KTtcblxuICByZXR1cm4gW2wsIGEsIGJdO1xufVxuXG5mdW5jdGlvbiB4eXoybGNoKGFyZ3MpIHtcbiAgcmV0dXJuIGxhYjJsY2goeHl6MmxhYihhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIGxhYjJ4eXoobGFiKSB7XG4gIHZhciBsID0gbGFiWzBdLFxuICAgICAgYSA9IGxhYlsxXSxcbiAgICAgIGIgPSBsYWJbMl0sXG4gICAgICB4LCB5LCB6LCB5MjtcblxuICBpZiAobCA8PSA4KSB7XG4gICAgeSA9IChsICogMTAwKSAvIDkwMy4zO1xuICAgIHkyID0gKDcuNzg3ICogKHkgLyAxMDApKSArICgxNiAvIDExNik7XG4gIH0gZWxzZSB7XG4gICAgeSA9IDEwMCAqIE1hdGgucG93KChsICsgMTYpIC8gMTE2LCAzKTtcbiAgICB5MiA9IE1hdGgucG93KHkgLyAxMDAsIDEvMyk7XG4gIH1cblxuICB4ID0geCAvIDk1LjA0NyA8PSAwLjAwODg1NiA/IHggPSAoOTUuMDQ3ICogKChhIC8gNTAwKSArIHkyIC0gKDE2IC8gMTE2KSkpIC8gNy43ODcgOiA5NS4wNDcgKiBNYXRoLnBvdygoYSAvIDUwMCkgKyB5MiwgMyk7XG5cbiAgeiA9IHogLyAxMDguODgzIDw9IDAuMDA4ODU5ID8geiA9ICgxMDguODgzICogKHkyIC0gKGIgLyAyMDApIC0gKDE2IC8gMTE2KSkpIC8gNy43ODcgOiAxMDguODgzICogTWF0aC5wb3coeTIgLSAoYiAvIDIwMCksIDMpO1xuXG4gIHJldHVybiBbeCwgeSwgel07XG59XG5cbmZ1bmN0aW9uIGxhYjJsY2gobGFiKSB7XG4gIHZhciBsID0gbGFiWzBdLFxuICAgICAgYSA9IGxhYlsxXSxcbiAgICAgIGIgPSBsYWJbMl0sXG4gICAgICBociwgaCwgYztcblxuICBociA9IE1hdGguYXRhbjIoYiwgYSk7XG4gIGggPSBociAqIDM2MCAvIDIgLyBNYXRoLlBJO1xuICBpZiAoaCA8IDApIHtcbiAgICBoICs9IDM2MDtcbiAgfVxuICBjID0gTWF0aC5zcXJ0KGEgKiBhICsgYiAqIGIpO1xuICByZXR1cm4gW2wsIGMsIGhdO1xufVxuXG5mdW5jdGlvbiBsYWIycmdiKGFyZ3MpIHtcbiAgcmV0dXJuIHh5ejJyZ2IobGFiMnh5eihhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIGxjaDJsYWIobGNoKSB7XG4gIHZhciBsID0gbGNoWzBdLFxuICAgICAgYyA9IGxjaFsxXSxcbiAgICAgIGggPSBsY2hbMl0sXG4gICAgICBhLCBiLCBocjtcblxuICBociA9IGggLyAzNjAgKiAyICogTWF0aC5QSTtcbiAgYSA9IGMgKiBNYXRoLmNvcyhocik7XG4gIGIgPSBjICogTWF0aC5zaW4oaHIpO1xuICByZXR1cm4gW2wsIGEsIGJdO1xufVxuXG5mdW5jdGlvbiBsY2gyeHl6KGFyZ3MpIHtcbiAgcmV0dXJuIGxhYjJ4eXoobGNoMmxhYihhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIGxjaDJyZ2IoYXJncykge1xuICByZXR1cm4gbGFiMnJnYihsY2gybGFiKGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24ga2V5d29yZDJyZ2Ioa2V5d29yZCkge1xuICByZXR1cm4gY3NzS2V5d29yZHNba2V5d29yZF07XG59XG5cbmZ1bmN0aW9uIGtleXdvcmQyaHNsKGFyZ3MpIHtcbiAgcmV0dXJuIHJnYjJoc2woa2V5d29yZDJyZ2IoYXJncykpO1xufVxuXG5mdW5jdGlvbiBrZXl3b3JkMmhzdihhcmdzKSB7XG4gIHJldHVybiByZ2IyaHN2KGtleXdvcmQycmdiKGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24ga2V5d29yZDJod2IoYXJncykge1xuICByZXR1cm4gcmdiMmh3YihrZXl3b3JkMnJnYihhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIGtleXdvcmQyY215ayhhcmdzKSB7XG4gIHJldHVybiByZ2IyY215ayhrZXl3b3JkMnJnYihhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIGtleXdvcmQybGFiKGFyZ3MpIHtcbiAgcmV0dXJuIHJnYjJsYWIoa2V5d29yZDJyZ2IoYXJncykpO1xufVxuXG5mdW5jdGlvbiBrZXl3b3JkMnh5eihhcmdzKSB7XG4gIHJldHVybiByZ2IyeHl6KGtleXdvcmQycmdiKGFyZ3MpKTtcbn1cblxudmFyIGNzc0tleXdvcmRzID0ge1xuICBhbGljZWJsdWU6ICBbMjQwLDI0OCwyNTVdLFxuICBhbnRpcXVld2hpdGU6IFsyNTAsMjM1LDIxNV0sXG4gIGFxdWE6IFswLDI1NSwyNTVdLFxuICBhcXVhbWFyaW5lOiBbMTI3LDI1NSwyMTJdLFxuICBhenVyZTogIFsyNDAsMjU1LDI1NV0sXG4gIGJlaWdlOiAgWzI0NSwyNDUsMjIwXSxcbiAgYmlzcXVlOiBbMjU1LDIyOCwxOTZdLFxuICBibGFjazogIFswLDAsMF0sXG4gIGJsYW5jaGVkYWxtb25kOiBbMjU1LDIzNSwyMDVdLFxuICBibHVlOiBbMCwwLDI1NV0sXG4gIGJsdWV2aW9sZXQ6IFsxMzgsNDMsMjI2XSxcbiAgYnJvd246ICBbMTY1LDQyLDQyXSxcbiAgYnVybHl3b29kOiAgWzIyMiwxODQsMTM1XSxcbiAgY2FkZXRibHVlOiAgWzk1LDE1OCwxNjBdLFxuICBjaGFydHJldXNlOiBbMTI3LDI1NSwwXSxcbiAgY2hvY29sYXRlOiAgWzIxMCwxMDUsMzBdLFxuICBjb3JhbDogIFsyNTUsMTI3LDgwXSxcbiAgY29ybmZsb3dlcmJsdWU6IFsxMDAsMTQ5LDIzN10sXG4gIGNvcm5zaWxrOiBbMjU1LDI0OCwyMjBdLFxuICBjcmltc29uOiAgWzIyMCwyMCw2MF0sXG4gIGN5YW46IFswLDI1NSwyNTVdLFxuICBkYXJrYmx1ZTogWzAsMCwxMzldLFxuICBkYXJrY3lhbjogWzAsMTM5LDEzOV0sXG4gIGRhcmtnb2xkZW5yb2Q6ICBbMTg0LDEzNCwxMV0sXG4gIGRhcmtncmF5OiBbMTY5LDE2OSwxNjldLFxuICBkYXJrZ3JlZW46ICBbMCwxMDAsMF0sXG4gIGRhcmtncmV5OiBbMTY5LDE2OSwxNjldLFxuICBkYXJra2hha2k6ICBbMTg5LDE4MywxMDddLFxuICBkYXJrbWFnZW50YTogIFsxMzksMCwxMzldLFxuICBkYXJrb2xpdmVncmVlbjogWzg1LDEwNyw0N10sXG4gIGRhcmtvcmFuZ2U6IFsyNTUsMTQwLDBdLFxuICBkYXJrb3JjaGlkOiBbMTUzLDUwLDIwNF0sXG4gIGRhcmtyZWQ6ICBbMTM5LDAsMF0sXG4gIGRhcmtzYWxtb246IFsyMzMsMTUwLDEyMl0sXG4gIGRhcmtzZWFncmVlbjogWzE0MywxODgsMTQzXSxcbiAgZGFya3NsYXRlYmx1ZTogIFs3Miw2MSwxMzldLFxuICBkYXJrc2xhdGVncmF5OiAgWzQ3LDc5LDc5XSxcbiAgZGFya3NsYXRlZ3JleTogIFs0Nyw3OSw3OV0sXG4gIGRhcmt0dXJxdW9pc2U6ICBbMCwyMDYsMjA5XSxcbiAgZGFya3Zpb2xldDogWzE0OCwwLDIxMV0sXG4gIGRlZXBwaW5rOiBbMjU1LDIwLDE0N10sXG4gIGRlZXBza3libHVlOiAgWzAsMTkxLDI1NV0sXG4gIGRpbWdyYXk6ICBbMTA1LDEwNSwxMDVdLFxuICBkaW1ncmV5OiAgWzEwNSwxMDUsMTA1XSxcbiAgZG9kZ2VyYmx1ZTogWzMwLDE0NCwyNTVdLFxuICBmaXJlYnJpY2s6ICBbMTc4LDM0LDM0XSxcbiAgZmxvcmFsd2hpdGU6ICBbMjU1LDI1MCwyNDBdLFxuICBmb3Jlc3RncmVlbjogIFszNCwxMzksMzRdLFxuICBmdWNoc2lhOiAgWzI1NSwwLDI1NV0sXG4gIGdhaW5zYm9ybzogIFsyMjAsMjIwLDIyMF0sXG4gIGdob3N0d2hpdGU6IFsyNDgsMjQ4LDI1NV0sXG4gIGdvbGQ6IFsyNTUsMjE1LDBdLFxuICBnb2xkZW5yb2Q6ICBbMjE4LDE2NSwzMl0sXG4gIGdyYXk6IFsxMjgsMTI4LDEyOF0sXG4gIGdyZWVuOiAgWzAsMTI4LDBdLFxuICBncmVlbnllbGxvdzogIFsxNzMsMjU1LDQ3XSxcbiAgZ3JleTogWzEyOCwxMjgsMTI4XSxcbiAgaG9uZXlkZXc6IFsyNDAsMjU1LDI0MF0sXG4gIGhvdHBpbms6ICBbMjU1LDEwNSwxODBdLFxuICBpbmRpYW5yZWQ6ICBbMjA1LDkyLDkyXSxcbiAgaW5kaWdvOiBbNzUsMCwxMzBdLFxuICBpdm9yeTogIFsyNTUsMjU1LDI0MF0sXG4gIGtoYWtpOiAgWzI0MCwyMzAsMTQwXSxcbiAgbGF2ZW5kZXI6IFsyMzAsMjMwLDI1MF0sXG4gIGxhdmVuZGVyYmx1c2g6ICBbMjU1LDI0MCwyNDVdLFxuICBsYXduZ3JlZW46ICBbMTI0LDI1MiwwXSxcbiAgbGVtb25jaGlmZm9uOiBbMjU1LDI1MCwyMDVdLFxuICBsaWdodGJsdWU6ICBbMTczLDIxNiwyMzBdLFxuICBsaWdodGNvcmFsOiBbMjQwLDEyOCwxMjhdLFxuICBsaWdodGN5YW46ICBbMjI0LDI1NSwyNTVdLFxuICBsaWdodGdvbGRlbnJvZHllbGxvdzogWzI1MCwyNTAsMjEwXSxcbiAgbGlnaHRncmF5OiAgWzIxMSwyMTEsMjExXSxcbiAgbGlnaHRncmVlbjogWzE0NCwyMzgsMTQ0XSxcbiAgbGlnaHRncmV5OiAgWzIxMSwyMTEsMjExXSxcbiAgbGlnaHRwaW5rOiAgWzI1NSwxODIsMTkzXSxcbiAgbGlnaHRzYWxtb246ICBbMjU1LDE2MCwxMjJdLFxuICBsaWdodHNlYWdyZWVuOiAgWzMyLDE3OCwxNzBdLFxuICBsaWdodHNreWJsdWU6IFsxMzUsMjA2LDI1MF0sXG4gIGxpZ2h0c2xhdGVncmF5OiBbMTE5LDEzNiwxNTNdLFxuICBsaWdodHNsYXRlZ3JleTogWzExOSwxMzYsMTUzXSxcbiAgbGlnaHRzdGVlbGJsdWU6IFsxNzYsMTk2LDIyMl0sXG4gIGxpZ2h0eWVsbG93OiAgWzI1NSwyNTUsMjI0XSxcbiAgbGltZTogWzAsMjU1LDBdLFxuICBsaW1lZ3JlZW46ICBbNTAsMjA1LDUwXSxcbiAgbGluZW46ICBbMjUwLDI0MCwyMzBdLFxuICBtYWdlbnRhOiAgWzI1NSwwLDI1NV0sXG4gIG1hcm9vbjogWzEyOCwwLDBdLFxuICBtZWRpdW1hcXVhbWFyaW5lOiBbMTAyLDIwNSwxNzBdLFxuICBtZWRpdW1ibHVlOiBbMCwwLDIwNV0sXG4gIG1lZGl1bW9yY2hpZDogWzE4Niw4NSwyMTFdLFxuICBtZWRpdW1wdXJwbGU6IFsxNDcsMTEyLDIxOV0sXG4gIG1lZGl1bXNlYWdyZWVuOiBbNjAsMTc5LDExM10sXG4gIG1lZGl1bXNsYXRlYmx1ZTogIFsxMjMsMTA0LDIzOF0sXG4gIG1lZGl1bXNwcmluZ2dyZWVuOiAgWzAsMjUwLDE1NF0sXG4gIG1lZGl1bXR1cnF1b2lzZTogIFs3MiwyMDksMjA0XSxcbiAgbWVkaXVtdmlvbGV0cmVkOiAgWzE5OSwyMSwxMzNdLFxuICBtaWRuaWdodGJsdWU6IFsyNSwyNSwxMTJdLFxuICBtaW50Y3JlYW06ICBbMjQ1LDI1NSwyNTBdLFxuICBtaXN0eXJvc2U6ICBbMjU1LDIyOCwyMjVdLFxuICBtb2NjYXNpbjogWzI1NSwyMjgsMTgxXSxcbiAgbmF2YWpvd2hpdGU6ICBbMjU1LDIyMiwxNzNdLFxuICBuYXZ5OiBbMCwwLDEyOF0sXG4gIG9sZGxhY2U6ICBbMjUzLDI0NSwyMzBdLFxuICBvbGl2ZTogIFsxMjgsMTI4LDBdLFxuICBvbGl2ZWRyYWI6ICBbMTA3LDE0MiwzNV0sXG4gIG9yYW5nZTogWzI1NSwxNjUsMF0sXG4gIG9yYW5nZXJlZDogIFsyNTUsNjksMF0sXG4gIG9yY2hpZDogWzIxOCwxMTIsMjE0XSxcbiAgcGFsZWdvbGRlbnJvZDogIFsyMzgsMjMyLDE3MF0sXG4gIHBhbGVncmVlbjogIFsxNTIsMjUxLDE1Ml0sXG4gIHBhbGV0dXJxdW9pc2U6ICBbMTc1LDIzOCwyMzhdLFxuICBwYWxldmlvbGV0cmVkOiAgWzIxOSwxMTIsMTQ3XSxcbiAgcGFwYXlhd2hpcDogWzI1NSwyMzksMjEzXSxcbiAgcGVhY2hwdWZmOiAgWzI1NSwyMTgsMTg1XSxcbiAgcGVydTogWzIwNSwxMzMsNjNdLFxuICBwaW5rOiBbMjU1LDE5MiwyMDNdLFxuICBwbHVtOiBbMjIxLDE2MCwyMjFdLFxuICBwb3dkZXJibHVlOiBbMTc2LDIyNCwyMzBdLFxuICBwdXJwbGU6IFsxMjgsMCwxMjhdLFxuICByZWJlY2NhcHVycGxlOiBbMTAyLCA1MSwgMTUzXSxcbiAgcmVkOiAgWzI1NSwwLDBdLFxuICByb3N5YnJvd246ICBbMTg4LDE0MywxNDNdLFxuICByb3lhbGJsdWU6ICBbNjUsMTA1LDIyNV0sXG4gIHNhZGRsZWJyb3duOiAgWzEzOSw2OSwxOV0sXG4gIHNhbG1vbjogWzI1MCwxMjgsMTE0XSxcbiAgc2FuZHlicm93bjogWzI0NCwxNjQsOTZdLFxuICBzZWFncmVlbjogWzQ2LDEzOSw4N10sXG4gIHNlYXNoZWxsOiBbMjU1LDI0NSwyMzhdLFxuICBzaWVubmE6IFsxNjAsODIsNDVdLFxuICBzaWx2ZXI6IFsxOTIsMTkyLDE5Ml0sXG4gIHNreWJsdWU6ICBbMTM1LDIwNiwyMzVdLFxuICBzbGF0ZWJsdWU6ICBbMTA2LDkwLDIwNV0sXG4gIHNsYXRlZ3JheTogIFsxMTIsMTI4LDE0NF0sXG4gIHNsYXRlZ3JleTogIFsxMTIsMTI4LDE0NF0sXG4gIHNub3c6IFsyNTUsMjUwLDI1MF0sXG4gIHNwcmluZ2dyZWVuOiAgWzAsMjU1LDEyN10sXG4gIHN0ZWVsYmx1ZTogIFs3MCwxMzAsMTgwXSxcbiAgdGFuOiAgWzIxMCwxODAsMTQwXSxcbiAgdGVhbDogWzAsMTI4LDEyOF0sXG4gIHRoaXN0bGU6ICBbMjE2LDE5MSwyMTZdLFxuICB0b21hdG86IFsyNTUsOTksNzFdLFxuICB0dXJxdW9pc2U6ICBbNjQsMjI0LDIwOF0sXG4gIHZpb2xldDogWzIzOCwxMzAsMjM4XSxcbiAgd2hlYXQ6ICBbMjQ1LDIyMiwxNzldLFxuICB3aGl0ZTogIFsyNTUsMjU1LDI1NV0sXG4gIHdoaXRlc21va2U6IFsyNDUsMjQ1LDI0NV0sXG4gIHllbGxvdzogWzI1NSwyNTUsMF0sXG4gIHllbGxvd2dyZWVuOiAgWzE1NCwyMDUsNTBdXG59O1xuXG52YXIgcmV2ZXJzZUtleXdvcmRzID0ge307XG5mb3IgKHZhciBrZXkgaW4gY3NzS2V5d29yZHMpIHtcbiAgcmV2ZXJzZUtleXdvcmRzW0pTT04uc3RyaW5naWZ5KGNzc0tleXdvcmRzW2tleV0pXSA9IGtleTtcbn1cblxudmFyIGNvbnZlcnQgPSBmdW5jdGlvbigpIHtcbiAgIHJldHVybiBuZXcgQ29udmVydGVyKCk7XG59O1xuXG5mb3IgKHZhciBmdW5jIGluIGNvbnZlcnNpb25zKSB7XG4gIC8vIGV4cG9ydCBSYXcgdmVyc2lvbnNcbiAgY29udmVydFtmdW5jICsgXCJSYXdcIl0gPSAgKGZ1bmN0aW9uKGZ1bmMpIHtcbiAgICAvLyBhY2NlcHQgYXJyYXkgb3IgcGxhaW4gYXJnc1xuICAgIHJldHVybiBmdW5jdGlvbihhcmcpIHtcbiAgICAgIGlmICh0eXBlb2YgYXJnID09IFwibnVtYmVyXCIpXG4gICAgICAgIGFyZyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICByZXR1cm4gY29udmVyc2lvbnNbZnVuY10oYXJnKTtcbiAgICB9XG4gIH0pKGZ1bmMpO1xuXG4gIHZhciBwYWlyID0gLyhcXHcrKTIoXFx3KykvLmV4ZWMoZnVuYyksXG4gICAgICBmcm9tID0gcGFpclsxXSxcbiAgICAgIHRvID0gcGFpclsyXTtcblxuICAvLyBleHBvcnQgcmdiMmhzbCBhbmQgW1wicmdiXCJdW1wiaHNsXCJdXG4gIGNvbnZlcnRbZnJvbV0gPSBjb252ZXJ0W2Zyb21dIHx8IHt9O1xuXG4gIGNvbnZlcnRbZnJvbV1bdG9dID0gY29udmVydFtmdW5jXSA9IChmdW5jdGlvbihmdW5jKSB7IFxuICAgIHJldHVybiBmdW5jdGlvbihhcmcpIHtcbiAgICAgIGlmICh0eXBlb2YgYXJnID09IFwibnVtYmVyXCIpXG4gICAgICAgIGFyZyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICBcbiAgICAgIHZhciB2YWwgPSBjb252ZXJzaW9uc1tmdW5jXShhcmcpO1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT0gXCJzdHJpbmdcIiB8fCB2YWwgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHZhbDsgLy8ga2V5d29yZFxuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKylcbiAgICAgICAgdmFsW2ldID0gTWF0aC5yb3VuZCh2YWxbaV0pO1xuICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gIH0pKGZ1bmMpO1xufVxuXG5cbi8qIENvbnZlcnRlciBkb2VzIGxhenkgY29udmVyc2lvbiBhbmQgY2FjaGluZyAqL1xudmFyIENvbnZlcnRlciA9IGZ1bmN0aW9uKCkge1xuICAgdGhpcy5jb252cyA9IHt9O1xufTtcblxuLyogRWl0aGVyIGdldCB0aGUgdmFsdWVzIGZvciBhIHNwYWNlIG9yXG4gIHNldCB0aGUgdmFsdWVzIGZvciBhIHNwYWNlLCBkZXBlbmRpbmcgb24gYXJncyAqL1xuQ29udmVydGVyLnByb3RvdHlwZS5yb3V0ZVNwYWNlID0gZnVuY3Rpb24oc3BhY2UsIGFyZ3MpIHtcbiAgIHZhciB2YWx1ZXMgPSBhcmdzWzBdO1xuICAgaWYgKHZhbHVlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBjb2xvci5yZ2IoKVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVzKHNwYWNlKTtcbiAgIH1cbiAgIC8vIGNvbG9yLnJnYigxMCwgMTAsIDEwKVxuICAgaWYgKHR5cGVvZiB2YWx1ZXMgPT0gXCJudW1iZXJcIikge1xuICAgICAgdmFsdWVzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncyk7ICAgICAgICBcbiAgIH1cblxuICAgcmV0dXJuIHRoaXMuc2V0VmFsdWVzKHNwYWNlLCB2YWx1ZXMpO1xufTtcbiAgXG4vKiBTZXQgdGhlIHZhbHVlcyBmb3IgYSBzcGFjZSwgaW52YWxpZGF0aW5nIGNhY2hlICovXG5Db252ZXJ0ZXIucHJvdG90eXBlLnNldFZhbHVlcyA9IGZ1bmN0aW9uKHNwYWNlLCB2YWx1ZXMpIHtcbiAgIHRoaXMuc3BhY2UgPSBzcGFjZTtcbiAgIHRoaXMuY29udnMgPSB7fTtcbiAgIHRoaXMuY29udnNbc3BhY2VdID0gdmFsdWVzO1xuICAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKiBHZXQgdGhlIHZhbHVlcyBmb3IgYSBzcGFjZS4gSWYgdGhlcmUncyBhbHJlYWR5XG4gIGEgY29udmVyc2lvbiBmb3IgdGhlIHNwYWNlLCBmZXRjaCBpdCwgb3RoZXJ3aXNlXG4gIGNvbXB1dGUgaXQgKi9cbkNvbnZlcnRlci5wcm90b3R5cGUuZ2V0VmFsdWVzID0gZnVuY3Rpb24oc3BhY2UpIHtcbiAgIHZhciB2YWxzID0gdGhpcy5jb252c1tzcGFjZV07XG4gICBpZiAoIXZhbHMpIHtcbiAgICAgIHZhciBmc3BhY2UgPSB0aGlzLnNwYWNlLFxuICAgICAgICAgIGZyb20gPSB0aGlzLmNvbnZzW2ZzcGFjZV07XG4gICAgICB2YWxzID0gY29udmVydFtmc3BhY2VdW3NwYWNlXShmcm9tKTtcblxuICAgICAgdGhpcy5jb252c1tzcGFjZV0gPSB2YWxzO1xuICAgfVxuICByZXR1cm4gdmFscztcbn07XG5cbltcInJnYlwiLCBcImhzbFwiLCBcImhzdlwiLCBcImNteWtcIiwgXCJrZXl3b3JkXCJdLmZvckVhY2goZnVuY3Rpb24oc3BhY2UpIHtcbiAgIENvbnZlcnRlci5wcm90b3R5cGVbc3BhY2VdID0gZnVuY3Rpb24odmFscykge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVTcGFjZShzcGFjZSwgYXJndW1lbnRzKTtcbiAgIH07XG59KTtcblxudmFyIGNvbG9yQ29udmVydCA9IGNvbnZlcnQ7XG5cbnZhciBjb2xvck5hbWUgPSB7XHJcblx0XCJhbGljZWJsdWVcIjogWzI0MCwgMjQ4LCAyNTVdLFxyXG5cdFwiYW50aXF1ZXdoaXRlXCI6IFsyNTAsIDIzNSwgMjE1XSxcclxuXHRcImFxdWFcIjogWzAsIDI1NSwgMjU1XSxcclxuXHRcImFxdWFtYXJpbmVcIjogWzEyNywgMjU1LCAyMTJdLFxyXG5cdFwiYXp1cmVcIjogWzI0MCwgMjU1LCAyNTVdLFxyXG5cdFwiYmVpZ2VcIjogWzI0NSwgMjQ1LCAyMjBdLFxyXG5cdFwiYmlzcXVlXCI6IFsyNTUsIDIyOCwgMTk2XSxcclxuXHRcImJsYWNrXCI6IFswLCAwLCAwXSxcclxuXHRcImJsYW5jaGVkYWxtb25kXCI6IFsyNTUsIDIzNSwgMjA1XSxcclxuXHRcImJsdWVcIjogWzAsIDAsIDI1NV0sXHJcblx0XCJibHVldmlvbGV0XCI6IFsxMzgsIDQzLCAyMjZdLFxyXG5cdFwiYnJvd25cIjogWzE2NSwgNDIsIDQyXSxcclxuXHRcImJ1cmx5d29vZFwiOiBbMjIyLCAxODQsIDEzNV0sXHJcblx0XCJjYWRldGJsdWVcIjogWzk1LCAxNTgsIDE2MF0sXHJcblx0XCJjaGFydHJldXNlXCI6IFsxMjcsIDI1NSwgMF0sXHJcblx0XCJjaG9jb2xhdGVcIjogWzIxMCwgMTA1LCAzMF0sXHJcblx0XCJjb3JhbFwiOiBbMjU1LCAxMjcsIDgwXSxcclxuXHRcImNvcm5mbG93ZXJibHVlXCI6IFsxMDAsIDE0OSwgMjM3XSxcclxuXHRcImNvcm5zaWxrXCI6IFsyNTUsIDI0OCwgMjIwXSxcclxuXHRcImNyaW1zb25cIjogWzIyMCwgMjAsIDYwXSxcclxuXHRcImN5YW5cIjogWzAsIDI1NSwgMjU1XSxcclxuXHRcImRhcmtibHVlXCI6IFswLCAwLCAxMzldLFxyXG5cdFwiZGFya2N5YW5cIjogWzAsIDEzOSwgMTM5XSxcclxuXHRcImRhcmtnb2xkZW5yb2RcIjogWzE4NCwgMTM0LCAxMV0sXHJcblx0XCJkYXJrZ3JheVwiOiBbMTY5LCAxNjksIDE2OV0sXHJcblx0XCJkYXJrZ3JlZW5cIjogWzAsIDEwMCwgMF0sXHJcblx0XCJkYXJrZ3JleVwiOiBbMTY5LCAxNjksIDE2OV0sXHJcblx0XCJkYXJra2hha2lcIjogWzE4OSwgMTgzLCAxMDddLFxyXG5cdFwiZGFya21hZ2VudGFcIjogWzEzOSwgMCwgMTM5XSxcclxuXHRcImRhcmtvbGl2ZWdyZWVuXCI6IFs4NSwgMTA3LCA0N10sXHJcblx0XCJkYXJrb3JhbmdlXCI6IFsyNTUsIDE0MCwgMF0sXHJcblx0XCJkYXJrb3JjaGlkXCI6IFsxNTMsIDUwLCAyMDRdLFxyXG5cdFwiZGFya3JlZFwiOiBbMTM5LCAwLCAwXSxcclxuXHRcImRhcmtzYWxtb25cIjogWzIzMywgMTUwLCAxMjJdLFxyXG5cdFwiZGFya3NlYWdyZWVuXCI6IFsxNDMsIDE4OCwgMTQzXSxcclxuXHRcImRhcmtzbGF0ZWJsdWVcIjogWzcyLCA2MSwgMTM5XSxcclxuXHRcImRhcmtzbGF0ZWdyYXlcIjogWzQ3LCA3OSwgNzldLFxyXG5cdFwiZGFya3NsYXRlZ3JleVwiOiBbNDcsIDc5LCA3OV0sXHJcblx0XCJkYXJrdHVycXVvaXNlXCI6IFswLCAyMDYsIDIwOV0sXHJcblx0XCJkYXJrdmlvbGV0XCI6IFsxNDgsIDAsIDIxMV0sXHJcblx0XCJkZWVwcGlua1wiOiBbMjU1LCAyMCwgMTQ3XSxcclxuXHRcImRlZXBza3libHVlXCI6IFswLCAxOTEsIDI1NV0sXHJcblx0XCJkaW1ncmF5XCI6IFsxMDUsIDEwNSwgMTA1XSxcclxuXHRcImRpbWdyZXlcIjogWzEwNSwgMTA1LCAxMDVdLFxyXG5cdFwiZG9kZ2VyYmx1ZVwiOiBbMzAsIDE0NCwgMjU1XSxcclxuXHRcImZpcmVicmlja1wiOiBbMTc4LCAzNCwgMzRdLFxyXG5cdFwiZmxvcmFsd2hpdGVcIjogWzI1NSwgMjUwLCAyNDBdLFxyXG5cdFwiZm9yZXN0Z3JlZW5cIjogWzM0LCAxMzksIDM0XSxcclxuXHRcImZ1Y2hzaWFcIjogWzI1NSwgMCwgMjU1XSxcclxuXHRcImdhaW5zYm9yb1wiOiBbMjIwLCAyMjAsIDIyMF0sXHJcblx0XCJnaG9zdHdoaXRlXCI6IFsyNDgsIDI0OCwgMjU1XSxcclxuXHRcImdvbGRcIjogWzI1NSwgMjE1LCAwXSxcclxuXHRcImdvbGRlbnJvZFwiOiBbMjE4LCAxNjUsIDMyXSxcclxuXHRcImdyYXlcIjogWzEyOCwgMTI4LCAxMjhdLFxyXG5cdFwiZ3JlZW5cIjogWzAsIDEyOCwgMF0sXHJcblx0XCJncmVlbnllbGxvd1wiOiBbMTczLCAyNTUsIDQ3XSxcclxuXHRcImdyZXlcIjogWzEyOCwgMTI4LCAxMjhdLFxyXG5cdFwiaG9uZXlkZXdcIjogWzI0MCwgMjU1LCAyNDBdLFxyXG5cdFwiaG90cGlua1wiOiBbMjU1LCAxMDUsIDE4MF0sXHJcblx0XCJpbmRpYW5yZWRcIjogWzIwNSwgOTIsIDkyXSxcclxuXHRcImluZGlnb1wiOiBbNzUsIDAsIDEzMF0sXHJcblx0XCJpdm9yeVwiOiBbMjU1LCAyNTUsIDI0MF0sXHJcblx0XCJraGFraVwiOiBbMjQwLCAyMzAsIDE0MF0sXHJcblx0XCJsYXZlbmRlclwiOiBbMjMwLCAyMzAsIDI1MF0sXHJcblx0XCJsYXZlbmRlcmJsdXNoXCI6IFsyNTUsIDI0MCwgMjQ1XSxcclxuXHRcImxhd25ncmVlblwiOiBbMTI0LCAyNTIsIDBdLFxyXG5cdFwibGVtb25jaGlmZm9uXCI6IFsyNTUsIDI1MCwgMjA1XSxcclxuXHRcImxpZ2h0Ymx1ZVwiOiBbMTczLCAyMTYsIDIzMF0sXHJcblx0XCJsaWdodGNvcmFsXCI6IFsyNDAsIDEyOCwgMTI4XSxcclxuXHRcImxpZ2h0Y3lhblwiOiBbMjI0LCAyNTUsIDI1NV0sXHJcblx0XCJsaWdodGdvbGRlbnJvZHllbGxvd1wiOiBbMjUwLCAyNTAsIDIxMF0sXHJcblx0XCJsaWdodGdyYXlcIjogWzIxMSwgMjExLCAyMTFdLFxyXG5cdFwibGlnaHRncmVlblwiOiBbMTQ0LCAyMzgsIDE0NF0sXHJcblx0XCJsaWdodGdyZXlcIjogWzIxMSwgMjExLCAyMTFdLFxyXG5cdFwibGlnaHRwaW5rXCI6IFsyNTUsIDE4MiwgMTkzXSxcclxuXHRcImxpZ2h0c2FsbW9uXCI6IFsyNTUsIDE2MCwgMTIyXSxcclxuXHRcImxpZ2h0c2VhZ3JlZW5cIjogWzMyLCAxNzgsIDE3MF0sXHJcblx0XCJsaWdodHNreWJsdWVcIjogWzEzNSwgMjA2LCAyNTBdLFxyXG5cdFwibGlnaHRzbGF0ZWdyYXlcIjogWzExOSwgMTM2LCAxNTNdLFxyXG5cdFwibGlnaHRzbGF0ZWdyZXlcIjogWzExOSwgMTM2LCAxNTNdLFxyXG5cdFwibGlnaHRzdGVlbGJsdWVcIjogWzE3NiwgMTk2LCAyMjJdLFxyXG5cdFwibGlnaHR5ZWxsb3dcIjogWzI1NSwgMjU1LCAyMjRdLFxyXG5cdFwibGltZVwiOiBbMCwgMjU1LCAwXSxcclxuXHRcImxpbWVncmVlblwiOiBbNTAsIDIwNSwgNTBdLFxyXG5cdFwibGluZW5cIjogWzI1MCwgMjQwLCAyMzBdLFxyXG5cdFwibWFnZW50YVwiOiBbMjU1LCAwLCAyNTVdLFxyXG5cdFwibWFyb29uXCI6IFsxMjgsIDAsIDBdLFxyXG5cdFwibWVkaXVtYXF1YW1hcmluZVwiOiBbMTAyLCAyMDUsIDE3MF0sXHJcblx0XCJtZWRpdW1ibHVlXCI6IFswLCAwLCAyMDVdLFxyXG5cdFwibWVkaXVtb3JjaGlkXCI6IFsxODYsIDg1LCAyMTFdLFxyXG5cdFwibWVkaXVtcHVycGxlXCI6IFsxNDcsIDExMiwgMjE5XSxcclxuXHRcIm1lZGl1bXNlYWdyZWVuXCI6IFs2MCwgMTc5LCAxMTNdLFxyXG5cdFwibWVkaXVtc2xhdGVibHVlXCI6IFsxMjMsIDEwNCwgMjM4XSxcclxuXHRcIm1lZGl1bXNwcmluZ2dyZWVuXCI6IFswLCAyNTAsIDE1NF0sXHJcblx0XCJtZWRpdW10dXJxdW9pc2VcIjogWzcyLCAyMDksIDIwNF0sXHJcblx0XCJtZWRpdW12aW9sZXRyZWRcIjogWzE5OSwgMjEsIDEzM10sXHJcblx0XCJtaWRuaWdodGJsdWVcIjogWzI1LCAyNSwgMTEyXSxcclxuXHRcIm1pbnRjcmVhbVwiOiBbMjQ1LCAyNTUsIDI1MF0sXHJcblx0XCJtaXN0eXJvc2VcIjogWzI1NSwgMjI4LCAyMjVdLFxyXG5cdFwibW9jY2FzaW5cIjogWzI1NSwgMjI4LCAxODFdLFxyXG5cdFwibmF2YWpvd2hpdGVcIjogWzI1NSwgMjIyLCAxNzNdLFxyXG5cdFwibmF2eVwiOiBbMCwgMCwgMTI4XSxcclxuXHRcIm9sZGxhY2VcIjogWzI1MywgMjQ1LCAyMzBdLFxyXG5cdFwib2xpdmVcIjogWzEyOCwgMTI4LCAwXSxcclxuXHRcIm9saXZlZHJhYlwiOiBbMTA3LCAxNDIsIDM1XSxcclxuXHRcIm9yYW5nZVwiOiBbMjU1LCAxNjUsIDBdLFxyXG5cdFwib3JhbmdlcmVkXCI6IFsyNTUsIDY5LCAwXSxcclxuXHRcIm9yY2hpZFwiOiBbMjE4LCAxMTIsIDIxNF0sXHJcblx0XCJwYWxlZ29sZGVucm9kXCI6IFsyMzgsIDIzMiwgMTcwXSxcclxuXHRcInBhbGVncmVlblwiOiBbMTUyLCAyNTEsIDE1Ml0sXHJcblx0XCJwYWxldHVycXVvaXNlXCI6IFsxNzUsIDIzOCwgMjM4XSxcclxuXHRcInBhbGV2aW9sZXRyZWRcIjogWzIxOSwgMTEyLCAxNDddLFxyXG5cdFwicGFwYXlhd2hpcFwiOiBbMjU1LCAyMzksIDIxM10sXHJcblx0XCJwZWFjaHB1ZmZcIjogWzI1NSwgMjE4LCAxODVdLFxyXG5cdFwicGVydVwiOiBbMjA1LCAxMzMsIDYzXSxcclxuXHRcInBpbmtcIjogWzI1NSwgMTkyLCAyMDNdLFxyXG5cdFwicGx1bVwiOiBbMjIxLCAxNjAsIDIyMV0sXHJcblx0XCJwb3dkZXJibHVlXCI6IFsxNzYsIDIyNCwgMjMwXSxcclxuXHRcInB1cnBsZVwiOiBbMTI4LCAwLCAxMjhdLFxyXG5cdFwicmViZWNjYXB1cnBsZVwiOiBbMTAyLCA1MSwgMTUzXSxcclxuXHRcInJlZFwiOiBbMjU1LCAwLCAwXSxcclxuXHRcInJvc3licm93blwiOiBbMTg4LCAxNDMsIDE0M10sXHJcblx0XCJyb3lhbGJsdWVcIjogWzY1LCAxMDUsIDIyNV0sXHJcblx0XCJzYWRkbGVicm93blwiOiBbMTM5LCA2OSwgMTldLFxyXG5cdFwic2FsbW9uXCI6IFsyNTAsIDEyOCwgMTE0XSxcclxuXHRcInNhbmR5YnJvd25cIjogWzI0NCwgMTY0LCA5Nl0sXHJcblx0XCJzZWFncmVlblwiOiBbNDYsIDEzOSwgODddLFxyXG5cdFwic2Vhc2hlbGxcIjogWzI1NSwgMjQ1LCAyMzhdLFxyXG5cdFwic2llbm5hXCI6IFsxNjAsIDgyLCA0NV0sXHJcblx0XCJzaWx2ZXJcIjogWzE5MiwgMTkyLCAxOTJdLFxyXG5cdFwic2t5Ymx1ZVwiOiBbMTM1LCAyMDYsIDIzNV0sXHJcblx0XCJzbGF0ZWJsdWVcIjogWzEwNiwgOTAsIDIwNV0sXHJcblx0XCJzbGF0ZWdyYXlcIjogWzExMiwgMTI4LCAxNDRdLFxyXG5cdFwic2xhdGVncmV5XCI6IFsxMTIsIDEyOCwgMTQ0XSxcclxuXHRcInNub3dcIjogWzI1NSwgMjUwLCAyNTBdLFxyXG5cdFwic3ByaW5nZ3JlZW5cIjogWzAsIDI1NSwgMTI3XSxcclxuXHRcInN0ZWVsYmx1ZVwiOiBbNzAsIDEzMCwgMTgwXSxcclxuXHRcInRhblwiOiBbMjEwLCAxODAsIDE0MF0sXHJcblx0XCJ0ZWFsXCI6IFswLCAxMjgsIDEyOF0sXHJcblx0XCJ0aGlzdGxlXCI6IFsyMTYsIDE5MSwgMjE2XSxcclxuXHRcInRvbWF0b1wiOiBbMjU1LCA5OSwgNzFdLFxyXG5cdFwidHVycXVvaXNlXCI6IFs2NCwgMjI0LCAyMDhdLFxyXG5cdFwidmlvbGV0XCI6IFsyMzgsIDEzMCwgMjM4XSxcclxuXHRcIndoZWF0XCI6IFsyNDUsIDIyMiwgMTc5XSxcclxuXHRcIndoaXRlXCI6IFsyNTUsIDI1NSwgMjU1XSxcclxuXHRcIndoaXRlc21va2VcIjogWzI0NSwgMjQ1LCAyNDVdLFxyXG5cdFwieWVsbG93XCI6IFsyNTUsIDI1NSwgMF0sXHJcblx0XCJ5ZWxsb3dncmVlblwiOiBbMTU0LCAyMDUsIDUwXVxyXG59O1xuXG4vKiBNSVQgbGljZW5zZSAqL1xuXG5cbnZhciBjb2xvclN0cmluZyA9IHtcbiAgIGdldFJnYmE6IGdldFJnYmEsXG4gICBnZXRIc2xhOiBnZXRIc2xhLFxuICAgZ2V0UmdiOiBnZXRSZ2IsXG4gICBnZXRIc2w6IGdldEhzbCxcbiAgIGdldEh3YjogZ2V0SHdiLFxuICAgZ2V0QWxwaGE6IGdldEFscGhhLFxuXG4gICBoZXhTdHJpbmc6IGhleFN0cmluZyxcbiAgIHJnYlN0cmluZzogcmdiU3RyaW5nLFxuICAgcmdiYVN0cmluZzogcmdiYVN0cmluZyxcbiAgIHBlcmNlbnRTdHJpbmc6IHBlcmNlbnRTdHJpbmcsXG4gICBwZXJjZW50YVN0cmluZzogcGVyY2VudGFTdHJpbmcsXG4gICBoc2xTdHJpbmc6IGhzbFN0cmluZyxcbiAgIGhzbGFTdHJpbmc6IGhzbGFTdHJpbmcsXG4gICBod2JTdHJpbmc6IGh3YlN0cmluZyxcbiAgIGtleXdvcmQ6IGtleXdvcmRcbn07XG5cbmZ1bmN0aW9uIGdldFJnYmEoc3RyaW5nKSB7XG4gICBpZiAoIXN0cmluZykge1xuICAgICAgcmV0dXJuO1xuICAgfVxuICAgdmFyIGFiYnIgPSAgL14jKFthLWZBLUYwLTldezMsNH0pJC9pLFxuICAgICAgIGhleCA9ICAvXiMoW2EtZkEtRjAtOV17Nn0oW2EtZkEtRjAtOV17Mn0pPykkL2ksXG4gICAgICAgcmdiYSA9IC9ecmdiYT9cXChcXHMqKFsrLV0/XFxkKylcXHMqLFxccyooWystXT9cXGQrKVxccyosXFxzKihbKy1dP1xcZCspXFxzKig/OixcXHMqKFsrLV0/W1xcZFxcLl0rKVxccyopP1xcKSQvaSxcbiAgICAgICBwZXIgPSAvXnJnYmE/XFwoXFxzKihbKy1dP1tcXGRcXC5dKylcXCVcXHMqLFxccyooWystXT9bXFxkXFwuXSspXFwlXFxzKixcXHMqKFsrLV0/W1xcZFxcLl0rKVxcJVxccyooPzosXFxzKihbKy1dP1tcXGRcXC5dKylcXHMqKT9cXCkkL2ksXG4gICAgICAga2V5d29yZCA9IC8oXFx3KykvO1xuXG4gICB2YXIgcmdiID0gWzAsIDAsIDBdLFxuICAgICAgIGEgPSAxLFxuICAgICAgIG1hdGNoID0gc3RyaW5nLm1hdGNoKGFiYnIpLFxuICAgICAgIGhleEFscGhhID0gXCJcIjtcbiAgIGlmIChtYXRjaCkge1xuICAgICAgbWF0Y2ggPSBtYXRjaFsxXTtcbiAgICAgIGhleEFscGhhID0gbWF0Y2hbM107XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJnYi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgcmdiW2ldID0gcGFyc2VJbnQobWF0Y2hbaV0gKyBtYXRjaFtpXSwgMTYpO1xuICAgICAgfVxuICAgICAgaWYgKGhleEFscGhhKSB7XG4gICAgICAgICBhID0gTWF0aC5yb3VuZCgocGFyc2VJbnQoaGV4QWxwaGEgKyBoZXhBbHBoYSwgMTYpIC8gMjU1KSAqIDEwMCkgLyAxMDA7XG4gICAgICB9XG4gICB9XG4gICBlbHNlIGlmIChtYXRjaCA9IHN0cmluZy5tYXRjaChoZXgpKSB7XG4gICAgICBoZXhBbHBoYSA9IG1hdGNoWzJdO1xuICAgICAgbWF0Y2ggPSBtYXRjaFsxXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmdiLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICByZ2JbaV0gPSBwYXJzZUludChtYXRjaC5zbGljZShpICogMiwgaSAqIDIgKyAyKSwgMTYpO1xuICAgICAgfVxuICAgICAgaWYgKGhleEFscGhhKSB7XG4gICAgICAgICBhID0gTWF0aC5yb3VuZCgocGFyc2VJbnQoaGV4QWxwaGEsIDE2KSAvIDI1NSkgKiAxMDApIC8gMTAwO1xuICAgICAgfVxuICAgfVxuICAgZWxzZSBpZiAobWF0Y2ggPSBzdHJpbmcubWF0Y2gocmdiYSkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmdiLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICByZ2JbaV0gPSBwYXJzZUludChtYXRjaFtpICsgMV0pO1xuICAgICAgfVxuICAgICAgYSA9IHBhcnNlRmxvYXQobWF0Y2hbNF0pO1xuICAgfVxuICAgZWxzZSBpZiAobWF0Y2ggPSBzdHJpbmcubWF0Y2gocGVyKSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZ2IubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgIHJnYltpXSA9IE1hdGgucm91bmQocGFyc2VGbG9hdChtYXRjaFtpICsgMV0pICogMi41NSk7XG4gICAgICB9XG4gICAgICBhID0gcGFyc2VGbG9hdChtYXRjaFs0XSk7XG4gICB9XG4gICBlbHNlIGlmIChtYXRjaCA9IHN0cmluZy5tYXRjaChrZXl3b3JkKSkge1xuICAgICAgaWYgKG1hdGNoWzFdID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICAgcmV0dXJuIFswLCAwLCAwLCAwXTtcbiAgICAgIH1cbiAgICAgIHJnYiA9IGNvbG9yTmFtZVttYXRjaFsxXV07XG4gICAgICBpZiAoIXJnYikge1xuICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgfVxuXG4gICBmb3IgKHZhciBpID0gMDsgaSA8IHJnYi5sZW5ndGg7IGkrKykge1xuICAgICAgcmdiW2ldID0gc2NhbGUocmdiW2ldLCAwLCAyNTUpO1xuICAgfVxuICAgaWYgKCFhICYmIGEgIT0gMCkge1xuICAgICAgYSA9IDE7XG4gICB9XG4gICBlbHNlIHtcbiAgICAgIGEgPSBzY2FsZShhLCAwLCAxKTtcbiAgIH1cbiAgIHJnYlszXSA9IGE7XG4gICByZXR1cm4gcmdiO1xufVxuXG5mdW5jdGlvbiBnZXRIc2xhKHN0cmluZykge1xuICAgaWYgKCFzdHJpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgIH1cbiAgIHZhciBoc2wgPSAvXmhzbGE/XFwoXFxzKihbKy1dP1xcZCspKD86ZGVnKT9cXHMqLFxccyooWystXT9bXFxkXFwuXSspJVxccyosXFxzKihbKy1dP1tcXGRcXC5dKyklXFxzKig/OixcXHMqKFsrLV0/W1xcZFxcLl0rKVxccyopP1xcKS87XG4gICB2YXIgbWF0Y2ggPSBzdHJpbmcubWF0Y2goaHNsKTtcbiAgIGlmIChtYXRjaCkge1xuICAgICAgdmFyIGFscGhhID0gcGFyc2VGbG9hdChtYXRjaFs0XSk7XG4gICAgICB2YXIgaCA9IHNjYWxlKHBhcnNlSW50KG1hdGNoWzFdKSwgMCwgMzYwKSxcbiAgICAgICAgICBzID0gc2NhbGUocGFyc2VGbG9hdChtYXRjaFsyXSksIDAsIDEwMCksXG4gICAgICAgICAgbCA9IHNjYWxlKHBhcnNlRmxvYXQobWF0Y2hbM10pLCAwLCAxMDApLFxuICAgICAgICAgIGEgPSBzY2FsZShpc05hTihhbHBoYSkgPyAxIDogYWxwaGEsIDAsIDEpO1xuICAgICAgcmV0dXJuIFtoLCBzLCBsLCBhXTtcbiAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0SHdiKHN0cmluZykge1xuICAgaWYgKCFzdHJpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgIH1cbiAgIHZhciBod2IgPSAvXmh3YlxcKFxccyooWystXT9cXGQrKSg/OmRlZyk/XFxzKixcXHMqKFsrLV0/W1xcZFxcLl0rKSVcXHMqLFxccyooWystXT9bXFxkXFwuXSspJVxccyooPzosXFxzKihbKy1dP1tcXGRcXC5dKylcXHMqKT9cXCkvO1xuICAgdmFyIG1hdGNoID0gc3RyaW5nLm1hdGNoKGh3Yik7XG4gICBpZiAobWF0Y2gpIHtcbiAgICB2YXIgYWxwaGEgPSBwYXJzZUZsb2F0KG1hdGNoWzRdKTtcbiAgICAgIHZhciBoID0gc2NhbGUocGFyc2VJbnQobWF0Y2hbMV0pLCAwLCAzNjApLFxuICAgICAgICAgIHcgPSBzY2FsZShwYXJzZUZsb2F0KG1hdGNoWzJdKSwgMCwgMTAwKSxcbiAgICAgICAgICBiID0gc2NhbGUocGFyc2VGbG9hdChtYXRjaFszXSksIDAsIDEwMCksXG4gICAgICAgICAgYSA9IHNjYWxlKGlzTmFOKGFscGhhKSA/IDEgOiBhbHBoYSwgMCwgMSk7XG4gICAgICByZXR1cm4gW2gsIHcsIGIsIGFdO1xuICAgfVxufVxuXG5mdW5jdGlvbiBnZXRSZ2Ioc3RyaW5nKSB7XG4gICB2YXIgcmdiYSA9IGdldFJnYmEoc3RyaW5nKTtcbiAgIHJldHVybiByZ2JhICYmIHJnYmEuc2xpY2UoMCwgMyk7XG59XG5cbmZ1bmN0aW9uIGdldEhzbChzdHJpbmcpIHtcbiAgdmFyIGhzbGEgPSBnZXRIc2xhKHN0cmluZyk7XG4gIHJldHVybiBoc2xhICYmIGhzbGEuc2xpY2UoMCwgMyk7XG59XG5cbmZ1bmN0aW9uIGdldEFscGhhKHN0cmluZykge1xuICAgdmFyIHZhbHMgPSBnZXRSZ2JhKHN0cmluZyk7XG4gICBpZiAodmFscykge1xuICAgICAgcmV0dXJuIHZhbHNbM107XG4gICB9XG4gICBlbHNlIGlmICh2YWxzID0gZ2V0SHNsYShzdHJpbmcpKSB7XG4gICAgICByZXR1cm4gdmFsc1szXTtcbiAgIH1cbiAgIGVsc2UgaWYgKHZhbHMgPSBnZXRId2Ioc3RyaW5nKSkge1xuICAgICAgcmV0dXJuIHZhbHNbM107XG4gICB9XG59XG5cbi8vIGdlbmVyYXRvcnNcbmZ1bmN0aW9uIGhleFN0cmluZyhyZ2JhLCBhKSB7XG4gICB2YXIgYSA9IChhICE9PSB1bmRlZmluZWQgJiYgcmdiYS5sZW5ndGggPT09IDMpID8gYSA6IHJnYmFbM107XG4gICByZXR1cm4gXCIjXCIgKyBoZXhEb3VibGUocmdiYVswXSkgXG4gICAgICAgICAgICAgICsgaGV4RG91YmxlKHJnYmFbMV0pXG4gICAgICAgICAgICAgICsgaGV4RG91YmxlKHJnYmFbMl0pXG4gICAgICAgICAgICAgICsgKFxuICAgICAgICAgICAgICAgICAoYSA+PSAwICYmIGEgPCAxKVxuICAgICAgICAgICAgICAgICA/IGhleERvdWJsZShNYXRoLnJvdW5kKGEgKiAyNTUpKVxuICAgICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICAgICAgKTtcbn1cblxuZnVuY3Rpb24gcmdiU3RyaW5nKHJnYmEsIGFscGhhKSB7XG4gICBpZiAoYWxwaGEgPCAxIHx8IChyZ2JhWzNdICYmIHJnYmFbM10gPCAxKSkge1xuICAgICAgcmV0dXJuIHJnYmFTdHJpbmcocmdiYSwgYWxwaGEpO1xuICAgfVxuICAgcmV0dXJuIFwicmdiKFwiICsgcmdiYVswXSArIFwiLCBcIiArIHJnYmFbMV0gKyBcIiwgXCIgKyByZ2JhWzJdICsgXCIpXCI7XG59XG5cbmZ1bmN0aW9uIHJnYmFTdHJpbmcocmdiYSwgYWxwaGEpIHtcbiAgIGlmIChhbHBoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBhbHBoYSA9IChyZ2JhWzNdICE9PSB1bmRlZmluZWQgPyByZ2JhWzNdIDogMSk7XG4gICB9XG4gICByZXR1cm4gXCJyZ2JhKFwiICsgcmdiYVswXSArIFwiLCBcIiArIHJnYmFbMV0gKyBcIiwgXCIgKyByZ2JhWzJdXG4gICAgICAgICAgICsgXCIsIFwiICsgYWxwaGEgKyBcIilcIjtcbn1cblxuZnVuY3Rpb24gcGVyY2VudFN0cmluZyhyZ2JhLCBhbHBoYSkge1xuICAgaWYgKGFscGhhIDwgMSB8fCAocmdiYVszXSAmJiByZ2JhWzNdIDwgMSkpIHtcbiAgICAgIHJldHVybiBwZXJjZW50YVN0cmluZyhyZ2JhLCBhbHBoYSk7XG4gICB9XG4gICB2YXIgciA9IE1hdGgucm91bmQocmdiYVswXS8yNTUgKiAxMDApLFxuICAgICAgIGcgPSBNYXRoLnJvdW5kKHJnYmFbMV0vMjU1ICogMTAwKSxcbiAgICAgICBiID0gTWF0aC5yb3VuZChyZ2JhWzJdLzI1NSAqIDEwMCk7XG5cbiAgIHJldHVybiBcInJnYihcIiArIHIgKyBcIiUsIFwiICsgZyArIFwiJSwgXCIgKyBiICsgXCIlKVwiO1xufVxuXG5mdW5jdGlvbiBwZXJjZW50YVN0cmluZyhyZ2JhLCBhbHBoYSkge1xuICAgdmFyIHIgPSBNYXRoLnJvdW5kKHJnYmFbMF0vMjU1ICogMTAwKSxcbiAgICAgICBnID0gTWF0aC5yb3VuZChyZ2JhWzFdLzI1NSAqIDEwMCksXG4gICAgICAgYiA9IE1hdGgucm91bmQocmdiYVsyXS8yNTUgKiAxMDApO1xuICAgcmV0dXJuIFwicmdiYShcIiArIHIgKyBcIiUsIFwiICsgZyArIFwiJSwgXCIgKyBiICsgXCIlLCBcIiArIChhbHBoYSB8fCByZ2JhWzNdIHx8IDEpICsgXCIpXCI7XG59XG5cbmZ1bmN0aW9uIGhzbFN0cmluZyhoc2xhLCBhbHBoYSkge1xuICAgaWYgKGFscGhhIDwgMSB8fCAoaHNsYVszXSAmJiBoc2xhWzNdIDwgMSkpIHtcbiAgICAgIHJldHVybiBoc2xhU3RyaW5nKGhzbGEsIGFscGhhKTtcbiAgIH1cbiAgIHJldHVybiBcImhzbChcIiArIGhzbGFbMF0gKyBcIiwgXCIgKyBoc2xhWzFdICsgXCIlLCBcIiArIGhzbGFbMl0gKyBcIiUpXCI7XG59XG5cbmZ1bmN0aW9uIGhzbGFTdHJpbmcoaHNsYSwgYWxwaGEpIHtcbiAgIGlmIChhbHBoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBhbHBoYSA9IChoc2xhWzNdICE9PSB1bmRlZmluZWQgPyBoc2xhWzNdIDogMSk7XG4gICB9XG4gICByZXR1cm4gXCJoc2xhKFwiICsgaHNsYVswXSArIFwiLCBcIiArIGhzbGFbMV0gKyBcIiUsIFwiICsgaHNsYVsyXSArIFwiJSwgXCJcbiAgICAgICAgICAgKyBhbHBoYSArIFwiKVwiO1xufVxuXG4vLyBod2IgaXMgYSBiaXQgZGlmZmVyZW50IHRoYW4gcmdiKGEpICYgaHNsKGEpIHNpbmNlIHRoZXJlIGlzIG5vIGFscGhhIHNwZWNpZmljIHN5bnRheFxuLy8gKGh3YiBoYXZlIGFscGhhIG9wdGlvbmFsICYgMSBpcyBkZWZhdWx0IHZhbHVlKVxuZnVuY3Rpb24gaHdiU3RyaW5nKGh3YiwgYWxwaGEpIHtcbiAgIGlmIChhbHBoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBhbHBoYSA9IChod2JbM10gIT09IHVuZGVmaW5lZCA/IGh3YlszXSA6IDEpO1xuICAgfVxuICAgcmV0dXJuIFwiaHdiKFwiICsgaHdiWzBdICsgXCIsIFwiICsgaHdiWzFdICsgXCIlLCBcIiArIGh3YlsyXSArIFwiJVwiXG4gICAgICAgICAgICsgKGFscGhhICE9PSB1bmRlZmluZWQgJiYgYWxwaGEgIT09IDEgPyBcIiwgXCIgKyBhbHBoYSA6IFwiXCIpICsgXCIpXCI7XG59XG5cbmZ1bmN0aW9uIGtleXdvcmQocmdiKSB7XG4gIHJldHVybiByZXZlcnNlTmFtZXNbcmdiLnNsaWNlKDAsIDMpXTtcbn1cblxuLy8gaGVscGVyc1xuZnVuY3Rpb24gc2NhbGUobnVtLCBtaW4sIG1heCkge1xuICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KG1pbiwgbnVtKSwgbWF4KTtcbn1cblxuZnVuY3Rpb24gaGV4RG91YmxlKG51bSkge1xuICB2YXIgc3RyID0gbnVtLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICByZXR1cm4gKHN0ci5sZW5ndGggPCAyKSA/IFwiMFwiICsgc3RyIDogc3RyO1xufVxuXG5cbi8vY3JlYXRlIGEgbGlzdCBvZiByZXZlcnNlIGNvbG9yIG5hbWVzXG52YXIgcmV2ZXJzZU5hbWVzID0ge307XG5mb3IgKHZhciBuYW1lIGluIGNvbG9yTmFtZSkge1xuICAgcmV2ZXJzZU5hbWVzW2NvbG9yTmFtZVtuYW1lXV0gPSBuYW1lO1xufVxuXG4vKiBNSVQgbGljZW5zZSAqL1xuXG5cblxudmFyIENvbG9yID0gZnVuY3Rpb24gKG9iaikge1xuXHRpZiAob2JqIGluc3RhbmNlb2YgQ29sb3IpIHtcblx0XHRyZXR1cm4gb2JqO1xuXHR9XG5cdGlmICghKHRoaXMgaW5zdGFuY2VvZiBDb2xvcikpIHtcblx0XHRyZXR1cm4gbmV3IENvbG9yKG9iaik7XG5cdH1cblxuXHR0aGlzLnZhbGlkID0gZmFsc2U7XG5cdHRoaXMudmFsdWVzID0ge1xuXHRcdHJnYjogWzAsIDAsIDBdLFxuXHRcdGhzbDogWzAsIDAsIDBdLFxuXHRcdGhzdjogWzAsIDAsIDBdLFxuXHRcdGh3YjogWzAsIDAsIDBdLFxuXHRcdGNteWs6IFswLCAwLCAwLCAwXSxcblx0XHRhbHBoYTogMVxuXHR9O1xuXG5cdC8vIHBhcnNlIENvbG9yKCkgYXJndW1lbnRcblx0dmFyIHZhbHM7XG5cdGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuXHRcdHZhbHMgPSBjb2xvclN0cmluZy5nZXRSZ2JhKG9iaik7XG5cdFx0aWYgKHZhbHMpIHtcblx0XHRcdHRoaXMuc2V0VmFsdWVzKCdyZ2InLCB2YWxzKTtcblx0XHR9IGVsc2UgaWYgKHZhbHMgPSBjb2xvclN0cmluZy5nZXRIc2xhKG9iaikpIHtcblx0XHRcdHRoaXMuc2V0VmFsdWVzKCdoc2wnLCB2YWxzKTtcblx0XHR9IGVsc2UgaWYgKHZhbHMgPSBjb2xvclN0cmluZy5nZXRId2Iob2JqKSkge1xuXHRcdFx0dGhpcy5zZXRWYWx1ZXMoJ2h3YicsIHZhbHMpO1xuXHRcdH1cblx0fSBlbHNlIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuXHRcdHZhbHMgPSBvYmo7XG5cdFx0aWYgKHZhbHMuciAhPT0gdW5kZWZpbmVkIHx8IHZhbHMucmVkICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuc2V0VmFsdWVzKCdyZ2InLCB2YWxzKTtcblx0XHR9IGVsc2UgaWYgKHZhbHMubCAhPT0gdW5kZWZpbmVkIHx8IHZhbHMubGlnaHRuZXNzICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuc2V0VmFsdWVzKCdoc2wnLCB2YWxzKTtcblx0XHR9IGVsc2UgaWYgKHZhbHMudiAhPT0gdW5kZWZpbmVkIHx8IHZhbHMudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhpcy5zZXRWYWx1ZXMoJ2hzdicsIHZhbHMpO1xuXHRcdH0gZWxzZSBpZiAodmFscy53ICE9PSB1bmRlZmluZWQgfHwgdmFscy53aGl0ZW5lc3MgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhpcy5zZXRWYWx1ZXMoJ2h3YicsIHZhbHMpO1xuXHRcdH0gZWxzZSBpZiAodmFscy5jICE9PSB1bmRlZmluZWQgfHwgdmFscy5jeWFuICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuc2V0VmFsdWVzKCdjbXlrJywgdmFscyk7XG5cdFx0fVxuXHR9XG59O1xuXG5Db2xvci5wcm90b3R5cGUgPSB7XG5cdGlzVmFsaWQ6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gdGhpcy52YWxpZDtcblx0fSxcblx0cmdiOiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2V0U3BhY2UoJ3JnYicsIGFyZ3VtZW50cyk7XG5cdH0sXG5cdGhzbDogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiB0aGlzLnNldFNwYWNlKCdoc2wnLCBhcmd1bWVudHMpO1xuXHR9LFxuXHRoc3Y6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gdGhpcy5zZXRTcGFjZSgnaHN2JywgYXJndW1lbnRzKTtcblx0fSxcblx0aHdiOiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2V0U3BhY2UoJ2h3YicsIGFyZ3VtZW50cyk7XG5cdH0sXG5cdGNteWs6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gdGhpcy5zZXRTcGFjZSgnY215aycsIGFyZ3VtZW50cyk7XG5cdH0sXG5cblx0cmdiQXJyYXk6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gdGhpcy52YWx1ZXMucmdiO1xuXHR9LFxuXHRoc2xBcnJheTogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiB0aGlzLnZhbHVlcy5oc2w7XG5cdH0sXG5cdGhzdkFycmF5OiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHRoaXMudmFsdWVzLmhzdjtcblx0fSxcblx0aHdiQXJyYXk6IGZ1bmN0aW9uICgpIHtcblx0XHR2YXIgdmFsdWVzID0gdGhpcy52YWx1ZXM7XG5cdFx0aWYgKHZhbHVlcy5hbHBoYSAhPT0gMSkge1xuXHRcdFx0cmV0dXJuIHZhbHVlcy5od2IuY29uY2F0KFt2YWx1ZXMuYWxwaGFdKTtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbHVlcy5od2I7XG5cdH0sXG5cdGNteWtBcnJheTogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiB0aGlzLnZhbHVlcy5jbXlrO1xuXHR9LFxuXHRyZ2JhQXJyYXk6IGZ1bmN0aW9uICgpIHtcblx0XHR2YXIgdmFsdWVzID0gdGhpcy52YWx1ZXM7XG5cdFx0cmV0dXJuIHZhbHVlcy5yZ2IuY29uY2F0KFt2YWx1ZXMuYWxwaGFdKTtcblx0fSxcblx0aHNsYUFycmF5OiBmdW5jdGlvbiAoKSB7XG5cdFx0dmFyIHZhbHVlcyA9IHRoaXMudmFsdWVzO1xuXHRcdHJldHVybiB2YWx1ZXMuaHNsLmNvbmNhdChbdmFsdWVzLmFscGhhXSk7XG5cdH0sXG5cdGFscGhhOiBmdW5jdGlvbiAodmFsKSB7XG5cdFx0aWYgKHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy52YWx1ZXMuYWxwaGE7XG5cdFx0fVxuXHRcdHRoaXMuc2V0VmFsdWVzKCdhbHBoYScsIHZhbCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0cmVkOiBmdW5jdGlvbiAodmFsKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2V0Q2hhbm5lbCgncmdiJywgMCwgdmFsKTtcblx0fSxcblx0Z3JlZW46IGZ1bmN0aW9uICh2YWwpIHtcblx0XHRyZXR1cm4gdGhpcy5zZXRDaGFubmVsKCdyZ2InLCAxLCB2YWwpO1xuXHR9LFxuXHRibHVlOiBmdW5jdGlvbiAodmFsKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2V0Q2hhbm5lbCgncmdiJywgMiwgdmFsKTtcblx0fSxcblx0aHVlOiBmdW5jdGlvbiAodmFsKSB7XG5cdFx0aWYgKHZhbCkge1xuXHRcdFx0dmFsICU9IDM2MDtcblx0XHRcdHZhbCA9IHZhbCA8IDAgPyAzNjAgKyB2YWwgOiB2YWw7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnNldENoYW5uZWwoJ2hzbCcsIDAsIHZhbCk7XG5cdH0sXG5cdHNhdHVyYXRpb246IGZ1bmN0aW9uICh2YWwpIHtcblx0XHRyZXR1cm4gdGhpcy5zZXRDaGFubmVsKCdoc2wnLCAxLCB2YWwpO1xuXHR9LFxuXHRsaWdodG5lc3M6IGZ1bmN0aW9uICh2YWwpIHtcblx0XHRyZXR1cm4gdGhpcy5zZXRDaGFubmVsKCdoc2wnLCAyLCB2YWwpO1xuXHR9LFxuXHRzYXR1cmF0aW9udjogZnVuY3Rpb24gKHZhbCkge1xuXHRcdHJldHVybiB0aGlzLnNldENoYW5uZWwoJ2hzdicsIDEsIHZhbCk7XG5cdH0sXG5cdHdoaXRlbmVzczogZnVuY3Rpb24gKHZhbCkge1xuXHRcdHJldHVybiB0aGlzLnNldENoYW5uZWwoJ2h3YicsIDEsIHZhbCk7XG5cdH0sXG5cdGJsYWNrbmVzczogZnVuY3Rpb24gKHZhbCkge1xuXHRcdHJldHVybiB0aGlzLnNldENoYW5uZWwoJ2h3YicsIDIsIHZhbCk7XG5cdH0sXG5cdHZhbHVlOiBmdW5jdGlvbiAodmFsKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2V0Q2hhbm5lbCgnaHN2JywgMiwgdmFsKTtcblx0fSxcblx0Y3lhbjogZnVuY3Rpb24gKHZhbCkge1xuXHRcdHJldHVybiB0aGlzLnNldENoYW5uZWwoJ2NteWsnLCAwLCB2YWwpO1xuXHR9LFxuXHRtYWdlbnRhOiBmdW5jdGlvbiAodmFsKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2V0Q2hhbm5lbCgnY215aycsIDEsIHZhbCk7XG5cdH0sXG5cdHllbGxvdzogZnVuY3Rpb24gKHZhbCkge1xuXHRcdHJldHVybiB0aGlzLnNldENoYW5uZWwoJ2NteWsnLCAyLCB2YWwpO1xuXHR9LFxuXHRibGFjazogZnVuY3Rpb24gKHZhbCkge1xuXHRcdHJldHVybiB0aGlzLnNldENoYW5uZWwoJ2NteWsnLCAzLCB2YWwpO1xuXHR9LFxuXG5cdGhleFN0cmluZzogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiBjb2xvclN0cmluZy5oZXhTdHJpbmcodGhpcy52YWx1ZXMucmdiKTtcblx0fSxcblx0cmdiU3RyaW5nOiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIGNvbG9yU3RyaW5nLnJnYlN0cmluZyh0aGlzLnZhbHVlcy5yZ2IsIHRoaXMudmFsdWVzLmFscGhhKTtcblx0fSxcblx0cmdiYVN0cmluZzogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiBjb2xvclN0cmluZy5yZ2JhU3RyaW5nKHRoaXMudmFsdWVzLnJnYiwgdGhpcy52YWx1ZXMuYWxwaGEpO1xuXHR9LFxuXHRwZXJjZW50U3RyaW5nOiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIGNvbG9yU3RyaW5nLnBlcmNlbnRTdHJpbmcodGhpcy52YWx1ZXMucmdiLCB0aGlzLnZhbHVlcy5hbHBoYSk7XG5cdH0sXG5cdGhzbFN0cmluZzogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiBjb2xvclN0cmluZy5oc2xTdHJpbmcodGhpcy52YWx1ZXMuaHNsLCB0aGlzLnZhbHVlcy5hbHBoYSk7XG5cdH0sXG5cdGhzbGFTdHJpbmc6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gY29sb3JTdHJpbmcuaHNsYVN0cmluZyh0aGlzLnZhbHVlcy5oc2wsIHRoaXMudmFsdWVzLmFscGhhKTtcblx0fSxcblx0aHdiU3RyaW5nOiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIGNvbG9yU3RyaW5nLmh3YlN0cmluZyh0aGlzLnZhbHVlcy5od2IsIHRoaXMudmFsdWVzLmFscGhhKTtcblx0fSxcblx0a2V5d29yZDogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiBjb2xvclN0cmluZy5rZXl3b3JkKHRoaXMudmFsdWVzLnJnYiwgdGhpcy52YWx1ZXMuYWxwaGEpO1xuXHR9LFxuXG5cdHJnYk51bWJlcjogZnVuY3Rpb24gKCkge1xuXHRcdHZhciByZ2IgPSB0aGlzLnZhbHVlcy5yZ2I7XG5cdFx0cmV0dXJuIChyZ2JbMF0gPDwgMTYpIHwgKHJnYlsxXSA8PCA4KSB8IHJnYlsyXTtcblx0fSxcblxuXHRsdW1pbm9zaXR5OiBmdW5jdGlvbiAoKSB7XG5cdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvV0NBRzIwLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuXHRcdHZhciByZ2IgPSB0aGlzLnZhbHVlcy5yZ2I7XG5cdFx0dmFyIGx1bSA9IFtdO1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgcmdiLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgY2hhbiA9IHJnYltpXSAvIDI1NTtcblx0XHRcdGx1bVtpXSA9IChjaGFuIDw9IDAuMDM5MjgpID8gY2hhbiAvIDEyLjkyIDogTWF0aC5wb3coKChjaGFuICsgMC4wNTUpIC8gMS4wNTUpLCAyLjQpO1xuXHRcdH1cblx0XHRyZXR1cm4gMC4yMTI2ICogbHVtWzBdICsgMC43MTUyICogbHVtWzFdICsgMC4wNzIyICogbHVtWzJdO1xuXHR9LFxuXG5cdGNvbnRyYXN0OiBmdW5jdGlvbiAoY29sb3IyKSB7XG5cdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvV0NBRzIwLyNjb250cmFzdC1yYXRpb2RlZlxuXHRcdHZhciBsdW0xID0gdGhpcy5sdW1pbm9zaXR5KCk7XG5cdFx0dmFyIGx1bTIgPSBjb2xvcjIubHVtaW5vc2l0eSgpO1xuXHRcdGlmIChsdW0xID4gbHVtMikge1xuXHRcdFx0cmV0dXJuIChsdW0xICsgMC4wNSkgLyAobHVtMiArIDAuMDUpO1xuXHRcdH1cblx0XHRyZXR1cm4gKGx1bTIgKyAwLjA1KSAvIChsdW0xICsgMC4wNSk7XG5cdH0sXG5cblx0bGV2ZWw6IGZ1bmN0aW9uIChjb2xvcjIpIHtcblx0XHR2YXIgY29udHJhc3RSYXRpbyA9IHRoaXMuY29udHJhc3QoY29sb3IyKTtcblx0XHRpZiAoY29udHJhc3RSYXRpbyA+PSA3LjEpIHtcblx0XHRcdHJldHVybiAnQUFBJztcblx0XHR9XG5cblx0XHRyZXR1cm4gKGNvbnRyYXN0UmF0aW8gPj0gNC41KSA/ICdBQScgOiAnJztcblx0fSxcblxuXHRkYXJrOiBmdW5jdGlvbiAoKSB7XG5cdFx0Ly8gWUlRIGVxdWF0aW9uIGZyb20gaHR0cDovLzI0d2F5cy5vcmcvMjAxMC9jYWxjdWxhdGluZy1jb2xvci1jb250cmFzdFxuXHRcdHZhciByZ2IgPSB0aGlzLnZhbHVlcy5yZ2I7XG5cdFx0dmFyIHlpcSA9IChyZ2JbMF0gKiAyOTkgKyByZ2JbMV0gKiA1ODcgKyByZ2JbMl0gKiAxMTQpIC8gMTAwMDtcblx0XHRyZXR1cm4geWlxIDwgMTI4O1xuXHR9LFxuXG5cdGxpZ2h0OiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuICF0aGlzLmRhcmsoKTtcblx0fSxcblxuXHRuZWdhdGU6IGZ1bmN0aW9uICgpIHtcblx0XHR2YXIgcmdiID0gW107XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAzOyBpKyspIHtcblx0XHRcdHJnYltpXSA9IDI1NSAtIHRoaXMudmFsdWVzLnJnYltpXTtcblx0XHR9XG5cdFx0dGhpcy5zZXRWYWx1ZXMoJ3JnYicsIHJnYik7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0bGlnaHRlbjogZnVuY3Rpb24gKHJhdGlvKSB7XG5cdFx0dmFyIGhzbCA9IHRoaXMudmFsdWVzLmhzbDtcblx0XHRoc2xbMl0gKz0gaHNsWzJdICogcmF0aW87XG5cdFx0dGhpcy5zZXRWYWx1ZXMoJ2hzbCcsIGhzbCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0ZGFya2VuOiBmdW5jdGlvbiAocmF0aW8pIHtcblx0XHR2YXIgaHNsID0gdGhpcy52YWx1ZXMuaHNsO1xuXHRcdGhzbFsyXSAtPSBoc2xbMl0gKiByYXRpbztcblx0XHR0aGlzLnNldFZhbHVlcygnaHNsJywgaHNsKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRzYXR1cmF0ZTogZnVuY3Rpb24gKHJhdGlvKSB7XG5cdFx0dmFyIGhzbCA9IHRoaXMudmFsdWVzLmhzbDtcblx0XHRoc2xbMV0gKz0gaHNsWzFdICogcmF0aW87XG5cdFx0dGhpcy5zZXRWYWx1ZXMoJ2hzbCcsIGhzbCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0ZGVzYXR1cmF0ZTogZnVuY3Rpb24gKHJhdGlvKSB7XG5cdFx0dmFyIGhzbCA9IHRoaXMudmFsdWVzLmhzbDtcblx0XHRoc2xbMV0gLT0gaHNsWzFdICogcmF0aW87XG5cdFx0dGhpcy5zZXRWYWx1ZXMoJ2hzbCcsIGhzbCk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0d2hpdGVuOiBmdW5jdGlvbiAocmF0aW8pIHtcblx0XHR2YXIgaHdiID0gdGhpcy52YWx1ZXMuaHdiO1xuXHRcdGh3YlsxXSArPSBod2JbMV0gKiByYXRpbztcblx0XHR0aGlzLnNldFZhbHVlcygnaHdiJywgaHdiKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRibGFja2VuOiBmdW5jdGlvbiAocmF0aW8pIHtcblx0XHR2YXIgaHdiID0gdGhpcy52YWx1ZXMuaHdiO1xuXHRcdGh3YlsyXSArPSBod2JbMl0gKiByYXRpbztcblx0XHR0aGlzLnNldFZhbHVlcygnaHdiJywgaHdiKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRncmV5c2NhbGU6IGZ1bmN0aW9uICgpIHtcblx0XHR2YXIgcmdiID0gdGhpcy52YWx1ZXMucmdiO1xuXHRcdC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvR3JheXNjYWxlI0NvbnZlcnRpbmdfY29sb3JfdG9fZ3JheXNjYWxlXG5cdFx0dmFyIHZhbCA9IHJnYlswXSAqIDAuMyArIHJnYlsxXSAqIDAuNTkgKyByZ2JbMl0gKiAwLjExO1xuXHRcdHRoaXMuc2V0VmFsdWVzKCdyZ2InLCBbdmFsLCB2YWwsIHZhbF0pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdGNsZWFyZXI6IGZ1bmN0aW9uIChyYXRpbykge1xuXHRcdHZhciBhbHBoYSA9IHRoaXMudmFsdWVzLmFscGhhO1xuXHRcdHRoaXMuc2V0VmFsdWVzKCdhbHBoYScsIGFscGhhIC0gKGFscGhhICogcmF0aW8pKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRvcGFxdWVyOiBmdW5jdGlvbiAocmF0aW8pIHtcblx0XHR2YXIgYWxwaGEgPSB0aGlzLnZhbHVlcy5hbHBoYTtcblx0XHR0aGlzLnNldFZhbHVlcygnYWxwaGEnLCBhbHBoYSArIChhbHBoYSAqIHJhdGlvKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0cm90YXRlOiBmdW5jdGlvbiAoZGVncmVlcykge1xuXHRcdHZhciBoc2wgPSB0aGlzLnZhbHVlcy5oc2w7XG5cdFx0dmFyIGh1ZSA9IChoc2xbMF0gKyBkZWdyZWVzKSAlIDM2MDtcblx0XHRoc2xbMF0gPSBodWUgPCAwID8gMzYwICsgaHVlIDogaHVlO1xuXHRcdHRoaXMuc2V0VmFsdWVzKCdoc2wnLCBoc2wpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBQb3J0ZWQgZnJvbSBzYXNzIGltcGxlbWVudGF0aW9uIGluIENcblx0ICogaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9ibG9iLzBlNmI0YTI4NTAwOTIzNTZhYTNlY2UwN2M2YjI0OWYwMjIxY2FjZWQvZnVuY3Rpb25zLmNwcCNMMjA5XG5cdCAqL1xuXHRtaXg6IGZ1bmN0aW9uIChtaXhpbkNvbG9yLCB3ZWlnaHQpIHtcblx0XHR2YXIgY29sb3IxID0gdGhpcztcblx0XHR2YXIgY29sb3IyID0gbWl4aW5Db2xvcjtcblx0XHR2YXIgcCA9IHdlaWdodCA9PT0gdW5kZWZpbmVkID8gMC41IDogd2VpZ2h0O1xuXG5cdFx0dmFyIHcgPSAyICogcCAtIDE7XG5cdFx0dmFyIGEgPSBjb2xvcjEuYWxwaGEoKSAtIGNvbG9yMi5hbHBoYSgpO1xuXG5cdFx0dmFyIHcxID0gKCgodyAqIGEgPT09IC0xKSA/IHcgOiAodyArIGEpIC8gKDEgKyB3ICogYSkpICsgMSkgLyAyLjA7XG5cdFx0dmFyIHcyID0gMSAtIHcxO1xuXG5cdFx0cmV0dXJuIHRoaXNcblx0XHRcdC5yZ2IoXG5cdFx0XHRcdHcxICogY29sb3IxLnJlZCgpICsgdzIgKiBjb2xvcjIucmVkKCksXG5cdFx0XHRcdHcxICogY29sb3IxLmdyZWVuKCkgKyB3MiAqIGNvbG9yMi5ncmVlbigpLFxuXHRcdFx0XHR3MSAqIGNvbG9yMS5ibHVlKCkgKyB3MiAqIGNvbG9yMi5ibHVlKClcblx0XHRcdClcblx0XHRcdC5hbHBoYShjb2xvcjEuYWxwaGEoKSAqIHAgKyBjb2xvcjIuYWxwaGEoKSAqICgxIC0gcCkpO1xuXHR9LFxuXG5cdHRvSlNPTjogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiB0aGlzLnJnYigpO1xuXHR9LFxuXG5cdGNsb25lOiBmdW5jdGlvbiAoKSB7XG5cdFx0Ly8gTk9URShTQik6IHVzaW5nIG5vZGUtY2xvbmUgY3JlYXRlcyBhIGRlcGVuZGVuY3kgdG8gQnVmZmVyIHdoZW4gdXNpbmcgYnJvd3NlcmlmeSxcblx0XHQvLyBtYWtpbmcgdGhlIGZpbmFsIGJ1aWxkIHdheSB0byBiaWcgdG8gZW1iZWQgaW4gQ2hhcnQuanMuIFNvIGxldCdzIGRvIGl0IG1hbnVhbGx5LFxuXHRcdC8vIGFzc3VtaW5nIHRoYXQgdmFsdWVzIHRvIGNsb25lIGFyZSAxIGRpbWVuc2lvbiBhcnJheXMgY29udGFpbmluZyBvbmx5IG51bWJlcnMsXG5cdFx0Ly8gZXhjZXB0ICdhbHBoYScgd2hpY2ggaXMgYSBudW1iZXIuXG5cdFx0dmFyIHJlc3VsdCA9IG5ldyBDb2xvcigpO1xuXHRcdHZhciBzb3VyY2UgPSB0aGlzLnZhbHVlcztcblx0XHR2YXIgdGFyZ2V0ID0gcmVzdWx0LnZhbHVlcztcblx0XHR2YXIgdmFsdWUsIHR5cGU7XG5cblx0XHRmb3IgKHZhciBwcm9wIGluIHNvdXJjZSkge1xuXHRcdFx0aWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuXHRcdFx0XHR2YWx1ZSA9IHNvdXJjZVtwcm9wXTtcblx0XHRcdFx0dHlwZSA9ICh7fSkudG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG5cdFx0XHRcdGlmICh0eXBlID09PSAnW29iamVjdCBBcnJheV0nKSB7XG5cdFx0XHRcdFx0dGFyZ2V0W3Byb3BdID0gdmFsdWUuc2xpY2UoMCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gJ1tvYmplY3QgTnVtYmVyXScpIHtcblx0XHRcdFx0XHR0YXJnZXRbcHJvcF0gPSB2YWx1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCd1bmV4cGVjdGVkIGNvbG9yIHZhbHVlOicsIHZhbHVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cbn07XG5cbkNvbG9yLnByb3RvdHlwZS5zcGFjZXMgPSB7XG5cdHJnYjogWydyZWQnLCAnZ3JlZW4nLCAnYmx1ZSddLFxuXHRoc2w6IFsnaHVlJywgJ3NhdHVyYXRpb24nLCAnbGlnaHRuZXNzJ10sXG5cdGhzdjogWydodWUnLCAnc2F0dXJhdGlvbicsICd2YWx1ZSddLFxuXHRod2I6IFsnaHVlJywgJ3doaXRlbmVzcycsICdibGFja25lc3MnXSxcblx0Y215azogWydjeWFuJywgJ21hZ2VudGEnLCAneWVsbG93JywgJ2JsYWNrJ11cbn07XG5cbkNvbG9yLnByb3RvdHlwZS5tYXhlcyA9IHtcblx0cmdiOiBbMjU1LCAyNTUsIDI1NV0sXG5cdGhzbDogWzM2MCwgMTAwLCAxMDBdLFxuXHRoc3Y6IFszNjAsIDEwMCwgMTAwXSxcblx0aHdiOiBbMzYwLCAxMDAsIDEwMF0sXG5cdGNteWs6IFsxMDAsIDEwMCwgMTAwLCAxMDBdXG59O1xuXG5Db2xvci5wcm90b3R5cGUuZ2V0VmFsdWVzID0gZnVuY3Rpb24gKHNwYWNlKSB7XG5cdHZhciB2YWx1ZXMgPSB0aGlzLnZhbHVlcztcblx0dmFyIHZhbHMgPSB7fTtcblxuXHRmb3IgKHZhciBpID0gMDsgaSA8IHNwYWNlLmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFsc1tzcGFjZS5jaGFyQXQoaSldID0gdmFsdWVzW3NwYWNlXVtpXTtcblx0fVxuXG5cdGlmICh2YWx1ZXMuYWxwaGEgIT09IDEpIHtcblx0XHR2YWxzLmEgPSB2YWx1ZXMuYWxwaGE7XG5cdH1cblxuXHQvLyB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NSwgYTogMC40fVxuXHRyZXR1cm4gdmFscztcbn07XG5cbkNvbG9yLnByb3RvdHlwZS5zZXRWYWx1ZXMgPSBmdW5jdGlvbiAoc3BhY2UsIHZhbHMpIHtcblx0dmFyIHZhbHVlcyA9IHRoaXMudmFsdWVzO1xuXHR2YXIgc3BhY2VzID0gdGhpcy5zcGFjZXM7XG5cdHZhciBtYXhlcyA9IHRoaXMubWF4ZXM7XG5cdHZhciBhbHBoYSA9IDE7XG5cdHZhciBpO1xuXG5cdHRoaXMudmFsaWQgPSB0cnVlO1xuXG5cdGlmIChzcGFjZSA9PT0gJ2FscGhhJykge1xuXHRcdGFscGhhID0gdmFscztcblx0fSBlbHNlIGlmICh2YWxzLmxlbmd0aCkge1xuXHRcdC8vIFsxMCwgMTAsIDEwXVxuXHRcdHZhbHVlc1tzcGFjZV0gPSB2YWxzLnNsaWNlKDAsIHNwYWNlLmxlbmd0aCk7XG5cdFx0YWxwaGEgPSB2YWxzW3NwYWNlLmxlbmd0aF07XG5cdH0gZWxzZSBpZiAodmFsc1tzcGFjZS5jaGFyQXQoMCldICE9PSB1bmRlZmluZWQpIHtcblx0XHQvLyB7cjogMTAsIGc6IDEwLCBiOiAxMH1cblx0XHRmb3IgKGkgPSAwOyBpIDwgc3BhY2UubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhbHVlc1tzcGFjZV1baV0gPSB2YWxzW3NwYWNlLmNoYXJBdChpKV07XG5cdFx0fVxuXG5cdFx0YWxwaGEgPSB2YWxzLmE7XG5cdH0gZWxzZSBpZiAodmFsc1tzcGFjZXNbc3BhY2VdWzBdXSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8ge3JlZDogMTAsIGdyZWVuOiAxMCwgYmx1ZTogMTB9XG5cdFx0dmFyIGNoYW5zID0gc3BhY2VzW3NwYWNlXTtcblxuXHRcdGZvciAoaSA9IDA7IGkgPCBzcGFjZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFsdWVzW3NwYWNlXVtpXSA9IHZhbHNbY2hhbnNbaV1dO1xuXHRcdH1cblxuXHRcdGFscGhhID0gdmFscy5hbHBoYTtcblx0fVxuXG5cdHZhbHVlcy5hbHBoYSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIChhbHBoYSA9PT0gdW5kZWZpbmVkID8gdmFsdWVzLmFscGhhIDogYWxwaGEpKSk7XG5cblx0aWYgKHNwYWNlID09PSAnYWxwaGEnKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0dmFyIGNhcHBlZDtcblxuXHQvLyBjYXAgdmFsdWVzIG9mIHRoZSBzcGFjZSBwcmlvciBjb252ZXJ0aW5nIGFsbCB2YWx1ZXNcblx0Zm9yIChpID0gMDsgaSA8IHNwYWNlLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y2FwcGVkID0gTWF0aC5tYXgoMCwgTWF0aC5taW4obWF4ZXNbc3BhY2VdW2ldLCB2YWx1ZXNbc3BhY2VdW2ldKSk7XG5cdFx0dmFsdWVzW3NwYWNlXVtpXSA9IE1hdGgucm91bmQoY2FwcGVkKTtcblx0fVxuXG5cdC8vIGNvbnZlcnQgdG8gYWxsIHRoZSBvdGhlciBjb2xvciBzcGFjZXNcblx0Zm9yICh2YXIgc25hbWUgaW4gc3BhY2VzKSB7XG5cdFx0aWYgKHNuYW1lICE9PSBzcGFjZSkge1xuXHRcdFx0dmFsdWVzW3NuYW1lXSA9IGNvbG9yQ29udmVydFtzcGFjZV1bc25hbWVdKHZhbHVlc1tzcGFjZV0pO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0cnVlO1xufTtcblxuQ29sb3IucHJvdG90eXBlLnNldFNwYWNlID0gZnVuY3Rpb24gKHNwYWNlLCBhcmdzKSB7XG5cdHZhciB2YWxzID0gYXJnc1swXTtcblxuXHRpZiAodmFscyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8gY29sb3IucmdiKClcblx0XHRyZXR1cm4gdGhpcy5nZXRWYWx1ZXMoc3BhY2UpO1xuXHR9XG5cblx0Ly8gY29sb3IucmdiKDEwLCAxMCwgMTApXG5cdGlmICh0eXBlb2YgdmFscyA9PT0gJ251bWJlcicpIHtcblx0XHR2YWxzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncyk7XG5cdH1cblxuXHR0aGlzLnNldFZhbHVlcyhzcGFjZSwgdmFscyk7XG5cdHJldHVybiB0aGlzO1xufTtcblxuQ29sb3IucHJvdG90eXBlLnNldENoYW5uZWwgPSBmdW5jdGlvbiAoc3BhY2UsIGluZGV4LCB2YWwpIHtcblx0dmFyIHN2YWx1ZXMgPSB0aGlzLnZhbHVlc1tzcGFjZV07XG5cdGlmICh2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdC8vIGNvbG9yLnJlZCgpXG5cdFx0cmV0dXJuIHN2YWx1ZXNbaW5kZXhdO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gc3ZhbHVlc1tpbmRleF0pIHtcblx0XHQvLyBjb2xvci5yZWQoY29sb3IucmVkKCkpXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvLyBjb2xvci5yZWQoMTAwKVxuXHRzdmFsdWVzW2luZGV4XSA9IHZhbDtcblx0dGhpcy5zZXRWYWx1ZXMoc3BhY2UsIHN2YWx1ZXMpO1xuXG5cdHJldHVybiB0aGlzO1xufTtcblxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG5cdHdpbmRvdy5Db2xvciA9IENvbG9yO1xufVxuXG52YXIgY2hhcnRqc0NvbG9yID0gQ29sb3I7XG5cbi8qKlxuICogQG5hbWVzcGFjZSBDaGFydC5oZWxwZXJzXG4gKi9cbnZhciBoZWxwZXJzID0ge1xuXHQvKipcblx0ICogQW4gZW1wdHkgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCwgZm9yIGV4YW1wbGUsIGZvciBvcHRpb25hbCBjYWxsYmFjay5cblx0ICovXG5cdG5vb3A6IGZ1bmN0aW9uKCkge30sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSB1bmlxdWUgaWQsIHNlcXVlbnRpYWxseSBnZW5lcmF0ZWQgZnJvbSBhIGdsb2JhbCB2YXJpYWJsZS5cblx0ICogQHJldHVybnMge251bWJlcn1cblx0ICogQGZ1bmN0aW9uXG5cdCAqL1xuXHR1aWQ6IChmdW5jdGlvbigpIHtcblx0XHR2YXIgaWQgPSAwO1xuXHRcdHJldHVybiBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBpZCsrO1xuXHRcdH07XG5cdH0oKSksXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdHJ1ZSBpZiBgdmFsdWVgIGlzIG5laXRoZXIgbnVsbCBub3IgdW5kZWZpbmVkLCBlbHNlIHJldHVybnMgZmFsc2UuXG5cdCAqIEBwYXJhbSB7Kn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gdGVzdC5cblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqIEBzaW5jZSAyLjcuMFxuXHQgKi9cblx0aXNOdWxsT3JVbmRlZjogZnVuY3Rpb24odmFsdWUpIHtcblx0XHRyZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJztcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyB0cnVlIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXkgKGluY2x1ZGluZyB0eXBlZCBhcnJheXMpLCBlbHNlIHJldHVybnMgZmFsc2UuXG5cdCAqIEBwYXJhbSB7Kn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gdGVzdC5cblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblx0aXNBcnJheTogZnVuY3Rpb24odmFsdWUpIHtcblx0XHRpZiAoQXJyYXkuaXNBcnJheSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdHZhciB0eXBlID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTtcblx0XHRpZiAodHlwZS5zdWJzdHIoMCwgNykgPT09ICdbb2JqZWN0JyAmJiB0eXBlLnN1YnN0cigtNikgPT09ICdBcnJheV0nKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRydWUgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QgKGV4Y2x1ZGluZyBudWxsKSwgZWxzZSByZXR1cm5zIGZhbHNlLlxuXHQgKiBAcGFyYW0geyp9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIHRlc3QuXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKiBAc2luY2UgMi43LjBcblx0ICovXG5cdGlzT2JqZWN0OiBmdW5jdGlvbih2YWx1ZSkge1xuXHRcdHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBPYmplY3RdJztcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyB0cnVlIGlmIGB2YWx1ZWAgaXMgYSBmaW5pdGUgbnVtYmVyLCBlbHNlIHJldHVybnMgZmFsc2Vcblx0ICogQHBhcmFtIHsqfSB2YWx1ZSAgLSBUaGUgdmFsdWUgdG8gdGVzdC5cblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqL1xuXHRpc0Zpbml0ZTogZnVuY3Rpb24odmFsdWUpIHtcblx0XHRyZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdmFsdWUgaW5zdGFuY2VvZiBOdW1iZXIpICYmIGlzRmluaXRlKHZhbHVlKTtcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyBgdmFsdWVgIGlmIGRlZmluZWQsIGVsc2UgcmV0dXJucyBgZGVmYXVsdFZhbHVlYC5cblx0ICogQHBhcmFtIHsqfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byByZXR1cm4gaWYgZGVmaW5lZC5cblx0ICogQHBhcmFtIHsqfSBkZWZhdWx0VmFsdWUgLSBUaGUgdmFsdWUgdG8gcmV0dXJuIGlmIGB2YWx1ZWAgaXMgdW5kZWZpbmVkLlxuXHQgKiBAcmV0dXJucyB7Kn1cblx0ICovXG5cdHZhbHVlT3JEZWZhdWx0OiBmdW5jdGlvbih2YWx1ZSwgZGVmYXVsdFZhbHVlKSB7XG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgPyBkZWZhdWx0VmFsdWUgOiB2YWx1ZTtcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyB2YWx1ZSBhdCB0aGUgZ2l2ZW4gYGluZGV4YCBpbiBhcnJheSBpZiBkZWZpbmVkLCBlbHNlIHJldHVybnMgYGRlZmF1bHRWYWx1ZWAuXG5cdCAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlIC0gVGhlIGFycmF5IHRvIGxvb2t1cCBmb3IgdmFsdWUgYXQgYGluZGV4YC5cblx0ICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IC0gVGhlIGluZGV4IGluIGB2YWx1ZWAgdG8gbG9va3VwIGZvciB2YWx1ZS5cblx0ICogQHBhcmFtIHsqfSBkZWZhdWx0VmFsdWUgLSBUaGUgdmFsdWUgdG8gcmV0dXJuIGlmIGB2YWx1ZVtpbmRleF1gIGlzIHVuZGVmaW5lZC5cblx0ICogQHJldHVybnMgeyp9XG5cdCAqL1xuXHR2YWx1ZUF0SW5kZXhPckRlZmF1bHQ6IGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgZGVmYXVsdFZhbHVlKSB7XG5cdFx0cmV0dXJuIGhlbHBlcnMudmFsdWVPckRlZmF1bHQoaGVscGVycy5pc0FycmF5KHZhbHVlKSA/IHZhbHVlW2luZGV4XSA6IHZhbHVlLCBkZWZhdWx0VmFsdWUpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDYWxscyBgZm5gIHdpdGggdGhlIGdpdmVuIGBhcmdzYCBpbiB0aGUgc2NvcGUgZGVmaW5lZCBieSBgdGhpc0FyZ2AgYW5kIHJldHVybnMgdGhlXG5cdCAqIHZhbHVlIHJldHVybmVkIGJ5IGBmbmAuIElmIGBmbmAgaXMgbm90IGEgZnVuY3Rpb24sIHRoaXMgbWV0aG9kIHJldHVybnMgdW5kZWZpbmVkLlxuXHQgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmbiAtIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuXHQgKiBAcGFyYW0ge0FycmF5fHVuZGVmaW5lZHxudWxsfSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB3aXRoIHdoaWNoIGBmbmAgc2hvdWxkIGJlIGNhbGxlZC5cblx0ICogQHBhcmFtIHtvYmplY3R9IFt0aGlzQXJnXSAtIFRoZSB2YWx1ZSBvZiBgdGhpc2AgcHJvdmlkZWQgZm9yIHRoZSBjYWxsIHRvIGBmbmAuXG5cdCAqIEByZXR1cm5zIHsqfVxuXHQgKi9cblx0Y2FsbGJhY2s6IGZ1bmN0aW9uKGZuLCBhcmdzLCB0aGlzQXJnKSB7XG5cdFx0aWYgKGZuICYmIHR5cGVvZiBmbi5jYWxsID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRyZXR1cm4gZm4uYXBwbHkodGhpc0FyZywgYXJncyk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBOb3RlKFNCKSBmb3IgcGVyZm9ybWFuY2Ugc2FrZSwgdGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIGxvb3BhYmxlIHR5cGVcblx0ICogaXMgdW5rbm93biBvciBpbiBub25lIGludGVuc2l2ZSBjb2RlIChub3QgY2FsbGVkIG9mdGVuIGFuZCBzbWFsbCBsb29wYWJsZSkuIEVsc2Vcblx0ICogaXQncyBwcmVmZXJhYmxlIHRvIHVzZSBhIHJlZ3VsYXIgZm9yKCkgbG9vcCBhbmQgc2F2ZSBleHRyYSBmdW5jdGlvbiBjYWxscy5cblx0ICogQHBhcmFtIHtvYmplY3R8QXJyYXl9IGxvb3BhYmxlIC0gVGhlIG9iamVjdCBvciBhcnJheSB0byBiZSBpdGVyYXRlZC5cblx0ICogQHBhcmFtIHtmdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCBpdGVtLlxuXHQgKiBAcGFyYW0ge29iamVjdH0gW3RoaXNBcmddIC0gVGhlIHZhbHVlIG9mIGB0aGlzYCBwcm92aWRlZCBmb3IgdGhlIGNhbGwgdG8gYGZuYC5cblx0ICogQHBhcmFtIHtib29sZWFufSBbcmV2ZXJzZV0gLSBJZiB0cnVlLCBpdGVyYXRlcyBiYWNrd2FyZCBvbiB0aGUgbG9vcGFibGUuXG5cdCAqL1xuXHRlYWNoOiBmdW5jdGlvbihsb29wYWJsZSwgZm4sIHRoaXNBcmcsIHJldmVyc2UpIHtcblx0XHR2YXIgaSwgbGVuLCBrZXlzO1xuXHRcdGlmIChoZWxwZXJzLmlzQXJyYXkobG9vcGFibGUpKSB7XG5cdFx0XHRsZW4gPSBsb29wYWJsZS5sZW5ndGg7XG5cdFx0XHRpZiAocmV2ZXJzZSkge1xuXHRcdFx0XHRmb3IgKGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkge1xuXHRcdFx0XHRcdGZuLmNhbGwodGhpc0FyZywgbG9vcGFibGVbaV0sIGkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdFx0XHRmbi5jYWxsKHRoaXNBcmcsIGxvb3BhYmxlW2ldLCBpKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoaGVscGVycy5pc09iamVjdChsb29wYWJsZSkpIHtcblx0XHRcdGtleXMgPSBPYmplY3Qua2V5cyhsb29wYWJsZSk7XG5cdFx0XHRsZW4gPSBrZXlzLmxlbmd0aDtcblx0XHRcdGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0XHRmbi5jYWxsKHRoaXNBcmcsIGxvb3BhYmxlW2tleXNbaV1dLCBrZXlzW2ldKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYGEwYCBhbmQgYGExYCBhcnJheXMgaGF2ZSB0aGUgc2FtZSBjb250ZW50LCBlbHNlIHJldHVybnMgZmFsc2UuXG5cdCAqIEBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE0ODUzOTc0XG5cdCAqIEBwYXJhbSB7QXJyYXl9IGEwIC0gVGhlIGFycmF5IHRvIGNvbXBhcmVcblx0ICogQHBhcmFtIHtBcnJheX0gYTEgLSBUaGUgYXJyYXkgdG8gY29tcGFyZVxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cblx0ICovXG5cdGFycmF5RXF1YWxzOiBmdW5jdGlvbihhMCwgYTEpIHtcblx0XHR2YXIgaSwgaWxlbiwgdjAsIHYxO1xuXG5cdFx0aWYgKCFhMCB8fCAhYTEgfHwgYTAubGVuZ3RoICE9PSBhMS5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gYTAubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHR2MCA9IGEwW2ldO1xuXHRcdFx0djEgPSBhMVtpXTtcblxuXHRcdFx0aWYgKHYwIGluc3RhbmNlb2YgQXJyYXkgJiYgdjEgaW5zdGFuY2VvZiBBcnJheSkge1xuXHRcdFx0XHRpZiAoIWhlbHBlcnMuYXJyYXlFcXVhbHModjAsIHYxKSkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICh2MCAhPT0gdjEpIHtcblx0XHRcdFx0Ly8gTk9URTogdHdvIGRpZmZlcmVudCBvYmplY3QgaW5zdGFuY2VzIHdpbGwgbmV2ZXIgYmUgZXF1YWw6IHt4OjIwfSAhPSB7eDoyMH1cblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGEgZGVlcCBjb3B5IG9mIGBzb3VyY2VgIHdpdGhvdXQga2VlcGluZyByZWZlcmVuY2VzIG9uIG9iamVjdHMgYW5kIGFycmF5cy5cblx0ICogQHBhcmFtIHsqfSBzb3VyY2UgLSBUaGUgdmFsdWUgdG8gY2xvbmUuXG5cdCAqIEByZXR1cm5zIHsqfVxuXHQgKi9cblx0Y2xvbmU6IGZ1bmN0aW9uKHNvdXJjZSkge1xuXHRcdGlmIChoZWxwZXJzLmlzQXJyYXkoc291cmNlKSkge1xuXHRcdFx0cmV0dXJuIHNvdXJjZS5tYXAoaGVscGVycy5jbG9uZSk7XG5cdFx0fVxuXG5cdFx0aWYgKGhlbHBlcnMuaXNPYmplY3Qoc291cmNlKSkge1xuXHRcdFx0dmFyIHRhcmdldCA9IHt9O1xuXHRcdFx0dmFyIGtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuXHRcdFx0dmFyIGtsZW4gPSBrZXlzLmxlbmd0aDtcblx0XHRcdHZhciBrID0gMDtcblxuXHRcdFx0Zm9yICg7IGsgPCBrbGVuOyArK2spIHtcblx0XHRcdFx0dGFyZ2V0W2tleXNba11dID0gaGVscGVycy5jbG9uZShzb3VyY2Vba2V5c1trXV0pO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdGFyZ2V0O1xuXHRcdH1cblxuXHRcdHJldHVybiBzb3VyY2U7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFRoZSBkZWZhdWx0IG1lcmdlciB3aGVuIENoYXJ0LmhlbHBlcnMubWVyZ2UgaXMgY2FsbGVkIHdpdGhvdXQgbWVyZ2VyIG9wdGlvbi5cblx0ICogTm90ZShTQik6IGFsc28gdXNlZCBieSBtZXJnZUNvbmZpZyBhbmQgbWVyZ2VTY2FsZUNvbmZpZyBhcyBmYWxsYmFjay5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9tZXJnZXI6IGZ1bmN0aW9uKGtleSwgdGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpIHtcblx0XHR2YXIgdHZhbCA9IHRhcmdldFtrZXldO1xuXHRcdHZhciBzdmFsID0gc291cmNlW2tleV07XG5cblx0XHRpZiAoaGVscGVycy5pc09iamVjdCh0dmFsKSAmJiBoZWxwZXJzLmlzT2JqZWN0KHN2YWwpKSB7XG5cdFx0XHRoZWxwZXJzLm1lcmdlKHR2YWwsIHN2YWwsIG9wdGlvbnMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0YXJnZXRba2V5XSA9IGhlbHBlcnMuY2xvbmUoc3ZhbCk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBNZXJnZXMgc291cmNlW2tleV0gaW4gdGFyZ2V0W2tleV0gb25seSBpZiB0YXJnZXRba2V5XSBpcyB1bmRlZmluZWQuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfbWVyZ2VySWY6IGZ1bmN0aW9uKGtleSwgdGFyZ2V0LCBzb3VyY2UpIHtcblx0XHR2YXIgdHZhbCA9IHRhcmdldFtrZXldO1xuXHRcdHZhciBzdmFsID0gc291cmNlW2tleV07XG5cblx0XHRpZiAoaGVscGVycy5pc09iamVjdCh0dmFsKSAmJiBoZWxwZXJzLmlzT2JqZWN0KHN2YWwpKSB7XG5cdFx0XHRoZWxwZXJzLm1lcmdlSWYodHZhbCwgc3ZhbCk7XG5cdFx0fSBlbHNlIGlmICghdGFyZ2V0Lmhhc093blByb3BlcnR5KGtleSkpIHtcblx0XHRcdHRhcmdldFtrZXldID0gaGVscGVycy5jbG9uZShzdmFsKTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJlY3Vyc2l2ZWx5IGRlZXAgY29waWVzIGBzb3VyY2VgIHByb3BlcnRpZXMgaW50byBgdGFyZ2V0YCB3aXRoIHRoZSBnaXZlbiBgb3B0aW9uc2AuXG5cdCAqIElNUE9SVEFOVDogYHRhcmdldGAgaXMgbm90IGNsb25lZCBhbmQgd2lsbCBiZSB1cGRhdGVkIHdpdGggYHNvdXJjZWAgcHJvcGVydGllcy5cblx0ICogQHBhcmFtIHtvYmplY3R9IHRhcmdldCAtIFRoZSB0YXJnZXQgb2JqZWN0IGluIHdoaWNoIGFsbCBzb3VyY2VzIGFyZSBtZXJnZWQgaW50by5cblx0ICogQHBhcmFtIHtvYmplY3R8b2JqZWN0W119IHNvdXJjZSAtIE9iamVjdChzKSB0byBtZXJnZSBpbnRvIGB0YXJnZXRgLlxuXHQgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gTWVyZ2luZyBvcHRpb25zOlxuXHQgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbb3B0aW9ucy5tZXJnZXJdIC0gVGhlIG1lcmdlIG1ldGhvZCAoa2V5LCB0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucylcblx0ICogQHJldHVybnMge29iamVjdH0gVGhlIGB0YXJnZXRgIG9iamVjdC5cblx0ICovXG5cdG1lcmdlOiBmdW5jdGlvbih0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRcdHZhciBzb3VyY2VzID0gaGVscGVycy5pc0FycmF5KHNvdXJjZSkgPyBzb3VyY2UgOiBbc291cmNlXTtcblx0XHR2YXIgaWxlbiA9IHNvdXJjZXMubGVuZ3RoO1xuXHRcdHZhciBtZXJnZSwgaSwga2V5cywga2xlbiwgaztcblxuXHRcdGlmICghaGVscGVycy5pc09iamVjdCh0YXJnZXQpKSB7XG5cdFx0XHRyZXR1cm4gdGFyZ2V0O1xuXHRcdH1cblxuXHRcdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXHRcdG1lcmdlID0gb3B0aW9ucy5tZXJnZXIgfHwgaGVscGVycy5fbWVyZ2VyO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0c291cmNlID0gc291cmNlc1tpXTtcblx0XHRcdGlmICghaGVscGVycy5pc09iamVjdChzb3VyY2UpKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRrZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcblx0XHRcdGZvciAoayA9IDAsIGtsZW4gPSBrZXlzLmxlbmd0aDsgayA8IGtsZW47ICsraykge1xuXHRcdFx0XHRtZXJnZShrZXlzW2tdLCB0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRhcmdldDtcblx0fSxcblxuXHQvKipcblx0ICogUmVjdXJzaXZlbHkgZGVlcCBjb3BpZXMgYHNvdXJjZWAgcHJvcGVydGllcyBpbnRvIGB0YXJnZXRgICpvbmx5KiBpZiBub3QgZGVmaW5lZCBpbiB0YXJnZXQuXG5cdCAqIElNUE9SVEFOVDogYHRhcmdldGAgaXMgbm90IGNsb25lZCBhbmQgd2lsbCBiZSB1cGRhdGVkIHdpdGggYHNvdXJjZWAgcHJvcGVydGllcy5cblx0ICogQHBhcmFtIHtvYmplY3R9IHRhcmdldCAtIFRoZSB0YXJnZXQgb2JqZWN0IGluIHdoaWNoIGFsbCBzb3VyY2VzIGFyZSBtZXJnZWQgaW50by5cblx0ICogQHBhcmFtIHtvYmplY3R8b2JqZWN0W119IHNvdXJjZSAtIE9iamVjdChzKSB0byBtZXJnZSBpbnRvIGB0YXJnZXRgLlxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgYHRhcmdldGAgb2JqZWN0LlxuXHQgKi9cblx0bWVyZ2VJZjogZnVuY3Rpb24odGFyZ2V0LCBzb3VyY2UpIHtcblx0XHRyZXR1cm4gaGVscGVycy5tZXJnZSh0YXJnZXQsIHNvdXJjZSwge21lcmdlcjogaGVscGVycy5fbWVyZ2VySWZ9KTtcblx0fSxcblxuXHQvKipcblx0ICogQXBwbGllcyB0aGUgY29udGVudHMgb2YgdHdvIG9yIG1vcmUgb2JqZWN0cyB0b2dldGhlciBpbnRvIHRoZSBmaXJzdCBvYmplY3QuXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSB0YXJnZXQgLSBUaGUgdGFyZ2V0IG9iamVjdCBpbiB3aGljaCBhbGwgb2JqZWN0cyBhcmUgbWVyZ2VkIGludG8uXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBhcmcxIC0gT2JqZWN0IGNvbnRhaW5pbmcgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIG1lcmdlIGluIHRhcmdldC5cblx0ICogQHBhcmFtIHtvYmplY3R9IGFyZ04gLSBBZGRpdGlvbmFsIG9iamVjdHMgY29udGFpbmluZyBwcm9wZXJ0aWVzIHRvIG1lcmdlIGluIHRhcmdldC5cblx0ICogQHJldHVybnMge29iamVjdH0gVGhlIGB0YXJnZXRgIG9iamVjdC5cblx0ICovXG5cdGV4dGVuZDogZnVuY3Rpb24odGFyZ2V0KSB7XG5cdFx0dmFyIHNldEZuID0gZnVuY3Rpb24odmFsdWUsIGtleSkge1xuXHRcdFx0dGFyZ2V0W2tleV0gPSB2YWx1ZTtcblx0XHR9O1xuXHRcdGZvciAodmFyIGkgPSAxLCBpbGVuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0aGVscGVycy5lYWNoKGFyZ3VtZW50c1tpXSwgc2V0Rm4pO1xuXHRcdH1cblx0XHRyZXR1cm4gdGFyZ2V0O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBCYXNpYyBqYXZhc2NyaXB0IGluaGVyaXRhbmNlIGJhc2VkIG9uIHRoZSBtb2RlbCBjcmVhdGVkIGluIEJhY2tib25lLmpzXG5cdCAqL1xuXHRpbmhlcml0czogZnVuY3Rpb24oZXh0ZW5zaW9ucykge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIENoYXJ0RWxlbWVudCA9IChleHRlbnNpb25zICYmIGV4dGVuc2lvbnMuaGFzT3duUHJvcGVydHkoJ2NvbnN0cnVjdG9yJykpID8gZXh0ZW5zaW9ucy5jb25zdHJ1Y3RvciA6IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIG1lLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cdFx0fTtcblxuXHRcdHZhciBTdXJyb2dhdGUgPSBmdW5jdGlvbigpIHtcblx0XHRcdHRoaXMuY29uc3RydWN0b3IgPSBDaGFydEVsZW1lbnQ7XG5cdFx0fTtcblxuXHRcdFN1cnJvZ2F0ZS5wcm90b3R5cGUgPSBtZS5wcm90b3R5cGU7XG5cdFx0Q2hhcnRFbGVtZW50LnByb3RvdHlwZSA9IG5ldyBTdXJyb2dhdGUoKTtcblx0XHRDaGFydEVsZW1lbnQuZXh0ZW5kID0gaGVscGVycy5pbmhlcml0cztcblxuXHRcdGlmIChleHRlbnNpb25zKSB7XG5cdFx0XHRoZWxwZXJzLmV4dGVuZChDaGFydEVsZW1lbnQucHJvdG90eXBlLCBleHRlbnNpb25zKTtcblx0XHR9XG5cblx0XHRDaGFydEVsZW1lbnQuX19zdXBlcl9fID0gbWUucHJvdG90eXBlO1xuXHRcdHJldHVybiBDaGFydEVsZW1lbnQ7XG5cdH1cbn07XG5cbnZhciBoZWxwZXJzX2NvcmUgPSBoZWxwZXJzO1xuXG4vLyBERVBSRUNBVElPTlNcblxuLyoqXG4gKiBQcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdXNlIENoYXJ0LmhlbHBlcnMuY2FsbGJhY2sgaW5zdGVhZC5cbiAqIEBmdW5jdGlvbiBDaGFydC5oZWxwZXJzLmNhbGxDYWxsYmFja1xuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAyLjYuMFxuICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuICogQHByaXZhdGVcbiAqL1xuaGVscGVycy5jYWxsQ2FsbGJhY2sgPSBoZWxwZXJzLmNhbGxiYWNrO1xuXG4vKipcbiAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1c2UgQXJyYXkucHJvdG90eXBlLmluZGV4T2YgaW5zdGVhZC5cbiAqIEFycmF5LnByb3RvdHlwZS5pbmRleE9mIGNvbXBhdGliaWxpdHk6IENocm9tZSwgT3BlcmEsIFNhZmFyaSwgRkYxLjUrLCBJRTkrXG4gKiBAZnVuY3Rpb24gQ2hhcnQuaGVscGVycy5pbmRleE9mXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuNy4wXG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKiBAcHJpdmF0ZVxuICovXG5oZWxwZXJzLmluZGV4T2YgPSBmdW5jdGlvbihhcnJheSwgaXRlbSwgZnJvbUluZGV4KSB7XG5cdHJldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGFycmF5LCBpdGVtLCBmcm9tSW5kZXgpO1xufTtcblxuLyoqXG4gKiBQcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdXNlIENoYXJ0LmhlbHBlcnMudmFsdWVPckRlZmF1bHQgaW5zdGVhZC5cbiAqIEBmdW5jdGlvbiBDaGFydC5oZWxwZXJzLmdldFZhbHVlT3JEZWZhdWx0XG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuNy4wXG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKiBAcHJpdmF0ZVxuICovXG5oZWxwZXJzLmdldFZhbHVlT3JEZWZhdWx0ID0gaGVscGVycy52YWx1ZU9yRGVmYXVsdDtcblxuLyoqXG4gKiBQcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdXNlIENoYXJ0LmhlbHBlcnMudmFsdWVBdEluZGV4T3JEZWZhdWx0IGluc3RlYWQuXG4gKiBAZnVuY3Rpb24gQ2hhcnQuaGVscGVycy5nZXRWYWx1ZUF0SW5kZXhPckRlZmF1bHRcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMi43LjBcbiAqIEB0b2RvIHJlbW92ZSBhdCB2ZXJzaW9uIDNcbiAqIEBwcml2YXRlXG4gKi9cbmhlbHBlcnMuZ2V0VmFsdWVBdEluZGV4T3JEZWZhdWx0ID0gaGVscGVycy52YWx1ZUF0SW5kZXhPckRlZmF1bHQ7XG5cbi8qKlxuICogRWFzaW5nIGZ1bmN0aW9ucyBhZGFwdGVkIGZyb20gUm9iZXJ0IFBlbm5lcidzIGVhc2luZyBlcXVhdGlvbnMuXG4gKiBAbmFtZXNwYWNlIENoYXJ0LmhlbHBlcnMuZWFzaW5nRWZmZWN0c1xuICogQHNlZSBodHRwOi8vd3d3LnJvYmVydHBlbm5lci5jb20vZWFzaW5nL1xuICovXG52YXIgZWZmZWN0cyA9IHtcblx0bGluZWFyOiBmdW5jdGlvbih0KSB7XG5cdFx0cmV0dXJuIHQ7XG5cdH0sXG5cblx0ZWFzZUluUXVhZDogZnVuY3Rpb24odCkge1xuXHRcdHJldHVybiB0ICogdDtcblx0fSxcblxuXHRlYXNlT3V0UXVhZDogZnVuY3Rpb24odCkge1xuXHRcdHJldHVybiAtdCAqICh0IC0gMik7XG5cdH0sXG5cblx0ZWFzZUluT3V0UXVhZDogZnVuY3Rpb24odCkge1xuXHRcdGlmICgodCAvPSAwLjUpIDwgMSkge1xuXHRcdFx0cmV0dXJuIDAuNSAqIHQgKiB0O1xuXHRcdH1cblx0XHRyZXR1cm4gLTAuNSAqICgoLS10KSAqICh0IC0gMikgLSAxKTtcblx0fSxcblxuXHRlYXNlSW5DdWJpYzogZnVuY3Rpb24odCkge1xuXHRcdHJldHVybiB0ICogdCAqIHQ7XG5cdH0sXG5cblx0ZWFzZU91dEN1YmljOiBmdW5jdGlvbih0KSB7XG5cdFx0cmV0dXJuICh0ID0gdCAtIDEpICogdCAqIHQgKyAxO1xuXHR9LFxuXG5cdGVhc2VJbk91dEN1YmljOiBmdW5jdGlvbih0KSB7XG5cdFx0aWYgKCh0IC89IDAuNSkgPCAxKSB7XG5cdFx0XHRyZXR1cm4gMC41ICogdCAqIHQgKiB0O1xuXHRcdH1cblx0XHRyZXR1cm4gMC41ICogKCh0IC09IDIpICogdCAqIHQgKyAyKTtcblx0fSxcblxuXHRlYXNlSW5RdWFydDogZnVuY3Rpb24odCkge1xuXHRcdHJldHVybiB0ICogdCAqIHQgKiB0O1xuXHR9LFxuXG5cdGVhc2VPdXRRdWFydDogZnVuY3Rpb24odCkge1xuXHRcdHJldHVybiAtKCh0ID0gdCAtIDEpICogdCAqIHQgKiB0IC0gMSk7XG5cdH0sXG5cblx0ZWFzZUluT3V0UXVhcnQ6IGZ1bmN0aW9uKHQpIHtcblx0XHRpZiAoKHQgLz0gMC41KSA8IDEpIHtcblx0XHRcdHJldHVybiAwLjUgKiB0ICogdCAqIHQgKiB0O1xuXHRcdH1cblx0XHRyZXR1cm4gLTAuNSAqICgodCAtPSAyKSAqIHQgKiB0ICogdCAtIDIpO1xuXHR9LFxuXG5cdGVhc2VJblF1aW50OiBmdW5jdGlvbih0KSB7XG5cdFx0cmV0dXJuIHQgKiB0ICogdCAqIHQgKiB0O1xuXHR9LFxuXG5cdGVhc2VPdXRRdWludDogZnVuY3Rpb24odCkge1xuXHRcdHJldHVybiAodCA9IHQgLSAxKSAqIHQgKiB0ICogdCAqIHQgKyAxO1xuXHR9LFxuXG5cdGVhc2VJbk91dFF1aW50OiBmdW5jdGlvbih0KSB7XG5cdFx0aWYgKCh0IC89IDAuNSkgPCAxKSB7XG5cdFx0XHRyZXR1cm4gMC41ICogdCAqIHQgKiB0ICogdCAqIHQ7XG5cdFx0fVxuXHRcdHJldHVybiAwLjUgKiAoKHQgLT0gMikgKiB0ICogdCAqIHQgKiB0ICsgMik7XG5cdH0sXG5cblx0ZWFzZUluU2luZTogZnVuY3Rpb24odCkge1xuXHRcdHJldHVybiAtTWF0aC5jb3ModCAqIChNYXRoLlBJIC8gMikpICsgMTtcblx0fSxcblxuXHRlYXNlT3V0U2luZTogZnVuY3Rpb24odCkge1xuXHRcdHJldHVybiBNYXRoLnNpbih0ICogKE1hdGguUEkgLyAyKSk7XG5cdH0sXG5cblx0ZWFzZUluT3V0U2luZTogZnVuY3Rpb24odCkge1xuXHRcdHJldHVybiAtMC41ICogKE1hdGguY29zKE1hdGguUEkgKiB0KSAtIDEpO1xuXHR9LFxuXG5cdGVhc2VJbkV4cG86IGZ1bmN0aW9uKHQpIHtcblx0XHRyZXR1cm4gKHQgPT09IDApID8gMCA6IE1hdGgucG93KDIsIDEwICogKHQgLSAxKSk7XG5cdH0sXG5cblx0ZWFzZU91dEV4cG86IGZ1bmN0aW9uKHQpIHtcblx0XHRyZXR1cm4gKHQgPT09IDEpID8gMSA6IC1NYXRoLnBvdygyLCAtMTAgKiB0KSArIDE7XG5cdH0sXG5cblx0ZWFzZUluT3V0RXhwbzogZnVuY3Rpb24odCkge1xuXHRcdGlmICh0ID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cdFx0aWYgKHQgPT09IDEpIHtcblx0XHRcdHJldHVybiAxO1xuXHRcdH1cblx0XHRpZiAoKHQgLz0gMC41KSA8IDEpIHtcblx0XHRcdHJldHVybiAwLjUgKiBNYXRoLnBvdygyLCAxMCAqICh0IC0gMSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gMC41ICogKC1NYXRoLnBvdygyLCAtMTAgKiAtLXQpICsgMik7XG5cdH0sXG5cblx0ZWFzZUluQ2lyYzogZnVuY3Rpb24odCkge1xuXHRcdGlmICh0ID49IDEpIHtcblx0XHRcdHJldHVybiB0O1xuXHRcdH1cblx0XHRyZXR1cm4gLShNYXRoLnNxcnQoMSAtIHQgKiB0KSAtIDEpO1xuXHR9LFxuXG5cdGVhc2VPdXRDaXJjOiBmdW5jdGlvbih0KSB7XG5cdFx0cmV0dXJuIE1hdGguc3FydCgxIC0gKHQgPSB0IC0gMSkgKiB0KTtcblx0fSxcblxuXHRlYXNlSW5PdXRDaXJjOiBmdW5jdGlvbih0KSB7XG5cdFx0aWYgKCh0IC89IDAuNSkgPCAxKSB7XG5cdFx0XHRyZXR1cm4gLTAuNSAqIChNYXRoLnNxcnQoMSAtIHQgKiB0KSAtIDEpO1xuXHRcdH1cblx0XHRyZXR1cm4gMC41ICogKE1hdGguc3FydCgxIC0gKHQgLT0gMikgKiB0KSArIDEpO1xuXHR9LFxuXG5cdGVhc2VJbkVsYXN0aWM6IGZ1bmN0aW9uKHQpIHtcblx0XHR2YXIgcyA9IDEuNzAxNTg7XG5cdFx0dmFyIHAgPSAwO1xuXHRcdHZhciBhID0gMTtcblx0XHRpZiAodCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXHRcdGlmICh0ID09PSAxKSB7XG5cdFx0XHRyZXR1cm4gMTtcblx0XHR9XG5cdFx0aWYgKCFwKSB7XG5cdFx0XHRwID0gMC4zO1xuXHRcdH1cblx0XHRpZiAoYSA8IDEpIHtcblx0XHRcdGEgPSAxO1xuXHRcdFx0cyA9IHAgLyA0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzID0gcCAvICgyICogTWF0aC5QSSkgKiBNYXRoLmFzaW4oMSAvIGEpO1xuXHRcdH1cblx0XHRyZXR1cm4gLShhICogTWF0aC5wb3coMiwgMTAgKiAodCAtPSAxKSkgKiBNYXRoLnNpbigodCAtIHMpICogKDIgKiBNYXRoLlBJKSAvIHApKTtcblx0fSxcblxuXHRlYXNlT3V0RWxhc3RpYzogZnVuY3Rpb24odCkge1xuXHRcdHZhciBzID0gMS43MDE1ODtcblx0XHR2YXIgcCA9IDA7XG5cdFx0dmFyIGEgPSAxO1xuXHRcdGlmICh0ID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cdFx0aWYgKHQgPT09IDEpIHtcblx0XHRcdHJldHVybiAxO1xuXHRcdH1cblx0XHRpZiAoIXApIHtcblx0XHRcdHAgPSAwLjM7XG5cdFx0fVxuXHRcdGlmIChhIDwgMSkge1xuXHRcdFx0YSA9IDE7XG5cdFx0XHRzID0gcCAvIDQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHMgPSBwIC8gKDIgKiBNYXRoLlBJKSAqIE1hdGguYXNpbigxIC8gYSk7XG5cdFx0fVxuXHRcdHJldHVybiBhICogTWF0aC5wb3coMiwgLTEwICogdCkgKiBNYXRoLnNpbigodCAtIHMpICogKDIgKiBNYXRoLlBJKSAvIHApICsgMTtcblx0fSxcblxuXHRlYXNlSW5PdXRFbGFzdGljOiBmdW5jdGlvbih0KSB7XG5cdFx0dmFyIHMgPSAxLjcwMTU4O1xuXHRcdHZhciBwID0gMDtcblx0XHR2YXIgYSA9IDE7XG5cdFx0aWYgKHQgPT09IDApIHtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblx0XHRpZiAoKHQgLz0gMC41KSA9PT0gMikge1xuXHRcdFx0cmV0dXJuIDE7XG5cdFx0fVxuXHRcdGlmICghcCkge1xuXHRcdFx0cCA9IDAuNDU7XG5cdFx0fVxuXHRcdGlmIChhIDwgMSkge1xuXHRcdFx0YSA9IDE7XG5cdFx0XHRzID0gcCAvIDQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHMgPSBwIC8gKDIgKiBNYXRoLlBJKSAqIE1hdGguYXNpbigxIC8gYSk7XG5cdFx0fVxuXHRcdGlmICh0IDwgMSkge1xuXHRcdFx0cmV0dXJuIC0wLjUgKiAoYSAqIE1hdGgucG93KDIsIDEwICogKHQgLT0gMSkpICogTWF0aC5zaW4oKHQgLSBzKSAqICgyICogTWF0aC5QSSkgLyBwKSk7XG5cdFx0fVxuXHRcdHJldHVybiBhICogTWF0aC5wb3coMiwgLTEwICogKHQgLT0gMSkpICogTWF0aC5zaW4oKHQgLSBzKSAqICgyICogTWF0aC5QSSkgLyBwKSAqIDAuNSArIDE7XG5cdH0sXG5cdGVhc2VJbkJhY2s6IGZ1bmN0aW9uKHQpIHtcblx0XHR2YXIgcyA9IDEuNzAxNTg7XG5cdFx0cmV0dXJuIHQgKiB0ICogKChzICsgMSkgKiB0IC0gcyk7XG5cdH0sXG5cblx0ZWFzZU91dEJhY2s6IGZ1bmN0aW9uKHQpIHtcblx0XHR2YXIgcyA9IDEuNzAxNTg7XG5cdFx0cmV0dXJuICh0ID0gdCAtIDEpICogdCAqICgocyArIDEpICogdCArIHMpICsgMTtcblx0fSxcblxuXHRlYXNlSW5PdXRCYWNrOiBmdW5jdGlvbih0KSB7XG5cdFx0dmFyIHMgPSAxLjcwMTU4O1xuXHRcdGlmICgodCAvPSAwLjUpIDwgMSkge1xuXHRcdFx0cmV0dXJuIDAuNSAqICh0ICogdCAqICgoKHMgKj0gKDEuNTI1KSkgKyAxKSAqIHQgLSBzKSk7XG5cdFx0fVxuXHRcdHJldHVybiAwLjUgKiAoKHQgLT0gMikgKiB0ICogKCgocyAqPSAoMS41MjUpKSArIDEpICogdCArIHMpICsgMik7XG5cdH0sXG5cblx0ZWFzZUluQm91bmNlOiBmdW5jdGlvbih0KSB7XG5cdFx0cmV0dXJuIDEgLSBlZmZlY3RzLmVhc2VPdXRCb3VuY2UoMSAtIHQpO1xuXHR9LFxuXG5cdGVhc2VPdXRCb3VuY2U6IGZ1bmN0aW9uKHQpIHtcblx0XHRpZiAodCA8ICgxIC8gMi43NSkpIHtcblx0XHRcdHJldHVybiA3LjU2MjUgKiB0ICogdDtcblx0XHR9XG5cdFx0aWYgKHQgPCAoMiAvIDIuNzUpKSB7XG5cdFx0XHRyZXR1cm4gNy41NjI1ICogKHQgLT0gKDEuNSAvIDIuNzUpKSAqIHQgKyAwLjc1O1xuXHRcdH1cblx0XHRpZiAodCA8ICgyLjUgLyAyLjc1KSkge1xuXHRcdFx0cmV0dXJuIDcuNTYyNSAqICh0IC09ICgyLjI1IC8gMi43NSkpICogdCArIDAuOTM3NTtcblx0XHR9XG5cdFx0cmV0dXJuIDcuNTYyNSAqICh0IC09ICgyLjYyNSAvIDIuNzUpKSAqIHQgKyAwLjk4NDM3NTtcblx0fSxcblxuXHRlYXNlSW5PdXRCb3VuY2U6IGZ1bmN0aW9uKHQpIHtcblx0XHRpZiAodCA8IDAuNSkge1xuXHRcdFx0cmV0dXJuIGVmZmVjdHMuZWFzZUluQm91bmNlKHQgKiAyKSAqIDAuNTtcblx0XHR9XG5cdFx0cmV0dXJuIGVmZmVjdHMuZWFzZU91dEJvdW5jZSh0ICogMiAtIDEpICogMC41ICsgMC41O1xuXHR9XG59O1xuXG52YXIgaGVscGVyc19lYXNpbmcgPSB7XG5cdGVmZmVjdHM6IGVmZmVjdHNcbn07XG5cbi8vIERFUFJFQ0FUSU9OU1xuXG4vKipcbiAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1c2UgQ2hhcnQuaGVscGVycy5lYXNpbmcuZWZmZWN0cyBpbnN0ZWFkLlxuICogQGZ1bmN0aW9uIENoYXJ0LmhlbHBlcnMuZWFzaW5nRWZmZWN0c1xuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAyLjcuMFxuICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuICogQHByaXZhdGVcbiAqL1xuaGVscGVyc19jb3JlLmVhc2luZ0VmZmVjdHMgPSBlZmZlY3RzO1xuXG52YXIgUEkgPSBNYXRoLlBJO1xudmFyIFJBRF9QRVJfREVHID0gUEkgLyAxODA7XG52YXIgRE9VQkxFX1BJID0gUEkgKiAyO1xudmFyIEhBTEZfUEkgPSBQSSAvIDI7XG52YXIgUVVBUlRFUl9QSSA9IFBJIC8gNDtcbnZhciBUV09fVEhJUkRTX1BJID0gUEkgKiAyIC8gMztcblxuLyoqXG4gKiBAbmFtZXNwYWNlIENoYXJ0LmhlbHBlcnMuY2FudmFzXG4gKi9cbnZhciBleHBvcnRzJDEgPSB7XG5cdC8qKlxuXHQgKiBDbGVhcnMgdGhlIGVudGlyZSBjYW52YXMgYXNzb2NpYXRlZCB0byB0aGUgZ2l2ZW4gYGNoYXJ0YC5cblx0ICogQHBhcmFtIHtDaGFydH0gY2hhcnQgLSBUaGUgY2hhcnQgZm9yIHdoaWNoIHRvIGNsZWFyIHRoZSBjYW52YXMuXG5cdCAqL1xuXHRjbGVhcjogZnVuY3Rpb24oY2hhcnQpIHtcblx0XHRjaGFydC5jdHguY2xlYXJSZWN0KDAsIDAsIGNoYXJ0LndpZHRoLCBjaGFydC5oZWlnaHQpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgXCJwYXRoXCIgZm9yIGEgcmVjdGFuZ2xlIHdpdGggcm91bmRlZCBjb3JuZXJzIGF0IHBvc2l0aW9uICh4LCB5KSB3aXRoIGFcblx0ICogZ2l2ZW4gc2l6ZSAod2lkdGgsIGhlaWdodCkgYW5kIHRoZSBzYW1lIGByYWRpdXNgIGZvciBhbGwgY29ybmVycy5cblx0ICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGN0eCAtIFRoZSBjYW52YXMgMkQgQ29udGV4dC5cblx0ICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBheGlzIG9mIHRoZSBjb29yZGluYXRlIGZvciB0aGUgcmVjdGFuZ2xlIHN0YXJ0aW5nIHBvaW50LlxuXHQgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB5IGF4aXMgb2YgdGhlIGNvb3JkaW5hdGUgZm9yIHRoZSByZWN0YW5nbGUgc3RhcnRpbmcgcG9pbnQuXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFRoZSByZWN0YW5nbGUncyB3aWR0aC5cblx0ICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSByZWN0YW5nbGUncyBoZWlnaHQuXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSByYWRpdXMgLSBUaGUgcm91bmRlZCBhbW91bnQgKGluIHBpeGVscykgZm9yIHRoZSBmb3VyIGNvcm5lcnMuXG5cdCAqIEB0b2RvIGhhbmRsZSBgcmFkaXVzYCBhcyB0b3AtbGVmdCwgdG9wLXJpZ2h0LCBib3R0b20tcmlnaHQsIGJvdHRvbS1sZWZ0IGFycmF5L29iamVjdD9cblx0ICovXG5cdHJvdW5kZWRSZWN0OiBmdW5jdGlvbihjdHgsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHJhZGl1cykge1xuXHRcdGlmIChyYWRpdXMpIHtcblx0XHRcdHZhciByID0gTWF0aC5taW4ocmFkaXVzLCBoZWlnaHQgLyAyLCB3aWR0aCAvIDIpO1xuXHRcdFx0dmFyIGxlZnQgPSB4ICsgcjtcblx0XHRcdHZhciB0b3AgPSB5ICsgcjtcblx0XHRcdHZhciByaWdodCA9IHggKyB3aWR0aCAtIHI7XG5cdFx0XHR2YXIgYm90dG9tID0geSArIGhlaWdodCAtIHI7XG5cblx0XHRcdGN0eC5tb3ZlVG8oeCwgdG9wKTtcblx0XHRcdGlmIChsZWZ0IDwgcmlnaHQgJiYgdG9wIDwgYm90dG9tKSB7XG5cdFx0XHRcdGN0eC5hcmMobGVmdCwgdG9wLCByLCAtUEksIC1IQUxGX1BJKTtcblx0XHRcdFx0Y3R4LmFyYyhyaWdodCwgdG9wLCByLCAtSEFMRl9QSSwgMCk7XG5cdFx0XHRcdGN0eC5hcmMocmlnaHQsIGJvdHRvbSwgciwgMCwgSEFMRl9QSSk7XG5cdFx0XHRcdGN0eC5hcmMobGVmdCwgYm90dG9tLCByLCBIQUxGX1BJLCBQSSk7XG5cdFx0XHR9IGVsc2UgaWYgKGxlZnQgPCByaWdodCkge1xuXHRcdFx0XHRjdHgubW92ZVRvKGxlZnQsIHkpO1xuXHRcdFx0XHRjdHguYXJjKHJpZ2h0LCB0b3AsIHIsIC1IQUxGX1BJLCBIQUxGX1BJKTtcblx0XHRcdFx0Y3R4LmFyYyhsZWZ0LCB0b3AsIHIsIEhBTEZfUEksIFBJICsgSEFMRl9QSSk7XG5cdFx0XHR9IGVsc2UgaWYgKHRvcCA8IGJvdHRvbSkge1xuXHRcdFx0XHRjdHguYXJjKGxlZnQsIHRvcCwgciwgLVBJLCAwKTtcblx0XHRcdFx0Y3R4LmFyYyhsZWZ0LCBib3R0b20sIHIsIDAsIFBJKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGN0eC5hcmMobGVmdCwgdG9wLCByLCAtUEksIFBJKTtcblx0XHRcdH1cblx0XHRcdGN0eC5jbG9zZVBhdGgoKTtcblx0XHRcdGN0eC5tb3ZlVG8oeCwgeSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGN0eC5yZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpO1xuXHRcdH1cblx0fSxcblxuXHRkcmF3UG9pbnQ6IGZ1bmN0aW9uKGN0eCwgc3R5bGUsIHJhZGl1cywgeCwgeSwgcm90YXRpb24pIHtcblx0XHR2YXIgdHlwZSwgeE9mZnNldCwgeU9mZnNldCwgc2l6ZSwgY29ybmVyUmFkaXVzO1xuXHRcdHZhciByYWQgPSAocm90YXRpb24gfHwgMCkgKiBSQURfUEVSX0RFRztcblxuXHRcdGlmIChzdHlsZSAmJiB0eXBlb2Ygc3R5bGUgPT09ICdvYmplY3QnKSB7XG5cdFx0XHR0eXBlID0gc3R5bGUudG9TdHJpbmcoKTtcblx0XHRcdGlmICh0eXBlID09PSAnW29iamVjdCBIVE1MSW1hZ2VFbGVtZW50XScgfHwgdHlwZSA9PT0gJ1tvYmplY3QgSFRNTENhbnZhc0VsZW1lbnRdJykge1xuXHRcdFx0XHRjdHguZHJhd0ltYWdlKHN0eWxlLCB4IC0gc3R5bGUud2lkdGggLyAyLCB5IC0gc3R5bGUuaGVpZ2h0IC8gMiwgc3R5bGUud2lkdGgsIHN0eWxlLmhlaWdodCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoaXNOYU4ocmFkaXVzKSB8fCByYWRpdXMgPD0gMCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGN0eC5iZWdpblBhdGgoKTtcblxuXHRcdHN3aXRjaCAoc3R5bGUpIHtcblx0XHQvLyBEZWZhdWx0IGluY2x1ZGVzIGNpcmNsZVxuXHRcdGRlZmF1bHQ6XG5cdFx0XHRjdHguYXJjKHgsIHksIHJhZGl1cywgMCwgRE9VQkxFX1BJKTtcblx0XHRcdGN0eC5jbG9zZVBhdGgoKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJ3RyaWFuZ2xlJzpcblx0XHRcdGN0eC5tb3ZlVG8oeCArIE1hdGguc2luKHJhZCkgKiByYWRpdXMsIHkgLSBNYXRoLmNvcyhyYWQpICogcmFkaXVzKTtcblx0XHRcdHJhZCArPSBUV09fVEhJUkRTX1BJO1xuXHRcdFx0Y3R4LmxpbmVUbyh4ICsgTWF0aC5zaW4ocmFkKSAqIHJhZGl1cywgeSAtIE1hdGguY29zKHJhZCkgKiByYWRpdXMpO1xuXHRcdFx0cmFkICs9IFRXT19USElSRFNfUEk7XG5cdFx0XHRjdHgubGluZVRvKHggKyBNYXRoLnNpbihyYWQpICogcmFkaXVzLCB5IC0gTWF0aC5jb3MocmFkKSAqIHJhZGl1cyk7XG5cdFx0XHRjdHguY2xvc2VQYXRoKCk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlICdyZWN0Um91bmRlZCc6XG5cdFx0XHQvLyBOT1RFOiB0aGUgcm91bmRlZCByZWN0IGltcGxlbWVudGF0aW9uIGNoYW5nZWQgdG8gdXNlIGBhcmNgIGluc3RlYWQgb2Zcblx0XHRcdC8vIGBxdWFkcmF0aWNDdXJ2ZVRvYCBzaW5jZSBpdCBnZW5lcmF0ZXMgYmV0dGVyIHJlc3VsdHMgd2hlbiByZWN0IGlzXG5cdFx0XHQvLyBhbG1vc3QgYSBjaXJjbGUuIDAuNTE2IChpbnN0ZWFkIG9mIDAuNSkgcHJvZHVjZXMgcmVzdWx0cyB3aXRoIHZpc3VhbGx5XG5cdFx0XHQvLyBjbG9zZXIgcHJvcG9ydGlvbiB0byB0aGUgcHJldmlvdXMgaW1wbCBhbmQgaXQgaXMgaW5zY3JpYmVkIGluIHRoZVxuXHRcdFx0Ly8gY2lyY2xlIHdpdGggYHJhZGl1c2AuIEZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGUgZm9sbG93aW5nIFBSczpcblx0XHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL2lzc3Vlcy81NTk3XG5cdFx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vY2hhcnRqcy9DaGFydC5qcy9pc3N1ZXMvNTg1OFxuXHRcdFx0Y29ybmVyUmFkaXVzID0gcmFkaXVzICogMC41MTY7XG5cdFx0XHRzaXplID0gcmFkaXVzIC0gY29ybmVyUmFkaXVzO1xuXHRcdFx0eE9mZnNldCA9IE1hdGguY29zKHJhZCArIFFVQVJURVJfUEkpICogc2l6ZTtcblx0XHRcdHlPZmZzZXQgPSBNYXRoLnNpbihyYWQgKyBRVUFSVEVSX1BJKSAqIHNpemU7XG5cdFx0XHRjdHguYXJjKHggLSB4T2Zmc2V0LCB5IC0geU9mZnNldCwgY29ybmVyUmFkaXVzLCByYWQgLSBQSSwgcmFkIC0gSEFMRl9QSSk7XG5cdFx0XHRjdHguYXJjKHggKyB5T2Zmc2V0LCB5IC0geE9mZnNldCwgY29ybmVyUmFkaXVzLCByYWQgLSBIQUxGX1BJLCByYWQpO1xuXHRcdFx0Y3R4LmFyYyh4ICsgeE9mZnNldCwgeSArIHlPZmZzZXQsIGNvcm5lclJhZGl1cywgcmFkLCByYWQgKyBIQUxGX1BJKTtcblx0XHRcdGN0eC5hcmMoeCAtIHlPZmZzZXQsIHkgKyB4T2Zmc2V0LCBjb3JuZXJSYWRpdXMsIHJhZCArIEhBTEZfUEksIHJhZCArIFBJKTtcblx0XHRcdGN0eC5jbG9zZVBhdGgoKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJ3JlY3QnOlxuXHRcdFx0aWYgKCFyb3RhdGlvbikge1xuXHRcdFx0XHRzaXplID0gTWF0aC5TUVJUMV8yICogcmFkaXVzO1xuXHRcdFx0XHRjdHgucmVjdCh4IC0gc2l6ZSwgeSAtIHNpemUsIDIgKiBzaXplLCAyICogc2l6ZSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0cmFkICs9IFFVQVJURVJfUEk7XG5cdFx0XHQvKiBmYWxscyB0aHJvdWdoICovXG5cdFx0Y2FzZSAncmVjdFJvdCc6XG5cdFx0XHR4T2Zmc2V0ID0gTWF0aC5jb3MocmFkKSAqIHJhZGl1cztcblx0XHRcdHlPZmZzZXQgPSBNYXRoLnNpbihyYWQpICogcmFkaXVzO1xuXHRcdFx0Y3R4Lm1vdmVUbyh4IC0geE9mZnNldCwgeSAtIHlPZmZzZXQpO1xuXHRcdFx0Y3R4LmxpbmVUbyh4ICsgeU9mZnNldCwgeSAtIHhPZmZzZXQpO1xuXHRcdFx0Y3R4LmxpbmVUbyh4ICsgeE9mZnNldCwgeSArIHlPZmZzZXQpO1xuXHRcdFx0Y3R4LmxpbmVUbyh4IC0geU9mZnNldCwgeSArIHhPZmZzZXQpO1xuXHRcdFx0Y3R4LmNsb3NlUGF0aCgpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnY3Jvc3NSb3QnOlxuXHRcdFx0cmFkICs9IFFVQVJURVJfUEk7XG5cdFx0XHQvKiBmYWxscyB0aHJvdWdoICovXG5cdFx0Y2FzZSAnY3Jvc3MnOlxuXHRcdFx0eE9mZnNldCA9IE1hdGguY29zKHJhZCkgKiByYWRpdXM7XG5cdFx0XHR5T2Zmc2V0ID0gTWF0aC5zaW4ocmFkKSAqIHJhZGl1cztcblx0XHRcdGN0eC5tb3ZlVG8oeCAtIHhPZmZzZXQsIHkgLSB5T2Zmc2V0KTtcblx0XHRcdGN0eC5saW5lVG8oeCArIHhPZmZzZXQsIHkgKyB5T2Zmc2V0KTtcblx0XHRcdGN0eC5tb3ZlVG8oeCArIHlPZmZzZXQsIHkgLSB4T2Zmc2V0KTtcblx0XHRcdGN0eC5saW5lVG8oeCAtIHlPZmZzZXQsIHkgKyB4T2Zmc2V0KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJ3N0YXInOlxuXHRcdFx0eE9mZnNldCA9IE1hdGguY29zKHJhZCkgKiByYWRpdXM7XG5cdFx0XHR5T2Zmc2V0ID0gTWF0aC5zaW4ocmFkKSAqIHJhZGl1cztcblx0XHRcdGN0eC5tb3ZlVG8oeCAtIHhPZmZzZXQsIHkgLSB5T2Zmc2V0KTtcblx0XHRcdGN0eC5saW5lVG8oeCArIHhPZmZzZXQsIHkgKyB5T2Zmc2V0KTtcblx0XHRcdGN0eC5tb3ZlVG8oeCArIHlPZmZzZXQsIHkgLSB4T2Zmc2V0KTtcblx0XHRcdGN0eC5saW5lVG8oeCAtIHlPZmZzZXQsIHkgKyB4T2Zmc2V0KTtcblx0XHRcdHJhZCArPSBRVUFSVEVSX1BJO1xuXHRcdFx0eE9mZnNldCA9IE1hdGguY29zKHJhZCkgKiByYWRpdXM7XG5cdFx0XHR5T2Zmc2V0ID0gTWF0aC5zaW4ocmFkKSAqIHJhZGl1cztcblx0XHRcdGN0eC5tb3ZlVG8oeCAtIHhPZmZzZXQsIHkgLSB5T2Zmc2V0KTtcblx0XHRcdGN0eC5saW5lVG8oeCArIHhPZmZzZXQsIHkgKyB5T2Zmc2V0KTtcblx0XHRcdGN0eC5tb3ZlVG8oeCArIHlPZmZzZXQsIHkgLSB4T2Zmc2V0KTtcblx0XHRcdGN0eC5saW5lVG8oeCAtIHlPZmZzZXQsIHkgKyB4T2Zmc2V0KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJ2xpbmUnOlxuXHRcdFx0eE9mZnNldCA9IE1hdGguY29zKHJhZCkgKiByYWRpdXM7XG5cdFx0XHR5T2Zmc2V0ID0gTWF0aC5zaW4ocmFkKSAqIHJhZGl1cztcblx0XHRcdGN0eC5tb3ZlVG8oeCAtIHhPZmZzZXQsIHkgLSB5T2Zmc2V0KTtcblx0XHRcdGN0eC5saW5lVG8oeCArIHhPZmZzZXQsIHkgKyB5T2Zmc2V0KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJ2Rhc2gnOlxuXHRcdFx0Y3R4Lm1vdmVUbyh4LCB5KTtcblx0XHRcdGN0eC5saW5lVG8oeCArIE1hdGguY29zKHJhZCkgKiByYWRpdXMsIHkgKyBNYXRoLnNpbihyYWQpICogcmFkaXVzKTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGN0eC5maWxsKCk7XG5cdFx0Y3R4LnN0cm9rZSgpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHBvaW50IGlzIGluc2lkZSB0aGUgcmVjdGFuZ2xlXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBwb2ludCAtIFRoZSBwb2ludCB0byB0ZXN0XG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBhcmVhIC0gVGhlIHJlY3RhbmdsZVxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9pc1BvaW50SW5BcmVhOiBmdW5jdGlvbihwb2ludCwgYXJlYSkge1xuXHRcdHZhciBlcHNpbG9uID0gMWUtNjsgLy8gMWUtNiBpcyBtYXJnaW4gaW4gcGl4ZWxzIGZvciBhY2N1bXVsYXRlZCBlcnJvci5cblxuXHRcdHJldHVybiBwb2ludC54ID4gYXJlYS5sZWZ0IC0gZXBzaWxvbiAmJiBwb2ludC54IDwgYXJlYS5yaWdodCArIGVwc2lsb24gJiZcblx0XHRcdHBvaW50LnkgPiBhcmVhLnRvcCAtIGVwc2lsb24gJiYgcG9pbnQueSA8IGFyZWEuYm90dG9tICsgZXBzaWxvbjtcblx0fSxcblxuXHRjbGlwQXJlYTogZnVuY3Rpb24oY3R4LCBhcmVhKSB7XG5cdFx0Y3R4LnNhdmUoKTtcblx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0Y3R4LnJlY3QoYXJlYS5sZWZ0LCBhcmVhLnRvcCwgYXJlYS5yaWdodCAtIGFyZWEubGVmdCwgYXJlYS5ib3R0b20gLSBhcmVhLnRvcCk7XG5cdFx0Y3R4LmNsaXAoKTtcblx0fSxcblxuXHR1bmNsaXBBcmVhOiBmdW5jdGlvbihjdHgpIHtcblx0XHRjdHgucmVzdG9yZSgpO1xuXHR9LFxuXG5cdGxpbmVUbzogZnVuY3Rpb24oY3R4LCBwcmV2aW91cywgdGFyZ2V0LCBmbGlwKSB7XG5cdFx0dmFyIHN0ZXBwZWQgPSB0YXJnZXQuc3RlcHBlZExpbmU7XG5cdFx0aWYgKHN0ZXBwZWQpIHtcblx0XHRcdGlmIChzdGVwcGVkID09PSAnbWlkZGxlJykge1xuXHRcdFx0XHR2YXIgbWlkcG9pbnQgPSAocHJldmlvdXMueCArIHRhcmdldC54KSAvIDIuMDtcblx0XHRcdFx0Y3R4LmxpbmVUbyhtaWRwb2ludCwgZmxpcCA/IHRhcmdldC55IDogcHJldmlvdXMueSk7XG5cdFx0XHRcdGN0eC5saW5lVG8obWlkcG9pbnQsIGZsaXAgPyBwcmV2aW91cy55IDogdGFyZ2V0LnkpO1xuXHRcdFx0fSBlbHNlIGlmICgoc3RlcHBlZCA9PT0gJ2FmdGVyJyAmJiAhZmxpcCkgfHwgKHN0ZXBwZWQgIT09ICdhZnRlcicgJiYgZmxpcCkpIHtcblx0XHRcdFx0Y3R4LmxpbmVUbyhwcmV2aW91cy54LCB0YXJnZXQueSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjdHgubGluZVRvKHRhcmdldC54LCBwcmV2aW91cy55KTtcblx0XHRcdH1cblx0XHRcdGN0eC5saW5lVG8odGFyZ2V0LngsIHRhcmdldC55KTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIXRhcmdldC50ZW5zaW9uKSB7XG5cdFx0XHRjdHgubGluZVRvKHRhcmdldC54LCB0YXJnZXQueSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y3R4LmJlemllckN1cnZlVG8oXG5cdFx0XHRmbGlwID8gcHJldmlvdXMuY29udHJvbFBvaW50UHJldmlvdXNYIDogcHJldmlvdXMuY29udHJvbFBvaW50TmV4dFgsXG5cdFx0XHRmbGlwID8gcHJldmlvdXMuY29udHJvbFBvaW50UHJldmlvdXNZIDogcHJldmlvdXMuY29udHJvbFBvaW50TmV4dFksXG5cdFx0XHRmbGlwID8gdGFyZ2V0LmNvbnRyb2xQb2ludE5leHRYIDogdGFyZ2V0LmNvbnRyb2xQb2ludFByZXZpb3VzWCxcblx0XHRcdGZsaXAgPyB0YXJnZXQuY29udHJvbFBvaW50TmV4dFkgOiB0YXJnZXQuY29udHJvbFBvaW50UHJldmlvdXNZLFxuXHRcdFx0dGFyZ2V0LngsXG5cdFx0XHR0YXJnZXQueSk7XG5cdH1cbn07XG5cbnZhciBoZWxwZXJzX2NhbnZhcyA9IGV4cG9ydHMkMTtcblxuLy8gREVQUkVDQVRJT05TXG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHVzZSBDaGFydC5oZWxwZXJzLmNhbnZhcy5jbGVhciBpbnN0ZWFkLlxuICogQG5hbWVzcGFjZSBDaGFydC5oZWxwZXJzLmNsZWFyXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuNy4wXG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKiBAcHJpdmF0ZVxuICovXG5oZWxwZXJzX2NvcmUuY2xlYXIgPSBleHBvcnRzJDEuY2xlYXI7XG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHVzZSBDaGFydC5oZWxwZXJzLmNhbnZhcy5yb3VuZGVkUmVjdCBpbnN0ZWFkLlxuICogQG5hbWVzcGFjZSBDaGFydC5oZWxwZXJzLmRyYXdSb3VuZGVkUmVjdGFuZ2xlXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuNy4wXG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKiBAcHJpdmF0ZVxuICovXG5oZWxwZXJzX2NvcmUuZHJhd1JvdW5kZWRSZWN0YW5nbGUgPSBmdW5jdGlvbihjdHgpIHtcblx0Y3R4LmJlZ2luUGF0aCgpO1xuXHRleHBvcnRzJDEucm91bmRlZFJlY3QuYXBwbHkoZXhwb3J0cyQxLCBhcmd1bWVudHMpO1xufTtcblxudmFyIGRlZmF1bHRzID0ge1xuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9zZXQ6IGZ1bmN0aW9uKHNjb3BlLCB2YWx1ZXMpIHtcblx0XHRyZXR1cm4gaGVscGVyc19jb3JlLm1lcmdlKHRoaXNbc2NvcGVdIHx8ICh0aGlzW3Njb3BlXSA9IHt9KSwgdmFsdWVzKTtcblx0fVxufTtcblxuZGVmYXVsdHMuX3NldCgnZ2xvYmFsJywge1xuXHRkZWZhdWx0Q29sb3I6ICdyZ2JhKDAsMCwwLDAuMSknLFxuXHRkZWZhdWx0Rm9udENvbG9yOiAnIzY2NicsXG5cdGRlZmF1bHRGb250RmFtaWx5OiBcIidIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EnLCAnQXJpYWwnLCBzYW5zLXNlcmlmXCIsXG5cdGRlZmF1bHRGb250U2l6ZTogMTIsXG5cdGRlZmF1bHRGb250U3R5bGU6ICdub3JtYWwnLFxuXHRkZWZhdWx0TGluZUhlaWdodDogMS4yLFxuXHRzaG93TGluZXM6IHRydWVcbn0pO1xuXG52YXIgY29yZV9kZWZhdWx0cyA9IGRlZmF1bHRzO1xuXG52YXIgdmFsdWVPckRlZmF1bHQgPSBoZWxwZXJzX2NvcmUudmFsdWVPckRlZmF1bHQ7XG5cbi8qKlxuICogQ29udmVydHMgdGhlIGdpdmVuIGZvbnQgb2JqZWN0IGludG8gYSBDU1MgZm9udCBzdHJpbmcuXG4gKiBAcGFyYW0ge29iamVjdH0gZm9udCAtIEEgZm9udCBvYmplY3QuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBDU1MgZm9udCBzdHJpbmcuIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvZm9udFxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gdG9Gb250U3RyaW5nKGZvbnQpIHtcblx0aWYgKCFmb250IHx8IGhlbHBlcnNfY29yZS5pc051bGxPclVuZGVmKGZvbnQuc2l6ZSkgfHwgaGVscGVyc19jb3JlLmlzTnVsbE9yVW5kZWYoZm9udC5mYW1pbHkpKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRyZXR1cm4gKGZvbnQuc3R5bGUgPyBmb250LnN0eWxlICsgJyAnIDogJycpXG5cdFx0KyAoZm9udC53ZWlnaHQgPyBmb250LndlaWdodCArICcgJyA6ICcnKVxuXHRcdCsgZm9udC5zaXplICsgJ3B4ICdcblx0XHQrIGZvbnQuZmFtaWx5O1xufVxuXG4vKipcbiAqIEBhbGlhcyBDaGFydC5oZWxwZXJzLm9wdGlvbnNcbiAqIEBuYW1lc3BhY2VcbiAqL1xudmFyIGhlbHBlcnNfb3B0aW9ucyA9IHtcblx0LyoqXG5cdCAqIENvbnZlcnRzIHRoZSBnaXZlbiBsaW5lIGhlaWdodCBgdmFsdWVgIGluIHBpeGVscyBmb3IgYSBzcGVjaWZpYyBmb250IGBzaXplYC5cblx0ICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSB2YWx1ZSAtIFRoZSBsaW5lSGVpZ2h0IHRvIHBhcnNlIChlZy4gMS42LCAnMTRweCcsICc3NSUnLCAnMS42ZW0nKS5cblx0ICogQHBhcmFtIHtudW1iZXJ9IHNpemUgLSBUaGUgZm9udCBzaXplIChpbiBwaXhlbHMpIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBgdmFsdWVgLlxuXHQgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgZWZmZWN0aXZlIGxpbmUgaGVpZ2h0IGluIHBpeGVscyAoc2l6ZSAqIDEuMiBpZiB2YWx1ZSBpcyBpbnZhbGlkKS5cblx0ICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvbGluZS1oZWlnaHRcblx0ICogQHNpbmNlIDIuNy4wXG5cdCAqL1xuXHR0b0xpbmVIZWlnaHQ6IGZ1bmN0aW9uKHZhbHVlLCBzaXplKSB7XG5cdFx0dmFyIG1hdGNoZXMgPSAoJycgKyB2YWx1ZSkubWF0Y2goL14obm9ybWFsfChcXGQrKD86XFwuXFxkKyk/KShweHxlbXwlKT8pJC8pO1xuXHRcdGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzWzFdID09PSAnbm9ybWFsJykge1xuXHRcdFx0cmV0dXJuIHNpemUgKiAxLjI7XG5cdFx0fVxuXG5cdFx0dmFsdWUgPSArbWF0Y2hlc1syXTtcblxuXHRcdHN3aXRjaCAobWF0Y2hlc1szXSkge1xuXHRcdGNhc2UgJ3B4Jzpcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRjYXNlICclJzpcblx0XHRcdHZhbHVlIC89IDEwMDtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRicmVhaztcblx0XHR9XG5cblx0XHRyZXR1cm4gc2l6ZSAqIHZhbHVlO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDb252ZXJ0cyB0aGUgZ2l2ZW4gdmFsdWUgaW50byBhIHBhZGRpbmcgb2JqZWN0IHdpdGggcHJlLWNvbXB1dGVkIHdpZHRoL2hlaWdodC5cblx0ICogQHBhcmFtIHtudW1iZXJ8b2JqZWN0fSB2YWx1ZSAtIElmIGEgbnVtYmVyLCBzZXQgdGhlIHZhbHVlIHRvIGFsbCBUUkJMIGNvbXBvbmVudCxcblx0ICogIGVsc2UsIGlmIGFuZCBvYmplY3QsIHVzZSBkZWZpbmVkIHByb3BlcnRpZXMgYW5kIHNldHMgdW5kZWZpbmVkIG9uZXMgdG8gMC5cblx0ICogQHJldHVybnMge29iamVjdH0gVGhlIHBhZGRpbmcgdmFsdWVzICh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIHdpZHRoLCBoZWlnaHQpXG5cdCAqIEBzaW5jZSAyLjcuMFxuXHQgKi9cblx0dG9QYWRkaW5nOiBmdW5jdGlvbih2YWx1ZSkge1xuXHRcdHZhciB0LCByLCBiLCBsO1xuXG5cdFx0aWYgKGhlbHBlcnNfY29yZS5pc09iamVjdCh2YWx1ZSkpIHtcblx0XHRcdHQgPSArdmFsdWUudG9wIHx8IDA7XG5cdFx0XHRyID0gK3ZhbHVlLnJpZ2h0IHx8IDA7XG5cdFx0XHRiID0gK3ZhbHVlLmJvdHRvbSB8fCAwO1xuXHRcdFx0bCA9ICt2YWx1ZS5sZWZ0IHx8IDA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHQgPSByID0gYiA9IGwgPSArdmFsdWUgfHwgMDtcblx0XHR9XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0dG9wOiB0LFxuXHRcdFx0cmlnaHQ6IHIsXG5cdFx0XHRib3R0b206IGIsXG5cdFx0XHRsZWZ0OiBsLFxuXHRcdFx0aGVpZ2h0OiB0ICsgYixcblx0XHRcdHdpZHRoOiBsICsgclxuXHRcdH07XG5cdH0sXG5cblx0LyoqXG5cdCAqIFBhcnNlcyBmb250IG9wdGlvbnMgYW5kIHJldHVybnMgdGhlIGZvbnQgb2JqZWN0LlxuXHQgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIEEgb2JqZWN0IHRoYXQgY29udGFpbnMgZm9udCBvcHRpb25zIHRvIGJlIHBhcnNlZC5cblx0ICogQHJldHVybiB7b2JqZWN0fSBUaGUgZm9udCBvYmplY3QuXG5cdCAqIEB0b2RvIFN1cHBvcnQgZm9udC4qIG9wdGlvbnMgYW5kIHJlbmFtZWQgdG8gdG9Gb250KCkuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfcGFyc2VGb250OiBmdW5jdGlvbihvcHRpb25zKSB7XG5cdFx0dmFyIGdsb2JhbERlZmF1bHRzID0gY29yZV9kZWZhdWx0cy5nbG9iYWw7XG5cdFx0dmFyIHNpemUgPSB2YWx1ZU9yRGVmYXVsdChvcHRpb25zLmZvbnRTaXplLCBnbG9iYWxEZWZhdWx0cy5kZWZhdWx0Rm9udFNpemUpO1xuXHRcdHZhciBmb250ID0ge1xuXHRcdFx0ZmFtaWx5OiB2YWx1ZU9yRGVmYXVsdChvcHRpb25zLmZvbnRGYW1pbHksIGdsb2JhbERlZmF1bHRzLmRlZmF1bHRGb250RmFtaWx5KSxcblx0XHRcdGxpbmVIZWlnaHQ6IGhlbHBlcnNfY29yZS5vcHRpb25zLnRvTGluZUhlaWdodCh2YWx1ZU9yRGVmYXVsdChvcHRpb25zLmxpbmVIZWlnaHQsIGdsb2JhbERlZmF1bHRzLmRlZmF1bHRMaW5lSGVpZ2h0KSwgc2l6ZSksXG5cdFx0XHRzaXplOiBzaXplLFxuXHRcdFx0c3R5bGU6IHZhbHVlT3JEZWZhdWx0KG9wdGlvbnMuZm9udFN0eWxlLCBnbG9iYWxEZWZhdWx0cy5kZWZhdWx0Rm9udFN0eWxlKSxcblx0XHRcdHdlaWdodDogbnVsbCxcblx0XHRcdHN0cmluZzogJydcblx0XHR9O1xuXG5cdFx0Zm9udC5zdHJpbmcgPSB0b0ZvbnRTdHJpbmcoZm9udCk7XG5cdFx0cmV0dXJuIGZvbnQ7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEV2YWx1YXRlcyB0aGUgZ2l2ZW4gYGlucHV0c2Agc2VxdWVudGlhbGx5IGFuZCByZXR1cm5zIHRoZSBmaXJzdCBkZWZpbmVkIHZhbHVlLlxuXHQgKiBAcGFyYW0ge0FycmF5fSBpbnB1dHMgLSBBbiBhcnJheSBvZiB2YWx1ZXMsIGZhbGxpbmcgYmFjayB0byB0aGUgbGFzdCB2YWx1ZS5cblx0ICogQHBhcmFtIHtvYmplY3R9IFtjb250ZXh0XSAtIElmIGRlZmluZWQgYW5kIHRoZSBjdXJyZW50IHZhbHVlIGlzIGEgZnVuY3Rpb24sIHRoZSB2YWx1ZVxuXHQgKiBpcyBjYWxsZWQgd2l0aCBgY29udGV4dGAgYXMgZmlyc3QgYXJndW1lbnQgYW5kIHRoZSByZXN1bHQgYmVjb21lcyB0aGUgbmV3IGlucHV0LlxuXHQgKiBAcGFyYW0ge251bWJlcn0gW2luZGV4XSAtIElmIGRlZmluZWQgYW5kIHRoZSBjdXJyZW50IHZhbHVlIGlzIGFuIGFycmF5LCB0aGUgdmFsdWVcblx0ICogYXQgYGluZGV4YCBiZWNvbWUgdGhlIG5ldyBpbnB1dC5cblx0ICogQHNpbmNlIDIuNy4wXG5cdCAqL1xuXHRyZXNvbHZlOiBmdW5jdGlvbihpbnB1dHMsIGNvbnRleHQsIGluZGV4KSB7XG5cdFx0dmFyIGksIGlsZW4sIHZhbHVlO1xuXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IGlucHV0cy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdHZhbHVlID0gaW5wdXRzW2ldO1xuXHRcdFx0aWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY29udGV4dCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlKGNvbnRleHQpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGluZGV4ICE9PSB1bmRlZmluZWQgJiYgaGVscGVyc19jb3JlLmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRcdHZhbHVlID0gdmFsdWVbaW5kZXhdO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufTtcblxudmFyIGhlbHBlcnMkMSA9IGhlbHBlcnNfY29yZTtcbnZhciBlYXNpbmcgPSBoZWxwZXJzX2Vhc2luZztcbnZhciBjYW52YXMgPSBoZWxwZXJzX2NhbnZhcztcbnZhciBvcHRpb25zID0gaGVscGVyc19vcHRpb25zO1xuaGVscGVycyQxLmVhc2luZyA9IGVhc2luZztcbmhlbHBlcnMkMS5jYW52YXMgPSBjYW52YXM7XG5oZWxwZXJzJDEub3B0aW9ucyA9IG9wdGlvbnM7XG5cbmZ1bmN0aW9uIGludGVycG9sYXRlKHN0YXJ0LCB2aWV3LCBtb2RlbCwgZWFzZSkge1xuXHR2YXIga2V5cyA9IE9iamVjdC5rZXlzKG1vZGVsKTtcblx0dmFyIGksIGlsZW4sIGtleSwgYWN0dWFsLCBvcmlnaW4sIHRhcmdldCwgdHlwZSwgYzAsIGMxO1xuXG5cdGZvciAoaSA9IDAsIGlsZW4gPSBrZXlzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdGtleSA9IGtleXNbaV07XG5cblx0XHR0YXJnZXQgPSBtb2RlbFtrZXldO1xuXG5cdFx0Ly8gaWYgYSB2YWx1ZSBpcyBhZGRlZCB0byB0aGUgbW9kZWwgYWZ0ZXIgcGl2b3QoKSBoYXMgYmVlbiBjYWxsZWQsIHRoZSB2aWV3XG5cdFx0Ly8gZG9lc24ndCBjb250YWluIGl0LCBzbyBsZXQncyBpbml0aWFsaXplIHRoZSB2aWV3IHRvIHRoZSB0YXJnZXQgdmFsdWUuXG5cdFx0aWYgKCF2aWV3Lmhhc093blByb3BlcnR5KGtleSkpIHtcblx0XHRcdHZpZXdba2V5XSA9IHRhcmdldDtcblx0XHR9XG5cblx0XHRhY3R1YWwgPSB2aWV3W2tleV07XG5cblx0XHRpZiAoYWN0dWFsID09PSB0YXJnZXQgfHwga2V5WzBdID09PSAnXycpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGlmICghc3RhcnQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuXHRcdFx0c3RhcnRba2V5XSA9IGFjdHVhbDtcblx0XHR9XG5cblx0XHRvcmlnaW4gPSBzdGFydFtrZXldO1xuXG5cdFx0dHlwZSA9IHR5cGVvZiB0YXJnZXQ7XG5cblx0XHRpZiAodHlwZSA9PT0gdHlwZW9mIG9yaWdpbikge1xuXHRcdFx0aWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdGMwID0gY2hhcnRqc0NvbG9yKG9yaWdpbik7XG5cdFx0XHRcdGlmIChjMC52YWxpZCkge1xuXHRcdFx0XHRcdGMxID0gY2hhcnRqc0NvbG9yKHRhcmdldCk7XG5cdFx0XHRcdFx0aWYgKGMxLnZhbGlkKSB7XG5cdFx0XHRcdFx0XHR2aWV3W2tleV0gPSBjMS5taXgoYzAsIGVhc2UpLnJnYlN0cmluZygpO1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKGhlbHBlcnMkMS5pc0Zpbml0ZShvcmlnaW4pICYmIGhlbHBlcnMkMS5pc0Zpbml0ZSh0YXJnZXQpKSB7XG5cdFx0XHRcdHZpZXdba2V5XSA9IG9yaWdpbiArICh0YXJnZXQgLSBvcmlnaW4pICogZWFzZTtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dmlld1trZXldID0gdGFyZ2V0O1xuXHR9XG59XG5cbnZhciBFbGVtZW50ID0gZnVuY3Rpb24oY29uZmlndXJhdGlvbikge1xuXHRoZWxwZXJzJDEuZXh0ZW5kKHRoaXMsIGNvbmZpZ3VyYXRpb24pO1xuXHR0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5cbmhlbHBlcnMkMS5leHRlbmQoRWxlbWVudC5wcm90b3R5cGUsIHtcblxuXHRpbml0aWFsaXplOiBmdW5jdGlvbigpIHtcblx0XHR0aGlzLmhpZGRlbiA9IGZhbHNlO1xuXHR9LFxuXG5cdHBpdm90OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdGlmICghbWUuX3ZpZXcpIHtcblx0XHRcdG1lLl92aWV3ID0gaGVscGVycyQxLmNsb25lKG1lLl9tb2RlbCk7XG5cdFx0fVxuXHRcdG1lLl9zdGFydCA9IHt9O1xuXHRcdHJldHVybiBtZTtcblx0fSxcblxuXHR0cmFuc2l0aW9uOiBmdW5jdGlvbihlYXNlKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgbW9kZWwgPSBtZS5fbW9kZWw7XG5cdFx0dmFyIHN0YXJ0ID0gbWUuX3N0YXJ0O1xuXHRcdHZhciB2aWV3ID0gbWUuX3ZpZXc7XG5cblx0XHQvLyBObyBhbmltYXRpb24gLT4gTm8gVHJhbnNpdGlvblxuXHRcdGlmICghbW9kZWwgfHwgZWFzZSA9PT0gMSkge1xuXHRcdFx0bWUuX3ZpZXcgPSBtb2RlbDtcblx0XHRcdG1lLl9zdGFydCA9IG51bGw7XG5cdFx0XHRyZXR1cm4gbWU7XG5cdFx0fVxuXG5cdFx0aWYgKCF2aWV3KSB7XG5cdFx0XHR2aWV3ID0gbWUuX3ZpZXcgPSB7fTtcblx0XHR9XG5cblx0XHRpZiAoIXN0YXJ0KSB7XG5cdFx0XHRzdGFydCA9IG1lLl9zdGFydCA9IHt9O1xuXHRcdH1cblxuXHRcdGludGVycG9sYXRlKHN0YXJ0LCB2aWV3LCBtb2RlbCwgZWFzZSk7XG5cblx0XHRyZXR1cm4gbWU7XG5cdH0sXG5cblx0dG9vbHRpcFBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0eDogdGhpcy5fbW9kZWwueCxcblx0XHRcdHk6IHRoaXMuX21vZGVsLnlcblx0XHR9O1xuXHR9LFxuXG5cdGhhc1ZhbHVlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gaGVscGVycyQxLmlzTnVtYmVyKHRoaXMuX21vZGVsLngpICYmIGhlbHBlcnMkMS5pc051bWJlcih0aGlzLl9tb2RlbC55KTtcblx0fVxufSk7XG5cbkVsZW1lbnQuZXh0ZW5kID0gaGVscGVycyQxLmluaGVyaXRzO1xuXG52YXIgY29yZV9lbGVtZW50ID0gRWxlbWVudDtcblxudmFyIGV4cG9ydHMkMiA9IGNvcmVfZWxlbWVudC5leHRlbmQoe1xuXHRjaGFydDogbnVsbCwgLy8gdGhlIGFuaW1hdGlvbiBhc3NvY2lhdGVkIGNoYXJ0IGluc3RhbmNlXG5cdGN1cnJlbnRTdGVwOiAwLCAvLyB0aGUgY3VycmVudCBhbmltYXRpb24gc3RlcFxuXHRudW1TdGVwczogNjAsIC8vIGRlZmF1bHQgbnVtYmVyIG9mIHN0ZXBzXG5cdGVhc2luZzogJycsIC8vIHRoZSBlYXNpbmcgdG8gdXNlIGZvciB0aGlzIGFuaW1hdGlvblxuXHRyZW5kZXI6IG51bGwsIC8vIHJlbmRlciBmdW5jdGlvbiB1c2VkIGJ5IHRoZSBhbmltYXRpb24gc2VydmljZVxuXG5cdG9uQW5pbWF0aW9uUHJvZ3Jlc3M6IG51bGwsIC8vIHVzZXIgc3BlY2lmaWVkIGNhbGxiYWNrIHRvIGZpcmUgb24gZWFjaCBzdGVwIG9mIHRoZSBhbmltYXRpb25cblx0b25BbmltYXRpb25Db21wbGV0ZTogbnVsbCwgLy8gdXNlciBzcGVjaWZpZWQgY2FsbGJhY2sgdG8gZmlyZSB3aGVuIHRoZSBhbmltYXRpb24gZmluaXNoZXNcbn0pO1xuXG52YXIgY29yZV9hbmltYXRpb24gPSBleHBvcnRzJDI7XG5cbi8vIERFUFJFQ0FUSU9OU1xuXG4vKipcbiAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1c2UgQ2hhcnQuQW5pbWF0aW9uIGluc3RlYWRcbiAqIEBwcm9wIENoYXJ0LkFuaW1hdGlvbiNhbmltYXRpb25PYmplY3RcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMi42LjBcbiAqIEB0b2RvIHJlbW92ZSBhdCB2ZXJzaW9uIDNcbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMkMi5wcm90b3R5cGUsICdhbmltYXRpb25PYmplY3QnLCB7XG5cdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn0pO1xuXG4vKipcbiAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1c2UgQ2hhcnQuQW5pbWF0aW9uI2NoYXJ0IGluc3RlYWRcbiAqIEBwcm9wIENoYXJ0LkFuaW1hdGlvbiNjaGFydEluc3RhbmNlXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuNi4wXG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzJDIucHJvdG90eXBlLCAnY2hhcnRJbnN0YW5jZScsIHtcblx0Z2V0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5jaGFydDtcblx0fSxcblx0c2V0OiBmdW5jdGlvbih2YWx1ZSkge1xuXHRcdHRoaXMuY2hhcnQgPSB2YWx1ZTtcblx0fVxufSk7XG5cbmNvcmVfZGVmYXVsdHMuX3NldCgnZ2xvYmFsJywge1xuXHRhbmltYXRpb246IHtcblx0XHRkdXJhdGlvbjogMTAwMCxcblx0XHRlYXNpbmc6ICdlYXNlT3V0UXVhcnQnLFxuXHRcdG9uUHJvZ3Jlc3M6IGhlbHBlcnMkMS5ub29wLFxuXHRcdG9uQ29tcGxldGU6IGhlbHBlcnMkMS5ub29wXG5cdH1cbn0pO1xuXG52YXIgY29yZV9hbmltYXRpb25zID0ge1xuXHRhbmltYXRpb25zOiBbXSxcblx0cmVxdWVzdDogbnVsbCxcblxuXHQvKipcblx0ICogQHBhcmFtIHtDaGFydH0gY2hhcnQgLSBUaGUgY2hhcnQgdG8gYW5pbWF0ZS5cblx0ICogQHBhcmFtIHtDaGFydC5BbmltYXRpb259IGFuaW1hdGlvbiAtIFRoZSBhbmltYXRpb24gdGhhdCB3ZSB3aWxsIGFuaW1hdGUuXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbmltYXRpb24gZHVyYXRpb24gaW4gbXMuXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gbGF6eSAtIGlmIHRydWUsIHRoZSBjaGFydCBpcyBub3QgbWFya2VkIGFzIGFuaW1hdGluZyB0byBlbmFibGUgbW9yZSByZXNwb25zaXZlIGludGVyYWN0aW9uc1xuXHQgKi9cblx0YWRkQW5pbWF0aW9uOiBmdW5jdGlvbihjaGFydCwgYW5pbWF0aW9uLCBkdXJhdGlvbiwgbGF6eSkge1xuXHRcdHZhciBhbmltYXRpb25zID0gdGhpcy5hbmltYXRpb25zO1xuXHRcdHZhciBpLCBpbGVuO1xuXG5cdFx0YW5pbWF0aW9uLmNoYXJ0ID0gY2hhcnQ7XG5cdFx0YW5pbWF0aW9uLnN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cdFx0YW5pbWF0aW9uLmR1cmF0aW9uID0gZHVyYXRpb247XG5cblx0XHRpZiAoIWxhenkpIHtcblx0XHRcdGNoYXJ0LmFuaW1hdGluZyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IGFuaW1hdGlvbnMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRpZiAoYW5pbWF0aW9uc1tpXS5jaGFydCA9PT0gY2hhcnQpIHtcblx0XHRcdFx0YW5pbWF0aW9uc1tpXSA9IGFuaW1hdGlvbjtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGFuaW1hdGlvbnMucHVzaChhbmltYXRpb24pO1xuXG5cdFx0Ly8gSWYgdGhlcmUgYXJlIG5vIGFuaW1hdGlvbnMgcXVldWVkLCBtYW51YWxseSBraWNrc3RhcnQgYSBkaWdlc3QsIGZvciBsYWNrIG9mIGEgYmV0dGVyIHdvcmRcblx0XHRpZiAoYW5pbWF0aW9ucy5sZW5ndGggPT09IDEpIHtcblx0XHRcdHRoaXMucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCk7XG5cdFx0fVxuXHR9LFxuXG5cdGNhbmNlbEFuaW1hdGlvbjogZnVuY3Rpb24oY2hhcnQpIHtcblx0XHR2YXIgaW5kZXggPSBoZWxwZXJzJDEuZmluZEluZGV4KHRoaXMuYW5pbWF0aW9ucywgZnVuY3Rpb24oYW5pbWF0aW9uKSB7XG5cdFx0XHRyZXR1cm4gYW5pbWF0aW9uLmNoYXJ0ID09PSBjaGFydDtcblx0XHR9KTtcblxuXHRcdGlmIChpbmRleCAhPT0gLTEpIHtcblx0XHRcdHRoaXMuYW5pbWF0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuXHRcdFx0Y2hhcnQuYW5pbWF0aW5nID0gZmFsc2U7XG5cdFx0fVxuXHR9LFxuXG5cdHJlcXVlc3RBbmltYXRpb25GcmFtZTogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHRpZiAobWUucmVxdWVzdCA9PT0gbnVsbCkge1xuXHRcdFx0Ly8gU2tpcCBhbmltYXRpb24gZnJhbWUgcmVxdWVzdHMgdW50aWwgdGhlIGFjdGl2ZSBvbmUgaXMgZXhlY3V0ZWQuXG5cdFx0XHQvLyBUaGlzIGNhbiBoYXBwZW4gd2hlbiBwcm9jZXNzaW5nIG1vdXNlIGV2ZW50cywgZS5nLiAnbW91c2Vtb3ZlJ1xuXHRcdFx0Ly8gYW5kICdtb3VzZW91dCcgZXZlbnRzIHdpbGwgdHJpZ2dlciBtdWx0aXBsZSByZW5kZXJzLlxuXHRcdFx0bWUucmVxdWVzdCA9IGhlbHBlcnMkMS5yZXF1ZXN0QW5pbUZyYW1lLmNhbGwod2luZG93LCBmdW5jdGlvbigpIHtcblx0XHRcdFx0bWUucmVxdWVzdCA9IG51bGw7XG5cdFx0XHRcdG1lLnN0YXJ0RGlnZXN0KCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRzdGFydERpZ2VzdDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblxuXHRcdG1lLmFkdmFuY2UoKTtcblxuXHRcdC8vIERvIHdlIGhhdmUgbW9yZSBzdHVmZiB0byBhbmltYXRlP1xuXHRcdGlmIChtZS5hbmltYXRpb25zLmxlbmd0aCA+IDApIHtcblx0XHRcdG1lLnJlcXVlc3RBbmltYXRpb25GcmFtZSgpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGFkdmFuY2U6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBhbmltYXRpb25zID0gdGhpcy5hbmltYXRpb25zO1xuXHRcdHZhciBhbmltYXRpb24sIGNoYXJ0LCBudW1TdGVwcywgbmV4dFN0ZXA7XG5cdFx0dmFyIGkgPSAwO1xuXG5cdFx0Ly8gMSBhbmltYXRpb24gcGVyIGNoYXJ0LCBzbyB3ZSBhcmUgbG9vcGluZyBjaGFydHMgaGVyZVxuXHRcdHdoaWxlIChpIDwgYW5pbWF0aW9ucy5sZW5ndGgpIHtcblx0XHRcdGFuaW1hdGlvbiA9IGFuaW1hdGlvbnNbaV07XG5cdFx0XHRjaGFydCA9IGFuaW1hdGlvbi5jaGFydDtcblx0XHRcdG51bVN0ZXBzID0gYW5pbWF0aW9uLm51bVN0ZXBzO1xuXG5cdFx0XHQvLyBNYWtlIHN1cmUgdGhhdCBjdXJyZW50U3RlcCBzdGFydHMgYXQgMVxuXHRcdFx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvaXNzdWVzLzYxMDRcblx0XHRcdG5leHRTdGVwID0gTWF0aC5mbG9vcigoRGF0ZS5ub3coKSAtIGFuaW1hdGlvbi5zdGFydFRpbWUpIC8gYW5pbWF0aW9uLmR1cmF0aW9uICogbnVtU3RlcHMpICsgMTtcblx0XHRcdGFuaW1hdGlvbi5jdXJyZW50U3RlcCA9IE1hdGgubWluKG5leHRTdGVwLCBudW1TdGVwcyk7XG5cblx0XHRcdGhlbHBlcnMkMS5jYWxsYmFjayhhbmltYXRpb24ucmVuZGVyLCBbY2hhcnQsIGFuaW1hdGlvbl0sIGNoYXJ0KTtcblx0XHRcdGhlbHBlcnMkMS5jYWxsYmFjayhhbmltYXRpb24ub25BbmltYXRpb25Qcm9ncmVzcywgW2FuaW1hdGlvbl0sIGNoYXJ0KTtcblxuXHRcdFx0aWYgKGFuaW1hdGlvbi5jdXJyZW50U3RlcCA+PSBudW1TdGVwcykge1xuXHRcdFx0XHRoZWxwZXJzJDEuY2FsbGJhY2soYW5pbWF0aW9uLm9uQW5pbWF0aW9uQ29tcGxldGUsIFthbmltYXRpb25dLCBjaGFydCk7XG5cdFx0XHRcdGNoYXJ0LmFuaW1hdGluZyA9IGZhbHNlO1xuXHRcdFx0XHRhbmltYXRpb25zLnNwbGljZShpLCAxKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdCsraTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbnZhciByZXNvbHZlID0gaGVscGVycyQxLm9wdGlvbnMucmVzb2x2ZTtcblxudmFyIGFycmF5RXZlbnRzID0gWydwdXNoJywgJ3BvcCcsICdzaGlmdCcsICdzcGxpY2UnLCAndW5zaGlmdCddO1xuXG4vKipcbiAqIEhvb2tzIHRoZSBhcnJheSBtZXRob2RzIHRoYXQgYWRkIG9yIHJlbW92ZSB2YWx1ZXMgKCdwdXNoJywgcG9wJywgJ3NoaWZ0JywgJ3NwbGljZScsXG4gKiAndW5zaGlmdCcpIGFuZCBub3RpZnkgdGhlIGxpc3RlbmVyIEFGVEVSIHRoZSBhcnJheSBoYXMgYmVlbiBhbHRlcmVkLiBMaXN0ZW5lcnMgYXJlXG4gKiBjYWxsZWQgb24gdGhlICdvbkRhdGEqJyBjYWxsYmFja3MgKGUuZy4gb25EYXRhUHVzaCwgZXRjLikgd2l0aCBzYW1lIGFyZ3VtZW50cy5cbiAqL1xuZnVuY3Rpb24gbGlzdGVuQXJyYXlFdmVudHMoYXJyYXksIGxpc3RlbmVyKSB7XG5cdGlmIChhcnJheS5fY2hhcnRqcykge1xuXHRcdGFycmF5Ll9jaGFydGpzLmxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICdfY2hhcnRqcycsIHtcblx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0ZW51bWVyYWJsZTogZmFsc2UsXG5cdFx0dmFsdWU6IHtcblx0XHRcdGxpc3RlbmVyczogW2xpc3RlbmVyXVxuXHRcdH1cblx0fSk7XG5cblx0YXJyYXlFdmVudHMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcblx0XHR2YXIgbWV0aG9kID0gJ29uRGF0YScgKyBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG5cdFx0dmFyIGJhc2UgPSBhcnJheVtrZXldO1xuXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCBrZXksIHtcblx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0XHRcdGVudW1lcmFibGU6IGZhbHNlLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG5cdFx0XHRcdHZhciByZXMgPSBiYXNlLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG5cdFx0XHRcdGhlbHBlcnMkMS5lYWNoKGFycmF5Ll9jaGFydGpzLmxpc3RlbmVycywgZnVuY3Rpb24ob2JqZWN0KSB7XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBvYmplY3RbbWV0aG9kXSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0b2JqZWN0W21ldGhvZF0uYXBwbHkob2JqZWN0LCBhcmdzKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdHJldHVybiByZXM7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGdpdmVuIGFycmF5IGV2ZW50IGxpc3RlbmVyIGFuZCBjbGVhbnVwIGV4dHJhIGF0dGFjaGVkIHByb3BlcnRpZXMgKHN1Y2ggYXNcbiAqIHRoZSBfY2hhcnRqcyBzdHViIGFuZCBvdmVycmlkZGVuIG1ldGhvZHMpIGlmIGFycmF5IGRvZXNuJ3QgaGF2ZSBhbnkgbW9yZSBsaXN0ZW5lcnMuXG4gKi9cbmZ1bmN0aW9uIHVubGlzdGVuQXJyYXlFdmVudHMoYXJyYXksIGxpc3RlbmVyKSB7XG5cdHZhciBzdHViID0gYXJyYXkuX2NoYXJ0anM7XG5cdGlmICghc3R1Yikge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHZhciBsaXN0ZW5lcnMgPSBzdHViLmxpc3RlbmVycztcblx0dmFyIGluZGV4ID0gbGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xuXHRpZiAoaW5kZXggIT09IC0xKSB7XG5cdFx0bGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XG5cdH1cblxuXHRpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRhcnJheUV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuXHRcdGRlbGV0ZSBhcnJheVtrZXldO1xuXHR9KTtcblxuXHRkZWxldGUgYXJyYXkuX2NoYXJ0anM7XG59XG5cbi8vIEJhc2UgY2xhc3MgZm9yIGFsbCBkYXRhc2V0IGNvbnRyb2xsZXJzIChsaW5lLCBiYXIsIGV0YylcbnZhciBEYXRhc2V0Q29udHJvbGxlciA9IGZ1bmN0aW9uKGNoYXJ0LCBkYXRhc2V0SW5kZXgpIHtcblx0dGhpcy5pbml0aWFsaXplKGNoYXJ0LCBkYXRhc2V0SW5kZXgpO1xufTtcblxuaGVscGVycyQxLmV4dGVuZChEYXRhc2V0Q29udHJvbGxlci5wcm90b3R5cGUsIHtcblxuXHQvKipcblx0ICogRWxlbWVudCB0eXBlIHVzZWQgdG8gZ2VuZXJhdGUgYSBtZXRhIGRhdGFzZXQgKGUuZy4gQ2hhcnQuZWxlbWVudC5MaW5lKS5cblx0ICogQHR5cGUge0NoYXJ0LmNvcmUuZWxlbWVudH1cblx0ICovXG5cdGRhdGFzZXRFbGVtZW50VHlwZTogbnVsbCxcblxuXHQvKipcblx0ICogRWxlbWVudCB0eXBlIHVzZWQgdG8gZ2VuZXJhdGUgYSBtZXRhIGRhdGEgKGUuZy4gQ2hhcnQuZWxlbWVudC5Qb2ludCkuXG5cdCAqIEB0eXBlIHtDaGFydC5jb3JlLmVsZW1lbnR9XG5cdCAqL1xuXHRkYXRhRWxlbWVudFR5cGU6IG51bGwsXG5cblx0aW5pdGlhbGl6ZTogZnVuY3Rpb24oY2hhcnQsIGRhdGFzZXRJbmRleCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0bWUuY2hhcnQgPSBjaGFydDtcblx0XHRtZS5pbmRleCA9IGRhdGFzZXRJbmRleDtcblx0XHRtZS5saW5rU2NhbGVzKCk7XG5cdFx0bWUuYWRkRWxlbWVudHMoKTtcblx0fSxcblxuXHR1cGRhdGVJbmRleDogZnVuY3Rpb24oZGF0YXNldEluZGV4KSB7XG5cdFx0dGhpcy5pbmRleCA9IGRhdGFzZXRJbmRleDtcblx0fSxcblxuXHRsaW5rU2NhbGVzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBtZXRhID0gbWUuZ2V0TWV0YSgpO1xuXHRcdHZhciBkYXRhc2V0ID0gbWUuZ2V0RGF0YXNldCgpO1xuXG5cdFx0aWYgKG1ldGEueEF4aXNJRCA9PT0gbnVsbCB8fCAhKG1ldGEueEF4aXNJRCBpbiBtZS5jaGFydC5zY2FsZXMpKSB7XG5cdFx0XHRtZXRhLnhBeGlzSUQgPSBkYXRhc2V0LnhBeGlzSUQgfHwgbWUuY2hhcnQub3B0aW9ucy5zY2FsZXMueEF4ZXNbMF0uaWQ7XG5cdFx0fVxuXHRcdGlmIChtZXRhLnlBeGlzSUQgPT09IG51bGwgfHwgIShtZXRhLnlBeGlzSUQgaW4gbWUuY2hhcnQuc2NhbGVzKSkge1xuXHRcdFx0bWV0YS55QXhpc0lEID0gZGF0YXNldC55QXhpc0lEIHx8IG1lLmNoYXJ0Lm9wdGlvbnMuc2NhbGVzLnlBeGVzWzBdLmlkO1xuXHRcdH1cblx0fSxcblxuXHRnZXREYXRhc2V0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzW3RoaXMuaW5kZXhdO1xuXHR9LFxuXG5cdGdldE1ldGE6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmNoYXJ0LmdldERhdGFzZXRNZXRhKHRoaXMuaW5kZXgpO1xuXHR9LFxuXG5cdGdldFNjYWxlRm9ySWQ6IGZ1bmN0aW9uKHNjYWxlSUQpIHtcblx0XHRyZXR1cm4gdGhpcy5jaGFydC5zY2FsZXNbc2NhbGVJRF07XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfZ2V0VmFsdWVTY2FsZUlkOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRNZXRhKCkueUF4aXNJRDtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9nZXRJbmRleFNjYWxlSWQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmdldE1ldGEoKS54QXhpc0lEO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2dldFZhbHVlU2NhbGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmdldFNjYWxlRm9ySWQodGhpcy5fZ2V0VmFsdWVTY2FsZUlkKCkpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2dldEluZGV4U2NhbGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmdldFNjYWxlRm9ySWQodGhpcy5fZ2V0SW5kZXhTY2FsZUlkKCkpO1xuXHR9LFxuXG5cdHJlc2V0OiBmdW5jdGlvbigpIHtcblx0XHR0aGlzLnVwZGF0ZSh0cnVlKTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGRlc3Ryb3k6IGZ1bmN0aW9uKCkge1xuXHRcdGlmICh0aGlzLl9kYXRhKSB7XG5cdFx0XHR1bmxpc3RlbkFycmF5RXZlbnRzKHRoaXMuX2RhdGEsIHRoaXMpO1xuXHRcdH1cblx0fSxcblxuXHRjcmVhdGVNZXRhRGF0YXNldDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgdHlwZSA9IG1lLmRhdGFzZXRFbGVtZW50VHlwZTtcblx0XHRyZXR1cm4gdHlwZSAmJiBuZXcgdHlwZSh7XG5cdFx0XHRfY2hhcnQ6IG1lLmNoYXJ0LFxuXHRcdFx0X2RhdGFzZXRJbmRleDogbWUuaW5kZXhcblx0XHR9KTtcblx0fSxcblxuXHRjcmVhdGVNZXRhRGF0YTogZnVuY3Rpb24oaW5kZXgpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciB0eXBlID0gbWUuZGF0YUVsZW1lbnRUeXBlO1xuXHRcdHJldHVybiB0eXBlICYmIG5ldyB0eXBlKHtcblx0XHRcdF9jaGFydDogbWUuY2hhcnQsXG5cdFx0XHRfZGF0YXNldEluZGV4OiBtZS5pbmRleCxcblx0XHRcdF9pbmRleDogaW5kZXhcblx0XHR9KTtcblx0fSxcblxuXHRhZGRFbGVtZW50czogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgbWV0YSA9IG1lLmdldE1ldGEoKTtcblx0XHR2YXIgZGF0YSA9IG1lLmdldERhdGFzZXQoKS5kYXRhIHx8IFtdO1xuXHRcdHZhciBtZXRhRGF0YSA9IG1ldGEuZGF0YTtcblx0XHR2YXIgaSwgaWxlbjtcblxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSBkYXRhLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0bWV0YURhdGFbaV0gPSBtZXRhRGF0YVtpXSB8fCBtZS5jcmVhdGVNZXRhRGF0YShpKTtcblx0XHR9XG5cblx0XHRtZXRhLmRhdGFzZXQgPSBtZXRhLmRhdGFzZXQgfHwgbWUuY3JlYXRlTWV0YURhdGFzZXQoKTtcblx0fSxcblxuXHRhZGRFbGVtZW50QW5kUmVzZXQ6IGZ1bmN0aW9uKGluZGV4KSB7XG5cdFx0dmFyIGVsZW1lbnQgPSB0aGlzLmNyZWF0ZU1ldGFEYXRhKGluZGV4KTtcblx0XHR0aGlzLmdldE1ldGEoKS5kYXRhLnNwbGljZShpbmRleCwgMCwgZWxlbWVudCk7XG5cdFx0dGhpcy51cGRhdGVFbGVtZW50KGVsZW1lbnQsIGluZGV4LCB0cnVlKTtcblx0fSxcblxuXHRidWlsZE9yVXBkYXRlRWxlbWVudHM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGRhdGFzZXQgPSBtZS5nZXREYXRhc2V0KCk7XG5cdFx0dmFyIGRhdGEgPSBkYXRhc2V0LmRhdGEgfHwgKGRhdGFzZXQuZGF0YSA9IFtdKTtcblxuXHRcdC8vIEluIG9yZGVyIHRvIGNvcnJlY3RseSBoYW5kbGUgZGF0YSBhZGRpdGlvbi9kZWxldGlvbiBhbmltYXRpb24gKGFuIHRodXMgc2ltdWxhdGVcblx0XHQvLyByZWFsLXRpbWUgY2hhcnRzKSwgd2UgbmVlZCB0byBtb25pdG9yIHRoZXNlIGRhdGEgbW9kaWZpY2F0aW9ucyBhbmQgc3luY2hyb25pemVcblx0XHQvLyB0aGUgaW50ZXJuYWwgbWV0YSBkYXRhIGFjY29yZGluZ2x5LlxuXHRcdGlmIChtZS5fZGF0YSAhPT0gZGF0YSkge1xuXHRcdFx0aWYgKG1lLl9kYXRhKSB7XG5cdFx0XHRcdC8vIFRoaXMgY2FzZSBoYXBwZW5zIHdoZW4gdGhlIHVzZXIgcmVwbGFjZWQgdGhlIGRhdGEgYXJyYXkgaW5zdGFuY2UuXG5cdFx0XHRcdHVubGlzdGVuQXJyYXlFdmVudHMobWUuX2RhdGEsIG1lKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGRhdGEgJiYgT2JqZWN0LmlzRXh0ZW5zaWJsZShkYXRhKSkge1xuXHRcdFx0XHRsaXN0ZW5BcnJheUV2ZW50cyhkYXRhLCBtZSk7XG5cdFx0XHR9XG5cdFx0XHRtZS5fZGF0YSA9IGRhdGE7XG5cdFx0fVxuXG5cdFx0Ly8gUmUtc3luYyBtZXRhIGRhdGEgaW4gY2FzZSB0aGUgdXNlciByZXBsYWNlZCB0aGUgZGF0YSBhcnJheSBvciBpZiB3ZSBtaXNzZWRcblx0XHQvLyBhbnkgdXBkYXRlcyBhbmQgc28gbWFrZSBzdXJlIHRoYXQgd2UgaGFuZGxlIG51bWJlciBvZiBkYXRhcG9pbnRzIGNoYW5naW5nLlxuXHRcdG1lLnJlc3luY0VsZW1lbnRzKCk7XG5cdH0sXG5cblx0dXBkYXRlOiBoZWxwZXJzJDEubm9vcCxcblxuXHR0cmFuc2l0aW9uOiBmdW5jdGlvbihlYXNpbmdWYWx1ZSkge1xuXHRcdHZhciBtZXRhID0gdGhpcy5nZXRNZXRhKCk7XG5cdFx0dmFyIGVsZW1lbnRzID0gbWV0YS5kYXRhIHx8IFtdO1xuXHRcdHZhciBpbGVuID0gZWxlbWVudHMubGVuZ3RoO1xuXHRcdHZhciBpID0gMDtcblxuXHRcdGZvciAoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRlbGVtZW50c1tpXS50cmFuc2l0aW9uKGVhc2luZ1ZhbHVlKTtcblx0XHR9XG5cblx0XHRpZiAobWV0YS5kYXRhc2V0KSB7XG5cdFx0XHRtZXRhLmRhdGFzZXQudHJhbnNpdGlvbihlYXNpbmdWYWx1ZSk7XG5cdFx0fVxuXHR9LFxuXG5cdGRyYXc6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZXRhID0gdGhpcy5nZXRNZXRhKCk7XG5cdFx0dmFyIGVsZW1lbnRzID0gbWV0YS5kYXRhIHx8IFtdO1xuXHRcdHZhciBpbGVuID0gZWxlbWVudHMubGVuZ3RoO1xuXHRcdHZhciBpID0gMDtcblxuXHRcdGlmIChtZXRhLmRhdGFzZXQpIHtcblx0XHRcdG1ldGEuZGF0YXNldC5kcmF3KCk7XG5cdFx0fVxuXG5cdFx0Zm9yICg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdGVsZW1lbnRzW2ldLmRyYXcoKTtcblx0XHR9XG5cdH0sXG5cblx0cmVtb3ZlSG92ZXJTdHlsZTogZnVuY3Rpb24oZWxlbWVudCkge1xuXHRcdGhlbHBlcnMkMS5tZXJnZShlbGVtZW50Ll9tb2RlbCwgZWxlbWVudC4kcHJldmlvdXNTdHlsZSB8fCB7fSk7XG5cdFx0ZGVsZXRlIGVsZW1lbnQuJHByZXZpb3VzU3R5bGU7XG5cdH0sXG5cblx0c2V0SG92ZXJTdHlsZTogZnVuY3Rpb24oZWxlbWVudCkge1xuXHRcdHZhciBkYXRhc2V0ID0gdGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzW2VsZW1lbnQuX2RhdGFzZXRJbmRleF07XG5cdFx0dmFyIGluZGV4ID0gZWxlbWVudC5faW5kZXg7XG5cdFx0dmFyIGN1c3RvbSA9IGVsZW1lbnQuY3VzdG9tIHx8IHt9O1xuXHRcdHZhciBtb2RlbCA9IGVsZW1lbnQuX21vZGVsO1xuXHRcdHZhciBnZXRIb3ZlckNvbG9yID0gaGVscGVycyQxLmdldEhvdmVyQ29sb3I7XG5cblx0XHRlbGVtZW50LiRwcmV2aW91c1N0eWxlID0ge1xuXHRcdFx0YmFja2dyb3VuZENvbG9yOiBtb2RlbC5iYWNrZ3JvdW5kQ29sb3IsXG5cdFx0XHRib3JkZXJDb2xvcjogbW9kZWwuYm9yZGVyQ29sb3IsXG5cdFx0XHRib3JkZXJXaWR0aDogbW9kZWwuYm9yZGVyV2lkdGhcblx0XHR9O1xuXG5cdFx0bW9kZWwuYmFja2dyb3VuZENvbG9yID0gcmVzb2x2ZShbY3VzdG9tLmhvdmVyQmFja2dyb3VuZENvbG9yLCBkYXRhc2V0LmhvdmVyQmFja2dyb3VuZENvbG9yLCBnZXRIb3ZlckNvbG9yKG1vZGVsLmJhY2tncm91bmRDb2xvcildLCB1bmRlZmluZWQsIGluZGV4KTtcblx0XHRtb2RlbC5ib3JkZXJDb2xvciA9IHJlc29sdmUoW2N1c3RvbS5ob3ZlckJvcmRlckNvbG9yLCBkYXRhc2V0LmhvdmVyQm9yZGVyQ29sb3IsIGdldEhvdmVyQ29sb3IobW9kZWwuYm9yZGVyQ29sb3IpXSwgdW5kZWZpbmVkLCBpbmRleCk7XG5cdFx0bW9kZWwuYm9yZGVyV2lkdGggPSByZXNvbHZlKFtjdXN0b20uaG92ZXJCb3JkZXJXaWR0aCwgZGF0YXNldC5ob3ZlckJvcmRlcldpZHRoLCBtb2RlbC5ib3JkZXJXaWR0aF0sIHVuZGVmaW5lZCwgaW5kZXgpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cmVzeW5jRWxlbWVudHM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG1ldGEgPSBtZS5nZXRNZXRhKCk7XG5cdFx0dmFyIGRhdGEgPSBtZS5nZXREYXRhc2V0KCkuZGF0YTtcblx0XHR2YXIgbnVtTWV0YSA9IG1ldGEuZGF0YS5sZW5ndGg7XG5cdFx0dmFyIG51bURhdGEgPSBkYXRhLmxlbmd0aDtcblxuXHRcdGlmIChudW1EYXRhIDwgbnVtTWV0YSkge1xuXHRcdFx0bWV0YS5kYXRhLnNwbGljZShudW1EYXRhLCBudW1NZXRhIC0gbnVtRGF0YSk7XG5cdFx0fSBlbHNlIGlmIChudW1EYXRhID4gbnVtTWV0YSkge1xuXHRcdFx0bWUuaW5zZXJ0RWxlbWVudHMobnVtTWV0YSwgbnVtRGF0YSAtIG51bU1ldGEpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGluc2VydEVsZW1lbnRzOiBmdW5jdGlvbihzdGFydCwgY291bnQpIHtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHtcblx0XHRcdHRoaXMuYWRkRWxlbWVudEFuZFJlc2V0KHN0YXJ0ICsgaSk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0b25EYXRhUHVzaDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGNvdW50ID0gYXJndW1lbnRzLmxlbmd0aDtcblx0XHR0aGlzLmluc2VydEVsZW1lbnRzKHRoaXMuZ2V0RGF0YXNldCgpLmRhdGEubGVuZ3RoIC0gY291bnQsIGNvdW50KTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdG9uRGF0YVBvcDogZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy5nZXRNZXRhKCkuZGF0YS5wb3AoKTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdG9uRGF0YVNoaWZ0OiBmdW5jdGlvbigpIHtcblx0XHR0aGlzLmdldE1ldGEoKS5kYXRhLnNoaWZ0KCk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRvbkRhdGFTcGxpY2U6IGZ1bmN0aW9uKHN0YXJ0LCBjb3VudCkge1xuXHRcdHRoaXMuZ2V0TWV0YSgpLmRhdGEuc3BsaWNlKHN0YXJ0LCBjb3VudCk7XG5cdFx0dGhpcy5pbnNlcnRFbGVtZW50cyhzdGFydCwgYXJndW1lbnRzLmxlbmd0aCAtIDIpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0b25EYXRhVW5zaGlmdDogZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy5pbnNlcnRFbGVtZW50cygwLCBhcmd1bWVudHMubGVuZ3RoKTtcblx0fVxufSk7XG5cbkRhdGFzZXRDb250cm9sbGVyLmV4dGVuZCA9IGhlbHBlcnMkMS5pbmhlcml0cztcblxudmFyIGNvcmVfZGF0YXNldENvbnRyb2xsZXIgPSBEYXRhc2V0Q29udHJvbGxlcjtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdnbG9iYWwnLCB7XG5cdGVsZW1lbnRzOiB7XG5cdFx0YXJjOiB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IGNvcmVfZGVmYXVsdHMuZ2xvYmFsLmRlZmF1bHRDb2xvcixcblx0XHRcdGJvcmRlckNvbG9yOiAnI2ZmZicsXG5cdFx0XHRib3JkZXJXaWR0aDogMixcblx0XHRcdGJvcmRlckFsaWduOiAnY2VudGVyJ1xuXHRcdH1cblx0fVxufSk7XG5cbnZhciBlbGVtZW50X2FyYyA9IGNvcmVfZWxlbWVudC5leHRlbmQoe1xuXHRpbkxhYmVsUmFuZ2U6IGZ1bmN0aW9uKG1vdXNlWCkge1xuXHRcdHZhciB2bSA9IHRoaXMuX3ZpZXc7XG5cblx0XHRpZiAodm0pIHtcblx0XHRcdHJldHVybiAoTWF0aC5wb3cobW91c2VYIC0gdm0ueCwgMikgPCBNYXRoLnBvdyh2bS5yYWRpdXMgKyB2bS5ob3ZlclJhZGl1cywgMikpO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0sXG5cblx0aW5SYW5nZTogZnVuY3Rpb24oY2hhcnRYLCBjaGFydFkpIHtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXG5cdFx0aWYgKHZtKSB7XG5cdFx0XHR2YXIgcG9pbnRSZWxhdGl2ZVBvc2l0aW9uID0gaGVscGVycyQxLmdldEFuZ2xlRnJvbVBvaW50KHZtLCB7eDogY2hhcnRYLCB5OiBjaGFydFl9KTtcblx0XHRcdHZhclx0YW5nbGUgPSBwb2ludFJlbGF0aXZlUG9zaXRpb24uYW5nbGU7XG5cdFx0XHR2YXIgZGlzdGFuY2UgPSBwb2ludFJlbGF0aXZlUG9zaXRpb24uZGlzdGFuY2U7XG5cblx0XHRcdC8vIFNhbml0aXNlIGFuZ2xlIHJhbmdlXG5cdFx0XHR2YXIgc3RhcnRBbmdsZSA9IHZtLnN0YXJ0QW5nbGU7XG5cdFx0XHR2YXIgZW5kQW5nbGUgPSB2bS5lbmRBbmdsZTtcblx0XHRcdHdoaWxlIChlbmRBbmdsZSA8IHN0YXJ0QW5nbGUpIHtcblx0XHRcdFx0ZW5kQW5nbGUgKz0gMi4wICogTWF0aC5QSTtcblx0XHRcdH1cblx0XHRcdHdoaWxlIChhbmdsZSA+IGVuZEFuZ2xlKSB7XG5cdFx0XHRcdGFuZ2xlIC09IDIuMCAqIE1hdGguUEk7XG5cdFx0XHR9XG5cdFx0XHR3aGlsZSAoYW5nbGUgPCBzdGFydEFuZ2xlKSB7XG5cdFx0XHRcdGFuZ2xlICs9IDIuMCAqIE1hdGguUEk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENoZWNrIGlmIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgdGhlIG9wZW4vY2xvc2UgYW5nbGVcblx0XHRcdHZhciBiZXR3ZWVuQW5nbGVzID0gKGFuZ2xlID49IHN0YXJ0QW5nbGUgJiYgYW5nbGUgPD0gZW5kQW5nbGUpO1xuXHRcdFx0dmFyIHdpdGhpblJhZGl1cyA9IChkaXN0YW5jZSA+PSB2bS5pbm5lclJhZGl1cyAmJiBkaXN0YW5jZSA8PSB2bS5vdXRlclJhZGl1cyk7XG5cblx0XHRcdHJldHVybiAoYmV0d2VlbkFuZ2xlcyAmJiB3aXRoaW5SYWRpdXMpO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0sXG5cblx0Z2V0Q2VudGVyUG9pbnQ6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciB2bSA9IHRoaXMuX3ZpZXc7XG5cdFx0dmFyIGhhbGZBbmdsZSA9ICh2bS5zdGFydEFuZ2xlICsgdm0uZW5kQW5nbGUpIC8gMjtcblx0XHR2YXIgaGFsZlJhZGl1cyA9ICh2bS5pbm5lclJhZGl1cyArIHZtLm91dGVyUmFkaXVzKSAvIDI7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHg6IHZtLnggKyBNYXRoLmNvcyhoYWxmQW5nbGUpICogaGFsZlJhZGl1cyxcblx0XHRcdHk6IHZtLnkgKyBNYXRoLnNpbihoYWxmQW5nbGUpICogaGFsZlJhZGl1c1xuXHRcdH07XG5cdH0sXG5cblx0Z2V0QXJlYTogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIHZtID0gdGhpcy5fdmlldztcblx0XHRyZXR1cm4gTWF0aC5QSSAqICgodm0uZW5kQW5nbGUgLSB2bS5zdGFydEFuZ2xlKSAvICgyICogTWF0aC5QSSkpICogKE1hdGgucG93KHZtLm91dGVyUmFkaXVzLCAyKSAtIE1hdGgucG93KHZtLmlubmVyUmFkaXVzLCAyKSk7XG5cdH0sXG5cblx0dG9vbHRpcFBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXHRcdHZhciBjZW50cmVBbmdsZSA9IHZtLnN0YXJ0QW5nbGUgKyAoKHZtLmVuZEFuZ2xlIC0gdm0uc3RhcnRBbmdsZSkgLyAyKTtcblx0XHR2YXIgcmFuZ2VGcm9tQ2VudHJlID0gKHZtLm91dGVyUmFkaXVzIC0gdm0uaW5uZXJSYWRpdXMpIC8gMiArIHZtLmlubmVyUmFkaXVzO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHg6IHZtLnggKyAoTWF0aC5jb3MoY2VudHJlQW5nbGUpICogcmFuZ2VGcm9tQ2VudHJlKSxcblx0XHRcdHk6IHZtLnkgKyAoTWF0aC5zaW4oY2VudHJlQW5nbGUpICogcmFuZ2VGcm9tQ2VudHJlKVxuXHRcdH07XG5cdH0sXG5cblx0ZHJhdzogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGN0eCA9IHRoaXMuX2NoYXJ0LmN0eDtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXHRcdHZhciBzQSA9IHZtLnN0YXJ0QW5nbGU7XG5cdFx0dmFyIGVBID0gdm0uZW5kQW5nbGU7XG5cdFx0dmFyIHBpeGVsTWFyZ2luID0gKHZtLmJvcmRlckFsaWduID09PSAnaW5uZXInKSA/IDAuMzMgOiAwO1xuXHRcdHZhciBhbmdsZU1hcmdpbjtcblxuXHRcdGN0eC5zYXZlKCk7XG5cblx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0Y3R4LmFyYyh2bS54LCB2bS55LCBNYXRoLm1heCh2bS5vdXRlclJhZGl1cyAtIHBpeGVsTWFyZ2luLCAwKSwgc0EsIGVBKTtcblx0XHRjdHguYXJjKHZtLngsIHZtLnksIHZtLmlubmVyUmFkaXVzLCBlQSwgc0EsIHRydWUpO1xuXHRcdGN0eC5jbG9zZVBhdGgoKTtcblxuXHRcdGN0eC5maWxsU3R5bGUgPSB2bS5iYWNrZ3JvdW5kQ29sb3I7XG5cdFx0Y3R4LmZpbGwoKTtcblxuXHRcdGlmICh2bS5ib3JkZXJXaWR0aCkge1xuXHRcdFx0aWYgKHZtLmJvcmRlckFsaWduID09PSAnaW5uZXInKSB7XG5cdFx0XHRcdC8vIERyYXcgYW4gaW5uZXIgYm9yZGVyIGJ5IGNsaXBpbmcgdGhlIGFyYyBhbmQgZHJhd2luZyBhIGRvdWJsZS13aWR0aCBib3JkZXJcblx0XHRcdFx0Ly8gRW5sYXJnZSB0aGUgY2xpcHBpbmcgYXJjIGJ5IDAuMzMgcGl4ZWxzIHRvIGVsaW1pbmF0ZSBnbGl0Y2hlcyBiZXR3ZWVuIGJvcmRlcnNcblx0XHRcdFx0Y3R4LmJlZ2luUGF0aCgpO1xuXHRcdFx0XHRhbmdsZU1hcmdpbiA9IHBpeGVsTWFyZ2luIC8gdm0ub3V0ZXJSYWRpdXM7XG5cdFx0XHRcdGN0eC5hcmModm0ueCwgdm0ueSwgdm0ub3V0ZXJSYWRpdXMsIHNBIC0gYW5nbGVNYXJnaW4sIGVBICsgYW5nbGVNYXJnaW4pO1xuXHRcdFx0XHRpZiAodm0uaW5uZXJSYWRpdXMgPiBwaXhlbE1hcmdpbikge1xuXHRcdFx0XHRcdGFuZ2xlTWFyZ2luID0gcGl4ZWxNYXJnaW4gLyB2bS5pbm5lclJhZGl1cztcblx0XHRcdFx0XHRjdHguYXJjKHZtLngsIHZtLnksIHZtLmlubmVyUmFkaXVzIC0gcGl4ZWxNYXJnaW4sIGVBICsgYW5nbGVNYXJnaW4sIHNBIC0gYW5nbGVNYXJnaW4sIHRydWUpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGN0eC5hcmModm0ueCwgdm0ueSwgcGl4ZWxNYXJnaW4sIGVBICsgTWF0aC5QSSAvIDIsIHNBIC0gTWF0aC5QSSAvIDIpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGN0eC5jbG9zZVBhdGgoKTtcblx0XHRcdFx0Y3R4LmNsaXAoKTtcblxuXHRcdFx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0XHRcdGN0eC5hcmModm0ueCwgdm0ueSwgdm0ub3V0ZXJSYWRpdXMsIHNBLCBlQSk7XG5cdFx0XHRcdGN0eC5hcmModm0ueCwgdm0ueSwgdm0uaW5uZXJSYWRpdXMsIGVBLCBzQSwgdHJ1ZSk7XG5cdFx0XHRcdGN0eC5jbG9zZVBhdGgoKTtcblxuXHRcdFx0XHRjdHgubGluZVdpZHRoID0gdm0uYm9yZGVyV2lkdGggKiAyO1xuXHRcdFx0XHRjdHgubGluZUpvaW4gPSAncm91bmQnO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3R4LmxpbmVXaWR0aCA9IHZtLmJvcmRlcldpZHRoO1xuXHRcdFx0XHRjdHgubGluZUpvaW4gPSAnYmV2ZWwnO1xuXHRcdFx0fVxuXG5cdFx0XHRjdHguc3Ryb2tlU3R5bGUgPSB2bS5ib3JkZXJDb2xvcjtcblx0XHRcdGN0eC5zdHJva2UoKTtcblx0XHR9XG5cblx0XHRjdHgucmVzdG9yZSgpO1xuXHR9XG59KTtcblxudmFyIHZhbHVlT3JEZWZhdWx0JDEgPSBoZWxwZXJzJDEudmFsdWVPckRlZmF1bHQ7XG5cbnZhciBkZWZhdWx0Q29sb3IgPSBjb3JlX2RlZmF1bHRzLmdsb2JhbC5kZWZhdWx0Q29sb3I7XG5cbmNvcmVfZGVmYXVsdHMuX3NldCgnZ2xvYmFsJywge1xuXHRlbGVtZW50czoge1xuXHRcdGxpbmU6IHtcblx0XHRcdHRlbnNpb246IDAuNCxcblx0XHRcdGJhY2tncm91bmRDb2xvcjogZGVmYXVsdENvbG9yLFxuXHRcdFx0Ym9yZGVyV2lkdGg6IDMsXG5cdFx0XHRib3JkZXJDb2xvcjogZGVmYXVsdENvbG9yLFxuXHRcdFx0Ym9yZGVyQ2FwU3R5bGU6ICdidXR0Jyxcblx0XHRcdGJvcmRlckRhc2g6IFtdLFxuXHRcdFx0Ym9yZGVyRGFzaE9mZnNldDogMC4wLFxuXHRcdFx0Ym9yZGVySm9pblN0eWxlOiAnbWl0ZXInLFxuXHRcdFx0Y2FwQmV6aWVyUG9pbnRzOiB0cnVlLFxuXHRcdFx0ZmlsbDogdHJ1ZSwgLy8gZG8gd2UgZmlsbCBpbiB0aGUgYXJlYSBiZXR3ZWVuIHRoZSBsaW5lIGFuZCBpdHMgYmFzZSBheGlzXG5cdFx0fVxuXHR9XG59KTtcblxudmFyIGVsZW1lbnRfbGluZSA9IGNvcmVfZWxlbWVudC5leHRlbmQoe1xuXHRkcmF3OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciB2bSA9IG1lLl92aWV3O1xuXHRcdHZhciBjdHggPSBtZS5fY2hhcnQuY3R4O1xuXHRcdHZhciBzcGFuR2FwcyA9IHZtLnNwYW5HYXBzO1xuXHRcdHZhciBwb2ludHMgPSBtZS5fY2hpbGRyZW4uc2xpY2UoKTsgLy8gY2xvbmUgYXJyYXlcblx0XHR2YXIgZ2xvYmFsRGVmYXVsdHMgPSBjb3JlX2RlZmF1bHRzLmdsb2JhbDtcblx0XHR2YXIgZ2xvYmFsT3B0aW9uTGluZUVsZW1lbnRzID0gZ2xvYmFsRGVmYXVsdHMuZWxlbWVudHMubGluZTtcblx0XHR2YXIgbGFzdERyYXduSW5kZXggPSAtMTtcblx0XHR2YXIgaW5kZXgsIGN1cnJlbnQsIHByZXZpb3VzLCBjdXJyZW50Vk07XG5cblx0XHQvLyBJZiB3ZSBhcmUgbG9vcGluZywgYWRkaW5nIHRoZSBmaXJzdCBwb2ludCBhZ2FpblxuXHRcdGlmIChtZS5fbG9vcCAmJiBwb2ludHMubGVuZ3RoKSB7XG5cdFx0XHRwb2ludHMucHVzaChwb2ludHNbMF0pO1xuXHRcdH1cblxuXHRcdGN0eC5zYXZlKCk7XG5cblx0XHQvLyBTdHJva2UgTGluZSBPcHRpb25zXG5cdFx0Y3R4LmxpbmVDYXAgPSB2bS5ib3JkZXJDYXBTdHlsZSB8fCBnbG9iYWxPcHRpb25MaW5lRWxlbWVudHMuYm9yZGVyQ2FwU3R5bGU7XG5cblx0XHQvLyBJRSA5IGFuZCAxMCBkbyBub3Qgc3VwcG9ydCBsaW5lIGRhc2hcblx0XHRpZiAoY3R4LnNldExpbmVEYXNoKSB7XG5cdFx0XHRjdHguc2V0TGluZURhc2godm0uYm9yZGVyRGFzaCB8fCBnbG9iYWxPcHRpb25MaW5lRWxlbWVudHMuYm9yZGVyRGFzaCk7XG5cdFx0fVxuXG5cdFx0Y3R4LmxpbmVEYXNoT2Zmc2V0ID0gdmFsdWVPckRlZmF1bHQkMSh2bS5ib3JkZXJEYXNoT2Zmc2V0LCBnbG9iYWxPcHRpb25MaW5lRWxlbWVudHMuYm9yZGVyRGFzaE9mZnNldCk7XG5cdFx0Y3R4LmxpbmVKb2luID0gdm0uYm9yZGVySm9pblN0eWxlIHx8IGdsb2JhbE9wdGlvbkxpbmVFbGVtZW50cy5ib3JkZXJKb2luU3R5bGU7XG5cdFx0Y3R4LmxpbmVXaWR0aCA9IHZhbHVlT3JEZWZhdWx0JDEodm0uYm9yZGVyV2lkdGgsIGdsb2JhbE9wdGlvbkxpbmVFbGVtZW50cy5ib3JkZXJXaWR0aCk7XG5cdFx0Y3R4LnN0cm9rZVN0eWxlID0gdm0uYm9yZGVyQ29sb3IgfHwgZ2xvYmFsRGVmYXVsdHMuZGVmYXVsdENvbG9yO1xuXG5cdFx0Ly8gU3Ryb2tlIExpbmVcblx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0bGFzdERyYXduSW5kZXggPSAtMTtcblxuXHRcdGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBvaW50cy5sZW5ndGg7ICsraW5kZXgpIHtcblx0XHRcdGN1cnJlbnQgPSBwb2ludHNbaW5kZXhdO1xuXHRcdFx0cHJldmlvdXMgPSBoZWxwZXJzJDEucHJldmlvdXNJdGVtKHBvaW50cywgaW5kZXgpO1xuXHRcdFx0Y3VycmVudFZNID0gY3VycmVudC5fdmlldztcblxuXHRcdFx0Ly8gRmlyc3QgcG9pbnQgbW92ZXMgdG8gaXQncyBzdGFydGluZyBwb3NpdGlvbiBubyBtYXR0ZXIgd2hhdFxuXHRcdFx0aWYgKGluZGV4ID09PSAwKSB7XG5cdFx0XHRcdGlmICghY3VycmVudFZNLnNraXApIHtcblx0XHRcdFx0XHRjdHgubW92ZVRvKGN1cnJlbnRWTS54LCBjdXJyZW50Vk0ueSk7XG5cdFx0XHRcdFx0bGFzdERyYXduSW5kZXggPSBpbmRleDtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cHJldmlvdXMgPSBsYXN0RHJhd25JbmRleCA9PT0gLTEgPyBwcmV2aW91cyA6IHBvaW50c1tsYXN0RHJhd25JbmRleF07XG5cblx0XHRcdFx0aWYgKCFjdXJyZW50Vk0uc2tpcCkge1xuXHRcdFx0XHRcdGlmICgobGFzdERyYXduSW5kZXggIT09IChpbmRleCAtIDEpICYmICFzcGFuR2FwcykgfHwgbGFzdERyYXduSW5kZXggPT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBUaGVyZSB3YXMgYSBnYXAgYW5kIHRoaXMgaXMgdGhlIGZpcnN0IHBvaW50IGFmdGVyIHRoZSBnYXBcblx0XHRcdFx0XHRcdGN0eC5tb3ZlVG8oY3VycmVudFZNLngsIGN1cnJlbnRWTS55KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Ly8gTGluZSB0byBuZXh0IHBvaW50XG5cdFx0XHRcdFx0XHRoZWxwZXJzJDEuY2FudmFzLmxpbmVUbyhjdHgsIHByZXZpb3VzLl92aWV3LCBjdXJyZW50Ll92aWV3KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0bGFzdERyYXduSW5kZXggPSBpbmRleDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGN0eC5zdHJva2UoKTtcblx0XHRjdHgucmVzdG9yZSgpO1xuXHR9XG59KTtcblxudmFyIHZhbHVlT3JEZWZhdWx0JDIgPSBoZWxwZXJzJDEudmFsdWVPckRlZmF1bHQ7XG5cbnZhciBkZWZhdWx0Q29sb3IkMSA9IGNvcmVfZGVmYXVsdHMuZ2xvYmFsLmRlZmF1bHRDb2xvcjtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdnbG9iYWwnLCB7XG5cdGVsZW1lbnRzOiB7XG5cdFx0cG9pbnQ6IHtcblx0XHRcdHJhZGl1czogMyxcblx0XHRcdHBvaW50U3R5bGU6ICdjaXJjbGUnLFxuXHRcdFx0YmFja2dyb3VuZENvbG9yOiBkZWZhdWx0Q29sb3IkMSxcblx0XHRcdGJvcmRlckNvbG9yOiBkZWZhdWx0Q29sb3IkMSxcblx0XHRcdGJvcmRlcldpZHRoOiAxLFxuXHRcdFx0Ly8gSG92ZXJcblx0XHRcdGhpdFJhZGl1czogMSxcblx0XHRcdGhvdmVyUmFkaXVzOiA0LFxuXHRcdFx0aG92ZXJCb3JkZXJXaWR0aDogMVxuXHRcdH1cblx0fVxufSk7XG5cbmZ1bmN0aW9uIHhSYW5nZShtb3VzZVgpIHtcblx0dmFyIHZtID0gdGhpcy5fdmlldztcblx0cmV0dXJuIHZtID8gKE1hdGguYWJzKG1vdXNlWCAtIHZtLngpIDwgdm0ucmFkaXVzICsgdm0uaGl0UmFkaXVzKSA6IGZhbHNlO1xufVxuXG5mdW5jdGlvbiB5UmFuZ2UobW91c2VZKSB7XG5cdHZhciB2bSA9IHRoaXMuX3ZpZXc7XG5cdHJldHVybiB2bSA/IChNYXRoLmFicyhtb3VzZVkgLSB2bS55KSA8IHZtLnJhZGl1cyArIHZtLmhpdFJhZGl1cykgOiBmYWxzZTtcbn1cblxudmFyIGVsZW1lbnRfcG9pbnQgPSBjb3JlX2VsZW1lbnQuZXh0ZW5kKHtcblx0aW5SYW5nZTogZnVuY3Rpb24obW91c2VYLCBtb3VzZVkpIHtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXHRcdHJldHVybiB2bSA/ICgoTWF0aC5wb3cobW91c2VYIC0gdm0ueCwgMikgKyBNYXRoLnBvdyhtb3VzZVkgLSB2bS55LCAyKSkgPCBNYXRoLnBvdyh2bS5oaXRSYWRpdXMgKyB2bS5yYWRpdXMsIDIpKSA6IGZhbHNlO1xuXHR9LFxuXG5cdGluTGFiZWxSYW5nZTogeFJhbmdlLFxuXHRpblhSYW5nZTogeFJhbmdlLFxuXHRpbllSYW5nZTogeVJhbmdlLFxuXG5cdGdldENlbnRlclBvaW50OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXHRcdHJldHVybiB7XG5cdFx0XHR4OiB2bS54LFxuXHRcdFx0eTogdm0ueVxuXHRcdH07XG5cdH0sXG5cblx0Z2V0QXJlYTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIE1hdGguUEkgKiBNYXRoLnBvdyh0aGlzLl92aWV3LnJhZGl1cywgMik7XG5cdH0sXG5cblx0dG9vbHRpcFBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXHRcdHJldHVybiB7XG5cdFx0XHR4OiB2bS54LFxuXHRcdFx0eTogdm0ueSxcblx0XHRcdHBhZGRpbmc6IHZtLnJhZGl1cyArIHZtLmJvcmRlcldpZHRoXG5cdFx0fTtcblx0fSxcblxuXHRkcmF3OiBmdW5jdGlvbihjaGFydEFyZWEpIHtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXHRcdHZhciBjdHggPSB0aGlzLl9jaGFydC5jdHg7XG5cdFx0dmFyIHBvaW50U3R5bGUgPSB2bS5wb2ludFN0eWxlO1xuXHRcdHZhciByb3RhdGlvbiA9IHZtLnJvdGF0aW9uO1xuXHRcdHZhciByYWRpdXMgPSB2bS5yYWRpdXM7XG5cdFx0dmFyIHggPSB2bS54O1xuXHRcdHZhciB5ID0gdm0ueTtcblx0XHR2YXIgZ2xvYmFsRGVmYXVsdHMgPSBjb3JlX2RlZmF1bHRzLmdsb2JhbDtcblx0XHR2YXIgZGVmYXVsdENvbG9yID0gZ2xvYmFsRGVmYXVsdHMuZGVmYXVsdENvbG9yOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNoYWRvd1xuXG5cdFx0aWYgKHZtLnNraXApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBDbGlwcGluZyBmb3IgUG9pbnRzLlxuXHRcdGlmIChjaGFydEFyZWEgPT09IHVuZGVmaW5lZCB8fCBoZWxwZXJzJDEuY2FudmFzLl9pc1BvaW50SW5BcmVhKHZtLCBjaGFydEFyZWEpKSB7XG5cdFx0XHRjdHguc3Ryb2tlU3R5bGUgPSB2bS5ib3JkZXJDb2xvciB8fCBkZWZhdWx0Q29sb3I7XG5cdFx0XHRjdHgubGluZVdpZHRoID0gdmFsdWVPckRlZmF1bHQkMih2bS5ib3JkZXJXaWR0aCwgZ2xvYmFsRGVmYXVsdHMuZWxlbWVudHMucG9pbnQuYm9yZGVyV2lkdGgpO1xuXHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHZtLmJhY2tncm91bmRDb2xvciB8fCBkZWZhdWx0Q29sb3I7XG5cdFx0XHRoZWxwZXJzJDEuY2FudmFzLmRyYXdQb2ludChjdHgsIHBvaW50U3R5bGUsIHJhZGl1cywgeCwgeSwgcm90YXRpb24pO1xuXHRcdH1cblx0fVxufSk7XG5cbnZhciBkZWZhdWx0Q29sb3IkMiA9IGNvcmVfZGVmYXVsdHMuZ2xvYmFsLmRlZmF1bHRDb2xvcjtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdnbG9iYWwnLCB7XG5cdGVsZW1lbnRzOiB7XG5cdFx0cmVjdGFuZ2xlOiB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IGRlZmF1bHRDb2xvciQyLFxuXHRcdFx0Ym9yZGVyQ29sb3I6IGRlZmF1bHRDb2xvciQyLFxuXHRcdFx0Ym9yZGVyU2tpcHBlZDogJ2JvdHRvbScsXG5cdFx0XHRib3JkZXJXaWR0aDogMFxuXHRcdH1cblx0fVxufSk7XG5cbmZ1bmN0aW9uIGlzVmVydGljYWwodm0pIHtcblx0cmV0dXJuIHZtICYmIHZtLndpZHRoICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgYm91bmRzIG9mIHRoZSBiYXIgcmVnYXJkbGVzcyBvZiB0aGUgb3JpZW50YXRpb25cbiAqIEBwYXJhbSBiYXIge0NoYXJ0LkVsZW1lbnQuUmVjdGFuZ2xlfSB0aGUgYmFyXG4gKiBAcmV0dXJuIHtCb3VuZHN9IGJvdW5kcyBvZiB0aGUgYmFyXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBnZXRCYXJCb3VuZHModm0pIHtcblx0dmFyIHgxLCB4MiwgeTEsIHkyLCBoYWxmO1xuXG5cdGlmIChpc1ZlcnRpY2FsKHZtKSkge1xuXHRcdGhhbGYgPSB2bS53aWR0aCAvIDI7XG5cdFx0eDEgPSB2bS54IC0gaGFsZjtcblx0XHR4MiA9IHZtLnggKyBoYWxmO1xuXHRcdHkxID0gTWF0aC5taW4odm0ueSwgdm0uYmFzZSk7XG5cdFx0eTIgPSBNYXRoLm1heCh2bS55LCB2bS5iYXNlKTtcblx0fSBlbHNlIHtcblx0XHRoYWxmID0gdm0uaGVpZ2h0IC8gMjtcblx0XHR4MSA9IE1hdGgubWluKHZtLngsIHZtLmJhc2UpO1xuXHRcdHgyID0gTWF0aC5tYXgodm0ueCwgdm0uYmFzZSk7XG5cdFx0eTEgPSB2bS55IC0gaGFsZjtcblx0XHR5MiA9IHZtLnkgKyBoYWxmO1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRsZWZ0OiB4MSxcblx0XHR0b3A6IHkxLFxuXHRcdHJpZ2h0OiB4Mixcblx0XHRib3R0b206IHkyXG5cdH07XG59XG5cbmZ1bmN0aW9uIHN3YXAob3JpZywgdjEsIHYyKSB7XG5cdHJldHVybiBvcmlnID09PSB2MSA/IHYyIDogb3JpZyA9PT0gdjIgPyB2MSA6IG9yaWc7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQm9yZGVyU2tpcHBlZCh2bSkge1xuXHR2YXIgZWRnZSA9IHZtLmJvcmRlclNraXBwZWQ7XG5cdHZhciByZXMgPSB7fTtcblxuXHRpZiAoIWVkZ2UpIHtcblx0XHRyZXR1cm4gcmVzO1xuXHR9XG5cblx0aWYgKHZtLmhvcml6b250YWwpIHtcblx0XHRpZiAodm0uYmFzZSA+IHZtLngpIHtcblx0XHRcdGVkZ2UgPSBzd2FwKGVkZ2UsICdsZWZ0JywgJ3JpZ2h0Jyk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKHZtLmJhc2UgPCB2bS55KSB7XG5cdFx0ZWRnZSA9IHN3YXAoZWRnZSwgJ2JvdHRvbScsICd0b3AnKTtcblx0fVxuXG5cdHJlc1tlZGdlXSA9IHRydWU7XG5cdHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQm9yZGVyV2lkdGgodm0sIG1heFcsIG1heEgpIHtcblx0dmFyIHZhbHVlID0gdm0uYm9yZGVyV2lkdGg7XG5cdHZhciBza2lwID0gcGFyc2VCb3JkZXJTa2lwcGVkKHZtKTtcblx0dmFyIHQsIHIsIGIsIGw7XG5cblx0aWYgKGhlbHBlcnMkMS5pc09iamVjdCh2YWx1ZSkpIHtcblx0XHR0ID0gK3ZhbHVlLnRvcCB8fCAwO1xuXHRcdHIgPSArdmFsdWUucmlnaHQgfHwgMDtcblx0XHRiID0gK3ZhbHVlLmJvdHRvbSB8fCAwO1xuXHRcdGwgPSArdmFsdWUubGVmdCB8fCAwO1xuXHR9IGVsc2Uge1xuXHRcdHQgPSByID0gYiA9IGwgPSArdmFsdWUgfHwgMDtcblx0fVxuXG5cdHJldHVybiB7XG5cdFx0dDogc2tpcC50b3AgfHwgKHQgPCAwKSA/IDAgOiB0ID4gbWF4SCA/IG1heEggOiB0LFxuXHRcdHI6IHNraXAucmlnaHQgfHwgKHIgPCAwKSA/IDAgOiByID4gbWF4VyA/IG1heFcgOiByLFxuXHRcdGI6IHNraXAuYm90dG9tIHx8IChiIDwgMCkgPyAwIDogYiA+IG1heEggPyBtYXhIIDogYixcblx0XHRsOiBza2lwLmxlZnQgfHwgKGwgPCAwKSA/IDAgOiBsID4gbWF4VyA/IG1heFcgOiBsXG5cdH07XG59XG5cbmZ1bmN0aW9uIGJvdW5kaW5nUmVjdHModm0pIHtcblx0dmFyIGJvdW5kcyA9IGdldEJhckJvdW5kcyh2bSk7XG5cdHZhciB3aWR0aCA9IGJvdW5kcy5yaWdodCAtIGJvdW5kcy5sZWZ0O1xuXHR2YXIgaGVpZ2h0ID0gYm91bmRzLmJvdHRvbSAtIGJvdW5kcy50b3A7XG5cdHZhciBib3JkZXIgPSBwYXJzZUJvcmRlcldpZHRoKHZtLCB3aWR0aCAvIDIsIGhlaWdodCAvIDIpO1xuXG5cdHJldHVybiB7XG5cdFx0b3V0ZXI6IHtcblx0XHRcdHg6IGJvdW5kcy5sZWZ0LFxuXHRcdFx0eTogYm91bmRzLnRvcCxcblx0XHRcdHc6IHdpZHRoLFxuXHRcdFx0aDogaGVpZ2h0XG5cdFx0fSxcblx0XHRpbm5lcjoge1xuXHRcdFx0eDogYm91bmRzLmxlZnQgKyBib3JkZXIubCxcblx0XHRcdHk6IGJvdW5kcy50b3AgKyBib3JkZXIudCxcblx0XHRcdHc6IHdpZHRoIC0gYm9yZGVyLmwgLSBib3JkZXIucixcblx0XHRcdGg6IGhlaWdodCAtIGJvcmRlci50IC0gYm9yZGVyLmJcblx0XHR9XG5cdH07XG59XG5cbmZ1bmN0aW9uIGluUmFuZ2Uodm0sIHgsIHkpIHtcblx0dmFyIHNraXBYID0geCA9PT0gbnVsbDtcblx0dmFyIHNraXBZID0geSA9PT0gbnVsbDtcblx0dmFyIGJvdW5kcyA9ICF2bSB8fCAoc2tpcFggJiYgc2tpcFkpID8gZmFsc2UgOiBnZXRCYXJCb3VuZHModm0pO1xuXG5cdHJldHVybiBib3VuZHNcblx0XHQmJiAoc2tpcFggfHwgeCA+PSBib3VuZHMubGVmdCAmJiB4IDw9IGJvdW5kcy5yaWdodClcblx0XHQmJiAoc2tpcFkgfHwgeSA+PSBib3VuZHMudG9wICYmIHkgPD0gYm91bmRzLmJvdHRvbSk7XG59XG5cbnZhciBlbGVtZW50X3JlY3RhbmdsZSA9IGNvcmVfZWxlbWVudC5leHRlbmQoe1xuXHRkcmF3OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgY3R4ID0gdGhpcy5fY2hhcnQuY3R4O1xuXHRcdHZhciB2bSA9IHRoaXMuX3ZpZXc7XG5cdFx0dmFyIHJlY3RzID0gYm91bmRpbmdSZWN0cyh2bSk7XG5cdFx0dmFyIG91dGVyID0gcmVjdHMub3V0ZXI7XG5cdFx0dmFyIGlubmVyID0gcmVjdHMuaW5uZXI7XG5cblx0XHRjdHguZmlsbFN0eWxlID0gdm0uYmFja2dyb3VuZENvbG9yO1xuXHRcdGN0eC5maWxsUmVjdChvdXRlci54LCBvdXRlci55LCBvdXRlci53LCBvdXRlci5oKTtcblxuXHRcdGlmIChvdXRlci53ID09PSBpbm5lci53ICYmIG91dGVyLmggPT09IGlubmVyLmgpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjdHguc2F2ZSgpO1xuXHRcdGN0eC5iZWdpblBhdGgoKTtcblx0XHRjdHgucmVjdChvdXRlci54LCBvdXRlci55LCBvdXRlci53LCBvdXRlci5oKTtcblx0XHRjdHguY2xpcCgpO1xuXHRcdGN0eC5maWxsU3R5bGUgPSB2bS5ib3JkZXJDb2xvcjtcblx0XHRjdHgucmVjdChpbm5lci54LCBpbm5lci55LCBpbm5lci53LCBpbm5lci5oKTtcblx0XHRjdHguZmlsbCgnZXZlbm9kZCcpO1xuXHRcdGN0eC5yZXN0b3JlKCk7XG5cdH0sXG5cblx0aGVpZ2h0OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXHRcdHJldHVybiB2bS5iYXNlIC0gdm0ueTtcblx0fSxcblxuXHRpblJhbmdlOiBmdW5jdGlvbihtb3VzZVgsIG1vdXNlWSkge1xuXHRcdHJldHVybiBpblJhbmdlKHRoaXMuX3ZpZXcsIG1vdXNlWCwgbW91c2VZKTtcblx0fSxcblxuXHRpbkxhYmVsUmFuZ2U6IGZ1bmN0aW9uKG1vdXNlWCwgbW91c2VZKSB7XG5cdFx0dmFyIHZtID0gdGhpcy5fdmlldztcblx0XHRyZXR1cm4gaXNWZXJ0aWNhbCh2bSlcblx0XHRcdD8gaW5SYW5nZSh2bSwgbW91c2VYLCBudWxsKVxuXHRcdFx0OiBpblJhbmdlKHZtLCBudWxsLCBtb3VzZVkpO1xuXHR9LFxuXG5cdGluWFJhbmdlOiBmdW5jdGlvbihtb3VzZVgpIHtcblx0XHRyZXR1cm4gaW5SYW5nZSh0aGlzLl92aWV3LCBtb3VzZVgsIG51bGwpO1xuXHR9LFxuXG5cdGluWVJhbmdlOiBmdW5jdGlvbihtb3VzZVkpIHtcblx0XHRyZXR1cm4gaW5SYW5nZSh0aGlzLl92aWV3LCBudWxsLCBtb3VzZVkpO1xuXHR9LFxuXG5cdGdldENlbnRlclBvaW50OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXHRcdHZhciB4LCB5O1xuXHRcdGlmIChpc1ZlcnRpY2FsKHZtKSkge1xuXHRcdFx0eCA9IHZtLng7XG5cdFx0XHR5ID0gKHZtLnkgKyB2bS5iYXNlKSAvIDI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHggPSAodm0ueCArIHZtLmJhc2UpIC8gMjtcblx0XHRcdHkgPSB2bS55O1xuXHRcdH1cblxuXHRcdHJldHVybiB7eDogeCwgeTogeX07XG5cdH0sXG5cblx0Z2V0QXJlYTogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIHZtID0gdGhpcy5fdmlldztcblxuXHRcdHJldHVybiBpc1ZlcnRpY2FsKHZtKVxuXHRcdFx0PyB2bS53aWR0aCAqIE1hdGguYWJzKHZtLnkgLSB2bS5iYXNlKVxuXHRcdFx0OiB2bS5oZWlnaHQgKiBNYXRoLmFicyh2bS54IC0gdm0uYmFzZSk7XG5cdH0sXG5cblx0dG9vbHRpcFBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgdm0gPSB0aGlzLl92aWV3O1xuXHRcdHJldHVybiB7XG5cdFx0XHR4OiB2bS54LFxuXHRcdFx0eTogdm0ueVxuXHRcdH07XG5cdH1cbn0pO1xuXG52YXIgZWxlbWVudHMgPSB7fTtcbnZhciBBcmMgPSBlbGVtZW50X2FyYztcbnZhciBMaW5lID0gZWxlbWVudF9saW5lO1xudmFyIFBvaW50ID0gZWxlbWVudF9wb2ludDtcbnZhciBSZWN0YW5nbGUgPSBlbGVtZW50X3JlY3RhbmdsZTtcbmVsZW1lbnRzLkFyYyA9IEFyYztcbmVsZW1lbnRzLkxpbmUgPSBMaW5lO1xuZWxlbWVudHMuUG9pbnQgPSBQb2ludDtcbmVsZW1lbnRzLlJlY3RhbmdsZSA9IFJlY3RhbmdsZTtcblxudmFyIHJlc29sdmUkMSA9IGhlbHBlcnMkMS5vcHRpb25zLnJlc29sdmU7XG5cbmNvcmVfZGVmYXVsdHMuX3NldCgnYmFyJywge1xuXHRob3Zlcjoge1xuXHRcdG1vZGU6ICdsYWJlbCdcblx0fSxcblxuXHRzY2FsZXM6IHtcblx0XHR4QXhlczogW3tcblx0XHRcdHR5cGU6ICdjYXRlZ29yeScsXG5cdFx0XHRjYXRlZ29yeVBlcmNlbnRhZ2U6IDAuOCxcblx0XHRcdGJhclBlcmNlbnRhZ2U6IDAuOSxcblx0XHRcdG9mZnNldDogdHJ1ZSxcblx0XHRcdGdyaWRMaW5lczoge1xuXHRcdFx0XHRvZmZzZXRHcmlkTGluZXM6IHRydWVcblx0XHRcdH1cblx0XHR9XSxcblxuXHRcdHlBeGVzOiBbe1xuXHRcdFx0dHlwZTogJ2xpbmVhcidcblx0XHR9XVxuXHR9XG59KTtcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgXCJvcHRpbWFsXCIgc2FtcGxlIHNpemUgdG8gbWFpbnRhaW4gYmFycyBlcXVhbGx5IHNpemVkIHdoaWxlIHByZXZlbnRpbmcgb3ZlcmxhcC5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGNvbXB1dGVNaW5TYW1wbGVTaXplKHNjYWxlLCBwaXhlbHMpIHtcblx0dmFyIG1pbiA9IHNjYWxlLmlzSG9yaXpvbnRhbCgpID8gc2NhbGUud2lkdGggOiBzY2FsZS5oZWlnaHQ7XG5cdHZhciB0aWNrcyA9IHNjYWxlLmdldFRpY2tzKCk7XG5cdHZhciBwcmV2LCBjdXJyLCBpLCBpbGVuO1xuXG5cdGZvciAoaSA9IDEsIGlsZW4gPSBwaXhlbHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0bWluID0gTWF0aC5taW4obWluLCBNYXRoLmFicyhwaXhlbHNbaV0gLSBwaXhlbHNbaSAtIDFdKSk7XG5cdH1cblxuXHRmb3IgKGkgPSAwLCBpbGVuID0gdGlja3MubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0Y3VyciA9IHNjYWxlLmdldFBpeGVsRm9yVGljayhpKTtcblx0XHRtaW4gPSBpID4gMCA/IE1hdGgubWluKG1pbiwgY3VyciAtIHByZXYpIDogbWluO1xuXHRcdHByZXYgPSBjdXJyO1xuXHR9XG5cblx0cmV0dXJuIG1pbjtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyBhbiBcImlkZWFsXCIgY2F0ZWdvcnkgYmFzZWQgb24gdGhlIGFic29sdXRlIGJhciB0aGlja25lc3Mgb3IsIGlmIHVuZGVmaW5lZCBvciBudWxsLFxuICogdXNlcyB0aGUgc21hbGxlc3QgaW50ZXJ2YWwgKHNlZSBjb21wdXRlTWluU2FtcGxlU2l6ZSkgdGhhdCBwcmV2ZW50cyBiYXIgb3ZlcmxhcHBpbmcuIFRoaXNcbiAqIG1vZGUgY3VycmVudGx5IGFsd2F5cyBnZW5lcmF0ZXMgYmFycyBlcXVhbGx5IHNpemVkICh1bnRpbCB3ZSBpbnRyb2R1Y2Ugc2NyaXB0YWJsZSBvcHRpb25zPykuXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBjb21wdXRlRml0Q2F0ZWdvcnlUcmFpdHMoaW5kZXgsIHJ1bGVyLCBvcHRpb25zKSB7XG5cdHZhciB0aGlja25lc3MgPSBvcHRpb25zLmJhclRoaWNrbmVzcztcblx0dmFyIGNvdW50ID0gcnVsZXIuc3RhY2tDb3VudDtcblx0dmFyIGN1cnIgPSBydWxlci5waXhlbHNbaW5kZXhdO1xuXHR2YXIgc2l6ZSwgcmF0aW87XG5cblx0aWYgKGhlbHBlcnMkMS5pc051bGxPclVuZGVmKHRoaWNrbmVzcykpIHtcblx0XHRzaXplID0gcnVsZXIubWluICogb3B0aW9ucy5jYXRlZ29yeVBlcmNlbnRhZ2U7XG5cdFx0cmF0aW8gPSBvcHRpb25zLmJhclBlcmNlbnRhZ2U7XG5cdH0gZWxzZSB7XG5cdFx0Ly8gV2hlbiBiYXIgdGhpY2tuZXNzIGlzIGVuZm9yY2VkLCBjYXRlZ29yeSBhbmQgYmFyIHBlcmNlbnRhZ2VzIGFyZSBpZ25vcmVkLlxuXHRcdC8vIE5vdGUoU0IpOiB3ZSBjb3VsZCBhZGQgc3VwcG9ydCBmb3IgcmVsYXRpdmUgYmFyIHRoaWNrbmVzcyAoZS5nLiBiYXJUaGlja25lc3M6ICc1MCUnKVxuXHRcdC8vIGFuZCBkZXByZWNhdGUgYmFyUGVyY2VudGFnZSBzaW5jZSB0aGlzIHZhbHVlIGlzIGlnbm9yZWQgd2hlbiB0aGlja25lc3MgaXMgYWJzb2x1dGUuXG5cdFx0c2l6ZSA9IHRoaWNrbmVzcyAqIGNvdW50O1xuXHRcdHJhdGlvID0gMTtcblx0fVxuXG5cdHJldHVybiB7XG5cdFx0Y2h1bms6IHNpemUgLyBjb3VudCxcblx0XHRyYXRpbzogcmF0aW8sXG5cdFx0c3RhcnQ6IGN1cnIgLSAoc2l6ZSAvIDIpXG5cdH07XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgYW4gXCJvcHRpbWFsXCIgY2F0ZWdvcnkgdGhhdCBnbG9iYWxseSBhcnJhbmdlcyBiYXJzIHNpZGUgYnkgc2lkZSAobm8gZ2FwIHdoZW5cbiAqIHBlcmNlbnRhZ2Ugb3B0aW9ucyBhcmUgMSksIGJhc2VkIG9uIHRoZSBwcmV2aW91cyBhbmQgZm9sbG93aW5nIGNhdGVnb3JpZXMuIFRoaXMgbW9kZVxuICogZ2VuZXJhdGVzIGJhcnMgd2l0aCBkaWZmZXJlbnQgd2lkdGhzIHdoZW4gZGF0YSBhcmUgbm90IGV2ZW5seSBzcGFjZWQuXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBjb21wdXRlRmxleENhdGVnb3J5VHJhaXRzKGluZGV4LCBydWxlciwgb3B0aW9ucykge1xuXHR2YXIgcGl4ZWxzID0gcnVsZXIucGl4ZWxzO1xuXHR2YXIgY3VyciA9IHBpeGVsc1tpbmRleF07XG5cdHZhciBwcmV2ID0gaW5kZXggPiAwID8gcGl4ZWxzW2luZGV4IC0gMV0gOiBudWxsO1xuXHR2YXIgbmV4dCA9IGluZGV4IDwgcGl4ZWxzLmxlbmd0aCAtIDEgPyBwaXhlbHNbaW5kZXggKyAxXSA6IG51bGw7XG5cdHZhciBwZXJjZW50ID0gb3B0aW9ucy5jYXRlZ29yeVBlcmNlbnRhZ2U7XG5cdHZhciBzdGFydCwgc2l6ZTtcblxuXHRpZiAocHJldiA9PT0gbnVsbCkge1xuXHRcdC8vIGZpcnN0IGRhdGE6IGl0cyBzaXplIGlzIGRvdWJsZSBiYXNlZCBvbiB0aGUgbmV4dCBwb2ludCBvcixcblx0XHQvLyBpZiBpdCdzIGFsc28gdGhlIGxhc3QgZGF0YSwgd2UgdXNlIHRoZSBzY2FsZSBzaXplLlxuXHRcdHByZXYgPSBjdXJyIC0gKG5leHQgPT09IG51bGwgPyBydWxlci5lbmQgLSBydWxlci5zdGFydCA6IG5leHQgLSBjdXJyKTtcblx0fVxuXG5cdGlmIChuZXh0ID09PSBudWxsKSB7XG5cdFx0Ly8gbGFzdCBkYXRhOiBpdHMgc2l6ZSBpcyBhbHNvIGRvdWJsZSBiYXNlZCBvbiB0aGUgcHJldmlvdXMgcG9pbnQuXG5cdFx0bmV4dCA9IGN1cnIgKyBjdXJyIC0gcHJldjtcblx0fVxuXG5cdHN0YXJ0ID0gY3VyciAtIChjdXJyIC0gTWF0aC5taW4ocHJldiwgbmV4dCkpIC8gMiAqIHBlcmNlbnQ7XG5cdHNpemUgPSBNYXRoLmFicyhuZXh0IC0gcHJldikgLyAyICogcGVyY2VudDtcblxuXHRyZXR1cm4ge1xuXHRcdGNodW5rOiBzaXplIC8gcnVsZXIuc3RhY2tDb3VudCxcblx0XHRyYXRpbzogb3B0aW9ucy5iYXJQZXJjZW50YWdlLFxuXHRcdHN0YXJ0OiBzdGFydFxuXHR9O1xufVxuXG52YXIgY29udHJvbGxlcl9iYXIgPSBjb3JlX2RhdGFzZXRDb250cm9sbGVyLmV4dGVuZCh7XG5cblx0ZGF0YUVsZW1lbnRUeXBlOiBlbGVtZW50cy5SZWN0YW5nbGUsXG5cblx0aW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgbWV0YTtcblxuXHRcdGNvcmVfZGF0YXNldENvbnRyb2xsZXIucHJvdG90eXBlLmluaXRpYWxpemUuYXBwbHkobWUsIGFyZ3VtZW50cyk7XG5cblx0XHRtZXRhID0gbWUuZ2V0TWV0YSgpO1xuXHRcdG1ldGEuc3RhY2sgPSBtZS5nZXREYXRhc2V0KCkuc3RhY2s7XG5cdFx0bWV0YS5iYXIgPSB0cnVlO1xuXHR9LFxuXG5cdHVwZGF0ZTogZnVuY3Rpb24ocmVzZXQpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciByZWN0cyA9IG1lLmdldE1ldGEoKS5kYXRhO1xuXHRcdHZhciBpLCBpbGVuO1xuXG5cdFx0bWUuX3J1bGVyID0gbWUuZ2V0UnVsZXIoKTtcblxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSByZWN0cy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdG1lLnVwZGF0ZUVsZW1lbnQocmVjdHNbaV0sIGksIHJlc2V0KTtcblx0XHR9XG5cdH0sXG5cblx0dXBkYXRlRWxlbWVudDogZnVuY3Rpb24ocmVjdGFuZ2xlLCBpbmRleCwgcmVzZXQpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBtZXRhID0gbWUuZ2V0TWV0YSgpO1xuXHRcdHZhciBkYXRhc2V0ID0gbWUuZ2V0RGF0YXNldCgpO1xuXHRcdHZhciBvcHRpb25zID0gbWUuX3Jlc29sdmVFbGVtZW50T3B0aW9ucyhyZWN0YW5nbGUsIGluZGV4KTtcblxuXHRcdHJlY3RhbmdsZS5feFNjYWxlID0gbWUuZ2V0U2NhbGVGb3JJZChtZXRhLnhBeGlzSUQpO1xuXHRcdHJlY3RhbmdsZS5feVNjYWxlID0gbWUuZ2V0U2NhbGVGb3JJZChtZXRhLnlBeGlzSUQpO1xuXHRcdHJlY3RhbmdsZS5fZGF0YXNldEluZGV4ID0gbWUuaW5kZXg7XG5cdFx0cmVjdGFuZ2xlLl9pbmRleCA9IGluZGV4O1xuXHRcdHJlY3RhbmdsZS5fbW9kZWwgPSB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IG9wdGlvbnMuYmFja2dyb3VuZENvbG9yLFxuXHRcdFx0Ym9yZGVyQ29sb3I6IG9wdGlvbnMuYm9yZGVyQ29sb3IsXG5cdFx0XHRib3JkZXJTa2lwcGVkOiBvcHRpb25zLmJvcmRlclNraXBwZWQsXG5cdFx0XHRib3JkZXJXaWR0aDogb3B0aW9ucy5ib3JkZXJXaWR0aCxcblx0XHRcdGRhdGFzZXRMYWJlbDogZGF0YXNldC5sYWJlbCxcblx0XHRcdGxhYmVsOiBtZS5jaGFydC5kYXRhLmxhYmVsc1tpbmRleF1cblx0XHR9O1xuXG5cdFx0bWUuX3VwZGF0ZUVsZW1lbnRHZW9tZXRyeShyZWN0YW5nbGUsIGluZGV4LCByZXNldCk7XG5cblx0XHRyZWN0YW5nbGUucGl2b3QoKTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF91cGRhdGVFbGVtZW50R2VvbWV0cnk6IGZ1bmN0aW9uKHJlY3RhbmdsZSwgaW5kZXgsIHJlc2V0KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgbW9kZWwgPSByZWN0YW5nbGUuX21vZGVsO1xuXHRcdHZhciB2c2NhbGUgPSBtZS5fZ2V0VmFsdWVTY2FsZSgpO1xuXHRcdHZhciBiYXNlID0gdnNjYWxlLmdldEJhc2VQaXhlbCgpO1xuXHRcdHZhciBob3Jpem9udGFsID0gdnNjYWxlLmlzSG9yaXpvbnRhbCgpO1xuXHRcdHZhciBydWxlciA9IG1lLl9ydWxlciB8fCBtZS5nZXRSdWxlcigpO1xuXHRcdHZhciB2cGl4ZWxzID0gbWUuY2FsY3VsYXRlQmFyVmFsdWVQaXhlbHMobWUuaW5kZXgsIGluZGV4KTtcblx0XHR2YXIgaXBpeGVscyA9IG1lLmNhbGN1bGF0ZUJhckluZGV4UGl4ZWxzKG1lLmluZGV4LCBpbmRleCwgcnVsZXIpO1xuXG5cdFx0bW9kZWwuaG9yaXpvbnRhbCA9IGhvcml6b250YWw7XG5cdFx0bW9kZWwuYmFzZSA9IHJlc2V0ID8gYmFzZSA6IHZwaXhlbHMuYmFzZTtcblx0XHRtb2RlbC54ID0gaG9yaXpvbnRhbCA/IHJlc2V0ID8gYmFzZSA6IHZwaXhlbHMuaGVhZCA6IGlwaXhlbHMuY2VudGVyO1xuXHRcdG1vZGVsLnkgPSBob3Jpem9udGFsID8gaXBpeGVscy5jZW50ZXIgOiByZXNldCA/IGJhc2UgOiB2cGl4ZWxzLmhlYWQ7XG5cdFx0bW9kZWwuaGVpZ2h0ID0gaG9yaXpvbnRhbCA/IGlwaXhlbHMuc2l6ZSA6IHVuZGVmaW5lZDtcblx0XHRtb2RlbC53aWR0aCA9IGhvcml6b250YWwgPyB1bmRlZmluZWQgOiBpcGl4ZWxzLnNpemU7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIHN0YWNrcyBiYXNlZCBvbiBncm91cHMgYW5kIGJhciB2aXNpYmlsaXR5LlxuXHQgKiBAcGFyYW0ge251bWJlcn0gW2xhc3RdIC0gVGhlIGRhdGFzZXQgaW5kZXhcblx0ICogQHJldHVybnMge3N0cmluZ1tdfSBUaGUgbGlzdCBvZiBzdGFjayBJRHNcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9nZXRTdGFja3M6IGZ1bmN0aW9uKGxhc3QpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBzY2FsZSA9IG1lLl9nZXRJbmRleFNjYWxlKCk7XG5cdFx0dmFyIHN0YWNrZWQgPSBzY2FsZS5vcHRpb25zLnN0YWNrZWQ7XG5cdFx0dmFyIGlsZW4gPSBsYXN0ID09PSB1bmRlZmluZWQgPyBjaGFydC5kYXRhLmRhdGFzZXRzLmxlbmd0aCA6IGxhc3QgKyAxO1xuXHRcdHZhciBzdGFja3MgPSBbXTtcblx0XHR2YXIgaSwgbWV0YTtcblxuXHRcdGZvciAoaSA9IDA7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShpKTtcblx0XHRcdGlmIChtZXRhLmJhciAmJiBjaGFydC5pc0RhdGFzZXRWaXNpYmxlKGkpICYmXG5cdFx0XHRcdChzdGFja2VkID09PSBmYWxzZSB8fFxuXHRcdFx0XHQoc3RhY2tlZCA9PT0gdHJ1ZSAmJiBzdGFja3MuaW5kZXhPZihtZXRhLnN0YWNrKSA9PT0gLTEpIHx8XG5cdFx0XHRcdChzdGFja2VkID09PSB1bmRlZmluZWQgJiYgKG1ldGEuc3RhY2sgPT09IHVuZGVmaW5lZCB8fCBzdGFja3MuaW5kZXhPZihtZXRhLnN0YWNrKSA9PT0gLTEpKSkpIHtcblx0XHRcdFx0c3RhY2tzLnB1c2gobWV0YS5zdGFjayk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHN0YWNrcztcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgZWZmZWN0aXZlIG51bWJlciBvZiBzdGFja3MgYmFzZWQgb24gZ3JvdXBzIGFuZCBiYXIgdmlzaWJpbGl0eS5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdGdldFN0YWNrQ291bnQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLl9nZXRTdGFja3MoKS5sZW5ndGg7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIHN0YWNrIGluZGV4IGZvciB0aGUgZ2l2ZW4gZGF0YXNldCBiYXNlZCBvbiBncm91cHMgYW5kIGJhciB2aXNpYmlsaXR5LlxuXHQgKiBAcGFyYW0ge251bWJlcn0gW2RhdGFzZXRJbmRleF0gLSBUaGUgZGF0YXNldCBpbmRleFxuXHQgKiBAcGFyYW0ge3N0cmluZ30gW25hbWVdIC0gVGhlIHN0YWNrIG5hbWUgdG8gZmluZFxuXHQgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgc3RhY2sgaW5kZXhcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGdldFN0YWNrSW5kZXg6IGZ1bmN0aW9uKGRhdGFzZXRJbmRleCwgbmFtZSkge1xuXHRcdHZhciBzdGFja3MgPSB0aGlzLl9nZXRTdGFja3MoZGF0YXNldEluZGV4KTtcblx0XHR2YXIgaW5kZXggPSAobmFtZSAhPT0gdW5kZWZpbmVkKVxuXHRcdFx0PyBzdGFja3MuaW5kZXhPZihuYW1lKVxuXHRcdFx0OiAtMTsgLy8gaW5kZXhPZiByZXR1cm5zIC0xIGlmIGVsZW1lbnQgaXMgbm90IHByZXNlbnRcblxuXHRcdHJldHVybiAoaW5kZXggPT09IC0xKVxuXHRcdFx0PyBzdGFja3MubGVuZ3RoIC0gMVxuXHRcdFx0OiBpbmRleDtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGdldFJ1bGVyOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBzY2FsZSA9IG1lLl9nZXRJbmRleFNjYWxlKCk7XG5cdFx0dmFyIHN0YWNrQ291bnQgPSBtZS5nZXRTdGFja0NvdW50KCk7XG5cdFx0dmFyIGRhdGFzZXRJbmRleCA9IG1lLmluZGV4O1xuXHRcdHZhciBpc0hvcml6b250YWwgPSBzY2FsZS5pc0hvcml6b250YWwoKTtcblx0XHR2YXIgc3RhcnQgPSBpc0hvcml6b250YWwgPyBzY2FsZS5sZWZ0IDogc2NhbGUudG9wO1xuXHRcdHZhciBlbmQgPSBzdGFydCArIChpc0hvcml6b250YWwgPyBzY2FsZS53aWR0aCA6IHNjYWxlLmhlaWdodCk7XG5cdFx0dmFyIHBpeGVscyA9IFtdO1xuXHRcdHZhciBpLCBpbGVuLCBtaW47XG5cblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gbWUuZ2V0TWV0YSgpLmRhdGEubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRwaXhlbHMucHVzaChzY2FsZS5nZXRQaXhlbEZvclZhbHVlKG51bGwsIGksIGRhdGFzZXRJbmRleCkpO1xuXHRcdH1cblxuXHRcdG1pbiA9IGhlbHBlcnMkMS5pc051bGxPclVuZGVmKHNjYWxlLm9wdGlvbnMuYmFyVGhpY2tuZXNzKVxuXHRcdFx0PyBjb21wdXRlTWluU2FtcGxlU2l6ZShzY2FsZSwgcGl4ZWxzKVxuXHRcdFx0OiAtMTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRtaW46IG1pbixcblx0XHRcdHBpeGVsczogcGl4ZWxzLFxuXHRcdFx0c3RhcnQ6IHN0YXJ0LFxuXHRcdFx0ZW5kOiBlbmQsXG5cdFx0XHRzdGFja0NvdW50OiBzdGFja0NvdW50LFxuXHRcdFx0c2NhbGU6IHNjYWxlXG5cdFx0fTtcblx0fSxcblxuXHQvKipcblx0ICogTm90ZTogcGl4ZWwgdmFsdWVzIGFyZSBub3QgY2xhbXBlZCB0byB0aGUgc2NhbGUgYXJlYS5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdGNhbGN1bGF0ZUJhclZhbHVlUGl4ZWxzOiBmdW5jdGlvbihkYXRhc2V0SW5kZXgsIGluZGV4KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgY2hhcnQgPSBtZS5jaGFydDtcblx0XHR2YXIgbWV0YSA9IG1lLmdldE1ldGEoKTtcblx0XHR2YXIgc2NhbGUgPSBtZS5fZ2V0VmFsdWVTY2FsZSgpO1xuXHRcdHZhciBpc0hvcml6b250YWwgPSBzY2FsZS5pc0hvcml6b250YWwoKTtcblx0XHR2YXIgZGF0YXNldHMgPSBjaGFydC5kYXRhLmRhdGFzZXRzO1xuXHRcdHZhciB2YWx1ZSA9ICtzY2FsZS5nZXRSaWdodFZhbHVlKGRhdGFzZXRzW2RhdGFzZXRJbmRleF0uZGF0YVtpbmRleF0pO1xuXHRcdHZhciBtaW5CYXJMZW5ndGggPSBzY2FsZS5vcHRpb25zLm1pbkJhckxlbmd0aDtcblx0XHR2YXIgc3RhY2tlZCA9IHNjYWxlLm9wdGlvbnMuc3RhY2tlZDtcblx0XHR2YXIgc3RhY2sgPSBtZXRhLnN0YWNrO1xuXHRcdHZhciBzdGFydCA9IDA7XG5cdFx0dmFyIGksIGltZXRhLCBpdmFsdWUsIGJhc2UsIGhlYWQsIHNpemU7XG5cblx0XHRpZiAoc3RhY2tlZCB8fCAoc3RhY2tlZCA9PT0gdW5kZWZpbmVkICYmIHN0YWNrICE9PSB1bmRlZmluZWQpKSB7XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgZGF0YXNldEluZGV4OyArK2kpIHtcblx0XHRcdFx0aW1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShpKTtcblxuXHRcdFx0XHRpZiAoaW1ldGEuYmFyICYmXG5cdFx0XHRcdFx0aW1ldGEuc3RhY2sgPT09IHN0YWNrICYmXG5cdFx0XHRcdFx0aW1ldGEuY29udHJvbGxlci5fZ2V0VmFsdWVTY2FsZUlkKCkgPT09IHNjYWxlLmlkICYmXG5cdFx0XHRcdFx0Y2hhcnQuaXNEYXRhc2V0VmlzaWJsZShpKSkge1xuXG5cdFx0XHRcdFx0aXZhbHVlID0gK3NjYWxlLmdldFJpZ2h0VmFsdWUoZGF0YXNldHNbaV0uZGF0YVtpbmRleF0pO1xuXHRcdFx0XHRcdGlmICgodmFsdWUgPCAwICYmIGl2YWx1ZSA8IDApIHx8ICh2YWx1ZSA+PSAwICYmIGl2YWx1ZSA+IDApKSB7XG5cdFx0XHRcdFx0XHRzdGFydCArPSBpdmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YmFzZSA9IHNjYWxlLmdldFBpeGVsRm9yVmFsdWUoc3RhcnQpO1xuXHRcdGhlYWQgPSBzY2FsZS5nZXRQaXhlbEZvclZhbHVlKHN0YXJ0ICsgdmFsdWUpO1xuXHRcdHNpemUgPSBoZWFkIC0gYmFzZTtcblxuXHRcdGlmIChtaW5CYXJMZW5ndGggIT09IHVuZGVmaW5lZCAmJiBNYXRoLmFicyhzaXplKSA8IG1pbkJhckxlbmd0aCkge1xuXHRcdFx0c2l6ZSA9IG1pbkJhckxlbmd0aDtcblx0XHRcdGlmICh2YWx1ZSA+PSAwICYmICFpc0hvcml6b250YWwgfHwgdmFsdWUgPCAwICYmIGlzSG9yaXpvbnRhbCkge1xuXHRcdFx0XHRoZWFkID0gYmFzZSAtIG1pbkJhckxlbmd0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGhlYWQgPSBiYXNlICsgbWluQmFyTGVuZ3RoO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHRzaXplOiBzaXplLFxuXHRcdFx0YmFzZTogYmFzZSxcblx0XHRcdGhlYWQ6IGhlYWQsXG5cdFx0XHRjZW50ZXI6IGhlYWQgKyBzaXplIC8gMlxuXHRcdH07XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRjYWxjdWxhdGVCYXJJbmRleFBpeGVsczogZnVuY3Rpb24oZGF0YXNldEluZGV4LCBpbmRleCwgcnVsZXIpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvcHRpb25zID0gcnVsZXIuc2NhbGUub3B0aW9ucztcblx0XHR2YXIgcmFuZ2UgPSBvcHRpb25zLmJhclRoaWNrbmVzcyA9PT0gJ2ZsZXgnXG5cdFx0XHQ/IGNvbXB1dGVGbGV4Q2F0ZWdvcnlUcmFpdHMoaW5kZXgsIHJ1bGVyLCBvcHRpb25zKVxuXHRcdFx0OiBjb21wdXRlRml0Q2F0ZWdvcnlUcmFpdHMoaW5kZXgsIHJ1bGVyLCBvcHRpb25zKTtcblxuXHRcdHZhciBzdGFja0luZGV4ID0gbWUuZ2V0U3RhY2tJbmRleChkYXRhc2V0SW5kZXgsIG1lLmdldE1ldGEoKS5zdGFjayk7XG5cdFx0dmFyIGNlbnRlciA9IHJhbmdlLnN0YXJ0ICsgKHJhbmdlLmNodW5rICogc3RhY2tJbmRleCkgKyAocmFuZ2UuY2h1bmsgLyAyKTtcblx0XHR2YXIgc2l6ZSA9IE1hdGgubWluKFxuXHRcdFx0aGVscGVycyQxLnZhbHVlT3JEZWZhdWx0KG9wdGlvbnMubWF4QmFyVGhpY2tuZXNzLCBJbmZpbml0eSksXG5cdFx0XHRyYW5nZS5jaHVuayAqIHJhbmdlLnJhdGlvKTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRiYXNlOiBjZW50ZXIgLSBzaXplIC8gMixcblx0XHRcdGhlYWQ6IGNlbnRlciArIHNpemUgLyAyLFxuXHRcdFx0Y2VudGVyOiBjZW50ZXIsXG5cdFx0XHRzaXplOiBzaXplXG5cdFx0fTtcblx0fSxcblxuXHRkcmF3OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBzY2FsZSA9IG1lLl9nZXRWYWx1ZVNjYWxlKCk7XG5cdFx0dmFyIHJlY3RzID0gbWUuZ2V0TWV0YSgpLmRhdGE7XG5cdFx0dmFyIGRhdGFzZXQgPSBtZS5nZXREYXRhc2V0KCk7XG5cdFx0dmFyIGlsZW4gPSByZWN0cy5sZW5ndGg7XG5cdFx0dmFyIGkgPSAwO1xuXG5cdFx0aGVscGVycyQxLmNhbnZhcy5jbGlwQXJlYShjaGFydC5jdHgsIGNoYXJ0LmNoYXJ0QXJlYSk7XG5cblx0XHRmb3IgKDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0aWYgKCFpc05hTihzY2FsZS5nZXRSaWdodFZhbHVlKGRhdGFzZXQuZGF0YVtpXSkpKSB7XG5cdFx0XHRcdHJlY3RzW2ldLmRyYXcoKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRoZWxwZXJzJDEuY2FudmFzLnVuY2xpcEFyZWEoY2hhcnQuY3R4KTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9yZXNvbHZlRWxlbWVudE9wdGlvbnM6IGZ1bmN0aW9uKHJlY3RhbmdsZSwgaW5kZXgpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBkYXRhc2V0cyA9IGNoYXJ0LmRhdGEuZGF0YXNldHM7XG5cdFx0dmFyIGRhdGFzZXQgPSBkYXRhc2V0c1ttZS5pbmRleF07XG5cdFx0dmFyIGN1c3RvbSA9IHJlY3RhbmdsZS5jdXN0b20gfHwge307XG5cdFx0dmFyIG9wdGlvbnMgPSBjaGFydC5vcHRpb25zLmVsZW1lbnRzLnJlY3RhbmdsZTtcblx0XHR2YXIgdmFsdWVzID0ge307XG5cdFx0dmFyIGksIGlsZW4sIGtleTtcblxuXHRcdC8vIFNjcmlwdGFibGUgb3B0aW9uc1xuXHRcdHZhciBjb250ZXh0ID0ge1xuXHRcdFx0Y2hhcnQ6IGNoYXJ0LFxuXHRcdFx0ZGF0YUluZGV4OiBpbmRleCxcblx0XHRcdGRhdGFzZXQ6IGRhdGFzZXQsXG5cdFx0XHRkYXRhc2V0SW5kZXg6IG1lLmluZGV4XG5cdFx0fTtcblxuXHRcdHZhciBrZXlzID0gW1xuXHRcdFx0J2JhY2tncm91bmRDb2xvcicsXG5cdFx0XHQnYm9yZGVyQ29sb3InLFxuXHRcdFx0J2JvcmRlclNraXBwZWQnLFxuXHRcdFx0J2JvcmRlcldpZHRoJ1xuXHRcdF07XG5cblx0XHRmb3IgKGkgPSAwLCBpbGVuID0ga2V5cy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdGtleSA9IGtleXNbaV07XG5cdFx0XHR2YWx1ZXNba2V5XSA9IHJlc29sdmUkMShbXG5cdFx0XHRcdGN1c3RvbVtrZXldLFxuXHRcdFx0XHRkYXRhc2V0W2tleV0sXG5cdFx0XHRcdG9wdGlvbnNba2V5XVxuXHRcdFx0XSwgY29udGV4dCwgaW5kZXgpO1xuXHRcdH1cblxuXHRcdHJldHVybiB2YWx1ZXM7XG5cdH1cbn0pO1xuXG52YXIgdmFsdWVPckRlZmF1bHQkMyA9IGhlbHBlcnMkMS52YWx1ZU9yRGVmYXVsdDtcbnZhciByZXNvbHZlJDIgPSBoZWxwZXJzJDEub3B0aW9ucy5yZXNvbHZlO1xuXG5jb3JlX2RlZmF1bHRzLl9zZXQoJ2J1YmJsZScsIHtcblx0aG92ZXI6IHtcblx0XHRtb2RlOiAnc2luZ2xlJ1xuXHR9LFxuXG5cdHNjYWxlczoge1xuXHRcdHhBeGVzOiBbe1xuXHRcdFx0dHlwZTogJ2xpbmVhcicsIC8vIGJ1YmJsZSBzaG91bGQgcHJvYmFibHkgdXNlIGEgbGluZWFyIHNjYWxlIGJ5IGRlZmF1bHRcblx0XHRcdHBvc2l0aW9uOiAnYm90dG9tJyxcblx0XHRcdGlkOiAneC1heGlzLTAnIC8vIG5lZWQgYW4gSUQgc28gZGF0YXNldHMgY2FuIHJlZmVyZW5jZSB0aGUgc2NhbGVcblx0XHR9XSxcblx0XHR5QXhlczogW3tcblx0XHRcdHR5cGU6ICdsaW5lYXInLFxuXHRcdFx0cG9zaXRpb246ICdsZWZ0Jyxcblx0XHRcdGlkOiAneS1heGlzLTAnXG5cdFx0fV1cblx0fSxcblxuXHR0b29sdGlwczoge1xuXHRcdGNhbGxiYWNrczoge1xuXHRcdFx0dGl0bGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHQvLyBUaXRsZSBkb2Vzbid0IG1ha2Ugc2Vuc2UgZm9yIHNjYXR0ZXIgc2luY2Ugd2UgZm9ybWF0IHRoZSBkYXRhIGFzIGEgcG9pbnRcblx0XHRcdFx0cmV0dXJuICcnO1xuXHRcdFx0fSxcblx0XHRcdGxhYmVsOiBmdW5jdGlvbihpdGVtLCBkYXRhKSB7XG5cdFx0XHRcdHZhciBkYXRhc2V0TGFiZWwgPSBkYXRhLmRhdGFzZXRzW2l0ZW0uZGF0YXNldEluZGV4XS5sYWJlbCB8fCAnJztcblx0XHRcdFx0dmFyIGRhdGFQb2ludCA9IGRhdGEuZGF0YXNldHNbaXRlbS5kYXRhc2V0SW5kZXhdLmRhdGFbaXRlbS5pbmRleF07XG5cdFx0XHRcdHJldHVybiBkYXRhc2V0TGFiZWwgKyAnOiAoJyArIGl0ZW0ueExhYmVsICsgJywgJyArIGl0ZW0ueUxhYmVsICsgJywgJyArIGRhdGFQb2ludC5yICsgJyknO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSk7XG5cbnZhciBjb250cm9sbGVyX2J1YmJsZSA9IGNvcmVfZGF0YXNldENvbnRyb2xsZXIuZXh0ZW5kKHtcblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdGRhdGFFbGVtZW50VHlwZTogZWxlbWVudHMuUG9pbnQsXG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHVwZGF0ZTogZnVuY3Rpb24ocmVzZXQpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBtZXRhID0gbWUuZ2V0TWV0YSgpO1xuXHRcdHZhciBwb2ludHMgPSBtZXRhLmRhdGE7XG5cblx0XHQvLyBVcGRhdGUgUG9pbnRzXG5cdFx0aGVscGVycyQxLmVhY2gocG9pbnRzLCBmdW5jdGlvbihwb2ludCwgaW5kZXgpIHtcblx0XHRcdG1lLnVwZGF0ZUVsZW1lbnQocG9pbnQsIGluZGV4LCByZXNldCk7XG5cdFx0fSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHVwZGF0ZUVsZW1lbnQ6IGZ1bmN0aW9uKHBvaW50LCBpbmRleCwgcmVzZXQpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBtZXRhID0gbWUuZ2V0TWV0YSgpO1xuXHRcdHZhciBjdXN0b20gPSBwb2ludC5jdXN0b20gfHwge307XG5cdFx0dmFyIHhTY2FsZSA9IG1lLmdldFNjYWxlRm9ySWQobWV0YS54QXhpc0lEKTtcblx0XHR2YXIgeVNjYWxlID0gbWUuZ2V0U2NhbGVGb3JJZChtZXRhLnlBeGlzSUQpO1xuXHRcdHZhciBvcHRpb25zID0gbWUuX3Jlc29sdmVFbGVtZW50T3B0aW9ucyhwb2ludCwgaW5kZXgpO1xuXHRcdHZhciBkYXRhID0gbWUuZ2V0RGF0YXNldCgpLmRhdGFbaW5kZXhdO1xuXHRcdHZhciBkc0luZGV4ID0gbWUuaW5kZXg7XG5cblx0XHR2YXIgeCA9IHJlc2V0ID8geFNjYWxlLmdldFBpeGVsRm9yRGVjaW1hbCgwLjUpIDogeFNjYWxlLmdldFBpeGVsRm9yVmFsdWUodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnID8gZGF0YSA6IE5hTiwgaW5kZXgsIGRzSW5kZXgpO1xuXHRcdHZhciB5ID0gcmVzZXQgPyB5U2NhbGUuZ2V0QmFzZVBpeGVsKCkgOiB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZShkYXRhLCBpbmRleCwgZHNJbmRleCk7XG5cblx0XHRwb2ludC5feFNjYWxlID0geFNjYWxlO1xuXHRcdHBvaW50Ll95U2NhbGUgPSB5U2NhbGU7XG5cdFx0cG9pbnQuX29wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHBvaW50Ll9kYXRhc2V0SW5kZXggPSBkc0luZGV4O1xuXHRcdHBvaW50Ll9pbmRleCA9IGluZGV4O1xuXHRcdHBvaW50Ll9tb2RlbCA9IHtcblx0XHRcdGJhY2tncm91bmRDb2xvcjogb3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3IsXG5cdFx0XHRib3JkZXJDb2xvcjogb3B0aW9ucy5ib3JkZXJDb2xvcixcblx0XHRcdGJvcmRlcldpZHRoOiBvcHRpb25zLmJvcmRlcldpZHRoLFxuXHRcdFx0aGl0UmFkaXVzOiBvcHRpb25zLmhpdFJhZGl1cyxcblx0XHRcdHBvaW50U3R5bGU6IG9wdGlvbnMucG9pbnRTdHlsZSxcblx0XHRcdHJvdGF0aW9uOiBvcHRpb25zLnJvdGF0aW9uLFxuXHRcdFx0cmFkaXVzOiByZXNldCA/IDAgOiBvcHRpb25zLnJhZGl1cyxcblx0XHRcdHNraXA6IGN1c3RvbS5za2lwIHx8IGlzTmFOKHgpIHx8IGlzTmFOKHkpLFxuXHRcdFx0eDogeCxcblx0XHRcdHk6IHksXG5cdFx0fTtcblxuXHRcdHBvaW50LnBpdm90KCk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHNldEhvdmVyU3R5bGU6IGZ1bmN0aW9uKHBvaW50KSB7XG5cdFx0dmFyIG1vZGVsID0gcG9pbnQuX21vZGVsO1xuXHRcdHZhciBvcHRpb25zID0gcG9pbnQuX29wdGlvbnM7XG5cdFx0dmFyIGdldEhvdmVyQ29sb3IgPSBoZWxwZXJzJDEuZ2V0SG92ZXJDb2xvcjtcblxuXHRcdHBvaW50LiRwcmV2aW91c1N0eWxlID0ge1xuXHRcdFx0YmFja2dyb3VuZENvbG9yOiBtb2RlbC5iYWNrZ3JvdW5kQ29sb3IsXG5cdFx0XHRib3JkZXJDb2xvcjogbW9kZWwuYm9yZGVyQ29sb3IsXG5cdFx0XHRib3JkZXJXaWR0aDogbW9kZWwuYm9yZGVyV2lkdGgsXG5cdFx0XHRyYWRpdXM6IG1vZGVsLnJhZGl1c1xuXHRcdH07XG5cblx0XHRtb2RlbC5iYWNrZ3JvdW5kQ29sb3IgPSB2YWx1ZU9yRGVmYXVsdCQzKG9wdGlvbnMuaG92ZXJCYWNrZ3JvdW5kQ29sb3IsIGdldEhvdmVyQ29sb3Iob3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3IpKTtcblx0XHRtb2RlbC5ib3JkZXJDb2xvciA9IHZhbHVlT3JEZWZhdWx0JDMob3B0aW9ucy5ob3ZlckJvcmRlckNvbG9yLCBnZXRIb3ZlckNvbG9yKG9wdGlvbnMuYm9yZGVyQ29sb3IpKTtcblx0XHRtb2RlbC5ib3JkZXJXaWR0aCA9IHZhbHVlT3JEZWZhdWx0JDMob3B0aW9ucy5ob3ZlckJvcmRlcldpZHRoLCBvcHRpb25zLmJvcmRlcldpZHRoKTtcblx0XHRtb2RlbC5yYWRpdXMgPSBvcHRpb25zLnJhZGl1cyArIG9wdGlvbnMuaG92ZXJSYWRpdXM7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfcmVzb2x2ZUVsZW1lbnRPcHRpb25zOiBmdW5jdGlvbihwb2ludCwgaW5kZXgpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBkYXRhc2V0cyA9IGNoYXJ0LmRhdGEuZGF0YXNldHM7XG5cdFx0dmFyIGRhdGFzZXQgPSBkYXRhc2V0c1ttZS5pbmRleF07XG5cdFx0dmFyIGN1c3RvbSA9IHBvaW50LmN1c3RvbSB8fCB7fTtcblx0XHR2YXIgb3B0aW9ucyA9IGNoYXJ0Lm9wdGlvbnMuZWxlbWVudHMucG9pbnQ7XG5cdFx0dmFyIGRhdGEgPSBkYXRhc2V0LmRhdGFbaW5kZXhdO1xuXHRcdHZhciB2YWx1ZXMgPSB7fTtcblx0XHR2YXIgaSwgaWxlbiwga2V5O1xuXG5cdFx0Ly8gU2NyaXB0YWJsZSBvcHRpb25zXG5cdFx0dmFyIGNvbnRleHQgPSB7XG5cdFx0XHRjaGFydDogY2hhcnQsXG5cdFx0XHRkYXRhSW5kZXg6IGluZGV4LFxuXHRcdFx0ZGF0YXNldDogZGF0YXNldCxcblx0XHRcdGRhdGFzZXRJbmRleDogbWUuaW5kZXhcblx0XHR9O1xuXG5cdFx0dmFyIGtleXMgPSBbXG5cdFx0XHQnYmFja2dyb3VuZENvbG9yJyxcblx0XHRcdCdib3JkZXJDb2xvcicsXG5cdFx0XHQnYm9yZGVyV2lkdGgnLFxuXHRcdFx0J2hvdmVyQmFja2dyb3VuZENvbG9yJyxcblx0XHRcdCdob3ZlckJvcmRlckNvbG9yJyxcblx0XHRcdCdob3ZlckJvcmRlcldpZHRoJyxcblx0XHRcdCdob3ZlclJhZGl1cycsXG5cdFx0XHQnaGl0UmFkaXVzJyxcblx0XHRcdCdwb2ludFN0eWxlJyxcblx0XHRcdCdyb3RhdGlvbidcblx0XHRdO1xuXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IGtleXMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRrZXkgPSBrZXlzW2ldO1xuXHRcdFx0dmFsdWVzW2tleV0gPSByZXNvbHZlJDIoW1xuXHRcdFx0XHRjdXN0b21ba2V5XSxcblx0XHRcdFx0ZGF0YXNldFtrZXldLFxuXHRcdFx0XHRvcHRpb25zW2tleV1cblx0XHRcdF0sIGNvbnRleHQsIGluZGV4KTtcblx0XHR9XG5cblx0XHQvLyBDdXN0b20gcmFkaXVzIHJlc29sdXRpb25cblx0XHR2YWx1ZXMucmFkaXVzID0gcmVzb2x2ZSQyKFtcblx0XHRcdGN1c3RvbS5yYWRpdXMsXG5cdFx0XHRkYXRhID8gZGF0YS5yIDogdW5kZWZpbmVkLFxuXHRcdFx0ZGF0YXNldC5yYWRpdXMsXG5cdFx0XHRvcHRpb25zLnJhZGl1c1xuXHRcdF0sIGNvbnRleHQsIGluZGV4KTtcblxuXHRcdHJldHVybiB2YWx1ZXM7XG5cdH1cbn0pO1xuXG52YXIgcmVzb2x2ZSQzID0gaGVscGVycyQxLm9wdGlvbnMucmVzb2x2ZTtcbnZhciB2YWx1ZU9yRGVmYXVsdCQ0ID0gaGVscGVycyQxLnZhbHVlT3JEZWZhdWx0O1xuXG5jb3JlX2RlZmF1bHRzLl9zZXQoJ2RvdWdobnV0Jywge1xuXHRhbmltYXRpb246IHtcblx0XHQvLyBCb29sZWFuIC0gV2hldGhlciB3ZSBhbmltYXRlIHRoZSByb3RhdGlvbiBvZiB0aGUgRG91Z2hudXRcblx0XHRhbmltYXRlUm90YXRlOiB0cnVlLFxuXHRcdC8vIEJvb2xlYW4gLSBXaGV0aGVyIHdlIGFuaW1hdGUgc2NhbGluZyB0aGUgRG91Z2hudXQgZnJvbSB0aGUgY2VudHJlXG5cdFx0YW5pbWF0ZVNjYWxlOiBmYWxzZVxuXHR9LFxuXHRob3Zlcjoge1xuXHRcdG1vZGU6ICdzaW5nbGUnXG5cdH0sXG5cdGxlZ2VuZENhbGxiYWNrOiBmdW5jdGlvbihjaGFydCkge1xuXHRcdHZhciB0ZXh0ID0gW107XG5cdFx0dGV4dC5wdXNoKCc8dWwgY2xhc3M9XCInICsgY2hhcnQuaWQgKyAnLWxlZ2VuZFwiPicpO1xuXG5cdFx0dmFyIGRhdGEgPSBjaGFydC5kYXRhO1xuXHRcdHZhciBkYXRhc2V0cyA9IGRhdGEuZGF0YXNldHM7XG5cdFx0dmFyIGxhYmVscyA9IGRhdGEubGFiZWxzO1xuXG5cdFx0aWYgKGRhdGFzZXRzLmxlbmd0aCkge1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhc2V0c1swXS5kYXRhLmxlbmd0aDsgKytpKSB7XG5cdFx0XHRcdHRleHQucHVzaCgnPGxpPjxzcGFuIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjonICsgZGF0YXNldHNbMF0uYmFja2dyb3VuZENvbG9yW2ldICsgJ1wiPjwvc3Bhbj4nKTtcblx0XHRcdFx0aWYgKGxhYmVsc1tpXSkge1xuXHRcdFx0XHRcdHRleHQucHVzaChsYWJlbHNbaV0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRleHQucHVzaCgnPC9saT4nKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0ZXh0LnB1c2goJzwvdWw+Jyk7XG5cdFx0cmV0dXJuIHRleHQuam9pbignJyk7XG5cdH0sXG5cdGxlZ2VuZDoge1xuXHRcdGxhYmVsczoge1xuXHRcdFx0Z2VuZXJhdGVMYWJlbHM6IGZ1bmN0aW9uKGNoYXJ0KSB7XG5cdFx0XHRcdHZhciBkYXRhID0gY2hhcnQuZGF0YTtcblx0XHRcdFx0aWYgKGRhdGEubGFiZWxzLmxlbmd0aCAmJiBkYXRhLmRhdGFzZXRzLmxlbmd0aCkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhLmxhYmVscy5tYXAoZnVuY3Rpb24obGFiZWwsIGkpIHtcblx0XHRcdFx0XHRcdHZhciBtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoMCk7XG5cdFx0XHRcdFx0XHR2YXIgZHMgPSBkYXRhLmRhdGFzZXRzWzBdO1xuXHRcdFx0XHRcdFx0dmFyIGFyYyA9IG1ldGEuZGF0YVtpXTtcblx0XHRcdFx0XHRcdHZhciBjdXN0b20gPSBhcmMgJiYgYXJjLmN1c3RvbSB8fCB7fTtcblx0XHRcdFx0XHRcdHZhciBhcmNPcHRzID0gY2hhcnQub3B0aW9ucy5lbGVtZW50cy5hcmM7XG5cdFx0XHRcdFx0XHR2YXIgZmlsbCA9IHJlc29sdmUkMyhbY3VzdG9tLmJhY2tncm91bmRDb2xvciwgZHMuYmFja2dyb3VuZENvbG9yLCBhcmNPcHRzLmJhY2tncm91bmRDb2xvcl0sIHVuZGVmaW5lZCwgaSk7XG5cdFx0XHRcdFx0XHR2YXIgc3Ryb2tlID0gcmVzb2x2ZSQzKFtjdXN0b20uYm9yZGVyQ29sb3IsIGRzLmJvcmRlckNvbG9yLCBhcmNPcHRzLmJvcmRlckNvbG9yXSwgdW5kZWZpbmVkLCBpKTtcblx0XHRcdFx0XHRcdHZhciBidyA9IHJlc29sdmUkMyhbY3VzdG9tLmJvcmRlcldpZHRoLCBkcy5ib3JkZXJXaWR0aCwgYXJjT3B0cy5ib3JkZXJXaWR0aF0sIHVuZGVmaW5lZCwgaSk7XG5cblx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdHRleHQ6IGxhYmVsLFxuXHRcdFx0XHRcdFx0XHRmaWxsU3R5bGU6IGZpbGwsXG5cdFx0XHRcdFx0XHRcdHN0cm9rZVN0eWxlOiBzdHJva2UsXG5cdFx0XHRcdFx0XHRcdGxpbmVXaWR0aDogYncsXG5cdFx0XHRcdFx0XHRcdGhpZGRlbjogaXNOYU4oZHMuZGF0YVtpXSkgfHwgbWV0YS5kYXRhW2ldLmhpZGRlbixcblxuXHRcdFx0XHRcdFx0XHQvLyBFeHRyYSBkYXRhIHVzZWQgZm9yIHRvZ2dsaW5nIHRoZSBjb3JyZWN0IGl0ZW1cblx0XHRcdFx0XHRcdFx0aW5kZXg6IGlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIFtdO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRvbkNsaWNrOiBmdW5jdGlvbihlLCBsZWdlbmRJdGVtKSB7XG5cdFx0XHR2YXIgaW5kZXggPSBsZWdlbmRJdGVtLmluZGV4O1xuXHRcdFx0dmFyIGNoYXJ0ID0gdGhpcy5jaGFydDtcblx0XHRcdHZhciBpLCBpbGVuLCBtZXRhO1xuXG5cdFx0XHRmb3IgKGkgPSAwLCBpbGVuID0gKGNoYXJ0LmRhdGEuZGF0YXNldHMgfHwgW10pLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0XHRtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoaSk7XG5cdFx0XHRcdC8vIHRvZ2dsZSB2aXNpYmlsaXR5IG9mIGluZGV4IGlmIGV4aXN0c1xuXHRcdFx0XHRpZiAobWV0YS5kYXRhW2luZGV4XSkge1xuXHRcdFx0XHRcdG1ldGEuZGF0YVtpbmRleF0uaGlkZGVuID0gIW1ldGEuZGF0YVtpbmRleF0uaGlkZGVuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGNoYXJ0LnVwZGF0ZSgpO1xuXHRcdH1cblx0fSxcblxuXHQvLyBUaGUgcGVyY2VudGFnZSBvZiB0aGUgY2hhcnQgdGhhdCB3ZSBjdXQgb3V0IG9mIHRoZSBtaWRkbGUuXG5cdGN1dG91dFBlcmNlbnRhZ2U6IDUwLFxuXG5cdC8vIFRoZSByb3RhdGlvbiBvZiB0aGUgY2hhcnQsIHdoZXJlIHRoZSBmaXJzdCBkYXRhIGFyYyBiZWdpbnMuXG5cdHJvdGF0aW9uOiBNYXRoLlBJICogLTAuNSxcblxuXHQvLyBUaGUgdG90YWwgY2lyY3VtZmVyZW5jZSBvZiB0aGUgY2hhcnQuXG5cdGNpcmN1bWZlcmVuY2U6IE1hdGguUEkgKiAyLjAsXG5cblx0Ly8gTmVlZCB0byBvdmVycmlkZSB0aGVzZSB0byBnaXZlIGEgbmljZSBkZWZhdWx0XG5cdHRvb2x0aXBzOiB7XG5cdFx0Y2FsbGJhY2tzOiB7XG5cdFx0XHR0aXRsZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAnJztcblx0XHRcdH0sXG5cdFx0XHRsYWJlbDogZnVuY3Rpb24odG9vbHRpcEl0ZW0sIGRhdGEpIHtcblx0XHRcdFx0dmFyIGRhdGFMYWJlbCA9IGRhdGEubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XTtcblx0XHRcdFx0dmFyIHZhbHVlID0gJzogJyArIGRhdGEuZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XS5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XTtcblxuXHRcdFx0XHRpZiAoaGVscGVycyQxLmlzQXJyYXkoZGF0YUxhYmVsKSkge1xuXHRcdFx0XHRcdC8vIHNob3cgdmFsdWUgb24gZmlyc3QgbGluZSBvZiBtdWx0aWxpbmUgbGFiZWxcblx0XHRcdFx0XHQvLyBuZWVkIHRvIGNsb25lIGJlY2F1c2Ugd2UgYXJlIGNoYW5naW5nIHRoZSB2YWx1ZVxuXHRcdFx0XHRcdGRhdGFMYWJlbCA9IGRhdGFMYWJlbC5zbGljZSgpO1xuXHRcdFx0XHRcdGRhdGFMYWJlbFswXSArPSB2YWx1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRkYXRhTGFiZWwgKz0gdmFsdWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gZGF0YUxhYmVsO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSk7XG5cbnZhciBjb250cm9sbGVyX2RvdWdobnV0ID0gY29yZV9kYXRhc2V0Q29udHJvbGxlci5leHRlbmQoe1xuXG5cdGRhdGFFbGVtZW50VHlwZTogZWxlbWVudHMuQXJjLFxuXG5cdGxpbmtTY2FsZXM6IGhlbHBlcnMkMS5ub29wLFxuXG5cdC8vIEdldCBpbmRleCBvZiB0aGUgZGF0YXNldCBpbiByZWxhdGlvbiB0byB0aGUgdmlzaWJsZSBkYXRhc2V0cy4gVGhpcyBhbGxvd3MgZGV0ZXJtaW5pbmcgdGhlIGlubmVyIGFuZCBvdXRlciByYWRpdXMgY29ycmVjdGx5XG5cdGdldFJpbmdJbmRleDogZnVuY3Rpb24oZGF0YXNldEluZGV4KSB7XG5cdFx0dmFyIHJpbmdJbmRleCA9IDA7XG5cblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGRhdGFzZXRJbmRleDsgKytqKSB7XG5cdFx0XHRpZiAodGhpcy5jaGFydC5pc0RhdGFzZXRWaXNpYmxlKGopKSB7XG5cdFx0XHRcdCsrcmluZ0luZGV4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByaW5nSW5kZXg7XG5cdH0sXG5cblx0dXBkYXRlOiBmdW5jdGlvbihyZXNldCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGNoYXJ0ID0gbWUuY2hhcnQ7XG5cdFx0dmFyIGNoYXJ0QXJlYSA9IGNoYXJ0LmNoYXJ0QXJlYTtcblx0XHR2YXIgb3B0cyA9IGNoYXJ0Lm9wdGlvbnM7XG5cdFx0dmFyIGF2YWlsYWJsZVdpZHRoID0gY2hhcnRBcmVhLnJpZ2h0IC0gY2hhcnRBcmVhLmxlZnQ7XG5cdFx0dmFyIGF2YWlsYWJsZUhlaWdodCA9IGNoYXJ0QXJlYS5ib3R0b20gLSBjaGFydEFyZWEudG9wO1xuXHRcdHZhciBtaW5TaXplID0gTWF0aC5taW4oYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCk7XG5cdFx0dmFyIG9mZnNldCA9IHt4OiAwLCB5OiAwfTtcblx0XHR2YXIgbWV0YSA9IG1lLmdldE1ldGEoKTtcblx0XHR2YXIgYXJjcyA9IG1ldGEuZGF0YTtcblx0XHR2YXIgY3V0b3V0UGVyY2VudGFnZSA9IG9wdHMuY3V0b3V0UGVyY2VudGFnZTtcblx0XHR2YXIgY2lyY3VtZmVyZW5jZSA9IG9wdHMuY2lyY3VtZmVyZW5jZTtcblx0XHR2YXIgY2hhcnRXZWlnaHQgPSBtZS5fZ2V0UmluZ1dlaWdodChtZS5pbmRleCk7XG5cdFx0dmFyIGksIGlsZW47XG5cblx0XHQvLyBJZiB0aGUgY2hhcnQncyBjaXJjdW1mZXJlbmNlIGlzbid0IGEgZnVsbCBjaXJjbGUsIGNhbGN1bGF0ZSBtaW5TaXplIGFzIGEgcmF0aW8gb2YgdGhlIHdpZHRoL2hlaWdodCBvZiB0aGUgYXJjXG5cdFx0aWYgKGNpcmN1bWZlcmVuY2UgPCBNYXRoLlBJICogMi4wKSB7XG5cdFx0XHR2YXIgc3RhcnRBbmdsZSA9IG9wdHMucm90YXRpb24gJSAoTWF0aC5QSSAqIDIuMCk7XG5cdFx0XHRzdGFydEFuZ2xlICs9IE1hdGguUEkgKiAyLjAgKiAoc3RhcnRBbmdsZSA+PSBNYXRoLlBJID8gLTEgOiBzdGFydEFuZ2xlIDwgLU1hdGguUEkgPyAxIDogMCk7XG5cdFx0XHR2YXIgZW5kQW5nbGUgPSBzdGFydEFuZ2xlICsgY2lyY3VtZmVyZW5jZTtcblx0XHRcdHZhciBzdGFydCA9IHt4OiBNYXRoLmNvcyhzdGFydEFuZ2xlKSwgeTogTWF0aC5zaW4oc3RhcnRBbmdsZSl9O1xuXHRcdFx0dmFyIGVuZCA9IHt4OiBNYXRoLmNvcyhlbmRBbmdsZSksIHk6IE1hdGguc2luKGVuZEFuZ2xlKX07XG5cdFx0XHR2YXIgY29udGFpbnMwID0gKHN0YXJ0QW5nbGUgPD0gMCAmJiBlbmRBbmdsZSA+PSAwKSB8fCAoc3RhcnRBbmdsZSA8PSBNYXRoLlBJICogMi4wICYmIE1hdGguUEkgKiAyLjAgPD0gZW5kQW5nbGUpO1xuXHRcdFx0dmFyIGNvbnRhaW5zOTAgPSAoc3RhcnRBbmdsZSA8PSBNYXRoLlBJICogMC41ICYmIE1hdGguUEkgKiAwLjUgPD0gZW5kQW5nbGUpIHx8IChzdGFydEFuZ2xlIDw9IE1hdGguUEkgKiAyLjUgJiYgTWF0aC5QSSAqIDIuNSA8PSBlbmRBbmdsZSk7XG5cdFx0XHR2YXIgY29udGFpbnMxODAgPSAoc3RhcnRBbmdsZSA8PSAtTWF0aC5QSSAmJiAtTWF0aC5QSSA8PSBlbmRBbmdsZSkgfHwgKHN0YXJ0QW5nbGUgPD0gTWF0aC5QSSAmJiBNYXRoLlBJIDw9IGVuZEFuZ2xlKTtcblx0XHRcdHZhciBjb250YWluczI3MCA9IChzdGFydEFuZ2xlIDw9IC1NYXRoLlBJICogMC41ICYmIC1NYXRoLlBJICogMC41IDw9IGVuZEFuZ2xlKSB8fCAoc3RhcnRBbmdsZSA8PSBNYXRoLlBJICogMS41ICYmIE1hdGguUEkgKiAxLjUgPD0gZW5kQW5nbGUpO1xuXHRcdFx0dmFyIGN1dG91dCA9IGN1dG91dFBlcmNlbnRhZ2UgLyAxMDAuMDtcblx0XHRcdHZhciBtaW4gPSB7eDogY29udGFpbnMxODAgPyAtMSA6IE1hdGgubWluKHN0YXJ0LnggKiAoc3RhcnQueCA8IDAgPyAxIDogY3V0b3V0KSwgZW5kLnggKiAoZW5kLnggPCAwID8gMSA6IGN1dG91dCkpLCB5OiBjb250YWluczI3MCA/IC0xIDogTWF0aC5taW4oc3RhcnQueSAqIChzdGFydC55IDwgMCA/IDEgOiBjdXRvdXQpLCBlbmQueSAqIChlbmQueSA8IDAgPyAxIDogY3V0b3V0KSl9O1xuXHRcdFx0dmFyIG1heCA9IHt4OiBjb250YWluczAgPyAxIDogTWF0aC5tYXgoc3RhcnQueCAqIChzdGFydC54ID4gMCA/IDEgOiBjdXRvdXQpLCBlbmQueCAqIChlbmQueCA+IDAgPyAxIDogY3V0b3V0KSksIHk6IGNvbnRhaW5zOTAgPyAxIDogTWF0aC5tYXgoc3RhcnQueSAqIChzdGFydC55ID4gMCA/IDEgOiBjdXRvdXQpLCBlbmQueSAqIChlbmQueSA+IDAgPyAxIDogY3V0b3V0KSl9O1xuXHRcdFx0dmFyIHNpemUgPSB7d2lkdGg6IChtYXgueCAtIG1pbi54KSAqIDAuNSwgaGVpZ2h0OiAobWF4LnkgLSBtaW4ueSkgKiAwLjV9O1xuXHRcdFx0bWluU2l6ZSA9IE1hdGgubWluKGF2YWlsYWJsZVdpZHRoIC8gc2l6ZS53aWR0aCwgYXZhaWxhYmxlSGVpZ2h0IC8gc2l6ZS5oZWlnaHQpO1xuXHRcdFx0b2Zmc2V0ID0ge3g6IChtYXgueCArIG1pbi54KSAqIC0wLjUsIHk6IChtYXgueSArIG1pbi55KSAqIC0wLjV9O1xuXHRcdH1cblxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSBhcmNzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0YXJjc1tpXS5fb3B0aW9ucyA9IG1lLl9yZXNvbHZlRWxlbWVudE9wdGlvbnMoYXJjc1tpXSwgaSk7XG5cdFx0fVxuXG5cdFx0Y2hhcnQuYm9yZGVyV2lkdGggPSBtZS5nZXRNYXhCb3JkZXJXaWR0aCgpO1xuXHRcdGNoYXJ0Lm91dGVyUmFkaXVzID0gTWF0aC5tYXgoKG1pblNpemUgLSBjaGFydC5ib3JkZXJXaWR0aCkgLyAyLCAwKTtcblx0XHRjaGFydC5pbm5lclJhZGl1cyA9IE1hdGgubWF4KGN1dG91dFBlcmNlbnRhZ2UgPyAoY2hhcnQub3V0ZXJSYWRpdXMgLyAxMDApICogKGN1dG91dFBlcmNlbnRhZ2UpIDogMCwgMCk7XG5cdFx0Y2hhcnQucmFkaXVzTGVuZ3RoID0gKGNoYXJ0Lm91dGVyUmFkaXVzIC0gY2hhcnQuaW5uZXJSYWRpdXMpIC8gKG1lLl9nZXRWaXNpYmxlRGF0YXNldFdlaWdodFRvdGFsKCkgfHwgMSk7XG5cdFx0Y2hhcnQub2Zmc2V0WCA9IG9mZnNldC54ICogY2hhcnQub3V0ZXJSYWRpdXM7XG5cdFx0Y2hhcnQub2Zmc2V0WSA9IG9mZnNldC55ICogY2hhcnQub3V0ZXJSYWRpdXM7XG5cblx0XHRtZXRhLnRvdGFsID0gbWUuY2FsY3VsYXRlVG90YWwoKTtcblxuXHRcdG1lLm91dGVyUmFkaXVzID0gY2hhcnQub3V0ZXJSYWRpdXMgLSBjaGFydC5yYWRpdXNMZW5ndGggKiBtZS5fZ2V0UmluZ1dlaWdodE9mZnNldChtZS5pbmRleCk7XG5cdFx0bWUuaW5uZXJSYWRpdXMgPSBNYXRoLm1heChtZS5vdXRlclJhZGl1cyAtIGNoYXJ0LnJhZGl1c0xlbmd0aCAqIGNoYXJ0V2VpZ2h0LCAwKTtcblxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSBhcmNzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0bWUudXBkYXRlRWxlbWVudChhcmNzW2ldLCBpLCByZXNldCk7XG5cdFx0fVxuXHR9LFxuXG5cdHVwZGF0ZUVsZW1lbnQ6IGZ1bmN0aW9uKGFyYywgaW5kZXgsIHJlc2V0KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgY2hhcnQgPSBtZS5jaGFydDtcblx0XHR2YXIgY2hhcnRBcmVhID0gY2hhcnQuY2hhcnRBcmVhO1xuXHRcdHZhciBvcHRzID0gY2hhcnQub3B0aW9ucztcblx0XHR2YXIgYW5pbWF0aW9uT3B0cyA9IG9wdHMuYW5pbWF0aW9uO1xuXHRcdHZhciBjZW50ZXJYID0gKGNoYXJ0QXJlYS5sZWZ0ICsgY2hhcnRBcmVhLnJpZ2h0KSAvIDI7XG5cdFx0dmFyIGNlbnRlclkgPSAoY2hhcnRBcmVhLnRvcCArIGNoYXJ0QXJlYS5ib3R0b20pIC8gMjtcblx0XHR2YXIgc3RhcnRBbmdsZSA9IG9wdHMucm90YXRpb247IC8vIG5vbiByZXNldCBjYXNlIGhhbmRsZWQgbGF0ZXJcblx0XHR2YXIgZW5kQW5nbGUgPSBvcHRzLnJvdGF0aW9uOyAvLyBub24gcmVzZXQgY2FzZSBoYW5kbGVkIGxhdGVyXG5cdFx0dmFyIGRhdGFzZXQgPSBtZS5nZXREYXRhc2V0KCk7XG5cdFx0dmFyIGNpcmN1bWZlcmVuY2UgPSByZXNldCAmJiBhbmltYXRpb25PcHRzLmFuaW1hdGVSb3RhdGUgPyAwIDogYXJjLmhpZGRlbiA/IDAgOiBtZS5jYWxjdWxhdGVDaXJjdW1mZXJlbmNlKGRhdGFzZXQuZGF0YVtpbmRleF0pICogKG9wdHMuY2lyY3VtZmVyZW5jZSAvICgyLjAgKiBNYXRoLlBJKSk7XG5cdFx0dmFyIGlubmVyUmFkaXVzID0gcmVzZXQgJiYgYW5pbWF0aW9uT3B0cy5hbmltYXRlU2NhbGUgPyAwIDogbWUuaW5uZXJSYWRpdXM7XG5cdFx0dmFyIG91dGVyUmFkaXVzID0gcmVzZXQgJiYgYW5pbWF0aW9uT3B0cy5hbmltYXRlU2NhbGUgPyAwIDogbWUub3V0ZXJSYWRpdXM7XG5cdFx0dmFyIG9wdGlvbnMgPSBhcmMuX29wdGlvbnMgfHwge307XG5cblx0XHRoZWxwZXJzJDEuZXh0ZW5kKGFyYywge1xuXHRcdFx0Ly8gVXRpbGl0eVxuXHRcdFx0X2RhdGFzZXRJbmRleDogbWUuaW5kZXgsXG5cdFx0XHRfaW5kZXg6IGluZGV4LFxuXG5cdFx0XHQvLyBEZXNpcmVkIHZpZXcgcHJvcGVydGllc1xuXHRcdFx0X21vZGVsOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvcjogb3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3IsXG5cdFx0XHRcdGJvcmRlckNvbG9yOiBvcHRpb25zLmJvcmRlckNvbG9yLFxuXHRcdFx0XHRib3JkZXJXaWR0aDogb3B0aW9ucy5ib3JkZXJXaWR0aCxcblx0XHRcdFx0Ym9yZGVyQWxpZ246IG9wdGlvbnMuYm9yZGVyQWxpZ24sXG5cdFx0XHRcdHg6IGNlbnRlclggKyBjaGFydC5vZmZzZXRYLFxuXHRcdFx0XHR5OiBjZW50ZXJZICsgY2hhcnQub2Zmc2V0WSxcblx0XHRcdFx0c3RhcnRBbmdsZTogc3RhcnRBbmdsZSxcblx0XHRcdFx0ZW5kQW5nbGU6IGVuZEFuZ2xlLFxuXHRcdFx0XHRjaXJjdW1mZXJlbmNlOiBjaXJjdW1mZXJlbmNlLFxuXHRcdFx0XHRvdXRlclJhZGl1czogb3V0ZXJSYWRpdXMsXG5cdFx0XHRcdGlubmVyUmFkaXVzOiBpbm5lclJhZGl1cyxcblx0XHRcdFx0bGFiZWw6IGhlbHBlcnMkMS52YWx1ZUF0SW5kZXhPckRlZmF1bHQoZGF0YXNldC5sYWJlbCwgaW5kZXgsIGNoYXJ0LmRhdGEubGFiZWxzW2luZGV4XSlcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHZhciBtb2RlbCA9IGFyYy5fbW9kZWw7XG5cblx0XHQvLyBTZXQgY29ycmVjdCBhbmdsZXMgaWYgbm90IHJlc2V0dGluZ1xuXHRcdGlmICghcmVzZXQgfHwgIWFuaW1hdGlvbk9wdHMuYW5pbWF0ZVJvdGF0ZSkge1xuXHRcdFx0aWYgKGluZGV4ID09PSAwKSB7XG5cdFx0XHRcdG1vZGVsLnN0YXJ0QW5nbGUgPSBvcHRzLnJvdGF0aW9uO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bW9kZWwuc3RhcnRBbmdsZSA9IG1lLmdldE1ldGEoKS5kYXRhW2luZGV4IC0gMV0uX21vZGVsLmVuZEFuZ2xlO1xuXHRcdFx0fVxuXG5cdFx0XHRtb2RlbC5lbmRBbmdsZSA9IG1vZGVsLnN0YXJ0QW5nbGUgKyBtb2RlbC5jaXJjdW1mZXJlbmNlO1xuXHRcdH1cblxuXHRcdGFyYy5waXZvdCgpO1xuXHR9LFxuXG5cdGNhbGN1bGF0ZVRvdGFsOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZGF0YXNldCA9IHRoaXMuZ2V0RGF0YXNldCgpO1xuXHRcdHZhciBtZXRhID0gdGhpcy5nZXRNZXRhKCk7XG5cdFx0dmFyIHRvdGFsID0gMDtcblx0XHR2YXIgdmFsdWU7XG5cblx0XHRoZWxwZXJzJDEuZWFjaChtZXRhLmRhdGEsIGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XG5cdFx0XHR2YWx1ZSA9IGRhdGFzZXQuZGF0YVtpbmRleF07XG5cdFx0XHRpZiAoIWlzTmFOKHZhbHVlKSAmJiAhZWxlbWVudC5oaWRkZW4pIHtcblx0XHRcdFx0dG90YWwgKz0gTWF0aC5hYnModmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0LyogaWYgKHRvdGFsID09PSAwKSB7XG5cdFx0XHR0b3RhbCA9IE5hTjtcblx0XHR9Ki9cblxuXHRcdHJldHVybiB0b3RhbDtcblx0fSxcblxuXHRjYWxjdWxhdGVDaXJjdW1mZXJlbmNlOiBmdW5jdGlvbih2YWx1ZSkge1xuXHRcdHZhciB0b3RhbCA9IHRoaXMuZ2V0TWV0YSgpLnRvdGFsO1xuXHRcdGlmICh0b3RhbCA+IDAgJiYgIWlzTmFOKHZhbHVlKSkge1xuXHRcdFx0cmV0dXJuIChNYXRoLlBJICogMi4wKSAqIChNYXRoLmFicyh2YWx1ZSkgLyB0b3RhbCk7XG5cdFx0fVxuXHRcdHJldHVybiAwO1xuXHR9LFxuXG5cdC8vIGdldHMgdGhlIG1heCBib3JkZXIgb3IgaG92ZXIgd2lkdGggdG8gcHJvcGVybHkgc2NhbGUgcGllIGNoYXJ0c1xuXHRnZXRNYXhCb3JkZXJXaWR0aDogZnVuY3Rpb24oYXJjcykge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG1heCA9IDA7XG5cdFx0dmFyIGNoYXJ0ID0gbWUuY2hhcnQ7XG5cdFx0dmFyIGksIGlsZW4sIG1ldGEsIGFyYywgY29udHJvbGxlciwgb3B0aW9ucywgYm9yZGVyV2lkdGgsIGhvdmVyV2lkdGg7XG5cblx0XHRpZiAoIWFyY3MpIHtcblx0XHRcdC8vIEZpbmQgdGhlIG91dG1vc3QgdmlzaWJsZSBkYXRhc2V0XG5cdFx0XHRmb3IgKGkgPSAwLCBpbGVuID0gY2hhcnQuZGF0YS5kYXRhc2V0cy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdFx0aWYgKGNoYXJ0LmlzRGF0YXNldFZpc2libGUoaSkpIHtcblx0XHRcdFx0XHRtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoaSk7XG5cdFx0XHRcdFx0YXJjcyA9IG1ldGEuZGF0YTtcblx0XHRcdFx0XHRpZiAoaSAhPT0gbWUuaW5kZXgpIHtcblx0XHRcdFx0XHRcdGNvbnRyb2xsZXIgPSBtZXRhLmNvbnRyb2xsZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCFhcmNzKSB7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gYXJjcy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdGFyYyA9IGFyY3NbaV07XG5cdFx0XHRvcHRpb25zID0gY29udHJvbGxlciA/IGNvbnRyb2xsZXIuX3Jlc29sdmVFbGVtZW50T3B0aW9ucyhhcmMsIGkpIDogYXJjLl9vcHRpb25zO1xuXHRcdFx0aWYgKG9wdGlvbnMuYm9yZGVyQWxpZ24gIT09ICdpbm5lcicpIHtcblx0XHRcdFx0Ym9yZGVyV2lkdGggPSBvcHRpb25zLmJvcmRlcldpZHRoO1xuXHRcdFx0XHRob3ZlcldpZHRoID0gb3B0aW9ucy5ob3ZlckJvcmRlcldpZHRoO1xuXG5cdFx0XHRcdG1heCA9IGJvcmRlcldpZHRoID4gbWF4ID8gYm9yZGVyV2lkdGggOiBtYXg7XG5cdFx0XHRcdG1heCA9IGhvdmVyV2lkdGggPiBtYXggPyBob3ZlcldpZHRoIDogbWF4O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gbWF4O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRzZXRIb3ZlclN0eWxlOiBmdW5jdGlvbihhcmMpIHtcblx0XHR2YXIgbW9kZWwgPSBhcmMuX21vZGVsO1xuXHRcdHZhciBvcHRpb25zID0gYXJjLl9vcHRpb25zO1xuXHRcdHZhciBnZXRIb3ZlckNvbG9yID0gaGVscGVycyQxLmdldEhvdmVyQ29sb3I7XG5cblx0XHRhcmMuJHByZXZpb3VzU3R5bGUgPSB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IG1vZGVsLmJhY2tncm91bmRDb2xvcixcblx0XHRcdGJvcmRlckNvbG9yOiBtb2RlbC5ib3JkZXJDb2xvcixcblx0XHRcdGJvcmRlcldpZHRoOiBtb2RlbC5ib3JkZXJXaWR0aCxcblx0XHR9O1xuXG5cdFx0bW9kZWwuYmFja2dyb3VuZENvbG9yID0gdmFsdWVPckRlZmF1bHQkNChvcHRpb25zLmhvdmVyQmFja2dyb3VuZENvbG9yLCBnZXRIb3ZlckNvbG9yKG9wdGlvbnMuYmFja2dyb3VuZENvbG9yKSk7XG5cdFx0bW9kZWwuYm9yZGVyQ29sb3IgPSB2YWx1ZU9yRGVmYXVsdCQ0KG9wdGlvbnMuaG92ZXJCb3JkZXJDb2xvciwgZ2V0SG92ZXJDb2xvcihvcHRpb25zLmJvcmRlckNvbG9yKSk7XG5cdFx0bW9kZWwuYm9yZGVyV2lkdGggPSB2YWx1ZU9yRGVmYXVsdCQ0KG9wdGlvbnMuaG92ZXJCb3JkZXJXaWR0aCwgb3B0aW9ucy5ib3JkZXJXaWR0aCk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfcmVzb2x2ZUVsZW1lbnRPcHRpb25zOiBmdW5jdGlvbihhcmMsIGluZGV4KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgY2hhcnQgPSBtZS5jaGFydDtcblx0XHR2YXIgZGF0YXNldCA9IG1lLmdldERhdGFzZXQoKTtcblx0XHR2YXIgY3VzdG9tID0gYXJjLmN1c3RvbSB8fCB7fTtcblx0XHR2YXIgb3B0aW9ucyA9IGNoYXJ0Lm9wdGlvbnMuZWxlbWVudHMuYXJjO1xuXHRcdHZhciB2YWx1ZXMgPSB7fTtcblx0XHR2YXIgaSwgaWxlbiwga2V5O1xuXG5cdFx0Ly8gU2NyaXB0YWJsZSBvcHRpb25zXG5cdFx0dmFyIGNvbnRleHQgPSB7XG5cdFx0XHRjaGFydDogY2hhcnQsXG5cdFx0XHRkYXRhSW5kZXg6IGluZGV4LFxuXHRcdFx0ZGF0YXNldDogZGF0YXNldCxcblx0XHRcdGRhdGFzZXRJbmRleDogbWUuaW5kZXhcblx0XHR9O1xuXG5cdFx0dmFyIGtleXMgPSBbXG5cdFx0XHQnYmFja2dyb3VuZENvbG9yJyxcblx0XHRcdCdib3JkZXJDb2xvcicsXG5cdFx0XHQnYm9yZGVyV2lkdGgnLFxuXHRcdFx0J2JvcmRlckFsaWduJyxcblx0XHRcdCdob3ZlckJhY2tncm91bmRDb2xvcicsXG5cdFx0XHQnaG92ZXJCb3JkZXJDb2xvcicsXG5cdFx0XHQnaG92ZXJCb3JkZXJXaWR0aCcsXG5cdFx0XTtcblxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSBrZXlzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0a2V5ID0ga2V5c1tpXTtcblx0XHRcdHZhbHVlc1trZXldID0gcmVzb2x2ZSQzKFtcblx0XHRcdFx0Y3VzdG9tW2tleV0sXG5cdFx0XHRcdGRhdGFzZXRba2V5XSxcblx0XHRcdFx0b3B0aW9uc1trZXldXG5cdFx0XHRdLCBjb250ZXh0LCBpbmRleCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbHVlcztcblx0fSxcblxuXHQvKipcblx0ICogR2V0IHJhZGl1cyBsZW5ndGggb2Zmc2V0IG9mIHRoZSBkYXRhc2V0IGluIHJlbGF0aW9uIHRvIHRoZSB2aXNpYmxlIGRhdGFzZXRzIHdlaWdodHMuIFRoaXMgYWxsb3dzIGRldGVybWluaW5nIHRoZSBpbm5lciBhbmQgb3V0ZXIgcmFkaXVzIGNvcnJlY3RseVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2dldFJpbmdXZWlnaHRPZmZzZXQ6IGZ1bmN0aW9uKGRhdGFzZXRJbmRleCkge1xuXHRcdHZhciByaW5nV2VpZ2h0T2Zmc2V0ID0gMDtcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YXNldEluZGV4OyArK2kpIHtcblx0XHRcdGlmICh0aGlzLmNoYXJ0LmlzRGF0YXNldFZpc2libGUoaSkpIHtcblx0XHRcdFx0cmluZ1dlaWdodE9mZnNldCArPSB0aGlzLl9nZXRSaW5nV2VpZ2h0KGkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByaW5nV2VpZ2h0T2Zmc2V0O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2dldFJpbmdXZWlnaHQ6IGZ1bmN0aW9uKGRhdGFTZXRJbmRleCkge1xuXHRcdHJldHVybiBNYXRoLm1heCh2YWx1ZU9yRGVmYXVsdCQ0KHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0c1tkYXRhU2V0SW5kZXhdLndlaWdodCwgMSksIDApO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBzdW0gb2YgYWxsIHZpc2liaWxlIGRhdGEgc2V0IHdlaWdodHMuICBUaGlzIHZhbHVlIGNhbiBiZSAwLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2dldFZpc2libGVEYXRhc2V0V2VpZ2h0VG90YWw6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLl9nZXRSaW5nV2VpZ2h0T2Zmc2V0KHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cy5sZW5ndGgpO1xuXHR9XG59KTtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdob3Jpem9udGFsQmFyJywge1xuXHRob3Zlcjoge1xuXHRcdG1vZGU6ICdpbmRleCcsXG5cdFx0YXhpczogJ3knXG5cdH0sXG5cblx0c2NhbGVzOiB7XG5cdFx0eEF4ZXM6IFt7XG5cdFx0XHR0eXBlOiAnbGluZWFyJyxcblx0XHRcdHBvc2l0aW9uOiAnYm90dG9tJ1xuXHRcdH1dLFxuXG5cdFx0eUF4ZXM6IFt7XG5cdFx0XHR0eXBlOiAnY2F0ZWdvcnknLFxuXHRcdFx0cG9zaXRpb246ICdsZWZ0Jyxcblx0XHRcdGNhdGVnb3J5UGVyY2VudGFnZTogMC44LFxuXHRcdFx0YmFyUGVyY2VudGFnZTogMC45LFxuXHRcdFx0b2Zmc2V0OiB0cnVlLFxuXHRcdFx0Z3JpZExpbmVzOiB7XG5cdFx0XHRcdG9mZnNldEdyaWRMaW5lczogdHJ1ZVxuXHRcdFx0fVxuXHRcdH1dXG5cdH0sXG5cblx0ZWxlbWVudHM6IHtcblx0XHRyZWN0YW5nbGU6IHtcblx0XHRcdGJvcmRlclNraXBwZWQ6ICdsZWZ0J1xuXHRcdH1cblx0fSxcblxuXHR0b29sdGlwczoge1xuXHRcdG1vZGU6ICdpbmRleCcsXG5cdFx0YXhpczogJ3knXG5cdH1cbn0pO1xuXG52YXIgY29udHJvbGxlcl9ob3Jpem9udGFsQmFyID0gY29udHJvbGxlcl9iYXIuZXh0ZW5kKHtcblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfZ2V0VmFsdWVTY2FsZUlkOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRNZXRhKCkueEF4aXNJRDtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9nZXRJbmRleFNjYWxlSWQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmdldE1ldGEoKS55QXhpc0lEO1xuXHR9XG59KTtcblxudmFyIHZhbHVlT3JEZWZhdWx0JDUgPSBoZWxwZXJzJDEudmFsdWVPckRlZmF1bHQ7XG52YXIgcmVzb2x2ZSQ0ID0gaGVscGVycyQxLm9wdGlvbnMucmVzb2x2ZTtcbnZhciBpc1BvaW50SW5BcmVhID0gaGVscGVycyQxLmNhbnZhcy5faXNQb2ludEluQXJlYTtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdsaW5lJywge1xuXHRzaG93TGluZXM6IHRydWUsXG5cdHNwYW5HYXBzOiBmYWxzZSxcblxuXHRob3Zlcjoge1xuXHRcdG1vZGU6ICdsYWJlbCdcblx0fSxcblxuXHRzY2FsZXM6IHtcblx0XHR4QXhlczogW3tcblx0XHRcdHR5cGU6ICdjYXRlZ29yeScsXG5cdFx0XHRpZDogJ3gtYXhpcy0wJ1xuXHRcdH1dLFxuXHRcdHlBeGVzOiBbe1xuXHRcdFx0dHlwZTogJ2xpbmVhcicsXG5cdFx0XHRpZDogJ3ktYXhpcy0wJ1xuXHRcdH1dXG5cdH1cbn0pO1xuXG5mdW5jdGlvbiBsaW5lRW5hYmxlZChkYXRhc2V0LCBvcHRpb25zKSB7XG5cdHJldHVybiB2YWx1ZU9yRGVmYXVsdCQ1KGRhdGFzZXQuc2hvd0xpbmUsIG9wdGlvbnMuc2hvd0xpbmVzKTtcbn1cblxudmFyIGNvbnRyb2xsZXJfbGluZSA9IGNvcmVfZGF0YXNldENvbnRyb2xsZXIuZXh0ZW5kKHtcblxuXHRkYXRhc2V0RWxlbWVudFR5cGU6IGVsZW1lbnRzLkxpbmUsXG5cblx0ZGF0YUVsZW1lbnRUeXBlOiBlbGVtZW50cy5Qb2ludCxcblxuXHR1cGRhdGU6IGZ1bmN0aW9uKHJlc2V0KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgbWV0YSA9IG1lLmdldE1ldGEoKTtcblx0XHR2YXIgbGluZSA9IG1ldGEuZGF0YXNldDtcblx0XHR2YXIgcG9pbnRzID0gbWV0YS5kYXRhIHx8IFtdO1xuXHRcdHZhciBzY2FsZSA9IG1lLmdldFNjYWxlRm9ySWQobWV0YS55QXhpc0lEKTtcblx0XHR2YXIgZGF0YXNldCA9IG1lLmdldERhdGFzZXQoKTtcblx0XHR2YXIgc2hvd0xpbmUgPSBsaW5lRW5hYmxlZChkYXRhc2V0LCBtZS5jaGFydC5vcHRpb25zKTtcblx0XHR2YXIgaSwgaWxlbjtcblxuXHRcdC8vIFVwZGF0ZSBMaW5lXG5cdFx0aWYgKHNob3dMaW5lKSB7XG5cdFx0XHQvLyBDb21wYXRpYmlsaXR5OiBJZiB0aGUgcHJvcGVydGllcyBhcmUgZGVmaW5lZCB3aXRoIG9ubHkgdGhlIG9sZCBuYW1lLCB1c2UgdGhvc2UgdmFsdWVzXG5cdFx0XHRpZiAoKGRhdGFzZXQudGVuc2lvbiAhPT0gdW5kZWZpbmVkKSAmJiAoZGF0YXNldC5saW5lVGVuc2lvbiA9PT0gdW5kZWZpbmVkKSkge1xuXHRcdFx0XHRkYXRhc2V0LmxpbmVUZW5zaW9uID0gZGF0YXNldC50ZW5zaW9uO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBVdGlsaXR5XG5cdFx0XHRsaW5lLl9zY2FsZSA9IHNjYWxlO1xuXHRcdFx0bGluZS5fZGF0YXNldEluZGV4ID0gbWUuaW5kZXg7XG5cdFx0XHQvLyBEYXRhXG5cdFx0XHRsaW5lLl9jaGlsZHJlbiA9IHBvaW50cztcblx0XHRcdC8vIE1vZGVsXG5cdFx0XHRsaW5lLl9tb2RlbCA9IG1lLl9yZXNvbHZlTGluZU9wdGlvbnMobGluZSk7XG5cblx0XHRcdGxpbmUucGl2b3QoKTtcblx0XHR9XG5cblx0XHQvLyBVcGRhdGUgUG9pbnRzXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IHBvaW50cy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdG1lLnVwZGF0ZUVsZW1lbnQocG9pbnRzW2ldLCBpLCByZXNldCk7XG5cdFx0fVxuXG5cdFx0aWYgKHNob3dMaW5lICYmIGxpbmUuX21vZGVsLnRlbnNpb24gIT09IDApIHtcblx0XHRcdG1lLnVwZGF0ZUJlemllckNvbnRyb2xQb2ludHMoKTtcblx0XHR9XG5cblx0XHQvLyBOb3cgcGl2b3QgdGhlIHBvaW50IGZvciBhbmltYXRpb25cblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gcG9pbnRzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0cG9pbnRzW2ldLnBpdm90KCk7XG5cdFx0fVxuXHR9LFxuXG5cdHVwZGF0ZUVsZW1lbnQ6IGZ1bmN0aW9uKHBvaW50LCBpbmRleCwgcmVzZXQpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBtZXRhID0gbWUuZ2V0TWV0YSgpO1xuXHRcdHZhciBjdXN0b20gPSBwb2ludC5jdXN0b20gfHwge307XG5cdFx0dmFyIGRhdGFzZXQgPSBtZS5nZXREYXRhc2V0KCk7XG5cdFx0dmFyIGRhdGFzZXRJbmRleCA9IG1lLmluZGV4O1xuXHRcdHZhciB2YWx1ZSA9IGRhdGFzZXQuZGF0YVtpbmRleF07XG5cdFx0dmFyIHlTY2FsZSA9IG1lLmdldFNjYWxlRm9ySWQobWV0YS55QXhpc0lEKTtcblx0XHR2YXIgeFNjYWxlID0gbWUuZ2V0U2NhbGVGb3JJZChtZXRhLnhBeGlzSUQpO1xuXHRcdHZhciBsaW5lTW9kZWwgPSBtZXRhLmRhdGFzZXQuX21vZGVsO1xuXHRcdHZhciB4LCB5O1xuXG5cdFx0dmFyIG9wdGlvbnMgPSBtZS5fcmVzb2x2ZVBvaW50T3B0aW9ucyhwb2ludCwgaW5kZXgpO1xuXG5cdFx0eCA9IHhTY2FsZS5nZXRQaXhlbEZvclZhbHVlKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgPyB2YWx1ZSA6IE5hTiwgaW5kZXgsIGRhdGFzZXRJbmRleCk7XG5cdFx0eSA9IHJlc2V0ID8geVNjYWxlLmdldEJhc2VQaXhlbCgpIDogbWUuY2FsY3VsYXRlUG9pbnRZKHZhbHVlLCBpbmRleCwgZGF0YXNldEluZGV4KTtcblxuXHRcdC8vIFV0aWxpdHlcblx0XHRwb2ludC5feFNjYWxlID0geFNjYWxlO1xuXHRcdHBvaW50Ll95U2NhbGUgPSB5U2NhbGU7XG5cdFx0cG9pbnQuX29wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHBvaW50Ll9kYXRhc2V0SW5kZXggPSBkYXRhc2V0SW5kZXg7XG5cdFx0cG9pbnQuX2luZGV4ID0gaW5kZXg7XG5cblx0XHQvLyBEZXNpcmVkIHZpZXcgcHJvcGVydGllc1xuXHRcdHBvaW50Ll9tb2RlbCA9IHtcblx0XHRcdHg6IHgsXG5cdFx0XHR5OiB5LFxuXHRcdFx0c2tpcDogY3VzdG9tLnNraXAgfHwgaXNOYU4oeCkgfHwgaXNOYU4oeSksXG5cdFx0XHQvLyBBcHBlYXJhbmNlXG5cdFx0XHRyYWRpdXM6IG9wdGlvbnMucmFkaXVzLFxuXHRcdFx0cG9pbnRTdHlsZTogb3B0aW9ucy5wb2ludFN0eWxlLFxuXHRcdFx0cm90YXRpb246IG9wdGlvbnMucm90YXRpb24sXG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IG9wdGlvbnMuYmFja2dyb3VuZENvbG9yLFxuXHRcdFx0Ym9yZGVyQ29sb3I6IG9wdGlvbnMuYm9yZGVyQ29sb3IsXG5cdFx0XHRib3JkZXJXaWR0aDogb3B0aW9ucy5ib3JkZXJXaWR0aCxcblx0XHRcdHRlbnNpb246IHZhbHVlT3JEZWZhdWx0JDUoY3VzdG9tLnRlbnNpb24sIGxpbmVNb2RlbCA/IGxpbmVNb2RlbC50ZW5zaW9uIDogMCksXG5cdFx0XHRzdGVwcGVkTGluZTogbGluZU1vZGVsID8gbGluZU1vZGVsLnN0ZXBwZWRMaW5lIDogZmFsc2UsXG5cdFx0XHQvLyBUb29sdGlwXG5cdFx0XHRoaXRSYWRpdXM6IG9wdGlvbnMuaGl0UmFkaXVzXG5cdFx0fTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9yZXNvbHZlUG9pbnRPcHRpb25zOiBmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGNoYXJ0ID0gbWUuY2hhcnQ7XG5cdFx0dmFyIGRhdGFzZXQgPSBjaGFydC5kYXRhLmRhdGFzZXRzW21lLmluZGV4XTtcblx0XHR2YXIgY3VzdG9tID0gZWxlbWVudC5jdXN0b20gfHwge307XG5cdFx0dmFyIG9wdGlvbnMgPSBjaGFydC5vcHRpb25zLmVsZW1lbnRzLnBvaW50O1xuXHRcdHZhciB2YWx1ZXMgPSB7fTtcblx0XHR2YXIgaSwgaWxlbiwga2V5O1xuXG5cdFx0Ly8gU2NyaXB0YWJsZSBvcHRpb25zXG5cdFx0dmFyIGNvbnRleHQgPSB7XG5cdFx0XHRjaGFydDogY2hhcnQsXG5cdFx0XHRkYXRhSW5kZXg6IGluZGV4LFxuXHRcdFx0ZGF0YXNldDogZGF0YXNldCxcblx0XHRcdGRhdGFzZXRJbmRleDogbWUuaW5kZXhcblx0XHR9O1xuXG5cdFx0dmFyIEVMRU1FTlRfT1BUSU9OUyA9IHtcblx0XHRcdGJhY2tncm91bmRDb2xvcjogJ3BvaW50QmFja2dyb3VuZENvbG9yJyxcblx0XHRcdGJvcmRlckNvbG9yOiAncG9pbnRCb3JkZXJDb2xvcicsXG5cdFx0XHRib3JkZXJXaWR0aDogJ3BvaW50Qm9yZGVyV2lkdGgnLFxuXHRcdFx0aGl0UmFkaXVzOiAncG9pbnRIaXRSYWRpdXMnLFxuXHRcdFx0aG92ZXJCYWNrZ3JvdW5kQ29sb3I6ICdwb2ludEhvdmVyQmFja2dyb3VuZENvbG9yJyxcblx0XHRcdGhvdmVyQm9yZGVyQ29sb3I6ICdwb2ludEhvdmVyQm9yZGVyQ29sb3InLFxuXHRcdFx0aG92ZXJCb3JkZXJXaWR0aDogJ3BvaW50SG92ZXJCb3JkZXJXaWR0aCcsXG5cdFx0XHRob3ZlclJhZGl1czogJ3BvaW50SG92ZXJSYWRpdXMnLFxuXHRcdFx0cG9pbnRTdHlsZTogJ3BvaW50U3R5bGUnLFxuXHRcdFx0cmFkaXVzOiAncG9pbnRSYWRpdXMnLFxuXHRcdFx0cm90YXRpb246ICdwb2ludFJvdGF0aW9uJ1xuXHRcdH07XG5cdFx0dmFyIGtleXMgPSBPYmplY3Qua2V5cyhFTEVNRU5UX09QVElPTlMpO1xuXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IGtleXMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRrZXkgPSBrZXlzW2ldO1xuXHRcdFx0dmFsdWVzW2tleV0gPSByZXNvbHZlJDQoW1xuXHRcdFx0XHRjdXN0b21ba2V5XSxcblx0XHRcdFx0ZGF0YXNldFtFTEVNRU5UX09QVElPTlNba2V5XV0sXG5cdFx0XHRcdGRhdGFzZXRba2V5XSxcblx0XHRcdFx0b3B0aW9uc1trZXldXG5cdFx0XHRdLCBjb250ZXh0LCBpbmRleCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbHVlcztcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9yZXNvbHZlTGluZU9wdGlvbnM6IGZ1bmN0aW9uKGVsZW1lbnQpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBkYXRhc2V0ID0gY2hhcnQuZGF0YS5kYXRhc2V0c1ttZS5pbmRleF07XG5cdFx0dmFyIGN1c3RvbSA9IGVsZW1lbnQuY3VzdG9tIHx8IHt9O1xuXHRcdHZhciBvcHRpb25zID0gY2hhcnQub3B0aW9ucztcblx0XHR2YXIgZWxlbWVudE9wdGlvbnMgPSBvcHRpb25zLmVsZW1lbnRzLmxpbmU7XG5cdFx0dmFyIHZhbHVlcyA9IHt9O1xuXHRcdHZhciBpLCBpbGVuLCBrZXk7XG5cblx0XHR2YXIga2V5cyA9IFtcblx0XHRcdCdiYWNrZ3JvdW5kQ29sb3InLFxuXHRcdFx0J2JvcmRlcldpZHRoJyxcblx0XHRcdCdib3JkZXJDb2xvcicsXG5cdFx0XHQnYm9yZGVyQ2FwU3R5bGUnLFxuXHRcdFx0J2JvcmRlckRhc2gnLFxuXHRcdFx0J2JvcmRlckRhc2hPZmZzZXQnLFxuXHRcdFx0J2JvcmRlckpvaW5TdHlsZScsXG5cdFx0XHQnZmlsbCcsXG5cdFx0XHQnY3ViaWNJbnRlcnBvbGF0aW9uTW9kZSdcblx0XHRdO1xuXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IGtleXMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRrZXkgPSBrZXlzW2ldO1xuXHRcdFx0dmFsdWVzW2tleV0gPSByZXNvbHZlJDQoW1xuXHRcdFx0XHRjdXN0b21ba2V5XSxcblx0XHRcdFx0ZGF0YXNldFtrZXldLFxuXHRcdFx0XHRlbGVtZW50T3B0aW9uc1trZXldXG5cdFx0XHRdKTtcblx0XHR9XG5cblx0XHQvLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBvZiBsaW5lcyBpcyB0byBicmVhayBhdCBudWxsIHZhbHVlcywgYWNjb3JkaW5nXG5cdFx0Ly8gdG8gaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvaXNzdWVzLzI0MzUjaXNzdWVjb21tZW50LTIxNjcxODE1OFxuXHRcdC8vIFRoaXMgb3B0aW9uIGdpdmVzIGxpbmVzIHRoZSBhYmlsaXR5IHRvIHNwYW4gZ2Fwc1xuXHRcdHZhbHVlcy5zcGFuR2FwcyA9IHZhbHVlT3JEZWZhdWx0JDUoZGF0YXNldC5zcGFuR2Fwcywgb3B0aW9ucy5zcGFuR2Fwcyk7XG5cdFx0dmFsdWVzLnRlbnNpb24gPSB2YWx1ZU9yRGVmYXVsdCQ1KGRhdGFzZXQubGluZVRlbnNpb24sIGVsZW1lbnRPcHRpb25zLnRlbnNpb24pO1xuXHRcdHZhbHVlcy5zdGVwcGVkTGluZSA9IHJlc29sdmUkNChbY3VzdG9tLnN0ZXBwZWRMaW5lLCBkYXRhc2V0LnN0ZXBwZWRMaW5lLCBlbGVtZW50T3B0aW9ucy5zdGVwcGVkXSk7XG5cblx0XHRyZXR1cm4gdmFsdWVzO1xuXHR9LFxuXG5cdGNhbGN1bGF0ZVBvaW50WTogZnVuY3Rpb24odmFsdWUsIGluZGV4LCBkYXRhc2V0SW5kZXgpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBtZXRhID0gbWUuZ2V0TWV0YSgpO1xuXHRcdHZhciB5U2NhbGUgPSBtZS5nZXRTY2FsZUZvcklkKG1ldGEueUF4aXNJRCk7XG5cdFx0dmFyIHN1bVBvcyA9IDA7XG5cdFx0dmFyIHN1bU5lZyA9IDA7XG5cdFx0dmFyIGksIGRzLCBkc01ldGE7XG5cblx0XHRpZiAoeVNjYWxlLm9wdGlvbnMuc3RhY2tlZCkge1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IGRhdGFzZXRJbmRleDsgaSsrKSB7XG5cdFx0XHRcdGRzID0gY2hhcnQuZGF0YS5kYXRhc2V0c1tpXTtcblx0XHRcdFx0ZHNNZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoaSk7XG5cdFx0XHRcdGlmIChkc01ldGEudHlwZSA9PT0gJ2xpbmUnICYmIGRzTWV0YS55QXhpc0lEID09PSB5U2NhbGUuaWQgJiYgY2hhcnQuaXNEYXRhc2V0VmlzaWJsZShpKSkge1xuXHRcdFx0XHRcdHZhciBzdGFja2VkUmlnaHRWYWx1ZSA9IE51bWJlcih5U2NhbGUuZ2V0UmlnaHRWYWx1ZShkcy5kYXRhW2luZGV4XSkpO1xuXHRcdFx0XHRcdGlmIChzdGFja2VkUmlnaHRWYWx1ZSA8IDApIHtcblx0XHRcdFx0XHRcdHN1bU5lZyArPSBzdGFja2VkUmlnaHRWYWx1ZSB8fCAwO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRzdW1Qb3MgKz0gc3RhY2tlZFJpZ2h0VmFsdWUgfHwgMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dmFyIHJpZ2h0VmFsdWUgPSBOdW1iZXIoeVNjYWxlLmdldFJpZ2h0VmFsdWUodmFsdWUpKTtcblx0XHRcdGlmIChyaWdodFZhbHVlIDwgMCkge1xuXHRcdFx0XHRyZXR1cm4geVNjYWxlLmdldFBpeGVsRm9yVmFsdWUoc3VtTmVnICsgcmlnaHRWYWx1ZSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4geVNjYWxlLmdldFBpeGVsRm9yVmFsdWUoc3VtUG9zICsgcmlnaHRWYWx1ZSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHlTY2FsZS5nZXRQaXhlbEZvclZhbHVlKHZhbHVlKTtcblx0fSxcblxuXHR1cGRhdGVCZXppZXJDb250cm9sUG9pbnRzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBtZXRhID0gbWUuZ2V0TWV0YSgpO1xuXHRcdHZhciBsaW5lTW9kZWwgPSBtZXRhLmRhdGFzZXQuX21vZGVsO1xuXHRcdHZhciBhcmVhID0gY2hhcnQuY2hhcnRBcmVhO1xuXHRcdHZhciBwb2ludHMgPSBtZXRhLmRhdGEgfHwgW107XG5cdFx0dmFyIGksIGlsZW4sIG1vZGVsLCBjb250cm9sUG9pbnRzO1xuXG5cdFx0Ly8gT25seSBjb25zaWRlciBwb2ludHMgdGhhdCBhcmUgZHJhd24gaW4gY2FzZSB0aGUgc3BhbkdhcHMgb3B0aW9uIGlzIHVzZWRcblx0XHRpZiAobGluZU1vZGVsLnNwYW5HYXBzKSB7XG5cdFx0XHRwb2ludHMgPSBwb2ludHMuZmlsdGVyKGZ1bmN0aW9uKHB0KSB7XG5cdFx0XHRcdHJldHVybiAhcHQuX21vZGVsLnNraXA7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiBjYXBDb250cm9sUG9pbnQocHQsIG1pbiwgbWF4KSB7XG5cdFx0XHRyZXR1cm4gTWF0aC5tYXgoTWF0aC5taW4ocHQsIG1heCksIG1pbik7XG5cdFx0fVxuXG5cdFx0aWYgKGxpbmVNb2RlbC5jdWJpY0ludGVycG9sYXRpb25Nb2RlID09PSAnbW9ub3RvbmUnKSB7XG5cdFx0XHRoZWxwZXJzJDEuc3BsaW5lQ3VydmVNb25vdG9uZShwb2ludHMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb3IgKGkgPSAwLCBpbGVuID0gcG9pbnRzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0XHRtb2RlbCA9IHBvaW50c1tpXS5fbW9kZWw7XG5cdFx0XHRcdGNvbnRyb2xQb2ludHMgPSBoZWxwZXJzJDEuc3BsaW5lQ3VydmUoXG5cdFx0XHRcdFx0aGVscGVycyQxLnByZXZpb3VzSXRlbShwb2ludHMsIGkpLl9tb2RlbCxcblx0XHRcdFx0XHRtb2RlbCxcblx0XHRcdFx0XHRoZWxwZXJzJDEubmV4dEl0ZW0ocG9pbnRzLCBpKS5fbW9kZWwsXG5cdFx0XHRcdFx0bGluZU1vZGVsLnRlbnNpb25cblx0XHRcdFx0KTtcblx0XHRcdFx0bW9kZWwuY29udHJvbFBvaW50UHJldmlvdXNYID0gY29udHJvbFBvaW50cy5wcmV2aW91cy54O1xuXHRcdFx0XHRtb2RlbC5jb250cm9sUG9pbnRQcmV2aW91c1kgPSBjb250cm9sUG9pbnRzLnByZXZpb3VzLnk7XG5cdFx0XHRcdG1vZGVsLmNvbnRyb2xQb2ludE5leHRYID0gY29udHJvbFBvaW50cy5uZXh0Lng7XG5cdFx0XHRcdG1vZGVsLmNvbnRyb2xQb2ludE5leHRZID0gY29udHJvbFBvaW50cy5uZXh0Lnk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGNoYXJ0Lm9wdGlvbnMuZWxlbWVudHMubGluZS5jYXBCZXppZXJQb2ludHMpIHtcblx0XHRcdGZvciAoaSA9IDAsIGlsZW4gPSBwb2ludHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRcdG1vZGVsID0gcG9pbnRzW2ldLl9tb2RlbDtcblx0XHRcdFx0aWYgKGlzUG9pbnRJbkFyZWEobW9kZWwsIGFyZWEpKSB7XG5cdFx0XHRcdFx0aWYgKGkgPiAwICYmIGlzUG9pbnRJbkFyZWEocG9pbnRzW2kgLSAxXS5fbW9kZWwsIGFyZWEpKSB7XG5cdFx0XHRcdFx0XHRtb2RlbC5jb250cm9sUG9pbnRQcmV2aW91c1ggPSBjYXBDb250cm9sUG9pbnQobW9kZWwuY29udHJvbFBvaW50UHJldmlvdXNYLCBhcmVhLmxlZnQsIGFyZWEucmlnaHQpO1xuXHRcdFx0XHRcdFx0bW9kZWwuY29udHJvbFBvaW50UHJldmlvdXNZID0gY2FwQ29udHJvbFBvaW50KG1vZGVsLmNvbnRyb2xQb2ludFByZXZpb3VzWSwgYXJlYS50b3AsIGFyZWEuYm90dG9tKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKGkgPCBwb2ludHMubGVuZ3RoIC0gMSAmJiBpc1BvaW50SW5BcmVhKHBvaW50c1tpICsgMV0uX21vZGVsLCBhcmVhKSkge1xuXHRcdFx0XHRcdFx0bW9kZWwuY29udHJvbFBvaW50TmV4dFggPSBjYXBDb250cm9sUG9pbnQobW9kZWwuY29udHJvbFBvaW50TmV4dFgsIGFyZWEubGVmdCwgYXJlYS5yaWdodCk7XG5cdFx0XHRcdFx0XHRtb2RlbC5jb250cm9sUG9pbnROZXh0WSA9IGNhcENvbnRyb2xQb2ludChtb2RlbC5jb250cm9sUG9pbnROZXh0WSwgYXJlYS50b3AsIGFyZWEuYm90dG9tKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0ZHJhdzogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgY2hhcnQgPSBtZS5jaGFydDtcblx0XHR2YXIgbWV0YSA9IG1lLmdldE1ldGEoKTtcblx0XHR2YXIgcG9pbnRzID0gbWV0YS5kYXRhIHx8IFtdO1xuXHRcdHZhciBhcmVhID0gY2hhcnQuY2hhcnRBcmVhO1xuXHRcdHZhciBpbGVuID0gcG9pbnRzLmxlbmd0aDtcblx0XHR2YXIgaGFsZkJvcmRlcldpZHRoO1xuXHRcdHZhciBpID0gMDtcblxuXHRcdGlmIChsaW5lRW5hYmxlZChtZS5nZXREYXRhc2V0KCksIGNoYXJ0Lm9wdGlvbnMpKSB7XG5cdFx0XHRoYWxmQm9yZGVyV2lkdGggPSAobWV0YS5kYXRhc2V0Ll9tb2RlbC5ib3JkZXJXaWR0aCB8fCAwKSAvIDI7XG5cblx0XHRcdGhlbHBlcnMkMS5jYW52YXMuY2xpcEFyZWEoY2hhcnQuY3R4LCB7XG5cdFx0XHRcdGxlZnQ6IGFyZWEubGVmdCxcblx0XHRcdFx0cmlnaHQ6IGFyZWEucmlnaHQsXG5cdFx0XHRcdHRvcDogYXJlYS50b3AgLSBoYWxmQm9yZGVyV2lkdGgsXG5cdFx0XHRcdGJvdHRvbTogYXJlYS5ib3R0b20gKyBoYWxmQm9yZGVyV2lkdGhcblx0XHRcdH0pO1xuXG5cdFx0XHRtZXRhLmRhdGFzZXQuZHJhdygpO1xuXG5cdFx0XHRoZWxwZXJzJDEuY2FudmFzLnVuY2xpcEFyZWEoY2hhcnQuY3R4KTtcblx0XHR9XG5cblx0XHQvLyBEcmF3IHRoZSBwb2ludHNcblx0XHRmb3IgKDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0cG9pbnRzW2ldLmRyYXcoYXJlYSk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRzZXRIb3ZlclN0eWxlOiBmdW5jdGlvbihwb2ludCkge1xuXHRcdHZhciBtb2RlbCA9IHBvaW50Ll9tb2RlbDtcblx0XHR2YXIgb3B0aW9ucyA9IHBvaW50Ll9vcHRpb25zO1xuXHRcdHZhciBnZXRIb3ZlckNvbG9yID0gaGVscGVycyQxLmdldEhvdmVyQ29sb3I7XG5cblx0XHRwb2ludC4kcHJldmlvdXNTdHlsZSA9IHtcblx0XHRcdGJhY2tncm91bmRDb2xvcjogbW9kZWwuYmFja2dyb3VuZENvbG9yLFxuXHRcdFx0Ym9yZGVyQ29sb3I6IG1vZGVsLmJvcmRlckNvbG9yLFxuXHRcdFx0Ym9yZGVyV2lkdGg6IG1vZGVsLmJvcmRlcldpZHRoLFxuXHRcdFx0cmFkaXVzOiBtb2RlbC5yYWRpdXNcblx0XHR9O1xuXG5cdFx0bW9kZWwuYmFja2dyb3VuZENvbG9yID0gdmFsdWVPckRlZmF1bHQkNShvcHRpb25zLmhvdmVyQmFja2dyb3VuZENvbG9yLCBnZXRIb3ZlckNvbG9yKG9wdGlvbnMuYmFja2dyb3VuZENvbG9yKSk7XG5cdFx0bW9kZWwuYm9yZGVyQ29sb3IgPSB2YWx1ZU9yRGVmYXVsdCQ1KG9wdGlvbnMuaG92ZXJCb3JkZXJDb2xvciwgZ2V0SG92ZXJDb2xvcihvcHRpb25zLmJvcmRlckNvbG9yKSk7XG5cdFx0bW9kZWwuYm9yZGVyV2lkdGggPSB2YWx1ZU9yRGVmYXVsdCQ1KG9wdGlvbnMuaG92ZXJCb3JkZXJXaWR0aCwgb3B0aW9ucy5ib3JkZXJXaWR0aCk7XG5cdFx0bW9kZWwucmFkaXVzID0gdmFsdWVPckRlZmF1bHQkNShvcHRpb25zLmhvdmVyUmFkaXVzLCBvcHRpb25zLnJhZGl1cyk7XG5cdH0sXG59KTtcblxudmFyIHJlc29sdmUkNSA9IGhlbHBlcnMkMS5vcHRpb25zLnJlc29sdmU7XG5cbmNvcmVfZGVmYXVsdHMuX3NldCgncG9sYXJBcmVhJywge1xuXHRzY2FsZToge1xuXHRcdHR5cGU6ICdyYWRpYWxMaW5lYXInLFxuXHRcdGFuZ2xlTGluZXM6IHtcblx0XHRcdGRpc3BsYXk6IGZhbHNlXG5cdFx0fSxcblx0XHRncmlkTGluZXM6IHtcblx0XHRcdGNpcmN1bGFyOiB0cnVlXG5cdFx0fSxcblx0XHRwb2ludExhYmVsczoge1xuXHRcdFx0ZGlzcGxheTogZmFsc2Vcblx0XHR9LFxuXHRcdHRpY2tzOiB7XG5cdFx0XHRiZWdpbkF0WmVybzogdHJ1ZVxuXHRcdH1cblx0fSxcblxuXHQvLyBCb29sZWFuIC0gV2hldGhlciB0byBhbmltYXRlIHRoZSByb3RhdGlvbiBvZiB0aGUgY2hhcnRcblx0YW5pbWF0aW9uOiB7XG5cdFx0YW5pbWF0ZVJvdGF0ZTogdHJ1ZSxcblx0XHRhbmltYXRlU2NhbGU6IHRydWVcblx0fSxcblxuXHRzdGFydEFuZ2xlOiAtMC41ICogTWF0aC5QSSxcblx0bGVnZW5kQ2FsbGJhY2s6IGZ1bmN0aW9uKGNoYXJ0KSB7XG5cdFx0dmFyIHRleHQgPSBbXTtcblx0XHR0ZXh0LnB1c2goJzx1bCBjbGFzcz1cIicgKyBjaGFydC5pZCArICctbGVnZW5kXCI+Jyk7XG5cblx0XHR2YXIgZGF0YSA9IGNoYXJ0LmRhdGE7XG5cdFx0dmFyIGRhdGFzZXRzID0gZGF0YS5kYXRhc2V0cztcblx0XHR2YXIgbGFiZWxzID0gZGF0YS5sYWJlbHM7XG5cblx0XHRpZiAoZGF0YXNldHMubGVuZ3RoKSB7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFzZXRzWzBdLmRhdGEubGVuZ3RoOyArK2kpIHtcblx0XHRcdFx0dGV4dC5wdXNoKCc8bGk+PHNwYW4gc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOicgKyBkYXRhc2V0c1swXS5iYWNrZ3JvdW5kQ29sb3JbaV0gKyAnXCI+PC9zcGFuPicpO1xuXHRcdFx0XHRpZiAobGFiZWxzW2ldKSB7XG5cdFx0XHRcdFx0dGV4dC5wdXNoKGxhYmVsc1tpXSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGV4dC5wdXNoKCc8L2xpPicpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRleHQucHVzaCgnPC91bD4nKTtcblx0XHRyZXR1cm4gdGV4dC5qb2luKCcnKTtcblx0fSxcblx0bGVnZW5kOiB7XG5cdFx0bGFiZWxzOiB7XG5cdFx0XHRnZW5lcmF0ZUxhYmVsczogZnVuY3Rpb24oY2hhcnQpIHtcblx0XHRcdFx0dmFyIGRhdGEgPSBjaGFydC5kYXRhO1xuXHRcdFx0XHRpZiAoZGF0YS5sYWJlbHMubGVuZ3RoICYmIGRhdGEuZGF0YXNldHMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGEubGFiZWxzLm1hcChmdW5jdGlvbihsYWJlbCwgaSkge1xuXHRcdFx0XHRcdFx0dmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YSgwKTtcblx0XHRcdFx0XHRcdHZhciBkcyA9IGRhdGEuZGF0YXNldHNbMF07XG5cdFx0XHRcdFx0XHR2YXIgYXJjID0gbWV0YS5kYXRhW2ldO1xuXHRcdFx0XHRcdFx0dmFyIGN1c3RvbSA9IGFyYy5jdXN0b20gfHwge307XG5cdFx0XHRcdFx0XHR2YXIgYXJjT3B0cyA9IGNoYXJ0Lm9wdGlvbnMuZWxlbWVudHMuYXJjO1xuXHRcdFx0XHRcdFx0dmFyIGZpbGwgPSByZXNvbHZlJDUoW2N1c3RvbS5iYWNrZ3JvdW5kQ29sb3IsIGRzLmJhY2tncm91bmRDb2xvciwgYXJjT3B0cy5iYWNrZ3JvdW5kQ29sb3JdLCB1bmRlZmluZWQsIGkpO1xuXHRcdFx0XHRcdFx0dmFyIHN0cm9rZSA9IHJlc29sdmUkNShbY3VzdG9tLmJvcmRlckNvbG9yLCBkcy5ib3JkZXJDb2xvciwgYXJjT3B0cy5ib3JkZXJDb2xvcl0sIHVuZGVmaW5lZCwgaSk7XG5cdFx0XHRcdFx0XHR2YXIgYncgPSByZXNvbHZlJDUoW2N1c3RvbS5ib3JkZXJXaWR0aCwgZHMuYm9yZGVyV2lkdGgsIGFyY09wdHMuYm9yZGVyV2lkdGhdLCB1bmRlZmluZWQsIGkpO1xuXG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHR0ZXh0OiBsYWJlbCxcblx0XHRcdFx0XHRcdFx0ZmlsbFN0eWxlOiBmaWxsLFxuXHRcdFx0XHRcdFx0XHRzdHJva2VTdHlsZTogc3Ryb2tlLFxuXHRcdFx0XHRcdFx0XHRsaW5lV2lkdGg6IGJ3LFxuXHRcdFx0XHRcdFx0XHRoaWRkZW46IGlzTmFOKGRzLmRhdGFbaV0pIHx8IG1ldGEuZGF0YVtpXS5oaWRkZW4sXG5cblx0XHRcdFx0XHRcdFx0Ly8gRXh0cmEgZGF0YSB1c2VkIGZvciB0b2dnbGluZyB0aGUgY29ycmVjdCBpdGVtXG5cdFx0XHRcdFx0XHRcdGluZGV4OiBpXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBbXTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0b25DbGljazogZnVuY3Rpb24oZSwgbGVnZW5kSXRlbSkge1xuXHRcdFx0dmFyIGluZGV4ID0gbGVnZW5kSXRlbS5pbmRleDtcblx0XHRcdHZhciBjaGFydCA9IHRoaXMuY2hhcnQ7XG5cdFx0XHR2YXIgaSwgaWxlbiwgbWV0YTtcblxuXHRcdFx0Zm9yIChpID0gMCwgaWxlbiA9IChjaGFydC5kYXRhLmRhdGFzZXRzIHx8IFtdKS5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdFx0bWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGkpO1xuXHRcdFx0XHRtZXRhLmRhdGFbaW5kZXhdLmhpZGRlbiA9ICFtZXRhLmRhdGFbaW5kZXhdLmhpZGRlbjtcblx0XHRcdH1cblxuXHRcdFx0Y2hhcnQudXBkYXRlKCk7XG5cdFx0fVxuXHR9LFxuXG5cdC8vIE5lZWQgdG8gb3ZlcnJpZGUgdGhlc2UgdG8gZ2l2ZSBhIG5pY2UgZGVmYXVsdFxuXHR0b29sdGlwczoge1xuXHRcdGNhbGxiYWNrczoge1xuXHRcdFx0dGl0bGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gJyc7XG5cdFx0XHR9LFxuXHRcdFx0bGFiZWw6IGZ1bmN0aW9uKGl0ZW0sIGRhdGEpIHtcblx0XHRcdFx0cmV0dXJuIGRhdGEubGFiZWxzW2l0ZW0uaW5kZXhdICsgJzogJyArIGl0ZW0ueUxhYmVsO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSk7XG5cbnZhciBjb250cm9sbGVyX3BvbGFyQXJlYSA9IGNvcmVfZGF0YXNldENvbnRyb2xsZXIuZXh0ZW5kKHtcblxuXHRkYXRhRWxlbWVudFR5cGU6IGVsZW1lbnRzLkFyYyxcblxuXHRsaW5rU2NhbGVzOiBoZWxwZXJzJDEubm9vcCxcblxuXHR1cGRhdGU6IGZ1bmN0aW9uKHJlc2V0KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgZGF0YXNldCA9IG1lLmdldERhdGFzZXQoKTtcblx0XHR2YXIgbWV0YSA9IG1lLmdldE1ldGEoKTtcblx0XHR2YXIgc3RhcnQgPSBtZS5jaGFydC5vcHRpb25zLnN0YXJ0QW5nbGUgfHwgMDtcblx0XHR2YXIgc3RhcnRzID0gbWUuX3N0YXJ0cyA9IFtdO1xuXHRcdHZhciBhbmdsZXMgPSBtZS5fYW5nbGVzID0gW107XG5cdFx0dmFyIGFyY3MgPSBtZXRhLmRhdGE7XG5cdFx0dmFyIGksIGlsZW4sIGFuZ2xlO1xuXG5cdFx0bWUuX3VwZGF0ZVJhZGl1cygpO1xuXG5cdFx0bWV0YS5jb3VudCA9IG1lLmNvdW50VmlzaWJsZUVsZW1lbnRzKCk7XG5cblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gZGF0YXNldC5kYXRhLmxlbmd0aDsgaSA8IGlsZW47IGkrKykge1xuXHRcdFx0c3RhcnRzW2ldID0gc3RhcnQ7XG5cdFx0XHRhbmdsZSA9IG1lLl9jb21wdXRlQW5nbGUoaSk7XG5cdFx0XHRhbmdsZXNbaV0gPSBhbmdsZTtcblx0XHRcdHN0YXJ0ICs9IGFuZ2xlO1xuXHRcdH1cblxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSBhcmNzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0YXJjc1tpXS5fb3B0aW9ucyA9IG1lLl9yZXNvbHZlRWxlbWVudE9wdGlvbnMoYXJjc1tpXSwgaSk7XG5cdFx0XHRtZS51cGRhdGVFbGVtZW50KGFyY3NbaV0sIGksIHJlc2V0KTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfdXBkYXRlUmFkaXVzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBjaGFydEFyZWEgPSBjaGFydC5jaGFydEFyZWE7XG5cdFx0dmFyIG9wdHMgPSBjaGFydC5vcHRpb25zO1xuXHRcdHZhciBtaW5TaXplID0gTWF0aC5taW4oY2hhcnRBcmVhLnJpZ2h0IC0gY2hhcnRBcmVhLmxlZnQsIGNoYXJ0QXJlYS5ib3R0b20gLSBjaGFydEFyZWEudG9wKTtcblxuXHRcdGNoYXJ0Lm91dGVyUmFkaXVzID0gTWF0aC5tYXgobWluU2l6ZSAvIDIsIDApO1xuXHRcdGNoYXJ0LmlubmVyUmFkaXVzID0gTWF0aC5tYXgob3B0cy5jdXRvdXRQZXJjZW50YWdlID8gKGNoYXJ0Lm91dGVyUmFkaXVzIC8gMTAwKSAqIChvcHRzLmN1dG91dFBlcmNlbnRhZ2UpIDogMSwgMCk7XG5cdFx0Y2hhcnQucmFkaXVzTGVuZ3RoID0gKGNoYXJ0Lm91dGVyUmFkaXVzIC0gY2hhcnQuaW5uZXJSYWRpdXMpIC8gY2hhcnQuZ2V0VmlzaWJsZURhdGFzZXRDb3VudCgpO1xuXG5cdFx0bWUub3V0ZXJSYWRpdXMgPSBjaGFydC5vdXRlclJhZGl1cyAtIChjaGFydC5yYWRpdXNMZW5ndGggKiBtZS5pbmRleCk7XG5cdFx0bWUuaW5uZXJSYWRpdXMgPSBtZS5vdXRlclJhZGl1cyAtIGNoYXJ0LnJhZGl1c0xlbmd0aDtcblx0fSxcblxuXHR1cGRhdGVFbGVtZW50OiBmdW5jdGlvbihhcmMsIGluZGV4LCByZXNldCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGNoYXJ0ID0gbWUuY2hhcnQ7XG5cdFx0dmFyIGRhdGFzZXQgPSBtZS5nZXREYXRhc2V0KCk7XG5cdFx0dmFyIG9wdHMgPSBjaGFydC5vcHRpb25zO1xuXHRcdHZhciBhbmltYXRpb25PcHRzID0gb3B0cy5hbmltYXRpb247XG5cdFx0dmFyIHNjYWxlID0gY2hhcnQuc2NhbGU7XG5cdFx0dmFyIGxhYmVscyA9IGNoYXJ0LmRhdGEubGFiZWxzO1xuXG5cdFx0dmFyIGNlbnRlclggPSBzY2FsZS54Q2VudGVyO1xuXHRcdHZhciBjZW50ZXJZID0gc2NhbGUueUNlbnRlcjtcblxuXHRcdC8vIHZhciBuZWdIYWxmUEkgPSAtMC41ICogTWF0aC5QSTtcblx0XHR2YXIgZGF0YXNldFN0YXJ0QW5nbGUgPSBvcHRzLnN0YXJ0QW5nbGU7XG5cdFx0dmFyIGRpc3RhbmNlID0gYXJjLmhpZGRlbiA/IDAgOiBzY2FsZS5nZXREaXN0YW5jZUZyb21DZW50ZXJGb3JWYWx1ZShkYXRhc2V0LmRhdGFbaW5kZXhdKTtcblx0XHR2YXIgc3RhcnRBbmdsZSA9IG1lLl9zdGFydHNbaW5kZXhdO1xuXHRcdHZhciBlbmRBbmdsZSA9IHN0YXJ0QW5nbGUgKyAoYXJjLmhpZGRlbiA/IDAgOiBtZS5fYW5nbGVzW2luZGV4XSk7XG5cblx0XHR2YXIgcmVzZXRSYWRpdXMgPSBhbmltYXRpb25PcHRzLmFuaW1hdGVTY2FsZSA/IDAgOiBzY2FsZS5nZXREaXN0YW5jZUZyb21DZW50ZXJGb3JWYWx1ZShkYXRhc2V0LmRhdGFbaW5kZXhdKTtcblx0XHR2YXIgb3B0aW9ucyA9IGFyYy5fb3B0aW9ucyB8fCB7fTtcblxuXHRcdGhlbHBlcnMkMS5leHRlbmQoYXJjLCB7XG5cdFx0XHQvLyBVdGlsaXR5XG5cdFx0XHRfZGF0YXNldEluZGV4OiBtZS5pbmRleCxcblx0XHRcdF9pbmRleDogaW5kZXgsXG5cdFx0XHRfc2NhbGU6IHNjYWxlLFxuXG5cdFx0XHQvLyBEZXNpcmVkIHZpZXcgcHJvcGVydGllc1xuXHRcdFx0X21vZGVsOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvcjogb3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3IsXG5cdFx0XHRcdGJvcmRlckNvbG9yOiBvcHRpb25zLmJvcmRlckNvbG9yLFxuXHRcdFx0XHRib3JkZXJXaWR0aDogb3B0aW9ucy5ib3JkZXJXaWR0aCxcblx0XHRcdFx0Ym9yZGVyQWxpZ246IG9wdGlvbnMuYm9yZGVyQWxpZ24sXG5cdFx0XHRcdHg6IGNlbnRlclgsXG5cdFx0XHRcdHk6IGNlbnRlclksXG5cdFx0XHRcdGlubmVyUmFkaXVzOiAwLFxuXHRcdFx0XHRvdXRlclJhZGl1czogcmVzZXQgPyByZXNldFJhZGl1cyA6IGRpc3RhbmNlLFxuXHRcdFx0XHRzdGFydEFuZ2xlOiByZXNldCAmJiBhbmltYXRpb25PcHRzLmFuaW1hdGVSb3RhdGUgPyBkYXRhc2V0U3RhcnRBbmdsZSA6IHN0YXJ0QW5nbGUsXG5cdFx0XHRcdGVuZEFuZ2xlOiByZXNldCAmJiBhbmltYXRpb25PcHRzLmFuaW1hdGVSb3RhdGUgPyBkYXRhc2V0U3RhcnRBbmdsZSA6IGVuZEFuZ2xlLFxuXHRcdFx0XHRsYWJlbDogaGVscGVycyQxLnZhbHVlQXRJbmRleE9yRGVmYXVsdChsYWJlbHMsIGluZGV4LCBsYWJlbHNbaW5kZXhdKVxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0YXJjLnBpdm90KCk7XG5cdH0sXG5cblx0Y291bnRWaXNpYmxlRWxlbWVudHM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBkYXRhc2V0ID0gdGhpcy5nZXREYXRhc2V0KCk7XG5cdFx0dmFyIG1ldGEgPSB0aGlzLmdldE1ldGEoKTtcblx0XHR2YXIgY291bnQgPSAwO1xuXG5cdFx0aGVscGVycyQxLmVhY2gobWV0YS5kYXRhLCBmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xuXHRcdFx0aWYgKCFpc05hTihkYXRhc2V0LmRhdGFbaW5kZXhdKSAmJiAhZWxlbWVudC5oaWRkZW4pIHtcblx0XHRcdFx0Y291bnQrKztcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHJldHVybiBjb3VudDtcblx0fSxcblxuXHQvKipcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0c2V0SG92ZXJTdHlsZTogZnVuY3Rpb24oYXJjKSB7XG5cdFx0dmFyIG1vZGVsID0gYXJjLl9tb2RlbDtcblx0XHR2YXIgb3B0aW9ucyA9IGFyYy5fb3B0aW9ucztcblx0XHR2YXIgZ2V0SG92ZXJDb2xvciA9IGhlbHBlcnMkMS5nZXRIb3ZlckNvbG9yO1xuXHRcdHZhciB2YWx1ZU9yRGVmYXVsdCA9IGhlbHBlcnMkMS52YWx1ZU9yRGVmYXVsdDtcblxuXHRcdGFyYy4kcHJldmlvdXNTdHlsZSA9IHtcblx0XHRcdGJhY2tncm91bmRDb2xvcjogbW9kZWwuYmFja2dyb3VuZENvbG9yLFxuXHRcdFx0Ym9yZGVyQ29sb3I6IG1vZGVsLmJvcmRlckNvbG9yLFxuXHRcdFx0Ym9yZGVyV2lkdGg6IG1vZGVsLmJvcmRlcldpZHRoLFxuXHRcdH07XG5cblx0XHRtb2RlbC5iYWNrZ3JvdW5kQ29sb3IgPSB2YWx1ZU9yRGVmYXVsdChvcHRpb25zLmhvdmVyQmFja2dyb3VuZENvbG9yLCBnZXRIb3ZlckNvbG9yKG9wdGlvbnMuYmFja2dyb3VuZENvbG9yKSk7XG5cdFx0bW9kZWwuYm9yZGVyQ29sb3IgPSB2YWx1ZU9yRGVmYXVsdChvcHRpb25zLmhvdmVyQm9yZGVyQ29sb3IsIGdldEhvdmVyQ29sb3Iob3B0aW9ucy5ib3JkZXJDb2xvcikpO1xuXHRcdG1vZGVsLmJvcmRlcldpZHRoID0gdmFsdWVPckRlZmF1bHQob3B0aW9ucy5ob3ZlckJvcmRlcldpZHRoLCBvcHRpb25zLmJvcmRlcldpZHRoKTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9yZXNvbHZlRWxlbWVudE9wdGlvbnM6IGZ1bmN0aW9uKGFyYywgaW5kZXgpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBkYXRhc2V0ID0gbWUuZ2V0RGF0YXNldCgpO1xuXHRcdHZhciBjdXN0b20gPSBhcmMuY3VzdG9tIHx8IHt9O1xuXHRcdHZhciBvcHRpb25zID0gY2hhcnQub3B0aW9ucy5lbGVtZW50cy5hcmM7XG5cdFx0dmFyIHZhbHVlcyA9IHt9O1xuXHRcdHZhciBpLCBpbGVuLCBrZXk7XG5cblx0XHQvLyBTY3JpcHRhYmxlIG9wdGlvbnNcblx0XHR2YXIgY29udGV4dCA9IHtcblx0XHRcdGNoYXJ0OiBjaGFydCxcblx0XHRcdGRhdGFJbmRleDogaW5kZXgsXG5cdFx0XHRkYXRhc2V0OiBkYXRhc2V0LFxuXHRcdFx0ZGF0YXNldEluZGV4OiBtZS5pbmRleFxuXHRcdH07XG5cblx0XHR2YXIga2V5cyA9IFtcblx0XHRcdCdiYWNrZ3JvdW5kQ29sb3InLFxuXHRcdFx0J2JvcmRlckNvbG9yJyxcblx0XHRcdCdib3JkZXJXaWR0aCcsXG5cdFx0XHQnYm9yZGVyQWxpZ24nLFxuXHRcdFx0J2hvdmVyQmFja2dyb3VuZENvbG9yJyxcblx0XHRcdCdob3ZlckJvcmRlckNvbG9yJyxcblx0XHRcdCdob3ZlckJvcmRlcldpZHRoJyxcblx0XHRdO1xuXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IGtleXMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRrZXkgPSBrZXlzW2ldO1xuXHRcdFx0dmFsdWVzW2tleV0gPSByZXNvbHZlJDUoW1xuXHRcdFx0XHRjdXN0b21ba2V5XSxcblx0XHRcdFx0ZGF0YXNldFtrZXldLFxuXHRcdFx0XHRvcHRpb25zW2tleV1cblx0XHRcdF0sIGNvbnRleHQsIGluZGV4KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWVzO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2NvbXB1dGVBbmdsZTogZnVuY3Rpb24oaW5kZXgpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjb3VudCA9IHRoaXMuZ2V0TWV0YSgpLmNvdW50O1xuXHRcdHZhciBkYXRhc2V0ID0gbWUuZ2V0RGF0YXNldCgpO1xuXHRcdHZhciBtZXRhID0gbWUuZ2V0TWV0YSgpO1xuXG5cdFx0aWYgKGlzTmFOKGRhdGFzZXQuZGF0YVtpbmRleF0pIHx8IG1ldGEuZGF0YVtpbmRleF0uaGlkZGVuKSB7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cblx0XHQvLyBTY3JpcHRhYmxlIG9wdGlvbnNcblx0XHR2YXIgY29udGV4dCA9IHtcblx0XHRcdGNoYXJ0OiBtZS5jaGFydCxcblx0XHRcdGRhdGFJbmRleDogaW5kZXgsXG5cdFx0XHRkYXRhc2V0OiBkYXRhc2V0LFxuXHRcdFx0ZGF0YXNldEluZGV4OiBtZS5pbmRleFxuXHRcdH07XG5cblx0XHRyZXR1cm4gcmVzb2x2ZSQ1KFtcblx0XHRcdG1lLmNoYXJ0Lm9wdGlvbnMuZWxlbWVudHMuYXJjLmFuZ2xlLFxuXHRcdFx0KDIgKiBNYXRoLlBJKSAvIGNvdW50XG5cdFx0XSwgY29udGV4dCwgaW5kZXgpO1xuXHR9XG59KTtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdwaWUnLCBoZWxwZXJzJDEuY2xvbmUoY29yZV9kZWZhdWx0cy5kb3VnaG51dCkpO1xuY29yZV9kZWZhdWx0cy5fc2V0KCdwaWUnLCB7XG5cdGN1dG91dFBlcmNlbnRhZ2U6IDBcbn0pO1xuXG4vLyBQaWUgY2hhcnRzIGFyZSBEb3VnaG51dCBjaGFydCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0c1xudmFyIGNvbnRyb2xsZXJfcGllID0gY29udHJvbGxlcl9kb3VnaG51dDtcblxudmFyIHZhbHVlT3JEZWZhdWx0JDYgPSBoZWxwZXJzJDEudmFsdWVPckRlZmF1bHQ7XG52YXIgcmVzb2x2ZSQ2ID0gaGVscGVycyQxLm9wdGlvbnMucmVzb2x2ZTtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdyYWRhcicsIHtcblx0c2NhbGU6IHtcblx0XHR0eXBlOiAncmFkaWFsTGluZWFyJ1xuXHR9LFxuXHRlbGVtZW50czoge1xuXHRcdGxpbmU6IHtcblx0XHRcdHRlbnNpb246IDAgLy8gbm8gYmV6aWVyIGluIHJhZGFyXG5cdFx0fVxuXHR9XG59KTtcblxudmFyIGNvbnRyb2xsZXJfcmFkYXIgPSBjb3JlX2RhdGFzZXRDb250cm9sbGVyLmV4dGVuZCh7XG5cblx0ZGF0YXNldEVsZW1lbnRUeXBlOiBlbGVtZW50cy5MaW5lLFxuXG5cdGRhdGFFbGVtZW50VHlwZTogZWxlbWVudHMuUG9pbnQsXG5cblx0bGlua1NjYWxlczogaGVscGVycyQxLm5vb3AsXG5cblx0dXBkYXRlOiBmdW5jdGlvbihyZXNldCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG1ldGEgPSBtZS5nZXRNZXRhKCk7XG5cdFx0dmFyIGxpbmUgPSBtZXRhLmRhdGFzZXQ7XG5cdFx0dmFyIHBvaW50cyA9IG1ldGEuZGF0YSB8fCBbXTtcblx0XHR2YXIgc2NhbGUgPSBtZS5jaGFydC5zY2FsZTtcblx0XHR2YXIgZGF0YXNldCA9IG1lLmdldERhdGFzZXQoKTtcblx0XHR2YXIgaSwgaWxlbjtcblxuXHRcdC8vIENvbXBhdGliaWxpdHk6IElmIHRoZSBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIHdpdGggb25seSB0aGUgb2xkIG5hbWUsIHVzZSB0aG9zZSB2YWx1ZXNcblx0XHRpZiAoKGRhdGFzZXQudGVuc2lvbiAhPT0gdW5kZWZpbmVkKSAmJiAoZGF0YXNldC5saW5lVGVuc2lvbiA9PT0gdW5kZWZpbmVkKSkge1xuXHRcdFx0ZGF0YXNldC5saW5lVGVuc2lvbiA9IGRhdGFzZXQudGVuc2lvbjtcblx0XHR9XG5cblx0XHQvLyBVdGlsaXR5XG5cdFx0bGluZS5fc2NhbGUgPSBzY2FsZTtcblx0XHRsaW5lLl9kYXRhc2V0SW5kZXggPSBtZS5pbmRleDtcblx0XHQvLyBEYXRhXG5cdFx0bGluZS5fY2hpbGRyZW4gPSBwb2ludHM7XG5cdFx0bGluZS5fbG9vcCA9IHRydWU7XG5cdFx0Ly8gTW9kZWxcblx0XHRsaW5lLl9tb2RlbCA9IG1lLl9yZXNvbHZlTGluZU9wdGlvbnMobGluZSk7XG5cblx0XHRsaW5lLnBpdm90KCk7XG5cblx0XHQvLyBVcGRhdGUgUG9pbnRzXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IHBvaW50cy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdG1lLnVwZGF0ZUVsZW1lbnQocG9pbnRzW2ldLCBpLCByZXNldCk7XG5cdFx0fVxuXG5cdFx0Ly8gVXBkYXRlIGJlemllciBjb250cm9sIHBvaW50c1xuXHRcdG1lLnVwZGF0ZUJlemllckNvbnRyb2xQb2ludHMoKTtcblxuXHRcdC8vIE5vdyBwaXZvdCB0aGUgcG9pbnQgZm9yIGFuaW1hdGlvblxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSBwb2ludHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRwb2ludHNbaV0ucGl2b3QoKTtcblx0XHR9XG5cdH0sXG5cblx0dXBkYXRlRWxlbWVudDogZnVuY3Rpb24ocG9pbnQsIGluZGV4LCByZXNldCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGN1c3RvbSA9IHBvaW50LmN1c3RvbSB8fCB7fTtcblx0XHR2YXIgZGF0YXNldCA9IG1lLmdldERhdGFzZXQoKTtcblx0XHR2YXIgc2NhbGUgPSBtZS5jaGFydC5zY2FsZTtcblx0XHR2YXIgcG9pbnRQb3NpdGlvbiA9IHNjYWxlLmdldFBvaW50UG9zaXRpb25Gb3JWYWx1ZShpbmRleCwgZGF0YXNldC5kYXRhW2luZGV4XSk7XG5cdFx0dmFyIG9wdGlvbnMgPSBtZS5fcmVzb2x2ZVBvaW50T3B0aW9ucyhwb2ludCwgaW5kZXgpO1xuXHRcdHZhciBsaW5lTW9kZWwgPSBtZS5nZXRNZXRhKCkuZGF0YXNldC5fbW9kZWw7XG5cdFx0dmFyIHggPSByZXNldCA/IHNjYWxlLnhDZW50ZXIgOiBwb2ludFBvc2l0aW9uLng7XG5cdFx0dmFyIHkgPSByZXNldCA/IHNjYWxlLnlDZW50ZXIgOiBwb2ludFBvc2l0aW9uLnk7XG5cblx0XHQvLyBVdGlsaXR5XG5cdFx0cG9pbnQuX3NjYWxlID0gc2NhbGU7XG5cdFx0cG9pbnQuX29wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHBvaW50Ll9kYXRhc2V0SW5kZXggPSBtZS5pbmRleDtcblx0XHRwb2ludC5faW5kZXggPSBpbmRleDtcblxuXHRcdC8vIERlc2lyZWQgdmlldyBwcm9wZXJ0aWVzXG5cdFx0cG9pbnQuX21vZGVsID0ge1xuXHRcdFx0eDogeCwgLy8gdmFsdWUgbm90IHVzZWQgaW4gZGF0YXNldCBzY2FsZSwgYnV0IHdlIHdhbnQgYSBjb25zaXN0ZW50IEFQSSBiZXR3ZWVuIHNjYWxlc1xuXHRcdFx0eTogeSxcblx0XHRcdHNraXA6IGN1c3RvbS5za2lwIHx8IGlzTmFOKHgpIHx8IGlzTmFOKHkpLFxuXHRcdFx0Ly8gQXBwZWFyYW5jZVxuXHRcdFx0cmFkaXVzOiBvcHRpb25zLnJhZGl1cyxcblx0XHRcdHBvaW50U3R5bGU6IG9wdGlvbnMucG9pbnRTdHlsZSxcblx0XHRcdHJvdGF0aW9uOiBvcHRpb25zLnJvdGF0aW9uLFxuXHRcdFx0YmFja2dyb3VuZENvbG9yOiBvcHRpb25zLmJhY2tncm91bmRDb2xvcixcblx0XHRcdGJvcmRlckNvbG9yOiBvcHRpb25zLmJvcmRlckNvbG9yLFxuXHRcdFx0Ym9yZGVyV2lkdGg6IG9wdGlvbnMuYm9yZGVyV2lkdGgsXG5cdFx0XHR0ZW5zaW9uOiB2YWx1ZU9yRGVmYXVsdCQ2KGN1c3RvbS50ZW5zaW9uLCBsaW5lTW9kZWwgPyBsaW5lTW9kZWwudGVuc2lvbiA6IDApLFxuXG5cdFx0XHQvLyBUb29sdGlwXG5cdFx0XHRoaXRSYWRpdXM6IG9wdGlvbnMuaGl0UmFkaXVzXG5cdFx0fTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9yZXNvbHZlUG9pbnRPcHRpb25zOiBmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGNoYXJ0ID0gbWUuY2hhcnQ7XG5cdFx0dmFyIGRhdGFzZXQgPSBjaGFydC5kYXRhLmRhdGFzZXRzW21lLmluZGV4XTtcblx0XHR2YXIgY3VzdG9tID0gZWxlbWVudC5jdXN0b20gfHwge307XG5cdFx0dmFyIG9wdGlvbnMgPSBjaGFydC5vcHRpb25zLmVsZW1lbnRzLnBvaW50O1xuXHRcdHZhciB2YWx1ZXMgPSB7fTtcblx0XHR2YXIgaSwgaWxlbiwga2V5O1xuXG5cdFx0Ly8gU2NyaXB0YWJsZSBvcHRpb25zXG5cdFx0dmFyIGNvbnRleHQgPSB7XG5cdFx0XHRjaGFydDogY2hhcnQsXG5cdFx0XHRkYXRhSW5kZXg6IGluZGV4LFxuXHRcdFx0ZGF0YXNldDogZGF0YXNldCxcblx0XHRcdGRhdGFzZXRJbmRleDogbWUuaW5kZXhcblx0XHR9O1xuXG5cdFx0dmFyIEVMRU1FTlRfT1BUSU9OUyA9IHtcblx0XHRcdGJhY2tncm91bmRDb2xvcjogJ3BvaW50QmFja2dyb3VuZENvbG9yJyxcblx0XHRcdGJvcmRlckNvbG9yOiAncG9pbnRCb3JkZXJDb2xvcicsXG5cdFx0XHRib3JkZXJXaWR0aDogJ3BvaW50Qm9yZGVyV2lkdGgnLFxuXHRcdFx0aGl0UmFkaXVzOiAncG9pbnRIaXRSYWRpdXMnLFxuXHRcdFx0aG92ZXJCYWNrZ3JvdW5kQ29sb3I6ICdwb2ludEhvdmVyQmFja2dyb3VuZENvbG9yJyxcblx0XHRcdGhvdmVyQm9yZGVyQ29sb3I6ICdwb2ludEhvdmVyQm9yZGVyQ29sb3InLFxuXHRcdFx0aG92ZXJCb3JkZXJXaWR0aDogJ3BvaW50SG92ZXJCb3JkZXJXaWR0aCcsXG5cdFx0XHRob3ZlclJhZGl1czogJ3BvaW50SG92ZXJSYWRpdXMnLFxuXHRcdFx0cG9pbnRTdHlsZTogJ3BvaW50U3R5bGUnLFxuXHRcdFx0cmFkaXVzOiAncG9pbnRSYWRpdXMnLFxuXHRcdFx0cm90YXRpb246ICdwb2ludFJvdGF0aW9uJ1xuXHRcdH07XG5cdFx0dmFyIGtleXMgPSBPYmplY3Qua2V5cyhFTEVNRU5UX09QVElPTlMpO1xuXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IGtleXMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRrZXkgPSBrZXlzW2ldO1xuXHRcdFx0dmFsdWVzW2tleV0gPSByZXNvbHZlJDYoW1xuXHRcdFx0XHRjdXN0b21ba2V5XSxcblx0XHRcdFx0ZGF0YXNldFtFTEVNRU5UX09QVElPTlNba2V5XV0sXG5cdFx0XHRcdGRhdGFzZXRba2V5XSxcblx0XHRcdFx0b3B0aW9uc1trZXldXG5cdFx0XHRdLCBjb250ZXh0LCBpbmRleCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbHVlcztcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9yZXNvbHZlTGluZU9wdGlvbnM6IGZ1bmN0aW9uKGVsZW1lbnQpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBkYXRhc2V0ID0gY2hhcnQuZGF0YS5kYXRhc2V0c1ttZS5pbmRleF07XG5cdFx0dmFyIGN1c3RvbSA9IGVsZW1lbnQuY3VzdG9tIHx8IHt9O1xuXHRcdHZhciBvcHRpb25zID0gY2hhcnQub3B0aW9ucy5lbGVtZW50cy5saW5lO1xuXHRcdHZhciB2YWx1ZXMgPSB7fTtcblx0XHR2YXIgaSwgaWxlbiwga2V5O1xuXG5cdFx0dmFyIGtleXMgPSBbXG5cdFx0XHQnYmFja2dyb3VuZENvbG9yJyxcblx0XHRcdCdib3JkZXJXaWR0aCcsXG5cdFx0XHQnYm9yZGVyQ29sb3InLFxuXHRcdFx0J2JvcmRlckNhcFN0eWxlJyxcblx0XHRcdCdib3JkZXJEYXNoJyxcblx0XHRcdCdib3JkZXJEYXNoT2Zmc2V0Jyxcblx0XHRcdCdib3JkZXJKb2luU3R5bGUnLFxuXHRcdFx0J2ZpbGwnXG5cdFx0XTtcblxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSBrZXlzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0a2V5ID0ga2V5c1tpXTtcblx0XHRcdHZhbHVlc1trZXldID0gcmVzb2x2ZSQ2KFtcblx0XHRcdFx0Y3VzdG9tW2tleV0sXG5cdFx0XHRcdGRhdGFzZXRba2V5XSxcblx0XHRcdFx0b3B0aW9uc1trZXldXG5cdFx0XHRdKTtcblx0XHR9XG5cblx0XHR2YWx1ZXMudGVuc2lvbiA9IHZhbHVlT3JEZWZhdWx0JDYoZGF0YXNldC5saW5lVGVuc2lvbiwgb3B0aW9ucy50ZW5zaW9uKTtcblxuXHRcdHJldHVybiB2YWx1ZXM7XG5cdH0sXG5cblx0dXBkYXRlQmV6aWVyQ29udHJvbFBvaW50czogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgbWV0YSA9IG1lLmdldE1ldGEoKTtcblx0XHR2YXIgYXJlYSA9IG1lLmNoYXJ0LmNoYXJ0QXJlYTtcblx0XHR2YXIgcG9pbnRzID0gbWV0YS5kYXRhIHx8IFtdO1xuXHRcdHZhciBpLCBpbGVuLCBtb2RlbCwgY29udHJvbFBvaW50cztcblxuXHRcdGZ1bmN0aW9uIGNhcENvbnRyb2xQb2ludChwdCwgbWluLCBtYXgpIHtcblx0XHRcdHJldHVybiBNYXRoLm1heChNYXRoLm1pbihwdCwgbWF4KSwgbWluKTtcblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gcG9pbnRzLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0bW9kZWwgPSBwb2ludHNbaV0uX21vZGVsO1xuXHRcdFx0Y29udHJvbFBvaW50cyA9IGhlbHBlcnMkMS5zcGxpbmVDdXJ2ZShcblx0XHRcdFx0aGVscGVycyQxLnByZXZpb3VzSXRlbShwb2ludHMsIGksIHRydWUpLl9tb2RlbCxcblx0XHRcdFx0bW9kZWwsXG5cdFx0XHRcdGhlbHBlcnMkMS5uZXh0SXRlbShwb2ludHMsIGksIHRydWUpLl9tb2RlbCxcblx0XHRcdFx0bW9kZWwudGVuc2lvblxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gUHJldmVudCB0aGUgYmV6aWVyIGdvaW5nIG91dHNpZGUgb2YgdGhlIGJvdW5kcyBvZiB0aGUgZ3JhcGhcblx0XHRcdG1vZGVsLmNvbnRyb2xQb2ludFByZXZpb3VzWCA9IGNhcENvbnRyb2xQb2ludChjb250cm9sUG9pbnRzLnByZXZpb3VzLngsIGFyZWEubGVmdCwgYXJlYS5yaWdodCk7XG5cdFx0XHRtb2RlbC5jb250cm9sUG9pbnRQcmV2aW91c1kgPSBjYXBDb250cm9sUG9pbnQoY29udHJvbFBvaW50cy5wcmV2aW91cy55LCBhcmVhLnRvcCwgYXJlYS5ib3R0b20pO1xuXHRcdFx0bW9kZWwuY29udHJvbFBvaW50TmV4dFggPSBjYXBDb250cm9sUG9pbnQoY29udHJvbFBvaW50cy5uZXh0LngsIGFyZWEubGVmdCwgYXJlYS5yaWdodCk7XG5cdFx0XHRtb2RlbC5jb250cm9sUG9pbnROZXh0WSA9IGNhcENvbnRyb2xQb2ludChjb250cm9sUG9pbnRzLm5leHQueSwgYXJlYS50b3AsIGFyZWEuYm90dG9tKTtcblx0XHR9XG5cdH0sXG5cblx0c2V0SG92ZXJTdHlsZTogZnVuY3Rpb24ocG9pbnQpIHtcblx0XHR2YXIgbW9kZWwgPSBwb2ludC5fbW9kZWw7XG5cdFx0dmFyIG9wdGlvbnMgPSBwb2ludC5fb3B0aW9ucztcblx0XHR2YXIgZ2V0SG92ZXJDb2xvciA9IGhlbHBlcnMkMS5nZXRIb3ZlckNvbG9yO1xuXG5cdFx0cG9pbnQuJHByZXZpb3VzU3R5bGUgPSB7XG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IG1vZGVsLmJhY2tncm91bmRDb2xvcixcblx0XHRcdGJvcmRlckNvbG9yOiBtb2RlbC5ib3JkZXJDb2xvcixcblx0XHRcdGJvcmRlcldpZHRoOiBtb2RlbC5ib3JkZXJXaWR0aCxcblx0XHRcdHJhZGl1czogbW9kZWwucmFkaXVzXG5cdFx0fTtcblxuXHRcdG1vZGVsLmJhY2tncm91bmRDb2xvciA9IHZhbHVlT3JEZWZhdWx0JDYob3B0aW9ucy5ob3ZlckJhY2tncm91bmRDb2xvciwgZ2V0SG92ZXJDb2xvcihvcHRpb25zLmJhY2tncm91bmRDb2xvcikpO1xuXHRcdG1vZGVsLmJvcmRlckNvbG9yID0gdmFsdWVPckRlZmF1bHQkNihvcHRpb25zLmhvdmVyQm9yZGVyQ29sb3IsIGdldEhvdmVyQ29sb3Iob3B0aW9ucy5ib3JkZXJDb2xvcikpO1xuXHRcdG1vZGVsLmJvcmRlcldpZHRoID0gdmFsdWVPckRlZmF1bHQkNihvcHRpb25zLmhvdmVyQm9yZGVyV2lkdGgsIG9wdGlvbnMuYm9yZGVyV2lkdGgpO1xuXHRcdG1vZGVsLnJhZGl1cyA9IHZhbHVlT3JEZWZhdWx0JDYob3B0aW9ucy5ob3ZlclJhZGl1cywgb3B0aW9ucy5yYWRpdXMpO1xuXHR9XG59KTtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdzY2F0dGVyJywge1xuXHRob3Zlcjoge1xuXHRcdG1vZGU6ICdzaW5nbGUnXG5cdH0sXG5cblx0c2NhbGVzOiB7XG5cdFx0eEF4ZXM6IFt7XG5cdFx0XHRpZDogJ3gtYXhpcy0xJywgICAgLy8gbmVlZCBhbiBJRCBzbyBkYXRhc2V0cyBjYW4gcmVmZXJlbmNlIHRoZSBzY2FsZVxuXHRcdFx0dHlwZTogJ2xpbmVhcicsICAgIC8vIHNjYXR0ZXIgc2hvdWxkIG5vdCB1c2UgYSBjYXRlZ29yeSBheGlzXG5cdFx0XHRwb3NpdGlvbjogJ2JvdHRvbSdcblx0XHR9XSxcblx0XHR5QXhlczogW3tcblx0XHRcdGlkOiAneS1heGlzLTEnLFxuXHRcdFx0dHlwZTogJ2xpbmVhcicsXG5cdFx0XHRwb3NpdGlvbjogJ2xlZnQnXG5cdFx0fV1cblx0fSxcblxuXHRzaG93TGluZXM6IGZhbHNlLFxuXG5cdHRvb2x0aXBzOiB7XG5cdFx0Y2FsbGJhY2tzOiB7XG5cdFx0XHR0aXRsZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAnJzsgICAgIC8vIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3Igc2NhdHRlciBzaW5jZSBkYXRhIGFyZSBmb3JtYXR0ZWQgYXMgYSBwb2ludFxuXHRcdFx0fSxcblx0XHRcdGxhYmVsOiBmdW5jdGlvbihpdGVtKSB7XG5cdFx0XHRcdHJldHVybiAnKCcgKyBpdGVtLnhMYWJlbCArICcsICcgKyBpdGVtLnlMYWJlbCArICcpJztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0pO1xuXG4vLyBTY2F0dGVyIGNoYXJ0cyB1c2UgbGluZSBjb250cm9sbGVyc1xudmFyIGNvbnRyb2xsZXJfc2NhdHRlciA9IGNvbnRyb2xsZXJfbGluZTtcblxuLy8gTk9URSBleHBvcnQgYSBtYXAgaW4gd2hpY2ggdGhlIGtleSByZXByZXNlbnRzIHRoZSBjb250cm9sbGVyIHR5cGUsIG5vdFxuLy8gdGhlIGNsYXNzLCBhbmQgc28gbXVzdCBiZSBDYW1lbENhc2UgaW4gb3JkZXIgdG8gYmUgY29ycmVjdGx5IHJldHJpZXZlZFxuLy8gYnkgdGhlIGNvbnRyb2xsZXIgaW4gY29yZS5jb250cm9sbGVyLmpzIChgY29udHJvbGxlcnNbbWV0YS50eXBlXWApLlxuXG52YXIgY29udHJvbGxlcnMgPSB7XG5cdGJhcjogY29udHJvbGxlcl9iYXIsXG5cdGJ1YmJsZTogY29udHJvbGxlcl9idWJibGUsXG5cdGRvdWdobnV0OiBjb250cm9sbGVyX2RvdWdobnV0LFxuXHRob3Jpem9udGFsQmFyOiBjb250cm9sbGVyX2hvcml6b250YWxCYXIsXG5cdGxpbmU6IGNvbnRyb2xsZXJfbGluZSxcblx0cG9sYXJBcmVhOiBjb250cm9sbGVyX3BvbGFyQXJlYSxcblx0cGllOiBjb250cm9sbGVyX3BpZSxcblx0cmFkYXI6IGNvbnRyb2xsZXJfcmFkYXIsXG5cdHNjYXR0ZXI6IGNvbnRyb2xsZXJfc2NhdHRlclxufTtcblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHJlbGF0aXZlIHBvc2l0aW9uIGZvciBhbiBldmVudFxuICogQHBhcmFtIHtFdmVudHxJRXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IHRvIGdldCB0aGUgcG9zaXRpb24gZm9yXG4gKiBAcGFyYW0ge0NoYXJ0fSBjaGFydCAtIFRoZSBjaGFydFxuICogQHJldHVybnMge29iamVjdH0gdGhlIGV2ZW50IHBvc2l0aW9uXG4gKi9cbmZ1bmN0aW9uIGdldFJlbGF0aXZlUG9zaXRpb24oZSwgY2hhcnQpIHtcblx0aWYgKGUubmF0aXZlKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHg6IGUueCxcblx0XHRcdHk6IGUueVxuXHRcdH07XG5cdH1cblxuXHRyZXR1cm4gaGVscGVycyQxLmdldFJlbGF0aXZlUG9zaXRpb24oZSwgY2hhcnQpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byB0cmF2ZXJzZSBhbGwgb2YgdGhlIHZpc2libGUgZWxlbWVudHMgaW4gdGhlIGNoYXJ0XG4gKiBAcGFyYW0ge0NoYXJ0fSBjaGFydCAtIHRoZSBjaGFydFxuICogQHBhcmFtIHtmdW5jdGlvbn0gaGFuZGxlciAtIHRoZSBjYWxsYmFjayB0byBleGVjdXRlIGZvciBlYWNoIHZpc2libGUgaXRlbVxuICovXG5mdW5jdGlvbiBwYXJzZVZpc2libGVJdGVtcyhjaGFydCwgaGFuZGxlcikge1xuXHR2YXIgZGF0YXNldHMgPSBjaGFydC5kYXRhLmRhdGFzZXRzO1xuXHR2YXIgbWV0YSwgaSwgaiwgaWxlbiwgamxlbjtcblxuXHRmb3IgKGkgPSAwLCBpbGVuID0gZGF0YXNldHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0aWYgKCFjaGFydC5pc0RhdGFzZXRWaXNpYmxlKGkpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoaSk7XG5cdFx0Zm9yIChqID0gMCwgamxlbiA9IG1ldGEuZGF0YS5sZW5ndGg7IGogPCBqbGVuOyArK2opIHtcblx0XHRcdHZhciBlbGVtZW50ID0gbWV0YS5kYXRhW2pdO1xuXHRcdFx0aWYgKCFlbGVtZW50Ll92aWV3LnNraXApIHtcblx0XHRcdFx0aGFuZGxlcihlbGVtZW50KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBpdGVtcyB0aGF0IGludGVyc2VjdCB0aGUgZXZlbnQgcG9zaXRpb25cbiAqIEBwYXJhbSB7Q2hhcnRFbGVtZW50W119IGl0ZW1zIC0gZWxlbWVudHMgdG8gZmlsdGVyXG4gKiBAcGFyYW0ge29iamVjdH0gcG9zaXRpb24gLSB0aGUgcG9pbnQgdG8gYmUgbmVhcmVzdCB0b1xuICogQHJldHVybiB7Q2hhcnRFbGVtZW50W119IHRoZSBuZWFyZXN0IGl0ZW1zXG4gKi9cbmZ1bmN0aW9uIGdldEludGVyc2VjdEl0ZW1zKGNoYXJ0LCBwb3NpdGlvbikge1xuXHR2YXIgZWxlbWVudHMgPSBbXTtcblxuXHRwYXJzZVZpc2libGVJdGVtcyhjaGFydCwgZnVuY3Rpb24oZWxlbWVudCkge1xuXHRcdGlmIChlbGVtZW50LmluUmFuZ2UocG9zaXRpb24ueCwgcG9zaXRpb24ueSkpIHtcblx0XHRcdGVsZW1lbnRzLnB1c2goZWxlbWVudCk7XG5cdFx0fVxuXHR9KTtcblxuXHRyZXR1cm4gZWxlbWVudHM7XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgaXRlbXMgbmVhcmVzdCB0byB0aGUgZXZlbnQgcG9zaXRpb24gY29uc2lkZXJpbmcgYWxsIHZpc2libGUgaXRlbXMgaW4gdGVoIGNoYXJ0XG4gKiBAcGFyYW0ge0NoYXJ0fSBjaGFydCAtIHRoZSBjaGFydCB0byBsb29rIGF0IGVsZW1lbnRzIGZyb21cbiAqIEBwYXJhbSB7b2JqZWN0fSBwb3NpdGlvbiAtIHRoZSBwb2ludCB0byBiZSBuZWFyZXN0IHRvXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGludGVyc2VjdCAtIGlmIHRydWUsIG9ubHkgY29uc2lkZXIgaXRlbXMgdGhhdCBpbnRlcnNlY3QgdGhlIHBvc2l0aW9uXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBkaXN0YW5jZU1ldHJpYyAtIGZ1bmN0aW9uIHRvIHByb3ZpZGUgdGhlIGRpc3RhbmNlIGJldHdlZW4gcG9pbnRzXG4gKiBAcmV0dXJuIHtDaGFydEVsZW1lbnRbXX0gdGhlIG5lYXJlc3QgaXRlbXNcbiAqL1xuZnVuY3Rpb24gZ2V0TmVhcmVzdEl0ZW1zKGNoYXJ0LCBwb3NpdGlvbiwgaW50ZXJzZWN0LCBkaXN0YW5jZU1ldHJpYykge1xuXHR2YXIgbWluRGlzdGFuY2UgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG5cdHZhciBuZWFyZXN0SXRlbXMgPSBbXTtcblxuXHRwYXJzZVZpc2libGVJdGVtcyhjaGFydCwgZnVuY3Rpb24oZWxlbWVudCkge1xuXHRcdGlmIChpbnRlcnNlY3QgJiYgIWVsZW1lbnQuaW5SYW5nZShwb3NpdGlvbi54LCBwb3NpdGlvbi55KSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHZhciBjZW50ZXIgPSBlbGVtZW50LmdldENlbnRlclBvaW50KCk7XG5cdFx0dmFyIGRpc3RhbmNlID0gZGlzdGFuY2VNZXRyaWMocG9zaXRpb24sIGNlbnRlcik7XG5cdFx0aWYgKGRpc3RhbmNlIDwgbWluRGlzdGFuY2UpIHtcblx0XHRcdG5lYXJlc3RJdGVtcyA9IFtlbGVtZW50XTtcblx0XHRcdG1pbkRpc3RhbmNlID0gZGlzdGFuY2U7XG5cdFx0fSBlbHNlIGlmIChkaXN0YW5jZSA9PT0gbWluRGlzdGFuY2UpIHtcblx0XHRcdC8vIENhbiBoYXZlIG11bHRpcGxlIGl0ZW1zIGF0IHRoZSBzYW1lIGRpc3RhbmNlIGluIHdoaWNoIGNhc2Ugd2Ugc29ydCBieSBzaXplXG5cdFx0XHRuZWFyZXN0SXRlbXMucHVzaChlbGVtZW50KTtcblx0XHR9XG5cdH0pO1xuXG5cdHJldHVybiBuZWFyZXN0SXRlbXM7XG59XG5cbi8qKlxuICogR2V0IGEgZGlzdGFuY2UgbWV0cmljIGZ1bmN0aW9uIGZvciB0d28gcG9pbnRzIGJhc2VkIG9uIHRoZVxuICogYXhpcyBtb2RlIHNldHRpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSBheGlzIC0gdGhlIGF4aXMgbW9kZS4geHx5fHh5XG4gKi9cbmZ1bmN0aW9uIGdldERpc3RhbmNlTWV0cmljRm9yQXhpcyhheGlzKSB7XG5cdHZhciB1c2VYID0gYXhpcy5pbmRleE9mKCd4JykgIT09IC0xO1xuXHR2YXIgdXNlWSA9IGF4aXMuaW5kZXhPZigneScpICE9PSAtMTtcblxuXHRyZXR1cm4gZnVuY3Rpb24ocHQxLCBwdDIpIHtcblx0XHR2YXIgZGVsdGFYID0gdXNlWCA/IE1hdGguYWJzKHB0MS54IC0gcHQyLngpIDogMDtcblx0XHR2YXIgZGVsdGFZID0gdXNlWSA/IE1hdGguYWJzKHB0MS55IC0gcHQyLnkpIDogMDtcblx0XHRyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KGRlbHRhWCwgMikgKyBNYXRoLnBvdyhkZWx0YVksIDIpKTtcblx0fTtcbn1cblxuZnVuY3Rpb24gaW5kZXhNb2RlKGNoYXJ0LCBlLCBvcHRpb25zKSB7XG5cdHZhciBwb3NpdGlvbiA9IGdldFJlbGF0aXZlUG9zaXRpb24oZSwgY2hhcnQpO1xuXHQvLyBEZWZhdWx0IGF4aXMgZm9yIGluZGV4IG1vZGUgaXMgJ3gnIHRvIG1hdGNoIG9sZCBiZWhhdmlvdXJcblx0b3B0aW9ucy5heGlzID0gb3B0aW9ucy5heGlzIHx8ICd4Jztcblx0dmFyIGRpc3RhbmNlTWV0cmljID0gZ2V0RGlzdGFuY2VNZXRyaWNGb3JBeGlzKG9wdGlvbnMuYXhpcyk7XG5cdHZhciBpdGVtcyA9IG9wdGlvbnMuaW50ZXJzZWN0ID8gZ2V0SW50ZXJzZWN0SXRlbXMoY2hhcnQsIHBvc2l0aW9uKSA6IGdldE5lYXJlc3RJdGVtcyhjaGFydCwgcG9zaXRpb24sIGZhbHNlLCBkaXN0YW5jZU1ldHJpYyk7XG5cdHZhciBlbGVtZW50cyA9IFtdO1xuXG5cdGlmICghaXRlbXMubGVuZ3RoKSB7XG5cdFx0cmV0dXJuIFtdO1xuXHR9XG5cblx0Y2hhcnQuZGF0YS5kYXRhc2V0cy5mb3JFYWNoKGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkge1xuXHRcdGlmIChjaGFydC5pc0RhdGFzZXRWaXNpYmxlKGRhdGFzZXRJbmRleCkpIHtcblx0XHRcdHZhciBtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoZGF0YXNldEluZGV4KTtcblx0XHRcdHZhciBlbGVtZW50ID0gbWV0YS5kYXRhW2l0ZW1zWzBdLl9pbmRleF07XG5cblx0XHRcdC8vIGRvbid0IGNvdW50IGl0ZW1zIHRoYXQgYXJlIHNraXBwZWQgKG51bGwgZGF0YSlcblx0XHRcdGlmIChlbGVtZW50ICYmICFlbGVtZW50Ll92aWV3LnNraXApIHtcblx0XHRcdFx0ZWxlbWVudHMucHVzaChlbGVtZW50KTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXG5cdHJldHVybiBlbGVtZW50cztcbn1cblxuLyoqXG4gKiBAaW50ZXJmYWNlIElJbnRlcmFjdGlvbk9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJZiB0cnVlLCBvbmx5IGNvbnNpZGVyIGl0ZW1zIHRoYXQgaW50ZXJzZWN0IHRoZSBwb2ludFxuICogQG5hbWUgSUludGVyZmFjZU9wdGlvbnMjYm9vbGVhblxuICogQHR5cGUgQm9vbGVhblxuICovXG5cbi8qKlxuICogQ29udGFpbnMgaW50ZXJhY3Rpb24gcmVsYXRlZCBmdW5jdGlvbnNcbiAqIEBuYW1lc3BhY2UgQ2hhcnQuSW50ZXJhY3Rpb25cbiAqL1xudmFyIGNvcmVfaW50ZXJhY3Rpb24gPSB7XG5cdC8vIEhlbHBlciBmdW5jdGlvbiBmb3IgZGlmZmVyZW50IG1vZGVzXG5cdG1vZGVzOiB7XG5cdFx0c2luZ2xlOiBmdW5jdGlvbihjaGFydCwgZSkge1xuXHRcdFx0dmFyIHBvc2l0aW9uID0gZ2V0UmVsYXRpdmVQb3NpdGlvbihlLCBjaGFydCk7XG5cdFx0XHR2YXIgZWxlbWVudHMgPSBbXTtcblxuXHRcdFx0cGFyc2VWaXNpYmxlSXRlbXMoY2hhcnQsIGZ1bmN0aW9uKGVsZW1lbnQpIHtcblx0XHRcdFx0aWYgKGVsZW1lbnQuaW5SYW5nZShwb3NpdGlvbi54LCBwb3NpdGlvbi55KSkge1xuXHRcdFx0XHRcdGVsZW1lbnRzLnB1c2goZWxlbWVudCk7XG5cdFx0XHRcdFx0cmV0dXJuIGVsZW1lbnRzO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuIGVsZW1lbnRzLnNsaWNlKDAsIDEpO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBAZnVuY3Rpb24gQ2hhcnQuSW50ZXJhY3Rpb24ubW9kZXMubGFiZWxcblx0XHQgKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuNC4wXG5cdFx0ICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuXHRcdCAqIEBwcml2YXRlXG5cdFx0ICovXG5cdFx0bGFiZWw6IGluZGV4TW9kZSxcblxuXHRcdC8qKlxuXHRcdCAqIFJldHVybnMgaXRlbXMgYXQgdGhlIHNhbWUgaW5kZXguIElmIHRoZSBvcHRpb25zLmludGVyc2VjdCBwYXJhbWV0ZXIgaXMgdHJ1ZSwgd2Ugb25seSByZXR1cm4gaXRlbXMgaWYgd2UgaW50ZXJzZWN0IHNvbWV0aGluZ1xuXHRcdCAqIElmIHRoZSBvcHRpb25zLmludGVyc2VjdCBtb2RlIGlzIGZhbHNlLCB3ZSBmaW5kIHRoZSBuZWFyZXN0IGl0ZW0gYW5kIHJldHVybiB0aGUgaXRlbXMgYXQgdGhlIHNhbWUgaW5kZXggYXMgdGhhdCBpdGVtXG5cdFx0ICogQGZ1bmN0aW9uIENoYXJ0LkludGVyYWN0aW9uLm1vZGVzLmluZGV4XG5cdFx0ICogQHNpbmNlIHYyLjQuMFxuXHRcdCAqIEBwYXJhbSB7Q2hhcnR9IGNoYXJ0IC0gdGhlIGNoYXJ0IHdlIGFyZSByZXR1cm5pbmcgaXRlbXMgZnJvbVxuXHRcdCAqIEBwYXJhbSB7RXZlbnR9IGUgLSB0aGUgZXZlbnQgd2UgYXJlIGZpbmQgdGhpbmdzIGF0XG5cdFx0ICogQHBhcmFtIHtJSW50ZXJhY3Rpb25PcHRpb25zfSBvcHRpb25zIC0gb3B0aW9ucyB0byB1c2UgZHVyaW5nIGludGVyYWN0aW9uXG5cdFx0ICogQHJldHVybiB7Q2hhcnQuRWxlbWVudFtdfSBBcnJheSBvZiBlbGVtZW50cyB0aGF0IGFyZSB1bmRlciB0aGUgcG9pbnQuIElmIG5vbmUgYXJlIGZvdW5kLCBhbiBlbXB0eSBhcnJheSBpcyByZXR1cm5lZFxuXHRcdCAqL1xuXHRcdGluZGV4OiBpbmRleE1vZGUsXG5cblx0XHQvKipcblx0XHQgKiBSZXR1cm5zIGl0ZW1zIGluIHRoZSBzYW1lIGRhdGFzZXQuIElmIHRoZSBvcHRpb25zLmludGVyc2VjdCBwYXJhbWV0ZXIgaXMgdHJ1ZSwgd2Ugb25seSByZXR1cm4gaXRlbXMgaWYgd2UgaW50ZXJzZWN0IHNvbWV0aGluZ1xuXHRcdCAqIElmIHRoZSBvcHRpb25zLmludGVyc2VjdCBpcyBmYWxzZSwgd2UgZmluZCB0aGUgbmVhcmVzdCBpdGVtIGFuZCByZXR1cm4gdGhlIGl0ZW1zIGluIHRoYXQgZGF0YXNldFxuXHRcdCAqIEBmdW5jdGlvbiBDaGFydC5JbnRlcmFjdGlvbi5tb2Rlcy5kYXRhc2V0XG5cdFx0ICogQHBhcmFtIHtDaGFydH0gY2hhcnQgLSB0aGUgY2hhcnQgd2UgYXJlIHJldHVybmluZyBpdGVtcyBmcm9tXG5cdFx0ICogQHBhcmFtIHtFdmVudH0gZSAtIHRoZSBldmVudCB3ZSBhcmUgZmluZCB0aGluZ3MgYXRcblx0XHQgKiBAcGFyYW0ge0lJbnRlcmFjdGlvbk9wdGlvbnN9IG9wdGlvbnMgLSBvcHRpb25zIHRvIHVzZSBkdXJpbmcgaW50ZXJhY3Rpb25cblx0XHQgKiBAcmV0dXJuIHtDaGFydC5FbGVtZW50W119IEFycmF5IG9mIGVsZW1lbnRzIHRoYXQgYXJlIHVuZGVyIHRoZSBwb2ludC4gSWYgbm9uZSBhcmUgZm91bmQsIGFuIGVtcHR5IGFycmF5IGlzIHJldHVybmVkXG5cdFx0ICovXG5cdFx0ZGF0YXNldDogZnVuY3Rpb24oY2hhcnQsIGUsIG9wdGlvbnMpIHtcblx0XHRcdHZhciBwb3NpdGlvbiA9IGdldFJlbGF0aXZlUG9zaXRpb24oZSwgY2hhcnQpO1xuXHRcdFx0b3B0aW9ucy5heGlzID0gb3B0aW9ucy5heGlzIHx8ICd4eSc7XG5cdFx0XHR2YXIgZGlzdGFuY2VNZXRyaWMgPSBnZXREaXN0YW5jZU1ldHJpY0ZvckF4aXMob3B0aW9ucy5heGlzKTtcblx0XHRcdHZhciBpdGVtcyA9IG9wdGlvbnMuaW50ZXJzZWN0ID8gZ2V0SW50ZXJzZWN0SXRlbXMoY2hhcnQsIHBvc2l0aW9uKSA6IGdldE5lYXJlc3RJdGVtcyhjaGFydCwgcG9zaXRpb24sIGZhbHNlLCBkaXN0YW5jZU1ldHJpYyk7XG5cblx0XHRcdGlmIChpdGVtcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGl0ZW1zID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoaXRlbXNbMF0uX2RhdGFzZXRJbmRleCkuZGF0YTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGl0ZW1zO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBAZnVuY3Rpb24gQ2hhcnQuSW50ZXJhY3Rpb24ubW9kZXMueC1heGlzXG5cdFx0ICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAyLjQuMC4gVXNlIGluZGV4IG1vZGUgYW5kIGludGVyc2VjdCA9PSB0cnVlXG5cdFx0ICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuXHRcdCAqIEBwcml2YXRlXG5cdFx0ICovXG5cdFx0J3gtYXhpcyc6IGZ1bmN0aW9uKGNoYXJ0LCBlKSB7XG5cdFx0XHRyZXR1cm4gaW5kZXhNb2RlKGNoYXJ0LCBlLCB7aW50ZXJzZWN0OiBmYWxzZX0pO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBQb2ludCBtb2RlIHJldHVybnMgYWxsIGVsZW1lbnRzIHRoYXQgaGl0IHRlc3QgYmFzZWQgb24gdGhlIGV2ZW50IHBvc2l0aW9uXG5cdFx0ICogb2YgdGhlIGV2ZW50XG5cdFx0ICogQGZ1bmN0aW9uIENoYXJ0LkludGVyYWN0aW9uLm1vZGVzLmludGVyc2VjdFxuXHRcdCAqIEBwYXJhbSB7Q2hhcnR9IGNoYXJ0IC0gdGhlIGNoYXJ0IHdlIGFyZSByZXR1cm5pbmcgaXRlbXMgZnJvbVxuXHRcdCAqIEBwYXJhbSB7RXZlbnR9IGUgLSB0aGUgZXZlbnQgd2UgYXJlIGZpbmQgdGhpbmdzIGF0XG5cdFx0ICogQHJldHVybiB7Q2hhcnQuRWxlbWVudFtdfSBBcnJheSBvZiBlbGVtZW50cyB0aGF0IGFyZSB1bmRlciB0aGUgcG9pbnQuIElmIG5vbmUgYXJlIGZvdW5kLCBhbiBlbXB0eSBhcnJheSBpcyByZXR1cm5lZFxuXHRcdCAqL1xuXHRcdHBvaW50OiBmdW5jdGlvbihjaGFydCwgZSkge1xuXHRcdFx0dmFyIHBvc2l0aW9uID0gZ2V0UmVsYXRpdmVQb3NpdGlvbihlLCBjaGFydCk7XG5cdFx0XHRyZXR1cm4gZ2V0SW50ZXJzZWN0SXRlbXMoY2hhcnQsIHBvc2l0aW9uKTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogbmVhcmVzdCBtb2RlIHJldHVybnMgdGhlIGVsZW1lbnQgY2xvc2VzdCB0byB0aGUgcG9pbnRcblx0XHQgKiBAZnVuY3Rpb24gQ2hhcnQuSW50ZXJhY3Rpb24ubW9kZXMuaW50ZXJzZWN0XG5cdFx0ICogQHBhcmFtIHtDaGFydH0gY2hhcnQgLSB0aGUgY2hhcnQgd2UgYXJlIHJldHVybmluZyBpdGVtcyBmcm9tXG5cdFx0ICogQHBhcmFtIHtFdmVudH0gZSAtIHRoZSBldmVudCB3ZSBhcmUgZmluZCB0aGluZ3MgYXRcblx0XHQgKiBAcGFyYW0ge0lJbnRlcmFjdGlvbk9wdGlvbnN9IG9wdGlvbnMgLSBvcHRpb25zIHRvIHVzZVxuXHRcdCAqIEByZXR1cm4ge0NoYXJ0LkVsZW1lbnRbXX0gQXJyYXkgb2YgZWxlbWVudHMgdGhhdCBhcmUgdW5kZXIgdGhlIHBvaW50LiBJZiBub25lIGFyZSBmb3VuZCwgYW4gZW1wdHkgYXJyYXkgaXMgcmV0dXJuZWRcblx0XHQgKi9cblx0XHRuZWFyZXN0OiBmdW5jdGlvbihjaGFydCwgZSwgb3B0aW9ucykge1xuXHRcdFx0dmFyIHBvc2l0aW9uID0gZ2V0UmVsYXRpdmVQb3NpdGlvbihlLCBjaGFydCk7XG5cdFx0XHRvcHRpb25zLmF4aXMgPSBvcHRpb25zLmF4aXMgfHwgJ3h5Jztcblx0XHRcdHZhciBkaXN0YW5jZU1ldHJpYyA9IGdldERpc3RhbmNlTWV0cmljRm9yQXhpcyhvcHRpb25zLmF4aXMpO1xuXHRcdFx0cmV0dXJuIGdldE5lYXJlc3RJdGVtcyhjaGFydCwgcG9zaXRpb24sIG9wdGlvbnMuaW50ZXJzZWN0LCBkaXN0YW5jZU1ldHJpYyk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIHggbW9kZSByZXR1cm5zIHRoZSBlbGVtZW50cyB0aGF0IGhpdC10ZXN0IGF0IHRoZSBjdXJyZW50IHggY29vcmRpbmF0ZVxuXHRcdCAqIEBmdW5jdGlvbiBDaGFydC5JbnRlcmFjdGlvbi5tb2Rlcy54XG5cdFx0ICogQHBhcmFtIHtDaGFydH0gY2hhcnQgLSB0aGUgY2hhcnQgd2UgYXJlIHJldHVybmluZyBpdGVtcyBmcm9tXG5cdFx0ICogQHBhcmFtIHtFdmVudH0gZSAtIHRoZSBldmVudCB3ZSBhcmUgZmluZCB0aGluZ3MgYXRcblx0XHQgKiBAcGFyYW0ge0lJbnRlcmFjdGlvbk9wdGlvbnN9IG9wdGlvbnMgLSBvcHRpb25zIHRvIHVzZVxuXHRcdCAqIEByZXR1cm4ge0NoYXJ0LkVsZW1lbnRbXX0gQXJyYXkgb2YgZWxlbWVudHMgdGhhdCBhcmUgdW5kZXIgdGhlIHBvaW50LiBJZiBub25lIGFyZSBmb3VuZCwgYW4gZW1wdHkgYXJyYXkgaXMgcmV0dXJuZWRcblx0XHQgKi9cblx0XHR4OiBmdW5jdGlvbihjaGFydCwgZSwgb3B0aW9ucykge1xuXHRcdFx0dmFyIHBvc2l0aW9uID0gZ2V0UmVsYXRpdmVQb3NpdGlvbihlLCBjaGFydCk7XG5cdFx0XHR2YXIgaXRlbXMgPSBbXTtcblx0XHRcdHZhciBpbnRlcnNlY3RzSXRlbSA9IGZhbHNlO1xuXG5cdFx0XHRwYXJzZVZpc2libGVJdGVtcyhjaGFydCwgZnVuY3Rpb24oZWxlbWVudCkge1xuXHRcdFx0XHRpZiAoZWxlbWVudC5pblhSYW5nZShwb3NpdGlvbi54KSkge1xuXHRcdFx0XHRcdGl0ZW1zLnB1c2goZWxlbWVudCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoZWxlbWVudC5pblJhbmdlKHBvc2l0aW9uLngsIHBvc2l0aW9uLnkpKSB7XG5cdFx0XHRcdFx0aW50ZXJzZWN0c0l0ZW0gPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gSWYgd2Ugd2FudCB0byB0cmlnZ2VyIG9uIGFuIGludGVyc2VjdCBhbmQgd2UgZG9uJ3QgaGF2ZSBhbnkgaXRlbXNcblx0XHRcdC8vIHRoYXQgaW50ZXJzZWN0IHRoZSBwb3NpdGlvbiwgcmV0dXJuIG5vdGhpbmdcblx0XHRcdGlmIChvcHRpb25zLmludGVyc2VjdCAmJiAhaW50ZXJzZWN0c0l0ZW0pIHtcblx0XHRcdFx0aXRlbXMgPSBbXTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBpdGVtcztcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogeSBtb2RlIHJldHVybnMgdGhlIGVsZW1lbnRzIHRoYXQgaGl0LXRlc3QgYXQgdGhlIGN1cnJlbnQgeSBjb29yZGluYXRlXG5cdFx0ICogQGZ1bmN0aW9uIENoYXJ0LkludGVyYWN0aW9uLm1vZGVzLnlcblx0XHQgKiBAcGFyYW0ge0NoYXJ0fSBjaGFydCAtIHRoZSBjaGFydCB3ZSBhcmUgcmV0dXJuaW5nIGl0ZW1zIGZyb21cblx0XHQgKiBAcGFyYW0ge0V2ZW50fSBlIC0gdGhlIGV2ZW50IHdlIGFyZSBmaW5kIHRoaW5ncyBhdFxuXHRcdCAqIEBwYXJhbSB7SUludGVyYWN0aW9uT3B0aW9uc30gb3B0aW9ucyAtIG9wdGlvbnMgdG8gdXNlXG5cdFx0ICogQHJldHVybiB7Q2hhcnQuRWxlbWVudFtdfSBBcnJheSBvZiBlbGVtZW50cyB0aGF0IGFyZSB1bmRlciB0aGUgcG9pbnQuIElmIG5vbmUgYXJlIGZvdW5kLCBhbiBlbXB0eSBhcnJheSBpcyByZXR1cm5lZFxuXHRcdCAqL1xuXHRcdHk6IGZ1bmN0aW9uKGNoYXJ0LCBlLCBvcHRpb25zKSB7XG5cdFx0XHR2YXIgcG9zaXRpb24gPSBnZXRSZWxhdGl2ZVBvc2l0aW9uKGUsIGNoYXJ0KTtcblx0XHRcdHZhciBpdGVtcyA9IFtdO1xuXHRcdFx0dmFyIGludGVyc2VjdHNJdGVtID0gZmFsc2U7XG5cblx0XHRcdHBhcnNlVmlzaWJsZUl0ZW1zKGNoYXJ0LCBmdW5jdGlvbihlbGVtZW50KSB7XG5cdFx0XHRcdGlmIChlbGVtZW50LmluWVJhbmdlKHBvc2l0aW9uLnkpKSB7XG5cdFx0XHRcdFx0aXRlbXMucHVzaChlbGVtZW50KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChlbGVtZW50LmluUmFuZ2UocG9zaXRpb24ueCwgcG9zaXRpb24ueSkpIHtcblx0XHRcdFx0XHRpbnRlcnNlY3RzSXRlbSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBJZiB3ZSB3YW50IHRvIHRyaWdnZXIgb24gYW4gaW50ZXJzZWN0IGFuZCB3ZSBkb24ndCBoYXZlIGFueSBpdGVtc1xuXHRcdFx0Ly8gdGhhdCBpbnRlcnNlY3QgdGhlIHBvc2l0aW9uLCByZXR1cm4gbm90aGluZ1xuXHRcdFx0aWYgKG9wdGlvbnMuaW50ZXJzZWN0ICYmICFpbnRlcnNlY3RzSXRlbSkge1xuXHRcdFx0XHRpdGVtcyA9IFtdO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGl0ZW1zO1xuXHRcdH1cblx0fVxufTtcblxuZnVuY3Rpb24gZmlsdGVyQnlQb3NpdGlvbihhcnJheSwgcG9zaXRpb24pIHtcblx0cmV0dXJuIGhlbHBlcnMkMS53aGVyZShhcnJheSwgZnVuY3Rpb24odikge1xuXHRcdHJldHVybiB2LnBvc2l0aW9uID09PSBwb3NpdGlvbjtcblx0fSk7XG59XG5cbmZ1bmN0aW9uIHNvcnRCeVdlaWdodChhcnJheSwgcmV2ZXJzZSkge1xuXHRhcnJheS5mb3JFYWNoKGZ1bmN0aW9uKHYsIGkpIHtcblx0XHR2Ll90bXBJbmRleF8gPSBpO1xuXHRcdHJldHVybiB2O1xuXHR9KTtcblx0YXJyYXkuc29ydChmdW5jdGlvbihhLCBiKSB7XG5cdFx0dmFyIHYwID0gcmV2ZXJzZSA/IGIgOiBhO1xuXHRcdHZhciB2MSA9IHJldmVyc2UgPyBhIDogYjtcblx0XHRyZXR1cm4gdjAud2VpZ2h0ID09PSB2MS53ZWlnaHQgP1xuXHRcdFx0djAuX3RtcEluZGV4XyAtIHYxLl90bXBJbmRleF8gOlxuXHRcdFx0djAud2VpZ2h0IC0gdjEud2VpZ2h0O1xuXHR9KTtcblx0YXJyYXkuZm9yRWFjaChmdW5jdGlvbih2KSB7XG5cdFx0ZGVsZXRlIHYuX3RtcEluZGV4Xztcblx0fSk7XG59XG5cbmZ1bmN0aW9uIGZpbmRNYXhQYWRkaW5nKGJveGVzKSB7XG5cdHZhciB0b3AgPSAwO1xuXHR2YXIgbGVmdCA9IDA7XG5cdHZhciBib3R0b20gPSAwO1xuXHR2YXIgcmlnaHQgPSAwO1xuXHRoZWxwZXJzJDEuZWFjaChib3hlcywgZnVuY3Rpb24oYm94KSB7XG5cdFx0aWYgKGJveC5nZXRQYWRkaW5nKSB7XG5cdFx0XHR2YXIgYm94UGFkZGluZyA9IGJveC5nZXRQYWRkaW5nKCk7XG5cdFx0XHR0b3AgPSBNYXRoLm1heCh0b3AsIGJveFBhZGRpbmcudG9wKTtcblx0XHRcdGxlZnQgPSBNYXRoLm1heChsZWZ0LCBib3hQYWRkaW5nLmxlZnQpO1xuXHRcdFx0Ym90dG9tID0gTWF0aC5tYXgoYm90dG9tLCBib3hQYWRkaW5nLmJvdHRvbSk7XG5cdFx0XHRyaWdodCA9IE1hdGgubWF4KHJpZ2h0LCBib3hQYWRkaW5nLnJpZ2h0KTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4ge1xuXHRcdHRvcDogdG9wLFxuXHRcdGxlZnQ6IGxlZnQsXG5cdFx0Ym90dG9tOiBib3R0b20sXG5cdFx0cmlnaHQ6IHJpZ2h0XG5cdH07XG59XG5cbmZ1bmN0aW9uIGFkZFNpemVCeVBvc2l0aW9uKGJveGVzLCBzaXplKSB7XG5cdGhlbHBlcnMkMS5lYWNoKGJveGVzLCBmdW5jdGlvbihib3gpIHtcblx0XHRzaXplW2JveC5wb3NpdGlvbl0gKz0gYm94LmlzSG9yaXpvbnRhbCgpID8gYm94LmhlaWdodCA6IGJveC53aWR0aDtcblx0fSk7XG59XG5cbmNvcmVfZGVmYXVsdHMuX3NldCgnZ2xvYmFsJywge1xuXHRsYXlvdXQ6IHtcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHR0b3A6IDAsXG5cdFx0XHRyaWdodDogMCxcblx0XHRcdGJvdHRvbTogMCxcblx0XHRcdGxlZnQ6IDBcblx0XHR9XG5cdH1cbn0pO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgSUxheW91dEl0ZW1cbiAqIEBwcm9wIHtzdHJpbmd9IHBvc2l0aW9uIC0gVGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIGluIHRoZSBjaGFydCBsYXlvdXQuIFBvc3NpYmxlIHZhbHVlcyBhcmVcbiAqICdsZWZ0JywgJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCBhbmQgJ2NoYXJ0QXJlYSdcbiAqIEBwcm9wIHtudW1iZXJ9IHdlaWdodCAtIFRoZSB3ZWlnaHQgdXNlZCB0byBzb3J0IHRoZSBpdGVtLiBIaWdoZXIgd2VpZ2h0cyBhcmUgZnVydGhlciBhd2F5IGZyb20gdGhlIGNoYXJ0IGFyZWFcbiAqIEBwcm9wIHtib29sZWFufSBmdWxsV2lkdGggLSBpZiB0cnVlLCBhbmQgdGhlIGl0ZW0gaXMgaG9yaXpvbnRhbCwgdGhlbiBwdXNoIHZlcnRpY2FsIGJveGVzIGRvd25cbiAqIEBwcm9wIHtmdW5jdGlvbn0gaXNIb3Jpem9udGFsIC0gcmV0dXJucyB0cnVlIGlmIHRoZSBsYXlvdXQgaXRlbSBpcyBob3Jpem9udGFsIChpZS4gdG9wIG9yIGJvdHRvbSlcbiAqIEBwcm9wIHtmdW5jdGlvbn0gdXBkYXRlIC0gVGFrZXMgdHdvIHBhcmFtZXRlcnM6IHdpZHRoIGFuZCBoZWlnaHQuIFJldHVybnMgc2l6ZSBvZiBpdGVtXG4gKiBAcHJvcCB7ZnVuY3Rpb259IGdldFBhZGRpbmcgLSAgUmV0dXJucyBhbiBvYmplY3Qgd2l0aCBwYWRkaW5nIG9uIHRoZSBlZGdlc1xuICogQHByb3Age251bWJlcn0gd2lkdGggLSBXaWR0aCBvZiBpdGVtLiBNdXN0IGJlIHZhbGlkIGFmdGVyIHVwZGF0ZSgpXG4gKiBAcHJvcCB7bnVtYmVyfSBoZWlnaHQgLSBIZWlnaHQgb2YgaXRlbS4gTXVzdCBiZSB2YWxpZCBhZnRlciB1cGRhdGUoKVxuICogQHByb3Age251bWJlcn0gbGVmdCAtIExlZnQgZWRnZSBvZiB0aGUgaXRlbS4gU2V0IGJ5IGxheW91dCBzeXN0ZW0gYW5kIGNhbm5vdCBiZSB1c2VkIGluIHVwZGF0ZVxuICogQHByb3Age251bWJlcn0gdG9wIC0gVG9wIGVkZ2Ugb2YgdGhlIGl0ZW0uIFNldCBieSBsYXlvdXQgc3lzdGVtIGFuZCBjYW5ub3QgYmUgdXNlZCBpbiB1cGRhdGVcbiAqIEBwcm9wIHtudW1iZXJ9IHJpZ2h0IC0gUmlnaHQgZWRnZSBvZiB0aGUgaXRlbS4gU2V0IGJ5IGxheW91dCBzeXN0ZW0gYW5kIGNhbm5vdCBiZSB1c2VkIGluIHVwZGF0ZVxuICogQHByb3Age251bWJlcn0gYm90dG9tIC0gQm90dG9tIGVkZ2Ugb2YgdGhlIGl0ZW0uIFNldCBieSBsYXlvdXQgc3lzdGVtIGFuZCBjYW5ub3QgYmUgdXNlZCBpbiB1cGRhdGVcbiAqL1xuXG4vLyBUaGUgbGF5b3V0IHNlcnZpY2UgaXMgdmVyeSBzZWxmIGV4cGxhbmF0b3J5LiAgSXQncyByZXNwb25zaWJsZSBmb3IgdGhlIGxheW91dCB3aXRoaW4gYSBjaGFydC5cbi8vIFNjYWxlcywgTGVnZW5kcyBhbmQgUGx1Z2lucyBhbGwgcmVseSBvbiB0aGUgbGF5b3V0IHNlcnZpY2UgYW5kIGNhbiBlYXNpbHkgcmVnaXN0ZXIgdG8gYmUgcGxhY2VkIGFueXdoZXJlIHRoZXkgbmVlZFxuLy8gSXQgaXMgdGhpcyBzZXJ2aWNlJ3MgcmVzcG9uc2liaWxpdHkgb2YgY2Fycnlpbmcgb3V0IHRoYXQgbGF5b3V0LlxudmFyIGNvcmVfbGF5b3V0cyA9IHtcblx0ZGVmYXVsdHM6IHt9LFxuXG5cdC8qKlxuXHQgKiBSZWdpc3RlciBhIGJveCB0byBhIGNoYXJ0LlxuXHQgKiBBIGJveCBpcyBzaW1wbHkgYSByZWZlcmVuY2UgdG8gYW4gb2JqZWN0IHRoYXQgcmVxdWlyZXMgbGF5b3V0LiBlZy4gU2NhbGVzLCBMZWdlbmQsIFRpdGxlLlxuXHQgKiBAcGFyYW0ge0NoYXJ0fSBjaGFydCAtIHRoZSBjaGFydCB0byB1c2Vcblx0ICogQHBhcmFtIHtJTGF5b3V0SXRlbX0gaXRlbSAtIHRoZSBpdGVtIHRvIGFkZCB0byBiZSBsYXllZCBvdXRcblx0ICovXG5cdGFkZEJveDogZnVuY3Rpb24oY2hhcnQsIGl0ZW0pIHtcblx0XHRpZiAoIWNoYXJ0LmJveGVzKSB7XG5cdFx0XHRjaGFydC5ib3hlcyA9IFtdO1xuXHRcdH1cblxuXHRcdC8vIGluaXRpYWxpemUgaXRlbSB3aXRoIGRlZmF1bHQgdmFsdWVzXG5cdFx0aXRlbS5mdWxsV2lkdGggPSBpdGVtLmZ1bGxXaWR0aCB8fCBmYWxzZTtcblx0XHRpdGVtLnBvc2l0aW9uID0gaXRlbS5wb3NpdGlvbiB8fCAndG9wJztcblx0XHRpdGVtLndlaWdodCA9IGl0ZW0ud2VpZ2h0IHx8IDA7XG5cblx0XHRjaGFydC5ib3hlcy5wdXNoKGl0ZW0pO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZW1vdmUgYSBsYXlvdXRJdGVtIGZyb20gYSBjaGFydFxuXHQgKiBAcGFyYW0ge0NoYXJ0fSBjaGFydCAtIHRoZSBjaGFydCB0byByZW1vdmUgdGhlIGJveCBmcm9tXG5cdCAqIEBwYXJhbSB7SUxheW91dEl0ZW19IGxheW91dEl0ZW0gLSB0aGUgaXRlbSB0byByZW1vdmUgZnJvbSB0aGUgbGF5b3V0XG5cdCAqL1xuXHRyZW1vdmVCb3g6IGZ1bmN0aW9uKGNoYXJ0LCBsYXlvdXRJdGVtKSB7XG5cdFx0dmFyIGluZGV4ID0gY2hhcnQuYm94ZXMgPyBjaGFydC5ib3hlcy5pbmRleE9mKGxheW91dEl0ZW0pIDogLTE7XG5cdFx0aWYgKGluZGV4ICE9PSAtMSkge1xuXHRcdFx0Y2hhcnQuYm94ZXMuc3BsaWNlKGluZGV4LCAxKTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNldHMgKG9yIHVwZGF0ZXMpIG9wdGlvbnMgb24gdGhlIGdpdmVuIGBpdGVtYC5cblx0ICogQHBhcmFtIHtDaGFydH0gY2hhcnQgLSB0aGUgY2hhcnQgaW4gd2hpY2ggdGhlIGl0ZW0gbGl2ZXMgKG9yIHdpbGwgYmUgYWRkZWQgdG8pXG5cdCAqIEBwYXJhbSB7SUxheW91dEl0ZW19IGl0ZW0gLSB0aGUgaXRlbSB0byBjb25maWd1cmUgd2l0aCB0aGUgZ2l2ZW4gb3B0aW9uc1xuXHQgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIHRoZSBuZXcgaXRlbSBvcHRpb25zLlxuXHQgKi9cblx0Y29uZmlndXJlOiBmdW5jdGlvbihjaGFydCwgaXRlbSwgb3B0aW9ucykge1xuXHRcdHZhciBwcm9wcyA9IFsnZnVsbFdpZHRoJywgJ3Bvc2l0aW9uJywgJ3dlaWdodCddO1xuXHRcdHZhciBpbGVuID0gcHJvcHMubGVuZ3RoO1xuXHRcdHZhciBpID0gMDtcblx0XHR2YXIgcHJvcDtcblxuXHRcdGZvciAoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRwcm9wID0gcHJvcHNbaV07XG5cdFx0XHRpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuXHRcdFx0XHRpdGVtW3Byb3BdID0gb3B0aW9uc1twcm9wXTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIEZpdHMgYm94ZXMgb2YgdGhlIGdpdmVuIGNoYXJ0IGludG8gdGhlIGdpdmVuIHNpemUgYnkgaGF2aW5nIGVhY2ggYm94IG1lYXN1cmUgaXRzZWxmXG5cdCAqIHRoZW4gcnVubmluZyBhIGZpdHRpbmcgYWxnb3JpdGhtXG5cdCAqIEBwYXJhbSB7Q2hhcnR9IGNoYXJ0IC0gdGhlIGNoYXJ0XG5cdCAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIHRoZSB3aWR0aCB0byBmaXQgaW50b1xuXHQgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gdGhlIGhlaWdodCB0byBmaXQgaW50b1xuXHQgKi9cblx0dXBkYXRlOiBmdW5jdGlvbihjaGFydCwgd2lkdGgsIGhlaWdodCkge1xuXHRcdGlmICghY2hhcnQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2YXIgbGF5b3V0T3B0aW9ucyA9IGNoYXJ0Lm9wdGlvbnMubGF5b3V0IHx8IHt9O1xuXHRcdHZhciBwYWRkaW5nID0gaGVscGVycyQxLm9wdGlvbnMudG9QYWRkaW5nKGxheW91dE9wdGlvbnMucGFkZGluZyk7XG5cdFx0dmFyIGxlZnRQYWRkaW5nID0gcGFkZGluZy5sZWZ0O1xuXHRcdHZhciByaWdodFBhZGRpbmcgPSBwYWRkaW5nLnJpZ2h0O1xuXHRcdHZhciB0b3BQYWRkaW5nID0gcGFkZGluZy50b3A7XG5cdFx0dmFyIGJvdHRvbVBhZGRpbmcgPSBwYWRkaW5nLmJvdHRvbTtcblxuXHRcdHZhciBsZWZ0Qm94ZXMgPSBmaWx0ZXJCeVBvc2l0aW9uKGNoYXJ0LmJveGVzLCAnbGVmdCcpO1xuXHRcdHZhciByaWdodEJveGVzID0gZmlsdGVyQnlQb3NpdGlvbihjaGFydC5ib3hlcywgJ3JpZ2h0Jyk7XG5cdFx0dmFyIHRvcEJveGVzID0gZmlsdGVyQnlQb3NpdGlvbihjaGFydC5ib3hlcywgJ3RvcCcpO1xuXHRcdHZhciBib3R0b21Cb3hlcyA9IGZpbHRlckJ5UG9zaXRpb24oY2hhcnQuYm94ZXMsICdib3R0b20nKTtcblx0XHR2YXIgY2hhcnRBcmVhQm94ZXMgPSBmaWx0ZXJCeVBvc2l0aW9uKGNoYXJ0LmJveGVzLCAnY2hhcnRBcmVhJyk7XG5cblx0XHQvLyBTb3J0IGJveGVzIGJ5IHdlaWdodC4gQSBoaWdoZXIgd2VpZ2h0IGlzIGZ1cnRoZXIgYXdheSBmcm9tIHRoZSBjaGFydCBhcmVhXG5cdFx0c29ydEJ5V2VpZ2h0KGxlZnRCb3hlcywgdHJ1ZSk7XG5cdFx0c29ydEJ5V2VpZ2h0KHJpZ2h0Qm94ZXMsIGZhbHNlKTtcblx0XHRzb3J0QnlXZWlnaHQodG9wQm94ZXMsIHRydWUpO1xuXHRcdHNvcnRCeVdlaWdodChib3R0b21Cb3hlcywgZmFsc2UpO1xuXG5cdFx0dmFyIHZlcnRpY2FsQm94ZXMgPSBsZWZ0Qm94ZXMuY29uY2F0KHJpZ2h0Qm94ZXMpO1xuXHRcdHZhciBob3Jpem9udGFsQm94ZXMgPSB0b3BCb3hlcy5jb25jYXQoYm90dG9tQm94ZXMpO1xuXHRcdHZhciBvdXRlckJveGVzID0gdmVydGljYWxCb3hlcy5jb25jYXQoaG9yaXpvbnRhbEJveGVzKTtcblxuXHRcdC8vIEVzc2VudGlhbGx5IHdlIG5vdyBoYXZlIGFueSBudW1iZXIgb2YgYm94ZXMgb24gZWFjaCBvZiB0aGUgNCBzaWRlcy5cblx0XHQvLyBPdXIgY2FudmFzIGxvb2tzIGxpa2UgdGhlIGZvbGxvd2luZy5cblx0XHQvLyBUaGUgYXJlYXMgTDEgYW5kIEwyIGFyZSB0aGUgbGVmdCBheGVzLiBSMSBpcyB0aGUgcmlnaHQgYXhpcywgVDEgaXMgdGhlIHRvcCBheGlzIGFuZFxuXHRcdC8vIEIxIGlzIHRoZSBib3R0b20gYXhpc1xuXHRcdC8vIFRoZXJlIGFyZSBhbHNvIDQgcXVhZHJhbnQtbGlrZSBsb2NhdGlvbnMgKGxlZnQgdG8gcmlnaHQgaW5zdGVhZCBvZiBjbG9ja3dpc2UpIHJlc2VydmVkIGZvciBjaGFydCBvdmVybGF5c1xuXHRcdC8vIFRoZXNlIGxvY2F0aW9ucyBhcmUgc2luZ2xlLWJveCBsb2NhdGlvbnMgb25seSwgd2hlbiB0cnlpbmcgdG8gcmVnaXN0ZXIgYSBjaGFydEFyZWEgbG9jYXRpb24gdGhhdCBpcyBhbHJlYWR5IHRha2VuLFxuXHRcdC8vIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLlxuXHRcdC8vXG5cdFx0Ly8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdFx0Ly8gfCAgICAgICAgICAgICAgICAgIFQxIChGdWxsIFdpZHRoKSAgICAgICAgICAgICAgICAgICB8XG5cdFx0Ly8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdFx0Ly8gfCAgICB8ICAgIHwgICAgICAgICAgICAgICAgIFQyICAgICAgICAgICAgICAgICAgfCAgICB8XG5cdFx0Ly8gfCAgICB8LS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS18XG5cdFx0Ly8gfCAgICB8ICAgIHwgQzEgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQzIgfCAgICB8XG5cdFx0Ly8gfCAgICB8ICAgIHwtLS0tfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwtLS0tfCAgICB8XG5cdFx0Ly8gfCAgICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICB8XG5cdFx0Ly8gfCBMMSB8IEwyIHwgICAgICAgICAgIENoYXJ0QXJlYSAoQzApICAgICAgICAgICAgfCBSMSB8XG5cdFx0Ly8gfCAgICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICB8XG5cdFx0Ly8gfCAgICB8ICAgIHwtLS0tfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwtLS0tfCAgICB8XG5cdFx0Ly8gfCAgICB8ICAgIHwgQzMgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQzQgfCAgICB8XG5cdFx0Ly8gfCAgICB8LS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS18XG5cdFx0Ly8gfCAgICB8ICAgIHwgICAgICAgICAgICAgICAgIEIxICAgICAgICAgICAgICAgICAgfCAgICB8XG5cdFx0Ly8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdFx0Ly8gfCAgICAgICAgICAgICAgICAgIEIyIChGdWxsIFdpZHRoKSAgICAgICAgICAgICAgICAgICB8XG5cdFx0Ly8gfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdFx0Ly9cblx0XHQvLyBXaGF0IHdlIGRvIHRvIGZpbmQgdGhlIGJlc3Qgc2l6aW5nLCB3ZSBkbyB0aGUgZm9sbG93aW5nXG5cdFx0Ly8gMS4gRGV0ZXJtaW5lIHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIGNoYXJ0IGFyZWEuXG5cdFx0Ly8gMi4gU3BsaXQgdGhlIHJlbWFpbmluZyB3aWR0aCBlcXVhbGx5IGJldHdlZW4gZWFjaCB2ZXJ0aWNhbCBheGlzXG5cdFx0Ly8gMy4gU3BsaXQgdGhlIHJlbWFpbmluZyBoZWlnaHQgZXF1YWxseSBiZXR3ZWVuIGVhY2ggaG9yaXpvbnRhbCBheGlzXG5cdFx0Ly8gNC4gR2l2ZSBlYWNoIGxheW91dCB0aGUgbWF4aW11bSBzaXplIGl0IGNhbiBiZS4gVGhlIGxheW91dCB3aWxsIHJldHVybiBpdCdzIG1pbmltdW0gc2l6ZVxuXHRcdC8vIDUuIEFkanVzdCB0aGUgc2l6ZXMgb2YgZWFjaCBheGlzIGJhc2VkIG9uIGl0J3MgbWluaW11bSByZXBvcnRlZCBzaXplLlxuXHRcdC8vIDYuIFJlZml0IGVhY2ggYXhpc1xuXHRcdC8vIDcuIFBvc2l0aW9uIGVhY2ggYXhpcyBpbiB0aGUgZmluYWwgbG9jYXRpb25cblx0XHQvLyA4LiBUZWxsIHRoZSBjaGFydCB0aGUgZmluYWwgbG9jYXRpb24gb2YgdGhlIGNoYXJ0IGFyZWFcblx0XHQvLyA5LiBUZWxsIGFueSBheGVzIHRoYXQgb3ZlcmxheSB0aGUgY2hhcnQgYXJlYSB0aGUgcG9zaXRpb25zIG9mIHRoZSBjaGFydCBhcmVhXG5cblx0XHQvLyBTdGVwIDFcblx0XHR2YXIgY2hhcnRXaWR0aCA9IHdpZHRoIC0gbGVmdFBhZGRpbmcgLSByaWdodFBhZGRpbmc7XG5cdFx0dmFyIGNoYXJ0SGVpZ2h0ID0gaGVpZ2h0IC0gdG9wUGFkZGluZyAtIGJvdHRvbVBhZGRpbmc7XG5cdFx0dmFyIGNoYXJ0QXJlYVdpZHRoID0gY2hhcnRXaWR0aCAvIDI7IC8vIG1pbiA1MCVcblxuXHRcdC8vIFN0ZXAgMlxuXHRcdHZhciB2ZXJ0aWNhbEJveFdpZHRoID0gKHdpZHRoIC0gY2hhcnRBcmVhV2lkdGgpIC8gdmVydGljYWxCb3hlcy5sZW5ndGg7XG5cblx0XHQvLyBTdGVwIDNcblx0XHQvLyBUT0RPIHJlLWxpbWl0IGhvcml6b250YWwgYXhpcyBoZWlnaHQgKHRoaXMgbGltaXQgaGFzIGFmZmVjdGVkIG9ubHkgcGFkZGluZyBjYWxjdWxhdGlvbiBzaW5jZSBQUiAxODM3KVxuXHRcdC8vIHZhciBob3Jpem9udGFsQm94SGVpZ2h0ID0gKGhlaWdodCAtIGNoYXJ0QXJlYUhlaWdodCkgLyBob3Jpem9udGFsQm94ZXMubGVuZ3RoO1xuXG5cdFx0Ly8gU3RlcCA0XG5cdFx0dmFyIG1heENoYXJ0QXJlYVdpZHRoID0gY2hhcnRXaWR0aDtcblx0XHR2YXIgbWF4Q2hhcnRBcmVhSGVpZ2h0ID0gY2hhcnRIZWlnaHQ7XG5cdFx0dmFyIG91dGVyQm94U2l6ZXMgPSB7dG9wOiB0b3BQYWRkaW5nLCBsZWZ0OiBsZWZ0UGFkZGluZywgYm90dG9tOiBib3R0b21QYWRkaW5nLCByaWdodDogcmlnaHRQYWRkaW5nfTtcblx0XHR2YXIgbWluQm94U2l6ZXMgPSBbXTtcblx0XHR2YXIgbWF4UGFkZGluZztcblxuXHRcdGZ1bmN0aW9uIGdldE1pbmltdW1Cb3hTaXplKGJveCkge1xuXHRcdFx0dmFyIG1pblNpemU7XG5cdFx0XHR2YXIgaXNIb3Jpem9udGFsID0gYm94LmlzSG9yaXpvbnRhbCgpO1xuXG5cdFx0XHRpZiAoaXNIb3Jpem9udGFsKSB7XG5cdFx0XHRcdG1pblNpemUgPSBib3gudXBkYXRlKGJveC5mdWxsV2lkdGggPyBjaGFydFdpZHRoIDogbWF4Q2hhcnRBcmVhV2lkdGgsIGNoYXJ0SGVpZ2h0IC8gMik7XG5cdFx0XHRcdG1heENoYXJ0QXJlYUhlaWdodCAtPSBtaW5TaXplLmhlaWdodDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG1pblNpemUgPSBib3gudXBkYXRlKHZlcnRpY2FsQm94V2lkdGgsIG1heENoYXJ0QXJlYUhlaWdodCk7XG5cdFx0XHRcdG1heENoYXJ0QXJlYVdpZHRoIC09IG1pblNpemUud2lkdGg7XG5cdFx0XHR9XG5cblx0XHRcdG1pbkJveFNpemVzLnB1c2goe1xuXHRcdFx0XHRob3Jpem9udGFsOiBpc0hvcml6b250YWwsXG5cdFx0XHRcdHdpZHRoOiBtaW5TaXplLndpZHRoLFxuXHRcdFx0XHRib3g6IGJveCxcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGhlbHBlcnMkMS5lYWNoKG91dGVyQm94ZXMsIGdldE1pbmltdW1Cb3hTaXplKTtcblxuXHRcdC8vIElmIGEgaG9yaXpvbnRhbCBib3ggaGFzIHBhZGRpbmcsIHdlIG1vdmUgdGhlIGxlZnQgYm94ZXMgb3ZlciB0byBhdm9pZCB1Z2x5IGNoYXJ0cyAoc2VlIGlzc3VlICMyNDc4KVxuXHRcdG1heFBhZGRpbmcgPSBmaW5kTWF4UGFkZGluZyhvdXRlckJveGVzKTtcblxuXHRcdC8vIEF0IHRoaXMgcG9pbnQsIG1heENoYXJ0QXJlYUhlaWdodCBhbmQgbWF4Q2hhcnRBcmVhV2lkdGggYXJlIHRoZSBzaXplIHRoZSBjaGFydCBhcmVhIGNvdWxkXG5cdFx0Ly8gYmUgaWYgdGhlIGF4ZXMgYXJlIGRyYXduIGF0IHRoZWlyIG1pbmltdW0gc2l6ZXMuXG5cdFx0Ly8gU3RlcHMgNSAmIDZcblxuXHRcdC8vIEZ1bmN0aW9uIHRvIGZpdCBhIGJveFxuXHRcdGZ1bmN0aW9uIGZpdEJveChib3gpIHtcblx0XHRcdHZhciBtaW5Cb3hTaXplID0gaGVscGVycyQxLmZpbmROZXh0V2hlcmUobWluQm94U2l6ZXMsIGZ1bmN0aW9uKG1pbkJveCkge1xuXHRcdFx0XHRyZXR1cm4gbWluQm94LmJveCA9PT0gYm94O1xuXHRcdFx0fSk7XG5cblx0XHRcdGlmIChtaW5Cb3hTaXplKSB7XG5cdFx0XHRcdGlmIChtaW5Cb3hTaXplLmhvcml6b250YWwpIHtcblx0XHRcdFx0XHR2YXIgc2NhbGVNYXJnaW4gPSB7XG5cdFx0XHRcdFx0XHRsZWZ0OiBNYXRoLm1heChvdXRlckJveFNpemVzLmxlZnQsIG1heFBhZGRpbmcubGVmdCksXG5cdFx0XHRcdFx0XHRyaWdodDogTWF0aC5tYXgob3V0ZXJCb3hTaXplcy5yaWdodCwgbWF4UGFkZGluZy5yaWdodCksXG5cdFx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0XHRib3R0b206IDBcblx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0Ly8gRG9uJ3QgdXNlIG1pbiBzaXplIGhlcmUgYmVjYXVzZSBvZiBsYWJlbCByb3RhdGlvbi4gV2hlbiB0aGUgbGFiZWxzIGFyZSByb3RhdGVkLCB0aGVpciByb3RhdGlvbiBoaWdobHkgZGVwZW5kc1xuXHRcdFx0XHRcdC8vIG9uIHRoZSBtYXJnaW4uIFNvbWV0aW1lcyB0aGV5IG5lZWQgdG8gaW5jcmVhc2UgaW4gc2l6ZSBzbGlnaHRseVxuXHRcdFx0XHRcdGJveC51cGRhdGUoYm94LmZ1bGxXaWR0aCA/IGNoYXJ0V2lkdGggOiBtYXhDaGFydEFyZWFXaWR0aCwgY2hhcnRIZWlnaHQgLyAyLCBzY2FsZU1hcmdpbik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ym94LnVwZGF0ZShtaW5Cb3hTaXplLndpZHRoLCBtYXhDaGFydEFyZWFIZWlnaHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gVXBkYXRlLCBhbmQgY2FsY3VsYXRlIHRoZSBsZWZ0IGFuZCByaWdodCBtYXJnaW5zIGZvciB0aGUgaG9yaXpvbnRhbCBib3hlc1xuXHRcdGhlbHBlcnMkMS5lYWNoKHZlcnRpY2FsQm94ZXMsIGZpdEJveCk7XG5cdFx0YWRkU2l6ZUJ5UG9zaXRpb24odmVydGljYWxCb3hlcywgb3V0ZXJCb3hTaXplcyk7XG5cblx0XHQvLyBTZXQgdGhlIExlZnQgYW5kIFJpZ2h0IG1hcmdpbnMgZm9yIHRoZSBob3Jpem9udGFsIGJveGVzXG5cdFx0aGVscGVycyQxLmVhY2goaG9yaXpvbnRhbEJveGVzLCBmaXRCb3gpO1xuXHRcdGFkZFNpemVCeVBvc2l0aW9uKGhvcml6b250YWxCb3hlcywgb3V0ZXJCb3hTaXplcyk7XG5cblx0XHRmdW5jdGlvbiBmaW5hbEZpdFZlcnRpY2FsQm94KGJveCkge1xuXHRcdFx0dmFyIG1pbkJveFNpemUgPSBoZWxwZXJzJDEuZmluZE5leHRXaGVyZShtaW5Cb3hTaXplcywgZnVuY3Rpb24obWluU2l6ZSkge1xuXHRcdFx0XHRyZXR1cm4gbWluU2l6ZS5ib3ggPT09IGJveDtcblx0XHRcdH0pO1xuXG5cdFx0XHR2YXIgc2NhbGVNYXJnaW4gPSB7XG5cdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdHJpZ2h0OiAwLFxuXHRcdFx0XHR0b3A6IG91dGVyQm94U2l6ZXMudG9wLFxuXHRcdFx0XHRib3R0b206IG91dGVyQm94U2l6ZXMuYm90dG9tXG5cdFx0XHR9O1xuXG5cdFx0XHRpZiAobWluQm94U2l6ZSkge1xuXHRcdFx0XHRib3gudXBkYXRlKG1pbkJveFNpemUud2lkdGgsIG1heENoYXJ0QXJlYUhlaWdodCwgc2NhbGVNYXJnaW4pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIExldCB0aGUgbGVmdCBsYXlvdXQga25vdyB0aGUgZmluYWwgbWFyZ2luXG5cdFx0aGVscGVycyQxLmVhY2godmVydGljYWxCb3hlcywgZmluYWxGaXRWZXJ0aWNhbEJveCk7XG5cblx0XHQvLyBSZWNhbGN1bGF0ZSBiZWNhdXNlIHRoZSBzaXplIG9mIGVhY2ggbGF5b3V0IG1pZ2h0IGhhdmUgY2hhbmdlZCBzbGlnaHRseSBkdWUgdG8gdGhlIG1hcmdpbnMgKGxhYmVsIHJvdGF0aW9uIGZvciBpbnN0YW5jZSlcblx0XHRvdXRlckJveFNpemVzID0ge3RvcDogdG9wUGFkZGluZywgbGVmdDogbGVmdFBhZGRpbmcsIGJvdHRvbTogYm90dG9tUGFkZGluZywgcmlnaHQ6IHJpZ2h0UGFkZGluZ307XG5cdFx0YWRkU2l6ZUJ5UG9zaXRpb24ob3V0ZXJCb3hlcywgb3V0ZXJCb3hTaXplcyk7XG5cblx0XHQvLyBXZSBtYXkgYmUgYWRkaW5nIHNvbWUgcGFkZGluZyB0byBhY2NvdW50IGZvciByb3RhdGVkIHggYXhpcyBsYWJlbHNcblx0XHR2YXIgbGVmdFBhZGRpbmdBZGRpdGlvbiA9IE1hdGgubWF4KG1heFBhZGRpbmcubGVmdCAtIG91dGVyQm94U2l6ZXMubGVmdCwgMCk7XG5cdFx0b3V0ZXJCb3hTaXplcy5sZWZ0ICs9IGxlZnRQYWRkaW5nQWRkaXRpb247XG5cdFx0b3V0ZXJCb3hTaXplcy5yaWdodCArPSBNYXRoLm1heChtYXhQYWRkaW5nLnJpZ2h0IC0gb3V0ZXJCb3hTaXplcy5yaWdodCwgMCk7XG5cblx0XHR2YXIgdG9wUGFkZGluZ0FkZGl0aW9uID0gTWF0aC5tYXgobWF4UGFkZGluZy50b3AgLSBvdXRlckJveFNpemVzLnRvcCwgMCk7XG5cdFx0b3V0ZXJCb3hTaXplcy50b3AgKz0gdG9wUGFkZGluZ0FkZGl0aW9uO1xuXHRcdG91dGVyQm94U2l6ZXMuYm90dG9tICs9IE1hdGgubWF4KG1heFBhZGRpbmcuYm90dG9tIC0gb3V0ZXJCb3hTaXplcy5ib3R0b20sIDApO1xuXG5cdFx0Ly8gRmlndXJlIG91dCBpZiBvdXIgY2hhcnQgYXJlYSBjaGFuZ2VkLiBUaGlzIHdvdWxkIG9jY3VyIGlmIHRoZSBkYXRhc2V0IGxheW91dCBsYWJlbCByb3RhdGlvblxuXHRcdC8vIGNoYW5nZWQgZHVlIHRvIHRoZSBhcHBsaWNhdGlvbiBvZiB0aGUgbWFyZ2lucyBpbiBzdGVwIDYuIFNpbmNlIHdlIGNhbiBvbmx5IGdldCBiaWdnZXIsIHRoaXMgaXMgc2FmZSB0byBkb1xuXHRcdC8vIHdpdGhvdXQgY2FsbGluZyBgZml0YCBhZ2FpblxuXHRcdHZhciBuZXdNYXhDaGFydEFyZWFIZWlnaHQgPSBoZWlnaHQgLSBvdXRlckJveFNpemVzLnRvcCAtIG91dGVyQm94U2l6ZXMuYm90dG9tO1xuXHRcdHZhciBuZXdNYXhDaGFydEFyZWFXaWR0aCA9IHdpZHRoIC0gb3V0ZXJCb3hTaXplcy5sZWZ0IC0gb3V0ZXJCb3hTaXplcy5yaWdodDtcblxuXHRcdGlmIChuZXdNYXhDaGFydEFyZWFXaWR0aCAhPT0gbWF4Q2hhcnRBcmVhV2lkdGggfHwgbmV3TWF4Q2hhcnRBcmVhSGVpZ2h0ICE9PSBtYXhDaGFydEFyZWFIZWlnaHQpIHtcblx0XHRcdGhlbHBlcnMkMS5lYWNoKHZlcnRpY2FsQm94ZXMsIGZ1bmN0aW9uKGJveCkge1xuXHRcdFx0XHRib3guaGVpZ2h0ID0gbmV3TWF4Q2hhcnRBcmVhSGVpZ2h0O1xuXHRcdFx0fSk7XG5cblx0XHRcdGhlbHBlcnMkMS5lYWNoKGhvcml6b250YWxCb3hlcywgZnVuY3Rpb24oYm94KSB7XG5cdFx0XHRcdGlmICghYm94LmZ1bGxXaWR0aCkge1xuXHRcdFx0XHRcdGJveC53aWR0aCA9IG5ld01heENoYXJ0QXJlYVdpZHRoO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0bWF4Q2hhcnRBcmVhSGVpZ2h0ID0gbmV3TWF4Q2hhcnRBcmVhSGVpZ2h0O1xuXHRcdFx0bWF4Q2hhcnRBcmVhV2lkdGggPSBuZXdNYXhDaGFydEFyZWFXaWR0aDtcblx0XHR9XG5cblx0XHQvLyBTdGVwIDcgLSBQb3NpdGlvbiB0aGUgYm94ZXNcblx0XHR2YXIgbGVmdCA9IGxlZnRQYWRkaW5nICsgbGVmdFBhZGRpbmdBZGRpdGlvbjtcblx0XHR2YXIgdG9wID0gdG9wUGFkZGluZyArIHRvcFBhZGRpbmdBZGRpdGlvbjtcblxuXHRcdGZ1bmN0aW9uIHBsYWNlQm94KGJveCkge1xuXHRcdFx0aWYgKGJveC5pc0hvcml6b250YWwoKSkge1xuXHRcdFx0XHRib3gubGVmdCA9IGJveC5mdWxsV2lkdGggPyBsZWZ0UGFkZGluZyA6IG91dGVyQm94U2l6ZXMubGVmdDtcblx0XHRcdFx0Ym94LnJpZ2h0ID0gYm94LmZ1bGxXaWR0aCA/IHdpZHRoIC0gcmlnaHRQYWRkaW5nIDogb3V0ZXJCb3hTaXplcy5sZWZ0ICsgbWF4Q2hhcnRBcmVhV2lkdGg7XG5cdFx0XHRcdGJveC50b3AgPSB0b3A7XG5cdFx0XHRcdGJveC5ib3R0b20gPSB0b3AgKyBib3guaGVpZ2h0O1xuXG5cdFx0XHRcdC8vIE1vdmUgdG8gbmV4dCBwb2ludFxuXHRcdFx0XHR0b3AgPSBib3guYm90dG9tO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdGJveC5sZWZ0ID0gbGVmdDtcblx0XHRcdFx0Ym94LnJpZ2h0ID0gbGVmdCArIGJveC53aWR0aDtcblx0XHRcdFx0Ym94LnRvcCA9IG91dGVyQm94U2l6ZXMudG9wO1xuXHRcdFx0XHRib3guYm90dG9tID0gb3V0ZXJCb3hTaXplcy50b3AgKyBtYXhDaGFydEFyZWFIZWlnaHQ7XG5cblx0XHRcdFx0Ly8gTW92ZSB0byBuZXh0IHBvaW50XG5cdFx0XHRcdGxlZnQgPSBib3gucmlnaHQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aGVscGVycyQxLmVhY2gobGVmdEJveGVzLmNvbmNhdCh0b3BCb3hlcyksIHBsYWNlQm94KTtcblxuXHRcdC8vIEFjY291bnQgZm9yIGNoYXJ0IHdpZHRoIGFuZCBoZWlnaHRcblx0XHRsZWZ0ICs9IG1heENoYXJ0QXJlYVdpZHRoO1xuXHRcdHRvcCArPSBtYXhDaGFydEFyZWFIZWlnaHQ7XG5cblx0XHRoZWxwZXJzJDEuZWFjaChyaWdodEJveGVzLCBwbGFjZUJveCk7XG5cdFx0aGVscGVycyQxLmVhY2goYm90dG9tQm94ZXMsIHBsYWNlQm94KTtcblxuXHRcdC8vIFN0ZXAgOFxuXHRcdGNoYXJ0LmNoYXJ0QXJlYSA9IHtcblx0XHRcdGxlZnQ6IG91dGVyQm94U2l6ZXMubGVmdCxcblx0XHRcdHRvcDogb3V0ZXJCb3hTaXplcy50b3AsXG5cdFx0XHRyaWdodDogb3V0ZXJCb3hTaXplcy5sZWZ0ICsgbWF4Q2hhcnRBcmVhV2lkdGgsXG5cdFx0XHRib3R0b206IG91dGVyQm94U2l6ZXMudG9wICsgbWF4Q2hhcnRBcmVhSGVpZ2h0XG5cdFx0fTtcblxuXHRcdC8vIFN0ZXAgOVxuXHRcdGhlbHBlcnMkMS5lYWNoKGNoYXJ0QXJlYUJveGVzLCBmdW5jdGlvbihib3gpIHtcblx0XHRcdGJveC5sZWZ0ID0gY2hhcnQuY2hhcnRBcmVhLmxlZnQ7XG5cdFx0XHRib3gudG9wID0gY2hhcnQuY2hhcnRBcmVhLnRvcDtcblx0XHRcdGJveC5yaWdodCA9IGNoYXJ0LmNoYXJ0QXJlYS5yaWdodDtcblx0XHRcdGJveC5ib3R0b20gPSBjaGFydC5jaGFydEFyZWEuYm90dG9tO1xuXG5cdFx0XHRib3gudXBkYXRlKG1heENoYXJ0QXJlYVdpZHRoLCBtYXhDaGFydEFyZWFIZWlnaHQpO1xuXHRcdH0pO1xuXHR9XG59O1xuXG4vKipcbiAqIFBsYXRmb3JtIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIChtaW5pbWFsKS5cbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvcHVsbC80NTkxI2lzc3VlY29tbWVudC0zMTk1NzU5MzlcbiAqL1xuXG52YXIgcGxhdGZvcm1fYmFzaWMgPSB7XG5cdGFjcXVpcmVDb250ZXh0OiBmdW5jdGlvbihpdGVtKSB7XG5cdFx0aWYgKGl0ZW0gJiYgaXRlbS5jYW52YXMpIHtcblx0XHRcdC8vIFN1cHBvcnQgZm9yIGFueSBvYmplY3QgYXNzb2NpYXRlZCB0byBhIGNhbnZhcyAoaW5jbHVkaW5nIGEgY29udGV4dDJkKVxuXHRcdFx0aXRlbSA9IGl0ZW0uY2FudmFzO1xuXHRcdH1cblxuXHRcdHJldHVybiBpdGVtICYmIGl0ZW0uZ2V0Q29udGV4dCgnMmQnKSB8fCBudWxsO1xuXHR9XG59O1xuXG52YXIgcGxhdGZvcm1fZG9tID0gXCIvKlxcbiAqIERPTSBlbGVtZW50IHJlbmRlcmluZyBkZXRlY3Rpb25cXG4gKiBodHRwczovL2Rhdmlkd2Fsc2gubmFtZS9kZXRlY3Qtbm9kZS1pbnNlcnRpb25cXG4gKi9cXG5Aa2V5ZnJhbWVzIGNoYXJ0anMtcmVuZGVyLWFuaW1hdGlvbiB7XFxuXFx0ZnJvbSB7IG9wYWNpdHk6IDAuOTk7IH1cXG5cXHR0byB7IG9wYWNpdHk6IDE7IH1cXG59XFxuXFxuLmNoYXJ0anMtcmVuZGVyLW1vbml0b3Ige1xcblxcdGFuaW1hdGlvbjogY2hhcnRqcy1yZW5kZXItYW5pbWF0aW9uIDAuMDAxcztcXG59XFxuXFxuLypcXG4gKiBET00gZWxlbWVudCByZXNpemluZyBkZXRlY3Rpb25cXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbWFyY2ovY3NzLWVsZW1lbnQtcXVlcmllc1xcbiAqL1xcbi5jaGFydGpzLXNpemUtbW9uaXRvcixcXG4uY2hhcnRqcy1zaXplLW1vbml0b3ItZXhwYW5kLFxcbi5jaGFydGpzLXNpemUtbW9uaXRvci1zaHJpbmsge1xcblxcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG5cXHRkaXJlY3Rpb246IGx0cjtcXG5cXHRsZWZ0OiAwO1xcblxcdHRvcDogMDtcXG5cXHRyaWdodDogMDtcXG5cXHRib3R0b206IDA7XFxuXFx0b3ZlcmZsb3c6IGhpZGRlbjtcXG5cXHRwb2ludGVyLWV2ZW50czogbm9uZTtcXG5cXHR2aXNpYmlsaXR5OiBoaWRkZW47XFxuXFx0ei1pbmRleDogLTE7XFxufVxcblxcbi5jaGFydGpzLXNpemUtbW9uaXRvci1leHBhbmQgPiBkaXYge1xcblxcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG5cXHR3aWR0aDogMTAwMDAwMHB4O1xcblxcdGhlaWdodDogMTAwMDAwMHB4O1xcblxcdGxlZnQ6IDA7XFxuXFx0dG9wOiAwO1xcbn1cXG5cXG4uY2hhcnRqcy1zaXplLW1vbml0b3Itc2hyaW5rID4gZGl2IHtcXG5cXHRwb3NpdGlvbjogYWJzb2x1dGU7XFxuXFx0d2lkdGg6IDIwMCU7XFxuXFx0aGVpZ2h0OiAyMDAlO1xcblxcdGxlZnQ6IDA7XFxuXFx0dG9wOiAwO1xcbn1cXG5cIjtcblxudmFyIHBsYXRmb3JtX2RvbSQxID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuZGVmYXVsdDogcGxhdGZvcm1fZG9tXG59KTtcblxuZnVuY3Rpb24gZ2V0Q2pzRXhwb3J0RnJvbU5hbWVzcGFjZSAobikge1xuXHRyZXR1cm4gbiAmJiBuLmRlZmF1bHQgfHwgbjtcbn1cblxudmFyIHN0eWxlc2hlZXQgPSBnZXRDanNFeHBvcnRGcm9tTmFtZXNwYWNlKHBsYXRmb3JtX2RvbSQxKTtcblxudmFyIEVYUEFORE9fS0VZID0gJyRjaGFydGpzJztcbnZhciBDU1NfUFJFRklYID0gJ2NoYXJ0anMtJztcbnZhciBDU1NfU0laRV9NT05JVE9SID0gQ1NTX1BSRUZJWCArICdzaXplLW1vbml0b3InO1xudmFyIENTU19SRU5ERVJfTU9OSVRPUiA9IENTU19QUkVGSVggKyAncmVuZGVyLW1vbml0b3InO1xudmFyIENTU19SRU5ERVJfQU5JTUFUSU9OID0gQ1NTX1BSRUZJWCArICdyZW5kZXItYW5pbWF0aW9uJztcbnZhciBBTklNQVRJT05fU1RBUlRfRVZFTlRTID0gWydhbmltYXRpb25zdGFydCcsICd3ZWJraXRBbmltYXRpb25TdGFydCddO1xuXG4vKipcbiAqIERPTSBldmVudCB0eXBlcyAtPiBDaGFydC5qcyBldmVudCB0eXBlcy5cbiAqIE5vdGU6IG9ubHkgZXZlbnRzIHdpdGggZGlmZmVyZW50IHR5cGVzIGFyZSBtYXBwZWQuXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50c1xuICovXG52YXIgRVZFTlRfVFlQRVMgPSB7XG5cdHRvdWNoc3RhcnQ6ICdtb3VzZWRvd24nLFxuXHR0b3VjaG1vdmU6ICdtb3VzZW1vdmUnLFxuXHR0b3VjaGVuZDogJ21vdXNldXAnLFxuXHRwb2ludGVyZW50ZXI6ICdtb3VzZWVudGVyJyxcblx0cG9pbnRlcmRvd246ICdtb3VzZWRvd24nLFxuXHRwb2ludGVybW92ZTogJ21vdXNlbW92ZScsXG5cdHBvaW50ZXJ1cDogJ21vdXNldXAnLFxuXHRwb2ludGVybGVhdmU6ICdtb3VzZW91dCcsXG5cdHBvaW50ZXJvdXQ6ICdtb3VzZW91dCdcbn07XG5cbi8qKlxuICogVGhlIFwidXNlZFwiIHNpemUgaXMgdGhlIGZpbmFsIHZhbHVlIG9mIGEgZGltZW5zaW9uIHByb3BlcnR5IGFmdGVyIGFsbCBjYWxjdWxhdGlvbnMgaGF2ZVxuICogYmVlbiBwZXJmb3JtZWQuIFRoaXMgbWV0aG9kIHVzZXMgdGhlIGNvbXB1dGVkIHN0eWxlIG9mIGBlbGVtZW50YCBidXQgcmV0dXJucyB1bmRlZmluZWRcbiAqIGlmIHRoZSBjb21wdXRlZCBzdHlsZSBpcyBub3QgZXhwcmVzc2VkIGluIHBpeGVscy4gVGhhdCBjYW4gaGFwcGVuIGluIHNvbWUgY2FzZXMgd2hlcmVcbiAqIGBlbGVtZW50YCBoYXMgYSBzaXplIHJlbGF0aXZlIHRvIGl0cyBwYXJlbnQgYW5kIHRoaXMgbGFzdCBvbmUgaXMgbm90IHlldCBkaXNwbGF5ZWQsXG4gKiBmb3IgZXhhbXBsZSBiZWNhdXNlIG9mIGBkaXNwbGF5OiBub25lYCBvbiBhIHBhcmVudCBub2RlLlxuICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvdXNlZF92YWx1ZVxuICogQHJldHVybnMge251bWJlcn0gU2l6ZSBpbiBwaXhlbHMgb3IgdW5kZWZpbmVkIGlmIHVua25vd24uXG4gKi9cbmZ1bmN0aW9uIHJlYWRVc2VkU2l6ZShlbGVtZW50LCBwcm9wZXJ0eSkge1xuXHR2YXIgdmFsdWUgPSBoZWxwZXJzJDEuZ2V0U3R5bGUoZWxlbWVudCwgcHJvcGVydHkpO1xuXHR2YXIgbWF0Y2hlcyA9IHZhbHVlICYmIHZhbHVlLm1hdGNoKC9eKFxcZCspKFxcLlxcZCspP3B4JC8pO1xuXHRyZXR1cm4gbWF0Y2hlcyA/IE51bWJlcihtYXRjaGVzWzFdKSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplcyB0aGUgY2FudmFzIHN0eWxlIGFuZCByZW5kZXIgc2l6ZSB3aXRob3V0IG1vZGlmeWluZyB0aGUgY2FudmFzIGRpc3BsYXkgc2l6ZSxcbiAqIHNpbmNlIHJlc3BvbnNpdmVuZXNzIGlzIGhhbmRsZWQgYnkgdGhlIGNvbnRyb2xsZXIucmVzaXplKCkgbWV0aG9kLiBUaGUgY29uZmlnIGlzIHVzZWRcbiAqIHRvIGRldGVybWluZSB0aGUgYXNwZWN0IHJhdGlvIHRvIGFwcGx5IGluIGNhc2Ugbm8gZXhwbGljaXQgaGVpZ2h0IGhhcyBiZWVuIHNwZWNpZmllZC5cbiAqL1xuZnVuY3Rpb24gaW5pdENhbnZhcyhjYW52YXMsIGNvbmZpZykge1xuXHR2YXIgc3R5bGUgPSBjYW52YXMuc3R5bGU7XG5cblx0Ly8gTk9URShTQikgY2FudmFzLmdldEF0dHJpYnV0ZSgnd2lkdGgnKSAhPT0gY2FudmFzLndpZHRoOiBpbiB0aGUgZmlyc3QgY2FzZSBpdFxuXHQvLyByZXR1cm5zIG51bGwgb3IgJycgaWYgbm8gZXhwbGljaXQgdmFsdWUgaGFzIGJlZW4gc2V0IHRvIHRoZSBjYW52YXMgYXR0cmlidXRlLlxuXHR2YXIgcmVuZGVySGVpZ2h0ID0gY2FudmFzLmdldEF0dHJpYnV0ZSgnaGVpZ2h0Jyk7XG5cdHZhciByZW5kZXJXaWR0aCA9IGNhbnZhcy5nZXRBdHRyaWJ1dGUoJ3dpZHRoJyk7XG5cblx0Ly8gQ2hhcnQuanMgbW9kaWZpZXMgc29tZSBjYW52YXMgdmFsdWVzIHRoYXQgd2Ugd2FudCB0byByZXN0b3JlIG9uIGRlc3Ryb3lcblx0Y2FudmFzW0VYUEFORE9fS0VZXSA9IHtcblx0XHRpbml0aWFsOiB7XG5cdFx0XHRoZWlnaHQ6IHJlbmRlckhlaWdodCxcblx0XHRcdHdpZHRoOiByZW5kZXJXaWR0aCxcblx0XHRcdHN0eWxlOiB7XG5cdFx0XHRcdGRpc3BsYXk6IHN0eWxlLmRpc3BsYXksXG5cdFx0XHRcdGhlaWdodDogc3R5bGUuaGVpZ2h0LFxuXHRcdFx0XHR3aWR0aDogc3R5bGUud2lkdGhcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0Ly8gRm9yY2UgY2FudmFzIHRvIGRpc3BsYXkgYXMgYmxvY2sgdG8gYXZvaWQgZXh0cmEgc3BhY2UgY2F1c2VkIGJ5IGlubGluZVxuXHQvLyBlbGVtZW50cywgd2hpY2ggd291bGQgaW50ZXJmZXJlIHdpdGggdGhlIHJlc3BvbnNpdmUgcmVzaXplIHByb2Nlc3MuXG5cdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL2lzc3Vlcy8yNTM4XG5cdHN0eWxlLmRpc3BsYXkgPSBzdHlsZS5kaXNwbGF5IHx8ICdibG9jayc7XG5cblx0aWYgKHJlbmRlcldpZHRoID09PSBudWxsIHx8IHJlbmRlcldpZHRoID09PSAnJykge1xuXHRcdHZhciBkaXNwbGF5V2lkdGggPSByZWFkVXNlZFNpemUoY2FudmFzLCAnd2lkdGgnKTtcblx0XHRpZiAoZGlzcGxheVdpZHRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGNhbnZhcy53aWR0aCA9IGRpc3BsYXlXaWR0aDtcblx0XHR9XG5cdH1cblxuXHRpZiAocmVuZGVySGVpZ2h0ID09PSBudWxsIHx8IHJlbmRlckhlaWdodCA9PT0gJycpIHtcblx0XHRpZiAoY2FudmFzLnN0eWxlLmhlaWdodCA9PT0gJycpIHtcblx0XHRcdC8vIElmIG5vIGV4cGxpY2l0IHJlbmRlciBoZWlnaHQgYW5kIHN0eWxlIGhlaWdodCwgbGV0J3MgYXBwbHkgdGhlIGFzcGVjdCByYXRpbyxcblx0XHRcdC8vIHdoaWNoIG9uZSBjYW4gYmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyIGJ1dCBhbHNvIGJ5IGNoYXJ0cyBhcyBkZWZhdWx0IG9wdGlvblxuXHRcdFx0Ly8gKGkuZS4gb3B0aW9ucy5hc3BlY3RSYXRpbykuIElmIG5vdCBzcGVjaWZpZWQsIHVzZSBjYW52YXMgYXNwZWN0IHJhdGlvIG9mIDIuXG5cdFx0XHRjYW52YXMuaGVpZ2h0ID0gY2FudmFzLndpZHRoIC8gKGNvbmZpZy5vcHRpb25zLmFzcGVjdFJhdGlvIHx8IDIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2YXIgZGlzcGxheUhlaWdodCA9IHJlYWRVc2VkU2l6ZShjYW52YXMsICdoZWlnaHQnKTtcblx0XHRcdGlmIChkaXNwbGF5V2lkdGggIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRjYW52YXMuaGVpZ2h0ID0gZGlzcGxheUhlaWdodDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gY2FudmFzO1xufVxuXG4vKipcbiAqIERldGVjdHMgc3VwcG9ydCBmb3Igb3B0aW9ucyBvYmplY3QgYXJndW1lbnQgaW4gYWRkRXZlbnRMaXN0ZW5lci5cbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FdmVudFRhcmdldC9hZGRFdmVudExpc3RlbmVyI1NhZmVseV9kZXRlY3Rpbmdfb3B0aW9uX3N1cHBvcnRcbiAqIEBwcml2YXRlXG4gKi9cbnZhciBzdXBwb3J0c0V2ZW50TGlzdGVuZXJPcHRpb25zID0gKGZ1bmN0aW9uKCkge1xuXHR2YXIgc3VwcG9ydHMgPSBmYWxzZTtcblx0dHJ5IHtcblx0XHR2YXIgb3B0aW9ucyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ3Bhc3NpdmUnLCB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2V0dGVyLXJldHVyblxuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0c3VwcG9ydHMgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlJywgbnVsbCwgb3B0aW9ucyk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHQvLyBjb250aW51ZSByZWdhcmRsZXNzIG9mIGVycm9yXG5cdH1cblx0cmV0dXJuIHN1cHBvcnRzO1xufSgpKTtcblxuLy8gRGVmYXVsdCBwYXNzaXZlIHRvIHRydWUgYXMgZXhwZWN0ZWQgYnkgQ2hyb21lIGZvciAndG91Y2hzdGFydCcgYW5kICd0b3VjaGVuZCcgZXZlbnRzLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvaXNzdWVzLzQyODdcbnZhciBldmVudExpc3RlbmVyT3B0aW9ucyA9IHN1cHBvcnRzRXZlbnRMaXN0ZW5lck9wdGlvbnMgPyB7cGFzc2l2ZTogdHJ1ZX0gOiBmYWxzZTtcblxuZnVuY3Rpb24gYWRkTGlzdGVuZXIobm9kZSwgdHlwZSwgbGlzdGVuZXIpIHtcblx0bm9kZS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBldmVudExpc3RlbmVyT3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKG5vZGUsIHR5cGUsIGxpc3RlbmVyKSB7XG5cdG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lciwgZXZlbnRMaXN0ZW5lck9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFdmVudCh0eXBlLCBjaGFydCwgeCwgeSwgbmF0aXZlRXZlbnQpIHtcblx0cmV0dXJuIHtcblx0XHR0eXBlOiB0eXBlLFxuXHRcdGNoYXJ0OiBjaGFydCxcblx0XHRuYXRpdmU6IG5hdGl2ZUV2ZW50IHx8IG51bGwsXG5cdFx0eDogeCAhPT0gdW5kZWZpbmVkID8geCA6IG51bGwsXG5cdFx0eTogeSAhPT0gdW5kZWZpbmVkID8geSA6IG51bGwsXG5cdH07XG59XG5cbmZ1bmN0aW9uIGZyb21OYXRpdmVFdmVudChldmVudCwgY2hhcnQpIHtcblx0dmFyIHR5cGUgPSBFVkVOVF9UWVBFU1tldmVudC50eXBlXSB8fCBldmVudC50eXBlO1xuXHR2YXIgcG9zID0gaGVscGVycyQxLmdldFJlbGF0aXZlUG9zaXRpb24oZXZlbnQsIGNoYXJ0KTtcblx0cmV0dXJuIGNyZWF0ZUV2ZW50KHR5cGUsIGNoYXJ0LCBwb3MueCwgcG9zLnksIGV2ZW50KTtcbn1cblxuZnVuY3Rpb24gdGhyb3R0bGVkKGZuLCB0aGlzQXJnKSB7XG5cdHZhciB0aWNraW5nID0gZmFsc2U7XG5cdHZhciBhcmdzID0gW107XG5cblx0cmV0dXJuIGZ1bmN0aW9uKCkge1xuXHRcdGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuXHRcdHRoaXNBcmcgPSB0aGlzQXJnIHx8IHRoaXM7XG5cblx0XHRpZiAoIXRpY2tpbmcpIHtcblx0XHRcdHRpY2tpbmcgPSB0cnVlO1xuXHRcdFx0aGVscGVycyQxLnJlcXVlc3RBbmltRnJhbWUuY2FsbCh3aW5kb3csIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR0aWNraW5nID0gZmFsc2U7XG5cdFx0XHRcdGZuLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEaXYoY2xzKSB7XG5cdHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXHRlbC5jbGFzc05hbWUgPSBjbHMgfHwgJyc7XG5cdHJldHVybiBlbDtcbn1cblxuLy8gSW1wbGVtZW50YXRpb24gYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL21hcmNqL2Nzcy1lbGVtZW50LXF1ZXJpZXNcbmZ1bmN0aW9uIGNyZWF0ZVJlc2l6ZXIoaGFuZGxlcikge1xuXHR2YXIgbWF4U2l6ZSA9IDEwMDAwMDA7XG5cblx0Ly8gTk9URShTQikgRG9uJ3QgdXNlIGlubmVySFRNTCBiZWNhdXNlIGl0IGNvdWxkIGJlIGNvbnNpZGVyZWQgdW5zYWZlLlxuXHQvLyBodHRwczovL2dpdGh1Yi5jb20vY2hhcnRqcy9DaGFydC5qcy9pc3N1ZXMvNTkwMlxuXHR2YXIgcmVzaXplciA9IGNyZWF0ZURpdihDU1NfU0laRV9NT05JVE9SKTtcblx0dmFyIGV4cGFuZCA9IGNyZWF0ZURpdihDU1NfU0laRV9NT05JVE9SICsgJy1leHBhbmQnKTtcblx0dmFyIHNocmluayA9IGNyZWF0ZURpdihDU1NfU0laRV9NT05JVE9SICsgJy1zaHJpbmsnKTtcblxuXHRleHBhbmQuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KCkpO1xuXHRzaHJpbmsuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KCkpO1xuXG5cdHJlc2l6ZXIuYXBwZW5kQ2hpbGQoZXhwYW5kKTtcblx0cmVzaXplci5hcHBlbmRDaGlsZChzaHJpbmspO1xuXHRyZXNpemVyLl9yZXNldCA9IGZ1bmN0aW9uKCkge1xuXHRcdGV4cGFuZC5zY3JvbGxMZWZ0ID0gbWF4U2l6ZTtcblx0XHRleHBhbmQuc2Nyb2xsVG9wID0gbWF4U2l6ZTtcblx0XHRzaHJpbmsuc2Nyb2xsTGVmdCA9IG1heFNpemU7XG5cdFx0c2hyaW5rLnNjcm9sbFRvcCA9IG1heFNpemU7XG5cdH07XG5cblx0dmFyIG9uU2Nyb2xsID0gZnVuY3Rpb24oKSB7XG5cdFx0cmVzaXplci5fcmVzZXQoKTtcblx0XHRoYW5kbGVyKCk7XG5cdH07XG5cblx0YWRkTGlzdGVuZXIoZXhwYW5kLCAnc2Nyb2xsJywgb25TY3JvbGwuYmluZChleHBhbmQsICdleHBhbmQnKSk7XG5cdGFkZExpc3RlbmVyKHNocmluaywgJ3Njcm9sbCcsIG9uU2Nyb2xsLmJpbmQoc2hyaW5rLCAnc2hyaW5rJykpO1xuXG5cdHJldHVybiByZXNpemVyO1xufVxuXG4vLyBodHRwczovL2Rhdmlkd2Fsc2gubmFtZS9kZXRlY3Qtbm9kZS1pbnNlcnRpb25cbmZ1bmN0aW9uIHdhdGNoRm9yUmVuZGVyKG5vZGUsIGhhbmRsZXIpIHtcblx0dmFyIGV4cGFuZG8gPSBub2RlW0VYUEFORE9fS0VZXSB8fCAobm9kZVtFWFBBTkRPX0tFWV0gPSB7fSk7XG5cdHZhciBwcm94eSA9IGV4cGFuZG8ucmVuZGVyUHJveHkgPSBmdW5jdGlvbihlKSB7XG5cdFx0aWYgKGUuYW5pbWF0aW9uTmFtZSA9PT0gQ1NTX1JFTkRFUl9BTklNQVRJT04pIHtcblx0XHRcdGhhbmRsZXIoKTtcblx0XHR9XG5cdH07XG5cblx0aGVscGVycyQxLmVhY2goQU5JTUFUSU9OX1NUQVJUX0VWRU5UUywgZnVuY3Rpb24odHlwZSkge1xuXHRcdGFkZExpc3RlbmVyKG5vZGUsIHR5cGUsIHByb3h5KTtcblx0fSk7XG5cblx0Ly8gIzQ3Mzc6IENocm9tZSBtaWdodCBza2lwIHRoZSBDU1MgYW5pbWF0aW9uIHdoZW4gdGhlIENTU19SRU5ERVJfTU9OSVRPUiBjbGFzc1xuXHQvLyBpcyByZW1vdmVkIHRoZW4gYWRkZWQgYmFjayBpbW1lZGlhdGVseSAoc2FtZSBhbmltYXRpb24gZnJhbWU/KS4gQWNjZXNzaW5nIHRoZVxuXHQvLyBgb2Zmc2V0UGFyZW50YCBwcm9wZXJ0eSB3aWxsIGZvcmNlIGEgcmVmbG93IGFuZCByZS1ldmFsdWF0ZSB0aGUgQ1NTIGFuaW1hdGlvbi5cblx0Ly8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vcGF1bGlyaXNoLzVkNTJmYjA4MWIzNTcwYzgxZTNhI2JveC1tZXRyaWNzXG5cdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL2lzc3Vlcy80NzM3XG5cdGV4cGFuZG8ucmVmbG93ID0gISFub2RlLm9mZnNldFBhcmVudDtcblxuXHRub2RlLmNsYXNzTGlzdC5hZGQoQ1NTX1JFTkRFUl9NT05JVE9SKTtcbn1cblxuZnVuY3Rpb24gdW53YXRjaEZvclJlbmRlcihub2RlKSB7XG5cdHZhciBleHBhbmRvID0gbm9kZVtFWFBBTkRPX0tFWV0gfHwge307XG5cdHZhciBwcm94eSA9IGV4cGFuZG8ucmVuZGVyUHJveHk7XG5cblx0aWYgKHByb3h5KSB7XG5cdFx0aGVscGVycyQxLmVhY2goQU5JTUFUSU9OX1NUQVJUX0VWRU5UUywgZnVuY3Rpb24odHlwZSkge1xuXHRcdFx0cmVtb3ZlTGlzdGVuZXIobm9kZSwgdHlwZSwgcHJveHkpO1xuXHRcdH0pO1xuXG5cdFx0ZGVsZXRlIGV4cGFuZG8ucmVuZGVyUHJveHk7XG5cdH1cblxuXHRub2RlLmNsYXNzTGlzdC5yZW1vdmUoQ1NTX1JFTkRFUl9NT05JVE9SKTtcbn1cblxuZnVuY3Rpb24gYWRkUmVzaXplTGlzdGVuZXIobm9kZSwgbGlzdGVuZXIsIGNoYXJ0KSB7XG5cdHZhciBleHBhbmRvID0gbm9kZVtFWFBBTkRPX0tFWV0gfHwgKG5vZGVbRVhQQU5ET19LRVldID0ge30pO1xuXG5cdC8vIExldCdzIGtlZXAgdHJhY2sgb2YgdGhpcyBhZGRlZCByZXNpemVyIGFuZCB0aHVzIGF2b2lkIERPTSBxdWVyeSB3aGVuIHJlbW92aW5nIGl0LlxuXHR2YXIgcmVzaXplciA9IGV4cGFuZG8ucmVzaXplciA9IGNyZWF0ZVJlc2l6ZXIodGhyb3R0bGVkKGZ1bmN0aW9uKCkge1xuXHRcdGlmIChleHBhbmRvLnJlc2l6ZXIpIHtcblx0XHRcdHZhciBjb250YWluZXIgPSBjaGFydC5vcHRpb25zLm1haW50YWluQXNwZWN0UmF0aW8gJiYgbm9kZS5wYXJlbnROb2RlO1xuXHRcdFx0dmFyIHcgPSBjb250YWluZXIgPyBjb250YWluZXIuY2xpZW50V2lkdGggOiAwO1xuXHRcdFx0bGlzdGVuZXIoY3JlYXRlRXZlbnQoJ3Jlc2l6ZScsIGNoYXJ0KSk7XG5cdFx0XHRpZiAoY29udGFpbmVyICYmIGNvbnRhaW5lci5jbGllbnRXaWR0aCA8IHcgJiYgY2hhcnQuY2FudmFzKSB7XG5cdFx0XHRcdC8vIElmIHRoZSBjb250YWluZXIgc2l6ZSBzaHJhbmsgZHVyaW5nIGNoYXJ0IHJlc2l6ZSwgbGV0J3MgYXNzdW1lXG5cdFx0XHRcdC8vIHNjcm9sbGJhciBhcHBlYXJlZC4gU28gd2UgcmVzaXplIGFnYWluIHdpdGggdGhlIHNjcm9sbGJhciB2aXNpYmxlIC1cblx0XHRcdFx0Ly8gZWZmZWN0aXZlbHkgbWFraW5nIGNoYXJ0IHNtYWxsZXIgYW5kIHRoZSBzY3JvbGxiYXIgaGlkZGVuIGFnYWluLlxuXHRcdFx0XHQvLyBCZWNhdXNlIHdlIGFyZSBpbnNpZGUgYHRocm90dGxlZGAsIGFuZCBjdXJyZW50bHkgYHRpY2tpbmdgLCBzY3JvbGxcblx0XHRcdFx0Ly8gZXZlbnRzIGFyZSBpZ25vcmVkIGR1cmluZyB0aGlzIHdob2xlIDIgcmVzaXplIHByb2Nlc3MuXG5cdFx0XHRcdC8vIElmIHdlIGFzc3VtZWQgd3JvbmcgYW5kIHNvbWV0aGluZyBlbHNlIGhhcHBlbmVkLCB3ZSBhcmUgcmVzaXppbmdcblx0XHRcdFx0Ly8gdHdpY2UgaW4gYSBmcmFtZSAocG90ZW50aWFsIHBlcmZvcm1hbmNlIGlzc3VlKVxuXHRcdFx0XHRsaXN0ZW5lcihjcmVhdGVFdmVudCgncmVzaXplJywgY2hhcnQpKTtcblx0XHRcdH1cblx0XHR9XG5cdH0pKTtcblxuXHQvLyBUaGUgcmVzaXplciBuZWVkcyB0byBiZSBhdHRhY2hlZCB0byB0aGUgbm9kZSBwYXJlbnQsIHNvIHdlIGZpcnN0IG5lZWQgdG8gYmVcblx0Ly8gc3VyZSB0aGF0IGBub2RlYCBpcyBhdHRhY2hlZCB0byB0aGUgRE9NIGJlZm9yZSBpbmplY3RpbmcgdGhlIHJlc2l6ZXIgZWxlbWVudC5cblx0d2F0Y2hGb3JSZW5kZXIobm9kZSwgZnVuY3Rpb24oKSB7XG5cdFx0aWYgKGV4cGFuZG8ucmVzaXplcikge1xuXHRcdFx0dmFyIGNvbnRhaW5lciA9IG5vZGUucGFyZW50Tm9kZTtcblx0XHRcdGlmIChjb250YWluZXIgJiYgY29udGFpbmVyICE9PSByZXNpemVyLnBhcmVudE5vZGUpIHtcblx0XHRcdFx0Y29udGFpbmVyLmluc2VydEJlZm9yZShyZXNpemVyLCBjb250YWluZXIuZmlyc3RDaGlsZCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFRoZSBjb250YWluZXIgc2l6ZSBtaWdodCBoYXZlIGNoYW5nZWQsIGxldCdzIHJlc2V0IHRoZSByZXNpemVyIHN0YXRlLlxuXHRcdFx0cmVzaXplci5fcmVzZXQoKTtcblx0XHR9XG5cdH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVSZXNpemVMaXN0ZW5lcihub2RlKSB7XG5cdHZhciBleHBhbmRvID0gbm9kZVtFWFBBTkRPX0tFWV0gfHwge307XG5cdHZhciByZXNpemVyID0gZXhwYW5kby5yZXNpemVyO1xuXG5cdGRlbGV0ZSBleHBhbmRvLnJlc2l6ZXI7XG5cdHVud2F0Y2hGb3JSZW5kZXIobm9kZSk7XG5cblx0aWYgKHJlc2l6ZXIgJiYgcmVzaXplci5wYXJlbnROb2RlKSB7XG5cdFx0cmVzaXplci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHJlc2l6ZXIpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGluamVjdENTUyhwbGF0Zm9ybSwgY3NzKSB7XG5cdC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8zOTIyMTM5XG5cdHZhciBzdHlsZSA9IHBsYXRmb3JtLl9zdHlsZSB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXHRpZiAoIXBsYXRmb3JtLl9zdHlsZSkge1xuXHRcdHBsYXRmb3JtLl9zdHlsZSA9IHN0eWxlO1xuXHRcdGNzcyA9ICcvKiBDaGFydC5qcyAqL1xcbicgKyBjc3M7XG5cdFx0c3R5bGUuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQvY3NzJyk7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzdHlsZSk7XG5cdH1cblxuXHRzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbn1cblxudmFyIHBsYXRmb3JtX2RvbSQyID0ge1xuXHQvKipcblx0ICogV2hlbiBgdHJ1ZWAsIHByZXZlbnRzIHRoZSBhdXRvbWF0aWMgaW5qZWN0aW9uIG9mIHRoZSBzdHlsZXNoZWV0IHJlcXVpcmVkIHRvXG5cdCAqIGNvcnJlY3RseSBkZXRlY3Qgd2hlbiB0aGUgY2hhcnQgaXMgYWRkZWQgdG8gdGhlIERPTSBhbmQgdGhlbiByZXNpemVkLiBUaGlzXG5cdCAqIHN3aXRjaCBoYXMgYmVlbiBhZGRlZCB0byBhbGxvdyBleHRlcm5hbCBzdHlsZXNoZWV0IChgZGlzdC9DaGFydCgubWluKT8uanNgKVxuXHQgKiB0byBiZSBtYW51YWxseSBpbXBvcnRlZCB0byBtYWtlIHRoaXMgbGlicmFyeSBjb21wYXRpYmxlIHdpdGggYW55IENTUC5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL2lzc3Vlcy81MjA4XG5cdCAqL1xuXHRkaXNhYmxlQ1NTSW5qZWN0aW9uOiBmYWxzZSxcblxuXHQvKipcblx0ICogVGhpcyBwcm9wZXJ0eSBob2xkcyB3aGV0aGVyIHRoaXMgcGxhdGZvcm0gaXMgZW5hYmxlZCBmb3IgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuXG5cdCAqIEN1cnJlbnRseSB1c2VkIGJ5IHBsYXRmb3JtLmpzIHRvIHNlbGVjdCB0aGUgcHJvcGVyIGltcGxlbWVudGF0aW9uLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2VuYWJsZWQ6IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcsXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfZW5zdXJlTG9hZGVkOiBmdW5jdGlvbigpIHtcblx0XHRpZiAodGhpcy5fbG9hZGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5fbG9hZGVkID0gdHJ1ZTtcblxuXHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL2lzc3Vlcy81MjA4XG5cdFx0aWYgKCF0aGlzLmRpc2FibGVDU1NJbmplY3Rpb24pIHtcblx0XHRcdGluamVjdENTUyh0aGlzLCBzdHlsZXNoZWV0KTtcblx0XHR9XG5cdH0sXG5cblx0YWNxdWlyZUNvbnRleHQ6IGZ1bmN0aW9uKGl0ZW0sIGNvbmZpZykge1xuXHRcdGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHtcblx0XHRcdGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpdGVtKTtcblx0XHR9IGVsc2UgaWYgKGl0ZW0ubGVuZ3RoKSB7XG5cdFx0XHQvLyBTdXBwb3J0IGZvciBhcnJheSBiYXNlZCBxdWVyaWVzIChzdWNoIGFzIGpRdWVyeSlcblx0XHRcdGl0ZW0gPSBpdGVtWzBdO1xuXHRcdH1cblxuXHRcdGlmIChpdGVtICYmIGl0ZW0uY2FudmFzKSB7XG5cdFx0XHQvLyBTdXBwb3J0IGZvciBhbnkgb2JqZWN0IGFzc29jaWF0ZWQgdG8gYSBjYW52YXMgKGluY2x1ZGluZyBhIGNvbnRleHQyZClcblx0XHRcdGl0ZW0gPSBpdGVtLmNhbnZhcztcblx0XHR9XG5cblx0XHQvLyBUbyBwcmV2ZW50IGNhbnZhcyBmaW5nZXJwcmludGluZywgc29tZSBhZGQtb25zIHVuZGVmaW5lIHRoZSBnZXRDb250ZXh0XG5cdFx0Ly8gbWV0aG9kLCBmb3IgZXhhbXBsZTogaHR0cHM6Ly9naXRodWIuY29tL2trYXBzbmVyL0NhbnZhc0Jsb2NrZXJcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vY2hhcnRqcy9DaGFydC5qcy9pc3N1ZXMvMjgwN1xuXHRcdHZhciBjb250ZXh0ID0gaXRlbSAmJiBpdGVtLmdldENvbnRleHQgJiYgaXRlbS5nZXRDb250ZXh0KCcyZCcpO1xuXG5cdFx0Ly8gTG9hZCBwbGF0Zm9ybSByZXNvdXJjZXMgb24gZmlyc3QgY2hhcnQgY3JlYXRpb24sIHRvIG1ha2UgcG9zc2libGUgdG8gY2hhbmdlXG5cdFx0Ly8gcGxhdGZvcm0gb3B0aW9ucyBhZnRlciBpbXBvcnRpbmcgdGhlIGxpYnJhcnkgKGUuZy4gYGRpc2FibGVDU1NJbmplY3Rpb25gKS5cblx0XHR0aGlzLl9lbnN1cmVMb2FkZWQoKTtcblxuXHRcdC8vIGBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRGAgZmFpbHMgd2hlbiB0aGUgaXRlbSBpc1xuXHRcdC8vIGluc2lkZSBhbiBpZnJhbWUgb3Igd2hlbiBydW5uaW5nIGluIGEgcHJvdGVjdGVkIGVudmlyb25tZW50LiBXZSBjb3VsZCBndWVzcyB0aGVcblx0XHQvLyB0eXBlcyBmcm9tIHRoZWlyIHRvU3RyaW5nKCkgdmFsdWUgYnV0IGxldCdzIGtlZXAgdGhpbmdzIGZsZXhpYmxlIGFuZCBhc3N1bWUgaXQnc1xuXHRcdC8vIGEgc3VmZmljaWVudCBjb25kaXRpb24gaWYgdGhlIGl0ZW0gaGFzIGEgY29udGV4dDJEIHdoaWNoIGhhcyBpdGVtIGFzIGBjYW52YXNgLlxuXHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL2lzc3Vlcy8zODg3XG5cdFx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvaXNzdWVzLzQxMDJcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vY2hhcnRqcy9DaGFydC5qcy9pc3N1ZXMvNDE1MlxuXHRcdGlmIChjb250ZXh0ICYmIGNvbnRleHQuY2FudmFzID09PSBpdGVtKSB7XG5cdFx0XHRpbml0Q2FudmFzKGl0ZW0sIGNvbmZpZyk7XG5cdFx0XHRyZXR1cm4gY29udGV4dDtcblx0XHR9XG5cblx0XHRyZXR1cm4gbnVsbDtcblx0fSxcblxuXHRyZWxlYXNlQ29udGV4dDogZnVuY3Rpb24oY29udGV4dCkge1xuXHRcdHZhciBjYW52YXMgPSBjb250ZXh0LmNhbnZhcztcblx0XHRpZiAoIWNhbnZhc1tFWFBBTkRPX0tFWV0pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2YXIgaW5pdGlhbCA9IGNhbnZhc1tFWFBBTkRPX0tFWV0uaW5pdGlhbDtcblx0XHRbJ2hlaWdodCcsICd3aWR0aCddLmZvckVhY2goZnVuY3Rpb24ocHJvcCkge1xuXHRcdFx0dmFyIHZhbHVlID0gaW5pdGlhbFtwcm9wXTtcblx0XHRcdGlmIChoZWxwZXJzJDEuaXNOdWxsT3JVbmRlZih2YWx1ZSkpIHtcblx0XHRcdFx0Y2FudmFzLnJlbW92ZUF0dHJpYnV0ZShwcm9wKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNhbnZhcy5zZXRBdHRyaWJ1dGUocHJvcCwgdmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aGVscGVycyQxLmVhY2goaW5pdGlhbC5zdHlsZSB8fCB7fSwgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuXHRcdFx0Y2FudmFzLnN0eWxlW2tleV0gPSB2YWx1ZTtcblx0XHR9KTtcblxuXHRcdC8vIFRoZSBjYW52YXMgcmVuZGVyIHNpemUgbWlnaHQgaGF2ZSBiZWVuIGNoYW5nZWQgKGFuZCB0aHVzIHRoZSBzdGF0ZSBzdGFjayBkaXNjYXJkZWQpLFxuXHRcdC8vIHdlIGNhbid0IHVzZSBzYXZlKCkgYW5kIHJlc3RvcmUoKSB0byByZXN0b3JlIHRoZSBpbml0aWFsIHN0YXRlLiBTbyBtYWtlIHN1cmUgdGhhdCBhdFxuXHRcdC8vIGxlYXN0IHRoZSBjYW52YXMgY29udGV4dCBpcyByZXNldCB0byB0aGUgZGVmYXVsdCBzdGF0ZSBieSBzZXR0aW5nIHRoZSBjYW52YXMgd2lkdGguXG5cdFx0Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSLzIwMTEvV0QtaHRtbDUtMjAxMTA1MjUvdGhlLWNhbnZhcy1lbGVtZW50Lmh0bWxcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1hc3NpZ25cblx0XHRjYW52YXMud2lkdGggPSBjYW52YXMud2lkdGg7XG5cblx0XHRkZWxldGUgY2FudmFzW0VYUEFORE9fS0VZXTtcblx0fSxcblxuXHRhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlvbihjaGFydCwgdHlwZSwgbGlzdGVuZXIpIHtcblx0XHR2YXIgY2FudmFzID0gY2hhcnQuY2FudmFzO1xuXHRcdGlmICh0eXBlID09PSAncmVzaXplJykge1xuXHRcdFx0Ly8gTm90ZTogdGhlIHJlc2l6ZSBldmVudCBpcyBub3Qgc3VwcG9ydGVkIG9uIGFsbCBicm93c2Vycy5cblx0XHRcdGFkZFJlc2l6ZUxpc3RlbmVyKGNhbnZhcywgbGlzdGVuZXIsIGNoYXJ0KTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2YXIgZXhwYW5kbyA9IGxpc3RlbmVyW0VYUEFORE9fS0VZXSB8fCAobGlzdGVuZXJbRVhQQU5ET19LRVldID0ge30pO1xuXHRcdHZhciBwcm94aWVzID0gZXhwYW5kby5wcm94aWVzIHx8IChleHBhbmRvLnByb3hpZXMgPSB7fSk7XG5cdFx0dmFyIHByb3h5ID0gcHJveGllc1tjaGFydC5pZCArICdfJyArIHR5cGVdID0gZnVuY3Rpb24oZXZlbnQpIHtcblx0XHRcdGxpc3RlbmVyKGZyb21OYXRpdmVFdmVudChldmVudCwgY2hhcnQpKTtcblx0XHR9O1xuXG5cdFx0YWRkTGlzdGVuZXIoY2FudmFzLCB0eXBlLCBwcm94eSk7XG5cdH0sXG5cblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oY2hhcnQsIHR5cGUsIGxpc3RlbmVyKSB7XG5cdFx0dmFyIGNhbnZhcyA9IGNoYXJ0LmNhbnZhcztcblx0XHRpZiAodHlwZSA9PT0gJ3Jlc2l6ZScpIHtcblx0XHRcdC8vIE5vdGU6IHRoZSByZXNpemUgZXZlbnQgaXMgbm90IHN1cHBvcnRlZCBvbiBhbGwgYnJvd3NlcnMuXG5cdFx0XHRyZW1vdmVSZXNpemVMaXN0ZW5lcihjYW52YXMpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHZhciBleHBhbmRvID0gbGlzdGVuZXJbRVhQQU5ET19LRVldIHx8IHt9O1xuXHRcdHZhciBwcm94aWVzID0gZXhwYW5kby5wcm94aWVzIHx8IHt9O1xuXHRcdHZhciBwcm94eSA9IHByb3hpZXNbY2hhcnQuaWQgKyAnXycgKyB0eXBlXTtcblx0XHRpZiAoIXByb3h5KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0cmVtb3ZlTGlzdGVuZXIoY2FudmFzLCB0eXBlLCBwcm94eSk7XG5cdH1cbn07XG5cbi8vIERFUFJFQ0FUSU9OU1xuXG4vKipcbiAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1c2UgRXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lciBpbnN0ZWFkLlxuICogRXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lciBjb21wYXRpYmlsaXR5OiBDaHJvbWUsIE9wZXJhIDcsIFNhZmFyaSwgRkYxLjUrLCBJRTkrXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FdmVudFRhcmdldC9hZGRFdmVudExpc3RlbmVyXG4gKiBAZnVuY3Rpb24gQ2hhcnQuaGVscGVycy5hZGRFdmVudFxuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAyLjcuMFxuICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuICogQHByaXZhdGVcbiAqL1xuaGVscGVycyQxLmFkZEV2ZW50ID0gYWRkTGlzdGVuZXI7XG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHVzZSBFdmVudFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyIGluc3RlYWQuXG4gKiBFdmVudFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyIGNvbXBhdGliaWxpdHk6IENocm9tZSwgT3BlcmEgNywgU2FmYXJpLCBGRjEuNSssIElFOStcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0V2ZW50VGFyZ2V0L3JlbW92ZUV2ZW50TGlzdGVuZXJcbiAqIEBmdW5jdGlvbiBDaGFydC5oZWxwZXJzLnJlbW92ZUV2ZW50XG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuNy4wXG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKiBAcHJpdmF0ZVxuICovXG5oZWxwZXJzJDEucmVtb3ZlRXZlbnQgPSByZW1vdmVMaXN0ZW5lcjtcblxuLy8gQFRPRE8gTWFrZSBwb3NzaWJsZSB0byBzZWxlY3QgYW5vdGhlciBwbGF0Zm9ybSBhdCBidWlsZCB0aW1lLlxudmFyIGltcGxlbWVudGF0aW9uID0gcGxhdGZvcm1fZG9tJDIuX2VuYWJsZWQgPyBwbGF0Zm9ybV9kb20kMiA6IHBsYXRmb3JtX2Jhc2ljO1xuXG4vKipcbiAqIEBuYW1lc3BhY2UgQ2hhcnQucGxhdGZvcm1cbiAqIEBzZWUgaHR0cHM6Ly9jaGFydGpzLmdpdGJvb2tzLmlvL3Byb3Bvc2Fscy9jb250ZW50L1BsYXRmb3JtLmh0bWxcbiAqIEBzaW5jZSAyLjQuMFxuICovXG52YXIgcGxhdGZvcm0gPSBoZWxwZXJzJDEuZXh0ZW5kKHtcblx0LyoqXG5cdCAqIEBzaW5jZSAyLjcuMFxuXHQgKi9cblx0aW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7fSxcblxuXHQvKipcblx0ICogQ2FsbGVkIGF0IGNoYXJ0IGNvbnN0cnVjdGlvbiB0aW1lLCByZXR1cm5zIGEgY29udGV4dDJkIGluc3RhbmNlIGltcGxlbWVudGluZ1xuXHQgKiB0aGUgW1czQyBDYW52YXMgMkQgQ29udGV4dCBBUEkgc3RhbmRhcmRde0BsaW5rIGh0dHBzOi8vd3d3LnczLm9yZy9UUi8yZGNvbnRleHQvfS5cblx0ICogQHBhcmFtIHsqfSBpdGVtIC0gVGhlIG5hdGl2ZSBpdGVtIGZyb20gd2hpY2ggdG8gYWNxdWlyZSBjb250ZXh0IChwbGF0Zm9ybSBzcGVjaWZpYylcblx0ICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBUaGUgY2hhcnQgb3B0aW9uc1xuXHQgKiBAcmV0dXJucyB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBjb250ZXh0MmQgaW5zdGFuY2Vcblx0ICovXG5cdGFjcXVpcmVDb250ZXh0OiBmdW5jdGlvbigpIHt9LFxuXG5cdC8qKlxuXHQgKiBDYWxsZWQgYXQgY2hhcnQgZGVzdHJ1Y3Rpb24gdGltZSwgcmVsZWFzZXMgYW55IHJlc291cmNlcyBhc3NvY2lhdGVkIHRvIHRoZSBjb250ZXh0XG5cdCAqIHByZXZpb3VzbHkgcmV0dXJuZWQgYnkgdGhlIGFjcXVpcmVDb250ZXh0KCkgbWV0aG9kLlxuXHQgKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gY29udGV4dCAtIFRoZSBjb250ZXh0MmQgaW5zdGFuY2Vcblx0ICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIG1ldGhvZCBzdWNjZWVkZWQsIGVsc2UgZmFsc2Vcblx0ICovXG5cdHJlbGVhc2VDb250ZXh0OiBmdW5jdGlvbigpIHt9LFxuXG5cdC8qKlxuXHQgKiBSZWdpc3RlcnMgdGhlIHNwZWNpZmllZCBsaXN0ZW5lciBvbiB0aGUgZ2l2ZW4gY2hhcnQuXG5cdCAqIEBwYXJhbSB7Q2hhcnR9IGNoYXJ0IC0gQ2hhcnQgZnJvbSB3aGljaCB0byBsaXN0ZW4gZm9yIGV2ZW50XG5cdCAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlIC0gVGhlICh7QGxpbmsgSUV2ZW50fSkgdHlwZSB0byBsaXN0ZW4gZm9yXG5cdCAqIEBwYXJhbSB7ZnVuY3Rpb259IGxpc3RlbmVyIC0gUmVjZWl2ZXMgYSBub3RpZmljYXRpb24gKGFuIG9iamVjdCB0aGF0IGltcGxlbWVudHNcblx0ICogdGhlIHtAbGluayBJRXZlbnR9IGludGVyZmFjZSkgd2hlbiBhbiBldmVudCBvZiB0aGUgc3BlY2lmaWVkIHR5cGUgb2NjdXJzLlxuXHQgKi9cblx0YWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oKSB7fSxcblxuXHQvKipcblx0ICogUmVtb3ZlcyB0aGUgc3BlY2lmaWVkIGxpc3RlbmVyIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRoIGFkZEV2ZW50TGlzdGVuZXIuXG5cdCAqIEBwYXJhbSB7Q2hhcnR9IGNoYXJ0IC0gQ2hhcnQgZnJvbSB3aGljaCB0byByZW1vdmUgdGhlIGxpc3RlbmVyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlIC0gVGhlICh7QGxpbmsgSUV2ZW50fSkgdHlwZSB0byByZW1vdmVcblx0ICogQHBhcmFtIHtmdW5jdGlvbn0gbGlzdGVuZXIgLSBUaGUgbGlzdGVuZXIgZnVuY3Rpb24gdG8gcmVtb3ZlIGZyb20gdGhlIGV2ZW50IHRhcmdldC5cblx0ICovXG5cdHJlbW92ZUV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKCkge31cblxufSwgaW1wbGVtZW50YXRpb24pO1xuXG5jb3JlX2RlZmF1bHRzLl9zZXQoJ2dsb2JhbCcsIHtcblx0cGx1Z2luczoge31cbn0pO1xuXG4vKipcbiAqIFRoZSBwbHVnaW4gc2VydmljZSBzaW5nbGV0b25cbiAqIEBuYW1lc3BhY2UgQ2hhcnQucGx1Z2luc1xuICogQHNpbmNlIDIuMS4wXG4gKi9cbnZhciBjb3JlX3BsdWdpbnMgPSB7XG5cdC8qKlxuXHQgKiBHbG9iYWxseSByZWdpc3RlcmVkIHBsdWdpbnMuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfcGx1Z2luczogW10sXG5cblx0LyoqXG5cdCAqIFRoaXMgaWRlbnRpZmllciBpcyB1c2VkIHRvIGludmFsaWRhdGUgdGhlIGRlc2NyaXB0b3JzIGNhY2hlIGF0dGFjaGVkIHRvIGVhY2ggY2hhcnRcblx0ICogd2hlbiBhIGdsb2JhbCBwbHVnaW4gaXMgcmVnaXN0ZXJlZCBvciB1bnJlZ2lzdGVyZWQuIEluIHRoaXMgY2FzZSwgdGhlIGNhY2hlIElEIGlzXG5cdCAqIGluY3JlbWVudGVkIGFuZCBkZXNjcmlwdG9ycyBhcmUgcmVnZW5lcmF0ZWQgZHVyaW5nIGZvbGxvd2luZyBBUEkgY2FsbHMuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfY2FjaGVJZDogMCxcblxuXHQvKipcblx0ICogUmVnaXN0ZXJzIHRoZSBnaXZlbiBwbHVnaW4ocykgaWYgbm90IGFscmVhZHkgcmVnaXN0ZXJlZC5cblx0ICogQHBhcmFtIHtJUGx1Z2luW118SVBsdWdpbn0gcGx1Z2lucyBwbHVnaW4gaW5zdGFuY2UocykuXG5cdCAqL1xuXHRyZWdpc3RlcjogZnVuY3Rpb24ocGx1Z2lucykge1xuXHRcdHZhciBwID0gdGhpcy5fcGx1Z2lucztcblx0XHQoW10pLmNvbmNhdChwbHVnaW5zKS5mb3JFYWNoKGZ1bmN0aW9uKHBsdWdpbikge1xuXHRcdFx0aWYgKHAuaW5kZXhPZihwbHVnaW4pID09PSAtMSkge1xuXHRcdFx0XHRwLnB1c2gocGx1Z2luKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMuX2NhY2hlSWQrKztcblx0fSxcblxuXHQvKipcblx0ICogVW5yZWdpc3RlcnMgdGhlIGdpdmVuIHBsdWdpbihzKSBvbmx5IGlmIHJlZ2lzdGVyZWQuXG5cdCAqIEBwYXJhbSB7SVBsdWdpbltdfElQbHVnaW59IHBsdWdpbnMgcGx1Z2luIGluc3RhbmNlKHMpLlxuXHQgKi9cblx0dW5yZWdpc3RlcjogZnVuY3Rpb24ocGx1Z2lucykge1xuXHRcdHZhciBwID0gdGhpcy5fcGx1Z2lucztcblx0XHQoW10pLmNvbmNhdChwbHVnaW5zKS5mb3JFYWNoKGZ1bmN0aW9uKHBsdWdpbikge1xuXHRcdFx0dmFyIGlkeCA9IHAuaW5kZXhPZihwbHVnaW4pO1xuXHRcdFx0aWYgKGlkeCAhPT0gLTEpIHtcblx0XHRcdFx0cC5zcGxpY2UoaWR4LCAxKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMuX2NhY2hlSWQrKztcblx0fSxcblxuXHQvKipcblx0ICogUmVtb3ZlIGFsbCByZWdpc3RlcmVkIHBsdWdpbnMuXG5cdCAqIEBzaW5jZSAyLjEuNVxuXHQgKi9cblx0Y2xlYXI6IGZ1bmN0aW9uKCkge1xuXHRcdHRoaXMuX3BsdWdpbnMgPSBbXTtcblx0XHR0aGlzLl9jYWNoZUlkKys7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIG51bWJlciBvZiByZWdpc3RlcmVkIHBsdWdpbnM/XG5cdCAqIEByZXR1cm5zIHtudW1iZXJ9XG5cdCAqIEBzaW5jZSAyLjEuNVxuXHQgKi9cblx0Y291bnQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLl9wbHVnaW5zLmxlbmd0aDtcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyBhbGwgcmVnaXN0ZXJlZCBwbHVnaW4gaW5zdGFuY2VzLlxuXHQgKiBAcmV0dXJucyB7SVBsdWdpbltdfSBhcnJheSBvZiBwbHVnaW4gb2JqZWN0cy5cblx0ICogQHNpbmNlIDIuMS41XG5cdCAqL1xuXHRnZXRBbGw6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLl9wbHVnaW5zO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDYWxscyBlbmFibGVkIHBsdWdpbnMgZm9yIGBjaGFydGAgb24gdGhlIHNwZWNpZmllZCBob29rIGFuZCB3aXRoIHRoZSBnaXZlbiBhcmdzLlxuXHQgKiBUaGlzIG1ldGhvZCBpbW1lZGlhdGVseSByZXR1cm5zIGFzIHNvb24gYXMgYSBwbHVnaW4gZXhwbGljaXRseSByZXR1cm5zIGZhbHNlLiBUaGVcblx0ICogcmV0dXJuZWQgdmFsdWUgY2FuIGJlIHVzZWQsIGZvciBpbnN0YW5jZSwgdG8gaW50ZXJydXB0IHRoZSBjdXJyZW50IGFjdGlvbi5cblx0ICogQHBhcmFtIHtDaGFydH0gY2hhcnQgLSBUaGUgY2hhcnQgaW5zdGFuY2UgZm9yIHdoaWNoIHBsdWdpbnMgc2hvdWxkIGJlIGNhbGxlZC5cblx0ICogQHBhcmFtIHtzdHJpbmd9IGhvb2sgLSBUaGUgbmFtZSBvZiB0aGUgcGx1Z2luIG1ldGhvZCB0byBjYWxsIChlLmcuICdiZWZvcmVVcGRhdGUnKS5cblx0ICogQHBhcmFtIHtBcnJheX0gW2FyZ3NdIC0gRXh0cmEgYXJndW1lbnRzIHRvIGFwcGx5IHRvIHRoZSBob29rIGNhbGwuXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBmYWxzZSBpZiBhbnkgb2YgdGhlIHBsdWdpbnMgcmV0dXJuIGZhbHNlLCBlbHNlIHJldHVybnMgdHJ1ZS5cblx0ICovXG5cdG5vdGlmeTogZnVuY3Rpb24oY2hhcnQsIGhvb2ssIGFyZ3MpIHtcblx0XHR2YXIgZGVzY3JpcHRvcnMgPSB0aGlzLmRlc2NyaXB0b3JzKGNoYXJ0KTtcblx0XHR2YXIgaWxlbiA9IGRlc2NyaXB0b3JzLmxlbmd0aDtcblx0XHR2YXIgaSwgZGVzY3JpcHRvciwgcGx1Z2luLCBwYXJhbXMsIG1ldGhvZDtcblxuXHRcdGZvciAoaSA9IDA7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdGRlc2NyaXB0b3IgPSBkZXNjcmlwdG9yc1tpXTtcblx0XHRcdHBsdWdpbiA9IGRlc2NyaXB0b3IucGx1Z2luO1xuXHRcdFx0bWV0aG9kID0gcGx1Z2luW2hvb2tdO1xuXHRcdFx0aWYgKHR5cGVvZiBtZXRob2QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0cGFyYW1zID0gW2NoYXJ0XS5jb25jYXQoYXJncyB8fCBbXSk7XG5cdFx0XHRcdHBhcmFtcy5wdXNoKGRlc2NyaXB0b3Iub3B0aW9ucyk7XG5cdFx0XHRcdGlmIChtZXRob2QuYXBwbHkocGx1Z2luLCBwYXJhbXMpID09PSBmYWxzZSkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGRlc2NyaXB0b3JzIG9mIGVuYWJsZWQgcGx1Z2lucyBmb3IgdGhlIGdpdmVuIGNoYXJ0LlxuXHQgKiBAcmV0dXJucyB7b2JqZWN0W119IFt7IHBsdWdpbiwgb3B0aW9ucyB9XVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0ZGVzY3JpcHRvcnM6IGZ1bmN0aW9uKGNoYXJ0KSB7XG5cdFx0dmFyIGNhY2hlID0gY2hhcnQuJHBsdWdpbnMgfHwgKGNoYXJ0LiRwbHVnaW5zID0ge30pO1xuXHRcdGlmIChjYWNoZS5pZCA9PT0gdGhpcy5fY2FjaGVJZCkge1xuXHRcdFx0cmV0dXJuIGNhY2hlLmRlc2NyaXB0b3JzO1xuXHRcdH1cblxuXHRcdHZhciBwbHVnaW5zID0gW107XG5cdFx0dmFyIGRlc2NyaXB0b3JzID0gW107XG5cdFx0dmFyIGNvbmZpZyA9IChjaGFydCAmJiBjaGFydC5jb25maWcpIHx8IHt9O1xuXHRcdHZhciBvcHRpb25zID0gKGNvbmZpZy5vcHRpb25zICYmIGNvbmZpZy5vcHRpb25zLnBsdWdpbnMpIHx8IHt9O1xuXG5cdFx0dGhpcy5fcGx1Z2lucy5jb25jYXQoY29uZmlnLnBsdWdpbnMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24ocGx1Z2luKSB7XG5cdFx0XHR2YXIgaWR4ID0gcGx1Z2lucy5pbmRleE9mKHBsdWdpbik7XG5cdFx0XHRpZiAoaWR4ICE9PSAtMSkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHZhciBpZCA9IHBsdWdpbi5pZDtcblx0XHRcdHZhciBvcHRzID0gb3B0aW9uc1tpZF07XG5cdFx0XHRpZiAob3B0cyA9PT0gZmFsc2UpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAob3B0cyA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRvcHRzID0gaGVscGVycyQxLmNsb25lKGNvcmVfZGVmYXVsdHMuZ2xvYmFsLnBsdWdpbnNbaWRdKTtcblx0XHRcdH1cblxuXHRcdFx0cGx1Z2lucy5wdXNoKHBsdWdpbik7XG5cdFx0XHRkZXNjcmlwdG9ycy5wdXNoKHtcblx0XHRcdFx0cGx1Z2luOiBwbHVnaW4sXG5cdFx0XHRcdG9wdGlvbnM6IG9wdHMgfHwge31cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0Y2FjaGUuZGVzY3JpcHRvcnMgPSBkZXNjcmlwdG9ycztcblx0XHRjYWNoZS5pZCA9IHRoaXMuX2NhY2hlSWQ7XG5cdFx0cmV0dXJuIGRlc2NyaXB0b3JzO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBJbnZhbGlkYXRlcyBjYWNoZSBmb3IgdGhlIGdpdmVuIGNoYXJ0OiBkZXNjcmlwdG9ycyBob2xkIGEgcmVmZXJlbmNlIG9uIHBsdWdpbiBvcHRpb24sXG5cdCAqIGJ1dCBpbiBzb21lIGNhc2VzLCB0aGlzIHJlZmVyZW5jZSBjYW4gYmUgY2hhbmdlZCBieSB0aGUgdXNlciB3aGVuIHVwZGF0aW5nIG9wdGlvbnMuXG5cdCAqIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL2lzc3Vlcy81MTExI2lzc3VlY29tbWVudC0zNTU5MzQxNjdcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9pbnZhbGlkYXRlOiBmdW5jdGlvbihjaGFydCkge1xuXHRcdGRlbGV0ZSBjaGFydC4kcGx1Z2lucztcblx0fVxufTtcblxudmFyIGNvcmVfc2NhbGVTZXJ2aWNlID0ge1xuXHQvLyBTY2FsZSByZWdpc3RyYXRpb24gb2JqZWN0LiBFeHRlbnNpb25zIGNhbiByZWdpc3RlciBuZXcgc2NhbGUgdHlwZXMgKHN1Y2ggYXMgbG9nIG9yIERCIHNjYWxlcykgYW5kIHRoZW5cblx0Ly8gdXNlIHRoZSBuZXcgY2hhcnQgb3B0aW9ucyB0byBncmFiIHRoZSBjb3JyZWN0IHNjYWxlXG5cdGNvbnN0cnVjdG9yczoge30sXG5cdC8vIFVzZSBhIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiBtb3ZlIHRvIGFuIEVTNiBtYXAgd2hlbiB3ZSBubyBsb25nZXIgbmVlZCB0byBzdXBwb3J0XG5cdC8vIG9sZCBicm93c2Vyc1xuXG5cdC8vIFNjYWxlIGNvbmZpZyBkZWZhdWx0c1xuXHRkZWZhdWx0czoge30sXG5cdHJlZ2lzdGVyU2NhbGVUeXBlOiBmdW5jdGlvbih0eXBlLCBzY2FsZUNvbnN0cnVjdG9yLCBzY2FsZURlZmF1bHRzKSB7XG5cdFx0dGhpcy5jb25zdHJ1Y3RvcnNbdHlwZV0gPSBzY2FsZUNvbnN0cnVjdG9yO1xuXHRcdHRoaXMuZGVmYXVsdHNbdHlwZV0gPSBoZWxwZXJzJDEuY2xvbmUoc2NhbGVEZWZhdWx0cyk7XG5cdH0sXG5cdGdldFNjYWxlQ29uc3RydWN0b3I6IGZ1bmN0aW9uKHR5cGUpIHtcblx0XHRyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcnMuaGFzT3duUHJvcGVydHkodHlwZSkgPyB0aGlzLmNvbnN0cnVjdG9yc1t0eXBlXSA6IHVuZGVmaW5lZDtcblx0fSxcblx0Z2V0U2NhbGVEZWZhdWx0czogZnVuY3Rpb24odHlwZSkge1xuXHRcdC8vIFJldHVybiB0aGUgc2NhbGUgZGVmYXVsdHMgbWVyZ2VkIHdpdGggdGhlIGdsb2JhbCBzZXR0aW5ncyBzbyB0aGF0IHdlIGFsd2F5cyB1c2UgdGhlIGxhdGVzdCBvbmVzXG5cdFx0cmV0dXJuIHRoaXMuZGVmYXVsdHMuaGFzT3duUHJvcGVydHkodHlwZSkgPyBoZWxwZXJzJDEubWVyZ2Uoe30sIFtjb3JlX2RlZmF1bHRzLnNjYWxlLCB0aGlzLmRlZmF1bHRzW3R5cGVdXSkgOiB7fTtcblx0fSxcblx0dXBkYXRlU2NhbGVEZWZhdWx0czogZnVuY3Rpb24odHlwZSwgYWRkaXRpb25zKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHRpZiAobWUuZGVmYXVsdHMuaGFzT3duUHJvcGVydHkodHlwZSkpIHtcblx0XHRcdG1lLmRlZmF1bHRzW3R5cGVdID0gaGVscGVycyQxLmV4dGVuZChtZS5kZWZhdWx0c1t0eXBlXSwgYWRkaXRpb25zKTtcblx0XHR9XG5cdH0sXG5cdGFkZFNjYWxlc1RvTGF5b3V0OiBmdW5jdGlvbihjaGFydCkge1xuXHRcdC8vIEFkZHMgZWFjaCBzY2FsZSB0byB0aGUgY2hhcnQuYm94ZXMgYXJyYXkgdG8gYmUgc2l6ZWQgYWNjb3JkaW5nbHlcblx0XHRoZWxwZXJzJDEuZWFjaChjaGFydC5zY2FsZXMsIGZ1bmN0aW9uKHNjYWxlKSB7XG5cdFx0XHQvLyBTZXQgSUxheW91dEl0ZW0gcGFyYW1ldGVycyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcblx0XHRcdHNjYWxlLmZ1bGxXaWR0aCA9IHNjYWxlLm9wdGlvbnMuZnVsbFdpZHRoO1xuXHRcdFx0c2NhbGUucG9zaXRpb24gPSBzY2FsZS5vcHRpb25zLnBvc2l0aW9uO1xuXHRcdFx0c2NhbGUud2VpZ2h0ID0gc2NhbGUub3B0aW9ucy53ZWlnaHQ7XG5cdFx0XHRjb3JlX2xheW91dHMuYWRkQm94KGNoYXJ0LCBzY2FsZSk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbnZhciB2YWx1ZU9yRGVmYXVsdCQ3ID0gaGVscGVycyQxLnZhbHVlT3JEZWZhdWx0O1xuXG5jb3JlX2RlZmF1bHRzLl9zZXQoJ2dsb2JhbCcsIHtcblx0dG9vbHRpcHM6IHtcblx0XHRlbmFibGVkOiB0cnVlLFxuXHRcdGN1c3RvbTogbnVsbCxcblx0XHRtb2RlOiAnbmVhcmVzdCcsXG5cdFx0cG9zaXRpb246ICdhdmVyYWdlJyxcblx0XHRpbnRlcnNlY3Q6IHRydWUsXG5cdFx0YmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwwLjgpJyxcblx0XHR0aXRsZUZvbnRTdHlsZTogJ2JvbGQnLFxuXHRcdHRpdGxlU3BhY2luZzogMixcblx0XHR0aXRsZU1hcmdpbkJvdHRvbTogNixcblx0XHR0aXRsZUZvbnRDb2xvcjogJyNmZmYnLFxuXHRcdHRpdGxlQWxpZ246ICdsZWZ0Jyxcblx0XHRib2R5U3BhY2luZzogMixcblx0XHRib2R5Rm9udENvbG9yOiAnI2ZmZicsXG5cdFx0Ym9keUFsaWduOiAnbGVmdCcsXG5cdFx0Zm9vdGVyRm9udFN0eWxlOiAnYm9sZCcsXG5cdFx0Zm9vdGVyU3BhY2luZzogMixcblx0XHRmb290ZXJNYXJnaW5Ub3A6IDYsXG5cdFx0Zm9vdGVyRm9udENvbG9yOiAnI2ZmZicsXG5cdFx0Zm9vdGVyQWxpZ246ICdsZWZ0Jyxcblx0XHR5UGFkZGluZzogNixcblx0XHR4UGFkZGluZzogNixcblx0XHRjYXJldFBhZGRpbmc6IDIsXG5cdFx0Y2FyZXRTaXplOiA1LFxuXHRcdGNvcm5lclJhZGl1czogNixcblx0XHRtdWx0aUtleUJhY2tncm91bmQ6ICcjZmZmJyxcblx0XHRkaXNwbGF5Q29sb3JzOiB0cnVlLFxuXHRcdGJvcmRlckNvbG9yOiAncmdiYSgwLDAsMCwwKScsXG5cdFx0Ym9yZGVyV2lkdGg6IDAsXG5cdFx0Y2FsbGJhY2tzOiB7XG5cdFx0XHQvLyBBcmdzIGFyZTogKHRvb2x0aXBJdGVtcywgZGF0YSlcblx0XHRcdGJlZm9yZVRpdGxlOiBoZWxwZXJzJDEubm9vcCxcblx0XHRcdHRpdGxlOiBmdW5jdGlvbih0b29sdGlwSXRlbXMsIGRhdGEpIHtcblx0XHRcdFx0dmFyIHRpdGxlID0gJyc7XG5cdFx0XHRcdHZhciBsYWJlbHMgPSBkYXRhLmxhYmVscztcblx0XHRcdFx0dmFyIGxhYmVsQ291bnQgPSBsYWJlbHMgPyBsYWJlbHMubGVuZ3RoIDogMDtcblxuXHRcdFx0XHRpZiAodG9vbHRpcEl0ZW1zLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHR2YXIgaXRlbSA9IHRvb2x0aXBJdGVtc1swXTtcblx0XHRcdFx0XHRpZiAoaXRlbS5sYWJlbCkge1xuXHRcdFx0XHRcdFx0dGl0bGUgPSBpdGVtLmxhYmVsO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoaXRlbS54TGFiZWwpIHtcblx0XHRcdFx0XHRcdHRpdGxlID0gaXRlbS54TGFiZWw7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChsYWJlbENvdW50ID4gMCAmJiBpdGVtLmluZGV4IDwgbGFiZWxDb3VudCkge1xuXHRcdFx0XHRcdFx0dGl0bGUgPSBsYWJlbHNbaXRlbS5pbmRleF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHRpdGxlO1xuXHRcdFx0fSxcblx0XHRcdGFmdGVyVGl0bGU6IGhlbHBlcnMkMS5ub29wLFxuXG5cdFx0XHQvLyBBcmdzIGFyZTogKHRvb2x0aXBJdGVtcywgZGF0YSlcblx0XHRcdGJlZm9yZUJvZHk6IGhlbHBlcnMkMS5ub29wLFxuXG5cdFx0XHQvLyBBcmdzIGFyZTogKHRvb2x0aXBJdGVtLCBkYXRhKVxuXHRcdFx0YmVmb3JlTGFiZWw6IGhlbHBlcnMkMS5ub29wLFxuXHRcdFx0bGFiZWw6IGZ1bmN0aW9uKHRvb2x0aXBJdGVtLCBkYXRhKSB7XG5cdFx0XHRcdHZhciBsYWJlbCA9IGRhdGEuZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XS5sYWJlbCB8fCAnJztcblxuXHRcdFx0XHRpZiAobGFiZWwpIHtcblx0XHRcdFx0XHRsYWJlbCArPSAnOiAnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghaGVscGVycyQxLmlzTnVsbE9yVW5kZWYodG9vbHRpcEl0ZW0udmFsdWUpKSB7XG5cdFx0XHRcdFx0bGFiZWwgKz0gdG9vbHRpcEl0ZW0udmFsdWU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0bGFiZWwgKz0gdG9vbHRpcEl0ZW0ueUxhYmVsO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBsYWJlbDtcblx0XHRcdH0sXG5cdFx0XHRsYWJlbENvbG9yOiBmdW5jdGlvbih0b29sdGlwSXRlbSwgY2hhcnQpIHtcblx0XHRcdFx0dmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YSh0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXgpO1xuXHRcdFx0XHR2YXIgYWN0aXZlRWxlbWVudCA9IG1ldGEuZGF0YVt0b29sdGlwSXRlbS5pbmRleF07XG5cdFx0XHRcdHZhciB2aWV3ID0gYWN0aXZlRWxlbWVudC5fdmlldztcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRib3JkZXJDb2xvcjogdmlldy5ib3JkZXJDb2xvcixcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IHZpZXcuYmFja2dyb3VuZENvbG9yXG5cdFx0XHRcdH07XG5cdFx0XHR9LFxuXHRcdFx0bGFiZWxUZXh0Q29sb3I6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fb3B0aW9ucy5ib2R5Rm9udENvbG9yO1xuXHRcdFx0fSxcblx0XHRcdGFmdGVyTGFiZWw6IGhlbHBlcnMkMS5ub29wLFxuXG5cdFx0XHQvLyBBcmdzIGFyZTogKHRvb2x0aXBJdGVtcywgZGF0YSlcblx0XHRcdGFmdGVyQm9keTogaGVscGVycyQxLm5vb3AsXG5cblx0XHRcdC8vIEFyZ3MgYXJlOiAodG9vbHRpcEl0ZW1zLCBkYXRhKVxuXHRcdFx0YmVmb3JlRm9vdGVyOiBoZWxwZXJzJDEubm9vcCxcblx0XHRcdGZvb3RlcjogaGVscGVycyQxLm5vb3AsXG5cdFx0XHRhZnRlckZvb3RlcjogaGVscGVycyQxLm5vb3Bcblx0XHR9XG5cdH1cbn0pO1xuXG52YXIgcG9zaXRpb25lcnMgPSB7XG5cdC8qKlxuXHQgKiBBdmVyYWdlIG1vZGUgcGxhY2VzIHRoZSB0b29sdGlwIGF0IHRoZSBhdmVyYWdlIHBvc2l0aW9uIG9mIHRoZSBlbGVtZW50cyBzaG93blxuXHQgKiBAZnVuY3Rpb24gQ2hhcnQuVG9vbHRpcC5wb3NpdGlvbmVycy5hdmVyYWdlXG5cdCAqIEBwYXJhbSBlbGVtZW50cyB7Q2hhcnRFbGVtZW50W119IHRoZSBlbGVtZW50cyBiZWluZyBkaXNwbGF5ZWQgaW4gdGhlIHRvb2x0aXBcblx0ICogQHJldHVybnMge29iamVjdH0gdG9vbHRpcCBwb3NpdGlvblxuXHQgKi9cblx0YXZlcmFnZTogZnVuY3Rpb24oZWxlbWVudHMpIHtcblx0XHRpZiAoIWVsZW1lbnRzLmxlbmd0aCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHZhciBpLCBsZW47XG5cdFx0dmFyIHggPSAwO1xuXHRcdHZhciB5ID0gMDtcblx0XHR2YXIgY291bnQgPSAwO1xuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gZWxlbWVudHMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcblx0XHRcdHZhciBlbCA9IGVsZW1lbnRzW2ldO1xuXHRcdFx0aWYgKGVsICYmIGVsLmhhc1ZhbHVlKCkpIHtcblx0XHRcdFx0dmFyIHBvcyA9IGVsLnRvb2x0aXBQb3NpdGlvbigpO1xuXHRcdFx0XHR4ICs9IHBvcy54O1xuXHRcdFx0XHR5ICs9IHBvcy55O1xuXHRcdFx0XHQrK2NvdW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHR4OiB4IC8gY291bnQsXG5cdFx0XHR5OiB5IC8gY291bnRcblx0XHR9O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSB0b29sdGlwIHBvc2l0aW9uIG5lYXJlc3Qgb2YgdGhlIGl0ZW0gbmVhcmVzdCB0byB0aGUgZXZlbnQgcG9zaXRpb25cblx0ICogQGZ1bmN0aW9uIENoYXJ0LlRvb2x0aXAucG9zaXRpb25lcnMubmVhcmVzdFxuXHQgKiBAcGFyYW0gZWxlbWVudHMge0NoYXJ0LkVsZW1lbnRbXX0gdGhlIHRvb2x0aXAgZWxlbWVudHNcblx0ICogQHBhcmFtIGV2ZW50UG9zaXRpb24ge29iamVjdH0gdGhlIHBvc2l0aW9uIG9mIHRoZSBldmVudCBpbiBjYW52YXMgY29vcmRpbmF0ZXNcblx0ICogQHJldHVybnMge29iamVjdH0gdGhlIHRvb2x0aXAgcG9zaXRpb25cblx0ICovXG5cdG5lYXJlc3Q6IGZ1bmN0aW9uKGVsZW1lbnRzLCBldmVudFBvc2l0aW9uKSB7XG5cdFx0dmFyIHggPSBldmVudFBvc2l0aW9uLng7XG5cdFx0dmFyIHkgPSBldmVudFBvc2l0aW9uLnk7XG5cdFx0dmFyIG1pbkRpc3RhbmNlID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuXHRcdHZhciBpLCBsZW4sIG5lYXJlc3RFbGVtZW50O1xuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gZWxlbWVudHMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcblx0XHRcdHZhciBlbCA9IGVsZW1lbnRzW2ldO1xuXHRcdFx0aWYgKGVsICYmIGVsLmhhc1ZhbHVlKCkpIHtcblx0XHRcdFx0dmFyIGNlbnRlciA9IGVsLmdldENlbnRlclBvaW50KCk7XG5cdFx0XHRcdHZhciBkID0gaGVscGVycyQxLmRpc3RhbmNlQmV0d2VlblBvaW50cyhldmVudFBvc2l0aW9uLCBjZW50ZXIpO1xuXG5cdFx0XHRcdGlmIChkIDwgbWluRGlzdGFuY2UpIHtcblx0XHRcdFx0XHRtaW5EaXN0YW5jZSA9IGQ7XG5cdFx0XHRcdFx0bmVhcmVzdEVsZW1lbnQgPSBlbDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChuZWFyZXN0RWxlbWVudCkge1xuXHRcdFx0dmFyIHRwID0gbmVhcmVzdEVsZW1lbnQudG9vbHRpcFBvc2l0aW9uKCk7XG5cdFx0XHR4ID0gdHAueDtcblx0XHRcdHkgPSB0cC55O1xuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHR4OiB4LFxuXHRcdFx0eTogeVxuXHRcdH07XG5cdH1cbn07XG5cbi8vIEhlbHBlciB0byBwdXNoIG9yIGNvbmNhdCBiYXNlZCBvbiBpZiB0aGUgMm5kIHBhcmFtZXRlciBpcyBhbiBhcnJheSBvciBub3RcbmZ1bmN0aW9uIHB1c2hPckNvbmNhdChiYXNlLCB0b1B1c2gpIHtcblx0aWYgKHRvUHVzaCkge1xuXHRcdGlmIChoZWxwZXJzJDEuaXNBcnJheSh0b1B1c2gpKSB7XG5cdFx0XHQvLyBiYXNlID0gYmFzZS5jb25jYXQodG9QdXNoKTtcblx0XHRcdEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGJhc2UsIHRvUHVzaCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGJhc2UucHVzaCh0b1B1c2gpO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBiYXNlO1xufVxuXG4vKipcbiAqIFJldHVybnMgYXJyYXkgb2Ygc3RyaW5ncyBzcGxpdCBieSBuZXdsaW5lXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc3BsaXQgYnkgbmV3bGluZS5cbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gdmFsdWUgaWYgbmV3bGluZSBwcmVzZW50IC0gUmV0dXJuZWQgZnJvbSBTdHJpbmcgc3BsaXQoKSBtZXRob2RcbiAqIEBmdW5jdGlvblxuICovXG5mdW5jdGlvbiBzcGxpdE5ld2xpbmVzKHN0cikge1xuXHRpZiAoKHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnIHx8IHN0ciBpbnN0YW5jZW9mIFN0cmluZykgJiYgc3RyLmluZGV4T2YoJ1xcbicpID4gLTEpIHtcblx0XHRyZXR1cm4gc3RyLnNwbGl0KCdcXG4nKTtcblx0fVxuXHRyZXR1cm4gc3RyO1xufVxuXG5cbi8qKlxuICogUHJpdmF0ZSBoZWxwZXIgdG8gY3JlYXRlIGEgdG9vbHRpcCBpdGVtIG1vZGVsXG4gKiBAcGFyYW0gZWxlbWVudCAtIHRoZSBjaGFydCBlbGVtZW50IChwb2ludCwgYXJjLCBiYXIpIHRvIGNyZWF0ZSB0aGUgdG9vbHRpcCBpdGVtIGZvclxuICogQHJldHVybiBuZXcgdG9vbHRpcCBpdGVtXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVRvb2x0aXBJdGVtKGVsZW1lbnQpIHtcblx0dmFyIHhTY2FsZSA9IGVsZW1lbnQuX3hTY2FsZTtcblx0dmFyIHlTY2FsZSA9IGVsZW1lbnQuX3lTY2FsZSB8fCBlbGVtZW50Ll9zY2FsZTsgLy8gaGFuZGxlIHJhZGFyIHx8IHBvbGFyQXJlYSBjaGFydHNcblx0dmFyIGluZGV4ID0gZWxlbWVudC5faW5kZXg7XG5cdHZhciBkYXRhc2V0SW5kZXggPSBlbGVtZW50Ll9kYXRhc2V0SW5kZXg7XG5cdHZhciBjb250cm9sbGVyID0gZWxlbWVudC5fY2hhcnQuZ2V0RGF0YXNldE1ldGEoZGF0YXNldEluZGV4KS5jb250cm9sbGVyO1xuXHR2YXIgaW5kZXhTY2FsZSA9IGNvbnRyb2xsZXIuX2dldEluZGV4U2NhbGUoKTtcblx0dmFyIHZhbHVlU2NhbGUgPSBjb250cm9sbGVyLl9nZXRWYWx1ZVNjYWxlKCk7XG5cblx0cmV0dXJuIHtcblx0XHR4TGFiZWw6IHhTY2FsZSA/IHhTY2FsZS5nZXRMYWJlbEZvckluZGV4KGluZGV4LCBkYXRhc2V0SW5kZXgpIDogJycsXG5cdFx0eUxhYmVsOiB5U2NhbGUgPyB5U2NhbGUuZ2V0TGFiZWxGb3JJbmRleChpbmRleCwgZGF0YXNldEluZGV4KSA6ICcnLFxuXHRcdGxhYmVsOiBpbmRleFNjYWxlID8gJycgKyBpbmRleFNjYWxlLmdldExhYmVsRm9ySW5kZXgoaW5kZXgsIGRhdGFzZXRJbmRleCkgOiAnJyxcblx0XHR2YWx1ZTogdmFsdWVTY2FsZSA/ICcnICsgdmFsdWVTY2FsZS5nZXRMYWJlbEZvckluZGV4KGluZGV4LCBkYXRhc2V0SW5kZXgpIDogJycsXG5cdFx0aW5kZXg6IGluZGV4LFxuXHRcdGRhdGFzZXRJbmRleDogZGF0YXNldEluZGV4LFxuXHRcdHg6IGVsZW1lbnQuX21vZGVsLngsXG5cdFx0eTogZWxlbWVudC5fbW9kZWwueVxuXHR9O1xufVxuXG4vKipcbiAqIEhlbHBlciB0byBnZXQgdGhlIHJlc2V0IG1vZGVsIGZvciB0aGUgdG9vbHRpcFxuICogQHBhcmFtIHRvb2x0aXBPcHRzIHtvYmplY3R9IHRoZSB0b29sdGlwIG9wdGlvbnNcbiAqL1xuZnVuY3Rpb24gZ2V0QmFzZU1vZGVsKHRvb2x0aXBPcHRzKSB7XG5cdHZhciBnbG9iYWxEZWZhdWx0cyA9IGNvcmVfZGVmYXVsdHMuZ2xvYmFsO1xuXG5cdHJldHVybiB7XG5cdFx0Ly8gUG9zaXRpb25pbmdcblx0XHR4UGFkZGluZzogdG9vbHRpcE9wdHMueFBhZGRpbmcsXG5cdFx0eVBhZGRpbmc6IHRvb2x0aXBPcHRzLnlQYWRkaW5nLFxuXHRcdHhBbGlnbjogdG9vbHRpcE9wdHMueEFsaWduLFxuXHRcdHlBbGlnbjogdG9vbHRpcE9wdHMueUFsaWduLFxuXG5cdFx0Ly8gQm9keVxuXHRcdGJvZHlGb250Q29sb3I6IHRvb2x0aXBPcHRzLmJvZHlGb250Q29sb3IsXG5cdFx0X2JvZHlGb250RmFtaWx5OiB2YWx1ZU9yRGVmYXVsdCQ3KHRvb2x0aXBPcHRzLmJvZHlGb250RmFtaWx5LCBnbG9iYWxEZWZhdWx0cy5kZWZhdWx0Rm9udEZhbWlseSksXG5cdFx0X2JvZHlGb250U3R5bGU6IHZhbHVlT3JEZWZhdWx0JDcodG9vbHRpcE9wdHMuYm9keUZvbnRTdHlsZSwgZ2xvYmFsRGVmYXVsdHMuZGVmYXVsdEZvbnRTdHlsZSksXG5cdFx0X2JvZHlBbGlnbjogdG9vbHRpcE9wdHMuYm9keUFsaWduLFxuXHRcdGJvZHlGb250U2l6ZTogdmFsdWVPckRlZmF1bHQkNyh0b29sdGlwT3B0cy5ib2R5Rm9udFNpemUsIGdsb2JhbERlZmF1bHRzLmRlZmF1bHRGb250U2l6ZSksXG5cdFx0Ym9keVNwYWNpbmc6IHRvb2x0aXBPcHRzLmJvZHlTcGFjaW5nLFxuXG5cdFx0Ly8gVGl0bGVcblx0XHR0aXRsZUZvbnRDb2xvcjogdG9vbHRpcE9wdHMudGl0bGVGb250Q29sb3IsXG5cdFx0X3RpdGxlRm9udEZhbWlseTogdmFsdWVPckRlZmF1bHQkNyh0b29sdGlwT3B0cy50aXRsZUZvbnRGYW1pbHksIGdsb2JhbERlZmF1bHRzLmRlZmF1bHRGb250RmFtaWx5KSxcblx0XHRfdGl0bGVGb250U3R5bGU6IHZhbHVlT3JEZWZhdWx0JDcodG9vbHRpcE9wdHMudGl0bGVGb250U3R5bGUsIGdsb2JhbERlZmF1bHRzLmRlZmF1bHRGb250U3R5bGUpLFxuXHRcdHRpdGxlRm9udFNpemU6IHZhbHVlT3JEZWZhdWx0JDcodG9vbHRpcE9wdHMudGl0bGVGb250U2l6ZSwgZ2xvYmFsRGVmYXVsdHMuZGVmYXVsdEZvbnRTaXplKSxcblx0XHRfdGl0bGVBbGlnbjogdG9vbHRpcE9wdHMudGl0bGVBbGlnbixcblx0XHR0aXRsZVNwYWNpbmc6IHRvb2x0aXBPcHRzLnRpdGxlU3BhY2luZyxcblx0XHR0aXRsZU1hcmdpbkJvdHRvbTogdG9vbHRpcE9wdHMudGl0bGVNYXJnaW5Cb3R0b20sXG5cblx0XHQvLyBGb290ZXJcblx0XHRmb290ZXJGb250Q29sb3I6IHRvb2x0aXBPcHRzLmZvb3RlckZvbnRDb2xvcixcblx0XHRfZm9vdGVyRm9udEZhbWlseTogdmFsdWVPckRlZmF1bHQkNyh0b29sdGlwT3B0cy5mb290ZXJGb250RmFtaWx5LCBnbG9iYWxEZWZhdWx0cy5kZWZhdWx0Rm9udEZhbWlseSksXG5cdFx0X2Zvb3RlckZvbnRTdHlsZTogdmFsdWVPckRlZmF1bHQkNyh0b29sdGlwT3B0cy5mb290ZXJGb250U3R5bGUsIGdsb2JhbERlZmF1bHRzLmRlZmF1bHRGb250U3R5bGUpLFxuXHRcdGZvb3RlckZvbnRTaXplOiB2YWx1ZU9yRGVmYXVsdCQ3KHRvb2x0aXBPcHRzLmZvb3RlckZvbnRTaXplLCBnbG9iYWxEZWZhdWx0cy5kZWZhdWx0Rm9udFNpemUpLFxuXHRcdF9mb290ZXJBbGlnbjogdG9vbHRpcE9wdHMuZm9vdGVyQWxpZ24sXG5cdFx0Zm9vdGVyU3BhY2luZzogdG9vbHRpcE9wdHMuZm9vdGVyU3BhY2luZyxcblx0XHRmb290ZXJNYXJnaW5Ub3A6IHRvb2x0aXBPcHRzLmZvb3Rlck1hcmdpblRvcCxcblxuXHRcdC8vIEFwcGVhcmFuY2Vcblx0XHRjYXJldFNpemU6IHRvb2x0aXBPcHRzLmNhcmV0U2l6ZSxcblx0XHRjb3JuZXJSYWRpdXM6IHRvb2x0aXBPcHRzLmNvcm5lclJhZGl1cyxcblx0XHRiYWNrZ3JvdW5kQ29sb3I6IHRvb2x0aXBPcHRzLmJhY2tncm91bmRDb2xvcixcblx0XHRvcGFjaXR5OiAwLFxuXHRcdGxlZ2VuZENvbG9yQmFja2dyb3VuZDogdG9vbHRpcE9wdHMubXVsdGlLZXlCYWNrZ3JvdW5kLFxuXHRcdGRpc3BsYXlDb2xvcnM6IHRvb2x0aXBPcHRzLmRpc3BsYXlDb2xvcnMsXG5cdFx0Ym9yZGVyQ29sb3I6IHRvb2x0aXBPcHRzLmJvcmRlckNvbG9yLFxuXHRcdGJvcmRlcldpZHRoOiB0b29sdGlwT3B0cy5ib3JkZXJXaWR0aFxuXHR9O1xufVxuXG4vKipcbiAqIEdldCB0aGUgc2l6ZSBvZiB0aGUgdG9vbHRpcFxuICovXG5mdW5jdGlvbiBnZXRUb29sdGlwU2l6ZSh0b29sdGlwLCBtb2RlbCkge1xuXHR2YXIgY3R4ID0gdG9vbHRpcC5fY2hhcnQuY3R4O1xuXG5cdHZhciBoZWlnaHQgPSBtb2RlbC55UGFkZGluZyAqIDI7IC8vIFRvb2x0aXAgUGFkZGluZ1xuXHR2YXIgd2lkdGggPSAwO1xuXG5cdC8vIENvdW50IG9mIGFsbCBsaW5lcyBpbiB0aGUgYm9keVxuXHR2YXIgYm9keSA9IG1vZGVsLmJvZHk7XG5cdHZhciBjb21iaW5lZEJvZHlMZW5ndGggPSBib2R5LnJlZHVjZShmdW5jdGlvbihjb3VudCwgYm9keUl0ZW0pIHtcblx0XHRyZXR1cm4gY291bnQgKyBib2R5SXRlbS5iZWZvcmUubGVuZ3RoICsgYm9keUl0ZW0ubGluZXMubGVuZ3RoICsgYm9keUl0ZW0uYWZ0ZXIubGVuZ3RoO1xuXHR9LCAwKTtcblx0Y29tYmluZWRCb2R5TGVuZ3RoICs9IG1vZGVsLmJlZm9yZUJvZHkubGVuZ3RoICsgbW9kZWwuYWZ0ZXJCb2R5Lmxlbmd0aDtcblxuXHR2YXIgdGl0bGVMaW5lQ291bnQgPSBtb2RlbC50aXRsZS5sZW5ndGg7XG5cdHZhciBmb290ZXJMaW5lQ291bnQgPSBtb2RlbC5mb290ZXIubGVuZ3RoO1xuXHR2YXIgdGl0bGVGb250U2l6ZSA9IG1vZGVsLnRpdGxlRm9udFNpemU7XG5cdHZhciBib2R5Rm9udFNpemUgPSBtb2RlbC5ib2R5Rm9udFNpemU7XG5cdHZhciBmb290ZXJGb250U2l6ZSA9IG1vZGVsLmZvb3RlckZvbnRTaXplO1xuXG5cdGhlaWdodCArPSB0aXRsZUxpbmVDb3VudCAqIHRpdGxlRm9udFNpemU7IC8vIFRpdGxlIExpbmVzXG5cdGhlaWdodCArPSB0aXRsZUxpbmVDb3VudCA/ICh0aXRsZUxpbmVDb3VudCAtIDEpICogbW9kZWwudGl0bGVTcGFjaW5nIDogMDsgLy8gVGl0bGUgTGluZSBTcGFjaW5nXG5cdGhlaWdodCArPSB0aXRsZUxpbmVDb3VudCA/IG1vZGVsLnRpdGxlTWFyZ2luQm90dG9tIDogMDsgLy8gVGl0bGUncyBib3R0b20gTWFyZ2luXG5cdGhlaWdodCArPSBjb21iaW5lZEJvZHlMZW5ndGggKiBib2R5Rm9udFNpemU7IC8vIEJvZHkgTGluZXNcblx0aGVpZ2h0ICs9IGNvbWJpbmVkQm9keUxlbmd0aCA/IChjb21iaW5lZEJvZHlMZW5ndGggLSAxKSAqIG1vZGVsLmJvZHlTcGFjaW5nIDogMDsgLy8gQm9keSBMaW5lIFNwYWNpbmdcblx0aGVpZ2h0ICs9IGZvb3RlckxpbmVDb3VudCA/IG1vZGVsLmZvb3Rlck1hcmdpblRvcCA6IDA7IC8vIEZvb3RlciBNYXJnaW5cblx0aGVpZ2h0ICs9IGZvb3RlckxpbmVDb3VudCAqIChmb290ZXJGb250U2l6ZSk7IC8vIEZvb3RlciBMaW5lc1xuXHRoZWlnaHQgKz0gZm9vdGVyTGluZUNvdW50ID8gKGZvb3RlckxpbmVDb3VudCAtIDEpICogbW9kZWwuZm9vdGVyU3BhY2luZyA6IDA7IC8vIEZvb3RlciBMaW5lIFNwYWNpbmdcblxuXHQvLyBUaXRsZSB3aWR0aFxuXHR2YXIgd2lkdGhQYWRkaW5nID0gMDtcblx0dmFyIG1heExpbmVXaWR0aCA9IGZ1bmN0aW9uKGxpbmUpIHtcblx0XHR3aWR0aCA9IE1hdGgubWF4KHdpZHRoLCBjdHgubWVhc3VyZVRleHQobGluZSkud2lkdGggKyB3aWR0aFBhZGRpbmcpO1xuXHR9O1xuXG5cdGN0eC5mb250ID0gaGVscGVycyQxLmZvbnRTdHJpbmcodGl0bGVGb250U2l6ZSwgbW9kZWwuX3RpdGxlRm9udFN0eWxlLCBtb2RlbC5fdGl0bGVGb250RmFtaWx5KTtcblx0aGVscGVycyQxLmVhY2gobW9kZWwudGl0bGUsIG1heExpbmVXaWR0aCk7XG5cblx0Ly8gQm9keSB3aWR0aFxuXHRjdHguZm9udCA9IGhlbHBlcnMkMS5mb250U3RyaW5nKGJvZHlGb250U2l6ZSwgbW9kZWwuX2JvZHlGb250U3R5bGUsIG1vZGVsLl9ib2R5Rm9udEZhbWlseSk7XG5cdGhlbHBlcnMkMS5lYWNoKG1vZGVsLmJlZm9yZUJvZHkuY29uY2F0KG1vZGVsLmFmdGVyQm9keSksIG1heExpbmVXaWR0aCk7XG5cblx0Ly8gQm9keSBsaW5lcyBtYXkgaW5jbHVkZSBzb21lIGV4dHJhIHdpZHRoIGR1ZSB0byB0aGUgY29sb3IgYm94XG5cdHdpZHRoUGFkZGluZyA9IG1vZGVsLmRpc3BsYXlDb2xvcnMgPyAoYm9keUZvbnRTaXplICsgMikgOiAwO1xuXHRoZWxwZXJzJDEuZWFjaChib2R5LCBmdW5jdGlvbihib2R5SXRlbSkge1xuXHRcdGhlbHBlcnMkMS5lYWNoKGJvZHlJdGVtLmJlZm9yZSwgbWF4TGluZVdpZHRoKTtcblx0XHRoZWxwZXJzJDEuZWFjaChib2R5SXRlbS5saW5lcywgbWF4TGluZVdpZHRoKTtcblx0XHRoZWxwZXJzJDEuZWFjaChib2R5SXRlbS5hZnRlciwgbWF4TGluZVdpZHRoKTtcblx0fSk7XG5cblx0Ly8gUmVzZXQgYmFjayB0byAwXG5cdHdpZHRoUGFkZGluZyA9IDA7XG5cblx0Ly8gRm9vdGVyIHdpZHRoXG5cdGN0eC5mb250ID0gaGVscGVycyQxLmZvbnRTdHJpbmcoZm9vdGVyRm9udFNpemUsIG1vZGVsLl9mb290ZXJGb250U3R5bGUsIG1vZGVsLl9mb290ZXJGb250RmFtaWx5KTtcblx0aGVscGVycyQxLmVhY2gobW9kZWwuZm9vdGVyLCBtYXhMaW5lV2lkdGgpO1xuXG5cdC8vIEFkZCBwYWRkaW5nXG5cdHdpZHRoICs9IDIgKiBtb2RlbC54UGFkZGluZztcblxuXHRyZXR1cm4ge1xuXHRcdHdpZHRoOiB3aWR0aCxcblx0XHRoZWlnaHQ6IGhlaWdodFxuXHR9O1xufVxuXG4vKipcbiAqIEhlbHBlciB0byBnZXQgdGhlIGFsaWdubWVudCBvZiBhIHRvb2x0aXAgZ2l2ZW4gdGhlIHNpemVcbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lQWxpZ25tZW50KHRvb2x0aXAsIHNpemUpIHtcblx0dmFyIG1vZGVsID0gdG9vbHRpcC5fbW9kZWw7XG5cdHZhciBjaGFydCA9IHRvb2x0aXAuX2NoYXJ0O1xuXHR2YXIgY2hhcnRBcmVhID0gdG9vbHRpcC5fY2hhcnQuY2hhcnRBcmVhO1xuXHR2YXIgeEFsaWduID0gJ2NlbnRlcic7XG5cdHZhciB5QWxpZ24gPSAnY2VudGVyJztcblxuXHRpZiAobW9kZWwueSA8IHNpemUuaGVpZ2h0KSB7XG5cdFx0eUFsaWduID0gJ3RvcCc7XG5cdH0gZWxzZSBpZiAobW9kZWwueSA+IChjaGFydC5oZWlnaHQgLSBzaXplLmhlaWdodCkpIHtcblx0XHR5QWxpZ24gPSAnYm90dG9tJztcblx0fVxuXG5cdHZhciBsZiwgcmY7IC8vIGZ1bmN0aW9ucyB0byBkZXRlcm1pbmUgbGVmdCwgcmlnaHQgYWxpZ25tZW50XG5cdHZhciBvbGYsIG9yZjsgLy8gZnVuY3Rpb25zIHRvIGRldGVybWluZSBpZiBsZWZ0L3JpZ2h0IGFsaWdubWVudCBjYXVzZXMgdG9vbHRpcCB0byBnbyBvdXRzaWRlIGNoYXJ0XG5cdHZhciB5ZjsgLy8gZnVuY3Rpb24gdG8gZ2V0IHRoZSB5IGFsaWdubWVudCBpZiB0aGUgdG9vbHRpcCBnb2VzIG91dHNpZGUgb2YgdGhlIGxlZnQgb3IgcmlnaHQgZWRnZXNcblx0dmFyIG1pZFggPSAoY2hhcnRBcmVhLmxlZnQgKyBjaGFydEFyZWEucmlnaHQpIC8gMjtcblx0dmFyIG1pZFkgPSAoY2hhcnRBcmVhLnRvcCArIGNoYXJ0QXJlYS5ib3R0b20pIC8gMjtcblxuXHRpZiAoeUFsaWduID09PSAnY2VudGVyJykge1xuXHRcdGxmID0gZnVuY3Rpb24oeCkge1xuXHRcdFx0cmV0dXJuIHggPD0gbWlkWDtcblx0XHR9O1xuXHRcdHJmID0gZnVuY3Rpb24oeCkge1xuXHRcdFx0cmV0dXJuIHggPiBtaWRYO1xuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0bGYgPSBmdW5jdGlvbih4KSB7XG5cdFx0XHRyZXR1cm4geCA8PSAoc2l6ZS53aWR0aCAvIDIpO1xuXHRcdH07XG5cdFx0cmYgPSBmdW5jdGlvbih4KSB7XG5cdFx0XHRyZXR1cm4geCA+PSAoY2hhcnQud2lkdGggLSAoc2l6ZS53aWR0aCAvIDIpKTtcblx0XHR9O1xuXHR9XG5cblx0b2xmID0gZnVuY3Rpb24oeCkge1xuXHRcdHJldHVybiB4ICsgc2l6ZS53aWR0aCArIG1vZGVsLmNhcmV0U2l6ZSArIG1vZGVsLmNhcmV0UGFkZGluZyA+IGNoYXJ0LndpZHRoO1xuXHR9O1xuXHRvcmYgPSBmdW5jdGlvbih4KSB7XG5cdFx0cmV0dXJuIHggLSBzaXplLndpZHRoIC0gbW9kZWwuY2FyZXRTaXplIC0gbW9kZWwuY2FyZXRQYWRkaW5nIDwgMDtcblx0fTtcblx0eWYgPSBmdW5jdGlvbih5KSB7XG5cdFx0cmV0dXJuIHkgPD0gbWlkWSA/ICd0b3AnIDogJ2JvdHRvbSc7XG5cdH07XG5cblx0aWYgKGxmKG1vZGVsLngpKSB7XG5cdFx0eEFsaWduID0gJ2xlZnQnO1xuXG5cdFx0Ly8gSXMgdG9vbHRpcCB0b28gd2lkZSBhbmQgZ29lcyBvdmVyIHRoZSByaWdodCBzaWRlIG9mIHRoZSBjaGFydC4/XG5cdFx0aWYgKG9sZihtb2RlbC54KSkge1xuXHRcdFx0eEFsaWduID0gJ2NlbnRlcic7XG5cdFx0XHR5QWxpZ24gPSB5Zihtb2RlbC55KTtcblx0XHR9XG5cdH0gZWxzZSBpZiAocmYobW9kZWwueCkpIHtcblx0XHR4QWxpZ24gPSAncmlnaHQnO1xuXG5cdFx0Ly8gSXMgdG9vbHRpcCB0b28gd2lkZSBhbmQgZ29lcyBvdXRzaWRlIGxlZnQgZWRnZSBvZiBjYW52YXM/XG5cdFx0aWYgKG9yZihtb2RlbC54KSkge1xuXHRcdFx0eEFsaWduID0gJ2NlbnRlcic7XG5cdFx0XHR5QWxpZ24gPSB5Zihtb2RlbC55KTtcblx0XHR9XG5cdH1cblxuXHR2YXIgb3B0cyA9IHRvb2x0aXAuX29wdGlvbnM7XG5cdHJldHVybiB7XG5cdFx0eEFsaWduOiBvcHRzLnhBbGlnbiA/IG9wdHMueEFsaWduIDogeEFsaWduLFxuXHRcdHlBbGlnbjogb3B0cy55QWxpZ24gPyBvcHRzLnlBbGlnbiA6IHlBbGlnblxuXHR9O1xufVxuXG4vKipcbiAqIEhlbHBlciB0byBnZXQgdGhlIGxvY2F0aW9uIGEgdG9vbHRpcCBuZWVkcyB0byBiZSBwbGFjZWQgYXQgZ2l2ZW4gdGhlIGluaXRpYWwgcG9zaXRpb24gKHZpYSB0aGUgdm0pIGFuZCB0aGUgc2l6ZSBhbmQgYWxpZ25tZW50XG4gKi9cbmZ1bmN0aW9uIGdldEJhY2tncm91bmRQb2ludCh2bSwgc2l6ZSwgYWxpZ25tZW50LCBjaGFydCkge1xuXHQvLyBCYWNrZ3JvdW5kIFBvc2l0aW9uXG5cdHZhciB4ID0gdm0ueDtcblx0dmFyIHkgPSB2bS55O1xuXG5cdHZhciBjYXJldFNpemUgPSB2bS5jYXJldFNpemU7XG5cdHZhciBjYXJldFBhZGRpbmcgPSB2bS5jYXJldFBhZGRpbmc7XG5cdHZhciBjb3JuZXJSYWRpdXMgPSB2bS5jb3JuZXJSYWRpdXM7XG5cdHZhciB4QWxpZ24gPSBhbGlnbm1lbnQueEFsaWduO1xuXHR2YXIgeUFsaWduID0gYWxpZ25tZW50LnlBbGlnbjtcblx0dmFyIHBhZGRpbmdBbmRTaXplID0gY2FyZXRTaXplICsgY2FyZXRQYWRkaW5nO1xuXHR2YXIgcmFkaXVzQW5kUGFkZGluZyA9IGNvcm5lclJhZGl1cyArIGNhcmV0UGFkZGluZztcblxuXHRpZiAoeEFsaWduID09PSAncmlnaHQnKSB7XG5cdFx0eCAtPSBzaXplLndpZHRoO1xuXHR9IGVsc2UgaWYgKHhBbGlnbiA9PT0gJ2NlbnRlcicpIHtcblx0XHR4IC09IChzaXplLndpZHRoIC8gMik7XG5cdFx0aWYgKHggKyBzaXplLndpZHRoID4gY2hhcnQud2lkdGgpIHtcblx0XHRcdHggPSBjaGFydC53aWR0aCAtIHNpemUud2lkdGg7XG5cdFx0fVxuXHRcdGlmICh4IDwgMCkge1xuXHRcdFx0eCA9IDA7XG5cdFx0fVxuXHR9XG5cblx0aWYgKHlBbGlnbiA9PT0gJ3RvcCcpIHtcblx0XHR5ICs9IHBhZGRpbmdBbmRTaXplO1xuXHR9IGVsc2UgaWYgKHlBbGlnbiA9PT0gJ2JvdHRvbScpIHtcblx0XHR5IC09IHNpemUuaGVpZ2h0ICsgcGFkZGluZ0FuZFNpemU7XG5cdH0gZWxzZSB7XG5cdFx0eSAtPSAoc2l6ZS5oZWlnaHQgLyAyKTtcblx0fVxuXG5cdGlmICh5QWxpZ24gPT09ICdjZW50ZXInKSB7XG5cdFx0aWYgKHhBbGlnbiA9PT0gJ2xlZnQnKSB7XG5cdFx0XHR4ICs9IHBhZGRpbmdBbmRTaXplO1xuXHRcdH0gZWxzZSBpZiAoeEFsaWduID09PSAncmlnaHQnKSB7XG5cdFx0XHR4IC09IHBhZGRpbmdBbmRTaXplO1xuXHRcdH1cblx0fSBlbHNlIGlmICh4QWxpZ24gPT09ICdsZWZ0Jykge1xuXHRcdHggLT0gcmFkaXVzQW5kUGFkZGluZztcblx0fSBlbHNlIGlmICh4QWxpZ24gPT09ICdyaWdodCcpIHtcblx0XHR4ICs9IHJhZGl1c0FuZFBhZGRpbmc7XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdHg6IHgsXG5cdFx0eTogeVxuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRBbGlnbmVkWCh2bSwgYWxpZ24pIHtcblx0cmV0dXJuIGFsaWduID09PSAnY2VudGVyJ1xuXHRcdD8gdm0ueCArIHZtLndpZHRoIC8gMlxuXHRcdDogYWxpZ24gPT09ICdyaWdodCdcblx0XHRcdD8gdm0ueCArIHZtLndpZHRoIC0gdm0ueFBhZGRpbmdcblx0XHRcdDogdm0ueCArIHZtLnhQYWRkaW5nO1xufVxuXG4vKipcbiAqIEhlbHBlciB0byBidWlsZCBiZWZvcmUgYW5kIGFmdGVyIGJvZHkgbGluZXNcbiAqL1xuZnVuY3Rpb24gZ2V0QmVmb3JlQWZ0ZXJCb2R5TGluZXMoY2FsbGJhY2spIHtcblx0cmV0dXJuIHB1c2hPckNvbmNhdChbXSwgc3BsaXROZXdsaW5lcyhjYWxsYmFjaykpO1xufVxuXG52YXIgZXhwb3J0cyQzID0gY29yZV9lbGVtZW50LmV4dGVuZCh7XG5cdGluaXRpYWxpemU6IGZ1bmN0aW9uKCkge1xuXHRcdHRoaXMuX21vZGVsID0gZ2V0QmFzZU1vZGVsKHRoaXMuX29wdGlvbnMpO1xuXHRcdHRoaXMuX2xhc3RBY3RpdmUgPSBbXTtcblx0fSxcblxuXHQvLyBHZXQgdGhlIHRpdGxlXG5cdC8vIEFyZ3MgYXJlOiAodG9vbHRpcEl0ZW0sIGRhdGEpXG5cdGdldFRpdGxlOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvcHRzID0gbWUuX29wdGlvbnM7XG5cdFx0dmFyIGNhbGxiYWNrcyA9IG9wdHMuY2FsbGJhY2tzO1xuXG5cdFx0dmFyIGJlZm9yZVRpdGxlID0gY2FsbGJhY2tzLmJlZm9yZVRpdGxlLmFwcGx5KG1lLCBhcmd1bWVudHMpO1xuXHRcdHZhciB0aXRsZSA9IGNhbGxiYWNrcy50aXRsZS5hcHBseShtZSwgYXJndW1lbnRzKTtcblx0XHR2YXIgYWZ0ZXJUaXRsZSA9IGNhbGxiYWNrcy5hZnRlclRpdGxlLmFwcGx5KG1lLCBhcmd1bWVudHMpO1xuXG5cdFx0dmFyIGxpbmVzID0gW107XG5cdFx0bGluZXMgPSBwdXNoT3JDb25jYXQobGluZXMsIHNwbGl0TmV3bGluZXMoYmVmb3JlVGl0bGUpKTtcblx0XHRsaW5lcyA9IHB1c2hPckNvbmNhdChsaW5lcywgc3BsaXROZXdsaW5lcyh0aXRsZSkpO1xuXHRcdGxpbmVzID0gcHVzaE9yQ29uY2F0KGxpbmVzLCBzcGxpdE5ld2xpbmVzKGFmdGVyVGl0bGUpKTtcblxuXHRcdHJldHVybiBsaW5lcztcblx0fSxcblxuXHQvLyBBcmdzIGFyZTogKHRvb2x0aXBJdGVtLCBkYXRhKVxuXHRnZXRCZWZvcmVCb2R5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZ2V0QmVmb3JlQWZ0ZXJCb2R5TGluZXModGhpcy5fb3B0aW9ucy5jYWxsYmFja3MuYmVmb3JlQm9keS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcblx0fSxcblxuXHQvLyBBcmdzIGFyZTogKHRvb2x0aXBJdGVtLCBkYXRhKVxuXHRnZXRCb2R5OiBmdW5jdGlvbih0b29sdGlwSXRlbXMsIGRhdGEpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjYWxsYmFja3MgPSBtZS5fb3B0aW9ucy5jYWxsYmFja3M7XG5cdFx0dmFyIGJvZHlJdGVtcyA9IFtdO1xuXG5cdFx0aGVscGVycyQxLmVhY2godG9vbHRpcEl0ZW1zLCBmdW5jdGlvbih0b29sdGlwSXRlbSkge1xuXHRcdFx0dmFyIGJvZHlJdGVtID0ge1xuXHRcdFx0XHRiZWZvcmU6IFtdLFxuXHRcdFx0XHRsaW5lczogW10sXG5cdFx0XHRcdGFmdGVyOiBbXVxuXHRcdFx0fTtcblx0XHRcdHB1c2hPckNvbmNhdChib2R5SXRlbS5iZWZvcmUsIHNwbGl0TmV3bGluZXMoY2FsbGJhY2tzLmJlZm9yZUxhYmVsLmNhbGwobWUsIHRvb2x0aXBJdGVtLCBkYXRhKSkpO1xuXHRcdFx0cHVzaE9yQ29uY2F0KGJvZHlJdGVtLmxpbmVzLCBjYWxsYmFja3MubGFiZWwuY2FsbChtZSwgdG9vbHRpcEl0ZW0sIGRhdGEpKTtcblx0XHRcdHB1c2hPckNvbmNhdChib2R5SXRlbS5hZnRlciwgc3BsaXROZXdsaW5lcyhjYWxsYmFja3MuYWZ0ZXJMYWJlbC5jYWxsKG1lLCB0b29sdGlwSXRlbSwgZGF0YSkpKTtcblxuXHRcdFx0Ym9keUl0ZW1zLnB1c2goYm9keUl0ZW0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIGJvZHlJdGVtcztcblx0fSxcblxuXHQvLyBBcmdzIGFyZTogKHRvb2x0aXBJdGVtLCBkYXRhKVxuXHRnZXRBZnRlckJvZHk6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBnZXRCZWZvcmVBZnRlckJvZHlMaW5lcyh0aGlzLl9vcHRpb25zLmNhbGxiYWNrcy5hZnRlckJvZHkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG5cdH0sXG5cblx0Ly8gR2V0IHRoZSBmb290ZXIgYW5kIGJlZm9yZUZvb3RlciBhbmQgYWZ0ZXJGb290ZXIgbGluZXNcblx0Ly8gQXJncyBhcmU6ICh0b29sdGlwSXRlbSwgZGF0YSlcblx0Z2V0Rm9vdGVyOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjYWxsYmFja3MgPSBtZS5fb3B0aW9ucy5jYWxsYmFja3M7XG5cblx0XHR2YXIgYmVmb3JlRm9vdGVyID0gY2FsbGJhY2tzLmJlZm9yZUZvb3Rlci5hcHBseShtZSwgYXJndW1lbnRzKTtcblx0XHR2YXIgZm9vdGVyID0gY2FsbGJhY2tzLmZvb3Rlci5hcHBseShtZSwgYXJndW1lbnRzKTtcblx0XHR2YXIgYWZ0ZXJGb290ZXIgPSBjYWxsYmFja3MuYWZ0ZXJGb290ZXIuYXBwbHkobWUsIGFyZ3VtZW50cyk7XG5cblx0XHR2YXIgbGluZXMgPSBbXTtcblx0XHRsaW5lcyA9IHB1c2hPckNvbmNhdChsaW5lcywgc3BsaXROZXdsaW5lcyhiZWZvcmVGb290ZXIpKTtcblx0XHRsaW5lcyA9IHB1c2hPckNvbmNhdChsaW5lcywgc3BsaXROZXdsaW5lcyhmb290ZXIpKTtcblx0XHRsaW5lcyA9IHB1c2hPckNvbmNhdChsaW5lcywgc3BsaXROZXdsaW5lcyhhZnRlckZvb3RlcikpO1xuXG5cdFx0cmV0dXJuIGxpbmVzO1xuXHR9LFxuXG5cdHVwZGF0ZTogZnVuY3Rpb24oY2hhbmdlZCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG9wdHMgPSBtZS5fb3B0aW9ucztcblxuXHRcdC8vIE5lZWQgdG8gcmVnZW5lcmF0ZSB0aGUgbW9kZWwgYmVjYXVzZSBpdHMgZmFzdGVyIHRoYW4gdXNpbmcgZXh0ZW5kIGFuZCBpdCBpcyBuZWNlc3NhcnkgZHVlIHRvIHRoZSBvcHRpbWl6YXRpb24gaW4gQ2hhcnQuRWxlbWVudC50cmFuc2l0aW9uXG5cdFx0Ly8gdGhhdCBkb2VzIF92aWV3ID0gX21vZGVsIGlmIGVhc2UgPT09IDEuIFRoaXMgY2F1c2VzIHRoZSAybmQgdG9vbHRpcCB1cGRhdGUgdG8gc2V0IHByb3BlcnRpZXMgaW4gYm90aCB0aGUgdmlldyBhbmQgbW9kZWwgYXQgdGhlIHNhbWUgdGltZVxuXHRcdC8vIHdoaWNoIGJyZWFrcyBhbnkgYW5pbWF0aW9ucy5cblx0XHR2YXIgZXhpc3RpbmdNb2RlbCA9IG1lLl9tb2RlbDtcblx0XHR2YXIgbW9kZWwgPSBtZS5fbW9kZWwgPSBnZXRCYXNlTW9kZWwob3B0cyk7XG5cdFx0dmFyIGFjdGl2ZSA9IG1lLl9hY3RpdmU7XG5cblx0XHR2YXIgZGF0YSA9IG1lLl9kYXRhO1xuXG5cdFx0Ly8gSW4gdGhlIGNhc2Ugd2hlcmUgYWN0aXZlLmxlbmd0aCA9PT0gMCB3ZSBuZWVkIHRvIGtlZXAgdGhlc2UgYXQgZXhpc3RpbmcgdmFsdWVzIGZvciBnb29kIGFuaW1hdGlvbnNcblx0XHR2YXIgYWxpZ25tZW50ID0ge1xuXHRcdFx0eEFsaWduOiBleGlzdGluZ01vZGVsLnhBbGlnbixcblx0XHRcdHlBbGlnbjogZXhpc3RpbmdNb2RlbC55QWxpZ25cblx0XHR9O1xuXHRcdHZhciBiYWNrZ3JvdW5kUG9pbnQgPSB7XG5cdFx0XHR4OiBleGlzdGluZ01vZGVsLngsXG5cdFx0XHR5OiBleGlzdGluZ01vZGVsLnlcblx0XHR9O1xuXHRcdHZhciB0b29sdGlwU2l6ZSA9IHtcblx0XHRcdHdpZHRoOiBleGlzdGluZ01vZGVsLndpZHRoLFxuXHRcdFx0aGVpZ2h0OiBleGlzdGluZ01vZGVsLmhlaWdodFxuXHRcdH07XG5cdFx0dmFyIHRvb2x0aXBQb3NpdGlvbiA9IHtcblx0XHRcdHg6IGV4aXN0aW5nTW9kZWwuY2FyZXRYLFxuXHRcdFx0eTogZXhpc3RpbmdNb2RlbC5jYXJldFlcblx0XHR9O1xuXG5cdFx0dmFyIGksIGxlbjtcblxuXHRcdGlmIChhY3RpdmUubGVuZ3RoKSB7XG5cdFx0XHRtb2RlbC5vcGFjaXR5ID0gMTtcblxuXHRcdFx0dmFyIGxhYmVsQ29sb3JzID0gW107XG5cdFx0XHR2YXIgbGFiZWxUZXh0Q29sb3JzID0gW107XG5cdFx0XHR0b29sdGlwUG9zaXRpb24gPSBwb3NpdGlvbmVyc1tvcHRzLnBvc2l0aW9uXS5jYWxsKG1lLCBhY3RpdmUsIG1lLl9ldmVudFBvc2l0aW9uKTtcblxuXHRcdFx0dmFyIHRvb2x0aXBJdGVtcyA9IFtdO1xuXHRcdFx0Zm9yIChpID0gMCwgbGVuID0gYWN0aXZlLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG5cdFx0XHRcdHRvb2x0aXBJdGVtcy5wdXNoKGNyZWF0ZVRvb2x0aXBJdGVtKGFjdGl2ZVtpXSkpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiB0aGUgdXNlciBwcm92aWRlZCBhIGZpbHRlciBmdW5jdGlvbiwgdXNlIGl0IHRvIG1vZGlmeSB0aGUgdG9vbHRpcCBpdGVtc1xuXHRcdFx0aWYgKG9wdHMuZmlsdGVyKSB7XG5cdFx0XHRcdHRvb2x0aXBJdGVtcyA9IHRvb2x0aXBJdGVtcy5maWx0ZXIoZnVuY3Rpb24oYSkge1xuXHRcdFx0XHRcdHJldHVybiBvcHRzLmZpbHRlcihhLCBkYXRhKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHRoZSB1c2VyIHByb3ZpZGVkIGEgc29ydGluZyBmdW5jdGlvbiwgdXNlIGl0IHRvIG1vZGlmeSB0aGUgdG9vbHRpcCBpdGVtc1xuXHRcdFx0aWYgKG9wdHMuaXRlbVNvcnQpIHtcblx0XHRcdFx0dG9vbHRpcEl0ZW1zID0gdG9vbHRpcEl0ZW1zLnNvcnQoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0XHRcdHJldHVybiBvcHRzLml0ZW1Tb3J0KGEsIGIsIGRhdGEpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRGV0ZXJtaW5lIGNvbG9ycyBmb3IgYm94ZXNcblx0XHRcdGhlbHBlcnMkMS5lYWNoKHRvb2x0aXBJdGVtcywgZnVuY3Rpb24odG9vbHRpcEl0ZW0pIHtcblx0XHRcdFx0bGFiZWxDb2xvcnMucHVzaChvcHRzLmNhbGxiYWNrcy5sYWJlbENvbG9yLmNhbGwobWUsIHRvb2x0aXBJdGVtLCBtZS5fY2hhcnQpKTtcblx0XHRcdFx0bGFiZWxUZXh0Q29sb3JzLnB1c2gob3B0cy5jYWxsYmFja3MubGFiZWxUZXh0Q29sb3IuY2FsbChtZSwgdG9vbHRpcEl0ZW0sIG1lLl9jaGFydCkpO1xuXHRcdFx0fSk7XG5cblxuXHRcdFx0Ly8gQnVpbGQgdGhlIFRleHQgTGluZXNcblx0XHRcdG1vZGVsLnRpdGxlID0gbWUuZ2V0VGl0bGUodG9vbHRpcEl0ZW1zLCBkYXRhKTtcblx0XHRcdG1vZGVsLmJlZm9yZUJvZHkgPSBtZS5nZXRCZWZvcmVCb2R5KHRvb2x0aXBJdGVtcywgZGF0YSk7XG5cdFx0XHRtb2RlbC5ib2R5ID0gbWUuZ2V0Qm9keSh0b29sdGlwSXRlbXMsIGRhdGEpO1xuXHRcdFx0bW9kZWwuYWZ0ZXJCb2R5ID0gbWUuZ2V0QWZ0ZXJCb2R5KHRvb2x0aXBJdGVtcywgZGF0YSk7XG5cdFx0XHRtb2RlbC5mb290ZXIgPSBtZS5nZXRGb290ZXIodG9vbHRpcEl0ZW1zLCBkYXRhKTtcblxuXHRcdFx0Ly8gSW5pdGlhbCBwb3NpdGlvbmluZyBhbmQgY29sb3JzXG5cdFx0XHRtb2RlbC54ID0gdG9vbHRpcFBvc2l0aW9uLng7XG5cdFx0XHRtb2RlbC55ID0gdG9vbHRpcFBvc2l0aW9uLnk7XG5cdFx0XHRtb2RlbC5jYXJldFBhZGRpbmcgPSBvcHRzLmNhcmV0UGFkZGluZztcblx0XHRcdG1vZGVsLmxhYmVsQ29sb3JzID0gbGFiZWxDb2xvcnM7XG5cdFx0XHRtb2RlbC5sYWJlbFRleHRDb2xvcnMgPSBsYWJlbFRleHRDb2xvcnM7XG5cblx0XHRcdC8vIGRhdGEgcG9pbnRzXG5cdFx0XHRtb2RlbC5kYXRhUG9pbnRzID0gdG9vbHRpcEl0ZW1zO1xuXG5cdFx0XHQvLyBXZSBuZWVkIHRvIGRldGVybWluZSBhbGlnbm1lbnQgb2YgdGhlIHRvb2x0aXBcblx0XHRcdHRvb2x0aXBTaXplID0gZ2V0VG9vbHRpcFNpemUodGhpcywgbW9kZWwpO1xuXHRcdFx0YWxpZ25tZW50ID0gZGV0ZXJtaW5lQWxpZ25tZW50KHRoaXMsIHRvb2x0aXBTaXplKTtcblx0XHRcdC8vIEZpbmFsIFNpemUgYW5kIFBvc2l0aW9uXG5cdFx0XHRiYWNrZ3JvdW5kUG9pbnQgPSBnZXRCYWNrZ3JvdW5kUG9pbnQobW9kZWwsIHRvb2x0aXBTaXplLCBhbGlnbm1lbnQsIG1lLl9jaGFydCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG1vZGVsLm9wYWNpdHkgPSAwO1xuXHRcdH1cblxuXHRcdG1vZGVsLnhBbGlnbiA9IGFsaWdubWVudC54QWxpZ247XG5cdFx0bW9kZWwueUFsaWduID0gYWxpZ25tZW50LnlBbGlnbjtcblx0XHRtb2RlbC54ID0gYmFja2dyb3VuZFBvaW50Lng7XG5cdFx0bW9kZWwueSA9IGJhY2tncm91bmRQb2ludC55O1xuXHRcdG1vZGVsLndpZHRoID0gdG9vbHRpcFNpemUud2lkdGg7XG5cdFx0bW9kZWwuaGVpZ2h0ID0gdG9vbHRpcFNpemUuaGVpZ2h0O1xuXG5cdFx0Ly8gUG9pbnQgd2hlcmUgdGhlIGNhcmV0IG9uIHRoZSB0b29sdGlwIHBvaW50cyB0b1xuXHRcdG1vZGVsLmNhcmV0WCA9IHRvb2x0aXBQb3NpdGlvbi54O1xuXHRcdG1vZGVsLmNhcmV0WSA9IHRvb2x0aXBQb3NpdGlvbi55O1xuXG5cdFx0bWUuX21vZGVsID0gbW9kZWw7XG5cblx0XHRpZiAoY2hhbmdlZCAmJiBvcHRzLmN1c3RvbSkge1xuXHRcdFx0b3B0cy5jdXN0b20uY2FsbChtZSwgbW9kZWwpO1xuXHRcdH1cblxuXHRcdHJldHVybiBtZTtcblx0fSxcblxuXHRkcmF3Q2FyZXQ6IGZ1bmN0aW9uKHRvb2x0aXBQb2ludCwgc2l6ZSkge1xuXHRcdHZhciBjdHggPSB0aGlzLl9jaGFydC5jdHg7XG5cdFx0dmFyIHZtID0gdGhpcy5fdmlldztcblx0XHR2YXIgY2FyZXRQb3NpdGlvbiA9IHRoaXMuZ2V0Q2FyZXRQb3NpdGlvbih0b29sdGlwUG9pbnQsIHNpemUsIHZtKTtcblxuXHRcdGN0eC5saW5lVG8oY2FyZXRQb3NpdGlvbi54MSwgY2FyZXRQb3NpdGlvbi55MSk7XG5cdFx0Y3R4LmxpbmVUbyhjYXJldFBvc2l0aW9uLngyLCBjYXJldFBvc2l0aW9uLnkyKTtcblx0XHRjdHgubGluZVRvKGNhcmV0UG9zaXRpb24ueDMsIGNhcmV0UG9zaXRpb24ueTMpO1xuXHR9LFxuXHRnZXRDYXJldFBvc2l0aW9uOiBmdW5jdGlvbih0b29sdGlwUG9pbnQsIHNpemUsIHZtKSB7XG5cdFx0dmFyIHgxLCB4MiwgeDMsIHkxLCB5MiwgeTM7XG5cdFx0dmFyIGNhcmV0U2l6ZSA9IHZtLmNhcmV0U2l6ZTtcblx0XHR2YXIgY29ybmVyUmFkaXVzID0gdm0uY29ybmVyUmFkaXVzO1xuXHRcdHZhciB4QWxpZ24gPSB2bS54QWxpZ247XG5cdFx0dmFyIHlBbGlnbiA9IHZtLnlBbGlnbjtcblx0XHR2YXIgcHRYID0gdG9vbHRpcFBvaW50Lng7XG5cdFx0dmFyIHB0WSA9IHRvb2x0aXBQb2ludC55O1xuXHRcdHZhciB3aWR0aCA9IHNpemUud2lkdGg7XG5cdFx0dmFyIGhlaWdodCA9IHNpemUuaGVpZ2h0O1xuXG5cdFx0aWYgKHlBbGlnbiA9PT0gJ2NlbnRlcicpIHtcblx0XHRcdHkyID0gcHRZICsgKGhlaWdodCAvIDIpO1xuXG5cdFx0XHRpZiAoeEFsaWduID09PSAnbGVmdCcpIHtcblx0XHRcdFx0eDEgPSBwdFg7XG5cdFx0XHRcdHgyID0geDEgLSBjYXJldFNpemU7XG5cdFx0XHRcdHgzID0geDE7XG5cblx0XHRcdFx0eTEgPSB5MiArIGNhcmV0U2l6ZTtcblx0XHRcdFx0eTMgPSB5MiAtIGNhcmV0U2l6ZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHgxID0gcHRYICsgd2lkdGg7XG5cdFx0XHRcdHgyID0geDEgKyBjYXJldFNpemU7XG5cdFx0XHRcdHgzID0geDE7XG5cblx0XHRcdFx0eTEgPSB5MiAtIGNhcmV0U2l6ZTtcblx0XHRcdFx0eTMgPSB5MiArIGNhcmV0U2l6ZTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKHhBbGlnbiA9PT0gJ2xlZnQnKSB7XG5cdFx0XHRcdHgyID0gcHRYICsgY29ybmVyUmFkaXVzICsgKGNhcmV0U2l6ZSk7XG5cdFx0XHRcdHgxID0geDIgLSBjYXJldFNpemU7XG5cdFx0XHRcdHgzID0geDIgKyBjYXJldFNpemU7XG5cdFx0XHR9IGVsc2UgaWYgKHhBbGlnbiA9PT0gJ3JpZ2h0Jykge1xuXHRcdFx0XHR4MiA9IHB0WCArIHdpZHRoIC0gY29ybmVyUmFkaXVzIC0gY2FyZXRTaXplO1xuXHRcdFx0XHR4MSA9IHgyIC0gY2FyZXRTaXplO1xuXHRcdFx0XHR4MyA9IHgyICsgY2FyZXRTaXplO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0eDIgPSB2bS5jYXJldFg7XG5cdFx0XHRcdHgxID0geDIgLSBjYXJldFNpemU7XG5cdFx0XHRcdHgzID0geDIgKyBjYXJldFNpemU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoeUFsaWduID09PSAndG9wJykge1xuXHRcdFx0XHR5MSA9IHB0WTtcblx0XHRcdFx0eTIgPSB5MSAtIGNhcmV0U2l6ZTtcblx0XHRcdFx0eTMgPSB5MTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHkxID0gcHRZICsgaGVpZ2h0O1xuXHRcdFx0XHR5MiA9IHkxICsgY2FyZXRTaXplO1xuXHRcdFx0XHR5MyA9IHkxO1xuXHRcdFx0XHQvLyBpbnZlcnQgZHJhd2luZyBvcmRlclxuXHRcdFx0XHR2YXIgdG1wID0geDM7XG5cdFx0XHRcdHgzID0geDE7XG5cdFx0XHRcdHgxID0gdG1wO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4ge3gxOiB4MSwgeDI6IHgyLCB4MzogeDMsIHkxOiB5MSwgeTI6IHkyLCB5MzogeTN9O1xuXHR9LFxuXG5cdGRyYXdUaXRsZTogZnVuY3Rpb24ocHQsIHZtLCBjdHgpIHtcblx0XHR2YXIgdGl0bGUgPSB2bS50aXRsZTtcblxuXHRcdGlmICh0aXRsZS5sZW5ndGgpIHtcblx0XHRcdHB0LnggPSBnZXRBbGlnbmVkWCh2bSwgdm0uX3RpdGxlQWxpZ24pO1xuXG5cdFx0XHRjdHgudGV4dEFsaWduID0gdm0uX3RpdGxlQWxpZ247XG5cdFx0XHRjdHgudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG5cblx0XHRcdHZhciB0aXRsZUZvbnRTaXplID0gdm0udGl0bGVGb250U2l6ZTtcblx0XHRcdHZhciB0aXRsZVNwYWNpbmcgPSB2bS50aXRsZVNwYWNpbmc7XG5cblx0XHRcdGN0eC5maWxsU3R5bGUgPSB2bS50aXRsZUZvbnRDb2xvcjtcblx0XHRcdGN0eC5mb250ID0gaGVscGVycyQxLmZvbnRTdHJpbmcodGl0bGVGb250U2l6ZSwgdm0uX3RpdGxlRm9udFN0eWxlLCB2bS5fdGl0bGVGb250RmFtaWx5KTtcblxuXHRcdFx0dmFyIGksIGxlbjtcblx0XHRcdGZvciAoaSA9IDAsIGxlbiA9IHRpdGxlLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG5cdFx0XHRcdGN0eC5maWxsVGV4dCh0aXRsZVtpXSwgcHQueCwgcHQueSk7XG5cdFx0XHRcdHB0LnkgKz0gdGl0bGVGb250U2l6ZSArIHRpdGxlU3BhY2luZzsgLy8gTGluZSBIZWlnaHQgYW5kIHNwYWNpbmdcblxuXHRcdFx0XHRpZiAoaSArIDEgPT09IHRpdGxlLmxlbmd0aCkge1xuXHRcdFx0XHRcdHB0LnkgKz0gdm0udGl0bGVNYXJnaW5Cb3R0b20gLSB0aXRsZVNwYWNpbmc7IC8vIElmIExhc3QsIGFkZCBtYXJnaW4sIHJlbW92ZSBzcGFjaW5nXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0ZHJhd0JvZHk6IGZ1bmN0aW9uKHB0LCB2bSwgY3R4KSB7XG5cdFx0dmFyIGJvZHlGb250U2l6ZSA9IHZtLmJvZHlGb250U2l6ZTtcblx0XHR2YXIgYm9keVNwYWNpbmcgPSB2bS5ib2R5U3BhY2luZztcblx0XHR2YXIgYm9keUFsaWduID0gdm0uX2JvZHlBbGlnbjtcblx0XHR2YXIgYm9keSA9IHZtLmJvZHk7XG5cdFx0dmFyIGRyYXdDb2xvckJveGVzID0gdm0uZGlzcGxheUNvbG9ycztcblx0XHR2YXIgbGFiZWxDb2xvcnMgPSB2bS5sYWJlbENvbG9ycztcblx0XHR2YXIgeExpbmVQYWRkaW5nID0gMDtcblx0XHR2YXIgY29sb3JYID0gZHJhd0NvbG9yQm94ZXMgPyBnZXRBbGlnbmVkWCh2bSwgJ2xlZnQnKSA6IDA7XG5cdFx0dmFyIHRleHRDb2xvcjtcblxuXHRcdGN0eC50ZXh0QWxpZ24gPSBib2R5QWxpZ247XG5cdFx0Y3R4LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuXHRcdGN0eC5mb250ID0gaGVscGVycyQxLmZvbnRTdHJpbmcoYm9keUZvbnRTaXplLCB2bS5fYm9keUZvbnRTdHlsZSwgdm0uX2JvZHlGb250RmFtaWx5KTtcblxuXHRcdHB0LnggPSBnZXRBbGlnbmVkWCh2bSwgYm9keUFsaWduKTtcblxuXHRcdC8vIEJlZm9yZSBCb2R5XG5cdFx0dmFyIGZpbGxMaW5lT2ZUZXh0ID0gZnVuY3Rpb24obGluZSkge1xuXHRcdFx0Y3R4LmZpbGxUZXh0KGxpbmUsIHB0LnggKyB4TGluZVBhZGRpbmcsIHB0LnkpO1xuXHRcdFx0cHQueSArPSBib2R5Rm9udFNpemUgKyBib2R5U3BhY2luZztcblx0XHR9O1xuXG5cdFx0Ly8gQmVmb3JlIGJvZHkgbGluZXNcblx0XHRjdHguZmlsbFN0eWxlID0gdm0uYm9keUZvbnRDb2xvcjtcblx0XHRoZWxwZXJzJDEuZWFjaCh2bS5iZWZvcmVCb2R5LCBmaWxsTGluZU9mVGV4dCk7XG5cblx0XHR4TGluZVBhZGRpbmcgPSBkcmF3Q29sb3JCb3hlcyAmJiBib2R5QWxpZ24gIT09ICdyaWdodCdcblx0XHRcdD8gYm9keUFsaWduID09PSAnY2VudGVyJyA/IChib2R5Rm9udFNpemUgLyAyICsgMSkgOiAoYm9keUZvbnRTaXplICsgMilcblx0XHRcdDogMDtcblxuXHRcdC8vIERyYXcgYm9keSBsaW5lcyBub3dcblx0XHRoZWxwZXJzJDEuZWFjaChib2R5LCBmdW5jdGlvbihib2R5SXRlbSwgaSkge1xuXHRcdFx0dGV4dENvbG9yID0gdm0ubGFiZWxUZXh0Q29sb3JzW2ldO1xuXHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRleHRDb2xvcjtcblx0XHRcdGhlbHBlcnMkMS5lYWNoKGJvZHlJdGVtLmJlZm9yZSwgZmlsbExpbmVPZlRleHQpO1xuXG5cdFx0XHRoZWxwZXJzJDEuZWFjaChib2R5SXRlbS5saW5lcywgZnVuY3Rpb24obGluZSkge1xuXHRcdFx0XHQvLyBEcmF3IExlZ2VuZC1saWtlIGJveGVzIGlmIG5lZWRlZFxuXHRcdFx0XHRpZiAoZHJhd0NvbG9yQm94ZXMpIHtcblx0XHRcdFx0XHQvLyBGaWxsIGEgd2hpdGUgcmVjdCBzbyB0aGF0IGNvbG91cnMgbWVyZ2UgbmljZWx5IGlmIHRoZSBvcGFjaXR5IGlzIDwgMVxuXHRcdFx0XHRcdGN0eC5maWxsU3R5bGUgPSB2bS5sZWdlbmRDb2xvckJhY2tncm91bmQ7XG5cdFx0XHRcdFx0Y3R4LmZpbGxSZWN0KGNvbG9yWCwgcHQueSwgYm9keUZvbnRTaXplLCBib2R5Rm9udFNpemUpO1xuXG5cdFx0XHRcdFx0Ly8gQm9yZGVyXG5cdFx0XHRcdFx0Y3R4LmxpbmVXaWR0aCA9IDE7XG5cdFx0XHRcdFx0Y3R4LnN0cm9rZVN0eWxlID0gbGFiZWxDb2xvcnNbaV0uYm9yZGVyQ29sb3I7XG5cdFx0XHRcdFx0Y3R4LnN0cm9rZVJlY3QoY29sb3JYLCBwdC55LCBib2R5Rm9udFNpemUsIGJvZHlGb250U2l6ZSk7XG5cblx0XHRcdFx0XHQvLyBJbm5lciBzcXVhcmVcblx0XHRcdFx0XHRjdHguZmlsbFN0eWxlID0gbGFiZWxDb2xvcnNbaV0uYmFja2dyb3VuZENvbG9yO1xuXHRcdFx0XHRcdGN0eC5maWxsUmVjdChjb2xvclggKyAxLCBwdC55ICsgMSwgYm9keUZvbnRTaXplIC0gMiwgYm9keUZvbnRTaXplIC0gMik7XG5cdFx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRleHRDb2xvcjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZpbGxMaW5lT2ZUZXh0KGxpbmUpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGhlbHBlcnMkMS5lYWNoKGJvZHlJdGVtLmFmdGVyLCBmaWxsTGluZU9mVGV4dCk7XG5cdFx0fSk7XG5cblx0XHQvLyBSZXNldCBiYWNrIHRvIDAgZm9yIGFmdGVyIGJvZHlcblx0XHR4TGluZVBhZGRpbmcgPSAwO1xuXG5cdFx0Ly8gQWZ0ZXIgYm9keSBsaW5lc1xuXHRcdGhlbHBlcnMkMS5lYWNoKHZtLmFmdGVyQm9keSwgZmlsbExpbmVPZlRleHQpO1xuXHRcdHB0LnkgLT0gYm9keVNwYWNpbmc7IC8vIFJlbW92ZSBsYXN0IGJvZHkgc3BhY2luZ1xuXHR9LFxuXG5cdGRyYXdGb290ZXI6IGZ1bmN0aW9uKHB0LCB2bSwgY3R4KSB7XG5cdFx0dmFyIGZvb3RlciA9IHZtLmZvb3RlcjtcblxuXHRcdGlmIChmb290ZXIubGVuZ3RoKSB7XG5cdFx0XHRwdC54ID0gZ2V0QWxpZ25lZFgodm0sIHZtLl9mb290ZXJBbGlnbik7XG5cdFx0XHRwdC55ICs9IHZtLmZvb3Rlck1hcmdpblRvcDtcblxuXHRcdFx0Y3R4LnRleHRBbGlnbiA9IHZtLl9mb290ZXJBbGlnbjtcblx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSAndG9wJztcblxuXHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHZtLmZvb3RlckZvbnRDb2xvcjtcblx0XHRcdGN0eC5mb250ID0gaGVscGVycyQxLmZvbnRTdHJpbmcodm0uZm9vdGVyRm9udFNpemUsIHZtLl9mb290ZXJGb250U3R5bGUsIHZtLl9mb290ZXJGb250RmFtaWx5KTtcblxuXHRcdFx0aGVscGVycyQxLmVhY2goZm9vdGVyLCBmdW5jdGlvbihsaW5lKSB7XG5cdFx0XHRcdGN0eC5maWxsVGV4dChsaW5lLCBwdC54LCBwdC55KTtcblx0XHRcdFx0cHQueSArPSB2bS5mb290ZXJGb250U2l6ZSArIHZtLmZvb3RlclNwYWNpbmc7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cblx0ZHJhd0JhY2tncm91bmQ6IGZ1bmN0aW9uKHB0LCB2bSwgY3R4LCB0b29sdGlwU2l6ZSkge1xuXHRcdGN0eC5maWxsU3R5bGUgPSB2bS5iYWNrZ3JvdW5kQ29sb3I7XG5cdFx0Y3R4LnN0cm9rZVN0eWxlID0gdm0uYm9yZGVyQ29sb3I7XG5cdFx0Y3R4LmxpbmVXaWR0aCA9IHZtLmJvcmRlcldpZHRoO1xuXHRcdHZhciB4QWxpZ24gPSB2bS54QWxpZ247XG5cdFx0dmFyIHlBbGlnbiA9IHZtLnlBbGlnbjtcblx0XHR2YXIgeCA9IHB0Lng7XG5cdFx0dmFyIHkgPSBwdC55O1xuXHRcdHZhciB3aWR0aCA9IHRvb2x0aXBTaXplLndpZHRoO1xuXHRcdHZhciBoZWlnaHQgPSB0b29sdGlwU2l6ZS5oZWlnaHQ7XG5cdFx0dmFyIHJhZGl1cyA9IHZtLmNvcm5lclJhZGl1cztcblxuXHRcdGN0eC5iZWdpblBhdGgoKTtcblx0XHRjdHgubW92ZVRvKHggKyByYWRpdXMsIHkpO1xuXHRcdGlmICh5QWxpZ24gPT09ICd0b3AnKSB7XG5cdFx0XHR0aGlzLmRyYXdDYXJldChwdCwgdG9vbHRpcFNpemUpO1xuXHRcdH1cblx0XHRjdHgubGluZVRvKHggKyB3aWR0aCAtIHJhZGl1cywgeSk7XG5cdFx0Y3R4LnF1YWRyYXRpY0N1cnZlVG8oeCArIHdpZHRoLCB5LCB4ICsgd2lkdGgsIHkgKyByYWRpdXMpO1xuXHRcdGlmICh5QWxpZ24gPT09ICdjZW50ZXInICYmIHhBbGlnbiA9PT0gJ3JpZ2h0Jykge1xuXHRcdFx0dGhpcy5kcmF3Q2FyZXQocHQsIHRvb2x0aXBTaXplKTtcblx0XHR9XG5cdFx0Y3R4LmxpbmVUbyh4ICsgd2lkdGgsIHkgKyBoZWlnaHQgLSByYWRpdXMpO1xuXHRcdGN0eC5xdWFkcmF0aWNDdXJ2ZVRvKHggKyB3aWR0aCwgeSArIGhlaWdodCwgeCArIHdpZHRoIC0gcmFkaXVzLCB5ICsgaGVpZ2h0KTtcblx0XHRpZiAoeUFsaWduID09PSAnYm90dG9tJykge1xuXHRcdFx0dGhpcy5kcmF3Q2FyZXQocHQsIHRvb2x0aXBTaXplKTtcblx0XHR9XG5cdFx0Y3R4LmxpbmVUbyh4ICsgcmFkaXVzLCB5ICsgaGVpZ2h0KTtcblx0XHRjdHgucXVhZHJhdGljQ3VydmVUbyh4LCB5ICsgaGVpZ2h0LCB4LCB5ICsgaGVpZ2h0IC0gcmFkaXVzKTtcblx0XHRpZiAoeUFsaWduID09PSAnY2VudGVyJyAmJiB4QWxpZ24gPT09ICdsZWZ0Jykge1xuXHRcdFx0dGhpcy5kcmF3Q2FyZXQocHQsIHRvb2x0aXBTaXplKTtcblx0XHR9XG5cdFx0Y3R4LmxpbmVUbyh4LCB5ICsgcmFkaXVzKTtcblx0XHRjdHgucXVhZHJhdGljQ3VydmVUbyh4LCB5LCB4ICsgcmFkaXVzLCB5KTtcblx0XHRjdHguY2xvc2VQYXRoKCk7XG5cblx0XHRjdHguZmlsbCgpO1xuXG5cdFx0aWYgKHZtLmJvcmRlcldpZHRoID4gMCkge1xuXHRcdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdH1cblx0fSxcblxuXHRkcmF3OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgY3R4ID0gdGhpcy5fY2hhcnQuY3R4O1xuXHRcdHZhciB2bSA9IHRoaXMuX3ZpZXc7XG5cblx0XHRpZiAodm0ub3BhY2l0eSA9PT0gMCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHZhciB0b29sdGlwU2l6ZSA9IHtcblx0XHRcdHdpZHRoOiB2bS53aWR0aCxcblx0XHRcdGhlaWdodDogdm0uaGVpZ2h0XG5cdFx0fTtcblx0XHR2YXIgcHQgPSB7XG5cdFx0XHR4OiB2bS54LFxuXHRcdFx0eTogdm0ueVxuXHRcdH07XG5cblx0XHQvLyBJRTExL0VkZ2UgZG9lcyBub3QgbGlrZSB2ZXJ5IHNtYWxsIG9wYWNpdGllcywgc28gc25hcCB0byAwXG5cdFx0dmFyIG9wYWNpdHkgPSBNYXRoLmFicyh2bS5vcGFjaXR5IDwgMWUtMykgPyAwIDogdm0ub3BhY2l0eTtcblxuXHRcdC8vIFRydXRoeS9mYWxzZXkgdmFsdWUgZm9yIGVtcHR5IHRvb2x0aXBcblx0XHR2YXIgaGFzVG9vbHRpcENvbnRlbnQgPSB2bS50aXRsZS5sZW5ndGggfHwgdm0uYmVmb3JlQm9keS5sZW5ndGggfHwgdm0uYm9keS5sZW5ndGggfHwgdm0uYWZ0ZXJCb2R5Lmxlbmd0aCB8fCB2bS5mb290ZXIubGVuZ3RoO1xuXG5cdFx0aWYgKHRoaXMuX29wdGlvbnMuZW5hYmxlZCAmJiBoYXNUb29sdGlwQ29udGVudCkge1xuXHRcdFx0Y3R4LnNhdmUoKTtcblx0XHRcdGN0eC5nbG9iYWxBbHBoYSA9IG9wYWNpdHk7XG5cblx0XHRcdC8vIERyYXcgQmFja2dyb3VuZFxuXHRcdFx0dGhpcy5kcmF3QmFja2dyb3VuZChwdCwgdm0sIGN0eCwgdG9vbHRpcFNpemUpO1xuXG5cdFx0XHQvLyBEcmF3IFRpdGxlLCBCb2R5LCBhbmQgRm9vdGVyXG5cdFx0XHRwdC55ICs9IHZtLnlQYWRkaW5nO1xuXG5cdFx0XHQvLyBUaXRsZXNcblx0XHRcdHRoaXMuZHJhd1RpdGxlKHB0LCB2bSwgY3R4KTtcblxuXHRcdFx0Ly8gQm9keVxuXHRcdFx0dGhpcy5kcmF3Qm9keShwdCwgdm0sIGN0eCk7XG5cblx0XHRcdC8vIEZvb3RlclxuXHRcdFx0dGhpcy5kcmF3Rm9vdGVyKHB0LCB2bSwgY3R4KTtcblxuXHRcdFx0Y3R4LnJlc3RvcmUoKTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIEhhbmRsZSBhbiBldmVudFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAcGFyYW0ge0lFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgdG8gaGFuZGxlXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSB0b29sdGlwIGNoYW5nZWRcblx0ICovXG5cdGhhbmRsZUV2ZW50OiBmdW5jdGlvbihlKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgb3B0aW9ucyA9IG1lLl9vcHRpb25zO1xuXHRcdHZhciBjaGFuZ2VkID0gZmFsc2U7XG5cblx0XHRtZS5fbGFzdEFjdGl2ZSA9IG1lLl9sYXN0QWN0aXZlIHx8IFtdO1xuXG5cdFx0Ly8gRmluZCBBY3RpdmUgRWxlbWVudHMgZm9yIHRvb2x0aXBzXG5cdFx0aWYgKGUudHlwZSA9PT0gJ21vdXNlb3V0Jykge1xuXHRcdFx0bWUuX2FjdGl2ZSA9IFtdO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtZS5fYWN0aXZlID0gbWUuX2NoYXJ0LmdldEVsZW1lbnRzQXRFdmVudEZvck1vZGUoZSwgb3B0aW9ucy5tb2RlLCBvcHRpb25zKTtcblx0XHR9XG5cblx0XHQvLyBSZW1lbWJlciBMYXN0IEFjdGl2ZXNcblx0XHRjaGFuZ2VkID0gIWhlbHBlcnMkMS5hcnJheUVxdWFscyhtZS5fYWN0aXZlLCBtZS5fbGFzdEFjdGl2ZSk7XG5cblx0XHQvLyBPbmx5IGhhbmRsZSB0YXJnZXQgZXZlbnQgb24gdG9vbHRpcCBjaGFuZ2Vcblx0XHRpZiAoY2hhbmdlZCkge1xuXHRcdFx0bWUuX2xhc3RBY3RpdmUgPSBtZS5fYWN0aXZlO1xuXG5cdFx0XHRpZiAob3B0aW9ucy5lbmFibGVkIHx8IG9wdGlvbnMuY3VzdG9tKSB7XG5cdFx0XHRcdG1lLl9ldmVudFBvc2l0aW9uID0ge1xuXHRcdFx0XHRcdHg6IGUueCxcblx0XHRcdFx0XHR5OiBlLnlcblx0XHRcdFx0fTtcblxuXHRcdFx0XHRtZS51cGRhdGUodHJ1ZSk7XG5cdFx0XHRcdG1lLnBpdm90KCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNoYW5nZWQ7XG5cdH1cbn0pO1xuXG4vKipcbiAqIEBuYW1lc3BhY2UgQ2hhcnQuVG9vbHRpcC5wb3NpdGlvbmVyc1xuICovXG52YXIgcG9zaXRpb25lcnNfMSA9IHBvc2l0aW9uZXJzO1xuXG52YXIgY29yZV90b29sdGlwID0gZXhwb3J0cyQzO1xuY29yZV90b29sdGlwLnBvc2l0aW9uZXJzID0gcG9zaXRpb25lcnNfMTtcblxudmFyIHZhbHVlT3JEZWZhdWx0JDggPSBoZWxwZXJzJDEudmFsdWVPckRlZmF1bHQ7XG5cbmNvcmVfZGVmYXVsdHMuX3NldCgnZ2xvYmFsJywge1xuXHRlbGVtZW50czoge30sXG5cdGV2ZW50czogW1xuXHRcdCdtb3VzZW1vdmUnLFxuXHRcdCdtb3VzZW91dCcsXG5cdFx0J2NsaWNrJyxcblx0XHQndG91Y2hzdGFydCcsXG5cdFx0J3RvdWNobW92ZSdcblx0XSxcblx0aG92ZXI6IHtcblx0XHRvbkhvdmVyOiBudWxsLFxuXHRcdG1vZGU6ICduZWFyZXN0Jyxcblx0XHRpbnRlcnNlY3Q6IHRydWUsXG5cdFx0YW5pbWF0aW9uRHVyYXRpb246IDQwMFxuXHR9LFxuXHRvbkNsaWNrOiBudWxsLFxuXHRtYWludGFpbkFzcGVjdFJhdGlvOiB0cnVlLFxuXHRyZXNwb25zaXZlOiB0cnVlLFxuXHRyZXNwb25zaXZlQW5pbWF0aW9uRHVyYXRpb246IDBcbn0pO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IG1lcmdlIHRoZSBnaXZlbiBjb25maWcgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIGBzY2FsZXNgIG9wdGlvblxuICogYnkgaW5jb3Jwb3JhdGluZyBzY2FsZSBkZWZhdWx0cyBpbiBgeEF4ZXNgIGFuZCBgeUF4ZXNgIGFycmF5IGl0ZW1zLCB0aGVuXG4gKiByZXR1cm5zIGEgZGVlcCBjb3B5IG9mIHRoZSByZXN1bHQsIHRodXMgZG9lc24ndCBhbHRlciBpbnB1dHMuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlU2NhbGVDb25maWcoLyogY29uZmlnIG9iamVjdHMgLi4uICovKSB7XG5cdHJldHVybiBoZWxwZXJzJDEubWVyZ2Uoe30sIFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSwge1xuXHRcdG1lcmdlcjogZnVuY3Rpb24oa2V5LCB0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRcdFx0aWYgKGtleSA9PT0gJ3hBeGVzJyB8fCBrZXkgPT09ICd5QXhlcycpIHtcblx0XHRcdFx0dmFyIHNsZW4gPSBzb3VyY2Vba2V5XS5sZW5ndGg7XG5cdFx0XHRcdHZhciBpLCB0eXBlLCBzY2FsZTtcblxuXHRcdFx0XHRpZiAoIXRhcmdldFtrZXldKSB7XG5cdFx0XHRcdFx0dGFyZ2V0W2tleV0gPSBbXTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZvciAoaSA9IDA7IGkgPCBzbGVuOyArK2kpIHtcblx0XHRcdFx0XHRzY2FsZSA9IHNvdXJjZVtrZXldW2ldO1xuXHRcdFx0XHRcdHR5cGUgPSB2YWx1ZU9yRGVmYXVsdCQ4KHNjYWxlLnR5cGUsIGtleSA9PT0gJ3hBeGVzJyA/ICdjYXRlZ29yeScgOiAnbGluZWFyJyk7XG5cblx0XHRcdFx0XHRpZiAoaSA+PSB0YXJnZXRba2V5XS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdHRhcmdldFtrZXldLnB1c2goe30pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmICghdGFyZ2V0W2tleV1baV0udHlwZSB8fCAoc2NhbGUudHlwZSAmJiBzY2FsZS50eXBlICE9PSB0YXJnZXRba2V5XVtpXS50eXBlKSkge1xuXHRcdFx0XHRcdFx0Ly8gbmV3L3VudHlwZWQgc2NhbGUgb3IgdHlwZSBjaGFuZ2VkOiBsZXQncyBhcHBseSB0aGUgbmV3IGRlZmF1bHRzXG5cdFx0XHRcdFx0XHQvLyB0aGVuIG1lcmdlIHNvdXJjZSBzY2FsZSB0byBjb3JyZWN0bHkgb3ZlcndyaXRlIHRoZSBkZWZhdWx0cy5cblx0XHRcdFx0XHRcdGhlbHBlcnMkMS5tZXJnZSh0YXJnZXRba2V5XVtpXSwgW2NvcmVfc2NhbGVTZXJ2aWNlLmdldFNjYWxlRGVmYXVsdHModHlwZSksIHNjYWxlXSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIHNjYWxlcyB0eXBlIGFyZSB0aGUgc2FtZVxuXHRcdFx0XHRcdFx0aGVscGVycyQxLm1lcmdlKHRhcmdldFtrZXldW2ldLCBzY2FsZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRoZWxwZXJzJDEuX21lcmdlcihrZXksIHRhcmdldCwgc291cmNlLCBvcHRpb25zKTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IG1lcmdlIHRoZSBnaXZlbiBjb25maWcgb2JqZWN0cyBhcyB0aGUgcm9vdCBvcHRpb25zIGJ5IGhhbmRsaW5nXG4gKiBkZWZhdWx0IHNjYWxlIG9wdGlvbnMgZm9yIHRoZSBgc2NhbGVzYCBhbmQgYHNjYWxlYCBwcm9wZXJ0aWVzLCB0aGVuIHJldHVybnNcbiAqIGEgZGVlcCBjb3B5IG9mIHRoZSByZXN1bHQsIHRodXMgZG9lc24ndCBhbHRlciBpbnB1dHMuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlQ29uZmlnKC8qIGNvbmZpZyBvYmplY3RzIC4uLiAqLykge1xuXHRyZXR1cm4gaGVscGVycyQxLm1lcmdlKHt9LCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksIHtcblx0XHRtZXJnZXI6IGZ1bmN0aW9uKGtleSwgdGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpIHtcblx0XHRcdHZhciB0dmFsID0gdGFyZ2V0W2tleV0gfHwge307XG5cdFx0XHR2YXIgc3ZhbCA9IHNvdXJjZVtrZXldO1xuXG5cdFx0XHRpZiAoa2V5ID09PSAnc2NhbGVzJykge1xuXHRcdFx0XHQvLyBzY2FsZSBjb25maWcgbWVyZ2luZyBpcyBjb21wbGV4LiBBZGQgb3VyIG93biBmdW5jdGlvbiBoZXJlIGZvciB0aGF0XG5cdFx0XHRcdHRhcmdldFtrZXldID0gbWVyZ2VTY2FsZUNvbmZpZyh0dmFsLCBzdmFsKTtcblx0XHRcdH0gZWxzZSBpZiAoa2V5ID09PSAnc2NhbGUnKSB7XG5cdFx0XHRcdC8vIHVzZWQgaW4gcG9sYXIgYXJlYSAmIHJhZGFyIGNoYXJ0cyBzaW5jZSB0aGVyZSBpcyBvbmx5IG9uZSBzY2FsZVxuXHRcdFx0XHR0YXJnZXRba2V5XSA9IGhlbHBlcnMkMS5tZXJnZSh0dmFsLCBbY29yZV9zY2FsZVNlcnZpY2UuZ2V0U2NhbGVEZWZhdWx0cyhzdmFsLnR5cGUpLCBzdmFsXSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRoZWxwZXJzJDEuX21lcmdlcihrZXksIHRhcmdldCwgc291cmNlLCBvcHRpb25zKTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBpbml0Q29uZmlnKGNvbmZpZykge1xuXHRjb25maWcgPSBjb25maWcgfHwge307XG5cblx0Ly8gRG8gTk9UIHVzZSBtZXJnZUNvbmZpZyBmb3IgdGhlIGRhdGEgb2JqZWN0IGJlY2F1c2UgdGhpcyBtZXRob2QgbWVyZ2VzIGFycmF5c1xuXHQvLyBhbmQgc28gd291bGQgY2hhbmdlIHJlZmVyZW5jZXMgdG8gbGFiZWxzIGFuZCBkYXRhc2V0cywgcHJldmVudGluZyBkYXRhIHVwZGF0ZXMuXG5cdHZhciBkYXRhID0gY29uZmlnLmRhdGEgPSBjb25maWcuZGF0YSB8fCB7fTtcblx0ZGF0YS5kYXRhc2V0cyA9IGRhdGEuZGF0YXNldHMgfHwgW107XG5cdGRhdGEubGFiZWxzID0gZGF0YS5sYWJlbHMgfHwgW107XG5cblx0Y29uZmlnLm9wdGlvbnMgPSBtZXJnZUNvbmZpZyhcblx0XHRjb3JlX2RlZmF1bHRzLmdsb2JhbCxcblx0XHRjb3JlX2RlZmF1bHRzW2NvbmZpZy50eXBlXSxcblx0XHRjb25maWcub3B0aW9ucyB8fCB7fSk7XG5cblx0cmV0dXJuIGNvbmZpZztcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ29uZmlnKGNoYXJ0KSB7XG5cdHZhciBuZXdPcHRpb25zID0gY2hhcnQub3B0aW9ucztcblxuXHRoZWxwZXJzJDEuZWFjaChjaGFydC5zY2FsZXMsIGZ1bmN0aW9uKHNjYWxlKSB7XG5cdFx0Y29yZV9sYXlvdXRzLnJlbW92ZUJveChjaGFydCwgc2NhbGUpO1xuXHR9KTtcblxuXHRuZXdPcHRpb25zID0gbWVyZ2VDb25maWcoXG5cdFx0Y29yZV9kZWZhdWx0cy5nbG9iYWwsXG5cdFx0Y29yZV9kZWZhdWx0c1tjaGFydC5jb25maWcudHlwZV0sXG5cdFx0bmV3T3B0aW9ucyk7XG5cblx0Y2hhcnQub3B0aW9ucyA9IGNoYXJ0LmNvbmZpZy5vcHRpb25zID0gbmV3T3B0aW9ucztcblx0Y2hhcnQuZW5zdXJlU2NhbGVzSGF2ZUlEcygpO1xuXHRjaGFydC5idWlsZE9yVXBkYXRlU2NhbGVzKCk7XG5cblx0Ly8gVG9vbHRpcFxuXHRjaGFydC50b29sdGlwLl9vcHRpb25zID0gbmV3T3B0aW9ucy50b29sdGlwcztcblx0Y2hhcnQudG9vbHRpcC5pbml0aWFsaXplKCk7XG59XG5cbmZ1bmN0aW9uIHBvc2l0aW9uSXNIb3Jpem9udGFsKHBvc2l0aW9uKSB7XG5cdHJldHVybiBwb3NpdGlvbiA9PT0gJ3RvcCcgfHwgcG9zaXRpb24gPT09ICdib3R0b20nO1xufVxuXG52YXIgQ2hhcnQgPSBmdW5jdGlvbihpdGVtLCBjb25maWcpIHtcblx0dGhpcy5jb25zdHJ1Y3QoaXRlbSwgY29uZmlnKTtcblx0cmV0dXJuIHRoaXM7XG59O1xuXG5oZWxwZXJzJDEuZXh0ZW5kKENoYXJ0LnByb3RvdHlwZSwgLyoqIEBsZW5kcyBDaGFydCAqLyB7XG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0Y29uc3RydWN0OiBmdW5jdGlvbihpdGVtLCBjb25maWcpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXG5cdFx0Y29uZmlnID0gaW5pdENvbmZpZyhjb25maWcpO1xuXG5cdFx0dmFyIGNvbnRleHQgPSBwbGF0Zm9ybS5hY3F1aXJlQ29udGV4dChpdGVtLCBjb25maWcpO1xuXHRcdHZhciBjYW52YXMgPSBjb250ZXh0ICYmIGNvbnRleHQuY2FudmFzO1xuXHRcdHZhciBoZWlnaHQgPSBjYW52YXMgJiYgY2FudmFzLmhlaWdodDtcblx0XHR2YXIgd2lkdGggPSBjYW52YXMgJiYgY2FudmFzLndpZHRoO1xuXG5cdFx0bWUuaWQgPSBoZWxwZXJzJDEudWlkKCk7XG5cdFx0bWUuY3R4ID0gY29udGV4dDtcblx0XHRtZS5jYW52YXMgPSBjYW52YXM7XG5cdFx0bWUuY29uZmlnID0gY29uZmlnO1xuXHRcdG1lLndpZHRoID0gd2lkdGg7XG5cdFx0bWUuaGVpZ2h0ID0gaGVpZ2h0O1xuXHRcdG1lLmFzcGVjdFJhdGlvID0gaGVpZ2h0ID8gd2lkdGggLyBoZWlnaHQgOiBudWxsO1xuXHRcdG1lLm9wdGlvbnMgPSBjb25maWcub3B0aW9ucztcblx0XHRtZS5fYnVmZmVyZWRSZW5kZXIgPSBmYWxzZTtcblxuXHRcdC8qKlxuXHRcdCAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBDaGFydCBhbmQgQ2hhcnQuQ29udHJvbGxlciBoYXZlIGJlZW4gbWVyZ2VkLFxuXHRcdCAqIHRoZSBcImluc3RhbmNlXCIgc3RpbGwgbmVlZCB0byBiZSBkZWZpbmVkIHNpbmNlIGl0IG1pZ2h0IGJlIGNhbGxlZCBmcm9tIHBsdWdpbnMuXG5cdFx0ICogQHByb3AgQ2hhcnQjY2hhcnRcblx0XHQgKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuNi4wXG5cdFx0ICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuXHRcdCAqIEBwcml2YXRlXG5cdFx0ICovXG5cdFx0bWUuY2hhcnQgPSBtZTtcblx0XHRtZS5jb250cm9sbGVyID0gbWU7IC8vIGNoYXJ0LmNoYXJ0LmNvbnRyb2xsZXIgI2luY2VwdGlvblxuXG5cdFx0Ly8gQWRkIHRoZSBjaGFydCBpbnN0YW5jZSB0byB0aGUgZ2xvYmFsIG5hbWVzcGFjZVxuXHRcdENoYXJ0Lmluc3RhbmNlc1ttZS5pZF0gPSBtZTtcblxuXHRcdC8vIERlZmluZSBhbGlhcyB0byB0aGUgY29uZmlnIGRhdGE6IGBjaGFydC5kYXRhID09PSBjaGFydC5jb25maWcuZGF0YWBcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobWUsICdkYXRhJywge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIG1lLmNvbmZpZy5kYXRhO1xuXHRcdFx0fSxcblx0XHRcdHNldDogZnVuY3Rpb24odmFsdWUpIHtcblx0XHRcdFx0bWUuY29uZmlnLmRhdGEgPSB2YWx1ZTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGlmICghY29udGV4dCB8fCAhY2FudmFzKSB7XG5cdFx0XHQvLyBUaGUgZ2l2ZW4gaXRlbSBpcyBub3QgYSBjb21wYXRpYmxlIGNvbnRleHQyZCBlbGVtZW50LCBsZXQncyByZXR1cm4gYmVmb3JlIGZpbmFsaXppbmdcblx0XHRcdC8vIHRoZSBjaGFydCBpbml0aWFsaXphdGlvbiBidXQgYWZ0ZXIgc2V0dGluZyBiYXNpYyBjaGFydCAvIGNvbnRyb2xsZXIgcHJvcGVydGllcyB0aGF0XG5cdFx0XHQvLyBjYW4gaGVscCB0byBmaWd1cmUgb3V0IHRoYXQgdGhlIGNoYXJ0IGlzIG5vdCB2YWxpZCAoZS5nIGNoYXJ0LmNhbnZhcyAhPT0gbnVsbCk7XG5cdFx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vY2hhcnRqcy9DaGFydC5qcy9pc3N1ZXMvMjgwN1xuXHRcdFx0Y29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBjcmVhdGUgY2hhcnQ6IGNhbid0IGFjcXVpcmUgY29udGV4dCBmcm9tIHRoZSBnaXZlbiBpdGVtXCIpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdG1lLmluaXRpYWxpemUoKTtcblx0XHRtZS51cGRhdGUoKTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGluaXRpYWxpemU6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cblx0XHQvLyBCZWZvcmUgaW5pdCBwbHVnaW4gbm90aWZpY2F0aW9uXG5cdFx0Y29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2JlZm9yZUluaXQnKTtcblxuXHRcdGhlbHBlcnMkMS5yZXRpbmFTY2FsZShtZSwgbWUub3B0aW9ucy5kZXZpY2VQaXhlbFJhdGlvKTtcblxuXHRcdG1lLmJpbmRFdmVudHMoKTtcblxuXHRcdGlmIChtZS5vcHRpb25zLnJlc3BvbnNpdmUpIHtcblx0XHRcdC8vIEluaXRpYWwgcmVzaXplIGJlZm9yZSBjaGFydCBkcmF3cyAobXVzdCBiZSBzaWxlbnQgdG8gcHJlc2VydmUgaW5pdGlhbCBhbmltYXRpb25zKS5cblx0XHRcdG1lLnJlc2l6ZSh0cnVlKTtcblx0XHR9XG5cblx0XHQvLyBNYWtlIHN1cmUgc2NhbGVzIGhhdmUgSURzIGFuZCBhcmUgYnVpbHQgYmVmb3JlIHdlIGJ1aWxkIGFueSBjb250cm9sbGVycy5cblx0XHRtZS5lbnN1cmVTY2FsZXNIYXZlSURzKCk7XG5cdFx0bWUuYnVpbGRPclVwZGF0ZVNjYWxlcygpO1xuXHRcdG1lLmluaXRUb29sVGlwKCk7XG5cblx0XHQvLyBBZnRlciBpbml0IHBsdWdpbiBub3RpZmljYXRpb25cblx0XHRjb3JlX3BsdWdpbnMubm90aWZ5KG1lLCAnYWZ0ZXJJbml0Jyk7XG5cblx0XHRyZXR1cm4gbWU7XG5cdH0sXG5cblx0Y2xlYXI6IGZ1bmN0aW9uKCkge1xuXHRcdGhlbHBlcnMkMS5jYW52YXMuY2xlYXIodGhpcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0c3RvcDogZnVuY3Rpb24oKSB7XG5cdFx0Ly8gU3RvcHMgYW55IGN1cnJlbnQgYW5pbWF0aW9uIGxvb3Agb2NjdXJyaW5nXG5cdFx0Y29yZV9hbmltYXRpb25zLmNhbmNlbEFuaW1hdGlvbih0aGlzKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRyZXNpemU6IGZ1bmN0aW9uKHNpbGVudCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG9wdGlvbnMgPSBtZS5vcHRpb25zO1xuXHRcdHZhciBjYW52YXMgPSBtZS5jYW52YXM7XG5cdFx0dmFyIGFzcGVjdFJhdGlvID0gKG9wdGlvbnMubWFpbnRhaW5Bc3BlY3RSYXRpbyAmJiBtZS5hc3BlY3RSYXRpbykgfHwgbnVsbDtcblxuXHRcdC8vIHRoZSBjYW52YXMgcmVuZGVyIHdpZHRoIGFuZCBoZWlnaHQgd2lsbCBiZSBjYXN0ZWQgdG8gaW50ZWdlcnMgc28gbWFrZSBzdXJlIHRoYXRcblx0XHQvLyB0aGUgY2FudmFzIGRpc3BsYXkgc3R5bGUgdXNlcyB0aGUgc2FtZSBpbnRlZ2VyIHZhbHVlcyB0byBhdm9pZCBibHVycmluZyBlZmZlY3QuXG5cblx0XHQvLyBTZXQgdG8gMCBpbnN0ZWFkIG9mIGNhbnZhcy5zaXplIGJlY2F1c2UgdGhlIHNpemUgZGVmYXVsdHMgdG8gMzAweDE1MCBpZiB0aGUgZWxlbWVudCBpcyBjb2xsYXBzZWRcblx0XHR2YXIgbmV3V2lkdGggPSBNYXRoLm1heCgwLCBNYXRoLmZsb29yKGhlbHBlcnMkMS5nZXRNYXhpbXVtV2lkdGgoY2FudmFzKSkpO1xuXHRcdHZhciBuZXdIZWlnaHQgPSBNYXRoLm1heCgwLCBNYXRoLmZsb29yKGFzcGVjdFJhdGlvID8gbmV3V2lkdGggLyBhc3BlY3RSYXRpbyA6IGhlbHBlcnMkMS5nZXRNYXhpbXVtSGVpZ2h0KGNhbnZhcykpKTtcblxuXHRcdGlmIChtZS53aWR0aCA9PT0gbmV3V2lkdGggJiYgbWUuaGVpZ2h0ID09PSBuZXdIZWlnaHQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjYW52YXMud2lkdGggPSBtZS53aWR0aCA9IG5ld1dpZHRoO1xuXHRcdGNhbnZhcy5oZWlnaHQgPSBtZS5oZWlnaHQgPSBuZXdIZWlnaHQ7XG5cdFx0Y2FudmFzLnN0eWxlLndpZHRoID0gbmV3V2lkdGggKyAncHgnO1xuXHRcdGNhbnZhcy5zdHlsZS5oZWlnaHQgPSBuZXdIZWlnaHQgKyAncHgnO1xuXG5cdFx0aGVscGVycyQxLnJldGluYVNjYWxlKG1lLCBvcHRpb25zLmRldmljZVBpeGVsUmF0aW8pO1xuXG5cdFx0aWYgKCFzaWxlbnQpIHtcblx0XHRcdC8vIE5vdGlmeSBhbnkgcGx1Z2lucyBhYm91dCB0aGUgcmVzaXplXG5cdFx0XHR2YXIgbmV3U2l6ZSA9IHt3aWR0aDogbmV3V2lkdGgsIGhlaWdodDogbmV3SGVpZ2h0fTtcblx0XHRcdGNvcmVfcGx1Z2lucy5ub3RpZnkobWUsICdyZXNpemUnLCBbbmV3U2l6ZV0pO1xuXG5cdFx0XHQvLyBOb3RpZnkgb2YgcmVzaXplXG5cdFx0XHRpZiAob3B0aW9ucy5vblJlc2l6ZSkge1xuXHRcdFx0XHRvcHRpb25zLm9uUmVzaXplKG1lLCBuZXdTaXplKTtcblx0XHRcdH1cblxuXHRcdFx0bWUuc3RvcCgpO1xuXHRcdFx0bWUudXBkYXRlKHtcblx0XHRcdFx0ZHVyYXRpb246IG9wdGlvbnMucmVzcG9uc2l2ZUFuaW1hdGlvbkR1cmF0aW9uXG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cblx0ZW5zdXJlU2NhbGVzSGF2ZUlEczogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cdFx0dmFyIHNjYWxlc09wdGlvbnMgPSBvcHRpb25zLnNjYWxlcyB8fCB7fTtcblx0XHR2YXIgc2NhbGVPcHRpb25zID0gb3B0aW9ucy5zY2FsZTtcblxuXHRcdGhlbHBlcnMkMS5lYWNoKHNjYWxlc09wdGlvbnMueEF4ZXMsIGZ1bmN0aW9uKHhBeGlzT3B0aW9ucywgaW5kZXgpIHtcblx0XHRcdHhBeGlzT3B0aW9ucy5pZCA9IHhBeGlzT3B0aW9ucy5pZCB8fCAoJ3gtYXhpcy0nICsgaW5kZXgpO1xuXHRcdH0pO1xuXG5cdFx0aGVscGVycyQxLmVhY2goc2NhbGVzT3B0aW9ucy55QXhlcywgZnVuY3Rpb24oeUF4aXNPcHRpb25zLCBpbmRleCkge1xuXHRcdFx0eUF4aXNPcHRpb25zLmlkID0geUF4aXNPcHRpb25zLmlkIHx8ICgneS1heGlzLScgKyBpbmRleCk7XG5cdFx0fSk7XG5cblx0XHRpZiAoc2NhbGVPcHRpb25zKSB7XG5cdFx0XHRzY2FsZU9wdGlvbnMuaWQgPSBzY2FsZU9wdGlvbnMuaWQgfHwgJ3NjYWxlJztcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhIG1hcCBvZiBzY2FsZSBJRCB0byBzY2FsZSBvYmplY3QgZm9yIGZ1dHVyZSBsb29rdXAuXG5cdCAqL1xuXHRidWlsZE9yVXBkYXRlU2NhbGVzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvcHRpb25zID0gbWUub3B0aW9ucztcblx0XHR2YXIgc2NhbGVzID0gbWUuc2NhbGVzIHx8IHt9O1xuXHRcdHZhciBpdGVtcyA9IFtdO1xuXHRcdHZhciB1cGRhdGVkID0gT2JqZWN0LmtleXMoc2NhbGVzKS5yZWR1Y2UoZnVuY3Rpb24ob2JqLCBpZCkge1xuXHRcdFx0b2JqW2lkXSA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuIG9iajtcblx0XHR9LCB7fSk7XG5cblx0XHRpZiAob3B0aW9ucy5zY2FsZXMpIHtcblx0XHRcdGl0ZW1zID0gaXRlbXMuY29uY2F0KFxuXHRcdFx0XHQob3B0aW9ucy5zY2FsZXMueEF4ZXMgfHwgW10pLm1hcChmdW5jdGlvbih4QXhpc09wdGlvbnMpIHtcblx0XHRcdFx0XHRyZXR1cm4ge29wdGlvbnM6IHhBeGlzT3B0aW9ucywgZHR5cGU6ICdjYXRlZ29yeScsIGRwb3NpdGlvbjogJ2JvdHRvbSd9O1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0KG9wdGlvbnMuc2NhbGVzLnlBeGVzIHx8IFtdKS5tYXAoZnVuY3Rpb24oeUF4aXNPcHRpb25zKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHtvcHRpb25zOiB5QXhpc09wdGlvbnMsIGR0eXBlOiAnbGluZWFyJywgZHBvc2l0aW9uOiAnbGVmdCd9O1xuXHRcdFx0XHR9KVxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRpZiAob3B0aW9ucy5zY2FsZSkge1xuXHRcdFx0aXRlbXMucHVzaCh7XG5cdFx0XHRcdG9wdGlvbnM6IG9wdGlvbnMuc2NhbGUsXG5cdFx0XHRcdGR0eXBlOiAncmFkaWFsTGluZWFyJyxcblx0XHRcdFx0aXNEZWZhdWx0OiB0cnVlLFxuXHRcdFx0XHRkcG9zaXRpb246ICdjaGFydEFyZWEnXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRoZWxwZXJzJDEuZWFjaChpdGVtcywgZnVuY3Rpb24oaXRlbSkge1xuXHRcdFx0dmFyIHNjYWxlT3B0aW9ucyA9IGl0ZW0ub3B0aW9ucztcblx0XHRcdHZhciBpZCA9IHNjYWxlT3B0aW9ucy5pZDtcblx0XHRcdHZhciBzY2FsZVR5cGUgPSB2YWx1ZU9yRGVmYXVsdCQ4KHNjYWxlT3B0aW9ucy50eXBlLCBpdGVtLmR0eXBlKTtcblxuXHRcdFx0aWYgKHBvc2l0aW9uSXNIb3Jpem9udGFsKHNjYWxlT3B0aW9ucy5wb3NpdGlvbikgIT09IHBvc2l0aW9uSXNIb3Jpem9udGFsKGl0ZW0uZHBvc2l0aW9uKSkge1xuXHRcdFx0XHRzY2FsZU9wdGlvbnMucG9zaXRpb24gPSBpdGVtLmRwb3NpdGlvbjtcblx0XHRcdH1cblxuXHRcdFx0dXBkYXRlZFtpZF0gPSB0cnVlO1xuXHRcdFx0dmFyIHNjYWxlID0gbnVsbDtcblx0XHRcdGlmIChpZCBpbiBzY2FsZXMgJiYgc2NhbGVzW2lkXS50eXBlID09PSBzY2FsZVR5cGUpIHtcblx0XHRcdFx0c2NhbGUgPSBzY2FsZXNbaWRdO1xuXHRcdFx0XHRzY2FsZS5vcHRpb25zID0gc2NhbGVPcHRpb25zO1xuXHRcdFx0XHRzY2FsZS5jdHggPSBtZS5jdHg7XG5cdFx0XHRcdHNjYWxlLmNoYXJ0ID0gbWU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YXIgc2NhbGVDbGFzcyA9IGNvcmVfc2NhbGVTZXJ2aWNlLmdldFNjYWxlQ29uc3RydWN0b3Ioc2NhbGVUeXBlKTtcblx0XHRcdFx0aWYgKCFzY2FsZUNsYXNzKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNjYWxlID0gbmV3IHNjYWxlQ2xhc3Moe1xuXHRcdFx0XHRcdGlkOiBpZCxcblx0XHRcdFx0XHR0eXBlOiBzY2FsZVR5cGUsXG5cdFx0XHRcdFx0b3B0aW9uczogc2NhbGVPcHRpb25zLFxuXHRcdFx0XHRcdGN0eDogbWUuY3R4LFxuXHRcdFx0XHRcdGNoYXJ0OiBtZVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2NhbGVzW3NjYWxlLmlkXSA9IHNjYWxlO1xuXHRcdFx0fVxuXG5cdFx0XHRzY2FsZS5tZXJnZVRpY2tzT3B0aW9ucygpO1xuXG5cdFx0XHQvLyBUT0RPKFNCKTogSSB0aGluayB3ZSBzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgdGhpcyBjdXN0b20gY2FzZSAob3B0aW9ucy5zY2FsZSlcblx0XHRcdC8vIGFuZCBjb25zaWRlciBpdCBhcyBhIHJlZ3VsYXIgc2NhbGUgcGFydCBvZiB0aGUgXCJzY2FsZXNcIlwiIG1hcCBvbmx5ISBUaGlzIHdvdWxkXG5cdFx0XHQvLyBtYWtlIHRoZSBsb2dpYyBlYXNpZXIgYW5kIHJlbW92ZSBzb21lIHVzZWxlc3M/IGN1c3RvbSBjb2RlLlxuXHRcdFx0aWYgKGl0ZW0uaXNEZWZhdWx0KSB7XG5cdFx0XHRcdG1lLnNjYWxlID0gc2NhbGU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0Ly8gY2xlYXIgdXAgZGlzY2FyZGVkIHNjYWxlc1xuXHRcdGhlbHBlcnMkMS5lYWNoKHVwZGF0ZWQsIGZ1bmN0aW9uKGhhc1VwZGF0ZWQsIGlkKSB7XG5cdFx0XHRpZiAoIWhhc1VwZGF0ZWQpIHtcblx0XHRcdFx0ZGVsZXRlIHNjYWxlc1tpZF07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRtZS5zY2FsZXMgPSBzY2FsZXM7XG5cblx0XHRjb3JlX3NjYWxlU2VydmljZS5hZGRTY2FsZXNUb0xheW91dCh0aGlzKTtcblx0fSxcblxuXHRidWlsZE9yVXBkYXRlQ29udHJvbGxlcnM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG5ld0NvbnRyb2xsZXJzID0gW107XG5cblx0XHRoZWxwZXJzJDEuZWFjaChtZS5kYXRhLmRhdGFzZXRzLCBmdW5jdGlvbihkYXRhc2V0LCBkYXRhc2V0SW5kZXgpIHtcblx0XHRcdHZhciBtZXRhID0gbWUuZ2V0RGF0YXNldE1ldGEoZGF0YXNldEluZGV4KTtcblx0XHRcdHZhciB0eXBlID0gZGF0YXNldC50eXBlIHx8IG1lLmNvbmZpZy50eXBlO1xuXG5cdFx0XHRpZiAobWV0YS50eXBlICYmIG1ldGEudHlwZSAhPT0gdHlwZSkge1xuXHRcdFx0XHRtZS5kZXN0cm95RGF0YXNldE1ldGEoZGF0YXNldEluZGV4KTtcblx0XHRcdFx0bWV0YSA9IG1lLmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XG5cdFx0XHR9XG5cdFx0XHRtZXRhLnR5cGUgPSB0eXBlO1xuXG5cdFx0XHRpZiAobWV0YS5jb250cm9sbGVyKSB7XG5cdFx0XHRcdG1ldGEuY29udHJvbGxlci51cGRhdGVJbmRleChkYXRhc2V0SW5kZXgpO1xuXHRcdFx0XHRtZXRhLmNvbnRyb2xsZXIubGlua1NjYWxlcygpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFyIENvbnRyb2xsZXJDbGFzcyA9IGNvbnRyb2xsZXJzW21ldGEudHlwZV07XG5cdFx0XHRcdGlmIChDb250cm9sbGVyQ2xhc3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignXCInICsgbWV0YS50eXBlICsgJ1wiIGlzIG5vdCBhIGNoYXJ0IHR5cGUuJyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRtZXRhLmNvbnRyb2xsZXIgPSBuZXcgQ29udHJvbGxlckNsYXNzKG1lLCBkYXRhc2V0SW5kZXgpO1xuXHRcdFx0XHRuZXdDb250cm9sbGVycy5wdXNoKG1ldGEuY29udHJvbGxlcik7XG5cdFx0XHR9XG5cdFx0fSwgbWUpO1xuXG5cdFx0cmV0dXJuIG5ld0NvbnRyb2xsZXJzO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXNldCB0aGUgZWxlbWVudHMgb2YgYWxsIGRhdGFzZXRzXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRyZXNldEVsZW1lbnRzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdGhlbHBlcnMkMS5lYWNoKG1lLmRhdGEuZGF0YXNldHMsIGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkge1xuXHRcdFx0bWUuZ2V0RGF0YXNldE1ldGEoZGF0YXNldEluZGV4KS5jb250cm9sbGVyLnJlc2V0KCk7XG5cdFx0fSwgbWUpO1xuXHR9LFxuXG5cdC8qKlxuXHQqIFJlc2V0cyB0aGUgY2hhcnQgYmFjayB0byBpdCdzIHN0YXRlIGJlZm9yZSB0aGUgaW5pdGlhbCBhbmltYXRpb25cblx0Ki9cblx0cmVzZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdHRoaXMucmVzZXRFbGVtZW50cygpO1xuXHRcdHRoaXMudG9vbHRpcC5pbml0aWFsaXplKCk7XG5cdH0sXG5cblx0dXBkYXRlOiBmdW5jdGlvbihjb25maWcpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXG5cdFx0aWYgKCFjb25maWcgfHwgdHlwZW9mIGNvbmZpZyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5cdFx0XHRjb25maWcgPSB7XG5cdFx0XHRcdGR1cmF0aW9uOiBjb25maWcsXG5cdFx0XHRcdGxhenk6IGFyZ3VtZW50c1sxXVxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHR1cGRhdGVDb25maWcobWUpO1xuXG5cdFx0Ly8gcGx1Z2lucyBvcHRpb25zIHJlZmVyZW5jZXMgbWlnaHQgaGF2ZSBjaGFuZ2UsIGxldCdzIGludmFsaWRhdGUgdGhlIGNhY2hlXG5cdFx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvaXNzdWVzLzUxMTEjaXNzdWVjb21tZW50LTM1NTkzNDE2N1xuXHRcdGNvcmVfcGx1Z2lucy5faW52YWxpZGF0ZShtZSk7XG5cblx0XHRpZiAoY29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2JlZm9yZVVwZGF0ZScpID09PSBmYWxzZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIEluIGNhc2UgdGhlIGVudGlyZSBkYXRhIG9iamVjdCBjaGFuZ2VkXG5cdFx0bWUudG9vbHRpcC5fZGF0YSA9IG1lLmRhdGE7XG5cblx0XHQvLyBNYWtlIHN1cmUgZGF0YXNldCBjb250cm9sbGVycyBhcmUgdXBkYXRlZCBhbmQgbmV3IGNvbnRyb2xsZXJzIGFyZSByZXNldFxuXHRcdHZhciBuZXdDb250cm9sbGVycyA9IG1lLmJ1aWxkT3JVcGRhdGVDb250cm9sbGVycygpO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIGFsbCBkYXRhc2V0IGNvbnRyb2xsZXJzIGhhdmUgY29ycmVjdCBtZXRhIGRhdGEgY291bnRzXG5cdFx0aGVscGVycyQxLmVhY2gobWUuZGF0YS5kYXRhc2V0cywgZnVuY3Rpb24oZGF0YXNldCwgZGF0YXNldEluZGV4KSB7XG5cdFx0XHRtZS5nZXREYXRhc2V0TWV0YShkYXRhc2V0SW5kZXgpLmNvbnRyb2xsZXIuYnVpbGRPclVwZGF0ZUVsZW1lbnRzKCk7XG5cdFx0fSwgbWUpO1xuXG5cdFx0bWUudXBkYXRlTGF5b3V0KCk7XG5cblx0XHQvLyBDYW4gb25seSByZXNldCB0aGUgbmV3IGNvbnRyb2xsZXJzIGFmdGVyIHRoZSBzY2FsZXMgaGF2ZSBiZWVuIHVwZGF0ZWRcblx0XHRpZiAobWUub3B0aW9ucy5hbmltYXRpb24gJiYgbWUub3B0aW9ucy5hbmltYXRpb24uZHVyYXRpb24pIHtcblx0XHRcdGhlbHBlcnMkMS5lYWNoKG5ld0NvbnRyb2xsZXJzLCBmdW5jdGlvbihjb250cm9sbGVyKSB7XG5cdFx0XHRcdGNvbnRyb2xsZXIucmVzZXQoKTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdG1lLnVwZGF0ZURhdGFzZXRzKCk7XG5cblx0XHQvLyBOZWVkIHRvIHJlc2V0IHRvb2x0aXAgaW4gY2FzZSBpdCBpcyBkaXNwbGF5ZWQgd2l0aCBlbGVtZW50cyB0aGF0IGFyZSByZW1vdmVkXG5cdFx0Ly8gYWZ0ZXIgdXBkYXRlLlxuXHRcdG1lLnRvb2x0aXAuaW5pdGlhbGl6ZSgpO1xuXG5cdFx0Ly8gTGFzdCBhY3RpdmUgY29udGFpbnMgaXRlbXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgaW4gdGhlIHRvb2x0aXAuXG5cdFx0Ly8gV2hlbiB3ZSByZXNldCB0aGUgdG9vbHRpcCwgd2UgbmVlZCB0byBjbGVhciBpdFxuXHRcdG1lLmxhc3RBY3RpdmUgPSBbXTtcblxuXHRcdC8vIERvIHRoaXMgYmVmb3JlIHJlbmRlciBzbyB0aGF0IGFueSBwbHVnaW5zIHRoYXQgbmVlZCBmaW5hbCBzY2FsZSB1cGRhdGVzIGNhbiB1c2UgaXRcblx0XHRjb3JlX3BsdWdpbnMubm90aWZ5KG1lLCAnYWZ0ZXJVcGRhdGUnKTtcblxuXHRcdGlmIChtZS5fYnVmZmVyZWRSZW5kZXIpIHtcblx0XHRcdG1lLl9idWZmZXJlZFJlcXVlc3QgPSB7XG5cdFx0XHRcdGR1cmF0aW9uOiBjb25maWcuZHVyYXRpb24sXG5cdFx0XHRcdGVhc2luZzogY29uZmlnLmVhc2luZyxcblx0XHRcdFx0bGF6eTogY29uZmlnLmxhenlcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdG1lLnJlbmRlcihjb25maWcpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgY2hhcnQgbGF5b3V0IHVubGVzcyBhIHBsdWdpbiByZXR1cm5zIGBmYWxzZWAgdG8gdGhlIGBiZWZvcmVMYXlvdXRgXG5cdCAqIGhvb2ssIGluIHdoaWNoIGNhc2UsIHBsdWdpbnMgd2lsbCBub3QgYmUgY2FsbGVkIG9uIGBhZnRlckxheW91dGAuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHR1cGRhdGVMYXlvdXQ6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cblx0XHRpZiAoY29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2JlZm9yZUxheW91dCcpID09PSBmYWxzZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvcmVfbGF5b3V0cy51cGRhdGUodGhpcywgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xuXG5cdFx0LyoqXG5cdFx0ICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHVzZSBgYWZ0ZXJMYXlvdXRgIGluc3RlYWQuXG5cdFx0ICogQG1ldGhvZCBJUGx1Z2luI2FmdGVyU2NhbGVVcGRhdGVcblx0XHQgKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuNS4wXG5cdFx0ICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuXHRcdCAqIEBwcml2YXRlXG5cdFx0ICovXG5cdFx0Y29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2FmdGVyU2NhbGVVcGRhdGUnKTtcblx0XHRjb3JlX3BsdWdpbnMubm90aWZ5KG1lLCAnYWZ0ZXJMYXlvdXQnKTtcblx0fSxcblxuXHQvKipcblx0ICogVXBkYXRlcyBhbGwgZGF0YXNldHMgdW5sZXNzIGEgcGx1Z2luIHJldHVybnMgYGZhbHNlYCB0byB0aGUgYGJlZm9yZURhdGFzZXRzVXBkYXRlYFxuXHQgKiBob29rLCBpbiB3aGljaCBjYXNlLCBwbHVnaW5zIHdpbGwgbm90IGJlIGNhbGxlZCBvbiBgYWZ0ZXJEYXRhc2V0c1VwZGF0ZWAuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHR1cGRhdGVEYXRhc2V0czogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblxuXHRcdGlmIChjb3JlX3BsdWdpbnMubm90aWZ5KG1lLCAnYmVmb3JlRGF0YXNldHNVcGRhdGUnKSA9PT0gZmFsc2UpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRmb3IgKHZhciBpID0gMCwgaWxlbiA9IG1lLmRhdGEuZGF0YXNldHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRtZS51cGRhdGVEYXRhc2V0KGkpO1xuXHRcdH1cblxuXHRcdGNvcmVfcGx1Z2lucy5ub3RpZnkobWUsICdhZnRlckRhdGFzZXRzVXBkYXRlJyk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgZGF0YXNldCBhdCBpbmRleCB1bmxlc3MgYSBwbHVnaW4gcmV0dXJucyBgZmFsc2VgIHRvIHRoZSBgYmVmb3JlRGF0YXNldFVwZGF0ZWBcblx0ICogaG9vaywgaW4gd2hpY2ggY2FzZSwgcGx1Z2lucyB3aWxsIG5vdCBiZSBjYWxsZWQgb24gYGFmdGVyRGF0YXNldFVwZGF0ZWAuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHR1cGRhdGVEYXRhc2V0OiBmdW5jdGlvbihpbmRleCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG1ldGEgPSBtZS5nZXREYXRhc2V0TWV0YShpbmRleCk7XG5cdFx0dmFyIGFyZ3MgPSB7XG5cdFx0XHRtZXRhOiBtZXRhLFxuXHRcdFx0aW5kZXg6IGluZGV4XG5cdFx0fTtcblxuXHRcdGlmIChjb3JlX3BsdWdpbnMubm90aWZ5KG1lLCAnYmVmb3JlRGF0YXNldFVwZGF0ZScsIFthcmdzXSkgPT09IGZhbHNlKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0bWV0YS5jb250cm9sbGVyLnVwZGF0ZSgpO1xuXG5cdFx0Y29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2FmdGVyRGF0YXNldFVwZGF0ZScsIFthcmdzXSk7XG5cdH0sXG5cblx0cmVuZGVyOiBmdW5jdGlvbihjb25maWcpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXG5cdFx0aWYgKCFjb25maWcgfHwgdHlwZW9mIGNvbmZpZyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5cdFx0XHRjb25maWcgPSB7XG5cdFx0XHRcdGR1cmF0aW9uOiBjb25maWcsXG5cdFx0XHRcdGxhenk6IGFyZ3VtZW50c1sxXVxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHR2YXIgYW5pbWF0aW9uT3B0aW9ucyA9IG1lLm9wdGlvbnMuYW5pbWF0aW9uO1xuXHRcdHZhciBkdXJhdGlvbiA9IHZhbHVlT3JEZWZhdWx0JDgoY29uZmlnLmR1cmF0aW9uLCBhbmltYXRpb25PcHRpb25zICYmIGFuaW1hdGlvbk9wdGlvbnMuZHVyYXRpb24pO1xuXHRcdHZhciBsYXp5ID0gY29uZmlnLmxhenk7XG5cblx0XHRpZiAoY29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2JlZm9yZVJlbmRlcicpID09PSBmYWxzZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHZhciBvbkNvbXBsZXRlID0gZnVuY3Rpb24oYW5pbWF0aW9uKSB7XG5cdFx0XHRjb3JlX3BsdWdpbnMubm90aWZ5KG1lLCAnYWZ0ZXJSZW5kZXInKTtcblx0XHRcdGhlbHBlcnMkMS5jYWxsYmFjayhhbmltYXRpb25PcHRpb25zICYmIGFuaW1hdGlvbk9wdGlvbnMub25Db21wbGV0ZSwgW2FuaW1hdGlvbl0sIG1lKTtcblx0XHR9O1xuXG5cdFx0aWYgKGFuaW1hdGlvbk9wdGlvbnMgJiYgZHVyYXRpb24pIHtcblx0XHRcdHZhciBhbmltYXRpb24gPSBuZXcgY29yZV9hbmltYXRpb24oe1xuXHRcdFx0XHRudW1TdGVwczogZHVyYXRpb24gLyAxNi42NiwgLy8gNjAgZnBzXG5cdFx0XHRcdGVhc2luZzogY29uZmlnLmVhc2luZyB8fCBhbmltYXRpb25PcHRpb25zLmVhc2luZyxcblxuXHRcdFx0XHRyZW5kZXI6IGZ1bmN0aW9uKGNoYXJ0LCBhbmltYXRpb25PYmplY3QpIHtcblx0XHRcdFx0XHR2YXIgZWFzaW5nRnVuY3Rpb24gPSBoZWxwZXJzJDEuZWFzaW5nLmVmZmVjdHNbYW5pbWF0aW9uT2JqZWN0LmVhc2luZ107XG5cdFx0XHRcdFx0dmFyIGN1cnJlbnRTdGVwID0gYW5pbWF0aW9uT2JqZWN0LmN1cnJlbnRTdGVwO1xuXHRcdFx0XHRcdHZhciBzdGVwRGVjaW1hbCA9IGN1cnJlbnRTdGVwIC8gYW5pbWF0aW9uT2JqZWN0Lm51bVN0ZXBzO1xuXG5cdFx0XHRcdFx0Y2hhcnQuZHJhdyhlYXNpbmdGdW5jdGlvbihzdGVwRGVjaW1hbCksIHN0ZXBEZWNpbWFsLCBjdXJyZW50U3RlcCk7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0b25BbmltYXRpb25Qcm9ncmVzczogYW5pbWF0aW9uT3B0aW9ucy5vblByb2dyZXNzLFxuXHRcdFx0XHRvbkFuaW1hdGlvbkNvbXBsZXRlOiBvbkNvbXBsZXRlXG5cdFx0XHR9KTtcblxuXHRcdFx0Y29yZV9hbmltYXRpb25zLmFkZEFuaW1hdGlvbihtZSwgYW5pbWF0aW9uLCBkdXJhdGlvbiwgbGF6eSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG1lLmRyYXcoKTtcblxuXHRcdFx0Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL2lzc3Vlcy8zNzgxXG5cdFx0XHRvbkNvbXBsZXRlKG5ldyBjb3JlX2FuaW1hdGlvbih7bnVtU3RlcHM6IDAsIGNoYXJ0OiBtZX0pKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbWU7XG5cdH0sXG5cblx0ZHJhdzogZnVuY3Rpb24oZWFzaW5nVmFsdWUpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXG5cdFx0bWUuY2xlYXIoKTtcblxuXHRcdGlmIChoZWxwZXJzJDEuaXNOdWxsT3JVbmRlZihlYXNpbmdWYWx1ZSkpIHtcblx0XHRcdGVhc2luZ1ZhbHVlID0gMTtcblx0XHR9XG5cblx0XHRtZS50cmFuc2l0aW9uKGVhc2luZ1ZhbHVlKTtcblxuXHRcdGlmIChtZS53aWR0aCA8PSAwIHx8IG1lLmhlaWdodCA8PSAwKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKGNvcmVfcGx1Z2lucy5ub3RpZnkobWUsICdiZWZvcmVEcmF3JywgW2Vhc2luZ1ZhbHVlXSkgPT09IGZhbHNlKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRHJhdyBhbGwgdGhlIHNjYWxlc1xuXHRcdGhlbHBlcnMkMS5lYWNoKG1lLmJveGVzLCBmdW5jdGlvbihib3gpIHtcblx0XHRcdGJveC5kcmF3KG1lLmNoYXJ0QXJlYSk7XG5cdFx0fSwgbWUpO1xuXG5cdFx0bWUuZHJhd0RhdGFzZXRzKGVhc2luZ1ZhbHVlKTtcblx0XHRtZS5fZHJhd1Rvb2x0aXAoZWFzaW5nVmFsdWUpO1xuXG5cdFx0Y29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2FmdGVyRHJhdycsIFtlYXNpbmdWYWx1ZV0pO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0dHJhbnNpdGlvbjogZnVuY3Rpb24oZWFzaW5nVmFsdWUpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDAsIGlsZW4gPSAobWUuZGF0YS5kYXRhc2V0cyB8fCBbXSkubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRpZiAobWUuaXNEYXRhc2V0VmlzaWJsZShpKSkge1xuXHRcdFx0XHRtZS5nZXREYXRhc2V0TWV0YShpKS5jb250cm9sbGVyLnRyYW5zaXRpb24oZWFzaW5nVmFsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdG1lLnRvb2x0aXAudHJhbnNpdGlvbihlYXNpbmdWYWx1ZSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIERyYXdzIGFsbCBkYXRhc2V0cyB1bmxlc3MgYSBwbHVnaW4gcmV0dXJucyBgZmFsc2VgIHRvIHRoZSBgYmVmb3JlRGF0YXNldHNEcmF3YFxuXHQgKiBob29rLCBpbiB3aGljaCBjYXNlLCBwbHVnaW5zIHdpbGwgbm90IGJlIGNhbGxlZCBvbiBgYWZ0ZXJEYXRhc2V0c0RyYXdgLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0ZHJhd0RhdGFzZXRzOiBmdW5jdGlvbihlYXNpbmdWYWx1ZSkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cblx0XHRpZiAoY29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2JlZm9yZURhdGFzZXRzRHJhdycsIFtlYXNpbmdWYWx1ZV0pID09PSBmYWxzZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIERyYXcgZGF0YXNldHMgcmV2ZXJzZWQgdG8gc3VwcG9ydCBwcm9wZXIgbGluZSBzdGFja2luZ1xuXHRcdGZvciAodmFyIGkgPSAobWUuZGF0YS5kYXRhc2V0cyB8fCBbXSkubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcblx0XHRcdGlmIChtZS5pc0RhdGFzZXRWaXNpYmxlKGkpKSB7XG5cdFx0XHRcdG1lLmRyYXdEYXRhc2V0KGksIGVhc2luZ1ZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb3JlX3BsdWdpbnMubm90aWZ5KG1lLCAnYWZ0ZXJEYXRhc2V0c0RyYXcnLCBbZWFzaW5nVmFsdWVdKTtcblx0fSxcblxuXHQvKipcblx0ICogRHJhd3MgZGF0YXNldCBhdCBpbmRleCB1bmxlc3MgYSBwbHVnaW4gcmV0dXJucyBgZmFsc2VgIHRvIHRoZSBgYmVmb3JlRGF0YXNldERyYXdgXG5cdCAqIGhvb2ssIGluIHdoaWNoIGNhc2UsIHBsdWdpbnMgd2lsbCBub3QgYmUgY2FsbGVkIG9uIGBhZnRlckRhdGFzZXREcmF3YC5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdGRyYXdEYXRhc2V0OiBmdW5jdGlvbihpbmRleCwgZWFzaW5nVmFsdWUpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBtZXRhID0gbWUuZ2V0RGF0YXNldE1ldGEoaW5kZXgpO1xuXHRcdHZhciBhcmdzID0ge1xuXHRcdFx0bWV0YTogbWV0YSxcblx0XHRcdGluZGV4OiBpbmRleCxcblx0XHRcdGVhc2luZ1ZhbHVlOiBlYXNpbmdWYWx1ZVxuXHRcdH07XG5cblx0XHRpZiAoY29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2JlZm9yZURhdGFzZXREcmF3JywgW2FyZ3NdKSA9PT0gZmFsc2UpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRtZXRhLmNvbnRyb2xsZXIuZHJhdyhlYXNpbmdWYWx1ZSk7XG5cblx0XHRjb3JlX3BsdWdpbnMubm90aWZ5KG1lLCAnYWZ0ZXJEYXRhc2V0RHJhdycsIFthcmdzXSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIERyYXdzIHRvb2x0aXAgdW5sZXNzIGEgcGx1Z2luIHJldHVybnMgYGZhbHNlYCB0byB0aGUgYGJlZm9yZVRvb2x0aXBEcmF3YFxuXHQgKiBob29rLCBpbiB3aGljaCBjYXNlLCBwbHVnaW5zIHdpbGwgbm90IGJlIGNhbGxlZCBvbiBgYWZ0ZXJUb29sdGlwRHJhd2AuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfZHJhd1Rvb2x0aXA6IGZ1bmN0aW9uKGVhc2luZ1ZhbHVlKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgdG9vbHRpcCA9IG1lLnRvb2x0aXA7XG5cdFx0dmFyIGFyZ3MgPSB7XG5cdFx0XHR0b29sdGlwOiB0b29sdGlwLFxuXHRcdFx0ZWFzaW5nVmFsdWU6IGVhc2luZ1ZhbHVlXG5cdFx0fTtcblxuXHRcdGlmIChjb3JlX3BsdWdpbnMubm90aWZ5KG1lLCAnYmVmb3JlVG9vbHRpcERyYXcnLCBbYXJnc10pID09PSBmYWxzZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRvb2x0aXAuZHJhdygpO1xuXG5cdFx0Y29yZV9wbHVnaW5zLm5vdGlmeShtZSwgJ2FmdGVyVG9vbHRpcERyYXcnLCBbYXJnc10pO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIHNpbmdsZSBlbGVtZW50IHRoYXQgd2FzIGNsaWNrZWQgb25cblx0ICogQHJldHVybiBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZGF0YXNldCBpbmRleCBhbmQgZWxlbWVudCBpbmRleCBvZiB0aGUgbWF0Y2hpbmcgZWxlbWVudC4gQWxzbyBjb250YWlucyB0aGUgcmVjdGFuZ2xlIHRoYXQgd2FzIGRyYXdcblx0ICovXG5cdGdldEVsZW1lbnRBdEV2ZW50OiBmdW5jdGlvbihlKSB7XG5cdFx0cmV0dXJuIGNvcmVfaW50ZXJhY3Rpb24ubW9kZXMuc2luZ2xlKHRoaXMsIGUpO1xuXHR9LFxuXG5cdGdldEVsZW1lbnRzQXRFdmVudDogZnVuY3Rpb24oZSkge1xuXHRcdHJldHVybiBjb3JlX2ludGVyYWN0aW9uLm1vZGVzLmxhYmVsKHRoaXMsIGUsIHtpbnRlcnNlY3Q6IHRydWV9KTtcblx0fSxcblxuXHRnZXRFbGVtZW50c0F0WEF4aXM6IGZ1bmN0aW9uKGUpIHtcblx0XHRyZXR1cm4gY29yZV9pbnRlcmFjdGlvbi5tb2Rlc1sneC1heGlzJ10odGhpcywgZSwge2ludGVyc2VjdDogdHJ1ZX0pO1xuXHR9LFxuXG5cdGdldEVsZW1lbnRzQXRFdmVudEZvck1vZGU6IGZ1bmN0aW9uKGUsIG1vZGUsIG9wdGlvbnMpIHtcblx0XHR2YXIgbWV0aG9kID0gY29yZV9pbnRlcmFjdGlvbi5tb2Rlc1ttb2RlXTtcblx0XHRpZiAodHlwZW9mIG1ldGhvZCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0cmV0dXJuIG1ldGhvZCh0aGlzLCBlLCBvcHRpb25zKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gW107XG5cdH0sXG5cblx0Z2V0RGF0YXNldEF0RXZlbnQ6IGZ1bmN0aW9uKGUpIHtcblx0XHRyZXR1cm4gY29yZV9pbnRlcmFjdGlvbi5tb2Rlcy5kYXRhc2V0KHRoaXMsIGUsIHtpbnRlcnNlY3Q6IHRydWV9KTtcblx0fSxcblxuXHRnZXREYXRhc2V0TWV0YTogZnVuY3Rpb24oZGF0YXNldEluZGV4KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgZGF0YXNldCA9IG1lLmRhdGEuZGF0YXNldHNbZGF0YXNldEluZGV4XTtcblx0XHRpZiAoIWRhdGFzZXQuX21ldGEpIHtcblx0XHRcdGRhdGFzZXQuX21ldGEgPSB7fTtcblx0XHR9XG5cblx0XHR2YXIgbWV0YSA9IGRhdGFzZXQuX21ldGFbbWUuaWRdO1xuXHRcdGlmICghbWV0YSkge1xuXHRcdFx0bWV0YSA9IGRhdGFzZXQuX21ldGFbbWUuaWRdID0ge1xuXHRcdFx0XHR0eXBlOiBudWxsLFxuXHRcdFx0XHRkYXRhOiBbXSxcblx0XHRcdFx0ZGF0YXNldDogbnVsbCxcblx0XHRcdFx0Y29udHJvbGxlcjogbnVsbCxcblx0XHRcdFx0aGlkZGVuOiBudWxsLFx0XHRcdC8vIFNlZSBpc0RhdGFzZXRWaXNpYmxlKCkgY29tbWVudFxuXHRcdFx0XHR4QXhpc0lEOiBudWxsLFxuXHRcdFx0XHR5QXhpc0lEOiBudWxsXG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdHJldHVybiBtZXRhO1xuXHR9LFxuXG5cdGdldFZpc2libGVEYXRhc2V0Q291bnQ6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBjb3VudCA9IDA7XG5cdFx0Zm9yICh2YXIgaSA9IDAsIGlsZW4gPSB0aGlzLmRhdGEuZGF0YXNldHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRpZiAodGhpcy5pc0RhdGFzZXRWaXNpYmxlKGkpKSB7XG5cdFx0XHRcdGNvdW50Kys7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBjb3VudDtcblx0fSxcblxuXHRpc0RhdGFzZXRWaXNpYmxlOiBmdW5jdGlvbihkYXRhc2V0SW5kZXgpIHtcblx0XHR2YXIgbWV0YSA9IHRoaXMuZ2V0RGF0YXNldE1ldGEoZGF0YXNldEluZGV4KTtcblxuXHRcdC8vIG1ldGEuaGlkZGVuIGlzIGEgcGVyIGNoYXJ0IGRhdGFzZXQgaGlkZGVuIGZsYWcgb3ZlcnJpZGUgd2l0aCAzIHN0YXRlczogaWYgdHJ1ZSBvciBmYWxzZSxcblx0XHQvLyB0aGUgZGF0YXNldC5oaWRkZW4gdmFsdWUgaXMgaWdub3JlZCwgZWxzZSBpZiBudWxsLCB0aGUgZGF0YXNldCBoaWRkZW4gc3RhdGUgaXMgcmV0dXJuZWQuXG5cdFx0cmV0dXJuIHR5cGVvZiBtZXRhLmhpZGRlbiA9PT0gJ2Jvb2xlYW4nID8gIW1ldGEuaGlkZGVuIDogIXRoaXMuZGF0YS5kYXRhc2V0c1tkYXRhc2V0SW5kZXhdLmhpZGRlbjtcblx0fSxcblxuXHRnZW5lcmF0ZUxlZ2VuZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucy5sZWdlbmRDYWxsYmFjayh0aGlzKTtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGRlc3Ryb3lEYXRhc2V0TWV0YTogZnVuY3Rpb24oZGF0YXNldEluZGV4KSB7XG5cdFx0dmFyIGlkID0gdGhpcy5pZDtcblx0XHR2YXIgZGF0YXNldCA9IHRoaXMuZGF0YS5kYXRhc2V0c1tkYXRhc2V0SW5kZXhdO1xuXHRcdHZhciBtZXRhID0gZGF0YXNldC5fbWV0YSAmJiBkYXRhc2V0Ll9tZXRhW2lkXTtcblxuXHRcdGlmIChtZXRhKSB7XG5cdFx0XHRtZXRhLmNvbnRyb2xsZXIuZGVzdHJveSgpO1xuXHRcdFx0ZGVsZXRlIGRhdGFzZXQuX21ldGFbaWRdO1xuXHRcdH1cblx0fSxcblxuXHRkZXN0cm95OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjYW52YXMgPSBtZS5jYW52YXM7XG5cdFx0dmFyIGksIGlsZW47XG5cblx0XHRtZS5zdG9wKCk7XG5cblx0XHQvLyBkYXRhc2V0IGNvbnRyb2xsZXJzIG5lZWQgdG8gY2xlYW51cCBhc3NvY2lhdGVkIGRhdGFcblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gbWUuZGF0YS5kYXRhc2V0cy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdG1lLmRlc3Ryb3lEYXRhc2V0TWV0YShpKTtcblx0XHR9XG5cblx0XHRpZiAoY2FudmFzKSB7XG5cdFx0XHRtZS51bmJpbmRFdmVudHMoKTtcblx0XHRcdGhlbHBlcnMkMS5jYW52YXMuY2xlYXIobWUpO1xuXHRcdFx0cGxhdGZvcm0ucmVsZWFzZUNvbnRleHQobWUuY3R4KTtcblx0XHRcdG1lLmNhbnZhcyA9IG51bGw7XG5cdFx0XHRtZS5jdHggPSBudWxsO1xuXHRcdH1cblxuXHRcdGNvcmVfcGx1Z2lucy5ub3RpZnkobWUsICdkZXN0cm95Jyk7XG5cblx0XHRkZWxldGUgQ2hhcnQuaW5zdGFuY2VzW21lLmlkXTtcblx0fSxcblxuXHR0b0Jhc2U2NEltYWdlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5jYW52YXMudG9EYXRhVVJMLmFwcGx5KHRoaXMuY2FudmFzLCBhcmd1bWVudHMpO1xuXHR9LFxuXG5cdGluaXRUb29sVGlwOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdG1lLnRvb2x0aXAgPSBuZXcgY29yZV90b29sdGlwKHtcblx0XHRcdF9jaGFydDogbWUsXG5cdFx0XHRfY2hhcnRJbnN0YW5jZTogbWUsIC8vIGRlcHJlY2F0ZWQsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcblx0XHRcdF9kYXRhOiBtZS5kYXRhLFxuXHRcdFx0X29wdGlvbnM6IG1lLm9wdGlvbnMudG9vbHRpcHNcblx0XHR9LCBtZSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRiaW5kRXZlbnRzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBsaXN0ZW5lcnMgPSBtZS5fbGlzdGVuZXJzID0ge307XG5cdFx0dmFyIGxpc3RlbmVyID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRtZS5ldmVudEhhbmRsZXIuYXBwbHkobWUsIGFyZ3VtZW50cyk7XG5cdFx0fTtcblxuXHRcdGhlbHBlcnMkMS5lYWNoKG1lLm9wdGlvbnMuZXZlbnRzLCBmdW5jdGlvbih0eXBlKSB7XG5cdFx0XHRwbGF0Zm9ybS5hZGRFdmVudExpc3RlbmVyKG1lLCB0eXBlLCBsaXN0ZW5lcik7XG5cdFx0XHRsaXN0ZW5lcnNbdHlwZV0gPSBsaXN0ZW5lcjtcblx0XHR9KTtcblxuXHRcdC8vIEVsZW1lbnRzIHVzZWQgdG8gZGV0ZWN0IHNpemUgY2hhbmdlIHNob3VsZCBub3QgYmUgaW5qZWN0ZWQgZm9yIG5vbiByZXNwb25zaXZlIGNoYXJ0cy5cblx0XHQvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvaXNzdWVzLzIyMTBcblx0XHRpZiAobWUub3B0aW9ucy5yZXNwb25zaXZlKSB7XG5cdFx0XHRsaXN0ZW5lciA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRtZS5yZXNpemUoKTtcblx0XHRcdH07XG5cblx0XHRcdHBsYXRmb3JtLmFkZEV2ZW50TGlzdGVuZXIobWUsICdyZXNpemUnLCBsaXN0ZW5lcik7XG5cdFx0XHRsaXN0ZW5lcnMucmVzaXplID0gbGlzdGVuZXI7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0dW5iaW5kRXZlbnRzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBsaXN0ZW5lcnMgPSBtZS5fbGlzdGVuZXJzO1xuXHRcdGlmICghbGlzdGVuZXJzKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0ZGVsZXRlIG1lLl9saXN0ZW5lcnM7XG5cdFx0aGVscGVycyQxLmVhY2gobGlzdGVuZXJzLCBmdW5jdGlvbihsaXN0ZW5lciwgdHlwZSkge1xuXHRcdFx0cGxhdGZvcm0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihtZSwgdHlwZSwgbGlzdGVuZXIpO1xuXHRcdH0pO1xuXHR9LFxuXG5cdHVwZGF0ZUhvdmVyU3R5bGU6IGZ1bmN0aW9uKGVsZW1lbnRzLCBtb2RlLCBlbmFibGVkKSB7XG5cdFx0dmFyIG1ldGhvZCA9IGVuYWJsZWQgPyAnc2V0SG92ZXJTdHlsZScgOiAncmVtb3ZlSG92ZXJTdHlsZSc7XG5cdFx0dmFyIGVsZW1lbnQsIGksIGlsZW47XG5cblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gZWxlbWVudHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRlbGVtZW50ID0gZWxlbWVudHNbaV07XG5cdFx0XHRpZiAoZWxlbWVudCkge1xuXHRcdFx0XHR0aGlzLmdldERhdGFzZXRNZXRhKGVsZW1lbnQuX2RhdGFzZXRJbmRleCkuY29udHJvbGxlclttZXRob2RdKGVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGV2ZW50SGFuZGxlcjogZnVuY3Rpb24oZSkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIHRvb2x0aXAgPSBtZS50b29sdGlwO1xuXG5cdFx0aWYgKGNvcmVfcGx1Z2lucy5ub3RpZnkobWUsICdiZWZvcmVFdmVudCcsIFtlXSkgPT09IGZhbHNlKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gQnVmZmVyIGFueSB1cGRhdGUgY2FsbHMgc28gdGhhdCByZW5kZXJzIGRvIG5vdCBvY2N1clxuXHRcdG1lLl9idWZmZXJlZFJlbmRlciA9IHRydWU7XG5cdFx0bWUuX2J1ZmZlcmVkUmVxdWVzdCA9IG51bGw7XG5cblx0XHR2YXIgY2hhbmdlZCA9IG1lLmhhbmRsZUV2ZW50KGUpO1xuXHRcdC8vIGZvciBzbW9vdGggdG9vbHRpcCBhbmltYXRpb25zIGlzc3VlICM0OTg5XG5cdFx0Ly8gdGhlIHRvb2x0aXAgc2hvdWxkIGJlIHRoZSBzb3VyY2Ugb2YgY2hhbmdlXG5cdFx0Ly8gQW5pbWF0aW9uIGNoZWNrIHdvcmthcm91bmQ6XG5cdFx0Ly8gdG9vbHRpcC5fc3RhcnQgd2lsbCBiZSBudWxsIHdoZW4gdG9vbHRpcCBpc24ndCBhbmltYXRpbmdcblx0XHRpZiAodG9vbHRpcCkge1xuXHRcdFx0Y2hhbmdlZCA9IHRvb2x0aXAuX3N0YXJ0XG5cdFx0XHRcdD8gdG9vbHRpcC5oYW5kbGVFdmVudChlKVxuXHRcdFx0XHQ6IGNoYW5nZWQgfCB0b29sdGlwLmhhbmRsZUV2ZW50KGUpO1xuXHRcdH1cblxuXHRcdGNvcmVfcGx1Z2lucy5ub3RpZnkobWUsICdhZnRlckV2ZW50JywgW2VdKTtcblxuXHRcdHZhciBidWZmZXJlZFJlcXVlc3QgPSBtZS5fYnVmZmVyZWRSZXF1ZXN0O1xuXHRcdGlmIChidWZmZXJlZFJlcXVlc3QpIHtcblx0XHRcdC8vIElmIHdlIGhhdmUgYW4gdXBkYXRlIHRoYXQgd2FzIHRyaWdnZXJlZCwgd2UgbmVlZCB0byBkbyBhIG5vcm1hbCByZW5kZXJcblx0XHRcdG1lLnJlbmRlcihidWZmZXJlZFJlcXVlc3QpO1xuXHRcdH0gZWxzZSBpZiAoY2hhbmdlZCAmJiAhbWUuYW5pbWF0aW5nKSB7XG5cdFx0XHQvLyBJZiBlbnRlcmluZywgbGVhdmluZywgb3IgY2hhbmdpbmcgZWxlbWVudHMsIGFuaW1hdGUgdGhlIGNoYW5nZSB2aWEgcGl2b3Rcblx0XHRcdG1lLnN0b3AoKTtcblxuXHRcdFx0Ly8gV2Ugb25seSBuZWVkIHRvIHJlbmRlciBhdCB0aGlzIHBvaW50LiBVcGRhdGluZyB3aWxsIGNhdXNlIHNjYWxlcyB0byBiZVxuXHRcdFx0Ly8gcmVjb21wdXRlZCBnZW5lcmF0aW5nIGZsaWNrZXIgJiB1c2luZyBtb3JlIG1lbW9yeSB0aGFuIG5lY2Vzc2FyeS5cblx0XHRcdG1lLnJlbmRlcih7XG5cdFx0XHRcdGR1cmF0aW9uOiBtZS5vcHRpb25zLmhvdmVyLmFuaW1hdGlvbkR1cmF0aW9uLFxuXHRcdFx0XHRsYXp5OiB0cnVlXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRtZS5fYnVmZmVyZWRSZW5kZXIgPSBmYWxzZTtcblx0XHRtZS5fYnVmZmVyZWRSZXF1ZXN0ID0gbnVsbDtcblxuXHRcdHJldHVybiBtZTtcblx0fSxcblxuXHQvKipcblx0ICogSGFuZGxlIGFuIGV2ZW50XG5cdCAqIEBwcml2YXRlXG5cdCAqIEBwYXJhbSB7SUV2ZW50fSBldmVudCB0aGUgZXZlbnQgdG8gaGFuZGxlXG5cdCAqIEByZXR1cm4ge2Jvb2xlYW59IHRydWUgaWYgdGhlIGNoYXJ0IG5lZWRzIHRvIHJlLXJlbmRlclxuXHQgKi9cblx0aGFuZGxlRXZlbnQ6IGZ1bmN0aW9uKGUpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvcHRpb25zID0gbWUub3B0aW9ucyB8fCB7fTtcblx0XHR2YXIgaG92ZXJPcHRpb25zID0gb3B0aW9ucy5ob3Zlcjtcblx0XHR2YXIgY2hhbmdlZCA9IGZhbHNlO1xuXG5cdFx0bWUubGFzdEFjdGl2ZSA9IG1lLmxhc3RBY3RpdmUgfHwgW107XG5cblx0XHQvLyBGaW5kIEFjdGl2ZSBFbGVtZW50cyBmb3IgaG92ZXIgYW5kIHRvb2x0aXBzXG5cdFx0aWYgKGUudHlwZSA9PT0gJ21vdXNlb3V0Jykge1xuXHRcdFx0bWUuYWN0aXZlID0gW107XG5cdFx0fSBlbHNlIHtcblx0XHRcdG1lLmFjdGl2ZSA9IG1lLmdldEVsZW1lbnRzQXRFdmVudEZvck1vZGUoZSwgaG92ZXJPcHRpb25zLm1vZGUsIGhvdmVyT3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0Ly8gSW52b2tlIG9uSG92ZXIgaG9va1xuXHRcdC8vIE5lZWQgdG8gY2FsbCB3aXRoIG5hdGl2ZSBldmVudCBoZXJlIHRvIG5vdCBicmVhayBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuXHRcdGhlbHBlcnMkMS5jYWxsYmFjayhvcHRpb25zLm9uSG92ZXIgfHwgb3B0aW9ucy5ob3Zlci5vbkhvdmVyLCBbZS5uYXRpdmUsIG1lLmFjdGl2ZV0sIG1lKTtcblxuXHRcdGlmIChlLnR5cGUgPT09ICdtb3VzZXVwJyB8fCBlLnR5cGUgPT09ICdjbGljaycpIHtcblx0XHRcdGlmIChvcHRpb25zLm9uQ2xpY2spIHtcblx0XHRcdFx0Ly8gVXNlIGUubmF0aXZlIGhlcmUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5cdFx0XHRcdG9wdGlvbnMub25DbGljay5jYWxsKG1lLCBlLm5hdGl2ZSwgbWUuYWN0aXZlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBSZW1vdmUgc3R5bGluZyBmb3IgbGFzdCBhY3RpdmUgKGV2ZW4gaWYgaXQgbWF5IHN0aWxsIGJlIGFjdGl2ZSlcblx0XHRpZiAobWUubGFzdEFjdGl2ZS5sZW5ndGgpIHtcblx0XHRcdG1lLnVwZGF0ZUhvdmVyU3R5bGUobWUubGFzdEFjdGl2ZSwgaG92ZXJPcHRpb25zLm1vZGUsIGZhbHNlKTtcblx0XHR9XG5cblx0XHQvLyBCdWlsdCBpbiBob3ZlciBzdHlsaW5nXG5cdFx0aWYgKG1lLmFjdGl2ZS5sZW5ndGggJiYgaG92ZXJPcHRpb25zLm1vZGUpIHtcblx0XHRcdG1lLnVwZGF0ZUhvdmVyU3R5bGUobWUuYWN0aXZlLCBob3Zlck9wdGlvbnMubW9kZSwgdHJ1ZSk7XG5cdFx0fVxuXG5cdFx0Y2hhbmdlZCA9ICFoZWxwZXJzJDEuYXJyYXlFcXVhbHMobWUuYWN0aXZlLCBtZS5sYXN0QWN0aXZlKTtcblxuXHRcdC8vIFJlbWVtYmVyIExhc3QgQWN0aXZlc1xuXHRcdG1lLmxhc3RBY3RpdmUgPSBtZS5hY3RpdmU7XG5cblx0XHRyZXR1cm4gY2hhbmdlZDtcblx0fVxufSk7XG5cbi8qKlxuICogTk9URShTQikgV2UgYWN0dWFsbHkgZG9uJ3QgdXNlIHRoaXMgY29udGFpbmVyIGFueW1vcmUgYnV0IHdlIG5lZWQgdG8ga2VlcCBpdFxuICogZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFRob3VnaCwgaXQgY2FuIHN0aWxsIGJlIHVzZWZ1bCBmb3IgcGx1Z2lucyB0aGF0XG4gKiB3b3VsZCBuZWVkIHRvIHdvcmsgb24gbXVsdGlwbGUgY2hhcnRzPyFcbiAqL1xuQ2hhcnQuaW5zdGFuY2VzID0ge307XG5cbnZhciBjb3JlX2NvbnRyb2xsZXIgPSBDaGFydDtcblxuLy8gREVQUkVDQVRJT05TXG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHVzZSBDaGFydCBpbnN0ZWFkLlxuICogQGNsYXNzIENoYXJ0LkNvbnRyb2xsZXJcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMi42XG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKiBAcHJpdmF0ZVxuICovXG5DaGFydC5Db250cm9sbGVyID0gQ2hhcnQ7XG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIG5vdCBhdmFpbGFibGUgYW55bW9yZS5cbiAqIEBuYW1lc3BhY2UgQ2hhcnRcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMi44XG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKiBAcHJpdmF0ZVxuICovXG5DaGFydC50eXBlcyA9IHt9O1xuXG4vKipcbiAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBub3QgYXZhaWxhYmxlIGFueW1vcmUuXG4gKiBAbmFtZXNwYWNlIENoYXJ0LmhlbHBlcnMuY29uZmlnTWVyZ2VcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMi44LjBcbiAqIEB0b2RvIHJlbW92ZSBhdCB2ZXJzaW9uIDNcbiAqIEBwcml2YXRlXG4gKi9cbmhlbHBlcnMkMS5jb25maWdNZXJnZSA9IG1lcmdlQ29uZmlnO1xuXG4vKipcbiAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBub3QgYXZhaWxhYmxlIGFueW1vcmUuXG4gKiBAbmFtZXNwYWNlIENoYXJ0LmhlbHBlcnMuc2NhbGVNZXJnZVxuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAyLjguMFxuICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuICogQHByaXZhdGVcbiAqL1xuaGVscGVycyQxLnNjYWxlTWVyZ2UgPSBtZXJnZVNjYWxlQ29uZmlnO1xuXG52YXIgY29yZV9oZWxwZXJzID0gZnVuY3Rpb24oKSB7XG5cblx0Ly8gLS0gQmFzaWMganMgdXRpbGl0eSBtZXRob2RzXG5cblx0aGVscGVycyQxLndoZXJlID0gZnVuY3Rpb24oY29sbGVjdGlvbiwgZmlsdGVyQ2FsbGJhY2spIHtcblx0XHRpZiAoaGVscGVycyQxLmlzQXJyYXkoY29sbGVjdGlvbikgJiYgQXJyYXkucHJvdG90eXBlLmZpbHRlcikge1xuXHRcdFx0cmV0dXJuIGNvbGxlY3Rpb24uZmlsdGVyKGZpbHRlckNhbGxiYWNrKTtcblx0XHR9XG5cdFx0dmFyIGZpbHRlcmVkID0gW107XG5cblx0XHRoZWxwZXJzJDEuZWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbihpdGVtKSB7XG5cdFx0XHRpZiAoZmlsdGVyQ2FsbGJhY2soaXRlbSkpIHtcblx0XHRcdFx0ZmlsdGVyZWQucHVzaChpdGVtKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHJldHVybiBmaWx0ZXJlZDtcblx0fTtcblx0aGVscGVycyQxLmZpbmRJbmRleCA9IEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXggP1xuXHRcdGZ1bmN0aW9uKGFycmF5LCBjYWxsYmFjaywgc2NvcGUpIHtcblx0XHRcdHJldHVybiBhcnJheS5maW5kSW5kZXgoY2FsbGJhY2ssIHNjb3BlKTtcblx0XHR9IDpcblx0XHRmdW5jdGlvbihhcnJheSwgY2FsbGJhY2ssIHNjb3BlKSB7XG5cdFx0XHRzY29wZSA9IHNjb3BlID09PSB1bmRlZmluZWQgPyBhcnJheSA6IHNjb3BlO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDAsIGlsZW4gPSBhcnJheS5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdFx0aWYgKGNhbGxiYWNrLmNhbGwoc2NvcGUsIGFycmF5W2ldLCBpLCBhcnJheSkpIHtcblx0XHRcdFx0XHRyZXR1cm4gaTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIC0xO1xuXHRcdH07XG5cdGhlbHBlcnMkMS5maW5kTmV4dFdoZXJlID0gZnVuY3Rpb24oYXJyYXlUb1NlYXJjaCwgZmlsdGVyQ2FsbGJhY2ssIHN0YXJ0SW5kZXgpIHtcblx0XHQvLyBEZWZhdWx0IHRvIHN0YXJ0IG9mIHRoZSBhcnJheVxuXHRcdGlmIChoZWxwZXJzJDEuaXNOdWxsT3JVbmRlZihzdGFydEluZGV4KSkge1xuXHRcdFx0c3RhcnRJbmRleCA9IC0xO1xuXHRcdH1cblx0XHRmb3IgKHZhciBpID0gc3RhcnRJbmRleCArIDE7IGkgPCBhcnJheVRvU2VhcmNoLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgY3VycmVudEl0ZW0gPSBhcnJheVRvU2VhcmNoW2ldO1xuXHRcdFx0aWYgKGZpbHRlckNhbGxiYWNrKGN1cnJlbnRJdGVtKSkge1xuXHRcdFx0XHRyZXR1cm4gY3VycmVudEl0ZW07XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRoZWxwZXJzJDEuZmluZFByZXZpb3VzV2hlcmUgPSBmdW5jdGlvbihhcnJheVRvU2VhcmNoLCBmaWx0ZXJDYWxsYmFjaywgc3RhcnRJbmRleCkge1xuXHRcdC8vIERlZmF1bHQgdG8gZW5kIG9mIHRoZSBhcnJheVxuXHRcdGlmIChoZWxwZXJzJDEuaXNOdWxsT3JVbmRlZihzdGFydEluZGV4KSkge1xuXHRcdFx0c3RhcnRJbmRleCA9IGFycmF5VG9TZWFyY2gubGVuZ3RoO1xuXHRcdH1cblx0XHRmb3IgKHZhciBpID0gc3RhcnRJbmRleCAtIDE7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHR2YXIgY3VycmVudEl0ZW0gPSBhcnJheVRvU2VhcmNoW2ldO1xuXHRcdFx0aWYgKGZpbHRlckNhbGxiYWNrKGN1cnJlbnRJdGVtKSkge1xuXHRcdFx0XHRyZXR1cm4gY3VycmVudEl0ZW07XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXG5cdC8vIC0tIE1hdGggbWV0aG9kc1xuXHRoZWxwZXJzJDEuaXNOdW1iZXIgPSBmdW5jdGlvbihuKSB7XG5cdFx0cmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG4pKSAmJiBpc0Zpbml0ZShuKTtcblx0fTtcblx0aGVscGVycyQxLmFsbW9zdEVxdWFscyA9IGZ1bmN0aW9uKHgsIHksIGVwc2lsb24pIHtcblx0XHRyZXR1cm4gTWF0aC5hYnMoeCAtIHkpIDwgZXBzaWxvbjtcblx0fTtcblx0aGVscGVycyQxLmFsbW9zdFdob2xlID0gZnVuY3Rpb24oeCwgZXBzaWxvbikge1xuXHRcdHZhciByb3VuZGVkID0gTWF0aC5yb3VuZCh4KTtcblx0XHRyZXR1cm4gKCgocm91bmRlZCAtIGVwc2lsb24pIDwgeCkgJiYgKChyb3VuZGVkICsgZXBzaWxvbikgPiB4KSk7XG5cdH07XG5cdGhlbHBlcnMkMS5tYXggPSBmdW5jdGlvbihhcnJheSkge1xuXHRcdHJldHVybiBhcnJheS5yZWR1Y2UoZnVuY3Rpb24obWF4LCB2YWx1ZSkge1xuXHRcdFx0aWYgKCFpc05hTih2YWx1ZSkpIHtcblx0XHRcdFx0cmV0dXJuIE1hdGgubWF4KG1heCwgdmFsdWUpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1heDtcblx0XHR9LCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpO1xuXHR9O1xuXHRoZWxwZXJzJDEubWluID0gZnVuY3Rpb24oYXJyYXkpIHtcblx0XHRyZXR1cm4gYXJyYXkucmVkdWNlKGZ1bmN0aW9uKG1pbiwgdmFsdWUpIHtcblx0XHRcdGlmICghaXNOYU4odmFsdWUpKSB7XG5cdFx0XHRcdHJldHVybiBNYXRoLm1pbihtaW4sIHZhbHVlKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtaW47XG5cdFx0fSwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtcblx0fTtcblx0aGVscGVycyQxLnNpZ24gPSBNYXRoLnNpZ24gP1xuXHRcdGZ1bmN0aW9uKHgpIHtcblx0XHRcdHJldHVybiBNYXRoLnNpZ24oeCk7XG5cdFx0fSA6XG5cdFx0ZnVuY3Rpb24oeCkge1xuXHRcdFx0eCA9ICt4OyAvLyBjb252ZXJ0IHRvIGEgbnVtYmVyXG5cdFx0XHRpZiAoeCA9PT0gMCB8fCBpc05hTih4KSkge1xuXHRcdFx0XHRyZXR1cm4geDtcblx0XHRcdH1cblx0XHRcdHJldHVybiB4ID4gMCA/IDEgOiAtMTtcblx0XHR9O1xuXHRoZWxwZXJzJDEubG9nMTAgPSBNYXRoLmxvZzEwID9cblx0XHRmdW5jdGlvbih4KSB7XG5cdFx0XHRyZXR1cm4gTWF0aC5sb2cxMCh4KTtcblx0XHR9IDpcblx0XHRmdW5jdGlvbih4KSB7XG5cdFx0XHR2YXIgZXhwb25lbnQgPSBNYXRoLmxvZyh4KSAqIE1hdGguTE9HMTBFOyAvLyBNYXRoLkxPRzEwRSA9IDEgLyBNYXRoLkxOMTAuXG5cdFx0XHQvLyBDaGVjayBmb3Igd2hvbGUgcG93ZXJzIG9mIDEwLFxuXHRcdFx0Ly8gd2hpY2ggZHVlIHRvIGZsb2F0aW5nIHBvaW50IHJvdW5kaW5nIGVycm9yIHNob3VsZCBiZSBjb3JyZWN0ZWQuXG5cdFx0XHR2YXIgcG93ZXJPZjEwID0gTWF0aC5yb3VuZChleHBvbmVudCk7XG5cdFx0XHR2YXIgaXNQb3dlck9mMTAgPSB4ID09PSBNYXRoLnBvdygxMCwgcG93ZXJPZjEwKTtcblxuXHRcdFx0cmV0dXJuIGlzUG93ZXJPZjEwID8gcG93ZXJPZjEwIDogZXhwb25lbnQ7XG5cdFx0fTtcblx0aGVscGVycyQxLnRvUmFkaWFucyA9IGZ1bmN0aW9uKGRlZ3JlZXMpIHtcblx0XHRyZXR1cm4gZGVncmVlcyAqIChNYXRoLlBJIC8gMTgwKTtcblx0fTtcblx0aGVscGVycyQxLnRvRGVncmVlcyA9IGZ1bmN0aW9uKHJhZGlhbnMpIHtcblx0XHRyZXR1cm4gcmFkaWFucyAqICgxODAgLyBNYXRoLlBJKTtcblx0fTtcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzXG5cdCAqIGkuZS4gdGhlIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQsIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIE51bWJlci5cblx0ICogQHBhcmFtIHtudW1iZXJ9IHggLSBBIG51bWJlci5cblx0ICogQHJldHVybnMge251bWJlcn0gVGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcy5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdGhlbHBlcnMkMS5fZGVjaW1hbFBsYWNlcyA9IGZ1bmN0aW9uKHgpIHtcblx0XHRpZiAoIWhlbHBlcnMkMS5pc0Zpbml0ZSh4KSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR2YXIgZSA9IDE7XG5cdFx0dmFyIHAgPSAwO1xuXHRcdHdoaWxlIChNYXRoLnJvdW5kKHggKiBlKSAvIGUgIT09IHgpIHtcblx0XHRcdGUgKj0gMTA7XG5cdFx0XHRwKys7XG5cdFx0fVxuXHRcdHJldHVybiBwO1xuXHR9O1xuXG5cdC8vIEdldHMgdGhlIGFuZ2xlIGZyb20gdmVydGljYWwgdXByaWdodCB0byB0aGUgcG9pbnQgYWJvdXQgYSBjZW50cmUuXG5cdGhlbHBlcnMkMS5nZXRBbmdsZUZyb21Qb2ludCA9IGZ1bmN0aW9uKGNlbnRyZVBvaW50LCBhbmdsZVBvaW50KSB7XG5cdFx0dmFyIGRpc3RhbmNlRnJvbVhDZW50ZXIgPSBhbmdsZVBvaW50LnggLSBjZW50cmVQb2ludC54O1xuXHRcdHZhciBkaXN0YW5jZUZyb21ZQ2VudGVyID0gYW5nbGVQb2ludC55IC0gY2VudHJlUG9pbnQueTtcblx0XHR2YXIgcmFkaWFsRGlzdGFuY2VGcm9tQ2VudGVyID0gTWF0aC5zcXJ0KGRpc3RhbmNlRnJvbVhDZW50ZXIgKiBkaXN0YW5jZUZyb21YQ2VudGVyICsgZGlzdGFuY2VGcm9tWUNlbnRlciAqIGRpc3RhbmNlRnJvbVlDZW50ZXIpO1xuXG5cdFx0dmFyIGFuZ2xlID0gTWF0aC5hdGFuMihkaXN0YW5jZUZyb21ZQ2VudGVyLCBkaXN0YW5jZUZyb21YQ2VudGVyKTtcblxuXHRcdGlmIChhbmdsZSA8ICgtMC41ICogTWF0aC5QSSkpIHtcblx0XHRcdGFuZ2xlICs9IDIuMCAqIE1hdGguUEk7IC8vIG1ha2Ugc3VyZSB0aGUgcmV0dXJuZWQgYW5nbGUgaXMgaW4gdGhlIHJhbmdlIG9mICgtUEkvMiwgM1BJLzJdXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGFuZ2xlOiBhbmdsZSxcblx0XHRcdGRpc3RhbmNlOiByYWRpYWxEaXN0YW5jZUZyb21DZW50ZXJcblx0XHR9O1xuXHR9O1xuXHRoZWxwZXJzJDEuZGlzdGFuY2VCZXR3ZWVuUG9pbnRzID0gZnVuY3Rpb24ocHQxLCBwdDIpIHtcblx0XHRyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHB0Mi54IC0gcHQxLngsIDIpICsgTWF0aC5wb3cocHQyLnkgLSBwdDEueSwgMikpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBQcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgbm90IGF2YWlsYWJsZSBhbnltb3JlXG5cdCAqIEBmdW5jdGlvbiBDaGFydC5oZWxwZXJzLmFsaWFzUGl4ZWxcblx0ICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAyLjguMFxuXHQgKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG5cdCAqL1xuXHRoZWxwZXJzJDEuYWxpYXNQaXhlbCA9IGZ1bmN0aW9uKHBpeGVsV2lkdGgpIHtcblx0XHRyZXR1cm4gKHBpeGVsV2lkdGggJSAyID09PSAwKSA/IDAgOiAwLjU7XG5cdH07XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGFsaWduZWQgcGl4ZWwgdmFsdWUgdG8gYXZvaWQgYW50aS1hbGlhc2luZyBibHVyXG5cdCAqIEBwYXJhbSB7Q2hhcnR9IGNoYXJ0IC0gVGhlIGNoYXJ0IGluc3RhbmNlLlxuXHQgKiBAcGFyYW0ge251bWJlcn0gcGl4ZWwgLSBBIHBpeGVsIHZhbHVlLlxuXHQgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIGVsZW1lbnQuXG5cdCAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBhbGlnbmVkIHBpeGVsIHZhbHVlLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0aGVscGVycyQxLl9hbGlnblBpeGVsID0gZnVuY3Rpb24oY2hhcnQsIHBpeGVsLCB3aWR0aCkge1xuXHRcdHZhciBkZXZpY2VQaXhlbFJhdGlvID0gY2hhcnQuY3VycmVudERldmljZVBpeGVsUmF0aW87XG5cdFx0dmFyIGhhbGZXaWR0aCA9IHdpZHRoIC8gMjtcblx0XHRyZXR1cm4gTWF0aC5yb3VuZCgocGl4ZWwgLSBoYWxmV2lkdGgpICogZGV2aWNlUGl4ZWxSYXRpbykgLyBkZXZpY2VQaXhlbFJhdGlvICsgaGFsZldpZHRoO1xuXHR9O1xuXG5cdGhlbHBlcnMkMS5zcGxpbmVDdXJ2ZSA9IGZ1bmN0aW9uKGZpcnN0UG9pbnQsIG1pZGRsZVBvaW50LCBhZnRlclBvaW50LCB0KSB7XG5cdFx0Ly8gUHJvcHMgdG8gUm9iIFNwZW5jZXIgYXQgc2NhbGVkIGlubm92YXRpb24gZm9yIGhpcyBwb3N0IG9uIHNwbGluaW5nIGJldHdlZW4gcG9pbnRzXG5cdFx0Ly8gaHR0cDovL3NjYWxlZGlubm92YXRpb24uY29tL2FuYWx5dGljcy9zcGxpbmVzL2Fib3V0U3BsaW5lcy5odG1sXG5cblx0XHQvLyBUaGlzIGZ1bmN0aW9uIG11c3QgYWxzbyByZXNwZWN0IFwic2tpcHBlZFwiIHBvaW50c1xuXG5cdFx0dmFyIHByZXZpb3VzID0gZmlyc3RQb2ludC5za2lwID8gbWlkZGxlUG9pbnQgOiBmaXJzdFBvaW50O1xuXHRcdHZhciBjdXJyZW50ID0gbWlkZGxlUG9pbnQ7XG5cdFx0dmFyIG5leHQgPSBhZnRlclBvaW50LnNraXAgPyBtaWRkbGVQb2ludCA6IGFmdGVyUG9pbnQ7XG5cblx0XHR2YXIgZDAxID0gTWF0aC5zcXJ0KE1hdGgucG93KGN1cnJlbnQueCAtIHByZXZpb3VzLngsIDIpICsgTWF0aC5wb3coY3VycmVudC55IC0gcHJldmlvdXMueSwgMikpO1xuXHRcdHZhciBkMTIgPSBNYXRoLnNxcnQoTWF0aC5wb3cobmV4dC54IC0gY3VycmVudC54LCAyKSArIE1hdGgucG93KG5leHQueSAtIGN1cnJlbnQueSwgMikpO1xuXG5cdFx0dmFyIHMwMSA9IGQwMSAvIChkMDEgKyBkMTIpO1xuXHRcdHZhciBzMTIgPSBkMTIgLyAoZDAxICsgZDEyKTtcblxuXHRcdC8vIElmIGFsbCBwb2ludHMgYXJlIHRoZSBzYW1lLCBzMDEgJiBzMDIgd2lsbCBiZSBpbmZcblx0XHRzMDEgPSBpc05hTihzMDEpID8gMCA6IHMwMTtcblx0XHRzMTIgPSBpc05hTihzMTIpID8gMCA6IHMxMjtcblxuXHRcdHZhciBmYSA9IHQgKiBzMDE7IC8vIHNjYWxpbmcgZmFjdG9yIGZvciB0cmlhbmdsZSBUYVxuXHRcdHZhciBmYiA9IHQgKiBzMTI7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0cHJldmlvdXM6IHtcblx0XHRcdFx0eDogY3VycmVudC54IC0gZmEgKiAobmV4dC54IC0gcHJldmlvdXMueCksXG5cdFx0XHRcdHk6IGN1cnJlbnQueSAtIGZhICogKG5leHQueSAtIHByZXZpb3VzLnkpXG5cdFx0XHR9LFxuXHRcdFx0bmV4dDoge1xuXHRcdFx0XHR4OiBjdXJyZW50LnggKyBmYiAqIChuZXh0LnggLSBwcmV2aW91cy54KSxcblx0XHRcdFx0eTogY3VycmVudC55ICsgZmIgKiAobmV4dC55IC0gcHJldmlvdXMueSlcblx0XHRcdH1cblx0XHR9O1xuXHR9O1xuXHRoZWxwZXJzJDEuRVBTSUxPTiA9IE51bWJlci5FUFNJTE9OIHx8IDFlLTE0O1xuXHRoZWxwZXJzJDEuc3BsaW5lQ3VydmVNb25vdG9uZSA9IGZ1bmN0aW9uKHBvaW50cykge1xuXHRcdC8vIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBCw6l6aWVyIGNvbnRyb2wgcG9pbnRzIGluIGEgc2ltaWxhciB3YXkgdGhhbiB8c3BsaW5lQ3VydmV8LFxuXHRcdC8vIGJ1dCBwcmVzZXJ2ZXMgbW9ub3RvbmljaXR5IG9mIHRoZSBwcm92aWRlZCBkYXRhIGFuZCBlbnN1cmVzIG5vIGxvY2FsIGV4dHJlbXVtcyBhcmUgYWRkZWRcblx0XHQvLyBiZXR3ZWVuIHRoZSBkYXRhc2V0IGRpc2NyZXRlIHBvaW50cyBkdWUgdG8gdGhlIGludGVycG9sYXRpb24uXG5cdFx0Ly8gU2VlIDogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTW9ub3RvbmVfY3ViaWNfaW50ZXJwb2xhdGlvblxuXG5cdFx0dmFyIHBvaW50c1dpdGhUYW5nZW50cyA9IChwb2ludHMgfHwgW10pLm1hcChmdW5jdGlvbihwb2ludCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0bW9kZWw6IHBvaW50Ll9tb2RlbCxcblx0XHRcdFx0ZGVsdGFLOiAwLFxuXHRcdFx0XHRtSzogMFxuXHRcdFx0fTtcblx0XHR9KTtcblxuXHRcdC8vIENhbGN1bGF0ZSBzbG9wZXMgKGRlbHRhSykgYW5kIGluaXRpYWxpemUgdGFuZ2VudHMgKG1LKVxuXHRcdHZhciBwb2ludHNMZW4gPSBwb2ludHNXaXRoVGFuZ2VudHMubGVuZ3RoO1xuXHRcdHZhciBpLCBwb2ludEJlZm9yZSwgcG9pbnRDdXJyZW50LCBwb2ludEFmdGVyO1xuXHRcdGZvciAoaSA9IDA7IGkgPCBwb2ludHNMZW47ICsraSkge1xuXHRcdFx0cG9pbnRDdXJyZW50ID0gcG9pbnRzV2l0aFRhbmdlbnRzW2ldO1xuXHRcdFx0aWYgKHBvaW50Q3VycmVudC5tb2RlbC5za2lwKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRwb2ludEJlZm9yZSA9IGkgPiAwID8gcG9pbnRzV2l0aFRhbmdlbnRzW2kgLSAxXSA6IG51bGw7XG5cdFx0XHRwb2ludEFmdGVyID0gaSA8IHBvaW50c0xlbiAtIDEgPyBwb2ludHNXaXRoVGFuZ2VudHNbaSArIDFdIDogbnVsbDtcblx0XHRcdGlmIChwb2ludEFmdGVyICYmICFwb2ludEFmdGVyLm1vZGVsLnNraXApIHtcblx0XHRcdFx0dmFyIHNsb3BlRGVsdGFYID0gKHBvaW50QWZ0ZXIubW9kZWwueCAtIHBvaW50Q3VycmVudC5tb2RlbC54KTtcblxuXHRcdFx0XHQvLyBJbiB0aGUgY2FzZSBvZiB0d28gcG9pbnRzIHRoYXQgYXBwZWFyIGF0IHRoZSBzYW1lIHggcGl4ZWwsIHNsb3BlRGVsdGFYIGlzIDBcblx0XHRcdFx0cG9pbnRDdXJyZW50LmRlbHRhSyA9IHNsb3BlRGVsdGFYICE9PSAwID8gKHBvaW50QWZ0ZXIubW9kZWwueSAtIHBvaW50Q3VycmVudC5tb2RlbC55KSAvIHNsb3BlRGVsdGFYIDogMDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCFwb2ludEJlZm9yZSB8fCBwb2ludEJlZm9yZS5tb2RlbC5za2lwKSB7XG5cdFx0XHRcdHBvaW50Q3VycmVudC5tSyA9IHBvaW50Q3VycmVudC5kZWx0YUs7XG5cdFx0XHR9IGVsc2UgaWYgKCFwb2ludEFmdGVyIHx8IHBvaW50QWZ0ZXIubW9kZWwuc2tpcCkge1xuXHRcdFx0XHRwb2ludEN1cnJlbnQubUsgPSBwb2ludEJlZm9yZS5kZWx0YUs7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuc2lnbihwb2ludEJlZm9yZS5kZWx0YUspICE9PSB0aGlzLnNpZ24ocG9pbnRDdXJyZW50LmRlbHRhSykpIHtcblx0XHRcdFx0cG9pbnRDdXJyZW50Lm1LID0gMDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHBvaW50Q3VycmVudC5tSyA9IChwb2ludEJlZm9yZS5kZWx0YUsgKyBwb2ludEN1cnJlbnQuZGVsdGFLKSAvIDI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQWRqdXN0IHRhbmdlbnRzIHRvIGVuc3VyZSBtb25vdG9uaWMgcHJvcGVydGllc1xuXHRcdHZhciBhbHBoYUssIGJldGFLLCB0YXVLLCBzcXVhcmVkTWFnbml0dWRlO1xuXHRcdGZvciAoaSA9IDA7IGkgPCBwb2ludHNMZW4gLSAxOyArK2kpIHtcblx0XHRcdHBvaW50Q3VycmVudCA9IHBvaW50c1dpdGhUYW5nZW50c1tpXTtcblx0XHRcdHBvaW50QWZ0ZXIgPSBwb2ludHNXaXRoVGFuZ2VudHNbaSArIDFdO1xuXHRcdFx0aWYgKHBvaW50Q3VycmVudC5tb2RlbC5za2lwIHx8IHBvaW50QWZ0ZXIubW9kZWwuc2tpcCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGhlbHBlcnMkMS5hbG1vc3RFcXVhbHMocG9pbnRDdXJyZW50LmRlbHRhSywgMCwgdGhpcy5FUFNJTE9OKSkge1xuXHRcdFx0XHRwb2ludEN1cnJlbnQubUsgPSBwb2ludEFmdGVyLm1LID0gMDtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdGFscGhhSyA9IHBvaW50Q3VycmVudC5tSyAvIHBvaW50Q3VycmVudC5kZWx0YUs7XG5cdFx0XHRiZXRhSyA9IHBvaW50QWZ0ZXIubUsgLyBwb2ludEN1cnJlbnQuZGVsdGFLO1xuXHRcdFx0c3F1YXJlZE1hZ25pdHVkZSA9IE1hdGgucG93KGFscGhhSywgMikgKyBNYXRoLnBvdyhiZXRhSywgMik7XG5cdFx0XHRpZiAoc3F1YXJlZE1hZ25pdHVkZSA8PSA5KSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHR0YXVLID0gMyAvIE1hdGguc3FydChzcXVhcmVkTWFnbml0dWRlKTtcblx0XHRcdHBvaW50Q3VycmVudC5tSyA9IGFscGhhSyAqIHRhdUsgKiBwb2ludEN1cnJlbnQuZGVsdGFLO1xuXHRcdFx0cG9pbnRBZnRlci5tSyA9IGJldGFLICogdGF1SyAqIHBvaW50Q3VycmVudC5kZWx0YUs7XG5cdFx0fVxuXG5cdFx0Ly8gQ29tcHV0ZSBjb250cm9sIHBvaW50c1xuXHRcdHZhciBkZWx0YVg7XG5cdFx0Zm9yIChpID0gMDsgaSA8IHBvaW50c0xlbjsgKytpKSB7XG5cdFx0XHRwb2ludEN1cnJlbnQgPSBwb2ludHNXaXRoVGFuZ2VudHNbaV07XG5cdFx0XHRpZiAocG9pbnRDdXJyZW50Lm1vZGVsLnNraXApIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdHBvaW50QmVmb3JlID0gaSA+IDAgPyBwb2ludHNXaXRoVGFuZ2VudHNbaSAtIDFdIDogbnVsbDtcblx0XHRcdHBvaW50QWZ0ZXIgPSBpIDwgcG9pbnRzTGVuIC0gMSA/IHBvaW50c1dpdGhUYW5nZW50c1tpICsgMV0gOiBudWxsO1xuXHRcdFx0aWYgKHBvaW50QmVmb3JlICYmICFwb2ludEJlZm9yZS5tb2RlbC5za2lwKSB7XG5cdFx0XHRcdGRlbHRhWCA9IChwb2ludEN1cnJlbnQubW9kZWwueCAtIHBvaW50QmVmb3JlLm1vZGVsLngpIC8gMztcblx0XHRcdFx0cG9pbnRDdXJyZW50Lm1vZGVsLmNvbnRyb2xQb2ludFByZXZpb3VzWCA9IHBvaW50Q3VycmVudC5tb2RlbC54IC0gZGVsdGFYO1xuXHRcdFx0XHRwb2ludEN1cnJlbnQubW9kZWwuY29udHJvbFBvaW50UHJldmlvdXNZID0gcG9pbnRDdXJyZW50Lm1vZGVsLnkgLSBkZWx0YVggKiBwb2ludEN1cnJlbnQubUs7XG5cdFx0XHR9XG5cdFx0XHRpZiAocG9pbnRBZnRlciAmJiAhcG9pbnRBZnRlci5tb2RlbC5za2lwKSB7XG5cdFx0XHRcdGRlbHRhWCA9IChwb2ludEFmdGVyLm1vZGVsLnggLSBwb2ludEN1cnJlbnQubW9kZWwueCkgLyAzO1xuXHRcdFx0XHRwb2ludEN1cnJlbnQubW9kZWwuY29udHJvbFBvaW50TmV4dFggPSBwb2ludEN1cnJlbnQubW9kZWwueCArIGRlbHRhWDtcblx0XHRcdFx0cG9pbnRDdXJyZW50Lm1vZGVsLmNvbnRyb2xQb2ludE5leHRZID0gcG9pbnRDdXJyZW50Lm1vZGVsLnkgKyBkZWx0YVggKiBwb2ludEN1cnJlbnQubUs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRoZWxwZXJzJDEubmV4dEl0ZW0gPSBmdW5jdGlvbihjb2xsZWN0aW9uLCBpbmRleCwgbG9vcCkge1xuXHRcdGlmIChsb29wKSB7XG5cdFx0XHRyZXR1cm4gaW5kZXggPj0gY29sbGVjdGlvbi5sZW5ndGggLSAxID8gY29sbGVjdGlvblswXSA6IGNvbGxlY3Rpb25baW5kZXggKyAxXTtcblx0XHR9XG5cdFx0cmV0dXJuIGluZGV4ID49IGNvbGxlY3Rpb24ubGVuZ3RoIC0gMSA/IGNvbGxlY3Rpb25bY29sbGVjdGlvbi5sZW5ndGggLSAxXSA6IGNvbGxlY3Rpb25baW5kZXggKyAxXTtcblx0fTtcblx0aGVscGVycyQxLnByZXZpb3VzSXRlbSA9IGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGluZGV4LCBsb29wKSB7XG5cdFx0aWYgKGxvb3ApIHtcblx0XHRcdHJldHVybiBpbmRleCA8PSAwID8gY29sbGVjdGlvbltjb2xsZWN0aW9uLmxlbmd0aCAtIDFdIDogY29sbGVjdGlvbltpbmRleCAtIDFdO1xuXHRcdH1cblx0XHRyZXR1cm4gaW5kZXggPD0gMCA/IGNvbGxlY3Rpb25bMF0gOiBjb2xsZWN0aW9uW2luZGV4IC0gMV07XG5cdH07XG5cdC8vIEltcGxlbWVudGF0aW9uIG9mIHRoZSBuaWNlIG51bWJlciBhbGdvcml0aG0gdXNlZCBpbiBkZXRlcm1pbmluZyB3aGVyZSBheGlzIGxhYmVscyB3aWxsIGdvXG5cdGhlbHBlcnMkMS5uaWNlTnVtID0gZnVuY3Rpb24ocmFuZ2UsIHJvdW5kKSB7XG5cdFx0dmFyIGV4cG9uZW50ID0gTWF0aC5mbG9vcihoZWxwZXJzJDEubG9nMTAocmFuZ2UpKTtcblx0XHR2YXIgZnJhY3Rpb24gPSByYW5nZSAvIE1hdGgucG93KDEwLCBleHBvbmVudCk7XG5cdFx0dmFyIG5pY2VGcmFjdGlvbjtcblxuXHRcdGlmIChyb3VuZCkge1xuXHRcdFx0aWYgKGZyYWN0aW9uIDwgMS41KSB7XG5cdFx0XHRcdG5pY2VGcmFjdGlvbiA9IDE7XG5cdFx0XHR9IGVsc2UgaWYgKGZyYWN0aW9uIDwgMykge1xuXHRcdFx0XHRuaWNlRnJhY3Rpb24gPSAyO1xuXHRcdFx0fSBlbHNlIGlmIChmcmFjdGlvbiA8IDcpIHtcblx0XHRcdFx0bmljZUZyYWN0aW9uID0gNTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG5pY2VGcmFjdGlvbiA9IDEwO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoZnJhY3Rpb24gPD0gMS4wKSB7XG5cdFx0XHRuaWNlRnJhY3Rpb24gPSAxO1xuXHRcdH0gZWxzZSBpZiAoZnJhY3Rpb24gPD0gMikge1xuXHRcdFx0bmljZUZyYWN0aW9uID0gMjtcblx0XHR9IGVsc2UgaWYgKGZyYWN0aW9uIDw9IDUpIHtcblx0XHRcdG5pY2VGcmFjdGlvbiA9IDU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG5pY2VGcmFjdGlvbiA9IDEwO1xuXHRcdH1cblxuXHRcdHJldHVybiBuaWNlRnJhY3Rpb24gKiBNYXRoLnBvdygxMCwgZXhwb25lbnQpO1xuXHR9O1xuXHQvLyBSZXF1ZXN0IGFuaW1hdGlvbiBwb2x5ZmlsbCAtIGh0dHBzOi8vd3d3LnBhdWxpcmlzaC5jb20vMjAxMS9yZXF1ZXN0YW5pbWF0aW9uZnJhbWUtZm9yLXNtYXJ0LWFuaW1hdGluZy9cblx0aGVscGVycyQxLnJlcXVlc3RBbmltRnJhbWUgPSAoZnVuY3Rpb24oKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oY2FsbGJhY2spIHtcblx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdH07XG5cdFx0fVxuXHRcdHJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG5cdFx0XHR3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG5cdFx0XHR3aW5kb3cubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG5cdFx0XHR3aW5kb3cub1JlcXVlc3RBbmltYXRpb25GcmFtZSB8fFxuXHRcdFx0d2luZG93Lm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG5cdFx0XHRmdW5jdGlvbihjYWxsYmFjaykge1xuXHRcdFx0XHRyZXR1cm4gd2luZG93LnNldFRpbWVvdXQoY2FsbGJhY2ssIDEwMDAgLyA2MCk7XG5cdFx0XHR9O1xuXHR9KCkpO1xuXHQvLyAtLSBET00gbWV0aG9kc1xuXHRoZWxwZXJzJDEuZ2V0UmVsYXRpdmVQb3NpdGlvbiA9IGZ1bmN0aW9uKGV2dCwgY2hhcnQpIHtcblx0XHR2YXIgbW91c2VYLCBtb3VzZVk7XG5cdFx0dmFyIGUgPSBldnQub3JpZ2luYWxFdmVudCB8fCBldnQ7XG5cdFx0dmFyIGNhbnZhcyA9IGV2dC50YXJnZXQgfHwgZXZ0LnNyY0VsZW1lbnQ7XG5cdFx0dmFyIGJvdW5kaW5nUmVjdCA9IGNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuXHRcdHZhciB0b3VjaGVzID0gZS50b3VjaGVzO1xuXHRcdGlmICh0b3VjaGVzICYmIHRvdWNoZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0bW91c2VYID0gdG91Y2hlc1swXS5jbGllbnRYO1xuXHRcdFx0bW91c2VZID0gdG91Y2hlc1swXS5jbGllbnRZO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdG1vdXNlWCA9IGUuY2xpZW50WDtcblx0XHRcdG1vdXNlWSA9IGUuY2xpZW50WTtcblx0XHR9XG5cblx0XHQvLyBTY2FsZSBtb3VzZSBjb29yZGluYXRlcyBpbnRvIGNhbnZhcyBjb29yZGluYXRlc1xuXHRcdC8vIGJ5IGZvbGxvd2luZyB0aGUgcGF0dGVybiBsYWlkIG91dCBieSAnamVycnlqJyBpbiB0aGUgY29tbWVudHMgb2Zcblx0XHQvLyBodHRwczovL3d3dy5odG1sNWNhbnZhc3R1dG9yaWFscy5jb20vYWR2YW5jZWQvaHRtbDUtY2FudmFzLW1vdXNlLWNvb3JkaW5hdGVzL1xuXHRcdHZhciBwYWRkaW5nTGVmdCA9IHBhcnNlRmxvYXQoaGVscGVycyQxLmdldFN0eWxlKGNhbnZhcywgJ3BhZGRpbmctbGVmdCcpKTtcblx0XHR2YXIgcGFkZGluZ1RvcCA9IHBhcnNlRmxvYXQoaGVscGVycyQxLmdldFN0eWxlKGNhbnZhcywgJ3BhZGRpbmctdG9wJykpO1xuXHRcdHZhciBwYWRkaW5nUmlnaHQgPSBwYXJzZUZsb2F0KGhlbHBlcnMkMS5nZXRTdHlsZShjYW52YXMsICdwYWRkaW5nLXJpZ2h0JykpO1xuXHRcdHZhciBwYWRkaW5nQm90dG9tID0gcGFyc2VGbG9hdChoZWxwZXJzJDEuZ2V0U3R5bGUoY2FudmFzLCAncGFkZGluZy1ib3R0b20nKSk7XG5cdFx0dmFyIHdpZHRoID0gYm91bmRpbmdSZWN0LnJpZ2h0IC0gYm91bmRpbmdSZWN0LmxlZnQgLSBwYWRkaW5nTGVmdCAtIHBhZGRpbmdSaWdodDtcblx0XHR2YXIgaGVpZ2h0ID0gYm91bmRpbmdSZWN0LmJvdHRvbSAtIGJvdW5kaW5nUmVjdC50b3AgLSBwYWRkaW5nVG9wIC0gcGFkZGluZ0JvdHRvbTtcblxuXHRcdC8vIFdlIGRpdmlkZSBieSB0aGUgY3VycmVudCBkZXZpY2UgcGl4ZWwgcmF0aW8sIGJlY2F1c2UgdGhlIGNhbnZhcyBpcyBzY2FsZWQgdXAgYnkgdGhhdCBhbW91bnQgaW4gZWFjaCBkaXJlY3Rpb24uIEhvd2V2ZXJcblx0XHQvLyB0aGUgYmFja2VuZCBtb2RlbCBpcyBpbiB1bnNjYWxlZCBjb29yZGluYXRlcy4gU2luY2Ugd2UgYXJlIGdvaW5nIHRvIGRlYWwgd2l0aCBvdXIgbW9kZWwgY29vcmRpbmF0ZXMsIHdlIGdvIGJhY2sgaGVyZVxuXHRcdG1vdXNlWCA9IE1hdGgucm91bmQoKG1vdXNlWCAtIGJvdW5kaW5nUmVjdC5sZWZ0IC0gcGFkZGluZ0xlZnQpIC8gKHdpZHRoKSAqIGNhbnZhcy53aWR0aCAvIGNoYXJ0LmN1cnJlbnREZXZpY2VQaXhlbFJhdGlvKTtcblx0XHRtb3VzZVkgPSBNYXRoLnJvdW5kKChtb3VzZVkgLSBib3VuZGluZ1JlY3QudG9wIC0gcGFkZGluZ1RvcCkgLyAoaGVpZ2h0KSAqIGNhbnZhcy5oZWlnaHQgLyBjaGFydC5jdXJyZW50RGV2aWNlUGl4ZWxSYXRpbyk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0eDogbW91c2VYLFxuXHRcdFx0eTogbW91c2VZXG5cdFx0fTtcblxuXHR9O1xuXG5cdC8vIFByaXZhdGUgaGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgbWF4LXdpZHRoL21heC1oZWlnaHQgdmFsdWVzIHRoYXQgbWF5IGJlIHBlcmNlbnRhZ2VzIGludG8gYSBudW1iZXJcblx0ZnVuY3Rpb24gcGFyc2VNYXhTdHlsZShzdHlsZVZhbHVlLCBub2RlLCBwYXJlbnRQcm9wZXJ0eSkge1xuXHRcdHZhciB2YWx1ZUluUGl4ZWxzO1xuXHRcdGlmICh0eXBlb2Ygc3R5bGVWYWx1ZSA9PT0gJ3N0cmluZycpIHtcblx0XHRcdHZhbHVlSW5QaXhlbHMgPSBwYXJzZUludChzdHlsZVZhbHVlLCAxMCk7XG5cblx0XHRcdGlmIChzdHlsZVZhbHVlLmluZGV4T2YoJyUnKSAhPT0gLTEpIHtcblx0XHRcdFx0Ly8gcGVyY2VudGFnZSAqIHNpemUgaW4gZGltZW5zaW9uXG5cdFx0XHRcdHZhbHVlSW5QaXhlbHMgPSB2YWx1ZUluUGl4ZWxzIC8gMTAwICogbm9kZS5wYXJlbnROb2RlW3BhcmVudFByb3BlcnR5XTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dmFsdWVJblBpeGVscyA9IHN0eWxlVmFsdWU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbHVlSW5QaXhlbHM7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBpZiB0aGUgZ2l2ZW4gdmFsdWUgY29udGFpbnMgYW4gZWZmZWN0aXZlIGNvbnN0cmFpbnQuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRmdW5jdGlvbiBpc0NvbnN0cmFpbmVkVmFsdWUodmFsdWUpIHtcblx0XHRyZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJ25vbmUnO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIG1heCB3aWR0aCBvciBoZWlnaHQgb2YgdGhlIGdpdmVuIERPTSBub2RlIGluIGEgY3Jvc3MtYnJvd3NlciBjb21wYXRpYmxlIGZhc2hpb25cblx0ICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZG9tTm9kZSAtIHRoZSBub2RlIHRvIGNoZWNrIHRoZSBjb25zdHJhaW50IG9uXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBtYXhTdHlsZSAtIHRoZSBzdHlsZSB0aGF0IGRlZmluZXMgdGhlIG1heGltdW0gZm9yIHRoZSBkaXJlY3Rpb24gd2UgYXJlIHVzaW5nICgnbWF4LXdpZHRoJyAvICdtYXgtaGVpZ2h0Jylcblx0ICogQHBhcmFtIHtzdHJpbmd9IHBlcmNlbnRhZ2VQcm9wZXJ0eSAtIHByb3BlcnR5IG9mIHBhcmVudCB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB3aWR0aCBhcyBhIHBlcmNlbnRhZ2Vcblx0ICogQHNlZSB7QGxpbmsgaHR0cHM6Ly93d3cubmF0aGFuYWVsam9uZXMuY29tL2Jsb2cvMjAxMy9yZWFkaW5nLW1heC13aWR0aC1jcm9zcy1icm93c2VyfVxuXHQgKi9cblx0ZnVuY3Rpb24gZ2V0Q29uc3RyYWludERpbWVuc2lvbihkb21Ob2RlLCBtYXhTdHlsZSwgcGVyY2VudGFnZVByb3BlcnR5KSB7XG5cdFx0dmFyIHZpZXcgPSBkb2N1bWVudC5kZWZhdWx0Vmlldztcblx0XHR2YXIgcGFyZW50Tm9kZSA9IGhlbHBlcnMkMS5fZ2V0UGFyZW50Tm9kZShkb21Ob2RlKTtcblx0XHR2YXIgY29uc3RyYWluZWROb2RlID0gdmlldy5nZXRDb21wdXRlZFN0eWxlKGRvbU5vZGUpW21heFN0eWxlXTtcblx0XHR2YXIgY29uc3RyYWluZWRDb250YWluZXIgPSB2aWV3LmdldENvbXB1dGVkU3R5bGUocGFyZW50Tm9kZSlbbWF4U3R5bGVdO1xuXHRcdHZhciBoYXNDTm9kZSA9IGlzQ29uc3RyYWluZWRWYWx1ZShjb25zdHJhaW5lZE5vZGUpO1xuXHRcdHZhciBoYXNDQ29udGFpbmVyID0gaXNDb25zdHJhaW5lZFZhbHVlKGNvbnN0cmFpbmVkQ29udGFpbmVyKTtcblx0XHR2YXIgaW5maW5pdHkgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG5cblx0XHRpZiAoaGFzQ05vZGUgfHwgaGFzQ0NvbnRhaW5lcikge1xuXHRcdFx0cmV0dXJuIE1hdGgubWluKFxuXHRcdFx0XHRoYXNDTm9kZSA/IHBhcnNlTWF4U3R5bGUoY29uc3RyYWluZWROb2RlLCBkb21Ob2RlLCBwZXJjZW50YWdlUHJvcGVydHkpIDogaW5maW5pdHksXG5cdFx0XHRcdGhhc0NDb250YWluZXIgPyBwYXJzZU1heFN0eWxlKGNvbnN0cmFpbmVkQ29udGFpbmVyLCBwYXJlbnROb2RlLCBwZXJjZW50YWdlUHJvcGVydHkpIDogaW5maW5pdHkpO1xuXHRcdH1cblxuXHRcdHJldHVybiAnbm9uZSc7XG5cdH1cblx0Ly8gcmV0dXJucyBOdW1iZXIgb3IgdW5kZWZpbmVkIGlmIG5vIGNvbnN0cmFpbnRcblx0aGVscGVycyQxLmdldENvbnN0cmFpbnRXaWR0aCA9IGZ1bmN0aW9uKGRvbU5vZGUpIHtcblx0XHRyZXR1cm4gZ2V0Q29uc3RyYWludERpbWVuc2lvbihkb21Ob2RlLCAnbWF4LXdpZHRoJywgJ2NsaWVudFdpZHRoJyk7XG5cdH07XG5cdC8vIHJldHVybnMgTnVtYmVyIG9yIHVuZGVmaW5lZCBpZiBubyBjb25zdHJhaW50XG5cdGhlbHBlcnMkMS5nZXRDb25zdHJhaW50SGVpZ2h0ID0gZnVuY3Rpb24oZG9tTm9kZSkge1xuXHRcdHJldHVybiBnZXRDb25zdHJhaW50RGltZW5zaW9uKGRvbU5vZGUsICdtYXgtaGVpZ2h0JywgJ2NsaWVudEhlaWdodCcpO1xuXHR9O1xuXHQvKipcblx0ICogQHByaXZhdGVcbiBcdCAqL1xuXHRoZWxwZXJzJDEuX2NhbGN1bGF0ZVBhZGRpbmcgPSBmdW5jdGlvbihjb250YWluZXIsIHBhZGRpbmcsIHBhcmVudERpbWVuc2lvbikge1xuXHRcdHBhZGRpbmcgPSBoZWxwZXJzJDEuZ2V0U3R5bGUoY29udGFpbmVyLCBwYWRkaW5nKTtcblxuXHRcdHJldHVybiBwYWRkaW5nLmluZGV4T2YoJyUnKSA+IC0xID8gcGFyZW50RGltZW5zaW9uICogcGFyc2VJbnQocGFkZGluZywgMTApIC8gMTAwIDogcGFyc2VJbnQocGFkZGluZywgMTApO1xuXHR9O1xuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGhlbHBlcnMkMS5fZ2V0UGFyZW50Tm9kZSA9IGZ1bmN0aW9uKGRvbU5vZGUpIHtcblx0XHR2YXIgcGFyZW50ID0gZG9tTm9kZS5wYXJlbnROb2RlO1xuXHRcdGlmIChwYXJlbnQgJiYgcGFyZW50LnRvU3RyaW5nKCkgPT09ICdbb2JqZWN0IFNoYWRvd1Jvb3RdJykge1xuXHRcdFx0cGFyZW50ID0gcGFyZW50Lmhvc3Q7XG5cdFx0fVxuXHRcdHJldHVybiBwYXJlbnQ7XG5cdH07XG5cdGhlbHBlcnMkMS5nZXRNYXhpbXVtV2lkdGggPSBmdW5jdGlvbihkb21Ob2RlKSB7XG5cdFx0dmFyIGNvbnRhaW5lciA9IGhlbHBlcnMkMS5fZ2V0UGFyZW50Tm9kZShkb21Ob2RlKTtcblx0XHRpZiAoIWNvbnRhaW5lcikge1xuXHRcdFx0cmV0dXJuIGRvbU5vZGUuY2xpZW50V2lkdGg7XG5cdFx0fVxuXG5cdFx0dmFyIGNsaWVudFdpZHRoID0gY29udGFpbmVyLmNsaWVudFdpZHRoO1xuXHRcdHZhciBwYWRkaW5nTGVmdCA9IGhlbHBlcnMkMS5fY2FsY3VsYXRlUGFkZGluZyhjb250YWluZXIsICdwYWRkaW5nLWxlZnQnLCBjbGllbnRXaWR0aCk7XG5cdFx0dmFyIHBhZGRpbmdSaWdodCA9IGhlbHBlcnMkMS5fY2FsY3VsYXRlUGFkZGluZyhjb250YWluZXIsICdwYWRkaW5nLXJpZ2h0JywgY2xpZW50V2lkdGgpO1xuXG5cdFx0dmFyIHcgPSBjbGllbnRXaWR0aCAtIHBhZGRpbmdMZWZ0IC0gcGFkZGluZ1JpZ2h0O1xuXHRcdHZhciBjdyA9IGhlbHBlcnMkMS5nZXRDb25zdHJhaW50V2lkdGgoZG9tTm9kZSk7XG5cdFx0cmV0dXJuIGlzTmFOKGN3KSA/IHcgOiBNYXRoLm1pbih3LCBjdyk7XG5cdH07XG5cdGhlbHBlcnMkMS5nZXRNYXhpbXVtSGVpZ2h0ID0gZnVuY3Rpb24oZG9tTm9kZSkge1xuXHRcdHZhciBjb250YWluZXIgPSBoZWxwZXJzJDEuX2dldFBhcmVudE5vZGUoZG9tTm9kZSk7XG5cdFx0aWYgKCFjb250YWluZXIpIHtcblx0XHRcdHJldHVybiBkb21Ob2RlLmNsaWVudEhlaWdodDtcblx0XHR9XG5cblx0XHR2YXIgY2xpZW50SGVpZ2h0ID0gY29udGFpbmVyLmNsaWVudEhlaWdodDtcblx0XHR2YXIgcGFkZGluZ1RvcCA9IGhlbHBlcnMkMS5fY2FsY3VsYXRlUGFkZGluZyhjb250YWluZXIsICdwYWRkaW5nLXRvcCcsIGNsaWVudEhlaWdodCk7XG5cdFx0dmFyIHBhZGRpbmdCb3R0b20gPSBoZWxwZXJzJDEuX2NhbGN1bGF0ZVBhZGRpbmcoY29udGFpbmVyLCAncGFkZGluZy1ib3R0b20nLCBjbGllbnRIZWlnaHQpO1xuXG5cdFx0dmFyIGggPSBjbGllbnRIZWlnaHQgLSBwYWRkaW5nVG9wIC0gcGFkZGluZ0JvdHRvbTtcblx0XHR2YXIgY2ggPSBoZWxwZXJzJDEuZ2V0Q29uc3RyYWludEhlaWdodChkb21Ob2RlKTtcblx0XHRyZXR1cm4gaXNOYU4oY2gpID8gaCA6IE1hdGgubWluKGgsIGNoKTtcblx0fTtcblx0aGVscGVycyQxLmdldFN0eWxlID0gZnVuY3Rpb24oZWwsIHByb3BlcnR5KSB7XG5cdFx0cmV0dXJuIGVsLmN1cnJlbnRTdHlsZSA/XG5cdFx0XHRlbC5jdXJyZW50U3R5bGVbcHJvcGVydHldIDpcblx0XHRcdGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpO1xuXHR9O1xuXHRoZWxwZXJzJDEucmV0aW5hU2NhbGUgPSBmdW5jdGlvbihjaGFydCwgZm9yY2VSYXRpbykge1xuXHRcdHZhciBwaXhlbFJhdGlvID0gY2hhcnQuY3VycmVudERldmljZVBpeGVsUmF0aW8gPSBmb3JjZVJhdGlvIHx8ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbykgfHwgMTtcblx0XHRpZiAocGl4ZWxSYXRpbyA9PT0gMSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHZhciBjYW52YXMgPSBjaGFydC5jYW52YXM7XG5cdFx0dmFyIGhlaWdodCA9IGNoYXJ0LmhlaWdodDtcblx0XHR2YXIgd2lkdGggPSBjaGFydC53aWR0aDtcblxuXHRcdGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQgKiBwaXhlbFJhdGlvO1xuXHRcdGNhbnZhcy53aWR0aCA9IHdpZHRoICogcGl4ZWxSYXRpbztcblx0XHRjaGFydC5jdHguc2NhbGUocGl4ZWxSYXRpbywgcGl4ZWxSYXRpbyk7XG5cblx0XHQvLyBJZiBubyBzdHlsZSBoYXMgYmVlbiBzZXQgb24gdGhlIGNhbnZhcywgdGhlIHJlbmRlciBzaXplIGlzIHVzZWQgYXMgZGlzcGxheSBzaXplLFxuXHRcdC8vIG1ha2luZyB0aGUgY2hhcnQgdmlzdWFsbHkgYmlnZ2VyLCBzbyBsZXQncyBlbmZvcmNlIGl0IHRvIHRoZSBcImNvcnJlY3RcIiB2YWx1ZXMuXG5cdFx0Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL2lzc3Vlcy8zNTc1XG5cdFx0aWYgKCFjYW52YXMuc3R5bGUuaGVpZ2h0ICYmICFjYW52YXMuc3R5bGUud2lkdGgpIHtcblx0XHRcdGNhbnZhcy5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnO1xuXHRcdFx0Y2FudmFzLnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuXHRcdH1cblx0fTtcblx0Ly8gLS0gQ2FudmFzIG1ldGhvZHNcblx0aGVscGVycyQxLmZvbnRTdHJpbmcgPSBmdW5jdGlvbihwaXhlbFNpemUsIGZvbnRTdHlsZSwgZm9udEZhbWlseSkge1xuXHRcdHJldHVybiBmb250U3R5bGUgKyAnICcgKyBwaXhlbFNpemUgKyAncHggJyArIGZvbnRGYW1pbHk7XG5cdH07XG5cdGhlbHBlcnMkMS5sb25nZXN0VGV4dCA9IGZ1bmN0aW9uKGN0eCwgZm9udCwgYXJyYXlPZlRoaW5ncywgY2FjaGUpIHtcblx0XHRjYWNoZSA9IGNhY2hlIHx8IHt9O1xuXHRcdHZhciBkYXRhID0gY2FjaGUuZGF0YSA9IGNhY2hlLmRhdGEgfHwge307XG5cdFx0dmFyIGdjID0gY2FjaGUuZ2FyYmFnZUNvbGxlY3QgPSBjYWNoZS5nYXJiYWdlQ29sbGVjdCB8fCBbXTtcblxuXHRcdGlmIChjYWNoZS5mb250ICE9PSBmb250KSB7XG5cdFx0XHRkYXRhID0gY2FjaGUuZGF0YSA9IHt9O1xuXHRcdFx0Z2MgPSBjYWNoZS5nYXJiYWdlQ29sbGVjdCA9IFtdO1xuXHRcdFx0Y2FjaGUuZm9udCA9IGZvbnQ7XG5cdFx0fVxuXG5cdFx0Y3R4LmZvbnQgPSBmb250O1xuXHRcdHZhciBsb25nZXN0ID0gMDtcblx0XHRoZWxwZXJzJDEuZWFjaChhcnJheU9mVGhpbmdzLCBmdW5jdGlvbih0aGluZykge1xuXHRcdFx0Ly8gVW5kZWZpbmVkIHN0cmluZ3MgYW5kIGFycmF5cyBzaG91bGQgbm90IGJlIG1lYXN1cmVkXG5cdFx0XHRpZiAodGhpbmcgIT09IHVuZGVmaW5lZCAmJiB0aGluZyAhPT0gbnVsbCAmJiBoZWxwZXJzJDEuaXNBcnJheSh0aGluZykgIT09IHRydWUpIHtcblx0XHRcdFx0bG9uZ2VzdCA9IGhlbHBlcnMkMS5tZWFzdXJlVGV4dChjdHgsIGRhdGEsIGdjLCBsb25nZXN0LCB0aGluZyk7XG5cdFx0XHR9IGVsc2UgaWYgKGhlbHBlcnMkMS5pc0FycmF5KHRoaW5nKSkge1xuXHRcdFx0XHQvLyBpZiBpdCBpcyBhbiBhcnJheSBsZXRzIG1lYXN1cmUgZWFjaCBlbGVtZW50XG5cdFx0XHRcdC8vIHRvIGRvIG1heWJlIHNpbXBsaWZ5IHRoaXMgZnVuY3Rpb24gYSBiaXQgc28gd2UgY2FuIGRvIHRoaXMgbW9yZSByZWN1cnNpdmVseT9cblx0XHRcdFx0aGVscGVycyQxLmVhY2godGhpbmcsIGZ1bmN0aW9uKG5lc3RlZFRoaW5nKSB7XG5cdFx0XHRcdFx0Ly8gVW5kZWZpbmVkIHN0cmluZ3MgYW5kIGFycmF5cyBzaG91bGQgbm90IGJlIG1lYXN1cmVkXG5cdFx0XHRcdFx0aWYgKG5lc3RlZFRoaW5nICE9PSB1bmRlZmluZWQgJiYgbmVzdGVkVGhpbmcgIT09IG51bGwgJiYgIWhlbHBlcnMkMS5pc0FycmF5KG5lc3RlZFRoaW5nKSkge1xuXHRcdFx0XHRcdFx0bG9uZ2VzdCA9IGhlbHBlcnMkMS5tZWFzdXJlVGV4dChjdHgsIGRhdGEsIGdjLCBsb25nZXN0LCBuZXN0ZWRUaGluZyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHZhciBnY0xlbiA9IGdjLmxlbmd0aCAvIDI7XG5cdFx0aWYgKGdjTGVuID4gYXJyYXlPZlRoaW5ncy5sZW5ndGgpIHtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgZ2NMZW47IGkrKykge1xuXHRcdFx0XHRkZWxldGUgZGF0YVtnY1tpXV07XG5cdFx0XHR9XG5cdFx0XHRnYy5zcGxpY2UoMCwgZ2NMZW4pO1xuXHRcdH1cblx0XHRyZXR1cm4gbG9uZ2VzdDtcblx0fTtcblx0aGVscGVycyQxLm1lYXN1cmVUZXh0ID0gZnVuY3Rpb24oY3R4LCBkYXRhLCBnYywgbG9uZ2VzdCwgc3RyaW5nKSB7XG5cdFx0dmFyIHRleHRXaWR0aCA9IGRhdGFbc3RyaW5nXTtcblx0XHRpZiAoIXRleHRXaWR0aCkge1xuXHRcdFx0dGV4dFdpZHRoID0gZGF0YVtzdHJpbmddID0gY3R4Lm1lYXN1cmVUZXh0KHN0cmluZykud2lkdGg7XG5cdFx0XHRnYy5wdXNoKHN0cmluZyk7XG5cdFx0fVxuXHRcdGlmICh0ZXh0V2lkdGggPiBsb25nZXN0KSB7XG5cdFx0XHRsb25nZXN0ID0gdGV4dFdpZHRoO1xuXHRcdH1cblx0XHRyZXR1cm4gbG9uZ2VzdDtcblx0fTtcblx0aGVscGVycyQxLm51bWJlck9mTGFiZWxMaW5lcyA9IGZ1bmN0aW9uKGFycmF5T2ZUaGluZ3MpIHtcblx0XHR2YXIgbnVtYmVyT2ZMaW5lcyA9IDE7XG5cdFx0aGVscGVycyQxLmVhY2goYXJyYXlPZlRoaW5ncywgZnVuY3Rpb24odGhpbmcpIHtcblx0XHRcdGlmIChoZWxwZXJzJDEuaXNBcnJheSh0aGluZykpIHtcblx0XHRcdFx0aWYgKHRoaW5nLmxlbmd0aCA+IG51bWJlck9mTGluZXMpIHtcblx0XHRcdFx0XHRudW1iZXJPZkxpbmVzID0gdGhpbmcubGVuZ3RoO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG51bWJlck9mTGluZXM7XG5cdH07XG5cblx0aGVscGVycyQxLmNvbG9yID0gIWNoYXJ0anNDb2xvciA/XG5cdFx0ZnVuY3Rpb24odmFsdWUpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0NvbG9yLmpzIG5vdCBmb3VuZCEnKTtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9IDpcblx0XHRmdW5jdGlvbih2YWx1ZSkge1xuXHRcdFx0LyogZ2xvYmFsIENhbnZhc0dyYWRpZW50ICovXG5cdFx0XHRpZiAodmFsdWUgaW5zdGFuY2VvZiBDYW52YXNHcmFkaWVudCkge1xuXHRcdFx0XHR2YWx1ZSA9IGNvcmVfZGVmYXVsdHMuZ2xvYmFsLmRlZmF1bHRDb2xvcjtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGNoYXJ0anNDb2xvcih2YWx1ZSk7XG5cdFx0fTtcblxuXHRoZWxwZXJzJDEuZ2V0SG92ZXJDb2xvciA9IGZ1bmN0aW9uKGNvbG9yVmFsdWUpIHtcblx0XHQvKiBnbG9iYWwgQ2FudmFzUGF0dGVybiAqL1xuXHRcdHJldHVybiAoY29sb3JWYWx1ZSBpbnN0YW5jZW9mIENhbnZhc1BhdHRlcm4gfHwgY29sb3JWYWx1ZSBpbnN0YW5jZW9mIENhbnZhc0dyYWRpZW50KSA/XG5cdFx0XHRjb2xvclZhbHVlIDpcblx0XHRcdGhlbHBlcnMkMS5jb2xvcihjb2xvclZhbHVlKS5zYXR1cmF0ZSgwLjUpLmRhcmtlbigwLjEpLnJnYlN0cmluZygpO1xuXHR9O1xufTtcblxuZnVuY3Rpb24gYWJzdHJhY3QoKSB7XG5cdHRocm93IG5ldyBFcnJvcihcblx0XHQnVGhpcyBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkOiBlaXRoZXIgbm8gYWRhcHRlciBjYW4gJyArXG5cdFx0J2JlIGZvdW5kIG9yIGFuIGluY29tcGxldGUgaW50ZWdyYXRpb24gd2FzIHByb3ZpZGVkLidcblx0KTtcbn1cblxuLyoqXG4gKiBEYXRlIGFkYXB0ZXIgKGN1cnJlbnQgdXNlZCBieSB0aGUgdGltZSBzY2FsZSlcbiAqIEBuYW1lc3BhY2UgQ2hhcnQuX2FkYXB0ZXJzLl9kYXRlXG4gKiBAbWVtYmVyb2YgQ2hhcnQuX2FkYXB0ZXJzXG4gKiBAcHJpdmF0ZVxuICovXG5cbi8qKlxuICogQ3VycmVudGx5IHN1cHBvcnRlZCB1bml0IHN0cmluZyB2YWx1ZXMuXG4gKiBAdHlwZWRlZiB7KCdtaWxsaXNlY29uZCd8J3NlY29uZCd8J21pbnV0ZSd8J2hvdXInfCdkYXknfCd3ZWVrJ3wnbW9udGgnfCdxdWFydGVyJ3wneWVhcicpfVxuICogQG1lbWJlcm9mIENoYXJ0Ll9hZGFwdGVycy5fZGF0ZVxuICogQG5hbWUgVW5pdFxuICovXG5cbi8qKlxuICogQGNsYXNzXG4gKi9cbmZ1bmN0aW9uIERhdGVBZGFwdGVyKG9wdGlvbnMpIHtcblx0dGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbn1cblxuaGVscGVycyQxLmV4dGVuZChEYXRlQWRhcHRlci5wcm90b3R5cGUsIC8qKiBAbGVuZHMgRGF0ZUFkYXB0ZXIgKi8ge1xuXHQvKipcblx0ICogUmV0dXJucyBhIG1hcCBvZiB0aW1lIGZvcm1hdHMgZm9yIHRoZSBzdXBwb3J0ZWQgZm9ybWF0dGluZyB1bml0cyBkZWZpbmVkXG5cdCAqIGluIFVuaXQgYXMgd2VsbCBhcyAnZGF0ZXRpbWUnIHJlcHJlc2VudGluZyBhIGRldGFpbGVkIGRhdGUvdGltZSBzdHJpbmcuXG5cdCAqIEByZXR1cm5zIHt7c3RyaW5nOiBzdHJpbmd9fVxuXHQgKi9cblx0Zm9ybWF0czogYWJzdHJhY3QsXG5cblx0LyoqXG5cdCAqIFBhcnNlcyB0aGUgZ2l2ZW4gYHZhbHVlYCBhbmQgcmV0dXJuIHRoZSBhc3NvY2lhdGVkIHRpbWVzdGFtcC5cblx0ICogQHBhcmFtIHthbnl9IHZhbHVlIC0gdGhlIHZhbHVlIHRvIHBhcnNlICh1c3VhbGx5IGNvbWVzIGZyb20gdGhlIGRhdGEpXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBbZm9ybWF0XSAtIHRoZSBleHBlY3RlZCBkYXRhIGZvcm1hdFxuXHQgKiBAcmV0dXJucyB7KG51bWJlcnxudWxsKX1cblx0ICogQGZ1bmN0aW9uXG5cdCAqL1xuXHRwYXJzZTogYWJzdHJhY3QsXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGZvcm1hdHRlZCBkYXRlIGluIHRoZSBzcGVjaWZpZWQgYGZvcm1hdGAgZm9yIGEgZ2l2ZW4gYHRpbWVzdGFtcGAuXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lc3RhbXAgLSB0aGUgdGltZXN0YW1wIHRvIGZvcm1hdFxuXHQgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IC0gdGhlIGRhdGUvdGltZSB0b2tlblxuXHQgKiBAcmV0dXJuIHtzdHJpbmd9XG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblx0Zm9ybWF0OiBhYnN0cmFjdCxcblxuXHQvKipcblx0ICogQWRkcyB0aGUgc3BlY2lmaWVkIGBhbW91bnRgIG9mIGB1bml0YCB0byB0aGUgZ2l2ZW4gYHRpbWVzdGFtcGAuXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lc3RhbXAgLSB0aGUgaW5wdXQgdGltZXN0YW1wXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnQgLSB0aGUgYW1vdW50IHRvIGFkZFxuXHQgKiBAcGFyYW0ge1VuaXR9IHVuaXQgLSB0aGUgdW5pdCBhcyBzdHJpbmdcblx0ICogQHJldHVybiB7bnVtYmVyfVxuXHQgKiBAZnVuY3Rpb25cblx0ICovXG5cdGFkZDogYWJzdHJhY3QsXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIG51bWJlciBvZiBgdW5pdGAgYmV0d2VlbiB0aGUgZ2l2ZW4gdGltZXN0YW1wcy5cblx0ICogQHBhcmFtIHtudW1iZXJ9IG1heCAtIHRoZSBpbnB1dCB0aW1lc3RhbXAgKHJlZmVyZW5jZSlcblx0ICogQHBhcmFtIHtudW1iZXJ9IG1pbiAtIHRoZSB0aW1lc3RhbXAgdG8gc3Vic3RyYWN0XG5cdCAqIEBwYXJhbSB7VW5pdH0gdW5pdCAtIHRoZSB1bml0IGFzIHN0cmluZ1xuXHQgKiBAcmV0dXJuIHtudW1iZXJ9XG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblx0ZGlmZjogYWJzdHJhY3QsXG5cblx0LyoqXG5cdCAqIFJldHVybnMgc3RhcnQgb2YgYHVuaXRgIGZvciB0aGUgZ2l2ZW4gYHRpbWVzdGFtcGAuXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lc3RhbXAgLSB0aGUgaW5wdXQgdGltZXN0YW1wXG5cdCAqIEBwYXJhbSB7VW5pdH0gdW5pdCAtIHRoZSB1bml0IGFzIHN0cmluZ1xuXHQgKiBAcGFyYW0ge251bWJlcn0gW3dlZWtkYXldIC0gdGhlIElTTyBkYXkgb2YgdGhlIHdlZWsgd2l0aCAxIGJlaW5nIE1vbmRheVxuXHQgKiBhbmQgNyBiZWluZyBTdW5kYXkgKG9ubHkgbmVlZGVkIGlmIHBhcmFtICp1bml0KiBpcyBgaXNvV2Vla2ApLlxuXHQgKiBAZnVuY3Rpb25cblx0ICovXG5cdHN0YXJ0T2Y6IGFic3RyYWN0LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGVuZCBvZiBgdW5pdGAgZm9yIHRoZSBnaXZlbiBgdGltZXN0YW1wYC5cblx0ICogQHBhcmFtIHtudW1iZXJ9IHRpbWVzdGFtcCAtIHRoZSBpbnB1dCB0aW1lc3RhbXBcblx0ICogQHBhcmFtIHtVbml0fSB1bml0IC0gdGhlIHVuaXQgYXMgc3RyaW5nXG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblx0ZW5kT2Y6IGFic3RyYWN0LFxuXG5cdC8vIERFUFJFQ0FUSU9OU1xuXG5cdC8qKlxuXHQgKiBQcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3Igc2NhbGUuZ2V0VmFsdWVGb3JQaXhlbCgpLFxuXHQgKiB0aGlzIG1ldGhvZCBzaG91bGQgYmUgb3ZlcnJpZGRlbiBvbmx5IGJ5IHRoZSBtb21lbnQgYWRhcHRlci5cblx0ICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAyLjguMFxuXHQgKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfY3JlYXRlOiBmdW5jdGlvbih2YWx1ZSkge1xuXHRcdHJldHVybiB2YWx1ZTtcblx0fVxufSk7XG5cbkRhdGVBZGFwdGVyLm92ZXJyaWRlID0gZnVuY3Rpb24obWVtYmVycykge1xuXHRoZWxwZXJzJDEuZXh0ZW5kKERhdGVBZGFwdGVyLnByb3RvdHlwZSwgbWVtYmVycyk7XG59O1xuXG52YXIgX2RhdGUgPSBEYXRlQWRhcHRlcjtcblxudmFyIGNvcmVfYWRhcHRlcnMgPSB7XG5cdF9kYXRlOiBfZGF0ZVxufTtcblxuLyoqXG4gKiBOYW1lc3BhY2UgdG8gaG9sZCBzdGF0aWMgdGljayBnZW5lcmF0aW9uIGZ1bmN0aW9uc1xuICogQG5hbWVzcGFjZSBDaGFydC5UaWNrc1xuICovXG52YXIgY29yZV90aWNrcyA9IHtcblx0LyoqXG5cdCAqIE5hbWVzcGFjZSB0byBob2xkIGZvcm1hdHRlcnMgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiB0aWNrc1xuXHQgKiBAbmFtZXNwYWNlIENoYXJ0LlRpY2tzLmZvcm1hdHRlcnNcblx0ICovXG5cdGZvcm1hdHRlcnM6IHtcblx0XHQvKipcblx0XHQgKiBGb3JtYXR0ZXIgZm9yIHZhbHVlIGxhYmVsc1xuXHRcdCAqIEBtZXRob2QgQ2hhcnQuVGlja3MuZm9ybWF0dGVycy52YWx1ZXNcblx0XHQgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIGRpc3BsYXlcblx0XHQgKiBAcmV0dXJuIHtzdHJpbmd8c3RyaW5nW119IHRoZSBsYWJlbCB0byBkaXNwbGF5XG5cdFx0ICovXG5cdFx0dmFsdWVzOiBmdW5jdGlvbih2YWx1ZSkge1xuXHRcdFx0cmV0dXJuIGhlbHBlcnMkMS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogJycgKyB2YWx1ZTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogRm9ybWF0dGVyIGZvciBsaW5lYXIgbnVtZXJpYyB0aWNrc1xuXHRcdCAqIEBtZXRob2QgQ2hhcnQuVGlja3MuZm9ybWF0dGVycy5saW5lYXJcblx0XHQgKiBAcGFyYW0gdGlja1ZhbHVlIHtudW1iZXJ9IHRoZSB2YWx1ZSB0byBiZSBmb3JtYXR0ZWRcblx0XHQgKiBAcGFyYW0gaW5kZXgge251bWJlcn0gdGhlIHBvc2l0aW9uIG9mIHRoZSB0aWNrVmFsdWUgcGFyYW1ldGVyIGluIHRoZSB0aWNrcyBhcnJheVxuXHRcdCAqIEBwYXJhbSB0aWNrcyB7bnVtYmVyW119IHRoZSBsaXN0IG9mIHRpY2tzIGJlaW5nIGNvbnZlcnRlZFxuXHRcdCAqIEByZXR1cm4ge3N0cmluZ30gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0aWNrVmFsdWUgcGFyYW1ldGVyXG5cdFx0ICovXG5cdFx0bGluZWFyOiBmdW5jdGlvbih0aWNrVmFsdWUsIGluZGV4LCB0aWNrcykge1xuXHRcdFx0Ly8gSWYgd2UgaGF2ZSBsb3RzIG9mIHRpY2tzLCBkb24ndCB1c2UgdGhlIG9uZXNcblx0XHRcdHZhciBkZWx0YSA9IHRpY2tzLmxlbmd0aCA+IDMgPyB0aWNrc1syXSAtIHRpY2tzWzFdIDogdGlja3NbMV0gLSB0aWNrc1swXTtcblxuXHRcdFx0Ly8gSWYgd2UgaGF2ZSBhIG51bWJlciBsaWtlIDIuNSBhcyB0aGUgZGVsdGEsIGZpZ3VyZSBvdXQgaG93IG1hbnkgZGVjaW1hbCBwbGFjZXMgd2UgbmVlZFxuXHRcdFx0aWYgKE1hdGguYWJzKGRlbHRhKSA+IDEpIHtcblx0XHRcdFx0aWYgKHRpY2tWYWx1ZSAhPT0gTWF0aC5mbG9vcih0aWNrVmFsdWUpKSB7XG5cdFx0XHRcdFx0Ly8gbm90IGFuIGludGVnZXJcblx0XHRcdFx0XHRkZWx0YSA9IHRpY2tWYWx1ZSAtIE1hdGguZmxvb3IodGlja1ZhbHVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR2YXIgbG9nRGVsdGEgPSBoZWxwZXJzJDEubG9nMTAoTWF0aC5hYnMoZGVsdGEpKTtcblx0XHRcdHZhciB0aWNrU3RyaW5nID0gJyc7XG5cblx0XHRcdGlmICh0aWNrVmFsdWUgIT09IDApIHtcblx0XHRcdFx0dmFyIG1heFRpY2sgPSBNYXRoLm1heChNYXRoLmFicyh0aWNrc1swXSksIE1hdGguYWJzKHRpY2tzW3RpY2tzLmxlbmd0aCAtIDFdKSk7XG5cdFx0XHRcdGlmIChtYXhUaWNrIDwgMWUtNCkgeyAvLyBhbGwgdGlja3MgYXJlIHNtYWxsIG51bWJlcnM7IHVzZSBzY2llbnRpZmljIG5vdGF0aW9uXG5cdFx0XHRcdFx0dmFyIGxvZ1RpY2sgPSBoZWxwZXJzJDEubG9nMTAoTWF0aC5hYnModGlja1ZhbHVlKSk7XG5cdFx0XHRcdFx0dGlja1N0cmluZyA9IHRpY2tWYWx1ZS50b0V4cG9uZW50aWFsKE1hdGguZmxvb3IobG9nVGljaykgLSBNYXRoLmZsb29yKGxvZ0RlbHRhKSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dmFyIG51bURlY2ltYWwgPSAtMSAqIE1hdGguZmxvb3IobG9nRGVsdGEpO1xuXHRcdFx0XHRcdG51bURlY2ltYWwgPSBNYXRoLm1heChNYXRoLm1pbihudW1EZWNpbWFsLCAyMCksIDApOyAvLyB0b0ZpeGVkIGhhcyBhIG1heCBvZiAyMCBkZWNpbWFsIHBsYWNlc1xuXHRcdFx0XHRcdHRpY2tTdHJpbmcgPSB0aWNrVmFsdWUudG9GaXhlZChudW1EZWNpbWFsKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGlja1N0cmluZyA9ICcwJzsgLy8gbmV2ZXIgc2hvdyBkZWNpbWFsIHBsYWNlcyBmb3IgMFxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdGlja1N0cmluZztcblx0XHR9LFxuXG5cdFx0bG9nYXJpdGhtaWM6IGZ1bmN0aW9uKHRpY2tWYWx1ZSwgaW5kZXgsIHRpY2tzKSB7XG5cdFx0XHR2YXIgcmVtYWluID0gdGlja1ZhbHVlIC8gKE1hdGgucG93KDEwLCBNYXRoLmZsb29yKGhlbHBlcnMkMS5sb2cxMCh0aWNrVmFsdWUpKSkpO1xuXG5cdFx0XHRpZiAodGlja1ZhbHVlID09PSAwKSB7XG5cdFx0XHRcdHJldHVybiAnMCc7XG5cdFx0XHR9IGVsc2UgaWYgKHJlbWFpbiA9PT0gMSB8fCByZW1haW4gPT09IDIgfHwgcmVtYWluID09PSA1IHx8IGluZGV4ID09PSAwIHx8IGluZGV4ID09PSB0aWNrcy5sZW5ndGggLSAxKSB7XG5cdFx0XHRcdHJldHVybiB0aWNrVmFsdWUudG9FeHBvbmVudGlhbCgpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuICcnO1xuXHRcdH1cblx0fVxufTtcblxudmFyIHZhbHVlT3JEZWZhdWx0JDkgPSBoZWxwZXJzJDEudmFsdWVPckRlZmF1bHQ7XG52YXIgdmFsdWVBdEluZGV4T3JEZWZhdWx0ID0gaGVscGVycyQxLnZhbHVlQXRJbmRleE9yRGVmYXVsdDtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdzY2FsZScsIHtcblx0ZGlzcGxheTogdHJ1ZSxcblx0cG9zaXRpb246ICdsZWZ0Jyxcblx0b2Zmc2V0OiBmYWxzZSxcblxuXHQvLyBncmlkIGxpbmUgc2V0dGluZ3Ncblx0Z3JpZExpbmVzOiB7XG5cdFx0ZGlzcGxheTogdHJ1ZSxcblx0XHRjb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC4xKScsXG5cdFx0bGluZVdpZHRoOiAxLFxuXHRcdGRyYXdCb3JkZXI6IHRydWUsXG5cdFx0ZHJhd09uQ2hhcnRBcmVhOiB0cnVlLFxuXHRcdGRyYXdUaWNrczogdHJ1ZSxcblx0XHR0aWNrTWFya0xlbmd0aDogMTAsXG5cdFx0emVyb0xpbmVXaWR0aDogMSxcblx0XHR6ZXJvTGluZUNvbG9yOiAncmdiYSgwLDAsMCwwLjI1KScsXG5cdFx0emVyb0xpbmVCb3JkZXJEYXNoOiBbXSxcblx0XHR6ZXJvTGluZUJvcmRlckRhc2hPZmZzZXQ6IDAuMCxcblx0XHRvZmZzZXRHcmlkTGluZXM6IGZhbHNlLFxuXHRcdGJvcmRlckRhc2g6IFtdLFxuXHRcdGJvcmRlckRhc2hPZmZzZXQ6IDAuMFxuXHR9LFxuXG5cdC8vIHNjYWxlIGxhYmVsXG5cdHNjYWxlTGFiZWw6IHtcblx0XHQvLyBkaXNwbGF5IHByb3BlcnR5XG5cdFx0ZGlzcGxheTogZmFsc2UsXG5cblx0XHQvLyBhY3R1YWwgbGFiZWxcblx0XHRsYWJlbFN0cmluZzogJycsXG5cblx0XHQvLyB0b3AvYm90dG9tIHBhZGRpbmdcblx0XHRwYWRkaW5nOiB7XG5cdFx0XHR0b3A6IDQsXG5cdFx0XHRib3R0b206IDRcblx0XHR9XG5cdH0sXG5cblx0Ly8gbGFiZWwgc2V0dGluZ3Ncblx0dGlja3M6IHtcblx0XHRiZWdpbkF0WmVybzogZmFsc2UsXG5cdFx0bWluUm90YXRpb246IDAsXG5cdFx0bWF4Um90YXRpb246IDUwLFxuXHRcdG1pcnJvcjogZmFsc2UsXG5cdFx0cGFkZGluZzogMCxcblx0XHRyZXZlcnNlOiBmYWxzZSxcblx0XHRkaXNwbGF5OiB0cnVlLFxuXHRcdGF1dG9Ta2lwOiB0cnVlLFxuXHRcdGF1dG9Ta2lwUGFkZGluZzogMCxcblx0XHRsYWJlbE9mZnNldDogMCxcblx0XHQvLyBXZSBwYXNzIHRocm91Z2ggYXJyYXlzIHRvIGJlIHJlbmRlcmVkIGFzIG11bHRpbGluZSBsYWJlbHMsIHdlIGNvbnZlcnQgT3RoZXJzIHRvIHN0cmluZ3MgaGVyZS5cblx0XHRjYWxsYmFjazogY29yZV90aWNrcy5mb3JtYXR0ZXJzLnZhbHVlcyxcblx0XHRtaW5vcjoge30sXG5cdFx0bWFqb3I6IHt9XG5cdH1cbn0pO1xuXG5mdW5jdGlvbiBsYWJlbHNGcm9tVGlja3ModGlja3MpIHtcblx0dmFyIGxhYmVscyA9IFtdO1xuXHR2YXIgaSwgaWxlbjtcblxuXHRmb3IgKGkgPSAwLCBpbGVuID0gdGlja3MubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0bGFiZWxzLnB1c2godGlja3NbaV0ubGFiZWwpO1xuXHR9XG5cblx0cmV0dXJuIGxhYmVscztcbn1cblxuZnVuY3Rpb24gZ2V0UGl4ZWxGb3JHcmlkTGluZShzY2FsZSwgaW5kZXgsIG9mZnNldEdyaWRMaW5lcykge1xuXHR2YXIgbGluZVZhbHVlID0gc2NhbGUuZ2V0UGl4ZWxGb3JUaWNrKGluZGV4KTtcblxuXHRpZiAob2Zmc2V0R3JpZExpbmVzKSB7XG5cdFx0aWYgKHNjYWxlLmdldFRpY2tzKCkubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRsaW5lVmFsdWUgLT0gc2NhbGUuaXNIb3Jpem9udGFsKCkgP1xuXHRcdFx0XHRNYXRoLm1heChsaW5lVmFsdWUgLSBzY2FsZS5sZWZ0LCBzY2FsZS5yaWdodCAtIGxpbmVWYWx1ZSkgOlxuXHRcdFx0XHRNYXRoLm1heChsaW5lVmFsdWUgLSBzY2FsZS50b3AsIHNjYWxlLmJvdHRvbSAtIGxpbmVWYWx1ZSk7XG5cdFx0fSBlbHNlIGlmIChpbmRleCA9PT0gMCkge1xuXHRcdFx0bGluZVZhbHVlIC09IChzY2FsZS5nZXRQaXhlbEZvclRpY2soMSkgLSBsaW5lVmFsdWUpIC8gMjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bGluZVZhbHVlIC09IChsaW5lVmFsdWUgLSBzY2FsZS5nZXRQaXhlbEZvclRpY2soaW5kZXggLSAxKSkgLyAyO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gbGluZVZhbHVlO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlVGV4dFNpemUoY29udGV4dCwgdGljaywgZm9udCkge1xuXHRyZXR1cm4gaGVscGVycyQxLmlzQXJyYXkodGljaykgP1xuXHRcdGhlbHBlcnMkMS5sb25nZXN0VGV4dChjb250ZXh0LCBmb250LCB0aWNrKSA6XG5cdFx0Y29udGV4dC5tZWFzdXJlVGV4dCh0aWNrKS53aWR0aDtcbn1cblxudmFyIGNvcmVfc2NhbGUgPSBjb3JlX2VsZW1lbnQuZXh0ZW5kKHtcblx0LyoqXG5cdCAqIEdldCB0aGUgcGFkZGluZyBuZWVkZWQgZm9yIHRoZSBzY2FsZVxuXHQgKiBAbWV0aG9kIGdldFBhZGRpbmdcblx0ICogQHByaXZhdGVcblx0ICogQHJldHVybnMge1BhZGRpbmd9IHRoZSBuZWNlc3NhcnkgcGFkZGluZ1xuXHQgKi9cblx0Z2V0UGFkZGluZzogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHRyZXR1cm4ge1xuXHRcdFx0bGVmdDogbWUucGFkZGluZ0xlZnQgfHwgMCxcblx0XHRcdHRvcDogbWUucGFkZGluZ1RvcCB8fCAwLFxuXHRcdFx0cmlnaHQ6IG1lLnBhZGRpbmdSaWdodCB8fCAwLFxuXHRcdFx0Ym90dG9tOiBtZS5wYWRkaW5nQm90dG9tIHx8IDBcblx0XHR9O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBzY2FsZSB0aWNrIG9iamVjdHMgKHtsYWJlbCwgbWFqb3J9KVxuXHQgKiBAc2luY2UgMi43XG5cdCAqL1xuXHRnZXRUaWNrczogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3RpY2tzO1xuXHR9LFxuXG5cdC8vIFRoZXNlIG1ldGhvZHMgYXJlIG9yZGVyZWQgYnkgbGlmZWN5bGUuIFV0aWxpdGllcyB0aGVuIGZvbGxvdy5cblx0Ly8gQW55IGZ1bmN0aW9uIGRlZmluZWQgaGVyZSBpcyBpbmhlcml0ZWQgYnkgYWxsIHNjYWxlIHR5cGVzLlxuXHQvLyBBbnkgZnVuY3Rpb24gY2FuIGJlIGV4dGVuZGVkIGJ5IHRoZSBzY2FsZSB0eXBlXG5cblx0bWVyZ2VUaWNrc09wdGlvbnM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciB0aWNrcyA9IHRoaXMub3B0aW9ucy50aWNrcztcblx0XHRpZiAodGlja3MubWlub3IgPT09IGZhbHNlKSB7XG5cdFx0XHR0aWNrcy5taW5vciA9IHtcblx0XHRcdFx0ZGlzcGxheTogZmFsc2Vcblx0XHRcdH07XG5cdFx0fVxuXHRcdGlmICh0aWNrcy5tYWpvciA9PT0gZmFsc2UpIHtcblx0XHRcdHRpY2tzLm1ham9yID0ge1xuXHRcdFx0XHRkaXNwbGF5OiBmYWxzZVxuXHRcdFx0fTtcblx0XHR9XG5cdFx0Zm9yICh2YXIga2V5IGluIHRpY2tzKSB7XG5cdFx0XHRpZiAoa2V5ICE9PSAnbWFqb3InICYmIGtleSAhPT0gJ21pbm9yJykge1xuXHRcdFx0XHRpZiAodHlwZW9mIHRpY2tzLm1pbm9yW2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRcdFx0dGlja3MubWlub3Jba2V5XSA9IHRpY2tzW2tleV07XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHR5cGVvZiB0aWNrcy5tYWpvcltrZXldID09PSAndW5kZWZpbmVkJykge1xuXHRcdFx0XHRcdHRpY2tzLm1ham9yW2tleV0gPSB0aWNrc1trZXldO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRiZWZvcmVVcGRhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdGhlbHBlcnMkMS5jYWxsYmFjayh0aGlzLm9wdGlvbnMuYmVmb3JlVXBkYXRlLCBbdGhpc10pO1xuXHR9LFxuXG5cdHVwZGF0ZTogZnVuY3Rpb24obWF4V2lkdGgsIG1heEhlaWdodCwgbWFyZ2lucykge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGksIGlsZW4sIGxhYmVscywgbGFiZWwsIHRpY2tzLCB0aWNrO1xuXG5cdFx0Ly8gVXBkYXRlIExpZmVjeWNsZSAtIFByb2JhYmx5IGRvbid0IHdhbnQgdG8gZXZlciBleHRlbmQgb3Igb3ZlcndyaXRlIHRoaXMgZnVuY3Rpb24gOylcblx0XHRtZS5iZWZvcmVVcGRhdGUoKTtcblxuXHRcdC8vIEFic29yYiB0aGUgbWFzdGVyIG1lYXN1cmVtZW50c1xuXHRcdG1lLm1heFdpZHRoID0gbWF4V2lkdGg7XG5cdFx0bWUubWF4SGVpZ2h0ID0gbWF4SGVpZ2h0O1xuXHRcdG1lLm1hcmdpbnMgPSBoZWxwZXJzJDEuZXh0ZW5kKHtcblx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRyaWdodDogMCxcblx0XHRcdHRvcDogMCxcblx0XHRcdGJvdHRvbTogMFxuXHRcdH0sIG1hcmdpbnMpO1xuXG5cdFx0bWUuX21heExhYmVsTGluZXMgPSAwO1xuXHRcdG1lLmxvbmdlc3RMYWJlbFdpZHRoID0gMDtcblx0XHRtZS5sb25nZXN0VGV4dENhY2hlID0gbWUubG9uZ2VzdFRleHRDYWNoZSB8fCB7fTtcblxuXHRcdC8vIERpbWVuc2lvbnNcblx0XHRtZS5iZWZvcmVTZXREaW1lbnNpb25zKCk7XG5cdFx0bWUuc2V0RGltZW5zaW9ucygpO1xuXHRcdG1lLmFmdGVyU2V0RGltZW5zaW9ucygpO1xuXG5cdFx0Ly8gRGF0YSBtaW4vbWF4XG5cdFx0bWUuYmVmb3JlRGF0YUxpbWl0cygpO1xuXHRcdG1lLmRldGVybWluZURhdGFMaW1pdHMoKTtcblx0XHRtZS5hZnRlckRhdGFMaW1pdHMoKTtcblxuXHRcdC8vIFRpY2tzIC0gYHRoaXMudGlja3NgIGlzIG5vdyBERVBSRUNBVEVEIVxuXHRcdC8vIEludGVybmFsIHRpY2tzIGFyZSBub3cgc3RvcmVkIGFzIG9iamVjdHMgaW4gdGhlIFBSSVZBVEUgYHRoaXMuX3RpY2tzYCBtZW1iZXJcblx0XHQvLyBhbmQgbXVzdCBub3QgYmUgYWNjZXNzZWQgZGlyZWN0bHkgZnJvbSBvdXRzaWRlIHRoaXMgY2xhc3MuIGB0aGlzLnRpY2tzYCBiZWluZ1xuXHRcdC8vIGFyb3VuZCBmb3IgbG9uZyB0aW1lIGFuZCBub3QgbWFya2VkIGFzIHByaXZhdGUsIHdlIGNhbid0IGNoYW5nZSBpdHMgc3RydWN0dXJlXG5cdFx0Ly8gd2l0aG91dCB1bmV4cGVjdGVkIGJyZWFraW5nIGNoYW5nZXMuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2NhbGUgdGlja3MsXG5cdFx0Ly8gdXNlIHNjYWxlLmdldFRpY2tzKCkgaW5zdGVhZC5cblxuXHRcdG1lLmJlZm9yZUJ1aWxkVGlja3MoKTtcblxuXHRcdC8vIE5ldyBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIHJldHVybiBhbiBhcnJheSBvZiBvYmplY3RzIGJ1dCBmb3IgQkFDS1dBUkQgQ09NUEFULFxuXHRcdC8vIHdlIHN0aWxsIHN1cHBvcnQgbm8gcmV0dXJuIChgdGhpcy50aWNrc2AgaW50ZXJuYWxseSBzZXQgYnkgY2FsbGluZyB0aGlzIG1ldGhvZCkuXG5cdFx0dGlja3MgPSBtZS5idWlsZFRpY2tzKCkgfHwgW107XG5cblx0XHQvLyBBbGxvdyBtb2RpZmljYXRpb24gb2YgdGlja3MgaW4gY2FsbGJhY2suXG5cdFx0dGlja3MgPSBtZS5hZnRlckJ1aWxkVGlja3ModGlja3MpIHx8IHRpY2tzO1xuXG5cdFx0bWUuYmVmb3JlVGlja1RvTGFiZWxDb252ZXJzaW9uKCk7XG5cblx0XHQvLyBOZXcgaW1wbGVtZW50YXRpb25zIHNob3VsZCByZXR1cm4gdGhlIGZvcm1hdHRlZCB0aWNrIGxhYmVscyBidXQgZm9yIEJBQ0tXQVJEXG5cdFx0Ly8gQ09NUEFULCB3ZSBzdGlsbCBzdXBwb3J0IG5vIHJldHVybiAoYHRoaXMudGlja3NgIGludGVybmFsbHkgY2hhbmdlZCBieSBjYWxsaW5nXG5cdFx0Ly8gdGhpcyBtZXRob2QgYW5kIHN1cHBvc2VkIHRvIGNvbnRhaW4gb25seSBzdHJpbmcgdmFsdWVzKS5cblx0XHRsYWJlbHMgPSBtZS5jb252ZXJ0VGlja3NUb0xhYmVscyh0aWNrcykgfHwgbWUudGlja3M7XG5cblx0XHRtZS5hZnRlclRpY2tUb0xhYmVsQ29udmVyc2lvbigpO1xuXG5cdFx0bWUudGlja3MgPSBsYWJlbHM7ICAgLy8gQkFDS1dBUkQgQ09NUEFUSUJJTElUWVxuXG5cdFx0Ly8gSU1QT1JUQU5UOiBmcm9tIHRoaXMgcG9pbnQsIHdlIGNvbnNpZGVyIHRoYXQgYHRoaXMudGlja3NgIHdpbGwgTkVWRVIgY2hhbmdlIVxuXG5cdFx0Ly8gQkFDS1dBUkQgQ09NUEFUOiBzeW5jaHJvbml6ZSBgX3RpY2tzYCB3aXRoIGxhYmVscyAoc28gcG90ZW50aWFsbHkgYHRoaXMudGlja3NgKVxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSBsYWJlbHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRsYWJlbCA9IGxhYmVsc1tpXTtcblx0XHRcdHRpY2sgPSB0aWNrc1tpXTtcblx0XHRcdGlmICghdGljaykge1xuXHRcdFx0XHR0aWNrcy5wdXNoKHRpY2sgPSB7XG5cdFx0XHRcdFx0bGFiZWw6IGxhYmVsLFxuXHRcdFx0XHRcdG1ham9yOiBmYWxzZVxuXHRcdFx0XHR9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRpY2subGFiZWwgPSBsYWJlbDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRtZS5fdGlja3MgPSB0aWNrcztcblxuXHRcdC8vIFRpY2sgUm90YXRpb25cblx0XHRtZS5iZWZvcmVDYWxjdWxhdGVUaWNrUm90YXRpb24oKTtcblx0XHRtZS5jYWxjdWxhdGVUaWNrUm90YXRpb24oKTtcblx0XHRtZS5hZnRlckNhbGN1bGF0ZVRpY2tSb3RhdGlvbigpO1xuXHRcdC8vIEZpdFxuXHRcdG1lLmJlZm9yZUZpdCgpO1xuXHRcdG1lLmZpdCgpO1xuXHRcdG1lLmFmdGVyRml0KCk7XG5cdFx0Ly9cblx0XHRtZS5hZnRlclVwZGF0ZSgpO1xuXG5cdFx0cmV0dXJuIG1lLm1pblNpemU7XG5cblx0fSxcblx0YWZ0ZXJVcGRhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdGhlbHBlcnMkMS5jYWxsYmFjayh0aGlzLm9wdGlvbnMuYWZ0ZXJVcGRhdGUsIFt0aGlzXSk7XG5cdH0sXG5cblx0Ly9cblxuXHRiZWZvcmVTZXREaW1lbnNpb25zOiBmdW5jdGlvbigpIHtcblx0XHRoZWxwZXJzJDEuY2FsbGJhY2sodGhpcy5vcHRpb25zLmJlZm9yZVNldERpbWVuc2lvbnMsIFt0aGlzXSk7XG5cdH0sXG5cdHNldERpbWVuc2lvbnM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0Ly8gU2V0IHRoZSB1bmNvbnN0cmFpbmVkIGRpbWVuc2lvbiBiZWZvcmUgbGFiZWwgcm90YXRpb25cblx0XHRpZiAobWUuaXNIb3Jpem9udGFsKCkpIHtcblx0XHRcdC8vIFJlc2V0IHBvc2l0aW9uIGJlZm9yZSBjYWxjdWxhdGluZyByb3RhdGlvblxuXHRcdFx0bWUud2lkdGggPSBtZS5tYXhXaWR0aDtcblx0XHRcdG1lLmxlZnQgPSAwO1xuXHRcdFx0bWUucmlnaHQgPSBtZS53aWR0aDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWUuaGVpZ2h0ID0gbWUubWF4SGVpZ2h0O1xuXG5cdFx0XHQvLyBSZXNldCBwb3NpdGlvbiBiZWZvcmUgY2FsY3VsYXRpbmcgcm90YXRpb25cblx0XHRcdG1lLnRvcCA9IDA7XG5cdFx0XHRtZS5ib3R0b20gPSBtZS5oZWlnaHQ7XG5cdFx0fVxuXG5cdFx0Ly8gUmVzZXQgcGFkZGluZ1xuXHRcdG1lLnBhZGRpbmdMZWZ0ID0gMDtcblx0XHRtZS5wYWRkaW5nVG9wID0gMDtcblx0XHRtZS5wYWRkaW5nUmlnaHQgPSAwO1xuXHRcdG1lLnBhZGRpbmdCb3R0b20gPSAwO1xuXHR9LFxuXHRhZnRlclNldERpbWVuc2lvbnM6IGZ1bmN0aW9uKCkge1xuXHRcdGhlbHBlcnMkMS5jYWxsYmFjayh0aGlzLm9wdGlvbnMuYWZ0ZXJTZXREaW1lbnNpb25zLCBbdGhpc10pO1xuXHR9LFxuXG5cdC8vIERhdGEgbGltaXRzXG5cdGJlZm9yZURhdGFMaW1pdHM6IGZ1bmN0aW9uKCkge1xuXHRcdGhlbHBlcnMkMS5jYWxsYmFjayh0aGlzLm9wdGlvbnMuYmVmb3JlRGF0YUxpbWl0cywgW3RoaXNdKTtcblx0fSxcblx0ZGV0ZXJtaW5lRGF0YUxpbWl0czogaGVscGVycyQxLm5vb3AsXG5cdGFmdGVyRGF0YUxpbWl0czogZnVuY3Rpb24oKSB7XG5cdFx0aGVscGVycyQxLmNhbGxiYWNrKHRoaXMub3B0aW9ucy5hZnRlckRhdGFMaW1pdHMsIFt0aGlzXSk7XG5cdH0sXG5cblx0Ly9cblx0YmVmb3JlQnVpbGRUaWNrczogZnVuY3Rpb24oKSB7XG5cdFx0aGVscGVycyQxLmNhbGxiYWNrKHRoaXMub3B0aW9ucy5iZWZvcmVCdWlsZFRpY2tzLCBbdGhpc10pO1xuXHR9LFxuXHRidWlsZFRpY2tzOiBoZWxwZXJzJDEubm9vcCxcblx0YWZ0ZXJCdWlsZFRpY2tzOiBmdW5jdGlvbih0aWNrcykge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0Ly8gdGlja3MgaXMgZW1wdHkgZm9yIG9sZCBheGlzIGltcGxlbWVudGF0aW9ucyBoZXJlXG5cdFx0aWYgKGhlbHBlcnMkMS5pc0FycmF5KHRpY2tzKSAmJiB0aWNrcy5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBoZWxwZXJzJDEuY2FsbGJhY2sobWUub3B0aW9ucy5hZnRlckJ1aWxkVGlja3MsIFttZSwgdGlja3NdKTtcblx0XHR9XG5cdFx0Ly8gU3VwcG9ydCBvbGQgaW1wbGVtZW50YXRpb25zICh0aGF0IG1vZGlmaWVkIGB0aGlzLnRpY2tzYCBkaXJlY3RseSBpbiBidWlsZFRpY2tzKVxuXHRcdG1lLnRpY2tzID0gaGVscGVycyQxLmNhbGxiYWNrKG1lLm9wdGlvbnMuYWZ0ZXJCdWlsZFRpY2tzLCBbbWUsIG1lLnRpY2tzXSkgfHwgbWUudGlja3M7XG5cdFx0cmV0dXJuIHRpY2tzO1xuXHR9LFxuXG5cdGJlZm9yZVRpY2tUb0xhYmVsQ29udmVyc2lvbjogZnVuY3Rpb24oKSB7XG5cdFx0aGVscGVycyQxLmNhbGxiYWNrKHRoaXMub3B0aW9ucy5iZWZvcmVUaWNrVG9MYWJlbENvbnZlcnNpb24sIFt0aGlzXSk7XG5cdH0sXG5cdGNvbnZlcnRUaWNrc1RvTGFiZWxzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdC8vIENvbnZlcnQgdGlja3MgdG8gc3RyaW5nc1xuXHRcdHZhciB0aWNrT3B0cyA9IG1lLm9wdGlvbnMudGlja3M7XG5cdFx0bWUudGlja3MgPSBtZS50aWNrcy5tYXAodGlja09wdHMudXNlckNhbGxiYWNrIHx8IHRpY2tPcHRzLmNhbGxiYWNrLCB0aGlzKTtcblx0fSxcblx0YWZ0ZXJUaWNrVG9MYWJlbENvbnZlcnNpb246IGZ1bmN0aW9uKCkge1xuXHRcdGhlbHBlcnMkMS5jYWxsYmFjayh0aGlzLm9wdGlvbnMuYWZ0ZXJUaWNrVG9MYWJlbENvbnZlcnNpb24sIFt0aGlzXSk7XG5cdH0sXG5cblx0Ly9cblxuXHRiZWZvcmVDYWxjdWxhdGVUaWNrUm90YXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdGhlbHBlcnMkMS5jYWxsYmFjayh0aGlzLm9wdGlvbnMuYmVmb3JlQ2FsY3VsYXRlVGlja1JvdGF0aW9uLCBbdGhpc10pO1xuXHR9LFxuXHRjYWxjdWxhdGVUaWNrUm90YXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGNvbnRleHQgPSBtZS5jdHg7XG5cdFx0dmFyIHRpY2tPcHRzID0gbWUub3B0aW9ucy50aWNrcztcblx0XHR2YXIgbGFiZWxzID0gbGFiZWxzRnJvbVRpY2tzKG1lLl90aWNrcyk7XG5cblx0XHQvLyBHZXQgdGhlIHdpZHRoIG9mIGVhY2ggZ3JpZCBieSBjYWxjdWxhdGluZyB0aGUgZGlmZmVyZW5jZVxuXHRcdC8vIGJldHdlZW4geCBvZmZzZXRzIGJldHdlZW4gMCBhbmQgMS5cblx0XHR2YXIgdGlja0ZvbnQgPSBoZWxwZXJzJDEub3B0aW9ucy5fcGFyc2VGb250KHRpY2tPcHRzKTtcblx0XHRjb250ZXh0LmZvbnQgPSB0aWNrRm9udC5zdHJpbmc7XG5cblx0XHR2YXIgbGFiZWxSb3RhdGlvbiA9IHRpY2tPcHRzLm1pblJvdGF0aW9uIHx8IDA7XG5cblx0XHRpZiAobGFiZWxzLmxlbmd0aCAmJiBtZS5vcHRpb25zLmRpc3BsYXkgJiYgbWUuaXNIb3Jpem9udGFsKCkpIHtcblx0XHRcdHZhciBvcmlnaW5hbExhYmVsV2lkdGggPSBoZWxwZXJzJDEubG9uZ2VzdFRleHQoY29udGV4dCwgdGlja0ZvbnQuc3RyaW5nLCBsYWJlbHMsIG1lLmxvbmdlc3RUZXh0Q2FjaGUpO1xuXHRcdFx0dmFyIGxhYmVsV2lkdGggPSBvcmlnaW5hbExhYmVsV2lkdGg7XG5cdFx0XHR2YXIgY29zUm90YXRpb24sIHNpblJvdGF0aW9uO1xuXG5cdFx0XHQvLyBBbGxvdyAzIHBpeGVscyB4MiBwYWRkaW5nIGVpdGhlciBzaWRlIGZvciBsYWJlbCByZWFkYWJpbGl0eVxuXHRcdFx0dmFyIHRpY2tXaWR0aCA9IG1lLmdldFBpeGVsRm9yVGljaygxKSAtIG1lLmdldFBpeGVsRm9yVGljaygwKSAtIDY7XG5cblx0XHRcdC8vIE1heCBsYWJlbCByb3RhdGlvbiBjYW4gYmUgc2V0IG9yIGRlZmF1bHQgdG8gOTAgLSBhbHNvIGFjdCBhcyBhIGxvb3AgY291bnRlclxuXHRcdFx0d2hpbGUgKGxhYmVsV2lkdGggPiB0aWNrV2lkdGggJiYgbGFiZWxSb3RhdGlvbiA8IHRpY2tPcHRzLm1heFJvdGF0aW9uKSB7XG5cdFx0XHRcdHZhciBhbmdsZVJhZGlhbnMgPSBoZWxwZXJzJDEudG9SYWRpYW5zKGxhYmVsUm90YXRpb24pO1xuXHRcdFx0XHRjb3NSb3RhdGlvbiA9IE1hdGguY29zKGFuZ2xlUmFkaWFucyk7XG5cdFx0XHRcdHNpblJvdGF0aW9uID0gTWF0aC5zaW4oYW5nbGVSYWRpYW5zKTtcblxuXHRcdFx0XHRpZiAoc2luUm90YXRpb24gKiBvcmlnaW5hbExhYmVsV2lkdGggPiBtZS5tYXhIZWlnaHQpIHtcblx0XHRcdFx0XHQvLyBnbyBiYWNrIG9uZSBzdGVwXG5cdFx0XHRcdFx0bGFiZWxSb3RhdGlvbi0tO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0bGFiZWxSb3RhdGlvbisrO1xuXHRcdFx0XHRsYWJlbFdpZHRoID0gY29zUm90YXRpb24gKiBvcmlnaW5hbExhYmVsV2lkdGg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bWUubGFiZWxSb3RhdGlvbiA9IGxhYmVsUm90YXRpb247XG5cdH0sXG5cdGFmdGVyQ2FsY3VsYXRlVGlja1JvdGF0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRoZWxwZXJzJDEuY2FsbGJhY2sodGhpcy5vcHRpb25zLmFmdGVyQ2FsY3VsYXRlVGlja1JvdGF0aW9uLCBbdGhpc10pO1xuXHR9LFxuXG5cdC8vXG5cblx0YmVmb3JlRml0OiBmdW5jdGlvbigpIHtcblx0XHRoZWxwZXJzJDEuY2FsbGJhY2sodGhpcy5vcHRpb25zLmJlZm9yZUZpdCwgW3RoaXNdKTtcblx0fSxcblx0Zml0OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdC8vIFJlc2V0XG5cdFx0dmFyIG1pblNpemUgPSBtZS5taW5TaXplID0ge1xuXHRcdFx0d2lkdGg6IDAsXG5cdFx0XHRoZWlnaHQ6IDBcblx0XHR9O1xuXG5cdFx0dmFyIGxhYmVscyA9IGxhYmVsc0Zyb21UaWNrcyhtZS5fdGlja3MpO1xuXG5cdFx0dmFyIG9wdHMgPSBtZS5vcHRpb25zO1xuXHRcdHZhciB0aWNrT3B0cyA9IG9wdHMudGlja3M7XG5cdFx0dmFyIHNjYWxlTGFiZWxPcHRzID0gb3B0cy5zY2FsZUxhYmVsO1xuXHRcdHZhciBncmlkTGluZU9wdHMgPSBvcHRzLmdyaWRMaW5lcztcblx0XHR2YXIgZGlzcGxheSA9IG1lLl9pc1Zpc2libGUoKTtcblx0XHR2YXIgcG9zaXRpb24gPSBvcHRzLnBvc2l0aW9uO1xuXHRcdHZhciBpc0hvcml6b250YWwgPSBtZS5pc0hvcml6b250YWwoKTtcblxuXHRcdHZhciBwYXJzZUZvbnQgPSBoZWxwZXJzJDEub3B0aW9ucy5fcGFyc2VGb250O1xuXHRcdHZhciB0aWNrRm9udCA9IHBhcnNlRm9udCh0aWNrT3B0cyk7XG5cdFx0dmFyIHRpY2tNYXJrTGVuZ3RoID0gb3B0cy5ncmlkTGluZXMudGlja01hcmtMZW5ndGg7XG5cblx0XHQvLyBXaWR0aFxuXHRcdGlmIChpc0hvcml6b250YWwpIHtcblx0XHRcdC8vIHN1YnRyYWN0IHRoZSBtYXJnaW5zIHRvIGxpbmUgdXAgd2l0aCB0aGUgY2hhcnRBcmVhIGlmIHdlIGFyZSBhIGZ1bGwgd2lkdGggc2NhbGVcblx0XHRcdG1pblNpemUud2lkdGggPSBtZS5pc0Z1bGxXaWR0aCgpID8gbWUubWF4V2lkdGggLSBtZS5tYXJnaW5zLmxlZnQgLSBtZS5tYXJnaW5zLnJpZ2h0IDogbWUubWF4V2lkdGg7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG1pblNpemUud2lkdGggPSBkaXNwbGF5ICYmIGdyaWRMaW5lT3B0cy5kcmF3VGlja3MgPyB0aWNrTWFya0xlbmd0aCA6IDA7XG5cdFx0fVxuXG5cdFx0Ly8gaGVpZ2h0XG5cdFx0aWYgKGlzSG9yaXpvbnRhbCkge1xuXHRcdFx0bWluU2l6ZS5oZWlnaHQgPSBkaXNwbGF5ICYmIGdyaWRMaW5lT3B0cy5kcmF3VGlja3MgPyB0aWNrTWFya0xlbmd0aCA6IDA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG1pblNpemUuaGVpZ2h0ID0gbWUubWF4SGVpZ2h0OyAvLyBmaWxsIGFsbCB0aGUgaGVpZ2h0XG5cdFx0fVxuXG5cdFx0Ly8gQXJlIHdlIHNob3dpbmcgYSB0aXRsZSBmb3IgdGhlIHNjYWxlP1xuXHRcdGlmIChzY2FsZUxhYmVsT3B0cy5kaXNwbGF5ICYmIGRpc3BsYXkpIHtcblx0XHRcdHZhciBzY2FsZUxhYmVsRm9udCA9IHBhcnNlRm9udChzY2FsZUxhYmVsT3B0cyk7XG5cdFx0XHR2YXIgc2NhbGVMYWJlbFBhZGRpbmcgPSBoZWxwZXJzJDEub3B0aW9ucy50b1BhZGRpbmcoc2NhbGVMYWJlbE9wdHMucGFkZGluZyk7XG5cdFx0XHR2YXIgZGVsdGFIZWlnaHQgPSBzY2FsZUxhYmVsRm9udC5saW5lSGVpZ2h0ICsgc2NhbGVMYWJlbFBhZGRpbmcuaGVpZ2h0O1xuXG5cdFx0XHRpZiAoaXNIb3Jpem9udGFsKSB7XG5cdFx0XHRcdG1pblNpemUuaGVpZ2h0ICs9IGRlbHRhSGVpZ2h0O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWluU2l6ZS53aWR0aCArPSBkZWx0YUhlaWdodDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBEb24ndCBib3RoZXIgZml0dGluZyB0aGUgdGlja3MgaWYgd2UgYXJlIG5vdCBzaG93aW5nIHRoZSBsYWJlbHNcblx0XHRpZiAodGlja09wdHMuZGlzcGxheSAmJiBkaXNwbGF5KSB7XG5cdFx0XHR2YXIgbGFyZ2VzdFRleHRXaWR0aCA9IGhlbHBlcnMkMS5sb25nZXN0VGV4dChtZS5jdHgsIHRpY2tGb250LnN0cmluZywgbGFiZWxzLCBtZS5sb25nZXN0VGV4dENhY2hlKTtcblx0XHRcdHZhciB0YWxsZXN0TGFiZWxIZWlnaHRJbkxpbmVzID0gaGVscGVycyQxLm51bWJlck9mTGFiZWxMaW5lcyhsYWJlbHMpO1xuXHRcdFx0dmFyIGxpbmVTcGFjZSA9IHRpY2tGb250LnNpemUgKiAwLjU7XG5cdFx0XHR2YXIgdGlja1BhZGRpbmcgPSBtZS5vcHRpb25zLnRpY2tzLnBhZGRpbmc7XG5cblx0XHRcdC8vIFN0b3JlIG1heCBudW1iZXIgb2YgbGluZXMgYW5kIHdpZGVzdCBsYWJlbCBmb3IgX2F1dG9Ta2lwXG5cdFx0XHRtZS5fbWF4TGFiZWxMaW5lcyA9IHRhbGxlc3RMYWJlbEhlaWdodEluTGluZXM7XG5cdFx0XHRtZS5sb25nZXN0TGFiZWxXaWR0aCA9IGxhcmdlc3RUZXh0V2lkdGg7XG5cblx0XHRcdGlmIChpc0hvcml6b250YWwpIHtcblx0XHRcdFx0dmFyIGFuZ2xlUmFkaWFucyA9IGhlbHBlcnMkMS50b1JhZGlhbnMobWUubGFiZWxSb3RhdGlvbik7XG5cdFx0XHRcdHZhciBjb3NSb3RhdGlvbiA9IE1hdGguY29zKGFuZ2xlUmFkaWFucyk7XG5cdFx0XHRcdHZhciBzaW5Sb3RhdGlvbiA9IE1hdGguc2luKGFuZ2xlUmFkaWFucyk7XG5cblx0XHRcdFx0Ly8gVE9ETyAtIGltcHJvdmUgdGhpcyBjYWxjdWxhdGlvblxuXHRcdFx0XHR2YXIgbGFiZWxIZWlnaHQgPSAoc2luUm90YXRpb24gKiBsYXJnZXN0VGV4dFdpZHRoKVxuXHRcdFx0XHRcdCsgKHRpY2tGb250LmxpbmVIZWlnaHQgKiB0YWxsZXN0TGFiZWxIZWlnaHRJbkxpbmVzKVxuXHRcdFx0XHRcdCsgbGluZVNwYWNlOyAvLyBwYWRkaW5nXG5cblx0XHRcdFx0bWluU2l6ZS5oZWlnaHQgPSBNYXRoLm1pbihtZS5tYXhIZWlnaHQsIG1pblNpemUuaGVpZ2h0ICsgbGFiZWxIZWlnaHQgKyB0aWNrUGFkZGluZyk7XG5cblx0XHRcdFx0bWUuY3R4LmZvbnQgPSB0aWNrRm9udC5zdHJpbmc7XG5cdFx0XHRcdHZhciBmaXJzdExhYmVsV2lkdGggPSBjb21wdXRlVGV4dFNpemUobWUuY3R4LCBsYWJlbHNbMF0sIHRpY2tGb250LnN0cmluZyk7XG5cdFx0XHRcdHZhciBsYXN0TGFiZWxXaWR0aCA9IGNvbXB1dGVUZXh0U2l6ZShtZS5jdHgsIGxhYmVsc1tsYWJlbHMubGVuZ3RoIC0gMV0sIHRpY2tGb250LnN0cmluZyk7XG5cdFx0XHRcdHZhciBvZmZzZXRMZWZ0ID0gbWUuZ2V0UGl4ZWxGb3JUaWNrKDApIC0gbWUubGVmdDtcblx0XHRcdFx0dmFyIG9mZnNldFJpZ2h0ID0gbWUucmlnaHQgLSBtZS5nZXRQaXhlbEZvclRpY2sobGFiZWxzLmxlbmd0aCAtIDEpO1xuXHRcdFx0XHR2YXIgcGFkZGluZ0xlZnQsIHBhZGRpbmdSaWdodDtcblxuXHRcdFx0XHQvLyBFbnN1cmUgdGhhdCBvdXIgdGlja3MgYXJlIGFsd2F5cyBpbnNpZGUgdGhlIGNhbnZhcy4gV2hlbiByb3RhdGVkLCB0aWNrcyBhcmUgcmlnaHQgYWxpZ25lZFxuXHRcdFx0XHQvLyB3aGljaCBtZWFucyB0aGF0IHRoZSByaWdodCBwYWRkaW5nIGlzIGRvbWluYXRlZCBieSB0aGUgZm9udCBoZWlnaHRcblx0XHRcdFx0aWYgKG1lLmxhYmVsUm90YXRpb24gIT09IDApIHtcblx0XHRcdFx0XHRwYWRkaW5nTGVmdCA9IHBvc2l0aW9uID09PSAnYm90dG9tJyA/IChjb3NSb3RhdGlvbiAqIGZpcnN0TGFiZWxXaWR0aCkgOiAoY29zUm90YXRpb24gKiBsaW5lU3BhY2UpO1xuXHRcdFx0XHRcdHBhZGRpbmdSaWdodCA9IHBvc2l0aW9uID09PSAnYm90dG9tJyA/IChjb3NSb3RhdGlvbiAqIGxpbmVTcGFjZSkgOiAoY29zUm90YXRpb24gKiBsYXN0TGFiZWxXaWR0aCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cGFkZGluZ0xlZnQgPSBmaXJzdExhYmVsV2lkdGggLyAyO1xuXHRcdFx0XHRcdHBhZGRpbmdSaWdodCA9IGxhc3RMYWJlbFdpZHRoIC8gMjtcblx0XHRcdFx0fVxuXHRcdFx0XHRtZS5wYWRkaW5nTGVmdCA9IE1hdGgubWF4KHBhZGRpbmdMZWZ0IC0gb2Zmc2V0TGVmdCwgMCkgKyAzOyAvLyBhZGQgMyBweCB0byBtb3ZlIGF3YXkgZnJvbSBjYW52YXMgZWRnZXNcblx0XHRcdFx0bWUucGFkZGluZ1JpZ2h0ID0gTWF0aC5tYXgocGFkZGluZ1JpZ2h0IC0gb2Zmc2V0UmlnaHQsIDApICsgMztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIEEgdmVydGljYWwgYXhpcyBpcyBtb3JlIGNvbnN0cmFpbmVkIGJ5IHRoZSB3aWR0aC4gTGFiZWxzIGFyZSB0aGVcblx0XHRcdFx0Ly8gZG9taW5hbnQgZmFjdG9yIGhlcmUsIHNvIGdldCB0aGF0IGxlbmd0aCBmaXJzdCBhbmQgYWNjb3VudCBmb3IgcGFkZGluZ1xuXHRcdFx0XHRpZiAodGlja09wdHMubWlycm9yKSB7XG5cdFx0XHRcdFx0bGFyZ2VzdFRleHRXaWR0aCA9IDA7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gdXNlIGxpbmVTcGFjZSBmb3IgY29uc2lzdGVuY3kgd2l0aCBob3Jpem9udGFsIGF4aXNcblx0XHRcdFx0XHQvLyB0aWNrUGFkZGluZyBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIGhvcml6b250YWxcblx0XHRcdFx0XHRsYXJnZXN0VGV4dFdpZHRoICs9IHRpY2tQYWRkaW5nICsgbGluZVNwYWNlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0bWluU2l6ZS53aWR0aCA9IE1hdGgubWluKG1lLm1heFdpZHRoLCBtaW5TaXplLndpZHRoICsgbGFyZ2VzdFRleHRXaWR0aCk7XG5cblx0XHRcdFx0bWUucGFkZGluZ1RvcCA9IHRpY2tGb250LnNpemUgLyAyO1xuXHRcdFx0XHRtZS5wYWRkaW5nQm90dG9tID0gdGlja0ZvbnQuc2l6ZSAvIDI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bWUuaGFuZGxlTWFyZ2lucygpO1xuXG5cdFx0bWUud2lkdGggPSBtaW5TaXplLndpZHRoO1xuXHRcdG1lLmhlaWdodCA9IG1pblNpemUuaGVpZ2h0O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBIYW5kbGUgbWFyZ2lucyBhbmQgcGFkZGluZyBpbnRlcmFjdGlvbnNcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGhhbmRsZU1hcmdpbnM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0aWYgKG1lLm1hcmdpbnMpIHtcblx0XHRcdG1lLnBhZGRpbmdMZWZ0ID0gTWF0aC5tYXgobWUucGFkZGluZ0xlZnQgLSBtZS5tYXJnaW5zLmxlZnQsIDApO1xuXHRcdFx0bWUucGFkZGluZ1RvcCA9IE1hdGgubWF4KG1lLnBhZGRpbmdUb3AgLSBtZS5tYXJnaW5zLnRvcCwgMCk7XG5cdFx0XHRtZS5wYWRkaW5nUmlnaHQgPSBNYXRoLm1heChtZS5wYWRkaW5nUmlnaHQgLSBtZS5tYXJnaW5zLnJpZ2h0LCAwKTtcblx0XHRcdG1lLnBhZGRpbmdCb3R0b20gPSBNYXRoLm1heChtZS5wYWRkaW5nQm90dG9tIC0gbWUubWFyZ2lucy5ib3R0b20sIDApO1xuXHRcdH1cblx0fSxcblxuXHRhZnRlckZpdDogZnVuY3Rpb24oKSB7XG5cdFx0aGVscGVycyQxLmNhbGxiYWNrKHRoaXMub3B0aW9ucy5hZnRlckZpdCwgW3RoaXNdKTtcblx0fSxcblxuXHQvLyBTaGFyZWQgTWV0aG9kc1xuXHRpc0hvcml6b250YWw6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLm9wdGlvbnMucG9zaXRpb24gPT09ICd0b3AnIHx8IHRoaXMub3B0aW9ucy5wb3NpdGlvbiA9PT0gJ2JvdHRvbSc7XG5cdH0sXG5cdGlzRnVsbFdpZHRoOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gKHRoaXMub3B0aW9ucy5mdWxsV2lkdGgpO1xuXHR9LFxuXG5cdC8vIEdldCB0aGUgY29ycmVjdCB2YWx1ZS4gTmFOIGJhZCBpbnB1dHMsIElmIHRoZSB2YWx1ZSB0eXBlIGlzIG9iamVjdCBnZXQgdGhlIHggb3IgeSBiYXNlZCBvbiB3aGV0aGVyIHdlIGFyZSBob3Jpem9udGFsIG9yIG5vdFxuXHRnZXRSaWdodFZhbHVlOiBmdW5jdGlvbihyYXdWYWx1ZSkge1xuXHRcdC8vIE51bGwgYW5kIHVuZGVmaW5lZCB2YWx1ZXMgZmlyc3Rcblx0XHRpZiAoaGVscGVycyQxLmlzTnVsbE9yVW5kZWYocmF3VmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gTmFOO1xuXHRcdH1cblx0XHQvLyBpc05hTihvYmplY3QpIHJldHVybnMgdHJ1ZSwgc28gbWFrZSBzdXJlIE5hTiBpcyBjaGVja2luZyBmb3IgYSBudW1iZXI7IERpc2NhcmQgSW5maW5pdGUgdmFsdWVzXG5cdFx0aWYgKCh0eXBlb2YgcmF3VmFsdWUgPT09ICdudW1iZXInIHx8IHJhd1ZhbHVlIGluc3RhbmNlb2YgTnVtYmVyKSAmJiAhaXNGaW5pdGUocmF3VmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gTmFOO1xuXHRcdH1cblx0XHQvLyBJZiBpdCBpcyBpbiBmYWN0IGFuIG9iamVjdCwgZGl2ZSBpbiBvbmUgbW9yZSBsZXZlbFxuXHRcdGlmIChyYXdWYWx1ZSkge1xuXHRcdFx0aWYgKHRoaXMuaXNIb3Jpem9udGFsKCkpIHtcblx0XHRcdFx0aWYgKHJhd1ZhbHVlLnggIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLmdldFJpZ2h0VmFsdWUocmF3VmFsdWUueCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAocmF3VmFsdWUueSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmdldFJpZ2h0VmFsdWUocmF3VmFsdWUueSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gVmFsdWUgaXMgZ29vZCwgcmV0dXJuIGl0XG5cdFx0cmV0dXJuIHJhd1ZhbHVlO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBVc2VkIHRvIGdldCB0aGUgdmFsdWUgdG8gZGlzcGxheSBpbiB0aGUgdG9vbHRpcCBmb3IgdGhlIGRhdGEgYXQgdGhlIGdpdmVuIGluZGV4XG5cdCAqIEBwYXJhbSBpbmRleFxuXHQgKiBAcGFyYW0gZGF0YXNldEluZGV4XG5cdCAqL1xuXHRnZXRMYWJlbEZvckluZGV4OiBoZWxwZXJzJDEubm9vcCxcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgbG9jYXRpb24gb2YgdGhlIGdpdmVuIGRhdGEgcG9pbnQuIFZhbHVlIGNhbiBlaXRoZXIgYmUgYW4gaW5kZXggb3IgYSBudW1lcmljYWwgdmFsdWVcblx0ICogVGhlIGNvb3JkaW5hdGUgKDAsIDApIGlzIGF0IHRoZSB1cHBlci1sZWZ0IGNvcm5lciBvZiB0aGUgY2FudmFzXG5cdCAqIEBwYXJhbSB2YWx1ZVxuXHQgKiBAcGFyYW0gaW5kZXhcblx0ICogQHBhcmFtIGRhdGFzZXRJbmRleFxuXHQgKi9cblx0Z2V0UGl4ZWxGb3JWYWx1ZTogaGVscGVycyQxLm5vb3AsXG5cblx0LyoqXG5cdCAqIFVzZWQgdG8gZ2V0IHRoZSBkYXRhIHZhbHVlIGZyb20gYSBnaXZlbiBwaXhlbC4gVGhpcyBpcyB0aGUgaW52ZXJzZSBvZiBnZXRQaXhlbEZvclZhbHVlXG5cdCAqIFRoZSBjb29yZGluYXRlICgwLCAwKSBpcyBhdCB0aGUgdXBwZXItbGVmdCBjb3JuZXIgb2YgdGhlIGNhbnZhc1xuXHQgKiBAcGFyYW0gcGl4ZWxcblx0ICovXG5cdGdldFZhbHVlRm9yUGl4ZWw6IGhlbHBlcnMkMS5ub29wLFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBsb2NhdGlvbiBvZiB0aGUgdGljayBhdCB0aGUgZ2l2ZW4gaW5kZXhcblx0ICogVGhlIGNvb3JkaW5hdGUgKDAsIDApIGlzIGF0IHRoZSB1cHBlci1sZWZ0IGNvcm5lciBvZiB0aGUgY2FudmFzXG5cdCAqL1xuXHRnZXRQaXhlbEZvclRpY2s6IGZ1bmN0aW9uKGluZGV4KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgb2Zmc2V0ID0gbWUub3B0aW9ucy5vZmZzZXQ7XG5cdFx0aWYgKG1lLmlzSG9yaXpvbnRhbCgpKSB7XG5cdFx0XHR2YXIgaW5uZXJXaWR0aCA9IG1lLndpZHRoIC0gKG1lLnBhZGRpbmdMZWZ0ICsgbWUucGFkZGluZ1JpZ2h0KTtcblx0XHRcdHZhciB0aWNrV2lkdGggPSBpbm5lcldpZHRoIC8gTWF0aC5tYXgoKG1lLl90aWNrcy5sZW5ndGggLSAob2Zmc2V0ID8gMCA6IDEpKSwgMSk7XG5cdFx0XHR2YXIgcGl4ZWwgPSAodGlja1dpZHRoICogaW5kZXgpICsgbWUucGFkZGluZ0xlZnQ7XG5cblx0XHRcdGlmIChvZmZzZXQpIHtcblx0XHRcdFx0cGl4ZWwgKz0gdGlja1dpZHRoIC8gMjtcblx0XHRcdH1cblxuXHRcdFx0dmFyIGZpbmFsVmFsID0gbWUubGVmdCArIHBpeGVsO1xuXHRcdFx0ZmluYWxWYWwgKz0gbWUuaXNGdWxsV2lkdGgoKSA/IG1lLm1hcmdpbnMubGVmdCA6IDA7XG5cdFx0XHRyZXR1cm4gZmluYWxWYWw7XG5cdFx0fVxuXHRcdHZhciBpbm5lckhlaWdodCA9IG1lLmhlaWdodCAtIChtZS5wYWRkaW5nVG9wICsgbWUucGFkZGluZ0JvdHRvbSk7XG5cdFx0cmV0dXJuIG1lLnRvcCArIChpbmRleCAqIChpbm5lckhlaWdodCAvIChtZS5fdGlja3MubGVuZ3RoIC0gMSkpKTtcblx0fSxcblxuXHQvKipcblx0ICogVXRpbGl0eSBmb3IgZ2V0dGluZyB0aGUgcGl4ZWwgbG9jYXRpb24gb2YgYSBwZXJjZW50YWdlIG9mIHNjYWxlXG5cdCAqIFRoZSBjb29yZGluYXRlICgwLCAwKSBpcyBhdCB0aGUgdXBwZXItbGVmdCBjb3JuZXIgb2YgdGhlIGNhbnZhc1xuXHQgKi9cblx0Z2V0UGl4ZWxGb3JEZWNpbWFsOiBmdW5jdGlvbihkZWNpbWFsKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHRpZiAobWUuaXNIb3Jpem9udGFsKCkpIHtcblx0XHRcdHZhciBpbm5lcldpZHRoID0gbWUud2lkdGggLSAobWUucGFkZGluZ0xlZnQgKyBtZS5wYWRkaW5nUmlnaHQpO1xuXHRcdFx0dmFyIHZhbHVlT2Zmc2V0ID0gKGlubmVyV2lkdGggKiBkZWNpbWFsKSArIG1lLnBhZGRpbmdMZWZ0O1xuXG5cdFx0XHR2YXIgZmluYWxWYWwgPSBtZS5sZWZ0ICsgdmFsdWVPZmZzZXQ7XG5cdFx0XHRmaW5hbFZhbCArPSBtZS5pc0Z1bGxXaWR0aCgpID8gbWUubWFyZ2lucy5sZWZ0IDogMDtcblx0XHRcdHJldHVybiBmaW5hbFZhbDtcblx0XHR9XG5cdFx0cmV0dXJuIG1lLnRvcCArIChkZWNpbWFsICogbWUuaGVpZ2h0KTtcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgcGl4ZWwgZm9yIHRoZSBtaW5pbXVtIGNoYXJ0IHZhbHVlXG5cdCAqIFRoZSBjb29yZGluYXRlICgwLCAwKSBpcyBhdCB0aGUgdXBwZXItbGVmdCBjb3JuZXIgb2YgdGhlIGNhbnZhc1xuXHQgKi9cblx0Z2V0QmFzZVBpeGVsOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRQaXhlbEZvclZhbHVlKHRoaXMuZ2V0QmFzZVZhbHVlKCkpO1xuXHR9LFxuXG5cdGdldEJhc2VWYWx1ZTogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgbWluID0gbWUubWluO1xuXHRcdHZhciBtYXggPSBtZS5tYXg7XG5cblx0XHRyZXR1cm4gbWUuYmVnaW5BdFplcm8gPyAwIDpcblx0XHRcdG1pbiA8IDAgJiYgbWF4IDwgMCA/IG1heCA6XG5cdFx0XHRtaW4gPiAwICYmIG1heCA+IDAgPyBtaW4gOlxuXHRcdFx0MDtcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyBhIHN1YnNldCBvZiB0aWNrcyB0byBiZSBwbG90dGVkIHRvIGF2b2lkIG92ZXJsYXBwaW5nIGxhYmVscy5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9hdXRvU2tpcDogZnVuY3Rpb24odGlja3MpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBpc0hvcml6b250YWwgPSBtZS5pc0hvcml6b250YWwoKTtcblx0XHR2YXIgb3B0aW9uVGlja3MgPSBtZS5vcHRpb25zLnRpY2tzLm1pbm9yO1xuXHRcdHZhciB0aWNrQ291bnQgPSB0aWNrcy5sZW5ndGg7XG5cdFx0dmFyIHNraXBSYXRpbyA9IGZhbHNlO1xuXHRcdHZhciBtYXhUaWNrcyA9IG9wdGlvblRpY2tzLm1heFRpY2tzTGltaXQ7XG5cblx0XHQvLyBUb3RhbCBzcGFjZSBuZWVkZWQgdG8gZGlzcGxheSBhbGwgdGlja3MuIEZpcnN0IGFuZCBsYXN0IHRpY2tzIGFyZVxuXHRcdC8vIGRyYXduIGFzIHRoZWlyIGNlbnRlciBhdCBlbmQgb2YgYXhpcywgc28gdGlja0NvdW50LTFcblx0XHR2YXIgdGlja3NMZW5ndGggPSBtZS5fdGlja1NpemUoKSAqICh0aWNrQ291bnQgLSAxKTtcblxuXHRcdC8vIEF4aXMgbGVuZ3RoXG5cdFx0dmFyIGF4aXNMZW5ndGggPSBpc0hvcml6b250YWxcblx0XHRcdD8gbWUud2lkdGggLSAobWUucGFkZGluZ0xlZnQgKyBtZS5wYWRkaW5nUmlnaHQpXG5cdFx0XHQ6IG1lLmhlaWdodCAtIChtZS5wYWRkaW5nVG9wICsgbWUuUGFkZGluZ0JvdHRvbSk7XG5cblx0XHR2YXIgcmVzdWx0ID0gW107XG5cdFx0dmFyIGksIHRpY2s7XG5cblx0XHRpZiAodGlja3NMZW5ndGggPiBheGlzTGVuZ3RoKSB7XG5cdFx0XHRza2lwUmF0aW8gPSAxICsgTWF0aC5mbG9vcih0aWNrc0xlbmd0aCAvIGF4aXNMZW5ndGgpO1xuXHRcdH1cblxuXHRcdC8vIGlmIHRoZXkgZGVmaW5lZCBhIG1heCBudW1iZXIgb2Ygb3B0aW9uVGlja3MsXG5cdFx0Ly8gaW5jcmVhc2Ugc2tpcFJhdGlvIHVudGlsIHRoYXQgbnVtYmVyIGlzIG1ldFxuXHRcdGlmICh0aWNrQ291bnQgPiBtYXhUaWNrcykge1xuXHRcdFx0c2tpcFJhdGlvID0gTWF0aC5tYXgoc2tpcFJhdGlvLCAxICsgTWF0aC5mbG9vcih0aWNrQ291bnQgLyBtYXhUaWNrcykpO1xuXHRcdH1cblxuXHRcdGZvciAoaSA9IDA7IGkgPCB0aWNrQ291bnQ7IGkrKykge1xuXHRcdFx0dGljayA9IHRpY2tzW2ldO1xuXG5cdFx0XHRpZiAoc2tpcFJhdGlvID4gMSAmJiBpICUgc2tpcFJhdGlvID4gMCkge1xuXHRcdFx0XHQvLyBsZWF2ZSB0aWNrIGluIHBsYWNlIGJ1dCBtYWtlIHN1cmUgaXQncyBub3QgZGlzcGxheWVkICgjNDYzNSlcblx0XHRcdFx0ZGVsZXRlIHRpY2subGFiZWw7XG5cdFx0XHR9XG5cdFx0XHRyZXN1bHQucHVzaCh0aWNrKTtcblx0XHR9XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF90aWNrU2l6ZTogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgaXNIb3Jpem9udGFsID0gbWUuaXNIb3Jpem9udGFsKCk7XG5cdFx0dmFyIG9wdGlvblRpY2tzID0gbWUub3B0aW9ucy50aWNrcy5taW5vcjtcblxuXHRcdC8vIENhbGN1bGF0ZSBzcGFjZSBuZWVkZWQgYnkgbGFiZWwgaW4gYXhpcyBkaXJlY3Rpb24uXG5cdFx0dmFyIHJvdCA9IGhlbHBlcnMkMS50b1JhZGlhbnMobWUubGFiZWxSb3RhdGlvbik7XG5cdFx0dmFyIGNvcyA9IE1hdGguYWJzKE1hdGguY29zKHJvdCkpO1xuXHRcdHZhciBzaW4gPSBNYXRoLmFicyhNYXRoLnNpbihyb3QpKTtcblxuXHRcdHZhciBwYWRkaW5nID0gb3B0aW9uVGlja3MuYXV0b1NraXBQYWRkaW5nIHx8IDA7XG5cdFx0dmFyIHcgPSAobWUubG9uZ2VzdExhYmVsV2lkdGggKyBwYWRkaW5nKSB8fCAwO1xuXG5cdFx0dmFyIHRpY2tGb250ID0gaGVscGVycyQxLm9wdGlvbnMuX3BhcnNlRm9udChvcHRpb25UaWNrcyk7XG5cdFx0dmFyIGggPSAobWUuX21heExhYmVsTGluZXMgKiB0aWNrRm9udC5saW5lSGVpZ2h0ICsgcGFkZGluZykgfHwgMDtcblxuXHRcdC8vIENhbGN1bGF0ZSBzcGFjZSBuZWVkZWQgZm9yIDEgdGljayBpbiBheGlzIGRpcmVjdGlvbi5cblx0XHRyZXR1cm4gaXNIb3Jpem9udGFsXG5cdFx0XHQ/IGggKiBjb3MgPiB3ICogc2luID8gdyAvIGNvcyA6IGggLyBzaW5cblx0XHRcdDogaCAqIHNpbiA8IHcgKiBjb3MgPyBoIC8gY29zIDogdyAvIHNpbjtcblx0fSxcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9pc1Zpc2libGU6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGNoYXJ0ID0gbWUuY2hhcnQ7XG5cdFx0dmFyIGRpc3BsYXkgPSBtZS5vcHRpb25zLmRpc3BsYXk7XG5cdFx0dmFyIGksIGlsZW4sIG1ldGE7XG5cblx0XHRpZiAoZGlzcGxheSAhPT0gJ2F1dG8nKSB7XG5cdFx0XHRyZXR1cm4gISFkaXNwbGF5O1xuXHRcdH1cblxuXHRcdC8vIFdoZW4gJ2F1dG8nLCB0aGUgc2NhbGUgaXMgdmlzaWJsZSBpZiBhdCBsZWFzdCBvbmUgYXNzb2NpYXRlZCBkYXRhc2V0IGlzIHZpc2libGUuXG5cdFx0Zm9yIChpID0gMCwgaWxlbiA9IGNoYXJ0LmRhdGEuZGF0YXNldHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0XHRpZiAoY2hhcnQuaXNEYXRhc2V0VmlzaWJsZShpKSkge1xuXHRcdFx0XHRtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoaSk7XG5cdFx0XHRcdGlmIChtZXRhLnhBeGlzSUQgPT09IG1lLmlkIHx8IG1ldGEueUF4aXNJRCA9PT0gbWUuaWQpIHtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fSxcblxuXHQvKipcblx0ICogQWN0dWFsbHkgZHJhdyB0aGUgc2NhbGUgb24gdGhlIGNhbnZhc1xuXHQgKiBAcGFyYW0ge29iamVjdH0gY2hhcnRBcmVhIC0gdGhlIGFyZWEgb2YgdGhlIGNoYXJ0IHRvIGRyYXcgZnVsbCBncmlkIGxpbmVzIG9uXG5cdCAqL1xuXHRkcmF3OiBmdW5jdGlvbihjaGFydEFyZWEpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvcHRpb25zID0gbWUub3B0aW9ucztcblxuXHRcdGlmICghbWUuX2lzVmlzaWJsZSgpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dmFyIGNoYXJ0ID0gbWUuY2hhcnQ7XG5cdFx0dmFyIGNvbnRleHQgPSBtZS5jdHg7XG5cdFx0dmFyIGdsb2JhbERlZmF1bHRzID0gY29yZV9kZWZhdWx0cy5nbG9iYWw7XG5cdFx0dmFyIGRlZmF1bHRGb250Q29sb3IgPSBnbG9iYWxEZWZhdWx0cy5kZWZhdWx0Rm9udENvbG9yO1xuXHRcdHZhciBvcHRpb25UaWNrcyA9IG9wdGlvbnMudGlja3MubWlub3I7XG5cdFx0dmFyIG9wdGlvbk1ham9yVGlja3MgPSBvcHRpb25zLnRpY2tzLm1ham9yIHx8IG9wdGlvblRpY2tzO1xuXHRcdHZhciBncmlkTGluZXMgPSBvcHRpb25zLmdyaWRMaW5lcztcblx0XHR2YXIgc2NhbGVMYWJlbCA9IG9wdGlvbnMuc2NhbGVMYWJlbDtcblx0XHR2YXIgcG9zaXRpb24gPSBvcHRpb25zLnBvc2l0aW9uO1xuXG5cdFx0dmFyIGlzUm90YXRlZCA9IG1lLmxhYmVsUm90YXRpb24gIT09IDA7XG5cdFx0dmFyIGlzTWlycm9yZWQgPSBvcHRpb25UaWNrcy5taXJyb3I7XG5cdFx0dmFyIGlzSG9yaXpvbnRhbCA9IG1lLmlzSG9yaXpvbnRhbCgpO1xuXG5cdFx0dmFyIHBhcnNlRm9udCA9IGhlbHBlcnMkMS5vcHRpb25zLl9wYXJzZUZvbnQ7XG5cdFx0dmFyIHRpY2tzID0gb3B0aW9uVGlja3MuZGlzcGxheSAmJiBvcHRpb25UaWNrcy5hdXRvU2tpcCA/IG1lLl9hdXRvU2tpcChtZS5nZXRUaWNrcygpKSA6IG1lLmdldFRpY2tzKCk7XG5cdFx0dmFyIHRpY2tGb250Q29sb3IgPSB2YWx1ZU9yRGVmYXVsdCQ5KG9wdGlvblRpY2tzLmZvbnRDb2xvciwgZGVmYXVsdEZvbnRDb2xvcik7XG5cdFx0dmFyIHRpY2tGb250ID0gcGFyc2VGb250KG9wdGlvblRpY2tzKTtcblx0XHR2YXIgbGluZUhlaWdodCA9IHRpY2tGb250LmxpbmVIZWlnaHQ7XG5cdFx0dmFyIG1ham9yVGlja0ZvbnRDb2xvciA9IHZhbHVlT3JEZWZhdWx0JDkob3B0aW9uTWFqb3JUaWNrcy5mb250Q29sb3IsIGRlZmF1bHRGb250Q29sb3IpO1xuXHRcdHZhciBtYWpvclRpY2tGb250ID0gcGFyc2VGb250KG9wdGlvbk1ham9yVGlja3MpO1xuXHRcdHZhciB0aWNrUGFkZGluZyA9IG9wdGlvblRpY2tzLnBhZGRpbmc7XG5cdFx0dmFyIGxhYmVsT2Zmc2V0ID0gb3B0aW9uVGlja3MubGFiZWxPZmZzZXQ7XG5cblx0XHR2YXIgdGwgPSBncmlkTGluZXMuZHJhd1RpY2tzID8gZ3JpZExpbmVzLnRpY2tNYXJrTGVuZ3RoIDogMDtcblxuXHRcdHZhciBzY2FsZUxhYmVsRm9udENvbG9yID0gdmFsdWVPckRlZmF1bHQkOShzY2FsZUxhYmVsLmZvbnRDb2xvciwgZGVmYXVsdEZvbnRDb2xvcik7XG5cdFx0dmFyIHNjYWxlTGFiZWxGb250ID0gcGFyc2VGb250KHNjYWxlTGFiZWwpO1xuXHRcdHZhciBzY2FsZUxhYmVsUGFkZGluZyA9IGhlbHBlcnMkMS5vcHRpb25zLnRvUGFkZGluZyhzY2FsZUxhYmVsLnBhZGRpbmcpO1xuXHRcdHZhciBsYWJlbFJvdGF0aW9uUmFkaWFucyA9IGhlbHBlcnMkMS50b1JhZGlhbnMobWUubGFiZWxSb3RhdGlvbik7XG5cblx0XHR2YXIgaXRlbXNUb0RyYXcgPSBbXTtcblxuXHRcdHZhciBheGlzV2lkdGggPSBncmlkTGluZXMuZHJhd0JvcmRlciA/IHZhbHVlQXRJbmRleE9yRGVmYXVsdChncmlkTGluZXMubGluZVdpZHRoLCAwLCAwKSA6IDA7XG5cdFx0dmFyIGFsaWduUGl4ZWwgPSBoZWxwZXJzJDEuX2FsaWduUGl4ZWw7XG5cdFx0dmFyIGJvcmRlclZhbHVlLCB0aWNrU3RhcnQsIHRpY2tFbmQ7XG5cblx0XHRpZiAocG9zaXRpb24gPT09ICd0b3AnKSB7XG5cdFx0XHRib3JkZXJWYWx1ZSA9IGFsaWduUGl4ZWwoY2hhcnQsIG1lLmJvdHRvbSwgYXhpc1dpZHRoKTtcblx0XHRcdHRpY2tTdGFydCA9IG1lLmJvdHRvbSAtIHRsO1xuXHRcdFx0dGlja0VuZCA9IGJvcmRlclZhbHVlIC0gYXhpc1dpZHRoIC8gMjtcblx0XHR9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnYm90dG9tJykge1xuXHRcdFx0Ym9yZGVyVmFsdWUgPSBhbGlnblBpeGVsKGNoYXJ0LCBtZS50b3AsIGF4aXNXaWR0aCk7XG5cdFx0XHR0aWNrU3RhcnQgPSBib3JkZXJWYWx1ZSArIGF4aXNXaWR0aCAvIDI7XG5cdFx0XHR0aWNrRW5kID0gbWUudG9wICsgdGw7XG5cdFx0fSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG5cdFx0XHRib3JkZXJWYWx1ZSA9IGFsaWduUGl4ZWwoY2hhcnQsIG1lLnJpZ2h0LCBheGlzV2lkdGgpO1xuXHRcdFx0dGlja1N0YXJ0ID0gbWUucmlnaHQgLSB0bDtcblx0XHRcdHRpY2tFbmQgPSBib3JkZXJWYWx1ZSAtIGF4aXNXaWR0aCAvIDI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGJvcmRlclZhbHVlID0gYWxpZ25QaXhlbChjaGFydCwgbWUubGVmdCwgYXhpc1dpZHRoKTtcblx0XHRcdHRpY2tTdGFydCA9IGJvcmRlclZhbHVlICsgYXhpc1dpZHRoIC8gMjtcblx0XHRcdHRpY2tFbmQgPSBtZS5sZWZ0ICsgdGw7XG5cdFx0fVxuXG5cdFx0dmFyIGVwc2lsb24gPSAwLjAwMDAwMDE7IC8vIDAuMDAwMDAwMSBpcyBtYXJnaW4gaW4gcGl4ZWxzIGZvciBBY2N1bXVsYXRlZCBlcnJvci5cblxuXHRcdGhlbHBlcnMkMS5lYWNoKHRpY2tzLCBmdW5jdGlvbih0aWNrLCBpbmRleCkge1xuXHRcdFx0Ly8gYXV0b3NraXBwZXIgc2tpcHBlZCB0aGlzIHRpY2sgKCM0NjM1KVxuXHRcdFx0aWYgKGhlbHBlcnMkMS5pc051bGxPclVuZGVmKHRpY2subGFiZWwpKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0dmFyIGxhYmVsID0gdGljay5sYWJlbDtcblx0XHRcdHZhciBsaW5lV2lkdGgsIGxpbmVDb2xvciwgYm9yZGVyRGFzaCwgYm9yZGVyRGFzaE9mZnNldDtcblx0XHRcdGlmIChpbmRleCA9PT0gbWUuemVyb0xpbmVJbmRleCAmJiBvcHRpb25zLm9mZnNldCA9PT0gZ3JpZExpbmVzLm9mZnNldEdyaWRMaW5lcykge1xuXHRcdFx0XHQvLyBEcmF3IHRoZSBmaXJzdCBpbmRleCBzcGVjaWFsbHlcblx0XHRcdFx0bGluZVdpZHRoID0gZ3JpZExpbmVzLnplcm9MaW5lV2lkdGg7XG5cdFx0XHRcdGxpbmVDb2xvciA9IGdyaWRMaW5lcy56ZXJvTGluZUNvbG9yO1xuXHRcdFx0XHRib3JkZXJEYXNoID0gZ3JpZExpbmVzLnplcm9MaW5lQm9yZGVyRGFzaCB8fCBbXTtcblx0XHRcdFx0Ym9yZGVyRGFzaE9mZnNldCA9IGdyaWRMaW5lcy56ZXJvTGluZUJvcmRlckRhc2hPZmZzZXQgfHwgMC4wO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bGluZVdpZHRoID0gdmFsdWVBdEluZGV4T3JEZWZhdWx0KGdyaWRMaW5lcy5saW5lV2lkdGgsIGluZGV4KTtcblx0XHRcdFx0bGluZUNvbG9yID0gdmFsdWVBdEluZGV4T3JEZWZhdWx0KGdyaWRMaW5lcy5jb2xvciwgaW5kZXgpO1xuXHRcdFx0XHRib3JkZXJEYXNoID0gZ3JpZExpbmVzLmJvcmRlckRhc2ggfHwgW107XG5cdFx0XHRcdGJvcmRlckRhc2hPZmZzZXQgPSBncmlkTGluZXMuYm9yZGVyRGFzaE9mZnNldCB8fCAwLjA7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbW1vbiBwcm9wZXJ0aWVzXG5cdFx0XHR2YXIgdHgxLCB0eTEsIHR4MiwgdHkyLCB4MSwgeTEsIHgyLCB5MiwgbGFiZWxYLCBsYWJlbFksIHRleHRPZmZzZXQsIHRleHRBbGlnbjtcblx0XHRcdHZhciBsYWJlbENvdW50ID0gaGVscGVycyQxLmlzQXJyYXkobGFiZWwpID8gbGFiZWwubGVuZ3RoIDogMTtcblx0XHRcdHZhciBsaW5lVmFsdWUgPSBnZXRQaXhlbEZvckdyaWRMaW5lKG1lLCBpbmRleCwgZ3JpZExpbmVzLm9mZnNldEdyaWRMaW5lcyk7XG5cblx0XHRcdGlmIChpc0hvcml6b250YWwpIHtcblx0XHRcdFx0dmFyIGxhYmVsWU9mZnNldCA9IHRsICsgdGlja1BhZGRpbmc7XG5cblx0XHRcdFx0aWYgKGxpbmVWYWx1ZSA8IG1lLmxlZnQgLSBlcHNpbG9uKSB7XG5cdFx0XHRcdFx0bGluZUNvbG9yID0gJ3JnYmEoMCwwLDAsMCknO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHgxID0gdHgyID0geDEgPSB4MiA9IGFsaWduUGl4ZWwoY2hhcnQsIGxpbmVWYWx1ZSwgbGluZVdpZHRoKTtcblx0XHRcdFx0dHkxID0gdGlja1N0YXJ0O1xuXHRcdFx0XHR0eTIgPSB0aWNrRW5kO1xuXHRcdFx0XHRsYWJlbFggPSBtZS5nZXRQaXhlbEZvclRpY2soaW5kZXgpICsgbGFiZWxPZmZzZXQ7IC8vIHggdmFsdWVzIGZvciBvcHRpb25UaWNrcyAobmVlZCB0byBjb25zaWRlciBvZmZzZXRMYWJlbCBvcHRpb24pXG5cblx0XHRcdFx0aWYgKHBvc2l0aW9uID09PSAndG9wJykge1xuXHRcdFx0XHRcdHkxID0gYWxpZ25QaXhlbChjaGFydCwgY2hhcnRBcmVhLnRvcCwgYXhpc1dpZHRoKSArIGF4aXNXaWR0aCAvIDI7XG5cdFx0XHRcdFx0eTIgPSBjaGFydEFyZWEuYm90dG9tO1xuXHRcdFx0XHRcdHRleHRPZmZzZXQgPSAoKCFpc1JvdGF0ZWQgPyAwLjUgOiAxKSAtIGxhYmVsQ291bnQpICogbGluZUhlaWdodDtcblx0XHRcdFx0XHR0ZXh0QWxpZ24gPSAhaXNSb3RhdGVkID8gJ2NlbnRlcicgOiAnbGVmdCc7XG5cdFx0XHRcdFx0bGFiZWxZID0gbWUuYm90dG9tIC0gbGFiZWxZT2Zmc2V0O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHkxID0gY2hhcnRBcmVhLnRvcDtcblx0XHRcdFx0XHR5MiA9IGFsaWduUGl4ZWwoY2hhcnQsIGNoYXJ0QXJlYS5ib3R0b20sIGF4aXNXaWR0aCkgLSBheGlzV2lkdGggLyAyO1xuXHRcdFx0XHRcdHRleHRPZmZzZXQgPSAoIWlzUm90YXRlZCA/IDAuNSA6IDApICogbGluZUhlaWdodDtcblx0XHRcdFx0XHR0ZXh0QWxpZ24gPSAhaXNSb3RhdGVkID8gJ2NlbnRlcicgOiAncmlnaHQnO1xuXHRcdFx0XHRcdGxhYmVsWSA9IG1lLnRvcCArIGxhYmVsWU9mZnNldDtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFyIGxhYmVsWE9mZnNldCA9IChpc01pcnJvcmVkID8gMCA6IHRsKSArIHRpY2tQYWRkaW5nO1xuXG5cdFx0XHRcdGlmIChsaW5lVmFsdWUgPCBtZS50b3AgLSBlcHNpbG9uKSB7XG5cdFx0XHRcdFx0bGluZUNvbG9yID0gJ3JnYmEoMCwwLDAsMCknO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHgxID0gdGlja1N0YXJ0O1xuXHRcdFx0XHR0eDIgPSB0aWNrRW5kO1xuXHRcdFx0XHR0eTEgPSB0eTIgPSB5MSA9IHkyID0gYWxpZ25QaXhlbChjaGFydCwgbGluZVZhbHVlLCBsaW5lV2lkdGgpO1xuXHRcdFx0XHRsYWJlbFkgPSBtZS5nZXRQaXhlbEZvclRpY2soaW5kZXgpICsgbGFiZWxPZmZzZXQ7XG5cdFx0XHRcdHRleHRPZmZzZXQgPSAoMSAtIGxhYmVsQ291bnQpICogbGluZUhlaWdodCAvIDI7XG5cblx0XHRcdFx0aWYgKHBvc2l0aW9uID09PSAnbGVmdCcpIHtcblx0XHRcdFx0XHR4MSA9IGFsaWduUGl4ZWwoY2hhcnQsIGNoYXJ0QXJlYS5sZWZ0LCBheGlzV2lkdGgpICsgYXhpc1dpZHRoIC8gMjtcblx0XHRcdFx0XHR4MiA9IGNoYXJ0QXJlYS5yaWdodDtcblx0XHRcdFx0XHR0ZXh0QWxpZ24gPSBpc01pcnJvcmVkID8gJ2xlZnQnIDogJ3JpZ2h0Jztcblx0XHRcdFx0XHRsYWJlbFggPSBtZS5yaWdodCAtIGxhYmVsWE9mZnNldDtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR4MSA9IGNoYXJ0QXJlYS5sZWZ0O1xuXHRcdFx0XHRcdHgyID0gYWxpZ25QaXhlbChjaGFydCwgY2hhcnRBcmVhLnJpZ2h0LCBheGlzV2lkdGgpIC0gYXhpc1dpZHRoIC8gMjtcblx0XHRcdFx0XHR0ZXh0QWxpZ24gPSBpc01pcnJvcmVkID8gJ3JpZ2h0JyA6ICdsZWZ0Jztcblx0XHRcdFx0XHRsYWJlbFggPSBtZS5sZWZ0ICsgbGFiZWxYT2Zmc2V0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGl0ZW1zVG9EcmF3LnB1c2goe1xuXHRcdFx0XHR0eDE6IHR4MSxcblx0XHRcdFx0dHkxOiB0eTEsXG5cdFx0XHRcdHR4MjogdHgyLFxuXHRcdFx0XHR0eTI6IHR5Mixcblx0XHRcdFx0eDE6IHgxLFxuXHRcdFx0XHR5MTogeTEsXG5cdFx0XHRcdHgyOiB4Mixcblx0XHRcdFx0eTI6IHkyLFxuXHRcdFx0XHRsYWJlbFg6IGxhYmVsWCxcblx0XHRcdFx0bGFiZWxZOiBsYWJlbFksXG5cdFx0XHRcdGdsV2lkdGg6IGxpbmVXaWR0aCxcblx0XHRcdFx0Z2xDb2xvcjogbGluZUNvbG9yLFxuXHRcdFx0XHRnbEJvcmRlckRhc2g6IGJvcmRlckRhc2gsXG5cdFx0XHRcdGdsQm9yZGVyRGFzaE9mZnNldDogYm9yZGVyRGFzaE9mZnNldCxcblx0XHRcdFx0cm90YXRpb246IC0xICogbGFiZWxSb3RhdGlvblJhZGlhbnMsXG5cdFx0XHRcdGxhYmVsOiBsYWJlbCxcblx0XHRcdFx0bWFqb3I6IHRpY2subWFqb3IsXG5cdFx0XHRcdHRleHRPZmZzZXQ6IHRleHRPZmZzZXQsXG5cdFx0XHRcdHRleHRBbGlnbjogdGV4dEFsaWduXG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdC8vIERyYXcgYWxsIG9mIHRoZSB0aWNrIGxhYmVscywgdGljayBtYXJrcywgYW5kIGdyaWQgbGluZXMgYXQgdGhlIGNvcnJlY3QgcGxhY2VzXG5cdFx0aGVscGVycyQxLmVhY2goaXRlbXNUb0RyYXcsIGZ1bmN0aW9uKGl0ZW1Ub0RyYXcpIHtcblx0XHRcdHZhciBnbFdpZHRoID0gaXRlbVRvRHJhdy5nbFdpZHRoO1xuXHRcdFx0dmFyIGdsQ29sb3IgPSBpdGVtVG9EcmF3LmdsQ29sb3I7XG5cblx0XHRcdGlmIChncmlkTGluZXMuZGlzcGxheSAmJiBnbFdpZHRoICYmIGdsQ29sb3IpIHtcblx0XHRcdFx0Y29udGV4dC5zYXZlKCk7XG5cdFx0XHRcdGNvbnRleHQubGluZVdpZHRoID0gZ2xXaWR0aDtcblx0XHRcdFx0Y29udGV4dC5zdHJva2VTdHlsZSA9IGdsQ29sb3I7XG5cdFx0XHRcdGlmIChjb250ZXh0LnNldExpbmVEYXNoKSB7XG5cdFx0XHRcdFx0Y29udGV4dC5zZXRMaW5lRGFzaChpdGVtVG9EcmF3LmdsQm9yZGVyRGFzaCk7XG5cdFx0XHRcdFx0Y29udGV4dC5saW5lRGFzaE9mZnNldCA9IGl0ZW1Ub0RyYXcuZ2xCb3JkZXJEYXNoT2Zmc2V0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29udGV4dC5iZWdpblBhdGgoKTtcblxuXHRcdFx0XHRpZiAoZ3JpZExpbmVzLmRyYXdUaWNrcykge1xuXHRcdFx0XHRcdGNvbnRleHQubW92ZVRvKGl0ZW1Ub0RyYXcudHgxLCBpdGVtVG9EcmF3LnR5MSk7XG5cdFx0XHRcdFx0Y29udGV4dC5saW5lVG8oaXRlbVRvRHJhdy50eDIsIGl0ZW1Ub0RyYXcudHkyKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChncmlkTGluZXMuZHJhd09uQ2hhcnRBcmVhKSB7XG5cdFx0XHRcdFx0Y29udGV4dC5tb3ZlVG8oaXRlbVRvRHJhdy54MSwgaXRlbVRvRHJhdy55MSk7XG5cdFx0XHRcdFx0Y29udGV4dC5saW5lVG8oaXRlbVRvRHJhdy54MiwgaXRlbVRvRHJhdy55Mik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb250ZXh0LnN0cm9rZSgpO1xuXHRcdFx0XHRjb250ZXh0LnJlc3RvcmUoKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKG9wdGlvblRpY2tzLmRpc3BsYXkpIHtcblx0XHRcdFx0Ly8gTWFrZSBzdXJlIHdlIGRyYXcgdGV4dCBpbiB0aGUgY29ycmVjdCBjb2xvciBhbmQgZm9udFxuXHRcdFx0XHRjb250ZXh0LnNhdmUoKTtcblx0XHRcdFx0Y29udGV4dC50cmFuc2xhdGUoaXRlbVRvRHJhdy5sYWJlbFgsIGl0ZW1Ub0RyYXcubGFiZWxZKTtcblx0XHRcdFx0Y29udGV4dC5yb3RhdGUoaXRlbVRvRHJhdy5yb3RhdGlvbik7XG5cdFx0XHRcdGNvbnRleHQuZm9udCA9IGl0ZW1Ub0RyYXcubWFqb3IgPyBtYWpvclRpY2tGb250LnN0cmluZyA6IHRpY2tGb250LnN0cmluZztcblx0XHRcdFx0Y29udGV4dC5maWxsU3R5bGUgPSBpdGVtVG9EcmF3Lm1ham9yID8gbWFqb3JUaWNrRm9udENvbG9yIDogdGlja0ZvbnRDb2xvcjtcblx0XHRcdFx0Y29udGV4dC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcblx0XHRcdFx0Y29udGV4dC50ZXh0QWxpZ24gPSBpdGVtVG9EcmF3LnRleHRBbGlnbjtcblxuXHRcdFx0XHR2YXIgbGFiZWwgPSBpdGVtVG9EcmF3LmxhYmVsO1xuXHRcdFx0XHR2YXIgeSA9IGl0ZW1Ub0RyYXcudGV4dE9mZnNldDtcblx0XHRcdFx0aWYgKGhlbHBlcnMkMS5pc0FycmF5KGxhYmVsKSkge1xuXHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbGFiZWwubGVuZ3RoOyArK2kpIHtcblx0XHRcdFx0XHRcdC8vIFdlIGp1c3QgbWFrZSBzdXJlIHRoZSBtdWx0aWxpbmUgZWxlbWVudCBpcyBhIHN0cmluZyBoZXJlLi5cblx0XHRcdFx0XHRcdGNvbnRleHQuZmlsbFRleHQoJycgKyBsYWJlbFtpXSwgMCwgeSk7XG5cdFx0XHRcdFx0XHR5ICs9IGxpbmVIZWlnaHQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnRleHQuZmlsbFRleHQobGFiZWwsIDAsIHkpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnRleHQucmVzdG9yZSgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aWYgKHNjYWxlTGFiZWwuZGlzcGxheSkge1xuXHRcdFx0Ly8gRHJhdyB0aGUgc2NhbGUgbGFiZWxcblx0XHRcdHZhciBzY2FsZUxhYmVsWDtcblx0XHRcdHZhciBzY2FsZUxhYmVsWTtcblx0XHRcdHZhciByb3RhdGlvbiA9IDA7XG5cdFx0XHR2YXIgaGFsZkxpbmVIZWlnaHQgPSBzY2FsZUxhYmVsRm9udC5saW5lSGVpZ2h0IC8gMjtcblxuXHRcdFx0aWYgKGlzSG9yaXpvbnRhbCkge1xuXHRcdFx0XHRzY2FsZUxhYmVsWCA9IG1lLmxlZnQgKyAoKG1lLnJpZ2h0IC0gbWUubGVmdCkgLyAyKTsgLy8gbWlkcG9pbnQgb2YgdGhlIHdpZHRoXG5cdFx0XHRcdHNjYWxlTGFiZWxZID0gcG9zaXRpb24gPT09ICdib3R0b20nXG5cdFx0XHRcdFx0PyBtZS5ib3R0b20gLSBoYWxmTGluZUhlaWdodCAtIHNjYWxlTGFiZWxQYWRkaW5nLmJvdHRvbVxuXHRcdFx0XHRcdDogbWUudG9wICsgaGFsZkxpbmVIZWlnaHQgKyBzY2FsZUxhYmVsUGFkZGluZy50b3A7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YXIgaXNMZWZ0ID0gcG9zaXRpb24gPT09ICdsZWZ0Jztcblx0XHRcdFx0c2NhbGVMYWJlbFggPSBpc0xlZnRcblx0XHRcdFx0XHQ/IG1lLmxlZnQgKyBoYWxmTGluZUhlaWdodCArIHNjYWxlTGFiZWxQYWRkaW5nLnRvcFxuXHRcdFx0XHRcdDogbWUucmlnaHQgLSBoYWxmTGluZUhlaWdodCAtIHNjYWxlTGFiZWxQYWRkaW5nLnRvcDtcblx0XHRcdFx0c2NhbGVMYWJlbFkgPSBtZS50b3AgKyAoKG1lLmJvdHRvbSAtIG1lLnRvcCkgLyAyKTtcblx0XHRcdFx0cm90YXRpb24gPSBpc0xlZnQgPyAtMC41ICogTWF0aC5QSSA6IDAuNSAqIE1hdGguUEk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnRleHQuc2F2ZSgpO1xuXHRcdFx0Y29udGV4dC50cmFuc2xhdGUoc2NhbGVMYWJlbFgsIHNjYWxlTGFiZWxZKTtcblx0XHRcdGNvbnRleHQucm90YXRlKHJvdGF0aW9uKTtcblx0XHRcdGNvbnRleHQudGV4dEFsaWduID0gJ2NlbnRlcic7XG5cdFx0XHRjb250ZXh0LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuXHRcdFx0Y29udGV4dC5maWxsU3R5bGUgPSBzY2FsZUxhYmVsRm9udENvbG9yOyAvLyByZW5kZXIgaW4gY29ycmVjdCBjb2xvdXJcblx0XHRcdGNvbnRleHQuZm9udCA9IHNjYWxlTGFiZWxGb250LnN0cmluZztcblx0XHRcdGNvbnRleHQuZmlsbFRleHQoc2NhbGVMYWJlbC5sYWJlbFN0cmluZywgMCwgMCk7XG5cdFx0XHRjb250ZXh0LnJlc3RvcmUoKTtcblx0XHR9XG5cblx0XHRpZiAoYXhpc1dpZHRoKSB7XG5cdFx0XHQvLyBEcmF3IHRoZSBsaW5lIGF0IHRoZSBlZGdlIG9mIHRoZSBheGlzXG5cdFx0XHR2YXIgZmlyc3RMaW5lV2lkdGggPSBheGlzV2lkdGg7XG5cdFx0XHR2YXIgbGFzdExpbmVXaWR0aCA9IHZhbHVlQXRJbmRleE9yRGVmYXVsdChncmlkTGluZXMubGluZVdpZHRoLCB0aWNrcy5sZW5ndGggLSAxLCAwKTtcblx0XHRcdHZhciB4MSwgeDIsIHkxLCB5MjtcblxuXHRcdFx0aWYgKGlzSG9yaXpvbnRhbCkge1xuXHRcdFx0XHR4MSA9IGFsaWduUGl4ZWwoY2hhcnQsIG1lLmxlZnQsIGZpcnN0TGluZVdpZHRoKSAtIGZpcnN0TGluZVdpZHRoIC8gMjtcblx0XHRcdFx0eDIgPSBhbGlnblBpeGVsKGNoYXJ0LCBtZS5yaWdodCwgbGFzdExpbmVXaWR0aCkgKyBsYXN0TGluZVdpZHRoIC8gMjtcblx0XHRcdFx0eTEgPSB5MiA9IGJvcmRlclZhbHVlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0eTEgPSBhbGlnblBpeGVsKGNoYXJ0LCBtZS50b3AsIGZpcnN0TGluZVdpZHRoKSAtIGZpcnN0TGluZVdpZHRoIC8gMjtcblx0XHRcdFx0eTIgPSBhbGlnblBpeGVsKGNoYXJ0LCBtZS5ib3R0b20sIGxhc3RMaW5lV2lkdGgpICsgbGFzdExpbmVXaWR0aCAvIDI7XG5cdFx0XHRcdHgxID0geDIgPSBib3JkZXJWYWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0Y29udGV4dC5saW5lV2lkdGggPSBheGlzV2lkdGg7XG5cdFx0XHRjb250ZXh0LnN0cm9rZVN0eWxlID0gdmFsdWVBdEluZGV4T3JEZWZhdWx0KGdyaWRMaW5lcy5jb2xvciwgMCk7XG5cdFx0XHRjb250ZXh0LmJlZ2luUGF0aCgpO1xuXHRcdFx0Y29udGV4dC5tb3ZlVG8oeDEsIHkxKTtcblx0XHRcdGNvbnRleHQubGluZVRvKHgyLCB5Mik7XG5cdFx0XHRjb250ZXh0LnN0cm9rZSgpO1xuXHRcdH1cblx0fVxufSk7XG5cbnZhciBkZWZhdWx0Q29uZmlnID0ge1xuXHRwb3NpdGlvbjogJ2JvdHRvbSdcbn07XG5cbnZhciBzY2FsZV9jYXRlZ29yeSA9IGNvcmVfc2NhbGUuZXh0ZW5kKHtcblx0LyoqXG5cdCogSW50ZXJuYWwgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb3JyZWN0IGxhYmVscy4gSWYgZGF0YS54TGFiZWxzIG9yIGRhdGEueUxhYmVscyBhcmUgZGVmaW5lZCwgdXNlIHRob3NlXG5cdCogZWxzZSBmYWxsIGJhY2sgdG8gZGF0YS5sYWJlbHNcblx0KiBAcHJpdmF0ZVxuXHQqL1xuXHRnZXRMYWJlbHM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBkYXRhID0gdGhpcy5jaGFydC5kYXRhO1xuXHRcdHJldHVybiB0aGlzLm9wdGlvbnMubGFiZWxzIHx8ICh0aGlzLmlzSG9yaXpvbnRhbCgpID8gZGF0YS54TGFiZWxzIDogZGF0YS55TGFiZWxzKSB8fCBkYXRhLmxhYmVscztcblx0fSxcblxuXHRkZXRlcm1pbmVEYXRhTGltaXRzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBsYWJlbHMgPSBtZS5nZXRMYWJlbHMoKTtcblx0XHRtZS5taW5JbmRleCA9IDA7XG5cdFx0bWUubWF4SW5kZXggPSBsYWJlbHMubGVuZ3RoIC0gMTtcblx0XHR2YXIgZmluZEluZGV4O1xuXG5cdFx0aWYgKG1lLm9wdGlvbnMudGlja3MubWluICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdC8vIHVzZXIgc3BlY2lmaWVkIG1pbiB2YWx1ZVxuXHRcdFx0ZmluZEluZGV4ID0gbGFiZWxzLmluZGV4T2YobWUub3B0aW9ucy50aWNrcy5taW4pO1xuXHRcdFx0bWUubWluSW5kZXggPSBmaW5kSW5kZXggIT09IC0xID8gZmluZEluZGV4IDogbWUubWluSW5kZXg7XG5cdFx0fVxuXG5cdFx0aWYgKG1lLm9wdGlvbnMudGlja3MubWF4ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdC8vIHVzZXIgc3BlY2lmaWVkIG1heCB2YWx1ZVxuXHRcdFx0ZmluZEluZGV4ID0gbGFiZWxzLmluZGV4T2YobWUub3B0aW9ucy50aWNrcy5tYXgpO1xuXHRcdFx0bWUubWF4SW5kZXggPSBmaW5kSW5kZXggIT09IC0xID8gZmluZEluZGV4IDogbWUubWF4SW5kZXg7XG5cdFx0fVxuXG5cdFx0bWUubWluID0gbGFiZWxzW21lLm1pbkluZGV4XTtcblx0XHRtZS5tYXggPSBsYWJlbHNbbWUubWF4SW5kZXhdO1xuXHR9LFxuXG5cdGJ1aWxkVGlja3M6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGxhYmVscyA9IG1lLmdldExhYmVscygpO1xuXHRcdC8vIElmIHdlIGFyZSB2aWV3aW5nIHNvbWUgc3Vic2V0IG9mIGxhYmVscywgc2xpY2UgdGhlIG9yaWdpbmFsIGFycmF5XG5cdFx0bWUudGlja3MgPSAobWUubWluSW5kZXggPT09IDAgJiYgbWUubWF4SW5kZXggPT09IGxhYmVscy5sZW5ndGggLSAxKSA/IGxhYmVscyA6IGxhYmVscy5zbGljZShtZS5taW5JbmRleCwgbWUubWF4SW5kZXggKyAxKTtcblx0fSxcblxuXHRnZXRMYWJlbEZvckluZGV4OiBmdW5jdGlvbihpbmRleCwgZGF0YXNldEluZGV4KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgY2hhcnQgPSBtZS5jaGFydDtcblxuXHRcdGlmIChjaGFydC5nZXREYXRhc2V0TWV0YShkYXRhc2V0SW5kZXgpLmNvbnRyb2xsZXIuX2dldFZhbHVlU2NhbGVJZCgpID09PSBtZS5pZCkge1xuXHRcdFx0cmV0dXJuIG1lLmdldFJpZ2h0VmFsdWUoY2hhcnQuZGF0YS5kYXRhc2V0c1tkYXRhc2V0SW5kZXhdLmRhdGFbaW5kZXhdKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbWUudGlja3NbaW5kZXggLSBtZS5taW5JbmRleF07XG5cdH0sXG5cblx0Ly8gVXNlZCB0byBnZXQgZGF0YSB2YWx1ZSBsb2NhdGlvbnMuICBWYWx1ZSBjYW4gZWl0aGVyIGJlIGFuIGluZGV4IG9yIGEgbnVtZXJpY2FsIHZhbHVlXG5cdGdldFBpeGVsRm9yVmFsdWU6IGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG9mZnNldCA9IG1lLm9wdGlvbnMub2Zmc2V0O1xuXHRcdC8vIDEgaXMgYWRkZWQgYmVjYXVzZSB3ZSBuZWVkIHRoZSBsZW5ndGggYnV0IHdlIGhhdmUgdGhlIGluZGV4ZXNcblx0XHR2YXIgb2Zmc2V0QW10ID0gTWF0aC5tYXgoKG1lLm1heEluZGV4ICsgMSAtIG1lLm1pbkluZGV4IC0gKG9mZnNldCA/IDAgOiAxKSksIDEpO1xuXG5cdFx0Ly8gSWYgdmFsdWUgaXMgYSBkYXRhIG9iamVjdCwgdGhlbiBpbmRleCBpcyB0aGUgaW5kZXggaW4gdGhlIGRhdGEgYXJyYXksXG5cdFx0Ly8gbm90IHRoZSBpbmRleCBvZiB0aGUgc2NhbGUuIFdlIG5lZWQgdG8gY2hhbmdlIHRoYXQuXG5cdFx0dmFyIHZhbHVlQ2F0ZWdvcnk7XG5cdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcblx0XHRcdHZhbHVlQ2F0ZWdvcnkgPSBtZS5pc0hvcml6b250YWwoKSA/IHZhbHVlLnggOiB2YWx1ZS55O1xuXHRcdH1cblx0XHRpZiAodmFsdWVDYXRlZ29yeSAhPT0gdW5kZWZpbmVkIHx8ICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGlzTmFOKGluZGV4KSkpIHtcblx0XHRcdHZhciBsYWJlbHMgPSBtZS5nZXRMYWJlbHMoKTtcblx0XHRcdHZhbHVlID0gdmFsdWVDYXRlZ29yeSB8fCB2YWx1ZTtcblx0XHRcdHZhciBpZHggPSBsYWJlbHMuaW5kZXhPZih2YWx1ZSk7XG5cdFx0XHRpbmRleCA9IGlkeCAhPT0gLTEgPyBpZHggOiBpbmRleDtcblx0XHR9XG5cblx0XHRpZiAobWUuaXNIb3Jpem9udGFsKCkpIHtcblx0XHRcdHZhciB2YWx1ZVdpZHRoID0gbWUud2lkdGggLyBvZmZzZXRBbXQ7XG5cdFx0XHR2YXIgd2lkdGhPZmZzZXQgPSAodmFsdWVXaWR0aCAqIChpbmRleCAtIG1lLm1pbkluZGV4KSk7XG5cblx0XHRcdGlmIChvZmZzZXQpIHtcblx0XHRcdFx0d2lkdGhPZmZzZXQgKz0gKHZhbHVlV2lkdGggLyAyKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG1lLmxlZnQgKyB3aWR0aE9mZnNldDtcblx0XHR9XG5cdFx0dmFyIHZhbHVlSGVpZ2h0ID0gbWUuaGVpZ2h0IC8gb2Zmc2V0QW10O1xuXHRcdHZhciBoZWlnaHRPZmZzZXQgPSAodmFsdWVIZWlnaHQgKiAoaW5kZXggLSBtZS5taW5JbmRleCkpO1xuXG5cdFx0aWYgKG9mZnNldCkge1xuXHRcdFx0aGVpZ2h0T2Zmc2V0ICs9ICh2YWx1ZUhlaWdodCAvIDIpO1xuXHRcdH1cblxuXHRcdHJldHVybiBtZS50b3AgKyBoZWlnaHRPZmZzZXQ7XG5cdH0sXG5cblx0Z2V0UGl4ZWxGb3JUaWNrOiBmdW5jdGlvbihpbmRleCkge1xuXHRcdHJldHVybiB0aGlzLmdldFBpeGVsRm9yVmFsdWUodGhpcy50aWNrc1tpbmRleF0sIGluZGV4ICsgdGhpcy5taW5JbmRleCwgbnVsbCk7XG5cdH0sXG5cblx0Z2V0VmFsdWVGb3JQaXhlbDogZnVuY3Rpb24ocGl4ZWwpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvZmZzZXQgPSBtZS5vcHRpb25zLm9mZnNldDtcblx0XHR2YXIgdmFsdWU7XG5cdFx0dmFyIG9mZnNldEFtdCA9IE1hdGgubWF4KChtZS5fdGlja3MubGVuZ3RoIC0gKG9mZnNldCA/IDAgOiAxKSksIDEpO1xuXHRcdHZhciBob3J6ID0gbWUuaXNIb3Jpem9udGFsKCk7XG5cdFx0dmFyIHZhbHVlRGltZW5zaW9uID0gKGhvcnogPyBtZS53aWR0aCA6IG1lLmhlaWdodCkgLyBvZmZzZXRBbXQ7XG5cblx0XHRwaXhlbCAtPSBob3J6ID8gbWUubGVmdCA6IG1lLnRvcDtcblxuXHRcdGlmIChvZmZzZXQpIHtcblx0XHRcdHBpeGVsIC09ICh2YWx1ZURpbWVuc2lvbiAvIDIpO1xuXHRcdH1cblxuXHRcdGlmIChwaXhlbCA8PSAwKSB7XG5cdFx0XHR2YWx1ZSA9IDA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhbHVlID0gTWF0aC5yb3VuZChwaXhlbCAvIHZhbHVlRGltZW5zaW9uKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWUgKyBtZS5taW5JbmRleDtcblx0fSxcblxuXHRnZXRCYXNlUGl4ZWw6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmJvdHRvbTtcblx0fVxufSk7XG5cbi8vIElOVEVSTkFMOiBzdGF0aWMgZGVmYXVsdCBvcHRpb25zLCByZWdpc3RlcmVkIGluIHNyYy9pbmRleC5qc1xudmFyIF9kZWZhdWx0cyA9IGRlZmF1bHRDb25maWc7XG5zY2FsZV9jYXRlZ29yeS5fZGVmYXVsdHMgPSBfZGVmYXVsdHM7XG5cbnZhciBub29wID0gaGVscGVycyQxLm5vb3A7XG52YXIgaXNOdWxsT3JVbmRlZiA9IGhlbHBlcnMkMS5pc051bGxPclVuZGVmO1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgc2V0IG9mIGxpbmVhciB0aWNrc1xuICogQHBhcmFtIGdlbmVyYXRpb25PcHRpb25zIHRoZSBvcHRpb25zIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHRpY2tzXG4gKiBAcGFyYW0gZGF0YVJhbmdlIHRoZSByYW5nZSBvZiB0aGUgZGF0YVxuICogQHJldHVybnMge251bWJlcltdfSBhcnJheSBvZiB0aWNrIHZhbHVlc1xuICovXG5mdW5jdGlvbiBnZW5lcmF0ZVRpY2tzKGdlbmVyYXRpb25PcHRpb25zLCBkYXRhUmFuZ2UpIHtcblx0dmFyIHRpY2tzID0gW107XG5cdC8vIFRvIGdldCBhIFwibmljZVwiIHZhbHVlIGZvciB0aGUgdGljayBzcGFjaW5nLCB3ZSB3aWxsIHVzZSB0aGUgYXBwcm9wcmlhdGVseSBuYW1lZFxuXHQvLyBcIm5pY2UgbnVtYmVyXCIgYWxnb3JpdGhtLiBTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvODUwNjg4MS9uaWNlLWxhYmVsLWFsZ29yaXRobS1mb3ItY2hhcnRzLXdpdGgtbWluaW11bS10aWNrc1xuXHQvLyBmb3IgZGV0YWlscy5cblxuXHR2YXIgTUlOX1NQQUNJTkcgPSAxZS0xNDtcblx0dmFyIHN0ZXBTaXplID0gZ2VuZXJhdGlvbk9wdGlvbnMuc3RlcFNpemU7XG5cdHZhciB1bml0ID0gc3RlcFNpemUgfHwgMTtcblx0dmFyIG1heE51bVNwYWNlcyA9IGdlbmVyYXRpb25PcHRpb25zLm1heFRpY2tzIC0gMTtcblx0dmFyIG1pbiA9IGdlbmVyYXRpb25PcHRpb25zLm1pbjtcblx0dmFyIG1heCA9IGdlbmVyYXRpb25PcHRpb25zLm1heDtcblx0dmFyIHByZWNpc2lvbiA9IGdlbmVyYXRpb25PcHRpb25zLnByZWNpc2lvbjtcblx0dmFyIHJtaW4gPSBkYXRhUmFuZ2UubWluO1xuXHR2YXIgcm1heCA9IGRhdGFSYW5nZS5tYXg7XG5cdHZhciBzcGFjaW5nID0gaGVscGVycyQxLm5pY2VOdW0oKHJtYXggLSBybWluKSAvIG1heE51bVNwYWNlcyAvIHVuaXQpICogdW5pdDtcblx0dmFyIGZhY3RvciwgbmljZU1pbiwgbmljZU1heCwgbnVtU3BhY2VzO1xuXG5cdC8vIEJleW9uZCBNSU5fU1BBQ0lORyBmbG9hdGluZyBwb2ludCBudW1iZXJzIGJlaW5nIHRvIGxvc2UgcHJlY2lzaW9uXG5cdC8vIHN1Y2ggdGhhdCB3ZSBjYW4ndCBkbyB0aGUgbWF0aCBuZWNlc3NhcnkgdG8gZ2VuZXJhdGUgdGlja3Ncblx0aWYgKHNwYWNpbmcgPCBNSU5fU1BBQ0lORyAmJiBpc051bGxPclVuZGVmKG1pbikgJiYgaXNOdWxsT3JVbmRlZihtYXgpKSB7XG5cdFx0cmV0dXJuIFtybWluLCBybWF4XTtcblx0fVxuXG5cdG51bVNwYWNlcyA9IE1hdGguY2VpbChybWF4IC8gc3BhY2luZykgLSBNYXRoLmZsb29yKHJtaW4gLyBzcGFjaW5nKTtcblx0aWYgKG51bVNwYWNlcyA+IG1heE51bVNwYWNlcykge1xuXHRcdC8vIElmIHRoZSBjYWxjdWxhdGVkIG51bSBvZiBzcGFjZXMgZXhjZWVkcyBtYXhOdW1TcGFjZXMsIHJlY2FsY3VsYXRlIGl0XG5cdFx0c3BhY2luZyA9IGhlbHBlcnMkMS5uaWNlTnVtKG51bVNwYWNlcyAqIHNwYWNpbmcgLyBtYXhOdW1TcGFjZXMgLyB1bml0KSAqIHVuaXQ7XG5cdH1cblxuXHRpZiAoc3RlcFNpemUgfHwgaXNOdWxsT3JVbmRlZihwcmVjaXNpb24pKSB7XG5cdFx0Ly8gSWYgYSBwcmVjaXNpb24gaXMgbm90IHNwZWNpZmllZCwgY2FsY3VsYXRlIGZhY3RvciBiYXNlZCBvbiBzcGFjaW5nXG5cdFx0ZmFjdG9yID0gTWF0aC5wb3coMTAsIGhlbHBlcnMkMS5fZGVjaW1hbFBsYWNlcyhzcGFjaW5nKSk7XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGEgcHJlY2lzaW9uLCByb3VuZCB0byB0aGF0IG51bWJlciBvZiBkZWNpbWFsIHBsYWNlc1xuXHRcdGZhY3RvciA9IE1hdGgucG93KDEwLCBwcmVjaXNpb24pO1xuXHRcdHNwYWNpbmcgPSBNYXRoLmNlaWwoc3BhY2luZyAqIGZhY3RvcikgLyBmYWN0b3I7XG5cdH1cblxuXHRuaWNlTWluID0gTWF0aC5mbG9vcihybWluIC8gc3BhY2luZykgKiBzcGFjaW5nO1xuXHRuaWNlTWF4ID0gTWF0aC5jZWlsKHJtYXggLyBzcGFjaW5nKSAqIHNwYWNpbmc7XG5cblx0Ly8gSWYgbWluLCBtYXggYW5kIHN0ZXBTaXplIGlzIHNldCBhbmQgdGhleSBtYWtlIGFuIGV2ZW5seSBzcGFjZWQgc2NhbGUgdXNlIGl0LlxuXHRpZiAoc3RlcFNpemUpIHtcblx0XHQvLyBJZiB2ZXJ5IGNsb3NlIHRvIG91ciB3aG9sZSBudW1iZXIsIHVzZSBpdC5cblx0XHRpZiAoIWlzTnVsbE9yVW5kZWYobWluKSAmJiBoZWxwZXJzJDEuYWxtb3N0V2hvbGUobWluIC8gc3BhY2luZywgc3BhY2luZyAvIDEwMDApKSB7XG5cdFx0XHRuaWNlTWluID0gbWluO1xuXHRcdH1cblx0XHRpZiAoIWlzTnVsbE9yVW5kZWYobWF4KSAmJiBoZWxwZXJzJDEuYWxtb3N0V2hvbGUobWF4IC8gc3BhY2luZywgc3BhY2luZyAvIDEwMDApKSB7XG5cdFx0XHRuaWNlTWF4ID0gbWF4O1xuXHRcdH1cblx0fVxuXG5cdG51bVNwYWNlcyA9IChuaWNlTWF4IC0gbmljZU1pbikgLyBzcGFjaW5nO1xuXHQvLyBJZiB2ZXJ5IGNsb3NlIHRvIG91ciByb3VuZGVkIHZhbHVlLCB1c2UgaXQuXG5cdGlmIChoZWxwZXJzJDEuYWxtb3N0RXF1YWxzKG51bVNwYWNlcywgTWF0aC5yb3VuZChudW1TcGFjZXMpLCBzcGFjaW5nIC8gMTAwMCkpIHtcblx0XHRudW1TcGFjZXMgPSBNYXRoLnJvdW5kKG51bVNwYWNlcyk7XG5cdH0gZWxzZSB7XG5cdFx0bnVtU3BhY2VzID0gTWF0aC5jZWlsKG51bVNwYWNlcyk7XG5cdH1cblxuXHRuaWNlTWluID0gTWF0aC5yb3VuZChuaWNlTWluICogZmFjdG9yKSAvIGZhY3Rvcjtcblx0bmljZU1heCA9IE1hdGgucm91bmQobmljZU1heCAqIGZhY3RvcikgLyBmYWN0b3I7XG5cdHRpY2tzLnB1c2goaXNOdWxsT3JVbmRlZihtaW4pID8gbmljZU1pbiA6IG1pbik7XG5cdGZvciAodmFyIGogPSAxOyBqIDwgbnVtU3BhY2VzOyArK2opIHtcblx0XHR0aWNrcy5wdXNoKE1hdGgucm91bmQoKG5pY2VNaW4gKyBqICogc3BhY2luZykgKiBmYWN0b3IpIC8gZmFjdG9yKTtcblx0fVxuXHR0aWNrcy5wdXNoKGlzTnVsbE9yVW5kZWYobWF4KSA/IG5pY2VNYXggOiBtYXgpO1xuXG5cdHJldHVybiB0aWNrcztcbn1cblxudmFyIHNjYWxlX2xpbmVhcmJhc2UgPSBjb3JlX3NjYWxlLmV4dGVuZCh7XG5cdGdldFJpZ2h0VmFsdWU6IGZ1bmN0aW9uKHZhbHVlKSB7XG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcblx0XHRcdHJldHVybiArdmFsdWU7XG5cdFx0fVxuXHRcdHJldHVybiBjb3JlX3NjYWxlLnByb3RvdHlwZS5nZXRSaWdodFZhbHVlLmNhbGwodGhpcywgdmFsdWUpO1xuXHR9LFxuXG5cdGhhbmRsZVRpY2tSYW5nZU9wdGlvbnM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG9wdHMgPSBtZS5vcHRpb25zO1xuXHRcdHZhciB0aWNrT3B0cyA9IG9wdHMudGlja3M7XG5cblx0XHQvLyBJZiB3ZSBhcmUgZm9yY2luZyBpdCB0byBiZWdpbiBhdCAwLCBidXQgMCB3aWxsIGFscmVhZHkgYmUgcmVuZGVyZWQgb24gdGhlIGNoYXJ0LFxuXHRcdC8vIGRvIG5vdGhpbmcgc2luY2UgdGhhdCB3b3VsZCBtYWtlIHRoZSBjaGFydCB3ZWlyZC4gSWYgdGhlIHVzZXIgcmVhbGx5IHdhbnRzIGEgd2VpcmQgY2hhcnRcblx0XHQvLyBheGlzLCB0aGV5IGNhbiBtYW51YWxseSBvdmVycmlkZSBpdFxuXHRcdGlmICh0aWNrT3B0cy5iZWdpbkF0WmVybykge1xuXHRcdFx0dmFyIG1pblNpZ24gPSBoZWxwZXJzJDEuc2lnbihtZS5taW4pO1xuXHRcdFx0dmFyIG1heFNpZ24gPSBoZWxwZXJzJDEuc2lnbihtZS5tYXgpO1xuXG5cdFx0XHRpZiAobWluU2lnbiA8IDAgJiYgbWF4U2lnbiA8IDApIHtcblx0XHRcdFx0Ly8gbW92ZSB0aGUgdG9wIHVwIHRvIDBcblx0XHRcdFx0bWUubWF4ID0gMDtcblx0XHRcdH0gZWxzZSBpZiAobWluU2lnbiA+IDAgJiYgbWF4U2lnbiA+IDApIHtcblx0XHRcdFx0Ly8gbW92ZSB0aGUgYm90dG9tIGRvd24gdG8gMFxuXHRcdFx0XHRtZS5taW4gPSAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHZhciBzZXRNaW4gPSB0aWNrT3B0cy5taW4gIT09IHVuZGVmaW5lZCB8fCB0aWNrT3B0cy5zdWdnZXN0ZWRNaW4gIT09IHVuZGVmaW5lZDtcblx0XHR2YXIgc2V0TWF4ID0gdGlja09wdHMubWF4ICE9PSB1bmRlZmluZWQgfHwgdGlja09wdHMuc3VnZ2VzdGVkTWF4ICE9PSB1bmRlZmluZWQ7XG5cblx0XHRpZiAodGlja09wdHMubWluICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdG1lLm1pbiA9IHRpY2tPcHRzLm1pbjtcblx0XHR9IGVsc2UgaWYgKHRpY2tPcHRzLnN1Z2dlc3RlZE1pbiAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAobWUubWluID09PSBudWxsKSB7XG5cdFx0XHRcdG1lLm1pbiA9IHRpY2tPcHRzLnN1Z2dlc3RlZE1pbjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG1lLm1pbiA9IE1hdGgubWluKG1lLm1pbiwgdGlja09wdHMuc3VnZ2VzdGVkTWluKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGlja09wdHMubWF4ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdG1lLm1heCA9IHRpY2tPcHRzLm1heDtcblx0XHR9IGVsc2UgaWYgKHRpY2tPcHRzLnN1Z2dlc3RlZE1heCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAobWUubWF4ID09PSBudWxsKSB7XG5cdFx0XHRcdG1lLm1heCA9IHRpY2tPcHRzLnN1Z2dlc3RlZE1heDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG1lLm1heCA9IE1hdGgubWF4KG1lLm1heCwgdGlja09wdHMuc3VnZ2VzdGVkTWF4KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoc2V0TWluICE9PSBzZXRNYXgpIHtcblx0XHRcdC8vIFdlIHNldCB0aGUgbWluIG9yIHRoZSBtYXggYnV0IG5vdCBib3RoLlxuXHRcdFx0Ly8gU28gZW5zdXJlIHRoYXQgb3VyIHJhbmdlIGlzIGdvb2Rcblx0XHRcdC8vIEludmVydGVkIG9yIDAgbGVuZ3RoIHJhbmdlIGNhbiBoYXBwZW4gd2hlblxuXHRcdFx0Ly8gdGlja3MubWluIGlzIHNldCwgYW5kIG5vIGRhdGFzZXRzIGFyZSB2aXNpYmxlXG5cdFx0XHRpZiAobWUubWluID49IG1lLm1heCkge1xuXHRcdFx0XHRpZiAoc2V0TWluKSB7XG5cdFx0XHRcdFx0bWUubWF4ID0gbWUubWluICsgMTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRtZS5taW4gPSBtZS5tYXggLSAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKG1lLm1pbiA9PT0gbWUubWF4KSB7XG5cdFx0XHRtZS5tYXgrKztcblxuXHRcdFx0aWYgKCF0aWNrT3B0cy5iZWdpbkF0WmVybykge1xuXHRcdFx0XHRtZS5taW4tLTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0Z2V0VGlja0xpbWl0OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciB0aWNrT3B0cyA9IG1lLm9wdGlvbnMudGlja3M7XG5cdFx0dmFyIHN0ZXBTaXplID0gdGlja09wdHMuc3RlcFNpemU7XG5cdFx0dmFyIG1heFRpY2tzTGltaXQgPSB0aWNrT3B0cy5tYXhUaWNrc0xpbWl0O1xuXHRcdHZhciBtYXhUaWNrcztcblxuXHRcdGlmIChzdGVwU2l6ZSkge1xuXHRcdFx0bWF4VGlja3MgPSBNYXRoLmNlaWwobWUubWF4IC8gc3RlcFNpemUpIC0gTWF0aC5mbG9vcihtZS5taW4gLyBzdGVwU2l6ZSkgKyAxO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXhUaWNrcyA9IG1lLl9jb21wdXRlVGlja0xpbWl0KCk7XG5cdFx0XHRtYXhUaWNrc0xpbWl0ID0gbWF4VGlja3NMaW1pdCB8fCAxMTtcblx0XHR9XG5cblx0XHRpZiAobWF4VGlja3NMaW1pdCkge1xuXHRcdFx0bWF4VGlja3MgPSBNYXRoLm1pbihtYXhUaWNrc0xpbWl0LCBtYXhUaWNrcyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1heFRpY2tzO1xuXHR9LFxuXG5cdF9jb21wdXRlVGlja0xpbWl0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuXHR9LFxuXG5cdGhhbmRsZURpcmVjdGlvbmFsQ2hhbmdlczogbm9vcCxcblxuXHRidWlsZFRpY2tzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvcHRzID0gbWUub3B0aW9ucztcblx0XHR2YXIgdGlja09wdHMgPSBvcHRzLnRpY2tzO1xuXG5cdFx0Ly8gRmlndXJlIG91dCB3aGF0IHRoZSBtYXggbnVtYmVyIG9mIHRpY2tzIHdlIGNhbiBzdXBwb3J0IGl0IGlzIGJhc2VkIG9uIHRoZSBzaXplIG9mXG5cdFx0Ly8gdGhlIGF4aXMgYXJlYS4gRm9yIG5vdywgd2Ugc2F5IHRoYXQgdGhlIG1pbmltdW0gdGljayBzcGFjaW5nIGluIHBpeGVscyBtdXN0IGJlIDQwXG5cdFx0Ly8gV2UgYWxzbyBsaW1pdCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGlja3MgdG8gMTEgd2hpY2ggZ2l2ZXMgYSBuaWNlIDEwIHNxdWFyZXMgb25cblx0XHQvLyB0aGUgZ3JhcGguIE1ha2Ugc3VyZSB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCAyIHRpY2tzXG5cdFx0dmFyIG1heFRpY2tzID0gbWUuZ2V0VGlja0xpbWl0KCk7XG5cdFx0bWF4VGlja3MgPSBNYXRoLm1heCgyLCBtYXhUaWNrcyk7XG5cblx0XHR2YXIgbnVtZXJpY0dlbmVyYXRvck9wdGlvbnMgPSB7XG5cdFx0XHRtYXhUaWNrczogbWF4VGlja3MsXG5cdFx0XHRtaW46IHRpY2tPcHRzLm1pbixcblx0XHRcdG1heDogdGlja09wdHMubWF4LFxuXHRcdFx0cHJlY2lzaW9uOiB0aWNrT3B0cy5wcmVjaXNpb24sXG5cdFx0XHRzdGVwU2l6ZTogaGVscGVycyQxLnZhbHVlT3JEZWZhdWx0KHRpY2tPcHRzLmZpeGVkU3RlcFNpemUsIHRpY2tPcHRzLnN0ZXBTaXplKVxuXHRcdH07XG5cdFx0dmFyIHRpY2tzID0gbWUudGlja3MgPSBnZW5lcmF0ZVRpY2tzKG51bWVyaWNHZW5lcmF0b3JPcHRpb25zLCBtZSk7XG5cblx0XHRtZS5oYW5kbGVEaXJlY3Rpb25hbENoYW5nZXMoKTtcblxuXHRcdC8vIEF0IHRoaXMgcG9pbnQsIHdlIG5lZWQgdG8gdXBkYXRlIG91ciBtYXggYW5kIG1pbiBnaXZlbiB0aGUgdGljayB2YWx1ZXMgc2luY2Ugd2UgaGF2ZSBleHBhbmRlZCB0aGVcblx0XHQvLyByYW5nZSBvZiB0aGUgc2NhbGVcblx0XHRtZS5tYXggPSBoZWxwZXJzJDEubWF4KHRpY2tzKTtcblx0XHRtZS5taW4gPSBoZWxwZXJzJDEubWluKHRpY2tzKTtcblxuXHRcdGlmICh0aWNrT3B0cy5yZXZlcnNlKSB7XG5cdFx0XHR0aWNrcy5yZXZlcnNlKCk7XG5cblx0XHRcdG1lLnN0YXJ0ID0gbWUubWF4O1xuXHRcdFx0bWUuZW5kID0gbWUubWluO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtZS5zdGFydCA9IG1lLm1pbjtcblx0XHRcdG1lLmVuZCA9IG1lLm1heDtcblx0XHR9XG5cdH0sXG5cblx0Y29udmVydFRpY2tzVG9MYWJlbHM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0bWUudGlja3NBc051bWJlcnMgPSBtZS50aWNrcy5zbGljZSgpO1xuXHRcdG1lLnplcm9MaW5lSW5kZXggPSBtZS50aWNrcy5pbmRleE9mKDApO1xuXG5cdFx0Y29yZV9zY2FsZS5wcm90b3R5cGUuY29udmVydFRpY2tzVG9MYWJlbHMuY2FsbChtZSk7XG5cdH1cbn0pO1xuXG52YXIgZGVmYXVsdENvbmZpZyQxID0ge1xuXHRwb3NpdGlvbjogJ2xlZnQnLFxuXHR0aWNrczoge1xuXHRcdGNhbGxiYWNrOiBjb3JlX3RpY2tzLmZvcm1hdHRlcnMubGluZWFyXG5cdH1cbn07XG5cbnZhciBzY2FsZV9saW5lYXIgPSBzY2FsZV9saW5lYXJiYXNlLmV4dGVuZCh7XG5cdGRldGVybWluZURhdGFMaW1pdHM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG9wdHMgPSBtZS5vcHRpb25zO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBkYXRhID0gY2hhcnQuZGF0YTtcblx0XHR2YXIgZGF0YXNldHMgPSBkYXRhLmRhdGFzZXRzO1xuXHRcdHZhciBpc0hvcml6b250YWwgPSBtZS5pc0hvcml6b250YWwoKTtcblx0XHR2YXIgREVGQVVMVF9NSU4gPSAwO1xuXHRcdHZhciBERUZBVUxUX01BWCA9IDE7XG5cblx0XHRmdW5jdGlvbiBJRE1hdGNoZXMobWV0YSkge1xuXHRcdFx0cmV0dXJuIGlzSG9yaXpvbnRhbCA/IG1ldGEueEF4aXNJRCA9PT0gbWUuaWQgOiBtZXRhLnlBeGlzSUQgPT09IG1lLmlkO1xuXHRcdH1cblxuXHRcdC8vIEZpcnN0IENhbGN1bGF0ZSB0aGUgcmFuZ2Vcblx0XHRtZS5taW4gPSBudWxsO1xuXHRcdG1lLm1heCA9IG51bGw7XG5cblx0XHR2YXIgaGFzU3RhY2tzID0gb3B0cy5zdGFja2VkO1xuXHRcdGlmIChoYXNTdGFja3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldHMsIGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkge1xuXHRcdFx0XHRpZiAoaGFzU3RhY2tzKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShkYXRhc2V0SW5kZXgpO1xuXHRcdFx0XHRpZiAoY2hhcnQuaXNEYXRhc2V0VmlzaWJsZShkYXRhc2V0SW5kZXgpICYmIElETWF0Y2hlcyhtZXRhKSAmJlxuXHRcdFx0XHRcdG1ldGEuc3RhY2sgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGhhc1N0YWNrcyA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGlmIChvcHRzLnN0YWNrZWQgfHwgaGFzU3RhY2tzKSB7XG5cdFx0XHR2YXIgdmFsdWVzUGVyU3RhY2sgPSB7fTtcblxuXHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldHMsIGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkge1xuXHRcdFx0XHR2YXIgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XG5cdFx0XHRcdHZhciBrZXkgPSBbXG5cdFx0XHRcdFx0bWV0YS50eXBlLFxuXHRcdFx0XHRcdC8vIHdlIGhhdmUgYSBzZXBhcmF0ZSBzdGFjayBmb3Igc3RhY2s9dW5kZWZpbmVkIGRhdGFzZXRzIHdoZW4gdGhlIG9wdHMuc3RhY2tlZCBpcyB1bmRlZmluZWRcblx0XHRcdFx0XHQoKG9wdHMuc3RhY2tlZCA9PT0gdW5kZWZpbmVkICYmIG1ldGEuc3RhY2sgPT09IHVuZGVmaW5lZCkgPyBkYXRhc2V0SW5kZXggOiAnJyksXG5cdFx0XHRcdFx0bWV0YS5zdGFja1xuXHRcdFx0XHRdLmpvaW4oJy4nKTtcblxuXHRcdFx0XHRpZiAodmFsdWVzUGVyU3RhY2tba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0dmFsdWVzUGVyU3RhY2tba2V5XSA9IHtcblx0XHRcdFx0XHRcdHBvc2l0aXZlVmFsdWVzOiBbXSxcblx0XHRcdFx0XHRcdG5lZ2F0aXZlVmFsdWVzOiBbXVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTdG9yZSB0aGVzZSBwZXIgdHlwZVxuXHRcdFx0XHR2YXIgcG9zaXRpdmVWYWx1ZXMgPSB2YWx1ZXNQZXJTdGFja1trZXldLnBvc2l0aXZlVmFsdWVzO1xuXHRcdFx0XHR2YXIgbmVnYXRpdmVWYWx1ZXMgPSB2YWx1ZXNQZXJTdGFja1trZXldLm5lZ2F0aXZlVmFsdWVzO1xuXG5cdFx0XHRcdGlmIChjaGFydC5pc0RhdGFzZXRWaXNpYmxlKGRhdGFzZXRJbmRleCkgJiYgSURNYXRjaGVzKG1ldGEpKSB7XG5cdFx0XHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldC5kYXRhLCBmdW5jdGlvbihyYXdWYWx1ZSwgaW5kZXgpIHtcblx0XHRcdFx0XHRcdHZhciB2YWx1ZSA9ICttZS5nZXRSaWdodFZhbHVlKHJhd1ZhbHVlKTtcblx0XHRcdFx0XHRcdGlmIChpc05hTih2YWx1ZSkgfHwgbWV0YS5kYXRhW2luZGV4XS5oaWRkZW4pIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRwb3NpdGl2ZVZhbHVlc1tpbmRleF0gPSBwb3NpdGl2ZVZhbHVlc1tpbmRleF0gfHwgMDtcblx0XHRcdFx0XHRcdG5lZ2F0aXZlVmFsdWVzW2luZGV4XSA9IG5lZ2F0aXZlVmFsdWVzW2luZGV4XSB8fCAwO1xuXG5cdFx0XHRcdFx0XHRpZiAob3B0cy5yZWxhdGl2ZVBvaW50cykge1xuXHRcdFx0XHRcdFx0XHRwb3NpdGl2ZVZhbHVlc1tpbmRleF0gPSAxMDA7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHZhbHVlIDwgMCkge1xuXHRcdFx0XHRcdFx0XHRuZWdhdGl2ZVZhbHVlc1tpbmRleF0gKz0gdmFsdWU7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRwb3NpdGl2ZVZhbHVlc1tpbmRleF0gKz0gdmFsdWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHRoZWxwZXJzJDEuZWFjaCh2YWx1ZXNQZXJTdGFjaywgZnVuY3Rpb24odmFsdWVzRm9yVHlwZSkge1xuXHRcdFx0XHR2YXIgdmFsdWVzID0gdmFsdWVzRm9yVHlwZS5wb3NpdGl2ZVZhbHVlcy5jb25jYXQodmFsdWVzRm9yVHlwZS5uZWdhdGl2ZVZhbHVlcyk7XG5cdFx0XHRcdHZhciBtaW5WYWwgPSBoZWxwZXJzJDEubWluKHZhbHVlcyk7XG5cdFx0XHRcdHZhciBtYXhWYWwgPSBoZWxwZXJzJDEubWF4KHZhbHVlcyk7XG5cdFx0XHRcdG1lLm1pbiA9IG1lLm1pbiA9PT0gbnVsbCA/IG1pblZhbCA6IE1hdGgubWluKG1lLm1pbiwgbWluVmFsKTtcblx0XHRcdFx0bWUubWF4ID0gbWUubWF4ID09PSBudWxsID8gbWF4VmFsIDogTWF0aC5tYXgobWUubWF4LCBtYXhWYWwpO1xuXHRcdFx0fSk7XG5cblx0XHR9IGVsc2Uge1xuXHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldHMsIGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkge1xuXHRcdFx0XHR2YXIgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XG5cdFx0XHRcdGlmIChjaGFydC5pc0RhdGFzZXRWaXNpYmxlKGRhdGFzZXRJbmRleCkgJiYgSURNYXRjaGVzKG1ldGEpKSB7XG5cdFx0XHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldC5kYXRhLCBmdW5jdGlvbihyYXdWYWx1ZSwgaW5kZXgpIHtcblx0XHRcdFx0XHRcdHZhciB2YWx1ZSA9ICttZS5nZXRSaWdodFZhbHVlKHJhd1ZhbHVlKTtcblx0XHRcdFx0XHRcdGlmIChpc05hTih2YWx1ZSkgfHwgbWV0YS5kYXRhW2luZGV4XS5oaWRkZW4pIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRpZiAobWUubWluID09PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRcdG1lLm1pbiA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA8IG1lLm1pbikge1xuXHRcdFx0XHRcdFx0XHRtZS5taW4gPSB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKG1lLm1heCA9PT0gbnVsbCkge1xuXHRcdFx0XHRcdFx0XHRtZS5tYXggPSB2YWx1ZTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodmFsdWUgPiBtZS5tYXgpIHtcblx0XHRcdFx0XHRcdFx0bWUubWF4ID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdG1lLm1pbiA9IGlzRmluaXRlKG1lLm1pbikgJiYgIWlzTmFOKG1lLm1pbikgPyBtZS5taW4gOiBERUZBVUxUX01JTjtcblx0XHRtZS5tYXggPSBpc0Zpbml0ZShtZS5tYXgpICYmICFpc05hTihtZS5tYXgpID8gbWUubWF4IDogREVGQVVMVF9NQVg7XG5cblx0XHQvLyBDb21tb24gYmFzZSBpbXBsZW1lbnRhdGlvbiB0byBoYW5kbGUgdGlja3MubWluLCB0aWNrcy5tYXgsIHRpY2tzLmJlZ2luQXRaZXJvXG5cdFx0dGhpcy5oYW5kbGVUaWNrUmFuZ2VPcHRpb25zKCk7XG5cdH0sXG5cblx0Ly8gUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGlja3MgYmFzZWQgb24gdGhlIHNjYWxlIGRpbWVuc2lvblxuXHRfY29tcHV0ZVRpY2tMaW1pdDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgdGlja0ZvbnQ7XG5cblx0XHRpZiAobWUuaXNIb3Jpem9udGFsKCkpIHtcblx0XHRcdHJldHVybiBNYXRoLmNlaWwobWUud2lkdGggLyA0MCk7XG5cdFx0fVxuXHRcdHRpY2tGb250ID0gaGVscGVycyQxLm9wdGlvbnMuX3BhcnNlRm9udChtZS5vcHRpb25zLnRpY2tzKTtcblx0XHRyZXR1cm4gTWF0aC5jZWlsKG1lLmhlaWdodCAvIHRpY2tGb250LmxpbmVIZWlnaHQpO1xuXHR9LFxuXG5cdC8vIENhbGxlZCBhZnRlciB0aGUgdGlja3MgYXJlIGJ1aWx0LiBXZSBuZWVkXG5cdGhhbmRsZURpcmVjdGlvbmFsQ2hhbmdlczogZnVuY3Rpb24oKSB7XG5cdFx0aWYgKCF0aGlzLmlzSG9yaXpvbnRhbCgpKSB7XG5cdFx0XHQvLyBXZSBhcmUgaW4gYSB2ZXJ0aWNhbCBvcmllbnRhdGlvbi4gVGhlIHRvcCB2YWx1ZSBpcyB0aGUgaGlnaGVzdC4gU28gcmV2ZXJzZSB0aGUgYXJyYXlcblx0XHRcdHRoaXMudGlja3MucmV2ZXJzZSgpO1xuXHRcdH1cblx0fSxcblxuXHRnZXRMYWJlbEZvckluZGV4OiBmdW5jdGlvbihpbmRleCwgZGF0YXNldEluZGV4KSB7XG5cdFx0cmV0dXJuICt0aGlzLmdldFJpZ2h0VmFsdWUodGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0uZGF0YVtpbmRleF0pO1xuXHR9LFxuXG5cdC8vIFV0aWxzXG5cdGdldFBpeGVsRm9yVmFsdWU6IGZ1bmN0aW9uKHZhbHVlKSB7XG5cdFx0Ly8gVGhpcyBtdXN0IGJlIGNhbGxlZCBhZnRlciBmaXQgaGFzIGJlZW4gcnVuIHNvIHRoYXRcblx0XHQvLyB0aGlzLmxlZnQsIHRoaXMudG9wLCB0aGlzLnJpZ2h0LCBhbmQgdGhpcy5ib3R0b20gaGF2ZSBiZWVuIGRlZmluZWRcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBzdGFydCA9IG1lLnN0YXJ0O1xuXG5cdFx0dmFyIHJpZ2h0VmFsdWUgPSArbWUuZ2V0UmlnaHRWYWx1ZSh2YWx1ZSk7XG5cdFx0dmFyIHBpeGVsO1xuXHRcdHZhciByYW5nZSA9IG1lLmVuZCAtIHN0YXJ0O1xuXG5cdFx0aWYgKG1lLmlzSG9yaXpvbnRhbCgpKSB7XG5cdFx0XHRwaXhlbCA9IG1lLmxlZnQgKyAobWUud2lkdGggLyByYW5nZSAqIChyaWdodFZhbHVlIC0gc3RhcnQpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cGl4ZWwgPSBtZS5ib3R0b20gLSAobWUuaGVpZ2h0IC8gcmFuZ2UgKiAocmlnaHRWYWx1ZSAtIHN0YXJ0KSk7XG5cdFx0fVxuXHRcdHJldHVybiBwaXhlbDtcblx0fSxcblxuXHRnZXRWYWx1ZUZvclBpeGVsOiBmdW5jdGlvbihwaXhlbCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGlzSG9yaXpvbnRhbCA9IG1lLmlzSG9yaXpvbnRhbCgpO1xuXHRcdHZhciBpbm5lckRpbWVuc2lvbiA9IGlzSG9yaXpvbnRhbCA/IG1lLndpZHRoIDogbWUuaGVpZ2h0O1xuXHRcdHZhciBvZmZzZXQgPSAoaXNIb3Jpem9udGFsID8gcGl4ZWwgLSBtZS5sZWZ0IDogbWUuYm90dG9tIC0gcGl4ZWwpIC8gaW5uZXJEaW1lbnNpb247XG5cdFx0cmV0dXJuIG1lLnN0YXJ0ICsgKChtZS5lbmQgLSBtZS5zdGFydCkgKiBvZmZzZXQpO1xuXHR9LFxuXG5cdGdldFBpeGVsRm9yVGljazogZnVuY3Rpb24oaW5kZXgpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRQaXhlbEZvclZhbHVlKHRoaXMudGlja3NBc051bWJlcnNbaW5kZXhdKTtcblx0fVxufSk7XG5cbi8vIElOVEVSTkFMOiBzdGF0aWMgZGVmYXVsdCBvcHRpb25zLCByZWdpc3RlcmVkIGluIHNyYy9pbmRleC5qc1xudmFyIF9kZWZhdWx0cyQxID0gZGVmYXVsdENvbmZpZyQxO1xuc2NhbGVfbGluZWFyLl9kZWZhdWx0cyA9IF9kZWZhdWx0cyQxO1xuXG52YXIgdmFsdWVPckRlZmF1bHQkYSA9IGhlbHBlcnMkMS52YWx1ZU9yRGVmYXVsdDtcblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHNldCBvZiBsb2dhcml0aG1pYyB0aWNrc1xuICogQHBhcmFtIGdlbmVyYXRpb25PcHRpb25zIHRoZSBvcHRpb25zIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHRpY2tzXG4gKiBAcGFyYW0gZGF0YVJhbmdlIHRoZSByYW5nZSBvZiB0aGUgZGF0YVxuICogQHJldHVybnMge251bWJlcltdfSBhcnJheSBvZiB0aWNrIHZhbHVlc1xuICovXG5mdW5jdGlvbiBnZW5lcmF0ZVRpY2tzJDEoZ2VuZXJhdGlvbk9wdGlvbnMsIGRhdGFSYW5nZSkge1xuXHR2YXIgdGlja3MgPSBbXTtcblxuXHR2YXIgdGlja1ZhbCA9IHZhbHVlT3JEZWZhdWx0JGEoZ2VuZXJhdGlvbk9wdGlvbnMubWluLCBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihoZWxwZXJzJDEubG9nMTAoZGF0YVJhbmdlLm1pbikpKSk7XG5cblx0dmFyIGVuZEV4cCA9IE1hdGguZmxvb3IoaGVscGVycyQxLmxvZzEwKGRhdGFSYW5nZS5tYXgpKTtcblx0dmFyIGVuZFNpZ25pZmljYW5kID0gTWF0aC5jZWlsKGRhdGFSYW5nZS5tYXggLyBNYXRoLnBvdygxMCwgZW5kRXhwKSk7XG5cdHZhciBleHAsIHNpZ25pZmljYW5kO1xuXG5cdGlmICh0aWNrVmFsID09PSAwKSB7XG5cdFx0ZXhwID0gTWF0aC5mbG9vcihoZWxwZXJzJDEubG9nMTAoZGF0YVJhbmdlLm1pbk5vdFplcm8pKTtcblx0XHRzaWduaWZpY2FuZCA9IE1hdGguZmxvb3IoZGF0YVJhbmdlLm1pbk5vdFplcm8gLyBNYXRoLnBvdygxMCwgZXhwKSk7XG5cblx0XHR0aWNrcy5wdXNoKHRpY2tWYWwpO1xuXHRcdHRpY2tWYWwgPSBzaWduaWZpY2FuZCAqIE1hdGgucG93KDEwLCBleHApO1xuXHR9IGVsc2Uge1xuXHRcdGV4cCA9IE1hdGguZmxvb3IoaGVscGVycyQxLmxvZzEwKHRpY2tWYWwpKTtcblx0XHRzaWduaWZpY2FuZCA9IE1hdGguZmxvb3IodGlja1ZhbCAvIE1hdGgucG93KDEwLCBleHApKTtcblx0fVxuXHR2YXIgcHJlY2lzaW9uID0gZXhwIDwgMCA/IE1hdGgucG93KDEwLCBNYXRoLmFicyhleHApKSA6IDE7XG5cblx0ZG8ge1xuXHRcdHRpY2tzLnB1c2godGlja1ZhbCk7XG5cblx0XHQrK3NpZ25pZmljYW5kO1xuXHRcdGlmIChzaWduaWZpY2FuZCA9PT0gMTApIHtcblx0XHRcdHNpZ25pZmljYW5kID0gMTtcblx0XHRcdCsrZXhwO1xuXHRcdFx0cHJlY2lzaW9uID0gZXhwID49IDAgPyAxIDogcHJlY2lzaW9uO1xuXHRcdH1cblxuXHRcdHRpY2tWYWwgPSBNYXRoLnJvdW5kKHNpZ25pZmljYW5kICogTWF0aC5wb3coMTAsIGV4cCkgKiBwcmVjaXNpb24pIC8gcHJlY2lzaW9uO1xuXHR9IHdoaWxlIChleHAgPCBlbmRFeHAgfHwgKGV4cCA9PT0gZW5kRXhwICYmIHNpZ25pZmljYW5kIDwgZW5kU2lnbmlmaWNhbmQpKTtcblxuXHR2YXIgbGFzdFRpY2sgPSB2YWx1ZU9yRGVmYXVsdCRhKGdlbmVyYXRpb25PcHRpb25zLm1heCwgdGlja1ZhbCk7XG5cdHRpY2tzLnB1c2gobGFzdFRpY2spO1xuXG5cdHJldHVybiB0aWNrcztcbn1cblxudmFyIGRlZmF1bHRDb25maWckMiA9IHtcblx0cG9zaXRpb246ICdsZWZ0JyxcblxuXHQvLyBsYWJlbCBzZXR0aW5nc1xuXHR0aWNrczoge1xuXHRcdGNhbGxiYWNrOiBjb3JlX3RpY2tzLmZvcm1hdHRlcnMubG9nYXJpdGhtaWNcblx0fVxufTtcblxuLy8gVE9ETyh2Myk6IGNoYW5nZSB0aGlzIHRvIHBvc2l0aXZlT3JEZWZhdWx0XG5mdW5jdGlvbiBub25OZWdhdGl2ZU9yRGVmYXVsdCh2YWx1ZSwgZGVmYXVsdFZhbHVlKSB7XG5cdHJldHVybiBoZWxwZXJzJDEuaXNGaW5pdGUodmFsdWUpICYmIHZhbHVlID49IDAgPyB2YWx1ZSA6IGRlZmF1bHRWYWx1ZTtcbn1cblxudmFyIHNjYWxlX2xvZ2FyaXRobWljID0gY29yZV9zY2FsZS5leHRlbmQoe1xuXHRkZXRlcm1pbmVEYXRhTGltaXRzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvcHRzID0gbWUub3B0aW9ucztcblx0XHR2YXIgY2hhcnQgPSBtZS5jaGFydDtcblx0XHR2YXIgZGF0YSA9IGNoYXJ0LmRhdGE7XG5cdFx0dmFyIGRhdGFzZXRzID0gZGF0YS5kYXRhc2V0cztcblx0XHR2YXIgaXNIb3Jpem9udGFsID0gbWUuaXNIb3Jpem9udGFsKCk7XG5cdFx0ZnVuY3Rpb24gSURNYXRjaGVzKG1ldGEpIHtcblx0XHRcdHJldHVybiBpc0hvcml6b250YWwgPyBtZXRhLnhBeGlzSUQgPT09IG1lLmlkIDogbWV0YS55QXhpc0lEID09PSBtZS5pZDtcblx0XHR9XG5cblx0XHQvLyBDYWxjdWxhdGUgUmFuZ2Vcblx0XHRtZS5taW4gPSBudWxsO1xuXHRcdG1lLm1heCA9IG51bGw7XG5cdFx0bWUubWluTm90WmVybyA9IG51bGw7XG5cblx0XHR2YXIgaGFzU3RhY2tzID0gb3B0cy5zdGFja2VkO1xuXHRcdGlmIChoYXNTdGFja3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldHMsIGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkge1xuXHRcdFx0XHRpZiAoaGFzU3RhY2tzKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShkYXRhc2V0SW5kZXgpO1xuXHRcdFx0XHRpZiAoY2hhcnQuaXNEYXRhc2V0VmlzaWJsZShkYXRhc2V0SW5kZXgpICYmIElETWF0Y2hlcyhtZXRhKSAmJlxuXHRcdFx0XHRcdG1ldGEuc3RhY2sgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGhhc1N0YWNrcyA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGlmIChvcHRzLnN0YWNrZWQgfHwgaGFzU3RhY2tzKSB7XG5cdFx0XHR2YXIgdmFsdWVzUGVyU3RhY2sgPSB7fTtcblxuXHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldHMsIGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkge1xuXHRcdFx0XHR2YXIgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XG5cdFx0XHRcdHZhciBrZXkgPSBbXG5cdFx0XHRcdFx0bWV0YS50eXBlLFxuXHRcdFx0XHRcdC8vIHdlIGhhdmUgYSBzZXBhcmF0ZSBzdGFjayBmb3Igc3RhY2s9dW5kZWZpbmVkIGRhdGFzZXRzIHdoZW4gdGhlIG9wdHMuc3RhY2tlZCBpcyB1bmRlZmluZWRcblx0XHRcdFx0XHQoKG9wdHMuc3RhY2tlZCA9PT0gdW5kZWZpbmVkICYmIG1ldGEuc3RhY2sgPT09IHVuZGVmaW5lZCkgPyBkYXRhc2V0SW5kZXggOiAnJyksXG5cdFx0XHRcdFx0bWV0YS5zdGFja1xuXHRcdFx0XHRdLmpvaW4oJy4nKTtcblxuXHRcdFx0XHRpZiAoY2hhcnQuaXNEYXRhc2V0VmlzaWJsZShkYXRhc2V0SW5kZXgpICYmIElETWF0Y2hlcyhtZXRhKSkge1xuXHRcdFx0XHRcdGlmICh2YWx1ZXNQZXJTdGFja1trZXldID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdHZhbHVlc1BlclN0YWNrW2tleV0gPSBbXTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRoZWxwZXJzJDEuZWFjaChkYXRhc2V0LmRhdGEsIGZ1bmN0aW9uKHJhd1ZhbHVlLCBpbmRleCkge1xuXHRcdFx0XHRcdFx0dmFyIHZhbHVlcyA9IHZhbHVlc1BlclN0YWNrW2tleV07XG5cdFx0XHRcdFx0XHR2YXIgdmFsdWUgPSArbWUuZ2V0UmlnaHRWYWx1ZShyYXdWYWx1ZSk7XG5cdFx0XHRcdFx0XHQvLyBpbnZhbGlkLCBoaWRkZW4gYW5kIG5lZ2F0aXZlIHZhbHVlcyBhcmUgaWdub3JlZFxuXHRcdFx0XHRcdFx0aWYgKGlzTmFOKHZhbHVlKSB8fCBtZXRhLmRhdGFbaW5kZXhdLmhpZGRlbiB8fCB2YWx1ZSA8IDApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dmFsdWVzW2luZGV4XSA9IHZhbHVlc1tpbmRleF0gfHwgMDtcblx0XHRcdFx0XHRcdHZhbHVlc1tpbmRleF0gKz0gdmFsdWU7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHRoZWxwZXJzJDEuZWFjaCh2YWx1ZXNQZXJTdGFjaywgZnVuY3Rpb24odmFsdWVzRm9yVHlwZSkge1xuXHRcdFx0XHRpZiAodmFsdWVzRm9yVHlwZS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0dmFyIG1pblZhbCA9IGhlbHBlcnMkMS5taW4odmFsdWVzRm9yVHlwZSk7XG5cdFx0XHRcdFx0dmFyIG1heFZhbCA9IGhlbHBlcnMkMS5tYXgodmFsdWVzRm9yVHlwZSk7XG5cdFx0XHRcdFx0bWUubWluID0gbWUubWluID09PSBudWxsID8gbWluVmFsIDogTWF0aC5taW4obWUubWluLCBtaW5WYWwpO1xuXHRcdFx0XHRcdG1lLm1heCA9IG1lLm1heCA9PT0gbnVsbCA/IG1heFZhbCA6IE1hdGgubWF4KG1lLm1heCwgbWF4VmFsKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHR9IGVsc2Uge1xuXHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldHMsIGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkge1xuXHRcdFx0XHR2YXIgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XG5cdFx0XHRcdGlmIChjaGFydC5pc0RhdGFzZXRWaXNpYmxlKGRhdGFzZXRJbmRleCkgJiYgSURNYXRjaGVzKG1ldGEpKSB7XG5cdFx0XHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldC5kYXRhLCBmdW5jdGlvbihyYXdWYWx1ZSwgaW5kZXgpIHtcblx0XHRcdFx0XHRcdHZhciB2YWx1ZSA9ICttZS5nZXRSaWdodFZhbHVlKHJhd1ZhbHVlKTtcblx0XHRcdFx0XHRcdC8vIGludmFsaWQsIGhpZGRlbiBhbmQgbmVnYXRpdmUgdmFsdWVzIGFyZSBpZ25vcmVkXG5cdFx0XHRcdFx0XHRpZiAoaXNOYU4odmFsdWUpIHx8IG1ldGEuZGF0YVtpbmRleF0uaGlkZGVuIHx8IHZhbHVlIDwgMCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGlmIChtZS5taW4gPT09IG51bGwpIHtcblx0XHRcdFx0XHRcdFx0bWUubWluID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHZhbHVlIDwgbWUubWluKSB7XG5cdFx0XHRcdFx0XHRcdG1lLm1pbiA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRpZiAobWUubWF4ID09PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRcdG1lLm1heCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA+IG1lLm1heCkge1xuXHRcdFx0XHRcdFx0XHRtZS5tYXggPSB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKHZhbHVlICE9PSAwICYmIChtZS5taW5Ob3RaZXJvID09PSBudWxsIHx8IHZhbHVlIDwgbWUubWluTm90WmVybykpIHtcblx0XHRcdFx0XHRcdFx0bWUubWluTm90WmVybyA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHQvLyBDb21tb24gYmFzZSBpbXBsZW1lbnRhdGlvbiB0byBoYW5kbGUgdGlja3MubWluLCB0aWNrcy5tYXhcblx0XHR0aGlzLmhhbmRsZVRpY2tSYW5nZU9wdGlvbnMoKTtcblx0fSxcblxuXHRoYW5kbGVUaWNrUmFuZ2VPcHRpb25zOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciB0aWNrT3B0cyA9IG1lLm9wdGlvbnMudGlja3M7XG5cdFx0dmFyIERFRkFVTFRfTUlOID0gMTtcblx0XHR2YXIgREVGQVVMVF9NQVggPSAxMDtcblxuXHRcdG1lLm1pbiA9IG5vbk5lZ2F0aXZlT3JEZWZhdWx0KHRpY2tPcHRzLm1pbiwgbWUubWluKTtcblx0XHRtZS5tYXggPSBub25OZWdhdGl2ZU9yRGVmYXVsdCh0aWNrT3B0cy5tYXgsIG1lLm1heCk7XG5cblx0XHRpZiAobWUubWluID09PSBtZS5tYXgpIHtcblx0XHRcdGlmIChtZS5taW4gIT09IDAgJiYgbWUubWluICE9PSBudWxsKSB7XG5cdFx0XHRcdG1lLm1pbiA9IE1hdGgucG93KDEwLCBNYXRoLmZsb29yKGhlbHBlcnMkMS5sb2cxMChtZS5taW4pKSAtIDEpO1xuXHRcdFx0XHRtZS5tYXggPSBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihoZWxwZXJzJDEubG9nMTAobWUubWF4KSkgKyAxKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG1lLm1pbiA9IERFRkFVTFRfTUlOO1xuXHRcdFx0XHRtZS5tYXggPSBERUZBVUxUX01BWDtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKG1lLm1pbiA9PT0gbnVsbCkge1xuXHRcdFx0bWUubWluID0gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoaGVscGVycyQxLmxvZzEwKG1lLm1heCkpIC0gMSk7XG5cdFx0fVxuXHRcdGlmIChtZS5tYXggPT09IG51bGwpIHtcblx0XHRcdG1lLm1heCA9IG1lLm1pbiAhPT0gMFxuXHRcdFx0XHQ/IE1hdGgucG93KDEwLCBNYXRoLmZsb29yKGhlbHBlcnMkMS5sb2cxMChtZS5taW4pKSArIDEpXG5cdFx0XHRcdDogREVGQVVMVF9NQVg7XG5cdFx0fVxuXHRcdGlmIChtZS5taW5Ob3RaZXJvID09PSBudWxsKSB7XG5cdFx0XHRpZiAobWUubWluID4gMCkge1xuXHRcdFx0XHRtZS5taW5Ob3RaZXJvID0gbWUubWluO1xuXHRcdFx0fSBlbHNlIGlmIChtZS5tYXggPCAxKSB7XG5cdFx0XHRcdG1lLm1pbk5vdFplcm8gPSBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihoZWxwZXJzJDEubG9nMTAobWUubWF4KSkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWUubWluTm90WmVybyA9IERFRkFVTFRfTUlOO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHRidWlsZFRpY2tzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciB0aWNrT3B0cyA9IG1lLm9wdGlvbnMudGlja3M7XG5cdFx0dmFyIHJldmVyc2UgPSAhbWUuaXNIb3Jpem9udGFsKCk7XG5cblx0XHR2YXIgZ2VuZXJhdGlvbk9wdGlvbnMgPSB7XG5cdFx0XHRtaW46IG5vbk5lZ2F0aXZlT3JEZWZhdWx0KHRpY2tPcHRzLm1pbiksXG5cdFx0XHRtYXg6IG5vbk5lZ2F0aXZlT3JEZWZhdWx0KHRpY2tPcHRzLm1heClcblx0XHR9O1xuXHRcdHZhciB0aWNrcyA9IG1lLnRpY2tzID0gZ2VuZXJhdGVUaWNrcyQxKGdlbmVyYXRpb25PcHRpb25zLCBtZSk7XG5cblx0XHQvLyBBdCB0aGlzIHBvaW50LCB3ZSBuZWVkIHRvIHVwZGF0ZSBvdXIgbWF4IGFuZCBtaW4gZ2l2ZW4gdGhlIHRpY2sgdmFsdWVzIHNpbmNlIHdlIGhhdmUgZXhwYW5kZWQgdGhlXG5cdFx0Ly8gcmFuZ2Ugb2YgdGhlIHNjYWxlXG5cdFx0bWUubWF4ID0gaGVscGVycyQxLm1heCh0aWNrcyk7XG5cdFx0bWUubWluID0gaGVscGVycyQxLm1pbih0aWNrcyk7XG5cblx0XHRpZiAodGlja09wdHMucmV2ZXJzZSkge1xuXHRcdFx0cmV2ZXJzZSA9ICFyZXZlcnNlO1xuXHRcdFx0bWUuc3RhcnQgPSBtZS5tYXg7XG5cdFx0XHRtZS5lbmQgPSBtZS5taW47XG5cdFx0fSBlbHNlIHtcblx0XHRcdG1lLnN0YXJ0ID0gbWUubWluO1xuXHRcdFx0bWUuZW5kID0gbWUubWF4O1xuXHRcdH1cblx0XHRpZiAocmV2ZXJzZSkge1xuXHRcdFx0dGlja3MucmV2ZXJzZSgpO1xuXHRcdH1cblx0fSxcblxuXHRjb252ZXJ0VGlja3NUb0xhYmVsczogZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy50aWNrVmFsdWVzID0gdGhpcy50aWNrcy5zbGljZSgpO1xuXG5cdFx0Y29yZV9zY2FsZS5wcm90b3R5cGUuY29udmVydFRpY2tzVG9MYWJlbHMuY2FsbCh0aGlzKTtcblx0fSxcblxuXHQvLyBHZXQgdGhlIGNvcnJlY3QgdG9vbHRpcCBsYWJlbFxuXHRnZXRMYWJlbEZvckluZGV4OiBmdW5jdGlvbihpbmRleCwgZGF0YXNldEluZGV4KSB7XG5cdFx0cmV0dXJuICt0aGlzLmdldFJpZ2h0VmFsdWUodGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0uZGF0YVtpbmRleF0pO1xuXHR9LFxuXG5cdGdldFBpeGVsRm9yVGljazogZnVuY3Rpb24oaW5kZXgpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRQaXhlbEZvclZhbHVlKHRoaXMudGlja1ZhbHVlc1tpbmRleF0pO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgdGljay5cblx0ICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIG1pbmltdW0gbm90IHplcm8gdmFsdWUuXG5cdCAqIEByZXR1cm4ge251bWJlcn0gVGhlIGZpcnN0IHRpY2sgdmFsdWUuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfZ2V0Rmlyc3RUaWNrVmFsdWU6IGZ1bmN0aW9uKHZhbHVlKSB7XG5cdFx0dmFyIGV4cCA9IE1hdGguZmxvb3IoaGVscGVycyQxLmxvZzEwKHZhbHVlKSk7XG5cdFx0dmFyIHNpZ25pZmljYW5kID0gTWF0aC5mbG9vcih2YWx1ZSAvIE1hdGgucG93KDEwLCBleHApKTtcblxuXHRcdHJldHVybiBzaWduaWZpY2FuZCAqIE1hdGgucG93KDEwLCBleHApO1xuXHR9LFxuXG5cdGdldFBpeGVsRm9yVmFsdWU6IGZ1bmN0aW9uKHZhbHVlKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgdGlja09wdHMgPSBtZS5vcHRpb25zLnRpY2tzO1xuXHRcdHZhciByZXZlcnNlID0gdGlja09wdHMucmV2ZXJzZTtcblx0XHR2YXIgbG9nMTAgPSBoZWxwZXJzJDEubG9nMTA7XG5cdFx0dmFyIGZpcnN0VGlja1ZhbHVlID0gbWUuX2dldEZpcnN0VGlja1ZhbHVlKG1lLm1pbk5vdFplcm8pO1xuXHRcdHZhciBvZmZzZXQgPSAwO1xuXHRcdHZhciBpbm5lckRpbWVuc2lvbiwgcGl4ZWwsIHN0YXJ0LCBlbmQsIHNpZ247XG5cblx0XHR2YWx1ZSA9ICttZS5nZXRSaWdodFZhbHVlKHZhbHVlKTtcblx0XHRpZiAocmV2ZXJzZSkge1xuXHRcdFx0c3RhcnQgPSBtZS5lbmQ7XG5cdFx0XHRlbmQgPSBtZS5zdGFydDtcblx0XHRcdHNpZ24gPSAtMTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3RhcnQgPSBtZS5zdGFydDtcblx0XHRcdGVuZCA9IG1lLmVuZDtcblx0XHRcdHNpZ24gPSAxO1xuXHRcdH1cblx0XHRpZiAobWUuaXNIb3Jpem9udGFsKCkpIHtcblx0XHRcdGlubmVyRGltZW5zaW9uID0gbWUud2lkdGg7XG5cdFx0XHRwaXhlbCA9IHJldmVyc2UgPyBtZS5yaWdodCA6IG1lLmxlZnQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlubmVyRGltZW5zaW9uID0gbWUuaGVpZ2h0O1xuXHRcdFx0c2lnbiAqPSAtMTsgLy8gaW52ZXJ0LCBzaW5jZSB0aGUgdXBwZXItbGVmdCBjb3JuZXIgb2YgdGhlIGNhbnZhcyBpcyBhdCBwaXhlbCAoMCwgMClcblx0XHRcdHBpeGVsID0gcmV2ZXJzZSA/IG1lLnRvcCA6IG1lLmJvdHRvbTtcblx0XHR9XG5cdFx0aWYgKHZhbHVlICE9PSBzdGFydCkge1xuXHRcdFx0aWYgKHN0YXJ0ID09PSAwKSB7IC8vIGluY2x1ZGUgemVybyB0aWNrXG5cdFx0XHRcdG9mZnNldCA9IHZhbHVlT3JEZWZhdWx0JGEodGlja09wdHMuZm9udFNpemUsIGNvcmVfZGVmYXVsdHMuZ2xvYmFsLmRlZmF1bHRGb250U2l6ZSk7XG5cdFx0XHRcdGlubmVyRGltZW5zaW9uIC09IG9mZnNldDtcblx0XHRcdFx0c3RhcnQgPSBmaXJzdFRpY2tWYWx1ZTtcblx0XHRcdH1cblx0XHRcdGlmICh2YWx1ZSAhPT0gMCkge1xuXHRcdFx0XHRvZmZzZXQgKz0gaW5uZXJEaW1lbnNpb24gLyAobG9nMTAoZW5kKSAtIGxvZzEwKHN0YXJ0KSkgKiAobG9nMTAodmFsdWUpIC0gbG9nMTAoc3RhcnQpKTtcblx0XHRcdH1cblx0XHRcdHBpeGVsICs9IHNpZ24gKiBvZmZzZXQ7XG5cdFx0fVxuXHRcdHJldHVybiBwaXhlbDtcblx0fSxcblxuXHRnZXRWYWx1ZUZvclBpeGVsOiBmdW5jdGlvbihwaXhlbCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIHRpY2tPcHRzID0gbWUub3B0aW9ucy50aWNrcztcblx0XHR2YXIgcmV2ZXJzZSA9IHRpY2tPcHRzLnJldmVyc2U7XG5cdFx0dmFyIGxvZzEwID0gaGVscGVycyQxLmxvZzEwO1xuXHRcdHZhciBmaXJzdFRpY2tWYWx1ZSA9IG1lLl9nZXRGaXJzdFRpY2tWYWx1ZShtZS5taW5Ob3RaZXJvKTtcblx0XHR2YXIgaW5uZXJEaW1lbnNpb24sIHN0YXJ0LCBlbmQsIHZhbHVlO1xuXG5cdFx0aWYgKHJldmVyc2UpIHtcblx0XHRcdHN0YXJ0ID0gbWUuZW5kO1xuXHRcdFx0ZW5kID0gbWUuc3RhcnQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN0YXJ0ID0gbWUuc3RhcnQ7XG5cdFx0XHRlbmQgPSBtZS5lbmQ7XG5cdFx0fVxuXHRcdGlmIChtZS5pc0hvcml6b250YWwoKSkge1xuXHRcdFx0aW5uZXJEaW1lbnNpb24gPSBtZS53aWR0aDtcblx0XHRcdHZhbHVlID0gcmV2ZXJzZSA/IG1lLnJpZ2h0IC0gcGl4ZWwgOiBwaXhlbCAtIG1lLmxlZnQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlubmVyRGltZW5zaW9uID0gbWUuaGVpZ2h0O1xuXHRcdFx0dmFsdWUgPSByZXZlcnNlID8gcGl4ZWwgLSBtZS50b3AgOiBtZS5ib3R0b20gLSBwaXhlbDtcblx0XHR9XG5cdFx0aWYgKHZhbHVlICE9PSBzdGFydCkge1xuXHRcdFx0aWYgKHN0YXJ0ID09PSAwKSB7IC8vIGluY2x1ZGUgemVybyB0aWNrXG5cdFx0XHRcdHZhciBvZmZzZXQgPSB2YWx1ZU9yRGVmYXVsdCRhKHRpY2tPcHRzLmZvbnRTaXplLCBjb3JlX2RlZmF1bHRzLmdsb2JhbC5kZWZhdWx0Rm9udFNpemUpO1xuXHRcdFx0XHR2YWx1ZSAtPSBvZmZzZXQ7XG5cdFx0XHRcdGlubmVyRGltZW5zaW9uIC09IG9mZnNldDtcblx0XHRcdFx0c3RhcnQgPSBmaXJzdFRpY2tWYWx1ZTtcblx0XHRcdH1cblx0XHRcdHZhbHVlICo9IGxvZzEwKGVuZCkgLSBsb2cxMChzdGFydCk7XG5cdFx0XHR2YWx1ZSAvPSBpbm5lckRpbWVuc2lvbjtcblx0XHRcdHZhbHVlID0gTWF0aC5wb3coMTAsIGxvZzEwKHN0YXJ0KSArIHZhbHVlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9XG59KTtcblxuLy8gSU5URVJOQUw6IHN0YXRpYyBkZWZhdWx0IG9wdGlvbnMsIHJlZ2lzdGVyZWQgaW4gc3JjL2luZGV4LmpzXG52YXIgX2RlZmF1bHRzJDIgPSBkZWZhdWx0Q29uZmlnJDI7XG5zY2FsZV9sb2dhcml0aG1pYy5fZGVmYXVsdHMgPSBfZGVmYXVsdHMkMjtcblxudmFyIHZhbHVlT3JEZWZhdWx0JGIgPSBoZWxwZXJzJDEudmFsdWVPckRlZmF1bHQ7XG52YXIgdmFsdWVBdEluZGV4T3JEZWZhdWx0JDEgPSBoZWxwZXJzJDEudmFsdWVBdEluZGV4T3JEZWZhdWx0O1xudmFyIHJlc29sdmUkNyA9IGhlbHBlcnMkMS5vcHRpb25zLnJlc29sdmU7XG5cbnZhciBkZWZhdWx0Q29uZmlnJDMgPSB7XG5cdGRpc3BsYXk6IHRydWUsXG5cblx0Ly8gQm9vbGVhbiAtIFdoZXRoZXIgdG8gYW5pbWF0ZSBzY2FsaW5nIHRoZSBjaGFydCBmcm9tIHRoZSBjZW50cmVcblx0YW5pbWF0ZTogdHJ1ZSxcblx0cG9zaXRpb246ICdjaGFydEFyZWEnLFxuXG5cdGFuZ2xlTGluZXM6IHtcblx0XHRkaXNwbGF5OiB0cnVlLFxuXHRcdGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjEpJyxcblx0XHRsaW5lV2lkdGg6IDEsXG5cdFx0Ym9yZGVyRGFzaDogW10sXG5cdFx0Ym9yZGVyRGFzaE9mZnNldDogMC4wXG5cdH0sXG5cblx0Z3JpZExpbmVzOiB7XG5cdFx0Y2lyY3VsYXI6IGZhbHNlXG5cdH0sXG5cblx0Ly8gbGFiZWwgc2V0dGluZ3Ncblx0dGlja3M6IHtcblx0XHQvLyBCb29sZWFuIC0gU2hvdyBhIGJhY2tkcm9wIHRvIHRoZSBzY2FsZSBsYWJlbFxuXHRcdHNob3dMYWJlbEJhY2tkcm9wOiB0cnVlLFxuXG5cdFx0Ly8gU3RyaW5nIC0gVGhlIGNvbG91ciBvZiB0aGUgbGFiZWwgYmFja2Ryb3Bcblx0XHRiYWNrZHJvcENvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwwLjc1KScsXG5cblx0XHQvLyBOdW1iZXIgLSBUaGUgYmFja2Ryb3AgcGFkZGluZyBhYm92ZSAmIGJlbG93IHRoZSBsYWJlbCBpbiBwaXhlbHNcblx0XHRiYWNrZHJvcFBhZGRpbmdZOiAyLFxuXG5cdFx0Ly8gTnVtYmVyIC0gVGhlIGJhY2tkcm9wIHBhZGRpbmcgdG8gdGhlIHNpZGUgb2YgdGhlIGxhYmVsIGluIHBpeGVsc1xuXHRcdGJhY2tkcm9wUGFkZGluZ1g6IDIsXG5cblx0XHRjYWxsYmFjazogY29yZV90aWNrcy5mb3JtYXR0ZXJzLmxpbmVhclxuXHR9LFxuXG5cdHBvaW50TGFiZWxzOiB7XG5cdFx0Ly8gQm9vbGVhbiAtIGlmIHRydWUsIHNob3cgcG9pbnQgbGFiZWxzXG5cdFx0ZGlzcGxheTogdHJ1ZSxcblxuXHRcdC8vIE51bWJlciAtIFBvaW50IGxhYmVsIGZvbnQgc2l6ZSBpbiBwaXhlbHNcblx0XHRmb250U2l6ZTogMTAsXG5cblx0XHQvLyBGdW5jdGlvbiAtIFVzZWQgdG8gY29udmVydCBwb2ludCBsYWJlbHNcblx0XHRjYWxsYmFjazogZnVuY3Rpb24obGFiZWwpIHtcblx0XHRcdHJldHVybiBsYWJlbDtcblx0XHR9XG5cdH1cbn07XG5cbmZ1bmN0aW9uIGdldFZhbHVlQ291bnQoc2NhbGUpIHtcblx0dmFyIG9wdHMgPSBzY2FsZS5vcHRpb25zO1xuXHRyZXR1cm4gb3B0cy5hbmdsZUxpbmVzLmRpc3BsYXkgfHwgb3B0cy5wb2ludExhYmVscy5kaXNwbGF5ID8gc2NhbGUuY2hhcnQuZGF0YS5sYWJlbHMubGVuZ3RoIDogMDtcbn1cblxuZnVuY3Rpb24gZ2V0VGlja0JhY2tkcm9wSGVpZ2h0KG9wdHMpIHtcblx0dmFyIHRpY2tPcHRzID0gb3B0cy50aWNrcztcblxuXHRpZiAodGlja09wdHMuZGlzcGxheSAmJiBvcHRzLmRpc3BsYXkpIHtcblx0XHRyZXR1cm4gdmFsdWVPckRlZmF1bHQkYih0aWNrT3B0cy5mb250U2l6ZSwgY29yZV9kZWZhdWx0cy5nbG9iYWwuZGVmYXVsdEZvbnRTaXplKSArIHRpY2tPcHRzLmJhY2tkcm9wUGFkZGluZ1kgKiAyO1xuXHR9XG5cdHJldHVybiAwO1xufVxuXG5mdW5jdGlvbiBtZWFzdXJlTGFiZWxTaXplKGN0eCwgbGluZUhlaWdodCwgbGFiZWwpIHtcblx0aWYgKGhlbHBlcnMkMS5pc0FycmF5KGxhYmVsKSkge1xuXHRcdHJldHVybiB7XG5cdFx0XHR3OiBoZWxwZXJzJDEubG9uZ2VzdFRleHQoY3R4LCBjdHguZm9udCwgbGFiZWwpLFxuXHRcdFx0aDogbGFiZWwubGVuZ3RoICogbGluZUhlaWdodFxuXHRcdH07XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdHc6IGN0eC5tZWFzdXJlVGV4dChsYWJlbCkud2lkdGgsXG5cdFx0aDogbGluZUhlaWdodFxuXHR9O1xufVxuXG5mdW5jdGlvbiBkZXRlcm1pbmVMaW1pdHMoYW5nbGUsIHBvcywgc2l6ZSwgbWluLCBtYXgpIHtcblx0aWYgKGFuZ2xlID09PSBtaW4gfHwgYW5nbGUgPT09IG1heCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRzdGFydDogcG9zIC0gKHNpemUgLyAyKSxcblx0XHRcdGVuZDogcG9zICsgKHNpemUgLyAyKVxuXHRcdH07XG5cdH0gZWxzZSBpZiAoYW5nbGUgPCBtaW4gfHwgYW5nbGUgPiBtYXgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0c3RhcnQ6IHBvcyAtIHNpemUsXG5cdFx0XHRlbmQ6IHBvc1xuXHRcdH07XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdHN0YXJ0OiBwb3MsXG5cdFx0ZW5kOiBwb3MgKyBzaXplXG5cdH07XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGZpdCBhIHJhZGlhbCBsaW5lYXIgc2NhbGUgd2l0aCBwb2ludCBsYWJlbHNcbiAqL1xuZnVuY3Rpb24gZml0V2l0aFBvaW50TGFiZWxzKHNjYWxlKSB7XG5cblx0Ly8gUmlnaHQsIHRoaXMgaXMgcmVhbGx5IGNvbmZ1c2luZyBhbmQgdGhlcmUgaXMgYSBsb3Qgb2YgbWF0aHMgZ29pbmcgb24gaGVyZVxuXHQvLyBUaGUgZ2lzdCBvZiB0aGUgcHJvYmxlbSBpcyBoZXJlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9ubm5pY2svNjk2Y2M5YzU1ZjRiMGJlYjhmZTlcblx0Ly9cblx0Ly8gUmVhY3Rpb246IGh0dHBzOi8vZGwuZHJvcGJveHVzZXJjb250ZW50LmNvbS91LzM0NjAxMzYzL3Rvb211Y2hzY2llbmNlLmdpZlxuXHQvL1xuXHQvLyBTb2x1dGlvbjpcblx0Ly9cblx0Ly8gV2UgYXNzdW1lIHRoZSByYWRpdXMgb2YgdGhlIHBvbHlnb24gaXMgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgY2FudmFzIGF0IGZpcnN0XG5cdC8vIGF0IGVhY2ggaW5kZXggd2UgY2hlY2sgaWYgdGhlIHRleHQgb3ZlcmxhcHMuXG5cdC8vXG5cdC8vIFdoZXJlIGl0IGRvZXMsIHdlIHN0b3JlIHRoYXQgYW5nbGUgYW5kIHRoYXQgaW5kZXguXG5cdC8vXG5cdC8vIEFmdGVyIGZpbmRpbmcgdGhlIGxhcmdlc3QgaW5kZXggYW5kIGFuZ2xlIHdlIGNhbGN1bGF0ZSBob3cgbXVjaCB3ZSBuZWVkIHRvIHJlbW92ZVxuXHQvLyBmcm9tIHRoZSBzaGFwZSByYWRpdXMgdG8gbW92ZSB0aGUgcG9pbnQgaW53YXJkcyBieSB0aGF0IHguXG5cdC8vXG5cdC8vIFdlIGF2ZXJhZ2UgdGhlIGxlZnQgYW5kIHJpZ2h0IGRpc3RhbmNlcyB0byBnZXQgdGhlIG1heGltdW0gc2hhcGUgcmFkaXVzIHRoYXQgY2FuIGZpdCBpbiB0aGUgYm94XG5cdC8vIGFsb25nIHdpdGggbGFiZWxzLlxuXHQvL1xuXHQvLyBPbmNlIHdlIGhhdmUgdGhhdCwgd2UgY2FuIGZpbmQgdGhlIGNlbnRyZSBwb2ludCBmb3IgdGhlIGNoYXJ0LCBieSB0YWtpbmcgdGhlIHggdGV4dCBwcm90cnVzaW9uXG5cdC8vIG9uIGVhY2ggc2lkZSwgcmVtb3ZpbmcgdGhhdCBmcm9tIHRoZSBzaXplLCBoYWx2aW5nIGl0IGFuZCBhZGRpbmcgdGhlIGxlZnQgeCBwcm90cnVzaW9uIHdpZHRoLlxuXHQvL1xuXHQvLyBUaGlzIHdpbGwgbWVhbiB3ZSBoYXZlIGEgc2hhcGUgZml0dGVkIHRvIHRoZSBjYW52YXMsIGFzIGxhcmdlIGFzIGl0IGNhbiBiZSB3aXRoIHRoZSBsYWJlbHNcblx0Ly8gYW5kIHBvc2l0aW9uIGl0IGluIHRoZSBtb3N0IHNwYWNlIGVmZmljaWVudCBtYW5uZXJcblx0Ly9cblx0Ly8gaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tL3UvMzQ2MDEzNjMveWVhaHNjaWVuY2UuZ2lmXG5cblx0dmFyIHBsRm9udCA9IGhlbHBlcnMkMS5vcHRpb25zLl9wYXJzZUZvbnQoc2NhbGUub3B0aW9ucy5wb2ludExhYmVscyk7XG5cblx0Ly8gR2V0IG1heGltdW0gcmFkaXVzIG9mIHRoZSBwb2x5Z29uLiBFaXRoZXIgaGFsZiB0aGUgaGVpZ2h0IChtaW51cyB0aGUgdGV4dCB3aWR0aCkgb3IgaGFsZiB0aGUgd2lkdGguXG5cdC8vIFVzZSB0aGlzIHRvIGNhbGN1bGF0ZSB0aGUgb2Zmc2V0ICsgY2hhbmdlLiAtIE1ha2Ugc3VyZSBML1IgcHJvdHJ1c2lvbiBpcyBhdCBsZWFzdCAwIHRvIHN0b3AgaXNzdWVzIHdpdGggY2VudHJlIHBvaW50c1xuXHR2YXIgZnVydGhlc3RMaW1pdHMgPSB7XG5cdFx0bDogMCxcblx0XHRyOiBzY2FsZS53aWR0aCxcblx0XHR0OiAwLFxuXHRcdGI6IHNjYWxlLmhlaWdodCAtIHNjYWxlLnBhZGRpbmdUb3Bcblx0fTtcblx0dmFyIGZ1cnRoZXN0QW5nbGVzID0ge307XG5cdHZhciBpLCB0ZXh0U2l6ZSwgcG9pbnRQb3NpdGlvbjtcblxuXHRzY2FsZS5jdHguZm9udCA9IHBsRm9udC5zdHJpbmc7XG5cdHNjYWxlLl9wb2ludExhYmVsU2l6ZXMgPSBbXTtcblxuXHR2YXIgdmFsdWVDb3VudCA9IGdldFZhbHVlQ291bnQoc2NhbGUpO1xuXHRmb3IgKGkgPSAwOyBpIDwgdmFsdWVDb3VudDsgaSsrKSB7XG5cdFx0cG9pbnRQb3NpdGlvbiA9IHNjYWxlLmdldFBvaW50UG9zaXRpb24oaSwgc2NhbGUuZHJhd2luZ0FyZWEgKyA1KTtcblx0XHR0ZXh0U2l6ZSA9IG1lYXN1cmVMYWJlbFNpemUoc2NhbGUuY3R4LCBwbEZvbnQubGluZUhlaWdodCwgc2NhbGUucG9pbnRMYWJlbHNbaV0gfHwgJycpO1xuXHRcdHNjYWxlLl9wb2ludExhYmVsU2l6ZXNbaV0gPSB0ZXh0U2l6ZTtcblxuXHRcdC8vIEFkZCBxdWFydGVyIGNpcmNsZSB0byBtYWtlIGRlZ3JlZSAwIG1lYW4gdG9wIG9mIGNpcmNsZVxuXHRcdHZhciBhbmdsZVJhZGlhbnMgPSBzY2FsZS5nZXRJbmRleEFuZ2xlKGkpO1xuXHRcdHZhciBhbmdsZSA9IGhlbHBlcnMkMS50b0RlZ3JlZXMoYW5nbGVSYWRpYW5zKSAlIDM2MDtcblx0XHR2YXIgaExpbWl0cyA9IGRldGVybWluZUxpbWl0cyhhbmdsZSwgcG9pbnRQb3NpdGlvbi54LCB0ZXh0U2l6ZS53LCAwLCAxODApO1xuXHRcdHZhciB2TGltaXRzID0gZGV0ZXJtaW5lTGltaXRzKGFuZ2xlLCBwb2ludFBvc2l0aW9uLnksIHRleHRTaXplLmgsIDkwLCAyNzApO1xuXG5cdFx0aWYgKGhMaW1pdHMuc3RhcnQgPCBmdXJ0aGVzdExpbWl0cy5sKSB7XG5cdFx0XHRmdXJ0aGVzdExpbWl0cy5sID0gaExpbWl0cy5zdGFydDtcblx0XHRcdGZ1cnRoZXN0QW5nbGVzLmwgPSBhbmdsZVJhZGlhbnM7XG5cdFx0fVxuXG5cdFx0aWYgKGhMaW1pdHMuZW5kID4gZnVydGhlc3RMaW1pdHMucikge1xuXHRcdFx0ZnVydGhlc3RMaW1pdHMuciA9IGhMaW1pdHMuZW5kO1xuXHRcdFx0ZnVydGhlc3RBbmdsZXMuciA9IGFuZ2xlUmFkaWFucztcblx0XHR9XG5cblx0XHRpZiAodkxpbWl0cy5zdGFydCA8IGZ1cnRoZXN0TGltaXRzLnQpIHtcblx0XHRcdGZ1cnRoZXN0TGltaXRzLnQgPSB2TGltaXRzLnN0YXJ0O1xuXHRcdFx0ZnVydGhlc3RBbmdsZXMudCA9IGFuZ2xlUmFkaWFucztcblx0XHR9XG5cblx0XHRpZiAodkxpbWl0cy5lbmQgPiBmdXJ0aGVzdExpbWl0cy5iKSB7XG5cdFx0XHRmdXJ0aGVzdExpbWl0cy5iID0gdkxpbWl0cy5lbmQ7XG5cdFx0XHRmdXJ0aGVzdEFuZ2xlcy5iID0gYW5nbGVSYWRpYW5zO1xuXHRcdH1cblx0fVxuXG5cdHNjYWxlLnNldFJlZHVjdGlvbnMoc2NhbGUuZHJhd2luZ0FyZWEsIGZ1cnRoZXN0TGltaXRzLCBmdXJ0aGVzdEFuZ2xlcyk7XG59XG5cbmZ1bmN0aW9uIGdldFRleHRBbGlnbkZvckFuZ2xlKGFuZ2xlKSB7XG5cdGlmIChhbmdsZSA9PT0gMCB8fCBhbmdsZSA9PT0gMTgwKSB7XG5cdFx0cmV0dXJuICdjZW50ZXInO1xuXHR9IGVsc2UgaWYgKGFuZ2xlIDwgMTgwKSB7XG5cdFx0cmV0dXJuICdsZWZ0Jztcblx0fVxuXG5cdHJldHVybiAncmlnaHQnO1xufVxuXG5mdW5jdGlvbiBmaWxsVGV4dChjdHgsIHRleHQsIHBvc2l0aW9uLCBsaW5lSGVpZ2h0KSB7XG5cdHZhciB5ID0gcG9zaXRpb24ueSArIGxpbmVIZWlnaHQgLyAyO1xuXHR2YXIgaSwgaWxlbjtcblxuXHRpZiAoaGVscGVycyQxLmlzQXJyYXkodGV4dCkpIHtcblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gdGV4dC5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdGN0eC5maWxsVGV4dCh0ZXh0W2ldLCBwb3NpdGlvbi54LCB5KTtcblx0XHRcdHkgKz0gbGluZUhlaWdodDtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Y3R4LmZpbGxUZXh0KHRleHQsIHBvc2l0aW9uLngsIHkpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGFkanVzdFBvaW50UG9zaXRpb25Gb3JMYWJlbEhlaWdodChhbmdsZSwgdGV4dFNpemUsIHBvc2l0aW9uKSB7XG5cdGlmIChhbmdsZSA9PT0gOTAgfHwgYW5nbGUgPT09IDI3MCkge1xuXHRcdHBvc2l0aW9uLnkgLT0gKHRleHRTaXplLmggLyAyKTtcblx0fSBlbHNlIGlmIChhbmdsZSA+IDI3MCB8fCBhbmdsZSA8IDkwKSB7XG5cdFx0cG9zaXRpb24ueSAtPSB0ZXh0U2l6ZS5oO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGRyYXdQb2ludExhYmVscyhzY2FsZSkge1xuXHR2YXIgY3R4ID0gc2NhbGUuY3R4O1xuXHR2YXIgb3B0cyA9IHNjYWxlLm9wdGlvbnM7XG5cdHZhciBhbmdsZUxpbmVPcHRzID0gb3B0cy5hbmdsZUxpbmVzO1xuXHR2YXIgZ3JpZExpbmVPcHRzID0gb3B0cy5ncmlkTGluZXM7XG5cdHZhciBwb2ludExhYmVsT3B0cyA9IG9wdHMucG9pbnRMYWJlbHM7XG5cdHZhciBsaW5lV2lkdGggPSB2YWx1ZU9yRGVmYXVsdCRiKGFuZ2xlTGluZU9wdHMubGluZVdpZHRoLCBncmlkTGluZU9wdHMubGluZVdpZHRoKTtcblx0dmFyIGxpbmVDb2xvciA9IHZhbHVlT3JEZWZhdWx0JGIoYW5nbGVMaW5lT3B0cy5jb2xvciwgZ3JpZExpbmVPcHRzLmNvbG9yKTtcblx0dmFyIHRpY2tCYWNrZHJvcEhlaWdodCA9IGdldFRpY2tCYWNrZHJvcEhlaWdodChvcHRzKTtcblxuXHRjdHguc2F2ZSgpO1xuXHRjdHgubGluZVdpZHRoID0gbGluZVdpZHRoO1xuXHRjdHguc3Ryb2tlU3R5bGUgPSBsaW5lQ29sb3I7XG5cdGlmIChjdHguc2V0TGluZURhc2gpIHtcblx0XHRjdHguc2V0TGluZURhc2gocmVzb2x2ZSQ3KFthbmdsZUxpbmVPcHRzLmJvcmRlckRhc2gsIGdyaWRMaW5lT3B0cy5ib3JkZXJEYXNoLCBbXV0pKTtcblx0XHRjdHgubGluZURhc2hPZmZzZXQgPSByZXNvbHZlJDcoW2FuZ2xlTGluZU9wdHMuYm9yZGVyRGFzaE9mZnNldCwgZ3JpZExpbmVPcHRzLmJvcmRlckRhc2hPZmZzZXQsIDAuMF0pO1xuXHR9XG5cblx0dmFyIG91dGVyRGlzdGFuY2UgPSBzY2FsZS5nZXREaXN0YW5jZUZyb21DZW50ZXJGb3JWYWx1ZShvcHRzLnRpY2tzLnJldmVyc2UgPyBzY2FsZS5taW4gOiBzY2FsZS5tYXgpO1xuXG5cdC8vIFBvaW50IExhYmVsIEZvbnRcblx0dmFyIHBsRm9udCA9IGhlbHBlcnMkMS5vcHRpb25zLl9wYXJzZUZvbnQocG9pbnRMYWJlbE9wdHMpO1xuXG5cdGN0eC5mb250ID0gcGxGb250LnN0cmluZztcblx0Y3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuXG5cdGZvciAodmFyIGkgPSBnZXRWYWx1ZUNvdW50KHNjYWxlKSAtIDE7IGkgPj0gMDsgaS0tKSB7XG5cdFx0aWYgKGFuZ2xlTGluZU9wdHMuZGlzcGxheSAmJiBsaW5lV2lkdGggJiYgbGluZUNvbG9yKSB7XG5cdFx0XHR2YXIgb3V0ZXJQb3NpdGlvbiA9IHNjYWxlLmdldFBvaW50UG9zaXRpb24oaSwgb3V0ZXJEaXN0YW5jZSk7XG5cdFx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0XHRjdHgubW92ZVRvKHNjYWxlLnhDZW50ZXIsIHNjYWxlLnlDZW50ZXIpO1xuXHRcdFx0Y3R4LmxpbmVUbyhvdXRlclBvc2l0aW9uLngsIG91dGVyUG9zaXRpb24ueSk7XG5cdFx0XHRjdHguc3Ryb2tlKCk7XG5cdFx0fVxuXG5cdFx0aWYgKHBvaW50TGFiZWxPcHRzLmRpc3BsYXkpIHtcblx0XHRcdC8vIEV4dHJhIHBpeGVscyBvdXQgZm9yIHNvbWUgbGFiZWwgc3BhY2luZ1xuXHRcdFx0dmFyIGV4dHJhID0gKGkgPT09IDAgPyB0aWNrQmFja2Ryb3BIZWlnaHQgLyAyIDogMCk7XG5cdFx0XHR2YXIgcG9pbnRMYWJlbFBvc2l0aW9uID0gc2NhbGUuZ2V0UG9pbnRQb3NpdGlvbihpLCBvdXRlckRpc3RhbmNlICsgZXh0cmEgKyA1KTtcblxuXHRcdFx0Ly8gS2VlcCB0aGlzIGluIGxvb3Agc2luY2Ugd2UgbWF5IHN1cHBvcnQgYXJyYXkgcHJvcGVydGllcyBoZXJlXG5cdFx0XHR2YXIgcG9pbnRMYWJlbEZvbnRDb2xvciA9IHZhbHVlQXRJbmRleE9yRGVmYXVsdCQxKHBvaW50TGFiZWxPcHRzLmZvbnRDb2xvciwgaSwgY29yZV9kZWZhdWx0cy5nbG9iYWwuZGVmYXVsdEZvbnRDb2xvcik7XG5cdFx0XHRjdHguZmlsbFN0eWxlID0gcG9pbnRMYWJlbEZvbnRDb2xvcjtcblxuXHRcdFx0dmFyIGFuZ2xlUmFkaWFucyA9IHNjYWxlLmdldEluZGV4QW5nbGUoaSk7XG5cdFx0XHR2YXIgYW5nbGUgPSBoZWxwZXJzJDEudG9EZWdyZWVzKGFuZ2xlUmFkaWFucyk7XG5cdFx0XHRjdHgudGV4dEFsaWduID0gZ2V0VGV4dEFsaWduRm9yQW5nbGUoYW5nbGUpO1xuXHRcdFx0YWRqdXN0UG9pbnRQb3NpdGlvbkZvckxhYmVsSGVpZ2h0KGFuZ2xlLCBzY2FsZS5fcG9pbnRMYWJlbFNpemVzW2ldLCBwb2ludExhYmVsUG9zaXRpb24pO1xuXHRcdFx0ZmlsbFRleHQoY3R4LCBzY2FsZS5wb2ludExhYmVsc1tpXSB8fCAnJywgcG9pbnRMYWJlbFBvc2l0aW9uLCBwbEZvbnQubGluZUhlaWdodCk7XG5cdFx0fVxuXHR9XG5cdGN0eC5yZXN0b3JlKCk7XG59XG5cbmZ1bmN0aW9uIGRyYXdSYWRpdXNMaW5lKHNjYWxlLCBncmlkTGluZU9wdHMsIHJhZGl1cywgaW5kZXgpIHtcblx0dmFyIGN0eCA9IHNjYWxlLmN0eDtcblx0dmFyIGNpcmN1bGFyID0gZ3JpZExpbmVPcHRzLmNpcmN1bGFyO1xuXHR2YXIgdmFsdWVDb3VudCA9IGdldFZhbHVlQ291bnQoc2NhbGUpO1xuXHR2YXIgbGluZUNvbG9yID0gdmFsdWVBdEluZGV4T3JEZWZhdWx0JDEoZ3JpZExpbmVPcHRzLmNvbG9yLCBpbmRleCAtIDEpO1xuXHR2YXIgbGluZVdpZHRoID0gdmFsdWVBdEluZGV4T3JEZWZhdWx0JDEoZ3JpZExpbmVPcHRzLmxpbmVXaWR0aCwgaW5kZXggLSAxKTtcblx0dmFyIHBvaW50UG9zaXRpb247XG5cblx0aWYgKCghY2lyY3VsYXIgJiYgIXZhbHVlQ291bnQpIHx8ICFsaW5lQ29sb3IgfHwgIWxpbmVXaWR0aCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGN0eC5zYXZlKCk7XG5cdGN0eC5zdHJva2VTdHlsZSA9IGxpbmVDb2xvcjtcblx0Y3R4LmxpbmVXaWR0aCA9IGxpbmVXaWR0aDtcblx0aWYgKGN0eC5zZXRMaW5lRGFzaCkge1xuXHRcdGN0eC5zZXRMaW5lRGFzaChncmlkTGluZU9wdHMuYm9yZGVyRGFzaCB8fCBbXSk7XG5cdFx0Y3R4LmxpbmVEYXNoT2Zmc2V0ID0gZ3JpZExpbmVPcHRzLmJvcmRlckRhc2hPZmZzZXQgfHwgMC4wO1xuXHR9XG5cblx0Y3R4LmJlZ2luUGF0aCgpO1xuXHRpZiAoY2lyY3VsYXIpIHtcblx0XHQvLyBEcmF3IGNpcmN1bGFyIGFyY3MgYmV0d2VlbiB0aGUgcG9pbnRzXG5cdFx0Y3R4LmFyYyhzY2FsZS54Q2VudGVyLCBzY2FsZS55Q2VudGVyLCByYWRpdXMsIDAsIE1hdGguUEkgKiAyKTtcblx0fSBlbHNlIHtcblx0XHQvLyBEcmF3IHN0cmFpZ2h0IGxpbmVzIGNvbm5lY3RpbmcgZWFjaCBpbmRleFxuXHRcdHBvaW50UG9zaXRpb24gPSBzY2FsZS5nZXRQb2ludFBvc2l0aW9uKDAsIHJhZGl1cyk7XG5cdFx0Y3R4Lm1vdmVUbyhwb2ludFBvc2l0aW9uLngsIHBvaW50UG9zaXRpb24ueSk7XG5cblx0XHRmb3IgKHZhciBpID0gMTsgaSA8IHZhbHVlQ291bnQ7IGkrKykge1xuXHRcdFx0cG9pbnRQb3NpdGlvbiA9IHNjYWxlLmdldFBvaW50UG9zaXRpb24oaSwgcmFkaXVzKTtcblx0XHRcdGN0eC5saW5lVG8ocG9pbnRQb3NpdGlvbi54LCBwb2ludFBvc2l0aW9uLnkpO1xuXHRcdH1cblx0fVxuXHRjdHguY2xvc2VQYXRoKCk7XG5cdGN0eC5zdHJva2UoKTtcblx0Y3R4LnJlc3RvcmUoKTtcbn1cblxuZnVuY3Rpb24gbnVtYmVyT3JaZXJvKHBhcmFtKSB7XG5cdHJldHVybiBoZWxwZXJzJDEuaXNOdW1iZXIocGFyYW0pID8gcGFyYW0gOiAwO1xufVxuXG52YXIgc2NhbGVfcmFkaWFsTGluZWFyID0gc2NhbGVfbGluZWFyYmFzZS5leHRlbmQoe1xuXHRzZXREaW1lbnNpb25zOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXG5cdFx0Ly8gU2V0IHRoZSB1bmNvbnN0cmFpbmVkIGRpbWVuc2lvbiBiZWZvcmUgbGFiZWwgcm90YXRpb25cblx0XHRtZS53aWR0aCA9IG1lLm1heFdpZHRoO1xuXHRcdG1lLmhlaWdodCA9IG1lLm1heEhlaWdodDtcblx0XHRtZS5wYWRkaW5nVG9wID0gZ2V0VGlja0JhY2tkcm9wSGVpZ2h0KG1lLm9wdGlvbnMpIC8gMjtcblx0XHRtZS54Q2VudGVyID0gTWF0aC5mbG9vcihtZS53aWR0aCAvIDIpO1xuXHRcdG1lLnlDZW50ZXIgPSBNYXRoLmZsb29yKChtZS5oZWlnaHQgLSBtZS5wYWRkaW5nVG9wKSAvIDIpO1xuXHRcdG1lLmRyYXdpbmdBcmVhID0gTWF0aC5taW4obWUuaGVpZ2h0IC0gbWUucGFkZGluZ1RvcCwgbWUud2lkdGgpIC8gMjtcblx0fSxcblxuXHRkZXRlcm1pbmVEYXRhTGltaXRzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBtaW4gPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG5cdFx0dmFyIG1heCA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTtcblxuXHRcdGhlbHBlcnMkMS5lYWNoKGNoYXJ0LmRhdGEuZGF0YXNldHMsIGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkge1xuXHRcdFx0aWYgKGNoYXJ0LmlzRGF0YXNldFZpc2libGUoZGF0YXNldEluZGV4KSkge1xuXHRcdFx0XHR2YXIgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XG5cblx0XHRcdFx0aGVscGVycyQxLmVhY2goZGF0YXNldC5kYXRhLCBmdW5jdGlvbihyYXdWYWx1ZSwgaW5kZXgpIHtcblx0XHRcdFx0XHR2YXIgdmFsdWUgPSArbWUuZ2V0UmlnaHRWYWx1ZShyYXdWYWx1ZSk7XG5cdFx0XHRcdFx0aWYgKGlzTmFOKHZhbHVlKSB8fCBtZXRhLmRhdGFbaW5kZXhdLmhpZGRlbikge1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdG1pbiA9IE1hdGgubWluKHZhbHVlLCBtaW4pO1xuXHRcdFx0XHRcdG1heCA9IE1hdGgubWF4KHZhbHVlLCBtYXgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdG1lLm1pbiA9IChtaW4gPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA/IDAgOiBtaW4pO1xuXHRcdG1lLm1heCA9IChtYXggPT09IE51bWJlci5ORUdBVElWRV9JTkZJTklUWSA/IDAgOiBtYXgpO1xuXG5cdFx0Ly8gQ29tbW9uIGJhc2UgaW1wbGVtZW50YXRpb24gdG8gaGFuZGxlIHRpY2tzLm1pbiwgdGlja3MubWF4LCB0aWNrcy5iZWdpbkF0WmVyb1xuXHRcdG1lLmhhbmRsZVRpY2tSYW5nZU9wdGlvbnMoKTtcblx0fSxcblxuXHQvLyBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiB0aWNrcyBiYXNlZCBvbiB0aGUgc2NhbGUgZGltZW5zaW9uXG5cdF9jb21wdXRlVGlja0xpbWl0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gTWF0aC5jZWlsKHRoaXMuZHJhd2luZ0FyZWEgLyBnZXRUaWNrQmFja2Ryb3BIZWlnaHQodGhpcy5vcHRpb25zKSk7XG5cdH0sXG5cblx0Y29udmVydFRpY2tzVG9MYWJlbHM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cblx0XHRzY2FsZV9saW5lYXJiYXNlLnByb3RvdHlwZS5jb252ZXJ0VGlja3NUb0xhYmVscy5jYWxsKG1lKTtcblxuXHRcdC8vIFBvaW50IGxhYmVsc1xuXHRcdG1lLnBvaW50TGFiZWxzID0gbWUuY2hhcnQuZGF0YS5sYWJlbHMubWFwKG1lLm9wdGlvbnMucG9pbnRMYWJlbHMuY2FsbGJhY2ssIG1lKTtcblx0fSxcblxuXHRnZXRMYWJlbEZvckluZGV4OiBmdW5jdGlvbihpbmRleCwgZGF0YXNldEluZGV4KSB7XG5cdFx0cmV0dXJuICt0aGlzLmdldFJpZ2h0VmFsdWUodGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0uZGF0YVtpbmRleF0pO1xuXHR9LFxuXG5cdGZpdDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgb3B0cyA9IG1lLm9wdGlvbnM7XG5cblx0XHRpZiAob3B0cy5kaXNwbGF5ICYmIG9wdHMucG9pbnRMYWJlbHMuZGlzcGxheSkge1xuXHRcdFx0Zml0V2l0aFBvaW50TGFiZWxzKG1lKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWUuc2V0Q2VudGVyUG9pbnQoMCwgMCwgMCwgMCk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBTZXQgcmFkaXVzIHJlZHVjdGlvbnMgYW5kIGRldGVybWluZSBuZXcgcmFkaXVzIGFuZCBjZW50ZXIgcG9pbnRcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHNldFJlZHVjdGlvbnM6IGZ1bmN0aW9uKGxhcmdlc3RQb3NzaWJsZVJhZGl1cywgZnVydGhlc3RMaW1pdHMsIGZ1cnRoZXN0QW5nbGVzKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgcmFkaXVzUmVkdWN0aW9uTGVmdCA9IGZ1cnRoZXN0TGltaXRzLmwgLyBNYXRoLnNpbihmdXJ0aGVzdEFuZ2xlcy5sKTtcblx0XHR2YXIgcmFkaXVzUmVkdWN0aW9uUmlnaHQgPSBNYXRoLm1heChmdXJ0aGVzdExpbWl0cy5yIC0gbWUud2lkdGgsIDApIC8gTWF0aC5zaW4oZnVydGhlc3RBbmdsZXMucik7XG5cdFx0dmFyIHJhZGl1c1JlZHVjdGlvblRvcCA9IC1mdXJ0aGVzdExpbWl0cy50IC8gTWF0aC5jb3MoZnVydGhlc3RBbmdsZXMudCk7XG5cdFx0dmFyIHJhZGl1c1JlZHVjdGlvbkJvdHRvbSA9IC1NYXRoLm1heChmdXJ0aGVzdExpbWl0cy5iIC0gKG1lLmhlaWdodCAtIG1lLnBhZGRpbmdUb3ApLCAwKSAvIE1hdGguY29zKGZ1cnRoZXN0QW5nbGVzLmIpO1xuXG5cdFx0cmFkaXVzUmVkdWN0aW9uTGVmdCA9IG51bWJlck9yWmVybyhyYWRpdXNSZWR1Y3Rpb25MZWZ0KTtcblx0XHRyYWRpdXNSZWR1Y3Rpb25SaWdodCA9IG51bWJlck9yWmVybyhyYWRpdXNSZWR1Y3Rpb25SaWdodCk7XG5cdFx0cmFkaXVzUmVkdWN0aW9uVG9wID0gbnVtYmVyT3JaZXJvKHJhZGl1c1JlZHVjdGlvblRvcCk7XG5cdFx0cmFkaXVzUmVkdWN0aW9uQm90dG9tID0gbnVtYmVyT3JaZXJvKHJhZGl1c1JlZHVjdGlvbkJvdHRvbSk7XG5cblx0XHRtZS5kcmF3aW5nQXJlYSA9IE1hdGgubWluKFxuXHRcdFx0TWF0aC5mbG9vcihsYXJnZXN0UG9zc2libGVSYWRpdXMgLSAocmFkaXVzUmVkdWN0aW9uTGVmdCArIHJhZGl1c1JlZHVjdGlvblJpZ2h0KSAvIDIpLFxuXHRcdFx0TWF0aC5mbG9vcihsYXJnZXN0UG9zc2libGVSYWRpdXMgLSAocmFkaXVzUmVkdWN0aW9uVG9wICsgcmFkaXVzUmVkdWN0aW9uQm90dG9tKSAvIDIpKTtcblx0XHRtZS5zZXRDZW50ZXJQb2ludChyYWRpdXNSZWR1Y3Rpb25MZWZ0LCByYWRpdXNSZWR1Y3Rpb25SaWdodCwgcmFkaXVzUmVkdWN0aW9uVG9wLCByYWRpdXNSZWR1Y3Rpb25Cb3R0b20pO1xuXHR9LFxuXG5cdHNldENlbnRlclBvaW50OiBmdW5jdGlvbihsZWZ0TW92ZW1lbnQsIHJpZ2h0TW92ZW1lbnQsIHRvcE1vdmVtZW50LCBib3R0b21Nb3ZlbWVudCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG1heFJpZ2h0ID0gbWUud2lkdGggLSByaWdodE1vdmVtZW50IC0gbWUuZHJhd2luZ0FyZWE7XG5cdFx0dmFyIG1heExlZnQgPSBsZWZ0TW92ZW1lbnQgKyBtZS5kcmF3aW5nQXJlYTtcblx0XHR2YXIgbWF4VG9wID0gdG9wTW92ZW1lbnQgKyBtZS5kcmF3aW5nQXJlYTtcblx0XHR2YXIgbWF4Qm90dG9tID0gKG1lLmhlaWdodCAtIG1lLnBhZGRpbmdUb3ApIC0gYm90dG9tTW92ZW1lbnQgLSBtZS5kcmF3aW5nQXJlYTtcblxuXHRcdG1lLnhDZW50ZXIgPSBNYXRoLmZsb29yKCgobWF4TGVmdCArIG1heFJpZ2h0KSAvIDIpICsgbWUubGVmdCk7XG5cdFx0bWUueUNlbnRlciA9IE1hdGguZmxvb3IoKChtYXhUb3AgKyBtYXhCb3R0b20pIC8gMikgKyBtZS50b3AgKyBtZS5wYWRkaW5nVG9wKTtcblx0fSxcblxuXHRnZXRJbmRleEFuZ2xlOiBmdW5jdGlvbihpbmRleCkge1xuXHRcdHZhciBhbmdsZU11bHRpcGxpZXIgPSAoTWF0aC5QSSAqIDIpIC8gZ2V0VmFsdWVDb3VudCh0aGlzKTtcblx0XHR2YXIgc3RhcnRBbmdsZSA9IHRoaXMuY2hhcnQub3B0aW9ucyAmJiB0aGlzLmNoYXJ0Lm9wdGlvbnMuc3RhcnRBbmdsZSA/XG5cdFx0XHR0aGlzLmNoYXJ0Lm9wdGlvbnMuc3RhcnRBbmdsZSA6XG5cdFx0XHQwO1xuXG5cdFx0dmFyIHN0YXJ0QW5nbGVSYWRpYW5zID0gc3RhcnRBbmdsZSAqIE1hdGguUEkgKiAyIC8gMzYwO1xuXG5cdFx0Ly8gU3RhcnQgZnJvbSB0aGUgdG9wIGluc3RlYWQgb2YgcmlnaHQsIHNvIHJlbW92ZSBhIHF1YXJ0ZXIgb2YgdGhlIGNpcmNsZVxuXHRcdHJldHVybiBpbmRleCAqIGFuZ2xlTXVsdGlwbGllciArIHN0YXJ0QW5nbGVSYWRpYW5zO1xuXHR9LFxuXG5cdGdldERpc3RhbmNlRnJvbUNlbnRlckZvclZhbHVlOiBmdW5jdGlvbih2YWx1ZSkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cblx0XHRpZiAodmFsdWUgPT09IG51bGwpIHtcblx0XHRcdHJldHVybiAwOyAvLyBudWxsIGFsd2F5cyBpbiBjZW50ZXJcblx0XHR9XG5cblx0XHQvLyBUYWtlIGludG8gYWNjb3VudCBoYWxmIGZvbnQgc2l6ZSArIHRoZSB5UGFkZGluZyBvZiB0aGUgdG9wIHZhbHVlXG5cdFx0dmFyIHNjYWxpbmdGYWN0b3IgPSBtZS5kcmF3aW5nQXJlYSAvIChtZS5tYXggLSBtZS5taW4pO1xuXHRcdGlmIChtZS5vcHRpb25zLnRpY2tzLnJldmVyc2UpIHtcblx0XHRcdHJldHVybiAobWUubWF4IC0gdmFsdWUpICogc2NhbGluZ0ZhY3Rvcjtcblx0XHR9XG5cdFx0cmV0dXJuICh2YWx1ZSAtIG1lLm1pbikgKiBzY2FsaW5nRmFjdG9yO1xuXHR9LFxuXG5cdGdldFBvaW50UG9zaXRpb246IGZ1bmN0aW9uKGluZGV4LCBkaXN0YW5jZUZyb21DZW50ZXIpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciB0aGlzQW5nbGUgPSBtZS5nZXRJbmRleEFuZ2xlKGluZGV4KSAtIChNYXRoLlBJIC8gMik7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHg6IE1hdGguY29zKHRoaXNBbmdsZSkgKiBkaXN0YW5jZUZyb21DZW50ZXIgKyBtZS54Q2VudGVyLFxuXHRcdFx0eTogTWF0aC5zaW4odGhpc0FuZ2xlKSAqIGRpc3RhbmNlRnJvbUNlbnRlciArIG1lLnlDZW50ZXJcblx0XHR9O1xuXHR9LFxuXG5cdGdldFBvaW50UG9zaXRpb25Gb3JWYWx1ZTogZnVuY3Rpb24oaW5kZXgsIHZhbHVlKSB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0UG9pbnRQb3NpdGlvbihpbmRleCwgdGhpcy5nZXREaXN0YW5jZUZyb21DZW50ZXJGb3JWYWx1ZSh2YWx1ZSkpO1xuXHR9LFxuXG5cdGdldEJhc2VQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgbWluID0gbWUubWluO1xuXHRcdHZhciBtYXggPSBtZS5tYXg7XG5cblx0XHRyZXR1cm4gbWUuZ2V0UG9pbnRQb3NpdGlvbkZvclZhbHVlKDAsXG5cdFx0XHRtZS5iZWdpbkF0WmVybyA/IDAgOlxuXHRcdFx0bWluIDwgMCAmJiBtYXggPCAwID8gbWF4IDpcblx0XHRcdG1pbiA+IDAgJiYgbWF4ID4gMCA/IG1pbiA6XG5cdFx0XHQwKTtcblx0fSxcblxuXHRkcmF3OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvcHRzID0gbWUub3B0aW9ucztcblx0XHR2YXIgZ3JpZExpbmVPcHRzID0gb3B0cy5ncmlkTGluZXM7XG5cdFx0dmFyIHRpY2tPcHRzID0gb3B0cy50aWNrcztcblxuXHRcdGlmIChvcHRzLmRpc3BsYXkpIHtcblx0XHRcdHZhciBjdHggPSBtZS5jdHg7XG5cdFx0XHR2YXIgc3RhcnRBbmdsZSA9IHRoaXMuZ2V0SW5kZXhBbmdsZSgwKTtcblx0XHRcdHZhciB0aWNrRm9udCA9IGhlbHBlcnMkMS5vcHRpb25zLl9wYXJzZUZvbnQodGlja09wdHMpO1xuXG5cdFx0XHRpZiAob3B0cy5hbmdsZUxpbmVzLmRpc3BsYXkgfHwgb3B0cy5wb2ludExhYmVscy5kaXNwbGF5KSB7XG5cdFx0XHRcdGRyYXdQb2ludExhYmVscyhtZSk7XG5cdFx0XHR9XG5cblx0XHRcdGhlbHBlcnMkMS5lYWNoKG1lLnRpY2tzLCBmdW5jdGlvbihsYWJlbCwgaW5kZXgpIHtcblx0XHRcdFx0Ly8gRG9uJ3QgZHJhdyBhIGNlbnRyZSB2YWx1ZSAoaWYgaXQgaXMgbWluaW11bSlcblx0XHRcdFx0aWYgKGluZGV4ID4gMCB8fCB0aWNrT3B0cy5yZXZlcnNlKSB7XG5cdFx0XHRcdFx0dmFyIHlDZW50ZXJPZmZzZXQgPSBtZS5nZXREaXN0YW5jZUZyb21DZW50ZXJGb3JWYWx1ZShtZS50aWNrc0FzTnVtYmVyc1tpbmRleF0pO1xuXG5cdFx0XHRcdFx0Ly8gRHJhdyBjaXJjdWxhciBsaW5lcyBhcm91bmQgdGhlIHNjYWxlXG5cdFx0XHRcdFx0aWYgKGdyaWRMaW5lT3B0cy5kaXNwbGF5ICYmIGluZGV4ICE9PSAwKSB7XG5cdFx0XHRcdFx0XHRkcmF3UmFkaXVzTGluZShtZSwgZ3JpZExpbmVPcHRzLCB5Q2VudGVyT2Zmc2V0LCBpbmRleCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKHRpY2tPcHRzLmRpc3BsYXkpIHtcblx0XHRcdFx0XHRcdHZhciB0aWNrRm9udENvbG9yID0gdmFsdWVPckRlZmF1bHQkYih0aWNrT3B0cy5mb250Q29sb3IsIGNvcmVfZGVmYXVsdHMuZ2xvYmFsLmRlZmF1bHRGb250Q29sb3IpO1xuXHRcdFx0XHRcdFx0Y3R4LmZvbnQgPSB0aWNrRm9udC5zdHJpbmc7XG5cblx0XHRcdFx0XHRcdGN0eC5zYXZlKCk7XG5cdFx0XHRcdFx0XHRjdHgudHJhbnNsYXRlKG1lLnhDZW50ZXIsIG1lLnlDZW50ZXIpO1xuXHRcdFx0XHRcdFx0Y3R4LnJvdGF0ZShzdGFydEFuZ2xlKTtcblxuXHRcdFx0XHRcdFx0aWYgKHRpY2tPcHRzLnNob3dMYWJlbEJhY2tkcm9wKSB7XG5cdFx0XHRcdFx0XHRcdHZhciBsYWJlbFdpZHRoID0gY3R4Lm1lYXN1cmVUZXh0KGxhYmVsKS53aWR0aDtcblx0XHRcdFx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRpY2tPcHRzLmJhY2tkcm9wQ29sb3I7XG5cdFx0XHRcdFx0XHRcdGN0eC5maWxsUmVjdChcblx0XHRcdFx0XHRcdFx0XHQtbGFiZWxXaWR0aCAvIDIgLSB0aWNrT3B0cy5iYWNrZHJvcFBhZGRpbmdYLFxuXHRcdFx0XHRcdFx0XHRcdC15Q2VudGVyT2Zmc2V0IC0gdGlja0ZvbnQuc2l6ZSAvIDIgLSB0aWNrT3B0cy5iYWNrZHJvcFBhZGRpbmdZLFxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsV2lkdGggKyB0aWNrT3B0cy5iYWNrZHJvcFBhZGRpbmdYICogMixcblx0XHRcdFx0XHRcdFx0XHR0aWNrRm9udC5zaXplICsgdGlja09wdHMuYmFja2Ryb3BQYWRkaW5nWSAqIDJcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Y3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdFx0XHRcdFx0Y3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuXHRcdFx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRpY2tGb250Q29sb3I7XG5cdFx0XHRcdFx0XHRjdHguZmlsbFRleHQobGFiZWwsIDAsIC15Q2VudGVyT2Zmc2V0KTtcblx0XHRcdFx0XHRcdGN0eC5yZXN0b3JlKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn0pO1xuXG4vLyBJTlRFUk5BTDogc3RhdGljIGRlZmF1bHQgb3B0aW9ucywgcmVnaXN0ZXJlZCBpbiBzcmMvaW5kZXguanNcbnZhciBfZGVmYXVsdHMkMyA9IGRlZmF1bHRDb25maWckMztcbnNjYWxlX3JhZGlhbExpbmVhci5fZGVmYXVsdHMgPSBfZGVmYXVsdHMkMztcblxudmFyIHZhbHVlT3JEZWZhdWx0JGMgPSBoZWxwZXJzJDEudmFsdWVPckRlZmF1bHQ7XG5cbi8vIEludGVnZXIgY29uc3RhbnRzIGFyZSBmcm9tIHRoZSBFUzYgc3BlYy5cbnZhciBNSU5fSU5URUdFUiA9IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSIHx8IC05MDA3MTk5MjU0NzQwOTkxO1xudmFyIE1BWF9JTlRFR0VSID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgOTAwNzE5OTI1NDc0MDk5MTtcblxudmFyIElOVEVSVkFMUyA9IHtcblx0bWlsbGlzZWNvbmQ6IHtcblx0XHRjb21tb246IHRydWUsXG5cdFx0c2l6ZTogMSxcblx0XHRzdGVwczogWzEsIDIsIDUsIDEwLCAyMCwgNTAsIDEwMCwgMjUwLCA1MDBdXG5cdH0sXG5cdHNlY29uZDoge1xuXHRcdGNvbW1vbjogdHJ1ZSxcblx0XHRzaXplOiAxMDAwLFxuXHRcdHN0ZXBzOiBbMSwgMiwgNSwgMTAsIDE1LCAzMF1cblx0fSxcblx0bWludXRlOiB7XG5cdFx0Y29tbW9uOiB0cnVlLFxuXHRcdHNpemU6IDYwMDAwLFxuXHRcdHN0ZXBzOiBbMSwgMiwgNSwgMTAsIDE1LCAzMF1cblx0fSxcblx0aG91cjoge1xuXHRcdGNvbW1vbjogdHJ1ZSxcblx0XHRzaXplOiAzNjAwMDAwLFxuXHRcdHN0ZXBzOiBbMSwgMiwgMywgNiwgMTJdXG5cdH0sXG5cdGRheToge1xuXHRcdGNvbW1vbjogdHJ1ZSxcblx0XHRzaXplOiA4NjQwMDAwMCxcblx0XHRzdGVwczogWzEsIDIsIDVdXG5cdH0sXG5cdHdlZWs6IHtcblx0XHRjb21tb246IGZhbHNlLFxuXHRcdHNpemU6IDYwNDgwMDAwMCxcblx0XHRzdGVwczogWzEsIDIsIDMsIDRdXG5cdH0sXG5cdG1vbnRoOiB7XG5cdFx0Y29tbW9uOiB0cnVlLFxuXHRcdHNpemU6IDIuNjI4ZTksXG5cdFx0c3RlcHM6IFsxLCAyLCAzXVxuXHR9LFxuXHRxdWFydGVyOiB7XG5cdFx0Y29tbW9uOiBmYWxzZSxcblx0XHRzaXplOiA3Ljg4NGU5LFxuXHRcdHN0ZXBzOiBbMSwgMiwgMywgNF1cblx0fSxcblx0eWVhcjoge1xuXHRcdGNvbW1vbjogdHJ1ZSxcblx0XHRzaXplOiAzLjE1NGUxMFxuXHR9XG59O1xuXG52YXIgVU5JVFMgPSBPYmplY3Qua2V5cyhJTlRFUlZBTFMpO1xuXG5mdW5jdGlvbiBzb3J0ZXIoYSwgYikge1xuXHRyZXR1cm4gYSAtIGI7XG59XG5cbmZ1bmN0aW9uIGFycmF5VW5pcXVlKGl0ZW1zKSB7XG5cdHZhciBoYXNoID0ge307XG5cdHZhciBvdXQgPSBbXTtcblx0dmFyIGksIGlsZW4sIGl0ZW07XG5cblx0Zm9yIChpID0gMCwgaWxlbiA9IGl0ZW1zLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdGl0ZW0gPSBpdGVtc1tpXTtcblx0XHRpZiAoIWhhc2hbaXRlbV0pIHtcblx0XHRcdGhhc2hbaXRlbV0gPSB0cnVlO1xuXHRcdFx0b3V0LnB1c2goaXRlbSk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG91dDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IG9mIHt0aW1lLCBwb3N9IG9iamVjdHMgdXNlZCB0byBpbnRlcnBvbGF0ZSBhIHNwZWNpZmljIGB0aW1lYCBvciBwb3NpdGlvblxuICogKGBwb3NgKSBvbiB0aGUgc2NhbGUsIGJ5IHNlYXJjaGluZyBlbnRyaWVzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHJlcXVlc3RlZCB2YWx1ZS4gYHBvc2AgaXNcbiAqIGEgZGVjaW1hbCBiZXR3ZWVuIDAgYW5kIDE6IDAgYmVpbmcgdGhlIHN0YXJ0IG9mIHRoZSBzY2FsZSAobGVmdCBvciB0b3ApIGFuZCAxIHRoZSBvdGhlclxuICogZXh0cmVtaXR5IChsZWZ0ICsgd2lkdGggb3IgdG9wICsgaGVpZ2h0KS4gTm90ZSB0aGF0IGl0IHdvdWxkIGJlIG1vcmUgb3B0aW1pemVkIHRvIGRpcmVjdGx5XG4gKiBzdG9yZSBwcmUtY29tcHV0ZWQgcGl4ZWxzLCBidXQgdGhlIHNjYWxlIGRpbWVuc2lvbnMgYXJlIG5vdCBndWFyYW50ZWVkIGF0IHRoZSB0aW1lIHdlIG5lZWRcbiAqIHRvIGNyZWF0ZSB0aGUgbG9va3VwIHRhYmxlLiBUaGUgdGFibGUgQUxXQVlTIGNvbnRhaW5zIGF0IGxlYXN0IHR3byBpdGVtczogbWluIGFuZCBtYXguXG4gKlxuICogQHBhcmFtIHtudW1iZXJbXX0gdGltZXN0YW1wcyAtIHRpbWVzdGFtcHMgc29ydGVkIGZyb20gbG93ZXN0IHRvIGhpZ2hlc3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlzdHJpYnV0aW9uIC0gSWYgJ2xpbmVhcicsIHRpbWVzdGFtcHMgd2lsbCBiZSBzcHJlYWQgbGluZWFybHkgYWxvbmcgdGhlIG1pblxuICogYW5kIG1heCByYW5nZSwgc28gYmFzaWNhbGx5LCB0aGUgdGFibGUgd2lsbCBjb250YWlucyBvbmx5IHR3byBpdGVtczoge21pbiwgMH0gYW5kIHttYXgsIDF9LlxuICogSWYgJ3NlcmllcycsIHRpbWVzdGFtcHMgd2lsbCBiZSBwb3NpdGlvbmVkIGF0IHRoZSBzYW1lIGRpc3RhbmNlIGZyb20gZWFjaCBvdGhlci4gSW4gdGhpc1xuICogY2FzZSwgb25seSB0aW1lc3RhbXBzIHRoYXQgYnJlYWsgdGhlIHRpbWUgbGluZWFyaXR5IGFyZSByZWdpc3RlcmVkLCBtZWFuaW5nIHRoYXQgaW4gdGhlXG4gKiBiZXN0IGNhc2UsIGFsbCB0aW1lc3RhbXBzIGFyZSBsaW5lYXIsIHRoZSB0YWJsZSBjb250YWlucyBvbmx5IG1pbiBhbmQgbWF4LlxuICovXG5mdW5jdGlvbiBidWlsZExvb2t1cFRhYmxlKHRpbWVzdGFtcHMsIG1pbiwgbWF4LCBkaXN0cmlidXRpb24pIHtcblx0aWYgKGRpc3RyaWJ1dGlvbiA9PT0gJ2xpbmVhcicgfHwgIXRpbWVzdGFtcHMubGVuZ3RoKSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdHt0aW1lOiBtaW4sIHBvczogMH0sXG5cdFx0XHR7dGltZTogbWF4LCBwb3M6IDF9XG5cdFx0XTtcblx0fVxuXG5cdHZhciB0YWJsZSA9IFtdO1xuXHR2YXIgaXRlbXMgPSBbbWluXTtcblx0dmFyIGksIGlsZW4sIHByZXYsIGN1cnIsIG5leHQ7XG5cblx0Zm9yIChpID0gMCwgaWxlbiA9IHRpbWVzdGFtcHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0Y3VyciA9IHRpbWVzdGFtcHNbaV07XG5cdFx0aWYgKGN1cnIgPiBtaW4gJiYgY3VyciA8IG1heCkge1xuXHRcdFx0aXRlbXMucHVzaChjdXJyKTtcblx0XHR9XG5cdH1cblxuXHRpdGVtcy5wdXNoKG1heCk7XG5cblx0Zm9yIChpID0gMCwgaWxlbiA9IGl0ZW1zLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdG5leHQgPSBpdGVtc1tpICsgMV07XG5cdFx0cHJldiA9IGl0ZW1zW2kgLSAxXTtcblx0XHRjdXJyID0gaXRlbXNbaV07XG5cblx0XHQvLyBvbmx5IGFkZCBwb2ludHMgdGhhdCBicmVha3MgdGhlIHNjYWxlIGxpbmVhcml0eVxuXHRcdGlmIChwcmV2ID09PSB1bmRlZmluZWQgfHwgbmV4dCA9PT0gdW5kZWZpbmVkIHx8IE1hdGgucm91bmQoKG5leHQgKyBwcmV2KSAvIDIpICE9PSBjdXJyKSB7XG5cdFx0XHR0YWJsZS5wdXNoKHt0aW1lOiBjdXJyLCBwb3M6IGkgLyAoaWxlbiAtIDEpfSk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRhYmxlO1xufVxuXG4vLyBAc2VlIGFkYXB0ZWQgZnJvbSBodHRwczovL3d3dy5hbnVqZ2FraGFyLmNvbS8yMDE0LzAzLzAxL2JpbmFyeS1zZWFyY2gtaW4tamF2YXNjcmlwdC9cbmZ1bmN0aW9uIGxvb2t1cCh0YWJsZSwga2V5LCB2YWx1ZSkge1xuXHR2YXIgbG8gPSAwO1xuXHR2YXIgaGkgPSB0YWJsZS5sZW5ndGggLSAxO1xuXHR2YXIgbWlkLCBpMCwgaTE7XG5cblx0d2hpbGUgKGxvID49IDAgJiYgbG8gPD0gaGkpIHtcblx0XHRtaWQgPSAobG8gKyBoaSkgPj4gMTtcblx0XHRpMCA9IHRhYmxlW21pZCAtIDFdIHx8IG51bGw7XG5cdFx0aTEgPSB0YWJsZVttaWRdO1xuXG5cdFx0aWYgKCFpMCkge1xuXHRcdFx0Ly8gZ2l2ZW4gdmFsdWUgaXMgb3V0c2lkZSB0YWJsZSAoYmVmb3JlIGZpcnN0IGl0ZW0pXG5cdFx0XHRyZXR1cm4ge2xvOiBudWxsLCBoaTogaTF9O1xuXHRcdH0gZWxzZSBpZiAoaTFba2V5XSA8IHZhbHVlKSB7XG5cdFx0XHRsbyA9IG1pZCArIDE7XG5cdFx0fSBlbHNlIGlmIChpMFtrZXldID4gdmFsdWUpIHtcblx0XHRcdGhpID0gbWlkIC0gMTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHtsbzogaTAsIGhpOiBpMX07XG5cdFx0fVxuXHR9XG5cblx0Ly8gZ2l2ZW4gdmFsdWUgaXMgb3V0c2lkZSB0YWJsZSAoYWZ0ZXIgbGFzdCBpdGVtKVxuXHRyZXR1cm4ge2xvOiBpMSwgaGk6IG51bGx9O1xufVxuXG4vKipcbiAqIExpbmVhcmx5IGludGVycG9sYXRlcyB0aGUgZ2l2ZW4gc291cmNlIGB2YWx1ZWAgdXNpbmcgdGhlIHRhYmxlIGl0ZW1zIGBza2V5YCB2YWx1ZXMgYW5kXG4gKiByZXR1cm5zIHRoZSBhc3NvY2lhdGVkIGB0a2V5YCB2YWx1ZS4gRm9yIGV4YW1wbGUsIGludGVycG9sYXRlKHRhYmxlLCAndGltZScsIDQyLCAncG9zJylcbiAqIHJldHVybnMgdGhlIHBvc2l0aW9uIGZvciBhIHRpbWVzdGFtcCBlcXVhbCB0byA0Mi4gSWYgdmFsdWUgaXMgb3V0IG9mIGJvdW5kcywgdmFsdWVzIGF0XG4gKiBpbmRleCBbMCwgMV0gb3IgW24gLSAxLCBuXSBhcmUgdXNlZCBmb3IgdGhlIGludGVycG9sYXRpb24uXG4gKi9cbmZ1bmN0aW9uIGludGVycG9sYXRlJDEodGFibGUsIHNrZXksIHN2YWwsIHRrZXkpIHtcblx0dmFyIHJhbmdlID0gbG9va3VwKHRhYmxlLCBza2V5LCBzdmFsKTtcblxuXHQvLyBOb3RlOiB0aGUgbG9va3VwIHRhYmxlIEFMV0FZUyBjb250YWlucyBhdCBsZWFzdCAyIGl0ZW1zIChtaW4gYW5kIG1heClcblx0dmFyIHByZXYgPSAhcmFuZ2UubG8gPyB0YWJsZVswXSA6ICFyYW5nZS5oaSA/IHRhYmxlW3RhYmxlLmxlbmd0aCAtIDJdIDogcmFuZ2UubG87XG5cdHZhciBuZXh0ID0gIXJhbmdlLmxvID8gdGFibGVbMV0gOiAhcmFuZ2UuaGkgPyB0YWJsZVt0YWJsZS5sZW5ndGggLSAxXSA6IHJhbmdlLmhpO1xuXG5cdHZhciBzcGFuID0gbmV4dFtza2V5XSAtIHByZXZbc2tleV07XG5cdHZhciByYXRpbyA9IHNwYW4gPyAoc3ZhbCAtIHByZXZbc2tleV0pIC8gc3BhbiA6IDA7XG5cdHZhciBvZmZzZXQgPSAobmV4dFt0a2V5XSAtIHByZXZbdGtleV0pICogcmF0aW87XG5cblx0cmV0dXJuIHByZXZbdGtleV0gKyBvZmZzZXQ7XG59XG5cbmZ1bmN0aW9uIHRvVGltZXN0YW1wKHNjYWxlLCBpbnB1dCkge1xuXHR2YXIgYWRhcHRlciA9IHNjYWxlLl9hZGFwdGVyO1xuXHR2YXIgb3B0aW9ucyA9IHNjYWxlLm9wdGlvbnMudGltZTtcblx0dmFyIHBhcnNlciA9IG9wdGlvbnMucGFyc2VyO1xuXHR2YXIgZm9ybWF0ID0gcGFyc2VyIHx8IG9wdGlvbnMuZm9ybWF0O1xuXHR2YXIgdmFsdWUgPSBpbnB1dDtcblxuXHRpZiAodHlwZW9mIHBhcnNlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdHZhbHVlID0gcGFyc2VyKHZhbHVlKTtcblx0fVxuXG5cdC8vIE9ubHkgcGFyc2UgaWYgaXRzIG5vdCBhIHRpbWVzdGFtcCBhbHJlYWR5XG5cdGlmICghaGVscGVycyQxLmlzRmluaXRlKHZhbHVlKSkge1xuXHRcdHZhbHVlID0gdHlwZW9mIGZvcm1hdCA9PT0gJ3N0cmluZydcblx0XHRcdD8gYWRhcHRlci5wYXJzZSh2YWx1ZSwgZm9ybWF0KVxuXHRcdFx0OiBhZGFwdGVyLnBhcnNlKHZhbHVlKTtcblx0fVxuXG5cdGlmICh2YWx1ZSAhPT0gbnVsbCkge1xuXHRcdHJldHVybiArdmFsdWU7XG5cdH1cblxuXHQvLyBMYWJlbHMgYXJlIGluIGFuIGluY29tcGF0aWJsZSBmb3JtYXQgYW5kIG5vIGBwYXJzZXJgIGhhcyBiZWVuIHByb3ZpZGVkLlxuXHQvLyBUaGUgdXNlciBtaWdodCBzdGlsbCB1c2UgdGhlIGRlcHJlY2F0ZWQgYGZvcm1hdGAgb3B0aW9uIGZvciBwYXJzaW5nLlxuXHRpZiAoIXBhcnNlciAmJiB0eXBlb2YgZm9ybWF0ID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0dmFsdWUgPSBmb3JtYXQoaW5wdXQpO1xuXG5cdFx0Ly8gYGZvcm1hdGAgY291bGQgcmV0dXJuIHNvbWV0aGluZyBlbHNlIHRoYW4gYSB0aW1lc3RhbXAsIGlmIHNvLCBwYXJzZSBpdFxuXHRcdGlmICghaGVscGVycyQxLmlzRmluaXRlKHZhbHVlKSkge1xuXHRcdFx0dmFsdWUgPSBhZGFwdGVyLnBhcnNlKHZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHBhcnNlKHNjYWxlLCBpbnB1dCkge1xuXHRpZiAoaGVscGVycyQxLmlzTnVsbE9yVW5kZWYoaW5wdXQpKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHR2YXIgb3B0aW9ucyA9IHNjYWxlLm9wdGlvbnMudGltZTtcblx0dmFyIHZhbHVlID0gdG9UaW1lc3RhbXAoc2NhbGUsIHNjYWxlLmdldFJpZ2h0VmFsdWUoaW5wdXQpKTtcblx0aWYgKHZhbHVlID09PSBudWxsKSB7XG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9XG5cblx0aWYgKG9wdGlvbnMucm91bmQpIHtcblx0XHR2YWx1ZSA9ICtzY2FsZS5fYWRhcHRlci5zdGFydE9mKHZhbHVlLCBvcHRpb25zLnJvdW5kKTtcblx0fVxuXG5cdHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdW5pdCB0byBza2lwIHRvIGJlIGFibGUgdG8gZGlzcGxheSB1cCB0byBgY2FwYWNpdHlgIG51bWJlciBvZiB0aWNrc1xuICogaW4gYHVuaXRgIGZvciB0aGUgZ2l2ZW4gYG1pbmAgLyBgbWF4YCByYW5nZSBhbmQgcmVzcGVjdGluZyB0aGUgaW50ZXJ2YWwgc3RlcHMgY29uc3RyYWludHMuXG4gKi9cbmZ1bmN0aW9uIGRldGVybWluZVN0ZXBTaXplKG1pbiwgbWF4LCB1bml0LCBjYXBhY2l0eSkge1xuXHR2YXIgcmFuZ2UgPSBtYXggLSBtaW47XG5cdHZhciBpbnRlcnZhbCA9IElOVEVSVkFMU1t1bml0XTtcblx0dmFyIG1pbGxpc2Vjb25kcyA9IGludGVydmFsLnNpemU7XG5cdHZhciBzdGVwcyA9IGludGVydmFsLnN0ZXBzO1xuXHR2YXIgaSwgaWxlbiwgZmFjdG9yO1xuXG5cdGlmICghc3RlcHMpIHtcblx0XHRyZXR1cm4gTWF0aC5jZWlsKHJhbmdlIC8gKGNhcGFjaXR5ICogbWlsbGlzZWNvbmRzKSk7XG5cdH1cblxuXHRmb3IgKGkgPSAwLCBpbGVuID0gc3RlcHMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0ZmFjdG9yID0gc3RlcHNbaV07XG5cdFx0aWYgKE1hdGguY2VpbChyYW5nZSAvIChtaWxsaXNlY29uZHMgKiBmYWN0b3IpKSA8PSBjYXBhY2l0eSkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGZhY3Rvcjtcbn1cblxuLyoqXG4gKiBGaWd1cmVzIG91dCB3aGF0IHVuaXQgcmVzdWx0cyBpbiBhbiBhcHByb3ByaWF0ZSBudW1iZXIgb2YgYXV0by1nZW5lcmF0ZWQgdGlja3NcbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lVW5pdEZvckF1dG9UaWNrcyhtaW5Vbml0LCBtaW4sIG1heCwgY2FwYWNpdHkpIHtcblx0dmFyIGlsZW4gPSBVTklUUy5sZW5ndGg7XG5cdHZhciBpLCBpbnRlcnZhbCwgZmFjdG9yO1xuXG5cdGZvciAoaSA9IFVOSVRTLmluZGV4T2YobWluVW5pdCk7IGkgPCBpbGVuIC0gMTsgKytpKSB7XG5cdFx0aW50ZXJ2YWwgPSBJTlRFUlZBTFNbVU5JVFNbaV1dO1xuXHRcdGZhY3RvciA9IGludGVydmFsLnN0ZXBzID8gaW50ZXJ2YWwuc3RlcHNbaW50ZXJ2YWwuc3RlcHMubGVuZ3RoIC0gMV0gOiBNQVhfSU5URUdFUjtcblxuXHRcdGlmIChpbnRlcnZhbC5jb21tb24gJiYgTWF0aC5jZWlsKChtYXggLSBtaW4pIC8gKGZhY3RvciAqIGludGVydmFsLnNpemUpKSA8PSBjYXBhY2l0eSkge1xuXHRcdFx0cmV0dXJuIFVOSVRTW2ldO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBVTklUU1tpbGVuIC0gMV07XG59XG5cbi8qKlxuICogRmlndXJlcyBvdXQgd2hhdCB1bml0IHRvIGZvcm1hdCBhIHNldCBvZiB0aWNrcyB3aXRoXG4gKi9cbmZ1bmN0aW9uIGRldGVybWluZVVuaXRGb3JGb3JtYXR0aW5nKHNjYWxlLCB0aWNrcywgbWluVW5pdCwgbWluLCBtYXgpIHtcblx0dmFyIGlsZW4gPSBVTklUUy5sZW5ndGg7XG5cdHZhciBpLCB1bml0O1xuXG5cdGZvciAoaSA9IGlsZW4gLSAxOyBpID49IFVOSVRTLmluZGV4T2YobWluVW5pdCk7IGktLSkge1xuXHRcdHVuaXQgPSBVTklUU1tpXTtcblx0XHRpZiAoSU5URVJWQUxTW3VuaXRdLmNvbW1vbiAmJiBzY2FsZS5fYWRhcHRlci5kaWZmKG1heCwgbWluLCB1bml0KSA+PSB0aWNrcy5sZW5ndGgpIHtcblx0XHRcdHJldHVybiB1bml0O1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBVTklUU1ttaW5Vbml0ID8gVU5JVFMuaW5kZXhPZihtaW5Vbml0KSA6IDBdO1xufVxuXG5mdW5jdGlvbiBkZXRlcm1pbmVNYWpvclVuaXQodW5pdCkge1xuXHRmb3IgKHZhciBpID0gVU5JVFMuaW5kZXhPZih1bml0KSArIDEsIGlsZW4gPSBVTklUUy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRpZiAoSU5URVJWQUxTW1VOSVRTW2ldXS5jb21tb24pIHtcblx0XHRcdHJldHVybiBVTklUU1tpXTtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBtYXhpbXVtIG9mIGBjYXBhY2l0eWAgdGltZXN0YW1wcyBiZXR3ZWVuIG1pbiBhbmQgbWF4LCByb3VuZGVkIHRvIHRoZVxuICogYG1pbm9yYCB1bml0LCBhbGlnbmVkIG9uIHRoZSBgbWFqb3JgIHVuaXQgYW5kIHVzaW5nIHRoZSBnaXZlbiBzY2FsZSB0aW1lIGBvcHRpb25zYC5cbiAqIEltcG9ydGFudDogdGhpcyBtZXRob2QgY2FuIHJldHVybiB0aWNrcyBvdXRzaWRlIHRoZSBtaW4gYW5kIG1heCByYW5nZSwgaXQncyB0aGVcbiAqIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxsaW5nIGNvZGUgdG8gY2xhbXAgdmFsdWVzIGlmIG5lZWRlZC5cbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGUoc2NhbGUsIG1pbiwgbWF4LCBjYXBhY2l0eSkge1xuXHR2YXIgYWRhcHRlciA9IHNjYWxlLl9hZGFwdGVyO1xuXHR2YXIgb3B0aW9ucyA9IHNjYWxlLm9wdGlvbnM7XG5cdHZhciB0aW1lT3B0cyA9IG9wdGlvbnMudGltZTtcblx0dmFyIG1pbm9yID0gdGltZU9wdHMudW5pdCB8fCBkZXRlcm1pbmVVbml0Rm9yQXV0b1RpY2tzKHRpbWVPcHRzLm1pblVuaXQsIG1pbiwgbWF4LCBjYXBhY2l0eSk7XG5cdHZhciBtYWpvciA9IGRldGVybWluZU1ham9yVW5pdChtaW5vcik7XG5cdHZhciBzdGVwU2l6ZSA9IHZhbHVlT3JEZWZhdWx0JGModGltZU9wdHMuc3RlcFNpemUsIHRpbWVPcHRzLnVuaXRTdGVwU2l6ZSk7XG5cdHZhciB3ZWVrZGF5ID0gbWlub3IgPT09ICd3ZWVrJyA/IHRpbWVPcHRzLmlzb1dlZWtkYXkgOiBmYWxzZTtcblx0dmFyIG1ham9yVGlja3NFbmFibGVkID0gb3B0aW9ucy50aWNrcy5tYWpvci5lbmFibGVkO1xuXHR2YXIgaW50ZXJ2YWwgPSBJTlRFUlZBTFNbbWlub3JdO1xuXHR2YXIgZmlyc3QgPSBtaW47XG5cdHZhciBsYXN0ID0gbWF4O1xuXHR2YXIgdGlja3MgPSBbXTtcblx0dmFyIHRpbWU7XG5cblx0aWYgKCFzdGVwU2l6ZSkge1xuXHRcdHN0ZXBTaXplID0gZGV0ZXJtaW5lU3RlcFNpemUobWluLCBtYXgsIG1pbm9yLCBjYXBhY2l0eSk7XG5cdH1cblxuXHQvLyBGb3IgJ3dlZWsnIHVuaXQsIGhhbmRsZSB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgb3B0aW9uXG5cdGlmICh3ZWVrZGF5KSB7XG5cdFx0Zmlyc3QgPSArYWRhcHRlci5zdGFydE9mKGZpcnN0LCAnaXNvV2VlaycsIHdlZWtkYXkpO1xuXHRcdGxhc3QgPSArYWRhcHRlci5zdGFydE9mKGxhc3QsICdpc29XZWVrJywgd2Vla2RheSk7XG5cdH1cblxuXHQvLyBBbGlnbiBmaXJzdC9sYXN0IHRpY2tzIG9uIHVuaXRcblx0Zmlyc3QgPSArYWRhcHRlci5zdGFydE9mKGZpcnN0LCB3ZWVrZGF5ID8gJ2RheScgOiBtaW5vcik7XG5cdGxhc3QgPSArYWRhcHRlci5zdGFydE9mKGxhc3QsIHdlZWtkYXkgPyAnZGF5JyA6IG1pbm9yKTtcblxuXHQvLyBNYWtlIHN1cmUgdGhhdCB0aGUgbGFzdCB0aWNrIGluY2x1ZGUgbWF4XG5cdGlmIChsYXN0IDwgbWF4KSB7XG5cdFx0bGFzdCA9ICthZGFwdGVyLmFkZChsYXN0LCAxLCBtaW5vcik7XG5cdH1cblxuXHR0aW1lID0gZmlyc3Q7XG5cblx0aWYgKG1ham9yVGlja3NFbmFibGVkICYmIG1ham9yICYmICF3ZWVrZGF5ICYmICF0aW1lT3B0cy5yb3VuZCkge1xuXHRcdC8vIEFsaWduIHRoZSBmaXJzdCB0aWNrIG9uIHRoZSBwcmV2aW91cyBgbWlub3JgIHVuaXQgYWxpZ25lZCBvbiB0aGUgYG1ham9yYCB1bml0OlxuXHRcdC8vIHdlIGZpcnN0IGFsaWduZWQgdGltZSBvbiB0aGUgcHJldmlvdXMgYG1ham9yYCB1bml0IHRoZW4gYWRkIHRoZSBudW1iZXIgb2YgZnVsbFxuXHRcdC8vIHN0ZXBTaXplIHRoZXJlIGlzIGJldHdlZW4gZmlyc3QgYW5kIHRoZSBwcmV2aW91cyBtYWpvciB0aW1lLlxuXHRcdHRpbWUgPSArYWRhcHRlci5zdGFydE9mKHRpbWUsIG1ham9yKTtcblx0XHR0aW1lID0gK2FkYXB0ZXIuYWRkKHRpbWUsIH5+KChmaXJzdCAtIHRpbWUpIC8gKGludGVydmFsLnNpemUgKiBzdGVwU2l6ZSkpICogc3RlcFNpemUsIG1pbm9yKTtcblx0fVxuXG5cdGZvciAoOyB0aW1lIDwgbGFzdDsgdGltZSA9ICthZGFwdGVyLmFkZCh0aW1lLCBzdGVwU2l6ZSwgbWlub3IpKSB7XG5cdFx0dGlja3MucHVzaCgrdGltZSk7XG5cdH1cblxuXHR0aWNrcy5wdXNoKCt0aW1lKTtcblxuXHRyZXR1cm4gdGlja3M7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBvZmZzZXRzIGZyb20gZWRnZXMgaW4gdGhlIGZvcm0gb2Yge3N0YXJ0LCBlbmR9XG4gKiB3aGVyZSBlYWNoIHZhbHVlIGlzIGEgcmVsYXRpdmUgd2lkdGggdG8gdGhlIHNjYWxlIGFuZCByYW5nZXMgYmV0d2VlbiAwIGFuZCAxLlxuICogVGhleSBhZGQgZXh0cmEgbWFyZ2lucyBvbiB0aGUgYm90aCBzaWRlcyBieSBzY2FsaW5nIGRvd24gdGhlIG9yaWdpbmFsIHNjYWxlLlxuICogT2Zmc2V0cyBhcmUgYWRkZWQgd2hlbiB0aGUgYG9mZnNldGAgb3B0aW9uIGlzIHRydWUuXG4gKi9cbmZ1bmN0aW9uIGNvbXB1dGVPZmZzZXRzKHRhYmxlLCB0aWNrcywgbWluLCBtYXgsIG9wdGlvbnMpIHtcblx0dmFyIHN0YXJ0ID0gMDtcblx0dmFyIGVuZCA9IDA7XG5cdHZhciBmaXJzdCwgbGFzdDtcblxuXHRpZiAob3B0aW9ucy5vZmZzZXQgJiYgdGlja3MubGVuZ3RoKSB7XG5cdFx0aWYgKCFvcHRpb25zLnRpbWUubWluKSB7XG5cdFx0XHRmaXJzdCA9IGludGVycG9sYXRlJDEodGFibGUsICd0aW1lJywgdGlja3NbMF0sICdwb3MnKTtcblx0XHRcdGlmICh0aWNrcy5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0c3RhcnQgPSAxIC0gZmlyc3Q7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzdGFydCA9IChpbnRlcnBvbGF0ZSQxKHRhYmxlLCAndGltZScsIHRpY2tzWzFdLCAncG9zJykgLSBmaXJzdCkgLyAyO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIW9wdGlvbnMudGltZS5tYXgpIHtcblx0XHRcdGxhc3QgPSBpbnRlcnBvbGF0ZSQxKHRhYmxlLCAndGltZScsIHRpY2tzW3RpY2tzLmxlbmd0aCAtIDFdLCAncG9zJyk7XG5cdFx0XHRpZiAodGlja3MubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdGVuZCA9IGxhc3Q7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRlbmQgPSAobGFzdCAtIGludGVycG9sYXRlJDEodGFibGUsICd0aW1lJywgdGlja3NbdGlja3MubGVuZ3RoIC0gMl0sICdwb3MnKSkgLyAyO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7c3RhcnQ6IHN0YXJ0LCBlbmQ6IGVuZH07XG59XG5cbmZ1bmN0aW9uIHRpY2tzRnJvbVRpbWVzdGFtcHMoc2NhbGUsIHZhbHVlcywgbWFqb3JVbml0KSB7XG5cdHZhciB0aWNrcyA9IFtdO1xuXHR2YXIgaSwgaWxlbiwgdmFsdWUsIG1ham9yO1xuXG5cdGZvciAoaSA9IDAsIGlsZW4gPSB2YWx1ZXMubGVuZ3RoOyBpIDwgaWxlbjsgKytpKSB7XG5cdFx0dmFsdWUgPSB2YWx1ZXNbaV07XG5cdFx0bWFqb3IgPSBtYWpvclVuaXQgPyB2YWx1ZSA9PT0gK3NjYWxlLl9hZGFwdGVyLnN0YXJ0T2YodmFsdWUsIG1ham9yVW5pdCkgOiBmYWxzZTtcblxuXHRcdHRpY2tzLnB1c2goe1xuXHRcdFx0dmFsdWU6IHZhbHVlLFxuXHRcdFx0bWFqb3I6IG1ham9yXG5cdFx0fSk7XG5cdH1cblxuXHRyZXR1cm4gdGlja3M7XG59XG5cbnZhciBkZWZhdWx0Q29uZmlnJDQgPSB7XG5cdHBvc2l0aW9uOiAnYm90dG9tJyxcblxuXHQvKipcblx0ICogRGF0YSBkaXN0cmlidXRpb24gYWxvbmcgdGhlIHNjYWxlOlxuXHQgKiAtICdsaW5lYXInOiBkYXRhIGFyZSBzcHJlYWQgYWNjb3JkaW5nIHRvIHRoZWlyIHRpbWUgKGRpc3RhbmNlcyBjYW4gdmFyeSksXG5cdCAqIC0gJ3Nlcmllcyc6IGRhdGEgYXJlIHNwcmVhZCBhdCB0aGUgc2FtZSBkaXN0YW5jZSBmcm9tIGVhY2ggb3RoZXIuXG5cdCAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvcHVsbC80NTA3XG5cdCAqIEBzaW5jZSAyLjcuMFxuXHQgKi9cblx0ZGlzdHJpYnV0aW9uOiAnbGluZWFyJyxcblxuXHQvKipcblx0ICogU2NhbGUgYm91bmRhcnkgc3RyYXRlZ3kgKGJ5cGFzc2VkIGJ5IG1pbi9tYXggdGltZSBvcHRpb25zKVxuXHQgKiAtIGBkYXRhYDogbWFrZSBzdXJlIGRhdGEgYXJlIGZ1bGx5IHZpc2libGUsIHRpY2tzIG91dHNpZGUgYXJlIHJlbW92ZWRcblx0ICogLSBgdGlja3NgOiBtYWtlIHN1cmUgdGlja3MgYXJlIGZ1bGx5IHZpc2libGUsIGRhdGEgb3V0c2lkZSBhcmUgdHJ1bmNhdGVkXG5cdCAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvcHVsbC80NTU2XG5cdCAqIEBzaW5jZSAyLjcuMFxuXHQgKi9cblx0Ym91bmRzOiAnZGF0YScsXG5cblx0YWRhcHRlcnM6IHt9LFxuXHR0aW1lOiB7XG5cdFx0cGFyc2VyOiBmYWxzZSwgLy8gZmFsc2UgPT0gYSBwYXR0ZXJuIHN0cmluZyBmcm9tIGh0dHBzOi8vbW9tZW50anMuY29tL2RvY3MvIy9wYXJzaW5nL3N0cmluZy1mb3JtYXQvIG9yIGEgY3VzdG9tIGNhbGxiYWNrIHRoYXQgY29udmVydHMgaXRzIGFyZ3VtZW50IHRvIGEgbW9tZW50XG5cdFx0Zm9ybWF0OiBmYWxzZSwgLy8gREVQUkVDQVRFRCBmYWxzZSA9PSBkYXRlIG9iamVjdHMsIG1vbWVudCBvYmplY3QsIGNhbGxiYWNrIG9yIGEgcGF0dGVybiBzdHJpbmcgZnJvbSBodHRwczovL21vbWVudGpzLmNvbS9kb2NzLyMvcGFyc2luZy9zdHJpbmctZm9ybWF0L1xuXHRcdHVuaXQ6IGZhbHNlLCAvLyBmYWxzZSA9PSBhdXRvbWF0aWMgb3Igb3ZlcnJpZGUgd2l0aCB3ZWVrLCBtb250aCwgeWVhciwgZXRjLlxuXHRcdHJvdW5kOiBmYWxzZSwgLy8gbm9uZSwgb3Igb3ZlcnJpZGUgd2l0aCB3ZWVrLCBtb250aCwgeWVhciwgZXRjLlxuXHRcdGRpc3BsYXlGb3JtYXQ6IGZhbHNlLCAvLyBERVBSRUNBVEVEXG5cdFx0aXNvV2Vla2RheTogZmFsc2UsIC8vIG92ZXJyaWRlIHdlZWsgc3RhcnQgZGF5IC0gc2VlIGh0dHBzOi8vbW9tZW50anMuY29tL2RvY3MvIy9nZXQtc2V0L2lzby13ZWVrZGF5L1xuXHRcdG1pblVuaXQ6ICdtaWxsaXNlY29uZCcsXG5cdFx0ZGlzcGxheUZvcm1hdHM6IHt9XG5cdH0sXG5cdHRpY2tzOiB7XG5cdFx0YXV0b1NraXA6IGZhbHNlLFxuXG5cdFx0LyoqXG5cdFx0ICogVGlja3MgZ2VuZXJhdGlvbiBpbnB1dCB2YWx1ZXM6XG5cdFx0ICogLSAnYXV0byc6IGdlbmVyYXRlcyBcIm9wdGltYWxcIiB0aWNrcyBiYXNlZCBvbiBzY2FsZSBzaXplIGFuZCB0aW1lIG9wdGlvbnMuXG5cdFx0ICogLSAnZGF0YSc6IGdlbmVyYXRlcyB0aWNrcyBmcm9tIGRhdGEgKGluY2x1ZGluZyBsYWJlbHMgZnJvbSBkYXRhIHt0fHh8eX0gb2JqZWN0cykuXG5cdFx0ICogLSAnbGFiZWxzJzogZ2VuZXJhdGVzIHRpY2tzIGZyb20gdXNlciBnaXZlbiBgZGF0YS5sYWJlbHNgIHZhbHVlcyBPTkxZLlxuXHRcdCAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NoYXJ0anMvQ2hhcnQuanMvcHVsbC80NTA3XG5cdFx0ICogQHNpbmNlIDIuNy4wXG5cdFx0ICovXG5cdFx0c291cmNlOiAnYXV0bycsXG5cblx0XHRtYWpvcjoge1xuXHRcdFx0ZW5hYmxlZDogZmFsc2Vcblx0XHR9XG5cdH1cbn07XG5cbnZhciBzY2FsZV90aW1lID0gY29yZV9zY2FsZS5leHRlbmQoe1xuXHRpbml0aWFsaXplOiBmdW5jdGlvbigpIHtcblx0XHR0aGlzLm1lcmdlVGlja3NPcHRpb25zKCk7XG5cdFx0Y29yZV9zY2FsZS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMpO1xuXHR9LFxuXG5cdHVwZGF0ZTogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgb3B0aW9ucyA9IG1lLm9wdGlvbnM7XG5cdFx0dmFyIHRpbWUgPSBvcHRpb25zLnRpbWUgfHwgKG9wdGlvbnMudGltZSA9IHt9KTtcblx0XHR2YXIgYWRhcHRlciA9IG1lLl9hZGFwdGVyID0gbmV3IGNvcmVfYWRhcHRlcnMuX2RhdGUob3B0aW9ucy5hZGFwdGVycy5kYXRlKTtcblxuXHRcdC8vIERFUFJFQ0FUSU9OUzogb3V0cHV0IGEgbWVzc2FnZSBvbmx5IG9uZSB0aW1lIHBlciB1cGRhdGVcblx0XHRpZiAodGltZS5mb3JtYXQpIHtcblx0XHRcdGNvbnNvbGUud2Fybignb3B0aW9ucy50aW1lLmZvcm1hdCBpcyBkZXByZWNhdGVkIGFuZCByZXBsYWNlZCBieSBvcHRpb25zLnRpbWUucGFyc2VyLicpO1xuXHRcdH1cblxuXHRcdC8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHk6IGJlZm9yZSBpbnRyb2R1Y2luZyBhZGFwdGVyLCBgZGlzcGxheUZvcm1hdHNgIHdhc1xuXHRcdC8vIHN1cHBvc2VkIHRvIGNvbnRhaW4gKmFsbCogdW5pdC9zdHJpbmcgcGFpcnMgYnV0IHRoaXMgY2FuJ3QgYmUgcmVzb2x2ZWRcblx0XHQvLyB3aGVuIGxvYWRpbmcgdGhlIHNjYWxlIChhZGFwdGVycyBhcmUgbG9hZGVkIGFmdGVyd2FyZCksIHNvIGxldCdzIHBvcHVsYXRlXG5cdFx0Ly8gbWlzc2luZyBmb3JtYXRzIG9uIHVwZGF0ZVxuXHRcdGhlbHBlcnMkMS5tZXJnZUlmKHRpbWUuZGlzcGxheUZvcm1hdHMsIGFkYXB0ZXIuZm9ybWF0cygpKTtcblxuXHRcdHJldHVybiBjb3JlX3NjYWxlLnByb3RvdHlwZS51cGRhdGUuYXBwbHkobWUsIGFyZ3VtZW50cyk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEFsbG93cyBkYXRhIHRvIGJlIHJlZmVyZW5jZWQgdmlhICd0JyBhdHRyaWJ1dGVcblx0ICovXG5cdGdldFJpZ2h0VmFsdWU6IGZ1bmN0aW9uKHJhd1ZhbHVlKSB7XG5cdFx0aWYgKHJhd1ZhbHVlICYmIHJhd1ZhbHVlLnQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmF3VmFsdWUgPSByYXdWYWx1ZS50O1xuXHRcdH1cblx0XHRyZXR1cm4gY29yZV9zY2FsZS5wcm90b3R5cGUuZ2V0UmlnaHRWYWx1ZS5jYWxsKHRoaXMsIHJhd1ZhbHVlKTtcblx0fSxcblxuXHRkZXRlcm1pbmVEYXRhTGltaXRzOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBjaGFydCA9IG1lLmNoYXJ0O1xuXHRcdHZhciBhZGFwdGVyID0gbWUuX2FkYXB0ZXI7XG5cdFx0dmFyIHRpbWVPcHRzID0gbWUub3B0aW9ucy50aW1lO1xuXHRcdHZhciB1bml0ID0gdGltZU9wdHMudW5pdCB8fCAnZGF5Jztcblx0XHR2YXIgbWluID0gTUFYX0lOVEVHRVI7XG5cdFx0dmFyIG1heCA9IE1JTl9JTlRFR0VSO1xuXHRcdHZhciB0aW1lc3RhbXBzID0gW107XG5cdFx0dmFyIGRhdGFzZXRzID0gW107XG5cdFx0dmFyIGxhYmVscyA9IFtdO1xuXHRcdHZhciBpLCBqLCBpbGVuLCBqbGVuLCBkYXRhLCB0aW1lc3RhbXA7XG5cdFx0dmFyIGRhdGFMYWJlbHMgPSBjaGFydC5kYXRhLmxhYmVscyB8fCBbXTtcblxuXHRcdC8vIENvbnZlcnQgbGFiZWxzIHRvIHRpbWVzdGFtcHNcblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gZGF0YUxhYmVscy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdGxhYmVscy5wdXNoKHBhcnNlKG1lLCBkYXRhTGFiZWxzW2ldKSk7XG5cdFx0fVxuXG5cdFx0Ly8gQ29udmVydCBkYXRhIHRvIHRpbWVzdGFtcHNcblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gKGNoYXJ0LmRhdGEuZGF0YXNldHMgfHwgW10pLmxlbmd0aDsgaSA8IGlsZW47ICsraSkge1xuXHRcdFx0aWYgKGNoYXJ0LmlzRGF0YXNldFZpc2libGUoaSkpIHtcblx0XHRcdFx0ZGF0YSA9IGNoYXJ0LmRhdGEuZGF0YXNldHNbaV0uZGF0YTtcblxuXHRcdFx0XHQvLyBMZXQncyBjb25zaWRlciB0aGF0IGFsbCBkYXRhIGhhdmUgdGhlIHNhbWUgZm9ybWF0LlxuXHRcdFx0XHRpZiAoaGVscGVycyQxLmlzT2JqZWN0KGRhdGFbMF0pKSB7XG5cdFx0XHRcdFx0ZGF0YXNldHNbaV0gPSBbXTtcblxuXHRcdFx0XHRcdGZvciAoaiA9IDAsIGpsZW4gPSBkYXRhLmxlbmd0aDsgaiA8IGpsZW47ICsraikge1xuXHRcdFx0XHRcdFx0dGltZXN0YW1wID0gcGFyc2UobWUsIGRhdGFbal0pO1xuXHRcdFx0XHRcdFx0dGltZXN0YW1wcy5wdXNoKHRpbWVzdGFtcCk7XG5cdFx0XHRcdFx0XHRkYXRhc2V0c1tpXVtqXSA9IHRpbWVzdGFtcDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Zm9yIChqID0gMCwgamxlbiA9IGxhYmVscy5sZW5ndGg7IGogPCBqbGVuOyArK2opIHtcblx0XHRcdFx0XHRcdHRpbWVzdGFtcHMucHVzaChsYWJlbHNbal0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRkYXRhc2V0c1tpXSA9IGxhYmVscy5zbGljZSgwKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGF0YXNldHNbaV0gPSBbXTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAobGFiZWxzLmxlbmd0aCkge1xuXHRcdFx0Ly8gU29ydCBsYWJlbHMgKiphZnRlcioqIGRhdGEgaGF2ZSBiZWVuIGNvbnZlcnRlZFxuXHRcdFx0bGFiZWxzID0gYXJyYXlVbmlxdWUobGFiZWxzKS5zb3J0KHNvcnRlcik7XG5cdFx0XHRtaW4gPSBNYXRoLm1pbihtaW4sIGxhYmVsc1swXSk7XG5cdFx0XHRtYXggPSBNYXRoLm1heChtYXgsIGxhYmVsc1tsYWJlbHMubGVuZ3RoIC0gMV0pO1xuXHRcdH1cblxuXHRcdGlmICh0aW1lc3RhbXBzLmxlbmd0aCkge1xuXHRcdFx0dGltZXN0YW1wcyA9IGFycmF5VW5pcXVlKHRpbWVzdGFtcHMpLnNvcnQoc29ydGVyKTtcblx0XHRcdG1pbiA9IE1hdGgubWluKG1pbiwgdGltZXN0YW1wc1swXSk7XG5cdFx0XHRtYXggPSBNYXRoLm1heChtYXgsIHRpbWVzdGFtcHNbdGltZXN0YW1wcy5sZW5ndGggLSAxXSk7XG5cdFx0fVxuXG5cdFx0bWluID0gcGFyc2UobWUsIHRpbWVPcHRzLm1pbikgfHwgbWluO1xuXHRcdG1heCA9IHBhcnNlKG1lLCB0aW1lT3B0cy5tYXgpIHx8IG1heDtcblxuXHRcdC8vIEluIGNhc2UgdGhlcmUgaXMgbm8gdmFsaWQgbWluL21heCwgc2V0IGxpbWl0cyBiYXNlZCBvbiB1bml0IHRpbWUgb3B0aW9uXG5cdFx0bWluID0gbWluID09PSBNQVhfSU5URUdFUiA/ICthZGFwdGVyLnN0YXJ0T2YoRGF0ZS5ub3coKSwgdW5pdCkgOiBtaW47XG5cdFx0bWF4ID0gbWF4ID09PSBNSU5fSU5URUdFUiA/ICthZGFwdGVyLmVuZE9mKERhdGUubm93KCksIHVuaXQpICsgMSA6IG1heDtcblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IG1heCBpcyBzdHJpY3RseSBoaWdoZXIgdGhhbiBtaW4gKHJlcXVpcmVkIGJ5IHRoZSBsb29rdXAgdGFibGUpXG5cdFx0bWUubWluID0gTWF0aC5taW4obWluLCBtYXgpO1xuXHRcdG1lLm1heCA9IE1hdGgubWF4KG1pbiArIDEsIG1heCk7XG5cblx0XHQvLyBQUklWQVRFXG5cdFx0bWUuX2hvcml6b250YWwgPSBtZS5pc0hvcml6b250YWwoKTtcblx0XHRtZS5fdGFibGUgPSBbXTtcblx0XHRtZS5fdGltZXN0YW1wcyA9IHtcblx0XHRcdGRhdGE6IHRpbWVzdGFtcHMsXG5cdFx0XHRkYXRhc2V0czogZGF0YXNldHMsXG5cdFx0XHRsYWJlbHM6IGxhYmVsc1xuXHRcdH07XG5cdH0sXG5cblx0YnVpbGRUaWNrczogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgbWluID0gbWUubWluO1xuXHRcdHZhciBtYXggPSBtZS5tYXg7XG5cdFx0dmFyIG9wdGlvbnMgPSBtZS5vcHRpb25zO1xuXHRcdHZhciB0aW1lT3B0cyA9IG9wdGlvbnMudGltZTtcblx0XHR2YXIgdGltZXN0YW1wcyA9IFtdO1xuXHRcdHZhciB0aWNrcyA9IFtdO1xuXHRcdHZhciBpLCBpbGVuLCB0aW1lc3RhbXA7XG5cblx0XHRzd2l0Y2ggKG9wdGlvbnMudGlja3Muc291cmNlKSB7XG5cdFx0Y2FzZSAnZGF0YSc6XG5cdFx0XHR0aW1lc3RhbXBzID0gbWUuX3RpbWVzdGFtcHMuZGF0YTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJ2xhYmVscyc6XG5cdFx0XHR0aW1lc3RhbXBzID0gbWUuX3RpbWVzdGFtcHMubGFiZWxzO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnYXV0byc6XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHRpbWVzdGFtcHMgPSBnZW5lcmF0ZShtZSwgbWluLCBtYXgsIG1lLmdldExhYmVsQ2FwYWNpdHkobWluKSwgb3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0aWYgKG9wdGlvbnMuYm91bmRzID09PSAndGlja3MnICYmIHRpbWVzdGFtcHMubGVuZ3RoKSB7XG5cdFx0XHRtaW4gPSB0aW1lc3RhbXBzWzBdO1xuXHRcdFx0bWF4ID0gdGltZXN0YW1wc1t0aW1lc3RhbXBzLmxlbmd0aCAtIDFdO1xuXHRcdH1cblxuXHRcdC8vIEVuZm9yY2UgbGltaXRzIHdpdGggdXNlciBtaW4vbWF4IG9wdGlvbnNcblx0XHRtaW4gPSBwYXJzZShtZSwgdGltZU9wdHMubWluKSB8fCBtaW47XG5cdFx0bWF4ID0gcGFyc2UobWUsIHRpbWVPcHRzLm1heCkgfHwgbWF4O1xuXG5cdFx0Ly8gUmVtb3ZlIHRpY2tzIG91dHNpZGUgdGhlIG1pbi9tYXggcmFuZ2Vcblx0XHRmb3IgKGkgPSAwLCBpbGVuID0gdGltZXN0YW1wcy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdHRpbWVzdGFtcCA9IHRpbWVzdGFtcHNbaV07XG5cdFx0XHRpZiAodGltZXN0YW1wID49IG1pbiAmJiB0aW1lc3RhbXAgPD0gbWF4KSB7XG5cdFx0XHRcdHRpY2tzLnB1c2godGltZXN0YW1wKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRtZS5taW4gPSBtaW47XG5cdFx0bWUubWF4ID0gbWF4O1xuXG5cdFx0Ly8gUFJJVkFURVxuXHRcdG1lLl91bml0ID0gdGltZU9wdHMudW5pdCB8fCBkZXRlcm1pbmVVbml0Rm9yRm9ybWF0dGluZyhtZSwgdGlja3MsIHRpbWVPcHRzLm1pblVuaXQsIG1lLm1pbiwgbWUubWF4KTtcblx0XHRtZS5fbWFqb3JVbml0ID0gZGV0ZXJtaW5lTWFqb3JVbml0KG1lLl91bml0KTtcblx0XHRtZS5fdGFibGUgPSBidWlsZExvb2t1cFRhYmxlKG1lLl90aW1lc3RhbXBzLmRhdGEsIG1pbiwgbWF4LCBvcHRpb25zLmRpc3RyaWJ1dGlvbik7XG5cdFx0bWUuX29mZnNldHMgPSBjb21wdXRlT2Zmc2V0cyhtZS5fdGFibGUsIHRpY2tzLCBtaW4sIG1heCwgb3B0aW9ucyk7XG5cblx0XHRpZiAob3B0aW9ucy50aWNrcy5yZXZlcnNlKSB7XG5cdFx0XHR0aWNrcy5yZXZlcnNlKCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRpY2tzRnJvbVRpbWVzdGFtcHMobWUsIHRpY2tzLCBtZS5fbWFqb3JVbml0KTtcblx0fSxcblxuXHRnZXRMYWJlbEZvckluZGV4OiBmdW5jdGlvbihpbmRleCwgZGF0YXNldEluZGV4KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgYWRhcHRlciA9IG1lLl9hZGFwdGVyO1xuXHRcdHZhciBkYXRhID0gbWUuY2hhcnQuZGF0YTtcblx0XHR2YXIgdGltZU9wdHMgPSBtZS5vcHRpb25zLnRpbWU7XG5cdFx0dmFyIGxhYmVsID0gZGF0YS5sYWJlbHMgJiYgaW5kZXggPCBkYXRhLmxhYmVscy5sZW5ndGggPyBkYXRhLmxhYmVsc1tpbmRleF0gOiAnJztcblx0XHR2YXIgdmFsdWUgPSBkYXRhLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0uZGF0YVtpbmRleF07XG5cblx0XHRpZiAoaGVscGVycyQxLmlzT2JqZWN0KHZhbHVlKSkge1xuXHRcdFx0bGFiZWwgPSBtZS5nZXRSaWdodFZhbHVlKHZhbHVlKTtcblx0XHR9XG5cdFx0aWYgKHRpbWVPcHRzLnRvb2x0aXBGb3JtYXQpIHtcblx0XHRcdHJldHVybiBhZGFwdGVyLmZvcm1hdCh0b1RpbWVzdGFtcChtZSwgbGFiZWwpLCB0aW1lT3B0cy50b29sdGlwRm9ybWF0KTtcblx0XHR9XG5cdFx0aWYgKHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycpIHtcblx0XHRcdHJldHVybiBsYWJlbDtcblx0XHR9XG5cdFx0cmV0dXJuIGFkYXB0ZXIuZm9ybWF0KHRvVGltZXN0YW1wKG1lLCBsYWJlbCksIHRpbWVPcHRzLmRpc3BsYXlGb3JtYXRzLmRhdGV0aW1lKTtcblx0fSxcblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gZm9ybWF0IGFuIGluZGl2aWR1YWwgdGljayBtYXJrXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHR0aWNrRm9ybWF0RnVuY3Rpb246IGZ1bmN0aW9uKHRpbWUsIGluZGV4LCB0aWNrcywgZm9ybWF0KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgYWRhcHRlciA9IG1lLl9hZGFwdGVyO1xuXHRcdHZhciBvcHRpb25zID0gbWUub3B0aW9ucztcblx0XHR2YXIgZm9ybWF0cyA9IG9wdGlvbnMudGltZS5kaXNwbGF5Rm9ybWF0cztcblx0XHR2YXIgbWlub3JGb3JtYXQgPSBmb3JtYXRzW21lLl91bml0XTtcblx0XHR2YXIgbWFqb3JVbml0ID0gbWUuX21ham9yVW5pdDtcblx0XHR2YXIgbWFqb3JGb3JtYXQgPSBmb3JtYXRzW21ham9yVW5pdF07XG5cdFx0dmFyIG1ham9yVGltZSA9ICthZGFwdGVyLnN0YXJ0T2YodGltZSwgbWFqb3JVbml0KTtcblx0XHR2YXIgbWFqb3JUaWNrT3B0cyA9IG9wdGlvbnMudGlja3MubWFqb3I7XG5cdFx0dmFyIG1ham9yID0gbWFqb3JUaWNrT3B0cy5lbmFibGVkICYmIG1ham9yVW5pdCAmJiBtYWpvckZvcm1hdCAmJiB0aW1lID09PSBtYWpvclRpbWU7XG5cdFx0dmFyIGxhYmVsID0gYWRhcHRlci5mb3JtYXQodGltZSwgZm9ybWF0ID8gZm9ybWF0IDogbWFqb3IgPyBtYWpvckZvcm1hdCA6IG1pbm9yRm9ybWF0KTtcblx0XHR2YXIgdGlja09wdHMgPSBtYWpvciA/IG1ham9yVGlja09wdHMgOiBvcHRpb25zLnRpY2tzLm1pbm9yO1xuXHRcdHZhciBmb3JtYXR0ZXIgPSB2YWx1ZU9yRGVmYXVsdCRjKHRpY2tPcHRzLmNhbGxiYWNrLCB0aWNrT3B0cy51c2VyQ2FsbGJhY2spO1xuXG5cdFx0cmV0dXJuIGZvcm1hdHRlciA/IGZvcm1hdHRlcihsYWJlbCwgaW5kZXgsIHRpY2tzKSA6IGxhYmVsO1xuXHR9LFxuXG5cdGNvbnZlcnRUaWNrc1RvTGFiZWxzOiBmdW5jdGlvbih0aWNrcykge1xuXHRcdHZhciBsYWJlbHMgPSBbXTtcblx0XHR2YXIgaSwgaWxlbjtcblxuXHRcdGZvciAoaSA9IDAsIGlsZW4gPSB0aWNrcy5sZW5ndGg7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRcdGxhYmVscy5wdXNoKHRoaXMudGlja0Zvcm1hdEZ1bmN0aW9uKHRpY2tzW2ldLnZhbHVlLCBpLCB0aWNrcykpO1xuXHRcdH1cblxuXHRcdHJldHVybiBsYWJlbHM7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRnZXRQaXhlbEZvck9mZnNldDogZnVuY3Rpb24odGltZSkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGlzUmV2ZXJzZSA9IG1lLm9wdGlvbnMudGlja3MucmV2ZXJzZTtcblx0XHR2YXIgc2l6ZSA9IG1lLl9ob3Jpem9udGFsID8gbWUud2lkdGggOiBtZS5oZWlnaHQ7XG5cdFx0dmFyIHN0YXJ0ID0gbWUuX2hvcml6b250YWwgPyBpc1JldmVyc2UgPyBtZS5yaWdodCA6IG1lLmxlZnQgOiBpc1JldmVyc2UgPyBtZS5ib3R0b20gOiBtZS50b3A7XG5cdFx0dmFyIHBvcyA9IGludGVycG9sYXRlJDEobWUuX3RhYmxlLCAndGltZScsIHRpbWUsICdwb3MnKTtcblx0XHR2YXIgb2Zmc2V0ID0gc2l6ZSAqIChtZS5fb2Zmc2V0cy5zdGFydCArIHBvcykgLyAobWUuX29mZnNldHMuc3RhcnQgKyAxICsgbWUuX29mZnNldHMuZW5kKTtcblxuXHRcdHJldHVybiBpc1JldmVyc2UgPyBzdGFydCAtIG9mZnNldCA6IHN0YXJ0ICsgb2Zmc2V0O1xuXHR9LFxuXG5cdGdldFBpeGVsRm9yVmFsdWU6IGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgZGF0YXNldEluZGV4KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgdGltZSA9IG51bGw7XG5cblx0XHRpZiAoaW5kZXggIT09IHVuZGVmaW5lZCAmJiBkYXRhc2V0SW5kZXggIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGltZSA9IG1lLl90aW1lc3RhbXBzLmRhdGFzZXRzW2RhdGFzZXRJbmRleF1baW5kZXhdO1xuXHRcdH1cblxuXHRcdGlmICh0aW1lID09PSBudWxsKSB7XG5cdFx0XHR0aW1lID0gcGFyc2UobWUsIHZhbHVlKTtcblx0XHR9XG5cblx0XHRpZiAodGltZSAhPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIG1lLmdldFBpeGVsRm9yT2Zmc2V0KHRpbWUpO1xuXHRcdH1cblx0fSxcblxuXHRnZXRQaXhlbEZvclRpY2s6IGZ1bmN0aW9uKGluZGV4KSB7XG5cdFx0dmFyIHRpY2tzID0gdGhpcy5nZXRUaWNrcygpO1xuXHRcdHJldHVybiBpbmRleCA+PSAwICYmIGluZGV4IDwgdGlja3MubGVuZ3RoID9cblx0XHRcdHRoaXMuZ2V0UGl4ZWxGb3JPZmZzZXQodGlja3NbaW5kZXhdLnZhbHVlKSA6XG5cdFx0XHRudWxsO1xuXHR9LFxuXG5cdGdldFZhbHVlRm9yUGl4ZWw6IGZ1bmN0aW9uKHBpeGVsKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgc2l6ZSA9IG1lLl9ob3Jpem9udGFsID8gbWUud2lkdGggOiBtZS5oZWlnaHQ7XG5cdFx0dmFyIHN0YXJ0ID0gbWUuX2hvcml6b250YWwgPyBtZS5sZWZ0IDogbWUudG9wO1xuXHRcdHZhciBwb3MgPSAoc2l6ZSA/IChwaXhlbCAtIHN0YXJ0KSAvIHNpemUgOiAwKSAqIChtZS5fb2Zmc2V0cy5zdGFydCArIDEgKyBtZS5fb2Zmc2V0cy5zdGFydCkgLSBtZS5fb2Zmc2V0cy5lbmQ7XG5cdFx0dmFyIHRpbWUgPSBpbnRlcnBvbGF0ZSQxKG1lLl90YWJsZSwgJ3BvcycsIHBvcywgJ3RpbWUnKTtcblxuXHRcdC8vIERFUFJFQ0FUSU9OLCB3ZSBzaG91bGQgcmV0dXJuIHRpbWUgZGlyZWN0bHlcblx0XHRyZXR1cm4gbWUuX2FkYXB0ZXIuX2NyZWF0ZSh0aW1lKTtcblx0fSxcblxuXHQvKipcblx0ICogQ3J1ZGUgYXBwcm94aW1hdGlvbiBvZiB3aGF0IHRoZSBsYWJlbCB3aWR0aCBtaWdodCBiZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0Z2V0TGFiZWxXaWR0aDogZnVuY3Rpb24obGFiZWwpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciB0aWNrc09wdHMgPSBtZS5vcHRpb25zLnRpY2tzO1xuXHRcdHZhciB0aWNrTGFiZWxXaWR0aCA9IG1lLmN0eC5tZWFzdXJlVGV4dChsYWJlbCkud2lkdGg7XG5cdFx0dmFyIGFuZ2xlID0gaGVscGVycyQxLnRvUmFkaWFucyh0aWNrc09wdHMubWF4Um90YXRpb24pO1xuXHRcdHZhciBjb3NSb3RhdGlvbiA9IE1hdGguY29zKGFuZ2xlKTtcblx0XHR2YXIgc2luUm90YXRpb24gPSBNYXRoLnNpbihhbmdsZSk7XG5cdFx0dmFyIHRpY2tGb250U2l6ZSA9IHZhbHVlT3JEZWZhdWx0JGModGlja3NPcHRzLmZvbnRTaXplLCBjb3JlX2RlZmF1bHRzLmdsb2JhbC5kZWZhdWx0Rm9udFNpemUpO1xuXG5cdFx0cmV0dXJuICh0aWNrTGFiZWxXaWR0aCAqIGNvc1JvdGF0aW9uKSArICh0aWNrRm9udFNpemUgKiBzaW5Sb3RhdGlvbik7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRnZXRMYWJlbENhcGFjaXR5OiBmdW5jdGlvbihleGFtcGxlVGltZSkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cblx0XHQvLyBwaWNrIHRoZSBsb25nZXN0IGZvcm1hdCAobWlsbGlzZWNvbmRzKSBmb3IgZ3Vlc3RpbWF0aW9uXG5cdFx0dmFyIGZvcm1hdCA9IG1lLm9wdGlvbnMudGltZS5kaXNwbGF5Rm9ybWF0cy5taWxsaXNlY29uZDtcblx0XHR2YXIgZXhhbXBsZUxhYmVsID0gbWUudGlja0Zvcm1hdEZ1bmN0aW9uKGV4YW1wbGVUaW1lLCAwLCBbXSwgZm9ybWF0KTtcblx0XHR2YXIgdGlja0xhYmVsV2lkdGggPSBtZS5nZXRMYWJlbFdpZHRoKGV4YW1wbGVMYWJlbCk7XG5cdFx0dmFyIGlubmVyV2lkdGggPSBtZS5pc0hvcml6b250YWwoKSA/IG1lLndpZHRoIDogbWUuaGVpZ2h0O1xuXHRcdHZhciBjYXBhY2l0eSA9IE1hdGguZmxvb3IoaW5uZXJXaWR0aCAvIHRpY2tMYWJlbFdpZHRoKTtcblxuXHRcdHJldHVybiBjYXBhY2l0eSA+IDAgPyBjYXBhY2l0eSA6IDE7XG5cdH1cbn0pO1xuXG4vLyBJTlRFUk5BTDogc3RhdGljIGRlZmF1bHQgb3B0aW9ucywgcmVnaXN0ZXJlZCBpbiBzcmMvaW5kZXguanNcbnZhciBfZGVmYXVsdHMkNCA9IGRlZmF1bHRDb25maWckNDtcbnNjYWxlX3RpbWUuX2RlZmF1bHRzID0gX2RlZmF1bHRzJDQ7XG5cbnZhciBzY2FsZXMgPSB7XG5cdGNhdGVnb3J5OiBzY2FsZV9jYXRlZ29yeSxcblx0bGluZWFyOiBzY2FsZV9saW5lYXIsXG5cdGxvZ2FyaXRobWljOiBzY2FsZV9sb2dhcml0aG1pYyxcblx0cmFkaWFsTGluZWFyOiBzY2FsZV9yYWRpYWxMaW5lYXIsXG5cdHRpbWU6IHNjYWxlX3RpbWVcbn07XG5cbnZhciBGT1JNQVRTID0ge1xuXHRkYXRldGltZTogJ01NTSBELCBZWVlZLCBoOm1tOnNzIGEnLFxuXHRtaWxsaXNlY29uZDogJ2g6bW06c3MuU1NTIGEnLFxuXHRzZWNvbmQ6ICdoOm1tOnNzIGEnLFxuXHRtaW51dGU6ICdoOm1tIGEnLFxuXHRob3VyOiAnaEEnLFxuXHRkYXk6ICdNTU0gRCcsXG5cdHdlZWs6ICdsbCcsXG5cdG1vbnRoOiAnTU1NIFlZWVknLFxuXHRxdWFydGVyOiAnW1FdUSAtIFlZWVknLFxuXHR5ZWFyOiAnWVlZWSdcbn07XG5cbmNvcmVfYWRhcHRlcnMuX2RhdGUub3ZlcnJpZGUodHlwZW9mIG1vbWVudCA9PT0gJ2Z1bmN0aW9uJyA/IHtcblx0X2lkOiAnbW9tZW50JywgLy8gREVCVUcgT05MWVxuXG5cdGZvcm1hdHM6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBGT1JNQVRTO1xuXHR9LFxuXG5cdHBhcnNlOiBmdW5jdGlvbih2YWx1ZSwgZm9ybWF0KSB7XG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGZvcm1hdCA9PT0gJ3N0cmluZycpIHtcblx0XHRcdHZhbHVlID0gbW9tZW50KHZhbHVlLCBmb3JtYXQpO1xuXHRcdH0gZWxzZSBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIG1vbWVudCkpIHtcblx0XHRcdHZhbHVlID0gbW9tZW50KHZhbHVlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbHVlLmlzVmFsaWQoKSA/IHZhbHVlLnZhbHVlT2YoKSA6IG51bGw7XG5cdH0sXG5cblx0Zm9ybWF0OiBmdW5jdGlvbih0aW1lLCBmb3JtYXQpIHtcblx0XHRyZXR1cm4gbW9tZW50KHRpbWUpLmZvcm1hdChmb3JtYXQpO1xuXHR9LFxuXG5cdGFkZDogZnVuY3Rpb24odGltZSwgYW1vdW50LCB1bml0KSB7XG5cdFx0cmV0dXJuIG1vbWVudCh0aW1lKS5hZGQoYW1vdW50LCB1bml0KS52YWx1ZU9mKCk7XG5cdH0sXG5cblx0ZGlmZjogZnVuY3Rpb24obWF4LCBtaW4sIHVuaXQpIHtcblx0XHRyZXR1cm4gbW9tZW50LmR1cmF0aW9uKG1vbWVudChtYXgpLmRpZmYobW9tZW50KG1pbikpKS5hcyh1bml0KTtcblx0fSxcblxuXHRzdGFydE9mOiBmdW5jdGlvbih0aW1lLCB1bml0LCB3ZWVrZGF5KSB7XG5cdFx0dGltZSA9IG1vbWVudCh0aW1lKTtcblx0XHRpZiAodW5pdCA9PT0gJ2lzb1dlZWsnKSB7XG5cdFx0XHRyZXR1cm4gdGltZS5pc29XZWVrZGF5KHdlZWtkYXkpLnZhbHVlT2YoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRpbWUuc3RhcnRPZih1bml0KS52YWx1ZU9mKCk7XG5cdH0sXG5cblx0ZW5kT2Y6IGZ1bmN0aW9uKHRpbWUsIHVuaXQpIHtcblx0XHRyZXR1cm4gbW9tZW50KHRpbWUpLmVuZE9mKHVuaXQpLnZhbHVlT2YoKTtcblx0fSxcblxuXHQvLyBERVBSRUNBVElPTlNcblxuXHQvKipcblx0ICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBzY2FsZS5nZXRWYWx1ZUZvclBpeGVsKCkuXG5cdCAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMi44LjBcblx0ICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2NyZWF0ZTogZnVuY3Rpb24odGltZSkge1xuXHRcdHJldHVybiBtb21lbnQodGltZSk7XG5cdH0sXG59IDoge30pO1xuXG5jb3JlX2RlZmF1bHRzLl9zZXQoJ2dsb2JhbCcsIHtcblx0cGx1Z2luczoge1xuXHRcdGZpbGxlcjoge1xuXHRcdFx0cHJvcGFnYXRlOiB0cnVlXG5cdFx0fVxuXHR9XG59KTtcblxudmFyIG1hcHBlcnMgPSB7XG5cdGRhdGFzZXQ6IGZ1bmN0aW9uKHNvdXJjZSkge1xuXHRcdHZhciBpbmRleCA9IHNvdXJjZS5maWxsO1xuXHRcdHZhciBjaGFydCA9IHNvdXJjZS5jaGFydDtcblx0XHR2YXIgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGluZGV4KTtcblx0XHR2YXIgdmlzaWJsZSA9IG1ldGEgJiYgY2hhcnQuaXNEYXRhc2V0VmlzaWJsZShpbmRleCk7XG5cdFx0dmFyIHBvaW50cyA9ICh2aXNpYmxlICYmIG1ldGEuZGF0YXNldC5fY2hpbGRyZW4pIHx8IFtdO1xuXHRcdHZhciBsZW5ndGggPSBwb2ludHMubGVuZ3RoIHx8IDA7XG5cblx0XHRyZXR1cm4gIWxlbmd0aCA/IG51bGwgOiBmdW5jdGlvbihwb2ludCwgaSkge1xuXHRcdFx0cmV0dXJuIChpIDwgbGVuZ3RoICYmIHBvaW50c1tpXS5fdmlldykgfHwgbnVsbDtcblx0XHR9O1xuXHR9LFxuXG5cdGJvdW5kYXJ5OiBmdW5jdGlvbihzb3VyY2UpIHtcblx0XHR2YXIgYm91bmRhcnkgPSBzb3VyY2UuYm91bmRhcnk7XG5cdFx0dmFyIHggPSBib3VuZGFyeSA/IGJvdW5kYXJ5LnggOiBudWxsO1xuXHRcdHZhciB5ID0gYm91bmRhcnkgPyBib3VuZGFyeS55IDogbnVsbDtcblxuXHRcdHJldHVybiBmdW5jdGlvbihwb2ludCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0eDogeCA9PT0gbnVsbCA/IHBvaW50LnggOiB4LFxuXHRcdFx0XHR5OiB5ID09PSBudWxsID8gcG9pbnQueSA6IHksXG5cdFx0XHR9O1xuXHRcdH07XG5cdH1cbn07XG5cbi8vIEB0b2RvIGlmIChmaWxsWzBdID09PSAnIycpXG5mdW5jdGlvbiBkZWNvZGVGaWxsKGVsLCBpbmRleCwgY291bnQpIHtcblx0dmFyIG1vZGVsID0gZWwuX21vZGVsIHx8IHt9O1xuXHR2YXIgZmlsbCA9IG1vZGVsLmZpbGw7XG5cdHZhciB0YXJnZXQ7XG5cblx0aWYgKGZpbGwgPT09IHVuZGVmaW5lZCkge1xuXHRcdGZpbGwgPSAhIW1vZGVsLmJhY2tncm91bmRDb2xvcjtcblx0fVxuXG5cdGlmIChmaWxsID09PSBmYWxzZSB8fCBmaWxsID09PSBudWxsKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aWYgKGZpbGwgPT09IHRydWUpIHtcblx0XHRyZXR1cm4gJ29yaWdpbic7XG5cdH1cblxuXHR0YXJnZXQgPSBwYXJzZUZsb2F0KGZpbGwsIDEwKTtcblx0aWYgKGlzRmluaXRlKHRhcmdldCkgJiYgTWF0aC5mbG9vcih0YXJnZXQpID09PSB0YXJnZXQpIHtcblx0XHRpZiAoZmlsbFswXSA9PT0gJy0nIHx8IGZpbGxbMF0gPT09ICcrJykge1xuXHRcdFx0dGFyZ2V0ID0gaW5kZXggKyB0YXJnZXQ7XG5cdFx0fVxuXG5cdFx0aWYgKHRhcmdldCA9PT0gaW5kZXggfHwgdGFyZ2V0IDwgMCB8fCB0YXJnZXQgPj0gY291bnQpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGFyZ2V0O1xuXHR9XG5cblx0c3dpdGNoIChmaWxsKSB7XG5cdC8vIGNvbXBhdGliaWxpdHlcblx0Y2FzZSAnYm90dG9tJzpcblx0XHRyZXR1cm4gJ3N0YXJ0Jztcblx0Y2FzZSAndG9wJzpcblx0XHRyZXR1cm4gJ2VuZCc7XG5cdGNhc2UgJ3plcm8nOlxuXHRcdHJldHVybiAnb3JpZ2luJztcblx0Ly8gc3VwcG9ydGVkIGJvdW5kYXJpZXNcblx0Y2FzZSAnb3JpZ2luJzpcblx0Y2FzZSAnc3RhcnQnOlxuXHRjYXNlICdlbmQnOlxuXHRcdHJldHVybiBmaWxsO1xuXHQvLyBpbnZhbGlkIGZpbGwgdmFsdWVzXG5cdGRlZmF1bHQ6XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVCb3VuZGFyeShzb3VyY2UpIHtcblx0dmFyIG1vZGVsID0gc291cmNlLmVsLl9tb2RlbCB8fCB7fTtcblx0dmFyIHNjYWxlID0gc291cmNlLmVsLl9zY2FsZSB8fCB7fTtcblx0dmFyIGZpbGwgPSBzb3VyY2UuZmlsbDtcblx0dmFyIHRhcmdldCA9IG51bGw7XG5cdHZhciBob3Jpem9udGFsO1xuXG5cdGlmIChpc0Zpbml0ZShmaWxsKSkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0Ly8gQmFja3dhcmQgY29tcGF0aWJpbGl0eTogdW50aWwgdjMsIHdlIHN0aWxsIG5lZWQgdG8gc3VwcG9ydCBib3VuZGFyeSB2YWx1ZXMgc2V0IG9uXG5cdC8vIHRoZSBtb2RlbCAoc2NhbGVUb3AsIHNjYWxlQm90dG9tIGFuZCBzY2FsZVplcm8pIGJlY2F1c2Ugc29tZSBleHRlcm5hbCBwbHVnaW5zIGFuZFxuXHQvLyBjb250cm9sbGVycyBtaWdodCBzdGlsbCB1c2UgaXQgKGUuZy4gdGhlIFNtaXRoIGNoYXJ0KS5cblxuXHRpZiAoZmlsbCA9PT0gJ3N0YXJ0Jykge1xuXHRcdHRhcmdldCA9IG1vZGVsLnNjYWxlQm90dG9tID09PSB1bmRlZmluZWQgPyBzY2FsZS5ib3R0b20gOiBtb2RlbC5zY2FsZUJvdHRvbTtcblx0fSBlbHNlIGlmIChmaWxsID09PSAnZW5kJykge1xuXHRcdHRhcmdldCA9IG1vZGVsLnNjYWxlVG9wID09PSB1bmRlZmluZWQgPyBzY2FsZS50b3AgOiBtb2RlbC5zY2FsZVRvcDtcblx0fSBlbHNlIGlmIChtb2RlbC5zY2FsZVplcm8gIT09IHVuZGVmaW5lZCkge1xuXHRcdHRhcmdldCA9IG1vZGVsLnNjYWxlWmVybztcblx0fSBlbHNlIGlmIChzY2FsZS5nZXRCYXNlUG9zaXRpb24pIHtcblx0XHR0YXJnZXQgPSBzY2FsZS5nZXRCYXNlUG9zaXRpb24oKTtcblx0fSBlbHNlIGlmIChzY2FsZS5nZXRCYXNlUGl4ZWwpIHtcblx0XHR0YXJnZXQgPSBzY2FsZS5nZXRCYXNlUGl4ZWwoKTtcblx0fVxuXG5cdGlmICh0YXJnZXQgIT09IHVuZGVmaW5lZCAmJiB0YXJnZXQgIT09IG51bGwpIHtcblx0XHRpZiAodGFyZ2V0LnggIT09IHVuZGVmaW5lZCAmJiB0YXJnZXQueSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gdGFyZ2V0O1xuXHRcdH1cblxuXHRcdGlmIChoZWxwZXJzJDEuaXNGaW5pdGUodGFyZ2V0KSkge1xuXHRcdFx0aG9yaXpvbnRhbCA9IHNjYWxlLmlzSG9yaXpvbnRhbCgpO1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0eDogaG9yaXpvbnRhbCA/IHRhcmdldCA6IG51bGwsXG5cdFx0XHRcdHk6IGhvcml6b250YWwgPyBudWxsIDogdGFyZ2V0XG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlVGFyZ2V0KHNvdXJjZXMsIGluZGV4LCBwcm9wYWdhdGUpIHtcblx0dmFyIHNvdXJjZSA9IHNvdXJjZXNbaW5kZXhdO1xuXHR2YXIgZmlsbCA9IHNvdXJjZS5maWxsO1xuXHR2YXIgdmlzaXRlZCA9IFtpbmRleF07XG5cdHZhciB0YXJnZXQ7XG5cblx0aWYgKCFwcm9wYWdhdGUpIHtcblx0XHRyZXR1cm4gZmlsbDtcblx0fVxuXG5cdHdoaWxlIChmaWxsICE9PSBmYWxzZSAmJiB2aXNpdGVkLmluZGV4T2YoZmlsbCkgPT09IC0xKSB7XG5cdFx0aWYgKCFpc0Zpbml0ZShmaWxsKSkge1xuXHRcdFx0cmV0dXJuIGZpbGw7XG5cdFx0fVxuXG5cdFx0dGFyZ2V0ID0gc291cmNlc1tmaWxsXTtcblx0XHRpZiAoIXRhcmdldCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGlmICh0YXJnZXQudmlzaWJsZSkge1xuXHRcdFx0cmV0dXJuIGZpbGw7XG5cdFx0fVxuXG5cdFx0dmlzaXRlZC5wdXNoKGZpbGwpO1xuXHRcdGZpbGwgPSB0YXJnZXQuZmlsbDtcblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTWFwcGVyKHNvdXJjZSkge1xuXHR2YXIgZmlsbCA9IHNvdXJjZS5maWxsO1xuXHR2YXIgdHlwZSA9ICdkYXRhc2V0JztcblxuXHRpZiAoZmlsbCA9PT0gZmFsc2UpIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdGlmICghaXNGaW5pdGUoZmlsbCkpIHtcblx0XHR0eXBlID0gJ2JvdW5kYXJ5Jztcblx0fVxuXG5cdHJldHVybiBtYXBwZXJzW3R5cGVdKHNvdXJjZSk7XG59XG5cbmZ1bmN0aW9uIGlzRHJhd2FibGUocG9pbnQpIHtcblx0cmV0dXJuIHBvaW50ICYmICFwb2ludC5za2lwO1xufVxuXG5mdW5jdGlvbiBkcmF3QXJlYShjdHgsIGN1cnZlMCwgY3VydmUxLCBsZW4wLCBsZW4xKSB7XG5cdHZhciBpO1xuXG5cdGlmICghbGVuMCB8fCAhbGVuMSkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIGJ1aWxkaW5nIGZpcnN0IGFyZWEgY3VydmUgKG5vcm1hbClcblx0Y3R4Lm1vdmVUbyhjdXJ2ZTBbMF0ueCwgY3VydmUwWzBdLnkpO1xuXHRmb3IgKGkgPSAxOyBpIDwgbGVuMDsgKytpKSB7XG5cdFx0aGVscGVycyQxLmNhbnZhcy5saW5lVG8oY3R4LCBjdXJ2ZTBbaSAtIDFdLCBjdXJ2ZTBbaV0pO1xuXHR9XG5cblx0Ly8gam9pbmluZyB0aGUgdHdvIGFyZWEgY3VydmVzXG5cdGN0eC5saW5lVG8oY3VydmUxW2xlbjEgLSAxXS54LCBjdXJ2ZTFbbGVuMSAtIDFdLnkpO1xuXG5cdC8vIGJ1aWxkaW5nIG9wcG9zaXRlIGFyZWEgY3VydmUgKHJldmVyc2UpXG5cdGZvciAoaSA9IGxlbjEgLSAxOyBpID4gMDsgLS1pKSB7XG5cdFx0aGVscGVycyQxLmNhbnZhcy5saW5lVG8oY3R4LCBjdXJ2ZTFbaV0sIGN1cnZlMVtpIC0gMV0sIHRydWUpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGRvRmlsbChjdHgsIHBvaW50cywgbWFwcGVyLCB2aWV3LCBjb2xvciwgbG9vcCkge1xuXHR2YXIgY291bnQgPSBwb2ludHMubGVuZ3RoO1xuXHR2YXIgc3BhbiA9IHZpZXcuc3BhbkdhcHM7XG5cdHZhciBjdXJ2ZTAgPSBbXTtcblx0dmFyIGN1cnZlMSA9IFtdO1xuXHR2YXIgbGVuMCA9IDA7XG5cdHZhciBsZW4xID0gMDtcblx0dmFyIGksIGlsZW4sIGluZGV4LCBwMCwgcDEsIGQwLCBkMTtcblxuXHRjdHguYmVnaW5QYXRoKCk7XG5cblx0Zm9yIChpID0gMCwgaWxlbiA9IChjb3VudCArICEhbG9vcCk7IGkgPCBpbGVuOyArK2kpIHtcblx0XHRpbmRleCA9IGkgJSBjb3VudDtcblx0XHRwMCA9IHBvaW50c1tpbmRleF0uX3ZpZXc7XG5cdFx0cDEgPSBtYXBwZXIocDAsIGluZGV4LCB2aWV3KTtcblx0XHRkMCA9IGlzRHJhd2FibGUocDApO1xuXHRcdGQxID0gaXNEcmF3YWJsZShwMSk7XG5cblx0XHRpZiAoZDAgJiYgZDEpIHtcblx0XHRcdGxlbjAgPSBjdXJ2ZTAucHVzaChwMCk7XG5cdFx0XHRsZW4xID0gY3VydmUxLnB1c2gocDEpO1xuXHRcdH0gZWxzZSBpZiAobGVuMCAmJiBsZW4xKSB7XG5cdFx0XHRpZiAoIXNwYW4pIHtcblx0XHRcdFx0ZHJhd0FyZWEoY3R4LCBjdXJ2ZTAsIGN1cnZlMSwgbGVuMCwgbGVuMSk7XG5cdFx0XHRcdGxlbjAgPSBsZW4xID0gMDtcblx0XHRcdFx0Y3VydmUwID0gW107XG5cdFx0XHRcdGN1cnZlMSA9IFtdO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKGQwKSB7XG5cdFx0XHRcdFx0Y3VydmUwLnB1c2gocDApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChkMSkge1xuXHRcdFx0XHRcdGN1cnZlMS5wdXNoKHAxKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGRyYXdBcmVhKGN0eCwgY3VydmUwLCBjdXJ2ZTEsIGxlbjAsIGxlbjEpO1xuXG5cdGN0eC5jbG9zZVBhdGgoKTtcblx0Y3R4LmZpbGxTdHlsZSA9IGNvbG9yO1xuXHRjdHguZmlsbCgpO1xufVxuXG52YXIgcGx1Z2luX2ZpbGxlciA9IHtcblx0aWQ6ICdmaWxsZXInLFxuXG5cdGFmdGVyRGF0YXNldHNVcGRhdGU6IGZ1bmN0aW9uKGNoYXJ0LCBvcHRpb25zKSB7XG5cdFx0dmFyIGNvdW50ID0gKGNoYXJ0LmRhdGEuZGF0YXNldHMgfHwgW10pLmxlbmd0aDtcblx0XHR2YXIgcHJvcGFnYXRlID0gb3B0aW9ucy5wcm9wYWdhdGU7XG5cdFx0dmFyIHNvdXJjZXMgPSBbXTtcblx0XHR2YXIgbWV0YSwgaSwgZWwsIHNvdXJjZTtcblxuXHRcdGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7XG5cdFx0XHRtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoaSk7XG5cdFx0XHRlbCA9IG1ldGEuZGF0YXNldDtcblx0XHRcdHNvdXJjZSA9IG51bGw7XG5cblx0XHRcdGlmIChlbCAmJiBlbC5fbW9kZWwgJiYgZWwgaW5zdGFuY2VvZiBlbGVtZW50cy5MaW5lKSB7XG5cdFx0XHRcdHNvdXJjZSA9IHtcblx0XHRcdFx0XHR2aXNpYmxlOiBjaGFydC5pc0RhdGFzZXRWaXNpYmxlKGkpLFxuXHRcdFx0XHRcdGZpbGw6IGRlY29kZUZpbGwoZWwsIGksIGNvdW50KSxcblx0XHRcdFx0XHRjaGFydDogY2hhcnQsXG5cdFx0XHRcdFx0ZWw6IGVsXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cblx0XHRcdG1ldGEuJGZpbGxlciA9IHNvdXJjZTtcblx0XHRcdHNvdXJjZXMucHVzaChzb3VyY2UpO1xuXHRcdH1cblxuXHRcdGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7XG5cdFx0XHRzb3VyY2UgPSBzb3VyY2VzW2ldO1xuXHRcdFx0aWYgKCFzb3VyY2UpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdHNvdXJjZS5maWxsID0gcmVzb2x2ZVRhcmdldChzb3VyY2VzLCBpLCBwcm9wYWdhdGUpO1xuXHRcdFx0c291cmNlLmJvdW5kYXJ5ID0gY29tcHV0ZUJvdW5kYXJ5KHNvdXJjZSk7XG5cdFx0XHRzb3VyY2UubWFwcGVyID0gY3JlYXRlTWFwcGVyKHNvdXJjZSk7XG5cdFx0fVxuXHR9LFxuXG5cdGJlZm9yZURhdGFzZXREcmF3OiBmdW5jdGlvbihjaGFydCwgYXJncykge1xuXHRcdHZhciBtZXRhID0gYXJncy5tZXRhLiRmaWxsZXI7XG5cdFx0aWYgKCFtZXRhKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dmFyIGN0eCA9IGNoYXJ0LmN0eDtcblx0XHR2YXIgZWwgPSBtZXRhLmVsO1xuXHRcdHZhciB2aWV3ID0gZWwuX3ZpZXc7XG5cdFx0dmFyIHBvaW50cyA9IGVsLl9jaGlsZHJlbiB8fCBbXTtcblx0XHR2YXIgbWFwcGVyID0gbWV0YS5tYXBwZXI7XG5cdFx0dmFyIGNvbG9yID0gdmlldy5iYWNrZ3JvdW5kQ29sb3IgfHwgY29yZV9kZWZhdWx0cy5nbG9iYWwuZGVmYXVsdENvbG9yO1xuXG5cdFx0aWYgKG1hcHBlciAmJiBjb2xvciAmJiBwb2ludHMubGVuZ3RoKSB7XG5cdFx0XHRoZWxwZXJzJDEuY2FudmFzLmNsaXBBcmVhKGN0eCwgY2hhcnQuY2hhcnRBcmVhKTtcblx0XHRcdGRvRmlsbChjdHgsIHBvaW50cywgbWFwcGVyLCB2aWV3LCBjb2xvciwgZWwuX2xvb3ApO1xuXHRcdFx0aGVscGVycyQxLmNhbnZhcy51bmNsaXBBcmVhKGN0eCk7XG5cdFx0fVxuXHR9XG59O1xuXG52YXIgbm9vcCQxID0gaGVscGVycyQxLm5vb3A7XG52YXIgdmFsdWVPckRlZmF1bHQkZCA9IGhlbHBlcnMkMS52YWx1ZU9yRGVmYXVsdDtcblxuY29yZV9kZWZhdWx0cy5fc2V0KCdnbG9iYWwnLCB7XG5cdGxlZ2VuZDoge1xuXHRcdGRpc3BsYXk6IHRydWUsXG5cdFx0cG9zaXRpb246ICd0b3AnLFxuXHRcdGZ1bGxXaWR0aDogdHJ1ZSxcblx0XHRyZXZlcnNlOiBmYWxzZSxcblx0XHR3ZWlnaHQ6IDEwMDAsXG5cblx0XHQvLyBhIGNhbGxiYWNrIHRoYXQgd2lsbCBoYW5kbGVcblx0XHRvbkNsaWNrOiBmdW5jdGlvbihlLCBsZWdlbmRJdGVtKSB7XG5cdFx0XHR2YXIgaW5kZXggPSBsZWdlbmRJdGVtLmRhdGFzZXRJbmRleDtcblx0XHRcdHZhciBjaSA9IHRoaXMuY2hhcnQ7XG5cdFx0XHR2YXIgbWV0YSA9IGNpLmdldERhdGFzZXRNZXRhKGluZGV4KTtcblxuXHRcdFx0Ly8gU2VlIGNvbnRyb2xsZXIuaXNEYXRhc2V0VmlzaWJsZSBjb21tZW50XG5cdFx0XHRtZXRhLmhpZGRlbiA9IG1ldGEuaGlkZGVuID09PSBudWxsID8gIWNpLmRhdGEuZGF0YXNldHNbaW5kZXhdLmhpZGRlbiA6IG51bGw7XG5cblx0XHRcdC8vIFdlIGhpZCBhIGRhdGFzZXQgLi4uIHJlcmVuZGVyIHRoZSBjaGFydFxuXHRcdFx0Y2kudXBkYXRlKCk7XG5cdFx0fSxcblxuXHRcdG9uSG92ZXI6IG51bGwsXG5cdFx0b25MZWF2ZTogbnVsbCxcblxuXHRcdGxhYmVsczoge1xuXHRcdFx0Ym94V2lkdGg6IDQwLFxuXHRcdFx0cGFkZGluZzogMTAsXG5cdFx0XHQvLyBHZW5lcmF0ZXMgbGFiZWxzIHNob3duIGluIHRoZSBsZWdlbmRcblx0XHRcdC8vIFZhbGlkIHByb3BlcnRpZXMgdG8gcmV0dXJuOlxuXHRcdFx0Ly8gdGV4dCA6IHRleHQgdG8gZGlzcGxheVxuXHRcdFx0Ly8gZmlsbFN0eWxlIDogZmlsbCBvZiBjb2xvdXJlZCBib3hcblx0XHRcdC8vIHN0cm9rZVN0eWxlOiBzdHJva2Ugb2YgY29sb3VyZWQgYm94XG5cdFx0XHQvLyBoaWRkZW4gOiBpZiB0aGlzIGxlZ2VuZCBpdGVtIHJlZmVycyB0byBhIGhpZGRlbiBpdGVtXG5cdFx0XHQvLyBsaW5lQ2FwIDogY2FwIHN0eWxlIGZvciBsaW5lXG5cdFx0XHQvLyBsaW5lRGFzaFxuXHRcdFx0Ly8gbGluZURhc2hPZmZzZXQgOlxuXHRcdFx0Ly8gbGluZUpvaW4gOlxuXHRcdFx0Ly8gbGluZVdpZHRoIDpcblx0XHRcdGdlbmVyYXRlTGFiZWxzOiBmdW5jdGlvbihjaGFydCkge1xuXHRcdFx0XHR2YXIgZGF0YSA9IGNoYXJ0LmRhdGE7XG5cdFx0XHRcdHJldHVybiBoZWxwZXJzJDEuaXNBcnJheShkYXRhLmRhdGFzZXRzKSA/IGRhdGEuZGF0YXNldHMubWFwKGZ1bmN0aW9uKGRhdGFzZXQsIGkpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0dGV4dDogZGF0YXNldC5sYWJlbCxcblx0XHRcdFx0XHRcdGZpbGxTdHlsZTogKCFoZWxwZXJzJDEuaXNBcnJheShkYXRhc2V0LmJhY2tncm91bmRDb2xvcikgPyBkYXRhc2V0LmJhY2tncm91bmRDb2xvciA6IGRhdGFzZXQuYmFja2dyb3VuZENvbG9yWzBdKSxcblx0XHRcdFx0XHRcdGhpZGRlbjogIWNoYXJ0LmlzRGF0YXNldFZpc2libGUoaSksXG5cdFx0XHRcdFx0XHRsaW5lQ2FwOiBkYXRhc2V0LmJvcmRlckNhcFN0eWxlLFxuXHRcdFx0XHRcdFx0bGluZURhc2g6IGRhdGFzZXQuYm9yZGVyRGFzaCxcblx0XHRcdFx0XHRcdGxpbmVEYXNoT2Zmc2V0OiBkYXRhc2V0LmJvcmRlckRhc2hPZmZzZXQsXG5cdFx0XHRcdFx0XHRsaW5lSm9pbjogZGF0YXNldC5ib3JkZXJKb2luU3R5bGUsXG5cdFx0XHRcdFx0XHRsaW5lV2lkdGg6IGRhdGFzZXQuYm9yZGVyV2lkdGgsXG5cdFx0XHRcdFx0XHRzdHJva2VTdHlsZTogZGF0YXNldC5ib3JkZXJDb2xvcixcblx0XHRcdFx0XHRcdHBvaW50U3R5bGU6IGRhdGFzZXQucG9pbnRTdHlsZSxcblxuXHRcdFx0XHRcdFx0Ly8gQmVsb3cgaXMgZXh0cmEgZGF0YSB1c2VkIGZvciB0b2dnbGluZyB0aGUgZGF0YXNldHNcblx0XHRcdFx0XHRcdGRhdGFzZXRJbmRleDogaVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH0sIHRoaXMpIDogW107XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdGxlZ2VuZENhbGxiYWNrOiBmdW5jdGlvbihjaGFydCkge1xuXHRcdHZhciB0ZXh0ID0gW107XG5cdFx0dGV4dC5wdXNoKCc8dWwgY2xhc3M9XCInICsgY2hhcnQuaWQgKyAnLWxlZ2VuZFwiPicpO1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnQuZGF0YS5kYXRhc2V0cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dGV4dC5wdXNoKCc8bGk+PHNwYW4gc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOicgKyBjaGFydC5kYXRhLmRhdGFzZXRzW2ldLmJhY2tncm91bmRDb2xvciArICdcIj48L3NwYW4+Jyk7XG5cdFx0XHRpZiAoY2hhcnQuZGF0YS5kYXRhc2V0c1tpXS5sYWJlbCkge1xuXHRcdFx0XHR0ZXh0LnB1c2goY2hhcnQuZGF0YS5kYXRhc2V0c1tpXS5sYWJlbCk7XG5cdFx0XHR9XG5cdFx0XHR0ZXh0LnB1c2goJzwvbGk+Jyk7XG5cdFx0fVxuXHRcdHRleHQucHVzaCgnPC91bD4nKTtcblx0XHRyZXR1cm4gdGV4dC5qb2luKCcnKTtcblx0fVxufSk7XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgYm94IHdpZHRoIGJhc2VkIG9uIHRoZSB1c2VQb2ludFN0eWxlIG9wdGlvblxuICogQHBhcmFtIHtvYmplY3R9IGxhYmVsb3B0cyAtIHRoZSBsYWJlbCBvcHRpb25zIG9uIHRoZSBsZWdlbmRcbiAqIEBwYXJhbSB7bnVtYmVyfSBmb250U2l6ZSAtIHRoZSBsYWJlbCBmb250IHNpemVcbiAqIEByZXR1cm4ge251bWJlcn0gd2lkdGggb2YgdGhlIGNvbG9yIGJveCBhcmVhXG4gKi9cbmZ1bmN0aW9uIGdldEJveFdpZHRoKGxhYmVsT3B0cywgZm9udFNpemUpIHtcblx0cmV0dXJuIGxhYmVsT3B0cy51c2VQb2ludFN0eWxlICYmIGxhYmVsT3B0cy5ib3hXaWR0aCA+IGZvbnRTaXplID9cblx0XHRmb250U2l6ZSA6XG5cdFx0bGFiZWxPcHRzLmJveFdpZHRoO1xufVxuXG4vKipcbiAqIElNUE9SVEFOVDogdGhpcyBjbGFzcyBpcyBleHBvc2VkIHB1YmxpY2x5IGFzIENoYXJ0LkxlZ2VuZCwgYmFja3dhcmQgY29tcGF0aWJpbGl0eSByZXF1aXJlZCFcbiAqL1xudmFyIExlZ2VuZCA9IGNvcmVfZWxlbWVudC5leHRlbmQoe1xuXG5cdGluaXRpYWxpemU6IGZ1bmN0aW9uKGNvbmZpZykge1xuXHRcdGhlbHBlcnMkMS5leHRlbmQodGhpcywgY29uZmlnKTtcblxuXHRcdC8vIENvbnRhaW5zIGhpdCBib3hlcyBmb3IgZWFjaCBkYXRhc2V0IChpbiBkYXRhc2V0IG9yZGVyKVxuXHRcdHRoaXMubGVnZW5kSGl0Qm94ZXMgPSBbXTtcblxuXHRcdC8qKlxuIFx0XHQgKiBAcHJpdmF0ZVxuIFx0XHQgKi9cblx0XHR0aGlzLl9ob3ZlcmVkSXRlbSA9IG51bGw7XG5cblx0XHQvLyBBcmUgd2UgaW4gZG91Z2hudXQgbW9kZSB3aGljaCBoYXMgYSBkaWZmZXJlbnQgZGF0YSB0eXBlXG5cdFx0dGhpcy5kb3VnaG51dE1vZGUgPSBmYWxzZTtcblx0fSxcblxuXHQvLyBUaGVzZSBtZXRob2RzIGFyZSBvcmRlcmVkIGJ5IGxpZmVjeWNsZS4gVXRpbGl0aWVzIHRoZW4gZm9sbG93LlxuXHQvLyBBbnkgZnVuY3Rpb24gZGVmaW5lZCBoZXJlIGlzIGluaGVyaXRlZCBieSBhbGwgbGVnZW5kIHR5cGVzLlxuXHQvLyBBbnkgZnVuY3Rpb24gY2FuIGJlIGV4dGVuZGVkIGJ5IHRoZSBsZWdlbmQgdHlwZVxuXG5cdGJlZm9yZVVwZGF0ZTogbm9vcCQxLFxuXHR1cGRhdGU6IGZ1bmN0aW9uKG1heFdpZHRoLCBtYXhIZWlnaHQsIG1hcmdpbnMpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXG5cdFx0Ly8gVXBkYXRlIExpZmVjeWNsZSAtIFByb2JhYmx5IGRvbid0IHdhbnQgdG8gZXZlciBleHRlbmQgb3Igb3ZlcndyaXRlIHRoaXMgZnVuY3Rpb24gOylcblx0XHRtZS5iZWZvcmVVcGRhdGUoKTtcblxuXHRcdC8vIEFic29yYiB0aGUgbWFzdGVyIG1lYXN1cmVtZW50c1xuXHRcdG1lLm1heFdpZHRoID0gbWF4V2lkdGg7XG5cdFx0bWUubWF4SGVpZ2h0ID0gbWF4SGVpZ2h0O1xuXHRcdG1lLm1hcmdpbnMgPSBtYXJnaW5zO1xuXG5cdFx0Ly8gRGltZW5zaW9uc1xuXHRcdG1lLmJlZm9yZVNldERpbWVuc2lvbnMoKTtcblx0XHRtZS5zZXREaW1lbnNpb25zKCk7XG5cdFx0bWUuYWZ0ZXJTZXREaW1lbnNpb25zKCk7XG5cdFx0Ly8gTGFiZWxzXG5cdFx0bWUuYmVmb3JlQnVpbGRMYWJlbHMoKTtcblx0XHRtZS5idWlsZExhYmVscygpO1xuXHRcdG1lLmFmdGVyQnVpbGRMYWJlbHMoKTtcblxuXHRcdC8vIEZpdFxuXHRcdG1lLmJlZm9yZUZpdCgpO1xuXHRcdG1lLmZpdCgpO1xuXHRcdG1lLmFmdGVyRml0KCk7XG5cdFx0Ly9cblx0XHRtZS5hZnRlclVwZGF0ZSgpO1xuXG5cdFx0cmV0dXJuIG1lLm1pblNpemU7XG5cdH0sXG5cdGFmdGVyVXBkYXRlOiBub29wJDEsXG5cblx0Ly9cblxuXHRiZWZvcmVTZXREaW1lbnNpb25zOiBub29wJDEsXG5cdHNldERpbWVuc2lvbnM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0Ly8gU2V0IHRoZSB1bmNvbnN0cmFpbmVkIGRpbWVuc2lvbiBiZWZvcmUgbGFiZWwgcm90YXRpb25cblx0XHRpZiAobWUuaXNIb3Jpem9udGFsKCkpIHtcblx0XHRcdC8vIFJlc2V0IHBvc2l0aW9uIGJlZm9yZSBjYWxjdWxhdGluZyByb3RhdGlvblxuXHRcdFx0bWUud2lkdGggPSBtZS5tYXhXaWR0aDtcblx0XHRcdG1lLmxlZnQgPSAwO1xuXHRcdFx0bWUucmlnaHQgPSBtZS53aWR0aDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWUuaGVpZ2h0ID0gbWUubWF4SGVpZ2h0O1xuXG5cdFx0XHQvLyBSZXNldCBwb3NpdGlvbiBiZWZvcmUgY2FsY3VsYXRpbmcgcm90YXRpb25cblx0XHRcdG1lLnRvcCA9IDA7XG5cdFx0XHRtZS5ib3R0b20gPSBtZS5oZWlnaHQ7XG5cdFx0fVxuXG5cdFx0Ly8gUmVzZXQgcGFkZGluZ1xuXHRcdG1lLnBhZGRpbmdMZWZ0ID0gMDtcblx0XHRtZS5wYWRkaW5nVG9wID0gMDtcblx0XHRtZS5wYWRkaW5nUmlnaHQgPSAwO1xuXHRcdG1lLnBhZGRpbmdCb3R0b20gPSAwO1xuXG5cdFx0Ly8gUmVzZXQgbWluU2l6ZVxuXHRcdG1lLm1pblNpemUgPSB7XG5cdFx0XHR3aWR0aDogMCxcblx0XHRcdGhlaWdodDogMFxuXHRcdH07XG5cdH0sXG5cdGFmdGVyU2V0RGltZW5zaW9uczogbm9vcCQxLFxuXG5cdC8vXG5cblx0YmVmb3JlQnVpbGRMYWJlbHM6IG5vb3AkMSxcblx0YnVpbGRMYWJlbHM6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGxhYmVsT3B0cyA9IG1lLm9wdGlvbnMubGFiZWxzIHx8IHt9O1xuXHRcdHZhciBsZWdlbmRJdGVtcyA9IGhlbHBlcnMkMS5jYWxsYmFjayhsYWJlbE9wdHMuZ2VuZXJhdGVMYWJlbHMsIFttZS5jaGFydF0sIG1lKSB8fCBbXTtcblxuXHRcdGlmIChsYWJlbE9wdHMuZmlsdGVyKSB7XG5cdFx0XHRsZWdlbmRJdGVtcyA9IGxlZ2VuZEl0ZW1zLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7XG5cdFx0XHRcdHJldHVybiBsYWJlbE9wdHMuZmlsdGVyKGl0ZW0sIG1lLmNoYXJ0LmRhdGEpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKG1lLm9wdGlvbnMucmV2ZXJzZSkge1xuXHRcdFx0bGVnZW5kSXRlbXMucmV2ZXJzZSgpO1xuXHRcdH1cblxuXHRcdG1lLmxlZ2VuZEl0ZW1zID0gbGVnZW5kSXRlbXM7XG5cdH0sXG5cdGFmdGVyQnVpbGRMYWJlbHM6IG5vb3AkMSxcblxuXHQvL1xuXG5cdGJlZm9yZUZpdDogbm9vcCQxLFxuXHRmaXQ6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG9wdHMgPSBtZS5vcHRpb25zO1xuXHRcdHZhciBsYWJlbE9wdHMgPSBvcHRzLmxhYmVscztcblx0XHR2YXIgZGlzcGxheSA9IG9wdHMuZGlzcGxheTtcblxuXHRcdHZhciBjdHggPSBtZS5jdHg7XG5cblx0XHR2YXIgbGFiZWxGb250ID0gaGVscGVycyQxLm9wdGlvbnMuX3BhcnNlRm9udChsYWJlbE9wdHMpO1xuXHRcdHZhciBmb250U2l6ZSA9IGxhYmVsRm9udC5zaXplO1xuXG5cdFx0Ly8gUmVzZXQgaGl0IGJveGVzXG5cdFx0dmFyIGhpdGJveGVzID0gbWUubGVnZW5kSGl0Qm94ZXMgPSBbXTtcblxuXHRcdHZhciBtaW5TaXplID0gbWUubWluU2l6ZTtcblx0XHR2YXIgaXNIb3Jpem9udGFsID0gbWUuaXNIb3Jpem9udGFsKCk7XG5cblx0XHRpZiAoaXNIb3Jpem9udGFsKSB7XG5cdFx0XHRtaW5TaXplLndpZHRoID0gbWUubWF4V2lkdGg7IC8vIGZpbGwgYWxsIHRoZSB3aWR0aFxuXHRcdFx0bWluU2l6ZS5oZWlnaHQgPSBkaXNwbGF5ID8gMTAgOiAwO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtaW5TaXplLndpZHRoID0gZGlzcGxheSA/IDEwIDogMDtcblx0XHRcdG1pblNpemUuaGVpZ2h0ID0gbWUubWF4SGVpZ2h0OyAvLyBmaWxsIGFsbCB0aGUgaGVpZ2h0XG5cdFx0fVxuXG5cdFx0Ly8gSW5jcmVhc2Ugc2l6ZXMgaGVyZVxuXHRcdGlmIChkaXNwbGF5KSB7XG5cdFx0XHRjdHguZm9udCA9IGxhYmVsRm9udC5zdHJpbmc7XG5cblx0XHRcdGlmIChpc0hvcml6b250YWwpIHtcblx0XHRcdFx0Ly8gTGFiZWxzXG5cblx0XHRcdFx0Ly8gV2lkdGggb2YgZWFjaCBsaW5lIG9mIGxlZ2VuZCBib3hlcy4gTGFiZWxzIHdyYXAgb250byBtdWx0aXBsZSBsaW5lcyB3aGVuIHRoZXJlIGFyZSB0b28gbWFueSB0byBmaXQgb24gb25lXG5cdFx0XHRcdHZhciBsaW5lV2lkdGhzID0gbWUubGluZVdpZHRocyA9IFswXTtcblx0XHRcdFx0dmFyIHRvdGFsSGVpZ2h0ID0gMDtcblxuXHRcdFx0XHRjdHgudGV4dEFsaWduID0gJ2xlZnQnO1xuXHRcdFx0XHRjdHgudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG5cblx0XHRcdFx0aGVscGVycyQxLmVhY2gobWUubGVnZW5kSXRlbXMsIGZ1bmN0aW9uKGxlZ2VuZEl0ZW0sIGkpIHtcblx0XHRcdFx0XHR2YXIgYm94V2lkdGggPSBnZXRCb3hXaWR0aChsYWJlbE9wdHMsIGZvbnRTaXplKTtcblx0XHRcdFx0XHR2YXIgd2lkdGggPSBib3hXaWR0aCArIChmb250U2l6ZSAvIDIpICsgY3R4Lm1lYXN1cmVUZXh0KGxlZ2VuZEl0ZW0udGV4dCkud2lkdGg7XG5cblx0XHRcdFx0XHRpZiAoaSA9PT0gMCB8fCBsaW5lV2lkdGhzW2xpbmVXaWR0aHMubGVuZ3RoIC0gMV0gKyB3aWR0aCArIGxhYmVsT3B0cy5wYWRkaW5nID4gbWluU2l6ZS53aWR0aCkge1xuXHRcdFx0XHRcdFx0dG90YWxIZWlnaHQgKz0gZm9udFNpemUgKyBsYWJlbE9wdHMucGFkZGluZztcblx0XHRcdFx0XHRcdGxpbmVXaWR0aHNbbGluZVdpZHRocy5sZW5ndGggLSAoaSA+IDAgPyAwIDogMSldID0gbGFiZWxPcHRzLnBhZGRpbmc7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU3RvcmUgdGhlIGhpdGJveCB3aWR0aCBhbmQgaGVpZ2h0IGhlcmUuIEZpbmFsIHBvc2l0aW9uIHdpbGwgYmUgdXBkYXRlZCBpbiBgZHJhd2Bcblx0XHRcdFx0XHRoaXRib3hlc1tpXSA9IHtcblx0XHRcdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0XHR3aWR0aDogd2lkdGgsXG5cdFx0XHRcdFx0XHRoZWlnaHQ6IGZvbnRTaXplXG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdGxpbmVXaWR0aHNbbGluZVdpZHRocy5sZW5ndGggLSAxXSArPSB3aWR0aCArIGxhYmVsT3B0cy5wYWRkaW5nO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRtaW5TaXplLmhlaWdodCArPSB0b3RhbEhlaWdodDtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFyIHZQYWRkaW5nID0gbGFiZWxPcHRzLnBhZGRpbmc7XG5cdFx0XHRcdHZhciBjb2x1bW5XaWR0aHMgPSBtZS5jb2x1bW5XaWR0aHMgPSBbXTtcblx0XHRcdFx0dmFyIHRvdGFsV2lkdGggPSBsYWJlbE9wdHMucGFkZGluZztcblx0XHRcdFx0dmFyIGN1cnJlbnRDb2xXaWR0aCA9IDA7XG5cdFx0XHRcdHZhciBjdXJyZW50Q29sSGVpZ2h0ID0gMDtcblx0XHRcdFx0dmFyIGl0ZW1IZWlnaHQgPSBmb250U2l6ZSArIHZQYWRkaW5nO1xuXG5cdFx0XHRcdGhlbHBlcnMkMS5lYWNoKG1lLmxlZ2VuZEl0ZW1zLCBmdW5jdGlvbihsZWdlbmRJdGVtLCBpKSB7XG5cdFx0XHRcdFx0dmFyIGJveFdpZHRoID0gZ2V0Qm94V2lkdGgobGFiZWxPcHRzLCBmb250U2l6ZSk7XG5cdFx0XHRcdFx0dmFyIGl0ZW1XaWR0aCA9IGJveFdpZHRoICsgKGZvbnRTaXplIC8gMikgKyBjdHgubWVhc3VyZVRleHQobGVnZW5kSXRlbS50ZXh0KS53aWR0aDtcblxuXHRcdFx0XHRcdC8vIElmIHRvbyB0YWxsLCBnbyB0byBuZXcgY29sdW1uXG5cdFx0XHRcdFx0aWYgKGkgPiAwICYmIGN1cnJlbnRDb2xIZWlnaHQgKyBpdGVtSGVpZ2h0ID4gbWluU2l6ZS5oZWlnaHQgLSB2UGFkZGluZykge1xuXHRcdFx0XHRcdFx0dG90YWxXaWR0aCArPSBjdXJyZW50Q29sV2lkdGggKyBsYWJlbE9wdHMucGFkZGluZztcblx0XHRcdFx0XHRcdGNvbHVtbldpZHRocy5wdXNoKGN1cnJlbnRDb2xXaWR0aCk7IC8vIHByZXZpb3VzIGNvbHVtbiB3aWR0aFxuXG5cdFx0XHRcdFx0XHRjdXJyZW50Q29sV2lkdGggPSAwO1xuXHRcdFx0XHRcdFx0Y3VycmVudENvbEhlaWdodCA9IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gR2V0IG1heCB3aWR0aFxuXHRcdFx0XHRcdGN1cnJlbnRDb2xXaWR0aCA9IE1hdGgubWF4KGN1cnJlbnRDb2xXaWR0aCwgaXRlbVdpZHRoKTtcblx0XHRcdFx0XHRjdXJyZW50Q29sSGVpZ2h0ICs9IGl0ZW1IZWlnaHQ7XG5cblx0XHRcdFx0XHQvLyBTdG9yZSB0aGUgaGl0Ym94IHdpZHRoIGFuZCBoZWlnaHQgaGVyZS4gRmluYWwgcG9zaXRpb24gd2lsbCBiZSB1cGRhdGVkIGluIGBkcmF3YFxuXHRcdFx0XHRcdGhpdGJveGVzW2ldID0ge1xuXHRcdFx0XHRcdFx0bGVmdDogMCxcblx0XHRcdFx0XHRcdHRvcDogMCxcblx0XHRcdFx0XHRcdHdpZHRoOiBpdGVtV2lkdGgsXG5cdFx0XHRcdFx0XHRoZWlnaHQ6IGZvbnRTaXplXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0dG90YWxXaWR0aCArPSBjdXJyZW50Q29sV2lkdGg7XG5cdFx0XHRcdGNvbHVtbldpZHRocy5wdXNoKGN1cnJlbnRDb2xXaWR0aCk7XG5cdFx0XHRcdG1pblNpemUud2lkdGggKz0gdG90YWxXaWR0aDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRtZS53aWR0aCA9IG1pblNpemUud2lkdGg7XG5cdFx0bWUuaGVpZ2h0ID0gbWluU2l6ZS5oZWlnaHQ7XG5cdH0sXG5cdGFmdGVyRml0OiBub29wJDEsXG5cblx0Ly8gU2hhcmVkIE1ldGhvZHNcblx0aXNIb3Jpem9udGFsOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zLnBvc2l0aW9uID09PSAndG9wJyB8fCB0aGlzLm9wdGlvbnMucG9zaXRpb24gPT09ICdib3R0b20nO1xuXHR9LFxuXG5cdC8vIEFjdHVhbGx5IGRyYXcgdGhlIGxlZ2VuZCBvbiB0aGUgY2FudmFzXG5cdGRyYXc6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIG9wdHMgPSBtZS5vcHRpb25zO1xuXHRcdHZhciBsYWJlbE9wdHMgPSBvcHRzLmxhYmVscztcblx0XHR2YXIgZ2xvYmFsRGVmYXVsdHMgPSBjb3JlX2RlZmF1bHRzLmdsb2JhbDtcblx0XHR2YXIgZGVmYXVsdENvbG9yID0gZ2xvYmFsRGVmYXVsdHMuZGVmYXVsdENvbG9yO1xuXHRcdHZhciBsaW5lRGVmYXVsdCA9IGdsb2JhbERlZmF1bHRzLmVsZW1lbnRzLmxpbmU7XG5cdFx0dmFyIGxlZ2VuZFdpZHRoID0gbWUud2lkdGg7XG5cdFx0dmFyIGxpbmVXaWR0aHMgPSBtZS5saW5lV2lkdGhzO1xuXG5cdFx0aWYgKG9wdHMuZGlzcGxheSkge1xuXHRcdFx0dmFyIGN0eCA9IG1lLmN0eDtcblx0XHRcdHZhciBmb250Q29sb3IgPSB2YWx1ZU9yRGVmYXVsdCRkKGxhYmVsT3B0cy5mb250Q29sb3IsIGdsb2JhbERlZmF1bHRzLmRlZmF1bHRGb250Q29sb3IpO1xuXHRcdFx0dmFyIGxhYmVsRm9udCA9IGhlbHBlcnMkMS5vcHRpb25zLl9wYXJzZUZvbnQobGFiZWxPcHRzKTtcblx0XHRcdHZhciBmb250U2l6ZSA9IGxhYmVsRm9udC5zaXplO1xuXHRcdFx0dmFyIGN1cnNvcjtcblxuXHRcdFx0Ly8gQ2FudmFzIHNldHVwXG5cdFx0XHRjdHgudGV4dEFsaWduID0gJ2xlZnQnO1xuXHRcdFx0Y3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuXHRcdFx0Y3R4LmxpbmVXaWR0aCA9IDAuNTtcblx0XHRcdGN0eC5zdHJva2VTdHlsZSA9IGZvbnRDb2xvcjsgLy8gZm9yIHN0cmlrZXRocm91Z2ggZWZmZWN0XG5cdFx0XHRjdHguZmlsbFN0eWxlID0gZm9udENvbG9yOyAvLyByZW5kZXIgaW4gY29ycmVjdCBjb2xvdXJcblx0XHRcdGN0eC5mb250ID0gbGFiZWxGb250LnN0cmluZztcblxuXHRcdFx0dmFyIGJveFdpZHRoID0gZ2V0Qm94V2lkdGgobGFiZWxPcHRzLCBmb250U2l6ZSk7XG5cdFx0XHR2YXIgaGl0Ym94ZXMgPSBtZS5sZWdlbmRIaXRCb3hlcztcblxuXHRcdFx0Ly8gY3VycmVudCBwb3NpdGlvblxuXHRcdFx0dmFyIGRyYXdMZWdlbmRCb3ggPSBmdW5jdGlvbih4LCB5LCBsZWdlbmRJdGVtKSB7XG5cdFx0XHRcdGlmIChpc05hTihib3hXaWR0aCkgfHwgYm94V2lkdGggPD0gMCkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFNldCB0aGUgY3R4IGZvciB0aGUgYm94XG5cdFx0XHRcdGN0eC5zYXZlKCk7XG5cblx0XHRcdFx0dmFyIGxpbmVXaWR0aCA9IHZhbHVlT3JEZWZhdWx0JGQobGVnZW5kSXRlbS5saW5lV2lkdGgsIGxpbmVEZWZhdWx0LmJvcmRlcldpZHRoKTtcblx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHZhbHVlT3JEZWZhdWx0JGQobGVnZW5kSXRlbS5maWxsU3R5bGUsIGRlZmF1bHRDb2xvcik7XG5cdFx0XHRcdGN0eC5saW5lQ2FwID0gdmFsdWVPckRlZmF1bHQkZChsZWdlbmRJdGVtLmxpbmVDYXAsIGxpbmVEZWZhdWx0LmJvcmRlckNhcFN0eWxlKTtcblx0XHRcdFx0Y3R4LmxpbmVEYXNoT2Zmc2V0ID0gdmFsdWVPckRlZmF1bHQkZChsZWdlbmRJdGVtLmxpbmVEYXNoT2Zmc2V0LCBsaW5lRGVmYXVsdC5ib3JkZXJEYXNoT2Zmc2V0KTtcblx0XHRcdFx0Y3R4LmxpbmVKb2luID0gdmFsdWVPckRlZmF1bHQkZChsZWdlbmRJdGVtLmxpbmVKb2luLCBsaW5lRGVmYXVsdC5ib3JkZXJKb2luU3R5bGUpO1xuXHRcdFx0XHRjdHgubGluZVdpZHRoID0gbGluZVdpZHRoO1xuXHRcdFx0XHRjdHguc3Ryb2tlU3R5bGUgPSB2YWx1ZU9yRGVmYXVsdCRkKGxlZ2VuZEl0ZW0uc3Ryb2tlU3R5bGUsIGRlZmF1bHRDb2xvcik7XG5cblx0XHRcdFx0aWYgKGN0eC5zZXRMaW5lRGFzaCkge1xuXHRcdFx0XHRcdC8vIElFIDkgYW5kIDEwIGRvIG5vdCBzdXBwb3J0IGxpbmUgZGFzaFxuXHRcdFx0XHRcdGN0eC5zZXRMaW5lRGFzaCh2YWx1ZU9yRGVmYXVsdCRkKGxlZ2VuZEl0ZW0ubGluZURhc2gsIGxpbmVEZWZhdWx0LmJvcmRlckRhc2gpKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChvcHRzLmxhYmVscyAmJiBvcHRzLmxhYmVscy51c2VQb2ludFN0eWxlKSB7XG5cdFx0XHRcdFx0Ly8gUmVjYWxjdWxhdGUgeCBhbmQgeSBmb3IgZHJhd1BvaW50KCkgYmVjYXVzZSBpdHMgZXhwZWN0aW5nXG5cdFx0XHRcdFx0Ly8geCBhbmQgeSB0byBiZSBjZW50ZXIgb2YgZmlndXJlIChpbnN0ZWFkIG9mIHRvcCBsZWZ0KVxuXHRcdFx0XHRcdHZhciByYWRpdXMgPSBib3hXaWR0aCAqIE1hdGguU1FSVDIgLyAyO1xuXHRcdFx0XHRcdHZhciBjZW50ZXJYID0geCArIGJveFdpZHRoIC8gMjtcblx0XHRcdFx0XHR2YXIgY2VudGVyWSA9IHkgKyBmb250U2l6ZSAvIDI7XG5cblx0XHRcdFx0XHQvLyBEcmF3IHBvaW50U3R5bGUgYXMgbGVnZW5kIHN5bWJvbFxuXHRcdFx0XHRcdGhlbHBlcnMkMS5jYW52YXMuZHJhd1BvaW50KGN0eCwgbGVnZW5kSXRlbS5wb2ludFN0eWxlLCByYWRpdXMsIGNlbnRlclgsIGNlbnRlclkpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIERyYXcgYm94IGFzIGxlZ2VuZCBzeW1ib2xcblx0XHRcdFx0XHRpZiAobGluZVdpZHRoICE9PSAwKSB7XG5cdFx0XHRcdFx0XHRjdHguc3Ryb2tlUmVjdCh4LCB5LCBib3hXaWR0aCwgZm9udFNpemUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjdHguZmlsbFJlY3QoeCwgeSwgYm94V2lkdGgsIGZvbnRTaXplKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGN0eC5yZXN0b3JlKCk7XG5cdFx0XHR9O1xuXHRcdFx0dmFyIGZpbGxUZXh0ID0gZnVuY3Rpb24oeCwgeSwgbGVnZW5kSXRlbSwgdGV4dFdpZHRoKSB7XG5cdFx0XHRcdHZhciBoYWxmRm9udFNpemUgPSBmb250U2l6ZSAvIDI7XG5cdFx0XHRcdHZhciB4TGVmdCA9IGJveFdpZHRoICsgaGFsZkZvbnRTaXplICsgeDtcblx0XHRcdFx0dmFyIHlNaWRkbGUgPSB5ICsgaGFsZkZvbnRTaXplO1xuXG5cdFx0XHRcdGN0eC5maWxsVGV4dChsZWdlbmRJdGVtLnRleHQsIHhMZWZ0LCB5TWlkZGxlKTtcblxuXHRcdFx0XHRpZiAobGVnZW5kSXRlbS5oaWRkZW4pIHtcblx0XHRcdFx0XHQvLyBTdHJpa2V0aHJvdWdoIHRoZSB0ZXh0IGlmIGhpZGRlblxuXHRcdFx0XHRcdGN0eC5iZWdpblBhdGgoKTtcblx0XHRcdFx0XHRjdHgubGluZVdpZHRoID0gMjtcblx0XHRcdFx0XHRjdHgubW92ZVRvKHhMZWZ0LCB5TWlkZGxlKTtcblx0XHRcdFx0XHRjdHgubGluZVRvKHhMZWZ0ICsgdGV4dFdpZHRoLCB5TWlkZGxlKTtcblx0XHRcdFx0XHRjdHguc3Ryb2tlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRcdC8vIEhvcml6b250YWxcblx0XHRcdHZhciBpc0hvcml6b250YWwgPSBtZS5pc0hvcml6b250YWwoKTtcblx0XHRcdGlmIChpc0hvcml6b250YWwpIHtcblx0XHRcdFx0Y3Vyc29yID0ge1xuXHRcdFx0XHRcdHg6IG1lLmxlZnQgKyAoKGxlZ2VuZFdpZHRoIC0gbGluZVdpZHRoc1swXSkgLyAyKSArIGxhYmVsT3B0cy5wYWRkaW5nLFxuXHRcdFx0XHRcdHk6IG1lLnRvcCArIGxhYmVsT3B0cy5wYWRkaW5nLFxuXHRcdFx0XHRcdGxpbmU6IDBcblx0XHRcdFx0fTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGN1cnNvciA9IHtcblx0XHRcdFx0XHR4OiBtZS5sZWZ0ICsgbGFiZWxPcHRzLnBhZGRpbmcsXG5cdFx0XHRcdFx0eTogbWUudG9wICsgbGFiZWxPcHRzLnBhZGRpbmcsXG5cdFx0XHRcdFx0bGluZTogMFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHR2YXIgaXRlbUhlaWdodCA9IGZvbnRTaXplICsgbGFiZWxPcHRzLnBhZGRpbmc7XG5cdFx0XHRoZWxwZXJzJDEuZWFjaChtZS5sZWdlbmRJdGVtcywgZnVuY3Rpb24obGVnZW5kSXRlbSwgaSkge1xuXHRcdFx0XHR2YXIgdGV4dFdpZHRoID0gY3R4Lm1lYXN1cmVUZXh0KGxlZ2VuZEl0ZW0udGV4dCkud2lkdGg7XG5cdFx0XHRcdHZhciB3aWR0aCA9IGJveFdpZHRoICsgKGZvbnRTaXplIC8gMikgKyB0ZXh0V2lkdGg7XG5cdFx0XHRcdHZhciB4ID0gY3Vyc29yLng7XG5cdFx0XHRcdHZhciB5ID0gY3Vyc29yLnk7XG5cblx0XHRcdFx0Ly8gVXNlIChtZS5sZWZ0ICsgbWUubWluU2l6ZS53aWR0aCkgYW5kIChtZS50b3AgKyBtZS5taW5TaXplLmhlaWdodClcblx0XHRcdFx0Ly8gaW5zdGVhZCBvZiBtZS5yaWdodCBhbmQgbWUuYm90dG9tIGJlY2F1c2UgbWUud2lkdGggYW5kIG1lLmhlaWdodFxuXHRcdFx0XHQvLyBtYXkgaGF2ZSBiZWVuIGNoYW5nZWQgc2luY2UgbWUubWluU2l6ZSB3YXMgY2FsY3VsYXRlZFxuXHRcdFx0XHRpZiAoaXNIb3Jpem9udGFsKSB7XG5cdFx0XHRcdFx0aWYgKGkgPiAwICYmIHggKyB3aWR0aCArIGxhYmVsT3B0cy5wYWRkaW5nID4gbWUubGVmdCArIG1lLm1pblNpemUud2lkdGgpIHtcblx0XHRcdFx0XHRcdHkgPSBjdXJzb3IueSArPSBpdGVtSGVpZ2h0O1xuXHRcdFx0XHRcdFx0Y3Vyc29yLmxpbmUrKztcblx0XHRcdFx0XHRcdHggPSBjdXJzb3IueCA9IG1lLmxlZnQgKyAoKGxlZ2VuZFdpZHRoIC0gbGluZVdpZHRoc1tjdXJzb3IubGluZV0pIC8gMikgKyBsYWJlbE9wdHMucGFkZGluZztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAoaSA+IDAgJiYgeSArIGl0ZW1IZWlnaHQgPiBtZS50b3AgKyBtZS5taW5TaXplLmhlaWdodCkge1xuXHRcdFx0XHRcdHggPSBjdXJzb3IueCA9IHggKyBtZS5jb2x1bW5XaWR0aHNbY3Vyc29yLmxpbmVdICsgbGFiZWxPcHRzLnBhZGRpbmc7XG5cdFx0XHRcdFx0eSA9IGN1cnNvci55ID0gbWUudG9wICsgbGFiZWxPcHRzLnBhZGRpbmc7XG5cdFx0XHRcdFx0Y3Vyc29yLmxpbmUrKztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGRyYXdMZWdlbmRCb3goeCwgeSwgbGVnZW5kSXRlbSk7XG5cblx0XHRcdFx0aGl0Ym94ZXNbaV0ubGVmdCA9IHg7XG5cdFx0XHRcdGhpdGJveGVzW2ldLnRvcCA9IHk7XG5cblx0XHRcdFx0Ly8gRmlsbCB0aGUgYWN0dWFsIGxhYmVsXG5cdFx0XHRcdGZpbGxUZXh0KHgsIHksIGxlZ2VuZEl0ZW0sIHRleHRXaWR0aCk7XG5cblx0XHRcdFx0aWYgKGlzSG9yaXpvbnRhbCkge1xuXHRcdFx0XHRcdGN1cnNvci54ICs9IHdpZHRoICsgbGFiZWxPcHRzLnBhZGRpbmc7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y3Vyc29yLnkgKz0gaXRlbUhlaWdodDtcblx0XHRcdFx0fVxuXG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfZ2V0TGVnZW5kSXRlbUF0OiBmdW5jdGlvbih4LCB5KSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgaSwgaGl0Qm94LCBsaDtcblxuXHRcdGlmICh4ID49IG1lLmxlZnQgJiYgeCA8PSBtZS5yaWdodCAmJiB5ID49IG1lLnRvcCAmJiB5IDw9IG1lLmJvdHRvbSkge1xuXHRcdFx0Ly8gU2VlIGlmIHdlIGFyZSB0b3VjaGluZyBvbmUgb2YgdGhlIGRhdGFzZXQgYm94ZXNcblx0XHRcdGxoID0gbWUubGVnZW5kSGl0Qm94ZXM7XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgbGgubGVuZ3RoOyArK2kpIHtcblx0XHRcdFx0aGl0Qm94ID0gbGhbaV07XG5cblx0XHRcdFx0aWYgKHggPj0gaGl0Qm94LmxlZnQgJiYgeCA8PSBoaXRCb3gubGVmdCArIGhpdEJveC53aWR0aCAmJiB5ID49IGhpdEJveC50b3AgJiYgeSA8PSBoaXRCb3gudG9wICsgaGl0Qm94LmhlaWdodCkge1xuXHRcdFx0XHRcdC8vIFRvdWNoaW5nIGFuIGVsZW1lbnRcblx0XHRcdFx0XHRyZXR1cm4gbWUubGVnZW5kSXRlbXNbaV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gbnVsbDtcblx0fSxcblxuXHQvKipcblx0ICogSGFuZGxlIGFuIGV2ZW50XG5cdCAqIEBwcml2YXRlXG5cdCAqIEBwYXJhbSB7SUV2ZW50fSBldmVudCAtIFRoZSBldmVudCB0byBoYW5kbGVcblx0ICovXG5cdGhhbmRsZUV2ZW50OiBmdW5jdGlvbihlKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHR2YXIgb3B0cyA9IG1lLm9wdGlvbnM7XG5cdFx0dmFyIHR5cGUgPSBlLnR5cGUgPT09ICdtb3VzZXVwJyA/ICdjbGljaycgOiBlLnR5cGU7XG5cdFx0dmFyIGhvdmVyZWRJdGVtO1xuXG5cdFx0aWYgKHR5cGUgPT09ICdtb3VzZW1vdmUnKSB7XG5cdFx0XHRpZiAoIW9wdHMub25Ib3ZlciAmJiAhb3B0cy5vbkxlYXZlKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKHR5cGUgPT09ICdjbGljaycpIHtcblx0XHRcdGlmICghb3B0cy5vbkNsaWNrKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIENoYXJ0IGV2ZW50IGFscmVhZHkgaGFzIHJlbGF0aXZlIHBvc2l0aW9uIGluIGl0XG5cdFx0aG92ZXJlZEl0ZW0gPSBtZS5fZ2V0TGVnZW5kSXRlbUF0KGUueCwgZS55KTtcblxuXHRcdGlmICh0eXBlID09PSAnY2xpY2snKSB7XG5cdFx0XHRpZiAoaG92ZXJlZEl0ZW0gJiYgb3B0cy5vbkNsaWNrKSB7XG5cdFx0XHRcdC8vIHVzZSBlLm5hdGl2ZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcblx0XHRcdFx0b3B0cy5vbkNsaWNrLmNhbGwobWUsIGUubmF0aXZlLCBob3ZlcmVkSXRlbSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmIChvcHRzLm9uTGVhdmUgJiYgaG92ZXJlZEl0ZW0gIT09IG1lLl9ob3ZlcmVkSXRlbSkge1xuXHRcdFx0XHRpZiAobWUuX2hvdmVyZWRJdGVtKSB7XG5cdFx0XHRcdFx0b3B0cy5vbkxlYXZlLmNhbGwobWUsIGUubmF0aXZlLCBtZS5faG92ZXJlZEl0ZW0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG1lLl9ob3ZlcmVkSXRlbSA9IGhvdmVyZWRJdGVtO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAob3B0cy5vbkhvdmVyICYmIGhvdmVyZWRJdGVtKSB7XG5cdFx0XHRcdC8vIHVzZSBlLm5hdGl2ZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcblx0XHRcdFx0b3B0cy5vbkhvdmVyLmNhbGwobWUsIGUubmF0aXZlLCBob3ZlcmVkSXRlbSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59KTtcblxuZnVuY3Rpb24gY3JlYXRlTmV3TGVnZW5kQW5kQXR0YWNoKGNoYXJ0LCBsZWdlbmRPcHRzKSB7XG5cdHZhciBsZWdlbmQgPSBuZXcgTGVnZW5kKHtcblx0XHRjdHg6IGNoYXJ0LmN0eCxcblx0XHRvcHRpb25zOiBsZWdlbmRPcHRzLFxuXHRcdGNoYXJ0OiBjaGFydFxuXHR9KTtcblxuXHRjb3JlX2xheW91dHMuY29uZmlndXJlKGNoYXJ0LCBsZWdlbmQsIGxlZ2VuZE9wdHMpO1xuXHRjb3JlX2xheW91dHMuYWRkQm94KGNoYXJ0LCBsZWdlbmQpO1xuXHRjaGFydC5sZWdlbmQgPSBsZWdlbmQ7XG59XG5cbnZhciBwbHVnaW5fbGVnZW5kID0ge1xuXHRpZDogJ2xlZ2VuZCcsXG5cblx0LyoqXG5cdCAqIEJhY2t3YXJkIGNvbXBhdGliaWxpdHk6IHNpbmNlIDIuMS41LCB0aGUgbGVnZW5kIGlzIHJlZ2lzdGVyZWQgYXMgYSBwbHVnaW4sIG1ha2luZ1xuXHQgKiBDaGFydC5MZWdlbmQgb2Jzb2xldGUuIFRvIGF2b2lkIGEgYnJlYWtpbmcgY2hhbmdlLCB3ZSBleHBvcnQgdGhlIExlZ2VuZCBhcyBwYXJ0IG9mXG5cdCAqIHRoZSBwbHVnaW4sIHdoaWNoIG9uZSB3aWxsIGJlIHJlLWV4cG9zZWQgaW4gdGhlIGNoYXJ0LmpzIGZpbGUuXG5cdCAqIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL3B1bGwvMjY0MFxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2VsZW1lbnQ6IExlZ2VuZCxcblxuXHRiZWZvcmVJbml0OiBmdW5jdGlvbihjaGFydCkge1xuXHRcdHZhciBsZWdlbmRPcHRzID0gY2hhcnQub3B0aW9ucy5sZWdlbmQ7XG5cblx0XHRpZiAobGVnZW5kT3B0cykge1xuXHRcdFx0Y3JlYXRlTmV3TGVnZW5kQW5kQXR0YWNoKGNoYXJ0LCBsZWdlbmRPcHRzKTtcblx0XHR9XG5cdH0sXG5cblx0YmVmb3JlVXBkYXRlOiBmdW5jdGlvbihjaGFydCkge1xuXHRcdHZhciBsZWdlbmRPcHRzID0gY2hhcnQub3B0aW9ucy5sZWdlbmQ7XG5cdFx0dmFyIGxlZ2VuZCA9IGNoYXJ0LmxlZ2VuZDtcblxuXHRcdGlmIChsZWdlbmRPcHRzKSB7XG5cdFx0XHRoZWxwZXJzJDEubWVyZ2VJZihsZWdlbmRPcHRzLCBjb3JlX2RlZmF1bHRzLmdsb2JhbC5sZWdlbmQpO1xuXG5cdFx0XHRpZiAobGVnZW5kKSB7XG5cdFx0XHRcdGNvcmVfbGF5b3V0cy5jb25maWd1cmUoY2hhcnQsIGxlZ2VuZCwgbGVnZW5kT3B0cyk7XG5cdFx0XHRcdGxlZ2VuZC5vcHRpb25zID0gbGVnZW5kT3B0cztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNyZWF0ZU5ld0xlZ2VuZEFuZEF0dGFjaChjaGFydCwgbGVnZW5kT3B0cyk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChsZWdlbmQpIHtcblx0XHRcdGNvcmVfbGF5b3V0cy5yZW1vdmVCb3goY2hhcnQsIGxlZ2VuZCk7XG5cdFx0XHRkZWxldGUgY2hhcnQubGVnZW5kO1xuXHRcdH1cblx0fSxcblxuXHRhZnRlckV2ZW50OiBmdW5jdGlvbihjaGFydCwgZSkge1xuXHRcdHZhciBsZWdlbmQgPSBjaGFydC5sZWdlbmQ7XG5cdFx0aWYgKGxlZ2VuZCkge1xuXHRcdFx0bGVnZW5kLmhhbmRsZUV2ZW50KGUpO1xuXHRcdH1cblx0fVxufTtcblxudmFyIG5vb3AkMiA9IGhlbHBlcnMkMS5ub29wO1xuXG5jb3JlX2RlZmF1bHRzLl9zZXQoJ2dsb2JhbCcsIHtcblx0dGl0bGU6IHtcblx0XHRkaXNwbGF5OiBmYWxzZSxcblx0XHRmb250U3R5bGU6ICdib2xkJyxcblx0XHRmdWxsV2lkdGg6IHRydWUsXG5cdFx0cGFkZGluZzogMTAsXG5cdFx0cG9zaXRpb246ICd0b3AnLFxuXHRcdHRleHQ6ICcnLFxuXHRcdHdlaWdodDogMjAwMCAgICAgICAgIC8vIGJ5IGRlZmF1bHQgZ3JlYXRlciB0aGFuIGxlZ2VuZCAoMTAwMCkgdG8gYmUgYWJvdmVcblx0fVxufSk7XG5cbi8qKlxuICogSU1QT1JUQU5UOiB0aGlzIGNsYXNzIGlzIGV4cG9zZWQgcHVibGljbHkgYXMgQ2hhcnQuTGVnZW5kLCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHJlcXVpcmVkIVxuICovXG52YXIgVGl0bGUgPSBjb3JlX2VsZW1lbnQuZXh0ZW5kKHtcblx0aW5pdGlhbGl6ZTogZnVuY3Rpb24oY29uZmlnKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHRoZWxwZXJzJDEuZXh0ZW5kKG1lLCBjb25maWcpO1xuXG5cdFx0Ly8gQ29udGFpbnMgaGl0IGJveGVzIGZvciBlYWNoIGRhdGFzZXQgKGluIGRhdGFzZXQgb3JkZXIpXG5cdFx0bWUubGVnZW5kSGl0Qm94ZXMgPSBbXTtcblx0fSxcblxuXHQvLyBUaGVzZSBtZXRob2RzIGFyZSBvcmRlcmVkIGJ5IGxpZmVjeWNsZS4gVXRpbGl0aWVzIHRoZW4gZm9sbG93LlxuXG5cdGJlZm9yZVVwZGF0ZTogbm9vcCQyLFxuXHR1cGRhdGU6IGZ1bmN0aW9uKG1heFdpZHRoLCBtYXhIZWlnaHQsIG1hcmdpbnMpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXG5cdFx0Ly8gVXBkYXRlIExpZmVjeWNsZSAtIFByb2JhYmx5IGRvbid0IHdhbnQgdG8gZXZlciBleHRlbmQgb3Igb3ZlcndyaXRlIHRoaXMgZnVuY3Rpb24gOylcblx0XHRtZS5iZWZvcmVVcGRhdGUoKTtcblxuXHRcdC8vIEFic29yYiB0aGUgbWFzdGVyIG1lYXN1cmVtZW50c1xuXHRcdG1lLm1heFdpZHRoID0gbWF4V2lkdGg7XG5cdFx0bWUubWF4SGVpZ2h0ID0gbWF4SGVpZ2h0O1xuXHRcdG1lLm1hcmdpbnMgPSBtYXJnaW5zO1xuXG5cdFx0Ly8gRGltZW5zaW9uc1xuXHRcdG1lLmJlZm9yZVNldERpbWVuc2lvbnMoKTtcblx0XHRtZS5zZXREaW1lbnNpb25zKCk7XG5cdFx0bWUuYWZ0ZXJTZXREaW1lbnNpb25zKCk7XG5cdFx0Ly8gTGFiZWxzXG5cdFx0bWUuYmVmb3JlQnVpbGRMYWJlbHMoKTtcblx0XHRtZS5idWlsZExhYmVscygpO1xuXHRcdG1lLmFmdGVyQnVpbGRMYWJlbHMoKTtcblxuXHRcdC8vIEZpdFxuXHRcdG1lLmJlZm9yZUZpdCgpO1xuXHRcdG1lLmZpdCgpO1xuXHRcdG1lLmFmdGVyRml0KCk7XG5cdFx0Ly9cblx0XHRtZS5hZnRlclVwZGF0ZSgpO1xuXG5cdFx0cmV0dXJuIG1lLm1pblNpemU7XG5cblx0fSxcblx0YWZ0ZXJVcGRhdGU6IG5vb3AkMixcblxuXHQvL1xuXG5cdGJlZm9yZVNldERpbWVuc2lvbnM6IG5vb3AkMixcblx0c2V0RGltZW5zaW9uczogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1lID0gdGhpcztcblx0XHQvLyBTZXQgdGhlIHVuY29uc3RyYWluZWQgZGltZW5zaW9uIGJlZm9yZSBsYWJlbCByb3RhdGlvblxuXHRcdGlmIChtZS5pc0hvcml6b250YWwoKSkge1xuXHRcdFx0Ly8gUmVzZXQgcG9zaXRpb24gYmVmb3JlIGNhbGN1bGF0aW5nIHJvdGF0aW9uXG5cdFx0XHRtZS53aWR0aCA9IG1lLm1heFdpZHRoO1xuXHRcdFx0bWUubGVmdCA9IDA7XG5cdFx0XHRtZS5yaWdodCA9IG1lLndpZHRoO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtZS5oZWlnaHQgPSBtZS5tYXhIZWlnaHQ7XG5cblx0XHRcdC8vIFJlc2V0IHBvc2l0aW9uIGJlZm9yZSBjYWxjdWxhdGluZyByb3RhdGlvblxuXHRcdFx0bWUudG9wID0gMDtcblx0XHRcdG1lLmJvdHRvbSA9IG1lLmhlaWdodDtcblx0XHR9XG5cblx0XHQvLyBSZXNldCBwYWRkaW5nXG5cdFx0bWUucGFkZGluZ0xlZnQgPSAwO1xuXHRcdG1lLnBhZGRpbmdUb3AgPSAwO1xuXHRcdG1lLnBhZGRpbmdSaWdodCA9IDA7XG5cdFx0bWUucGFkZGluZ0JvdHRvbSA9IDA7XG5cblx0XHQvLyBSZXNldCBtaW5TaXplXG5cdFx0bWUubWluU2l6ZSA9IHtcblx0XHRcdHdpZHRoOiAwLFxuXHRcdFx0aGVpZ2h0OiAwXG5cdFx0fTtcblx0fSxcblx0YWZ0ZXJTZXREaW1lbnNpb25zOiBub29wJDIsXG5cblx0Ly9cblxuXHRiZWZvcmVCdWlsZExhYmVsczogbm9vcCQyLFxuXHRidWlsZExhYmVsczogbm9vcCQyLFxuXHRhZnRlckJ1aWxkTGFiZWxzOiBub29wJDIsXG5cblx0Ly9cblxuXHRiZWZvcmVGaXQ6IG5vb3AkMixcblx0Zml0OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgbWUgPSB0aGlzO1xuXHRcdHZhciBvcHRzID0gbWUub3B0aW9ucztcblx0XHR2YXIgZGlzcGxheSA9IG9wdHMuZGlzcGxheTtcblx0XHR2YXIgbWluU2l6ZSA9IG1lLm1pblNpemU7XG5cdFx0dmFyIGxpbmVDb3VudCA9IGhlbHBlcnMkMS5pc0FycmF5KG9wdHMudGV4dCkgPyBvcHRzLnRleHQubGVuZ3RoIDogMTtcblx0XHR2YXIgZm9udE9wdHMgPSBoZWxwZXJzJDEub3B0aW9ucy5fcGFyc2VGb250KG9wdHMpO1xuXHRcdHZhciB0ZXh0U2l6ZSA9IGRpc3BsYXkgPyAobGluZUNvdW50ICogZm9udE9wdHMubGluZUhlaWdodCkgKyAob3B0cy5wYWRkaW5nICogMikgOiAwO1xuXG5cdFx0aWYgKG1lLmlzSG9yaXpvbnRhbCgpKSB7XG5cdFx0XHRtaW5TaXplLndpZHRoID0gbWUubWF4V2lkdGg7IC8vIGZpbGwgYWxsIHRoZSB3aWR0aFxuXHRcdFx0bWluU2l6ZS5oZWlnaHQgPSB0ZXh0U2l6ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWluU2l6ZS53aWR0aCA9IHRleHRTaXplO1xuXHRcdFx0bWluU2l6ZS5oZWlnaHQgPSBtZS5tYXhIZWlnaHQ7IC8vIGZpbGwgYWxsIHRoZSBoZWlnaHRcblx0XHR9XG5cblx0XHRtZS53aWR0aCA9IG1pblNpemUud2lkdGg7XG5cdFx0bWUuaGVpZ2h0ID0gbWluU2l6ZS5oZWlnaHQ7XG5cblx0fSxcblx0YWZ0ZXJGaXQ6IG5vb3AkMixcblxuXHQvLyBTaGFyZWQgTWV0aG9kc1xuXHRpc0hvcml6b250YWw6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBwb3MgPSB0aGlzLm9wdGlvbnMucG9zaXRpb247XG5cdFx0cmV0dXJuIHBvcyA9PT0gJ3RvcCcgfHwgcG9zID09PSAnYm90dG9tJztcblx0fSxcblxuXHQvLyBBY3R1YWxseSBkcmF3IHRoZSB0aXRsZSBibG9jayBvbiB0aGUgY2FudmFzXG5cdGRyYXc6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBtZSA9IHRoaXM7XG5cdFx0dmFyIGN0eCA9IG1lLmN0eDtcblx0XHR2YXIgb3B0cyA9IG1lLm9wdGlvbnM7XG5cblx0XHRpZiAob3B0cy5kaXNwbGF5KSB7XG5cdFx0XHR2YXIgZm9udE9wdHMgPSBoZWxwZXJzJDEub3B0aW9ucy5fcGFyc2VGb250KG9wdHMpO1xuXHRcdFx0dmFyIGxpbmVIZWlnaHQgPSBmb250T3B0cy5saW5lSGVpZ2h0O1xuXHRcdFx0dmFyIG9mZnNldCA9IGxpbmVIZWlnaHQgLyAyICsgb3B0cy5wYWRkaW5nO1xuXHRcdFx0dmFyIHJvdGF0aW9uID0gMDtcblx0XHRcdHZhciB0b3AgPSBtZS50b3A7XG5cdFx0XHR2YXIgbGVmdCA9IG1lLmxlZnQ7XG5cdFx0XHR2YXIgYm90dG9tID0gbWUuYm90dG9tO1xuXHRcdFx0dmFyIHJpZ2h0ID0gbWUucmlnaHQ7XG5cdFx0XHR2YXIgbWF4V2lkdGgsIHRpdGxlWCwgdGl0bGVZO1xuXG5cdFx0XHRjdHguZmlsbFN0eWxlID0gaGVscGVycyQxLnZhbHVlT3JEZWZhdWx0KG9wdHMuZm9udENvbG9yLCBjb3JlX2RlZmF1bHRzLmdsb2JhbC5kZWZhdWx0Rm9udENvbG9yKTsgLy8gcmVuZGVyIGluIGNvcnJlY3QgY29sb3VyXG5cdFx0XHRjdHguZm9udCA9IGZvbnRPcHRzLnN0cmluZztcblxuXHRcdFx0Ly8gSG9yaXpvbnRhbFxuXHRcdFx0aWYgKG1lLmlzSG9yaXpvbnRhbCgpKSB7XG5cdFx0XHRcdHRpdGxlWCA9IGxlZnQgKyAoKHJpZ2h0IC0gbGVmdCkgLyAyKTsgLy8gbWlkcG9pbnQgb2YgdGhlIHdpZHRoXG5cdFx0XHRcdHRpdGxlWSA9IHRvcCArIG9mZnNldDtcblx0XHRcdFx0bWF4V2lkdGggPSByaWdodCAtIGxlZnQ7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aXRsZVggPSBvcHRzLnBvc2l0aW9uID09PSAnbGVmdCcgPyBsZWZ0ICsgb2Zmc2V0IDogcmlnaHQgLSBvZmZzZXQ7XG5cdFx0XHRcdHRpdGxlWSA9IHRvcCArICgoYm90dG9tIC0gdG9wKSAvIDIpO1xuXHRcdFx0XHRtYXhXaWR0aCA9IGJvdHRvbSAtIHRvcDtcblx0XHRcdFx0cm90YXRpb24gPSBNYXRoLlBJICogKG9wdHMucG9zaXRpb24gPT09ICdsZWZ0JyA/IC0wLjUgOiAwLjUpO1xuXHRcdFx0fVxuXG5cdFx0XHRjdHguc2F2ZSgpO1xuXHRcdFx0Y3R4LnRyYW5zbGF0ZSh0aXRsZVgsIHRpdGxlWSk7XG5cdFx0XHRjdHgucm90YXRlKHJvdGF0aW9uKTtcblx0XHRcdGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcblx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcblxuXHRcdFx0dmFyIHRleHQgPSBvcHRzLnRleHQ7XG5cdFx0XHRpZiAoaGVscGVycyQxLmlzQXJyYXkodGV4dCkpIHtcblx0XHRcdFx0dmFyIHkgPSAwO1xuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyArK2kpIHtcblx0XHRcdFx0XHRjdHguZmlsbFRleHQodGV4dFtpXSwgMCwgeSwgbWF4V2lkdGgpO1xuXHRcdFx0XHRcdHkgKz0gbGluZUhlaWdodDtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3R4LmZpbGxUZXh0KHRleHQsIDAsIDAsIG1heFdpZHRoKTtcblx0XHRcdH1cblxuXHRcdFx0Y3R4LnJlc3RvcmUoKTtcblx0XHR9XG5cdH1cbn0pO1xuXG5mdW5jdGlvbiBjcmVhdGVOZXdUaXRsZUJsb2NrQW5kQXR0YWNoKGNoYXJ0LCB0aXRsZU9wdHMpIHtcblx0dmFyIHRpdGxlID0gbmV3IFRpdGxlKHtcblx0XHRjdHg6IGNoYXJ0LmN0eCxcblx0XHRvcHRpb25zOiB0aXRsZU9wdHMsXG5cdFx0Y2hhcnQ6IGNoYXJ0XG5cdH0pO1xuXG5cdGNvcmVfbGF5b3V0cy5jb25maWd1cmUoY2hhcnQsIHRpdGxlLCB0aXRsZU9wdHMpO1xuXHRjb3JlX2xheW91dHMuYWRkQm94KGNoYXJ0LCB0aXRsZSk7XG5cdGNoYXJ0LnRpdGxlQmxvY2sgPSB0aXRsZTtcbn1cblxudmFyIHBsdWdpbl90aXRsZSA9IHtcblx0aWQ6ICd0aXRsZScsXG5cblx0LyoqXG5cdCAqIEJhY2t3YXJkIGNvbXBhdGliaWxpdHk6IHNpbmNlIDIuMS41LCB0aGUgdGl0bGUgaXMgcmVnaXN0ZXJlZCBhcyBhIHBsdWdpbiwgbWFraW5nXG5cdCAqIENoYXJ0LlRpdGxlIG9ic29sZXRlLiBUbyBhdm9pZCBhIGJyZWFraW5nIGNoYW5nZSwgd2UgZXhwb3J0IHRoZSBUaXRsZSBhcyBwYXJ0IG9mXG5cdCAqIHRoZSBwbHVnaW4sIHdoaWNoIG9uZSB3aWxsIGJlIHJlLWV4cG9zZWQgaW4gdGhlIGNoYXJ0LmpzIGZpbGUuXG5cdCAqIGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFydGpzL0NoYXJ0LmpzL3B1bGwvMjY0MFxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2VsZW1lbnQ6IFRpdGxlLFxuXG5cdGJlZm9yZUluaXQ6IGZ1bmN0aW9uKGNoYXJ0KSB7XG5cdFx0dmFyIHRpdGxlT3B0cyA9IGNoYXJ0Lm9wdGlvbnMudGl0bGU7XG5cblx0XHRpZiAodGl0bGVPcHRzKSB7XG5cdFx0XHRjcmVhdGVOZXdUaXRsZUJsb2NrQW5kQXR0YWNoKGNoYXJ0LCB0aXRsZU9wdHMpO1xuXHRcdH1cblx0fSxcblxuXHRiZWZvcmVVcGRhdGU6IGZ1bmN0aW9uKGNoYXJ0KSB7XG5cdFx0dmFyIHRpdGxlT3B0cyA9IGNoYXJ0Lm9wdGlvbnMudGl0bGU7XG5cdFx0dmFyIHRpdGxlQmxvY2sgPSBjaGFydC50aXRsZUJsb2NrO1xuXG5cdFx0aWYgKHRpdGxlT3B0cykge1xuXHRcdFx0aGVscGVycyQxLm1lcmdlSWYodGl0bGVPcHRzLCBjb3JlX2RlZmF1bHRzLmdsb2JhbC50aXRsZSk7XG5cblx0XHRcdGlmICh0aXRsZUJsb2NrKSB7XG5cdFx0XHRcdGNvcmVfbGF5b3V0cy5jb25maWd1cmUoY2hhcnQsIHRpdGxlQmxvY2ssIHRpdGxlT3B0cyk7XG5cdFx0XHRcdHRpdGxlQmxvY2sub3B0aW9ucyA9IHRpdGxlT3B0cztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNyZWF0ZU5ld1RpdGxlQmxvY2tBbmRBdHRhY2goY2hhcnQsIHRpdGxlT3B0cyk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmICh0aXRsZUJsb2NrKSB7XG5cdFx0XHRjb3JlX2xheW91dHMucmVtb3ZlQm94KGNoYXJ0LCB0aXRsZUJsb2NrKTtcblx0XHRcdGRlbGV0ZSBjaGFydC50aXRsZUJsb2NrO1xuXHRcdH1cblx0fVxufTtcblxudmFyIHBsdWdpbnMgPSB7fTtcbnZhciBmaWxsZXIgPSBwbHVnaW5fZmlsbGVyO1xudmFyIGxlZ2VuZCA9IHBsdWdpbl9sZWdlbmQ7XG52YXIgdGl0bGUgPSBwbHVnaW5fdGl0bGU7XG5wbHVnaW5zLmZpbGxlciA9IGZpbGxlcjtcbnBsdWdpbnMubGVnZW5kID0gbGVnZW5kO1xucGx1Z2lucy50aXRsZSA9IHRpdGxlO1xuXG4vKipcbiAqIEBuYW1lc3BhY2UgQ2hhcnRcbiAqL1xuXG5cbmNvcmVfY29udHJvbGxlci5oZWxwZXJzID0gaGVscGVycyQxO1xuXG4vLyBAdG9kbyBkaXNwYXRjaCB0aGVzZSBoZWxwZXJzIGludG8gYXBwcm9wcmlhdGVkIGhlbHBlcnMvaGVscGVycy4qIGZpbGUgYW5kIHdyaXRlIHVuaXQgdGVzdHMhXG5jb3JlX2hlbHBlcnMoY29yZV9jb250cm9sbGVyKTtcblxuY29yZV9jb250cm9sbGVyLl9hZGFwdGVycyA9IGNvcmVfYWRhcHRlcnM7XG5jb3JlX2NvbnRyb2xsZXIuQW5pbWF0aW9uID0gY29yZV9hbmltYXRpb247XG5jb3JlX2NvbnRyb2xsZXIuYW5pbWF0aW9uU2VydmljZSA9IGNvcmVfYW5pbWF0aW9ucztcbmNvcmVfY29udHJvbGxlci5jb250cm9sbGVycyA9IGNvbnRyb2xsZXJzO1xuY29yZV9jb250cm9sbGVyLkRhdGFzZXRDb250cm9sbGVyID0gY29yZV9kYXRhc2V0Q29udHJvbGxlcjtcbmNvcmVfY29udHJvbGxlci5kZWZhdWx0cyA9IGNvcmVfZGVmYXVsdHM7XG5jb3JlX2NvbnRyb2xsZXIuRWxlbWVudCA9IGNvcmVfZWxlbWVudDtcbmNvcmVfY29udHJvbGxlci5lbGVtZW50cyA9IGVsZW1lbnRzO1xuY29yZV9jb250cm9sbGVyLkludGVyYWN0aW9uID0gY29yZV9pbnRlcmFjdGlvbjtcbmNvcmVfY29udHJvbGxlci5sYXlvdXRzID0gY29yZV9sYXlvdXRzO1xuY29yZV9jb250cm9sbGVyLnBsYXRmb3JtID0gcGxhdGZvcm07XG5jb3JlX2NvbnRyb2xsZXIucGx1Z2lucyA9IGNvcmVfcGx1Z2lucztcbmNvcmVfY29udHJvbGxlci5TY2FsZSA9IGNvcmVfc2NhbGU7XG5jb3JlX2NvbnRyb2xsZXIuc2NhbGVTZXJ2aWNlID0gY29yZV9zY2FsZVNlcnZpY2U7XG5jb3JlX2NvbnRyb2xsZXIuVGlja3MgPSBjb3JlX3RpY2tzO1xuY29yZV9jb250cm9sbGVyLlRvb2x0aXAgPSBjb3JlX3Rvb2x0aXA7XG5cbi8vIFJlZ2lzdGVyIGJ1aWx0LWluIHNjYWxlc1xuXG5jb3JlX2NvbnRyb2xsZXIuaGVscGVycy5lYWNoKHNjYWxlcywgZnVuY3Rpb24oc2NhbGUsIHR5cGUpIHtcblx0Y29yZV9jb250cm9sbGVyLnNjYWxlU2VydmljZS5yZWdpc3RlclNjYWxlVHlwZSh0eXBlLCBzY2FsZSwgc2NhbGUuX2RlZmF1bHRzKTtcbn0pO1xuXG4vLyBMb2FkIHRvIHJlZ2lzdGVyIGJ1aWx0LWluIGFkYXB0ZXJzIChhcyBzaWRlIGVmZmVjdHMpXG5cblxuLy8gTG9hZGluZyBidWlsdC1pbiBwbHVnaW5zXG5cbmZvciAodmFyIGsgaW4gcGx1Z2lucykge1xuXHRpZiAocGx1Z2lucy5oYXNPd25Qcm9wZXJ0eShrKSkge1xuXHRcdGNvcmVfY29udHJvbGxlci5wbHVnaW5zLnJlZ2lzdGVyKHBsdWdpbnNba10pO1xuXHR9XG59XG5cbmNvcmVfY29udHJvbGxlci5wbGF0Zm9ybS5pbml0aWFsaXplKCk7XG5cbnZhciBzcmMgPSBjb3JlX2NvbnRyb2xsZXI7XG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0d2luZG93LkNoYXJ0ID0gY29yZV9jb250cm9sbGVyO1xufVxuXG4vLyBERVBSRUNBVElPTlNcblxuLyoqXG4gKiBQcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgbm90IGF2YWlsYWJsZSBhbnltb3JlXG4gKiBAbmFtZXNwYWNlIENoYXJ0LkNoYXJ0XG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuOC4wXG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKiBAcHJpdmF0ZVxuICovXG5jb3JlX2NvbnRyb2xsZXIuQ2hhcnQgPSBjb3JlX2NvbnRyb2xsZXI7XG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIG5vdCBhdmFpbGFibGUgYW55bW9yZVxuICogQG5hbWVzcGFjZSBDaGFydC5MZWdlbmRcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMi4xLjVcbiAqIEB0b2RvIHJlbW92ZSBhdCB2ZXJzaW9uIDNcbiAqIEBwcml2YXRlXG4gKi9cbmNvcmVfY29udHJvbGxlci5MZWdlbmQgPSBwbHVnaW5zLmxlZ2VuZC5fZWxlbWVudDtcblxuLyoqXG4gKiBQcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgbm90IGF2YWlsYWJsZSBhbnltb3JlXG4gKiBAbmFtZXNwYWNlIENoYXJ0LlRpdGxlXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuMS41XG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKiBAcHJpdmF0ZVxuICovXG5jb3JlX2NvbnRyb2xsZXIuVGl0bGUgPSBwbHVnaW5zLnRpdGxlLl9lbGVtZW50O1xuXG4vKipcbiAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1c2UgQ2hhcnQucGx1Z2lucyBpbnN0ZWFkXG4gKiBAbmFtZXNwYWNlIENoYXJ0LnBsdWdpblNlcnZpY2VcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMi4xLjVcbiAqIEB0b2RvIHJlbW92ZSBhdCB2ZXJzaW9uIDNcbiAqIEBwcml2YXRlXG4gKi9cbmNvcmVfY29udHJvbGxlci5wbHVnaW5TZXJ2aWNlID0gY29yZV9jb250cm9sbGVyLnBsdWdpbnM7XG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGluaGVyaXRpbmcgZnJvbSBDaGFydC5QbHVnaW5nQmFzZSBoYXMgbm9cbiAqIGVmZmVjdCwgaW5zdGVhZCBzaW1wbHkgY3JlYXRlL3JlZ2lzdGVyIHBsdWdpbnMgdmlhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0cy5cbiAqIEBpbnRlcmZhY2UgQ2hhcnQuUGx1Z2luQmFzZVxuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAyLjUuMFxuICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuICogQHByaXZhdGVcbiAqL1xuY29yZV9jb250cm9sbGVyLlBsdWdpbkJhc2UgPSBjb3JlX2NvbnRyb2xsZXIuRWxlbWVudC5leHRlbmQoe30pO1xuXG4vKipcbiAqIFByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1c2UgQ2hhcnQuaGVscGVycy5jYW52YXMgaW5zdGVhZC5cbiAqIEBuYW1lc3BhY2UgQ2hhcnQuY2FudmFzSGVscGVyc1xuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAyLjYuMFxuICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuICogQHByaXZhdGVcbiAqL1xuY29yZV9jb250cm9sbGVyLmNhbnZhc0hlbHBlcnMgPSBjb3JlX2NvbnRyb2xsZXIuaGVscGVycy5jYW52YXM7XG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHVzZSBDaGFydC5sYXlvdXRzIGluc3RlYWQuXG4gKiBAbmFtZXNwYWNlIENoYXJ0LmxheW91dFNlcnZpY2VcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMi43LjNcbiAqIEB0b2RvIHJlbW92ZSBhdCB2ZXJzaW9uIDNcbiAqIEBwcml2YXRlXG4gKi9cbmNvcmVfY29udHJvbGxlci5sYXlvdXRTZXJ2aWNlID0gY29yZV9jb250cm9sbGVyLmxheW91dHM7XG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIG5vdCBhdmFpbGFibGUgYW55bW9yZS5cbiAqIEBuYW1lc3BhY2UgQ2hhcnQuTGluZWFyU2NhbGVCYXNlXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuOFxuICogQHRvZG8gcmVtb3ZlIGF0IHZlcnNpb24gM1xuICogQHByaXZhdGVcbiAqL1xuY29yZV9jb250cm9sbGVyLkxpbmVhclNjYWxlQmFzZSA9IHNjYWxlX2xpbmVhcmJhc2U7XG5cbi8qKlxuICogUHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGluc3RlYWQgd2Ugc2hvdWxkIGNyZWF0ZSBhIG5ldyBDaGFydFxuICogYnkgc2V0dGluZyB0aGUgdHlwZSBpbiB0aGUgY29uZmlnIChgbmV3IENoYXJ0KGlkLCB7dHlwZTogJ3tjaGFydC10eXBlfSd9YCkuXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDIuOC4wXG4gKiBAdG9kbyByZW1vdmUgYXQgdmVyc2lvbiAzXG4gKi9cbmNvcmVfY29udHJvbGxlci5oZWxwZXJzLmVhY2goXG5cdFtcblx0XHQnQmFyJyxcblx0XHQnQnViYmxlJyxcblx0XHQnRG91Z2hudXQnLFxuXHRcdCdMaW5lJyxcblx0XHQnUG9sYXJBcmVhJyxcblx0XHQnUmFkYXInLFxuXHRcdCdTY2F0dGVyJ1xuXHRdLFxuXHRmdW5jdGlvbihrbGFzcykge1xuXHRcdGNvcmVfY29udHJvbGxlcltrbGFzc10gPSBmdW5jdGlvbihjdHgsIGNmZykge1xuXHRcdFx0cmV0dXJuIG5ldyBjb3JlX2NvbnRyb2xsZXIoY3R4LCBjb3JlX2NvbnRyb2xsZXIuaGVscGVycy5tZXJnZShjZmcgfHwge30sIHtcblx0XHRcdFx0dHlwZToga2xhc3MuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBrbGFzcy5zbGljZSgxKVxuXHRcdFx0fSkpO1xuXHRcdH07XG5cdH1cbik7XG5cbnJldHVybiBzcmM7XG5cbn0pKSk7XG4iLCIvKiFcbiAqIGNsaXBib2FyZC5qcyB2Mi4wLjRcbiAqIGh0dHBzOi8vemVub3JvY2hhLmdpdGh1Yi5pby9jbGlwYm9hcmQuanNcbiAqIFxuICogTGljZW5zZWQgTUlUIMKpIFplbm8gUm9jaGFcbiAqL1xuIWZ1bmN0aW9uKHQsZSl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9ZSgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZSk6XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHM/ZXhwb3J0cy5DbGlwYm9hcmRKUz1lKCk6dC5DbGlwYm9hcmRKUz1lKCl9KHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIG89e307ZnVuY3Rpb24gcih0KXtpZihvW3RdKXJldHVybiBvW3RdLmV4cG9ydHM7dmFyIGU9b1t0XT17aTp0LGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIG5bdF0uY2FsbChlLmV4cG9ydHMsZSxlLmV4cG9ydHMsciksZS5sPSEwLGUuZXhwb3J0c31yZXR1cm4gci5tPW4sci5jPW8sci5kPWZ1bmN0aW9uKHQsZSxuKXtyLm8odCxlKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7ZW51bWVyYWJsZTohMCxnZXQ6bn0pfSxyLnI9ZnVuY3Rpb24odCl7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sci50PWZ1bmN0aW9uKGUsdCl7aWYoMSZ0JiYoZT1yKGUpKSw4JnQpcmV0dXJuIGU7aWYoNCZ0JiZcIm9iamVjdFwiPT10eXBlb2YgZSYmZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoci5yKG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmV9KSwyJnQmJlwic3RyaW5nXCIhPXR5cGVvZiBlKWZvcih2YXIgbyBpbiBlKXIuZChuLG8sZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19LmJpbmQobnVsbCxvKSk7cmV0dXJuIG59LHIubj1mdW5jdGlvbih0KXt2YXIgZT10JiZ0Ll9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gdC5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiB0fTtyZXR1cm4gci5kKGUsXCJhXCIsZSksZX0sci5vPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSxyLnA9XCJcIixyKHIucz0wKX0oW2Z1bmN0aW9uKHQsZSxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbyh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgbz1lW25dO28uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxvLmtleSxvKX19cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZSYmbyh0LnByb3RvdHlwZSxlKSxuJiZvKHQsbiksdH19KCksYT1vKG4oMSkpLGM9byhuKDMpKSx1PW8obig0KSk7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19dmFyIGw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbyh0LGUpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsbyk7dmFyIG49ZnVuY3Rpb24odCxlKXtpZighdCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIWV8fFwib2JqZWN0XCIhPXR5cGVvZiBlJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlP3Q6ZX0odGhpcywoby5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihvKSkuY2FsbCh0aGlzKSk7cmV0dXJuIG4ucmVzb2x2ZU9wdGlvbnMoZSksbi5saXN0ZW5DbGljayh0KSxufXJldHVybiBmdW5jdGlvbih0LGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBlKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxlJiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGUpOnQuX19wcm90b19fPWUpfShvLGMuZGVmYXVsdCksaShvLFt7a2V5OlwicmVzb2x2ZU9wdGlvbnNcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTt0aGlzLmFjdGlvbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmFjdGlvbj90LmFjdGlvbjp0aGlzLmRlZmF1bHRBY3Rpb24sdGhpcy50YXJnZXQ9XCJmdW5jdGlvblwiPT10eXBlb2YgdC50YXJnZXQ/dC50YXJnZXQ6dGhpcy5kZWZhdWx0VGFyZ2V0LHRoaXMudGV4dD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnRleHQ/dC50ZXh0OnRoaXMuZGVmYXVsdFRleHQsdGhpcy5jb250YWluZXI9XCJvYmplY3RcIj09PXIodC5jb250YWluZXIpP3QuY29udGFpbmVyOmRvY3VtZW50LmJvZHl9fSx7a2V5OlwibGlzdGVuQ2xpY2tcIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMubGlzdGVuZXI9KDAsdS5kZWZhdWx0KSh0LFwiY2xpY2tcIixmdW5jdGlvbih0KXtyZXR1cm4gZS5vbkNsaWNrKHQpfSl9fSx7a2V5Olwib25DbGlja1wiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZGVsZWdhdGVUYXJnZXR8fHQuY3VycmVudFRhcmdldDt0aGlzLmNsaXBib2FyZEFjdGlvbiYmKHRoaXMuY2xpcGJvYXJkQWN0aW9uPW51bGwpLHRoaXMuY2xpcGJvYXJkQWN0aW9uPW5ldyBhLmRlZmF1bHQoe2FjdGlvbjp0aGlzLmFjdGlvbihlKSx0YXJnZXQ6dGhpcy50YXJnZXQoZSksdGV4dDp0aGlzLnRleHQoZSksY29udGFpbmVyOnRoaXMuY29udGFpbmVyLHRyaWdnZXI6ZSxlbWl0dGVyOnRoaXN9KX19LHtrZXk6XCJkZWZhdWx0QWN0aW9uXCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHMoXCJhY3Rpb25cIix0KX19LHtrZXk6XCJkZWZhdWx0VGFyZ2V0XCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9cyhcInRhcmdldFwiLHQpO2lmKGUpcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSl9fSx7a2V5OlwiZGVmYXVsdFRleHRcIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gcyhcInRleHRcIix0KX19LHtrZXk6XCJkZXN0cm95XCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmxpc3RlbmVyLmRlc3Ryb3koKSx0aGlzLmNsaXBib2FyZEFjdGlvbiYmKHRoaXMuY2xpcGJvYXJkQWN0aW9uLmRlc3Ryb3koKSx0aGlzLmNsaXBib2FyZEFjdGlvbj1udWxsKX19XSxbe2tleTpcImlzU3VwcG9ydGVkXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W1wiY29weVwiLFwiY3V0XCJdLGU9XCJzdHJpbmdcIj09dHlwZW9mIHQ/W3RdOnQsbj0hIWRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe249biYmISFkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQodCl9KSxufX1dKSxvfSgpO2Z1bmN0aW9uIHModCxlKXt2YXIgbj1cImRhdGEtY2xpcGJvYXJkLVwiK3Q7aWYoZS5oYXNBdHRyaWJ1dGUobikpcmV0dXJuIGUuZ2V0QXR0cmlidXRlKG4pfXQuZXhwb3J0cz1sfSxmdW5jdGlvbih0LGUsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG8scj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSxpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbyh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgbz1lW25dO28uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxvLmtleSxvKX19cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZSYmbyh0LnByb3RvdHlwZSxlKSxuJiZvKHQsbiksdH19KCksYT1uKDIpLGM9KG89YSkmJm8uX19lc01vZHVsZT9vOntkZWZhdWx0Om99O3ZhciB1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLGUpLHRoaXMucmVzb2x2ZU9wdGlvbnModCksdGhpcy5pbml0U2VsZWN0aW9uKCl9cmV0dXJuIGkoZSxbe2tleTpcInJlc29sdmVPcHRpb25zXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307dGhpcy5hY3Rpb249dC5hY3Rpb24sdGhpcy5jb250YWluZXI9dC5jb250YWluZXIsdGhpcy5lbWl0dGVyPXQuZW1pdHRlcix0aGlzLnRhcmdldD10LnRhcmdldCx0aGlzLnRleHQ9dC50ZXh0LHRoaXMudHJpZ2dlcj10LnRyaWdnZXIsdGhpcy5zZWxlY3RlZFRleHQ9XCJcIn19LHtrZXk6XCJpbml0U2VsZWN0aW9uXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnRleHQ/dGhpcy5zZWxlY3RGYWtlKCk6dGhpcy50YXJnZXQmJnRoaXMuc2VsZWN0VGFyZ2V0KCl9fSx7a2V5Olwic2VsZWN0RmFrZVwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVwicnRsXCI9PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkaXJcIik7dGhpcy5yZW1vdmVGYWtlKCksdGhpcy5mYWtlSGFuZGxlckNhbGxiYWNrPWZ1bmN0aW9uKCl7cmV0dXJuIHQucmVtb3ZlRmFrZSgpfSx0aGlzLmZha2VIYW5kbGVyPXRoaXMuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuZmFrZUhhbmRsZXJDYWxsYmFjayl8fCEwLHRoaXMuZmFrZUVsZW09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRleHRhcmVhXCIpLHRoaXMuZmFrZUVsZW0uc3R5bGUuZm9udFNpemU9XCIxMnB0XCIsdGhpcy5mYWtlRWxlbS5zdHlsZS5ib3JkZXI9XCIwXCIsdGhpcy5mYWtlRWxlbS5zdHlsZS5wYWRkaW5nPVwiMFwiLHRoaXMuZmFrZUVsZW0uc3R5bGUubWFyZ2luPVwiMFwiLHRoaXMuZmFrZUVsZW0uc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLHRoaXMuZmFrZUVsZW0uc3R5bGVbZT9cInJpZ2h0XCI6XCJsZWZ0XCJdPVwiLTk5OTlweFwiO3ZhciBuPXdpbmRvdy5wYWdlWU9mZnNldHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDt0aGlzLmZha2VFbGVtLnN0eWxlLnRvcD1uK1wicHhcIix0aGlzLmZha2VFbGVtLnNldEF0dHJpYnV0ZShcInJlYWRvbmx5XCIsXCJcIiksdGhpcy5mYWtlRWxlbS52YWx1ZT10aGlzLnRleHQsdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5mYWtlRWxlbSksdGhpcy5zZWxlY3RlZFRleHQ9KDAsYy5kZWZhdWx0KSh0aGlzLmZha2VFbGVtKSx0aGlzLmNvcHlUZXh0KCl9fSx7a2V5OlwicmVtb3ZlRmFrZVwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5mYWtlSGFuZGxlciYmKHRoaXMuY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuZmFrZUhhbmRsZXJDYWxsYmFjayksdGhpcy5mYWtlSGFuZGxlcj1udWxsLHRoaXMuZmFrZUhhbmRsZXJDYWxsYmFjaz1udWxsKSx0aGlzLmZha2VFbGVtJiYodGhpcy5jb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5mYWtlRWxlbSksdGhpcy5mYWtlRWxlbT1udWxsKX19LHtrZXk6XCJzZWxlY3RUYXJnZXRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWRUZXh0PSgwLGMuZGVmYXVsdCkodGhpcy50YXJnZXQpLHRoaXMuY29weVRleHQoKX19LHtrZXk6XCJjb3B5VGV4dFwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dm9pZCAwO3RyeXtlPWRvY3VtZW50LmV4ZWNDb21tYW5kKHRoaXMuYWN0aW9uKX1jYXRjaCh0KXtlPSExfXRoaXMuaGFuZGxlUmVzdWx0KGUpfX0se2tleTpcImhhbmRsZVJlc3VsdFwiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuZW1pdHRlci5lbWl0KHQ/XCJzdWNjZXNzXCI6XCJlcnJvclwiLHthY3Rpb246dGhpcy5hY3Rpb24sdGV4dDp0aGlzLnNlbGVjdGVkVGV4dCx0cmlnZ2VyOnRoaXMudHJpZ2dlcixjbGVhclNlbGVjdGlvbjp0aGlzLmNsZWFyU2VsZWN0aW9uLmJpbmQodGhpcyl9KX19LHtrZXk6XCJjbGVhclNlbGVjdGlvblwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50cmlnZ2VyJiZ0aGlzLnRyaWdnZXIuZm9jdXMoKSx3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCl9fSx7a2V5OlwiZGVzdHJveVwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVGYWtlKCl9fSx7a2V5OlwiYWN0aW9uXCIsc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9MDxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOlwiY29weVwiO2lmKHRoaXMuX2FjdGlvbj10LFwiY29weVwiIT09dGhpcy5fYWN0aW9uJiZcImN1dFwiIT09dGhpcy5fYWN0aW9uKXRocm93IG5ldyBFcnJvcignSW52YWxpZCBcImFjdGlvblwiIHZhbHVlLCB1c2UgZWl0aGVyIFwiY29weVwiIG9yIFwiY3V0XCInKX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGlvbn19LHtrZXk6XCJ0YXJnZXRcIixzZXQ6ZnVuY3Rpb24odCl7aWYodm9pZCAwIT09dCl7aWYoIXR8fFwib2JqZWN0XCIhPT0odm9pZCAwPT09dD9cInVuZGVmaW5lZFwiOnIodCkpfHwxIT09dC5ub2RlVHlwZSl0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgXCJ0YXJnZXRcIiB2YWx1ZSwgdXNlIGEgdmFsaWQgRWxlbWVudCcpO2lmKFwiY29weVwiPT09dGhpcy5hY3Rpb24mJnQuaGFzQXR0cmlidXRlKFwiZGlzYWJsZWRcIikpdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFwidGFyZ2V0XCIgYXR0cmlidXRlLiBQbGVhc2UgdXNlIFwicmVhZG9ubHlcIiBpbnN0ZWFkIG9mIFwiZGlzYWJsZWRcIiBhdHRyaWJ1dGUnKTtpZihcImN1dFwiPT09dGhpcy5hY3Rpb24mJih0Lmhhc0F0dHJpYnV0ZShcInJlYWRvbmx5XCIpfHx0Lmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpKSl0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgXCJ0YXJnZXRcIiBhdHRyaWJ1dGUuIFlvdSBjYW5cXCd0IGN1dCB0ZXh0IGZyb20gZWxlbWVudHMgd2l0aCBcInJlYWRvbmx5XCIgb3IgXCJkaXNhYmxlZFwiIGF0dHJpYnV0ZXMnKTt0aGlzLl90YXJnZXQ9dH19LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90YXJnZXR9fV0pLGV9KCk7dC5leHBvcnRzPXV9LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKFwiU0VMRUNUXCI9PT10Lm5vZGVOYW1lKXQuZm9jdXMoKSxlPXQudmFsdWU7ZWxzZSBpZihcIklOUFVUXCI9PT10Lm5vZGVOYW1lfHxcIlRFWFRBUkVBXCI9PT10Lm5vZGVOYW1lKXt2YXIgbj10Lmhhc0F0dHJpYnV0ZShcInJlYWRvbmx5XCIpO258fHQuc2V0QXR0cmlidXRlKFwicmVhZG9ubHlcIixcIlwiKSx0LnNlbGVjdCgpLHQuc2V0U2VsZWN0aW9uUmFuZ2UoMCx0LnZhbHVlLmxlbmd0aCksbnx8dC5yZW1vdmVBdHRyaWJ1dGUoXCJyZWFkb25seVwiKSxlPXQudmFsdWV9ZWxzZXt0Lmhhc0F0dHJpYnV0ZShcImNvbnRlbnRlZGl0YWJsZVwiKSYmdC5mb2N1cygpO3ZhciBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKSxyPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ci5zZWxlY3ROb2RlQ29udGVudHModCksby5yZW1vdmVBbGxSYW5nZXMoKSxvLmFkZFJhbmdlKHIpLGU9by50b1N0cmluZygpfXJldHVybiBlfX0sZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7fW4ucHJvdG90eXBlPXtvbjpmdW5jdGlvbih0LGUsbil7dmFyIG89dGhpcy5lfHwodGhpcy5lPXt9KTtyZXR1cm4ob1t0XXx8KG9bdF09W10pKS5wdXNoKHtmbjplLGN0eDpufSksdGhpc30sb25jZTpmdW5jdGlvbih0LGUsbil7dmFyIG89dGhpcztmdW5jdGlvbiByKCl7by5vZmYodCxyKSxlLmFwcGx5KG4sYXJndW1lbnRzKX1yZXR1cm4gci5fPWUsdGhpcy5vbih0LHIsbil9LGVtaXQ6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLG49KCh0aGlzLmV8fCh0aGlzLmU9e30pKVt0XXx8W10pLnNsaWNlKCksbz0wLHI9bi5sZW5ndGg7bzxyO28rKyluW29dLmZuLmFwcGx5KG5bb10uY3R4LGUpO3JldHVybiB0aGlzfSxvZmY6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmV8fCh0aGlzLmU9e30pLG89blt0XSxyPVtdO2lmKG8mJmUpZm9yKHZhciBpPTAsYT1vLmxlbmd0aDtpPGE7aSsrKW9baV0uZm4hPT1lJiZvW2ldLmZuLl8hPT1lJiZyLnB1c2gob1tpXSk7cmV0dXJuIHIubGVuZ3RoP25bdF09cjpkZWxldGUgblt0XSx0aGlzfX0sdC5leHBvcnRzPW59LGZ1bmN0aW9uKHQsZSxuKXt2YXIgZD1uKDUpLGg9big2KTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe2lmKCF0JiYhZSYmIW4pdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudHNcIik7aWYoIWQuc3RyaW5nKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBhIFN0cmluZ1wiKTtpZighZC5mbihuKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhpcmQgYXJndW1lbnQgbXVzdCBiZSBhIEZ1bmN0aW9uXCIpO2lmKGQubm9kZSh0KSlyZXR1cm4gcz1lLGY9biwobD10KS5hZGRFdmVudExpc3RlbmVyKHMsZikse2Rlc3Ryb3k6ZnVuY3Rpb24oKXtsLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxmKX19O2lmKGQubm9kZUxpc3QodCkpcmV0dXJuIGE9dCxjPWUsdT1uLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYSxmdW5jdGlvbih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoYyx1KX0pLHtkZXN0cm95OmZ1bmN0aW9uKCl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLHUpfSl9fTtpZihkLnN0cmluZyh0KSlyZXR1cm4gbz10LHI9ZSxpPW4saChkb2N1bWVudC5ib2R5LG8scixpKTt0aHJvdyBuZXcgVHlwZUVycm9yKFwiRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIFN0cmluZywgSFRNTEVsZW1lbnQsIEhUTUxDb2xsZWN0aW9uLCBvciBOb2RlTGlzdFwiKTt2YXIgbyxyLGksYSxjLHUsbCxzLGZ9fSxmdW5jdGlvbih0LG4pe24ubm9kZT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dCYmdCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYxPT09dC5ub2RlVHlwZX0sbi5ub2RlTGlzdD1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk7cmV0dXJuIHZvaWQgMCE9PXQmJihcIltvYmplY3QgTm9kZUxpc3RdXCI9PT1lfHxcIltvYmplY3QgSFRNTENvbGxlY3Rpb25dXCI9PT1lKSYmXCJsZW5ndGhcImluIHQmJigwPT09dC5sZW5ndGh8fG4ubm9kZSh0WzBdKSl9LG4uc3RyaW5nPWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgU3RyaW5nfSxuLmZuPWZ1bmN0aW9uKHQpe3JldHVyblwiW29iamVjdCBGdW5jdGlvbl1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgYT1uKDcpO2Z1bmN0aW9uIGkodCxlLG4sbyxyKXt2YXIgaT1mdW5jdGlvbihlLG4sdCxvKXtyZXR1cm4gZnVuY3Rpb24odCl7dC5kZWxlZ2F0ZVRhcmdldD1hKHQudGFyZ2V0LG4pLHQuZGVsZWdhdGVUYXJnZXQmJm8uY2FsbChlLHQpfX0uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIobixpLHIpLHtkZXN0cm95OmZ1bmN0aW9uKCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKG4saSxyKX19fXQuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixvLHIpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQuYWRkRXZlbnRMaXN0ZW5lcj9pLmFwcGx5KG51bGwsYXJndW1lbnRzKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2kuYmluZChudWxsLGRvY3VtZW50KS5hcHBseShudWxsLGFyZ3VtZW50cyk6KFwic3RyaW5nXCI9PXR5cGVvZiB0JiYodD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQpKSxBcnJheS5wcm90b3R5cGUubWFwLmNhbGwodCxmdW5jdGlvbih0KXtyZXR1cm4gaSh0LGUsbixvLHIpfSkpfX0sZnVuY3Rpb24odCxlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgRWxlbWVudCYmIUVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMpe3ZhciBuPUVsZW1lbnQucHJvdG90eXBlO24ubWF0Y2hlcz1uLm1hdGNoZXNTZWxlY3Rvcnx8bi5tb3pNYXRjaGVzU2VsZWN0b3J8fG4ubXNNYXRjaGVzU2VsZWN0b3J8fG4ub01hdGNoZXNTZWxlY3Rvcnx8bi53ZWJraXRNYXRjaGVzU2VsZWN0b3J9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKDt0JiY5IT09dC5ub2RlVHlwZTspe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQubWF0Y2hlcyYmdC5tYXRjaGVzKGUpKXJldHVybiB0O3Q9dC5wYXJlbnROb2RlfX19XSl9KTsiLCIvKiFcbiAqIFVSSS5qcyAtIE11dGF0aW5nIFVSTHNcbiAqIFNlY29uZCBMZXZlbCBEb21haW4gKFNMRCkgU3VwcG9ydFxuICpcbiAqIFZlcnNpb246IDEuMTkuMVxuICpcbiAqIEF1dGhvcjogUm9kbmV5IFJlaG1cbiAqIFdlYjogaHR0cDovL21lZGlhbGl6ZS5naXRodWIuaW8vVVJJLmpzL1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyXG4gKiAgIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqXG4gKi9cblxuKGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG4gICd1c2Ugc3RyaWN0JztcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3VtZGpzL3VtZC9ibG9iL21hc3Rlci9yZXR1cm5FeHBvcnRzLmpzXG4gIGlmICh0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JyAmJiBtb2R1bGUuZXhwb3J0cykge1xuICAgIC8vIE5vZGVcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICAvLyBBTUQuIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBtb2R1bGUuXG4gICAgZGVmaW5lKGZhY3RvcnkpO1xuICB9IGVsc2Uge1xuICAgIC8vIEJyb3dzZXIgZ2xvYmFscyAocm9vdCBpcyB3aW5kb3cpXG4gICAgcm9vdC5TZWNvbmRMZXZlbERvbWFpbnMgPSBmYWN0b3J5KHJvb3QpO1xuICB9XG59KHRoaXMsIGZ1bmN0aW9uIChyb290KSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICAvLyBzYXZlIGN1cnJlbnQgU2Vjb25kTGV2ZWxEb21haW5zIHZhcmlhYmxlLCBpZiBhbnlcbiAgdmFyIF9TZWNvbmRMZXZlbERvbWFpbnMgPSByb290ICYmIHJvb3QuU2Vjb25kTGV2ZWxEb21haW5zO1xuXG4gIHZhciBTTEQgPSB7XG4gICAgLy8gbGlzdCBvZiBrbm93biBTZWNvbmQgTGV2ZWwgRG9tYWluc1xuICAgIC8vIGNvbnZlcnRlZCBsaXN0IG9mIFNMRHMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZ2F2aW5nbWlsbGVyL3NlY29uZC1sZXZlbC1kb21haW5zXG4gICAgLy8gLS0tLVxuICAgIC8vIHB1YmxpY3N1ZmZpeC5vcmcgaXMgbW9yZSBjdXJyZW50IGFuZCBhY3R1YWxseSB1c2VkIGJ5IGEgY291cGxlIG9mIGJyb3dzZXJzIGludGVybmFsbHkuXG4gICAgLy8gZG93bnNpZGUgaXMgaXQgYWxzbyBjb250YWlucyBkb21haW5zIGxpa2UgXCJkeW5kbnMub3JnXCIgLSB3aGljaCBpcyBmaW5lIGZvciB0aGUgc2VjdXJpdHlcbiAgICAvLyBpc3N1ZXMgYnJvd3NlciBoYXZlIHRvIGRlYWwgd2l0aCAoU09QIGZvciBjb29raWVzLCBldGMpIC0gYnV0IGlzIHdheSBvdmVyYm9hcmQgZm9yIFVSSS5qc1xuICAgIC8vIC0tLS1cbiAgICBsaXN0OiB7XG4gICAgICAnYWMnOicgY29tIGdvdiBtaWwgbmV0IG9yZyAnLFxuICAgICAgJ2FlJzonIGFjIGNvIGdvdiBtaWwgbmFtZSBuZXQgb3JnIHBybyBzY2ggJyxcbiAgICAgICdhZic6JyBjb20gZWR1IGdvdiBuZXQgb3JnICcsXG4gICAgICAnYWwnOicgY29tIGVkdSBnb3YgbWlsIG5ldCBvcmcgJyxcbiAgICAgICdhbyc6JyBjbyBlZCBndiBpdCBvZyBwYiAnLFxuICAgICAgJ2FyJzonIGNvbSBlZHUgZ29iIGdvdiBpbnQgbWlsIG5ldCBvcmcgdHVyICcsXG4gICAgICAnYXQnOicgYWMgY28gZ3Ygb3IgJyxcbiAgICAgICdhdSc6JyBhc24gY29tIGNzaXJvIGVkdSBnb3YgaWQgbmV0IG9yZyAnLFxuICAgICAgJ2JhJzonIGNvIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnIHJzIHVuYmkgdW5tbyB1bnNhIHVudHogdW56ZSAnLFxuICAgICAgJ2JiJzonIGJpeiBjbyBjb20gZWR1IGdvdiBpbmZvIG5ldCBvcmcgc3RvcmUgdHYgJyxcbiAgICAgICdiaCc6JyBiaXogY2MgY29tIGVkdSBnb3YgaW5mbyBuZXQgb3JnICcsXG4gICAgICAnYm4nOicgY29tIGVkdSBnb3YgbmV0IG9yZyAnLFxuICAgICAgJ2JvJzonIGNvbSBlZHUgZ29iIGdvdiBpbnQgbWlsIG5ldCBvcmcgdHYgJyxcbiAgICAgICdicic6JyBhZG0gYWR2IGFnciBhbSBhcnEgYXJ0IGF0byBiIGJpbyBibG9nIGJtZCBjaW0gY25nIGNudCBjb20gY29vcCBlY24gZWR1IGVuZyBlc3AgZXRjIGV0aSBmYXIgZmxvZyBmbSBmbmQgZm90IGZzdCBnMTIgZ2dmIGdvdiBpbWIgaW5kIGluZiBqb3IganVzIGxlbCBtYXQgbWVkIG1pbCBtdXMgbmV0IG5vbSBub3QgbnRyIG9kbyBvcmcgcHBnIHBybyBwc2MgcHNpIHFzbCByZWMgc2xnIHNydiB0bXAgdHJkIHR1ciB0diB2ZXQgdmxvZyB3aWtpIHpsZyAnLFxuICAgICAgJ2JzJzonIGNvbSBlZHUgZ292IG5ldCBvcmcgJyxcbiAgICAgICdieic6JyBkdSBldCBvbSBvdiByZyAnLFxuICAgICAgJ2NhJzonIGFiIGJjIG1iIG5iIG5mIG5sIG5zIG50IG51IG9uIHBlIHFjIHNrIHlrICcsXG4gICAgICAnY2snOicgYml6IGNvIGVkdSBnZW4gZ292IGluZm8gbmV0IG9yZyAnLFxuICAgICAgJ2NuJzonIGFjIGFoIGJqIGNvbSBjcSBlZHUgZmogZ2QgZ292IGdzIGd4IGd6IGhhIGhiIGhlIGhpIGhsIGhuIGpsIGpzIGp4IGxuIG1pbCBuZXQgbm0gbnggb3JnIHFoIHNjIHNkIHNoIHNuIHN4IHRqIHR3IHhqIHh6IHluIHpqICcsXG4gICAgICAnY28nOicgY29tIGVkdSBnb3YgbWlsIG5ldCBub20gb3JnICcsXG4gICAgICAnY3InOicgYWMgYyBjbyBlZCBmaSBnbyBvciBzYSAnLFxuICAgICAgJ2N5JzonIGFjIGJpeiBjb20gZWtsb2dlcyBnb3YgbHRkIG5hbWUgbmV0IG9yZyBwYXJsaWFtZW50IHByZXNzIHBybyB0bSAnLFxuICAgICAgJ2RvJzonIGFydCBjb20gZWR1IGdvYiBnb3YgbWlsIG5ldCBvcmcgc2xkIHdlYiAnLFxuICAgICAgJ2R6JzonIGFydCBhc3NvIGNvbSBlZHUgZ292IG5ldCBvcmcgcG9sICcsXG4gICAgICAnZWMnOicgY29tIGVkdSBmaW4gZ292IGluZm8gbWVkIG1pbCBuZXQgb3JnIHBybyAnLFxuICAgICAgJ2VnJzonIGNvbSBlZHUgZXVuIGdvdiBtaWwgbmFtZSBuZXQgb3JnIHNjaSAnLFxuICAgICAgJ2VyJzonIGNvbSBlZHUgZ292IGluZCBtaWwgbmV0IG9yZyByb2NoZXN0IHcgJyxcbiAgICAgICdlcyc6JyBjb20gZWR1IGdvYiBub20gb3JnICcsXG4gICAgICAnZXQnOicgYml6IGNvbSBlZHUgZ292IGluZm8gbmFtZSBuZXQgb3JnICcsXG4gICAgICAnZmonOicgYWMgYml6IGNvbSBpbmZvIG1pbCBuYW1lIG5ldCBvcmcgcHJvICcsXG4gICAgICAnZmsnOicgYWMgY28gZ292IG5ldCBub20gb3JnICcsXG4gICAgICAnZnInOicgYXNzbyBjb20gZiBnb3V2IG5vbSBwcmQgcHJlc3NlIHRtICcsXG4gICAgICAnZ2cnOicgY28gbmV0IG9yZyAnLFxuICAgICAgJ2doJzonIGNvbSBlZHUgZ292IG1pbCBvcmcgJyxcbiAgICAgICdnbic6JyBhYyBjb20gZ292IG5ldCBvcmcgJyxcbiAgICAgICdncic6JyBjb20gZWR1IGdvdiBtaWwgbmV0IG9yZyAnLFxuICAgICAgJ2d0JzonIGNvbSBlZHUgZ29iIGluZCBtaWwgbmV0IG9yZyAnLFxuICAgICAgJ2d1JzonIGNvbSBlZHUgZ292IG5ldCBvcmcgJyxcbiAgICAgICdoayc6JyBjb20gZWR1IGdvdiBpZHYgbmV0IG9yZyAnLFxuICAgICAgJ2h1JzonIDIwMDAgYWdyYXIgYm9sdCBjYXNpbm8gY2l0eSBjbyBlcm90aWNhIGVyb3Rpa2EgZmlsbSBmb3J1bSBnYW1lcyBob3RlbCBpbmZvIGluZ2F0bGFuIGpvZ2FzeiBrb255dmVsbyBsYWthcyBtZWRpYSBuZXdzIG9yZyBwcml2IHJla2xhbSBzZXggc2hvcCBzcG9ydCBzdWxpIHN6ZXggdG0gdG96c2RlIHV0YXphcyB2aWRlbyAnLFxuICAgICAgJ2lkJzonIGFjIGNvIGdvIG1pbCBuZXQgb3Igc2NoIHdlYiAnLFxuICAgICAgJ2lsJzonIGFjIGNvIGdvdiBpZGYgazEyIG11bmkgbmV0IG9yZyAnLFxuICAgICAgJ2luJzonIGFjIGNvIGVkdSBlcm5ldCBmaXJtIGdlbiBnb3YgaSBpbmQgbWlsIG5ldCBuaWMgb3JnIHJlcyAnLFxuICAgICAgJ2lxJzonIGNvbSBlZHUgZ292IGkgbWlsIG5ldCBvcmcgJyxcbiAgICAgICdpcic6JyBhYyBjbyBkbnNzZWMgZ292IGkgaWQgbmV0IG9yZyBzY2ggJyxcbiAgICAgICdpdCc6JyBlZHUgZ292ICcsXG4gICAgICAnamUnOicgY28gbmV0IG9yZyAnLFxuICAgICAgJ2pvJzonIGNvbSBlZHUgZ292IG1pbCBuYW1lIG5ldCBvcmcgc2NoICcsXG4gICAgICAnanAnOicgYWMgYWQgY28gZWQgZ28gZ3IgbGcgbmUgb3IgJyxcbiAgICAgICdrZSc6JyBhYyBjbyBnbyBpbmZvIG1lIG1vYmkgbmUgb3Igc2MgJyxcbiAgICAgICdraCc6JyBjb20gZWR1IGdvdiBtaWwgbmV0IG9yZyBwZXIgJyxcbiAgICAgICdraSc6JyBiaXogY29tIGRlIGVkdSBnb3YgaW5mbyBtb2IgbmV0IG9yZyB0ZWwgJyxcbiAgICAgICdrbSc6JyBhc3NvIGNvbSBjb29wIGVkdSBnb3V2IGsgbWVkZWNpbiBtaWwgbm9tIG5vdGFpcmVzIHBoYXJtYWNpZW5zIHByZXNzZSB0bSB2ZXRlcmluYWlyZSAnLFxuICAgICAgJ2tuJzonIGVkdSBnb3YgbmV0IG9yZyAnLFxuICAgICAgJ2tyJzonIGFjIGJ1c2FuIGNodW5nYnVrIGNodW5nbmFtIGNvIGRhZWd1IGRhZWplb24gZXMgZ2FuZ3dvbiBnbyBnd2FuZ2p1IGd5ZW9uZ2J1ayBneWVvbmdnaSBneWVvbmduYW0gaHMgaW5jaGVvbiBqZWp1IGplb25idWsgamVvbm5hbSBrIGtnIG1pbCBtcyBuZSBvciBwZSByZSBzYyBzZW91bCB1bHNhbiAnLFxuICAgICAgJ2t3JzonIGNvbSBlZHUgZ292IG5ldCBvcmcgJyxcbiAgICAgICdreSc6JyBjb20gZWR1IGdvdiBuZXQgb3JnICcsXG4gICAgICAna3onOicgY29tIGVkdSBnb3YgbWlsIG5ldCBvcmcgJyxcbiAgICAgICdsYic6JyBjb20gZWR1IGdvdiBuZXQgb3JnICcsXG4gICAgICAnbGsnOicgYXNzbiBjb20gZWR1IGdvdiBncnAgaG90ZWwgaW50IGx0ZCBuZXQgbmdvIG9yZyBzY2ggc29jIHdlYiAnLFxuICAgICAgJ2xyJzonIGNvbSBlZHUgZ292IG5ldCBvcmcgJyxcbiAgICAgICdsdic6JyBhc24gY29tIGNvbmYgZWR1IGdvdiBpZCBtaWwgbmV0IG9yZyAnLFxuICAgICAgJ2x5JzonIGNvbSBlZHUgZ292IGlkIG1lZCBuZXQgb3JnIHBsYyBzY2ggJyxcbiAgICAgICdtYSc6JyBhYyBjbyBnb3YgbSBuZXQgb3JnIHByZXNzICcsXG4gICAgICAnbWMnOicgYXNzbyB0bSAnLFxuICAgICAgJ21lJzonIGFjIGNvIGVkdSBnb3YgaXRzIG5ldCBvcmcgcHJpdiAnLFxuICAgICAgJ21nJzonIGNvbSBlZHUgZ292IG1pbCBub20gb3JnIHByZCB0bSAnLFxuICAgICAgJ21rJzonIGNvbSBlZHUgZ292IGluZiBuYW1lIG5ldCBvcmcgcHJvICcsXG4gICAgICAnbWwnOicgY29tIGVkdSBnb3YgbmV0IG9yZyBwcmVzc2UgJyxcbiAgICAgICdtbic6JyBlZHUgZ292IG9yZyAnLFxuICAgICAgJ21vJzonIGNvbSBlZHUgZ292IG5ldCBvcmcgJyxcbiAgICAgICdtdCc6JyBjb20gZWR1IGdvdiBuZXQgb3JnICcsXG4gICAgICAnbXYnOicgYWVybyBiaXogY29tIGNvb3AgZWR1IGdvdiBpbmZvIGludCBtaWwgbXVzZXVtIG5hbWUgbmV0IG9yZyBwcm8gJyxcbiAgICAgICdtdyc6JyBhYyBjbyBjb20gY29vcCBlZHUgZ292IGludCBtdXNldW0gbmV0IG9yZyAnLFxuICAgICAgJ214JzonIGNvbSBlZHUgZ29iIG5ldCBvcmcgJyxcbiAgICAgICdteSc6JyBjb20gZWR1IGdvdiBtaWwgbmFtZSBuZXQgb3JnIHNjaCAnLFxuICAgICAgJ25mJzonIGFydHMgY29tIGZpcm0gaW5mbyBuZXQgb3RoZXIgcGVyIHJlYyBzdG9yZSB3ZWIgJyxcbiAgICAgICduZyc6JyBiaXogY29tIGVkdSBnb3YgbWlsIG1vYmkgbmFtZSBuZXQgb3JnIHNjaCAnLFxuICAgICAgJ25pJzonIGFjIGNvIGNvbSBlZHUgZ29iIG1pbCBuZXQgbm9tIG9yZyAnLFxuICAgICAgJ25wJzonIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICcsXG4gICAgICAnbnInOicgYml6IGNvbSBlZHUgZ292IGluZm8gbmV0IG9yZyAnLFxuICAgICAgJ29tJzonIGFjIGJpeiBjbyBjb20gZWR1IGdvdiBtZWQgbWlsIG11c2V1bSBuZXQgb3JnIHBybyBzY2ggJyxcbiAgICAgICdwZSc6JyBjb20gZWR1IGdvYiBtaWwgbmV0IG5vbSBvcmcgc2xkICcsXG4gICAgICAncGgnOicgY29tIGVkdSBnb3YgaSBtaWwgbmV0IG5nbyBvcmcgJyxcbiAgICAgICdwayc6JyBiaXogY29tIGVkdSBmYW0gZ29iIGdvayBnb24gZ29wIGdvcyBnb3YgbmV0IG9yZyB3ZWIgJyxcbiAgICAgICdwbCc6JyBhcnQgYmlhbHlzdG9rIGJpeiBjb20gZWR1IGdkYSBnZGFuc2sgZ29yem93IGdvdiBpbmZvIGthdG93aWNlIGtyYWtvdyBsb2R6IGx1YmxpbiBtaWwgbmV0IG5nbyBvbHN6dHluIG9yZyBwb3puYW4gcHdyIHJhZG9tIHNsdXBzayBzemN6ZWNpbiB0b3J1biB3YXJzemF3YSB3YXcgd3JvYyB3cm9jbGF3IHpnb3JhICcsXG4gICAgICAncHInOicgYWMgYml6IGNvbSBlZHUgZXN0IGdvdiBpbmZvIGlzbGEgbmFtZSBuZXQgb3JnIHBybyBwcm9mICcsXG4gICAgICAncHMnOicgY29tIGVkdSBnb3YgbmV0IG9yZyBwbG8gc2VjICcsXG4gICAgICAncHcnOicgYmVsYXUgY28gZWQgZ28gbmUgb3IgJyxcbiAgICAgICdybyc6JyBhcnRzIGNvbSBmaXJtIGluZm8gbm9tIG50IG9yZyByZWMgc3RvcmUgdG0gd3d3ICcsXG4gICAgICAncnMnOicgYWMgY28gZWR1IGdvdiBpbiBvcmcgJyxcbiAgICAgICdzYic6JyBjb20gZWR1IGdvdiBuZXQgb3JnICcsXG4gICAgICAnc2MnOicgY29tIGVkdSBnb3YgbmV0IG9yZyAnLFxuICAgICAgJ3NoJzonIGNvIGNvbSBlZHUgZ292IG5ldCBub20gb3JnICcsXG4gICAgICAnc2wnOicgY29tIGVkdSBnb3YgbmV0IG9yZyAnLFxuICAgICAgJ3N0JzonIGNvIGNvbSBjb25zdWxhZG8gZWR1IGVtYmFpeGFkYSBnb3YgbWlsIG5ldCBvcmcgcHJpbmNpcGUgc2FvdG9tZSBzdG9yZSAnLFxuICAgICAgJ3N2JzonIGNvbSBlZHUgZ29iIG9yZyByZWQgJyxcbiAgICAgICdzeic6JyBhYyBjbyBvcmcgJyxcbiAgICAgICd0cic6JyBhdiBiYnMgYmVsIGJpeiBjb20gZHIgZWR1IGdlbiBnb3YgaW5mbyBrMTIgbmFtZSBuZXQgb3JnIHBvbCB0ZWwgdHNrIHR2IHdlYiAnLFxuICAgICAgJ3R0JzonIGFlcm8gYml6IGNhdCBjbyBjb20gY29vcCBlZHUgZ292IGluZm8gaW50IGpvYnMgbWlsIG1vYmkgbXVzZXVtIG5hbWUgbmV0IG9yZyBwcm8gdGVsIHRyYXZlbCAnLFxuICAgICAgJ3R3JzonIGNsdWIgY29tIGViaXogZWR1IGdhbWUgZ292IGlkdiBtaWwgbmV0IG9yZyAnLFxuICAgICAgJ211JzonIGFjIGNvIGNvbSBnb3YgbmV0IG9yIG9yZyAnLFxuICAgICAgJ216JzonIGFjIGNvIGVkdSBnb3Ygb3JnICcsXG4gICAgICAnbmEnOicgY28gY29tICcsXG4gICAgICAnbnonOicgYWMgY28gY3JpIGdlZWsgZ2VuIGdvdnQgaGVhbHRoIGl3aSBtYW9yaSBtaWwgbmV0IG9yZyBwYXJsaWFtZW50IHNjaG9vbCAnLFxuICAgICAgJ3BhJzonIGFibyBhYyBjb20gZWR1IGdvYiBpbmcgbWVkIG5ldCBub20gb3JnIHNsZCAnLFxuICAgICAgJ3B0JzonIGNvbSBlZHUgZ292IGludCBuZXQgbm9tZSBvcmcgcHVibCAnLFxuICAgICAgJ3B5JzonIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICcsXG4gICAgICAncWEnOicgY29tIGVkdSBnb3YgbWlsIG5ldCBvcmcgJyxcbiAgICAgICdyZSc6JyBhc3NvIGNvbSBub20gJyxcbiAgICAgICdydSc6JyBhYyBhZHlnZXlhIGFsdGFpIGFtdXIgYXJraGFuZ2Vsc2sgYXN0cmFraGFuIGJhc2hraXJpYSBiZWxnb3JvZCBiaXIgYnJ5YW5zayBidXJ5YXRpYSBjYmcgY2hlbCBjaGVseWFiaW5zayBjaGl0YSBjaHVrb3RrYSBjaHV2YXNoaWEgY29tIGRhZ2VzdGFuIGUtYnVyZyBlZHUgZ292IGdyb3pueSBpbnQgaXJrdXRzayBpdmFub3ZvIGl6aGV2c2sgamFyIGpvc2hrYXItb2xhIGthbG15a2lhIGthbHVnYSBrYW1jaGF0a2Ega2FyZWxpYSBrYXphbiBrY2hyIGtlbWVyb3ZvIGtoYWJhcm92c2sga2hha2Fzc2lhIGtodiBraXJvdiBrb2VuaWcga29taSBrb3N0cm9tYSBrcmFub3lhcnNrIGt1YmFuIGt1cmdhbiBrdXJzayBsaXBldHNrIG1hZ2FkYW4gbWFyaSBtYXJpLWVsIG1hcmluZSBtaWwgbW9yZG92aWEgbW9zcmVnIG1zayBtdXJtYW5zayBuYWxjaGlrIG5ldCBubm92IG5vdiBub3Zvc2liaXJzayBuc2sgb21zayBvcmVuYnVyZyBvcmcgb3J5b2wgcGVuemEgcGVybSBwcCBwc2tvdiBwdHogcm5kIHJ5YXphbiBzYWtoYWxpbiBzYW1hcmEgc2FyYXRvdiBzaW1iaXJzayBzbW9sZW5zayBzcGIgc3RhdnJvcG9sIHN0diBzdXJndXQgdGFtYm92IHRhdGFyc3RhbiB0b20gdG9tc2sgdHNhcml0c3luIHRzayB0dWxhIHR1dmEgdHZlciB0eXVtZW4gdWRtIHVkbXVydGlhIHVsYW4tdWRlIHZsYWRpa2F2a2F6IHZsYWRpbWlyIHZsYWRpdm9zdG9rIHZvbGdvZ3JhZCB2b2xvZ2RhIHZvcm9uZXpoIHZybiB2eWF0a2EgeWFrdXRpYSB5YW1hbCB5ZWthdGVyaW5idXJnIHl1emhuby1zYWtoYWxpbnNrICcsXG4gICAgICAncncnOicgYWMgY28gY29tIGVkdSBnb3V2IGdvdiBpbnQgbWlsIG5ldCAnLFxuICAgICAgJ3NhJzonIGNvbSBlZHUgZ292IG1lZCBuZXQgb3JnIHB1YiBzY2ggJyxcbiAgICAgICdzZCc6JyBjb20gZWR1IGdvdiBpbmZvIG1lZCBuZXQgb3JnIHR2ICcsXG4gICAgICAnc2UnOicgYSBhYyBiIGJkIGMgZCBlIGYgZyBoIGkgayBsIG0gbiBvIG9yZyBwIHBhcnRpIHBwIHByZXNzIHIgcyB0IHRtIHUgdyB4IHkgeiAnLFxuICAgICAgJ3NnJzonIGNvbSBlZHUgZ292IGlkbiBuZXQgb3JnIHBlciAnLFxuICAgICAgJ3NuJzonIGFydCBjb20gZWR1IGdvdXYgb3JnIHBlcnNvIHVuaXYgJyxcbiAgICAgICdzeSc6JyBjb20gZWR1IGdvdiBtaWwgbmV0IG5ld3Mgb3JnICcsXG4gICAgICAndGgnOicgYWMgY28gZ28gaW4gbWkgbmV0IG9yICcsXG4gICAgICAndGonOicgYWMgYml6IGNvIGNvbSBlZHUgZ28gZ292IGluZm8gaW50IG1pbCBuYW1lIG5ldCBuaWMgb3JnIHRlc3Qgd2ViICcsXG4gICAgICAndG4nOicgYWdyaW5ldCBjb20gZGVmZW5zZSBlZHVuZXQgZW5zIGZpbiBnb3YgaW5kIGluZm8gaW50bCBtaW5jb20gbmF0IG5ldCBvcmcgcGVyc28gcm5ydCBybnMgcm51IHRvdXJpc20gJyxcbiAgICAgICd0eic6JyBhYyBjbyBnbyBuZSBvciAnLFxuICAgICAgJ3VhJzonIGJpeiBjaGVya2Fzc3kgY2hlcm5pZ292IGNoZXJub3Z0c3kgY2sgY24gY28gY29tIGNyaW1lYSBjdiBkbiBkbmVwcm9wZXRyb3ZzayBkb25ldHNrIGRwIGVkdSBnb3YgaWYgaW4gaXZhbm8tZnJhbmtpdnNrIGtoIGtoYXJrb3Yga2hlcnNvbiBraG1lbG5pdHNraXkga2lldiBraXJvdm9ncmFkIGttIGtyIGtzIGt2IGxnIGx1Z2Fuc2sgbHV0c2sgbHZpdiBtZSBtayBuZXQgbmlrb2xhZXYgb2Qgb2Rlc3NhIG9yZyBwbCBwb2x0YXZhIHBwIHJvdm5vIHJ2IHNlYmFzdG9wb2wgc3VteSB0ZSB0ZXJub3BpbCB1emhnb3JvZCB2aW5uaWNhIHZuIHphcG9yaXpoemhlIHpoaXRvbWlyIHpwIHp0ICcsXG4gICAgICAndWcnOicgYWMgY28gZ28gbmUgb3Igb3JnIHNjICcsXG4gICAgICAndWsnOicgYWMgYmwgYnJpdGlzaC1saWJyYXJ5IGNvIGN5bSBnb3YgZ292dCBpY25ldCBqZXQgbGVhIGx0ZCBtZSBtaWwgbW9kIG5hdGlvbmFsLWxpYnJhcnktc2NvdGxhbmQgbmVsIG5ldCBuaHMgbmljIG5scyBvcmcgb3JnbiBwYXJsaWFtZW50IHBsYyBwb2xpY2Ugc2NoIHNjb3Qgc29jICcsXG4gICAgICAndXMnOicgZG5pIGZlZCBpc2Ega2lkcyBuc24gJyxcbiAgICAgICd1eSc6JyBjb20gZWR1IGd1YiBtaWwgbmV0IG9yZyAnLFxuICAgICAgJ3ZlJzonIGNvIGNvbSBlZHUgZ29iIGluZm8gbWlsIG5ldCBvcmcgd2ViICcsXG4gICAgICAndmknOicgY28gY29tIGsxMiBuZXQgb3JnICcsXG4gICAgICAndm4nOicgYWMgYml6IGNvbSBlZHUgZ292IGhlYWx0aCBpbmZvIGludCBuYW1lIG5ldCBvcmcgcHJvICcsXG4gICAgICAneWUnOicgY28gY29tIGdvdiBsdGQgbWUgbmV0IG9yZyBwbGMgJyxcbiAgICAgICd5dSc6JyBhYyBjbyBlZHUgZ292IG9yZyAnLFxuICAgICAgJ3phJzonIGFjIGFncmljIGFsdCBib3Vyc2UgY2l0eSBjbyBjeWJlcm5ldCBkYiBlZHUgZ292IGdyb25kYXIgaWFjY2VzcyBpbXQgaW5jYSBsYW5kZXNpZ24gbGF3IG1pbCBuZXQgbmdvIG5pcyBub20gb2xpdmV0dGkgb3JnIHBpeCBzY2hvb2wgdG0gd2ViICcsXG4gICAgICAnem0nOicgYWMgY28gY29tIGVkdSBnb3YgbmV0IG9yZyBzY2ggJyxcbiAgICAgIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NlbnRyYWxOaWMjU2Vjb25kLWxldmVsX2RvbWFpbnNcbiAgICAgICdjb20nOiAnYXIgYnIgY24gZGUgZXUgZ2IgZ3IgaHUganBuIGtyIG5vIHFjIHJ1IHNhIHNlIHVrIHVzIHV5IHphICcsXG4gICAgICAnbmV0JzogJ2diIGpwIHNlIHVrICcsXG4gICAgICAnb3JnJzogJ2FlJyxcbiAgICAgICdkZSc6ICdjb20gJ1xuICAgIH0sXG4gICAgLy8gZ29yaGlsbCAyMDEzLTEwLTI1OiBVc2luZyBpbmRleE9mKCkgaW5zdGVhZCBSZWdleHAoKS4gU2lnbmlmaWNhbnQgYm9vc3RcbiAgICAvLyBpbiBib3RoIHBlcmZvcm1hbmNlIGFuZCBtZW1vcnkgZm9vdHByaW50LiBObyBpbml0aWFsaXphdGlvbiByZXF1aXJlZC5cbiAgICAvLyBodHRwOi8vanNwZXJmLmNvbS91cmktanMtc2xkLXJlZ2V4LXZzLWJpbmFyeS1zZWFyY2gvNFxuICAgIC8vIEZvbGxvd2luZyBtZXRob2RzIHVzZSBsYXN0SW5kZXhPZigpIHJhdGhlciB0aGFuIGFycmF5LnNwbGl0KCkgaW4gb3JkZXJcbiAgICAvLyB0byBhdm9pZCBhbnkgbWVtb3J5IGFsbG9jYXRpb25zLlxuICAgIGhhczogZnVuY3Rpb24oZG9tYWluKSB7XG4gICAgICB2YXIgdGxkT2Zmc2V0ID0gZG9tYWluLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICBpZiAodGxkT2Zmc2V0IDw9IDAgfHwgdGxkT2Zmc2V0ID49IChkb21haW4ubGVuZ3RoLTEpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBzbGRPZmZzZXQgPSBkb21haW4ubGFzdEluZGV4T2YoJy4nLCB0bGRPZmZzZXQtMSk7XG4gICAgICBpZiAoc2xkT2Zmc2V0IDw9IDAgfHwgc2xkT2Zmc2V0ID49ICh0bGRPZmZzZXQtMSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHNsZExpc3QgPSBTTEQubGlzdFtkb21haW4uc2xpY2UodGxkT2Zmc2V0KzEpXTtcbiAgICAgIGlmICghc2xkTGlzdCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2xkTGlzdC5pbmRleE9mKCcgJyArIGRvbWFpbi5zbGljZShzbGRPZmZzZXQrMSwgdGxkT2Zmc2V0KSArICcgJykgPj0gMDtcbiAgICB9LFxuICAgIGlzOiBmdW5jdGlvbihkb21haW4pIHtcbiAgICAgIHZhciB0bGRPZmZzZXQgPSBkb21haW4ubGFzdEluZGV4T2YoJy4nKTtcbiAgICAgIGlmICh0bGRPZmZzZXQgPD0gMCB8fCB0bGRPZmZzZXQgPj0gKGRvbWFpbi5sZW5ndGgtMSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHNsZE9mZnNldCA9IGRvbWFpbi5sYXN0SW5kZXhPZignLicsIHRsZE9mZnNldC0xKTtcbiAgICAgIGlmIChzbGRPZmZzZXQgPj0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgc2xkTGlzdCA9IFNMRC5saXN0W2RvbWFpbi5zbGljZSh0bGRPZmZzZXQrMSldO1xuICAgICAgaWYgKCFzbGRMaXN0KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzbGRMaXN0LmluZGV4T2YoJyAnICsgZG9tYWluLnNsaWNlKDAsIHRsZE9mZnNldCkgKyAnICcpID49IDA7XG4gICAgfSxcbiAgICBnZXQ6IGZ1bmN0aW9uKGRvbWFpbikge1xuICAgICAgdmFyIHRsZE9mZnNldCA9IGRvbWFpbi5sYXN0SW5kZXhPZignLicpO1xuICAgICAgaWYgKHRsZE9mZnNldCA8PSAwIHx8IHRsZE9mZnNldCA+PSAoZG9tYWluLmxlbmd0aC0xKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHZhciBzbGRPZmZzZXQgPSBkb21haW4ubGFzdEluZGV4T2YoJy4nLCB0bGRPZmZzZXQtMSk7XG4gICAgICBpZiAoc2xkT2Zmc2V0IDw9IDAgfHwgc2xkT2Zmc2V0ID49ICh0bGRPZmZzZXQtMSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgc2xkTGlzdCA9IFNMRC5saXN0W2RvbWFpbi5zbGljZSh0bGRPZmZzZXQrMSldO1xuICAgICAgaWYgKCFzbGRMaXN0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHNsZExpc3QuaW5kZXhPZignICcgKyBkb21haW4uc2xpY2Uoc2xkT2Zmc2V0KzEsIHRsZE9mZnNldCkgKyAnICcpIDwgMCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkb21haW4uc2xpY2Uoc2xkT2Zmc2V0KzEpO1xuICAgIH0sXG4gICAgbm9Db25mbGljdDogZnVuY3Rpb24oKXtcbiAgICAgIGlmIChyb290LlNlY29uZExldmVsRG9tYWlucyA9PT0gdGhpcykge1xuICAgICAgICByb290LlNlY29uZExldmVsRG9tYWlucyA9IF9TZWNvbmRMZXZlbERvbWFpbnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIFNMRDtcbn0pKTtcbiIsIi8qIVxuICogVVJJLmpzIC0gTXV0YXRpbmcgVVJMc1xuICpcbiAqIFZlcnNpb246IDEuMTkuMVxuICpcbiAqIEF1dGhvcjogUm9kbmV5IFJlaG1cbiAqIFdlYjogaHR0cDovL21lZGlhbGl6ZS5naXRodWIuaW8vVVJJLmpzL1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyXG4gKiAgIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2VcbiAqXG4gKi9cbihmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuICAndXNlIHN0cmljdCc7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS91bWRqcy91bWQvYmxvYi9tYXN0ZXIvcmV0dXJuRXhwb3J0cy5qc1xuICBpZiAodHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICAvLyBOb2RlXG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoJy4vcHVueWNvZGUnKSwgcmVxdWlyZSgnLi9JUHY2JyksIHJlcXVpcmUoJy4vU2Vjb25kTGV2ZWxEb21haW5zJykpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgIC8vIEFNRC4gUmVnaXN0ZXIgYXMgYW4gYW5vbnltb3VzIG1vZHVsZS5cbiAgICBkZWZpbmUoWycuL3B1bnljb2RlJywgJy4vSVB2NicsICcuL1NlY29uZExldmVsRG9tYWlucyddLCBmYWN0b3J5KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBCcm93c2VyIGdsb2JhbHMgKHJvb3QgaXMgd2luZG93KVxuICAgIHJvb3QuVVJJID0gZmFjdG9yeShyb290LnB1bnljb2RlLCByb290LklQdjYsIHJvb3QuU2Vjb25kTGV2ZWxEb21haW5zLCByb290KTtcbiAgfVxufSh0aGlzLCBmdW5jdGlvbiAocHVueWNvZGUsIElQdjYsIFNMRCwgcm9vdCkge1xuICAndXNlIHN0cmljdCc7XG4gIC8qZ2xvYmFsIGxvY2F0aW9uLCBlc2NhcGUsIHVuZXNjYXBlICovXG4gIC8vIEZJWE1FOiB2Mi4wLjAgcmVuYW1jZSBub24tY2FtZWxDYXNlIHByb3BlcnRpZXMgdG8gdXBwZXJjYXNlXG4gIC8qanNoaW50IGNhbWVsY2FzZTogZmFsc2UgKi9cblxuICAvLyBzYXZlIGN1cnJlbnQgVVJJIHZhcmlhYmxlLCBpZiBhbnlcbiAgdmFyIF9VUkkgPSByb290ICYmIHJvb3QuVVJJO1xuXG4gIGZ1bmN0aW9uIFVSSSh1cmwsIGJhc2UpIHtcbiAgICB2YXIgX3VybFN1cHBsaWVkID0gYXJndW1lbnRzLmxlbmd0aCA+PSAxO1xuICAgIHZhciBfYmFzZVN1cHBsaWVkID0gYXJndW1lbnRzLmxlbmd0aCA+PSAyO1xuXG4gICAgLy8gQWxsb3cgaW5zdGFudGlhdGlvbiB3aXRob3V0IHRoZSAnbmV3JyBrZXl3b3JkXG4gICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFVSSSkpIHtcbiAgICAgIGlmIChfdXJsU3VwcGxpZWQpIHtcbiAgICAgICAgaWYgKF9iYXNlU3VwcGxpZWQpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFVSSSh1cmwsIGJhc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBVUkkodXJsKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ldyBVUkkoKTtcbiAgICB9XG5cbiAgICBpZiAodXJsID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChfdXJsU3VwcGxpZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndW5kZWZpbmVkIGlzIG5vdCBhIHZhbGlkIGFyZ3VtZW50IGZvciBVUkknKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBsb2NhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdXJsID0gbG9jYXRpb24uaHJlZiArICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gJyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVybCA9PT0gbnVsbCkge1xuICAgICAgaWYgKF91cmxTdXBwbGllZCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdudWxsIGlzIG5vdCBhIHZhbGlkIGFyZ3VtZW50IGZvciBVUkknKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmhyZWYodXJsKTtcblxuICAgIC8vIHJlc29sdmUgdG8gYmFzZSBhY2NvcmRpbmcgdG8gaHR0cDovL2R2Y3MudzMub3JnL2hnL3VybC9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjb25zdHJ1Y3RvclxuICAgIGlmIChiYXNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmFic29sdXRlVG8oYmFzZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmdW5jdGlvbiBpc0ludGVnZXIodmFsdWUpIHtcbiAgICByZXR1cm4gL15bMC05XSskLy50ZXN0KHZhbHVlKTtcbiAgfVxuXG4gIFVSSS52ZXJzaW9uID0gJzEuMTkuMSc7XG5cbiAgdmFyIHAgPSBVUkkucHJvdG90eXBlO1xuICB2YXIgaGFzT3duID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuICBmdW5jdGlvbiBlc2NhcGVSZWdFeChzdHJpbmcpIHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL1VSSS5qcy9jb21taXQvODVhYzIxNzgzYzExZjhjY2FiMDYxMDZkYmE5NzM1YTMxYTg2OTI0ZCNjb21taXRjb21tZW50LTgyMTk2M1xuICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvKFsuKis/Xj0hOiR7fSgpfFtcXF1cXC9cXFxcXSkvZywgJ1xcXFwkMScpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0VHlwZSh2YWx1ZSkge1xuICAgIC8vIElFOCBkb2Vzbid0IHJldHVybiBbT2JqZWN0IFVuZGVmaW5lZF0gYnV0IFtPYmplY3QgT2JqZWN0XSBmb3IgdW5kZWZpbmVkIHZhbHVlXG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAnVW5kZWZpbmVkJztcbiAgICB9XG5cbiAgICByZXR1cm4gU3RyaW5nKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkpLnNsaWNlKDgsIC0xKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzQXJyYXkob2JqKSB7XG4gICAgcmV0dXJuIGdldFR5cGUob2JqKSA9PT0gJ0FycmF5JztcbiAgfVxuXG4gIGZ1bmN0aW9uIGZpbHRlckFycmF5VmFsdWVzKGRhdGEsIHZhbHVlKSB7XG4gICAgdmFyIGxvb2t1cCA9IHt9O1xuICAgIHZhciBpLCBsZW5ndGg7XG5cbiAgICBpZiAoZ2V0VHlwZSh2YWx1ZSkgPT09ICdSZWdFeHAnKSB7XG4gICAgICBsb29rdXAgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAoaSA9IDAsIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxvb2t1cFt2YWx1ZVtpXV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsb29rdXBbdmFsdWVdID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwLCBsZW5ndGggPSBkYXRhLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAvKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xuICAgICAgdmFyIF9tYXRjaCA9IGxvb2t1cCAmJiBsb29rdXBbZGF0YVtpXV0gIT09IHVuZGVmaW5lZFxuICAgICAgICB8fCAhbG9va3VwICYmIHZhbHVlLnRlc3QoZGF0YVtpXSk7XG4gICAgICAvKmpzaGludCBsYXhicmVhazogZmFsc2UgKi9cbiAgICAgIGlmIChfbWF0Y2gpIHtcbiAgICAgICAgZGF0YS5zcGxpY2UoaSwgMSk7XG4gICAgICAgIGxlbmd0aC0tO1xuICAgICAgICBpLS07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBmdW5jdGlvbiBhcnJheUNvbnRhaW5zKGxpc3QsIHZhbHVlKSB7XG4gICAgdmFyIGksIGxlbmd0aDtcblxuICAgIC8vIHZhbHVlIG1heSBiZSBzdHJpbmcsIG51bWJlciwgYXJyYXksIHJlZ2V4cFxuICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgLy8gTm90ZTogdGhpcyBjYW4gYmUgb3B0aW1pemVkIHRvIE8obikgKGluc3RlYWQgb2YgY3VycmVudCBPKG0gKiBuKSlcbiAgICAgIGZvciAoaSA9IDAsIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghYXJyYXlDb250YWlucyhsaXN0LCB2YWx1ZVtpXSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFyIF90eXBlID0gZ2V0VHlwZSh2YWx1ZSk7XG4gICAgZm9yIChpID0gMCwgbGVuZ3RoID0gbGlzdC5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgaWYgKF90eXBlID09PSAnUmVnRXhwJykge1xuICAgICAgICBpZiAodHlwZW9mIGxpc3RbaV0gPT09ICdzdHJpbmcnICYmIGxpc3RbaV0ubWF0Y2godmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobGlzdFtpXSA9PT0gdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gYXJyYXlzRXF1YWwob25lLCB0d28pIHtcbiAgICBpZiAoIWlzQXJyYXkob25lKSB8fCAhaXNBcnJheSh0d28pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gYXJyYXlzIGNhbid0IGJlIGVxdWFsIGlmIHRoZXkgaGF2ZSBkaWZmZXJlbnQgYW1vdW50IG9mIGNvbnRlbnRcbiAgICBpZiAob25lLmxlbmd0aCAhPT0gdHdvLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIG9uZS5zb3J0KCk7XG4gICAgdHdvLnNvcnQoKTtcblxuICAgIGZvciAodmFyIGkgPSAwLCBsID0gb25lLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKG9uZVtpXSAhPT0gdHdvW2ldKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyaW1TbGFzaGVzKHRleHQpIHtcbiAgICB2YXIgdHJpbV9leHByZXNzaW9uID0gL15cXC8rfFxcLyskL2c7XG4gICAgcmV0dXJuIHRleHQucmVwbGFjZSh0cmltX2V4cHJlc3Npb24sICcnKTtcbiAgfVxuXG4gIFVSSS5fcGFydHMgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvdG9jb2w6IG51bGwsXG4gICAgICB1c2VybmFtZTogbnVsbCxcbiAgICAgIHBhc3N3b3JkOiBudWxsLFxuICAgICAgaG9zdG5hbWU6IG51bGwsXG4gICAgICB1cm46IG51bGwsXG4gICAgICBwb3J0OiBudWxsLFxuICAgICAgcGF0aDogbnVsbCxcbiAgICAgIHF1ZXJ5OiBudWxsLFxuICAgICAgZnJhZ21lbnQ6IG51bGwsXG4gICAgICAvLyBzdGF0ZVxuICAgICAgcHJldmVudEludmFsaWRIb3N0bmFtZTogVVJJLnByZXZlbnRJbnZhbGlkSG9zdG5hbWUsXG4gICAgICBkdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnM6IFVSSS5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnMsXG4gICAgICBlc2NhcGVRdWVyeVNwYWNlOiBVUkkuZXNjYXBlUXVlcnlTcGFjZVxuICAgIH07XG4gIH07XG4gIC8vIHN0YXRlOiB0aHJvdyBvbiBpbnZhbGlkIGhvc3RuYW1lXG4gIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL1VSSS5qcy9wdWxsLzM0NVxuICAvLyBhbmQgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9VUkkuanMvaXNzdWVzLzM1NFxuICBVUkkucHJldmVudEludmFsaWRIb3N0bmFtZSA9IGZhbHNlO1xuICAvLyBzdGF0ZTogYWxsb3cgZHVwbGljYXRlIHF1ZXJ5IHBhcmFtZXRlcnMgKGE9MSZhPTEpXG4gIFVSSS5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnMgPSBmYWxzZTtcbiAgLy8gc3RhdGU6IHJlcGxhY2VzICsgd2l0aCAlMjAgKHNwYWNlIGluIHF1ZXJ5IHN0cmluZ3MpXG4gIFVSSS5lc2NhcGVRdWVyeVNwYWNlID0gdHJ1ZTtcbiAgLy8gc3RhdGljIHByb3BlcnRpZXNcbiAgVVJJLnByb3RvY29sX2V4cHJlc3Npb24gPSAvXlthLXpdW2EtejAtOS4rLV0qJC9pO1xuICBVUkkuaWRuX2V4cHJlc3Npb24gPSAvW15hLXowLTlcXC5fLV0vaTtcbiAgVVJJLnB1bnljb2RlX2V4cHJlc3Npb24gPSAvKHhuLS0pL2k7XG4gIC8vIHdlbGwsIDMzMy40NDQuNTU1LjY2NiBtYXRjaGVzLCBidXQgaXQgc3VyZSBhaW4ndCBubyBJUHY0IC0gZG8gd2UgY2FyZT9cbiAgVVJJLmlwNF9leHByZXNzaW9uID0gL15cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfSQvO1xuICAvLyBjcmVkaXRzIHRvIFJpY2ggQnJvd25cbiAgLy8gc291cmNlOiBodHRwOi8vZm9ydW1zLmludGVybWFwcGVyLmNvbS92aWV3dG9waWMucGhwP3A9MTA5NiMxMDk2XG4gIC8vIHNwZWNpZmljYXRpb246IGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzQyOTEudHh0XG4gIFVSSS5pcDZfZXhwcmVzc2lvbiA9IC9eXFxzKigoKFswLTlBLUZhLWZdezEsNH06KXs3fShbMC05QS1GYS1mXXsxLDR9fDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs2fSg6WzAtOUEtRmEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezV9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezR9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsM30pfCgoOlswLTlBLUZhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXszfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKFxcLigyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezJ9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNX0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoXFwuKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7MX0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKShcXC4oMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKXwoOigoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKFxcLigyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpKSglLispP1xccyokLztcbiAgLy8gZXhwcmVzc2lvbiB1c2VkIGlzIFwiZ3J1YmVyIHJldmlzZWRcIiAoQGdydWJlciB2MikgZGV0ZXJtaW5lZCB0byBiZSB0aGVcbiAgLy8gYmVzdCBzb2x1dGlvbiBpbiBhIHJlZ2V4LWdvbGYgd2UgZGlkIGEgY291cGxlIG9mIGFnZXMgYWdvIGF0XG4gIC8vICogaHR0cDovL21hdGhpYXNieW5lbnMuYmUvZGVtby91cmwtcmVnZXhcbiAgLy8gKiBodHRwOi8vcm9kbmV5cmVobS5kZS90L3VybC1yZWdleC5odG1sXG4gIFVSSS5maW5kX3VyaV9leHByZXNzaW9uID0gL1xcYigoPzpbYS16XVtcXHctXSs6KD86XFwvezEsM318W2EtejAtOSVdKXx3d3dcXGR7MCwzfVsuXXxbYS16MC05LlxcLV0rWy5dW2Etel17Miw0fVxcLykoPzpbXlxccygpPD5dK3xcXCgoW15cXHMoKTw+XSt8KFxcKFteXFxzKCk8Pl0rXFwpKSkqXFwpKSsoPzpcXCgoW15cXHMoKTw+XSt8KFxcKFteXFxzKCk8Pl0rXFwpKSkqXFwpfFteXFxzYCEoKVxcW1xcXXt9OzonXCIuLDw+P8KrwrvigJzigJ3igJjigJldKSkvaWc7XG4gIFVSSS5maW5kVXJpID0ge1xuICAgIC8vIHZhbGlkIFwic2NoZW1lOi8vXCIgb3IgXCJ3d3cuXCJcbiAgICBzdGFydDogL1xcYig/OihbYS16XVthLXowLTkuKy1dKjpcXC9cXC8pfHd3d1xcLikvZ2ksXG4gICAgLy8gZXZlcnl0aGluZyB1cCB0byB0aGUgbmV4dCB3aGl0ZXNwYWNlXG4gICAgZW5kOiAvW1xcc1xcclxcbl18JC8sXG4gICAgLy8gdHJpbSB0cmFpbGluZyBwdW5jdHVhdGlvbiBjYXB0dXJlZCBieSBlbmQgUmVnRXhwXG4gICAgdHJpbTogL1tgISgpXFxbXFxde307OidcIi4sPD4/wqvCu+KAnOKAneKAnuKAmOKAmV0rJC8sXG4gICAgLy8gYmFsYW5jZWQgcGFyZW5zIGluY2x1c2lvbiAoKSwgW10sIHt9LCA8PlxuICAgIHBhcmVuczogLyhcXChbXlxcKV0qXFwpfFxcW1teXFxdXSpcXF18XFx7W159XSpcXH18PFtePl0qPikvZyxcbiAgfTtcbiAgLy8gaHR0cDovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy91cmktc2NoZW1lcy5odG1sXG4gIC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGlzdF9vZl9UQ1BfYW5kX1VEUF9wb3J0X251bWJlcnMjV2VsbC1rbm93bl9wb3J0c1xuICBVUkkuZGVmYXVsdFBvcnRzID0ge1xuICAgIGh0dHA6ICc4MCcsXG4gICAgaHR0cHM6ICc0NDMnLFxuICAgIGZ0cDogJzIxJyxcbiAgICBnb3BoZXI6ICc3MCcsXG4gICAgd3M6ICc4MCcsXG4gICAgd3NzOiAnNDQzJ1xuICB9O1xuICAvLyBsaXN0IG9mIHByb3RvY29scyB3aGljaCBhbHdheXMgcmVxdWlyZSBhIGhvc3RuYW1lXG4gIFVSSS5ob3N0UHJvdG9jb2xzID0gW1xuICAgICdodHRwJyxcbiAgICAnaHR0cHMnXG4gIF07XG5cbiAgLy8gYWxsb3dlZCBob3N0bmFtZSBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byBSRkMgMzk4NlxuICAvLyBBTFBIQSBESUdJVCBcIi1cIiBcIi5cIiBcIl9cIiBcIn5cIiBcIiFcIiBcIiRcIiBcIiZcIiBcIidcIiBcIihcIiBcIilcIiBcIipcIiBcIitcIiBcIixcIiBcIjtcIiBcIj1cIiAlZW5jb2RlZFxuICAvLyBJJ3ZlIG5ldmVyIHNlZW4gYSAobm9uLUlETikgaG9zdG5hbWUgb3RoZXIgdGhhbjogQUxQSEEgRElHSVQgLiAtIF9cbiAgVVJJLmludmFsaWRfaG9zdG5hbWVfY2hhcmFjdGVycyA9IC9bXmEtekEtWjAtOVxcLlxcLTpfXS87XG4gIC8vIG1hcCBET00gRWxlbWVudHMgdG8gdGhlaXIgVVJJIGF0dHJpYnV0ZVxuICBVUkkuZG9tQXR0cmlidXRlcyA9IHtcbiAgICAnYSc6ICdocmVmJyxcbiAgICAnYmxvY2txdW90ZSc6ICdjaXRlJyxcbiAgICAnbGluayc6ICdocmVmJyxcbiAgICAnYmFzZSc6ICdocmVmJyxcbiAgICAnc2NyaXB0JzogJ3NyYycsXG4gICAgJ2Zvcm0nOiAnYWN0aW9uJyxcbiAgICAnaW1nJzogJ3NyYycsXG4gICAgJ2FyZWEnOiAnaHJlZicsXG4gICAgJ2lmcmFtZSc6ICdzcmMnLFxuICAgICdlbWJlZCc6ICdzcmMnLFxuICAgICdzb3VyY2UnOiAnc3JjJyxcbiAgICAndHJhY2snOiAnc3JjJyxcbiAgICAnaW5wdXQnOiAnc3JjJywgLy8gYnV0IG9ubHkgaWYgdHlwZT1cImltYWdlXCJcbiAgICAnYXVkaW8nOiAnc3JjJyxcbiAgICAndmlkZW8nOiAnc3JjJ1xuICB9O1xuICBVUkkuZ2V0RG9tQXR0cmlidXRlID0gZnVuY3Rpb24obm9kZSkge1xuICAgIGlmICghbm9kZSB8fCAhbm9kZS5ub2RlTmFtZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB2YXIgbm9kZU5hbWUgPSBub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgLy8gPGlucHV0PiBzaG91bGQgb25seSBleHBvc2Ugc3JjIGZvciB0eXBlPVwiaW1hZ2VcIlxuICAgIGlmIChub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiBub2RlLnR5cGUgIT09ICdpbWFnZScpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIFVSSS5kb21BdHRyaWJ1dGVzW25vZGVOYW1lXTtcbiAgfTtcblxuICBmdW5jdGlvbiBlc2NhcGVGb3JEdW1iRmlyZWZveDM2KHZhbHVlKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9VUkkuanMvaXNzdWVzLzkxXG4gICAgcmV0dXJuIGVzY2FwZSh2YWx1ZSk7XG4gIH1cblxuICAvLyBlbmNvZGluZyAvIGRlY29kaW5nIGFjY29yZGluZyB0byBSRkMzOTg2XG4gIGZ1bmN0aW9uIHN0cmljdEVuY29kZVVSSUNvbXBvbmVudChzdHJpbmcpIHtcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9lbmNvZGVVUklDb21wb25lbnRcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZylcbiAgICAgIC5yZXBsYWNlKC9bIScoKSpdL2csIGVzY2FwZUZvckR1bWJGaXJlZm94MzYpXG4gICAgICAucmVwbGFjZSgvXFwqL2csICclMkEnKTtcbiAgfVxuICBVUkkuZW5jb2RlID0gc3RyaWN0RW5jb2RlVVJJQ29tcG9uZW50O1xuICBVUkkuZGVjb2RlID0gZGVjb2RlVVJJQ29tcG9uZW50O1xuICBVUkkuaXNvODg1OSA9IGZ1bmN0aW9uKCkge1xuICAgIFVSSS5lbmNvZGUgPSBlc2NhcGU7XG4gICAgVVJJLmRlY29kZSA9IHVuZXNjYXBlO1xuICB9O1xuICBVUkkudW5pY29kZSA9IGZ1bmN0aW9uKCkge1xuICAgIFVSSS5lbmNvZGUgPSBzdHJpY3RFbmNvZGVVUklDb21wb25lbnQ7XG4gICAgVVJJLmRlY29kZSA9IGRlY29kZVVSSUNvbXBvbmVudDtcbiAgfTtcbiAgVVJJLmNoYXJhY3RlcnMgPSB7XG4gICAgcGF0aG5hbWU6IHtcbiAgICAgIGVuY29kZToge1xuICAgICAgICAvLyBSRkMzOTg2IDIuMTogRm9yIGNvbnNpc3RlbmN5LCBVUkkgcHJvZHVjZXJzIGFuZCBub3JtYWxpemVycyBzaG91bGRcbiAgICAgICAgLy8gdXNlIHVwcGVyY2FzZSBoZXhhZGVjaW1hbCBkaWdpdHMgZm9yIGFsbCBwZXJjZW50LWVuY29kaW5ncy5cbiAgICAgICAgZXhwcmVzc2lvbjogLyUoMjR8MjZ8MkJ8MkN8M0J8M0R8M0F8NDApL2lnLFxuICAgICAgICBtYXA6IHtcbiAgICAgICAgICAvLyAtLl9+IScoKSpcbiAgICAgICAgICAnJTI0JzogJyQnLFxuICAgICAgICAgICclMjYnOiAnJicsXG4gICAgICAgICAgJyUyQic6ICcrJyxcbiAgICAgICAgICAnJTJDJzogJywnLFxuICAgICAgICAgICclM0InOiAnOycsXG4gICAgICAgICAgJyUzRCc6ICc9JyxcbiAgICAgICAgICAnJTNBJzogJzonLFxuICAgICAgICAgICclNDAnOiAnQCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRlY29kZToge1xuICAgICAgICBleHByZXNzaW9uOiAvW1xcL1xcPyNdL2csXG4gICAgICAgIG1hcDoge1xuICAgICAgICAgICcvJzogJyUyRicsXG4gICAgICAgICAgJz8nOiAnJTNGJyxcbiAgICAgICAgICAnIyc6ICclMjMnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHJlc2VydmVkOiB7XG4gICAgICBlbmNvZGU6IHtcbiAgICAgICAgLy8gUkZDMzk4NiAyLjE6IEZvciBjb25zaXN0ZW5jeSwgVVJJIHByb2R1Y2VycyBhbmQgbm9ybWFsaXplcnMgc2hvdWxkXG4gICAgICAgIC8vIHVzZSB1cHBlcmNhc2UgaGV4YWRlY2ltYWwgZGlnaXRzIGZvciBhbGwgcGVyY2VudC1lbmNvZGluZ3MuXG4gICAgICAgIGV4cHJlc3Npb246IC8lKDIxfDIzfDI0fDI2fDI3fDI4fDI5fDJBfDJCfDJDfDJGfDNBfDNCfDNEfDNGfDQwfDVCfDVEKS9pZyxcbiAgICAgICAgbWFwOiB7XG4gICAgICAgICAgLy8gZ2VuLWRlbGltc1xuICAgICAgICAgICclM0EnOiAnOicsXG4gICAgICAgICAgJyUyRic6ICcvJyxcbiAgICAgICAgICAnJTNGJzogJz8nLFxuICAgICAgICAgICclMjMnOiAnIycsXG4gICAgICAgICAgJyU1Qic6ICdbJyxcbiAgICAgICAgICAnJTVEJzogJ10nLFxuICAgICAgICAgICclNDAnOiAnQCcsXG4gICAgICAgICAgLy8gc3ViLWRlbGltc1xuICAgICAgICAgICclMjEnOiAnIScsXG4gICAgICAgICAgJyUyNCc6ICckJyxcbiAgICAgICAgICAnJTI2JzogJyYnLFxuICAgICAgICAgICclMjcnOiAnXFwnJyxcbiAgICAgICAgICAnJTI4JzogJygnLFxuICAgICAgICAgICclMjknOiAnKScsXG4gICAgICAgICAgJyUyQSc6ICcqJyxcbiAgICAgICAgICAnJTJCJzogJysnLFxuICAgICAgICAgICclMkMnOiAnLCcsXG4gICAgICAgICAgJyUzQic6ICc7JyxcbiAgICAgICAgICAnJTNEJzogJz0nXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHVybnBhdGg6IHtcbiAgICAgIC8vIFRoZSBjaGFyYWN0ZXJzIHVuZGVyIGBlbmNvZGVgIGFyZSB0aGUgY2hhcmFjdGVycyBjYWxsZWQgb3V0IGJ5IFJGQyAyMTQxIGFzIGJlaW5nIGFjY2VwdGFibGVcbiAgICAgIC8vIGZvciB1c2FnZSBpbiBhIFVSTi4gUkZDMjE0MSBhbHNvIGNhbGxzIG91dCBcIi1cIiwgXCIuXCIsIGFuZCBcIl9cIiBhcyBhY2NlcHRhYmxlIGNoYXJhY3RlcnMsIGJ1dFxuICAgICAgLy8gdGhlc2UgYXJlbid0IGVuY29kZWQgYnkgZW5jb2RlVVJJQ29tcG9uZW50LCBzbyB3ZSBkb24ndCBoYXZlIHRvIGNhbGwgdGhlbSBvdXQgaGVyZS4gQWxzb1xuICAgICAgLy8gbm90ZSB0aGF0IHRoZSBjb2xvbiBjaGFyYWN0ZXIgaXMgbm90IGZlYXR1cmVkIGluIHRoZSBlbmNvZGluZyBtYXA7IHRoaXMgaXMgYmVjYXVzZSBVUkkuanNcbiAgICAgIC8vIGdpdmVzIHRoZSBjb2xvbnMgaW4gVVJOcyBzZW1hbnRpYyBtZWFuaW5nIGFzIHRoZSBkZWxpbWl0ZXJzIG9mIHBhdGggc2VnZW1lbnRzLCBhbmQgc28gaXRcbiAgICAgIC8vIHNob3VsZCBub3QgYXBwZWFyIHVuZW5jb2RlZCBpbiBhIHNlZ21lbnQgaXRzZWxmLlxuICAgICAgLy8gU2VlIGFsc28gdGhlIG5vdGUgYWJvdmUgYWJvdXQgUkZDMzk4NiBhbmQgY2FwaXRhbGFsaXplZCBoZXggZGlnaXRzLlxuICAgICAgZW5jb2RlOiB7XG4gICAgICAgIGV4cHJlc3Npb246IC8lKDIxfDI0fDI3fDI4fDI5fDJBfDJCfDJDfDNCfDNEfDQwKS9pZyxcbiAgICAgICAgbWFwOiB7XG4gICAgICAgICAgJyUyMSc6ICchJyxcbiAgICAgICAgICAnJTI0JzogJyQnLFxuICAgICAgICAgICclMjcnOiAnXFwnJyxcbiAgICAgICAgICAnJTI4JzogJygnLFxuICAgICAgICAgICclMjknOiAnKScsXG4gICAgICAgICAgJyUyQSc6ICcqJyxcbiAgICAgICAgICAnJTJCJzogJysnLFxuICAgICAgICAgICclMkMnOiAnLCcsXG4gICAgICAgICAgJyUzQic6ICc7JyxcbiAgICAgICAgICAnJTNEJzogJz0nLFxuICAgICAgICAgICclNDAnOiAnQCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIFRoZXNlIGNoYXJhY3RlcnMgYXJlIHRoZSBjaGFyYWN0ZXJzIGNhbGxlZCBvdXQgYnkgUkZDMjE0MSBhcyBcInJlc2VydmVkXCIgY2hhcmFjdGVycyB0aGF0XG4gICAgICAvLyBzaG91bGQgbmV2ZXIgYXBwZWFyIGluIGEgVVJOLCBwbHVzIHRoZSBjb2xvbiBjaGFyYWN0ZXIgKHNlZSBub3RlIGFib3ZlKS5cbiAgICAgIGRlY29kZToge1xuICAgICAgICBleHByZXNzaW9uOiAvW1xcL1xcPyM6XS9nLFxuICAgICAgICBtYXA6IHtcbiAgICAgICAgICAnLyc6ICclMkYnLFxuICAgICAgICAgICc/JzogJyUzRicsXG4gICAgICAgICAgJyMnOiAnJTIzJyxcbiAgICAgICAgICAnOic6ICclM0EnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIFVSSS5lbmNvZGVRdWVyeSA9IGZ1bmN0aW9uKHN0cmluZywgZXNjYXBlUXVlcnlTcGFjZSkge1xuICAgIHZhciBlc2NhcGVkID0gVVJJLmVuY29kZShzdHJpbmcgKyAnJyk7XG4gICAgaWYgKGVzY2FwZVF1ZXJ5U3BhY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZXNjYXBlUXVlcnlTcGFjZSA9IFVSSS5lc2NhcGVRdWVyeVNwYWNlO1xuICAgIH1cblxuICAgIHJldHVybiBlc2NhcGVRdWVyeVNwYWNlID8gZXNjYXBlZC5yZXBsYWNlKC8lMjAvZywgJysnKSA6IGVzY2FwZWQ7XG4gIH07XG4gIFVSSS5kZWNvZGVRdWVyeSA9IGZ1bmN0aW9uKHN0cmluZywgZXNjYXBlUXVlcnlTcGFjZSkge1xuICAgIHN0cmluZyArPSAnJztcbiAgICBpZiAoZXNjYXBlUXVlcnlTcGFjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBlc2NhcGVRdWVyeVNwYWNlID0gVVJJLmVzY2FwZVF1ZXJ5U3BhY2U7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBVUkkuZGVjb2RlKGVzY2FwZVF1ZXJ5U3BhY2UgPyBzdHJpbmcucmVwbGFjZSgvXFwrL2csICclMjAnKSA6IHN0cmluZyk7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICAvLyB3ZSdyZSBub3QgZ29pbmcgdG8gbWVzcyB3aXRoIHdlaXJkIGVuY29kaW5ncyxcbiAgICAgIC8vIGdpdmUgdXAgYW5kIHJldHVybiB0aGUgdW5kZWNvZGVkIG9yaWdpbmFsIHN0cmluZ1xuICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvVVJJLmpzL2lzc3Vlcy84N1xuICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvVVJJLmpzL2lzc3Vlcy85MlxuICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG4gIH07XG4gIC8vIGdlbmVyYXRlIGVuY29kZS9kZWNvZGUgcGF0aCBmdW5jdGlvbnNcbiAgdmFyIF9wYXJ0cyA9IHsnZW5jb2RlJzonZW5jb2RlJywgJ2RlY29kZSc6J2RlY29kZSd9O1xuICB2YXIgX3BhcnQ7XG4gIHZhciBnZW5lcmF0ZUFjY2Vzc29yID0gZnVuY3Rpb24oX2dyb3VwLCBfcGFydCkge1xuICAgIHJldHVybiBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBVUklbX3BhcnRdKHN0cmluZyArICcnKS5yZXBsYWNlKFVSSS5jaGFyYWN0ZXJzW19ncm91cF1bX3BhcnRdLmV4cHJlc3Npb24sIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICByZXR1cm4gVVJJLmNoYXJhY3RlcnNbX2dyb3VwXVtfcGFydF0ubWFwW2NdO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gd2UncmUgbm90IGdvaW5nIHRvIG1lc3Mgd2l0aCB3ZWlyZCBlbmNvZGluZ3MsXG4gICAgICAgIC8vIGdpdmUgdXAgYW5kIHJldHVybiB0aGUgdW5kZWNvZGVkIG9yaWdpbmFsIHN0cmluZ1xuICAgICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9VUkkuanMvaXNzdWVzLzg3XG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL1VSSS5qcy9pc3N1ZXMvOTJcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4gIGZvciAoX3BhcnQgaW4gX3BhcnRzKSB7XG4gICAgVVJJW19wYXJ0ICsgJ1BhdGhTZWdtZW50J10gPSBnZW5lcmF0ZUFjY2Vzc29yKCdwYXRobmFtZScsIF9wYXJ0c1tfcGFydF0pO1xuICAgIFVSSVtfcGFydCArICdVcm5QYXRoU2VnbWVudCddID0gZ2VuZXJhdGVBY2Nlc3NvcigndXJucGF0aCcsIF9wYXJ0c1tfcGFydF0pO1xuICB9XG5cbiAgdmFyIGdlbmVyYXRlU2VnbWVudGVkUGF0aEZ1bmN0aW9uID0gZnVuY3Rpb24oX3NlcCwgX2NvZGluZ0Z1bmNOYW1lLCBfaW5uZXJDb2RpbmdGdW5jTmFtZSkge1xuICAgIHJldHVybiBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgIC8vIFdoeSBwYXNzIGluIG5hbWVzIG9mIGZ1bmN0aW9ucywgcmF0aGVyIHRoYW4gdGhlIGZ1bmN0aW9uIG9iamVjdHMgdGhlbXNlbHZlcz8gVGhlXG4gICAgICAvLyBkZWZpbml0aW9ucyBvZiBzb21lIGZ1bmN0aW9ucyAoYnV0IGluIHBhcnRpY3VsYXIsIFVSSS5kZWNvZGUpIHdpbGwgb2NjYXNpb25hbGx5IGNoYW5nZSBkdWVcbiAgICAgIC8vIHRvIFVSSS5qcyBoYXZpbmcgSVNPODg1OSBhbmQgVW5pY29kZSBtb2Rlcy4gUGFzc2luZyBpbiB0aGUgbmFtZSBhbmQgZ2V0dGluZyBpdCB3aWxsIGVuc3VyZVxuICAgICAgLy8gdGhhdCB0aGUgZnVuY3Rpb25zIHdlIHVzZSBoZXJlIGFyZSBcImZyZXNoXCIuXG4gICAgICB2YXIgYWN0dWFsQ29kaW5nRnVuYztcbiAgICAgIGlmICghX2lubmVyQ29kaW5nRnVuY05hbWUpIHtcbiAgICAgICAgYWN0dWFsQ29kaW5nRnVuYyA9IFVSSVtfY29kaW5nRnVuY05hbWVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0dWFsQ29kaW5nRnVuYyA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICAgIHJldHVybiBVUklbX2NvZGluZ0Z1bmNOYW1lXShVUklbX2lubmVyQ29kaW5nRnVuY05hbWVdKHN0cmluZykpO1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB2YXIgc2VnbWVudHMgPSAoc3RyaW5nICsgJycpLnNwbGl0KF9zZXApO1xuXG4gICAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gc2VnbWVudHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgc2VnbWVudHNbaV0gPSBhY3R1YWxDb2RpbmdGdW5jKHNlZ21lbnRzW2ldKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlZ21lbnRzLmpvaW4oX3NlcCk7XG4gICAgfTtcbiAgfTtcblxuICAvLyBUaGlzIHRha2VzIHBsYWNlIG91dHNpZGUgdGhlIGFib3ZlIGxvb3AgYmVjYXVzZSB3ZSBkb24ndCB3YW50LCBlLmcuLCBlbmNvZGVVcm5QYXRoIGZ1bmN0aW9ucy5cbiAgVVJJLmRlY29kZVBhdGggPSBnZW5lcmF0ZVNlZ21lbnRlZFBhdGhGdW5jdGlvbignLycsICdkZWNvZGVQYXRoU2VnbWVudCcpO1xuICBVUkkuZGVjb2RlVXJuUGF0aCA9IGdlbmVyYXRlU2VnbWVudGVkUGF0aEZ1bmN0aW9uKCc6JywgJ2RlY29kZVVyblBhdGhTZWdtZW50Jyk7XG4gIFVSSS5yZWNvZGVQYXRoID0gZ2VuZXJhdGVTZWdtZW50ZWRQYXRoRnVuY3Rpb24oJy8nLCAnZW5jb2RlUGF0aFNlZ21lbnQnLCAnZGVjb2RlJyk7XG4gIFVSSS5yZWNvZGVVcm5QYXRoID0gZ2VuZXJhdGVTZWdtZW50ZWRQYXRoRnVuY3Rpb24oJzonLCAnZW5jb2RlVXJuUGF0aFNlZ21lbnQnLCAnZGVjb2RlJyk7XG5cbiAgVVJJLmVuY29kZVJlc2VydmVkID0gZ2VuZXJhdGVBY2Nlc3NvcigncmVzZXJ2ZWQnLCAnZW5jb2RlJyk7XG5cbiAgVVJJLnBhcnNlID0gZnVuY3Rpb24oc3RyaW5nLCBwYXJ0cykge1xuICAgIHZhciBwb3M7XG4gICAgaWYgKCFwYXJ0cykge1xuICAgICAgcGFydHMgPSB7XG4gICAgICAgIHByZXZlbnRJbnZhbGlkSG9zdG5hbWU6IFVSSS5wcmV2ZW50SW52YWxpZEhvc3RuYW1lXG4gICAgICB9O1xuICAgIH1cbiAgICAvLyBbcHJvdG9jb2xcIjovL1wiW3VzZXJuYW1lW1wiOlwicGFzc3dvcmRdXCJAXCJdaG9zdG5hbWVbXCI6XCJwb3J0XVwiL1wiP11bcGF0aF1bXCI/XCJxdWVyeXN0cmluZ11bXCIjXCJmcmFnbWVudF1cblxuICAgIC8vIGV4dHJhY3QgZnJhZ21lbnRcbiAgICBwb3MgPSBzdHJpbmcuaW5kZXhPZignIycpO1xuICAgIGlmIChwb3MgPiAtMSkge1xuICAgICAgLy8gZXNjYXBpbmc/XG4gICAgICBwYXJ0cy5mcmFnbWVudCA9IHN0cmluZy5zdWJzdHJpbmcocG9zICsgMSkgfHwgbnVsbDtcbiAgICAgIHN0cmluZyA9IHN0cmluZy5zdWJzdHJpbmcoMCwgcG9zKTtcbiAgICB9XG5cbiAgICAvLyBleHRyYWN0IHF1ZXJ5XG4gICAgcG9zID0gc3RyaW5nLmluZGV4T2YoJz8nKTtcbiAgICBpZiAocG9zID4gLTEpIHtcbiAgICAgIC8vIGVzY2FwaW5nP1xuICAgICAgcGFydHMucXVlcnkgPSBzdHJpbmcuc3Vic3RyaW5nKHBvcyArIDEpIHx8IG51bGw7XG4gICAgICBzdHJpbmcgPSBzdHJpbmcuc3Vic3RyaW5nKDAsIHBvcyk7XG4gICAgfVxuXG4gICAgLy8gZXh0cmFjdCBwcm90b2NvbFxuICAgIGlmIChzdHJpbmcuc3Vic3RyaW5nKDAsIDIpID09PSAnLy8nKSB7XG4gICAgICAvLyByZWxhdGl2ZS1zY2hlbWVcbiAgICAgIHBhcnRzLnByb3RvY29sID0gbnVsbDtcbiAgICAgIHN0cmluZyA9IHN0cmluZy5zdWJzdHJpbmcoMik7XG4gICAgICAvLyBleHRyYWN0IFwidXNlcjpwYXNzQGhvc3Q6cG9ydFwiXG4gICAgICBzdHJpbmcgPSBVUkkucGFyc2VBdXRob3JpdHkoc3RyaW5nLCBwYXJ0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcyA9IHN0cmluZy5pbmRleE9mKCc6Jyk7XG4gICAgICBpZiAocG9zID4gLTEpIHtcbiAgICAgICAgcGFydHMucHJvdG9jb2wgPSBzdHJpbmcuc3Vic3RyaW5nKDAsIHBvcykgfHwgbnVsbDtcbiAgICAgICAgaWYgKHBhcnRzLnByb3RvY29sICYmICFwYXJ0cy5wcm90b2NvbC5tYXRjaChVUkkucHJvdG9jb2xfZXhwcmVzc2lvbikpIHtcbiAgICAgICAgICAvLyA6IG1heSBiZSB3aXRoaW4gdGhlIHBhdGhcbiAgICAgICAgICBwYXJ0cy5wcm90b2NvbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmIChzdHJpbmcuc3Vic3RyaW5nKHBvcyArIDEsIHBvcyArIDMpID09PSAnLy8nKSB7XG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnN1YnN0cmluZyhwb3MgKyAzKTtcblxuICAgICAgICAgIC8vIGV4dHJhY3QgXCJ1c2VyOnBhc3NAaG9zdDpwb3J0XCJcbiAgICAgICAgICBzdHJpbmcgPSBVUkkucGFyc2VBdXRob3JpdHkoc3RyaW5nLCBwYXJ0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnN1YnN0cmluZyhwb3MgKyAxKTtcbiAgICAgICAgICBwYXJ0cy51cm4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2hhdCdzIGxlZnQgbXVzdCBiZSB0aGUgcGF0aFxuICAgIHBhcnRzLnBhdGggPSBzdHJpbmc7XG5cbiAgICAvLyBhbmQgd2UncmUgZG9uZVxuICAgIHJldHVybiBwYXJ0cztcbiAgfTtcbiAgVVJJLnBhcnNlSG9zdCA9IGZ1bmN0aW9uKHN0cmluZywgcGFydHMpIHtcbiAgICBpZiAoIXN0cmluZykge1xuICAgICAgc3RyaW5nID0gJyc7XG4gICAgfVxuXG4gICAgLy8gQ29weSBjaHJvbWUsIElFLCBvcGVyYSBiYWNrc2xhc2gtaGFuZGxpbmcgYmVoYXZpb3IuXG4gICAgLy8gQmFjayBzbGFzaGVzIGJlZm9yZSB0aGUgcXVlcnkgc3RyaW5nIGdldCBjb252ZXJ0ZWQgdG8gZm9yd2FyZCBzbGFzaGVzXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vam95ZW50L25vZGUvYmxvYi8zODZmZDI0ZjQ5YjBlOWQxYThhMDc2NTkyYTQwNDE2OGZhZWVjYzM0L2xpYi91cmwuanMjTDExNS1MMTI0XG4gICAgLy8gU2VlOiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MjU5MTZcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL1VSSS5qcy9wdWxsLzIzM1xuICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAvLyBleHRyYWN0IGhvc3Q6cG9ydFxuICAgIHZhciBwb3MgPSBzdHJpbmcuaW5kZXhPZignLycpO1xuICAgIHZhciBicmFja2V0UG9zO1xuICAgIHZhciB0O1xuXG4gICAgaWYgKHBvcyA9PT0gLTEpIHtcbiAgICAgIHBvcyA9IHN0cmluZy5sZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKHN0cmluZy5jaGFyQXQoMCkgPT09ICdbJykge1xuICAgICAgLy8gSVB2NiBob3N0IC0gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi02bWFuLXRleHQtYWRkci1yZXByZXNlbnRhdGlvbi0wNCNzZWN0aW9uLTZcbiAgICAgIC8vIEkgY2xhaW0gbW9zdCBjbGllbnQgc29mdHdhcmUgYnJlYWtzIG9uIElQdjYgYW55d2F5cy4gVG8gc2ltcGxpZnkgdGhpbmdzLCBVUkkgb25seSBhY2NlcHRzXG4gICAgICAvLyBJUHY2K3BvcnQgaW4gdGhlIGZvcm1hdCBbMjAwMTpkYjg6OjFdOjgwIChmb3IgdGhlIHRpbWUgYmVpbmcpXG4gICAgICBicmFja2V0UG9zID0gc3RyaW5nLmluZGV4T2YoJ10nKTtcbiAgICAgIHBhcnRzLmhvc3RuYW1lID0gc3RyaW5nLnN1YnN0cmluZygxLCBicmFja2V0UG9zKSB8fCBudWxsO1xuICAgICAgcGFydHMucG9ydCA9IHN0cmluZy5zdWJzdHJpbmcoYnJhY2tldFBvcyArIDIsIHBvcykgfHwgbnVsbDtcbiAgICAgIGlmIChwYXJ0cy5wb3J0ID09PSAnLycpIHtcbiAgICAgICAgcGFydHMucG9ydCA9IG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBmaXJzdENvbG9uID0gc3RyaW5nLmluZGV4T2YoJzonKTtcbiAgICAgIHZhciBmaXJzdFNsYXNoID0gc3RyaW5nLmluZGV4T2YoJy8nKTtcbiAgICAgIHZhciBuZXh0Q29sb24gPSBzdHJpbmcuaW5kZXhPZignOicsIGZpcnN0Q29sb24gKyAxKTtcbiAgICAgIGlmIChuZXh0Q29sb24gIT09IC0xICYmIChmaXJzdFNsYXNoID09PSAtMSB8fCBuZXh0Q29sb24gPCBmaXJzdFNsYXNoKSkge1xuICAgICAgICAvLyBJUHY2IGhvc3QgY29udGFpbnMgbXVsdGlwbGUgY29sb25zIC0gYnV0IG5vIHBvcnRcbiAgICAgICAgLy8gdGhpcyBub3RhdGlvbiBpcyBhY3R1YWxseSBub3QgYWxsb3dlZCBieSBSRkMgMzk4NiwgYnV0IHdlJ3JlIGEgbGliZXJhbCBwYXJzZXJcbiAgICAgICAgcGFydHMuaG9zdG5hbWUgPSBzdHJpbmcuc3Vic3RyaW5nKDAsIHBvcykgfHwgbnVsbDtcbiAgICAgICAgcGFydHMucG9ydCA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0ID0gc3RyaW5nLnN1YnN0cmluZygwLCBwb3MpLnNwbGl0KCc6Jyk7XG4gICAgICAgIHBhcnRzLmhvc3RuYW1lID0gdFswXSB8fCBudWxsO1xuICAgICAgICBwYXJ0cy5wb3J0ID0gdFsxXSB8fCBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJ0cy5ob3N0bmFtZSAmJiBzdHJpbmcuc3Vic3RyaW5nKHBvcykuY2hhckF0KDApICE9PSAnLycpIHtcbiAgICAgIHBvcysrO1xuICAgICAgc3RyaW5nID0gJy8nICsgc3RyaW5nO1xuICAgIH1cblxuICAgIGlmIChwYXJ0cy5wcmV2ZW50SW52YWxpZEhvc3RuYW1lKSB7XG4gICAgICBVUkkuZW5zdXJlVmFsaWRIb3N0bmFtZShwYXJ0cy5ob3N0bmFtZSwgcGFydHMucHJvdG9jb2wpO1xuICAgIH1cblxuICAgIGlmIChwYXJ0cy5wb3J0KSB7XG4gICAgICBVUkkuZW5zdXJlVmFsaWRQb3J0KHBhcnRzLnBvcnQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKHBvcykgfHwgJy8nO1xuICB9O1xuICBVUkkucGFyc2VBdXRob3JpdHkgPSBmdW5jdGlvbihzdHJpbmcsIHBhcnRzKSB7XG4gICAgc3RyaW5nID0gVVJJLnBhcnNlVXNlcmluZm8oc3RyaW5nLCBwYXJ0cyk7XG4gICAgcmV0dXJuIFVSSS5wYXJzZUhvc3Qoc3RyaW5nLCBwYXJ0cyk7XG4gIH07XG4gIFVSSS5wYXJzZVVzZXJpbmZvID0gZnVuY3Rpb24oc3RyaW5nLCBwYXJ0cykge1xuICAgIC8vIGV4dHJhY3QgdXNlcm5hbWU6cGFzc3dvcmRcbiAgICB2YXIgZmlyc3RTbGFzaCA9IHN0cmluZy5pbmRleE9mKCcvJyk7XG4gICAgdmFyIHBvcyA9IHN0cmluZy5sYXN0SW5kZXhPZignQCcsIGZpcnN0U2xhc2ggPiAtMSA/IGZpcnN0U2xhc2ggOiBzdHJpbmcubGVuZ3RoIC0gMSk7XG4gICAgdmFyIHQ7XG5cbiAgICAvLyBhdXRob3JpdHlAIG11c3QgY29tZSBiZWZvcmUgL3BhdGhcbiAgICBpZiAocG9zID4gLTEgJiYgKGZpcnN0U2xhc2ggPT09IC0xIHx8IHBvcyA8IGZpcnN0U2xhc2gpKSB7XG4gICAgICB0ID0gc3RyaW5nLnN1YnN0cmluZygwLCBwb3MpLnNwbGl0KCc6Jyk7XG4gICAgICBwYXJ0cy51c2VybmFtZSA9IHRbMF0gPyBVUkkuZGVjb2RlKHRbMF0pIDogbnVsbDtcbiAgICAgIHQuc2hpZnQoKTtcbiAgICAgIHBhcnRzLnBhc3N3b3JkID0gdFswXSA/IFVSSS5kZWNvZGUodC5qb2luKCc6JykpIDogbnVsbDtcbiAgICAgIHN0cmluZyA9IHN0cmluZy5zdWJzdHJpbmcocG9zICsgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnRzLnVzZXJuYW1lID0gbnVsbDtcbiAgICAgIHBhcnRzLnBhc3N3b3JkID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9O1xuICBVUkkucGFyc2VRdWVyeSA9IGZ1bmN0aW9uKHN0cmluZywgZXNjYXBlUXVlcnlTcGFjZSkge1xuICAgIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgLy8gdGhyb3cgb3V0IHRoZSBmdW5reSBidXNpbmVzcyAtIFwiP1wiW25hbWVcIj1cInZhbHVlXCImXCJdK1xuICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC8mKy9nLCAnJicpLnJlcGxhY2UoL15cXD8qJip8JiskL2csICcnKTtcblxuICAgIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgdmFyIGl0ZW1zID0ge307XG4gICAgdmFyIHNwbGl0cyA9IHN0cmluZy5zcGxpdCgnJicpO1xuICAgIHZhciBsZW5ndGggPSBzcGxpdHMubGVuZ3RoO1xuICAgIHZhciB2LCBuYW1lLCB2YWx1ZTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHYgPSBzcGxpdHNbaV0uc3BsaXQoJz0nKTtcbiAgICAgIG5hbWUgPSBVUkkuZGVjb2RlUXVlcnkodi5zaGlmdCgpLCBlc2NhcGVRdWVyeVNwYWNlKTtcbiAgICAgIC8vIG5vIFwiPVwiIGlzIG51bGwgYWNjb3JkaW5nIHRvIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy91cmwvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjY29sbGVjdC11cmwtcGFyYW1ldGVyc1xuICAgICAgdmFsdWUgPSB2Lmxlbmd0aCA/IFVSSS5kZWNvZGVRdWVyeSh2LmpvaW4oJz0nKSwgZXNjYXBlUXVlcnlTcGFjZSkgOiBudWxsO1xuXG4gICAgICBpZiAoaGFzT3duLmNhbGwoaXRlbXMsIG5hbWUpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbXNbbmFtZV0gPT09ICdzdHJpbmcnIHx8IGl0ZW1zW25hbWVdID09PSBudWxsKSB7XG4gICAgICAgICAgaXRlbXNbbmFtZV0gPSBbaXRlbXNbbmFtZV1dO1xuICAgICAgICB9XG5cbiAgICAgICAgaXRlbXNbbmFtZV0ucHVzaCh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfTtcblxuICBVUkkuYnVpbGQgPSBmdW5jdGlvbihwYXJ0cykge1xuICAgIHZhciB0ID0gJyc7XG5cbiAgICBpZiAocGFydHMucHJvdG9jb2wpIHtcbiAgICAgIHQgKz0gcGFydHMucHJvdG9jb2wgKyAnOic7XG4gICAgfVxuXG4gICAgaWYgKCFwYXJ0cy51cm4gJiYgKHQgfHwgcGFydHMuaG9zdG5hbWUpKSB7XG4gICAgICB0ICs9ICcvLyc7XG4gICAgfVxuXG4gICAgdCArPSAoVVJJLmJ1aWxkQXV0aG9yaXR5KHBhcnRzKSB8fCAnJyk7XG5cbiAgICBpZiAodHlwZW9mIHBhcnRzLnBhdGggPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAocGFydHMucGF0aC5jaGFyQXQoMCkgIT09ICcvJyAmJiB0eXBlb2YgcGFydHMuaG9zdG5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHQgKz0gJy8nO1xuICAgICAgfVxuXG4gICAgICB0ICs9IHBhcnRzLnBhdGg7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBwYXJ0cy5xdWVyeSA9PT0gJ3N0cmluZycgJiYgcGFydHMucXVlcnkpIHtcbiAgICAgIHQgKz0gJz8nICsgcGFydHMucXVlcnk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBwYXJ0cy5mcmFnbWVudCA9PT0gJ3N0cmluZycgJiYgcGFydHMuZnJhZ21lbnQpIHtcbiAgICAgIHQgKz0gJyMnICsgcGFydHMuZnJhZ21lbnQ7XG4gICAgfVxuICAgIHJldHVybiB0O1xuICB9O1xuICBVUkkuYnVpbGRIb3N0ID0gZnVuY3Rpb24ocGFydHMpIHtcbiAgICB2YXIgdCA9ICcnO1xuXG4gICAgaWYgKCFwYXJ0cy5ob3N0bmFtZSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0gZWxzZSBpZiAoVVJJLmlwNl9leHByZXNzaW9uLnRlc3QocGFydHMuaG9zdG5hbWUpKSB7XG4gICAgICB0ICs9ICdbJyArIHBhcnRzLmhvc3RuYW1lICsgJ10nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0ICs9IHBhcnRzLmhvc3RuYW1lO1xuICAgIH1cblxuICAgIGlmIChwYXJ0cy5wb3J0KSB7XG4gICAgICB0ICs9ICc6JyArIHBhcnRzLnBvcnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHQ7XG4gIH07XG4gIFVSSS5idWlsZEF1dGhvcml0eSA9IGZ1bmN0aW9uKHBhcnRzKSB7XG4gICAgcmV0dXJuIFVSSS5idWlsZFVzZXJpbmZvKHBhcnRzKSArIFVSSS5idWlsZEhvc3QocGFydHMpO1xuICB9O1xuICBVUkkuYnVpbGRVc2VyaW5mbyA9IGZ1bmN0aW9uKHBhcnRzKSB7XG4gICAgdmFyIHQgPSAnJztcblxuICAgIGlmIChwYXJ0cy51c2VybmFtZSkge1xuICAgICAgdCArPSBVUkkuZW5jb2RlKHBhcnRzLnVzZXJuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAocGFydHMucGFzc3dvcmQpIHtcbiAgICAgIHQgKz0gJzonICsgVVJJLmVuY29kZShwYXJ0cy5wYXNzd29yZCk7XG4gICAgfVxuXG4gICAgaWYgKHQpIHtcbiAgICAgIHQgKz0gJ0AnO1xuICAgIH1cblxuICAgIHJldHVybiB0O1xuICB9O1xuICBVUkkuYnVpbGRRdWVyeSA9IGZ1bmN0aW9uKGRhdGEsIGR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycywgZXNjYXBlUXVlcnlTcGFjZSkge1xuICAgIC8vIGFjY29yZGluZyB0byBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2IG9yIGh0dHA6Ly9sYWJzLmFwYWNoZS5vcmcvd2ViYXJjaC91cmkvcmZjL3JmYzM5ODYuaHRtbFxuICAgIC8vIGJlaW5nIMK7LS5ffiEkJicoKSorLDs9OkAvP8KrICVIRVggYW5kIGFsbnVtIGFyZSBhbGxvd2VkXG4gICAgLy8gdGhlIFJGQyBleHBsaWNpdGx5IHN0YXRlcyA/L2ZvbyBiZWluZyBhIHZhbGlkIHVzZSBjYXNlLCBubyBtZW50aW9uIG9mIHBhcmFtZXRlciBzeW50YXghXG4gICAgLy8gVVJJLmpzIHRyZWF0cyB0aGUgcXVlcnkgc3RyaW5nIGFzIGJlaW5nIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICAgIC8vIHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ludGVyYWN0L2Zvcm1zLmh0bWwjZm9ybS1jb250ZW50LXR5cGVcblxuICAgIHZhciB0ID0gJyc7XG4gICAgdmFyIHVuaXF1ZSwga2V5LCBpLCBsZW5ndGg7XG4gICAgZm9yIChrZXkgaW4gZGF0YSkge1xuICAgICAgaWYgKGhhc093bi5jYWxsKGRhdGEsIGtleSkgJiYga2V5KSB7XG4gICAgICAgIGlmIChpc0FycmF5KGRhdGFba2V5XSkpIHtcbiAgICAgICAgICB1bmlxdWUgPSB7fTtcbiAgICAgICAgICBmb3IgKGkgPSAwLCBsZW5ndGggPSBkYXRhW2tleV0ubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChkYXRhW2tleV1baV0gIT09IHVuZGVmaW5lZCAmJiB1bmlxdWVbZGF0YVtrZXldW2ldICsgJyddID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgdCArPSAnJicgKyBVUkkuYnVpbGRRdWVyeVBhcmFtZXRlcihrZXksIGRhdGFba2V5XVtpXSwgZXNjYXBlUXVlcnlTcGFjZSk7XG4gICAgICAgICAgICAgIGlmIChkdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnMgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICB1bmlxdWVbZGF0YVtrZXldW2ldICsgJyddID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChkYXRhW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHQgKz0gJyYnICsgVVJJLmJ1aWxkUXVlcnlQYXJhbWV0ZXIoa2V5LCBkYXRhW2tleV0sIGVzY2FwZVF1ZXJ5U3BhY2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHQuc3Vic3RyaW5nKDEpO1xuICB9O1xuICBVUkkuYnVpbGRRdWVyeVBhcmFtZXRlciA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBlc2NhcGVRdWVyeVNwYWNlKSB7XG4gICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9pbnRlcmFjdC9mb3Jtcy5odG1sI2Zvcm0tY29udGVudC10eXBlIC0tIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICAgIC8vIGRvbid0IGFwcGVuZCBcIj1cIiBmb3IgbnVsbCB2YWx1ZXMsIGFjY29yZGluZyB0byBodHRwOi8vZHZjcy53My5vcmcvaGcvdXJsL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3VybC1wYXJhbWV0ZXItc2VyaWFsaXphdGlvblxuICAgIHJldHVybiBVUkkuZW5jb2RlUXVlcnkobmFtZSwgZXNjYXBlUXVlcnlTcGFjZSkgKyAodmFsdWUgIT09IG51bGwgPyAnPScgKyBVUkkuZW5jb2RlUXVlcnkodmFsdWUsIGVzY2FwZVF1ZXJ5U3BhY2UpIDogJycpO1xuICB9O1xuXG4gIFVSSS5hZGRRdWVyeSA9IGZ1bmN0aW9uKGRhdGEsIG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBuYW1lID09PSAnb2JqZWN0Jykge1xuICAgICAgZm9yICh2YXIga2V5IGluIG5hbWUpIHtcbiAgICAgICAgaWYgKGhhc093bi5jYWxsKG5hbWUsIGtleSkpIHtcbiAgICAgICAgICBVUkkuYWRkUXVlcnkoZGF0YSwga2V5LCBuYW1lW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChkYXRhW25hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGF0YVtuYW1lXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhW25hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICBkYXRhW25hbWVdID0gW2RhdGFbbmFtZV1dO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlID0gW3ZhbHVlXTtcbiAgICAgIH1cblxuICAgICAgZGF0YVtuYW1lXSA9IChkYXRhW25hbWVdIHx8IFtdKS5jb25jYXQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVUkkuYWRkUXVlcnkoKSBhY2NlcHRzIGFuIG9iamVjdCwgc3RyaW5nIGFzIHRoZSBuYW1lIHBhcmFtZXRlcicpO1xuICAgIH1cbiAgfTtcblxuICBVUkkuc2V0UXVlcnkgPSBmdW5jdGlvbihkYXRhLCBuYW1lLCB2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAodmFyIGtleSBpbiBuYW1lKSB7XG4gICAgICAgIGlmIChoYXNPd24uY2FsbChuYW1lLCBrZXkpKSB7XG4gICAgICAgICAgVVJJLnNldFF1ZXJ5KGRhdGEsIGtleSwgbmFtZVtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkYXRhW25hbWVdID0gdmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVVJJLnNldFF1ZXJ5KCkgYWNjZXB0cyBhbiBvYmplY3QsIHN0cmluZyBhcyB0aGUgbmFtZSBwYXJhbWV0ZXInKTtcbiAgICB9XG4gIH07XG5cbiAgVVJJLnJlbW92ZVF1ZXJ5ID0gZnVuY3Rpb24oZGF0YSwgbmFtZSwgdmFsdWUpIHtcbiAgICB2YXIgaSwgbGVuZ3RoLCBrZXk7XG5cbiAgICBpZiAoaXNBcnJheShuYW1lKSkge1xuICAgICAgZm9yIChpID0gMCwgbGVuZ3RoID0gbmFtZS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICBkYXRhW25hbWVbaV1dID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZ2V0VHlwZShuYW1lKSA9PT0gJ1JlZ0V4cCcpIHtcbiAgICAgIGZvciAoa2V5IGluIGRhdGEpIHtcbiAgICAgICAgaWYgKG5hbWUudGVzdChrZXkpKSB7XG4gICAgICAgICAgZGF0YVtrZXldID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAoa2V5IGluIG5hbWUpIHtcbiAgICAgICAgaWYgKGhhc093bi5jYWxsKG5hbWUsIGtleSkpIHtcbiAgICAgICAgICBVUkkucmVtb3ZlUXVlcnkoZGF0YSwga2V5LCBuYW1lW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChnZXRUeXBlKHZhbHVlKSA9PT0gJ1JlZ0V4cCcpIHtcbiAgICAgICAgICBpZiAoIWlzQXJyYXkoZGF0YVtuYW1lXSkgJiYgdmFsdWUudGVzdChkYXRhW25hbWVdKSkge1xuICAgICAgICAgICAgZGF0YVtuYW1lXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0YVtuYW1lXSA9IGZpbHRlckFycmF5VmFsdWVzKGRhdGFbbmFtZV0sIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YVtuYW1lXSA9PT0gU3RyaW5nKHZhbHVlKSAmJiAoIWlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLmxlbmd0aCA9PT0gMSkpIHtcbiAgICAgICAgICBkYXRhW25hbWVdID0gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgaWYgKGlzQXJyYXkoZGF0YVtuYW1lXSkpIHtcbiAgICAgICAgICBkYXRhW25hbWVdID0gZmlsdGVyQXJyYXlWYWx1ZXMoZGF0YVtuYW1lXSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhW25hbWVdID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVUkkucmVtb3ZlUXVlcnkoKSBhY2NlcHRzIGFuIG9iamVjdCwgc3RyaW5nLCBSZWdFeHAgYXMgdGhlIGZpcnN0IHBhcmFtZXRlcicpO1xuICAgIH1cbiAgfTtcbiAgVVJJLmhhc1F1ZXJ5ID0gZnVuY3Rpb24oZGF0YSwgbmFtZSwgdmFsdWUsIHdpdGhpbkFycmF5KSB7XG4gICAgc3dpdGNoIChnZXRUeXBlKG5hbWUpKSB7XG4gICAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgICAvLyBOb3RoaW5nIHRvIGRvIGhlcmVcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ1JlZ0V4cCc6XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgaWYgKGhhc093bi5jYWxsKGRhdGEsIGtleSkpIHtcbiAgICAgICAgICAgIGlmIChuYW1lLnRlc3Qoa2V5KSAmJiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCBVUkkuaGFzUXVlcnkoZGF0YSwga2V5LCB2YWx1ZSkpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgY2FzZSAnT2JqZWN0JzpcbiAgICAgICAgZm9yICh2YXIgX2tleSBpbiBuYW1lKSB7XG4gICAgICAgICAgaWYgKGhhc093bi5jYWxsKG5hbWUsIF9rZXkpKSB7XG4gICAgICAgICAgICBpZiAoIVVSSS5oYXNRdWVyeShkYXRhLCBfa2V5LCBuYW1lW19rZXldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1VSSS5oYXNRdWVyeSgpIGFjY2VwdHMgYSBzdHJpbmcsIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBvYmplY3QgYXMgdGhlIG5hbWUgcGFyYW1ldGVyJyk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChnZXRUeXBlKHZhbHVlKSkge1xuICAgICAgY2FzZSAnVW5kZWZpbmVkJzpcbiAgICAgICAgLy8gdHJ1ZSBpZiBleGlzdHMgKGJ1dCBtYXkgYmUgZW1wdHkpXG4gICAgICAgIHJldHVybiBuYW1lIGluIGRhdGE7IC8vIGRhdGFbbmFtZV0gIT09IHVuZGVmaW5lZDtcblxuICAgICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICAgIC8vIHRydWUgaWYgZXhpc3RzIGFuZCBub24tZW1wdHlcbiAgICAgICAgdmFyIF9ib29seSA9IEJvb2xlYW4oaXNBcnJheShkYXRhW25hbWVdKSA/IGRhdGFbbmFtZV0ubGVuZ3RoIDogZGF0YVtuYW1lXSk7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gX2Jvb2x5O1xuXG4gICAgICBjYXNlICdGdW5jdGlvbic6XG4gICAgICAgIC8vIGFsbG93IGNvbXBsZXggY29tcGFyaXNvblxuICAgICAgICByZXR1cm4gISF2YWx1ZShkYXRhW25hbWVdLCBuYW1lLCBkYXRhKTtcblxuICAgICAgY2FzZSAnQXJyYXknOlxuICAgICAgICBpZiAoIWlzQXJyYXkoZGF0YVtuYW1lXSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb3AgPSB3aXRoaW5BcnJheSA/IGFycmF5Q29udGFpbnMgOiBhcnJheXNFcXVhbDtcbiAgICAgICAgcmV0dXJuIG9wKGRhdGFbbmFtZV0sIHZhbHVlKTtcblxuICAgICAgY2FzZSAnUmVnRXhwJzpcbiAgICAgICAgaWYgKCFpc0FycmF5KGRhdGFbbmFtZV0pKSB7XG4gICAgICAgICAgcmV0dXJuIEJvb2xlYW4oZGF0YVtuYW1lXSAmJiBkYXRhW25hbWVdLm1hdGNoKHZhbHVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXdpdGhpbkFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFycmF5Q29udGFpbnMoZGF0YVtuYW1lXSwgdmFsdWUpO1xuXG4gICAgICBjYXNlICdOdW1iZXInOlxuICAgICAgICB2YWx1ZSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgIGNhc2UgJ1N0cmluZyc6XG4gICAgICAgIGlmICghaXNBcnJheShkYXRhW25hbWVdKSkge1xuICAgICAgICAgIHJldHVybiBkYXRhW25hbWVdID09PSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghd2l0aGluQXJyYXkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXJyYXlDb250YWlucyhkYXRhW25hbWVdLCB2YWx1ZSk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1VSSS5oYXNRdWVyeSgpIGFjY2VwdHMgdW5kZWZpbmVkLCBib29sZWFuLCBzdHJpbmcsIG51bWJlciwgUmVnRXhwLCBGdW5jdGlvbiBhcyB0aGUgdmFsdWUgcGFyYW1ldGVyJyk7XG4gICAgfVxuICB9O1xuXG5cbiAgVVJJLmpvaW5QYXRocyA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBpbnB1dCA9IFtdO1xuICAgIHZhciBzZWdtZW50cyA9IFtdO1xuICAgIHZhciBub25FbXB0eVNlZ21lbnRzID0gMDtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdXJsID0gbmV3IFVSSShhcmd1bWVudHNbaV0pO1xuICAgICAgaW5wdXQucHVzaCh1cmwpO1xuICAgICAgdmFyIF9zZWdtZW50cyA9IHVybC5zZWdtZW50KCk7XG4gICAgICBmb3IgKHZhciBzID0gMDsgcyA8IF9zZWdtZW50cy5sZW5ndGg7IHMrKykge1xuICAgICAgICBpZiAodHlwZW9mIF9zZWdtZW50c1tzXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBzZWdtZW50cy5wdXNoKF9zZWdtZW50c1tzXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX3NlZ21lbnRzW3NdKSB7XG4gICAgICAgICAgbm9uRW1wdHlTZWdtZW50cysrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFzZWdtZW50cy5sZW5ndGggfHwgIW5vbkVtcHR5U2VnbWVudHMpIHtcbiAgICAgIHJldHVybiBuZXcgVVJJKCcnKTtcbiAgICB9XG5cbiAgICB2YXIgdXJpID0gbmV3IFVSSSgnJykuc2VnbWVudChzZWdtZW50cyk7XG5cbiAgICBpZiAoaW5wdXRbMF0ucGF0aCgpID09PSAnJyB8fCBpbnB1dFswXS5wYXRoKCkuc2xpY2UoMCwgMSkgPT09ICcvJykge1xuICAgICAgdXJpLnBhdGgoJy8nICsgdXJpLnBhdGgoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVyaS5ub3JtYWxpemUoKTtcbiAgfTtcblxuICBVUkkuY29tbW9uUGF0aCA9IGZ1bmN0aW9uKG9uZSwgdHdvKSB7XG4gICAgdmFyIGxlbmd0aCA9IE1hdGgubWluKG9uZS5sZW5ndGgsIHR3by5sZW5ndGgpO1xuICAgIHZhciBwb3M7XG5cbiAgICAvLyBmaW5kIGZpcnN0IG5vbi1tYXRjaGluZyBjaGFyYWN0ZXJcbiAgICBmb3IgKHBvcyA9IDA7IHBvcyA8IGxlbmd0aDsgcG9zKyspIHtcbiAgICAgIGlmIChvbmUuY2hhckF0KHBvcykgIT09IHR3by5jaGFyQXQocG9zKSkge1xuICAgICAgICBwb3MtLTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBvcyA8IDEpIHtcbiAgICAgIHJldHVybiBvbmUuY2hhckF0KDApID09PSB0d28uY2hhckF0KDApICYmIG9uZS5jaGFyQXQoMCkgPT09ICcvJyA/ICcvJyA6ICcnO1xuICAgIH1cblxuICAgIC8vIHJldmVydCB0byBsYXN0IC9cbiAgICBpZiAob25lLmNoYXJBdChwb3MpICE9PSAnLycgfHwgdHdvLmNoYXJBdChwb3MpICE9PSAnLycpIHtcbiAgICAgIHBvcyA9IG9uZS5zdWJzdHJpbmcoMCwgcG9zKS5sYXN0SW5kZXhPZignLycpO1xuICAgIH1cblxuICAgIHJldHVybiBvbmUuc3Vic3RyaW5nKDAsIHBvcyArIDEpO1xuICB9O1xuXG4gIFVSSS53aXRoaW5TdHJpbmcgPSBmdW5jdGlvbihzdHJpbmcsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gICAgb3B0aW9ucyB8fCAob3B0aW9ucyA9IHt9KTtcbiAgICB2YXIgX3N0YXJ0ID0gb3B0aW9ucy5zdGFydCB8fCBVUkkuZmluZFVyaS5zdGFydDtcbiAgICB2YXIgX2VuZCA9IG9wdGlvbnMuZW5kIHx8IFVSSS5maW5kVXJpLmVuZDtcbiAgICB2YXIgX3RyaW0gPSBvcHRpb25zLnRyaW0gfHwgVVJJLmZpbmRVcmkudHJpbTtcbiAgICB2YXIgX3BhcmVucyA9IG9wdGlvbnMucGFyZW5zIHx8IFVSSS5maW5kVXJpLnBhcmVucztcbiAgICB2YXIgX2F0dHJpYnV0ZU9wZW4gPSAvW2EtejAtOS1dPVtcIiddPyQvaTtcblxuICAgIF9zdGFydC5sYXN0SW5kZXggPSAwO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBfc3RhcnQuZXhlYyhzdHJpbmcpO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgdmFyIHN0YXJ0ID0gbWF0Y2guaW5kZXg7XG4gICAgICBpZiAob3B0aW9ucy5pZ25vcmVIdG1sKSB7XG4gICAgICAgIC8vIGF0dHJpYnV0KGU9W1wiJ10/JClcbiAgICAgICAgdmFyIGF0dHJpYnV0ZU9wZW4gPSBzdHJpbmcuc2xpY2UoTWF0aC5tYXgoc3RhcnQgLSAzLCAwKSwgc3RhcnQpO1xuICAgICAgICBpZiAoYXR0cmlidXRlT3BlbiAmJiBfYXR0cmlidXRlT3Blbi50ZXN0KGF0dHJpYnV0ZU9wZW4pKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIGVuZCA9IHN0YXJ0ICsgc3RyaW5nLnNsaWNlKHN0YXJ0KS5zZWFyY2goX2VuZCk7XG4gICAgICB2YXIgc2xpY2UgPSBzdHJpbmcuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gICAgICAvLyBtYWtlIHN1cmUgd2UgaW5jbHVkZSB3ZWxsIGJhbGFuY2VkIHBhcmVuc1xuICAgICAgdmFyIHBhcmVuc0VuZCA9IC0xO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIHBhcmVuc01hdGNoID0gX3BhcmVucy5leGVjKHNsaWNlKTtcbiAgICAgICAgaWYgKCFwYXJlbnNNYXRjaCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHBhcmVuc01hdGNoRW5kID0gcGFyZW5zTWF0Y2guaW5kZXggKyBwYXJlbnNNYXRjaFswXS5sZW5ndGg7XG4gICAgICAgIHBhcmVuc0VuZCA9IE1hdGgubWF4KHBhcmVuc0VuZCwgcGFyZW5zTWF0Y2hFbmQpO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFyZW5zRW5kID4gLTEpIHtcbiAgICAgICAgc2xpY2UgPSBzbGljZS5zbGljZSgwLCBwYXJlbnNFbmQpICsgc2xpY2Uuc2xpY2UocGFyZW5zRW5kKS5yZXBsYWNlKF90cmltLCAnJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzbGljZSA9IHNsaWNlLnJlcGxhY2UoX3RyaW0sICcnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNsaWNlLmxlbmd0aCA8PSBtYXRjaFswXS5sZW5ndGgpIHtcbiAgICAgICAgLy8gdGhlIGV4dHJhY3Qgb25seSBjb250YWlucyB0aGUgc3RhcnRpbmcgbWFya2VyIG9mIGEgVVJJLFxuICAgICAgICAvLyBlLmcuIFwid3d3XCIgb3IgXCJodHRwOi8vXCJcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLmlnbm9yZSAmJiBvcHRpb25zLmlnbm9yZS50ZXN0KHNsaWNlKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgZW5kID0gc3RhcnQgKyBzbGljZS5sZW5ndGg7XG4gICAgICB2YXIgcmVzdWx0ID0gY2FsbGJhY2soc2xpY2UsIHN0YXJ0LCBlbmQsIHN0cmluZyk7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgX3N0YXJ0Lmxhc3RJbmRleCA9IGVuZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHJlc3VsdCA9IFN0cmluZyhyZXN1bHQpO1xuICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKDAsIHN0YXJ0KSArIHJlc3VsdCArIHN0cmluZy5zbGljZShlbmQpO1xuICAgICAgX3N0YXJ0Lmxhc3RJbmRleCA9IHN0YXJ0ICsgcmVzdWx0Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBfc3RhcnQubGFzdEluZGV4ID0gMDtcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9O1xuXG4gIFVSSS5lbnN1cmVWYWxpZEhvc3RuYW1lID0gZnVuY3Rpb24odiwgcHJvdG9jb2wpIHtcbiAgICAvLyBUaGVvcmV0aWNhbGx5IFVSSXMgYWxsb3cgcGVyY2VudC1lbmNvZGluZyBpbiBIb3N0bmFtZXMgKGFjY29yZGluZyB0byBSRkMgMzk4NilcbiAgICAvLyB0aGV5IGFyZSBub3QgcGFydCBvZiBETlMgYW5kIHRoZXJlZm9yZSBpZ25vcmVkIGJ5IFVSSS5qc1xuXG4gICAgdmFyIGhhc0hvc3RuYW1lID0gISF2OyAvLyBub3QgbnVsbCBhbmQgbm90IGFuIGVtcHR5IHN0cmluZ1xuICAgIHZhciBoYXNQcm90b2NvbCA9ICEhcHJvdG9jb2w7XG4gICAgdmFyIHJlamVjdEVtcHR5SG9zdG5hbWUgPSBmYWxzZTtcblxuICAgIGlmIChoYXNQcm90b2NvbCkge1xuICAgICAgcmVqZWN0RW1wdHlIb3N0bmFtZSA9IGFycmF5Q29udGFpbnMoVVJJLmhvc3RQcm90b2NvbHMsIHByb3RvY29sKTtcbiAgICB9XG5cbiAgICBpZiAocmVqZWN0RW1wdHlIb3N0bmFtZSAmJiAhaGFzSG9zdG5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0hvc3RuYW1lIGNhbm5vdCBiZSBlbXB0eSwgaWYgcHJvdG9jb2wgaXMgJyArIHByb3RvY29sKTtcbiAgICB9IGVsc2UgaWYgKHYgJiYgdi5tYXRjaChVUkkuaW52YWxpZF9ob3N0bmFtZV9jaGFyYWN0ZXJzKSkge1xuICAgICAgLy8gdGVzdCBwdW55Y29kZVxuICAgICAgaWYgKCFwdW55Y29kZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSBcIicgKyB2ICsgJ1wiIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li06X10gYW5kIFB1bnljb2RlLmpzIGlzIG5vdCBhdmFpbGFibGUnKTtcbiAgICAgIH1cbiAgICAgIGlmIChwdW55Y29kZS50b0FTQ0lJKHYpLm1hdGNoKFVSSS5pbnZhbGlkX2hvc3RuYW1lX2NoYXJhY3RlcnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0hvc3RuYW1lIFwiJyArIHYgKyAnXCIgY29udGFpbnMgY2hhcmFjdGVycyBvdGhlciB0aGFuIFtBLVowLTkuLTpfXScpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBVUkkuZW5zdXJlVmFsaWRQb3J0ID0gZnVuY3Rpb24gKHYpIHtcbiAgICBpZiAoIXYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcG9ydCA9IE51bWJlcih2KTtcbiAgICBpZiAoaXNJbnRlZ2VyKHBvcnQpICYmIChwb3J0ID4gMCkgJiYgKHBvcnQgPCA2NTUzNikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdQb3J0IFwiJyArIHYgKyAnXCIgaXMgbm90IGEgdmFsaWQgcG9ydCcpO1xuICB9O1xuXG4gIC8vIG5vQ29uZmxpY3RcbiAgVVJJLm5vQ29uZmxpY3QgPSBmdW5jdGlvbihyZW1vdmVBbGwpIHtcbiAgICBpZiAocmVtb3ZlQWxsKSB7XG4gICAgICB2YXIgdW5jb25mbGljdGVkID0ge1xuICAgICAgICBVUkk6IHRoaXMubm9Db25mbGljdCgpXG4gICAgICB9O1xuXG4gICAgICBpZiAocm9vdC5VUklUZW1wbGF0ZSAmJiB0eXBlb2Ygcm9vdC5VUklUZW1wbGF0ZS5ub0NvbmZsaWN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHVuY29uZmxpY3RlZC5VUklUZW1wbGF0ZSA9IHJvb3QuVVJJVGVtcGxhdGUubm9Db25mbGljdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAocm9vdC5JUHY2ICYmIHR5cGVvZiByb290LklQdjYubm9Db25mbGljdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB1bmNvbmZsaWN0ZWQuSVB2NiA9IHJvb3QuSVB2Ni5ub0NvbmZsaWN0KCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyb290LlNlY29uZExldmVsRG9tYWlucyAmJiB0eXBlb2Ygcm9vdC5TZWNvbmRMZXZlbERvbWFpbnMubm9Db25mbGljdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB1bmNvbmZsaWN0ZWQuU2Vjb25kTGV2ZWxEb21haW5zID0gcm9vdC5TZWNvbmRMZXZlbERvbWFpbnMubm9Db25mbGljdCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5jb25mbGljdGVkO1xuICAgIH0gZWxzZSBpZiAocm9vdC5VUkkgPT09IHRoaXMpIHtcbiAgICAgIHJvb3QuVVJJID0gX1VSSTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBwLmJ1aWxkID0gZnVuY3Rpb24oZGVmZXJCdWlsZCkge1xuICAgIGlmIChkZWZlckJ1aWxkID09PSB0cnVlKSB7XG4gICAgICB0aGlzLl9kZWZlcnJlZF9idWlsZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChkZWZlckJ1aWxkID09PSB1bmRlZmluZWQgfHwgdGhpcy5fZGVmZXJyZWRfYnVpbGQpIHtcbiAgICAgIHRoaXMuX3N0cmluZyA9IFVSSS5idWlsZCh0aGlzLl9wYXJ0cyk7XG4gICAgICB0aGlzLl9kZWZlcnJlZF9idWlsZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIHAuY2xvbmUgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFVSSSh0aGlzKTtcbiAgfTtcblxuICBwLnZhbHVlT2YgPSBwLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGQoZmFsc2UpLl9zdHJpbmc7XG4gIH07XG5cblxuICBmdW5jdGlvbiBnZW5lcmF0ZVNpbXBsZUFjY2Vzc29yKF9wYXJ0KXtcbiAgICByZXR1cm4gZnVuY3Rpb24odiwgYnVpbGQpIHtcbiAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnRzW19wYXJ0XSB8fCAnJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3BhcnRzW19wYXJ0XSA9IHYgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5idWlsZCghYnVpbGQpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gZ2VuZXJhdGVQcmVmaXhBY2Nlc3NvcihfcGFydCwgX2tleSl7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKHYsIGJ1aWxkKSB7XG4gICAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJ0c1tfcGFydF0gfHwgJyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodiAhPT0gbnVsbCkge1xuICAgICAgICAgIHYgPSB2ICsgJyc7XG4gICAgICAgICAgaWYgKHYuY2hhckF0KDApID09PSBfa2V5KSB7XG4gICAgICAgICAgICB2ID0gdi5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcGFydHNbX3BhcnRdID0gdjtcbiAgICAgICAgdGhpcy5idWlsZCghYnVpbGQpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcC5wcm90b2NvbCA9IGdlbmVyYXRlU2ltcGxlQWNjZXNzb3IoJ3Byb3RvY29sJyk7XG4gIHAudXNlcm5hbWUgPSBnZW5lcmF0ZVNpbXBsZUFjY2Vzc29yKCd1c2VybmFtZScpO1xuICBwLnBhc3N3b3JkID0gZ2VuZXJhdGVTaW1wbGVBY2Nlc3NvcigncGFzc3dvcmQnKTtcbiAgcC5ob3N0bmFtZSA9IGdlbmVyYXRlU2ltcGxlQWNjZXNzb3IoJ2hvc3RuYW1lJyk7XG4gIHAucG9ydCA9IGdlbmVyYXRlU2ltcGxlQWNjZXNzb3IoJ3BvcnQnKTtcbiAgcC5xdWVyeSA9IGdlbmVyYXRlUHJlZml4QWNjZXNzb3IoJ3F1ZXJ5JywgJz8nKTtcbiAgcC5mcmFnbWVudCA9IGdlbmVyYXRlUHJlZml4QWNjZXNzb3IoJ2ZyYWdtZW50JywgJyMnKTtcblxuICBwLnNlYXJjaCA9IGZ1bmN0aW9uKHYsIGJ1aWxkKSB7XG4gICAgdmFyIHQgPSB0aGlzLnF1ZXJ5KHYsIGJ1aWxkKTtcbiAgICByZXR1cm4gdHlwZW9mIHQgPT09ICdzdHJpbmcnICYmIHQubGVuZ3RoID8gKCc/JyArIHQpIDogdDtcbiAgfTtcbiAgcC5oYXNoID0gZnVuY3Rpb24odiwgYnVpbGQpIHtcbiAgICB2YXIgdCA9IHRoaXMuZnJhZ21lbnQodiwgYnVpbGQpO1xuICAgIHJldHVybiB0eXBlb2YgdCA9PT0gJ3N0cmluZycgJiYgdC5sZW5ndGggPyAoJyMnICsgdCkgOiB0O1xuICB9O1xuXG4gIHAucGF0aG5hbWUgPSBmdW5jdGlvbih2LCBidWlsZCkge1xuICAgIGlmICh2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gdHJ1ZSkge1xuICAgICAgdmFyIHJlcyA9IHRoaXMuX3BhcnRzLnBhdGggfHwgKHRoaXMuX3BhcnRzLmhvc3RuYW1lID8gJy8nIDogJycpO1xuICAgICAgcmV0dXJuIHYgPyAodGhpcy5fcGFydHMudXJuID8gVVJJLmRlY29kZVVyblBhdGggOiBVUkkuZGVjb2RlUGF0aCkocmVzKSA6IHJlcztcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX3BhcnRzLnVybikge1xuICAgICAgICB0aGlzLl9wYXJ0cy5wYXRoID0gdiA/IFVSSS5yZWNvZGVVcm5QYXRoKHYpIDogJyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9wYXJ0cy5wYXRoID0gdiA/IFVSSS5yZWNvZGVQYXRoKHYpIDogJy8nO1xuICAgICAgfVxuICAgICAgdGhpcy5idWlsZCghYnVpbGQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9O1xuICBwLnBhdGggPSBwLnBhdGhuYW1lO1xuICBwLmhyZWYgPSBmdW5jdGlvbihocmVmLCBidWlsZCkge1xuICAgIHZhciBrZXk7XG5cbiAgICBpZiAoaHJlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHRoaXMuX3N0cmluZyA9ICcnO1xuICAgIHRoaXMuX3BhcnRzID0gVVJJLl9wYXJ0cygpO1xuXG4gICAgdmFyIF9VUkkgPSBocmVmIGluc3RhbmNlb2YgVVJJO1xuICAgIHZhciBfb2JqZWN0ID0gdHlwZW9mIGhyZWYgPT09ICdvYmplY3QnICYmIChocmVmLmhvc3RuYW1lIHx8IGhyZWYucGF0aCB8fCBocmVmLnBhdGhuYW1lKTtcbiAgICBpZiAoaHJlZi5ub2RlTmFtZSkge1xuICAgICAgdmFyIGF0dHJpYnV0ZSA9IFVSSS5nZXREb21BdHRyaWJ1dGUoaHJlZik7XG4gICAgICBocmVmID0gaHJlZlthdHRyaWJ1dGVdIHx8ICcnO1xuICAgICAgX29iamVjdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHdpbmRvdy5sb2NhdGlvbiBpcyByZXBvcnRlZCB0byBiZSBhbiBvYmplY3QsIGJ1dCBpdCdzIG5vdCB0aGUgc29ydFxuICAgIC8vIG9mIG9iamVjdCB3ZSdyZSBsb29raW5nIGZvcjpcbiAgICAvLyAqIGxvY2F0aW9uLnByb3RvY29sIGVuZHMgd2l0aCBhIGNvbG9uXG4gICAgLy8gKiBsb2NhdGlvbi5xdWVyeSAhPSBvYmplY3Quc2VhcmNoXG4gICAgLy8gKiBsb2NhdGlvbi5oYXNoICE9IG9iamVjdC5mcmFnbWVudFxuICAgIC8vIHNpbXBseSBzZXJpYWxpemluZyB0aGUgdW5rbm93biBvYmplY3Qgc2hvdWxkIGRvIHRoZSB0cmlja1xuICAgIC8vIChmb3IgbG9jYXRpb24sIG5vdCBmb3IgZXZlcnl0aGluZy4uLilcbiAgICBpZiAoIV9VUkkgJiYgX29iamVjdCAmJiBocmVmLnBhdGhuYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGhyZWYgPSBocmVmLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyB8fCBocmVmIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICB0aGlzLl9wYXJ0cyA9IFVSSS5wYXJzZShTdHJpbmcoaHJlZiksIHRoaXMuX3BhcnRzKTtcbiAgICB9IGVsc2UgaWYgKF9VUkkgfHwgX29iamVjdCkge1xuICAgICAgdmFyIHNyYyA9IF9VUkkgPyBocmVmLl9wYXJ0cyA6IGhyZWY7XG4gICAgICBmb3IgKGtleSBpbiBzcmMpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3F1ZXJ5JykgeyBjb250aW51ZTsgfVxuICAgICAgICBpZiAoaGFzT3duLmNhbGwodGhpcy5fcGFydHMsIGtleSkpIHtcbiAgICAgICAgICB0aGlzLl9wYXJ0c1trZXldID0gc3JjW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzcmMucXVlcnkpIHtcbiAgICAgICAgdGhpcy5xdWVyeShzcmMucXVlcnksIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaW52YWxpZCBpbnB1dCcpO1xuICAgIH1cblxuICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBpZGVudGlmaWNhdGlvbiBhY2Nlc3NvcnNcbiAgcC5pcyA9IGZ1bmN0aW9uKHdoYXQpIHtcbiAgICB2YXIgaXAgPSBmYWxzZTtcbiAgICB2YXIgaXA0ID0gZmFsc2U7XG4gICAgdmFyIGlwNiA9IGZhbHNlO1xuICAgIHZhciBuYW1lID0gZmFsc2U7XG4gICAgdmFyIHNsZCA9IGZhbHNlO1xuICAgIHZhciBpZG4gPSBmYWxzZTtcbiAgICB2YXIgcHVueWNvZGUgPSBmYWxzZTtcbiAgICB2YXIgcmVsYXRpdmUgPSAhdGhpcy5fcGFydHMudXJuO1xuXG4gICAgaWYgKHRoaXMuX3BhcnRzLmhvc3RuYW1lKSB7XG4gICAgICByZWxhdGl2ZSA9IGZhbHNlO1xuICAgICAgaXA0ID0gVVJJLmlwNF9leHByZXNzaW9uLnRlc3QodGhpcy5fcGFydHMuaG9zdG5hbWUpO1xuICAgICAgaXA2ID0gVVJJLmlwNl9leHByZXNzaW9uLnRlc3QodGhpcy5fcGFydHMuaG9zdG5hbWUpO1xuICAgICAgaXAgPSBpcDQgfHwgaXA2O1xuICAgICAgbmFtZSA9ICFpcDtcbiAgICAgIHNsZCA9IG5hbWUgJiYgU0xEICYmIFNMRC5oYXModGhpcy5fcGFydHMuaG9zdG5hbWUpO1xuICAgICAgaWRuID0gbmFtZSAmJiBVUkkuaWRuX2V4cHJlc3Npb24udGVzdCh0aGlzLl9wYXJ0cy5ob3N0bmFtZSk7XG4gICAgICBwdW55Y29kZSA9IG5hbWUgJiYgVVJJLnB1bnljb2RlX2V4cHJlc3Npb24udGVzdCh0aGlzLl9wYXJ0cy5ob3N0bmFtZSk7XG4gICAgfVxuXG4gICAgc3dpdGNoICh3aGF0LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ3JlbGF0aXZlJzpcbiAgICAgICAgcmV0dXJuIHJlbGF0aXZlO1xuXG4gICAgICBjYXNlICdhYnNvbHV0ZSc6XG4gICAgICAgIHJldHVybiAhcmVsYXRpdmU7XG5cbiAgICAgIC8vIGhvc3RuYW1lIGlkZW50aWZpY2F0aW9uXG4gICAgICBjYXNlICdkb21haW4nOlxuICAgICAgY2FzZSAnbmFtZSc6XG4gICAgICAgIHJldHVybiBuYW1lO1xuXG4gICAgICBjYXNlICdzbGQnOlxuICAgICAgICByZXR1cm4gc2xkO1xuXG4gICAgICBjYXNlICdpcCc6XG4gICAgICAgIHJldHVybiBpcDtcblxuICAgICAgY2FzZSAnaXA0JzpcbiAgICAgIGNhc2UgJ2lwdjQnOlxuICAgICAgY2FzZSAnaW5ldDQnOlxuICAgICAgICByZXR1cm4gaXA0O1xuXG4gICAgICBjYXNlICdpcDYnOlxuICAgICAgY2FzZSAnaXB2Nic6XG4gICAgICBjYXNlICdpbmV0Nic6XG4gICAgICAgIHJldHVybiBpcDY7XG5cbiAgICAgIGNhc2UgJ2lkbic6XG4gICAgICAgIHJldHVybiBpZG47XG5cbiAgICAgIGNhc2UgJ3VybCc6XG4gICAgICAgIHJldHVybiAhdGhpcy5fcGFydHMudXJuO1xuXG4gICAgICBjYXNlICd1cm4nOlxuICAgICAgICByZXR1cm4gISF0aGlzLl9wYXJ0cy51cm47XG5cbiAgICAgIGNhc2UgJ3B1bnljb2RlJzpcbiAgICAgICAgcmV0dXJuIHB1bnljb2RlO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIC8vIGNvbXBvbmVudCBzcGVjaWZpYyBpbnB1dCB2YWxpZGF0aW9uXG4gIHZhciBfcHJvdG9jb2wgPSBwLnByb3RvY29sO1xuICB2YXIgX3BvcnQgPSBwLnBvcnQ7XG4gIHZhciBfaG9zdG5hbWUgPSBwLmhvc3RuYW1lO1xuXG4gIHAucHJvdG9jb2wgPSBmdW5jdGlvbih2LCBidWlsZCkge1xuICAgIGlmICh2KSB7XG4gICAgICAvLyBhY2NlcHQgdHJhaWxpbmcgOi8vXG4gICAgICB2ID0gdi5yZXBsYWNlKC86KFxcL1xcLyk/JC8sICcnKTtcblxuICAgICAgaWYgKCF2Lm1hdGNoKFVSSS5wcm90b2NvbF9leHByZXNzaW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdQcm90b2NvbCBcIicgKyB2ICsgJ1wiIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05ListXSBvciBkb2VzblxcJ3Qgc3RhcnQgd2l0aCBbQS1aXScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBfcHJvdG9jb2wuY2FsbCh0aGlzLCB2LCBidWlsZCk7XG4gIH07XG4gIHAuc2NoZW1lID0gcC5wcm90b2NvbDtcbiAgcC5wb3J0ID0gZnVuY3Rpb24odiwgYnVpbGQpIHtcbiAgICBpZiAodGhpcy5fcGFydHMudXJuKSB7XG4gICAgICByZXR1cm4gdiA9PT0gdW5kZWZpbmVkID8gJycgOiB0aGlzO1xuICAgIH1cblxuICAgIGlmICh2ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh2ID09PSAwKSB7XG4gICAgICAgIHYgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAodikge1xuICAgICAgICB2ICs9ICcnO1xuICAgICAgICBpZiAodi5jaGFyQXQoMCkgPT09ICc6Jykge1xuICAgICAgICAgIHYgPSB2LnN1YnN0cmluZygxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIFVSSS5lbnN1cmVWYWxpZFBvcnQodik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBfcG9ydC5jYWxsKHRoaXMsIHYsIGJ1aWxkKTtcbiAgfTtcbiAgcC5ob3N0bmFtZSA9IGZ1bmN0aW9uKHYsIGJ1aWxkKSB7XG4gICAgaWYgKHRoaXMuX3BhcnRzLnVybikge1xuICAgICAgcmV0dXJuIHYgPT09IHVuZGVmaW5lZCA/ICcnIDogdGhpcztcbiAgICB9XG5cbiAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgeCA9IHsgcHJldmVudEludmFsaWRIb3N0bmFtZTogdGhpcy5fcGFydHMucHJldmVudEludmFsaWRIb3N0bmFtZSB9O1xuICAgICAgdmFyIHJlcyA9IFVSSS5wYXJzZUhvc3QodiwgeCk7XG4gICAgICBpZiAocmVzICE9PSAnLycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSG9zdG5hbWUgXCInICsgdiArICdcIiBjb250YWlucyBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gW0EtWjAtOS4tXScpO1xuICAgICAgfVxuXG4gICAgICB2ID0geC5ob3N0bmFtZTtcbiAgICAgIGlmICh0aGlzLl9wYXJ0cy5wcmV2ZW50SW52YWxpZEhvc3RuYW1lKSB7XG4gICAgICAgIFVSSS5lbnN1cmVWYWxpZEhvc3RuYW1lKHYsIHRoaXMuX3BhcnRzLnByb3RvY29sKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gX2hvc3RuYW1lLmNhbGwodGhpcywgdiwgYnVpbGQpO1xuICB9O1xuXG4gIC8vIGNvbXBvdW5kIGFjY2Vzc29yc1xuICBwLm9yaWdpbiA9IGZ1bmN0aW9uKHYsIGJ1aWxkKSB7XG4gICAgaWYgKHRoaXMuX3BhcnRzLnVybikge1xuICAgICAgcmV0dXJuIHYgPT09IHVuZGVmaW5lZCA/ICcnIDogdGhpcztcbiAgICB9XG5cbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgcHJvdG9jb2wgPSB0aGlzLnByb3RvY29sKCk7XG4gICAgICB2YXIgYXV0aG9yaXR5ID0gdGhpcy5hdXRob3JpdHkoKTtcbiAgICAgIGlmICghYXV0aG9yaXR5KSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChwcm90b2NvbCA/IHByb3RvY29sICsgJzovLycgOiAnJykgKyB0aGlzLmF1dGhvcml0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgb3JpZ2luID0gVVJJKHYpO1xuICAgICAgdGhpc1xuICAgICAgICAucHJvdG9jb2wob3JpZ2luLnByb3RvY29sKCkpXG4gICAgICAgIC5hdXRob3JpdHkob3JpZ2luLmF1dGhvcml0eSgpKVxuICAgICAgICAuYnVpbGQoIWJ1aWxkKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfTtcbiAgcC5ob3N0ID0gZnVuY3Rpb24odiwgYnVpbGQpIHtcbiAgICBpZiAodGhpcy5fcGFydHMudXJuKSB7XG4gICAgICByZXR1cm4gdiA9PT0gdW5kZWZpbmVkID8gJycgOiB0aGlzO1xuICAgIH1cblxuICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9wYXJ0cy5ob3N0bmFtZSA/IFVSSS5idWlsZEhvc3QodGhpcy5fcGFydHMpIDogJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXMgPSBVUkkucGFyc2VIb3N0KHYsIHRoaXMuX3BhcnRzKTtcbiAgICAgIGlmIChyZXMgIT09ICcvJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSBcIicgKyB2ICsgJ1wiIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li1dJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfTtcbiAgcC5hdXRob3JpdHkgPSBmdW5jdGlvbih2LCBidWlsZCkge1xuICAgIGlmICh0aGlzLl9wYXJ0cy51cm4pIHtcbiAgICAgIHJldHVybiB2ID09PSB1bmRlZmluZWQgPyAnJyA6IHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKHYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3BhcnRzLmhvc3RuYW1lID8gVVJJLmJ1aWxkQXV0aG9yaXR5KHRoaXMuX3BhcnRzKSA6ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzID0gVVJJLnBhcnNlQXV0aG9yaXR5KHYsIHRoaXMuX3BhcnRzKTtcbiAgICAgIGlmIChyZXMgIT09ICcvJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSBcIicgKyB2ICsgJ1wiIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li1dJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfTtcbiAgcC51c2VyaW5mbyA9IGZ1bmN0aW9uKHYsIGJ1aWxkKSB7XG4gICAgaWYgKHRoaXMuX3BhcnRzLnVybikge1xuICAgICAgcmV0dXJuIHYgPT09IHVuZGVmaW5lZCA/ICcnIDogdGhpcztcbiAgICB9XG5cbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgdCA9IFVSSS5idWlsZFVzZXJpbmZvKHRoaXMuX3BhcnRzKTtcbiAgICAgIHJldHVybiB0ID8gdC5zdWJzdHJpbmcoMCwgdC5sZW5ndGggLTEpIDogdDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHZbdi5sZW5ndGgtMV0gIT09ICdAJykge1xuICAgICAgICB2ICs9ICdAJztcbiAgICAgIH1cblxuICAgICAgVVJJLnBhcnNlVXNlcmluZm8odiwgdGhpcy5fcGFydHMpO1xuICAgICAgdGhpcy5idWlsZCghYnVpbGQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9O1xuICBwLnJlc291cmNlID0gZnVuY3Rpb24odiwgYnVpbGQpIHtcbiAgICB2YXIgcGFydHM7XG5cbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXRoKCkgKyB0aGlzLnNlYXJjaCgpICsgdGhpcy5oYXNoKCk7XG4gICAgfVxuXG4gICAgcGFydHMgPSBVUkkucGFyc2Uodik7XG4gICAgdGhpcy5fcGFydHMucGF0aCA9IHBhcnRzLnBhdGg7XG4gICAgdGhpcy5fcGFydHMucXVlcnkgPSBwYXJ0cy5xdWVyeTtcbiAgICB0aGlzLl9wYXJ0cy5mcmFnbWVudCA9IHBhcnRzLmZyYWdtZW50O1xuICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBmcmFjdGlvbiBhY2Nlc3NvcnNcbiAgcC5zdWJkb21haW4gPSBmdW5jdGlvbih2LCBidWlsZCkge1xuICAgIGlmICh0aGlzLl9wYXJ0cy51cm4pIHtcbiAgICAgIHJldHVybiB2ID09PSB1bmRlZmluZWQgPyAnJyA6IHRoaXM7XG4gICAgfVxuXG4gICAgLy8gY29udmVuaWVuY2UsIHJldHVybiBcInd3d1wiIGZyb20gXCJ3d3cuZXhhbXBsZS5vcmdcIlxuICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghdGhpcy5fcGFydHMuaG9zdG5hbWUgfHwgdGhpcy5pcygnSVAnKSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG5cbiAgICAgIC8vIGdyYWIgZG9tYWluIGFuZCBhZGQgYW5vdGhlciBzZWdtZW50XG4gICAgICB2YXIgZW5kID0gdGhpcy5fcGFydHMuaG9zdG5hbWUubGVuZ3RoIC0gdGhpcy5kb21haW4oKS5sZW5ndGggLSAxO1xuICAgICAgcmV0dXJuIHRoaXMuX3BhcnRzLmhvc3RuYW1lLnN1YnN0cmluZygwLCBlbmQpIHx8ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZSA9IHRoaXMuX3BhcnRzLmhvc3RuYW1lLmxlbmd0aCAtIHRoaXMuZG9tYWluKCkubGVuZ3RoO1xuICAgICAgdmFyIHN1YiA9IHRoaXMuX3BhcnRzLmhvc3RuYW1lLnN1YnN0cmluZygwLCBlKTtcbiAgICAgIHZhciByZXBsYWNlID0gbmV3IFJlZ0V4cCgnXicgKyBlc2NhcGVSZWdFeChzdWIpKTtcblxuICAgICAgaWYgKHYgJiYgdi5jaGFyQXQodi5sZW5ndGggLSAxKSAhPT0gJy4nKSB7XG4gICAgICAgIHYgKz0gJy4nO1xuICAgICAgfVxuXG4gICAgICBpZiAodi5pbmRleE9mKCc6JykgIT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0RvbWFpbnMgY2Fubm90IGNvbnRhaW4gY29sb25zJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2KSB7XG4gICAgICAgIFVSSS5lbnN1cmVWYWxpZEhvc3RuYW1lKHYsIHRoaXMuX3BhcnRzLnByb3RvY29sKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fcGFydHMuaG9zdG5hbWUgPSB0aGlzLl9wYXJ0cy5ob3N0bmFtZS5yZXBsYWNlKHJlcGxhY2UsIHYpO1xuICAgICAgdGhpcy5idWlsZCghYnVpbGQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9O1xuICBwLmRvbWFpbiA9IGZ1bmN0aW9uKHYsIGJ1aWxkKSB7XG4gICAgaWYgKHRoaXMuX3BhcnRzLnVybikge1xuICAgICAgcmV0dXJuIHYgPT09IHVuZGVmaW5lZCA/ICcnIDogdGhpcztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHYgPT09ICdib29sZWFuJykge1xuICAgICAgYnVpbGQgPSB2O1xuICAgICAgdiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBjb252ZW5pZW5jZSwgcmV0dXJuIFwiZXhhbXBsZS5vcmdcIiBmcm9tIFwid3d3LmV4YW1wbGUub3JnXCJcbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIXRoaXMuX3BhcnRzLmhvc3RuYW1lIHx8IHRoaXMuaXMoJ0lQJykpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiBob3N0bmFtZSBjb25zaXN0cyBvZiAxIG9yIDIgc2VnbWVudHMsIGl0IG11c3QgYmUgdGhlIGRvbWFpblxuICAgICAgdmFyIHQgPSB0aGlzLl9wYXJ0cy5ob3N0bmFtZS5tYXRjaCgvXFwuL2cpO1xuICAgICAgaWYgKHQgJiYgdC5sZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJ0cy5ob3N0bmFtZTtcbiAgICAgIH1cblxuICAgICAgLy8gZ3JhYiB0bGQgYW5kIGFkZCBhbm90aGVyIHNlZ21lbnRcbiAgICAgIHZhciBlbmQgPSB0aGlzLl9wYXJ0cy5ob3N0bmFtZS5sZW5ndGggLSB0aGlzLnRsZChidWlsZCkubGVuZ3RoIC0gMTtcbiAgICAgIGVuZCA9IHRoaXMuX3BhcnRzLmhvc3RuYW1lLmxhc3RJbmRleE9mKCcuJywgZW5kIC0xKSArIDE7XG4gICAgICByZXR1cm4gdGhpcy5fcGFydHMuaG9zdG5hbWUuc3Vic3RyaW5nKGVuZCkgfHwgJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdjYW5ub3Qgc2V0IGRvbWFpbiBlbXB0eScpO1xuICAgICAgfVxuXG4gICAgICBpZiAodi5pbmRleE9mKCc6JykgIT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0RvbWFpbnMgY2Fubm90IGNvbnRhaW4gY29sb25zJyk7XG4gICAgICB9XG5cbiAgICAgIFVSSS5lbnN1cmVWYWxpZEhvc3RuYW1lKHYsIHRoaXMuX3BhcnRzLnByb3RvY29sKTtcblxuICAgICAgaWYgKCF0aGlzLl9wYXJ0cy5ob3N0bmFtZSB8fCB0aGlzLmlzKCdJUCcpKSB7XG4gICAgICAgIHRoaXMuX3BhcnRzLmhvc3RuYW1lID0gdjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciByZXBsYWNlID0gbmV3IFJlZ0V4cChlc2NhcGVSZWdFeCh0aGlzLmRvbWFpbigpKSArICckJyk7XG4gICAgICAgIHRoaXMuX3BhcnRzLmhvc3RuYW1lID0gdGhpcy5fcGFydHMuaG9zdG5hbWUucmVwbGFjZShyZXBsYWNlLCB2KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5idWlsZCghYnVpbGQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9O1xuICBwLnRsZCA9IGZ1bmN0aW9uKHYsIGJ1aWxkKSB7XG4gICAgaWYgKHRoaXMuX3BhcnRzLnVybikge1xuICAgICAgcmV0dXJuIHYgPT09IHVuZGVmaW5lZCA/ICcnIDogdGhpcztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHYgPT09ICdib29sZWFuJykge1xuICAgICAgYnVpbGQgPSB2O1xuICAgICAgdiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyByZXR1cm4gXCJvcmdcIiBmcm9tIFwid3d3LmV4YW1wbGUub3JnXCJcbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIXRoaXMuX3BhcnRzLmhvc3RuYW1lIHx8IHRoaXMuaXMoJ0lQJykpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuXG4gICAgICB2YXIgcG9zID0gdGhpcy5fcGFydHMuaG9zdG5hbWUubGFzdEluZGV4T2YoJy4nKTtcbiAgICAgIHZhciB0bGQgPSB0aGlzLl9wYXJ0cy5ob3N0bmFtZS5zdWJzdHJpbmcocG9zICsgMSk7XG5cbiAgICAgIGlmIChidWlsZCAhPT0gdHJ1ZSAmJiBTTEQgJiYgU0xELmxpc3RbdGxkLnRvTG93ZXJDYXNlKCldKSB7XG4gICAgICAgIHJldHVybiBTTEQuZ2V0KHRoaXMuX3BhcnRzLmhvc3RuYW1lKSB8fCB0bGQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0bGQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXBsYWNlO1xuXG4gICAgICBpZiAoIXYpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY2Fubm90IHNldCBUTEQgZW1wdHknKTtcbiAgICAgIH0gZWxzZSBpZiAodi5tYXRjaCgvW15hLXpBLVowLTktXS8pKSB7XG4gICAgICAgIGlmIChTTEQgJiYgU0xELmlzKHYpKSB7XG4gICAgICAgICAgcmVwbGFjZSA9IG5ldyBSZWdFeHAoZXNjYXBlUmVnRXgodGhpcy50bGQoKSkgKyAnJCcpO1xuICAgICAgICAgIHRoaXMuX3BhcnRzLmhvc3RuYW1lID0gdGhpcy5fcGFydHMuaG9zdG5hbWUucmVwbGFjZShyZXBsYWNlLCB2KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUTEQgXCInICsgdiArICdcIiBjb250YWlucyBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gW0EtWjAtOV0nKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghdGhpcy5fcGFydHMuaG9zdG5hbWUgfHwgdGhpcy5pcygnSVAnKSkge1xuICAgICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoJ2Nhbm5vdCBzZXQgVExEIG9uIG5vbi1kb21haW4gaG9zdCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVwbGFjZSA9IG5ldyBSZWdFeHAoZXNjYXBlUmVnRXgodGhpcy50bGQoKSkgKyAnJCcpO1xuICAgICAgICB0aGlzLl9wYXJ0cy5ob3N0bmFtZSA9IHRoaXMuX3BhcnRzLmhvc3RuYW1lLnJlcGxhY2UocmVwbGFjZSwgdik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfTtcbiAgcC5kaXJlY3RvcnkgPSBmdW5jdGlvbih2LCBidWlsZCkge1xuICAgIGlmICh0aGlzLl9wYXJ0cy51cm4pIHtcbiAgICAgIHJldHVybiB2ID09PSB1bmRlZmluZWQgPyAnJyA6IHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSB0cnVlKSB7XG4gICAgICBpZiAoIXRoaXMuX3BhcnRzLnBhdGggJiYgIXRoaXMuX3BhcnRzLmhvc3RuYW1lKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX3BhcnRzLnBhdGggPT09ICcvJykge1xuICAgICAgICByZXR1cm4gJy8nO1xuICAgICAgfVxuXG4gICAgICB2YXIgZW5kID0gdGhpcy5fcGFydHMucGF0aC5sZW5ndGggLSB0aGlzLmZpbGVuYW1lKCkubGVuZ3RoIC0gMTtcbiAgICAgIHZhciByZXMgPSB0aGlzLl9wYXJ0cy5wYXRoLnN1YnN0cmluZygwLCBlbmQpIHx8ICh0aGlzLl9wYXJ0cy5ob3N0bmFtZSA/ICcvJyA6ICcnKTtcblxuICAgICAgcmV0dXJuIHYgPyBVUkkuZGVjb2RlUGF0aChyZXMpIDogcmVzO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBlID0gdGhpcy5fcGFydHMucGF0aC5sZW5ndGggLSB0aGlzLmZpbGVuYW1lKCkubGVuZ3RoO1xuICAgICAgdmFyIGRpcmVjdG9yeSA9IHRoaXMuX3BhcnRzLnBhdGguc3Vic3RyaW5nKDAsIGUpO1xuICAgICAgdmFyIHJlcGxhY2UgPSBuZXcgUmVnRXhwKCdeJyArIGVzY2FwZVJlZ0V4KGRpcmVjdG9yeSkpO1xuXG4gICAgICAvLyBmdWxseSBxdWFsaWZpZXIgZGlyZWN0b3JpZXMgYmVnaW4gd2l0aCBhIHNsYXNoXG4gICAgICBpZiAoIXRoaXMuaXMoJ3JlbGF0aXZlJykpIHtcbiAgICAgICAgaWYgKCF2KSB7XG4gICAgICAgICAgdiA9ICcvJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2LmNoYXJBdCgwKSAhPT0gJy8nKSB7XG4gICAgICAgICAgdiA9ICcvJyArIHY7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gZGlyZWN0b3JpZXMgYWx3YXlzIGVuZCB3aXRoIGEgc2xhc2hcbiAgICAgIGlmICh2ICYmIHYuY2hhckF0KHYubGVuZ3RoIC0gMSkgIT09ICcvJykge1xuICAgICAgICB2ICs9ICcvJztcbiAgICAgIH1cblxuICAgICAgdiA9IFVSSS5yZWNvZGVQYXRoKHYpO1xuICAgICAgdGhpcy5fcGFydHMucGF0aCA9IHRoaXMuX3BhcnRzLnBhdGgucmVwbGFjZShyZXBsYWNlLCB2KTtcbiAgICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgfTtcbiAgcC5maWxlbmFtZSA9IGZ1bmN0aW9uKHYsIGJ1aWxkKSB7XG4gICAgaWYgKHRoaXMuX3BhcnRzLnVybikge1xuICAgICAgcmV0dXJuIHYgPT09IHVuZGVmaW5lZCA/ICcnIDogdGhpcztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHYgIT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIXRoaXMuX3BhcnRzLnBhdGggfHwgdGhpcy5fcGFydHMucGF0aCA9PT0gJy8nKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgdmFyIHBvcyA9IHRoaXMuX3BhcnRzLnBhdGgubGFzdEluZGV4T2YoJy8nKTtcbiAgICAgIHZhciByZXMgPSB0aGlzLl9wYXJ0cy5wYXRoLnN1YnN0cmluZyhwb3MrMSk7XG5cbiAgICAgIHJldHVybiB2ID8gVVJJLmRlY29kZVBhdGhTZWdtZW50KHJlcykgOiByZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBtdXRhdGVkRGlyZWN0b3J5ID0gZmFsc2U7XG5cbiAgICAgIGlmICh2LmNoYXJBdCgwKSA9PT0gJy8nKSB7XG4gICAgICAgIHYgPSB2LnN1YnN0cmluZygxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHYubWF0Y2goL1xcLj9cXC8vKSkge1xuICAgICAgICBtdXRhdGVkRGlyZWN0b3J5ID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlcGxhY2UgPSBuZXcgUmVnRXhwKGVzY2FwZVJlZ0V4KHRoaXMuZmlsZW5hbWUoKSkgKyAnJCcpO1xuICAgICAgdiA9IFVSSS5yZWNvZGVQYXRoKHYpO1xuICAgICAgdGhpcy5fcGFydHMucGF0aCA9IHRoaXMuX3BhcnRzLnBhdGgucmVwbGFjZShyZXBsYWNlLCB2KTtcblxuICAgICAgaWYgKG11dGF0ZWREaXJlY3RvcnkpIHtcbiAgICAgICAgdGhpcy5ub3JtYWxpemVQYXRoKGJ1aWxkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9O1xuICBwLnN1ZmZpeCA9IGZ1bmN0aW9uKHYsIGJ1aWxkKSB7XG4gICAgaWYgKHRoaXMuX3BhcnRzLnVybikge1xuICAgICAgcmV0dXJuIHYgPT09IHVuZGVmaW5lZCA/ICcnIDogdGhpcztcbiAgICB9XG5cbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IHRydWUpIHtcbiAgICAgIGlmICghdGhpcy5fcGFydHMucGF0aCB8fCB0aGlzLl9wYXJ0cy5wYXRoID09PSAnLycpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuXG4gICAgICB2YXIgZmlsZW5hbWUgPSB0aGlzLmZpbGVuYW1lKCk7XG4gICAgICB2YXIgcG9zID0gZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKTtcbiAgICAgIHZhciBzLCByZXM7XG5cbiAgICAgIGlmIChwb3MgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgLy8gc3VmZml4IG1heSBvbmx5IGNvbnRhaW4gYWxudW0gY2hhcmFjdGVycyAoeXVwLCBJIG1hZGUgdGhpcyB1cC4pXG4gICAgICBzID0gZmlsZW5hbWUuc3Vic3RyaW5nKHBvcysxKTtcbiAgICAgIHJlcyA9ICgvXlthLXowLTklXSskL2kpLnRlc3QocykgPyBzIDogJyc7XG4gICAgICByZXR1cm4gdiA/IFVSSS5kZWNvZGVQYXRoU2VnbWVudChyZXMpIDogcmVzO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodi5jaGFyQXQoMCkgPT09ICcuJykge1xuICAgICAgICB2ID0gdi5zdWJzdHJpbmcoMSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBzdWZmaXggPSB0aGlzLnN1ZmZpeCgpO1xuICAgICAgdmFyIHJlcGxhY2U7XG5cbiAgICAgIGlmICghc3VmZml4KSB7XG4gICAgICAgIGlmICghdikge1xuICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcGFydHMucGF0aCArPSAnLicgKyBVUkkucmVjb2RlUGF0aCh2KTtcbiAgICAgIH0gZWxzZSBpZiAoIXYpIHtcbiAgICAgICAgcmVwbGFjZSA9IG5ldyBSZWdFeHAoZXNjYXBlUmVnRXgoJy4nICsgc3VmZml4KSArICckJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXBsYWNlID0gbmV3IFJlZ0V4cChlc2NhcGVSZWdFeChzdWZmaXgpICsgJyQnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcGxhY2UpIHtcbiAgICAgICAgdiA9IFVSSS5yZWNvZGVQYXRoKHYpO1xuICAgICAgICB0aGlzLl9wYXJ0cy5wYXRoID0gdGhpcy5fcGFydHMucGF0aC5yZXBsYWNlKHJlcGxhY2UsIHYpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmJ1aWxkKCFidWlsZCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH07XG4gIHAuc2VnbWVudCA9IGZ1bmN0aW9uKHNlZ21lbnQsIHYsIGJ1aWxkKSB7XG4gICAgdmFyIHNlcGFyYXRvciA9IHRoaXMuX3BhcnRzLnVybiA/ICc6JyA6ICcvJztcbiAgICB2YXIgcGF0aCA9IHRoaXMucGF0aCgpO1xuICAgIHZhciBhYnNvbHV0ZSA9IHBhdGguc3Vic3RyaW5nKDAsIDEpID09PSAnLyc7XG4gICAgdmFyIHNlZ21lbnRzID0gcGF0aC5zcGxpdChzZXBhcmF0b3IpO1xuXG4gICAgaWYgKHNlZ21lbnQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygc2VnbWVudCAhPT0gJ251bWJlcicpIHtcbiAgICAgIGJ1aWxkID0gdjtcbiAgICAgIHYgPSBzZWdtZW50O1xuICAgICAgc2VnbWVudCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoc2VnbWVudCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBzZWdtZW50ICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYWQgc2VnbWVudCBcIicgKyBzZWdtZW50ICsgJ1wiLCBtdXN0IGJlIDAtYmFzZWQgaW50ZWdlcicpO1xuICAgIH1cblxuICAgIGlmIChhYnNvbHV0ZSkge1xuICAgICAgc2VnbWVudHMuc2hpZnQoKTtcbiAgICB9XG5cbiAgICBpZiAoc2VnbWVudCA8IDApIHtcbiAgICAgIC8vIGFsbG93IG5lZ2F0aXZlIGluZGV4ZXMgdG8gYWRkcmVzcyBmcm9tIHRoZSBlbmRcbiAgICAgIHNlZ21lbnQgPSBNYXRoLm1heChzZWdtZW50cy5sZW5ndGggKyBzZWdtZW50LCAwKTtcbiAgICB9XG5cbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xuICAgICAgcmV0dXJuIHNlZ21lbnQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHNlZ21lbnRzXG4gICAgICAgIDogc2VnbWVudHNbc2VnbWVudF07XG4gICAgICAvKmpzaGludCBsYXhicmVhazogZmFsc2UgKi9cbiAgICB9IGVsc2UgaWYgKHNlZ21lbnQgPT09IG51bGwgfHwgc2VnbWVudHNbc2VnbWVudF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGlzQXJyYXkodikpIHtcbiAgICAgICAgc2VnbWVudHMgPSBbXTtcbiAgICAgICAgLy8gY29sbGFwc2UgZW1wdHkgZWxlbWVudHMgd2l0aGluIGFycmF5XG4gICAgICAgIGZvciAodmFyIGk9MCwgbD12Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgIGlmICghdltpXS5sZW5ndGggJiYgKCFzZWdtZW50cy5sZW5ndGggfHwgIXNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtMV0ubGVuZ3RoKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnRzLmxlbmd0aCAmJiAhc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0xXS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHNlZ21lbnRzLnBvcCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNlZ21lbnRzLnB1c2godHJpbVNsYXNoZXModltpXSkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHYgfHwgdHlwZW9mIHYgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHYgPSB0cmltU2xhc2hlcyh2KTtcbiAgICAgICAgaWYgKHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtMV0gPT09ICcnKSB7XG4gICAgICAgICAgLy8gZW1wdHkgdHJhaWxpbmcgZWxlbWVudHMgaGF2ZSB0byBiZSBvdmVyd3JpdHRlblxuICAgICAgICAgIC8vIHRvIHByZXZlbnQgcmVzdWx0cyBzdWNoIGFzIC9mb28vL2JhclxuICAgICAgICAgIHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtMV0gPSB2O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlZ21lbnRzLnB1c2godik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHYpIHtcbiAgICAgICAgc2VnbWVudHNbc2VnbWVudF0gPSB0cmltU2xhc2hlcyh2KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlZ21lbnRzLnNwbGljZShzZWdtZW50LCAxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYWJzb2x1dGUpIHtcbiAgICAgIHNlZ21lbnRzLnVuc2hpZnQoJycpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhdGgoc2VnbWVudHMuam9pbihzZXBhcmF0b3IpLCBidWlsZCk7XG4gIH07XG4gIHAuc2VnbWVudENvZGVkID0gZnVuY3Rpb24oc2VnbWVudCwgdiwgYnVpbGQpIHtcbiAgICB2YXIgc2VnbWVudHMsIGksIGw7XG5cbiAgICBpZiAodHlwZW9mIHNlZ21lbnQgIT09ICdudW1iZXInKSB7XG4gICAgICBidWlsZCA9IHY7XG4gICAgICB2ID0gc2VnbWVudDtcbiAgICAgIHNlZ21lbnQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgc2VnbWVudHMgPSB0aGlzLnNlZ21lbnQoc2VnbWVudCwgdiwgYnVpbGQpO1xuICAgICAgaWYgKCFpc0FycmF5KHNlZ21lbnRzKSkge1xuICAgICAgICBzZWdtZW50cyA9IHNlZ21lbnRzICE9PSB1bmRlZmluZWQgPyBVUkkuZGVjb2RlKHNlZ21lbnRzKSA6IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBzZWdtZW50cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBzZWdtZW50c1tpXSA9IFVSSS5kZWNvZGUoc2VnbWVudHNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzZWdtZW50cztcbiAgICB9XG5cbiAgICBpZiAoIWlzQXJyYXkodikpIHtcbiAgICAgIHYgPSAodHlwZW9mIHYgPT09ICdzdHJpbmcnIHx8IHYgaW5zdGFuY2VvZiBTdHJpbmcpID8gVVJJLmVuY29kZSh2KSA6IHY7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoaSA9IDAsIGwgPSB2Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICB2W2ldID0gVVJJLmVuY29kZSh2W2ldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZWdtZW50KHNlZ21lbnQsIHYsIGJ1aWxkKTtcbiAgfTtcblxuICAvLyBtdXRhdGluZyBxdWVyeSBzdHJpbmdcbiAgdmFyIHEgPSBwLnF1ZXJ5O1xuICBwLnF1ZXJ5ID0gZnVuY3Rpb24odiwgYnVpbGQpIHtcbiAgICBpZiAodiA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIFVSSS5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LCB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgZGF0YSA9IFVSSS5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LCB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtcbiAgICAgIHZhciByZXN1bHQgPSB2LmNhbGwodGhpcywgZGF0YSk7XG4gICAgICB0aGlzLl9wYXJ0cy5xdWVyeSA9IFVSSS5idWlsZFF1ZXJ5KHJlc3VsdCB8fCBkYXRhLCB0aGlzLl9wYXJ0cy5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnMsIHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO1xuICAgICAgdGhpcy5idWlsZCghYnVpbGQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmICh2ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHYgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLl9wYXJ0cy5xdWVyeSA9IFVSSS5idWlsZFF1ZXJ5KHYsIHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycywgdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSk7XG4gICAgICB0aGlzLmJ1aWxkKCFidWlsZCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHEuY2FsbCh0aGlzLCB2LCBidWlsZCk7XG4gICAgfVxuICB9O1xuICBwLnNldFF1ZXJ5ID0gZnVuY3Rpb24obmFtZSwgdmFsdWUsIGJ1aWxkKSB7XG4gICAgdmFyIGRhdGEgPSBVUkkucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSwgdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSk7XG5cbiAgICBpZiAodHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnIHx8IG5hbWUgaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgIGRhdGFbbmFtZV0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBudWxsO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIG5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gbmFtZSkge1xuICAgICAgICBpZiAoaGFzT3duLmNhbGwobmFtZSwga2V5KSkge1xuICAgICAgICAgIGRhdGFba2V5XSA9IG5hbWVba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVUkkuYWRkUXVlcnkoKSBhY2NlcHRzIGFuIG9iamVjdCwgc3RyaW5nIGFzIHRoZSBuYW1lIHBhcmFtZXRlcicpO1xuICAgIH1cblxuICAgIHRoaXMuX3BhcnRzLnF1ZXJ5ID0gVVJJLmJ1aWxkUXVlcnkoZGF0YSwgdGhpcy5fcGFydHMuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzLCB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtcbiAgICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICBidWlsZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgcC5hZGRRdWVyeSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBidWlsZCkge1xuICAgIHZhciBkYXRhID0gVVJJLnBhcnNlUXVlcnkodGhpcy5fcGFydHMucXVlcnksIHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO1xuICAgIFVSSS5hZGRRdWVyeShkYXRhLCBuYW1lLCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHZhbHVlKTtcbiAgICB0aGlzLl9wYXJ0cy5xdWVyeSA9IFVSSS5idWlsZFF1ZXJ5KGRhdGEsIHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycywgdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSk7XG4gICAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgYnVpbGQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmJ1aWxkKCFidWlsZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG4gIHAucmVtb3ZlUXVlcnkgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSwgYnVpbGQpIHtcbiAgICB2YXIgZGF0YSA9IFVSSS5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LCB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtcbiAgICBVUkkucmVtb3ZlUXVlcnkoZGF0YSwgbmFtZSwgdmFsdWUpO1xuICAgIHRoaXMuX3BhcnRzLnF1ZXJ5ID0gVVJJLmJ1aWxkUXVlcnkoZGF0YSwgdGhpcy5fcGFydHMuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzLCB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtcbiAgICBpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICBidWlsZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgcC5oYXNRdWVyeSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCB3aXRoaW5BcnJheSkge1xuICAgIHZhciBkYXRhID0gVVJJLnBhcnNlUXVlcnkodGhpcy5fcGFydHMucXVlcnksIHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO1xuICAgIHJldHVybiBVUkkuaGFzUXVlcnkoZGF0YSwgbmFtZSwgdmFsdWUsIHdpdGhpbkFycmF5KTtcbiAgfTtcbiAgcC5zZXRTZWFyY2ggPSBwLnNldFF1ZXJ5O1xuICBwLmFkZFNlYXJjaCA9IHAuYWRkUXVlcnk7XG4gIHAucmVtb3ZlU2VhcmNoID0gcC5yZW1vdmVRdWVyeTtcbiAgcC5oYXNTZWFyY2ggPSBwLmhhc1F1ZXJ5O1xuXG4gIC8vIHNhbml0aXppbmcgVVJMc1xuICBwLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLl9wYXJ0cy51cm4pIHtcbiAgICAgIHJldHVybiB0aGlzXG4gICAgICAgIC5ub3JtYWxpemVQcm90b2NvbChmYWxzZSlcbiAgICAgICAgLm5vcm1hbGl6ZVBhdGgoZmFsc2UpXG4gICAgICAgIC5ub3JtYWxpemVRdWVyeShmYWxzZSlcbiAgICAgICAgLm5vcm1hbGl6ZUZyYWdtZW50KGZhbHNlKVxuICAgICAgICAuYnVpbGQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1xuICAgICAgLm5vcm1hbGl6ZVByb3RvY29sKGZhbHNlKVxuICAgICAgLm5vcm1hbGl6ZUhvc3RuYW1lKGZhbHNlKVxuICAgICAgLm5vcm1hbGl6ZVBvcnQoZmFsc2UpXG4gICAgICAubm9ybWFsaXplUGF0aChmYWxzZSlcbiAgICAgIC5ub3JtYWxpemVRdWVyeShmYWxzZSlcbiAgICAgIC5ub3JtYWxpemVGcmFnbWVudChmYWxzZSlcbiAgICAgIC5idWlsZCgpO1xuICB9O1xuICBwLm5vcm1hbGl6ZVByb3RvY29sID0gZnVuY3Rpb24oYnVpbGQpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX3BhcnRzLnByb3RvY29sID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5fcGFydHMucHJvdG9jb2wgPSB0aGlzLl9wYXJ0cy5wcm90b2NvbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgdGhpcy5idWlsZCghYnVpbGQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuICBwLm5vcm1hbGl6ZUhvc3RuYW1lID0gZnVuY3Rpb24oYnVpbGQpIHtcbiAgICBpZiAodGhpcy5fcGFydHMuaG9zdG5hbWUpIHtcbiAgICAgIGlmICh0aGlzLmlzKCdJRE4nKSAmJiBwdW55Y29kZSkge1xuICAgICAgICB0aGlzLl9wYXJ0cy5ob3N0bmFtZSA9IHB1bnljb2RlLnRvQVNDSUkodGhpcy5fcGFydHMuaG9zdG5hbWUpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzKCdJUHY2JykgJiYgSVB2Nikge1xuICAgICAgICB0aGlzLl9wYXJ0cy5ob3N0bmFtZSA9IElQdjYuYmVzdCh0aGlzLl9wYXJ0cy5ob3N0bmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3BhcnRzLmhvc3RuYW1lID0gdGhpcy5fcGFydHMuaG9zdG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgcC5ub3JtYWxpemVQb3J0ID0gZnVuY3Rpb24oYnVpbGQpIHtcbiAgICAvLyByZW1vdmUgcG9ydCBvZiBpdCdzIHRoZSBwcm90b2NvbCdzIGRlZmF1bHRcbiAgICBpZiAodHlwZW9mIHRoaXMuX3BhcnRzLnByb3RvY29sID09PSAnc3RyaW5nJyAmJiB0aGlzLl9wYXJ0cy5wb3J0ID09PSBVUkkuZGVmYXVsdFBvcnRzW3RoaXMuX3BhcnRzLnByb3RvY29sXSkge1xuICAgICAgdGhpcy5fcGFydHMucG9ydCA9IG51bGw7XG4gICAgICB0aGlzLmJ1aWxkKCFidWlsZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG4gIHAubm9ybWFsaXplUGF0aCA9IGZ1bmN0aW9uKGJ1aWxkKSB7XG4gICAgdmFyIF9wYXRoID0gdGhpcy5fcGFydHMucGF0aDtcbiAgICBpZiAoIV9wYXRoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGFydHMudXJuKSB7XG4gICAgICB0aGlzLl9wYXJ0cy5wYXRoID0gVVJJLnJlY29kZVVyblBhdGgodGhpcy5fcGFydHMucGF0aCk7XG4gICAgICB0aGlzLmJ1aWxkKCFidWlsZCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcGFydHMucGF0aCA9PT0gJy8nKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBfcGF0aCA9IFVSSS5yZWNvZGVQYXRoKF9wYXRoKTtcblxuICAgIHZhciBfd2FzX3JlbGF0aXZlO1xuICAgIHZhciBfbGVhZGluZ1BhcmVudHMgPSAnJztcbiAgICB2YXIgX3BhcmVudCwgX3BvcztcblxuICAgIC8vIGhhbmRsZSByZWxhdGl2ZSBwYXRoc1xuICAgIGlmIChfcGF0aC5jaGFyQXQoMCkgIT09ICcvJykge1xuICAgICAgX3dhc19yZWxhdGl2ZSA9IHRydWU7XG4gICAgICBfcGF0aCA9ICcvJyArIF9wYXRoO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSByZWxhdGl2ZSBmaWxlcyAoYXMgb3Bwb3NlZCB0byBkaXJlY3RvcmllcylcbiAgICBpZiAoX3BhdGguc2xpY2UoLTMpID09PSAnLy4uJyB8fCBfcGF0aC5zbGljZSgtMikgPT09ICcvLicpIHtcbiAgICAgIF9wYXRoICs9ICcvJztcbiAgICB9XG5cbiAgICAvLyByZXNvbHZlIHNpbXBsZXNcbiAgICBfcGF0aCA9IF9wYXRoXG4gICAgICAucmVwbGFjZSgvKFxcLyhcXC5cXC8pKyl8KFxcL1xcLiQpL2csICcvJylcbiAgICAgIC5yZXBsYWNlKC9cXC97Mix9L2csICcvJyk7XG5cbiAgICAvLyByZW1lbWJlciBsZWFkaW5nIHBhcmVudHNcbiAgICBpZiAoX3dhc19yZWxhdGl2ZSkge1xuICAgICAgX2xlYWRpbmdQYXJlbnRzID0gX3BhdGguc3Vic3RyaW5nKDEpLm1hdGNoKC9eKFxcLlxcLlxcLykrLykgfHwgJyc7XG4gICAgICBpZiAoX2xlYWRpbmdQYXJlbnRzKSB7XG4gICAgICAgIF9sZWFkaW5nUGFyZW50cyA9IF9sZWFkaW5nUGFyZW50c1swXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyByZXNvbHZlIHBhcmVudHNcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgX3BhcmVudCA9IF9wYXRoLnNlYXJjaCgvXFwvXFwuXFwuKFxcL3wkKS8pO1xuICAgICAgaWYgKF9wYXJlbnQgPT09IC0xKSB7XG4gICAgICAgIC8vIG5vIG1vcmUgLi4vIHRvIHJlc29sdmVcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2UgaWYgKF9wYXJlbnQgPT09IDApIHtcbiAgICAgICAgLy8gdG9wIGxldmVsIGNhbm5vdCBiZSByZWxhdGl2ZSwgc2tpcCBpdFxuICAgICAgICBfcGF0aCA9IF9wYXRoLnN1YnN0cmluZygzKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIF9wb3MgPSBfcGF0aC5zdWJzdHJpbmcoMCwgX3BhcmVudCkubGFzdEluZGV4T2YoJy8nKTtcbiAgICAgIGlmIChfcG9zID09PSAtMSkge1xuICAgICAgICBfcG9zID0gX3BhcmVudDtcbiAgICAgIH1cbiAgICAgIF9wYXRoID0gX3BhdGguc3Vic3RyaW5nKDAsIF9wb3MpICsgX3BhdGguc3Vic3RyaW5nKF9wYXJlbnQgKyAzKTtcbiAgICB9XG5cbiAgICAvLyByZXZlcnQgdG8gcmVsYXRpdmVcbiAgICBpZiAoX3dhc19yZWxhdGl2ZSAmJiB0aGlzLmlzKCdyZWxhdGl2ZScpKSB7XG4gICAgICBfcGF0aCA9IF9sZWFkaW5nUGFyZW50cyArIF9wYXRoLnN1YnN0cmluZygxKTtcbiAgICB9XG5cbiAgICB0aGlzLl9wYXJ0cy5wYXRoID0gX3BhdGg7XG4gICAgdGhpcy5idWlsZCghYnVpbGQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuICBwLm5vcm1hbGl6ZVBhdGhuYW1lID0gcC5ub3JtYWxpemVQYXRoO1xuICBwLm5vcm1hbGl6ZVF1ZXJ5ID0gZnVuY3Rpb24oYnVpbGQpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX3BhcnRzLnF1ZXJ5ID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKCF0aGlzLl9wYXJ0cy5xdWVyeS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fcGFydHMucXVlcnkgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5xdWVyeShVUkkucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSwgdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmJ1aWxkKCFidWlsZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG4gIHAubm9ybWFsaXplRnJhZ21lbnQgPSBmdW5jdGlvbihidWlsZCkge1xuICAgIGlmICghdGhpcy5fcGFydHMuZnJhZ21lbnQpIHtcbiAgICAgIHRoaXMuX3BhcnRzLmZyYWdtZW50ID0gbnVsbDtcbiAgICAgIHRoaXMuYnVpbGQoIWJ1aWxkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgcC5ub3JtYWxpemVTZWFyY2ggPSBwLm5vcm1hbGl6ZVF1ZXJ5O1xuICBwLm5vcm1hbGl6ZUhhc2ggPSBwLm5vcm1hbGl6ZUZyYWdtZW50O1xuXG4gIHAuaXNvODg1OSA9IGZ1bmN0aW9uKCkge1xuICAgIC8vIGV4cGVjdCB1bmljb2RlIGlucHV0LCBpc284ODU5IG91dHB1dFxuICAgIHZhciBlID0gVVJJLmVuY29kZTtcbiAgICB2YXIgZCA9IFVSSS5kZWNvZGU7XG5cbiAgICBVUkkuZW5jb2RlID0gZXNjYXBlO1xuICAgIFVSSS5kZWNvZGUgPSBkZWNvZGVVUklDb21wb25lbnQ7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubm9ybWFsaXplKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIFVSSS5lbmNvZGUgPSBlO1xuICAgICAgVVJJLmRlY29kZSA9IGQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIHAudW5pY29kZSA9IGZ1bmN0aW9uKCkge1xuICAgIC8vIGV4cGVjdCBpc284ODU5IGlucHV0LCB1bmljb2RlIG91dHB1dFxuICAgIHZhciBlID0gVVJJLmVuY29kZTtcbiAgICB2YXIgZCA9IFVSSS5kZWNvZGU7XG5cbiAgICBVUkkuZW5jb2RlID0gc3RyaWN0RW5jb2RlVVJJQ29tcG9uZW50O1xuICAgIFVSSS5kZWNvZGUgPSB1bmVzY2FwZTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5ub3JtYWxpemUoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgVVJJLmVuY29kZSA9IGU7XG4gICAgICBVUkkuZGVjb2RlID0gZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgcC5yZWFkYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciB1cmkgPSB0aGlzLmNsb25lKCk7XG4gICAgLy8gcmVtb3ZpbmcgdXNlcm5hbWUsIHBhc3N3b3JkLCBiZWNhdXNlIHRoZXkgc2hvdWxkbid0IGJlIGRpc3BsYXllZCBhY2NvcmRpbmcgdG8gUkZDIDM5ODZcbiAgICB1cmkudXNlcm5hbWUoJycpLnBhc3N3b3JkKCcnKS5ub3JtYWxpemUoKTtcbiAgICB2YXIgdCA9ICcnO1xuICAgIGlmICh1cmkuX3BhcnRzLnByb3RvY29sKSB7XG4gICAgICB0ICs9IHVyaS5fcGFydHMucHJvdG9jb2wgKyAnOi8vJztcbiAgICB9XG5cbiAgICBpZiAodXJpLl9wYXJ0cy5ob3N0bmFtZSkge1xuICAgICAgaWYgKHVyaS5pcygncHVueWNvZGUnKSAmJiBwdW55Y29kZSkge1xuICAgICAgICB0ICs9IHB1bnljb2RlLnRvVW5pY29kZSh1cmkuX3BhcnRzLmhvc3RuYW1lKTtcbiAgICAgICAgaWYgKHVyaS5fcGFydHMucG9ydCkge1xuICAgICAgICAgIHQgKz0gJzonICsgdXJpLl9wYXJ0cy5wb3J0O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0ICs9IHVyaS5ob3N0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVyaS5fcGFydHMuaG9zdG5hbWUgJiYgdXJpLl9wYXJ0cy5wYXRoICYmIHVyaS5fcGFydHMucGF0aC5jaGFyQXQoMCkgIT09ICcvJykge1xuICAgICAgdCArPSAnLyc7XG4gICAgfVxuXG4gICAgdCArPSB1cmkucGF0aCh0cnVlKTtcbiAgICBpZiAodXJpLl9wYXJ0cy5xdWVyeSkge1xuICAgICAgdmFyIHEgPSAnJztcbiAgICAgIGZvciAodmFyIGkgPSAwLCBxcCA9IHVyaS5fcGFydHMucXVlcnkuc3BsaXQoJyYnKSwgbCA9IHFwLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICB2YXIga3YgPSAocXBbaV0gfHwgJycpLnNwbGl0KCc9Jyk7XG4gICAgICAgIHEgKz0gJyYnICsgVVJJLmRlY29kZVF1ZXJ5KGt2WzBdLCB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKVxuICAgICAgICAgIC5yZXBsYWNlKC8mL2csICclMjYnKTtcblxuICAgICAgICBpZiAoa3ZbMV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHEgKz0gJz0nICsgVVJJLmRlY29kZVF1ZXJ5KGt2WzFdLCB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKVxuICAgICAgICAgICAgLnJlcGxhY2UoLyYvZywgJyUyNicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0ICs9ICc/JyArIHEuc3Vic3RyaW5nKDEpO1xuICAgIH1cblxuICAgIHQgKz0gVVJJLmRlY29kZVF1ZXJ5KHVyaS5oYXNoKCksIHRydWUpO1xuICAgIHJldHVybiB0O1xuICB9O1xuXG4gIC8vIHJlc29sdmluZyByZWxhdGl2ZSBhbmQgYWJzb2x1dGUgVVJMc1xuICBwLmFic29sdXRlVG8gPSBmdW5jdGlvbihiYXNlKSB7XG4gICAgdmFyIHJlc29sdmVkID0gdGhpcy5jbG9uZSgpO1xuICAgIHZhciBwcm9wZXJ0aWVzID0gWydwcm90b2NvbCcsICd1c2VybmFtZScsICdwYXNzd29yZCcsICdob3N0bmFtZScsICdwb3J0J107XG4gICAgdmFyIGJhc2VkaXIsIGksIHA7XG5cbiAgICBpZiAodGhpcy5fcGFydHMudXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VSTnMgZG8gbm90IGhhdmUgYW55IGdlbmVyYWxseSBkZWZpbmVkIGhpZXJhcmNoaWNhbCBjb21wb25lbnRzJyk7XG4gICAgfVxuXG4gICAgaWYgKCEoYmFzZSBpbnN0YW5jZW9mIFVSSSkpIHtcbiAgICAgIGJhc2UgPSBuZXcgVVJJKGJhc2UpO1xuICAgIH1cblxuICAgIGlmIChyZXNvbHZlZC5fcGFydHMucHJvdG9jb2wpIHtcbiAgICAgIC8vIERpcmVjdGx5IHJldHVybnMgZXZlbiBpZiB0aGlzLl9wYXJ0cy5ob3N0bmFtZSBpcyBlbXB0eS5cbiAgICAgIHJldHVybiByZXNvbHZlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzb2x2ZWQuX3BhcnRzLnByb3RvY29sID0gYmFzZS5fcGFydHMucHJvdG9jb2w7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3BhcnRzLmhvc3RuYW1lKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgfVxuXG4gICAgZm9yIChpID0gMDsgKHAgPSBwcm9wZXJ0aWVzW2ldKTsgaSsrKSB7XG4gICAgICByZXNvbHZlZC5fcGFydHNbcF0gPSBiYXNlLl9wYXJ0c1twXTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc29sdmVkLl9wYXJ0cy5wYXRoKSB7XG4gICAgICByZXNvbHZlZC5fcGFydHMucGF0aCA9IGJhc2UuX3BhcnRzLnBhdGg7XG4gICAgICBpZiAoIXJlc29sdmVkLl9wYXJ0cy5xdWVyeSkge1xuICAgICAgICByZXNvbHZlZC5fcGFydHMucXVlcnkgPSBiYXNlLl9wYXJ0cy5xdWVyeTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlc29sdmVkLl9wYXJ0cy5wYXRoLnN1YnN0cmluZygtMikgPT09ICcuLicpIHtcbiAgICAgICAgcmVzb2x2ZWQuX3BhcnRzLnBhdGggKz0gJy8nO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzb2x2ZWQucGF0aCgpLmNoYXJBdCgwKSAhPT0gJy8nKSB7XG4gICAgICAgIGJhc2VkaXIgPSBiYXNlLmRpcmVjdG9yeSgpO1xuICAgICAgICBiYXNlZGlyID0gYmFzZWRpciA/IGJhc2VkaXIgOiBiYXNlLnBhdGgoKS5pbmRleE9mKCcvJykgPT09IDAgPyAnLycgOiAnJztcbiAgICAgICAgcmVzb2x2ZWQuX3BhcnRzLnBhdGggPSAoYmFzZWRpciA/IChiYXNlZGlyICsgJy8nKSA6ICcnKSArIHJlc29sdmVkLl9wYXJ0cy5wYXRoO1xuICAgICAgICByZXNvbHZlZC5ub3JtYWxpemVQYXRoKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVzb2x2ZWQuYnVpbGQoKTtcbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gIH07XG4gIHAucmVsYXRpdmVUbyA9IGZ1bmN0aW9uKGJhc2UpIHtcbiAgICB2YXIgcmVsYXRpdmUgPSB0aGlzLmNsb25lKCkubm9ybWFsaXplKCk7XG4gICAgdmFyIHJlbGF0aXZlUGFydHMsIGJhc2VQYXJ0cywgY29tbW9uLCByZWxhdGl2ZVBhdGgsIGJhc2VQYXRoO1xuXG4gICAgaWYgKHJlbGF0aXZlLl9wYXJ0cy51cm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVVJOcyBkbyBub3QgaGF2ZSBhbnkgZ2VuZXJhbGx5IGRlZmluZWQgaGllcmFyY2hpY2FsIGNvbXBvbmVudHMnKTtcbiAgICB9XG5cbiAgICBiYXNlID0gbmV3IFVSSShiYXNlKS5ub3JtYWxpemUoKTtcbiAgICByZWxhdGl2ZVBhcnRzID0gcmVsYXRpdmUuX3BhcnRzO1xuICAgIGJhc2VQYXJ0cyA9IGJhc2UuX3BhcnRzO1xuICAgIHJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlLnBhdGgoKTtcbiAgICBiYXNlUGF0aCA9IGJhc2UucGF0aCgpO1xuXG4gICAgaWYgKHJlbGF0aXZlUGF0aC5jaGFyQXQoMCkgIT09ICcvJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVUkkgaXMgYWxyZWFkeSByZWxhdGl2ZScpO1xuICAgIH1cblxuICAgIGlmIChiYXNlUGF0aC5jaGFyQXQoMCkgIT09ICcvJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2FsY3VsYXRlIGEgVVJJIHJlbGF0aXZlIHRvIGFub3RoZXIgcmVsYXRpdmUgVVJJJyk7XG4gICAgfVxuXG4gICAgaWYgKHJlbGF0aXZlUGFydHMucHJvdG9jb2wgPT09IGJhc2VQYXJ0cy5wcm90b2NvbCkge1xuICAgICAgcmVsYXRpdmVQYXJ0cy5wcm90b2NvbCA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHJlbGF0aXZlUGFydHMudXNlcm5hbWUgIT09IGJhc2VQYXJ0cy51c2VybmFtZSB8fCByZWxhdGl2ZVBhcnRzLnBhc3N3b3JkICE9PSBiYXNlUGFydHMucGFzc3dvcmQpIHtcbiAgICAgIHJldHVybiByZWxhdGl2ZS5idWlsZCgpO1xuICAgIH1cblxuICAgIGlmIChyZWxhdGl2ZVBhcnRzLnByb3RvY29sICE9PSBudWxsIHx8IHJlbGF0aXZlUGFydHMudXNlcm5hbWUgIT09IG51bGwgfHwgcmVsYXRpdmVQYXJ0cy5wYXNzd29yZCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHJlbGF0aXZlLmJ1aWxkKCk7XG4gICAgfVxuXG4gICAgaWYgKHJlbGF0aXZlUGFydHMuaG9zdG5hbWUgPT09IGJhc2VQYXJ0cy5ob3N0bmFtZSAmJiByZWxhdGl2ZVBhcnRzLnBvcnQgPT09IGJhc2VQYXJ0cy5wb3J0KSB7XG4gICAgICByZWxhdGl2ZVBhcnRzLmhvc3RuYW1lID0gbnVsbDtcbiAgICAgIHJlbGF0aXZlUGFydHMucG9ydCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZWxhdGl2ZS5idWlsZCgpO1xuICAgIH1cblxuICAgIGlmIChyZWxhdGl2ZVBhdGggPT09IGJhc2VQYXRoKSB7XG4gICAgICByZWxhdGl2ZVBhcnRzLnBhdGggPSAnJztcbiAgICAgIHJldHVybiByZWxhdGl2ZS5idWlsZCgpO1xuICAgIH1cblxuICAgIC8vIGRldGVybWluZSBjb21tb24gc3ViIHBhdGhcbiAgICBjb21tb24gPSBVUkkuY29tbW9uUGF0aChyZWxhdGl2ZVBhdGgsIGJhc2VQYXRoKTtcblxuICAgIC8vIElmIHRoZSBwYXRocyBoYXZlIG5vdGhpbmcgaW4gY29tbW9uLCByZXR1cm4gYSByZWxhdGl2ZSBVUkwgd2l0aCB0aGUgYWJzb2x1dGUgcGF0aC5cbiAgICBpZiAoIWNvbW1vbikge1xuICAgICAgcmV0dXJuIHJlbGF0aXZlLmJ1aWxkKCk7XG4gICAgfVxuXG4gICAgdmFyIHBhcmVudHMgPSBiYXNlUGFydHMucGF0aFxuICAgICAgLnN1YnN0cmluZyhjb21tb24ubGVuZ3RoKVxuICAgICAgLnJlcGxhY2UoL1teXFwvXSokLywgJycpXG4gICAgICAucmVwbGFjZSgvLio/XFwvL2csICcuLi8nKTtcblxuICAgIHJlbGF0aXZlUGFydHMucGF0aCA9IChwYXJlbnRzICsgcmVsYXRpdmVQYXJ0cy5wYXRoLnN1YnN0cmluZyhjb21tb24ubGVuZ3RoKSkgfHwgJy4vJztcblxuICAgIHJldHVybiByZWxhdGl2ZS5idWlsZCgpO1xuICB9O1xuXG4gIC8vIGNvbXBhcmluZyBVUklzXG4gIHAuZXF1YWxzID0gZnVuY3Rpb24odXJpKSB7XG4gICAgdmFyIG9uZSA9IHRoaXMuY2xvbmUoKTtcbiAgICB2YXIgdHdvID0gbmV3IFVSSSh1cmkpO1xuICAgIHZhciBvbmVfbWFwID0ge307XG4gICAgdmFyIHR3b19tYXAgPSB7fTtcbiAgICB2YXIgY2hlY2tlZCA9IHt9O1xuICAgIHZhciBvbmVfcXVlcnksIHR3b19xdWVyeSwga2V5O1xuXG4gICAgb25lLm5vcm1hbGl6ZSgpO1xuICAgIHR3by5ub3JtYWxpemUoKTtcblxuICAgIC8vIGV4YWN0IG1hdGNoXG4gICAgaWYgKG9uZS50b1N0cmluZygpID09PSB0d28udG9TdHJpbmcoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gZXh0cmFjdCBxdWVyeSBzdHJpbmdcbiAgICBvbmVfcXVlcnkgPSBvbmUucXVlcnkoKTtcbiAgICB0d29fcXVlcnkgPSB0d28ucXVlcnkoKTtcbiAgICBvbmUucXVlcnkoJycpO1xuICAgIHR3by5xdWVyeSgnJyk7XG5cbiAgICAvLyBkZWZpbml0ZWx5IG5vdCBlcXVhbCBpZiBub3QgZXZlbiBub24tcXVlcnkgcGFydHMgbWF0Y2hcbiAgICBpZiAob25lLnRvU3RyaW5nKCkgIT09IHR3by50b1N0cmluZygpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gcXVlcnkgcGFyYW1ldGVycyBoYXZlIHRoZSBzYW1lIGxlbmd0aCwgZXZlbiBpZiB0aGV5J3JlIHBlcm11dGVkXG4gICAgaWYgKG9uZV9xdWVyeS5sZW5ndGggIT09IHR3b19xdWVyeS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBvbmVfbWFwID0gVVJJLnBhcnNlUXVlcnkob25lX3F1ZXJ5LCB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtcbiAgICB0d29fbWFwID0gVVJJLnBhcnNlUXVlcnkodHdvX3F1ZXJ5LCB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtcblxuICAgIGZvciAoa2V5IGluIG9uZV9tYXApIHtcbiAgICAgIGlmIChoYXNPd24uY2FsbChvbmVfbWFwLCBrZXkpKSB7XG4gICAgICAgIGlmICghaXNBcnJheShvbmVfbWFwW2tleV0pKSB7XG4gICAgICAgICAgaWYgKG9uZV9tYXBba2V5XSAhPT0gdHdvX21hcFtrZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFhcnJheXNFcXVhbChvbmVfbWFwW2tleV0sIHR3b19tYXBba2V5XSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjaGVja2VkW2tleV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoa2V5IGluIHR3b19tYXApIHtcbiAgICAgIGlmIChoYXNPd24uY2FsbCh0d29fbWFwLCBrZXkpKSB7XG4gICAgICAgIGlmICghY2hlY2tlZFtrZXldKSB7XG4gICAgICAgICAgLy8gdHdvIGNvbnRhaW5zIGEgcGFyYW1ldGVyIG5vdCBwcmVzZW50IGluIG9uZVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8vIHN0YXRlXG4gIHAucHJldmVudEludmFsaWRIb3N0bmFtZSA9IGZ1bmN0aW9uKHYpIHtcbiAgICB0aGlzLl9wYXJ0cy5wcmV2ZW50SW52YWxpZEhvc3RuYW1lID0gISF2O1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIHAuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzID0gZnVuY3Rpb24odikge1xuICAgIHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycyA9ICEhdjtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBwLmVzY2FwZVF1ZXJ5U3BhY2UgPSBmdW5jdGlvbih2KSB7XG4gICAgdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSA9ICEhdjtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICByZXR1cm4gVVJJO1xufSkpO1xuIiwiLyohXG4gKiB2dWUtc3BpbmtpdCB2MS40LjFcbiAqIChjKSAyMDE4LXByZXNlbnQgQ2hhbndpdCBQaXJvbXBsYWQgPGtpbmdrb25nMjEwM0BnbWFpbC5jb20+XG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cbiFmdW5jdGlvbihhLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOmEudnVlU3BpbmtpdD10KCl9KHRoaXMsZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgYT17Y2lyY2xlOntjbGFzc05hbWU6XCJzay1jaXJjbGVcIixkaXZDb3VudDoxMn0sXCJjdWJlLWdyaWRcIjp7Y2xhc3NOYW1lOlwic2stY3ViZS1ncmlkXCIsZGl2Q291bnQ6OX0sd2F2ZTp7Y2xhc3NOYW1lOlwic2std2F2ZVwiLGRpdkNvdW50OjV9LFwiZm9sZGluZy1jdWJlXCI6e2NsYXNzTmFtZTpcInNrLWZvbGRpbmctY3ViZVwiLGRpdkNvdW50OjR9LFwidGhyZWUtYm91bmNlXCI6e2NsYXNzTmFtZTpcInNrLXRocmVlLWJvdW5jZVwiLGRpdkNvdW50OjN9LFwiZG91YmxlLWJvdW5jZVwiOntjbGFzc05hbWU6XCJzay1kb3VibGUtYm91bmNlXCIsZGl2Q291bnQ6Mn0sXCJ3YW5kZXJpbmctY3ViZXNcIjp7Y2xhc3NOYW1lOlwic2std2FuZGVyaW5nLWN1YmVzXCIsZGl2Q291bnQ6Mn0sXCJjaGFzaW5nLWRvdHNcIjp7Y2xhc3NOYW1lOlwic2stY2hhc2luZy1kb3RzXCIsZGl2Q291bnQ6Mn0sXCJyb3RhdGluZy1wbGFuZVwiOntjbGFzc05hbWU6XCJzay1yb3RhdGluZy1wbGFuZVwiLGRpdkNvdW50OjF9LHB1bHNlOntjbGFzc05hbWU6XCJzay1wdWxzZVwiLGRpdkNvdW50OjF9LHdvcmRwcmVzczp7Y2xhc3NOYW1lOlwic2std29yZHByZXNzXCIsZGl2Q291bnQ6MX0sXCJmYWRpbmctY2lyY2xlXCI6e2NsYXNzTmFtZTpcInNrLWZhZGluZy1jaXJjbGVcIixkaXZDb3VudDoxMn19LHQ9e1wiYmFsbC1ncmlkLWJlYXRcIjp7ZGl2Q291bnQ6OX0sXCJiYWxsLWdyaWQtcHVsc2VcIjp7ZGl2Q291bnQ6OX0sXCJsaW5lLXNwaW4tZmFkZS1sb2FkZXJcIjp7ZGl2Q291bnQ6OH0sXCJiYWxsLXNwaW4tZmFkZS1sb2FkZXJcIjp7ZGl2Q291bnQ6OH0sXCJiYWxsLXB1bHNlLXJpc2VcIjp7ZGl2Q291bnQ6NX0sXCJsaW5lLXNjYWxlXCI6e2RpdkNvdW50OjV9LFwibGluZS1zY2FsZS1wdWxzZS1vdXRcIjp7ZGl2Q291bnQ6NX0sXCJsaW5lLXNjYWxlLXB1bHNlLW91dC1yYXBpZFwiOntkaXZDb3VudDo1fSxwYWNtYW46e2RpdkNvdW50OjV9LFwibGluZS1zY2FsZS1wYXJ0eVwiOntkaXZDb3VudDo0fSxcImJhbGwtdHJpYW5nbGUtcGF0aFwiOntkaXZDb3VudDozfSxcImJhbGwtc2NhbGUtbXVsdGlwbGVcIjp7ZGl2Q291bnQ6M30sXCJiYWxsLXNjYWxlLXJpcHBsZS1tdWx0aXBsZVwiOntkaXZDb3VudDozfSxcImJhbGwtcHVsc2Utc3luY1wiOntkaXZDb3VudDozfSxcImJhbGwtYmVhdFwiOntkaXZDb3VudDozfSxcImJhbGwtemlnLXphZ1wiOntkaXZDb3VudDoyfSxcImJhbGwtemlnLXphZy1kZWZsZWN0XCI6e2RpdkNvdW50OjJ9LFwiYmFsbC1jbGlwLXJvdGF0ZS1wdWxzZVwiOntkaXZDb3VudDoyfSxcImJhbGwtY2xpcC1yb3RhdGUtbXVsdGlwbGVcIjp7ZGl2Q291bnQ6Mn0sXCJiYWxsLWNsaXAtcm90YXRlXCI6e2RpdkNvdW50OjF9LFwiYmFsbC1zY2FsZS1yaXBwbGVcIjp7ZGl2Q291bnQ6MX0sXCJ0cmlhbmdsZS1za2V3LXNwaW5cIjp7ZGl2Q291bnQ6MX19LGk9e3NwaW5raXRTcGlubmVyczphLGxvYWRlcnNDc3NTcGlubmVyczp0LGFsbFNwaW5uZXJzOk9iamVjdC5hc3NpZ24oe30sYSx0KX07cmV0dXJuIGZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50KXt2YXIgYT1kb2N1bWVudC5oZWFkfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImhlYWRcIilbMF0sdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIiksaT1cIi8qKiAqICogQWxsIGFuaW1hdGlvbnMgbXVzdCBsaXZlIGluIHRoZWlyIG93biBmaWxlICogaW4gdGhlIGFuaW1hdGlvbnMgZGlyZWN0b3J5IGFuZCBiZSBpbmNsdWRlZCAqIGhlcmUuICogKi8gLyoqICogU3R5bGVzIHNoYXJlZCBieSBtdWx0aXBsZSBhbmltYXRpb25zICovIC8qKiAqIERvdHMgKi8gQC13ZWJraXQta2V5ZnJhbWVzIHNjYWxlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH0gNDUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMSk7IHRyYW5zZm9ybTogc2NhbGUoMC4xKTsgb3BhY2l0eTogMC43OyB9IDgwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfSB9IEBrZXlmcmFtZXMgc2NhbGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfSA0NSUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4xKTsgdHJhbnNmb3JtOiBzY2FsZSgwLjEpOyBvcGFjaXR5OiAwLjc7IH0gODAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxOyB9IH0gLmJhbGwtcHVsc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMCkgeyAtd2Via2l0LWFuaW1hdGlvbjogc2NhbGUgMC43NXMgLTAuMzZzIGluZmluaXRlIGN1YmljLWJlemllcigwLjIsIDAuNjgsIDAuMTgsIDEuMDgpOyBhbmltYXRpb246IHNjYWxlIDAuNzVzIC0wLjM2cyBpbmZpbml0ZSBjdWJpYy1iZXppZXIoMC4yLCAwLjY4LCAwLjE4LCAxLjA4KTsgfSAuYmFsbC1wdWxzZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgxKSB7IC13ZWJraXQtYW5pbWF0aW9uOiBzY2FsZSAwLjc1cyAtMC4yNHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMiwgMC42OCwgMC4xOCwgMS4wOCk7IGFuaW1hdGlvbjogc2NhbGUgMC43NXMgLTAuMjRzIGluZmluaXRlIGN1YmljLWJlemllcigwLjIsIDAuNjgsIDAuMTgsIDEuMDgpOyB9IC5iYWxsLXB1bHNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb246IHNjYWxlIDAuNzVzIC0wLjEycyBpbmZpbml0ZSBjdWJpYy1iZXppZXIoMC4yLCAwLjY4LCAwLjE4LCAxLjA4KTsgYW5pbWF0aW9uOiBzY2FsZSAwLjc1cyAtMC4xMnMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMiwgMC42OCwgMC4xOCwgMS4wOCk7IH0gLmJhbGwtcHVsc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMykgeyAtd2Via2l0LWFuaW1hdGlvbjogc2NhbGUgMC43NXMgMHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMiwgMC42OCwgMC4xOCwgMS4wOCk7IGFuaW1hdGlvbjogc2NhbGUgMC43NXMgMHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMiwgMC42OCwgMC4xOCwgMS4wOCk7IH0gLmJhbGwtcHVsc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IGJvcmRlci1yYWRpdXM6IDEwMCU7IG1hcmdpbjogMnB4OyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSBALXdlYmtpdC1rZXlmcmFtZXMgYmFsbC1wdWxzZS1zeW5jIHsgMzMlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfSA2NiUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfSBAa2V5ZnJhbWVzIGJhbGwtcHVsc2Utc3luYyB7IDMzJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH0gNjYlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH0gLmJhbGwtcHVsc2Utc3luYyA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgwKSB7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXB1bHNlLXN5bmMgMC42cyAtMC4yMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbjogYmFsbC1wdWxzZS1zeW5jIDAuNnMgLTAuMjFzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9IC5iYWxsLXB1bHNlLXN5bmMgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMSkgeyAtd2Via2l0LWFuaW1hdGlvbjogYmFsbC1wdWxzZS1zeW5jIDAuNnMgLTAuMTRzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb246IGJhbGwtcHVsc2Utc3luYyAwLjZzIC0wLjE0cyBpbmZpbml0ZSBlYXNlLWluLW91dDsgfSAuYmFsbC1wdWxzZS1zeW5jID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb246IGJhbGwtcHVsc2Utc3luYyAwLjZzIC0wLjA3cyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uOiBiYWxsLXB1bHNlLXN5bmMgMC42cyAtMC4wN3MgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IH0gLmJhbGwtcHVsc2Utc3luYyA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgzKSB7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXB1bHNlLXN5bmMgMC42cyAwcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uOiBiYWxsLXB1bHNlLXN5bmMgMC42cyAwcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgfSAuYmFsbC1wdWxzZS1zeW5jID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBtYXJnaW46IDJweDsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtc2NhbGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTsgdHJhbnNmb3JtOiBzY2FsZSgwKTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAwOyB9IH0gQGtleWZyYW1lcyBiYWxsLXNjYWxlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7IHRyYW5zZm9ybTogc2NhbGUoMCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMDsgfSB9IC5iYWxsLXNjYWxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBtYXJnaW46IDJweDsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGhlaWdodDogNjBweDsgd2lkdGg6IDYwcHg7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNjYWxlIDFzIDBzIGVhc2UtaW4tb3V0IGluZmluaXRlOyBhbmltYXRpb246IGJhbGwtc2NhbGUgMXMgMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0gQGtleWZyYW1lcyBiYWxsLXNjYWxlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7IHRyYW5zZm9ybTogc2NhbGUoMCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMDsgfSB9IC5iYWxsLXNjYWxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBtYXJnaW46IDJweDsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGhlaWdodDogNjBweDsgd2lkdGg6IDYwcHg7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNjYWxlIDFzIDBzIGVhc2UtaW4tb3V0IGluZmluaXRlOyBhbmltYXRpb246IGJhbGwtc2NhbGUgMXMgMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0gLmJhbGwtc2NhbGUtcmFuZG9tW2RhdGEtdi0zOTQzMmY5OV0geyB3aWR0aDogMzdweDsgaGVpZ2h0OiA0MHB4OyB9IC5iYWxsLXNjYWxlLXJhbmRvbSA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgYm9yZGVyLXJhZGl1czogMTAwJTsgbWFyZ2luOiAycHg7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGhlaWdodDogMzBweDsgd2lkdGg6IDMwcHg7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNjYWxlIDFzIDBzIGVhc2UtaW4tb3V0IGluZmluaXRlOyBhbmltYXRpb246IGJhbGwtc2NhbGUgMXMgMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0gLmJhbGwtc2NhbGUtcmFuZG9tID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDEpIHsgbWFyZ2luLWxlZnQ6IC03cHg7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNjYWxlIDFzIDAuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IGFuaW1hdGlvbjogYmFsbC1zY2FsZSAxcyAwLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9IC5iYWxsLXNjYWxlLXJhbmRvbSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgzKSB7IG1hcmdpbi1sZWZ0OiAtMnB4OyBtYXJnaW4tdG9wOiA5cHg7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNjYWxlIDFzIDAuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IGFuaW1hdGlvbjogYmFsbC1zY2FsZSAxcyAwLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9IEAtd2Via2l0LWtleWZyYW1lcyByb3RhdGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH0gQGtleWZyYW1lcyByb3RhdGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH0gLmJhbGwtcm90YXRlW2RhdGEtdi0zOTQzMmY5OV0geyBwb3NpdGlvbjogcmVsYXRpdmU7IH0gLmJhbGwtcm90YXRlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBtYXJnaW46IDJweDsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0gLmJhbGwtcm90YXRlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06Zmlyc3QtY2hpbGQgeyAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRlIDFzIDBzIGN1YmljLWJlemllcigwLjcsIC0wLjEzLCAwLjIyLCAwLjg2KSBpbmZpbml0ZTsgYW5pbWF0aW9uOiByb3RhdGUgMXMgMHMgY3ViaWMtYmV6aWVyKDAuNywgLTAuMTMsIDAuMjIsIDAuODYpIGluZmluaXRlOyB9IC5iYWxsLXJvdGF0ZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOmJlZm9yZSwgLmJhbGwtcm90YXRlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06YWZ0ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBtYXJnaW46IDJweDsgY29udGVudDogXFxcIlxcXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgb3BhY2l0eTogMC44OyB9IC5iYWxsLXJvdGF0ZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOmJlZm9yZSB7IHRvcDogMHB4OyBsZWZ0OiAtMjhweDsgfSAuYmFsbC1yb3RhdGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTphZnRlciB7IHRvcDogMHB4OyBsZWZ0OiAyNXB4OyB9IEBrZXlmcmFtZXMgcm90YXRlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHNjYWxlKDEpOyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgc2NhbGUoMC42KTsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSBzY2FsZSgwLjYpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgc2NhbGUoMSk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgc2NhbGUoMSk7IH0gfSAuYmFsbC1jbGlwLXJvdGF0ZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgYm9yZGVyLXJhZGl1czogMTAwJTsgbWFyZ2luOiAycHg7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYm9yZGVyOiAycHggc29saWQgI2ZmZjsgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7IGhlaWdodDogMjVweDsgd2lkdGg6IDI1cHg7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0ZSAwLjc1cyAwcyBsaW5lYXIgaW5maW5pdGU7IGFuaW1hdGlvbjogcm90YXRlIDAuNzVzIDBzIGxpbmVhciBpbmZpbml0ZTsgfSBAa2V5ZnJhbWVzIHJvdGF0ZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgc2NhbGUoMSk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHNjYWxlKDAuNik7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgc2NhbGUoMC42KTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIHNjYWxlKDEpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIHNjYWxlKDEpOyB9IH0gQGtleWZyYW1lcyBzY2FsZSB7IDMwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjMpOyB0cmFuc2Zvcm06IHNjYWxlKDAuMyk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9IC5iYWxsLWNsaXAtcm90YXRlLXB1bHNlW2RhdGEtdi0zOTQzMmY5OV0geyBwb3NpdGlvbjogcmVsYXRpdmU7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTsgfSAuYmFsbC1jbGlwLXJvdGF0ZS1wdWxzZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IGJvcmRlci1yYWRpdXM6IDEwMCU7IH0gLmJhbGwtY2xpcC1yb3RhdGUtcHVsc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpmaXJzdC1jaGlsZCB7IGJhY2tncm91bmQ6ICNmZmY7IGhlaWdodDogMTZweDsgd2lkdGg6IDE2cHg7IHRvcDogN3B4OyBsZWZ0OiAtN3B4OyAtd2Via2l0LWFuaW1hdGlvbjogc2NhbGUgMXMgMHMgY3ViaWMtYmV6aWVyKDAuMDksIDAuNTcsIDAuNDksIDAuOSkgaW5maW5pdGU7IGFuaW1hdGlvbjogc2NhbGUgMXMgMHMgY3ViaWMtYmV6aWVyKDAuMDksIDAuNTcsIDAuNDksIDAuOSkgaW5maW5pdGU7IH0gLmJhbGwtY2xpcC1yb3RhdGUtcHVsc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpsYXN0LWNoaWxkIHsgcG9zaXRpb246IGFic29sdXRlOyBib3JkZXI6IDJweCBzb2xpZCAjZmZmOyB3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4OyBsZWZ0OiAtMTZweDsgdG9wOiAtMnB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAycHggc29saWQ7IGJvcmRlci1jb2xvcjogI2ZmZiB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50OyAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRlIDFzIDBzIGN1YmljLWJlemllcigwLjA5LCAwLjU3LCAwLjQ5LCAwLjkpIGluZmluaXRlOyBhbmltYXRpb246IHJvdGF0ZSAxcyAwcyBjdWJpYy1iZXppZXIoMC4wOSwgMC41NywgMC40OSwgMC45KSBpbmZpbml0ZTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOyBhbmltYXRpb24tZHVyYXRpb246IDFzOyB9IEBrZXlmcmFtZXMgcm90YXRlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHNjYWxlKDEpOyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgc2NhbGUoMC42KTsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSBzY2FsZSgwLjYpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgc2NhbGUoMSk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgc2NhbGUoMSk7IH0gfSAuYmFsbC1jbGlwLXJvdGF0ZS1tdWx0aXBsZVtkYXRhLXYtMzk0MzJmOTldIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9IC5iYWxsLWNsaXAtcm90YXRlLW11bHRpcGxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTIwcHg7IHRvcDogLTIwcHg7IGJvcmRlcjogMnB4IHNvbGlkICNmZmY7IGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDsgYm9yZGVyLXJhZGl1czogMTAwJTsgaGVpZ2h0OiAzNXB4OyB3aWR0aDogMzVweDsgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0ZSAxcyAwcyBlYXNlLWluLW91dCBpbmZpbml0ZTsgYW5pbWF0aW9uOiByb3RhdGUgMXMgMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0gLmJhbGwtY2xpcC1yb3RhdGUtbXVsdGlwbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpsYXN0LWNoaWxkIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB0b3A6IC0xMHB4OyBsZWZ0OiAtMTBweDsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuNXM7IGFuaW1hdGlvbi1kdXJhdGlvbjogMC41czsgYm9yZGVyLWNvbG9yOiAjZmZmIHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsgfSBALXdlYmtpdC1rZXlmcmFtZXMgYmFsbC1zY2FsZS1yaXBwbGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjEpOyB0cmFuc2Zvcm06IHNjYWxlKDAuMSk7IG9wYWNpdHk6IDE7IH0gNzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAwLjc7IH0gMTAwJSB7IG9wYWNpdHk6IDAuMDsgfSB9IEBrZXlmcmFtZXMgYmFsbC1zY2FsZS1yaXBwbGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjEpOyB0cmFuc2Zvcm06IHNjYWxlKDAuMSk7IG9wYWNpdHk6IDE7IH0gNzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAwLjc7IH0gMTAwJSB7IG9wYWNpdHk6IDAuMDsgfSB9IC5iYWxsLXNjYWxlLXJpcHBsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBoZWlnaHQ6IDUwcHg7IHdpZHRoOiA1MHB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBib3JkZXI6IDJweCBzb2xpZCAjZmZmOyAtd2Via2l0LWFuaW1hdGlvbjogYmFsbC1zY2FsZS1yaXBwbGUgMXMgMHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMjEsIDAuNTMsIDAuNTYsIDAuOCk7IGFuaW1hdGlvbjogYmFsbC1zY2FsZS1yaXBwbGUgMXMgMHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMjEsIDAuNTMsIDAuNTYsIDAuOCk7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtc2NhbGUtcmlwcGxlLW11bHRpcGxlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4xKTsgdHJhbnNmb3JtOiBzY2FsZSgwLjEpOyBvcGFjaXR5OiAxOyB9IDcwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMC43OyB9IDEwMCUgeyBvcGFjaXR5OiAwLjA7IH0gfSBAa2V5ZnJhbWVzIGJhbGwtc2NhbGUtcmlwcGxlLW11bHRpcGxlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4xKTsgdHJhbnNmb3JtOiBzY2FsZSgwLjEpOyBvcGFjaXR5OiAxOyB9IDcwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMC43OyB9IDEwMCUgeyBvcGFjaXR5OiAwLjA7IH0gfSAuYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGVbZGF0YS12LTM5NDMyZjk5XSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1cHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1cHgpOyB9IC5iYWxsLXNjYWxlLXJpcHBsZS1tdWx0aXBsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgwKSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC44czsgYW5pbWF0aW9uLWRlbGF5OiAtMC44czsgfSAuYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMSkgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuNnM7IGFuaW1hdGlvbi1kZWxheTogLTAuNnM7IH0gLmJhbGwtc2NhbGUtcmlwcGxlLW11bHRpcGxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjRzOyBhbmltYXRpb24tZGVsYXk6IC0wLjRzOyB9IC5iYWxsLXNjYWxlLXJpcHBsZS1tdWx0aXBsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgzKSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC4yczsgYW5pbWF0aW9uLWRlbGF5OiAtMC4yczsgfSAuYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0ycHg7IGxlZnQ6IC0yNnB4OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBib3JkZXI6IDJweCBzb2xpZCAjZmZmOyAtd2Via2l0LWFuaW1hdGlvbjogYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUgMS4yNXMgMHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMjEsIDAuNTMsIDAuNTYsIDAuOCk7IGFuaW1hdGlvbjogYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUgMS4yNXMgMHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMjEsIDAuNTMsIDAuNTYsIDAuOCk7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtYmVhdCB7IDUwJSB7IG9wYWNpdHk6IDAuMjsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNzUpOyB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpOyB9IDEwMCUgeyBvcGFjaXR5OiAxOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfSBAa2V5ZnJhbWVzIGJhbGwtYmVhdCB7IDUwJSB7IG9wYWNpdHk6IDAuMjsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNzUpOyB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpOyB9IDEwMCUgeyBvcGFjaXR5OiAxOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfSAuYmFsbC1iZWF0ID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBtYXJnaW46IDJweDsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLWJlYXQgMC43cyAwcyBpbmZpbml0ZSBsaW5lYXI7IGFuaW1hdGlvbjogYmFsbC1iZWF0IDAuN3MgMHMgaW5maW5pdGUgbGluZWFyOyB9IC5iYWxsLWJlYXQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMm4tMSkgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuMzVzICFpbXBvcnRhbnQ7IGFuaW1hdGlvbi1kZWxheTogLTAuMzVzICFpbXBvcnRhbnQ7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtc2NhbGUtbXVsdGlwbGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTsgdHJhbnNmb3JtOiBzY2FsZSgwKTsgb3BhY2l0eTogMDsgfSA1JSB7IG9wYWNpdHk6IDE7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMDsgfSB9IEBrZXlmcmFtZXMgYmFsbC1zY2FsZS1tdWx0aXBsZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApOyB0cmFuc2Zvcm06IHNjYWxlKDApOyBvcGFjaXR5OiAwOyB9IDUlIHsgb3BhY2l0eTogMTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAwOyB9IH0gLmJhbGwtc2NhbGUtbXVsdGlwbGVbZGF0YS12LTM5NDMyZjk5XSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyB9IC5iYWxsLXNjYWxlLW11bHRpcGxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjRzOyBhbmltYXRpb24tZGVsYXk6IC0wLjRzOyB9IC5iYWxsLXNjYWxlLW11bHRpcGxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDMpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjJzOyBhbmltYXRpb24tZGVsYXk6IC0wLjJzOyB9IC5iYWxsLXNjYWxlLW11bHRpcGxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBtYXJnaW46IDJweDsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC0zMHB4OyB0b3A6IDBweDsgb3BhY2l0eTogMDsgbWFyZ2luOiAwOyB3aWR0aDogNjBweDsgaGVpZ2h0OiA2MHB4OyAtd2Via2l0LWFuaW1hdGlvbjogYmFsbC1zY2FsZS1tdWx0aXBsZSAxcyAwcyBsaW5lYXIgaW5maW5pdGU7IGFuaW1hdGlvbjogYmFsbC1zY2FsZS1tdWx0aXBsZSAxcyAwcyBsaW5lYXIgaW5maW5pdGU7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtdHJpYW5nbGUtcGF0aC0xIHsgMzMlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyNXB4LCAtNTBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDI1cHgsIC01MHB4KTsgfSA2NiUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7IH0gfSBAa2V5ZnJhbWVzIGJhbGwtdHJpYW5nbGUtcGF0aC0xIHsgMzMlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyNXB4LCAtNTBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDI1cHgsIC01MHB4KTsgfSA2NiUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7IH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYmFsbC10cmlhbmdsZS1wYXRoLTIgeyAzMyUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDI1cHgsIDUwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyNXB4LCA1MHB4KTsgfSA2NiUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCA1MHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDUwcHgpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOyB9IH0gQGtleWZyYW1lcyBiYWxsLXRyaWFuZ2xlLXBhdGgtMiB7IDMzJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjVweCwgNTBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDI1cHgsIDUwcHgpOyB9IDY2JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDUwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgNTBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7IH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYmFsbC10cmlhbmdsZS1wYXRoLTMgeyAzMyUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MHB4LCAwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTBweCwgMHB4KTsgfSA2NiUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAtNTBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAtNTBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDBweCk7IH0gfSBAa2V5ZnJhbWVzIGJhbGwtdHJpYW5nbGUtcGF0aC0zIHsgMzMlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTBweCwgMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwcHgsIDBweCk7IH0gNjYlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgLTUwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgLTUwcHgpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOyB9IH0gLmJhbGwtdHJpYW5nbGUtcGF0aFtkYXRhLXYtMzk0MzJmOTldIHsgcG9zaXRpb246IHJlbGF0aXZlOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yOS45OTRweCwgLTM3LjUwOTM4cHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjkuOTk0cHgsIC0zNy41MDkzOHB4KTsgfSAuYmFsbC10cmlhbmdsZS1wYXRoID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDEpIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYmFsbC10cmlhbmdsZS1wYXRoLTE7IGFuaW1hdGlvbi1uYW1lOiBiYWxsLXRyaWFuZ2xlLXBhdGgtMTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDA7IGFuaW1hdGlvbi1kZWxheTogMDsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzOyBhbmltYXRpb24tZHVyYXRpb246IDJzOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH0gLmJhbGwtdHJpYW5nbGUtcGF0aCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgyKSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJhbGwtdHJpYW5nbGUtcGF0aC0yOyBhbmltYXRpb24tbmFtZTogYmFsbC10cmlhbmdsZS1wYXRoLTI7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwOyBhbmltYXRpb24tZGVsYXk6IDA7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsgYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9IC5iYWxsLXRyaWFuZ2xlLXBhdGggPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMykgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBiYWxsLXRyaWFuZ2xlLXBhdGgtMzsgYW5pbWF0aW9uLW5hbWU6IGJhbGwtdHJpYW5nbGUtcGF0aC0zOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMDsgYW5pbWF0aW9uLWRlbGF5OiAwOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfSAuYmFsbC10cmlhbmdsZS1wYXRoID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgYm9yZGVyLXJhZGl1czogMTAwJTsgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsgfSAuYmFsbC10cmlhbmdsZS1wYXRoID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLW9mLXR5cGUoMSkgeyB0b3A6IDUwcHg7IH0gLmJhbGwtdHJpYW5nbGUtcGF0aCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1vZi10eXBlKDIpIHsgbGVmdDogMjVweDsgfSAuYmFsbC10cmlhbmdsZS1wYXRoID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLW9mLXR5cGUoMykgeyB0b3A6IDUwcHg7IGxlZnQ6IDUwcHg7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtcHVsc2UtcmlzZS1ldmVuIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9IDI1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC40KTsgdHJhbnNmb3JtOiBzY2FsZSgwLjQpOyB9IDc1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9IEBrZXlmcmFtZXMgYmFsbC1wdWxzZS1yaXNlLWV2ZW4geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH0gMjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjQpOyB0cmFuc2Zvcm06IHNjYWxlKDAuNCk7IH0gNzUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtcHVsc2UtcmlzZS1vZGQgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjQpOyB0cmFuc2Zvcm06IHNjYWxlKDAuNCk7IH0gMjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9IDc1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNzUpOyB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpOyB9IH0gQGtleWZyYW1lcyBiYWxsLXB1bHNlLXJpc2Utb2RkIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC40KTsgdHJhbnNmb3JtOiBzY2FsZSgwLjQpOyB9IDI1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSk7IHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfSA3NSUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTsgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTsgfSB9IC5iYWxsLXB1bHNlLXJpc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IGJvcmRlci1yYWRpdXM6IDEwMCU7IG1hcmdpbjogMnB4OyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOyBhbmltYXRpb24tZHVyYXRpb246IDFzOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE1LCAwLjQ2LCAwLjksIDAuNik7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE1LCAwLjQ2LCAwLjksIDAuNik7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMDsgYW5pbWF0aW9uLWRlbGF5OiAwOyB9IC5iYWxsLXB1bHNlLXJpc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMm4pIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYmFsbC1wdWxzZS1yaXNlLWV2ZW47IGFuaW1hdGlvbi1uYW1lOiBiYWxsLXB1bHNlLXJpc2UtZXZlbjsgfSAuYmFsbC1wdWxzZS1yaXNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDJuLTEpIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYmFsbC1wdWxzZS1yaXNlLW9kZDsgYW5pbWF0aW9uLW5hbWU6IGJhbGwtcHVsc2UtcmlzZS1vZGQ7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtZ3JpZC1iZWF0IHsgNTAlIHsgb3BhY2l0eTogMC43OyB9IDEwMCUgeyBvcGFjaXR5OiAxOyB9IH0gQGtleWZyYW1lcyBiYWxsLWdyaWQtYmVhdCB7IDUwJSB7IG9wYWNpdHk6IDAuNzsgfSAxMDAlIHsgb3BhY2l0eTogMTsgfSB9IC5iYWxsLWdyaWQtYmVhdFtkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDU3cHg7IH0gLmJhbGwtZ3JpZC1iZWF0ID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDEpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNDRzOyBhbmltYXRpb24tZGVsYXk6IDAuNDRzOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS4yN3M7IGFuaW1hdGlvbi1kdXJhdGlvbjogMS4yN3M7IH0gLmJhbGwtZ3JpZC1iZWF0ID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMnM7IGFuaW1hdGlvbi1kZWxheTogMC4yczsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEuNTJzOyBhbmltYXRpb24tZHVyYXRpb246IDEuNTJzOyB9IC5iYWxsLWdyaWQtYmVhdCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgzKSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjE0czsgYW5pbWF0aW9uLWRlbGF5OiAwLjE0czsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuNjFzOyBhbmltYXRpb24tZHVyYXRpb246IDAuNjFzOyB9IC5iYWxsLWdyaWQtYmVhdCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjE1czsgYW5pbWF0aW9uLWRlbGF5OiAwLjE1czsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuODJzOyBhbmltYXRpb24tZHVyYXRpb246IDAuODJzOyB9IC5iYWxsLWdyaWQtYmVhdCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg1KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC4wMXM7IGFuaW1hdGlvbi1kZWxheTogLTAuMDFzOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS4yNHM7IGFuaW1hdGlvbi1kdXJhdGlvbjogMS4yNHM7IH0gLmJhbGwtZ3JpZC1iZWF0ID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDYpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjA3czsgYW5pbWF0aW9uLWRlbGF5OiAtMC4wN3M7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjM1czsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjM1czsgfSAuYmFsbC1ncmlkLWJlYXQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNykgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4yOXM7IGFuaW1hdGlvbi1kZWxheTogMC4yOXM7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjQ0czsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjQ0czsgfSAuYmFsbC1ncmlkLWJlYXQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoOCkgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC42M3M7IGFuaW1hdGlvbi1kZWxheTogMC42M3M7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjE5czsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjE5czsgfSAuYmFsbC1ncmlkLWJlYXQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoOSkgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuMThzOyBhbmltYXRpb24tZGVsYXk6IC0wLjE4czsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEuNDhzOyBhbmltYXRpb24tZHVyYXRpb246IDEuNDhzOyB9IC5iYWxsLWdyaWQtYmVhdCA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgYm9yZGVyLXJhZGl1czogMTAwJTsgbWFyZ2luOiAycHg7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBmbG9hdDogbGVmdDsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYmFsbC1ncmlkLWJlYXQ7IGFuaW1hdGlvbi1uYW1lOiBiYWxsLWdyaWQtYmVhdDsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwOyBhbmltYXRpb24tZGVsYXk6IDA7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtZ3JpZC1wdWxzZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpOyB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7IG9wYWNpdHk6IDAuNzsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxOyB9IH0gQGtleWZyYW1lcyBiYWxsLWdyaWQtcHVsc2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC41KTsgdHJhbnNmb3JtOiBzY2FsZSgwLjUpOyBvcGFjaXR5OiAwLjc7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfSB9IC5iYWxsLWdyaWQtcHVsc2VbZGF0YS12LTM5NDMyZjk5XSB7IHdpZHRoOiA1N3B4OyB9IC5iYWxsLWdyaWQtcHVsc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMSkgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC41OHM7IGFuaW1hdGlvbi1kZWxheTogMC41OHM7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjlzOyBhbmltYXRpb24tZHVyYXRpb246IDAuOXM7IH0gLmJhbGwtZ3JpZC1wdWxzZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgyKSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjAxczsgYW5pbWF0aW9uLWRlbGF5OiAwLjAxczsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuOTRzOyBhbmltYXRpb24tZHVyYXRpb246IDAuOTRzOyB9IC5iYWxsLWdyaWQtcHVsc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMykgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4yNXM7IGFuaW1hdGlvbi1kZWxheTogMC4yNXM7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjQzczsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjQzczsgfSAuYmFsbC1ncmlkLXB1bHNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDQpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjAzczsgYW5pbWF0aW9uLWRlbGF5OiAtMC4wM3M7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc0czsgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc0czsgfSAuYmFsbC1ncmlkLXB1bHNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDUpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMjFzOyBhbmltYXRpb24tZGVsYXk6IDAuMjFzOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC42OHM7IGFuaW1hdGlvbi1kdXJhdGlvbjogMC42OHM7IH0gLmJhbGwtZ3JpZC1wdWxzZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg2KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjI1czsgYW5pbWF0aW9uLWRlbGF5OiAwLjI1czsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEuMTdzOyBhbmltYXRpb24tZHVyYXRpb246IDEuMTdzOyB9IC5iYWxsLWdyaWQtcHVsc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNykgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC40NnM7IGFuaW1hdGlvbi1kZWxheTogMC40NnM7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjQxczsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjQxczsgfSAuYmFsbC1ncmlkLXB1bHNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDgpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMDJzOyBhbmltYXRpb24tZGVsYXk6IDAuMDJzOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS41NnM7IGFuaW1hdGlvbi1kdXJhdGlvbjogMS41NnM7IH0gLmJhbGwtZ3JpZC1wdWxzZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg5KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjEzczsgYW5pbWF0aW9uLWRlbGF5OiAwLjEzczsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuNzhzOyBhbmltYXRpb24tZHVyYXRpb246IDAuNzhzOyB9IC5iYWxsLWdyaWQtcHVsc2UgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IGJvcmRlci1yYWRpdXM6IDEwMCU7IG1hcmdpbjogMnB4OyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgZmxvYXQ6IGxlZnQ7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJhbGwtZ3JpZC1wdWxzZTsgYW5pbWF0aW9uLW5hbWU6IGJhbGwtZ3JpZC1wdWxzZTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwOyBhbmltYXRpb24tZGVsYXk6IDA7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtc3Bpbi1mYWRlLWxvYWRlciB7IDUwJSB7IG9wYWNpdHk6IDAuMzsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNCk7IHRyYW5zZm9ybTogc2NhbGUoMC40KTsgfSAxMDAlIHsgb3BhY2l0eTogMTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH0gQGtleWZyYW1lcyBiYWxsLXNwaW4tZmFkZS1sb2FkZXIgeyA1MCUgeyBvcGFjaXR5OiAwLjM7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjQpOyB0cmFuc2Zvcm06IHNjYWxlKDAuNCk7IH0gMTAwJSB7IG9wYWNpdHk6IDE7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9IC5iYWxsLXNwaW4tZmFkZS1sb2FkZXJbZGF0YS12LTM5NDMyZjk5XSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAtMTBweDsgbGVmdDogLTEwcHg7IH0gLmJhbGwtc3Bpbi1mYWRlLWxvYWRlciA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgxKSB7IHRvcDogMjVweDsgbGVmdDogMDsgLXdlYmtpdC1hbmltYXRpb246IGJhbGwtc3Bpbi1mYWRlLWxvYWRlciAxcyAtMC45NnMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtc3Bpbi1mYWRlLWxvYWRlciAxcyAtMC45NnMgaW5maW5pdGUgbGluZWFyOyB9IC5iYWxsLXNwaW4tZmFkZS1sb2FkZXIgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMikgeyB0b3A6IDE3LjA0NTQ1cHg7IGxlZnQ6IDE3LjA0NTQ1cHg7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNwaW4tZmFkZS1sb2FkZXIgMXMgLTAuODRzIGluZmluaXRlIGxpbmVhcjsgYW5pbWF0aW9uOiBiYWxsLXNwaW4tZmFkZS1sb2FkZXIgMXMgLTAuODRzIGluZmluaXRlIGxpbmVhcjsgfSAuYmFsbC1zcGluLWZhZGUtbG9hZGVyID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDMpIHsgdG9wOiAwOyBsZWZ0OiAyNXB4OyAtd2Via2l0LWFuaW1hdGlvbjogYmFsbC1zcGluLWZhZGUtbG9hZGVyIDFzIC0wLjcycyBpbmZpbml0ZSBsaW5lYXI7IGFuaW1hdGlvbjogYmFsbC1zcGluLWZhZGUtbG9hZGVyIDFzIC0wLjcycyBpbmZpbml0ZSBsaW5lYXI7IH0gLmJhbGwtc3Bpbi1mYWRlLWxvYWRlciA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KSB7IHRvcDogLTE3LjA0NTQ1cHg7IGxlZnQ6IDE3LjA0NTQ1cHg7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNwaW4tZmFkZS1sb2FkZXIgMXMgLTAuNnMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtc3Bpbi1mYWRlLWxvYWRlciAxcyAtMC42cyBpbmZpbml0ZSBsaW5lYXI7IH0gLmJhbGwtc3Bpbi1mYWRlLWxvYWRlciA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg1KSB7IHRvcDogLTI1cHg7IGxlZnQ6IDA7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNwaW4tZmFkZS1sb2FkZXIgMXMgLTAuNDhzIGluZmluaXRlIGxpbmVhcjsgYW5pbWF0aW9uOiBiYWxsLXNwaW4tZmFkZS1sb2FkZXIgMXMgLTAuNDhzIGluZmluaXRlIGxpbmVhcjsgfSAuYmFsbC1zcGluLWZhZGUtbG9hZGVyID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDYpIHsgdG9wOiAtMTcuMDQ1NDVweDsgbGVmdDogLTE3LjA0NTQ1cHg7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNwaW4tZmFkZS1sb2FkZXIgMXMgLTAuMzZzIGluZmluaXRlIGxpbmVhcjsgYW5pbWF0aW9uOiBiYWxsLXNwaW4tZmFkZS1sb2FkZXIgMXMgLTAuMzZzIGluZmluaXRlIGxpbmVhcjsgfSAuYmFsbC1zcGluLWZhZGUtbG9hZGVyID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDcpIHsgdG9wOiAwOyBsZWZ0OiAtMjVweDsgLXdlYmtpdC1hbmltYXRpb246IGJhbGwtc3Bpbi1mYWRlLWxvYWRlciAxcyAtMC4yNHMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtc3Bpbi1mYWRlLWxvYWRlciAxcyAtMC4yNHMgaW5maW5pdGUgbGluZWFyOyB9IC5iYWxsLXNwaW4tZmFkZS1sb2FkZXIgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoOCkgeyB0b3A6IDE3LjA0NTQ1cHg7IGxlZnQ6IC0xNy4wNDU0NXB4OyAtd2Via2l0LWFuaW1hdGlvbjogYmFsbC1zcGluLWZhZGUtbG9hZGVyIDFzIC0wLjEycyBpbmZpbml0ZSBsaW5lYXI7IGFuaW1hdGlvbjogYmFsbC1zcGluLWZhZGUtbG9hZGVyIDFzIC0wLjEycyBpbmZpbml0ZSBsaW5lYXI7IH0gLmJhbGwtc3Bpbi1mYWRlLWxvYWRlciA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgYm9yZGVyLXJhZGl1czogMTAwJTsgbWFyZ2luOiAycHg7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgcG9zaXRpb246IGFic29sdXRlOyB9IEAtd2Via2l0LWtleWZyYW1lcyBiYWxsLXNwaW4tbG9hZGVyIHsgNzUlIHsgb3BhY2l0eTogMC4yOyB9IDEwMCUgeyBvcGFjaXR5OiAxOyB9IH0gQGtleWZyYW1lcyBiYWxsLXNwaW4tbG9hZGVyIHsgNzUlIHsgb3BhY2l0eTogMC4yOyB9IDEwMCUgeyBvcGFjaXR5OiAxOyB9IH0gLmJhbGwtc3Bpbi1sb2FkZXJbZGF0YS12LTM5NDMyZjk5XSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfSAuYmFsbC1zcGluLWxvYWRlciA+IHNwYW5bZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMSkgeyB0b3A6IDQ1cHg7IGxlZnQ6IDA7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNwaW4tbG9hZGVyIDJzIDAuOXMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtc3Bpbi1sb2FkZXIgMnMgMC45cyBpbmZpbml0ZSBsaW5lYXI7IH0gLmJhbGwtc3Bpbi1sb2FkZXIgPiBzcGFuW2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgdG9wOiAzMC42ODE4MnB4OyBsZWZ0OiAzMC42ODE4MnB4OyAtd2Via2l0LWFuaW1hdGlvbjogYmFsbC1zcGluLWxvYWRlciAycyAxLjhzIGluZmluaXRlIGxpbmVhcjsgYW5pbWF0aW9uOiBiYWxsLXNwaW4tbG9hZGVyIDJzIDEuOHMgaW5maW5pdGUgbGluZWFyOyB9IC5iYWxsLXNwaW4tbG9hZGVyID4gc3BhbltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgzKSB7IHRvcDogMDsgbGVmdDogNDVweDsgLXdlYmtpdC1hbmltYXRpb246IGJhbGwtc3Bpbi1sb2FkZXIgMnMgMi43cyBpbmZpbml0ZSBsaW5lYXI7IGFuaW1hdGlvbjogYmFsbC1zcGluLWxvYWRlciAycyAyLjdzIGluZmluaXRlIGxpbmVhcjsgfSAuYmFsbC1zcGluLWxvYWRlciA+IHNwYW5bZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNCkgeyB0b3A6IC0zMC42ODE4MnB4OyBsZWZ0OiAzMC42ODE4MnB4OyAtd2Via2l0LWFuaW1hdGlvbjogYmFsbC1zcGluLWxvYWRlciAycyAzLjZzIGluZmluaXRlIGxpbmVhcjsgYW5pbWF0aW9uOiBiYWxsLXNwaW4tbG9hZGVyIDJzIDMuNnMgaW5maW5pdGUgbGluZWFyOyB9IC5iYWxsLXNwaW4tbG9hZGVyID4gc3BhbltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg1KSB7IHRvcDogLTQ1cHg7IGxlZnQ6IDA7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNwaW4tbG9hZGVyIDJzIDQuNXMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtc3Bpbi1sb2FkZXIgMnMgNC41cyBpbmZpbml0ZSBsaW5lYXI7IH0gLmJhbGwtc3Bpbi1sb2FkZXIgPiBzcGFuW2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDYpIHsgdG9wOiAtMzAuNjgxODJweDsgbGVmdDogLTMwLjY4MTgycHg7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXNwaW4tbG9hZGVyIDJzIDUuNHMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtc3Bpbi1sb2FkZXIgMnMgNS40cyBpbmZpbml0ZSBsaW5lYXI7IH0gLmJhbGwtc3Bpbi1sb2FkZXIgPiBzcGFuW2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDcpIHsgdG9wOiAwOyBsZWZ0OiAtNDVweDsgLXdlYmtpdC1hbmltYXRpb246IGJhbGwtc3Bpbi1sb2FkZXIgMnMgNi4zcyBpbmZpbml0ZSBsaW5lYXI7IGFuaW1hdGlvbjogYmFsbC1zcGluLWxvYWRlciAycyA2LjNzIGluZmluaXRlIGxpbmVhcjsgfSAuYmFsbC1zcGluLWxvYWRlciA+IHNwYW5bZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoOCkgeyB0b3A6IDMwLjY4MTgycHg7IGxlZnQ6IC0zMC42ODE4MnB4OyAtd2Via2l0LWFuaW1hdGlvbjogYmFsbC1zcGluLWxvYWRlciAycyA3LjJzIGluZmluaXRlIGxpbmVhcjsgYW5pbWF0aW9uOiBiYWxsLXNwaW4tbG9hZGVyIDJzIDcuMnMgaW5maW5pdGUgbGluZWFyOyB9IC5iYWxsLXNwaW4tbG9hZGVyID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgYm9yZGVyLXJhZGl1czogMTAwJTsgYmFja2dyb3VuZDogZ3JlZW47IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtemlnIHsgMzMlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTMwcHgpOyB9IDY2JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMzBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9IH0gQGtleWZyYW1lcyBiYWxsLXppZyB7IDMzJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIC0zMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIC0zMHB4KTsgfSA2NiUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0zMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTMwcHgpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBiYWxsLXphZyB7IDMzJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDMwcHgpOyB9IDY2JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMzBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9IH0gQGtleWZyYW1lcyBiYWxsLXphZyB7IDMzJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDMwcHgpOyB9IDY2JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMzBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9IH0gLmJhbGwtemlnLXphZ1tkYXRhLXYtMzk0MzJmOTldIHsgcG9zaXRpb246IHJlbGF0aXZlOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7IH0gLmJhbGwtemlnLXphZyA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgYm9yZGVyLXJhZGl1czogMTAwJTsgbWFyZ2luOiAycHg7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgcG9zaXRpb246IGFic29sdXRlOyBtYXJnaW4tbGVmdDogMTVweDsgdG9wOiA0cHg7IGxlZnQ6IC03cHg7IH0gLmJhbGwtemlnLXphZyA+IGRpdltkYXRhLXYtMzk0MzJmOTldOmZpcnN0LWNoaWxkIHsgLXdlYmtpdC1hbmltYXRpb246IGJhbGwtemlnIDAuN3MgMHMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtemlnIDAuN3MgMHMgaW5maW5pdGUgbGluZWFyOyB9IC5iYWxsLXppZy16YWcgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpsYXN0LWNoaWxkIHsgLXdlYmtpdC1hbmltYXRpb246IGJhbGwtemFnIDAuN3MgMHMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtemFnIDAuN3MgMHMgaW5maW5pdGUgbGluZWFyOyB9IEAtd2Via2l0LWtleWZyYW1lcyBiYWxsLXppZy1kZWZsZWN0IHsgMTclIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTMwcHgpOyB9IDM0JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMzBweCk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH0gNjclIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0zMHB4KTsgfSA4NCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMzBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9IH0gQGtleWZyYW1lcyBiYWxsLXppZy1kZWZsZWN0IHsgMTclIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTMwcHgpOyB9IDM0JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMzBweCk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH0gNjclIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0zMHB4KTsgfSA4NCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMzBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGJhbGwtemFnLWRlZmxlY3QgeyAxNyUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAzMHB4KTsgfSAzNCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAzMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDMwcHgpOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9IDY3JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDMwcHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMzBweCk7IH0gODQlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAzMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMzBweCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9IH0gQGtleWZyYW1lcyBiYWxsLXphZy1kZWZsZWN0IHsgMTclIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAzMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMzBweCk7IH0gMzQlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAzMHB4KTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfSA2NyUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAzMHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDMwcHgpOyB9IDg0JSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMzBweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDMwcHgpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfSB9IC5iYWxsLXppZy16YWctZGVmbGVjdFtkYXRhLXYtMzk0MzJmOTldIHsgcG9zaXRpb246IHJlbGF0aXZlOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7IH0gLmJhbGwtemlnLXphZy1kZWZsZWN0ID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogMTVweDsgaGVpZ2h0OiAxNXB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyBtYXJnaW46IDJweDsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBwb3NpdGlvbjogYWJzb2x1dGU7IG1hcmdpbi1sZWZ0OiAxNXB4OyB0b3A6IDRweDsgbGVmdDogLTdweDsgfSAuYmFsbC16aWctemFnLWRlZmxlY3QgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpmaXJzdC1jaGlsZCB7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXppZy1kZWZsZWN0IDEuNXMgMHMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtemlnLWRlZmxlY3QgMS41cyAwcyBpbmZpbml0ZSBsaW5lYXI7IH0gLmJhbGwtemlnLXphZy1kZWZsZWN0ID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bGFzdC1jaGlsZCB7IC13ZWJraXQtYW5pbWF0aW9uOiBiYWxsLXphZy1kZWZsZWN0IDEuNXMgMHMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IGJhbGwtemFnLWRlZmxlY3QgMS41cyAwcyBpbmZpbml0ZSBsaW5lYXI7IH0gLyoqICogTGluZXMgKi8gQC13ZWJraXQta2V5ZnJhbWVzIGxpbmUtc2NhbGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZXkoMSk7IHRyYW5zZm9ybTogc2NhbGV5KDEpOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZXkoMC40KTsgdHJhbnNmb3JtOiBzY2FsZXkoMC40KTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxleSgxKTsgdHJhbnNmb3JtOiBzY2FsZXkoMSk7IH0gfSBAa2V5ZnJhbWVzIGxpbmUtc2NhbGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZXkoMSk7IHRyYW5zZm9ybTogc2NhbGV5KDEpOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZXkoMC40KTsgdHJhbnNmb3JtOiBzY2FsZXkoMC40KTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxleSgxKTsgdHJhbnNmb3JtOiBzY2FsZXkoMSk7IH0gfSAubGluZS1zY2FsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgxKSB7IC13ZWJraXQtYW5pbWF0aW9uOiBsaW5lLXNjYWxlIDFzIC0wLjRzIGluZmluaXRlIGN1YmljLWJlemllcigwLjIsIDAuNjgsIDAuMTgsIDEuMDgpOyBhbmltYXRpb246IGxpbmUtc2NhbGUgMXMgLTAuNHMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMiwgMC42OCwgMC4xOCwgMS4wOCk7IH0gLmxpbmUtc2NhbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMikgeyAtd2Via2l0LWFuaW1hdGlvbjogbGluZS1zY2FsZSAxcyAtMC4zcyBpbmZpbml0ZSBjdWJpYy1iZXppZXIoMC4yLCAwLjY4LCAwLjE4LCAxLjA4KTsgYW5pbWF0aW9uOiBsaW5lLXNjYWxlIDFzIC0wLjNzIGluZmluaXRlIGN1YmljLWJlemllcigwLjIsIDAuNjgsIDAuMTgsIDEuMDgpOyB9IC5saW5lLXNjYWxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDMpIHsgLXdlYmtpdC1hbmltYXRpb246IGxpbmUtc2NhbGUgMXMgLTAuMnMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMiwgMC42OCwgMC4xOCwgMS4wOCk7IGFuaW1hdGlvbjogbGluZS1zY2FsZSAxcyAtMC4ycyBpbmZpbml0ZSBjdWJpYy1iZXppZXIoMC4yLCAwLjY4LCAwLjE4LCAxLjA4KTsgfSAubGluZS1zY2FsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KSB7IC13ZWJraXQtYW5pbWF0aW9uOiBsaW5lLXNjYWxlIDFzIC0wLjFzIGluZmluaXRlIGN1YmljLWJlemllcigwLjIsIDAuNjgsIDAuMTgsIDEuMDgpOyBhbmltYXRpb246IGxpbmUtc2NhbGUgMXMgLTAuMXMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuMiwgMC42OCwgMC4xOCwgMS4wOCk7IH0gLmxpbmUtc2NhbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNSkgeyAtd2Via2l0LWFuaW1hdGlvbjogbGluZS1zY2FsZSAxcyAwcyBpbmZpbml0ZSBjdWJpYy1iZXppZXIoMC4yLCAwLjY4LCAwLjE4LCAxLjA4KTsgYW5pbWF0aW9uOiBsaW5lLXNjYWxlIDFzIDBzIGluZmluaXRlIGN1YmljLWJlemllcigwLjIsIDAuNjgsIDAuMTgsIDEuMDgpOyB9IC5saW5lLXNjYWxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogNHB4OyBoZWlnaHQ6IDM1cHg7IGJvcmRlci1yYWRpdXM6IDJweDsgbWFyZ2luOiAycHg7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IEAtd2Via2l0LWtleWZyYW1lcyBsaW5lLXNjYWxlLXBhcnR5IHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNSk7IHRyYW5zZm9ybTogc2NhbGUoMC41KTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH0gQGtleWZyYW1lcyBsaW5lLXNjYWxlLXBhcnR5IHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNSk7IHRyYW5zZm9ybTogc2NhbGUoMC41KTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH0gLmxpbmUtc2NhbGUtcGFydHkgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMSkgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuMDlzOyBhbmltYXRpb24tZGVsYXk6IC0wLjA5czsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuODNzOyBhbmltYXRpb24tZHVyYXRpb246IDAuODNzOyB9IC5saW5lLXNjYWxlLXBhcnR5ID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMzNzOyBhbmltYXRpb24tZGVsYXk6IDAuMzNzOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC42NHM7IGFuaW1hdGlvbi1kdXJhdGlvbjogMC42NHM7IH0gLmxpbmUtc2NhbGUtcGFydHkgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMykgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4zMnM7IGFuaW1hdGlvbi1kZWxheTogMC4zMnM7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjM5czsgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjM5czsgfSAubGluZS1zY2FsZS1wYXJ0eSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjQ3czsgYW5pbWF0aW9uLWRlbGF5OiAwLjQ3czsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuNTJzOyBhbmltYXRpb24tZHVyYXRpb246IDAuNTJzOyB9IC5saW5lLXNjYWxlLXBhcnR5ID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogNHB4OyBoZWlnaHQ6IDM1cHg7IGJvcmRlci1yYWRpdXM6IDJweDsgbWFyZ2luOiAycHg7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsaW5lLXNjYWxlLXBhcnR5OyBhbmltYXRpb24tbmFtZTogbGluZS1zY2FsZS1wYXJ0eTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwOyBhbmltYXRpb24tZGVsYXk6IDA7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGxpbmUtc2NhbGUtcHVsc2Utb3V0IHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGV5KDEpOyB0cmFuc2Zvcm06IHNjYWxleSgxKTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGV5KDAuNCk7IHRyYW5zZm9ybTogc2NhbGV5KDAuNCk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZXkoMSk7IHRyYW5zZm9ybTogc2NhbGV5KDEpOyB9IH0gQGtleWZyYW1lcyBsaW5lLXNjYWxlLXB1bHNlLW91dCB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxleSgxKTsgdHJhbnNmb3JtOiBzY2FsZXkoMSk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxleSgwLjQpOyB0cmFuc2Zvcm06IHNjYWxleSgwLjQpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGV5KDEpOyB0cmFuc2Zvcm06IHNjYWxleSgxKTsgfSB9IC5saW5lLXNjYWxlLXB1bHNlLW91dCA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgd2lkdGg6IDRweDsgaGVpZ2h0OiAzNXB4OyBib3JkZXItcmFkaXVzOiAycHg7IG1hcmdpbjogMnB4OyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgLXdlYmtpdC1hbmltYXRpb246IGxpbmUtc2NhbGUtcHVsc2Utb3V0IDAuOXMgLTAuNnMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuODUsIDAuMjUsIDAuMzcsIDAuODUpOyBhbmltYXRpb246IGxpbmUtc2NhbGUtcHVsc2Utb3V0IDAuOXMgLTAuNnMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuODUsIDAuMjUsIDAuMzcsIDAuODUpOyB9IC5saW5lLXNjYWxlLXB1bHNlLW91dCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgyKSwgLmxpbmUtc2NhbGUtcHVsc2Utb3V0ID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDQpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjRzICFpbXBvcnRhbnQ7IGFuaW1hdGlvbi1kZWxheTogLTAuNHMgIWltcG9ydGFudDsgfSAubGluZS1zY2FsZS1wdWxzZS1vdXQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMSksIC5saW5lLXNjYWxlLXB1bHNlLW91dCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg1KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC4ycyAhaW1wb3J0YW50OyBhbmltYXRpb24tZGVsYXk6IC0wLjJzICFpbXBvcnRhbnQ7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGxpbmUtc2NhbGUtcHVsc2Utb3V0LXJhcGlkIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGV5KDEpOyB0cmFuc2Zvcm06IHNjYWxleSgxKTsgfSA4MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGV5KDAuMyk7IHRyYW5zZm9ybTogc2NhbGV5KDAuMyk7IH0gOTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxleSgxKTsgdHJhbnNmb3JtOiBzY2FsZXkoMSk7IH0gfSBAa2V5ZnJhbWVzIGxpbmUtc2NhbGUtcHVsc2Utb3V0LXJhcGlkIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGV5KDEpOyB0cmFuc2Zvcm06IHNjYWxleSgxKTsgfSA4MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGV5KDAuMyk7IHRyYW5zZm9ybTogc2NhbGV5KDAuMyk7IH0gOTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxleSgxKTsgdHJhbnNmb3JtOiBzY2FsZXkoMSk7IH0gfSAubGluZS1zY2FsZS1wdWxzZS1vdXQtcmFwaWQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiA0cHg7IGhlaWdodDogMzVweDsgYm9yZGVyLXJhZGl1czogMnB4OyBtYXJnaW46IDJweDsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC13ZWJraXQtYW5pbWF0aW9uOiBsaW5lLXNjYWxlLXB1bHNlLW91dC1yYXBpZCAwLjlzIC0wLjVzIGluZmluaXRlIGN1YmljLWJlemllcigwLjExLCAwLjQ5LCAwLjM4LCAwLjc4KTsgYW5pbWF0aW9uOiBsaW5lLXNjYWxlLXB1bHNlLW91dC1yYXBpZCAwLjlzIC0wLjVzIGluZmluaXRlIGN1YmljLWJlemllcigwLjExLCAwLjQ5LCAwLjM4LCAwLjc4KTsgfSAubGluZS1zY2FsZS1wdWxzZS1vdXQtcmFwaWQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMiksIC5saW5lLXNjYWxlLXB1bHNlLW91dC1yYXBpZCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC4yNXMgIWltcG9ydGFudDsgYW5pbWF0aW9uLWRlbGF5OiAtMC4yNXMgIWltcG9ydGFudDsgfSAubGluZS1zY2FsZS1wdWxzZS1vdXQtcmFwaWQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMSksIC5saW5lLXNjYWxlLXB1bHNlLW91dC1yYXBpZCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg1KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwcyAhaW1wb3J0YW50OyBhbmltYXRpb24tZGVsYXk6IDBzICFpbXBvcnRhbnQ7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGxpbmUtc3Bpbi1mYWRlLWxvYWRlciB7IDUwJSB7IG9wYWNpdHk6IDAuMzsgfSAxMDAlIHsgb3BhY2l0eTogMTsgfSB9IEBrZXlmcmFtZXMgbGluZS1zcGluLWZhZGUtbG9hZGVyIHsgNTAlIHsgb3BhY2l0eTogMC4zOyB9IDEwMCUgeyBvcGFjaXR5OiAxOyB9IH0gLmxpbmUtc3Bpbi1mYWRlLWxvYWRlcltkYXRhLXYtMzk0MzJmOTldIHsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IC0xMHB4OyBsZWZ0OiAtNHB4OyB9IC5saW5lLXNwaW4tZmFkZS1sb2FkZXIgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMSkgeyB0b3A6IDIwcHg7IGxlZnQ6IDA7IC13ZWJraXQtYW5pbWF0aW9uOiBsaW5lLXNwaW4tZmFkZS1sb2FkZXIgMS4ycyAtMC44NHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbjogbGluZS1zcGluLWZhZGUtbG9hZGVyIDEuMnMgLTAuODRzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9IC5saW5lLXNwaW4tZmFkZS1sb2FkZXIgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMikgeyB0b3A6IDEzLjYzNjM2cHg7IGxlZnQ6IDEzLjYzNjM2cHg7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC1hbmltYXRpb246IGxpbmUtc3Bpbi1mYWRlLWxvYWRlciAxLjJzIC0wLjcycyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uOiBsaW5lLXNwaW4tZmFkZS1sb2FkZXIgMS4ycyAtMC43MnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IH0gLmxpbmUtc3Bpbi1mYWRlLWxvYWRlciA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgzKSB7IHRvcDogMDsgbGVmdDogMjBweDsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgLXdlYmtpdC1hbmltYXRpb246IGxpbmUtc3Bpbi1mYWRlLWxvYWRlciAxLjJzIC0wLjZzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb246IGxpbmUtc3Bpbi1mYWRlLWxvYWRlciAxLjJzIC0wLjZzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9IC5saW5lLXNwaW4tZmFkZS1sb2FkZXIgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNCkgeyB0b3A6IC0xMy42MzYzNnB4OyBsZWZ0OiAxMy42MzYzNnB4OyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyAtd2Via2l0LWFuaW1hdGlvbjogbGluZS1zcGluLWZhZGUtbG9hZGVyIDEuMnMgLTAuNDhzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb246IGxpbmUtc3Bpbi1mYWRlLWxvYWRlciAxLjJzIC0wLjQ4cyBpbmZpbml0ZSBlYXNlLWluLW91dDsgfSAubGluZS1zcGluLWZhZGUtbG9hZGVyID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDUpIHsgdG9wOiAtMjBweDsgbGVmdDogMDsgLXdlYmtpdC1hbmltYXRpb246IGxpbmUtc3Bpbi1mYWRlLWxvYWRlciAxLjJzIC0wLjM2cyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uOiBsaW5lLXNwaW4tZmFkZS1sb2FkZXIgMS4ycyAtMC4zNnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IH0gLmxpbmUtc3Bpbi1mYWRlLWxvYWRlciA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg2KSB7IHRvcDogLTEzLjYzNjM2cHg7IGxlZnQ6IC0xMy42MzYzNnB4OyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IC13ZWJraXQtYW5pbWF0aW9uOiBsaW5lLXNwaW4tZmFkZS1sb2FkZXIgMS4ycyAtMC4yNHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbjogbGluZS1zcGluLWZhZGUtbG9hZGVyIDEuMnMgLTAuMjRzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9IC5saW5lLXNwaW4tZmFkZS1sb2FkZXIgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNykgeyB0b3A6IDA7IGxlZnQ6IC0yMHB4OyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyAtd2Via2l0LWFuaW1hdGlvbjogbGluZS1zcGluLWZhZGUtbG9hZGVyIDEuMnMgLTAuMTJzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb246IGxpbmUtc3Bpbi1mYWRlLWxvYWRlciAxLjJzIC0wLjEycyBpbmZpbml0ZSBlYXNlLWluLW91dDsgfSAubGluZS1zcGluLWZhZGUtbG9hZGVyID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDgpIHsgdG9wOiAxMy42MzYzNnB4OyBsZWZ0OiAtMTMuNjM2MzZweDsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgLXdlYmtpdC1hbmltYXRpb246IGxpbmUtc3Bpbi1mYWRlLWxvYWRlciAxLjJzIDBzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb246IGxpbmUtc3Bpbi1mYWRlLWxvYWRlciAxLjJzIDBzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9IC5saW5lLXNwaW4tZmFkZS1sb2FkZXIgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IHdpZHRoOiA0cHg7IGhlaWdodDogMzVweDsgYm9yZGVyLXJhZGl1czogMnB4OyBtYXJnaW46IDJweDsgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiA1cHg7IGhlaWdodDogMTVweDsgfSAvKiogKiBNaXNjICovIEAtd2Via2l0LWtleWZyYW1lcyB0cmlhbmdsZS1za2V3LXNwaW4geyAyNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDApOyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDE4MGRlZykgcm90YXRlWSgwKTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDE4MGRlZyk7IHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDE4MGRlZyk7IH0gNzUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDApIHJvdGF0ZVkoMTgwZGVnKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgwKSByb3RhdGVZKDE4MGRlZyk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgwKSByb3RhdGVZKDApOyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDApIHJvdGF0ZVkoMCk7IH0gfSBAa2V5ZnJhbWVzIHRyaWFuZ2xlLXNrZXctc3BpbiB7IDI1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMCk7IHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDApOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMTgwZGVnKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMTgwZGVnKTsgfSA3NSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMCkgcm90YXRlWSgxODBkZWcpOyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDApIHJvdGF0ZVkoMTgwZGVnKTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDApIHJvdGF0ZVkoMCk7IHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMCkgcm90YXRlWSgwKTsgfSB9IC50cmlhbmdsZS1za2V3LXNwaW4gPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgd2lkdGg6IDA7IGhlaWdodDogMDsgYm9yZGVyLWxlZnQ6IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDogMjBweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTogMjBweCBzb2xpZCAjZmZmOyAtd2Via2l0LWFuaW1hdGlvbjogdHJpYW5nbGUtc2tldy1zcGluIDNzIDBzIGN1YmljLWJlemllcigwLjA5LCAwLjU3LCAwLjQ5LCAwLjkpIGluZmluaXRlOyBhbmltYXRpb246IHRyaWFuZ2xlLXNrZXctc3BpbiAzcyAwcyBjdWJpYy1iZXppZXIoMC4wOSwgMC41NywgMC40OSwgMC45KSBpbmZpbml0ZTsgfSBALXdlYmtpdC1rZXlmcmFtZXMgc3F1YXJlLXNwaW4geyAyNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDApOyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDE4MGRlZykgcm90YXRlWSgwKTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDE4MGRlZyk7IHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDE4MGRlZyk7IH0gNzUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDApIHJvdGF0ZVkoMTgwZGVnKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgwKSByb3RhdGVZKDE4MGRlZyk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgwKSByb3RhdGVZKDApOyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDApIHJvdGF0ZVkoMCk7IH0gfSBAa2V5ZnJhbWVzIHNxdWFyZS1zcGluIHsgMjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDE4MGRlZykgcm90YXRlWSgwKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMCk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDE4MGRlZykgcm90YXRlWSgxODBkZWcpOyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVYKDE4MGRlZykgcm90YXRlWSgxODBkZWcpOyB9IDc1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgwKSByb3RhdGVZKDE4MGRlZyk7IHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMCkgcm90YXRlWSgxODBkZWcpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwcHgpIHJvdGF0ZVgoMCkgcm90YXRlWSgwKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDBweCkgcm90YXRlWCgwKSByb3RhdGVZKDApOyB9IH0gLnNxdWFyZS1zcGluID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6ICNmZmY7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgLXdlYmtpdC1hbmltYXRpb246IHNxdWFyZS1zcGluIDNzIDBzIGN1YmljLWJlemllcigwLjA5LCAwLjU3LCAwLjQ5LCAwLjkpIGluZmluaXRlOyBhbmltYXRpb246IHNxdWFyZS1zcGluIDNzIDBzIGN1YmljLWJlemllcigwLjA5LCAwLjU3LCAwLjQ5LCAwLjkpIGluZmluaXRlOyB9IEAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVfcGFjbWFuX2hhbGZfdXAgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfSB9IEBrZXlmcmFtZXMgcm90YXRlX3BhY21hbl9oYWxmX3VwIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlX3BhY21hbl9oYWxmX2Rvd24geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0gfSBAa2V5ZnJhbWVzIHJvdGF0ZV9wYWNtYW5faGFsZl9kb3duIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIHBhY21hbi1iYWxscyB7IDc1JSB7IG9wYWNpdHk6IDAuNzsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwcHgsIC02LjI1cHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwcHgsIC02LjI1cHgpOyB9IH0gQGtleWZyYW1lcyBwYWNtYW4tYmFsbHMgeyA3NSUgeyBvcGFjaXR5OiAwLjc7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwMHB4LCAtNi4yNXB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwMHB4LCAtNi4yNXB4KTsgfSB9IC5wYWNtYW5bZGF0YS12LTM5NDMyZjk5XSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfSAucGFjbWFuID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb246IHBhY21hbi1iYWxscyAxcyAtMC45OXMgaW5maW5pdGUgbGluZWFyOyBhbmltYXRpb246IHBhY21hbi1iYWxscyAxcyAtMC45OXMgaW5maW5pdGUgbGluZWFyOyB9IC5wYWNtYW4gPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMykgeyAtd2Via2l0LWFuaW1hdGlvbjogcGFjbWFuLWJhbGxzIDFzIC0wLjY2cyBpbmZpbml0ZSBsaW5lYXI7IGFuaW1hdGlvbjogcGFjbWFuLWJhbGxzIDFzIC0wLjY2cyBpbmZpbml0ZSBsaW5lYXI7IH0gLnBhY21hbiA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KSB7IC13ZWJraXQtYW5pbWF0aW9uOiBwYWNtYW4tYmFsbHMgMXMgLTAuMzNzIGluZmluaXRlIGxpbmVhcjsgYW5pbWF0aW9uOiBwYWNtYW4tYmFsbHMgMXMgLTAuMzNzIGluZmluaXRlIGxpbmVhcjsgfSAucGFjbWFuID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDUpIHsgLXdlYmtpdC1hbmltYXRpb246IHBhY21hbi1iYWxscyAxcyAwcyBpbmZpbml0ZSBsaW5lYXI7IGFuaW1hdGlvbjogcGFjbWFuLWJhbGxzIDFzIDBzIGluZmluaXRlIGxpbmVhcjsgfSAucGFjbWFuID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06Zmlyc3Qtb2YtdHlwZSB7IHdpZHRoOiAwcHg7IGhlaWdodDogMHB4OyBib3JkZXItcmlnaHQ6IDI1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6IDI1cHggc29saWQgI2ZmZjsgYm9yZGVyLWxlZnQ6IDI1cHggc29saWQgI2ZmZjsgYm9yZGVyLWJvdHRvbTogMjVweCBzb2xpZCAjZmZmOyBib3JkZXItcmFkaXVzOiAyNXB4OyAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRlX3BhY21hbl9oYWxmX3VwIDAuNXMgMHMgaW5maW5pdGU7IGFuaW1hdGlvbjogcm90YXRlX3BhY21hbl9oYWxmX3VwIDAuNXMgMHMgaW5maW5pdGU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogLTMwcHg7IH0gLnBhY21hbiA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgyKSB7IHdpZHRoOiAwcHg7IGhlaWdodDogMHB4OyBib3JkZXItcmlnaHQ6IDI1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6IDI1cHggc29saWQgI2ZmZjsgYm9yZGVyLWxlZnQ6IDI1cHggc29saWQgI2ZmZjsgYm9yZGVyLWJvdHRvbTogMjVweCBzb2xpZCAjZmZmOyBib3JkZXItcmFkaXVzOiAyNXB4OyAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRlX3BhY21hbl9oYWxmX2Rvd24gMC41cyAwcyBpbmZpbml0ZTsgYW5pbWF0aW9uOiByb3RhdGVfcGFjbWFuX2hhbGZfZG93biAwLjVzIDBzIGluZmluaXRlOyBtYXJnaW4tdG9wOiAtNTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAtMzBweDsgfSAucGFjbWFuID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDMpLCAucGFjbWFuID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDQpLCAucGFjbWFuID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDUpLCAucGFjbWFuID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDYpIHsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgd2lkdGg6IDE1cHg7IGhlaWdodDogMTVweDsgYm9yZGVyLXJhZGl1czogMTAwJTsgbWFyZ2luOiAycHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNi4yNXB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTYuMjVweCk7IHRvcDogMjVweDsgbGVmdDogNzBweDsgfSBALXdlYmtpdC1rZXlmcmFtZXMgY3ViZS10cmFuc2l0aW9uIHsgMjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTBweCkgc2NhbGUoMC41KSByb3RhdGUoLTkwZGVnKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwcHgpIHNjYWxlKDAuNSkgcm90YXRlKC05MGRlZyk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KSByb3RhdGUoLTE4MGRlZyk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpIHJvdGF0ZSgtMTgwZGVnKTsgfSA3NSUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KSBzY2FsZSgwLjUpIHJvdGF0ZSgtMjcwZGVnKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpIHNjYWxlKDAuNSkgcm90YXRlKC0yNzBkZWcpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgtMzYwZGVnKTsgfSB9IEBrZXlmcmFtZXMgY3ViZS10cmFuc2l0aW9uIHsgMjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTBweCkgc2NhbGUoMC41KSByb3RhdGUoLTkwZGVnKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwcHgpIHNjYWxlKDAuNSkgcm90YXRlKC05MGRlZyk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MHB4LCA1MHB4KSByb3RhdGUoLTE4MGRlZyk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgsIDUwcHgpIHJvdGF0ZSgtMTgwZGVnKTsgfSA3NSUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KSBzY2FsZSgwLjUpIHJvdGF0ZSgtMjcwZGVnKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpIHNjYWxlKDAuNSkgcm90YXRlKC0yNzBkZWcpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgtMzYwZGVnKTsgfSB9IC5jdWJlLXRyYW5zaXRpb25bZGF0YS12LTM5NDMyZjk5XSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgLTI1cHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgLTI1cHgpOyB9IC5jdWJlLXRyYW5zaXRpb24gPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC01cHg7IGxlZnQ6IC01cHg7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IC13ZWJraXQtYW5pbWF0aW9uOiBjdWJlLXRyYW5zaXRpb24gMS42cyAwcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uOiBjdWJlLXRyYW5zaXRpb24gMS42cyAwcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgfSAuY3ViZS10cmFuc2l0aW9uID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bGFzdC1jaGlsZCB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC44czsgYW5pbWF0aW9uLWRlbGF5OiAtMC44czsgfSBALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbi1yb3RhdGUgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH0gQGtleWZyYW1lcyBzcGluLXJvdGF0ZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfSAuc2VtaS1jaXJjbGUtc3BpbltkYXRhLXYtMzk0MzJmOTldIHsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMzVweDsgaGVpZ2h0OiAzNXB4OyBvdmVyZmxvdzogaGlkZGVuOyB9IC5zZW1pLWNpcmNsZS1zcGluID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvcmRlci13aWR0aDogMHB4OyBib3JkZXItcmFkaXVzOiAxMDAlOyAtd2Via2l0LWFuaW1hdGlvbjogc3Bpbi1yb3RhdGUgMC42cyAwcyBpbmZpbml0ZSBsaW5lYXI7IGFuaW1hdGlvbjogc3Bpbi1yb3RhdGUgMC42cyAwcyBpbmZpbml0ZSBsaW5lYXI7IGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20odHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDcwJSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKDMwJSwgI2ZmZiksIHRvKCNmZmYpKTsgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCA3MCUsICNmZmYgMzAlLCAjZmZmIDEwMCUpOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9IEAtd2Via2l0LWtleWZyYW1lcyBiYXItcHJvZ3Jlc3MgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoMjAlKTsgdHJhbnNmb3JtOiBzY2FsZVkoMjAlKTsgb3BhY2l0eTogMTsgfSAyNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg2JSkgc2NhbGVZKDEwJSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2JSkgc2NhbGVZKDEwJSk7IG9wYWNpdHk6IDAuNzsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMCUpIHNjYWxlWSgyMCUpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAlKSBzY2FsZVkoMjAlKTsgb3BhY2l0eTogMTsgfSA3NSUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg2JSkgc2NhbGVZKDEwJSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2JSkgc2NhbGVZKDEwJSk7IG9wYWNpdHk6IDAuNzsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgyMCUpOyB0cmFuc2Zvcm06IHNjYWxlWSgyMCUpOyBvcGFjaXR5OiAxOyB9IH0gQGtleWZyYW1lcyBiYXItcHJvZ3Jlc3MgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoMjAlKTsgdHJhbnNmb3JtOiBzY2FsZVkoMjAlKTsgb3BhY2l0eTogMTsgfSAyNSUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg2JSkgc2NhbGVZKDEwJSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2JSkgc2NhbGVZKDEwJSk7IG9wYWNpdHk6IDAuNzsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMCUpIHNjYWxlWSgyMCUpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAlKSBzY2FsZVkoMjAlKTsgb3BhY2l0eTogMTsgfSA3NSUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg2JSkgc2NhbGVZKDEwJSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2JSkgc2NhbGVZKDEwJSk7IG9wYWNpdHk6IDAuNzsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgyMCUpOyB0cmFuc2Zvcm06IHNjYWxlWSgyMCUpOyBvcGFjaXR5OiAxOyB9IH0gLmJhci1wcm9ncmVzc1tkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDMwJTsgaGVpZ2h0OiAxMnB4OyB9IC5iYXItcHJvZ3Jlc3MgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDIwJTsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyAtd2Via2l0LWFuaW1hdGlvbjogYmFyLXByb2dyZXNzIDNzIGN1YmljLWJlemllcigwLjU3LCAwLjEsIDAuNDQsIDAuOTMpIGluZmluaXRlOyBhbmltYXRpb246IGJhci1wcm9ncmVzcyAzcyBjdWJpYy1iZXppZXIoMC41NywgMC4xLCAwLjQ0LCAwLjkzKSBpbmZpbml0ZTsgb3BhY2l0eTogMTsgfSBALXdlYmtpdC1rZXlmcmFtZXMgYmFyLXN3aW5nIHsgMCUgeyBsZWZ0OiAwOyB9IDUwJSB7IGxlZnQ6IDcwJTsgfSAxMDAlIHsgbGVmdDogMDsgfSB9IEBrZXlmcmFtZXMgYmFyLXN3aW5nIHsgMCUgeyBsZWZ0OiAwOyB9IDUwJSB7IGxlZnQ6IDcwJTsgfSAxMDAlIHsgbGVmdDogMDsgfSB9IC5iYXItc3dpbmdbZGF0YS12LTM5NDMyZjk5XSB7IHdpZHRoOiAzMCU7IGhlaWdodDogOHB4OyB9IC5iYXItc3dpbmcgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDMwJTsgaGVpZ2h0OiA4cHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IC13ZWJraXQtYW5pbWF0aW9uOiBiYXItc3dpbmcgMS41cyBpbmZpbml0ZTsgYW5pbWF0aW9uOiBiYXItc3dpbmcgMS41cyBpbmZpbml0ZTsgfSBALXdlYmtpdC1rZXlmcmFtZXMgYmFyLXN3aW5nLWNvbnRhaW5lciB7IDAlIHsgbGVmdDogMDsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSA1MCUgeyBsZWZ0OiA3MCU7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTRweCk7IH0gMTAwJSB7IGxlZnQ6IDA7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfSBAa2V5ZnJhbWVzIGJhci1zd2luZy1jb250YWluZXIgeyAwJSB7IGxlZnQ6IDA7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gNTAlIHsgbGVmdDogNzAlOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpOyB9IDEwMCUgeyBsZWZ0OiAwOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH0gLmJhci1zd2luZy1jb250YWluZXJbZGF0YS12LTM5NDMyZjk5XSB7IHdpZHRoOiAyMCU7IGhlaWdodDogOHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IH0gLmJhci1zd2luZy1jb250YWluZXIgZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDEpIHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTAwJTsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOyBoZWlnaHQ6IDEycHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7IH0gLmJhci1zd2luZy1jb250YWluZXIgZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMzAlOyBoZWlnaHQ6IDhweDsgYm9yZGVyLXJhZGl1czogMTBweDsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgLXdlYmtpdC1hbmltYXRpb246IGJhci1zd2luZy1jb250YWluZXIgMnMgY3ViaWMtYmV6aWVyKDAuOTEsIDAuMzUsIDAuMTIsIDAuNikgaW5maW5pdGU7IGFuaW1hdGlvbjogYmFyLXN3aW5nLWNvbnRhaW5lciAycyBjdWJpYy1iZXppZXIoMC45MSwgMC4zNSwgMC4xMiwgMC42KSBpbmZpbml0ZTsgbWFyZ2luOiAycHggMnB4IDA7IH0gLnNrLXNwaW5uZXJbZGF0YS12LTM5NDMyZjk5XSB7IGNvbG9yOiAjMzMzOyB9IC5zay1zcGlubmVyID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7IH0gQC13ZWJraXQta2V5ZnJhbWVzIHNrLWZhZGUtaW4geyAwJSB7IG9wYWNpdHk6IDA7IH0gNTAlIHsgb3BhY2l0eTogMDsgfSAxMDAlIHsgb3BhY2l0eTogMTsgfSB9IEBrZXlmcmFtZXMgc2stZmFkZS1pbiB7IDAlIHsgb3BhY2l0eTogMDsgfSA1MCUgeyBvcGFjaXR5OiAwOyB9IDEwMCUgeyBvcGFjaXR5OiAxOyB9IH0gLnNrLWZhZGUtaW5bZGF0YS12LTM5NDMyZjk5XSB7IC13ZWJraXQtYW5pbWF0aW9uOiBzay1mYWRlLWluIDJzOyBhbmltYXRpb246IHNrLWZhZGUtaW4gMnM7IH0gLnNrLWZhZGUtaW4taGFsZi1zZWNvbmRbZGF0YS12LTM5NDMyZjk5XSB7IC13ZWJraXQtYW5pbWF0aW9uOiBzay1mYWRlLWluIDFzOyBhbmltYXRpb246IHNrLWZhZGUtaW4gMXM7IH0gLnNrLWZhZGUtaW4tcXVhcnRlci1zZWNvbmRbZGF0YS12LTM5NDMyZjk5XSB7IC13ZWJraXQtYW5pbWF0aW9uOiBzay1mYWRlLWluIDAuNXM7IGFuaW1hdGlvbjogc2stZmFkZS1pbiAwLjVzOyB9IC5zay1yb3RhdGluZy1wbGFuZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDI3cHg7IGhlaWdodDogMjdweDsgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yOyAtd2Via2l0LWFuaW1hdGlvbjogc2stcm90YXRlcGxhbmUgMS4ycyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uOiBzay1yb3RhdGVwbGFuZSAxLjJzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9IEAtd2Via2l0LWtleWZyYW1lcyBzay1yb3RhdGVwbGFuZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEyMHB4KSB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMjBweCkgcm90YXRlWSgxODBkZWcpIH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMjBweCkgcm90YXRlWSgxODBkZWcpIHJvdGF0ZVgoMTgwZGVnKSB9IH0gQGtleWZyYW1lcyBzay1yb3RhdGVwbGFuZSB7IDAlIHsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMjBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTIwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTsgfSA1MCUgeyB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEyMHB4KSByb3RhdGVYKC0xODAuMWRlZykgcm90YXRlWSgwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEyMHB4KSByb3RhdGVYKC0xODAuMWRlZykgcm90YXRlWSgwZGVnKTsgfSAxMDAlIHsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMjBweCkgcm90YXRlWCgtMTgwZGVnKSByb3RhdGVZKC0xNzkuOWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMjBweCkgcm90YXRlWCgtMTgwZGVnKSByb3RhdGVZKC0xNzkuOWRlZyk7IH0gfSAuc2stZG91YmxlLWJvdW5jZVtkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDI3cHg7IGhlaWdodDogMjdweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9IC5zay1kb3VibGUtYm91bmNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjsgb3BhY2l0eTogMC42OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgLXdlYmtpdC1hbmltYXRpb246IHNrLWJvdW5jZSAyLjBzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb246IHNrLWJvdW5jZSAyLjBzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9IC5zay1kb3VibGUtYm91bmNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bGFzdC1jaGlsZCB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMS4wczsgYW5pbWF0aW9uLWRlbGF5OiAtMS4wczsgfSBALXdlYmtpdC1rZXlmcmFtZXMgc2stYm91bmNlIHsgMCUsIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4wKSB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjApIH0gfSBAa2V5ZnJhbWVzIHNrLWJvdW5jZSB7IDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjApOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4wKTsgfSA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjApOyB9IH0gLnNrLXdhdmVbZGF0YS12LTM5NDMyZjk5XSB7IHdpZHRoOiA1MHB4OyBoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxMHB4OyB9IC5zay13YXZlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7IGhlaWdodDogMTAwJTsgd2lkdGg6IDZweDsgbWFyZ2luOiAwIDNweCAwIDA7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgLXdlYmtpdC1hbmltYXRpb246IHNrLXN0cmV0Y2hkZWxheSAxLjJzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb246IHNrLXN0cmV0Y2hkZWxheSAxLjJzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9IC5zay13YXZlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0xLjFzOyBhbmltYXRpb24tZGVsYXk6IC0xLjFzOyB9IC5zay13YXZlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDMpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0xLjBzOyBhbmltYXRpb24tZGVsYXk6IC0xLjBzOyB9IC5zay13YXZlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDQpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjlzOyBhbmltYXRpb24tZGVsYXk6IC0wLjlzOyB9IC5zay13YXZlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDUpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjhzOyBhbmltYXRpb24tZGVsYXk6IC0wLjhzOyB9IEAtd2Via2l0LWtleWZyYW1lcyBzay1zdHJldGNoZGVsYXkgeyAwJSwgNDAlLCAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgwLjQpIH0gMjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgxLjApIH0gfSBAa2V5ZnJhbWVzIHNrLXN0cmV0Y2hkZWxheSB7IDAlLCA0MCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlWSgwLjQpOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKDAuNCk7IH0gMjAlIHsgdHJhbnNmb3JtOiBzY2FsZVkoMS4wKTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgxLjApOyB9IH0gLnNrLXdhbmRlcmluZy1jdWJlc1tkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDUycHg7IGhlaWdodDogNTJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9IC5zay13YW5kZXJpbmctY3ViZXMgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IC13ZWJraXQtYW5pbWF0aW9uOiBzay1jdWJlbW92ZSAxLjhzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb246IHNrLWN1YmVtb3ZlIDEuOHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IH0gLnNrLXdhbmRlcmluZy1jdWJlcyA+IGRpdltkYXRhLXYtMzk0MzJmOTldOmxhc3QtY2hpbGQgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuOXM7IGFuaW1hdGlvbi1kZWxheTogLTAuOXM7IH0gQC13ZWJraXQta2V5ZnJhbWVzIHNrLWN1YmVtb3ZlIHsgMjUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDJweCkgcm90YXRlKC05MGRlZykgc2NhbGUoMC41KSB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQycHgpIHRyYW5zbGF0ZVkoNDJweCkgcm90YXRlKC0xODBkZWcpIH0gNzUlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KSB0cmFuc2xhdGVZKDQycHgpIHJvdGF0ZSgtMjcwZGVnKSBzY2FsZSgwLjUpIH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZykgfSB9IEBrZXlmcmFtZXMgc2stY3ViZW1vdmUgeyAyNSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDJweCkgcm90YXRlKC05MGRlZykgc2NhbGUoMC41KTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDJweCkgcm90YXRlKC05MGRlZykgc2NhbGUoMC41KTsgfSA1MCUgeyAvKiBIYWNrIHRvIG1ha2UgRkYgcm90YXRlIGluIHRoZSByaWdodCBkaXJlY3Rpb24gKi8gdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQycHgpIHRyYW5zbGF0ZVkoNDJweCkgcm90YXRlKC0xNzlkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MnB4KSB0cmFuc2xhdGVZKDQycHgpIHJvdGF0ZSgtMTc5ZGVnKTsgfSA1MC4xJVtkYXRhLXYtMzk0MzJmOTldIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQycHgpIHRyYW5zbGF0ZVkoNDJweCkgcm90YXRlKC0xODBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MnB4KSB0cmFuc2xhdGVZKDQycHgpIHJvdGF0ZSgtMTgwZGVnKTsgfSA3NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KSB0cmFuc2xhdGVZKDQycHgpIHJvdGF0ZSgtMjcwZGVnKSBzY2FsZSgwLjUpOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpIHRyYW5zbGF0ZVkoNDJweCkgcm90YXRlKC0yNzBkZWcpIHNjYWxlKDAuNSk7IH0gMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpOyB9IH0gLnNrLXB1bHNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyB3aWR0aDogMjdweDsgaGVpZ2h0OiAyN3B4OyBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7IGJvcmRlci1yYWRpdXM6IDEwMCU7IC13ZWJraXQtYW5pbWF0aW9uOiBzay1zY2FsZW91dCAxLjBzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb246IHNrLXNjYWxlb3V0IDEuMHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IH0gQC13ZWJraXQta2V5ZnJhbWVzIHNrLXNjYWxlb3V0IHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4wKSB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wKTsgb3BhY2l0eTogMDsgfSB9IEBrZXlmcmFtZXMgc2stc2NhbGVvdXQgeyAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC4wKTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMCk7IH0gMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wKTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMCk7IG9wYWNpdHk6IDA7IH0gfSAuc2stY2hhc2luZy1kb3RzW2RhdGEtdi0zOTQzMmY5OV0geyB3aWR0aDogMjdweDsgaGVpZ2h0OiAyN3B4OyBwb3NpdGlvbjogcmVsYXRpdmU7IC13ZWJraXQtYW5pbWF0aW9uOiBzay1yb3RhdGUgMi4wcyBpbmZpbml0ZSBsaW5lYXI7IGFuaW1hdGlvbjogc2stcm90YXRlIDIuMHMgaW5maW5pdGUgbGluZWFyOyB9IC5zay1jaGFzaW5nLWRvdHMgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IHdpZHRoOiA2MCU7IGhlaWdodDogNjAlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7IGJvcmRlci1yYWRpdXM6IDEwMCU7IC13ZWJraXQtYW5pbWF0aW9uOiBzay1ib3VuY2UgMi4wcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgYW5pbWF0aW9uOiBzay1ib3VuY2UgMi4wcyBpbmZpbml0ZSBlYXNlLWluLW91dDsgfSAuc2stY2hhc2luZy1kb3RzID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bGFzdC1jaGlsZCB7IHRvcDogYXV0bzsgYm90dG9tOiAwOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTEuMHM7IGFuaW1hdGlvbi1kZWxheTogLTEuMHM7IH0gQC13ZWJraXQta2V5ZnJhbWVzIHNrLXJvdGF0ZSB7IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgfX0gQGtleWZyYW1lcyBzay1yb3RhdGUgeyAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIHNrLWJvdW5jZSB7IDAlLCAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMCkgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wKSB9IH0gQGtleWZyYW1lcyBzay1ib3VuY2UgeyAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC4wKTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMCk7IH0gNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjApOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wKTsgfSB9IC5zay10aHJlZS1ib3VuY2VbZGF0YS12LTM5NDMyZjk5XSB7IGhlaWdodDogMThweDsgfSAuc2stdGhyZWUtYm91bmNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7IGJvcmRlci1yYWRpdXM6IDEwMCU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgLXdlYmtpdC1hbmltYXRpb246IHNrLWJvdW5jZWRlbGF5IDEuNHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbjogc2stYm91bmNlZGVsYXkgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dDsgLyogUHJldmVudCBmaXJzdCBmcmFtZSBmcm9tIGZsaWNrZXJpbmcgd2hlbiBhbmltYXRpb24gc3RhcnRzICovIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfSAuc2stdGhyZWUtYm91bmNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06Zmlyc3QtY2hpbGQgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuMzJzOyBhbmltYXRpb24tZGVsYXk6IC0wLjMyczsgfSAuc2stdGhyZWUtYm91bmNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjE2czsgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNnM7IH0gQC13ZWJraXQta2V5ZnJhbWVzIHNrLWJvdW5jZWRlbGF5IHsgMCUsIDgwJSwgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjApIH0gNDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMCkgfSB9IEBrZXlmcmFtZXMgc2stYm91bmNlZGVsYXkgeyAwJSwgODAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjApOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4wKTsgfSA0MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjApOyB9IH0gLnNrLWNpcmNsZVtkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSB7IGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTo6YmVmb3JlIHsgY29udGVudDogJyc7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDAgYXV0bzsgd2lkdGg6IDIwJTsgaGVpZ2h0OiAyMCU7IGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjsgYm9yZGVyLXJhZGl1czogMTAwJTsgLXdlYmtpdC1hbmltYXRpb246IHNrLWJvdW5jZWRlbGF5IDEuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbjogc2stYm91bmNlZGVsYXkgMS4ycyBpbmZpbml0ZSBlYXNlLWluLW91dDsgLyogUHJldmVudCBmaXJzdCBmcmFtZSBmcm9tIGZsaWNrZXJpbmcgd2hlbiBhbmltYXRpb24gc3RhcnRzICovIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfSAuc2stY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKSB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMykgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpIH0gLnNrLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgfSAuc2stY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDUpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpIH0gLnNrLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg2KSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTUwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMTUwZGVnKSB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNykgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgfSAuc2stY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDgpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpIH0gLnNrLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg5KSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjQwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMjQwZGVnKSB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMTApIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIH0gLnNrLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgxMSkgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDMwMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDMwMGRlZykgfSAuc2stY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDEyKSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzMwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzMwZGVnKSB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMik6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMS4xczsgYW5pbWF0aW9uLWRlbGF5OiAtMS4xcyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMyk6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMS4wczsgYW5pbWF0aW9uLWRlbGF5OiAtMS4wcyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNCk6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC45czsgYW5pbWF0aW9uLWRlbGF5OiAtMC45cyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNSk6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC44czsgYW5pbWF0aW9uLWRlbGF5OiAtMC44cyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNik6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC43czsgYW5pbWF0aW9uLWRlbGF5OiAtMC43cyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNyk6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC42czsgYW5pbWF0aW9uLWRlbGF5OiAtMC42cyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoOCk6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC41czsgYW5pbWF0aW9uLWRlbGF5OiAtMC41cyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoOSk6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC40czsgYW5pbWF0aW9uLWRlbGF5OiAtMC40cyB9IC5zay1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMTApOjpiZWZvcmUgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuM3M7IGFuaW1hdGlvbi1kZWxheTogLTAuM3MgfSAuc2stY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDExKTo6YmVmb3JlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjJzOyBhbmltYXRpb24tZGVsYXk6IC0wLjJzIH0gLnNrLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgxMik6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC4xczsgYW5pbWF0aW9uLWRlbGF5OiAtMC4xcyB9IEAtd2Via2l0LWtleWZyYW1lcyBzay1ib3VuY2VkZWxheSB7IDAlLCA4MCUsIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4wKSB9IDQwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjApIH0gfSBAa2V5ZnJhbWVzIHNrLWJvdW5jZWRlbGF5IHsgMCUsIDgwJSwgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjApOyB0cmFuc2Zvcm06IHNjYWxlKDAuMCk7IH0gNDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMCk7IHRyYW5zZm9ybTogc2NhbGUoMS4wKTsgfSB9IC5zay1jdWJlLWdyaWRbZGF0YS12LTM5NDMyZjk5XSB7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7IH0gLnNrLWN1YmUtZ3JpZCA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDMzJTsgaGVpZ2h0OiAzMyU7IGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjsgZmxvYXQ6IGxlZnQ7IC13ZWJraXQtYW5pbWF0aW9uOiBzay1zY2FsZURlbGF5IDEuM3MgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbjogc2stc2NhbGVEZWxheSAxLjNzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9IC8qICogU3Bpbm5lciBwb3NpdGlvbnMgKiAxIDIgMyAqIDQgNSA2ICogNyA4IDkgKi8gLnNrLWN1YmUtZ3JpZCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgxKSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjJzOyBhbmltYXRpb24tZGVsYXk6IDAuMnMgfSAuc2stY3ViZS1ncmlkID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuM3M7IGFuaW1hdGlvbi1kZWxheTogMC4zcyB9IC5zay1jdWJlLWdyaWQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMykgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC40czsgYW5pbWF0aW9uLWRlbGF5OiAwLjRzIH0gLnNrLWN1YmUtZ3JpZCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjFzOyBhbmltYXRpb24tZGVsYXk6IDAuMXMgfSAuc2stY3ViZS1ncmlkID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDUpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMnM7IGFuaW1hdGlvbi1kZWxheTogMC4ycyB9IC5zay1jdWJlLWdyaWQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNikgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4zczsgYW5pbWF0aW9uLWRlbGF5OiAwLjNzIH0gLnNrLWN1YmUtZ3JpZCA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg3KSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjBzOyBhbmltYXRpb24tZGVsYXk6IDAuMHMgfSAuc2stY3ViZS1ncmlkID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDgpIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMXM7IGFuaW1hdGlvbi1kZWxheTogMC4xcyB9IC5zay1jdWJlLWdyaWQgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoOSkgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4yczsgYW5pbWF0aW9uLWRlbGF5OiAwLjJzIH0gQC13ZWJraXQta2V5ZnJhbWVzIHNrLXNjYWxlRGVsYXkgeyAwJSwgNzAlLCAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzRCgxLjAsIDEuMCwgMS4wKSB9IDM1JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM0QoMC4wLCAwLjAsIDEuMCkgfSB9IEBrZXlmcmFtZXMgc2stc2NhbGVEZWxheSB7IDAlLCA3MCUsIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNEKDEuMCwgMS4wLCAxLjApOyB0cmFuc2Zvcm06c2NhbGUzRCgxLjAsIDEuMCwgMS4wKSB9IDM1JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM0QoMC4wLCAwLjAsIDEuMCk7IHRyYW5zZm9ybTpzY2FsZTNEKDAuMCwgMC4wLCAxLjApIH0gfSAuc2stZmFkaW5nLWNpcmNsZVtkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgfSAuc2stZmFkaW5nLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOjpiZWZvcmUgeyBjb250ZW50OiAnJzsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCBhdXRvOyB3aWR0aDogMTUlOyBoZWlnaHQ6IDE1JTsgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yOyBib3JkZXItcmFkaXVzOiAxMDAlOyAtd2Via2l0LWFuaW1hdGlvbjogc2stY2lyY2xlRmFkZURlbGF5IDEuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQgYm90aDsgYW5pbWF0aW9uOiBzay1jaXJjbGVGYWRlRGVsYXkgMS4ycyBpbmZpbml0ZSBlYXNlLWluLW91dCBib3RoOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTsgfSAuc2stZmFkaW5nLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgzKSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7IH0gLnNrLWZhZGluZy1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNCkgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDUpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgxMjBkZWcpOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDYpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxNTBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgxNTBkZWcpOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDcpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDgpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgyMTBkZWcpOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDkpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNDBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgyNDBkZWcpOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDEwKSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfSAuc2stZmFkaW5nLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgxMSkgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDMwMGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDMwMGRlZyk7IH0gLnNrLWZhZGluZy1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMTIpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMzBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzMzBkZWcpOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDIpOjpiZWZvcmUgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTEuMXM7IGFuaW1hdGlvbi1kZWxheTogLTEuMXM7IH0gLnNrLWZhZGluZy1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMyk6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMXM7IGFuaW1hdGlvbi1kZWxheTogLTFzOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDQpOjpiZWZvcmUgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuOXM7IGFuaW1hdGlvbi1kZWxheTogLTAuOXM7IH0gLnNrLWZhZGluZy1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNSk6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC44czsgYW5pbWF0aW9uLWRlbGF5OiAtMC44czsgfSAuc2stZmFkaW5nLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg2KTo6YmVmb3JlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjdzOyBhbmltYXRpb24tZGVsYXk6IC0wLjdzOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDcpOjpiZWZvcmUgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuNnM7IGFuaW1hdGlvbi1kZWxheTogLTAuNnM7IH0gLnNrLWZhZGluZy1jaXJjbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoOCk6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC41czsgYW5pbWF0aW9uLWRlbGF5OiAtMC41czsgfSAuc2stZmFkaW5nLWNpcmNsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg5KTo6YmVmb3JlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjRzOyBhbmltYXRpb24tZGVsYXk6IC0wLjRzOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDEwKTo6YmVmb3JlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjNzOyBhbmltYXRpb24tZGVsYXk6IC0wLjNzOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDExKTo6YmVmb3JlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjJzOyBhbmltYXRpb24tZGVsYXk6IC0wLjJzOyB9IC5zay1mYWRpbmctY2lyY2xlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDEyKTo6YmVmb3JlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjFzOyBhbmltYXRpb24tZGVsYXk6IC0wLjFzOyB9IEAtd2Via2l0LWtleWZyYW1lcyBzay1jaXJjbGVGYWRlRGVsYXkgeyAwJSwgMzklLCAxMDAlIHsgb3BhY2l0eTogMDsgfSA0MCUgeyBvcGFjaXR5OiAxOyB9IH0gQGtleWZyYW1lcyBzay1jaXJjbGVGYWRlRGVsYXkgeyAwJSwgMzklLCAxMDAlIHsgb3BhY2l0eTogMDsgfSA0MCUgeyBvcGFjaXR5OiAxOyB9IH0gLnNrLWZvbGRpbmctY3ViZVtkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7IHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7IH0gLnNrLWZvbGRpbmctY3ViZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MCU7IGhlaWdodDogNTAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH0gLnNrLWZvbGRpbmctY3ViZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOjpiZWZvcmUgeyBjb250ZW50OiAnJzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjsgLXdlYmtpdC1hbmltYXRpb246IHNrLWZvbGRDdWJlQW5nbGUgMi40cyBpbmZpbml0ZSBsaW5lYXIgYm90aDsgYW5pbWF0aW9uOiBzay1mb2xkQ3ViZUFuZ2xlIDIuNHMgaW5maW5pdGUgbGluZWFyIGJvdGg7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlOyB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7IH0gLnNrLWZvbGRpbmctY3ViZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgyKSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZVooOTBkZWcpOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlWig5MGRlZyk7IH0gLnNrLWZvbGRpbmctY3ViZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZVooMTgwZGVnKTsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZVooMTgwZGVnKTsgfSAuc2stZm9sZGluZy1jdWJlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDMpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlWigyNzBkZWcpOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlWigyNzBkZWcpOyB9IC5zay1mb2xkaW5nLWN1YmUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMik6OmJlZm9yZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjNzOyBhbmltYXRpb24tZGVsYXk6IDAuM3M7IH0gLnNrLWZvbGRpbmctY3ViZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCg0KTo6YmVmb3JlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNnM7IGFuaW1hdGlvbi1kZWxheTogMC42czsgfSAuc2stZm9sZGluZy1jdWJlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bnRoLWNoaWxkKDMpOjpiZWZvcmUgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC45czsgYW5pbWF0aW9uLWRlbGF5OiAwLjlzOyB9IEAtd2Via2l0LWtleWZyYW1lcyBzay1mb2xkQ3ViZUFuZ2xlIHsgMCUsIDEwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgtMTgwZGVnKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgtMTgwZGVnKTsgb3BhY2l0eTogMDsgfSAyNSUsIDc1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgwZGVnKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgwZGVnKTsgb3BhY2l0eTogMTsgfSA5MCUsIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVkoMTgwZGVnKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWSgxODBkZWcpOyBvcGFjaXR5OiAwOyB9IH0gQGtleWZyYW1lcyBzay1mb2xkQ3ViZUFuZ2xlIHsgMCUsIDEwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgtMTgwZGVnKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgtMTgwZGVnKTsgb3BhY2l0eTogMDsgfSAyNSUsIDc1JSB7IC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgwZGVnKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgwZGVnKTsgb3BhY2l0eTogMTsgfSA5MCUsIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVkoMTgwZGVnKTsgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWSgxODBkZWcpOyBvcGFjaXR5OiAwOyB9IH0gLnNrLXdvcmRwcmVzcyA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgd2lkdGg6IDI3cHg7IGhlaWdodDogMjdweDsgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJvcmRlci1yYWRpdXM6IDI3cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgLXdlYmtpdC1hbmltYXRpb246IHNrLWlubmVyLWNpcmNsZSAxcyBsaW5lYXIgaW5maW5pdGU7IGFuaW1hdGlvbjogc2staW5uZXItY2lyY2xlIDFzIGxpbmVhciBpbmZpbml0ZTsgfSAuc2std29yZHByZXNzID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06OmFmdGVyIHsgY29udGVudDogJyc7IGRpc3BsYXk6IGJsb2NrOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgcG9zaXRpb246IGFic29sdXRlOyBib3JkZXItcmFkaXVzOiA4cHg7IHRvcDogNXB4OyBsZWZ0OiA1cHg7IH0gQC13ZWJraXQta2V5ZnJhbWVzIHNrLWlubmVyLWNpcmNsZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH0gQGtleWZyYW1lcyBzay1pbm5lci1jaXJjbGUgeyAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDApOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpOyB9IH0gLmJhbGwtdHJpYW5nbGUtcGF0aCA+IGRpdltkYXRhLXYtMzk0MzJmOTldLCAuYmFsbC1zY2FsZS1yaXBwbGUtbXVsdGlwbGUgPiBkaXZbZGF0YS12LTM5NDMyZjk5XSwgLmJhbGwtc2NhbGUtcmlwcGxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOyBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjsgfSAuYmFsbC1jbGlwLXJvdGF0ZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldIHsgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsgYm9yZGVyLXRvcC1jb2xvcjogY3VycmVudENvbG9yOyBib3JkZXItcmlnaHQtY29sb3I6IGN1cnJlbnRDb2xvcjsgYm9yZGVyLWxlZnQtY29sb3I6IGN1cnJlbnRDb2xvcjsgfSAuYmFsbC1jbGlwLXJvdGF0ZS1wdWxzZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOmZpcnN0LWNoaWxkIHsgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yOyB9IC5iYWxsLWNsaXAtcm90YXRlLXB1bHNlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06bGFzdC1jaGlsZCB7IGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7IGJvcmRlci10b3AtY29sb3I6IGN1cnJlbnRDb2xvcjsgYm9yZGVyLWJvdHRvbS1jb2xvcjogY3VycmVudENvbG9yOyB9IC5iYWxsLWNsaXAtcm90YXRlLW11bHRpcGxlID4gZGl2W2RhdGEtdi0zOTQzMmY5OV06Zmlyc3QtY2hpbGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOyBib3JkZXItcmlnaHQtY29sb3I6IGN1cnJlbnRDb2xvcjsgYm9yZGVyLWxlZnQtY29sb3I6IGN1cnJlbnRDb2xvcjsgfSAuYmFsbC1jbGlwLXJvdGF0ZS1tdWx0aXBsZSA+IGRpdltkYXRhLXYtMzk0MzJmOTldOmxhc3QtY2hpbGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOyBib3JkZXItdG9wLWNvbG9yOiBjdXJyZW50Q29sb3I7IGJvcmRlci1ib3R0b20tY29sb3I6IGN1cnJlbnRDb2xvcjsgfSAudHJpYW5nbGUtc2tldy1zcGluID4gZGl2W2RhdGEtdi0zOTQzMmY5OV0geyBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOyBib3JkZXItYm90dG9tLWNvbG9yOiBjdXJyZW50Q29sb3I7IH0gLnBhY21hbiA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgxKSwgLnBhY21hbiA+IGRpdltkYXRhLXYtMzk0MzJmOTldOm50aC1jaGlsZCgyKSB7IGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7IGJvcmRlci10b3AtY29sb3I6IGN1cnJlbnRDb2xvcjsgYm9yZGVyLWxlZnQtY29sb3I6IGN1cnJlbnRDb2xvcjsgYm9yZGVyLWJvdHRvbS1jb2xvcjogY3VycmVudENvbG9yOyB9IC5wYWNtYW4gPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoMyksIC5wYWNtYW4gPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNCksIC5wYWNtYW4gPiBkaXZbZGF0YS12LTM5NDMyZjk5XTpudGgtY2hpbGQoNSkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7IH0gLyojIHNvdXJjZU1hcHBpbmdVUkw9U3Bpbm5lci52dWUubWFwICovXCI7dC50eXBlPVwidGV4dC9jc3NcIix0LnN0eWxlU2hlZXQ/dC5zdHlsZVNoZWV0LmNzc1RleHQ9aTp0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGkpKSxhLmFwcGVuZENoaWxkKHQpfX0oKSx7cmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGEsdCxpLGU9dGhpcyxuPWUuJGNyZWF0ZUVsZW1lbnQscj1lLl9zZWxmLl9jfHxuO3JldHVyblwiXCIhPT1lLmxvYWRpbmcuY2xhc3NOYW1lP3IoXCJkaXZcIix7Y2xhc3M6WyhhPXtcInNrLWZhZGUtaW5cIjpcImZ1bGxcIj09PWUuZmFkZUluJiYhZS5ub0ZhZGVJbixcInNrLWZhZGUtaW4taGFsZi1zZWNvbmRcIjpcImhhbGZcIj09PWUuZmFkZUluJiYhZS5ub0ZhZGVJbixcInNrLWZhZGUtaW4tcXVhcnRlci1zZWNvbmRcIjpcInF1YXJ0ZXJcIj09PWUuZmFkZUluJiYhZS5ub0ZhZGVJbn0sdD1lLmNsYXNzTmFtZSxpPSEhZS5jbGFzc05hbWUsdCBpbiBhP09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHQse3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTphW3RdPWksYSksXCJzay1zcGlubmVyXCIsZS5sb2FkaW5nLmNsYXNzTmFtZV0sc3R5bGU6ZS5zdHlsZX0sZS5fbChlLmxvYWRpbmcuZGl2Q291bnQsZnVuY3Rpb24oYSx0KXtyZXR1cm4gcihcImRpdlwiLHtrZXk6dH0pfSkpOmUuX2UoKX0sc3RhdGljUmVuZGVyRm5zOltdLF9zY29wZUlkOlwiZGF0YS12LTM5NDMyZjk5XCIsbmFtZTpcIlNwaW5uZXJcIixwcm9wczp7bmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInRocmVlLWJvdW5jZVwifSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIlwifSxub0ZhZGVJbjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGZhZGVJbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImZ1bGxcIn0sY2xhc3NOYW1lOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiXCJ9LHdpZHRoOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiXCJ9LGhlaWdodDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIlwifX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnthbGxTcGlubmVyczppLmFsbFNwaW5uZXJzfX0sY29tcHV0ZWQ6e2xvYWRpbmc6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmFsbFNwaW5uZXJzW3RoaXMubmFtZV07aWYodm9pZCAwIT09YSl7dmFyIHQ9dm9pZCAwIT09YS5jbGFzc05hbWU/YS5jbGFzc05hbWU6dGhpcy5uYW1lO3JldHVybiBPYmplY3QuYXNzaWduKHt9LGEse2NsYXNzTmFtZTp0fSl9cmV0dXJue2NsYXNzTmFtZTpcIlwiLGRpdkNvdW50OjB9fSxzdHlsZTpmdW5jdGlvbigpe3JldHVybihcIlwiIT09dGhpcy5jb2xvcj9cImNvbG9yOiBcIit0aGlzLmNvbG9yK1wiO1wiOlwiXCIpKyhcIlwiIT09dGhpcy53aWR0aD9cIndpZHRoOiBcIit0aGlzLndpZHRoK1wicHg7XCI6XCJcIikrKFwiXCIhPT10aGlzLmhlaWdodD9cImhlaWdodDogXCIrdGhpcy5oZWlnaHQrXCJweDtcIjpcIlwiKX19fX0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dnVlLXNwaW5raXQubWluLmpzLm1hcFxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0E7Ozs7OztBQ1BBOzs7Ozs7Ozs7OztBQ29CQTs7Ozs7OztBQ3JCQTs7Ozs7OztBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNRQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0ZBOzs7Ozs7QUNQQSIsInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/Clockwork/Web/public/precache-manifest.32277cb2271c7e2595c1e59f9a9038ed.js b/Clockwork/Web/public/precache-manifest.32277cb2271c7e2595c1e59f9a9038ed.js new file mode 100644 index 00000000..b0dc69e4 --- /dev/null +++ b/Clockwork/Web/public/precache-manifest.32277cb2271c7e2595c1e59f9a9038ed.js @@ -0,0 +1,50 @@ +self.__precacheManifest = [ + { + "revision": "e52c7912b53cd176b7f0", + "url": "css/app.aa9687c7.css" + }, + { + "revision": "e52c7912b53cd176b7f0", + "url": "js/app.de9a987d.js" + }, + { + "revision": "9b438ea0b3dc7b4a5be1", + "url": "js/chunk-vendors.b6cbf595.js" + }, + { + "revision": "67563580537ffb101337b864e9396bb6", + "url": "index.html" + }, + { + "revision": "611a8f3ac0aa856f4018f676d719c67f", + "url": "img/appearance-auto-icon.png" + }, + { + "revision": "2439692fa652a49e5c3d820fd67cdc27", + "url": "img/appearance-light-icon.png" + }, + { + "revision": "4a9a5b7dee3fc2c7d2a684e63c447b55", + "url": "img/appearance-dark-icon.png" + }, + { + "revision": "cda1fba54a095fd43346d9f3fe06669a", + "url": "img/whats-new/4.1/commands-profiling.png" + }, + { + "revision": "03d36de2be5c98c325c6d7b115f81ace", + "url": "img/whats-new/4.1/extended-timeline.png" + }, + { + "revision": "bdb3d5c5df863ae277204f869eb12ed7", + "url": "img/whats-new/4.1/queue-jobs-profiling.png" + }, + { + "revision": "40982c718da4cf42285e32d3e1a9649f", + "url": "img/whats-new/4.1/tests-profiling.png" + }, + { + "revision": "2ad52c54fbe33fd038d800d1f634bbaf", + "url": "img/whats-new/4.1/new-settings-modal.png" + } +]; \ No newline at end of file diff --git a/Clockwork/Web/public/precache-manifest.60580a4a01df21af4b92012884177b63.js b/Clockwork/Web/public/precache-manifest.60580a4a01df21af4b92012884177b63.js deleted file mode 100644 index 0d133ddf..00000000 --- a/Clockwork/Web/public/precache-manifest.60580a4a01df21af4b92012884177b63.js +++ /dev/null @@ -1,18 +0,0 @@ -self.__precacheManifest = [ - { - "revision": "27f9d6bf662609d9c263", - "url": "css/app.c0baaa16.css" - }, - { - "revision": "27f9d6bf662609d9c263", - "url": "js/app.fe8ebfde.js" - }, - { - "revision": "d70b6adec04e39b28c68", - "url": "js/chunk-vendors.de559e1a.js" - }, - { - "revision": "c6bc180e72cf7813846da67d321afb39", - "url": "index.html" - } -]; \ No newline at end of file diff --git a/Clockwork/Web/public/service-worker.js b/Clockwork/Web/public/service-worker.js index d61657b3..1498f708 100644 --- a/Clockwork/Web/public/service-worker.js +++ b/Clockwork/Web/public/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js"); importScripts( - "precache-manifest.60580a4a01df21af4b92012884177b63.js" + "precache-manifest.32277cb2271c7e2595c1e59f9a9038ed.js" ); workbox.core.setCacheNameDetails({prefix: "Clockwork"}); From a42b1eb62a853dd8a368a95d73f98e2b724247d4 Mon Sep 17 00:00:00 2001 From: its Date: Thu, 2 Jan 2020 14:35:20 +0100 Subject: [PATCH 46/75] Updated Clockwork App. --- Clockwork/Web/public/index.html | 2 +- .../js/{app.de9a987d.js => app.f1b7b44a.js} | 4 +-- ...ifest.d98f089c485a0cddf15bf5e3f625afa4.js} | 28 +++++++++---------- Clockwork/Web/public/service-worker.js | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) rename Clockwork/Web/public/js/{app.de9a987d.js => app.f1b7b44a.js} (86%) rename Clockwork/Web/public/{precache-manifest.32277cb2271c7e2595c1e59f9a9038ed.js => precache-manifest.d98f089c485a0cddf15bf5e3f625afa4.js} (86%) diff --git a/Clockwork/Web/public/index.html b/Clockwork/Web/public/index.html index b2a51652..5925bd64 100644 --- a/Clockwork/Web/public/index.html +++ b/Clockwork/Web/public/index.html @@ -1 +1 @@ -Clockwork
\ No newline at end of file +Clockwork
\ No newline at end of file diff --git a/Clockwork/Web/public/js/app.de9a987d.js b/Clockwork/Web/public/js/app.f1b7b44a.js similarity index 86% rename from Clockwork/Web/public/js/app.de9a987d.js rename to Clockwork/Web/public/js/app.f1b7b44a.js index 20086a1a..5e27d52a 100644 --- a/Clockwork/Web/public/js/app.de9a987d.js +++ b/Clockwork/Web/public/js/app.f1b7b44a.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var a,r,o=t[0],l=t[1],c=t[2],d=0,h=[];d
'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(m["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(m["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),g=function e(t,s){Object(p["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){return this.makeFullPath(this.file||this.trace[0].file,this.line||this.trace[0].line)},shortPath:function(){return this.makeShortPath(this.file||this.trace[0].file,this.line||this.trace[0].line)}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},D=O,S=(s("9b34"),Object($["a"])(D,u,d,!1,null,null,null)),R=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],M=(s("96cf"),s("3b8d")),I={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=I,A=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),Q=A.exports,U={name:"MessagesOverlay",components:{ExceptionSection:R,ParentRequest:Q,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,H=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),F=H.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("number:3")(t.duration))+" ms")]):e._e()])}))}}],null,!1,1238126495)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},me=[],pe={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new b(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=pe,be=Object($["a"])(ve,fe,me,!1,null,null,null),ge=be.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:ge},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(p["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(m["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,3970562768)}):e._e()],1)},Oe=[],De=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=De,Re=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=Re.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Me=[],Ie={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge},data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Ie,Ae=Object($["a"])(Le,Ee,Me,!1,null,null,null),Qe=Ae.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],He={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},Fe=He,Be=Object($["a"])(Fe,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=Object($["a"])(Ge,Ve,We,!1,null,null,null),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),mt=s.n(ft),pt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:mt()(e.context,["performance","trace"])})}))}}},vt=pt,bt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),gt=bt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Dt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Dt.exports,Rt={name:"PerformanceTab",components:{PerformanceLog:gt,Profiler:Ct,Timeline:St},data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Rt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),Mt=Et.exports,It=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],At={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},Qt=At,Ut=Object($["a"])(Qt,It,Lt,!1,null,null,null),Jt=Ut.exports,Ht=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ft=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(t),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(t,!1);case 7:e.t0=e.sent;case 8:if(a=e.t0,a){e.next=11;break}return e.abrupt("return",setTimeout((function(){return n.loadQueueJobRequest(t,s+1)}),5e3));case 11:this.$set(this.jobRequests,t,a);case 12:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{$request:{handler:function(){var e=this;this.$request.queueJobs.forEach((function(t){t.id&&e.loadQueueJobRequest(t.id)}))},immediate:!0}}},zt=Bt,Vt=(s("8c77"),Object($["a"])(zt,Ht,Ft,!1,null,"dea2de12",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:ge},props:["userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:ge,Timeline:St}},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:F,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Qe,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:Mt,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,m,p,v,b,g,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(m=this.$request)||void 0===m?void 0:null===(p=m.emails)||void 0===p?void 0:p.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(b=v.routes)||void 0===b?void 0:b.length)>0,output:(null===(g=this.$request)||void 0===g?void 0:null===(w=g.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ms=fs,ps=(s("0f8a"),Object($["a"])(ms,r,o,!1,null,null,null)),vs=ps.exports,bs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},gs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Ds=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Rs={name:"QueueJobTab",components:{PrettyPrint:ge,SidebarSection:xs}},Ns=Rs,Es=(s("6b0a"),Object($["a"])(Ns,Ds,Ss,!1,null,null,null)),Ms=Es.exports,Is=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],As={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},Qs=As,Us=(s("9a64"),Object($["a"])(Qs,Is,Ls,!1,null,null,null)),Js=Us.exports,Hs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Fs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:ge,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Hs,Fs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:R,ParentRequest:Q,QueueJobTab:Ms,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,bs,gs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){return this.$settings.global.hideCommandTypeRequests?this.$requests.items.filter((function(e){return"command"!=e.type})):this.$settings.global.hideQueueJobTypeRequests?this.$requests.items.filter((function(e){return"queue-job"!=e.type})):this.$settings.global.hideTestTypeRequests?this.$requests.items.filter((function(e){return"test"!=e.type})):this.$requests.items},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){var t,s;this.global.$request=e,"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,ma=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),pa=ma.exports,va=s("d842"),ba=s("4eb5"),ga=s.n(ba),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ga.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Da=s("c074"),Sa=s("b702");Oa["c"].add(Da["r"],Da["w"],Da["o"],Da["p"],Sa["a"],Da["i"],Da["d"],Da["s"],Da["z"],Da["h"],Da["e"],Da["b"],Da["a"],Da["j"],Da["v"],Da["y"],Da["A"],Da["u"],Da["k"],Da["B"],Da["c"],Da["t"],Da["m"],Da["g"],Da["f"],Da["l"],Da["q"],Da["x"],Da["n"]);var Ra=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ma=s("c909"),Ia=s.n(Ma),La=function(){function e(t){Object(p["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Ra["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Ra["a"])(t))}},{key:"processViews",value:function(e){var t=this;Object.values(e).forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ia.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Aa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.withQuery({"type[]":"command"},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(m["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(m["a"])(browser))&&browser.devtools}}]),e}(),Qa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote("http://127.0.0.1:8000",{path:"__clockwork/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(p["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(p["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Ha=function(){function e(){Object(p["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Fa=(s("6c7b"),s("f559"),function(){function e(t,s){Object(p["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),m=f[0],p=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),b=v.shift();u=i[m],u||(i[m]=u={name:p,file:c,line:b,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),m=f.shift(),p=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=p.callers[d];v||(p.callers[d]=v={name:u.name,line:m,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var b=u.subCalls[r];b||(u.subCalls[r]=b={name:c,line:m,calls:0,summed:new Array(f.length).fill(0)}),b.calls++,b.summed=b.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(p["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Fa.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(p["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.last((function(e){return!e.loading})).id,this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){this.items=this.items.concat(e).sort((function(e,t){return e.time-t.time}))}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ia.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ia()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Ra["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(p["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Aa,hideQueueJobTypeRequests:this.platform instanceof Aa,hideTestTypeRequests:this.platform instanceof Aa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("shortClass",this.shortClass)}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(p["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s]
'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(m["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(m["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),g=function e(t,s){Object(p["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){return this.makeFullPath(this.file||this.trace[0].file,this.line||this.trace[0].line)},shortPath:function(){return this.makeShortPath(this.file||this.trace[0].file,this.line||this.trace[0].line)}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},D=O,S=(s("9b34"),Object($["a"])(D,u,d,!1,null,null,null)),R=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],M=(s("96cf"),s("3b8d")),I={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=I,A=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),Q=A.exports,U={name:"MessagesOverlay",components:{ExceptionSection:R,ParentRequest:Q,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,H=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),F=H.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("number:3")(t.duration))+" ms")]):e._e()])}))}}],null,!1,1238126495)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},me=[],pe={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new b(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=pe,be=Object($["a"])(ve,fe,me,!1,null,null,null),ge=be.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:ge},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(p["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(m["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,3970562768)}):e._e()],1)},Oe=[],De=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=De,Re=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=Re.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Me=[],Ie={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge},data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Ie,Ae=Object($["a"])(Le,Ee,Me,!1,null,null,null),Qe=Ae.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],He={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},Fe=He,Be=Object($["a"])(Fe,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=Object($["a"])(Ge,Ve,We,!1,null,null,null),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),mt=s.n(ft),pt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:mt()(e.context,["performance","trace"])})}))}}},vt=pt,bt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),gt=bt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Dt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Dt.exports,Rt={name:"PerformanceTab",components:{PerformanceLog:gt,Profiler:Ct,Timeline:St},data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Rt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),Mt=Et.exports,It=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],At={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},Qt=At,Ut=Object($["a"])(Qt,It,Lt,!1,null,null,null),Jt=Ut.exports,Ht=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ft=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(t),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(t,!1);case 7:e.t0=e.sent;case 8:if(a=e.t0,a){e.next=11;break}return e.abrupt("return",setTimeout((function(){return n.loadQueueJobRequest(t,s+1)}),5e3));case 11:this.$set(this.jobRequests,t,a);case 12:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{$request:{handler:function(){var e=this;this.$request.queueJobs.forEach((function(t){t.id&&e.loadQueueJobRequest(t.id)}))},immediate:!0}}},zt=Bt,Vt=(s("8c77"),Object($["a"])(zt,Ht,Ft,!1,null,"dea2de12",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:ge},props:["userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:ge,Timeline:St}},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:F,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Qe,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:Mt,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,m,p,v,b,g,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(m=this.$request)||void 0===m?void 0:null===(p=m.emails)||void 0===p?void 0:p.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(b=v.routes)||void 0===b?void 0:b.length)>0,output:(null===(g=this.$request)||void 0===g?void 0:null===(w=g.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ms=fs,ps=(s("0f8a"),Object($["a"])(ms,r,o,!1,null,null,null)),vs=ps.exports,bs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},gs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Ds=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Rs={name:"QueueJobTab",components:{PrettyPrint:ge,SidebarSection:xs}},Ns=Rs,Es=(s("6b0a"),Object($["a"])(Ns,Ds,Ss,!1,null,null,null)),Ms=Es.exports,Is=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],As={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},Qs=As,Us=(s("9a64"),Object($["a"])(Qs,Is,Ls,!1,null,null,null)),Js=Us.exports,Hs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Fs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:ge,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Hs,Fs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:R,ParentRequest:Q,QueueJobTab:Ms,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,bs,gs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){return this.$settings.global.hideCommandTypeRequests?this.$requests.items.filter((function(e){return"command"!=e.type})):this.$settings.global.hideQueueJobTypeRequests?this.$requests.items.filter((function(e){return"queue-job"!=e.type})):this.$settings.global.hideTestTypeRequests?this.$requests.items.filter((function(e){return"test"!=e.type})):this.$requests.items},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){var t,s;this.global.$request=e,"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,ma=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),pa=ma.exports,va=s("d842"),ba=s("4eb5"),ga=s.n(ba),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ga.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Da=s("c074"),Sa=s("b702");Oa["c"].add(Da["r"],Da["w"],Da["o"],Da["p"],Sa["a"],Da["i"],Da["d"],Da["s"],Da["z"],Da["h"],Da["e"],Da["b"],Da["a"],Da["j"],Da["v"],Da["y"],Da["A"],Da["u"],Da["k"],Da["B"],Da["c"],Da["t"],Da["m"],Da["g"],Da["f"],Da["l"],Da["q"],Da["x"],Da["n"]);var Ra=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ma=s("c909"),Ia=s.n(Ma),La=function(){function e(t){Object(p["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Ra["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Ra["a"])(t))}},{key:"processViews",value:function(e){var t=this;Object.values(e).forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ia.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Aa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.withQuery({"type[]":"command"},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(m["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(m["a"])(browser))&&browser.devtools}}]),e}(),Qa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote(window.location.href,{path:Ia()(window.location.href.split("/").slice(0,-1).join("/")).path()+"/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(p["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(p["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Ha=function(){function e(){Object(p["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Fa=(s("6c7b"),s("f559"),function(){function e(t,s){Object(p["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),m=f[0],p=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),b=v.shift();u=i[m],u||(i[m]=u={name:p,file:c,line:b,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),m=f.shift(),p=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=p.callers[d];v||(p.callers[d]=v={name:u.name,line:m,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var b=u.subCalls[r];b||(u.subCalls[r]=b={name:c,line:m,calls:0,summed:new Array(f.length).fill(0)}),b.calls++,b.summed=b.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(p["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Fa.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(p["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.last((function(e){return!e.loading})).id,this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){this.items=this.items.concat(e).sort((function(e,t){return e.time-t.time}))}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ia.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ia()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Ra["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(p["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Aa,hideQueueJobTypeRequests:this.platform instanceof Aa,hideTestTypeRequests:this.platform instanceof Aa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("shortClass",this.shortClass)}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(p["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s] Date: Thu, 9 Jan 2020 09:59:19 +0100 Subject: [PATCH 47/75] Fix FileStorage cleanup not working The cleanup routine opened the index at the wrong position (start instead of end), then proceeds by searching backwards. The searchIndexBackwards routine tried to reopen the index at the end, but since the index was already open it would return early and never get to the point of fseek()ing to the end. --- Clockwork/Storage/FileStorage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Clockwork/Storage/FileStorage.php b/Clockwork/Storage/FileStorage.php index b7590d1d..ec4002c7 100644 --- a/Clockwork/Storage/FileStorage.php +++ b/Clockwork/Storage/FileStorage.php @@ -98,7 +98,7 @@ public function cleanup($force = false) { if ($this->expiration === false || (! $force && rand(1, $this->cleanupChance) != 1)) return; - $this->openIndex('start', true, true); // reopan index with lock + $this->openIndex('end', true, true); // reopen index with lock $expirationTime = time() - ($this->expiration * 60); From 7e5f554be729246f10806ad95db64f0e75a80b4c Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 16 Jan 2020 12:51:37 +0200 Subject: [PATCH 48/75] Fixed #364: Serializer breaks with deep nested structures --- Clockwork/Helpers/Serializer.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Clockwork/Helpers/Serializer.php b/Clockwork/Helpers/Serializer.php index 6f037890..811e39f6 100644 --- a/Clockwork/Helpers/Serializer.php +++ b/Clockwork/Helpers/Serializer.php @@ -36,7 +36,9 @@ public function normalize($data, $context = null, $limit = null) if ($context === null) $context = [ 'references' => [] ]; if ($limit === null) $limit = $this->options['limit']; - if ($limit < 1) return $data; + if ($limit < 1) { + return [ '__type__' => '...' ]; + } if ($data instanceof \Closure) { return [ '__type__' => 'anonymous function' ]; From 5097510e2157074d84e11dce706547a2564941fd Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 16 Jan 2020 12:58:39 +0200 Subject: [PATCH 49/75] Prefer using $data->__debugInfo() when serializing object --- Clockwork/Helpers/Serializer.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Clockwork/Helpers/Serializer.php b/Clockwork/Helpers/Serializer.php index 6f037890..31bb9729 100644 --- a/Clockwork/Helpers/Serializer.php +++ b/Clockwork/Helpers/Serializer.php @@ -66,7 +66,11 @@ public function normalize($data, $context = null, $limit = null) return $this->cache[$objectHash] = [ '__class__' => $className ]; } - $data = (array) $data; + if (method_exists($data, '__debugInfo')) { + $data = (array) $data->__debugInfo(); + } else { + $data = (array) $data; + } $data = array_column(array_map(function ($key, $item) use ($className, $context, $limit) { return [ // replace null-byte prefixes of protected and private properties used by php with * (protected) From 0e4bac4613c278510e6adadc2d42cbbb9ef96982 Mon Sep 17 00:00:00 2001 From: its Date: Sun, 19 Jan 2020 23:16:13 +0100 Subject: [PATCH 50/75] Reworked limit implementation in serializer, omitted data now includes the omission reason in metadata. --- Clockwork/Helpers/Serializer.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Clockwork/Helpers/Serializer.php b/Clockwork/Helpers/Serializer.php index 74821245..d3fd5bb1 100644 --- a/Clockwork/Helpers/Serializer.php +++ b/Clockwork/Helpers/Serializer.php @@ -36,24 +36,24 @@ public function normalize($data, $context = null, $limit = null) if ($context === null) $context = [ 'references' => [] ]; if ($limit === null) $limit = $this->options['limit']; - if ($limit < 1) { - return [ '__type__' => '...' ]; - } - if ($data instanceof \Closure) { return [ '__type__' => 'anonymous function' ]; } elseif (is_array($data)) { + if ($limit === 0) return [ '__type__' => 'array', '__omitted__' => 'limit' ]; + return [ '__type__' => 'array' ] + array_map(function ($item) use ($context, $limit) { return $this->normalize($item, $context, $limit - 1); }, $data); } elseif (is_object($data)) { + $className = get_class($data); + $objectHash = spl_object_hash($data); + + if ($limit === 0) return [ '__class__' => $className, '__omitted__' => 'limit' ]; + if ($this->options['toString'] && method_exists($data, '__toString')) { return (string) $data; } - $className = get_class($data); - $objectHash = spl_object_hash($data); - if (isset($context['references'][$objectHash])) { return [ '__type__' => 'recursion' ]; } @@ -65,7 +65,7 @@ public function normalize($data, $context = null, $limit = null) } if ($this->options['blackbox'] && in_array($className, $this->options['blackbox'])) { - return $this->cache[$objectHash] = [ '__class__' => $className ]; + return $this->cache[$objectHash] = [ '__class__' => $className, '__omitted__' => 'blackbox' ]; } if (method_exists($data, '__debugInfo')) { From 474183d9da97ea7673851ca832db3e1908d4ea11 Mon Sep 17 00:00:00 2001 From: its Date: Mon, 20 Jan 2020 00:08:16 +0100 Subject: [PATCH 51/75] Added support for toArray and jsonSerialize (default disabled) and make __debugInfo configurable (default enabled) in serializer. --- Clockwork/Helpers/Serializer.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Clockwork/Helpers/Serializer.php b/Clockwork/Helpers/Serializer.php index d3fd5bb1..a14643f3 100644 --- a/Clockwork/Helpers/Serializer.php +++ b/Clockwork/Helpers/Serializer.php @@ -12,7 +12,10 @@ class Serializer \Laravel\Lumen\Application::class ], 'limit' => 10, + 'toArray' => false, 'toString' => false, + 'debugInfo' => true, + 'jsonSerialize' => false, 'traces' => true, 'tracesFilter' => null, 'tracesSkip' => null, @@ -68,11 +71,16 @@ public function normalize($data, $context = null, $limit = null) return $this->cache[$objectHash] = [ '__class__' => $className, '__omitted__' => 'blackbox' ]; } - if (method_exists($data, '__debugInfo')) { + if ($this->options['debugInfo'] && method_exists($data, '__debugInfo')) { $data = (array) $data->__debugInfo(); + } elseif ($this->options['jsonSerialize'] && method_exists($data, 'jsonSerialize')) { + $data = (array) $data->jsonSerialize(); + } elseif ($this->options['toArray'] && method_exists($data, 'toArray')) { + $data = (array) $data->toArray(); } else { $data = (array) $data; } + $data = array_column(array_map(function ($key, $item) use ($className, $context, $limit) { return [ // replace null-byte prefixes of protected and private properties used by php with * (protected) From 49abe2886163a9c60fbe8745623a92576744af12 Mon Sep 17 00:00:00 2001 From: its Date: Mon, 20 Jan 2020 01:11:31 +0100 Subject: [PATCH 52/75] Cleaned up serializer implementationa a bit, fixed serialized objects not being cached when casted to string. --- Clockwork/Helpers/Serializer.php | 42 ++++++++++++++------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/Clockwork/Helpers/Serializer.php b/Clockwork/Helpers/Serializer.php index a14643f3..6575db16 100644 --- a/Clockwork/Helpers/Serializer.php +++ b/Clockwork/Helpers/Serializer.php @@ -39,36 +39,28 @@ public function normalize($data, $context = null, $limit = null) if ($context === null) $context = [ 'references' => [] ]; if ($limit === null) $limit = $this->options['limit']; - if ($data instanceof \Closure) { - return [ '__type__' => 'anonymous function' ]; - } elseif (is_array($data)) { + if (is_array($data)) { if ($limit === 0) return [ '__type__' => 'array', '__omitted__' => 'limit' ]; - return [ '__type__' => 'array' ] + array_map(function ($item) use ($context, $limit) { - return $this->normalize($item, $context, $limit - 1); - }, $data); + return [ '__type__' => 'array' ] + $this->normalizeEach($data, $context, $limit - 1); } elseif (is_object($data)) { + if ($data instanceof \Closure) return [ '__type__' => 'anonymous function' ]; + $className = get_class($data); $objectHash = spl_object_hash($data); if ($limit === 0) return [ '__class__' => $className, '__omitted__' => 'limit' ]; - if ($this->options['toString'] && method_exists($data, '__toString')) { - return (string) $data; - } - - if (isset($context['references'][$objectHash])) { - return [ '__type__' => 'recursion' ]; - } + if (isset($context['references'][$objectHash])) return [ '__type__' => 'recursion' ]; $context['references'][$objectHash] = true; - if (isset($this->cache[$objectHash])) { - return $this->cache[$objectHash]; - } + if (isset($this->cache[$objectHash])) return $this->cache[$objectHash]; if ($this->options['blackbox'] && in_array($className, $this->options['blackbox'])) { return $this->cache[$objectHash] = [ '__class__' => $className, '__omitted__' => 'blackbox' ]; + } elseif ($this->options['toString'] && method_exists($data, '__toString')) { + return $this->cache[$objectHash] = (string) $data; } if ($this->options['debugInfo'] && method_exists($data, '__debugInfo')) { @@ -81,14 +73,14 @@ public function normalize($data, $context = null, $limit = null) $data = (array) $data; } - $data = array_column(array_map(function ($key, $item) use ($className, $context, $limit) { - return [ + $data = array_combine( + array_map(function ($key) { // replace null-byte prefixes of protected and private properties used by php with * (protected) // and ~ (private) - preg_replace('/^\0.+?\0/', '~', str_replace("\0*\0", '*', $key)), - $this->normalize($item, $context, $limit - 1) - ]; - }, array_keys($data), $data), 1, 0); + return preg_replace('/^\0.+?\0/', '~', str_replace("\0*\0", '*', $key)); + }, array_keys($data)), + $this->normalizeEach($data, $context, $limit - 1) + ); return $this->cache[$objectHash] = [ '__class__' => $className ] + $data; } elseif (is_resource($data)) { @@ -99,8 +91,10 @@ public function normalize($data, $context = null, $limit = null) } // normalize each member of an array (doesn't add metadata for top level) - public function normalizeEach($data) { - return array_map(function ($item) { return $this->normalize($item); }, $data); + public function normalizeEach($data, $context = null, $limit = null) { + return array_map(function ($item) use ($context, $limit) { + return $this->normalize($item, $context, $limit); + }, $data); } public function trace(StackTrace $trace) From 1bdbc95271737c77be75b8efe9a5ff35240b6894 Mon Sep 17 00:00:00 2001 From: its Date: Mon, 20 Jan 2020 01:27:17 +0100 Subject: [PATCH 53/75] Serializer options can now be passed in log message context, no longer defaults to toString enabled. --- Clockwork/Request/Log.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Clockwork/Request/Log.php b/Clockwork/Request/Log.php index 054c226f..3aa6f33c 100644 --- a/Clockwork/Request/Log.php +++ b/Clockwork/Request/Log.php @@ -18,7 +18,7 @@ class Log extends AbstractLogger public $data = []; /** - * Add a new timestamped message, with a level and context, + * Add a new timestamped message, with a level and context, context can be used to override serializer defaults * $context['trace'] = true can be used to force collecting a stack trace */ public function log($level = LogLevel::INFO, $message, array $context = []) @@ -26,7 +26,7 @@ public function log($level = LogLevel::INFO, $message, array $context = []) $trace = $this->hasTrace($context) ? $context['trace'] : StackTrace::get()->resolveViewName(); $this->data[] = [ - 'message' => (new Serializer([ 'toString' => true ]))->normalize($message), + 'message' => (new Serializer($context))->normalize($message), 'exception' => $this->formatException($context), 'context' => $this->formatContext($context), 'level' => $level, From bf51b3a4ca8a12e27301eb63ecf7abc70291e312 Mon Sep 17 00:00:00 2001 From: its Date: Mon, 20 Jan 2020 02:42:37 +0100 Subject: [PATCH 54/75] Lumen - improved redis and queue feature availability detection. --- Clockwork/Support/Lumen/ClockworkSupport.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Clockwork/Support/Lumen/ClockworkSupport.php b/Clockwork/Support/Lumen/ClockworkSupport.php index 0f3b0eba..eb450c97 100644 --- a/Clockwork/Support/Lumen/ClockworkSupport.php +++ b/Clockwork/Support/Lumen/ClockworkSupport.php @@ -41,9 +41,9 @@ public function isFeatureAvailable($feature) } elseif ($feature == 'emails') { return $this->app->bound('mailer'); } elseif ($feature == 'redis') { - return method_exists(\Illuminate\Redis\RedisManager::class, 'enableEvents'); + return $this->app->bound('redis') && method_exists(\Illuminate\Redis\RedisManager::class, 'enableEvents'); } elseif ($feature == 'queue') { - return method_exists(\Illuminate\Queue\Queue::class, 'createPayloadUsing'); + return $this->app->bound('queue') && method_exists(\Illuminate\Queue\Queue::class, 'createPayloadUsing'); } elseif ($feature == 'xdebug') { return in_array('xdebug', get_loaded_extensions()); } From 99027d9e0f92df0a17e6b88b91d4f7af872ac4a3 Mon Sep 17 00:00:00 2001 From: its Date: Thu, 30 Jan 2020 01:37:22 +0100 Subject: [PATCH 55/75] Symfony - fixed Symfony support, updated for Symfony 5. --- Clockwork/Storage/SymfonyStorage.php | 2 +- Clockwork/Support/Symfony/ClockworkConfiguration.php | 12 +++++++++++- Clockwork/Support/Symfony/ClockworkController.php | 4 ++-- Clockwork/Support/Symfony/ClockworkListener.php | 4 ++-- .../Symfony/Resources/config/routing/clockwork.php | 8 ++++---- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Clockwork/Storage/SymfonyStorage.php b/Clockwork/Storage/SymfonyStorage.php index 4f6e4643..6c37e258 100755 --- a/Clockwork/Storage/SymfonyStorage.php +++ b/Clockwork/Storage/SymfonyStorage.php @@ -39,7 +39,7 @@ protected function loadRequest($token) } // Open index file, optionally move file pointer to the end - protected function openIndex($position = 'start') + protected function openIndex($position = 'start', $lock = null, $force = null) { $this->indexHandle = fopen("{$this->path}/index.csv", 'r'); diff --git a/Clockwork/Support/Symfony/ClockworkConfiguration.php b/Clockwork/Support/Symfony/ClockworkConfiguration.php index c49d9507..83770aae 100755 --- a/Clockwork/Support/Symfony/ClockworkConfiguration.php +++ b/Clockwork/Support/Symfony/ClockworkConfiguration.php @@ -2,6 +2,7 @@ use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\ConfigurationInterface; +use Symfony\Component\HttpKernel\Kernel; class ClockworkConfiguration implements ConfigurationInterface { @@ -14,7 +15,7 @@ public function __construct($debug) public function getConfigTreeBuilder() { - return (new TreeBuilder)->root('clockwork') + return $this->getConfigRoot() ->children() ->booleanNode('enable')->defaultValue($this->debug)->end() ->booleanNode('web')->defaultValue(true)->end() @@ -24,4 +25,13 @@ public function getConfigTreeBuilder() ->end() ->end(); } + + protected function getConfigRoot() + { + if (Kernel::VERSION_ID < 40300) { + return (new TreeBuilder)->root('clockwork'); + } + + return (new TreeBuilder('clockwork'))->getRootNode(); + } } diff --git a/Clockwork/Support/Symfony/ClockworkController.php b/Clockwork/Support/Symfony/ClockworkController.php index 75475a97..b5d86a2c 100755 --- a/Clockwork/Support/Symfony/ClockworkController.php +++ b/Clockwork/Support/Symfony/ClockworkController.php @@ -2,12 +2,12 @@ use Clockwork\Clockwork; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Profiler\Profiler; -class ClockworkController extends Controller +class ClockworkController extends AbstractController { protected $clockwork; protected $profiler; diff --git a/Clockwork/Support/Symfony/ClockworkListener.php b/Clockwork/Support/Symfony/ClockworkListener.php index d169571e..c1e21250 100755 --- a/Clockwork/Support/Symfony/ClockworkListener.php +++ b/Clockwork/Support/Symfony/ClockworkListener.php @@ -2,7 +2,7 @@ use Clockwork\Clockwork; -use Symfony\Component\HttpKernel\Event\FilterResponseEvent; +use Symfony\Component\HttpKernel\Event\KernelEvent; use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -15,7 +15,7 @@ public function __construct(ClockworkSupport $clockwork) $this->clockwork = $clockwork; } - public function onKernelResponse(FilterResponseEvent $event) + public function onKernelResponse(KernelEvent $event) { if (! $this->clockwork->isEnabled()) return; diff --git a/Clockwork/Support/Symfony/Resources/config/routing/clockwork.php b/Clockwork/Support/Symfony/Resources/config/routing/clockwork.php index f83180d3..2d95d8d6 100644 --- a/Clockwork/Support/Symfony/Resources/config/routing/clockwork.php +++ b/Clockwork/Support/Symfony/Resources/config/routing/clockwork.php @@ -13,10 +13,6 @@ '_controller' => [ Clockwork\Support\Symfony\ClockworkController::class, 'webIndex' ] ])); -$routes->add('clockwork.webAsset', new Route('/__clockwork/{path}', [ - '_controller' => [ Clockwork\Support\Symfony\ClockworkController::class, 'webAsset' ] -], [ 'path' => '.+' ])); - $routes->add('clockwork.auth', new Route('/__clockwork/auth', [ '_controller' => [ Clockwork\Support\Symfony\ClockworkController::class, 'authenticate' ] ])); @@ -27,4 +23,8 @@ 'count' => null ], [ 'id' => '([a-z0-9-]+|latest)', 'direction' => '(next|previous)', 'count' => '\d+' ])); +$routes->add('clockwork.webAsset', new Route('/__clockwork/{path}', [ + '_controller' => [ Clockwork\Support\Symfony\ClockworkController::class, 'webAsset' ] +], [ 'path' => '.+' ])); + return $routes; From cc01cac413e7e3decc6ccb3329e32940a34ea3d9 Mon Sep 17 00:00:00 2001 From: its Date: Fri, 31 Jan 2020 01:41:31 +0100 Subject: [PATCH 56/75] Laravel - fixed middleware being reigstered too late, causing "collect data always" setting to not work. --- Clockwork/Support/Laravel/ClockworkServiceProvider.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 7af7c26d..78af1110 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -26,12 +26,14 @@ class ClockworkServiceProvider extends ServiceProvider { public function boot() { - if ($this->app['clockwork.support']->isCollectingData()) $this->listenToEvents(); + if ($this->app['clockwork.support']->isCollectingData()) { + $this->listenToEvents(); + $this->registerMiddleware(); + } // If Clockwork is disabled, return before registering middleware or routes if (! $this->app['clockwork.support']->isEnabled()) return; - $this->registerMiddleware(); $this->registerRoutes(); // register the Clockwork Web UI routes From f747ff0aec7cfd740774132a13378c47f4a58a47 Mon Sep 17 00:00:00 2001 From: its Date: Sun, 2 Feb 2020 00:38:04 +0100 Subject: [PATCH 57/75] Symfony - more compatible way of turning off Symfony profiler for Clockwork requests. --- .../Support/Symfony/ClockworkController.php | 14 ++------------ Clockwork/Support/Symfony/ClockworkListener.php | 17 ++++++++++++++--- .../Symfony/Resources/config/clockwork.php | 4 ++-- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/Clockwork/Support/Symfony/ClockworkController.php b/Clockwork/Support/Symfony/ClockworkController.php index b5d86a2c..2dd3abd9 100755 --- a/Clockwork/Support/Symfony/ClockworkController.php +++ b/Clockwork/Support/Symfony/ClockworkController.php @@ -5,18 +5,16 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpKernel\Profiler\Profiler; class ClockworkController extends AbstractController { protected $clockwork; - protected $profiler; + protected $support; - public function __construct(Clockwork $clockwork, ClockworkSupport $support, Profiler $profiler) + public function __construct(Clockwork $clockwork, ClockworkSupport $support) { $this->clockwork = $clockwork; $this->support = $support; - $this->profiler = $profiler; } public function authenticate(Request $request) @@ -28,15 +26,11 @@ public function authenticate(Request $request) public function getData(Request $request, $id = null, $direction = null, $count = null) { - $this->profiler->disable(); - return $this->support->getData($request, $id, $direction, $count); } public function webIndex(Request $request) { - $this->profiler->disable(); - if ($this->support->isWebUsingDarkTheme() && ! $request->query->has('dark')) { return $this->redirect('/__clockwork/app?dark'); } @@ -46,15 +40,11 @@ public function webIndex(Request $request) public function webAsset($path) { - $this->profiler->disable(); - return $this->support->getWebAsset($path); } public function webRedirect() { - $this->profiler->disable(); - return $this->redirect('/__clockwork/app'); } } diff --git a/Clockwork/Support/Symfony/ClockworkListener.php b/Clockwork/Support/Symfony/ClockworkListener.php index c1e21250..bd201110 100755 --- a/Clockwork/Support/Symfony/ClockworkListener.php +++ b/Clockwork/Support/Symfony/ClockworkListener.php @@ -2,17 +2,27 @@ use Clockwork\Clockwork; -use Symfony\Component\HttpKernel\Event\KernelEvent; use Symfony\Component\HttpKernel\KernelEvents; +use Symfony\Component\HttpKernel\Event\KernelEvent; +use Symfony\Component\HttpKernel\Profiler\Profiler; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class ClockworkListener implements EventSubscriberInterface { protected $clockwork; + protected $profiler; - public function __construct(ClockworkSupport $clockwork) + public function __construct(ClockworkSupport $clockwork, Profiler $profiler) { $this->clockwork = $clockwork; + $this->profiler = $profiler; + } + + public function onKernelRequest(KernelEvent $event) + { + if (preg_match('#/__clockwork(.*)#', $event->getRequest()->getPathInfo())) { + $this->profiler->disable(); + } } public function onKernelResponse(KernelEvent $event) @@ -30,7 +40,8 @@ public function onKernelResponse(KernelEvent $event) public static function getSubscribedEvents() { return [ - KernelEvents::RESPONSE => [ 'onKernelResponse', -128 ], + KernelEvents::REQUEST => [ 'onKernelRequest', 512 ], + KernelEvents::RESPONSE => [ 'onKernelResponse', -128 ] ]; } } diff --git a/Clockwork/Support/Symfony/Resources/config/clockwork.php b/Clockwork/Support/Symfony/Resources/config/clockwork.php index 7fbcd20e..181e1f00 100644 --- a/Clockwork/Support/Symfony/Resources/config/clockwork.php +++ b/Clockwork/Support/Symfony/Resources/config/clockwork.php @@ -24,10 +24,10 @@ ->setPublic(true); $container->autowire(Clockwork\Support\Symfony\ClockworkController::class) - ->setAutoconfigured(true) - ->setArgument('$profiler', new Reference('profiler')); + ->setAutoconfigured(true); $container->autowire(Clockwork\Support\Symfony\ClockworkListener::class) + ->setArgument('$profiler', new Reference('profiler')) ->addTag('kernel.event_subscriber'); $container->setAlias('clockwork', Clockwork\Clockwork::class)->setPublic('true'); From ef08837f5b190fbe568d2c816ab45db77dfec410 Mon Sep 17 00:00:00 2001 From: its Date: Sun, 2 Feb 2020 01:19:37 +0100 Subject: [PATCH 58/75] Symfony - fixed transformation of cache queries. --- Clockwork/Support/Symfony/ProfileTransformer.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Clockwork/Support/Symfony/ProfileTransformer.php b/Clockwork/Support/Symfony/ProfileTransformer.php index 161587d0..0f47763b 100644 --- a/Clockwork/Support/Symfony/ProfileTransformer.php +++ b/Clockwork/Support/Symfony/ProfileTransformer.php @@ -49,10 +49,11 @@ protected function getCacheQueries($data) return [ 'connection' => $connection, - 'time' => $query['end'] - $query['start'], - 'type' => array_values($value)[0] ? 'hit' : 'miss', - 'key' => array_keys($value)[0], - 'value' => '' + 'time' => $query['start'], + 'type' => array_values($value)[0] ? 'hit' : 'miss', + 'key' => array_keys($value)[0], + 'value' => '', + 'duration' => $query['end'] - $query['start'] ]; }, $queries)); }, $this->unwrap($data->getCalls()), array_keys($this->unwrap($data->getCalls()))), function ($all, $queries) { From 717aace42fd079064f84a9c71b51a3508c26e961 Mon Sep 17 00:00:00 2001 From: its Date: Sun, 2 Feb 2020 21:56:58 +0100 Subject: [PATCH 59/75] Updated changelog. --- CHANGELOG.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e83b5277..169428d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,15 +18,31 @@ - improved Laravel events data source to include Laravel namespace in the default ignored events - improved Laravel views data source to strip view data prefixed with __ - improved PHP data source to not set request time for cli commands +- improved serializer to ommit data below depth limit, support debugInfo, jsonSerialize and toArray methods (partially implemented by mahagr, thanks!) +- improved log to allow overriding serializer settings via context, no longer enabled toString by default - improved Request class now has pre-populated request time on creation - improved StackTrace helper with limit option, last method, fixed filter output keys +- improved Lumen queue and redis feature detection +- fixed Symfony support, added support for latest Symfony 5.x and 4.x (reported by llaville, thanks!) - updated to Clockwork App 4.1 *BREAKING* +- multiple new settings were added to the Laravel config file - DataSourceInterface::reset method was added, default empty implementation is provided in the base DataSource class - LaravelDataSource constructor arguments changed to reflect removing the views collecting support -- multiple new settings were added to the Laravel config file + +4.0.16 + +- fixed Laravel middleware being registered too late, causing "collect data always" setting to not work (reported by Youniteus, thanks!) + +4.0.15 + +- fixed cleanup not working with file storage (implemented by LucidTaZ, thanks!) + +4.0.14 + +- fixed compatibility with Laravel 5.4 and earlier when resolving authenticated user 4.0.13 @@ -34,7 +50,6 @@ - fixed wrong stack traces skip namespaces defaults leading to wrong traces - fixed vanilla integration config file missing and no longer used settings - 4.0.12 - added a simple index file locking to the file storage From 74cccaad04597f29e1e3276537fa0948be475b0e Mon Sep 17 00:00:00 2001 From: its Date: Tue, 4 Feb 2020 23:32:38 +0100 Subject: [PATCH 60/75] Storage - improved performance and memory usage of FileStorage cleanup, fixed double closing of the index leading to crash on cleanup, fixed clockwork cleanup artisan command help text. --- Clockwork/Storage/FileStorage.php | 38 +++++++++++-------- Clockwork/Storage/Search.php | 8 +++- .../Support/Laravel/ClockworkCleanCommand.php | 2 +- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/Clockwork/Storage/FileStorage.php b/Clockwork/Storage/FileStorage.php index ec4002c7..db7c118d 100644 --- a/Clockwork/Storage/FileStorage.php +++ b/Clockwork/Storage/FileStorage.php @@ -52,7 +52,7 @@ public function __construct($path, $dirPermissions = 0700, $expiration = null, $ // Returns all requests public function all(Search $search = null) { - return $this->searchIndexForward($search); + return $this->loadRequests($this->searchIndexForward($search)); } // Return a single request by id @@ -64,19 +64,19 @@ public function find($id) // Return the latest request public function latest(Search $search = null) { - return $this->searchIndexBackward($search, null, 1); + return $this->loadRequests($this->searchIndexBackward($search, null, 1)); } // Return requests received before specified id, optionally limited to specified count public function previous($id, $count = null, Search $search = null) { - return $this->searchIndexBackward($search, $id, $count); + return $this->loadRequests($this->searchIndexBackward($search, $id, $count)); } // Return requests received after specified id, optionally limited to specified count public function next($id, $count = null, Search $search = null) { - return $this->searchIndexForward($search, $id, $count); + return $this->loadRequests($this->searchIndexForward($search, $id, $count)); } // Store request, requests are stored in JSON representation in files named .json in storage path @@ -98,22 +98,22 @@ public function cleanup($force = false) { if ($this->expiration === false || (! $force && rand(1, $this->cleanupChance) != 1)) return; - $this->openIndex('end', true, true); // reopen index with lock + $this->openIndex('start', true, true); // reopen index with lock $expirationTime = time() - ($this->expiration * 60); - $old = $this->searchIndexBackward(new Search([ 'received' => [ '<' . date('c', $expirationTime) ] ]), null, null); + $old = $this->searchIndexForward( + new Search([ 'received' => [ '<' . date('c', $expirationTime) ] ], [ 'stopOnFirstMismatch' => true ]) + ); if (! count($old)) return; - $this->searchIndexBackward(null, $old[count($old) - 1]->id); - $this->readNextIndex(); + $this->readPreviousIndex(); $this->trimIndex(); - $this->closeIndex(true); // explicitly close index to unlock asap - foreach ($old as $request) { - $path = "{$this->path}/{$request->id}.json"; + foreach ($old as $id) { + $path = "{$this->path}/{$id}.json"; @unlink($this->compress ? "{$path}.gz" : $path); } } @@ -129,20 +129,25 @@ protected function loadRequest($id) return new Request(json_decode($this->compress ? gzuncompress($data) : $data, true)); } + protected function loadRequests($ids) + { + return array_filter(array_map(function ($id) { return $this->loadRequest($id); }, $ids)); + } + // Search index backward from specified ID or last record, with optional results count limit - protected function searchIndexBackward(Search $search = null, $id = null, $count = 1) + protected function searchIndexBackward(Search $search = null, $id = null, $count = null) { return $this->searchIndex('previous', $search, $id, $count); } // Search index forward from specified ID or last record, with optional results count limit - protected function searchIndexForward(Search $search = null, $id = null, $count = 1) + protected function searchIndexForward(Search $search = null, $id = null, $count = null) { return $this->searchIndex('next', $search, $id, $count); } // Search index in specified direction from specified ID or last record, with optional results count limit - protected function searchIndex($direction, Search $search = null, $id = null, $count = 1) + protected function searchIndex($direction, Search $search = null, $id = null, $count = null) { $this->openIndex($direction == 'previous' ? 'end' : 'start'); @@ -154,7 +159,9 @@ protected function searchIndex($direction, Search $search = null, $id = null, $c while ($request = $this->readIndex($direction)) { if (! $search || $search->matches($request)) { - if ($request = $this->loadRequest($request->id)) $found[] = $request; + $found[] = $request->id; + } elseif ($search->stopOnFirstMismatch) { + return $found; } if ($count && count($found) == $count) return $found; @@ -256,7 +263,6 @@ protected function trimIndex() $trimmed = $trimmedLength > 0 ? fread($this->indexHandle, $trimmedLength) : ''; // Rewrite the index file with a trimmed version - fclose($this->indexHandle); file_put_contents("{$this->path}/index", $trimmed); } diff --git a/Clockwork/Storage/Search.php b/Clockwork/Storage/Search.php index d5d06d0a..00ece3e3 100644 --- a/Clockwork/Storage/Search.php +++ b/Clockwork/Storage/Search.php @@ -14,12 +14,18 @@ class Search public $name = []; public $type = []; - public function __construct($search = []) + public $stopOnFirstMismatch = false; + + public function __construct($search = [], $options = []) { foreach ([ 'uri', 'controller', 'method', 'status', 'time', 'received', 'name', 'type' ] as $condition) { $this->$condition = isset($search[$condition]) ? $search[$condition] : []; } + foreach ([ 'stopOnFirstMismatch' ] as $option) { + $this->$option = isset($options[$option]) ? $options[$option] : $this->$condition; + } + $this->method = array_map('strtolower', $this->method); } diff --git a/Clockwork/Support/Laravel/ClockworkCleanCommand.php b/Clockwork/Support/Laravel/ClockworkCleanCommand.php index 883741e7..016ce6f2 100644 --- a/Clockwork/Support/Laravel/ClockworkCleanCommand.php +++ b/Clockwork/Support/Laravel/ClockworkCleanCommand.php @@ -16,7 +16,7 @@ public function getOptions() { return [ [ 'all', 'a', InputOption::VALUE_NONE, 'cleans all data' ], - [ 'expiration', 'e', InputOption::VALUE_REQUIRED, 'cleans data older then specified value in seconds' ] + [ 'expiration', 'e', InputOption::VALUE_REQUIRED, 'cleans data older then specified value in minutes' ] ]; } From 0292dafa86ec8785579259ba2657b51e4a901823 Mon Sep 17 00:00:00 2001 From: its Date: Wed, 5 Feb 2020 00:35:45 +0100 Subject: [PATCH 61/75] Normalize bindings in Request::addDatabaseQuery. --- Clockwork/Request/Request.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Clockwork/Request/Request.php b/Clockwork/Request/Request.php index af676803..01b9726c 100644 --- a/Clockwork/Request/Request.php +++ b/Clockwork/Request/Request.php @@ -367,7 +367,7 @@ public function addDatabaseQuery($query, $bindings = [], $duration = null, $data { $this->databaseQueries[] = [ 'query' => $query, - 'bindings' => $bindings, + 'bindings' => (new Serializer)->normalize($bindings), 'duration' => $duration, 'connection' => isset($data['connection']) ? $data['connection'] : null, 'file' => isset($data['file']) ? $data['file'] : null, From 1637020fd0c514ee3d7ad807817b04fd18d782e7 Mon Sep 17 00:00:00 2001 From: its Date: Thu, 6 Feb 2020 22:51:09 +0100 Subject: [PATCH 62/75] Symfony - respect the enabled and web-enabled settings. --- .../Support/Symfony/ClockworkController.php | 23 +++++++++++++++++++ .../Support/Symfony/ClockworkSupport.php | 5 ++++ 2 files changed, 28 insertions(+) diff --git a/Clockwork/Support/Symfony/ClockworkController.php b/Clockwork/Support/Symfony/ClockworkController.php index 2dd3abd9..c6d5cdd2 100755 --- a/Clockwork/Support/Symfony/ClockworkController.php +++ b/Clockwork/Support/Symfony/ClockworkController.php @@ -19,6 +19,8 @@ public function __construct(Clockwork $clockwork, ClockworkSupport $support) public function authenticate(Request $request) { + $this->ensureClockworkIsEnabled(); + $token = $this->clockwork->getAuthenticator()->attempt($request->request->all()); return new JsonResponse([ 'token' => $token ], $token ? 200 : 403); @@ -26,11 +28,16 @@ public function authenticate(Request $request) public function getData(Request $request, $id = null, $direction = null, $count = null) { + $this->ensureClockworkIsEnabled(); + return $this->support->getData($request, $id, $direction, $count); } public function webIndex(Request $request) { + $this->ensureClockworkIsEnabled(); + $this->ensureClockworkWebIsEnabled(); + if ($this->support->isWebUsingDarkTheme() && ! $request->query->has('dark')) { return $this->redirect('/__clockwork/app?dark'); } @@ -40,11 +47,27 @@ public function webIndex(Request $request) public function webAsset($path) { + $this->ensureClockworkIsEnabled(); + $this->ensureClockworkWebIsEnabled(); + return $this->support->getWebAsset($path); } public function webRedirect() { + $this->ensureClockworkIsEnabled(); + $this->ensureClockworkWebIsEnabled(); + return $this->redirect('/__clockwork/app'); } + + protected function ensureClockworkIsEnabled() + { + if (! $this->support->isEnabled()) throw $this->createNotFoundException(); + } + + protected function ensureClockworkWebIsEnabled() + { + if (! $this->support->isWebEnabled()) throw $this->createNotFoundException(); + } } diff --git a/Clockwork/Support/Symfony/ClockworkSupport.php b/Clockwork/Support/Symfony/ClockworkSupport.php index b7e7a905..0dafda94 100644 --- a/Clockwork/Support/Symfony/ClockworkSupport.php +++ b/Clockwork/Support/Symfony/ClockworkSupport.php @@ -84,6 +84,11 @@ public function isEnabled() return $this->getConfig('enable', false); } + public function isWebEnabled() + { + return $this->getConfig('web', false); + } + public function isWebUsingDarkTheme() { return $this->getConfig('web_dark_theme', false); From dca11b67eaebb8fb8c9a2bfad9fd1323149034b3 Mon Sep 17 00:00:00 2001 From: its Date: Thu, 6 Feb 2020 23:10:27 +0100 Subject: [PATCH 63/75] Removed the web dark theme setting since this is not configurable in the Clockwork app itself. --- Clockwork/Support/Laravel/ClockworkController.php | 4 ---- Clockwork/Support/Laravel/ClockworkSupport.php | 5 ----- Clockwork/Support/Laravel/config/clockwork.php | 2 -- Clockwork/Support/Lumen/Controller.php | 4 ---- Clockwork/Support/Symfony/ClockworkConfiguration.php | 1 - Clockwork/Support/Symfony/ClockworkController.php | 4 ---- Clockwork/Support/Symfony/ClockworkSupport.php | 5 ----- 7 files changed, 25 deletions(-) diff --git a/Clockwork/Support/Laravel/ClockworkController.php b/Clockwork/Support/Laravel/ClockworkController.php index 9031010f..42b847ff 100644 --- a/Clockwork/Support/Laravel/ClockworkController.php +++ b/Clockwork/Support/Laravel/ClockworkController.php @@ -44,10 +44,6 @@ public function webIndex() { $this->ensureClockworkIsEnabled(); - if ($this->app['clockwork.support']->isWebUsingDarkTheme() && ! $this->app['request']->exists('dark')) { - return new RedirectResponse('/__clockwork/app?dark'); - } - return $this->app['clockwork.support']->getWebAsset('index.html'); } diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index fbe741f6..6ea4aae8 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -337,11 +337,6 @@ public function isWebEnabled() return $this->getConfig('web', true); } - public function isWebUsingDarkTheme() - { - return $this->getConfig('web_dark_theme', false); - } - public function isUriFiltered($uri) { $filterUris = $this->getConfig('filter_uris', []); diff --git a/Clockwork/Support/Laravel/config/clockwork.php b/Clockwork/Support/Laravel/config/clockwork.php index 84693af7..025c6536 100644 --- a/Clockwork/Support/Laravel/config/clockwork.php +++ b/Clockwork/Support/Laravel/config/clockwork.php @@ -118,8 +118,6 @@ 'web' => env('CLOCKWORK_WEB', true), - 'web_dark_theme' => env('CLOCKWORK_WEB_DARK_THEME', false), - /* |-------------------------------------------------------------------------- | Artisan commands collection diff --git a/Clockwork/Support/Lumen/Controller.php b/Clockwork/Support/Lumen/Controller.php index aacb4173..1a9eb382 100644 --- a/Clockwork/Support/Lumen/Controller.php +++ b/Clockwork/Support/Lumen/Controller.php @@ -49,10 +49,6 @@ public function webIndex(Request $request) { $this->ensureClockworkIsEnabled(); - if ($this->clockworkSupport->isWebUsingDarkTheme() && ! $request->exists('dark')) { - return new RedirectResponse('/__clockwork/app?dark'); - } - return $this->clockworkSupport->getWebAsset('index.html'); } diff --git a/Clockwork/Support/Symfony/ClockworkConfiguration.php b/Clockwork/Support/Symfony/ClockworkConfiguration.php index 83770aae..44f91502 100755 --- a/Clockwork/Support/Symfony/ClockworkConfiguration.php +++ b/Clockwork/Support/Symfony/ClockworkConfiguration.php @@ -19,7 +19,6 @@ public function getConfigTreeBuilder() ->children() ->booleanNode('enable')->defaultValue($this->debug)->end() ->booleanNode('web')->defaultValue(true)->end() - ->booleanNode('web_dark_theme')->defaultValue(false)->end() ->booleanNode('authentication')->defaultValue(false)->end() ->scalarNode('authentication_password')->defaultValue('VerySecretPassword')->end() ->end() diff --git a/Clockwork/Support/Symfony/ClockworkController.php b/Clockwork/Support/Symfony/ClockworkController.php index c6d5cdd2..34818d8a 100755 --- a/Clockwork/Support/Symfony/ClockworkController.php +++ b/Clockwork/Support/Symfony/ClockworkController.php @@ -38,10 +38,6 @@ public function webIndex(Request $request) $this->ensureClockworkIsEnabled(); $this->ensureClockworkWebIsEnabled(); - if ($this->support->isWebUsingDarkTheme() && ! $request->query->has('dark')) { - return $this->redirect('/__clockwork/app?dark'); - } - return $this->support->getWebAsset('index.html'); } diff --git a/Clockwork/Support/Symfony/ClockworkSupport.php b/Clockwork/Support/Symfony/ClockworkSupport.php index 0dafda94..1df8fa66 100644 --- a/Clockwork/Support/Symfony/ClockworkSupport.php +++ b/Clockwork/Support/Symfony/ClockworkSupport.php @@ -88,9 +88,4 @@ public function isWebEnabled() { return $this->getConfig('web', false); } - - public function isWebUsingDarkTheme() - { - return $this->getConfig('web_dark_theme', false); - } } From 0a8f4e55e6c09bea44cae3217d55a85d6a3b9bbb Mon Sep 17 00:00:00 2001 From: its Date: Thu, 6 Feb 2020 23:34:45 +0100 Subject: [PATCH 64/75] Updated Clockwork App. --- Clockwork/Web/public/css/app.aa9687c7.css | 1 - Clockwork/Web/public/css/app.af135e9c.css | 1 + Clockwork/Web/public/index.html | 2 +- Clockwork/Web/public/js/app.f178977c.js | 2 ++ Clockwork/Web/public/js/app.f1b7b44a.js | 2 -- ...ifest.43917887ae89e9774b9f0129a40b05e7.js} | 34 +++++++++---------- Clockwork/Web/public/service-worker.js | 2 +- 7 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 Clockwork/Web/public/css/app.aa9687c7.css create mode 100644 Clockwork/Web/public/css/app.af135e9c.css create mode 100644 Clockwork/Web/public/js/app.f178977c.js delete mode 100644 Clockwork/Web/public/js/app.f1b7b44a.js rename Clockwork/Web/public/{precache-manifest.d98f089c485a0cddf15bf5e3f625afa4.js => precache-manifest.43917887ae89e9774b9f0129a40b05e7.js} (84%) diff --git a/Clockwork/Web/public/css/app.aa9687c7.css b/Clockwork/Web/public/css/app.aa9687c7.css deleted file mode 100644 index 84ff3a05..00000000 --- a/Clockwork/Web/public/css/app.aa9687c7.css +++ /dev/null @@ -1 +0,0 @@ -.exception-section{border-bottom:1px solid #d1d1d1}.application.dark .exception-section{border-bottom:1px solid #363636}.exception-section.compact .exception-message h3{display:inline;padding-right:4px}.exception-section .exception-info{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#ffebeb;color:#c51f24;display:-webkit-box;display:-ms-flexbox;display:flex;padding:6px 10px}.exception-section .exception-info:nth-child(2n){background:#ffe0e0}.exception-section .exception-info:first-child{padding-top:12px}.exception-section .exception-info:last-child{padding-bottom:12px}.application.dark .exception-section .exception-info{background:#380000;color:#ed797a}.application.dark .exception-section .exception-info:nth-child(2n){background:#2e0000}.exception-section .exception-info h3{border-bottom:0;font-size:14px;margin:0 0 5px}.exception-section .exception-info .exception-message{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;line-height:1.5}.exception-section .exception-info .exception-previous,.exception-section .exception-info .exception-trace>a{color:#c51f24;font-size:12px;margin:0 4px}.application.dark .exception-section .exception-info .exception-previous,.application.dark .exception-section .exception-info .exception-trace>a{color:#ed797a}.exception-section .exception-info .exception-previous{margin-right:4px;text-decoration:none}.exception-section .exception-info .exception-trace{display:inline-block}.parent-request{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;font-weight:600;padding:12px 10px}.application.dark .parent-request{border-bottom:1px solid #363636}.parent-request.compact .parent-title{padding-right:4px}.parent-request.compact .parent-name,.parent-request.compact .parent-title{display:inline}.parent-request .parent-title{font-size:11px;margin-bottom:3px}.parent-request .parent-method{color:grey;font-size:90%;font-weight:400;margin-right:2px}.application.dark .parent-request .parent-method{color:#767676}.parent-request .parent-uri{font-weight:400}.parent-request .type-text{background:#cbdeec;border-radius:3px;color:#365063;font-size:80%;margin-right:2px;padding:1px 3px;vertical-align:1px}.application.dark .parent-request .type-text{background:#002e52;color:#6ebef7}.parent-request a{color:#258cdb;font-weight:400;text-decoration:none}.application.dark .parent-request a{color:#f27e02}.parent-request .parent-close{margin-left:auto}.messages-overlay .parent-request{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;font-weight:600;padding:10px}.messages-overlay .parent-request .parent-method{color:grey;font-size:90%;font-weight:400;margin-right:2px}.application.dark .messages-overlay .parent-request .parent-method{color:#767676}.messages-overlay .parent-request .parent-uri{font-weight:400}.messages-overlay .parent-request a{color:#258cdb;font-weight:400;text-decoration:none}.application.dark .messages-overlay .parent-request a{color:#f27e02}.messages-overlay .parent-request .parent-close{margin-left:auto}.messages-overlay .exception .exception-info{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#ffebeb;color:#c51f24;display:-webkit-box;display:-ms-flexbox;display:flex;padding:10px}.messages-overlay .exception .exception-info:nth-child(2n){background:#ffe0e0}.application.dark .messages-overlay .exception .exception-info{background:#380000;color:#ed797a}.application.dark .messages-overlay .exception .exception-info:nth-child(2n){background:#2e0000}.messages-overlay .exception .exception-info h3{border-bottom:0;display:inline;font-size:12px}.messages-overlay .exception .exception-info .exception-message{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px}.messages-overlay .exception .exception-info .exception-previous,.messages-overlay .exception .exception-info .exception-trace>a{color:#c51f24;font-size:12px;margin:0 4px}.application.dark .messages-overlay .exception .exception-info .exception-previous,.application.dark .messages-overlay .exception .exception-info .exception-trace>a{color:#ed797a}.messages-overlay .exception .exception-info .exception-previous{margin-right:4px;text-decoration:none}.messages-overlay .exception .exception-info .exception-trace{display:inline-block}.messages-overlay .update-notification{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#e9f3fb;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:110%;padding:10px}.application.dark .messages-overlay .update-notification{background:#643302}.messages-overlay .update-notification a{color:#258cdb;text-decoration:none}.application.dark .messages-overlay .update-notification a{color:#f27e02}.messages-overlay .update-notification strong{font-weight:500}.messages-overlay .update-notification .updateNotification-close{margin-left:auto}.settings-modal{background:#fff;border:1px solid #d1d1d1;border-radius:5px;-webkit-box-shadow:0 0 4px #e5e5e5;box-shadow:0 0 4px #e5e5e5;font-size:13px;left:5%;max-width:600px;padding:32px 35px 1px;position:absolute;text-align:left;top:0;width:90%;z-index:300}.application.dark .settings-modal{background:#1f1f1f;border:1px solid #404040;-webkit-box-shadow:0 0 4px #292929;box-shadow:0 0 4px #292929}.settings-modal a{padding:0}.settings-modal .controls-group{display:-webkit-box;display:-ms-flexbox;display:flex;margin:22px 0}.settings-modal .controls-group .controls{-webkit-box-flex:1;-ms-flex:1;flex:1}.settings-modal .help-text{font-size:90%;margin-top:8px}.settings-modal label{margin-right:10px;margin-top:5px;text-align:right;width:25%}.settings-modal input,.settings-modal select{border:1px solid #ccc;font-size:13px;height:26px}.application.dark .settings-modal input,.application.dark .settings-modal select{background:#5d5c5b;border-color:#7c7a78;color:#e9e9e9}.application.dark .settings-modal input::-webkit-input-placeholder,.application.dark .settings-modal select::-webkit-input-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input::-moz-placeholder,.application.dark .settings-modal select::-moz-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input:-ms-input-placeholder,.application.dark .settings-modal select:-ms-input-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input::-ms-input-placeholder,.application.dark .settings-modal select::-ms-input-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input::placeholder,.application.dark .settings-modal select::placeholder{color:#a7a6a5;opacity:1}.settings-modal input[type=checkbox],.settings-modal select[type=checkbox]{height:auto;margin-right:3px}.application.dark .settings-modal select{background:#6a6866;border:1px solid #7c7a78;border-radius:5px}.settings-modal .controls-input-vgroup input{border:1px solid #ccc;padding:4px 8px;width:100%}.settings-modal .controls-input-vgroup input:first-child{border-radius:4px 4px 0 0}.settings-modal .controls-input-vgroup input:last-child{border-radius:0 0 4px 4px;margin-top:-2px}.settings-modal .controls-checkbox{display:inline-block;margin-bottom:5px;text-align:left;width:100%}.settings-modal .appearance-controls{display:-webkit-box;display:-ms-flexbox;display:flex}.settings-modal .appearance-controls .option{-webkit-box-flex:0;-ms-flex:0;flex:0;margin-right:12px;text-align:center}.settings-modal .appearance-controls .option.selected img{border:2px solid #258cdb;-webkit-box-shadow:0 0 2px #258cdb;box-shadow:0 0 2px #258cdb}.application.dark .settings-modal .appearance-controls .option.selected img{border:2px solid #f27e02;-webkit-box-shadow:0 0 2px #f27e02;box-shadow:0 0 2px #f27e02}.settings-modal .appearance-controls .option img{border:1px solid #ccc;border-radius:4px;height:50px;width:75px}.application.dark .settings-modal .appearance-controls .option img{border:1px solid #363636}.settings-enter-active,.settings-leave-active{-webkit-transition:top .33s;transition:top .33s}.settings-enter,.settings-leave-to{top:-400px}.details-table .pagination-controls{background:transparent!important}.details-table .pagination-controls td{text-align:center}.details-table .pagination-controls a{color:#258cdb;text-decoration:none}.application.dark .details-table .pagination-controls a{color:#f27e02}.counter.database-slow-query{border-color:#d7a175!important}.application.dark .counter.database-slow-query{border-color:#d0b78b!important}.database-slow-query{background:#fffae2;color:#a85919}.database-slow-query:nth-child(2n){background:#fff5c2!important}.database-slow-query .database-query-path>a{color:#d7a175!important}.application.dark .database-slow-query{background:#382f00;color:#fad89f}.application.dark .database-slow-query:nth-child(2n){background:#2e2600!important}.application.dark .database-slow-query .database-query-path>a{color:#d0b78b!important}.command-output{background:#333;border-radius:6px;font-family:Menlo,monospace;overflow:auto;padding:16px 12px;white-space:pre}.application.dark .command-output{background:#111}.performance-log{margin-top:25px}.performance-log table thead .count{background:#c28451;color:#fffae2;border-radius:8px;margin-left:2px;padding:0 8px}.application.dark .performance-log table thead .count{background:#fad89f;color:#382f00}.performance-log table tr{background:transparent!important;color:#a85919}.performance-log table tr:nth-child(2n){background:#fffae2!important}.performance-log table tr .log-message-path>a{color:#d7a175!important}.application.dark .performance-log table tr{color:#fad89f}.application.dark .performance-log table tr:nth-child(2n){background:#382f00!important}.application.dark .performance-log table tr .log-message-path>a{color:#d0b78b!important}.performance-log table tr:first-child td{border-top:1px solid #d7a175!important}.application.dark .performance-log table tr:first-child td{border-top:1px solid #d0b78b!important}.performance-log table tr .toggle-filter{color:#d7a175!important}.application.dark .performance-log table tr .toggle-filter{color:#d0b78b!important}.performance-log table tr.filter{background:#fffae2!important}.application.dark .performance-log table tr.filter{background:#382f00!important}.performance-log table tr.filter td{border-top:1px solid #d7a175!important}.application.dark .performance-log table tr.filter td{border-top:1px solid #d0b78b!important}.performance-log table tr.filter td .example,.performance-log table tr.filter td .fa-search,.performance-log table tr.filter td input{color:#d7a175!important}.application.dark .performance-log table tr.filter td .example,.application.dark .performance-log table tr.filter td .fa-search,.application.dark .performance-log table tr.filter td input{color:#d0b78b!important}.timeline-item-tags{font-size:85%;opacity:.77}.job-options[data-v-dea2de12]{margin:2px 0;width:100%}.job-options span[data-v-dea2de12]{display:block;white-space:nowrap}.job-status-text[data-v-dea2de12]{background:#fffae2;border-radius:8px;color:#a85919;font-size:9px;padding:2px 6px;text-transform:uppercase}.application.dark .job-status-text[data-v-dea2de12]{background:#382f00;color:#fad89f}.job-status-text.is-success[data-v-dea2de12]{background:#e3eccb;color:#586336}.application.dark .job-status-text.is-success[data-v-dea2de12]{background:#293800;color:#e3fa9e}.job-status-text.is-error[data-v-dea2de12]{background:#ffebeb;color:#c51f24}.application.dark .job-status-text.is-error[data-v-dea2de12]{background:#380000;color:#ed797a}.views-view-name{margin-bottom:3px}.split-view-details{overflow:hidden}.sidebar-section .section-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:700;padding:5px 10px}.application.dark .sidebar-section .section-header{border-bottom:1px solid #363636}.sidebar-section .section-header .section-title{cursor:default}.sidebar-section .section-header .toggle-filter{display:none;margin-left:auto}.sidebar-section .section-header:hover .toggle-filter{display:block}.sidebar-section table{border-bottom:1px solid #d1d1d1;font-size:11px;margin-bottom:0}.application.dark .sidebar-section table{border-bottom:1px solid #363636}.sidebar-section table thead th:last-child{padding-right:20px;position:relative}.sidebar-section table thead .fa-angle-down,.sidebar-section table thead .fa-angle-up{font-weight:700;margin-left:4px}.sidebar-section table thead .toggle-filter{position:absolute;right:4px;top:4px;visibility:hidden}.sidebar-section table thead:hover .toggle-filter{visibility:visible}.application.dark .sidebar-section table tr:first-child td,.sidebar-section table tr:first-child td{border-top:0}.sidebar-section table tr:nth-child(2n){background:#f5f5f5}.application.dark .sidebar-section table tr:nth-child(2n){background:#1b1b1b}.sidebar-section table th{font-size:12px;font-weight:600;padding:4px 2px;white-space:nowrap}.sidebar-section table td{padding:8px 10px;vertical-align:top}.sidebar-section table td .key{font-size:11px;font-weight:600;margin-bottom:3px;white-space:nowrap}.sidebar-section table td .value{word-break:break-all}.sidebar-section table .filter{background:none!important}.sidebar-section table .filter td{border-bottom:1px solid #d1d1d1;border-top:0;padding:2px 10px}.application.dark .sidebar-section table .filter td{border-bottom:1px solid #363636;border-top:0}.sidebar-section table .filter label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.sidebar-section table .filter .fa-search{color:#696969;margin:0 4px}.sidebar-section table .filter input{background:transparent;border:none;width:100%}.sidebar-section table .filter input:focus{outline:none}.sidebar-section table .filter input::-webkit-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::-moz-placeholder{color:#a9a9a9}.sidebar-section table .filter input:-ms-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::-ms-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::placeholder{color:#a9a9a9}.application.dark .sidebar-section table .filter input::-webkit-input-placeholder{color:#777}.application.dark .sidebar-section table .filter input::-moz-placeholder{color:#777}.application.dark .sidebar-section table .filter input:-ms-input-placeholder{color:#777}.application.dark .sidebar-section table .filter input::-ms-input-placeholder{color:#777}.application.dark .sidebar-section table .filter input::placeholder{color:#777}.application.dark .sidebar-section table .filter input{color:#b2b2b2}.sidebar-section table .filter .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}.application.dark .sidebar-section table .filter .example{color:#777}.command-tab{background:#fff}.application.dark .command-tab{background:#1f1f1f}.queue-job-tab{background:#fff}.application.dark .queue-job-tab{background:#1f1f1f}.queue-job-tab .data-value{border-bottom:1px solid #d1d1d1;padding:8px 10px}.application.dark .queue-job-tab .data-value{border-bottom:1px solid #363636}.request-tab{background:#fff}.application.dark .request-tab{background:#1f1f1f}.request-tab .data-raw td{white-space:pre}.request-tab .session-user{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:110%;padding:8px 10px}.application.dark .request-tab .session-user{border-bottom:1px solid #363636}.request-tab .session-user .fa-user{color:grey;font-size:110%;margin-right:8px}.request-tab .session-user .name{margin-right:6px}.request-tab .session-user .dimmed{color:grey;font-size:90%}.application.dark .request-tab .session-user .dimmed{color:#767676}.request-tab .session-user .session-user-details{margin-left:auto}.test-tab .test-status-message{border-bottom:1px solid #d1d1d1;background:#ffebeb;color:#c51f24;padding:12px 10px;font-size:13px}.application.dark .test-tab .test-status-message{border-bottom:1px solid #363636}.test-tab .test-assert .assert-name{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.test-tab .test-assert .assert-name .assert-name-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;font-size:11px;font-weight:600;margin-bottom:3px;max-width:100%;white-space:nowrap;margin-bottom:5px;color:#657e1b}.application.dark .test-tab .test-assert .assert-name .assert-name-content{color:#d0ed78}.test-tab .test-assert .assert-name .assert-name-content.assert-failed{color:#c51f24}.application.dark .test-tab .test-assert .assert-name .assert-name-content.assert-failed{color:#ed797a}.test-tab .test-assert .assert-name .assert-name-trace{-webkit-box-flex:0;-ms-flex:0;flex:0}.test-tab .test-assert .pretty-jason{font-size:11px}.request-sidebar{background:#fafafa;border-top:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;height:25%}.application.dark .request-sidebar{background:#1b1b1b;border-top:1px solid #363636}.request-sidebar.large{height:33%}@media screen and (min-width:900px){.request-sidebar{border-left:1px solid #d1d1d1;border-top:0;height:100%;width:300px}.application.dark .request-sidebar{border-left:1px solid #363636;border-top:0}.request-sidebar.large{height:100%;width:400px}}@media screen and (min-width:1100px){.request-sidebar{width:360px}.request-sidebar.large{width:460px}}.request-sidebar .sidebar-header{background:#fff;border-bottom:1px solid #ccc;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;font-size:12px;height:31px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;line-height:31px;width:100%}.application.dark .request-sidebar .sidebar-header{background:#1f1f1f;border-bottom:1px solid #363636}.request-sidebar .sidebar-header .sidebar-title{padding:0 10px}.request-sidebar .sidebar-header .sidebar-actions{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;padding:0 5px}.request-sidebar .sidebar-header .sidebar-actions a{padding:0 5px}.request-sidebar .sidebar-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.request-sidebar .sidebar-date,.request-sidebar .sidebar-id{margin:10px 0;text-align:center}.request-sidebar .sidebar-id{color:grey}.application.dark .request-sidebar .sidebar-id{color:#767676}.split-view-requests{border-bottom:1px solid #d1d1d1;cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;height:25%;width:100%}.application.dark .split-view-requests{border-bottom:1px solid #363636}.split-view-requests.large .notifications-count{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.split-view-requests.large .notifications-count .errors-count{margin-left:5px}.split-view-requests.large .notifications-count .errors-count svg{margin-right:0}@media screen and (min-width:900px){.split-view-requests{border-bottom:0;border-right:1px solid #d1d1d1;height:100%;width:300px}.application.dark .split-view-requests{border-right:1px solid #363636}.split-view-requests.large{width:400px}}@media screen and (min-width:1100px){.split-view-requests{width:320px}.split-view-requests.large{width:420px}}.split-view-requests table{line-height:1.4;table-layout:fixed}.split-view-requests tr{height:28px}.split-view-requests tr:first-child td{border-top:1px solid #d1d1d1}.application.dark .split-view-requests tr:first-child td{border-top:1px solid #363636}.split-view-requests tr:nth-child(2n):not(.filler){background:#f3f3f3}.application.dark .split-view-requests tr:nth-child(2n):not(.filler){background:#181818}.split-view-requests tr:nth-child(2n):not(.filler) .notifications-count{background:hsla(0,0%,95.3%,.8)}.application.dark .split-view-requests tr:nth-child(2n):not(.filler) .notifications-count{background:rgba(27,27,27,.8)}.split-view-requests tr.selected td{background:#2786f3!important;color:#fff}.application.dark .split-view-requests tr.selected td{background:#f27e02!important}.application.dark .split-view-requests tr.selected small,.split-view-requests tr.selected small{color:#fff}.split-view-requests tr.selected .notifications-count{background:#2786f3!important}.application.dark .split-view-requests tr.selected .notifications-count .errors-count,.application.dark .split-view-requests tr.selected .notifications-count .warnings-count,.application.dark .split-view-requests tr.selected .notifications-count .warnings-count svg,.split-view-requests tr.selected .notifications-count .errors-count,.split-view-requests tr.selected .notifications-count .warnings-count,.split-view-requests tr.selected .notifications-count .warnings-count svg{color:#fff}.application.dark .split-view-requests tr.selected .notifications-count{background:#f27e02!important}.application.dark .split-view-requests tr.selected .method-text,.split-view-requests tr.selected .method-text{color:#fff}.application.dark .split-view-requests tr.selected .status-text,.application.dark .split-view-requests tr.selected .type-text,.split-view-requests tr.selected .status-text,.split-view-requests tr.selected .type-text{background:transparent;color:#fff}.split-view-requests tr.sizing{height:0}.split-view-requests tr.sizing td{border-top:0;padding:0}.application.dark .split-view-requests tr.sizing td{border-top:0}.split-view-requests tr.filler{height:auto}.split-view-requests th{border-bottom:1px solid #d1d1d1;font-weight:400;height:30px;line-height:1.1;padding:2px 4px;white-space:nowrap}.application.dark .split-view-requests th{border-bottom:1px solid #363636}.split-view-requests td{overflow:hidden;padding:8px 6px;vertical-align:middle;white-space:nowrap}.split-view-requests small{color:grey;font-size:100%}.application.dark .split-view-requests small{color:#767676}.split-view-requests big{font-size:115%}.split-view-requests .status{text-align:center;width:52px}.split-view-requests .duration{text-align:right;width:68px}.split-view-requests .type-text{background:#cbdeec;border-radius:3px;color:#365063;font-size:80%;margin-right:2px;padding:1px 3px;vertical-align:1px}.application.dark .split-view-requests .type-text{background:#002e52;color:#6ebef7}.split-view-requests .method-text{color:grey;font-size:90%}.application.dark .split-view-requests .method-text{color:#767676}.split-view-requests .status-text{background:#e3eccb;border-radius:8px;color:#586336;padding:2px 6px;text-transform:uppercase}.application.dark .split-view-requests .status-text{background:#293800;color:#e3fa9e}.split-view-requests .status-text.client-error{background:#fffae2;color:#a85919}.application.dark .split-view-requests .status-text.client-error{background:#382f00;color:#fad89f}.split-view-requests .status-text.server-error{background:#ffebeb;color:#c51f24}.application.dark .split-view-requests .status-text.server-error{background:#380000;color:#ed797a}.split-view-requests .status-text.status-text-small{font-size:9px}.split-view-requests .notifications-count{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:hsla(0,0%,98%,.8);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;float:right;height:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;letter-spacing:-.5px;margin-right:-6px;padding:0 6px;position:relative}.split-view-requests .notifications-count .errors-count{color:#b3492e}.application.dark .split-view-requests .notifications-count .errors-count{color:#ed797a}.split-view-requests .notifications-count .errors-count svg{margin-right:1px}.split-view-requests .notifications-count .warnings-count{color:#a85919}.application.dark .split-view-requests .notifications-count .warnings-count{color:#fad89f}.split-view-requests .notifications-count .warnings-count svg{color:#f4bd00}.application.dark .split-view-requests .notifications-count .warnings-count svg{color:#fad89f}.application.dark .split-view-requests .notifications-count{background:rgba(27,27,27,.8)}.split-view-requests .requests-header{height:31px}.split-view-requests .requests-search{border-bottom:1px solid #d1d1d1;padding:6px 2px}.application.dark .split-view-requests .requests-search{border-bottom:1px solid #363636}.split-view-requests .requests-search label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.split-view-requests .requests-search .fa-search{color:#696969;margin:0 4px}.split-view-requests .requests-search input{background:transparent;border:none;width:100%}.split-view-requests .requests-search input:focus{outline:none}.split-view-requests .requests-search input::-webkit-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::-moz-placeholder{color:#a9a9a9}.split-view-requests .requests-search input:-ms-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::-ms-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::placeholder{color:#a9a9a9}.application.dark .split-view-requests .requests-search input::-webkit-input-placeholder{color:#777}.application.dark .split-view-requests .requests-search input::-moz-placeholder{color:#777}.application.dark .split-view-requests .requests-search input:-ms-input-placeholder{color:#777}.application.dark .split-view-requests .requests-search input::-ms-input-placeholder{color:#777}.application.dark .split-view-requests .requests-search input::placeholder{color:#777}.application.dark .split-view-requests .requests-search input{color:#b2b2b2}.split-view-requests .requests-search .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}.application.dark .split-view-requests .requests-search .example{color:#777}.split-view-requests .requests-container{background:#fafafa;height:calc(100% - 31px);overflow:auto}.split-view-requests .requests-container table{height:100%}.application.dark .split-view-requests .requests-container{background:#1b1b1b}.split-view-requests .load-more{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;height:36px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.application.dark .split-view-requests .load-more{border-bottom:1px solid #363636}.split-view-requests .load-more a{color:#404040;text-decoration:none}.split-view-requests .load-more a:hover{color:#258cdb}.application.dark .split-view-requests .load-more a:hover{color:#f27e02}.application.dark .split-view-requests .load-more a{color:#b2b2b2}.whats-new{background:#fff;font-size:14px;height:calc(100% - 31px);overflow:auto;position:absolute;top:31px;width:100%;z-index:999}.application.dark .whats-new{background:#1f1f1f}.whats-new .whats-new-content{margin:0 auto;max-width:820px;padding:4px 16px 20px}.whats-new h1{font-size:18px;font-weight:400;margin:50px 0;text-align:center;width:100%}.whats-new h2{font-size:16px;font-weight:500}.whats-new .whats-new-section{margin-bottom:50px}.whats-new .whats-new-section img{border-bottom:1px solid #eee;margin-top:10px;max-width:100%}.application.dark .whats-new .whats-new-section img{border-bottom:1px solid #444}.whats-new .whats-new-actions{padding-top:25px;text-align:center;width:100%}.whats-new .whats-new-actions a{color:#258cdb;font-size:15px;margin:0 15px;text-decoration:none}.application.dark .whats-new .whats-new-actions a{color:#f27e02}.whats-new .whats-new-actions a.actions-show-more{border:1px solid #258cdb;border-radius:4px;padding:6px 12px}.application.dark .whats-new .whats-new-actions a.actions-show-more{border-color:#f27e02}.whats-new .whats-new-actions p{margin-top:45px}.pretty-jason{font-family:Menlo,Monaco,Consolas,monospace;font-size:12px;padding:0;margin:0;list-style:none;color:#222}.pretty-jason ul{list-style:none;padding-left:12px}.pretty-jason li{padding:1px 0}.pretty-jason-key{color:#881280}.pretty-jason-value-number{color:#1c00cf}.pretty-jason-value-string{color:#c41a16}.pretty-jason-value-null,.pretty-jason-value-undefined{color:grey}.pretty-jason-value-anonymous-function,.pretty-jason-value-boolean,.pretty-jason-value-resource{color:#132ba2}.pretty-jason-icon,.pretty-jason-icon-closed,.pretty-jason-icon-open{display:inline-block;width:0;height:0}.pretty-jason-icon{width:12px}.pretty-jason-icon-closed{border-style:solid;border-width:4.5px 0 4.5px 7.8px;border-color:transparent transparent transparent #7f7f80}.pretty-jason-icon-open{border-style:solid;border-width:7.8px 4.5px 0 4.5px;border-color:#7f7f80 transparent transparent transparent}.pretty-jason-preview{font-style:italic}.pretty-jason-preview:before{content:"{"}.pretty-jason-preview:after{content:"}"}.pretty-jason-preview-item:after{content:", "}.pretty-jason-preview .pretty-jason-preview-item:last-child:after{content:""}*{-webkit-box-sizing:border-box;box-sizing:border-box}html{background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:11px;overflow:hidden}body,html{height:100%}body{font-size:100%;margin:0}.application.dark,body.dark{background:#1f1f1f;color:#b2b2b2}table{border-collapse:collapse;font-size:100%;width:100%}table td,table th{text-align:left}a{color:#696969;cursor:default}a:hover{color:#3b3b3b}.application.dark a:hover{color:#f27e02}.application.dark a{color:grey}.split-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%}@media screen and (min-width:900px){.split-view{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.split-view-details{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}@media screen and (min-width:900px){.split-view-details{height:100%}}.split-view-details{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.details-header,.split-view-details{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.details-header{background:#fff;border-bottom:1px solid #ccc;-ms-flex-negative:0;flex-shrink:0;height:31px;z-index:500}.application.dark .details-header{background:#1f1f1f;border-bottom:1px solid #363636}.details-header .details-header-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1}.details-header .details-header-tabs .details-header-tab{color:#404040;cursor:default;-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;line-height:31px;text-align:center;text-decoration:none}.details-header .details-header-tabs .details-header-tab.active{color:#258cdb}.application.dark .details-header .details-header-tabs .details-header-tab.active{color:#f27e02}.application.dark .details-header .details-header-tabs .details-header-tab{color:#9e9e9e}.details-header .icons{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;padding:0 5px}.details-header .icons a{padding:0 5px}.details-header .icons a.active{color:#258cdb}.application.dark .details-header .icons a.active{color:#f27e02}.details-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto;padding:10px}.details-content h3{border-bottom:1px solid #d1d1d1;font-size:13px;font-weight:600;margin:0;padding:4px 10px}.details-content table{font-size:12px;margin-bottom:18px}.details-content table thead th:last-child{padding-right:20px;position:relative}.details-content table thead .fa-angle-down,.details-content table thead .fa-angle-up{font-weight:700;margin-left:4px}.details-content table thead .toggle-filter{position:absolute;right:4px;top:4px;visibility:hidden}.details-content table thead:hover .toggle-filter{visibility:visible}.details-content table tr:first-child td{border-top:1px solid #d1d1d1}.application.dark .details-content table tr:first-child td{border-top:1px solid #363636}.details-content table tr:nth-child(2n){background:#f5f5f5}.application.dark .details-content table tr:nth-child(2n){background:#1b1b1b}.details-content table th{font-size:13px;font-weight:600;padding:4px 10px;white-space:nowrap}.details-content table td{padding:8px 10px;vertical-align:top}.details-content table td.key{font-size:12px;white-space:nowrap}.details-content table td.value{word-break:break-all}.details-content table .filter{background:none!important}.details-content table .filter td{border-top:1px solid #d1d1d1;padding:2px 10px}.application.dark .details-content table .filter td{border-top:1px solid #363636}.details-content table .filter label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.details-content table .filter .fa-search{color:#696969;margin:0 4px}.details-content table .filter input{background:transparent;border:none;width:100%}.details-content table .filter input:focus{outline:none}.details-content table .filter input::-webkit-input-placeholder{color:#a9a9a9}.details-content table .filter input::-moz-placeholder{color:#a9a9a9}.details-content table .filter input:-ms-input-placeholder{color:#a9a9a9}.details-content table .filter input::-ms-input-placeholder{color:#a9a9a9}.details-content table .filter input::placeholder{color:#a9a9a9}.application.dark .details-content table .filter input::-webkit-input-placeholder{color:#777}.application.dark .details-content table .filter input::-moz-placeholder{color:#777}.application.dark .details-content table .filter input:-ms-input-placeholder{color:#777}.application.dark .details-content table .filter input::-ms-input-placeholder{color:#777}.application.dark .details-content table .filter input::placeholder{color:#777}.application.dark .details-content table .filter input{color:#b2b2b2}.details-content table .filter .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}.application.dark .details-content table .filter .example{color:#777}.details-content .counters-row{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 10px}.details-content .counters-row .counter{border:1px solid #d1d1d1;border-radius:3px;-webkit-box-shadow:0 2px 3px #e5e5e5;box-shadow:0 2px 3px #e5e5e5;margin:0 5px;-webkit-box-flex:0;-ms-flex:0 1 120px;flex:0 1 120px;padding:8px 20px 10px;text-align:center}.application.dark .details-content .counters-row .counter{border:1px solid #404040;-webkit-box-shadow:0 2px 3px #292929;box-shadow:0 2px 3px #292929}.details-content .counters-row .counter:first-child{margin-left:0}.details-content .counters-row .counter:last-child{margin-right:0}.details-content .counters-row .counter .counter-value{font-size:175%;white-space:nowrap}.details-content .counters-row .counter .counter-title{font-size:120%;font-variant:small-caps;text-transform:lowercase}.details-content .request-tab-info{display:-webkit-box;display:-ms-flexbox;display:flex;margin:4px 0 8px}.details-content .request-tab-info .field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:0 5px;padding:0 20px}.details-content .request-tab-info .field:first-child{margin-left:0}.details-content .request-tab-info .field:last-child{margin-right:0}.details-content .request-tab-info .field .field-value{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:130%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.details-content .request-tab-info .field .field-value .small{color:#888;font-size:75%;padding-top:2px}.details-content .request-tab-info .field .field-title{font-size:120%;font-variant:small-caps;padding-bottom:5px;text-transform:lowercase}.details-content .request-tab-info .field.action{-webkit-box-flex:1;-ms-flex:1;flex:1}.details-content .request-tab-info .field.link{font-size:90%;padding:0}.details-content .performance-chart-container{-webkit-box-flex:0;-ms-flex:0 1 100px;flex:0 1 100px}.details-content .performance-chart{height:60px;margin:0 auto;position:relative;width:60px}.details-content .performance-chart-legend.style1{border-left:3px solid #78b1de!important}.application.dark .details-content .performance-chart-legend.style1{border-left:3px solid #649dca!important}.details-content .performance-chart-legend.style2{border-left:3px solid #e79697!important}.application.dark .details-content .performance-chart-legend.style2{border-left:3px solid #d38283!important}.details-content .performance-chart-legend.style3{border-left:3px solid #b1ca6d!important}.application.dark .details-content .performance-chart-legend.style3{border-left:3px solid #9db659!important}.details-content .performance-chart-legend.style4{border-left:3px solid #ba94e6!important}.application.dark .details-content .performance-chart-legend.style4{border-left:3px solid #a680d2!important}.details-content .performance-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:8px 0 4px}.details-content .performance-tabs .performance-tab{color:#404040;cursor:default;font-size:12px;line-height:31px;padding:0 31px;text-align:center;text-decoration:none}.details-content .performance-tabs .performance-tab.active{color:#258cdb}.application.dark .details-content .performance-tabs .performance-tab.active{color:#f27e02}.application.dark .details-content .performance-tabs .performance-tab{color:#9e9e9e}.details-content .timeline{position:relative}.details-content .timeline table{table-layout:fixed}.details-content .timeline .timeline-description,.details-content .timeline .timeline-duration{display:none}.details-content .timeline.table-view .timeline-description,.details-content .timeline.table-view .timeline-duration{display:table-cell}.details-content .timeline.table-view .timeline-graph{padding:12px 0 0;width:25%}.details-content .timeline.table-view .timeline-bar .label,.details-content .timeline.table-view .timeline-legend{display:none}.details-content .timeline-controls{position:absolute;right:0;top:4px;z-index:100}.details-content .timeline-controls .timeline-control-group{margin:0 5px}.details-content .timeline-controls .toggle-filter{position:static;visibility:visible}.details-content .timeline-controls .fa-bar-chart{font-size:110%}.details-content .timeline-controls .fa-bars{font-size:115%}.details-content .timeline-controls a{margin:0 2px;text-decoration:none}.details-content .timeline-controls a.active{color:#258cdb}.application.dark .details-content .timeline-controls a.active{color:#f27e02}.application.dark .details-content .timeline-controls a{color:#9e9e9e}.details-content .timeline-graph{background-image:-webkit-gradient(linear,left top,right top,color-stop(99.5%,transparent),color-stop(99.5%,#e5e5e5),to(#e5e5e5));background-image:linear-gradient(90deg,transparent 99.5%,#e5e5e5 0,#e5e5e5);background-size:80px 1px;padding:6px 4px 8px}.application.dark .details-content .timeline-graph{background-image:-webkit-gradient(linear,left top,right top,color-stop(99.5%,transparent),color-stop(99.5%,#333),to(#333));background-image:linear-gradient(90deg,transparent 99.5%,#333 0,#333)}.details-content .timeline-legend{color:#a1a1a1;height:14px;margin-bottom:6px;margin-top:-2px;position:relative}.application.dark .details-content .timeline-legend{color:#666}.details-content .timeline-legend .timeline-legend-time{font-size:10px;font-weight:400;position:absolute;top:0}.details-content .timeline-bar .label{color:#365063;font-size:11.5px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.details-content .timeline-bar .bar{background:#78b1de;border:1px solid #4295c5;border-radius:3px;padding:3px}.application.dark .details-content .timeline-bar .bar{background:#649dca;border:1px solid #2e81b1}.details-content .timeline-bar.style1 .label{color:#365063}.application.dark .details-content .timeline-bar.style1 .label{color:#a3b5c2}.details-content .timeline-bar.style1 .bar{background:#78b1de;border:1px solid #4295c5}.application.dark .details-content .timeline-bar.style1 .bar{background:#649dca;border:1px solid #2e81b1}.details-content .timeline-bar.style2 .label{color:#633636}.application.dark .details-content .timeline-bar.style2 .label{color:#c2a3a4}.details-content .timeline-bar.style2 .bar{background:#e79697;border:1px solid #d16b6c}.application.dark .details-content .timeline-bar.style2 .bar{background:#d38283;border:1px solid #bd5758}.details-content .timeline-bar.style3 .label{color:#586336}.application.dark .details-content .timeline-bar.style3 .label{color:#bac2a3}.details-content .timeline-bar.style3 .bar{background:#b1ca6d;border:1px solid #98ba51}.application.dark .details-content .timeline-bar.style3 .bar{background:#9db659;border:1px solid #84a63d}.details-content .timeline-bar.style4 .label{color:#4a3663}.application.dark .details-content .timeline-bar.style4 .label{color:#b1a3c2}.details-content .timeline-bar.style4 .bar{background:#ba94e6;border:1px solid #9772b5}.application.dark .details-content .timeline-bar.style4 .bar{background:#a680d2;border:1px solid #835ea1}.details-content .timeline-duration{text-align:right;width:100px}.details-content .profiler .profiler-controls{position:absolute;right:0;top:4px}.details-content .profiler .profiler-controls .profiler-control-group{margin:0 5px}.details-content .profiler .profiler-controls .profiler-show-metric{font-size:105%}.details-content .profiler .profiler-controls .profiler-show-metric .fa-clock-o{font-size:110%}.details-content .profiler .profiler-controls .profiler-shown-fraction{font-size:85%}.details-content .profiler .profiler-controls .toggle-filter{position:static;visibility:visible}.details-content .profiler .profiler-controls a{margin:0 2px;text-decoration:none}.details-content .profiler .profiler-controls a.active{color:#258cdb}.application.dark .details-content .profiler .profiler-controls a.active{color:#f27e02}.application.dark .details-content .profiler .profiler-controls a{color:#9e9e9e}.details-content .profiler .profiler-metric{white-space:nowrap}.details-content .profiler .profiler-function{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .profiler .profiler-function .profiler-function-name{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;word-break:break-all}.details-content .profiler .profiler-function .profiler-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.details-content .profiler-loading,.details-content .profiler-not-available{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:16px;padding:40px 0;text-align:center;width:100%}.details-content .profiler-loading .message,.details-content .profiler-not-available .message{color:#aaa;font-size:75%;margin:10px 0 0 0}.details-content .profiler-not-available{font-size:15px;line-height:1.5}.details-content .profiler-not-available .message{font-size:90%;margin:15px 0 0}.details-content .profiler-not-available a{color:#aaa;cursor:pointer}.details-content .profiler-not-available .profiler-enable a{color:#258cdb}.application.dark .details-content .profiler-not-available .profiler-enable a{color:#f27e02}.details-content .log-row.error{background:#ffebeb;color:#c51f24}.details-content .log-row.error:nth-child(2n){background:#ffe0e0}.details-content .log-row.error .log-message-path{color:#dd888b}.application.dark .details-content .log-row.error{background:#380000;color:#ed797a}.application.dark .details-content .log-row.error:nth-child(2n){background:#2e0000}.application.dark .details-content .log-row.error .log-message-path{color:#c3797b}.details-content .log-row.warning{background:#fffae2;color:#a85919}.details-content .log-row.warning:nth-child(2n){background:#fff5c2}.details-content .log-row.warning .log-message-path{color:#d7a175}.application.dark .details-content .log-row.warning{background:#382f00;color:#fad89f}.application.dark .details-content .log-row.warning:nth-child(2n){background:#2e2600}.application.dark .details-content .log-row.warning .log-message-path{color:#d0b78b}.details-content .log-date,.details-content .log-level{width:70px}.details-content .log-message{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .log-message .log-message-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .log-message .log-message-exception{-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin:3px 5px 0 0;white-space:nowrap}.details-content .log-message .log-message-exception .exception-previous{border:1px solid #aaa;border-radius:4px;text-decoration:none;padding:2px 4px;margin-right:5px}.application.dark .details-content .log-message .log-message-exception .exception-previous{border-color:grey}.details-content .log-message .log-message-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.application.dark .details-content .log-message .log-message-path{color:#777}.details-content .fired-event{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .fired-event .fired-event-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .fired-event .fired-event-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.application.dark .details-content .fired-event .fired-event-path{color:#777}.details-content .fired-event-details h4{margin:6px 0 3px}.details-content .fired-event-actions{padding-left:5px;width:10px}.details-content .database-query{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .database-query .database-query-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .database-query .database-query-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.application.dark .details-content .database-query .database-query-path{color:#777}.details-content .database-duration{text-align:right;white-space:nowrap}.details-content .cache-query-type{font-size:125%;font-variant:small-caps}.details-authentication-overlay,.details-error-overlay,.details-loading-overlay{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:16px;height:calc(100% - 31px);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;left:0;position:absolute;top:31px;width:100%;z-index:999}.application.dark .details-authentication-overlay,.application.dark .details-error-overlay,.application.dark .details-loading-overlay{background:#1f1f1f}.details-authentication-overlay .fa-exclamation-circle,.details-authentication-overlay .fa-lock,.details-error-overlay .fa-exclamation-circle,.details-error-overlay .fa-lock,.details-loading-overlay .fa-exclamation-circle,.details-loading-overlay .fa-lock{color:#696969;font-size:46px}.details-authentication-overlay .title,.details-error-overlay .title,.details-loading-overlay .title{margin:10px 0 0 0}.details-authentication-overlay .message,.details-error-overlay .message,.details-loading-overlay .message{color:#aaa;font-size:75%;margin:5px 0 0 0}.details-authentication-overlay{text-align:center}.details-authentication-overlay .message,.details-authentication-overlay .title{font-size:80%}.details-authentication-overlay .title.failed{display:none}.details-authentication-overlay p{margin:1.3em 0}.details-authentication-overlay input{background:#eee;border:1px solid #eee;border-radius:4px;font-size:14px;height:30px;padding:0 10px}.application.dark .details-authentication-overlay input{background:#2e2e2e;border:1px solid #2e2e2e;color:#ccc}.details-authentication-overlay button{background:transparent;border:none;color:#258cdb;font-size:90%}.application.dark .details-authentication-overlay button{color:#f27e02}.details-authentication-overlay.failed .title{display:none}.details-authentication-overlay.failed .title.failed{display:block}.details-authentication-overlay.failed .fa-lock{-webkit-animation:shake .77s linear;animation:shake .77s linear}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate(-2px);transform:translate(-2px)}20%,80%{-webkit-transform:translate(3px);transform:translate(3px)}30%,50%,70%{-webkit-transform:translate(-5px);transform:translate(-5px)}40%,60%{-webkit-transform:translate(5px);transform:translate(5px)}}@keyframes shake{10%,90%{-webkit-transform:translate(-2px);transform:translate(-2px)}20%,80%{-webkit-transform:translate(3px);transform:translate(3px)}30%,50%,70%{-webkit-transform:translate(-5px);transform:translate(-5px)}40%,60%{-webkit-transform:translate(5px);transform:translate(5px)}}.stack-trace{cursor:pointer}.stack-trace .popover{cursor:default}.stack-trace a{text-decoration:none}.stack-trace .stack-frame{color:#000;padding:6px 10px;text-align:left;word-break:break-word}.application.dark .stack-trace .stack-frame{color:#b2b2b2}.stack-trace .stack-frame:nth-child(2n){background:#f5f5f5}.application.dark .stack-trace .stack-frame:nth-child(2n){background:#1b1b1b}.stack-trace .stack-frame .stack-frame-call{font-size:12px;padding-bottom:3px}.stack-trace .stack-frame .stack-frame-file{color:#aaa;font-size:11px}.stack-trace .stack-frame.is-vendor .stack-frame-call,.stack-trace .stack-frame.is-vendor .stack-frame-file{font-size:10px}.popover{left:0;padding-top:20px;position:absolute;top:100%;width:300px;z-index:666}.popover.right-aligned{left:auto;right:0}.popover.right-aligned .popover-content:before{left:auto;right:8px}.popover.right-aligned .popover-content:after{left:auto;right:7px}.popover .popover-content{background:#fff;border:1px solid #d1d1d1;border-radius:5px;-webkit-box-shadow:0 0 4px #e5e5e5;box-shadow:0 0 4px #e5e5e5;max-height:400px;overflow:auto;padding:5px 0;text-align:center;width:100%}.application.dark .popover .popover-content{background:#1f1f1f;border:1px solid #404040;-webkit-box-shadow:0 0 4px #292929;box-shadow:0 0 4px #292929}.popover .popover-content:after,.popover .popover-content:before{border-style:solid;content:"";height:0;position:absolute;width:0}.popover .popover-content:before{border-color:transparent transparent #fff transparent;border-width:0 14px 14px 14px;left:8px;top:7px;z-index:500}.application.dark .popover .popover-content:before{border-color:transparent transparent #1f1f1f transparent}.popover .popover-content:after{border-color:transparent transparent #e5e5e5 transparent;border-width:0 15px 15px 15px;left:7px;top:5px}.application.dark .popover .popover-content:after{border-color:transparent transparent #292929 transparent}.popover-container{position:relative}.hidden{display:none}[stupid-table] th{cursor:default}[tab-content]{display:none}.application.dark .pretty-jason{color:#d5d5d5}.application.dark .pretty-jason-key{color:#e36eec}.application.dark .pretty-jason-value-number{color:#997fff}.application.dark .pretty-jason-value-string{color:#e33e3a}.application.dark .pretty-jason-value-null,.application.dark .pretty-jason-value-undefined{color:#7f7f7f}.application.dark .pretty-jason-value-anonymous-function,.application.dark .pretty-jason-value-boolean,.application.dark .pretty-jason-value-resource{color:#8296ff}.application.dark .pretty-jason-icon-closed{border-color:transparent transparent transparent #919191}.application.dark .pretty-jason-icon-open{border-color:#919191 transparent transparent transparent} \ No newline at end of file diff --git a/Clockwork/Web/public/css/app.af135e9c.css b/Clockwork/Web/public/css/app.af135e9c.css new file mode 100644 index 00000000..920358db --- /dev/null +++ b/Clockwork/Web/public/css/app.af135e9c.css @@ -0,0 +1 @@ +.exception-section{border-bottom:1px solid #d1d1d1}.application.dark .exception-section{border-bottom:1px solid #363636}.exception-section.compact .exception-message h3{display:inline;padding-right:4px}.exception-section .exception-info{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#ffebeb;color:#c51f24;display:-webkit-box;display:-ms-flexbox;display:flex;padding:6px 10px}.exception-section .exception-info:nth-child(2n){background:#ffe0e0}.exception-section .exception-info:first-child{padding-top:12px}.exception-section .exception-info:last-child{padding-bottom:12px}.application.dark .exception-section .exception-info{background:#380000;color:#ed797a}.application.dark .exception-section .exception-info:nth-child(2n){background:#2e0000}.exception-section .exception-info h3{border-bottom:0;font-size:14px;margin:0 0 5px}.exception-section .exception-info .exception-message{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;line-height:1.5}.exception-section .exception-info .exception-previous,.exception-section .exception-info .exception-trace>a{color:#c51f24;font-size:12px;margin:0 4px}.application.dark .exception-section .exception-info .exception-previous,.application.dark .exception-section .exception-info .exception-trace>a{color:#ed797a}.exception-section .exception-info .exception-previous{margin-right:4px;text-decoration:none}.exception-section .exception-info .exception-trace{display:inline-block}.parent-request{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;font-weight:600;padding:12px 10px}.application.dark .parent-request{border-bottom:1px solid #363636}.parent-request.compact .parent-title{padding-right:4px}.parent-request.compact .parent-name,.parent-request.compact .parent-title{display:inline}.parent-request .parent-title{font-size:11px;margin-bottom:3px}.parent-request .parent-method{color:grey;font-size:90%;font-weight:400;margin-right:2px}.application.dark .parent-request .parent-method{color:#767676}.parent-request .parent-uri{font-weight:400}.parent-request .type-text{background:#cbdeec;border-radius:3px;color:#365063;font-size:80%;margin-right:2px;padding:1px 3px;vertical-align:1px}.application.dark .parent-request .type-text{background:#002e52;color:#6ebef7}.parent-request a{color:#258cdb;font-weight:400;text-decoration:none}.application.dark .parent-request a{color:#f27e02}.parent-request .parent-close{margin-left:auto}.messages-overlay .parent-request{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;font-weight:600;padding:10px}.messages-overlay .parent-request .parent-method{color:grey;font-size:90%;font-weight:400;margin-right:2px}.application.dark .messages-overlay .parent-request .parent-method{color:#767676}.messages-overlay .parent-request .parent-uri{font-weight:400}.messages-overlay .parent-request a{color:#258cdb;font-weight:400;text-decoration:none}.application.dark .messages-overlay .parent-request a{color:#f27e02}.messages-overlay .parent-request .parent-close{margin-left:auto}.messages-overlay .exception .exception-info{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#ffebeb;color:#c51f24;display:-webkit-box;display:-ms-flexbox;display:flex;padding:10px}.messages-overlay .exception .exception-info:nth-child(2n){background:#ffe0e0}.application.dark .messages-overlay .exception .exception-info{background:#380000;color:#ed797a}.application.dark .messages-overlay .exception .exception-info:nth-child(2n){background:#2e0000}.messages-overlay .exception .exception-info h3{border-bottom:0;display:inline;font-size:12px}.messages-overlay .exception .exception-info .exception-message{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px}.messages-overlay .exception .exception-info .exception-previous,.messages-overlay .exception .exception-info .exception-trace>a{color:#c51f24;font-size:12px;margin:0 4px}.application.dark .messages-overlay .exception .exception-info .exception-previous,.application.dark .messages-overlay .exception .exception-info .exception-trace>a{color:#ed797a}.messages-overlay .exception .exception-info .exception-previous{margin-right:4px;text-decoration:none}.messages-overlay .exception .exception-info .exception-trace{display:inline-block}.messages-overlay .update-notification{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#e9f3fb;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:110%;padding:10px}.application.dark .messages-overlay .update-notification{background:#643302}.messages-overlay .update-notification a{color:#258cdb;text-decoration:none}.application.dark .messages-overlay .update-notification a{color:#f27e02}.messages-overlay .update-notification strong{font-weight:500}.messages-overlay .update-notification .updateNotification-close{margin-left:auto}.settings-modal{background:#fff;border:1px solid #d1d1d1;border-radius:5px;-webkit-box-shadow:0 0 4px #e5e5e5;box-shadow:0 0 4px #e5e5e5;font-size:13px;left:5%;max-width:600px;padding:32px 35px 1px;position:absolute;text-align:left;top:0;width:90%;z-index:300}.application.dark .settings-modal{background:#1f1f1f;border:1px solid #404040;-webkit-box-shadow:0 0 4px #292929;box-shadow:0 0 4px #292929}.settings-modal a{padding:0}.settings-modal .controls-group{display:-webkit-box;display:-ms-flexbox;display:flex;margin:22px 0}.settings-modal .controls-group .controls{-webkit-box-flex:1;-ms-flex:1;flex:1}.settings-modal .help-text{font-size:90%;margin-top:8px}.settings-modal label{margin-right:10px;margin-top:5px;text-align:right;width:25%}.settings-modal input,.settings-modal select{border:1px solid #ccc;font-size:13px;height:26px}.application.dark .settings-modal input,.application.dark .settings-modal select{background:#5d5c5b;border-color:#7c7a78;color:#e9e9e9}.application.dark .settings-modal input::-webkit-input-placeholder,.application.dark .settings-modal select::-webkit-input-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input::-moz-placeholder,.application.dark .settings-modal select::-moz-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input:-ms-input-placeholder,.application.dark .settings-modal select:-ms-input-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input::-ms-input-placeholder,.application.dark .settings-modal select::-ms-input-placeholder{color:#a7a6a5;opacity:1}.application.dark .settings-modal input::placeholder,.application.dark .settings-modal select::placeholder{color:#a7a6a5;opacity:1}.settings-modal input[type=checkbox],.settings-modal select[type=checkbox]{height:auto;margin-right:3px}.application.dark .settings-modal select{background:#6a6866;border:1px solid #7c7a78;border-radius:5px}.settings-modal .controls-input-vgroup input{border:1px solid #ccc;padding:4px 8px;width:100%}.settings-modal .controls-input-vgroup input:first-child{border-radius:4px 4px 0 0}.settings-modal .controls-input-vgroup input:last-child{border-radius:0 0 4px 4px;margin-top:-2px}.settings-modal .controls-checkbox{display:inline-block;margin-bottom:5px;text-align:left;width:100%}.settings-modal .appearance-controls{display:-webkit-box;display:-ms-flexbox;display:flex}.settings-modal .appearance-controls .option{-webkit-box-flex:0;-ms-flex:0;flex:0;margin-right:12px;text-align:center}.settings-modal .appearance-controls .option.selected img{border:2px solid #258cdb;-webkit-box-shadow:0 0 2px #258cdb;box-shadow:0 0 2px #258cdb}.application.dark .settings-modal .appearance-controls .option.selected img{border:2px solid #f27e02;-webkit-box-shadow:0 0 2px #f27e02;box-shadow:0 0 2px #f27e02}.settings-modal .appearance-controls .option img{border:1px solid #ccc;border-radius:4px;height:50px;width:75px}.application.dark .settings-modal .appearance-controls .option img{border:1px solid #363636}.settings-enter-active,.settings-leave-active{-webkit-transition:top .33s;transition:top .33s}.settings-enter,.settings-leave-to{top:-400px}.details-table .pagination-controls{background:transparent!important}.details-table .pagination-controls td{text-align:center}.details-table .pagination-controls a{color:#258cdb;text-decoration:none}.application.dark .details-table .pagination-controls a{color:#f27e02}.counter.database-slow-query{border-color:#d7a175!important}.application.dark .counter.database-slow-query{border-color:#d0b78b!important}.database-slow-query{background:#fffae2;color:#a85919}.database-slow-query:nth-child(2n){background:#fff5c2!important}.database-slow-query .database-query-path>a{color:#d7a175!important}.application.dark .database-slow-query{background:#382f00;color:#fad89f}.application.dark .database-slow-query:nth-child(2n){background:#2e2600!important}.application.dark .database-slow-query .database-query-path>a{color:#d0b78b!important}.database-query-bindings,.log-message-context{margin-top:2px}.command-output{background:#333;border-radius:6px;font-family:Menlo,monospace;overflow:auto;padding:16px 12px;white-space:pre}.application.dark .command-output{background:#111}.performance-log{margin-top:25px}.performance-log table thead .count{background:#c28451;color:#fffae2;border-radius:8px;margin-left:2px;padding:0 8px}.application.dark .performance-log table thead .count{background:#fad89f;color:#382f00}.performance-log table tr{background:transparent!important;color:#a85919}.performance-log table tr:nth-child(2n){background:#fffae2!important}.performance-log table tr .log-message-path>a{color:#d7a175!important}.application.dark .performance-log table tr{color:#fad89f}.application.dark .performance-log table tr:nth-child(2n){background:#382f00!important}.application.dark .performance-log table tr .log-message-path>a{color:#d0b78b!important}.performance-log table tr:first-child td{border-top:1px solid #d7a175!important}.application.dark .performance-log table tr:first-child td{border-top:1px solid #d0b78b!important}.performance-log table tr .toggle-filter{color:#d7a175!important}.application.dark .performance-log table tr .toggle-filter{color:#d0b78b!important}.performance-log table tr.filter{background:#fffae2!important}.application.dark .performance-log table tr.filter{background:#382f00!important}.performance-log table tr.filter td{border-top:1px solid #d7a175!important}.application.dark .performance-log table tr.filter td{border-top:1px solid #d0b78b!important}.performance-log table tr.filter td .example,.performance-log table tr.filter td .fa-search,.performance-log table tr.filter td input{color:#d7a175!important}.application.dark .performance-log table tr.filter td .example,.application.dark .performance-log table tr.filter td .fa-search,.application.dark .performance-log table tr.filter td input{color:#d0b78b!important}.timeline-item-tags{font-size:85%;opacity:.77}.job-options[data-v-e2548e86]{margin:2px 0;width:100%}.job-options span[data-v-e2548e86]{display:block;white-space:nowrap}.job-status-text[data-v-e2548e86]{background:#fffae2;border-radius:8px;color:#a85919;font-size:9px;padding:2px 6px;text-transform:uppercase}.application.dark .job-status-text[data-v-e2548e86]{background:#382f00;color:#fad89f}.job-status-text.is-success[data-v-e2548e86]{background:#e3eccb;color:#586336}.application.dark .job-status-text.is-success[data-v-e2548e86]{background:#293800;color:#e3fa9e}.job-status-text.is-error[data-v-e2548e86]{background:#ffebeb;color:#c51f24}.application.dark .job-status-text.is-error[data-v-e2548e86]{background:#380000;color:#ed797a}.views-view-name{margin-bottom:3px}.split-view-details{overflow:hidden}.sidebar-section .section-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:700;padding:5px 10px}.application.dark .sidebar-section .section-header{border-bottom:1px solid #363636}.sidebar-section .section-header .section-title{cursor:default}.sidebar-section .section-header .toggle-filter{display:none;margin-left:auto}.sidebar-section .section-header:hover .toggle-filter{display:block}.sidebar-section table{border-bottom:1px solid #d1d1d1;font-size:11px;margin-bottom:0}.application.dark .sidebar-section table{border-bottom:1px solid #363636}.sidebar-section table thead th:last-child{padding-right:20px;position:relative}.sidebar-section table thead .fa-angle-down,.sidebar-section table thead .fa-angle-up{font-weight:700;margin-left:4px}.sidebar-section table thead .toggle-filter{position:absolute;right:4px;top:4px;visibility:hidden}.sidebar-section table thead:hover .toggle-filter{visibility:visible}.application.dark .sidebar-section table tr:first-child td,.sidebar-section table tr:first-child td{border-top:0}.sidebar-section table tr:nth-child(2n){background:#f5f5f5}.application.dark .sidebar-section table tr:nth-child(2n){background:#1b1b1b}.sidebar-section table th{font-size:12px;font-weight:600;padding:4px 2px;white-space:nowrap}.sidebar-section table td{padding:8px 10px;vertical-align:top}.sidebar-section table td .key{font-size:11px;font-weight:600;margin-bottom:3px;white-space:nowrap}.sidebar-section table td .value{word-break:break-all}.sidebar-section table .filter{background:none!important}.sidebar-section table .filter td{border-bottom:1px solid #d1d1d1;border-top:0;padding:2px 10px}.application.dark .sidebar-section table .filter td{border-bottom:1px solid #363636;border-top:0}.sidebar-section table .filter label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.sidebar-section table .filter .fa-search{color:#696969;margin:0 4px}.sidebar-section table .filter input{background:transparent;border:none;width:100%}.sidebar-section table .filter input:focus{outline:none}.sidebar-section table .filter input::-webkit-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::-moz-placeholder{color:#a9a9a9}.sidebar-section table .filter input:-ms-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::-ms-input-placeholder{color:#a9a9a9}.sidebar-section table .filter input::placeholder{color:#a9a9a9}.application.dark .sidebar-section table .filter input::-webkit-input-placeholder{color:#777}.application.dark .sidebar-section table .filter input::-moz-placeholder{color:#777}.application.dark .sidebar-section table .filter input:-ms-input-placeholder{color:#777}.application.dark .sidebar-section table .filter input::-ms-input-placeholder{color:#777}.application.dark .sidebar-section table .filter input::placeholder{color:#777}.application.dark .sidebar-section table .filter input{color:#b2b2b2}.sidebar-section table .filter .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}.application.dark .sidebar-section table .filter .example{color:#777}.command-tab{background:#fff}.application.dark .command-tab{background:#1f1f1f}.queue-job-tab{background:#fff}.application.dark .queue-job-tab{background:#1f1f1f}.queue-job-tab .data-value{border-bottom:1px solid #d1d1d1;padding:8px 10px}.application.dark .queue-job-tab .data-value{border-bottom:1px solid #363636}.request-tab{background:#fff}.application.dark .request-tab{background:#1f1f1f}.request-tab .data-raw td{white-space:pre}.request-tab .session-user{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:110%;padding:8px 10px}.application.dark .request-tab .session-user{border-bottom:1px solid #363636}.request-tab .session-user .fa-user{color:grey;font-size:110%;margin-right:8px}.request-tab .session-user .name{margin-right:6px}.request-tab .session-user .dimmed{color:grey;font-size:90%}.application.dark .request-tab .session-user .dimmed{color:#767676}.request-tab .session-user .session-user-details{margin-left:auto}.test-tab .test-status-message{border-bottom:1px solid #d1d1d1;background:#ffebeb;color:#c51f24;padding:12px 10px;font-size:13px}.application.dark .test-tab .test-status-message{border-bottom:1px solid #363636}.test-tab .test-assert .assert-name{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.test-tab .test-assert .assert-name .assert-name-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;font-size:11px;font-weight:600;margin-bottom:3px;max-width:100%;white-space:nowrap;margin-bottom:5px;color:#657e1b}.application.dark .test-tab .test-assert .assert-name .assert-name-content{color:#d0ed78}.test-tab .test-assert .assert-name .assert-name-content.assert-failed{color:#c51f24}.application.dark .test-tab .test-assert .assert-name .assert-name-content.assert-failed{color:#ed797a}.test-tab .test-assert .assert-name .assert-name-trace{-webkit-box-flex:0;-ms-flex:0;flex:0}.test-tab .test-assert .pretty-jason{font-size:11px}.request-sidebar{background:#fafafa;border-top:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;height:25%}.application.dark .request-sidebar{background:#1b1b1b;border-top:1px solid #363636}.request-sidebar.large{height:33%}@media screen and (min-width:900px){.request-sidebar{border-left:1px solid #d1d1d1;border-top:0;height:100%;width:300px}.application.dark .request-sidebar{border-left:1px solid #363636;border-top:0}.request-sidebar.large{height:100%;width:400px}}@media screen and (min-width:1100px){.request-sidebar{width:360px}.request-sidebar.large{width:460px}}.request-sidebar .sidebar-header{background:#fff;border-bottom:1px solid #ccc;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;font-size:12px;height:31px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;line-height:31px;width:100%}.application.dark .request-sidebar .sidebar-header{background:#1f1f1f;border-bottom:1px solid #363636}.request-sidebar .sidebar-header .sidebar-title{padding:0 10px}.request-sidebar .sidebar-header .sidebar-actions{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;padding:0 5px}.request-sidebar .sidebar-header .sidebar-actions a{padding:0 5px}.request-sidebar .sidebar-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto}.request-sidebar .sidebar-date,.request-sidebar .sidebar-id{margin:10px 0;text-align:center}.request-sidebar .sidebar-id{color:grey}.application.dark .request-sidebar .sidebar-id{color:#767676}.split-view-requests{border-bottom:1px solid #d1d1d1;cursor:default;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;height:25%;width:100%}.application.dark .split-view-requests{border-bottom:1px solid #363636}.split-view-requests.large .notifications-count{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.split-view-requests.large .notifications-count .errors-count{margin-left:5px}.split-view-requests.large .notifications-count .errors-count svg{margin-right:0}@media screen and (min-width:900px){.split-view-requests{border-bottom:0;border-right:1px solid #d1d1d1;height:100%;width:300px}.application.dark .split-view-requests{border-right:1px solid #363636}.split-view-requests.large{width:400px}}@media screen and (min-width:1100px){.split-view-requests{width:320px}.split-view-requests.large{width:420px}}.split-view-requests table{line-height:1.4;table-layout:fixed}.split-view-requests tr{height:28px}.split-view-requests tr:first-child td{border-top:1px solid #d1d1d1}.application.dark .split-view-requests tr:first-child td{border-top:1px solid #363636}.split-view-requests tr:nth-child(2n):not(.filler){background:#f3f3f3}.application.dark .split-view-requests tr:nth-child(2n):not(.filler){background:#181818}.split-view-requests tr:nth-child(2n):not(.filler) .notifications-count{background:hsla(0,0%,95.3%,.8)}.application.dark .split-view-requests tr:nth-child(2n):not(.filler) .notifications-count{background:rgba(27,27,27,.8)}.split-view-requests tr.selected td{background:#2786f3!important;color:#fff}.application.dark .split-view-requests tr.selected td{background:#f27e02!important}.application.dark .split-view-requests tr.selected small,.split-view-requests tr.selected small{color:#fff}.split-view-requests tr.selected .notifications-count{background:#2786f3!important}.application.dark .split-view-requests tr.selected .notifications-count .errors-count,.application.dark .split-view-requests tr.selected .notifications-count .warnings-count,.application.dark .split-view-requests tr.selected .notifications-count .warnings-count svg,.split-view-requests tr.selected .notifications-count .errors-count,.split-view-requests tr.selected .notifications-count .warnings-count,.split-view-requests tr.selected .notifications-count .warnings-count svg{color:#fff}.application.dark .split-view-requests tr.selected .notifications-count{background:#f27e02!important}.application.dark .split-view-requests tr.selected .method-text,.split-view-requests tr.selected .method-text{color:#fff}.application.dark .split-view-requests tr.selected .status-text,.application.dark .split-view-requests tr.selected .type-text,.split-view-requests tr.selected .status-text,.split-view-requests tr.selected .type-text{background:transparent;color:#fff}.split-view-requests tr.sizing{height:0}.split-view-requests tr.sizing td{border-top:0;padding:0}.application.dark .split-view-requests tr.sizing td{border-top:0}.split-view-requests tr.filler{height:auto}.split-view-requests th{border-bottom:1px solid #d1d1d1;font-weight:400;height:30px;line-height:1.1;padding:2px 4px;white-space:nowrap}.application.dark .split-view-requests th{border-bottom:1px solid #363636}.split-view-requests td{overflow:hidden;padding:8px 6px;vertical-align:middle;white-space:nowrap}.split-view-requests small{color:grey;font-size:100%}.application.dark .split-view-requests small{color:#767676}.split-view-requests big{font-size:115%}.split-view-requests .status{text-align:center;width:52px}.split-view-requests .duration{text-align:right;width:68px}.split-view-requests .type-text{background:#cbdeec;border-radius:3px;color:#365063;font-size:80%;margin-right:2px;padding:1px 3px;vertical-align:1px}.application.dark .split-view-requests .type-text{background:#002e52;color:#6ebef7}.split-view-requests .method-text{color:grey;font-size:90%}.application.dark .split-view-requests .method-text{color:#767676}.split-view-requests .status-text{background:#e3eccb;border-radius:8px;color:#586336;padding:2px 6px;text-transform:uppercase}.application.dark .split-view-requests .status-text{background:#293800;color:#e3fa9e}.split-view-requests .status-text.client-error{background:#fffae2;color:#a85919}.application.dark .split-view-requests .status-text.client-error{background:#382f00;color:#fad89f}.split-view-requests .status-text.server-error{background:#ffebeb;color:#c51f24}.application.dark .split-view-requests .status-text.server-error{background:#380000;color:#ed797a}.split-view-requests .status-text.status-text-small{font-size:9px}.split-view-requests .notifications-count{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:hsla(0,0%,98%,.8);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;float:right;height:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;letter-spacing:-.5px;margin-right:-6px;padding:0 6px;position:relative}.split-view-requests .notifications-count .errors-count{color:#b3492e}.application.dark .split-view-requests .notifications-count .errors-count{color:#ed797a}.split-view-requests .notifications-count .errors-count svg{margin-right:1px}.split-view-requests .notifications-count .warnings-count{color:#a85919}.application.dark .split-view-requests .notifications-count .warnings-count{color:#fad89f}.split-view-requests .notifications-count .warnings-count svg{color:#f4bd00}.application.dark .split-view-requests .notifications-count .warnings-count svg{color:#fad89f}.application.dark .split-view-requests .notifications-count{background:rgba(27,27,27,.8)}.split-view-requests .requests-header{height:31px}.split-view-requests .requests-search{border-bottom:1px solid #d1d1d1;padding:6px 2px}.application.dark .split-view-requests .requests-search{border-bottom:1px solid #363636}.split-view-requests .requests-search label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.split-view-requests .requests-search .fa-search{color:#696969;margin:0 4px}.split-view-requests .requests-search input{background:transparent;border:none;width:100%}.split-view-requests .requests-search input:focus{outline:none}.split-view-requests .requests-search input::-webkit-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::-moz-placeholder{color:#a9a9a9}.split-view-requests .requests-search input:-ms-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::-ms-input-placeholder{color:#a9a9a9}.split-view-requests .requests-search input::placeholder{color:#a9a9a9}.application.dark .split-view-requests .requests-search input::-webkit-input-placeholder{color:#777}.application.dark .split-view-requests .requests-search input::-moz-placeholder{color:#777}.application.dark .split-view-requests .requests-search input:-ms-input-placeholder{color:#777}.application.dark .split-view-requests .requests-search input::-ms-input-placeholder{color:#777}.application.dark .split-view-requests .requests-search input::placeholder{color:#777}.application.dark .split-view-requests .requests-search input{color:#b2b2b2}.split-view-requests .requests-search .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}.application.dark .split-view-requests .requests-search .example{color:#777}.split-view-requests .requests-container{background:#fafafa;height:calc(100% - 31px);overflow:auto}.split-view-requests .requests-container table{height:100%}.application.dark .split-view-requests .requests-container{background:#1b1b1b}.split-view-requests .load-more{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #d1d1d1;display:-webkit-box;display:-ms-flexbox;display:flex;height:36px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.application.dark .split-view-requests .load-more{border-bottom:1px solid #363636}.split-view-requests .load-more a{color:#404040;text-decoration:none}.split-view-requests .load-more a:hover{color:#258cdb}.application.dark .split-view-requests .load-more a:hover{color:#f27e02}.application.dark .split-view-requests .load-more a{color:#b2b2b2}.whats-new{background:#fff;font-size:14px;height:calc(100% - 31px);overflow:auto;position:absolute;top:31px;width:100%;z-index:999}.application.dark .whats-new{background:#1f1f1f}.whats-new .whats-new-content{margin:0 auto;max-width:820px;padding:4px 16px 20px}.whats-new h1{font-size:18px;font-weight:400;margin:50px 0;text-align:center;width:100%}.whats-new h2{font-size:16px;font-weight:500}.whats-new .whats-new-section{margin-bottom:50px}.whats-new .whats-new-section img{border-bottom:1px solid #eee;margin-top:10px;max-width:100%}.application.dark .whats-new .whats-new-section img{border-bottom:1px solid #444}.whats-new .whats-new-actions{padding-top:25px;text-align:center;width:100%}.whats-new .whats-new-actions a{color:#258cdb;font-size:15px;margin:0 15px;text-decoration:none}.application.dark .whats-new .whats-new-actions a{color:#f27e02}.whats-new .whats-new-actions a.actions-show-more{border:1px solid #258cdb;border-radius:4px;padding:6px 12px}.application.dark .whats-new .whats-new-actions a.actions-show-more{border-color:#f27e02}.whats-new .whats-new-actions p{margin-top:45px}.pretty-jason{font-family:Menlo,Monaco,Consolas,monospace;font-size:12px;padding:0;margin:0;list-style:none;color:#222}.pretty-jason ul{list-style:none;padding-left:12px}.pretty-jason li{padding:1px 0}.pretty-jason-key{color:#881280}.pretty-jason-value-number{color:#1c00cf}.pretty-jason-value-string{color:#c41a16}.pretty-jason-value-null,.pretty-jason-value-undefined{color:grey}.pretty-jason-value-anonymous-function,.pretty-jason-value-boolean,.pretty-jason-value-resource{color:#132ba2}.pretty-jason-icon,.pretty-jason-icon-closed,.pretty-jason-icon-open{display:inline-block;width:0;height:0}.pretty-jason-icon{width:12px}.pretty-jason-icon-closed{border-style:solid;border-width:4.5px 0 4.5px 7.8px;border-color:transparent transparent transparent #7f7f80}.pretty-jason-icon-open{border-style:solid;border-width:7.8px 4.5px 0 4.5px;border-color:#7f7f80 transparent transparent transparent}.pretty-jason-preview{font-style:italic}.pretty-jason-preview:before{content:"{"}.pretty-jason-preview:after{content:"}"}.pretty-jason-preview-item:after{content:", "}.pretty-jason-preview .pretty-jason-preview-item:last-child:after{content:""}*{-webkit-box-sizing:border-box;box-sizing:border-box}html{background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:11px;overflow:hidden}body,html{height:100%}body{font-size:100%;margin:0}.application.dark,body.dark{background:#1f1f1f;color:#b2b2b2}table{border-collapse:collapse;font-size:100%;width:100%}table td,table th{text-align:left}a{color:#696969;cursor:default}a:hover{color:#3b3b3b}.application.dark a:hover{color:#f27e02}.application.dark a{color:grey}.split-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%}@media screen and (min-width:900px){.split-view{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.split-view-details{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}@media screen and (min-width:900px){.split-view-details{height:100%}}.split-view-details{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.details-header,.split-view-details{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.details-header{background:#fff;border-bottom:1px solid #ccc;-ms-flex-negative:0;flex-shrink:0;height:31px;z-index:500}.application.dark .details-header{background:#1f1f1f;border-bottom:1px solid #363636}.details-header .details-header-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1}.details-header .details-header-tabs .details-header-tab{color:#404040;cursor:default;-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;line-height:31px;text-align:center;text-decoration:none}.details-header .details-header-tabs .details-header-tab.active{color:#258cdb}.application.dark .details-header .details-header-tabs .details-header-tab.active{color:#f27e02}.application.dark .details-header .details-header-tabs .details-header-tab{color:#9e9e9e}.details-header .icons{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:15px;padding:0 5px}.details-header .icons a{padding:0 5px}.details-header .icons a.active{color:#258cdb}.application.dark .details-header .icons a.active{color:#f27e02}.details-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto;padding:10px}.details-content h3{border-bottom:1px solid #d1d1d1;font-size:13px;font-weight:600;margin:0;padding:4px 10px}.details-content table{font-size:12px;margin-bottom:18px}.details-content table thead th:last-child{padding-right:20px;position:relative}.details-content table thead .fa-angle-down,.details-content table thead .fa-angle-up{font-weight:700;margin-left:4px}.details-content table thead .toggle-filter{position:absolute;right:4px;top:4px;visibility:hidden}.details-content table thead:hover .toggle-filter{visibility:visible}.details-content table tr:first-child td{border-top:1px solid #d1d1d1}.application.dark .details-content table tr:first-child td{border-top:1px solid #363636}.details-content table tr:nth-child(2n){background:#f5f5f5}.application.dark .details-content table tr:nth-child(2n){background:#1b1b1b}.details-content table th{font-size:13px;font-weight:600;padding:4px 10px;white-space:nowrap}.details-content table td{padding:8px 10px;vertical-align:top}.details-content table td.key{font-size:12px;white-space:nowrap}.details-content table td.value{word-break:break-all}.details-content table .filter{background:none!important}.details-content table .filter td{border-top:1px solid #d1d1d1;padding:2px 10px}.application.dark .details-content table .filter td{border-top:1px solid #363636}.details-content table .filter label{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.details-content table .filter .fa-search{color:#696969;margin:0 4px}.details-content table .filter input{background:transparent;border:none;width:100%}.details-content table .filter input:focus{outline:none}.details-content table .filter input::-webkit-input-placeholder{color:#a9a9a9}.details-content table .filter input::-moz-placeholder{color:#a9a9a9}.details-content table .filter input:-ms-input-placeholder{color:#a9a9a9}.details-content table .filter input::-ms-input-placeholder{color:#a9a9a9}.details-content table .filter input::placeholder{color:#a9a9a9}.application.dark .details-content table .filter input::-webkit-input-placeholder{color:#777}.application.dark .details-content table .filter input::-moz-placeholder{color:#777}.application.dark .details-content table .filter input:-ms-input-placeholder{color:#777}.application.dark .details-content table .filter input::-ms-input-placeholder{color:#777}.application.dark .details-content table .filter input::placeholder{color:#777}.application.dark .details-content table .filter input{color:#b2b2b2}.details-content table .filter .example{color:#a9a9a9;font-size:11px;pointer-events:none;position:absolute;right:0}.application.dark .details-content table .filter .example{color:#777}.details-content .counters-row{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 10px}.details-content .counters-row .counter{border:1px solid #d1d1d1;border-radius:3px;-webkit-box-shadow:0 2px 3px #e5e5e5;box-shadow:0 2px 3px #e5e5e5;margin:0 5px;-webkit-box-flex:0;-ms-flex:0 1 120px;flex:0 1 120px;padding:8px 20px 10px;text-align:center}.application.dark .details-content .counters-row .counter{border:1px solid #404040;-webkit-box-shadow:0 2px 3px #292929;box-shadow:0 2px 3px #292929}.details-content .counters-row .counter:first-child{margin-left:0}.details-content .counters-row .counter:last-child{margin-right:0}.details-content .counters-row .counter .counter-value{font-size:175%;white-space:nowrap}.details-content .counters-row .counter .counter-title{font-size:120%;font-variant:small-caps;text-transform:lowercase}.details-content .request-tab-info{display:-webkit-box;display:-ms-flexbox;display:flex;margin:4px 0 8px}.details-content .request-tab-info .field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:0 5px;padding:0 20px}.details-content .request-tab-info .field:first-child{margin-left:0}.details-content .request-tab-info .field:last-child{margin-right:0}.details-content .request-tab-info .field .field-value{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:130%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.details-content .request-tab-info .field .field-value .small{color:#888;font-size:75%;padding-top:2px}.details-content .request-tab-info .field .field-title{font-size:120%;font-variant:small-caps;padding-bottom:5px;text-transform:lowercase}.details-content .request-tab-info .field.action{-webkit-box-flex:1;-ms-flex:1;flex:1}.details-content .request-tab-info .field.link{font-size:90%;padding:0}.details-content .performance-chart-container{-webkit-box-flex:0;-ms-flex:0 1 100px;flex:0 1 100px}.details-content .performance-chart{height:60px;margin:0 auto;position:relative;width:60px}.details-content .performance-chart-legend.style1{border-left:3px solid #78b1de!important}.application.dark .details-content .performance-chart-legend.style1{border-left:3px solid #649dca!important}.details-content .performance-chart-legend.style2{border-left:3px solid #e79697!important}.application.dark .details-content .performance-chart-legend.style2{border-left:3px solid #d38283!important}.details-content .performance-chart-legend.style3{border-left:3px solid #b1ca6d!important}.application.dark .details-content .performance-chart-legend.style3{border-left:3px solid #9db659!important}.details-content .performance-chart-legend.style4{border-left:3px solid #ba94e6!important}.application.dark .details-content .performance-chart-legend.style4{border-left:3px solid #a680d2!important}.details-content .performance-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:8px 0 4px}.details-content .performance-tabs .performance-tab{color:#404040;cursor:default;font-size:12px;line-height:31px;padding:0 31px;text-align:center;text-decoration:none}.details-content .performance-tabs .performance-tab.active{color:#258cdb}.application.dark .details-content .performance-tabs .performance-tab.active{color:#f27e02}.application.dark .details-content .performance-tabs .performance-tab{color:#9e9e9e}.details-content .timeline{position:relative}.details-content .timeline table{table-layout:fixed}.details-content .timeline .timeline-description,.details-content .timeline .timeline-duration{display:none}.details-content .timeline.table-view .timeline-description,.details-content .timeline.table-view .timeline-duration{display:table-cell}.details-content .timeline.table-view .timeline-graph{padding:12px 0 0;width:25%}.details-content .timeline.table-view .timeline-bar .label,.details-content .timeline.table-view .timeline-legend{display:none}.details-content .timeline-controls{position:absolute;right:0;top:4px;z-index:100}.details-content .timeline-controls .timeline-control-group{margin:0 5px}.details-content .timeline-controls .toggle-filter{position:static;visibility:visible}.details-content .timeline-controls .fa-bar-chart{font-size:110%}.details-content .timeline-controls .fa-bars{font-size:115%}.details-content .timeline-controls a{margin:0 2px;text-decoration:none}.details-content .timeline-controls a.active{color:#258cdb}.application.dark .details-content .timeline-controls a.active{color:#f27e02}.application.dark .details-content .timeline-controls a{color:#9e9e9e}.details-content .timeline-graph{background-image:-webkit-gradient(linear,left top,right top,color-stop(99.5%,transparent),color-stop(99.5%,#e5e5e5),to(#e5e5e5));background-image:linear-gradient(90deg,transparent 99.5%,#e5e5e5 0,#e5e5e5);background-size:80px 1px;padding:6px 4px 8px}.application.dark .details-content .timeline-graph{background-image:-webkit-gradient(linear,left top,right top,color-stop(99.5%,transparent),color-stop(99.5%,#333),to(#333));background-image:linear-gradient(90deg,transparent 99.5%,#333 0,#333)}.details-content .timeline-legend{color:#a1a1a1;height:14px;margin-bottom:6px;margin-top:-2px;position:relative}.application.dark .details-content .timeline-legend{color:#666}.details-content .timeline-legend .timeline-legend-time{font-size:10px;font-weight:400;position:absolute;top:0}.details-content .timeline-bar .label{color:#365063;font-size:11.5px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.details-content .timeline-bar .bar{background:#78b1de;border:1px solid #4295c5;border-radius:3px;padding:3px}.application.dark .details-content .timeline-bar .bar{background:#649dca;border:1px solid #2e81b1}.details-content .timeline-bar.style1 .label{color:#365063}.application.dark .details-content .timeline-bar.style1 .label{color:#a3b5c2}.details-content .timeline-bar.style1 .bar{background:#78b1de;border:1px solid #4295c5}.application.dark .details-content .timeline-bar.style1 .bar{background:#649dca;border:1px solid #2e81b1}.details-content .timeline-bar.style2 .label{color:#633636}.application.dark .details-content .timeline-bar.style2 .label{color:#c2a3a4}.details-content .timeline-bar.style2 .bar{background:#e79697;border:1px solid #d16b6c}.application.dark .details-content .timeline-bar.style2 .bar{background:#d38283;border:1px solid #bd5758}.details-content .timeline-bar.style3 .label{color:#586336}.application.dark .details-content .timeline-bar.style3 .label{color:#bac2a3}.details-content .timeline-bar.style3 .bar{background:#b1ca6d;border:1px solid #98ba51}.application.dark .details-content .timeline-bar.style3 .bar{background:#9db659;border:1px solid #84a63d}.details-content .timeline-bar.style4 .label{color:#4a3663}.application.dark .details-content .timeline-bar.style4 .label{color:#b1a3c2}.details-content .timeline-bar.style4 .bar{background:#ba94e6;border:1px solid #9772b5}.application.dark .details-content .timeline-bar.style4 .bar{background:#a680d2;border:1px solid #835ea1}.details-content .timeline-duration{text-align:right;width:100px}.details-content .profiler .profiler-controls{position:absolute;right:0;top:4px}.details-content .profiler .profiler-controls .profiler-control-group{margin:0 5px}.details-content .profiler .profiler-controls .profiler-show-metric{font-size:105%}.details-content .profiler .profiler-controls .profiler-show-metric .fa-clock-o{font-size:110%}.details-content .profiler .profiler-controls .profiler-shown-fraction{font-size:85%}.details-content .profiler .profiler-controls .toggle-filter{position:static;visibility:visible}.details-content .profiler .profiler-controls a{margin:0 2px;text-decoration:none}.details-content .profiler .profiler-controls a.active{color:#258cdb}.application.dark .details-content .profiler .profiler-controls a.active{color:#f27e02}.application.dark .details-content .profiler .profiler-controls a{color:#9e9e9e}.details-content .profiler .profiler-metric{white-space:nowrap}.details-content .profiler .profiler-function{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .profiler .profiler-function .profiler-function-name{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;word-break:break-all}.details-content .profiler .profiler-function .profiler-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.details-content .profiler-loading,.details-content .profiler-not-available{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:16px;padding:40px 0;text-align:center;width:100%}.details-content .profiler-loading .message,.details-content .profiler-not-available .message{color:#aaa;font-size:75%;margin:10px 0 0 0}.details-content .profiler-not-available{font-size:15px;line-height:1.5}.details-content .profiler-not-available .message{font-size:90%;margin:15px 0 0}.details-content .profiler-not-available a{color:#aaa;cursor:pointer}.details-content .profiler-not-available .profiler-enable a{color:#258cdb}.application.dark .details-content .profiler-not-available .profiler-enable a{color:#f27e02}.details-content .log-row.error{background:#ffebeb;color:#c51f24}.details-content .log-row.error:nth-child(2n){background:#ffe0e0}.details-content .log-row.error .log-message-path{color:#dd888b}.application.dark .details-content .log-row.error{background:#380000;color:#ed797a}.application.dark .details-content .log-row.error:nth-child(2n){background:#2e0000}.application.dark .details-content .log-row.error .log-message-path{color:#c3797b}.details-content .log-row.warning{background:#fffae2;color:#a85919}.details-content .log-row.warning:nth-child(2n){background:#fff5c2}.details-content .log-row.warning .log-message-path{color:#d7a175}.application.dark .details-content .log-row.warning{background:#382f00;color:#fad89f}.application.dark .details-content .log-row.warning:nth-child(2n){background:#2e2600}.application.dark .details-content .log-row.warning .log-message-path{color:#d0b78b}.details-content .log-date,.details-content .log-level{width:70px}.details-content .log-message{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .log-message .log-message-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .log-message .log-message-exception{-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin:3px 5px 0 0;white-space:nowrap}.details-content .log-message .log-message-exception .exception-previous{border:1px solid #aaa;border-radius:4px;text-decoration:none;padding:2px 4px;margin-right:5px}.application.dark .details-content .log-message .log-message-exception .exception-previous{border-color:grey}.details-content .log-message .log-message-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.application.dark .details-content .log-message .log-message-path{color:#777}.details-content .fired-event{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .fired-event .fired-event-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .fired-event .fired-event-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.application.dark .details-content .fired-event .fired-event-path{color:#777}.details-content .fired-event-details h4{margin:6px 0 3px}.details-content .fired-event-actions{padding-left:5px;width:10px}.details-content .database-query{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.details-content .database-query .database-query-content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:100%}.details-content .database-query .database-query-path{color:#aaa;-webkit-box-flex:0;-ms-flex:0;flex:0;font-size:90%;margin-top:3px}.application.dark .details-content .database-query .database-query-path{color:#777}.details-content .database-duration{text-align:right;white-space:nowrap}.details-content .cache-query-type{font-size:125%;font-variant:small-caps}.details-authentication-overlay,.details-error-overlay,.details-loading-overlay{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:16px;height:calc(100% - 31px);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;left:0;position:absolute;top:31px;width:100%;z-index:999}.application.dark .details-authentication-overlay,.application.dark .details-error-overlay,.application.dark .details-loading-overlay{background:#1f1f1f}.details-authentication-overlay .fa-exclamation-circle,.details-authentication-overlay .fa-lock,.details-error-overlay .fa-exclamation-circle,.details-error-overlay .fa-lock,.details-loading-overlay .fa-exclamation-circle,.details-loading-overlay .fa-lock{color:#696969;font-size:46px}.details-authentication-overlay .title,.details-error-overlay .title,.details-loading-overlay .title{margin:10px 0 0 0}.details-authentication-overlay .message,.details-error-overlay .message,.details-loading-overlay .message{color:#aaa;font-size:75%;margin:5px 0 0 0}.details-authentication-overlay{text-align:center}.details-authentication-overlay .message,.details-authentication-overlay .title{font-size:80%}.details-authentication-overlay .title.failed{display:none}.details-authentication-overlay p{margin:1.3em 0}.details-authentication-overlay input{background:#eee;border:1px solid #eee;border-radius:4px;font-size:14px;height:30px;padding:0 10px}.application.dark .details-authentication-overlay input{background:#2e2e2e;border:1px solid #2e2e2e;color:#ccc}.details-authentication-overlay button{background:transparent;border:none;color:#258cdb;font-size:90%}.application.dark .details-authentication-overlay button{color:#f27e02}.details-authentication-overlay.failed .title{display:none}.details-authentication-overlay.failed .title.failed{display:block}.details-authentication-overlay.failed .fa-lock{-webkit-animation:shake .77s linear;animation:shake .77s linear}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate(-2px);transform:translate(-2px)}20%,80%{-webkit-transform:translate(3px);transform:translate(3px)}30%,50%,70%{-webkit-transform:translate(-5px);transform:translate(-5px)}40%,60%{-webkit-transform:translate(5px);transform:translate(5px)}}@keyframes shake{10%,90%{-webkit-transform:translate(-2px);transform:translate(-2px)}20%,80%{-webkit-transform:translate(3px);transform:translate(3px)}30%,50%,70%{-webkit-transform:translate(-5px);transform:translate(-5px)}40%,60%{-webkit-transform:translate(5px);transform:translate(5px)}}.stack-trace{cursor:pointer}.stack-trace .popover{cursor:default}.stack-trace a{text-decoration:none}.stack-trace .stack-frame{color:#000;padding:6px 10px;text-align:left;word-break:break-word}.application.dark .stack-trace .stack-frame{color:#b2b2b2}.stack-trace .stack-frame:nth-child(2n){background:#f5f5f5}.application.dark .stack-trace .stack-frame:nth-child(2n){background:#1b1b1b}.stack-trace .stack-frame .stack-frame-call{font-size:12px;padding-bottom:3px}.stack-trace .stack-frame .stack-frame-file{color:#aaa;font-size:11px}.stack-trace .stack-frame.is-vendor .stack-frame-call,.stack-trace .stack-frame.is-vendor .stack-frame-file{font-size:10px}.popover{left:0;padding-top:20px;position:absolute;top:100%;width:300px;z-index:666}.popover.right-aligned{left:auto;right:0}.popover.right-aligned .popover-content:before{left:auto;right:8px}.popover.right-aligned .popover-content:after{left:auto;right:7px}.popover .popover-content{background:#fff;border:1px solid #d1d1d1;border-radius:5px;-webkit-box-shadow:0 0 4px #e5e5e5;box-shadow:0 0 4px #e5e5e5;max-height:400px;overflow:auto;padding:5px 0;text-align:center;width:100%}.application.dark .popover .popover-content{background:#1f1f1f;border:1px solid #404040;-webkit-box-shadow:0 0 4px #292929;box-shadow:0 0 4px #292929}.popover .popover-content:after,.popover .popover-content:before{border-style:solid;content:"";height:0;position:absolute;width:0}.popover .popover-content:before{border-color:transparent transparent #fff transparent;border-width:0 14px 14px 14px;left:8px;top:7px;z-index:500}.application.dark .popover .popover-content:before{border-color:transparent transparent #1f1f1f transparent}.popover .popover-content:after{border-color:transparent transparent #e5e5e5 transparent;border-width:0 15px 15px 15px;left:7px;top:5px}.application.dark .popover .popover-content:after{border-color:transparent transparent #292929 transparent}.popover-container{position:relative}.hidden{display:none}[stupid-table] th{cursor:default}[tab-content]{display:none}.application.dark .pretty-jason{color:#d5d5d5}.application.dark .pretty-jason-key{color:#e36eec}.application.dark .pretty-jason-value-number{color:#997fff}.application.dark .pretty-jason-value-string{color:#e33e3a}.application.dark .pretty-jason-value-null,.application.dark .pretty-jason-value-undefined{color:#7f7f7f}.application.dark .pretty-jason-value-anonymous-function,.application.dark .pretty-jason-value-boolean,.application.dark .pretty-jason-value-resource{color:#8296ff}.application.dark .pretty-jason-icon-closed{border-color:transparent transparent transparent #919191}.application.dark .pretty-jason-icon-open{border-color:#919191 transparent transparent transparent} \ No newline at end of file diff --git a/Clockwork/Web/public/index.html b/Clockwork/Web/public/index.html index 5925bd64..f1c4e406 100644 --- a/Clockwork/Web/public/index.html +++ b/Clockwork/Web/public/index.html @@ -1 +1 @@ -Clockwork
\ No newline at end of file +Clockwork
\ No newline at end of file diff --git a/Clockwork/Web/public/js/app.f178977c.js b/Clockwork/Web/public/js/app.f178977c.js new file mode 100644 index 00000000..65d07538 --- /dev/null +++ b/Clockwork/Web/public/js/app.f178977c.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var a,r,o=t[0],l=t[1],c=t[2],d=0,h=[];d'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(p["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(p["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),b=function e(t,s){Object(m["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){var e,t;return this.makeFullPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))},shortPath:function(){var e,t;return this.makeShortPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},R=O,S=(s("9b34"),Object($["a"])(R,u,d,!1,null,null,null)),D=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],M=(s("96cf"),s("3b8d")),I={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=I,Q=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),A=Q.exports,U={name:"MessagesOverlay",components:{ExceptionSection:D,ParentRequest:A,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,F=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),H=F.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])}))}}],null,!1,1651104168)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},pe=[],me={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new g(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=me,ge=Object($["a"])(ve,fe,pe,!1,null,null,null),be=ge.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:be},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(m["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(p["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("div",[e._v(e._s(t.query))]),t.bindings?s("div",{staticClass:"database-query-bindings"},[s("pretty-print",{attrs:{data:t.bindings}})],1):e._e()]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[t.duration?s("span",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])])}))}}],null,!1,2035122076)}):e._e()],1)},Oe=[],Re=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=Re,De=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=De.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Me=[],Ie={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["active"],data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Ie,Qe=Object($["a"])(Le,Ee,Me,!1,null,null,null),Ae=Qe.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],Fe={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},He=Fe,Be=Object($["a"])(He,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}],staticClass:"log-message-context"},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=(s("f16e"),Object($["a"])(Ge,Ve,We,!1,null,null,null)),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",props:["active"],computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),pt=s.n(ft),mt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:pt()(e.context,["performance","trace"])})}))}}},vt=mt,gt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),bt=gt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Rt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Rt.exports,Dt={name:"PerformanceTab",components:{PerformanceLog:bt,Profiler:Ct,Timeline:St},props:["active"],data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Dt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),Mt=Et.exports,It=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],Qt={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},At=Qt,Ut=Object($["a"])(At,It,Lt,!1,null,null,null),Jt=Ut.exports,Ft=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ht=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(!t.loadRequestTimeout){e.next=5;break}return e.abrupt("return");case 5:if(e.t0=this.$requests.findId(t.id),e.t0){e.next=10;break}return e.next=9,this.$requests.loadId(t.id,!1);case 9:e.t0=e.sent;case 10:if(a=e.t0,a){e.next=13;break}return e.abrupt("return",t.loadRequestTimeout=setTimeout((function(){t.loadRequestTimeout=null,n.loadQueueJobRequest(t,s+1)}),5e3));case 13:this.$set(this.jobRequests,t.id,a);case 14:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{active:function(e){var t=this;e&&this.$request.queueJobs.forEach((function(e){e.id&&t.loadQueueJobRequest(e)}))}}},zt=Bt,Vt=(s("05dd"),Object($["a"])(zt,Ft,Ht,!1,null,"e2548e86",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},props:["active"],data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:be},props:["active","userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:be,Timeline:St},props:["active"]},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:H,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Ae,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:Mt,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,p,m,v,g,b,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(p=this.$request)||void 0===p?void 0:null===(m=p.emails)||void 0===m?void 0:m.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(g=v.routes)||void 0===g?void 0:g.length)>0,output:(null===(b=this.$request)||void 0===b?void 0:null===(w=b.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ps=fs,ms=(s("0f8a"),Object($["a"])(ps,r,o,!1,null,null,null)),vs=ms.exports,gs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},bs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Rs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Ds={name:"QueueJobTab",components:{PrettyPrint:be,SidebarSection:xs}},Ns=Ds,Es=(s("6b0a"),Object($["a"])(Ns,Rs,Ss,!1,null,null,null)),Ms=Es.exports,Is=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],Qs={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},As=Qs,Us=(s("9a64"),Object($["a"])(As,Is,Ls,!1,null,null,null)),Js=Us.exports,Fs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Hs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:be,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Fs,Hs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:D,ParentRequest:A,QueueJobTab:Ms,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,gs,bs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){var e=this.$requests.items;return this.$settings.global.hideCommandTypeRequests&&(e=e.filter((function(e){return"command"!=e.type}))),this.$settings.global.hideQueueJobTypeRequests&&(e=e.filter((function(e){return"queue-job"!=e.type}))),this.$settings.global.hideTestTypeRequests&&(e=e.filter((function(e){return"test"!=e.type}))),e},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){var t,s;this.global.$request=e,"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,pa=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),ma=pa.exports,va=s("d842"),ga=s("4eb5"),ba=s.n(ga),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ba.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Ra=s("c074"),Sa=s("b702");Oa["c"].add(Ra["r"],Ra["w"],Ra["o"],Ra["p"],Sa["a"],Ra["i"],Ra["d"],Ra["s"],Ra["z"],Ra["h"],Ra["e"],Ra["b"],Ra["a"],Ra["j"],Ra["v"],Ra["y"],Ra["A"],Ra["u"],Ra["k"],Ra["B"],Ra["c"],Ra["t"],Ra["m"],Ra["g"],Ra["f"],Ra["l"],Ra["q"],Ra["x"],Ra["n"]);var Da=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ma=s("c909"),Ia=s.n(Ma),La=function(){function e(t){Object(m["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e.bindings=t.optionalNonEmptyObject(e.bindings),e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Da["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.start=e.start||t.time,e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.duration=e.duration||t.time+t.responseDuration-e.start,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Da["a"])(t))}},{key:"processViews",value:function(e){var t=this;e=e instanceof Object?Object.values(e):[];e.forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"optionalNonEmptyObject",value:function(e,t){return e instanceof Object&&Object.keys(e).filter((function(e){return"__type__"!=e})).length?e:t}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ia.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Qa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout);var t=[this.settings.global.hideCommandTypeRequests?null:"command",this.settings.global.hideQueueJobTypeRequests?null:"queue-job",this.settings.global.hideTestTypeRequests?null:"test"].filter(Boolean);this.requests.withQuery({"type[]":t},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(p["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(p["a"])(browser))&&browser.devtools}}]),e}(),Aa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote("http://localhost:8000",{path:"clockwork.php?request="})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(m["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(m["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Fa=function(){function e(){Object(m["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Ha=(s("6c7b"),s("f559"),function(){function e(t,s){Object(m["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),p=f[0],m=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),g=v.shift();u=i[p],u||(i[p]=u={name:m,file:c,line:g,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),p=f.shift(),m=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=m.callers[d];v||(m.callers[d]=v={name:u.name,line:p,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var g=u.subCalls[r];g||(u.subCalls[r]=g={name:c,line:p,calls:0,summed:new Array(f.length).fill(0)}),g.calls++,g.summed=g.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(m["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Ha.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s,a=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t=t||(null===(s=this.last((function(e){return!e.loading})))||void 0===s?void 0:s.id),t?this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return n&&a.merge(e),e})).catch((function(e){}))}),n):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){this.items=this.items.concat(e).sort((function(e,t){return e.time-t.time}))}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ia.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ia()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Da["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(m["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Qa,hideQueueJobTypeRequests:this.platform instanceof Qa,hideTestTypeRequests:this.platform instanceof Qa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("round",this.round),$e["a"].filter("shortClass",this.shortClass)}},{key:"round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(parseFloat(e).toFixed(t))}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s]'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(m["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(m["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),g=function e(t,s){Object(p["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){return this.makeFullPath(this.file||this.trace[0].file,this.line||this.trace[0].line)},shortPath:function(){return this.makeShortPath(this.file||this.trace[0].file,this.line||this.trace[0].line)}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},D=O,S=(s("9b34"),Object($["a"])(D,u,d,!1,null,null,null)),R=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],M=(s("96cf"),s("3b8d")),I={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=I,A=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),Q=A.exports,U={name:"MessagesOverlay",components:{ExceptionSection:R,ParentRequest:Q,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,H=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),F=H.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("number:3")(t.duration))+" ms")]):e._e()])}))}}],null,!1,1238126495)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},me=[],pe={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new b(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=pe,be=Object($["a"])(ve,fe,me,!1,null,null,null),ge=be.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:ge},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(p["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(m["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,3970562768)}):e._e()],1)},Oe=[],De=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=De,Re=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=Re.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Me=[],Ie={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge},data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Ie,Ae=Object($["a"])(Le,Ee,Me,!1,null,null,null),Qe=Ae.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],He={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},Fe=He,Be=Object($["a"])(Fe,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=Object($["a"])(Ge,Ve,We,!1,null,null,null),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),mt=s.n(ft),pt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:mt()(e.context,["performance","trace"])})}))}}},vt=pt,bt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),gt=bt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Dt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Dt.exports,Rt={name:"PerformanceTab",components:{PerformanceLog:gt,Profiler:Ct,Timeline:St},data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Rt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),Mt=Et.exports,It=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],At={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:ge,StackTrace:P},data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},Qt=At,Ut=Object($["a"])(Qt,It,Lt,!1,null,null,null),Jt=Ut.exports,Ht=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ft=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:ge,ShortenedText:k,StackTrace:P},data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(t),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(t,!1);case 7:e.t0=e.sent;case 8:if(a=e.t0,a){e.next=11;break}return e.abrupt("return",setTimeout((function(){return n.loadQueueJobRequest(t,s+1)}),5e3));case 11:this.$set(this.jobRequests,t,a);case 12:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{$request:{handler:function(){var e=this;this.$request.queueJobs.forEach((function(t){t.id&&e.loadQueueJobRequest(t.id)}))},immediate:!0}}},zt=Bt,Vt=(s("8c77"),Object($["a"])(zt,Ht,Ft,!1,null,"dea2de12",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:ge},props:["userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:ge,Timeline:St}},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:F,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Qe,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:Mt,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,m,p,v,b,g,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(m=this.$request)||void 0===m?void 0:null===(p=m.emails)||void 0===p?void 0:p.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(b=v.routes)||void 0===b?void 0:b.length)>0,output:(null===(g=this.$request)||void 0===g?void 0:null===(w=g.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ms=fs,ps=(s("0f8a"),Object($["a"])(ms,r,o,!1,null,null,null)),vs=ps.exports,bs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},gs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:ge},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Ds=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Rs={name:"QueueJobTab",components:{PrettyPrint:ge,SidebarSection:xs}},Ns=Rs,Es=(s("6b0a"),Object($["a"])(Ns,Ds,Ss,!1,null,null,null)),Ms=Es.exports,Is=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],As={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},Qs=As,Us=(s("9a64"),Object($["a"])(Qs,Is,Ls,!1,null,null,null)),Js=Us.exports,Hs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Fs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:ge,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Hs,Fs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:R,ParentRequest:Q,QueueJobTab:Ms,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,bs,gs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){return this.$settings.global.hideCommandTypeRequests?this.$requests.items.filter((function(e){return"command"!=e.type})):this.$settings.global.hideQueueJobTypeRequests?this.$requests.items.filter((function(e){return"queue-job"!=e.type})):this.$settings.global.hideTestTypeRequests?this.$requests.items.filter((function(e){return"test"!=e.type})):this.$requests.items},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){var t,s;this.global.$request=e,"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,ma=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),pa=ma.exports,va=s("d842"),ba=s("4eb5"),ga=s.n(ba),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ga.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Da=s("c074"),Sa=s("b702");Oa["c"].add(Da["r"],Da["w"],Da["o"],Da["p"],Sa["a"],Da["i"],Da["d"],Da["s"],Da["z"],Da["h"],Da["e"],Da["b"],Da["a"],Da["j"],Da["v"],Da["y"],Da["A"],Da["u"],Da["k"],Da["B"],Da["c"],Da["t"],Da["m"],Da["g"],Da["f"],Da["l"],Da["q"],Da["x"],Da["n"]);var Ra=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ma=s("c909"),Ia=s.n(Ma),La=function(){function e(t){Object(p["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Ra["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Ra["a"])(t))}},{key:"processViews",value:function(e){var t=this;Object.values(e).forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ia.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Aa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.withQuery({"type[]":"command"},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(m["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(m["a"])(browser))&&browser.devtools}}]),e}(),Qa=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote(window.location.href,{path:Ia()(window.location.href.split("/").slice(0,-1).join("/")).path()+"/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(p["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(p["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Ha=function(){function e(){Object(p["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Fa=(s("6c7b"),s("f559"),function(){function e(t,s){Object(p["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),m=f[0],p=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),b=v.shift();u=i[m],u||(i[m]=u={name:p,file:c,line:b,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),m=f.shift(),p=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=p.callers[d];v||(p.callers[d]=v={name:u.name,line:m,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var b=u.subCalls[r];b||(u.subCalls[r]=b={name:c,line:m,calls:0,summed:new Array(f.length).fill(0)}),b.calls++,b.summed=b.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(p["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Fa.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(p["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.last((function(e){return!e.loading})).id,this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){this.items=this.items.concat(e).sort((function(e,t){return e.time-t.time}))}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ia.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ia()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Ra["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(p["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Aa,hideQueueJobTypeRequests:this.platform instanceof Aa,hideTestTypeRequests:this.platform instanceof Aa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(p["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("shortClass",this.shortClass)}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(p["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s] Date: Thu, 6 Feb 2020 23:39:56 +0100 Subject: [PATCH 65/75] Updated Clockwork App. --- Clockwork/Web/public/index.html | 2 +- .../js/{app.f178977c.js => app.02ad4f0f.js} | 4 ++-- ...ifest.8d3b9146b01714b33b479f1bf41fda2b.js} | 24 +++++++++---------- Clockwork/Web/public/service-worker.js | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) rename Clockwork/Web/public/js/{app.f178977c.js => app.02ad4f0f.js} (86%) rename Clockwork/Web/public/{precache-manifest.43917887ae89e9774b9f0129a40b05e7.js => precache-manifest.8d3b9146b01714b33b479f1bf41fda2b.js} (86%) diff --git a/Clockwork/Web/public/index.html b/Clockwork/Web/public/index.html index f1c4e406..44b6259e 100644 --- a/Clockwork/Web/public/index.html +++ b/Clockwork/Web/public/index.html @@ -1 +1 @@ -Clockwork
\ No newline at end of file +Clockwork
\ No newline at end of file diff --git a/Clockwork/Web/public/js/app.f178977c.js b/Clockwork/Web/public/js/app.02ad4f0f.js similarity index 86% rename from Clockwork/Web/public/js/app.f178977c.js rename to Clockwork/Web/public/js/app.02ad4f0f.js index 65d07538..194bce67 100644 --- a/Clockwork/Web/public/js/app.f178977c.js +++ b/Clockwork/Web/public/js/app.02ad4f0f.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var a,r,o=t[0],l=t[1],c=t[2],d=0,h=[];d'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(p["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(p["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),b=function e(t,s){Object(m["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){var e,t;return this.makeFullPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))},shortPath:function(){var e,t;return this.makeShortPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},R=O,S=(s("9b34"),Object($["a"])(R,u,d,!1,null,null,null)),D=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],M=(s("96cf"),s("3b8d")),I={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=I,Q=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),A=Q.exports,U={name:"MessagesOverlay",components:{ExceptionSection:D,ParentRequest:A,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,F=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),H=F.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])}))}}],null,!1,1651104168)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},pe=[],me={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new g(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=me,ge=Object($["a"])(ve,fe,pe,!1,null,null,null),be=ge.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:be},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(m["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(p["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("div",[e._v(e._s(t.query))]),t.bindings?s("div",{staticClass:"database-query-bindings"},[s("pretty-print",{attrs:{data:t.bindings}})],1):e._e()]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[t.duration?s("span",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])])}))}}],null,!1,2035122076)}):e._e()],1)},Oe=[],Re=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=Re,De=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=De.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Me=[],Ie={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["active"],data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Ie,Qe=Object($["a"])(Le,Ee,Me,!1,null,null,null),Ae=Qe.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],Fe={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},He=Fe,Be=Object($["a"])(He,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}],staticClass:"log-message-context"},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=(s("f16e"),Object($["a"])(Ge,Ve,We,!1,null,null,null)),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",props:["active"],computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),pt=s.n(ft),mt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:pt()(e.context,["performance","trace"])})}))}}},vt=mt,gt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),bt=gt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Rt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Rt.exports,Dt={name:"PerformanceTab",components:{PerformanceLog:bt,Profiler:Ct,Timeline:St},props:["active"],data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Dt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),Mt=Et.exports,It=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],Qt={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},At=Qt,Ut=Object($["a"])(At,It,Lt,!1,null,null,null),Jt=Ut.exports,Ft=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ht=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(!t.loadRequestTimeout){e.next=5;break}return e.abrupt("return");case 5:if(e.t0=this.$requests.findId(t.id),e.t0){e.next=10;break}return e.next=9,this.$requests.loadId(t.id,!1);case 9:e.t0=e.sent;case 10:if(a=e.t0,a){e.next=13;break}return e.abrupt("return",t.loadRequestTimeout=setTimeout((function(){t.loadRequestTimeout=null,n.loadQueueJobRequest(t,s+1)}),5e3));case 13:this.$set(this.jobRequests,t.id,a);case 14:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{active:function(e){var t=this;e&&this.$request.queueJobs.forEach((function(e){e.id&&t.loadQueueJobRequest(e)}))}}},zt=Bt,Vt=(s("05dd"),Object($["a"])(zt,Ft,Ht,!1,null,"e2548e86",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},props:["active"],data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:be},props:["active","userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:be,Timeline:St},props:["active"]},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:H,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Ae,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:Mt,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,p,m,v,g,b,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(p=this.$request)||void 0===p?void 0:null===(m=p.emails)||void 0===m?void 0:m.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(g=v.routes)||void 0===g?void 0:g.length)>0,output:(null===(b=this.$request)||void 0===b?void 0:null===(w=b.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ps=fs,ms=(s("0f8a"),Object($["a"])(ps,r,o,!1,null,null,null)),vs=ms.exports,gs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},bs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Rs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Ds={name:"QueueJobTab",components:{PrettyPrint:be,SidebarSection:xs}},Ns=Ds,Es=(s("6b0a"),Object($["a"])(Ns,Rs,Ss,!1,null,null,null)),Ms=Es.exports,Is=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],Qs={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},As=Qs,Us=(s("9a64"),Object($["a"])(As,Is,Ls,!1,null,null,null)),Js=Us.exports,Fs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Hs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:be,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Fs,Hs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:D,ParentRequest:A,QueueJobTab:Ms,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,gs,bs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){var e=this.$requests.items;return this.$settings.global.hideCommandTypeRequests&&(e=e.filter((function(e){return"command"!=e.type}))),this.$settings.global.hideQueueJobTypeRequests&&(e=e.filter((function(e){return"queue-job"!=e.type}))),this.$settings.global.hideTestTypeRequests&&(e=e.filter((function(e){return"test"!=e.type}))),e},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){var t,s;this.global.$request=e,"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,pa=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),ma=pa.exports,va=s("d842"),ga=s("4eb5"),ba=s.n(ga),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ba.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Ra=s("c074"),Sa=s("b702");Oa["c"].add(Ra["r"],Ra["w"],Ra["o"],Ra["p"],Sa["a"],Ra["i"],Ra["d"],Ra["s"],Ra["z"],Ra["h"],Ra["e"],Ra["b"],Ra["a"],Ra["j"],Ra["v"],Ra["y"],Ra["A"],Ra["u"],Ra["k"],Ra["B"],Ra["c"],Ra["t"],Ra["m"],Ra["g"],Ra["f"],Ra["l"],Ra["q"],Ra["x"],Ra["n"]);var Da=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ma=s("c909"),Ia=s.n(Ma),La=function(){function e(t){Object(m["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e.bindings=t.optionalNonEmptyObject(e.bindings),e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Da["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.start=e.start||t.time,e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.duration=e.duration||t.time+t.responseDuration-e.start,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Da["a"])(t))}},{key:"processViews",value:function(e){var t=this;e=e instanceof Object?Object.values(e):[];e.forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"optionalNonEmptyObject",value:function(e,t){return e instanceof Object&&Object.keys(e).filter((function(e){return"__type__"!=e})).length?e:t}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ia.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Qa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout);var t=[this.settings.global.hideCommandTypeRequests?null:"command",this.settings.global.hideQueueJobTypeRequests?null:"queue-job",this.settings.global.hideTestTypeRequests?null:"test"].filter(Boolean);this.requests.withQuery({"type[]":t},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(p["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(p["a"])(browser))&&browser.devtools}}]),e}(),Aa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote("http://localhost:8000",{path:"clockwork.php?request="})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(m["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(m["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Fa=function(){function e(){Object(m["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Ha=(s("6c7b"),s("f559"),function(){function e(t,s){Object(m["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),p=f[0],m=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),g=v.shift();u=i[p],u||(i[p]=u={name:m,file:c,line:g,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),p=f.shift(),m=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=m.callers[d];v||(m.callers[d]=v={name:u.name,line:p,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var g=u.subCalls[r];g||(u.subCalls[r]=g={name:c,line:p,calls:0,summed:new Array(f.length).fill(0)}),g.calls++,g.summed=g.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(m["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Ha.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s,a=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t=t||(null===(s=this.last((function(e){return!e.loading})))||void 0===s?void 0:s.id),t?this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return n&&a.merge(e),e})).catch((function(e){}))}),n):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){this.items=this.items.concat(e).sort((function(e,t){return e.time-t.time}))}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ia.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ia()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Da["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(m["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Qa,hideQueueJobTypeRequests:this.platform instanceof Qa,hideTestTypeRequests:this.platform instanceof Qa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("round",this.round),$e["a"].filter("shortClass",this.shortClass)}},{key:"round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(parseFloat(e).toFixed(t))}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s]'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(p["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(p["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),b=function e(t,s){Object(m["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){var e,t;return this.makeFullPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))},shortPath:function(){var e,t;return this.makeShortPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},R=O,S=(s("9b34"),Object($["a"])(R,u,d,!1,null,null,null)),D=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],M=(s("96cf"),s("3b8d")),I={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=I,Q=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),A=Q.exports,U={name:"MessagesOverlay",components:{ExceptionSection:D,ParentRequest:A,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,F=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),H=F.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])}))}}],null,!1,1651104168)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},pe=[],me={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new g(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=me,ge=Object($["a"])(ve,fe,pe,!1,null,null,null),be=ge.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:be},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(m["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(p["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("div",[e._v(e._s(t.query))]),t.bindings?s("div",{staticClass:"database-query-bindings"},[s("pretty-print",{attrs:{data:t.bindings}})],1):e._e()]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[t.duration?s("span",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])])}))}}],null,!1,2035122076)}):e._e()],1)},Oe=[],Re=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=Re,De=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=De.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Me=[],Ie={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["active"],data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Ie,Qe=Object($["a"])(Le,Ee,Me,!1,null,null,null),Ae=Qe.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],Fe={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},He=Fe,Be=Object($["a"])(He,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}],staticClass:"log-message-context"},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=(s("f16e"),Object($["a"])(Ge,Ve,We,!1,null,null,null)),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",props:["active"],computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),pt=s.n(ft),mt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:pt()(e.context,["performance","trace"])})}))}}},vt=mt,gt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),bt=gt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Rt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Rt.exports,Dt={name:"PerformanceTab",components:{PerformanceLog:bt,Profiler:Ct,Timeline:St},props:["active"],data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Dt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),Mt=Et.exports,It=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],Qt={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},At=Qt,Ut=Object($["a"])(At,It,Lt,!1,null,null,null),Jt=Ut.exports,Ft=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ht=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(!t.loadRequestTimeout){e.next=5;break}return e.abrupt("return");case 5:if(e.t0=this.$requests.findId(t.id),e.t0){e.next=10;break}return e.next=9,this.$requests.loadId(t.id,!1);case 9:e.t0=e.sent;case 10:if(a=e.t0,a){e.next=13;break}return e.abrupt("return",t.loadRequestTimeout=setTimeout((function(){t.loadRequestTimeout=null,n.loadQueueJobRequest(t,s+1)}),5e3));case 13:this.$set(this.jobRequests,t.id,a);case 14:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{active:function(e){var t=this;e&&this.$request.queueJobs.forEach((function(e){e.id&&t.loadQueueJobRequest(e)}))}}},zt=Bt,Vt=(s("05dd"),Object($["a"])(zt,Ft,Ht,!1,null,"e2548e86",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},props:["active"],data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:be},props:["active","userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:be,Timeline:St},props:["active"]},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:H,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Ae,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:Mt,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,p,m,v,g,b,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(p=this.$request)||void 0===p?void 0:null===(m=p.emails)||void 0===m?void 0:m.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(g=v.routes)||void 0===g?void 0:g.length)>0,output:(null===(b=this.$request)||void 0===b?void 0:null===(w=b.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ps=fs,ms=(s("0f8a"),Object($["a"])(ps,r,o,!1,null,null,null)),vs=ms.exports,gs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},bs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Rs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Ds={name:"QueueJobTab",components:{PrettyPrint:be,SidebarSection:xs}},Ns=Ds,Es=(s("6b0a"),Object($["a"])(Ns,Rs,Ss,!1,null,null,null)),Ms=Es.exports,Is=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],Qs={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},As=Qs,Us=(s("9a64"),Object($["a"])(As,Is,Ls,!1,null,null,null)),Js=Us.exports,Fs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Hs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:be,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Fs,Hs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:D,ParentRequest:A,QueueJobTab:Ms,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,gs,bs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){var e=this.$requests.items;return this.$settings.global.hideCommandTypeRequests&&(e=e.filter((function(e){return"command"!=e.type}))),this.$settings.global.hideQueueJobTypeRequests&&(e=e.filter((function(e){return"queue-job"!=e.type}))),this.$settings.global.hideTestTypeRequests&&(e=e.filter((function(e){return"test"!=e.type}))),e},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){var t,s;this.global.$request=e,"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,pa=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),ma=pa.exports,va=s("d842"),ga=s("4eb5"),ba=s.n(ga),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ba.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Ra=s("c074"),Sa=s("b702");Oa["c"].add(Ra["r"],Ra["w"],Ra["o"],Ra["p"],Sa["a"],Ra["i"],Ra["d"],Ra["s"],Ra["z"],Ra["h"],Ra["e"],Ra["b"],Ra["a"],Ra["j"],Ra["v"],Ra["y"],Ra["A"],Ra["u"],Ra["k"],Ra["B"],Ra["c"],Ra["t"],Ra["m"],Ra["g"],Ra["f"],Ra["l"],Ra["q"],Ra["x"],Ra["n"]);var Da=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ma=s("c909"),Ia=s.n(Ma),La=function(){function e(t){Object(m["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e.bindings=t.optionalNonEmptyObject(e.bindings),e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Da["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.start=e.start||t.time,e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.duration=e.duration||t.time+t.responseDuration-e.start,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Da["a"])(t))}},{key:"processViews",value:function(e){var t=this;e=e instanceof Object?Object.values(e):[];e.forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"optionalNonEmptyObject",value:function(e,t){return e instanceof Object&&Object.keys(e).filter((function(e){return"__type__"!=e})).length?e:t}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ia.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Qa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout);var t=[this.settings.global.hideCommandTypeRequests?null:"command",this.settings.global.hideQueueJobTypeRequests?null:"queue-job",this.settings.global.hideTestTypeRequests?null:"test"].filter(Boolean);this.requests.withQuery({"type[]":t},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(p["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(p["a"])(browser))&&browser.devtools}}]),e}(),Aa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote(window.location.href,{path:Ia()(window.location.href.split("/").slice(0,-1).join("/")).path()+"/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(m["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(m["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Fa=function(){function e(){Object(m["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Ha=(s("6c7b"),s("f559"),function(){function e(t,s){Object(m["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),p=f[0],m=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),g=v.shift();u=i[p],u||(i[p]=u={name:m,file:c,line:g,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),p=f.shift(),m=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=m.callers[d];v||(m.callers[d]=v={name:u.name,line:p,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var g=u.subCalls[r];g||(u.subCalls[r]=g={name:c,line:p,calls:0,summed:new Array(f.length).fill(0)}),g.calls++,g.summed=g.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(m["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Ha.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s,a=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t=t||(null===(s=this.last((function(e){return!e.loading})))||void 0===s?void 0:s.id),t?this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return n&&a.merge(e),e})).catch((function(e){}))}),n):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){this.items=this.items.concat(e).sort((function(e,t){return e.time-t.time}))}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ia.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ia()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Da["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(m["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Qa,hideQueueJobTypeRequests:this.platform instanceof Qa,hideTestTypeRequests:this.platform instanceof Qa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("round",this.round),$e["a"].filter("shortClass",this.shortClass)}},{key:"round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(parseFloat(e).toFixed(t))}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s] Date: Sat, 15 Feb 2020 15:16:21 +0100 Subject: [PATCH 66/75] Laravel - fixed hadling of sync queue jobs. --- Clockwork/Support/Laravel/ClockworkSupport.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index 6ea4aae8..858330e3 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -157,6 +157,9 @@ public function collectCommands() public function collectQueueJobs() { $this->app['events']->listen(\Illuminate\Queue\Events\JobProcessing::class, function ($event) { + // sync jobs are recorded as part of the parent request + if ($event->job instanceof \Illuminate\Queue\Jobs\SyncJob) return; + $payload = $event->job->payload(); if (! isset($payload['clockwork_id']) || $this->isQueueJobFiltered($payload['displayName'])) return; @@ -179,6 +182,9 @@ public function collectQueueJobs() protected function processQueueJob($job, $exception = null) { + // sync jobs are recorded as part of the parent request + if ($job instanceof \Illuminate\Queue\Jobs\SyncJob) return; + $payload = $job->payload(); if (! isset($payload['clockwork_id'])) return; From 3df49e623e18c44b7485f75ec1a5f9a158ff78df Mon Sep 17 00:00:00 2001 From: its Date: Sat, 15 Feb 2020 16:11:36 +0100 Subject: [PATCH 67/75] Laravel - fixed mismatched log and routes settings. --- Clockwork/Support/Laravel/ClockworkServiceProvider.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php index 78af1110..809c107c 100755 --- a/Clockwork/Support/Laravel/ClockworkServiceProvider.php +++ b/Clockwork/Support/Laravel/ClockworkServiceProvider.php @@ -195,6 +195,7 @@ protected function registerDataSources() $this->app->singleton('clockwork.laravel', function ($app) { return (new LaravelDataSource( $app, + $app['clockwork.support']->isFeatureEnabled('log'), $app['clockwork.support']->isFeatureEnabled('routes') )) ->setLog($app['clockwork.log']); From 144e4524409a50425abd4401e8c1d169a32d4cea Mon Sep 17 00:00:00 2001 From: its Date: Sat, 15 Feb 2020 21:53:49 +0100 Subject: [PATCH 68/75] Updated Clockwork App. --- Clockwork/Web/public/index.html | 2 +- .../Web/public/js/{app.02ad4f0f.js => app.b349cf93.js} | 4 ++-- ...precache-manifest.b555cd53fd88126e4e124e491f3cf67c.js} | 8 ++++---- Clockwork/Web/public/service-worker.js | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) rename Clockwork/Web/public/js/{app.02ad4f0f.js => app.b349cf93.js} (68%) rename Clockwork/Web/public/{precache-manifest.8d3b9146b01714b33b479f1bf41fda2b.js => precache-manifest.b555cd53fd88126e4e124e491f3cf67c.js} (86%) diff --git a/Clockwork/Web/public/index.html b/Clockwork/Web/public/index.html index 44b6259e..d5c40aaa 100644 --- a/Clockwork/Web/public/index.html +++ b/Clockwork/Web/public/index.html @@ -1 +1 @@ -Clockwork
\ No newline at end of file +Clockwork
\ No newline at end of file diff --git a/Clockwork/Web/public/js/app.02ad4f0f.js b/Clockwork/Web/public/js/app.b349cf93.js similarity index 68% rename from Clockwork/Web/public/js/app.02ad4f0f.js rename to Clockwork/Web/public/js/app.b349cf93.js index 194bce67..ecd97d80 100644 --- a/Clockwork/Web/public/js/app.02ad4f0f.js +++ b/Clockwork/Web/public/js/app.b349cf93.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var a,r,o=t[0],l=t[1],c=t[2],d=0,h=[];d'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(p["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(p["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),b=function e(t,s){Object(m["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){var e,t;return this.makeFullPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))},shortPath:function(){var e,t;return this.makeShortPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},R=O,S=(s("9b34"),Object($["a"])(R,u,d,!1,null,null,null)),D=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],M=(s("96cf"),s("3b8d")),I={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=I,Q=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),A=Q.exports,U={name:"MessagesOverlay",components:{ExceptionSection:D,ParentRequest:A,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,F=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),H=F.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])}))}}],null,!1,1651104168)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},pe=[],me={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new g(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=me,ge=Object($["a"])(ve,fe,pe,!1,null,null,null),be=ge.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:be},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(m["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(p["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("div",[e._v(e._s(t.query))]),t.bindings?s("div",{staticClass:"database-query-bindings"},[s("pretty-print",{attrs:{data:t.bindings}})],1):e._e()]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[t.duration?s("span",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])])}))}}],null,!1,2035122076)}):e._e()],1)},Oe=[],Re=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=Re,De=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=De.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Me=[],Ie={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["active"],data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Ie,Qe=Object($["a"])(Le,Ee,Me,!1,null,null,null),Ae=Qe.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],Fe={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},He=Fe,Be=Object($["a"])(He,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}],staticClass:"log-message-context"},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=(s("f16e"),Object($["a"])(Ge,Ve,We,!1,null,null,null)),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",props:["active"],computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),pt=s.n(ft),mt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:pt()(e.context,["performance","trace"])})}))}}},vt=mt,gt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),bt=gt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Rt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Rt.exports,Dt={name:"PerformanceTab",components:{PerformanceLog:bt,Profiler:Ct,Timeline:St},props:["active"],data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Dt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),Mt=Et.exports,It=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],Qt={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},At=Qt,Ut=Object($["a"])(At,It,Lt,!1,null,null,null),Jt=Ut.exports,Ft=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ht=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(!t.loadRequestTimeout){e.next=5;break}return e.abrupt("return");case 5:if(e.t0=this.$requests.findId(t.id),e.t0){e.next=10;break}return e.next=9,this.$requests.loadId(t.id,!1);case 9:e.t0=e.sent;case 10:if(a=e.t0,a){e.next=13;break}return e.abrupt("return",t.loadRequestTimeout=setTimeout((function(){t.loadRequestTimeout=null,n.loadQueueJobRequest(t,s+1)}),5e3));case 13:this.$set(this.jobRequests,t.id,a);case 14:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{active:function(e){var t=this;e&&this.$request.queueJobs.forEach((function(e){e.id&&t.loadQueueJobRequest(e)}))}}},zt=Bt,Vt=(s("05dd"),Object($["a"])(zt,Ft,Ht,!1,null,"e2548e86",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},props:["active"],data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:be},props:["active","userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:be,Timeline:St},props:["active"]},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:H,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Ae,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:Mt,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,p,m,v,g,b,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(p=this.$request)||void 0===p?void 0:null===(m=p.emails)||void 0===m?void 0:m.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(g=v.routes)||void 0===g?void 0:g.length)>0,output:(null===(b=this.$request)||void 0===b?void 0:null===(w=b.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ps=fs,ms=(s("0f8a"),Object($["a"])(ps,r,o,!1,null,null,null)),vs=ms.exports,gs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},bs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Rs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Ds={name:"QueueJobTab",components:{PrettyPrint:be,SidebarSection:xs}},Ns=Ds,Es=(s("6b0a"),Object($["a"])(Ns,Rs,Ss,!1,null,null,null)),Ms=Es.exports,Is=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],Qs={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},As=Qs,Us=(s("9a64"),Object($["a"])(As,Is,Ls,!1,null,null,null)),Js=Us.exports,Fs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Hs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:be,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Fs,Hs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:D,ParentRequest:A,QueueJobTab:Ms,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,gs,bs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){var e=this.$requests.items;return this.$settings.global.hideCommandTypeRequests&&(e=e.filter((function(e){return"command"!=e.type}))),this.$settings.global.hideQueueJobTypeRequests&&(e=e.filter((function(e){return"queue-job"!=e.type}))),this.$settings.global.hideTestTypeRequests&&(e=e.filter((function(e){return"test"!=e.type}))),e},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){var t,s;this.global.$request=e,"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,pa=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),ma=pa.exports,va=s("d842"),ga=s("4eb5"),ba=s.n(ga),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ba.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Ra=s("c074"),Sa=s("b702");Oa["c"].add(Ra["r"],Ra["w"],Ra["o"],Ra["p"],Sa["a"],Ra["i"],Ra["d"],Ra["s"],Ra["z"],Ra["h"],Ra["e"],Ra["b"],Ra["a"],Ra["j"],Ra["v"],Ra["y"],Ra["A"],Ra["u"],Ra["k"],Ra["B"],Ra["c"],Ra["t"],Ra["m"],Ra["g"],Ra["f"],Ra["l"],Ra["q"],Ra["x"],Ra["n"]);var Da=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ma=s("c909"),Ia=s.n(Ma),La=function(){function e(t){Object(m["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e.bindings=t.optionalNonEmptyObject(e.bindings),e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Da["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.start=e.start||t.time,e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.duration=e.duration||t.time+t.responseDuration-e.start,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Da["a"])(t))}},{key:"processViews",value:function(e){var t=this;e=e instanceof Object?Object.values(e):[];e.forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"optionalNonEmptyObject",value:function(e,t){return e instanceof Object&&Object.keys(e).filter((function(e){return"__type__"!=e})).length?e:t}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ia.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Qa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout);var t=[this.settings.global.hideCommandTypeRequests?null:"command",this.settings.global.hideQueueJobTypeRequests?null:"queue-job",this.settings.global.hideTestTypeRequests?null:"test"].filter(Boolean);this.requests.withQuery({"type[]":t},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(p["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(p["a"])(browser))&&browser.devtools}}]),e}(),Aa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote(window.location.href,{path:Ia()(window.location.href.split("/").slice(0,-1).join("/")).path()+"/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(m["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(m["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Fa=function(){function e(){Object(m["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Ha=(s("6c7b"),s("f559"),function(){function e(t,s){Object(m["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),p=f[0],m=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),g=v.shift();u=i[p],u||(i[p]=u={name:m,file:c,line:g,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),p=f.shift(),m=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=m.callers[d];v||(m.callers[d]=v={name:u.name,line:p,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var g=u.subCalls[r];g||(u.subCalls[r]=g={name:c,line:p,calls:0,summed:new Array(f.length).fill(0)}),g.calls++,g.summed=g.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(m["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Ha.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s,a=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t=t||(null===(s=this.last((function(e){return!e.loading})))||void 0===s?void 0:s.id),t?this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return n&&a.merge(e),e})).catch((function(e){}))}),n):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){this.items=this.items.concat(e).sort((function(e,t){return e.time-t.time}))}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ia.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ia()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Da["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(m["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Qa,hideQueueJobTypeRequests:this.platform instanceof Qa,hideTestTypeRequests:this.platform instanceof Qa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("round",this.round),$e["a"].filter("shortClass",this.shortClass)}},{key:"round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(parseFloat(e).toFixed(t))}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s]'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(p["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(p["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),b=function e(t,s){Object(m["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){var e,t;return this.makeFullPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))},shortPath:function(){var e,t;return this.makeShortPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},R=O,S=(s("9b34"),Object($["a"])(R,u,d,!1,null,null,null)),D=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],I=(s("96cf"),s("3b8d")),M={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(I["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=M,Q=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),A=Q.exports,U={name:"MessagesOverlay",components:{ExceptionSection:D,ParentRequest:A,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,F=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),H=F.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])}))}}],null,!1,1651104168)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},pe=[],me={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new g(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=me,ge=Object($["a"])(ve,fe,pe,!1,null,null,null),be=ge.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:be},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(m["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(p["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("div",[e._v(e._s(t.query))]),t.bindings?s("div",{staticClass:"database-query-bindings"},[s("pretty-print",{attrs:{data:t.bindings}})],1):e._e()]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[t.duration?s("span",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])])}))}}],null,!1,2035122076)}):e._e()],1)},Oe=[],Re=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=Re,De=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=De.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Ie=[],Me={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["active"],data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Me,Qe=Object($["a"])(Le,Ee,Ie,!1,null,null,null),Ae=Qe.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],Fe={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},He=Fe,Be=Object($["a"])(He,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}],staticClass:"log-message-context"},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=(s("f16e"),Object($["a"])(Ge,Ve,We,!1,null,null,null)),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",props:["active"],computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),pt=s.n(ft),mt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:pt()(e.context,["performance","trace"])})}))}}},vt=mt,gt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),bt=gt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Rt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Rt.exports,Dt={name:"PerformanceTab",components:{PerformanceLog:bt,Profiler:Ct,Timeline:St},props:["active"],data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Dt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),It=Et.exports,Mt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],Qt={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},At=Qt,Ut=Object($["a"])(At,Mt,Lt,!1,null,null,null),Jt=Ut.exports,Ft=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ht=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(I["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(!t.loadRequestTimeout){e.next=5;break}return e.abrupt("return");case 5:if(e.t0=this.$requests.findId(t.id),e.t0){e.next=10;break}return e.next=9,this.$requests.loadId(t.id,!1);case 9:e.t0=e.sent;case 10:if(a=e.t0,a){e.next=13;break}return e.abrupt("return",t.loadRequestTimeout=setTimeout((function(){t.loadRequestTimeout=null,n.loadQueueJobRequest(t,s+1)}),5e3));case 13:this.$set(this.jobRequests,t.id,a);case 14:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{active:function(e){var t=this;e&&this.$request.queueJobs.forEach((function(e){e.id&&t.loadQueueJobRequest(e)}))}}},zt=Bt,Vt=(s("05dd"),Object($["a"])(zt,Ft,Ht,!1,null,"e2548e86",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},props:["active"],data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:be},props:["active","userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:be,Timeline:St},props:["active"]},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:H,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Ae,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:It,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,p,m,v,g,b,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(p=this.$request)||void 0===p?void 0:null===(m=p.emails)||void 0===m?void 0:m.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(g=v.routes)||void 0===g?void 0:g.length)>0,output:(null===(b=this.$request)||void 0===b?void 0:null===(w=b.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ps=fs,ms=(s("0f8a"),Object($["a"])(ps,r,o,!1,null,null,null)),vs=ms.exports,gs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},bs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Rs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Ds={name:"QueueJobTab",components:{PrettyPrint:be,SidebarSection:xs}},Ns=Ds,Es=(s("6b0a"),Object($["a"])(Ns,Rs,Ss,!1,null,null,null)),Is=Es.exports,Ms=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],Qs={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},As=Qs,Us=(s("9a64"),Object($["a"])(As,Ms,Ls,!1,null,null,null)),Js=Us.exports,Fs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Hs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:be,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Fs,Hs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:D,ParentRequest:A,QueueJobTab:Is,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,gs,bs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){var e=this.$requests.items;return this.$settings.global.hideCommandTypeRequests&&(e=e.filter((function(e){return"command"!=e.type}))),this.$settings.global.hideQueueJobTypeRequests&&(e=e.filter((function(e){return"queue-job"!=e.type}))),this.$settings.global.hideTestTypeRequests&&(e=e.filter((function(e){return"test"!=e.type}))),e},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){this.global.$request=e},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0},$request:{handler:function(e){var t,s;"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)}}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,pa=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),ma=pa.exports,va=s("d842"),ga=s("4eb5"),ba=s.n(ga),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ba.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Ra=s("c074"),Sa=s("b702");Oa["c"].add(Ra["r"],Ra["w"],Ra["o"],Ra["p"],Sa["a"],Ra["i"],Ra["d"],Ra["s"],Ra["z"],Ra["h"],Ra["e"],Ra["b"],Ra["a"],Ra["j"],Ra["v"],Ra["y"],Ra["A"],Ra["u"],Ra["k"],Ra["B"],Ra["c"],Ra["t"],Ra["m"],Ra["g"],Ra["f"],Ra["l"],Ra["q"],Ra["x"],Ra["n"]);var Da=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ia=s("c909"),Ma=s.n(Ia),La=function(){function e(t){Object(m["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e.bindings=t.optionalNonEmptyObject(e.bindings),e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Da["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.start=e.start||t.time,e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.duration=e.duration||t.time+t.responseDuration-e.start,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Da["a"])(t))}},{key:"processViews",value:function(e){var t=this;e=e instanceof Object?Object.values(e):[];e.forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"optionalNonEmptyObject",value:function(e,t){return e instanceof Object&&Object.keys(e).filter((function(e){return"__type__"!=e})).length?e:t}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ma.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Qa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout);var t=[this.settings.global.hideCommandTypeRequests?null:"command",this.settings.global.hideQueueJobTypeRequests?null:"queue-job",this.settings.global.hideTestTypeRequests?null:"test"].filter(Boolean);this.requests.withQuery({"type[]":t},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(p["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(p["a"])(browser))&&browser.devtools}}]),e}(),Aa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote(window.location.href,{path:Ma()(window.location.href.split("/").slice(0,-1).join("/")).path()+"/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(m["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(m["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Fa=function(){function e(){Object(m["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Ha=(s("6c7b"),s("f559"),function(){function e(t,s){Object(m["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),p=f[0],m=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),g=v.shift();u=i[p],u||(i[p]=u={name:m,file:c,line:g,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),p=f.shift(),m=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=m.callers[d];v||(m.callers[d]=v={name:u.name,line:p,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var g=u.subCalls[r];g||(u.subCalls[r]=g={name:c,line:p,calls:0,summed:new Array(f.length).fill(0)}),g.calls++,g.summed=g.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(m["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Ha.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s,a=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t=t||(null===(s=this.last((function(e){return!e.loading})))||void 0===s?void 0:s.id),t?this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return n&&a.merge(e),e})).catch((function(e){}))}),n):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){var t=this;e=e.filter((function(e){return!t.findId(e.id)})),e.length&&(this.items=this.items.concat(e),this.sort())}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ma.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ma()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Da["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(m["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Qa,hideQueueJobTypeRequests:this.platform instanceof Qa,hideTestTypeRequests:this.platform instanceof Qa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("round",this.round),$e["a"].filter("shortClass",this.shortClass)}},{key:"round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(parseFloat(e).toFixed(t))}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s] Date: Tue, 3 Mar 2020 15:27:47 +0100 Subject: [PATCH 69/75] Allow Headers to be sent early manually --- Clockwork/Support/Vanilla/Clockwork.php | 32 +++++++++++++++++-------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/Clockwork/Support/Vanilla/Clockwork.php b/Clockwork/Support/Vanilla/Clockwork.php index f1c92b22..253f501a 100644 --- a/Clockwork/Support/Vanilla/Clockwork.php +++ b/Clockwork/Support/Vanilla/Clockwork.php @@ -22,6 +22,8 @@ class Clockwork protected $psrRequest; protected $psrResponse; + protected $headersSet; + protected static $defaultInstance; public function __construct($config = []) @@ -37,6 +39,8 @@ public function __construct($config = []) if ($this->config['register_helpers']) include __DIR__ . '/helpers.php'; + $this->headersSet = false; + $this->clockwork->getTimeline()->startEvent('total', 'Total execution time.', 'start'); } @@ -50,6 +54,23 @@ public static function instance() return static::$defaultInstance; } + public function setHeaders() + { + if (!$this->headersSet) { + $this->headersSet = true; + $this->setHeader('X-Clockwork-Id', $this->getRequest()->id); + $this->setHeader('X-Clockwork-Version', BaseClockwork::VERSION); + + if ($this->config['api'] != '/__clockwork/') { + $this->setHeader('X-Clockwork-Path', $this->config['api']); + } + + foreach ($this->config['headers'] as $headerName => $headerValue) { + $this->setHeader("X-Clockwork-Header-{$headerName}", $headerValue); + } + } + } + public function requestProcessed() { if (! $this->config['enable'] && ! $this->config['collect_data_always']) return; @@ -60,16 +81,7 @@ public function requestProcessed() if (! $this->config['enable']) return; - $this->setHeader('X-Clockwork-Id', $this->getRequest()->id); - $this->setHeader('X-Clockwork-Version', BaseClockwork::VERSION); - - if ($this->config['api'] != '/__clockwork/') { - $this->setHeader('X-Clockwork-Path', $this->config['api']); - } - - foreach ($this->config['headers'] as $headerName => $headerValue) { - $this->setHeader("X-Clockwork-Header-{$headerName}", $headerValue); - } + $this->setHeaders(); if (($eventsCount = $this->config['server_timing']) !== false) { $this->setHeader('Server-Timing', ServerTiming::fromRequest($this->clockwork->getRequest(), $eventsCount)->value()); From b38484a0fa083946b78740f3f40663e9e3440f8c Mon Sep 17 00:00:00 2001 From: its Date: Wed, 4 Mar 2020 23:37:08 +0100 Subject: [PATCH 70/75] Tweaked the vanilla integration api for sending headers manually. --- Clockwork/Support/Vanilla/Clockwork.php | 41 ++++++++++++------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/Clockwork/Support/Vanilla/Clockwork.php b/Clockwork/Support/Vanilla/Clockwork.php index 253f501a..791d0ce8 100644 --- a/Clockwork/Support/Vanilla/Clockwork.php +++ b/Clockwork/Support/Vanilla/Clockwork.php @@ -22,7 +22,7 @@ class Clockwork protected $psrRequest; protected $psrResponse; - protected $headersSet; + protected $headersSent = false; protected static $defaultInstance; @@ -39,8 +39,6 @@ public function __construct($config = []) if ($this->config['register_helpers']) include __DIR__ . '/helpers.php'; - $this->headersSet = false; - $this->clockwork->getTimeline()->startEvent('total', 'Total execution time.', 'start'); } @@ -54,23 +52,6 @@ public static function instance() return static::$defaultInstance; } - public function setHeaders() - { - if (!$this->headersSet) { - $this->headersSet = true; - $this->setHeader('X-Clockwork-Id', $this->getRequest()->id); - $this->setHeader('X-Clockwork-Version', BaseClockwork::VERSION); - - if ($this->config['api'] != '/__clockwork/') { - $this->setHeader('X-Clockwork-Path', $this->config['api']); - } - - foreach ($this->config['headers'] as $headerName => $headerValue) { - $this->setHeader("X-Clockwork-Header-{$headerName}", $headerValue); - } - } - } - public function requestProcessed() { if (! $this->config['enable'] && ! $this->config['collect_data_always']) return; @@ -81,7 +62,7 @@ public function requestProcessed() if (! $this->config['enable']) return; - $this->setHeaders(); + $this->sendHeaders(); if (($eventsCount = $this->config['server_timing']) !== false) { $this->setHeader('Server-Timing', ServerTiming::fromRequest($this->clockwork->getRequest(), $eventsCount)->value()); @@ -112,6 +93,24 @@ public function queueJobExecuted($name, $description = null, $status = 'processe ->storeRequest(); } + public function sendHeaders() + { + if (! $this->config['enable'] || $this->headersSent) return; + + $this->headersSent = true; + + $this->setHeader('X-Clockwork-Id', $this->getRequest()->id); + $this->setHeader('X-Clockwork-Version', BaseClockwork::VERSION); + + if ($this->config['api'] != '/__clockwork/') { + $this->setHeader('X-Clockwork-Path', $this->config['api']); + } + + foreach ($this->config['headers'] as $headerName => $headerValue) { + $this->setHeader("X-Clockwork-Header-{$headerName}", $headerValue); + } + } + public function returnMetadata($request = null) { if (! $this->config['enable']) return; From 3a2b077b871135c09906eb7833a6accbfe47def4 Mon Sep 17 00:00:00 2001 From: Gregor Harlan Date: Sun, 22 Mar 2020 11:34:58 +0100 Subject: [PATCH 71/75] file permissions -x --- Clockwork/DataSource/EloquentDataSource.php | 0 Clockwork/Storage/Storage.php | 0 Clockwork/Storage/SymfonyStorage.php | 0 Clockwork/Support/Laravel/ClockworkServiceProvider.php | 0 Clockwork/Support/Lumen/ClockworkServiceProvider.php | 0 Clockwork/Support/Symfony/ClockworkBundle.php | 0 Clockwork/Support/Symfony/ClockworkConfiguration.php | 0 Clockwork/Support/Symfony/ClockworkController.php | 0 Clockwork/Support/Symfony/ClockworkExtension.php | 0 Clockwork/Support/Symfony/ClockworkListener.php | 0 10 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 Clockwork/DataSource/EloquentDataSource.php mode change 100755 => 100644 Clockwork/Storage/Storage.php mode change 100755 => 100644 Clockwork/Storage/SymfonyStorage.php mode change 100755 => 100644 Clockwork/Support/Laravel/ClockworkServiceProvider.php mode change 100755 => 100644 Clockwork/Support/Lumen/ClockworkServiceProvider.php mode change 100755 => 100644 Clockwork/Support/Symfony/ClockworkBundle.php mode change 100755 => 100644 Clockwork/Support/Symfony/ClockworkConfiguration.php mode change 100755 => 100644 Clockwork/Support/Symfony/ClockworkController.php mode change 100755 => 100644 Clockwork/Support/Symfony/ClockworkExtension.php mode change 100755 => 100644 Clockwork/Support/Symfony/ClockworkListener.php diff --git a/Clockwork/DataSource/EloquentDataSource.php b/Clockwork/DataSource/EloquentDataSource.php old mode 100755 new mode 100644 diff --git a/Clockwork/Storage/Storage.php b/Clockwork/Storage/Storage.php old mode 100755 new mode 100644 diff --git a/Clockwork/Storage/SymfonyStorage.php b/Clockwork/Storage/SymfonyStorage.php old mode 100755 new mode 100644 diff --git a/Clockwork/Support/Laravel/ClockworkServiceProvider.php b/Clockwork/Support/Laravel/ClockworkServiceProvider.php old mode 100755 new mode 100644 diff --git a/Clockwork/Support/Lumen/ClockworkServiceProvider.php b/Clockwork/Support/Lumen/ClockworkServiceProvider.php old mode 100755 new mode 100644 diff --git a/Clockwork/Support/Symfony/ClockworkBundle.php b/Clockwork/Support/Symfony/ClockworkBundle.php old mode 100755 new mode 100644 diff --git a/Clockwork/Support/Symfony/ClockworkConfiguration.php b/Clockwork/Support/Symfony/ClockworkConfiguration.php old mode 100755 new mode 100644 diff --git a/Clockwork/Support/Symfony/ClockworkController.php b/Clockwork/Support/Symfony/ClockworkController.php old mode 100755 new mode 100644 diff --git a/Clockwork/Support/Symfony/ClockworkExtension.php b/Clockwork/Support/Symfony/ClockworkExtension.php old mode 100755 new mode 100644 diff --git a/Clockwork/Support/Symfony/ClockworkListener.php b/Clockwork/Support/Symfony/ClockworkListener.php old mode 100755 new mode 100644 From 74004709cb10536eb1df1de8a6ff9deb99dbc569 Mon Sep 17 00:00:00 2001 From: its Date: Sun, 5 Apr 2020 00:51:59 +0200 Subject: [PATCH 72/75] Laravel - fixed handling of commands called from request or queue jobs contexts. --- Clockwork/Support/Laravel/ClockworkSupport.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Clockwork/Support/Laravel/ClockworkSupport.php b/Clockwork/Support/Laravel/ClockworkSupport.php index 858330e3..6c452920 100644 --- a/Clockwork/Support/Laravel/ClockworkSupport.php +++ b/Clockwork/Support/Laravel/ClockworkSupport.php @@ -123,6 +123,9 @@ public function getWebAsset($path) public function collectCommands() { $this->app['events']->listen(\Illuminate\Console\Events\CommandStarting::class, function ($event) { + // only collect commands ran through artisan cli, other commands are recorded as part of respective request + if (basename(StackTrace::get()->last()->file) != 'artisan') return; + if (! $this->getConfig('artisan.collect_output')) return; if (! $event->command || $this->isCommandFiltered($event->command)) return; @@ -132,6 +135,9 @@ public function collectCommands() }); $this->app['events']->listen(\Illuminate\Console\Events\CommandFinished::class, function ($event) { + // only collect commands ran through artisan cli, other commands are recorded as part of respective request + if (basename(StackTrace::get()->last()->file) != 'artisan') return; + if (! $event->command || $this->isCommandFiltered($event->command)) return; $command = $this->app->make(ConsoleKernel::class)->all()[$event->command]; From 96da4dde098a97552c0e853fb0be7d64ec4a23a4 Mon Sep 17 00:00:00 2001 From: its Date: Mon, 6 Apr 2020 00:57:58 +0200 Subject: [PATCH 73/75] Updated changelog. --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 169428d4..fb04d512 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,9 @@ - improved Request class now has pre-populated request time on creation - improved StackTrace helper with limit option, last method, fixed filter output keys - improved Lumen queue and redis feature detection +- improved vanilla integration to allow manually sending the headers early (implemented by tminich, thanks!) - fixed Symfony support, added support for latest Symfony 5.x and 4.x (reported by llaville, thanks!) +- removed dark theme for the web UI setting (now configurable in the Clockwork app itself) - updated to Clockwork App 4.1 *BREAKING* @@ -32,6 +34,12 @@ - DataSourceInterface::reset method was added, default empty implementation is provided in the base DataSource class - LaravelDataSource constructor arguments changed to reflect removing the views collecting support +4.0.17 + +- improved performance and memory usage when doing file storage cleanup (reported by ikkez, thanks!) +- fixed crash after running file storage cleanup +- fixed typo in clockwork:clean argument description + 4.0.16 - fixed Laravel middleware being registered too late, causing "collect data always" setting to not work (reported by Youniteus, thanks!) From 730a29b4df83e76bb5ba1936ad7d225301c27b68 Mon Sep 17 00:00:00 2001 From: its Date: Mon, 6 Apr 2020 17:30:01 +0200 Subject: [PATCH 74/75] Updated Clockwork App. --- Clockwork/Web/public/index.html | 2 +- Clockwork/Web/public/js/app.648811c2.js | 2 ++ Clockwork/Web/public/js/app.b349cf93.js | 2 -- ...ifest.7001230d47cfb6c10a9439330c17a5e2.js} | 24 +++++++++---------- Clockwork/Web/public/service-worker.js | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 Clockwork/Web/public/js/app.648811c2.js delete mode 100644 Clockwork/Web/public/js/app.b349cf93.js rename Clockwork/Web/public/{precache-manifest.b555cd53fd88126e4e124e491f3cf67c.js => precache-manifest.7001230d47cfb6c10a9439330c17a5e2.js} (86%) diff --git a/Clockwork/Web/public/index.html b/Clockwork/Web/public/index.html index d5c40aaa..31430617 100644 --- a/Clockwork/Web/public/index.html +++ b/Clockwork/Web/public/index.html @@ -1 +1 @@ -Clockwork
\ No newline at end of file +Clockwork
\ No newline at end of file diff --git a/Clockwork/Web/public/js/app.648811c2.js b/Clockwork/Web/public/js/app.648811c2.js new file mode 100644 index 00000000..07d3bd87 --- /dev/null +++ b/Clockwork/Web/public/js/app.648811c2.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var a,r,o=t[0],l=t[1],c=t[2],d=0,h=[];d'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(p["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(p["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),b=function e(t,s){Object(m["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){var e,t;return this.makeFullPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))},shortPath:function(){var e,t;return this.makeShortPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},S=O,R=(s("9b34"),Object($["a"])(S,u,d,!1,null,null,null)),D=R.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],M=(s("96cf"),s("3b8d")),L={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},I=L,Q=(s("1746"),Object($["a"])(I,N,E,!1,null,null,null)),A=Q.exports,U={name:"MessagesOverlay",components:{ExceptionSection:D,ParentRequest:A,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,H=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),B=H.exports,F=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,F,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])}))}}],null,!1,1651104168)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},pe=[],me={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new g(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=me,ge=Object($["a"])(ve,fe,pe,!1,null,null,null),be=ge.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:be},props:{columns:{},filter:{},filterExample:{},items:{},noHeader:{},perPage:{default:30}},data:function(){return{firstShown:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.firstShown>this.filteredItems.length&&(this.firstShown=Math.max(this.filteredItems.length-this.perPage,0)),this.filteredItems.slice(this.firstShown,this.firstShown+this.perPage)},hasPreviousItems:function(){return this.firstShown>0},previousItemsCount:function(){return this.firstShown},hasNextItems:function(){return this.firstShown+this.perPaget&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.firstShown=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(m["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(p["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("div",[e._v(e._s(t.query))]),t.bindings?s("div",{staticClass:"database-query-bindings"},[s("pretty-print",{attrs:{data:t.bindings}})],1):e._e()]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[t.duration?s("span",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])])}))}}],null,!1,2035122076)}):e._e()],1)},Oe=[],Se=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Re=Se,De=(s("c563"),Object($["a"])(Re,Pe,Oe,!1,null,null,null)),Ne=De.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Me=[],Le={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["active"],data:function(){return{filter:new Ce([{tag:"to"}])}}},Ie=Le,Qe=Object($["a"])(Ie,Ee,Me,!1,null,null,null),Ae=Qe.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],He={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},Be=He,Fe=Object($["a"])(Be,Ue,Je,!1,null,null,null),ze=Fe.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}],staticClass:"log-message-context"},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=(s("f16e"),Object($["a"])(Ge,Ve,We,!1,null,null,null)),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",props:["active"],computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),pt=s.n(ft),mt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:pt()(e.context,["performance","trace"])})}))}}},vt=mt,gt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),bt=gt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50","per-page":100},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,St=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),Rt=St.exports,Dt={name:"PerformanceTab",components:{PerformanceLog:bt,Profiler:Ct,Timeline:Rt},props:["active"],data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Dt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),Mt=Et.exports,Lt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},It=[],Qt={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},At=Qt,Ut=Object($["a"])(At,Lt,It,!1,null,null,null),Jt=Ut.exports,Ht=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Bt=[],Ft={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(M["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(!t.loadRequestTimeout){e.next=5;break}return e.abrupt("return");case 5:if(e.t0=this.$requests.findId(t.id),e.t0){e.next=10;break}return e.next=9,this.$requests.loadId(t.id,!1);case 9:e.t0=e.sent;case 10:if(a=e.t0,a){e.next=13;break}return e.abrupt("return",t.loadRequestTimeout=setTimeout((function(){t.loadRequestTimeout=null,n.loadQueueJobRequest(t,s+1)}),5e3));case 13:this.$set(this.jobRequests,t.id,a);case 14:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{active:function(e){var t=this;e&&this.$request.queueJobs.forEach((function(e){e.id&&t.loadQueueJobRequest(e)}))}}},zt=Ft,Vt=(s("05dd"),Object($["a"])(zt,Ht,Bt,!1,null,"e2548e86",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},props:["active"],data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:be},props:["active","userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:be,Timeline:Rt},props:["active"]},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:B,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Ae,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:Mt,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,p,m,v,g,b,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(p=this.$request)||void 0===p?void 0:null===(m=p.emails)||void 0===m?void 0:m.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(g=v.routes)||void 0===g?void 0:g.length)>0,output:(null===(b=this.$request)||void 0===b?void 0:null===(w=b.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ps=fs,ms=(s("0f8a"),Object($["a"])(ps,r,o,!1,null,null,null)),vs=ms.exports,gs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},bs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Ss=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Rs=[],Ds={name:"QueueJobTab",components:{PrettyPrint:be,SidebarSection:xs}},Ns=Ds,Es=(s("6b0a"),Object($["a"])(Ns,Ss,Rs,!1,null,null,null)),Ms=Es.exports,Ls=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Is=[],Qs={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},As=Qs,Us=(s("9a64"),Object($["a"])(As,Ls,Is,!1,null,null,null)),Js=Us.exports,Hs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Bs=[],Fs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:be,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Fs,Vs=(s("86a4"),Object($["a"])(zs,Hs,Bs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:D,ParentRequest:A,QueueJobTab:Ms,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,gs,bs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){var e=this.$requests.items;return this.$settings.global.hideCommandTypeRequests&&(e=e.filter((function(e){return"command"!=e.type}))),this.$settings.global.hideQueueJobTypeRequests&&(e=e.filter((function(e){return"queue-job"!=e.type}))),this.$settings.global.hideTestTypeRequests&&(e=e.filter((function(e){return"test"!=e.type}))),e},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){this.global.$request=e},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0},$request:{handler:function(e){var t,s;"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)}}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,pa=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),ma=pa.exports,va=s("d842"),ga=s("4eb5"),ba=s.n(ga),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ba.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Sa=s("c074"),Ra=s("b702");Oa["c"].add(Sa["r"],Sa["w"],Sa["o"],Sa["p"],Ra["a"],Sa["i"],Sa["d"],Sa["s"],Sa["z"],Sa["h"],Sa["e"],Sa["b"],Sa["a"],Sa["j"],Sa["v"],Sa["y"],Sa["A"],Sa["u"],Sa["k"],Sa["B"],Sa["c"],Sa["t"],Sa["m"],Sa["g"],Sa["f"],Sa["l"],Sa["q"],Sa["x"],Sa["n"]);var Da=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ma=s("c909"),La=s.n(Ma),Ia=function(){function e(t){Object(m["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e.bindings=t.optionalNonEmptyObject(e.bindings),e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Da["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.start=e.start||t.time,e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.duration=e.duration||t.time+t.responseDuration-e.start,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Da["a"])(t))}},{key:"processViews",value:function(e){var t=this;e=e instanceof Object?Object.values(e):[];e.forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"optionalNonEmptyObject",value:function(e,t){return e instanceof Object&&Object.keys(e).filter((function(e){return"__type__"!=e})).length?e:t}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new La.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Qa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=Ia.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,Ia.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,Ia.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout);var t=[this.settings.global.hideCommandTypeRequests?null:"command",this.settings.global.hideQueueJobTypeRequests?null:"queue-job",this.settings.global.hideTestTypeRequests?null:"test"].filter(Boolean);this.requests.withQuery({"type[]":t},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(p["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(p["a"])(browser))&&browser.devtools}}]),e}(),Aa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote(window.location.href,{path:La()(window.location.href.split("/").slice(0,-1).join("/")).path()+"/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(m["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(m["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Ha=function(){function e(){Object(m["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Ba=(s("6c7b"),s("f559"),function(){function e(t,s){Object(m["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),p=f[0],m=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),g=v.shift();u=i[p],u||(i[p]=u={name:m,file:c,line:g,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),p=f.shift(),m=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=m.callers[d];v||(m.callers[d]=v={name:u.name,line:p,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var g=u.subCalls[r];g||(u.subCalls[r]=g={name:c,line:p,calls:0,summed:new Array(f.length).fill(0)}),g.calls++,g.summed=g.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Fa=function(){function e(t,s){var a=this;Object(m["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Ba.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||Ia.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s,a=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t=t||(null===(s=this.last((function(e){return!e.loading})))||void 0===s?void 0:s.id),t?this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return n&&a.merge(e),e})).catch((function(e){}))}),n):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){var t=this;e=e.filter((function(e){return!t.findId(e.id)})),e.length&&(this.items=this.items.concat(e),this.sort())}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new La.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=La()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new Ia(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Da["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(m["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Qa,hideQueueJobTypeRequests:this.platform instanceof Qa,hideTestTypeRequests:this.platform instanceof Qa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("round",this.round),$e["a"].filter("shortClass",this.shortClass)}},{key:"round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(parseFloat(e).toFixed(t))}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s]'}),this.createElement("span",{text:"".concat(n," ")})]),this.generateHtmlPreview(this.data),this.generateHtmlNode(this.data)])])}},{key:"generateHtmlNode",value:function(e){var t=this;return this.createElement("ul",{style:{display:"none"}},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("li",{data:{key:s}},[t.createElement("span",{click:"object"==o?function(e){return t.objectNodeClickedCallback(e)}:void 0},[t.createElement("span",{class:"pretty-jason-icon",html:"object"==o?'':void 0}),t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])])})))}},{key:"generateHtmlPreview",value:function(e){var t=this;return this.createElement("span",{class:"pretty-jason-preview"},Object.keys(e).filter((function(e){return!["__class__","__type__","__hash__"].includes(e)})).slice(0,3).map((function(s){var n=t.resolveValueAndType(e[s]),i=Object(a["a"])(n,2),r=i[0],o=i[1];return t.createElement("span",{class:"pretty-jason-preview-item"},[t.createElement("span",{class:"pretty-jason-key",text:"".concat(s,": ")}),t.createElement("span",{class:"pretty-jason-value-".concat(o),text:r})])})).concat(Object.keys(e).length>3?[this.createElement("span",{class:"pretty-jason-preview-item",text:"..."})]:[]))}},{key:"resolveValueAndType",value:function(e){return null===e?["null","null"]:void 0===e?["undefined","undefined"]:"boolean"==typeof e?[e?"true":"false","boolean"]:"string"==typeof e?['"'.concat(e,'"'),"string"]:"object"==Object(p["a"])(e)?"array"==e.__type__?["Array(".concat(Object.values(e).length-1,")"),"object"]:e.__type__&&"object"!=e.__type__?[e.__type__,e.__type__.replace(" ","-")]:[e.__class__||"Object","object"]:[e.toString(),Object(p["a"])(e)]}},{key:"objectNodeClickedCallback",value:function(e){var t=e.currentTarget;this.isNodeExpanded(t)?this.collapseNode(t,e.ctrlKey||e.metaKey):this.expandNode(t,e.ctrlKey||e.metaKey)}},{key:"isNodeExpanded",value:function(e){var t=e.parentNode.querySelector("ul");return t&&"none"!=t.style.display}},{key:"expandNode",value:function(e,t){var s=this;this.renderObjectNode(e);var a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="block",n.classList.add("pretty-jason-icon-open"),t&&a.querySelectorAll(".pretty-jason-icon-closed").forEach((function(e){s.expandNode(e.parentNode.parentNode,t)}))}},{key:"collapseNode",value:function(e,t){var s=this,a=e.parentNode.querySelector("ul"),n=e.querySelector("i");n.classList.remove("pretty-jason-icon-closed","pretty-jason-icon-open"),a.style.display="none",n.classList.add("pretty-jason-icon-closed"),t&&a.querySelectorAll(".pretty-jason-icon-open").forEach((function(e){s.collapseNode(e.parentNode.parentNode,t)}))}},{key:"renderObjectNode",value:function(e){if(!e.dataset.rendered){var t=[],s=e;while(s=s.parentNode)if("LI"==s.tagName&&s.dataset.key){if(s.classList.contains("pretty-jason"))break;var a=s.dataset.key;t.unshift(isNaN(parseInt(a,10))?a:parseInt(a,10))}e.parentNode.append(this.generateHtmlNode(this.getDataFromPath(t))),e.dataset.rendered=!0}}},{key:"getDataFromPath",value:function(e){var t,s=this.data;while(void 0!==(t=e.shift()))s=s[t];return s}},{key:"createElement",value:function(e,t,s){var a=document.createElement(e);return t.html&&(a.innerHTML=t.html),t.text&&(a.innerText=t.text),t.class&&a.classList.add(t.class),t.style instanceof Object&&Object.keys(t.style).forEach((function(e){return a.style[e]=t.style[e]})),t.data instanceof Object&&Object.keys(t.data).forEach((function(e){return a.dataset[e]=t.data[e]})),t.click&&a.addEventListener("click",t.click),s instanceof Array&&s.forEach((function(e){return a.append(e)})),a}}]),e}(),b=function e(t,s){Object(m["a"])(this,e),this.message=t,this.exception=s},w=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{on:{click:function(t){return e.expand(t)}}},[e.expanded?[e._v("\n\t\t"+e._s(e.full)+"\n\t")]:[e._t("default")]],2)},y=[],_={name:"ShortenedText",props:["full"],data:function(){return{expanded:!1}},methods:{expand:function(e){this.expanded||(e.stopPropagation(),e.preventDefault()),this.expanded=!0}}},q=_,$=s("2877"),C=Object($["a"])(q,w,y,!1,null,null,null),k=C.exports,x={name:"StackTrace",components:{ShortenedText:k},props:["trace","file","line"],data:function(){return{showPopover:!1}},computed:{fullPath:function(){var e,t;return this.makeFullPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))},shortPath:function(){var e,t;return this.makeShortPath(this.file||(null===(e=this.trace[0])||void 0===e?void 0:e.file),this.line||(null===(t=this.trace[0])||void 0===t?void 0:t.line))}},methods:{closePopover:function(){this.showPopover=!1},togglePopover:function(e){this.trace&&(e.preventDefault(),this.showPopover=!this.showPopover,this.$el.offsetParent.clientWidth-this.$el.offsetLeft<300&&this.$refs.popover.classList.add("right-aligned"))},makeFullPath:function(e,t){return"".concat(e,":").concat(t)},makeShortPath:function(e,t){return this.makeFullPath(e,t).split(/[\/\\]/).pop()}}},j=x,T=Object($["a"])(j,h,f,!1,null,null,null),P=T.exports,O={name:"ExceptionSection",components:{StackTrace:P},props:["compact"],methods:{showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0}}},R=O,S=(s("9b34"),Object($["a"])(R,u,d,!1,null,null,null)),D=S.exports,N=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.parentRequest?s("div",{staticClass:"parent-request",class:{compact:e.compact}},[s("div",[s("div",{staticClass:"parent-title"},[e._v("\n\t\t\tSubrequest of\n\t\t")]),e.parentRequest.isCommand()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v(" "+e._s(e.parentRequest.commandName)+"\n\t\t")]):e.parentRequest.isQueueJob()?s("div",{staticClass:"parent-name"},[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v(" "+e._s(e.parentRequest.jobName)+"\n\t\t")]):s("div",{staticClass:"parent-name"},[s("span",{staticClass:"parent-method"},[e._v(e._s(e.parentRequest.method))]),s("span",{staticClass:"parent-uri"},[e._v(e._s(e.parentRequest.uri))])])]),s("div",{staticClass:"parent-close"},[s("a",{attrs:{href:"#"},on:{click:function(t){return e.showRequestById(e.parentRequest.id)}}},[e._v("Show")])])]):e._e()},E=[],I=(s("96cf"),s("3b8d")),M={name:"ParentRequest",props:["compact"],data:function(){return{parentRequest:null}},methods:{showRequestById:function(e){this.global.$request=this.$requests.findId(e)}},watch:{$request:{handler:function(){var e=Object(I["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.parentRequest=null,this.$request&&this.$request.parent&&this.$request.parent.id){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=this.$requests.findId(this.$request.parent.id),e.t0){e.next=8;break}return e.next=7,this.$requests.loadId(this.$request.parent.id);case 7:e.t0=e.sent;case 8:this.parentRequest=e.t0;case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),immediate:!0}}},L=M,Q=(s("1746"),Object($["a"])(L,N,E,!1,null,null,null)),A=Q.exports,U={name:"MessagesOverlay",components:{ExceptionSection:D,ParentRequest:A,StackTrace:P},data:function(){return{updateNotification:!1}},methods:{closeUpdateNotification:function(){this.$updateNotification.ignoreUpdate(this.$requests.remoteUrl),this.updateNotification=!1},showPreviousException:function(e){this.$request.exceptions.push(e.previous),e.previous=void 0},showRequestById:function(e){this.global.$request=this.$requests.find(e)}},watch:{"$requests.remoteUrl":{handler:function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)},immediate:!0},"$updateNotification.serverVersion":function(){this.updateNotification=this.$updateNotification.show(this.$requests.remoteUrl)}}},J=U,F=(s("9cad"),Object($["a"])(J,l,c,!1,null,null,null)),H=F.exports,B=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("transition",{attrs:{name:"settings"}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$settings.shown,expression:"$settings.shown"}],staticClass:"settings-modal"},[s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Appearance")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"appearance-controls"},[s("div",{staticClass:"option",class:{selected:"auto"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("auto")}}},[s("img",{attrs:{src:"img/appearance-auto-icon.png"}}),e._v("\n\t\t\t\t\t\tAuto\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"light"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("light")}}},[s("img",{attrs:{src:"img/appearance-light-icon.png"}}),e._v("\n\t\t\t\t\t\tLight\n\t\t\t\t\t")]),s("div",{staticClass:"option",class:{selected:"dark"==e.$settings.global.appearance},on:{click:function(t){return e.setAppearance("dark")}}},[s("img",{attrs:{src:"img/appearance-dark-icon.png"}}),e._v("\n\t\t\t\t\t\tDark\n\t\t\t\t\t")])])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-editor"}},[e._v("Code editor")]),s("div",{staticClass:"controls"},[s("select",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.editor,expression:"$settings.global.editor"}],attrs:{id:"settings-editor"},on:{change:[function(t){var s=Array.prototype.filter.call(t.target.options,(function(e){return e.selected})).map((function(e){var t="_value"in e?e._value:e.value;return t}));e.$set(e.$settings.global,"editor",t.target.multiple?s:s[0])},e.save]}},[s("option",{attrs:{value:"atom"}},[e._v("Atom")]),s("option",{attrs:{value:"phpstorm"}},[e._v("PhpStorm")]),s("option",{attrs:{value:"sublime"}},[e._v("Sublime Text")]),s("option",{attrs:{value:"textmate"}},[e._v("Textmate")]),s("option",{attrs:{value:"vs-code"}},[e._v("Visual Studio Code")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:"atom"==e.$settings.global.editor,expression:"$settings.global.editor == 'atom'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://atom.io/packages/open",target:"_blank"}},[e._v("Atom Open")]),e._v(" package.\n\t\t\t\t")]),s("div",{directives:[{name:"show",rawName:"v-show",value:"sublime"==e.$settings.global.editor,expression:"$settings.global.editor == 'sublime'"}],staticClass:"help-text"},[e._v("\n\t\t\t\t\tRequires "),s("a",{attrs:{href:"https://github.com/asuth/subl-handler",target:"_blank"}},[e._v("subl-handler")]),e._v(".\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label",{attrs:{for:"settings-local-path-map"}},[e._v("Code path")]),s("div",{staticClass:"controls"},[s("div",{staticClass:"controls-input-vgroup"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.real,expression:"$settings.site.localPathMap.real"}],attrs:{type:"text",name:"settings-local-path-map-real",placeholder:"/real/path"},domProps:{value:e.$settings.site.localPathMap.real},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"real",t.target.value)}}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.site.localPathMap.local,expression:"$settings.site.localPathMap.local"}],attrs:{type:"text",name:"settings-local-path-map-local",placeholder:"/local/path"},domProps:{value:e.$settings.site.localPathMap.local},on:{change:e.save,input:function(t){t.target.composing||e.$set(e.$settings.site.localPathMap,"local",t.target.value)}}})]),s("div",{staticClass:"help-text"},[e._v("\n\t\t\t\t\tMap a remote path to a local path when developing on a remote server or a virtual machine.\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.showIncomingRequests,expression:"$settings.global.showIncomingRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.showIncomingRequests)?e._i(e.$settings.global.showIncomingRequests,null)>-1:e.$settings.global.showIncomingRequests},on:{change:[function(t){var s=e.$settings.global.showIncomingRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"showIncomingRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"showIncomingRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"showIncomingRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tAutomatically show incoming requests\n\t\t\t\t")])])]),s("div",{staticClass:"controls-group"},[s("label"),s("div",{staticClass:"controls"},[s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideCommandTypeRequests,expression:"$settings.global.hideCommandTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideCommandTypeRequests)?e._i(e.$settings.global.hideCommandTypeRequests,null)>-1:e.$settings.global.hideCommandTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideCommandTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideCommandTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideCommandTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide commands in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideQueueJobTypeRequests,expression:"$settings.global.hideQueueJobTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideQueueJobTypeRequests)?e._i(e.$settings.global.hideQueueJobTypeRequests,null)>-1:e.$settings.global.hideQueueJobTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideQueueJobTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideQueueJobTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideQueueJobTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide queue jobs in requests list\n\t\t\t\t")]),s("label",{staticClass:"controls-checkbox"},[s("input",{directives:[{name:"model",rawName:"v-model",value:e.$settings.global.hideTestTypeRequests,expression:"$settings.global.hideTestTypeRequests"}],attrs:{type:"checkbox"},domProps:{checked:Array.isArray(e.$settings.global.hideTestTypeRequests)?e._i(e.$settings.global.hideTestTypeRequests,null)>-1:e.$settings.global.hideTestTypeRequests},on:{change:[function(t){var s=e.$settings.global.hideTestTypeRequests,a=t.target,n=!!a.checked;if(Array.isArray(s)){var i=null,r=e._i(s,i);a.checked?r<0&&e.$set(e.$settings.global,"hideTestTypeRequests",s.concat([i])):r>-1&&e.$set(e.$settings.global,"hideTestTypeRequests",s.slice(0,r).concat(s.slice(r+1)))}else e.$set(e.$settings.global,"hideTestTypeRequests",n)},e.save]}}),e._v("\n\t\t\t\t\tHide tests in requests list\n\t\t\t\t")])])])])])},z=[],V={name:"SettingsModal",data:function(){return{}},methods:{setAppearance:function(e){this.$settings.global.appearance=e,this.save()},save:function(){this.$settings.save()}}},W=V,K=(s("28e9"),Object($["a"])(W,B,z,!1,null,null,null)),G=K.exports,X=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"details-header-tab",class:{active:e.active},attrs:{href:"#"},on:{click:e.selectTab}},[e._t("default")],2)},Y=[],Z=(s("7f7f"),{name:"TabHandle",props:["name","active"],methods:{selectTab:function(){this.$emit("tab-selected",this.name)}}}),ee=Z,te=Object($["a"])(ee,X,Y,!1,null,null,null),se=te.exports,ae=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.$request.cacheQueries.length,expression:"$request.cacheQueries.length"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheQueries.length))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheReads,expression:"$request.cacheReads !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheReads))]),s("div",{staticClass:"counter-title"},[e._v("reads")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheHits,expression:"$request.cacheHits !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheHits))]),s("div",{staticClass:"counter-title"},[e._v("hits")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheMisses,expression:"$request.cacheMisses !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheMisses))]),s("div",{staticClass:"counter-title"},[e._v("misses")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheWrites,expression:"$request.cacheWrites !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheWrites))]),s("div",{staticClass:"counter-title"},[e._v("writes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheDeletes,expression:"$request.cacheDeletes !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]),s("div",{directives:[{name:"show",rawName:"v-show",value:null!==e.$request.cacheTime,expression:"$request.cacheTime !== null"}],staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.cacheTime))]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.cacheQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.cacheQueries,filter:e.filter,"filter-example":"info@underground.works action:miss key:lastRequest file:Controller.php"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",{staticClass:"cache-query-type"},[e._v(e._s(t.type))]),s("td",[e._v(e._s(t.key))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.value}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[t.expiration?s("span",[e._v(e._s(t.expiration))]):e._e()]),e.columns.includes("Duration")?s("td",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])}))}}],null,!1,1651104168)}):e._e()],1)},ne=[],ie=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("table",{staticClass:"details-table"},[s("thead",[e.noHeader?e._e():s("tr",[e._t("header",e._l(e.columns,(function(t,a){return s("th",{on:{click:function(s){e.filter.sortBy(t.sortBy||t.toLowerCase())}}},[e._v("\n\t\t\t\t\t"+e._s(t.name||t)+"\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy==(t.sortBy||t.toLowerCase()),expression:"filter.sortedBy == (column.sortBy || column.toLowerCase())"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),a==e.columns.length-1?s("details-table-filter-toggle",{attrs:{filter:e.filter}}):e._e()],1)})),{filter:e.filter})],2),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:e.columns.length}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],ref:"filterInput",attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v("eg. "+e._s(e.filterExample))])],1)])])]),s("tbody",[e.hasPreviousItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showPreviousItems}},[e._v("Show "+e._s(e.previousItemsCount)+" previous")])])]):e._e(),e._t("body",null,{items:e.shownItems}),e.hasNextItems?s("tr",{staticClass:"pagination-controls"},[s("td",{attrs:{colspan:e.columns.length}},[s("a",{attrs:{href:"#"},on:{click:e.showNextItems}},[e._v("Show "+e._s(e.nextItemsCount)+" more")])])]):e._e()],2)])},re=[],oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.stopPropagation(),e.filter.toggle(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)},le=[],ce={name:"DetailsTableFilterToggle",props:["filter"]},ue=ce,de=Object($["a"])(ue,oe,le,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div")},pe=[],me={name:"PrettyPrint",props:["data","expanded"],methods:{render:function(){var e=this.data,t=document.createElement("div");if(!0===e)t.innerHTML="true";else if(!1===e)t.innerHTML="false";else if(void 0===e)t.innerHTML="undefined";else if(null===e)t.innerHTML="null";else if("number"===typeof e)t.innerText=e;else try{t.append(new g(e).generateHtml())}catch(s){t.innerText=e}this.$el.firstChild&&this.$el.firstChild.remove(),this.$el.append(t),this.expanded&&this.$el.querySelector(".pretty-jason > li > span").click()}},mounted:function(){this.render()},watch:{data:function(){this.render()}}},ve=me,ge=Object($["a"])(ve,fe,pe,!1,null,null,null),be=ge.exports,we={name:"DetailsTable",components:{DetailsTableFilterToggle:he,PrettyPrint:be},props:["columns","filter","filterExample","items","noHeader"],data:function(){return{showItemsCount:30,showItemsFirst:0}},computed:{filteredItems:function(){return this.filter.filter(this.items)},shownItems:function(){return this.showItemsFirst>this.filteredItems.length&&(this.showItemsFirst=Math.max(this.filteredItems.length-this.showItemsCount,0)),this.filteredItems.slice(this.showItemsFirst,this.showItemsFirst+this.showItemsCount)},hasPreviousItems:function(){return this.showItemsFirst>0},previousItemsCount:function(){return this.showItemsFirst},hasNextItems:function(){return this.showItemsFirst+this.showItemsCountt&&(e.scrollTop=t)}},watch:{filteredItems:function(){this.showItemsFirst=0}}},ye=we,_e=(s("2958"),Object($["a"])(ye,ie,re,!1,null,null,null)),qe=_e.exports,$e=(s("4917"),s("55dd"),s("2b0e")),Ce=function(){function e(t,s){Object(m["a"])(this,e),this.tags=t,this.map=s,this.shown=!1,this.sortedBy=void 0,this.sortedDesc=!1,this.input=""}return Object(v["a"])(e,[{key:"toggle",value:function(e){this.shown=!this.shown,this.shown&&$e["a"].nextTick((function(){var t=e.target;while(t=t.parentNode)if("TABLE"==t.tagName)break;t.querySelector(".filter input").focus()}))}},{key:"sortBy",value:function(e){this.sortedBy==e?this.sortedDesc=!this.sortedDesc:(this.sortedBy=e,this.sortedDesc=!0)}},{key:"filter",value:function(e){var t=this,s=this.tokenize(this.input),a=s.terms,n=s.tags;if(e=e.filter((function(e){var s=t.map?t.map(e):e;return t.matchesTerms(s,a)&&t.matchesTags(e,n)})),this.sortedBy){var i=this.tags.find((function(e){return e.tag==t.sortedBy}));e.sort((function(e,s){var a,n;return i&&"number"==i.type?e[t.sortedBy]-s[t.sortedBy]:null===(a=e[t.sortedBy])||void 0===a?void 0:a.toString().localeCompare(null===(n=s[t.sortedBy])||void 0===n?void 0:n.toString())}))}return this.sortedDesc&&(e=e.reverse()),e}},{key:"matchesTerms",value:function(e,t){var s=this;return!t.length||("object"==Object(p["a"])(e)&&null!==e?Object.values(e).find((function(e){return s.matchesTerms(e,t)})):"string"==typeof e&&t.find((function(t){return e.toLowerCase().includes(t.toLowerCase())})))}},{key:"matchesTags",value:function(e,t){var s=this;return!Object.keys(t).length||Object.keys(t).every((function(a){return a=s.tags.find((function(e){return e.tag==a})),!!a&&("number"==a.type||"date"==a.type?t[a.tag].every((function(t){return s.isTagApplicable(a,e,t)})):t[a.tag].find((function(t){return s.isTagApplicable(a,e,t)})))}))}},{key:"isTagApplicable",value:function(e,t,s){return e.apply?e.apply(t,s):(t=e.map?e.map(t):t[e.tag],"number"==e.type?(a=s.match(/^<(\d+(?:\.\d+)?)$/))?t(\d+(?:\.\d+)?)$/))?parseFloat(a[1])(.+)$/))?moment(t).isAfter(n[1].match(/^\d+:\d+(:\d+)?$/)?moment().format("YYYY-MM-DD ")+n[1]:n[1]):moment(t).isSame(s):"string"==typeof t&&t.toLowerCase().includes(s.toLowerCase()));var a,n}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),ke={name:"CacheTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"action",apply:function(e,t){if(["read","write","delete","miss"].includes(t.toLowerCase()))return e.type.toLowerCase()==t.toLowerCase()}},{tag:"key"},{tag:"file",map:function(e){return e.shortPath}}])}},computed:{columns:function(){var e=[{name:"Action",sortBy:"type"},"Key","Value","Expires"];return this.$request.cacheQueries.some((function(e){return e.connection}))&&e.unshift("Connection"),this.$request.cacheQueries.some((function(e){return e.duration}))&&e.push("Duration"),e}}},xe=ke,je=Object($["a"])(xe,ae,ne,!1,null,null,null),Te=je.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseQueriesCount))]),s("div",{staticClass:"counter-title"},[e._v("queries")])]),e.$request.databaseSlowQueries?s("div",{staticClass:"counter database-slow-query"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("div",{staticClass:"counter-title"},[e._v("slow")])]):e._e(),e.$request.databaseSelects?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseSelects))]),s("div",{staticClass:"counter-title"},[e._v("selects")])]):e._e(),e.$request.databaseInserts?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseInserts))]),s("div",{staticClass:"counter-title"},[e._v("inserts")])]):e._e(),e.$request.databaseUpdates?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseUpdates))]),s("div",{staticClass:"counter-title"},[e._v("updates")])]):e._e(),e.$request.databaseDeletes?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDeletes))]),s("div",{staticClass:"counter-title"},[e._v("deletes")])]):e._e(),e.$request.databaseOthers?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseOthers))]),s("div",{staticClass:"counter-title"},[e._v("other")])]):e._e(),s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.databaseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("time")])])]),e.$request.databaseQueries.length?s("details-table",{attrs:{columns:e.columns,items:e.$request.databaseQueries,filter:e.filter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("div",[e._v(e._s(t.query))]),t.bindings?s("div",{staticClass:"database-query-bindings"},[s("pretty-print",{attrs:{data:t.bindings}})],1):e._e()]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[t.duration?s("span",[e._v(e._s(e._f("round")(t.duration,3))+" ms")]):e._e()])])}))}}],null,!1,2035122076)}):e._e()],1)},Oe=[],Re=(s("5df3"),s("4f7f"),s("3b2b"),{name:"DatabaseTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Model","Query","Duration"],t=new Set(this.$request.databaseQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e}}}),Se=Re,De=(s("c563"),Object($["a"])(Se,Pe,Oe,!1,null,null,null)),Ne=De.exports,Ee=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["To","Subject","Headers"],items:e.$request.emails,filter:e.filter,"filter-example":'"User Registration" to:its@underground.works'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.to))]),s("td",[e._v(e._s(t.subject))]),s("td",{attrs:{colspan:"2"}},[s("pretty-print",{attrs:{data:t.headers}})],1)])}))}}])})],1)},Ie=[],Me={name:"EmailsTab",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["active"],data:function(){return{filter:new Ce([{tag:"to"}])}}},Le=Me,Qe=Object($["a"])(Le,Ee,Ie,!1,null,null,null),Ae=Qe.exports,Ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Event",""],items:e.$request.events,filter:e.filter,"filter-example":'"user registered" file:Controller.php time:<13:08:30'},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",[s("div",{staticClass:"fired-event"},[s("div",{staticClass:"fired-event-content"},[t.objectEvent?s("div",[s("pretty-print",{attrs:{data:t.data}})],1):e._e(),t.objectEvent?e._e():s("div",[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.event)+"\n\t\t\t\t\t\t\t")])]),s("stack-trace",{staticClass:"fired-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1),s("div",{directives:[{name:"show",rawName:"v-show",value:e.isEventExpanded(t),expression:"isEventExpanded(event)"}],staticClass:"fired-event-details"},[t.objectEvent?e._e():s("div",{staticClass:"fired-event-parameters"},[s("h4",[e._v("Parameters")]),s("pretty-print",{attrs:{data:t.data}})],1),s("div",{staticClass:"fired-event-listeners"},[s("h4",[e._v("Listeners")]),e._l(t.listeners,(function(t,a){return s("shortened-text",{key:e.$request.id+"-"+a,attrs:{full:t.name}},[e._v("\n\t\t\t\t\t\t\t\t"+e._s(t.shortName)+"\n\t\t\t\t\t\t\t")])}))],2)])]),s("td",{staticClass:"fired-event-actions"},[s("font-awesome-icon",{attrs:{icon:e.isEventExpanded(t)?"angle-up":"angle-down"},on:{click:function(s){return e.toggleEvent(t)}}})],1)])}))}}])})],1)},Je=[],Fe={name:"EventsTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}]),expandedEvents:[]}},methods:{toggleEvent:function(e){this.isEventExpanded(e)?this.expandedEvents=this.expandedEvents.filter((function(t){return t!=e})):this.expandedEvents.push(e)},isEventExpanded:function(e){return-1!==this.expandedEvents.indexOf(e)}}},He=Fe,Be=Object($["a"])(He,Ue,Je,!1,null,null,null),ze=Be.exports,Ve=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:["Time","Level","Message"],items:e.log,filter:e.filter,"filter-example":"query failed level:error file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"log-row":!0,error:["emergency","alert","critical","error"].includes(t.level),warning:"warning"==t.level}},[s("td",{staticClass:"log-date"},[e._v(e._s(e._f("moment")(t.time,"HH:mm:ss")))]),s("td",{staticClass:"log-level"},[e._v(e._s(t.level))]),s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context,expression:"message.context"}],staticClass:"log-message-context"},[s("pretty-print",{attrs:{data:t.context}})],1)],1),t.exception?s("div",{staticClass:"log-message-exception"},[t.exception.previous?s("a",{staticClass:"exception-previous",attrs:{href:"#"},on:{click:function(s){return s.preventDefault(),e.showPreviousException(t)}}},[e._v("Show previous")]):e._e(),s("span",{staticClass:"exception-type"},[e._v(e._s(t.exception.type))]),t.exception.code?s("span",{staticClass:"exception-code"},[e._v("#"+e._s(t.exception.code))]):e._e()]):e._e(),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}])})],1)},We=[],Ke={name:"LogTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"time",type:"date"},{tag:"level"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{log:function(){return this.$request.log.filter((function(e){var t;return!(null===(t=e.context)||void 0===t?void 0:t.performance)}))}},methods:{showPreviousException:function(e){var t=this.$request.log.indexOf(e);this.$request.log.splice(t+1,0,{message:e.exception.previous.message,exception:e.exception.previous,level:"error",shortPath:"".concat(e.exception.previous.file.split(/[\/\\]/).pop(),":").concat(e.exception.previous.line),trace:e.exception.previous.trace}),e.exception.previous=void 0}}},Ge=Ke,Xe=(s("f16e"),Object($["a"])(Ge,Ve,We,!1,null,null,null)),Ye=Xe.exports,Ze=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"command-output",domProps:{innerHTML:e._s(e.formattedOutput)}})])},et=[],tt=s("61ab"),st=s.n(tt),at={name:"OutputTab",props:["active"],computed:{formattedOutput:function(){return this.ansiToHtml.toHtml(this.$request.commandOutput||"")}},created:function(){this.ansiToHtml=new st.a({fg:"#c7c7c7",bg:"#000000",escapeXML:!0,colors:{0:"#000000",1:"#c91b00",2:"#00c200",3:"#c7c400",4:"#0225c7",5:"#c930c7",6:"#00c5c7",7:"#c7c7c7",8:"#676767",9:"#ff6d67",10:"#5ff967",11:"#fefb67",12:"#6871ff",13:"#ff76ff",14:"#5ffdff",15:"#feffff"}})}},nt=at,it=(s("288a"),Object($["a"])(nt,Ze,et,!1,null,null,null)),rt=it.exports,ot=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("div",{staticClass:"counters-row"},[s("div",{staticClass:"performance-chart-container"},[s("div",{staticClass:"performance-chart"},[s("pie-chart",{attrs:{donut:!0,data:e.chartValues,colors:e.chartColors,library:e.chartOptions,height:"60px"}})],1)]),e._l(e.$request.performanceMetrics,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter performance-chart-legend",class:t.style},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value)+" ms")]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.name))])])})),e.$request.responseDurationRounded?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.responseDurationRounded)+" ms")]),s("div",{staticClass:"counter-title"},[e._v("total")])]):e._e(),e.$request.memoryUsage?s("div",{staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(e.$request.memoryUsageFormatted))]),s("div",{staticClass:"counter-title"},[e._v("memory")])]):e._e()],2),s("performance-log"),s("div",{attrs:{tabs:"performance"}},[s("div",{staticClass:"performance-tabs"},[s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("timeline")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("timeline")}}},[e._v("Timeline")]),s("a",{staticClass:"performance-tab",class:{active:e.isTabActive("profiler")},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.showTab("profiler")}}},[e._v("Profiler")])]),s("timeline",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("timeline"),expression:"isTabActive('timeline')"}],attrs:{name:"performance",items:e.$request.timeline,tags:e.timelineTags}}),s("profiler",{directives:[{name:"show",rawName:"v-show",value:e.isTabActive("profiler"),expression:"isTabActive('profiler')"}]})],1)],1)},lt=[],ct=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.performanceLog.length||e.databaseSlowQueries.length?s("div",{staticClass:"performance-log"},[e.performanceLog.length?s("details-table",{attrs:{columns:["Message"],items:e.performanceLog,filter:e.performanceLogFilter,"filter-example":"query failed file:Controller.php time:>13:08:29"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tPerformance warnings "),s("span",{staticClass:"count"},[e._v(e._s(e.performanceLog.length))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,staticClass:"log-row"},[s("td",[s("div",{staticClass:"log-message"},[s("div",{staticClass:"log-message-content"},[s("pretty-print",{attrs:{data:t.message}}),s("div",{directives:[{name:"show",rawName:"v-show",value:t.context&&t.context.length,expression:"message.context && message.context.length"}]},[s("pretty-print",{attrs:{data:t.context}})],1)],1),s("stack-trace",{staticClass:"log-message-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)])])}))}}],null,!1,1500537959)}):e._e(),e.databaseSlowQueries.length?s("details-table",{attrs:{columns:e.databaseSlowQueriesColumns,items:e.databaseSlowQueries,filter:e.databaseSlowQueriesFilter,"filter-example":"where request_id model:request type:select file:Controller.php duration:>100"},scopedSlots:e._u([{key:"header",fn:function(t){var a=t.filter;return[s("th",{attrs:{colspan:e.databaseSlowQueriesColumns.length}},[e._v("\n\t\t\t\tSlow database queries "),s("span",{staticClass:"count"},[e._v(e._s(e.$request.databaseSlowQueries))]),s("details-table-filter-toggle",{attrs:{filter:a}})],1)]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a,class:{"database-slow-query":t.tags.includes("slow")}},[s("td",[s("shortened-text",{attrs:{full:t.model}},[e._v(e._s(t.shortModel))])],1),e.databaseSlowQueriesColumns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[e._v(e._s(t.query))]),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}],null,!1,2667532720)}):e._e()],1):e._e()},ut=[],dt=s("e0e5"),ht=s.n(dt),ft=s("57b8"),pt=s.n(ft),mt={name:"PerformanceLog",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be,ShortenedText:k,StackTrace:P},data:function(){return{databaseSlowQueriesFilter:new Ce([{tag:"model"},{tag:"type",apply:function(e,t){if(["select","update","insert","delete"].includes(t.toLowerCase()))return e.query.match(new RegExp("^".concat(t.toLowerCase()),"i"))}},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}]),performanceLogFilter:new Ce([{tag:"time",type:"date"},{tag:"file",map:function(e){return e.shortPath}}],(function(e){return e.message}))}},computed:{databaseSlowQueriesColumns:function(){var e=["Model","Query","Duration"],t=new Set(this.databaseSlowQueries.map((function(e){return e.connection}))).size>1;return t&&e.splice(1,0,"Connection"),e},databaseSlowQueries:function(){return this.$request.databaseQueries.filter((function(e){return e.tags.includes("slow")}))},performanceLog:function(){return this.$request.log.filter((function(e){var t;return null===(t=e.context)||void 0===t?void 0:t.performance})).map((function(e){return ht()({},e,{context:pt()(e.context,["performance","trace"])})}))}}},vt=mt,gt=(s("e924"),Object($["a"])(vt,ct,ut,!1,null,null,null)),bt=gt.exports,wt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.$profiler.ready?s("table",{staticClass:"profiler"},[s("thead",[s("tr",[s("th",{on:{click:function(t){return e.filter.sortBy("self["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tSelf\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="self["+e.$profiler.metric+"]",expression:"filter.sortedBy == `self[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("inclusive["+e.$profiler.metric+"]")}}},[e._v("\n\t\t\t\t\tInclusive\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:e.filter.sortedBy=="inclusive["+e.$profiler.metric+"]",expression:"filter.sortedBy == `inclusive[${$profiler.metric}]`"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}})],1),s("th",{on:{click:function(t){return e.filter.sortBy("function")}}},[e._v("\n\t\t\t\t\tFunction\n\t\t\t\t\t"),s("font-awesome-icon",{directives:[{name:"show",rawName:"v-show",value:"function"==e.filter.sortedBy,expression:"filter.sortedBy == 'function'"}],attrs:{icon:e.filter.sortedDesc?"angle-down":"angle-up"}}),s("div",{staticClass:"profiler-controls"},[s("span",{staticClass:"profiler-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-show-metric"},[s("a",{class:{active:0==e.$profiler.metric},attrs:{href:"#",title:"Execution time"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(0)}}},[s("font-awesome-icon",{attrs:{icon:"clock"}})],1),s("a",{class:{active:1==e.$profiler.metric},attrs:{href:"#",title:"Memory usage"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showMetric(1)}}},[s("font-awesome-icon",{attrs:{icon:"microchip"}})],1)]),s("span",{staticClass:"profiler-control-group"},[s("a",{class:{active:!e.$profiler.percentual},attrs:{href:"#",title:"Exact"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual(!1)}}},[0==e.$profiler.metric?s("span",[e._v("ms")]):e._e(),1==e.$profiler.metric?s("span",[e._v("kB")]):e._e()]),s("a",{class:{active:e.$profiler.percentual},attrs:{href:"#",title:"Percentual"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.showPercentual()}}},[s("font-awesome-icon",{attrs:{icon:"percent"}})],1)]),s("span",{staticClass:"profiler-control-group profiler-shown-fraction"},[s("a",{class:{active:1==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(1)}}},[e._v("\n\t\t\t\t\t\t\t\t100%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.9==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.9)}}},[e._v("\n\t\t\t\t\t\t\t\t90%\n\t\t\t\t\t\t\t")]),s("a",{class:{active:.5==e.$profiler.shownFraction},attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.$profiler.setShownFraction(.5)}}},[e._v("\n\t\t\t\t\t\t\t\t50%\n\t\t\t\t\t\t\t")])]),s("span",{staticClass:"profiler-control-group"},[s("a",{attrs:{href:"#",title:"Disable profiler"},on:{click:function(t){return t.preventDefault(),e.$profiler.disableProfiling()}}},[s("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)])])],1)]),s("tr",{directives:[{name:"show",rawName:"v-show",value:e.filter.shown,expression:"filter.shown"}],staticClass:"filter"},[s("td",{attrs:{colspan:"3"}},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.filter.input,expression:"filter.input"}],attrs:{type:"search",placeholder:"Filter..."},domProps:{value:e.filter.input},on:{input:function(t){t.target.composing||e.$set(e.filter,"input",t.target.value)}}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.filter.input,expression:"! filter.input"}],staticClass:"example"},[e._v('eg. "preg_match" self:>500')])],1)])])]),s("tbody",e._l(e.filterXdebug(e.$profiler.functions),(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.self)))]),s("td",{staticClass:"profiler-metric"},[e._v(e._s(e.$profiler.formatMetric(t.inclusive)))]),s("td",{staticClass:"profiler-function"},[s("div",{staticClass:"profiler-function-name"},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")]),s("div",{staticClass:"profiler-path"},[s("shortened-text",{attrs:{full:t.fullPath}},[e._v(e._s(t.shortPath))])],1)])])})),0)]):e._e(),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading||e.$profiler.parsing,expression:"$profiler.loading || $profiler.parsing"}],staticClass:"profiler-loading"},[s("spinner",{attrs:{name:"fading-circle"}}),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.loading,expression:"$profiler.loading"}],staticClass:"message"},[e._v("\n\t\t\tLoading profile...\n\t\t")]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.parsing,expression:"$profiler.parsing"}],staticClass:"message"},[e._v("\n\t\t\tProcessing profile...\n\t\t")])],1),s("div",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.available,expression:"! $profiler.available"}],staticClass:"profiler-not-available"},[s("p",[e._v("\n\t\t\tProfile is not present for current request.\n\t\t")]),e._m(0),s("p",{staticClass:"message profiler-enable"},[s("a",{directives:[{name:"show",rawName:"v-show",value:!e.$profiler.isProfiling,expression:"! $profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.enableProfiling()}}},[e._v("\n\t\t\t\tEnable profiler\n\t\t\t")]),s("a",{directives:[{name:"show",rawName:"v-show",value:e.$profiler.isProfiling,expression:"$profiler.isProfiling"}],attrs:{href:"#"},on:{click:function(t){return e.$profiler.disableProfiling()}}},[e._v("\n\t\t\t\tDisable profiler\n\t\t\t")])])])])},yt=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",{staticClass:"message"},[e._v("\n\t\t\tProfiling requires the Xdebug php extension."),s("br"),s("a",{attrs:{href:"https://underground.works/clockwork/xdebug-profiler?#content",target:"_blank"}},[e._v("Read more about how to set up Xdebug")])])}],_t={name:"Profiler",components:{ShortenedText:k},data:function(){return{filter:function(){var e=new Ce([{tag:"model"},{tag:"file",map:function(e){return e.shortPath}},{tag:"self",type:"number"},{tag:"inclusive",type:"number"}],(function(e){return e.name}));return e.sortedBy="self[0]",e.sortedDesc=!0,e}()}},methods:{filterXdebug:function(e){return e?this.filter.filter(e):[]}}},qt=_t,$t=Object($["a"])(qt,wt,yt,!1,null,null,null),Ct=$t.exports,kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"timeline",class:{"table-view":"table"==e.view}},[s("div",{staticClass:"timeline-controls"},[s("span",{staticClass:"timeline-control-group"},[s("a",{staticClass:"toggle-filter",attrs:{href:"#"},on:{click:function(t){return e.filter.toggle()}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1)]),e.availableTags.length?s("span",{staticClass:"timeline-control-group"},e._l(e.availableTags,(function(t){return s("a",{class:{active:!e.hiddenTags.includes(t.tag)},attrs:{href:"#",title:t.title},on:{click:function(s){return e.toggleTag(t.tag)}}},[s("font-awesome-icon",{attrs:{icon:t.icon}})],1)})),0):e._e(),s("span",{staticClass:"timeline-control-group"},[s("a",{class:{active:"chart"==e.view},attrs:{href:"#",title:"Timeline view"},on:{click:function(t){e.view="chart"}}},[s("font-awesome-icon",{attrs:{icon:"chart-bar"}})],1),s("a",{class:{active:"table"==e.view},attrs:{href:"#",title:"Table view"},on:{click:function(t){e.view="table"}}},[s("font-awesome-icon",{attrs:{icon:"bars"}})],1)])]),s("details-table",{attrs:{columns:e.columns,items:e.filteredItems,filter:e.filter,"filter-example":"database query duration:>50"},scopedSlots:e._u([{key:"header",fn:function(t){t.filter;return[s("th",[e._v("Timeline")]),s("th",{staticClass:"timeline-duration"},[e._v("Duration")]),s("th",{staticClass:"timeline-description"},[e._v("Description")])]}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",[s("td",{staticClass:"timeline-graph"},[0==a?s("div",{staticClass:"timeline-legend"},e._l(e.legend,(function(t){return s("span",{staticClass:"timeline-legend-time",style:{left:t.left+"%"}},[e._v(e._s(t.time)+" ms")])})),0):e._e(),s("div",{staticClass:"timeline-bar",class:t.style},[s("div",{staticClass:"label",style:{"text-align":t.labelAlign,"margin-left":t.labelLeft,"margin-right":t.labelRight},attrs:{title:t.description+" ("+t.durationRounded+" ms)"}},[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t\t\t("+e._s(t.durationRounded)+" ms)\n\t\t\t\t\t\t")]),s("div",{staticClass:"bar",style:{width:t.barWidth,"margin-left":t.barLeft}})])]),s("td",{staticClass:"timeline-duration"},[e._v(e._s(t.durationRounded)+" ms")]),s("td",{staticClass:"timeline-description"},[e._t("table-description",[s("span",{staticClass:"timeline-item-tags"},e._l(e.resolveTags(t.tags),(function(e){return s("span",[s("font-awesome-icon",{attrs:{icon:e.icon,title:e.title}})],1)})),0),e._v("\n\t\t\t\t\t\t"+e._s(t.description)+"\n\t\t\t\t\t")],{item:t})],2)])}))}}],null,!0)})],1)},xt=[],jt=s("a501"),Tt=s.n(jt),Pt={name:"Timeline",components:{DetailsTable:qe},props:{name:{},items:{},tags:{default:function(){return[]}}},data:function(){return{view:"chart",hiddenTags:[],filter:new Ce([{tag:"duration",type:"number"}],(function(e){return e.description}))}},computed:{availableTags:function(){var e=this;return this.tags.filter((function(t){return e.items.find((function(e){return e.tags.includes(t.tag)}))}))},columns:function(){return"chart"==this.view?["Timeline"]:["Timeline","Duration","Description"]},filteredItems:function(){var e=this;return this.items.filter((function(t){return!Tt()(t.tags,e.hiddenTags).length}))},legend:function(){if(!this.$request)return[];var e,t=[],s=document.querySelector(".details-content"),a=s?s.offsetWidth-28:0,n=Math.floor(a/80),i=this.$request.responseDuration/a;for(e=1;e45&&t.push({left:((a-38)/a*100).toString(),time:Math.round(a*i).toString()}),t}},methods:{toggleTag:function(e){this.hiddenTags.includes(e)?this.hiddenTags=this.hiddenTags.filter((function(t){return t!=e})):this.hiddenTags.push(e),this.$settings.global.timelineHiddenTags[this.name]=this.hiddenTags,this.$settings.save()},resolveTags:function(e){var t=this;return e.map((function(e){return t.tags.find((function(t){return t.tag==e}))})).filter((function(e){return e}))}},mounted:function(){this.hiddenTags=this.$settings.global.timelineHiddenTags[this.name]||[]}},Ot=Pt,Rt=(s("8161"),Object($["a"])(Ot,kt,xt,!1,null,null,null)),St=Rt.exports,Dt={name:"PerformanceTab",components:{PerformanceLog:bt,Profiler:Ct,Timeline:St},props:["active"],data:function(){return{activePerformanceTab:"timeline",timelineTags:[{tag:"events",icon:["fas","bullhorn"],title:"Events"},{tag:"databaseQueries",icon:["fas","database"],title:"Database"},{tag:"cacheQueries",icon:["fas","boxes"],title:"Cache"},{tag:"redisCommands",icon:["fas","cube"],title:"Redis"},{tag:"queueJobs",icon:["fas","history"],title:"Queue"},{tag:"views",icon:["fas","pencil-ruler"],title:"Views"},{tag:"emails",icon:["fas","envelope"],title:"Emails"}]}},computed:{chartValues:function(){var e;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return[e.name,e.value]}))},chartColors:function(){var e,t={style1:{light:"#78b1de",dark:"#649dca"},style2:{light:"#e79697",dark:"#d38283"},style3:{light:"#b1ca6d",dark:"#9db659"},style4:{light:"#ba94e6",dark:"#a680d2"}},s="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return null===(e=this.$request)||void 0===e?void 0:e.performanceMetrics.map((function(e){return t[e.style][s]}))},chartOptions:function(){var e="auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance;return{legend:{display:!1},tooltips:{enabled:!1},hover:{mode:null},elements:{arc:{borderColor:"dark"==e?"#1f1f1f":"#fff"}}}}},methods:{isTabActive:function(e){return this.activePerformanceTab==e},showTab:function(e){this.activePerformanceTab=e,"profiler"==e&&this.$profiler.loadRequest(this.$request)}}},Nt=Dt,Et=Object($["a"])(Nt,ot,lt,!1,null,null,null),It=Et.exports,Mt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.redisCommands,filter:e.filter,"filter-example":"command:zrange connection:eshop file:StatsController.php duration:>50"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[e._v(e._s(t.command))]),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.parameters}})],1),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",{staticClass:"database-duration"},[e._v(e._s(t.duration)+" ms")])])}))}}])})],1)},Lt=[],Qt={name:"RedisTab",components:{DetailsTable:qe,PrettyPrint:be,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"command"},{tag:"file",map:function(e){return e.shortPath}},{tag:"duration",type:"number"}])}},computed:{columns:function(){var e=["Command","Parameters","Duration"],t=new Set(this.$request.redisCommands.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Connection"),e}}},At=Qt,Ut=Object($["a"])(At,Mt,Lt,!1,null,null,null),Jt=Ut.exports,Ft=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.queueJobs,filter:e.filter,"filter-example":"Underground.works name:GenerateInvoice queue:priority"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[e.columns.includes("Queue")?s("td",[e._v(e._s(t.queue))]):e._e(),e.columns.includes("Connection")?s("td",[e._v(e._s(t.connection))]):e._e(),s("td",[s("shortened-text",{attrs:{full:t.name}},[e._v(e._s(t.shortName))])],1),s("td",[s("div",{staticClass:"database-query"},[s("div",{staticClass:"database-query-content"},[s("pretty-print",{attrs:{data:t.data}})],1),t.maxTries||t.timeout?s("div",{staticClass:"job-options"},[t.maxTries?s("span",[e._v(e._s(t.maxTries)+" tries")]):e._e(),t.timeout?s("span",[e._v(e._s(t.timeout)+"s timeout")]):e._e()]):e._e(),s("stack-trace",{staticClass:"database-query-path",attrs:{trace:t.trace,file:t.file,line:t.line}})],1)]),s("td",[s("span",{class:{"job-status-text":!0,"is-success":t.request&&"done"==t.request.jobStatus,"is-error":t.request&&"failed"==t.request.jobStatus}},[e._v("\n\t\t\t\t\t\t"+e._s(t.request?t.request.jobStatus:"waiting")+"\n\t\t\t\t\t")])]),s("td",[t.request?s("a",{attrs:{href:"#",title:"Show details"},on:{click:function(s){return s.preventDefault(),e.showJob(t)}}},[s("font-awesome-icon",{attrs:{icon:"search"}})],1):e._e()])])}))}}])})],1)},Ht=[],Bt={name:"QueueTab",components:{DetailsTable:qe,PrettyPrint:be,ShortenedText:k,StackTrace:P},props:["active"],data:function(){return{filter:new Ce([{tag:"connection"},{tag:"queue"},{tag:"name"}]),jobRequests:{}}},computed:{columns:function(){var e=["Name","Data"],t=new Set(this.$request.queueJobs.map((function(e){return e.queue}))).size>1,s=new Set(this.$request.queueJobs.map((function(e){return e.connection}))).size>1;return t&&e.splice(0,0,"Queue"),s&&e.splice(0,0,"Connection"),e.concat(["Status",""])},queueJobs:function(){var e=this;return this.$request?this.$request.queueJobs.map((function(t){return ht()({request:e.jobRequests[t.id]},t)})):[]}},methods:{showJob:function(e){this.global.$request=this.$requests.findId(e.id)},loadQueueJobRequest:function(){var e=Object(I["a"])(regeneratorRuntime.mark((function e(t){var s,a,n=this,i=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(s=i.length>1&&void 0!==i[1]?i[1]:0,12!=s){e.next=3;break}return e.abrupt("return");case 3:if(!t.loadRequestTimeout){e.next=5;break}return e.abrupt("return");case 5:if(e.t0=this.$requests.findId(t.id),e.t0){e.next=10;break}return e.next=9,this.$requests.loadId(t.id,!1);case 9:e.t0=e.sent;case 10:if(a=e.t0,a){e.next=13;break}return e.abrupt("return",t.loadRequestTimeout=setTimeout((function(){t.loadRequestTimeout=null,n.loadQueueJobRequest(t,s+1)}),5e3));case 13:this.$set(this.jobRequests,t.id,a);case 14:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},watch:{active:function(e){var t=this;e&&this.$request.queueJobs.forEach((function(e){e.id&&t.loadQueueJobRequest(e)}))}}},zt=Bt,Vt=(s("05dd"),Object($["a"])(zt,Ft,Ht,!1,null,"e2548e86",null)),Wt=Vt.exports,Kt=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("details-table",{attrs:{columns:e.columns,items:e.$request.routes,filter:e.filter,"filter-example":"OrderController method:post uri:order"},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",[e._v(e._s(t.method))]),s("td",[e._v(e._s(t.uri))]),s("td",[e._v(e._s(t.action))]),e.columns.includes("Name")?s("td",[e._v(e._s(t.name))]):e._e(),e.columns.includes("Middleware")?s("td",e._l(t.middleware,(function(a,n){return s("span",[e._v("\n\t\t\t\t\t\t"+e._s(a)+e._s(n==t.middleware.length-1?"":", ")+"\n\t\t\t\t\t")])})),0):e._e(),e.columns.includes("Before")?s("td",[e._v(e._s(t.before))]):e._e(),e.columns.includes("After")?s("td",[e._v(e._s(t.after))]):e._e()])}))}}])})],1)},Gt=[],Xt={name:"RoutesTab",components:{DetailsTable:qe},props:["active"],data:function(){return{filter:new Ce([{tag:"method",apply:function(e,t){if(["get","post","put","delete","head","patch"].includes(t.toLowerCase()))return e.method.toLowerCase()==t.toLowerCase()}},{tag:"uri"}])}},computed:{columns:function(){var e=["Methods","URI","Action"];return this.$request.routes.some((function(e){return e.name}))&&e.push("Name"),this.$request.routes.some((function(e){return e.middleware}))&&e.push("Middleware"),this.$request.routes.some((function(e){return e.before}))&&e.push("Before"),this.$request.routes.some((function(e){return e.after}))&&e.push("After"),e}}},Yt=Xt,Zt=Object($["a"])(Yt,Kt,Gt,!1,null,null,null),es=Zt.exports,ts=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},e._l(e.userTab.sections,(function(t,a){return s("div",{key:e.$request.id+"-"+a},["counters"==t.showAs?s("div",{staticClass:"counters-row"},e._l(t.data,(function(t,a){return s("div",{key:e.$request.id+"-"+a,staticClass:"counter"},[s("div",{staticClass:"counter-value"},[e._v(e._s(t.value))]),s("div",{staticClass:"counter-title"},[e._v(e._s(t.key))])])})),0):e._e(),t.title?s("h3",[e._v("\n\t\t\t"+e._s(t.title)+"\n\t\t")]):e._e(),"table"==t.showAs?s("details-table",{attrs:{columns:t.data[0].map((function(e){return e.key})),items:t.data,filter:e.filters[a]},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t){return s("tr",e._l(t,(function(e){return s("td",[s("pretty-print",{attrs:{data:e.value}})],1)})),0)}))}}],null,!0)}):e._e()],1)})),0)},ss=[],as={name:"UserTab",components:{DetailsTable:qe,PrettyPrint:be},props:["active","userTab"],data:function(){return{filters:[]}},watch:{userTab:{handler:function(e){this.filters=e.sections.map((function(e){if("table"==e.showAs)return new Ce(e.data[0].map((function(e){return{tag:e.key}})))}))},immediate:!0}}},ns=as,is=Object($["a"])(ns,ts,ss,!1,null,null,null),rs=is.exports,os=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}]},[s("timeline",{attrs:{name:"views",items:e.$request.viewsData},scopedSlots:e._u([{key:"table-description",fn:function(t){var a=t.item;return[s("div",{staticClass:"views-view-name"},[e._v(e._s(a.description))]),a.data.data?s("pretty-print",{attrs:{data:a.data.data}}):e._e()]}}])})],1)},ls=[],cs={name:"ViewsTab",components:{PrettyPrint:be,Timeline:St},props:["active"]},us=cs,ds=(s("a5d3"),Object($["a"])(us,os,ls,!1,null,null,null)),hs=ds.exports,fs={name:"RequestDetails",components:{MessagesOverlay:H,SettingsModal:G,TabHandle:se,CacheTab:Te,DatabaseTab:Ne,EmailsTab:Ae,EventsTab:ze,LogTab:Ye,OutputTab:rt,PerformanceTab:It,RedisTab:Jt,QueueTab:Wt,RoutesTab:es,UserTab:rs,ViewsTab:hs},computed:{activeDetailsTab:function(){if(this.$request)return!1===this.shownTabs[this.global.activeTab]?"performance":this.global.activeTab},shownTabs:function(){var e,t,s,a,n,i,r,o,l,c,u,d,h,f,p,m,v,g,b,w,y=this;return{log:(null===(e=this.$request)||void 0===e?void 0:null===(t=e.log)||void 0===t?void 0:t.length)>0,database:(null===(s=this.$request)||void 0===s?void 0:s.databaseQueriesCount)>0||(null===(a=this.$request)||void 0===a?void 0:null===(n=a.databaseQueries)||void 0===n?void 0:n.length)>0,cache:["cacheReads","cacheHits","cacheWrites","cacheDeletes","cacheTime"].some((function(e){var t;return null===(t=y.$request)||void 0===t?void 0:t[e]}))||(null===(i=this.$request)||void 0===i?void 0:i.cacheQueries.length)>0,redis:(null===(r=this.$request)||void 0===r?void 0:null===(o=r.redisCommands)||void 0===o?void 0:o.length)>0,queue:(null===(l=this.$request)||void 0===l?void 0:null===(c=l.queueJobs)||void 0===c?void 0:c.length)>0,events:(null===(u=this.$request)||void 0===u?void 0:null===(d=u.events)||void 0===d?void 0:d.length)>0,views:(null===(h=this.$request)||void 0===h?void 0:null===(f=h.viewsData)||void 0===f?void 0:f.length)>0,emails:(null===(p=this.$request)||void 0===p?void 0:null===(m=p.emails)||void 0===m?void 0:m.length)>0,routes:(null===(v=this.$request)||void 0===v?void 0:null===(g=v.routes)||void 0===g?void 0:g.length)>0,output:(null===(b=this.$request)||void 0===b?void 0:null===(w=b.commandOutput)||void 0===w?void 0:w.length)>0}}},methods:{showTab:function(e){this.global.activeTab=e,this.global.showIncomingRequests=!1},toggleRequestsList:function(){this.$store.set("requestsListCollapsed",!this.$store.get("requestsListCollapsed"))},toggleRequestSidebar:function(){this.$store.set("requestSidebarCollapsed",!this.$store.get("requestSidebarCollapsed"))},togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},toggleSettingsModal:function(){this.$settings.toggle()},clear:function(){this.$requests.clear()}}},ps=fs,ms=(s("0f8a"),Object($["a"])(ps,r,o,!1,null,null,null)),vs=ms.exports,gs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"request-sidebar":!0,large:e.$store.data.requestsListCollapsed}},[s("div",{staticClass:"sidebar-header"},[s("div",{staticClass:"sidebar-title"},[e.$request&&e.$request.isCommand()?[e._v("\n\t\t\t\tCommand\n\t\t\t")]:e.$request&&e.$request.isQueueJob()?[e._v("\n\t\t\t\tQueue job\n\t\t\t")]:e.$request&&e.$request.isTest()?[e._v("\n\t\t\t\tTest\n\t\t\t")]:[e._v("\n\t\t\t\tRequest\n\t\t\t")]],2),s("div",{staticClass:"sidebar-actions"},[e.$request&&e.$request.url?s("a",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.$request.url,expression:"$request.url",arg:"copy"}],attrs:{href:"#",title:"Copy url"}},[s("font-awesome-icon",{attrs:{icon:"link"}})],1):e._e(),s("a",{attrs:{href:"#",title:"Preserve log"},on:{click:e.togglePreserveLog}},[s("font-awesome-icon",{attrs:{icon:e.$store.data.preserveLog?"circle":["far","circle"]}})],1),s("a",{attrs:{href:"#",title:"Clear"},on:{click:e.clear}},[s("font-awesome-icon",{attrs:{icon:"ban"}})],1)])]),s("div",{staticClass:"sidebar-content"},[s("parent-request"),s("exception-section"),e.$request&&e.$request.isCommand()?s("command-tab"):e._e(),e.$request&&e.$request.isQueueJob()?s("queue-job-tab"):e._e(),e.$request&&e.$request.isTest()?s("test-tab"):e.$request?s("request-tab"):e._e(),e.$request&&e.$request.time?s("div",{staticClass:"sidebar-date"},[e._v("\n\t\t\t"+e._s(e._f("moment")(1e3*e.$request.time,"Y-MM-DD HH:mm:ss"))+"\n\t\t")]):e._e(),e.$request?s("div",{staticClass:"sidebar-id"},[e._v(e._s(e.$request.id))]):e._e()],1)])},bs=[],ws=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"command-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandArgumentsMerged.length,expression:"$request.commandArgumentsMerged.length"}],attrs:{title:"Arguments",name:"arguments",items:e.$request.commandArgumentsMerged,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.commandOptionsMerged.length,expression:"$request.commandOptionsMerged.length"}],attrs:{title:"Options",name:"options",items:e.$request.commandOptionsMerged,"filter-example":'"Mike Jones" name:name'}})],1)},ys=[],_s=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"sidebar-section"},[s("div",{staticClass:"section-header"},[s("span",{staticClass:"section-title",on:{click:e.toggle}},[e._v("\n\t\t\t"+e._s(e.title)+"\n\t\t\t"),s("font-awesome-icon",{attrs:{icon:e.expanded?"angle-down":"angle-up"}})],1),s("details-table-filter-toggle",{attrs:{filter:e.filter}})],1),e._t("content",[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[e._t("above-table")],2),e._t("table",[s("details-table",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}],attrs:{columns:["Key","Value"],items:e.items,filter:e.filter,"filter-example":e.filterExample,"no-header":!0},scopedSlots:e._u([{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{attrs:{colspan:"2"}},[s("div",{staticClass:"key"},[e._v(e._s(t.name))]),s("div",{staticClass:"value"},[s("pretty-print",{attrs:{data:t.value}})],1)])])}))}}])})],{items:e.items,filter:e.filter,filterExample:e.filterExample,expanded:e.expanded})],{expanded:e.expanded})],2)},qs=[],$s={name:"SidebarSection",components:{DetailsTable:qe,DetailsTableFilterToggle:he,PrettyPrint:be},props:["title","name","filterExample","items"],data:function(){return{filter:new Ce([{tag:"name"}])}},computed:{expanded:function(){return this.$store.get("sidebarSection.".concat(this.name),!0)}},methods:{toggle:function(){this.$store.set("sidebarSection.".concat(this.name),!this.expanded)}}},Cs=$s,ks=(s("101e"),Object($["a"])(Cs,_s,qs,!1,null,null,null)),xs=ks.exports,js={name:"CommandTab",components:{SidebarSection:xs}},Ts=js,Ps=(s("ef62"),Object($["a"])(Ts,ws,ys,!1,null,null,null)),Os=Ps.exports,Rs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"queue-job-tab"},[e.$request.jobPayload?s("sidebar-section",{attrs:{title:"Payload",name:"payload"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[s("pretty-print",{attrs:{data:e.$request.jobPayload,expanded:!0}})],1)]}}],null,!1,1651862303)}):e._e(),e.$request.jobQueue?s("sidebar-section",{attrs:{title:"Queue",name:"queue"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobQueue)+"\n\t\t\t")])]}}],null,!1,3947836948)}):e._e(),e.$request.jobConnection?s("sidebar-section",{attrs:{title:"Connection",name:"connection"},scopedSlots:e._u([{key:"content",fn:function(t){var a=t.expanded;return[s("div",{directives:[{name:"show",rawName:"v-show",value:a,expression:"expanded"}],staticClass:"data-value"},[e._v("\n\t\t\t\t"+e._s(e.$request.jobConnection)+"\n\t\t\t")])]}}],null,!1,3935745011)}):e._e(),e.$request.jobOptions.length?s("sidebar-section",{attrs:{title:"Options",name:"options",items:e.$request.jobOptions,"filter-example":'"Mike Jones" name:name'}}):e._e()],1)},Ss=[],Ds={name:"QueueJobTab",components:{PrettyPrint:be,SidebarSection:xs}},Ns=Ds,Es=(s("6b0a"),Object($["a"])(Ns,Rs,Ss,!1,null,null,null)),Is=Es.exports,Ms=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab"},[s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.headers.length,expression:"headers.length"}],attrs:{title:"Headers",name:"headers",items:e.headers,"filter-example":"text/html name:Accept"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.requestData,expression:"$request.requestData"}],attrs:{title:"Data",name:"data",items:e.$request.requestData,"filter-example":"420 name:price"}},[e.$request.requestData instanceof Object?e._e():s("template",{slot:"content"},[s("div",{staticClass:"data-raw"},[e._v("\n\t\t\t\t"+e._s(e.$request.requestData)+"\n\t\t\t")])])],2),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.getData.length,expression:"$request.getData.length"}],attrs:{title:"GET data",name:"getData",items:e.$request.getData,"filter-example":"created_at name:orderBy"}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.postData.length,expression:"$request.postData.length"}],attrs:{title:"POST data",name:"postData",items:e.$request.postData,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.cookies.length,expression:"$request.cookies.length"}],attrs:{title:"Cookies",name:"cookies",items:e.$request.cookies,"filter-example":'"Mike Jones" name:name'}}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.middleware.length,expression:"$request.middleware.length"}],attrs:{title:"Middleware",name:"middleware",items:e.$request.middleware,"filter-example":"auth:admin"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Value"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value"},[e._v(e._s(t))])])}))}}],null,!0)})]}}])}),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.$request.sessionData.length||e.$request.authenticatedUser,expression:"$request.sessionData.length || $request.authenticatedUser"}],attrs:{title:"Session",name:"session",items:e.$request.sessionData,"filter-example":"registration successful name:_token"}},[s("template",{slot:"above-table"},[e.$request.authenticatedUser?s("div",{staticClass:"session-user"},[s("font-awesome-icon",{attrs:{icon:"user"}}),s("div",[e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?s("span",{staticClass:"name"},[e._v(e._s(e.$request.authenticatedUser.name))]):e._e(),s("span",{class:e.$request.authenticatedUser.name&&e.$request.authenticatedUser.name.trim()?"dimmed":""},[e._v(e._s(e.$request.authenticatedUser.username))])]),e.$request.authenticatedUser.email||e.$request.authenticatedUser.id?s("span",{staticClass:"session-user-details"},[e.$request.authenticatedUser.id?s("span",{staticClass:"dimmed"},[e._v("#"+e._s(e.$request.authenticatedUser.id))]):e._e()]):e._e()],1):e._e()])],2)],1)},Ls=[],Qs={name:"RequestTab",components:{DetailsTable:qe,SidebarSection:xs},computed:{headers:function(){return this.$request.cookies.length?this.$request.headers.filter((function(e){return"Cookie"!=e.name})):this.$request.headers}}},As=Qs,Us=(s("9a64"),Object($["a"])(As,Ms,Ls,!1,null,null,null)),Js=Us.exports,Fs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"request-tab test-tab"},[e.$request.testStatusMessage?s("div",{staticClass:"test-status-message"},[e._v("\n\t\t"+e._s(e.$request.testStatusMessage)+"\n\t")]):e._e(),s("sidebar-section",{directives:[{name:"show",rawName:"v-show",value:e.asserts.length,expression:"asserts.length"}],attrs:{title:"Asserts",name:"asserts",items:e.asserts,"filter-example":"text/html name:Accept"},scopedSlots:e._u([{key:"table",fn:function(t){var a=t.items,n=t.filter,i=t.filterExample,r=t.expanded;return[s("details-table",{directives:[{name:"show",rawName:"v-show",value:r,expression:"expanded"}],attrs:{columns:["Assert"],items:a,filter:n,"filter-example":i,"no-header":!0},scopedSlots:e._u([{key:"header",fn:function(e){e.filter}},{key:"body",fn:function(t){var a=t.items;return e._l(a,(function(t,a){return s("tr",{key:e.$request.id+"-"+a},[s("td",{staticClass:"value test-assert"},[s("div",{staticClass:"assert-name"},[s("div",{staticClass:"assert-name-content",class:{"assert-failed":!t.passed}},[e._v(e._s(t.name))]),s("div",{staticClass:"assert-name-trace"},[s("stack-trace",{attrs:{trace:t.trace}})],1)]),s("pretty-print",{attrs:{data:t.arguments}})],1)])}))}}],null,!0)})]}}])})],1)},Hs=[],Bs={name:"TestTab",components:{DetailsTable:qe,PrettyPrint:be,SidebarSection:xs,StackTrace:P},computed:{asserts:function(){return this.$request.testAsserts.reverse()}}},zs=Bs,Vs=(s("86a4"),Object($["a"])(zs,Fs,Hs,!1,null,null,null)),Ws=Vs.exports,Ks={name:"RequestSidebar",components:{CommandTab:Os,ExceptionSection:D,ParentRequest:A,QueueJobTab:Is,RequestTab:Js,TestTab:Ws},methods:{togglePreserveLog:function(){this.$store.set("preserveLog",!this.$store.get("preserveLog"))},clear:function(){this.$requests.clear()}}},Gs=Ks,Xs=(s("313b"),Object($["a"])(Gs,gs,bs,!1,null,null,null)),Ys=Xs.exports,Zs=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{class:{"split-view-pane split-view-requests":!0,large:e.$store.data.requestSidebarCollapsed}},[s("table",{staticClass:"requests-header",attrs:{id:"requests-header"}},[s("thead",[s("tr",[e._m(0),s("th",{staticClass:"status"},[e._v("\n\t\t\t\t\tStatus\n\t\t\t\t")]),s("th",{staticClass:"duration"},[e._v("\n\t\t\t\t\tTime"),s("br"),e.showDatabaseTime?s("small",[e._v("Database")]):e._e()])])])]),s("div",{directives:[{name:"show",rawName:"v-show",value:e.$requestsSearch.shown,expression:"$requestsSearch.shown"}],staticClass:"requests-search"},[s("label",[s("font-awesome-icon",{attrs:{icon:"search"}}),s("input",{directives:[{name:"model",rawName:"v-model",value:e.$requestsSearch.input,expression:"$requestsSearch.input"}],attrs:{type:"search",placeholder:"Search..."},domProps:{value:e.$requestsSearch.input},on:{input:[function(t){t.target.composing||e.$set(e.$requestsSearch,"input",t.target.value)},e.$requestsSearch.searchDebounced]}}),s("span",{directives:[{name:"show",rawName:"v-show",value:!e.$requestsSearch.input,expression:"! $requestsSearch.input"}],staticClass:"example"},[e._v("eg. /api/users method:post status:500")])],1)]),s("div",{ref:"requestsContainer",staticClass:"requests-container"},[s("div",{ref:"loadMore",staticClass:"load-more"},[s("p",{directives:[{name:"show",rawName:"v-show",value:!e.loadingMoreRequests,expression:"! loadingMoreRequests"}],staticClass:"load"},[s("a",{attrs:{href:"#"},on:{click:e.loadMoreRequests}},[e._v("load more")])]),s("p",{directives:[{name:"show",rawName:"v-show",value:e.loadingMoreRequests,expression:"loadingMoreRequests"}],staticClass:"loading"},[e._v("\n\t\t\t\tloading...\n\t\t\t")])]),s("table",{ref:"requestsTable",attrs:{id:"requests"}},[e._m(1),e._l(e.requests,(function(t){return s("tr",{key:t.id,class:{selected:e.isActive(t.id)},on:{click:function(s){return e.showRequest(t)}}},[s("td",{staticClass:"controller",attrs:{title:t.tooltip}},[s("div",{staticClass:"notifications-count"},[s("span",{directives:[{name:"show",rawName:"v-show",value:t.warningsCount,expression:"request.warningsCount"}],staticClass:"warnings-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-triangle"}}),e._v(" "+e._s(t.warningsCount)+"\n\t\t\t\t\t\t")],1),s("span",{directives:[{name:"show",rawName:"v-show",value:t.errorsCount,expression:"request.errorsCount"}],staticClass:"errors-count"},[s("font-awesome-icon",{attrs:{icon:"exclamation-circle"}}),e._v(" "+e._s(t.errorsCount)+"\n\t\t\t\t\t\t")],1)]),s("big",[t.isCommand()?[s("span",{staticClass:"type-text"},[e._v("CMD")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.commandName)+"\n\t\t\t\t\t\t")]:t.isQueueJob()?[s("span",{staticClass:"type-text"},[e._v("QUEUE")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.jobName)+"\n\t\t\t\t\t\t")]:t.isTest()?[s("span",{staticClass:"type-text"},[e._v("TEST")]),e._v("\n\t\t\t\t\t\t\t"+e._s(t.testGroup)+"\n\t\t\t\t\t\t")]:[t.isAjax()?s("span",{staticClass:"type-text"},[e._v("AJAX")]):e._e(),s("span",{staticClass:"method-text"},[e._v(e._s(t.method))]),e._v(" "+e._s(t.uri)+"\n\t\t\t\t\t\t")]],2),s("br"),t.isCommand()?[s("small",[e._v(e._s(t.commandLine))])]:t.isQueueJob()?[s("small",[e._v(e._s(t.jobDescription))])]:t.isTest()?[s("small",[e._v(e._s(t.testName))])]:[e.$store.data.requestSidebarCollapsed?s("small",[e._v(e._s(t.controller))]):s("small",[e._v(e._s(e._f("shortClass")(t.controller)))])]],2),t.isCommand()?[s("td",{staticClass:"status",attrs:{title:t.commandExitCode}},[s("span",{class:{"status-text":!0,"client-error":t.isCommandWarning(),"server-error":t.isCommandError()}},[e._v(e._s(t.commandExitCode))])])]:t.isQueueJob()?[s("td",{staticClass:"status",attrs:{title:t.jobStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isQueueJobWarning(),"server-error":t.isQueueJobError()}},[e._v(e._s(t.jobStatus))])])]:t.isTest()?[s("td",{staticClass:"status",attrs:{title:t.testStatus}},[s("span",{class:{"status-text":!0,"status-text-small":!0,"client-error":t.isTestWarning(),"server-error":t.isTestError()}},[e._v(e._s(t.testStatus))])])]:[s("td",{staticClass:"status",attrs:{title:t.responseStatus}},[s("span",{class:{"status-text":!0,"client-error":t.isClientError(),"server-error":t.isServerError()}},[e._v(e._s(t.responseStatus))])])],s("td",{staticClass:"duration",attrs:{title:t.responseDurationRounded+" ms ("+t.databaseDurationRounded+" ms)"}},[e._v("\n\t\t\t\t\t"+e._s(t.responseDurationRounded)+" ms"),s("br"),e.showDatabaseTime?s("small",[e._v(e._s(t.databaseDurationRounded)+" ms")]):e._e()])],2)})),e._m(2)],2)])])},ea=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("th",{staticClass:"controller"},[e._v("\n\t\t\t\t\tPath"),s("br"),s("small",[e._v("Controller")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"sizing"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{staticClass:"filler"},[s("td",{staticClass:"controller"}),s("td",{staticClass:"status"}),s("td",{staticClass:"duration"})])}],ta={name:"RequestsList",components:{},data:function(){return{loadingMoreRequests:!1}},computed:{requests:function(){var e=this.$requests.items;return this.$settings.global.hideCommandTypeRequests&&(e=e.filter((function(e){return"command"!=e.type}))),this.$settings.global.hideQueueJobTypeRequests&&(e=e.filter((function(e){return"queue-job"!=e.type}))),this.$settings.global.hideTestTypeRequests&&(e=e.filter((function(e){return"test"!=e.type}))),e},showDatabaseTime:function(){return this.requests.find((function(e){return e.databaseDuration>0}))}},mounted:function(){this.$refs.requestsContainer.scrollTop=this.$refs.loadMore.offsetHeight+1},methods:{isActive:function(e){var t;return(null===(t=this.$request)||void 0===t?void 0:t.id)==e},showRequest:function(e){this.global.$request=e},loadMoreRequests:function(){var e=this;this.loadingMoreRequests=!0,this.$requests.loadPrevious(10).then((function(){e.loadingMoreRequests=!1}))},shouldShowFirstRequest:function(){return!this.$store.get("preserveLog")&&(!this.$request||!this.$requests.findId(this.$request.id))},shouldShowIncomingRequest:function(){return this.$store.get("preserveLog")&&(!this.$request||this.$settings.global.showIncomingRequests&&this.global.showIncomingRequests)}},watch:{requests:{handler:function(e){this.shouldShowFirstRequest()?this.showRequest(this.$requests.first()):this.shouldShowIncomingRequest()&&(this.showRequest(this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last()),this.$refs.requestsContainer.scrollTop=this.$refs.requestsTable.offsetHeight)},deep:!0},$request:{handler:function(e){var t,s;"requires-authentication"==(null===(t=this.$request)||void 0===t?void 0:null===(s=t.error)||void 0===s?void 0:s.error)&&this.$authentication.request(this.$request.error.message,this.$request.error.requires);var a=this.$requests.last((function(e){return!e.isAjax()}))||this.$requests.last(),n=this.$requests.all().indexOf(a);this.global.showIncomingRequests=this.$requests.all().slice(n).includes(e)}}}},sa=ta,aa=(s("d852"),Object($["a"])(sa,Zs,ea,!1,null,null,null)),na=aa.exports,ia=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.shown?s("div",{staticClass:"whats-new"},[s("div",{staticClass:"whats-new-content"},[s("h1",[e._v("Clockwork has just been updated!")]),e._l(e.release.notes,(function(t){return[s("div",{staticClass:"whats-new-section"},[s("h2",[e._v(e._s(t.title))]),e._l(t.text,(function(t){return s("p",[e._v(e._s(t))])})),t.image?s("img",{attrs:{src:"img/whats-new/"+e.release.version+"/"+t.image}}):e._e()],2)]})),s("div",{staticClass:"whats-new-actions"},[s("a",{staticClass:"actions-show-more",attrs:{href:e.release.url,target:"_blank"}},[e._v("Learn more")]),s("a",{staticClass:"actions-close",attrs:{href:"#"},on:{click:function(t){return t.preventDefault(),e.close(t)}}},[e._v("Close")]),e._m(0)])],2)]):e._e()},ra=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("p",[s("small",[e._v("Some of the new features might require server-side Clockwork library update.")])])}],oa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,null,[{key:"latestRelease",get:function(){return e.releases[0]}},{key:"releases",get:function(){return[{version:"4.1",url:"https://underground.works/blog/clockwork-4.1-released-with-commands-queue-jobs-and-tests-profiling",notes:[{title:"Commands profiling",text:["Collect executed artisan commands with all profiling data and command specific data like command name, exit code, arguments, parameters and output.",'New "output" tab shows an ansi formatted command output.'],image:"commands-profiling.png"},{title:"Queue jobs profiling",text:["Collect executed queue jobs with all profiling data and queue-job specific data like job name, status, payload, connection, queue name and options.",'The "queue" tab now shows the disatched job\'s status with an ability to show full job details if available.'],image:"queue-jobs-profiling.png"},{title:"Tests profiling",text:["Collect ran tests with all profiling data and test specific data like test name, status and executed asserts."],image:"tests-profiling.png"},{title:"Extended timeline",text:["Timeline now includes database queries, events, cache queries, queue jobs, redis commands, views and emails.",'You can use the new "tag" icons to filter out specific type of timeline items.'],image:"extended-timeline.png"},{title:"New settings modal",text:["Personalize Clockwork via the new settings modal, including new appearance settings, ability to hide various types of requests and to disable auto-showing of incoming requests."],image:"new-settings-modal.png"},{title:"Parent requests",text:["Requests can now have parent requests, eg. a queue-job can have the http request that dispatched it as a parent. Parent requests are lazy-loaded with ability to click-through to the parent details."]},{title:"Views timeline",text:["The views tab now shows a timeline view instead of a simple table, supports memory usage and does not show empty view data anymore."]}]}]}}]),e}(),la={name:"WhatsNew",computed:{shown:function(){return this.$settings.global.seenReleaseNotesVersion!=oa.latestRelease.version},release:function(){return oa.latestRelease}},methods:{close:function(){this.$settings.global.seenReleaseNotesVersion=oa.latestRelease.version,this.$settings.save()}}},ca=la,ua=(s("f407"),Object($["a"])(ca,ia,ra,!1,null,null,null)),da=ua.exports,ha={name:"App",components:{RequestDetails:vs,RequestSidebar:Ys,RequestsList:na,WhatsNew:da},computed:{appearance:function(){return"auto"!=this.$settings.global.appearance?this.$settings.global.appearance:this.defaultAppearance}}},fa=ha,pa=(s("5c0b"),Object($["a"])(fa,n,i,!1,null,null,null)),ma=pa.exports,va=s("d842"),ga=s("4eb5"),ba=s.n(ga),wa=s("2ead"),ya=s.n(wa),_a=s("3cb4"),qa=s.n(_a),$a=s("2103"),Ca=s.n($a),ka=s("30ef"),xa=s.n(ka),ja=s("9b02"),Ta=s.n(ja),Pa=s("ad3d");$e["a"].config.devtools=!0,$e["a"].config.performance=!0,$e["a"].config.productionTip=!1,$e["a"].use(ba.a),$e["a"].use(ya.a),$e["a"].use(va["a"],{adapter:xa.a}),$e["a"].use(Ca.a),$e["a"].component("font-awesome-icon",Pa["a"]),$e["a"].component("spinner",qa.a),$e["a"].mixin({methods:{$get:Ta.a}});var Oa=s("ecee"),Ra=s("c074"),Sa=s("b702");Oa["c"].add(Ra["r"],Ra["w"],Ra["o"],Ra["p"],Sa["a"],Ra["i"],Ra["d"],Ra["s"],Ra["z"],Ra["h"],Ra["e"],Ra["b"],Ra["a"],Ra["j"],Ra["v"],Ra["y"],Ra["A"],Ra["u"],Ra["k"],Ra["B"],Ra["c"],Ra["t"],Ra["m"],Ra["g"],Ra["f"],Ra["l"],Ra["q"],Ra["x"],Ra["n"]);var Da=s("75fc"),Na=s("1160"),Ea=s.n(Na),Ia=s("c909"),Ma=s.n(Ia),La=function(){function e(t){Object(m["a"])(this,e),Object.assign(this,t),this.time=parseFloat(this.time),this.responseDurationRounded=this.responseDuration?Math.round(this.responseDuration):0,this.databaseDurationRounded=this.databaseDuration?Math.round(this.databaseDuration):0,this.memoryUsageFormatted=this.memoryUsage?this.formatBytes(this.memoryUsage):void 0,this.processCacheStats(),this.cacheQueries=this.processCacheQueries(this.cacheQueries),this.cookies=this.createKeypairs(this.cookies),this.middleware=this.middleware instanceof Array?this.middleware:[],this.processDatabase(),this.emails=this.processEmails(this.emailsData),this.events=this.processEvents(this.events),this.getData=this.createKeypairs(this.getData),this.requestData=this.requestData instanceof Object?this.createKeypairs(this.requestData,!1):this.requestData,this.headers=this.processHeaders(this.headers),this.log=this.processLog(this.log),this.postData=this.createKeypairs(this.postData),this.queueJobs=this.processQueueJobs(this.queueJobs),this.redisCommands=this.processRedisCommands(this.redisCommands),this.sessionData=this.createKeypairs(this.sessionData),this.performanceMetrics=this.processPerformanceMetrics(this.performanceMetrics),this.viewsData=this.processViews(this.viewsData),this.userData=this.processUserData(this.userData),this.timeline=this.processTimeline(this.timelineData),this.processCommand(),this.processQueueJob(),this.processTest(),this.errorsCount=this.getErrorsCount(),this.warningsCount=this.getWarningsCount(),this.exceptions=this.processExceptions()}return Object(v["a"])(e,[{key:"resolve",value:function(e){return Object.assign(this,e,{loading:!1,error:void 0}),this}},{key:"resolveWithError",value:function(e){return Object.assign(this,{loading:!1,error:e}),this}},{key:"extend",value:function(e,t){var s=this;return t.forEach((function(t){return s[t]=e[t]})),this}},{key:"isClientError",value:function(){return this.responseStatus>=400&&this.responseStatus<500}},{key:"isServerError",value:function(){return this.responseStatus>=500&&this.responseStatus<600}},{key:"isAjax",value:function(){return this.headers.find((function(e){return"X-Requested-With"==e.name&&"XMLHttpRequest"==e.value}))}},{key:"isRequest",value:function(){return"request"==this.type||!this.type}},{key:"isCommand",value:function(){return"command"==this.type}},{key:"isCommandError",value:function(){return 1==this.commandExitCode}},{key:"isCommandWarning",value:function(){return this.commandExitCode>1}},{key:"isQueueJob",value:function(){return"queue-job"==this.type}},{key:"isQueueJobError",value:function(){return"failed"==this.jobStatus}},{key:"isQueueJobWarning",value:function(){return"released"==this.jobStatus}},{key:"isTest",value:function(){return"test"==this.type}},{key:"isTestError",value:function(){return["failed","error"].includes(this.testStatus)}},{key:"isTestWarning",value:function(){return["warning"].includes(this.testStatus)}},{key:"createKeypairs",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e instanceof Object))return[];var s=Object.keys(e).map((function(t){return{name:t,value:e[t]}}));return t&&(s=s.sort((function(e,t){return e.name.localeCompare(t.name)}))),s}},{key:"processCacheStats",value:function(){this.cacheDeletes&&(this.cacheDeletes=parseInt(this.cacheDeletes)),this.cacheHits&&(this.cacheHits=parseInt(this.cacheHits)),this.cacheReads&&(this.cacheReads=parseInt(this.cacheReads)),this.cacheWrites&&(this.cacheWrites=parseInt(this.cacheWrites)),this.cacheMisses=this.cacheReads&&this.cacheHits?this.cacheReads-this.cacheHits:null}},{key:"processCacheQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.expiration=e.expiration?t.formatTime(e.expiration):void 0,e.value="hit"==e.type||"write"==e.type?e.value:"",e})):[]}},{key:"processDatabase",value:function(){this.databaseQueries=this.processDatabaseQueries(this.databaseQueries),this.databaseQueriesCount=parseInt(this.databaseQueriesCount)||this.databaseQueries.length,this.databaseSlowQueries=parseInt(this.databaseSlowQueries)||this.databaseQueries.filter((function(e){return e.tags.includes("slow")})).length,this.databaseSelects=parseInt(this.databaseSelects)||this.databaseQueries.filter((function(e){return e.query.match(/^select /i)})).length,this.databaseInserts=parseInt(this.databaseInserts)||this.databaseQueries.filter((function(e){return e.query.match(/^insert /i)})).length,this.databaseUpdates=parseInt(this.databaseUpdates)||this.databaseQueries.filter((function(e){return e.query.match(/^update /i)})).length,this.databaseDeletes=parseInt(this.databaseDelets)||this.databaseQueries.filter((function(e){return e.query.match(/^delete /i)})).length,this.databaseOthers=parseInt(this.databaseOthers)||this.databaseQueries.filter((function(e){return!e.query.match(/^(select|insert|update|delete) /i)})).length}},{key:"processDatabaseQueries",value:function(e){var t=this;return e instanceof Array?e.map((function(e){return e.model=e.model||"-",e.shortModel=e.model?e.model.split("\\").pop():"-",e.tags=e.tags instanceof Array?e.tags:[],e.bindings=t.optionalNonEmptyObject(e.bindings),e})):[]}},{key:"processEmails",value:function(e){return e instanceof Object?Object.values(e).filter((function(e){return e.data instanceof Object})).map((function(e){return Object.assign({time:e.start,duration:e.duration},e.data)})):[]}},{key:"processEvents",value:function(e){return e instanceof Array?e.map((function(e){return e.objectEvent=e.data instanceof Object&&e.event==e.data.__class__,e.time=e.time?new Date(1e3*e.time):void 0,e.listeners=e.listeners instanceof Array?e.listeners:[],e.listeners=e.listeners.map((function(e){var t,s;return t=(s=e.match(/Closure \(.*[\/\\](.+?:\d+)-\d+\)/))?"Closure ("+s[1]+")":e.split(/[\/\\]/).pop(),{name:e,shortName:t}})),e})):[]}},{key:"processExceptions",value:function(){var e=this.log.length?this.log[this.log.length-1].exception:null;if(this.isRequest()&&!this.isServerError()||!e)return[];e=Ea()(e);var t=e;do{t.trace=[{call:"".concat(t.type,"()"),file:t.file,line:t.line,isVendor:!1}].concat(Object(Da["a"])(t.trace))}while(t=t.previous);return[e]}},{key:"processHeaders",value:function(e){return e instanceof Object?Object.keys(e).map((function(t){var s=e[t];return t=t.split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).join("-"),{name:t,value:s}})).reduce((function(e,t){return t=t.value instanceof Array?t.value.map((function(e){return{name:t.name,value:e}})):[t],e.concat(t)}),[]).sort((function(e,t){return e.name.localeCompare(t.name)})):[]}},{key:"processLog",value:function(e){return e instanceof Array?e.map((function(e){return e.exception&&(e.file=e.exception.file,e.line=e.exception.line,e.trace=e.exception.trace),e.time=new Date(1e3*e.time),e.context=e.context instanceof Object&&Object.keys(e.context).filter((function(e){return"__type__"!=e})).length?e.context:void 0,e})):[]}},{key:"processPerformanceMetrics",value:function(e){if(!e)return[{name:"Database",value:this.databaseDurationRounded,style:"style2"},{name:"Cache",value:this.cacheTime,style:"style3"},{name:"Other",value:(this.responseDurationRounded||0)-(this.databaseDurationRounded||0)-(this.cacheTime||0),style:"style1"}].filter((function(e){return e.value>0}));e=e.filter((function(e){return e instanceof Object})).map((function(e,t){return e.style="style"+(t+2),e}));var t=e.reduce((function(e,t){return e+t.value}),0);return e.push({name:"Other",value:this.responseDurationRounded-t,style:"style1"}),e}},{key:"processQueueJobs",value:function(e){return e instanceof Array?e.map((function(e){return e.shortName=e.name.split("\\").pop(),e})):[]}},{key:"processRedisCommands",value:function(e){return e instanceof Array?e:[]}},{key:"processTest",value:function(){if(this.testName){var e=this.testName.includes("::")?this.testName.split("::"):[this.testName,""],t=Object(a["a"])(e,2);this.testGroup=t[0],this.testName=t[1]}}},{key:"processTimeline",value:function(e){return e=e instanceof Object?Object.values(e):[],this.appendToTimeline(e,this.databaseQueries,(function(e){return{description:e.query,tags:["databaseQueries"]}})),this.appendToTimeline(e,this.events,(function(e){return{description:e.event,tags:["events"]}})),this.appendToTimeline(e,this.cacheQueries,(function(e){return{description:"".concat(e.type.toUpperCase()," ").concat(e.key),tags:["cacheQueries"]}})),this.appendToTimeline(e,this.redisCommands,(function(e){return{description:"".concat(e.command," ").concat(Object.values(e.parameters).join(" ")),tags:["redisCommands"]}})),this.appendToTimeline(e,this.queueJobs,(function(e){return{description:e.name,tags:["queueJobs"]}})),this.mergeToTimeline(e,this.viewsData),this.appendToTimeline(e,this.emails,(function(e){return{description:"".concat(e.to," - ").concat(e.subject),tags:["emails"]}})),e=e.sort((function(e,t){return e.start-t.start})),this.createTimeline(e)}},{key:"createTimeline",value:function(e){var t=this;return Object.values(e).map((function(e,s){return e.style="style"+(s%4+1),e.start=e.start||t.time,e.startPercentual=1e3*(e.start-t.time)/t.responseDuration*100,e.duration=e.duration||t.time+t.responseDuration-e.start,e.durationPercentual=e.duration/t.responseDuration*100,e.barLeft="".concat(e.startPercentual,"%"),e.barWidth=e.startPercentual+e.durationPercentual<100?"".concat(e.durationPercentual,"%"):"".concat(100-e.startPercentual,"%"),e.labelAlign="left",e.labelLeft=e.barLeft,e.labelRight="auto",e.startPercentual>50&&(e.labelAlign="right",e.labelLeft="auto",e.labelRight=e.durationPercentual<1?"calc(100% - ".concat(e.barLeft," - 8px)"):"calc(100% - ".concat(e.barLeft," - ").concat(e.barWidth,")")),e.durationRounded=Math.round(e.duration),0===e.durationRounded&&(e.durationRounded="< 1"),e.tags=e.tags||[],e}))}},{key:"appendToTimeline",value:function(e,t,s){t.forEach((function(t){if(t.time){var a=t.time instanceof Date?t.time.getTime()/1e3:t.time,n=t.duration||0;e.push(Object.assign({description:"",start:a,end:a+n,duration:n,data:[],tags:[]},s(t)))}}))}},{key:"mergeToTimeline",value:function(e,t){e.push.apply(e,Object(Da["a"])(t))}},{key:"processViews",value:function(e){var t=this;e=e instanceof Object?Object.values(e):[];e.forEach((function(e){return e.data=e.data||{},e.description=e.data.name||e.description,e.data.data=e.data.data instanceof Object&&Object.keys(e.data.data).filter((function(e){return"__type__"!=e})).length?e.data.data:void 0,e.tags=["views"],e.data.memoryUsage&&(e.description+=" (".concat(t.formatBytes(e.data.memoryUsage),")")),e}));return this.createTimeline(e)}},{key:"processUserData",value:function(e){if(!(e instanceof Object))return[];var t=function(e){var t=Object(a["a"])(e,2),s=t[0];t[1];return"__meta"!=s},s=function(e){return function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return{key:e[n]||n,value:i}}};return Object.entries(e).filter((function(e){var t=Object(a["a"])(e,2),s=(t[0],t[1]);return s instanceof Object||s.__meta||s.__meta.title})).map((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];return{key:i,title:r.__meta.title,sections:Object.entries(r).filter(t).map((function(e){var n=Object(a["a"])(e,2),i=(n[0],n[1]),r=i.__meta.labels||{},o="counters"==i.__meta.showAs?Object.entries(i).filter(t).map(s(r)):Object.entries(i).filter(t).map((function(e){var t=Object(a["a"])(e,2),n=(t[0],t[1]);return Object.entries(n).map(s(r))}));return{data:o,showAs:i.__meta.showAs,title:i.__meta.title}}))}}))}},{key:"processCommand",value:function(){this.commandLine="",this.commandLine+=Object.values(this.commandArguments||{}).filter((function(e){return e})).join(" "),this.commandLine+=Object.entries(this.commandOptions||{}).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e+(!0===i?" --".concat(n):" --".concat(n,"=").concat(i))}),""),this.commandArgumentsMerged=this.createKeypairs(Object.assign({},this.commandArgumentsDefaults||{},this.commandArguments||{}),!1),this.commandOptionsMerged=this.createKeypairs(Object.assign({},this.commandOptionsDefaults||{},this.commandOptions||{}),!1)}},{key:"processQueueJob",value:function(){this.jobOptions=this.createKeypairs(this.jobOptions)}},{key:"getErrorsCount",value:function(){return this.log.reduce((function(e,t){return"error"==t.level?e+1:e}),0)}},{key:"getWarningsCount",value:function(){return this.log.filter((function(e){return"warning"==e.level})).length+this.databaseSlowQueries}},{key:"formatTime",value:function(e){var t=Math.floor(e/60),s=Math.floor(t/60);e%=60,t%=60;var a=[];return s&&a.push(s+"h"),t&&a.push(t+"min"),e&&a.push(e+"sec"),a.join(" ")}},{key:"formatBytes",value:function(e){var t=["B","kB","MB","GB","TB","PB"],s=Math.floor(Math.log(e)/Math.log(1024));return"".concat(Math.round(e/Math.round(Math.pow(1024,s)))," ").concat(t[s])}},{key:"optionalNonEmptyObject",value:function(e,t){return e instanceof Object&&Object.keys(e).filter((function(e){return"__type__"!=e})).length?e:t}},{key:"tooltip",get:function(){return this.isCommand()?"[CMD] ".concat(this.commandName," (").concat(this.commandLine,")"):this.isQueueJob()?"[QUEUE] ".concat(this.jobName," (").concat(this.jobDescription,")"):this.isTest()?"[TEST] ".concat(this.testGroup," (").concat(this.testName,")"):"".concat(this.method," ").concat(this.uri," (").concat(this.controller,")")}}],[{key:"placeholder",value:function(t,s,a){return Object.assign(new e({loading:!0,id:t,uri:s?new Ma.a(s.url).pathname():"/",controller:"Waiting...",method:s?s.method:"GET",responseStatus:"?",parent:a}),{responseDurationRounded:"?",databaseDurationRounded:"?"})}}]),e}(),Qa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.profiler=e.$profiler,this.settings=e.$settings,this.store=e.$store,this.updateNotification=e.$updateNotification,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.listenToRequests(),this.loadLastRequest()}},{key:"useProperTheme",value:function(){"dark"===this.api.devtools.panels.themeName&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){var e=this;this.resolveTabUrl().then((function(t){return e.requests.setRemote(t)}))}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,a,n){return new Promise((function(i,r){var o=e.profiler.isProfiling,l=function(){e.api.runtime.sendMessage({action:"getJSON",method:t,url:s,data:a,headers:n},(function(t){o&&e.profiler.enableProfiling(),t.error?r(t):i(t.data)}))};o?e.profiler.disableProfiling().then(l):l()}))}))}},{key:"setCookie",value:function(e,t,s){var a=this;return this.resolveTabUrl().then((function(n){a.api.cookies.set({url:n,name:e,value:t,path:"/",expirationDate:Math.floor(Date.now()/1e3)+s})}))}},{key:"getCookie",value:function(e){var t=this;return this.resolveTabUrl().then((function(s){return new Promise((function(a,n){t.api.cookies.get({url:s,name:e},(function(e){a(e?e.value:void 0)}))}))}))}},{key:"resolveTabUrl",value:function(){var e=this;return new Promise((function(t,s){e.api.runtime.sendMessage({action:"getTabUrl",tabId:e.api.devtools.inspectedWindow.tabId},(function(e){return t(e)}))}))}},{key:"listenToRequests",value:function(){var e=this;this.api.runtime.onMessage.addListener((function(t){if("requestCompleted"===t.action&&(-1!==navigator.userAgent.toLowerCase().indexOf("firefox/57.0")||t.request.tabId==e.api.devtools.inspectedWindow.tabId)){var s=e.parseHeaders(t.request.responseHeaders);if(s){e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.request.url,s);var a=La.placeholder(s.id,t.request);e.requests.loadId(s.id,a),s.subrequests.forEach((function(t){e.requests.setRemote(t.url,{path:t.path}),e.requests.loadId(t.id,La.placeholder(t.id,t,a))})),e.requests.setRemote(t.request.url,s),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}})),this.api.runtime.onMessage.addListener((function(t){"navigationStarted"===t.action&&(e.store.get("preserveLog")||t.details.tabId==e.api.devtools.inspectedWindow.tabId&&e.requests.clear())}))}},{key:"loadLastRequest",value:function(){var e=this;this.api.runtime.sendMessage({action:"getLastClockworkRequestInTab",tabId:this.api.devtools.inspectedWindow.tabId},(function(t){if(t){var s=e.parseHeaders(t.responseHeaders);e.updateNotification.serverVersion=s.version,e.requests.setRemote(t.url,s),e.requests.loadId(s.id,La.placeholder(s.id,t)),e.settings.global.hideCommandTypeRequests&&e.settings.global.hideQueueJobTypeRequests&&e.settings.global.hideTestTypeRequests||e.startPollingRequests()}}))}},{key:"parseHeaders",value:function(e){var t,s=(t=e.find((function(e){return"x-clockwork-id"==e.name.toLowerCase()})))?t.value:void 0,a=(t=e.find((function(e){return"x-clockwork-path"==e.name.toLowerCase()})))?t.value:void 0,n=(t=e.find((function(e){return"x-clockwork-version"==e.name.toLowerCase()})))?t.value:void 0;if(s){var i={};e.forEach((function(e){if(0===e.name.toLowerCase().indexOf("x-clockwork-header-")){var t=e.name.replace(/^x-clockwork-header-/i,"");i[t]=e.value}}));var r=e.filter((function(e){return"x-clockwork-subrequest"==e.name.toLowerCase()})).reduce((function(e,t){return e.concat(t.value.split(",").map((function(e){var t=e.trim().split(";");return{id:t[0],url:decodeURIComponent(t[1]),path:decodeURIComponent(t[2])}})))}),[]);return{id:s,path:a,version:n,headers:i,subrequests:r}}}},{key:"startPollingRequests",value:function(){this.pollingInterval=1e3,this.isPolling=!0,this.pollTimeout||this.pollRequests()}},{key:"stopPollingRequests",value:function(){this.isPolling=!1,clearTimeout(this.pollTimeout),this.pollTimeout=null}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout);var t=[this.settings.global.hideCommandTypeRequests?null:"command",this.settings.global.hideQueueJobTypeRequests?null:"queue-job",this.settings.global.hideTestTypeRequests?null:"test"].filter(Boolean);this.requests.withQuery({"type[]":t},(function(){e.requests.loadNext().then((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))})).catch((function(){e.isPolling&&(e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval))}))}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,!document.hidden&&e.isPolling&&e.pollRequests()}))}},{key:"settingsChanged",value:function(){this.settings.global.hideCommandTypeRequests&&this.settings.global.hideQueueJobTypeRequests&&this.settings.global.hideTestTypeRequests?this.stopPollingRequests():this.startPollingRequests()}},{key:"api",get:function(){return chrome||browser}}],[{key:"runningAsExtension",value:function(){return"object"==("undefined"===typeof chrome?"undefined":Object(p["a"])(chrome))&&chrome.devtools||"object"==("undefined"===typeof browser?"undefined":Object(p["a"])(browser))&&browser.devtools}}]),e}(),Aa=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"init",value:function(e){this.global=e,this.requests=e.$requests,this.authentication=e.$authentication,this.profiler=e.$profiler,this.store=e.$store,this.useProperTheme(),this.setMetadataUrl(),this.setMetadataClient(),this.startPollingRequests(),this.throttlePolling()}},{key:"useProperTheme",value:function(){window.matchMedia("(prefers-color-scheme: dark)").matches&&(this.global.defaultAppearance="dark")}},{key:"setMetadataUrl",value:function(){this.requests.setRemote(window.location.href,{path:Ma()(window.location.href.split("/").slice(0,-1).join("/")).path()+"/"})}},{key:"setMetadataClient",value:function(){var e=this;this.requests.setClient((function(t,s,n,i){var r=e.profiler.isProfiling,o=new FormData;Object.entries(n).forEach((function(e){var t=Object(a["a"])(e,2),s=t[0],n=t[1];return o.append(s,n)}));var l=function(){return fetch(s,{method:t,body:Object.keys(n).length?o:null,headers:i}).then((function(e){return e.json().then((function(t){return{response:e,data:t}}))})).then((function(e){var t=e.response,s=e.data;if(403==t.status)throw{error:"requires-authentication",message:s.message,requires:s.requires};if(200!=t.status)throw{error:"Server returned an error response."};if(!(s instanceof Object)||!Object.keys(s).length)throw{error:"Server returned an empty metadata."};return s})).then((function(t){return r&&e.profiler.enableProfiling(),t}))};return r?e.profiler.disableProfiling().then(l):l()}))}},{key:"setCookie",value:function(e,t,s){return document.cookie="".concat(e,"=").concat(t,";path=/;max-age=").concat(s),Promise.resolve()}},{key:"getCookie",value:function(e){var t=document.cookie.match(new RegExp("(?:^| )".concat(e,"=([^;]*)")));return Promise.resolve(t?t[1]:void 0)}},{key:"startPollingRequests",value:function(){var e=this;this.pollingInterval=1e3,this.requests.loadLatest().then((function(){if(!e.requests.last())throw new Error;e.pollRequests()})).catch((function(t){"requires-authentication"==t.error?e.authentication.request(t.message,t.requires).then((function(){e.startPollingRequests()})):setTimeout((function(){return e.startPollingRequests()}),e.pollingInterval)}))}},{key:"pollRequests",value:function(){var e=this;clearTimeout(this.pollTimeout),this.requests.loadNext().then((function(){e.store.get("preserveLog")||e.requests.setItems(e.requests.all().slice(-1)),e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)})).catch((function(){e.pollTimeout=setTimeout((function(){return e.pollRequests()}),e.pollingInterval)}))}},{key:"throttlePolling",value:function(){var e=this;document.addEventListener("visibilitychange",(function(){e.pollingInterval=document.hidden?6e4:1e3,document.hidden||e.pollRequests()}))}},{key:"settingsChanged",value:function(){}}]),e}(),Ua=function(){function e(t){Object(m["a"])(this,e),this.requests=t,this.username=this.password="",this.shown=!1,this.failed=!1,this.requires=[]}return Object(v["a"])(e,[{key:"attempt",value:function(){var e=this,t={username:this.username,password:this.password};return this.username=this.password="",this.failed=!1,this.requests.client("POST","".concat(this.requests.remoteUrl,"auth"),t).then((function(t){e.shown=!1,e.requests.setAuthenticationToken(t.token),e.requests.items.forEach((function(t){if(t.error&&"requires-authentication"==t.error.error)return e.requests.loadId(t.id)})),e.accept()})).catch((function(t){e.failed=!0}))}},{key:"request",value:function(e,t){var s=this;return this.shown=!0,this.requires=t,this.message=e,new Promise((function(e,t){s.accept=e,s.reject=t}))}}]),e}(),Ja=function(){function e(t){Object(m["a"])(this,e),this.settings=t}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("editorLink",this.filter())}},{key:"filter",value:function(){var e=this;return function(t,s){var a={atom:function(e,t){return"atom://open?url=file://".concat(e,"&line=").concat(t)},phpstorm:function(e,t){return"phpstorm://open?file=".concat(e,"&line=").concat(t)},sublime:function(e,t){return"subl://open?url=file://".concat(e,"&line=").concat(t)},textmate:function(e,t){return"txmt://open?url=file://".concat(e,"&line=").concat(t)},"vs-code":function(e,t){return"vscode://file/".concat(e,":").concat(t)}},n=e.settings.global.editor;if(n&&a[n])return t&&e.settings.site.localPathMap.real&&(t=t.replace(e.settings.site.localPathMap.real,e.settings.site.localPathMap.local)),a[n](t,s)}}}]),e}(),Fa=function(){function e(){Object(m["a"])(this,e),this.load()}return Object(v["a"])(e,[{key:"get",value:function(e,t){return void 0==this.data[e]&&this.set(e,t),this.data[e]}},{key:"set",value:function(e,t){this.data[e]=t,this.save()}},{key:"load",value:function(){try{this.data=JSON.parse(localStorage.getItem("clockwork"))}catch(e){}this.data instanceof Object||(this.data={}),this.data=ht()({},this.defaults(),this.data)}},{key:"save",value:function(){try{localStorage.setItem("clockwork",JSON.stringify(this.data))}catch(e){}}},{key:"defaults",value:function(){return{preserveLog:!0,requestsListCollapsed:!1,requestSidebarCollapsed:!1}}}]),e}(),Ha=(s("6c7b"),s("f559"),function(){function e(t,s){Object(m["a"])(this,e),this.metadata=t,this.functions=s}return Object(v["a"])(e,null,[{key:"parse",value:function(t){return new Promise((function(s,a){s(e.parseSync(t))}))}},{key:"parseSync",value:function(t){var s=this,n={},i=[],r={},o={};t=t.split("\n");var l,c,u,d,h=0;while(void 0!==(l=t[h++]))l.startsWith("fl=")?function(){var e=s.resolveCompressedName(l.match(/fl=(.+)/)[0],r),n=Object(a["a"])(e,2),c=(n[0],n[1]);l=t[h++];var d=s.resolveCompressedName(l.match(/fn=(.+)/)[0],o),f=Object(a["a"])(d,2),p=f[0],m=f[1];l=t[h++];var v=l.split(" ").map((function(e){return parseFloat(e)})),g=v.shift();u=i[p],u||(i[p]=u={name:m,file:c,line:g,invocations:0,self:new Array(v.length).fill(0),inclusive:new Array(v.length).fill(0),callers:[],subCalls:[]}),u.invocations++,u.self=u.self.map((function(e,t){return e+v[t]})),u.inclusive=u.inclusive.map((function(e,t){return e+v[t]}))}():l.startsWith("cfn=")?function(){var e=s.resolveCompressedName(l.match(/cfn=(.+)/)[0],o),n=Object(a["a"])(e,2),r=n[0],c=n[1];l=t[h++],l=t[h++];var f=l.split(" ").map((function(e){return parseFloat(e)})),p=f.shift(),m=i[r];u.inclusive=f.map((function(e,t){return e+(u.inclusive[t]||0)}));var v=m.callers[d];v||(m.callers[d]=v={name:u.name,line:p,calls:0,summed:new Array(f.length).fill(0)}),v.calls++,v.summed=v.summed.map((function(e,t){return e+f[t]}));var g=u.subCalls[r];g||(u.subCalls[r]=g={name:c,line:p,calls:0,summed:new Array(f.length).fill(0)}),g.calls++,g.summed=g.summed.map((function(e,t){return e+f[t]}))}():(c=l.match(/^(.+?): (.+)/))&&(n[c[1]]=c[2]);return new e(n,i.slice(1))}},{key:"resolveCompressedName",value:function(e,t){var s=e.match(/\((\d+)\)(?: (.*))?/),n=Object(a["a"])(s,3),i=(n[0],n[1]),r=n[2];return r&&(t[i]=r),[i,t[i]]}}]),e}()),Ba=function(){function e(t,s){var a=this;Object(m["a"])(this,e),this.requests=t,this.platform=s,this.available=!1,this.loading=!1,this.parsing=!1,this.ready=!1,this.isProfiling=!1,this.metric=0,this.percentual=!1,this.shownFraction=.9,this.request=void 0,this.platform.getCookie("XDEBUG_PROFILE").then((function(e){return a.isProfiling=e}))}return Object(v["a"])(e,[{key:"enableProfiling",value:function(){var e=this;return this.platform.setCookie("XDEBUG_PROFILE","1",2592e3).then((function(){e.isProfiling=!0}))}},{key:"disableProfiling",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.clear(),this.platform.setCookie("XDEBUG_PROFILE","0",0).then((function(){e.isProfiling=!1}))}},{key:"loadRequest",value:function(e){var t=this;if(!this.request||this.request.id!=e.id){if(!e.xdebug||!e.xdebug.profile)return this.clear();if(this.request=e,this.available=this.loading=this.parsing=this.ready=!1,this.summary=this.metadata=this.functions=void 0,this.available=!0,e.xdebug.profileData)return this.parseProfile();this.loading=!0,this.requests.loadExtended(e.id,["xdebug"]).then((function(e){t.loading=!1,t.parseProfile()}))}}},{key:"parseProfile",value:function(){var e=this;this.ready=!1,this.parsing=!0,Ha.parse(this.request.xdebug.profileData).then((function(t){if(!t.metadata.summary)return e.parsing=e.available=!1;e.metadata=t.metadata,e.summary=e.metadata.summary.split(" ");var s=e.shownFraction*e.summary[e.metric];e.functions=t.functions.filter((function(e){return"{main}"!=e.name})).sort((function(t,s){return s.self[e.metric]-t.self[e.metric]})).filter((function(t){return s-=t.self[e.metric],s>0})).map((function(e){return e.fullPath="php:internal"==e.file?"internal":"".concat(e.file,":").concat(e.line),e.shortPath="internal"!=e.fullPath?e.fullPath.split(/[\/\\]/).pop():e.fullPath,e})),e.parsing=!1,e.ready=!0}))}},{key:"clear",value:function(){this.available=this.loading=this.parsing=this.ready=!1,this.metadata=this.functions=void 0}},{key:"showMetric",value:function(e){this.metric=e,this.parseProfile()}},{key:"showPercentual",value:function(e){this.percentual=!0===e||void 0===e}},{key:"setShownFraction",value:function(e){this.shownFraction=e,this.parseProfile()}},{key:"formatMetric",value:function(e){return this.percentual?Math.round(e[this.metric]/this.summary[this.metric]*100)+" %":1==this.metric?Math.round(e[this.metric]/1024)+" kB":Math.round(e[this.metric]/100)/10+" ms"}}]),e}(),za=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.items=[],this.tokens=this.store.get("requests.tokens"),this.query={},this.exclusive={},this.tokens instanceof Object||(this.tokens={})}return Object(v["a"])(e,[{key:"all",value:function(){return this.items}},{key:"findId",value:function(e){return this.items.find((function(t){return t.id==e}))}},{key:"loadId",value:function(e,t){var s=this,a=this.findId(e);return a?t=a:!1!==t&&(t=t||La.placeholder(e),this.items.push(t)),t&&(t.loading=!0),this.load(e,(function(e){return e.then((function(e){return t?t.resolve(e[0]):s.items.push(e[0]),s.sort(),t||e[0]})).catch((function(e){t&&t.resolveWithError(e)}))}))}},{key:"loadExtended",value:function(e,t){var s=this.findId(e);return this.load("".concat(e,"/extended"),(function(e){return e.then((function(e){return s.extend(e[0],t)})).catch((function(e){}))}))}},{key:"loadLatest",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.load("latest",(function(s){return s.then((function(s){return t&&e.merge(s),s[0]}))}),t)}},{key:"returnLatest",value:function(){return this.loadLatest(!1)}},{key:"loadNext",value:function(e,t){var s,a=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t=t||(null===(s=this.last((function(e){return!e.loading})))||void 0===s?void 0:s.id),t?this.load("".concat(t,"/next")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return n&&a.merge(e),e})).catch((function(e){}))}),n):Promise.resolve([])}},{key:"returnNext",value:function(e,t){return this.loadNext(e,t,!1)}},{key:"loadPrevious",value:function(e,t){var s=this,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t||this.items.length?(t=t||this.first((function(e){return!e.loading})).id,this.load("".concat(t,"/previous")+(e?"/".concat(e):""),(function(e){return e.then((function(e){return a&&s.merge(e),e})).catch((function(e){}))}),a)):Promise.resolve([])}},{key:"returnPrevious",value:function(e,t){return this.loadPrevious(e,t,!1)}},{key:"clear",value:function(){this.items.splice(0)}},{key:"merge",value:function(e){var t=this;e=e.filter((function(e){return!t.findId(e.id)})),e.length&&(this.items=this.items.concat(e),this.sort())}},{key:"sort",value:function(){this.items=this.items.sort((function(e,t){return e.time-t.time}))}},{key:"first",value:function(e){return e?this.items.find(e):this.items[0]}},{key:"last",value:function(e){return e?this.items.slice().reverse().find(e):this.items[this.items.length-1]}},{key:"setClient",value:function(e){this.client=e}},{key:"setItems",value:function(e){this.items=e}},{key:"setRemote",value:function(e,t){t=t||{},t.path=t.path||"/__clockwork/",e=new Ma.a(e);var s=t.path.split("?"),n=Object(a["a"])(s,2),i=n[0],r=n[1];e.pathname(i||""),e.query(r||""),e.hash(""),this.remoteUrl=e.toString(),this.remoteHeaders=t.headers||{}}},{key:"setAuthenticationToken",value:function(e){this.tokens[this.remoteUrl]=e,this.store.set("requests.tokens",this.tokens)}},{key:"setQuery",value:function(e){this.query=e}},{key:"withQuery",value:function(e,t){var s=this.query;this.query=e,t(),this.query=s}},{key:"load",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(s)return this.loadExclusive(e,t);var a=Ma()("".concat(this.remoteUrl).concat(e)).addQuery(this.query).toString(),n=Object.assign({},this.remoteHeaders,{"X-Clockwork-Auth":this.tokens[this.remoteUrl]});return t(this.client("GET",a,{},n).then((function(e){return e?(e instanceof Array?e:[e]).map((function(e){return new La(e)})):[]})))}},{key:"loadExclusive",value:function(e,t){var s=this;return this.exclusive[e]?this.exclusive[e]:this.exclusive[e]=this.load(e,t).finally((function(){return s.exclusive[e]=null}))}}]),e}(),Va=(s("8e6e"),s("bd86")),Wa=(s("386d"),s("2fd4")),Ka=s.n(Wa),Ga=s("c1df"),Xa=s.n(Ga);function Ya(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function Za(e){for(var t=1;t=100&&e<600}},{tag:"time"},{tag:"received",validate:function(e){return Xa()(e).isValid()}},{tag:"type",validate:function(e){return["command","queue-job","request"].includes(e)}}],this.shown=!1,this.input="",this.searchDebounced=Ka()((function(){return s.search()}),500)}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown,this.shown?$e["a"].nextTick((function(){return document.querySelector(".requests-search input").focus()})):(this.input="",this.search())}},{key:"search",value:function(){var e=this,t=this.tokenize(this.input),s=t.terms,n=t.tags;n=Object.entries(n).filter((function(t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return n=e.tags.find((function(e){return e.tag==n})),n&&(!n.validate||i.every((function(e){return n.validate(e)})))})).reduce((function(e,t){var s=Object(a["a"])(t,2),n=s[0],i=s[1];return e["".concat(n,"[]")]=i,e}),{}),this.requests.setQuery(s.length||Object.keys(n).length?Za({"uri[]":s,"name[]":s},n):{}),this.requests.returnLatest().then((function(t){e.requests.returnPrevious(9,t.id).then((function(s){e.requests.setItems(s?[].concat(Object(Da["a"])(s),[t]):[t])}))})).catch((function(){e.requests.clear()}))}},{key:"tokenize",value:function(e){var t,s=[],a={},n=/(\w+:)?("[^"]*"|[^\s]+)/g;while(t=n.exec(e)){var i=t[1]?t[1].substr(0,t[1].length-1):void 0,r=t[2];(t=r.match(/^"(.+?)"$/))&&(r=t[1]),i?(a[i]||(a[i]=[]),a[i].push(r)):s.push(r)}return{terms:s,tags:a}}}]),e}(),tn=s("5c9a"),sn=s.n(tn),an=function(){function e(t,s,a){Object(m["a"])(this,e),this.store=t,this.requests=s,this.platform=a,this.shown=!1,this.settings={},this.load()}return Object(v["a"])(e,[{key:"toggle",value:function(){this.shown=!this.shown}},{key:"save",value:function(){this.store.set("settings",this.settings),this.platform.settingsChanged()}},{key:"load",value:function(){var e=this.defaults(),t=this.store.get("settings",{});this.settings={global:ht()(!0,e.global,t.global||{}),site:sn()(t.site||{},(function(t){return ht()(!0,{},e.site,t||{})}))}}},{key:"defaults",value:function(){return{global:{appearance:"auto",editor:null,showIncomingRequests:!0,hideCommandTypeRequests:this.platform instanceof Qa,hideQueueJobTypeRequests:this.platform instanceof Qa,hideTestTypeRequests:this.platform instanceof Qa,timelineHiddenTags:{},seenReleaseNotesVersion:null},site:{localPathMap:{real:null,local:null}}}}},{key:"global",get:function(){return this.settings.global}},{key:"site",get:function(){return this.settings.site[this.requests.remoteUrl]||(this.settings.site[this.requests.remoteUrl]=ht()(!0,{},this.defaults().site)),this.settings.site[this.requests.remoteUrl]}}]),e}(),nn=function(){function e(){Object(m["a"])(this,e)}return Object(v["a"])(e,[{key:"register",value:function(){$e["a"].filter("round",this.round),$e["a"].filter("shortClass",this.shortClass)}},{key:"round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(parseFloat(e).toFixed(t))}},{key:"shortClass",value:function(e){return e?e.split("\\").pop():""}}]),e}(),rn=function(){function e(t){Object(m["a"])(this,e),this.store=t,this.serverVersion=null}return Object(v["a"])(e,[{key:"latest",value:function(){return{version:"4.0.0",url:"https://underground.works/blog/clockwork-4.0-released-with-ui-improvements-requests-search-and-more"}}},{key:"show",value:function(e){if(!this.ignoresUpdate(e)&&this.serverVersion)return 1==this.versionCompare(this.latest().version,this.serverVersion)?{version:this.latest().version,url:this.latest().url,currentVersion:this.serverVersion}:void 0}},{key:"ignoresUpdate",value:function(e){var t=this.ignoredUpdates[e];return t&&this.versionCompare(t,this.latest().version)>=0}},{key:"ignoreUpdate",value:function(e){var t=this.ignoredUpdates;t[e]=this.latest().version,this.store.set("update-notification.ignored-updates",t)}},{key:"versionCompare",value:function(e,t){e=e.split(".").map((function(e){return parseInt(e)})),t=t.split(".").map((function(e){return parseInt(e)}));for(var s=0;st[s])return 1;if(!e[s]&&t[s]||e[s] Date: Mon, 6 Apr 2020 21:09:54 +0200 Subject: [PATCH 75/75] Bumped version to 4.1, updated changelog. --- CHANGELOG.md | 2 +- Clockwork/Clockwork.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb04d512..69562602 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -4.1 (unreleased) +4.1 - added support for command type requests with command specific metadata (commandName, commandArguments, commandArgumentsDefaults, commandOptions, commandOptionsDefaults, commandExitCode, commandOutput) - added support for collecting executed artisan commands in Laravel integration diff --git a/Clockwork/Clockwork.php b/Clockwork/Clockwork.php index 76e9c2d1..c746b561 100644 --- a/Clockwork/Clockwork.php +++ b/Clockwork/Clockwork.php @@ -21,7 +21,7 @@ class Clockwork implements LoggerInterface /** * Clockwork version */ - const VERSION = '4.1-dev'; + const VERSION = '4.1'; /** * Array of data sources, these objects provide data to be stored in a request object

A>(+a@)M9;z7$Ua^D3 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ⅅidJ% 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