diff --git a/.gitignore b/.gitignore index 06a8723c5c1..7683324c35e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,10 +9,10 @@ Homestead.yaml .idea npm-debug.log yarn-error.log -/public/dist +/public/dist/*.map /public/plugins -/public/css -/public/js +/public/css/*.map +/public/js/*.map /public/bower /public/build/ /public/favicon.ico diff --git a/app/Activity/Controllers/TagApiController.php b/app/Activity/Controllers/TagApiController.php index f5c5e95d420..c1ec84a3851 100644 --- a/app/Activity/Controllers/TagApiController.php +++ b/app/Activity/Controllers/TagApiController.php @@ -37,8 +37,7 @@ protected function rules(): array */ public function listNames(): JsonResponse { - $tagQuery = $this->tagRepo - ->queryWithTotalsForApi(''); + $tagQuery = $this->tagRepo->queryWithTotalsForApi(''); return $this->apiListingResponse($tagQuery, [ 'name', 'values', 'usages', 'page_count', 'chapter_count', 'book_count', 'shelf_count', diff --git a/app/Activity/TagRepo.php b/app/Activity/TagRepo.php index 3e8d5545ab6..c68d11c4b44 100644 --- a/app/Activity/TagRepo.php +++ b/app/Activity/TagRepo.php @@ -56,8 +56,7 @@ protected function baseQueryWithTotals(string $nameFilter, string $searchTerm): DB::raw('CAST(SUM(IF(entity_type = \'chapter\', 1, 0)) as UNSIGNED) as chapter_count'), DB::raw('CAST(SUM(IF(entity_type = \'book\', 1, 0)) as UNSIGNED) as book_count'), DB::raw('CAST(SUM(IF(entity_type = \'bookshelf\', 1, 0)) as UNSIGNED) as shelf_count'), - ]) - ->whereHas('entity'); + ]); if ($nameFilter) { $query->where('name', '=', $nameFilter); diff --git a/app/Exports/ZipExports/Models/ZipExportAttachment.php b/app/Exports/ZipExports/Models/ZipExportAttachment.php index 1611866875b..bfdbd934d94 100644 --- a/app/Exports/ZipExports/Models/ZipExportAttachment.php +++ b/app/Exports/ZipExports/Models/ZipExportAttachment.php @@ -49,6 +49,10 @@ public static function validate(ZipValidationHelper $context, array $data): arra 'file' => ['required_without:link', 'nullable', 'string', $context->fileReferenceRule()], ]; + if (isset($data['file']) && is_string($data['file'])) { + $context->trackUseOfFile($data['file']); + } + return $context->validateData($data, $rules); } diff --git a/app/Exports/ZipExports/Models/ZipExportBook.php b/app/Exports/ZipExports/Models/ZipExportBook.php index 006a6b2d2f5..f79e2610d3f 100644 --- a/app/Exports/ZipExports/Models/ZipExportBook.php +++ b/app/Exports/ZipExports/Models/ZipExportBook.php @@ -93,6 +93,10 @@ public static function validate(ZipValidationHelper $context, array $data): arra 'chapters' => ['array'], ]; + if (isset($data['cover']) && is_string($data['cover'])) { + $context->trackUseOfFile($data['cover']); + } + $errors = $context->validateData($data, $rules); $errors['tags'] = $context->validateRelations($data['tags'] ?? [], ZipExportTag::class); $errors['pages'] = $context->validateRelations($data['pages'] ?? [], ZipExportPage::class); diff --git a/app/Exports/ZipExports/Models/ZipExportImage.php b/app/Exports/ZipExports/Models/ZipExportImage.php index 1432e6cf0d8..22a57b07f88 100644 --- a/app/Exports/ZipExports/Models/ZipExportImage.php +++ b/app/Exports/ZipExports/Models/ZipExportImage.php @@ -39,6 +39,10 @@ public static function validate(ZipValidationHelper $context, array $data): arra 'type' => ['required', 'string', Rule::in(['gallery', 'drawio'])], ]; + if (isset($data['file']) && is_string($data['file'])) { + $context->trackUseOfFile($data['file']); + } + return $context->validateData($data, $rules); } diff --git a/app/Exports/ZipExports/ZipExportValidator.php b/app/Exports/ZipExports/ZipExportValidator.php index 889804f2013..73dee1d7aaf 100644 --- a/app/Exports/ZipExports/ZipExportValidator.php +++ b/app/Exports/ZipExports/ZipExportValidator.php @@ -37,7 +37,38 @@ public function validate(): array return ['format' => trans('errors.import_zip_no_data')]; } - return $this->flattenModelErrors($modelErrors, $keyPrefix); + $errors = $this->flattenModelErrors($modelErrors, $keyPrefix); + $fileErrors = $this->validateFileUse($helper); + + return array_merge($errors, $fileErrors); + } + + /** + * Validate the use of in-ZIP files at a global view. + * (Per-file validation will already be done at a per-model level). + * This validates the total size of all files, considering all uses within the ZIP. + * Note: This only validates the declared post-extract file sizes. Actual file sizes could be different, + * and should be validated against the declared sizes during extraction. + */ + protected function validateFileUse(ZipValidationHelper $helper): array + { + $fileUses = $helper->getFileReferenceUses(); + $totalSize = 0; + foreach ($fileUses as $file) { + $size = max(0, $this->reader->fileSize($file)); + $totalSize += $size; + } + + // Allow up to 5x the single item app upload limit + // Since the ZIP itself will be validated at 1x, and an import is expected to be a creation of multiple + // items, so this leaves a little room post de-compression. + $maxAllowedMB = max(intval(config()->get('app.upload_limit')), 1) * 5; + $maxAllowedBytes = $maxAllowedMB * 1000000; + if ($totalSize > $maxAllowedBytes) { + return ['files' => trans('validation.zip_files_total_size', ['size' => $maxAllowedMB])]; + } + + return []; } protected function flattenModelErrors(array $errors, string $keyPrefix): array diff --git a/app/Exports/ZipExports/ZipValidationHelper.php b/app/Exports/ZipExports/ZipValidationHelper.php index 2bcb5fb9747..3c677ed0771 100644 --- a/app/Exports/ZipExports/ZipValidationHelper.php +++ b/app/Exports/ZipExports/ZipValidationHelper.php @@ -17,6 +17,14 @@ class ZipValidationHelper */ protected array $validatedIds = []; + /** + * Local store of ZIP file references used during validation. + * This may contain (and is expected to support) duplicates in the event multiple items reference the same file. + * This is used for late-stage validation for file size limits. + * @var string[] + */ + protected array $fileReferenceUses = []; + public function __construct( public ZipExportReader $zipReader, ) { @@ -44,6 +52,11 @@ public function imageFileReferenceRule(): ZipFileReferenceRule return new ZipFileReferenceRule($this, ImageService::getSupportedMimeTypes()); } + public function trackUseOfFile(string $file): void + { + $this->fileReferenceUses[] = $file; + } + public function uniqueIdRule(string $type): ZipUniqueIdRule { return new ZipUniqueIdRule($this, $type); @@ -61,6 +74,14 @@ public function hasIdBeenUsed(string $type, mixed $id): bool return false; } + /** + * @return string[] + */ + public function getFileReferenceUses(): array + { + return $this->fileReferenceUses; + } + /** * Validate an array of relation data arrays that are expected * to be for the given ZipExportModel. diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index 7c8689b8bcd..ce7d9af0137 100644 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -18,7 +18,5 @@ class VerifyCsrfToken extends Middleware * * @var array */ - protected $except = [ - 'saml2/*', - ]; + protected $except = []; } diff --git a/app/Permissions/PermissionApplicator.php b/app/Permissions/PermissionApplicator.php index 0ba210d371b..0b779e850b4 100644 --- a/app/Permissions/PermissionApplicator.php +++ b/app/Permissions/PermissionApplicator.php @@ -3,7 +3,6 @@ namespace BookStack\Permissions; use BookStack\App\Model; -use BookStack\Entities\EntityProvider; use BookStack\Entities\Models\Entity; use BookStack\Entities\Models\Page; use BookStack\Permissions\Models\EntityPermission; @@ -11,7 +10,6 @@ use BookStack\Users\Models\User; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Query\Builder as QueryBuilder; -use Illuminate\Database\Query\JoinClause; use InvalidArgumentException; class PermissionApplicator @@ -137,7 +135,6 @@ public function restrictEntityRelationQuery(Builder $query, string $tableName, s return $this->restrictEntityQuery($query) ->where(function ($query) use ($tableDetails, $pageMorphClass) { - /** @var Builder $query */ $query->where($tableDetails['entityTypeColumn'], '!=', $pageMorphClass) ->orWhereExists(function (QueryBuilder $query) use ($tableDetails, $pageMorphClass) { $query->select('page_id')->from('entity_page_data') @@ -145,44 +142,14 @@ public function restrictEntityRelationQuery(Builder $query, string $tableName, s ->where($tableDetails['tableName'] . '.' . $tableDetails['entityTypeColumn'], '=', $pageMorphClass) ->where('entity_page_data.draft', '=', false); }); + })->whereExists(function (QueryBuilder $query) use ($tableDetails) { + $query->select('id')->from('entities') + ->whereColumn('entities.id', '=', $tableDetails['tableName'] . '.' . $tableDetails['entityIdColumn']) + ->whereColumn('entities.type', '=', $tableDetails['tableName'] . '.' . $tableDetails['entityTypeColumn']) + ->whereNull('entities.deleted_at'); }); } - /** - * Filter out items that have related entity relations where - * the entity is marked as deleted. - */ - public function filterDeletedFromEntityRelationQuery(Builder $query, string $tableName, string $entityIdColumn, string $entityTypeColumn): Builder - { - $tableDetails = ['tableName' => $tableName, 'entityIdColumn' => $entityIdColumn, 'entityTypeColumn' => $entityTypeColumn]; - $entityProvider = new EntityProvider(); - - $joinQuery = function ($query) use ($entityProvider) { - $first = true; - foreach ($entityProvider->all() as $entity) { - /** @var Builder $query */ - $entityQuery = function ($query) use ($entity) { - $query->select(['id', 'deleted_at']) - ->selectRaw("'{$entity->getMorphClass()}' as type") - ->from($entity->getTable()) - ->whereNotNull('deleted_at'); - }; - - if ($first) { - $entityQuery($query); - $first = false; - } else { - $query->union($entityQuery); - } - } - }; - - return $query->leftJoinSub($joinQuery, 'deletions', function (JoinClause $join) use ($tableDetails) { - $join->on($tableDetails['tableName'] . '.' . $tableDetails['entityIdColumn'], '=', 'deletions.id') - ->on($tableDetails['tableName'] . '.' . $tableDetails['entityTypeColumn'], '=', 'deletions.type'); - })->whereNull('deletions.deleted_at'); - } - /** * Add conditions to a query for a model that's a relation of a page, so only the model results * on visible pages are returned by the query. diff --git a/app/Uploads/AttachmentService.php b/app/Uploads/AttachmentService.php index 3de84bdd0a8..f30aad26b20 100644 --- a/app/Uploads/AttachmentService.php +++ b/app/Uploads/AttachmentService.php @@ -3,7 +3,9 @@ namespace BookStack\Uploads; use BookStack\Exceptions\FileUploadException; +use BookStack\Exceptions\NotFoundException; use Exception; +use Illuminate\Database\Eloquent\ModelNotFoundException; use Symfony\Component\HttpFoundation\File\UploadedFile; class AttachmentService @@ -13,6 +15,20 @@ public function __construct( ) { } + /** + * Get an attachment by ID, ensuring it is visible to the current user. + * + * @throws NotFoundException + */ + public function getVisibleAttachmentOrFail(string $id): Attachment + { + try { + return Attachment::visible()->findOrFail(intval($id)); + } catch (ModelNotFoundException) { + throw new NotFoundException(trans('errors.attachment_not_found')); + } + } + /** * Stream an attachment from storage. * diff --git a/app/Uploads/Controllers/AttachmentController.php b/app/Uploads/Controllers/AttachmentController.php index e1da0c72df6..930763ad908 100644 --- a/app/Uploads/Controllers/AttachmentController.php +++ b/app/Uploads/Controllers/AttachmentController.php @@ -9,7 +9,6 @@ use BookStack\Exceptions\NotFoundException; use BookStack\Http\Controller; use BookStack\Permissions\Permission; -use BookStack\Uploads\Attachment; use BookStack\Uploads\AttachmentService; use BookStack\Util\UrlFilter; use Exception; @@ -61,6 +60,7 @@ public function upload(Request $request) * Update an uploaded attachment. * * @throws ValidationException + * @throws NotFoundException */ public function uploadUpdate(Request $request, $attachmentId) { @@ -68,9 +68,7 @@ public function uploadUpdate(Request $request, $attachmentId) 'file' => array_merge(['required'], $this->attachmentService->getFileValidationRules()), ]); - /** @var Attachment $attachment */ - $attachment = Attachment::query()->findOrFail($attachmentId); - $this->checkOwnablePermission(Permission::PageView, $attachment->page); + $attachment = $this->attachmentService->getVisibleAttachmentOrFail($attachmentId); $this->checkOwnablePermission(Permission::PageUpdate, $attachment->page); $this->checkOwnablePermission(Permission::AttachmentUpdate, $attachment); @@ -87,13 +85,13 @@ public function uploadUpdate(Request $request, $attachmentId) /** * Get the update form for an attachment. + * + * @throws NotFoundException */ public function getUpdateForm(string $attachmentId) { - /** @var Attachment $attachment */ - $attachment = Attachment::query()->findOrFail($attachmentId); + $attachment = $this->attachmentService->getVisibleAttachmentOrFail($attachmentId); - $this->checkOwnablePermission(Permission::PageView, $attachment->page); $this->checkOwnablePermission(Permission::PageUpdate, $attachment->page); $this->checkOwnablePermission(Permission::AttachmentUpdate, $attachment); @@ -104,12 +102,12 @@ public function getUpdateForm(string $attachmentId) /** * Update the details of an existing file. + * + * @throws NotFoundException */ public function update(Request $request, string $attachmentId) { - /** @var Attachment $attachment */ - $attachment = Attachment::query()->findOrFail($attachmentId); - $this->checkOwnablePermission(Permission::PageView, $attachment->page); + $attachment = $this->attachmentService->getVisibleAttachmentOrFail($attachmentId); $this->checkOwnablePermission(Permission::PageUpdate, $attachment->page); $this->checkOwnablePermission(Permission::AttachmentUpdate, $attachment); @@ -213,14 +211,7 @@ public function sortForPage(Request $request, int $pageId) */ public function get(Request $request, string $attachmentId) { - /** @var Attachment $attachment */ - $attachment = Attachment::query()->findOrFail($attachmentId); - - try { - $page = $this->pageQueries->findVisibleByIdOrFail($attachment->uploaded_to); - } catch (NotFoundException $exception) { - throw new NotFoundException(trans('errors.attachment_not_found')); - } + $attachment = $this->attachmentService->getVisibleAttachmentOrFail($attachmentId); if ($attachment->external) { $url = (new UrlFilter($attachment->path))->clean(); @@ -245,15 +236,7 @@ public function get(Request $request, string $attachmentId) */ public function delete(string $attachmentId) { - /** @var Attachment $attachment */ - $attachment = Attachment::query()->findOrFail($attachmentId); - - try { - $this->pageQueries->findVisibleByIdOrFail($attachment->uploaded_to); - } catch (NotFoundException $exception) { - throw new NotFoundException(trans('errors.attachment_not_found')); - } - + $attachment = $this->attachmentService->getVisibleAttachmentOrFail($attachmentId); $this->checkOwnablePermission(Permission::AttachmentDelete, $attachment); $this->attachmentService->deleteFile($attachment); diff --git a/app/Users/Controllers/UserAccountController.php b/app/Users/Controllers/UserAccountController.php index 8a5fd53129c..39aa54b2ae0 100644 --- a/app/Users/Controllers/UserAccountController.php +++ b/app/Users/Controllers/UserAccountController.php @@ -130,7 +130,6 @@ public function showNotifications(PermissionApplicator $permissions) $query = user()->watches()->getQuery(); $query = $permissions->restrictEntityRelationQuery($query, 'watches', 'watchable_id', 'watchable_type'); - $query = $permissions->filterDeletedFromEntityRelationQuery($query, 'watches', 'watchable_id', 'watchable_type'); $watches = $query->with('watchable')->paginate(20); $this->setPageTitle(trans('preferences.notifications')); @@ -226,7 +225,6 @@ public function updatePassword(Request $request) ]); $this->userRepo->update(user(), $validated, false); - $this->showSuccessNotification(trans('preferences.auth_change_password_success')); return redirect('/my-account/auth'); diff --git a/app/Users/UserRepo.php b/app/Users/UserRepo.php index 586fecdc55e..300e39ab47e 100644 --- a/app/Users/UserRepo.php +++ b/app/Users/UserRepo.php @@ -147,6 +147,7 @@ public function updateWithoutActivity(User $user, array $data, bool $manageUsers if (!empty($data['password'])) { $user->password = Hash::make($data['password']); + $user->setRememberToken(Str::random(60)); } if (!empty($data['language'])) { diff --git a/composer.lock b/composer.lock index b096c1e1f2f..d7658129382 100644 --- a/composer.lock +++ b/composer.lock @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.398.2", + "version": "3.401.3", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "46b99f035965af7769750dd0a46a2f8a0b8880d9" + "reference": "7b8541e8a4f09cf4375eeef4de6c638dfb2dadbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/46b99f035965af7769750dd0a46a2f8a0b8880d9", - "reference": "46b99f035965af7769750dd0a46a2f8a0b8880d9", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7b8541e8a4f09cf4375eeef4de6c638dfb2dadbb", + "reference": "7b8541e8a4f09cf4375eeef4de6c638dfb2dadbb", "shasum": "" }, "require": { @@ -153,9 +153,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.398.2" + "source": "https://github.com/aws/aws-sdk-php/tree/3.401.3" }, - "time": "2026-09-28T18:18:23+00:00" + "time": "2026-10-19T18:11:47+00:00" }, { "name": "bacon/bacon-qr-code", @@ -563,16 +563,16 @@ }, { "name": "doctrine/lexer", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e96fe45e92a54233726014a7cc7340abf29bb14c" + "reference": "71d305eaa6480d3d3460c7d053d1da7749fa9cca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e96fe45e92a54233726014a7cc7340abf29bb14c", - "reference": "e96fe45e92a54233726014a7cc7340abf29bb14c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/71d305eaa6480d3d3460c7d053d1da7749fa9cca", + "reference": "71d305eaa6480d3d3460c7d053d1da7749fa9cca", "shasum": "" }, "require": { @@ -618,7 +618,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/3.0.2" + "source": "https://github.com/doctrine/lexer/tree/3.0.3" }, "funding": [ { @@ -634,7 +634,7 @@ "type": "tidelift" } ], - "time": "2026-06-14T20:44:06+00:00" + "time": "2026-10-01T06:59:29+00:00" }, { "name": "dompdf/dompdf", @@ -793,16 +793,16 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013" + "reference": "4189372ffeff09bf14f731f67a9de90c7b413ebe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013", - "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/4189372ffeff09bf14f731f67a9de90c7b413ebe", + "reference": "4189372ffeff09bf14f731f67a9de90c7b413ebe", "shasum": "" }, "require": { @@ -813,8 +813,8 @@ }, "require-dev": { "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^1.12.32|^2.1.31", - "phpunit/phpunit": "^8.5.48|^9.0" + "phpstan/phpstan": "^2.1.31", + "phpunit/phpunit": "^11.5.43 || ^12.4" }, "type": "library", "extra": { @@ -845,7 +845,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.0" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.1" }, "funding": [ { @@ -853,7 +853,7 @@ "type": "github" } ], - "time": "2025-10-31T18:51:33+00:00" + "time": "2026-10-19T17:53:57+00:00" }, { "name": "egulias/email-validator", @@ -1192,22 +1192,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.15.5", + "version": "7.16.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a" + "reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a", - "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ffb62ec787050ae4fa9449cdd6b80335db69bda2", + "reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^2.5.3", - "guzzlehttp/psr7": "^2.13.1", + "guzzlehttp/promises": "^2.6", + "guzzlehttp/psr7": "^2.13.2", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.5 || ^3.0", @@ -1300,7 +1300,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.15.5" + "source": "https://github.com/guzzle/guzzle/tree/7.16.0" }, "funding": [ { @@ -1316,20 +1316,20 @@ "type": "tidelift" } ], - "time": "2026-08-24T09:21:06+00:00" + "time": "2026-10-18T13:38:36+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.5.3", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1" + "reference": "3d88c829bd5f13d13847b39067dbf09a60af2154" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/cde49999552d185d64715fe9c1f77a2aadd2f9f1", - "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1", + "url": "https://api.github.com/repos/guzzle/promises/zipball/3d88c829bd5f13d13847b39067dbf09a60af2154", + "reference": "3d88c829bd5f13d13847b39067dbf09a60af2154", "shasum": "" }, "require": { @@ -1384,7 +1384,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.5.3" + "source": "https://github.com/guzzle/promises/tree/2.6.0" }, "funding": [ { @@ -1400,20 +1400,20 @@ "type": "tidelift" } ], - "time": "2026-08-24T09:11:28+00:00" + "time": "2026-10-18T12:46:59+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.13.1", + "version": "2.13.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "95e7828100de18b4e269fb1703be530082d5166d" + "reference": "adee536f95101929f262b8c59e8a61472f347d58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/95e7828100de18b4e269fb1703be530082d5166d", - "reference": "95e7828100de18b4e269fb1703be530082d5166d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/adee536f95101929f262b8c59e8a61472f347d58", + "reference": "adee536f95101929f262b8c59e8a61472f347d58", "shasum": "" }, "require": { @@ -1503,7 +1503,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.13.1" + "source": "https://github.com/guzzle/psr7/tree/2.13.2" }, "funding": [ { @@ -1519,7 +1519,7 @@ "type": "tidelift" } ], - "time": "2026-08-24T09:13:11+00:00" + "time": "2026-10-17T23:49:46+00:00" }, { "name": "guzzlehttp/uri-template", @@ -1677,16 +1677,16 @@ }, { "name": "intervention/image", - "version": "3.11.9", + "version": "3.11.10", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "43ecd1ae23625a10ce5cb4a7427354b50113f7f1" + "reference": "af6e5cfa403233cec4c4347e475addcbdc5b8f07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/43ecd1ae23625a10ce5cb4a7427354b50113f7f1", - "reference": "43ecd1ae23625a10ce5cb4a7427354b50113f7f1", + "url": "https://api.github.com/repos/Intervention/image/zipball/af6e5cfa403233cec4c4347e475addcbdc5b8f07", + "reference": "af6e5cfa403233cec4c4347e475addcbdc5b8f07", "shasum": "" }, "require": { @@ -1733,7 +1733,7 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/3.11.9" + "source": "https://github.com/Intervention/image/tree/3.11.10" }, "funding": [ { @@ -1749,7 +1749,7 @@ "type": "ko_fi" } ], - "time": "2026-09-26T06:42:25+00:00" + "time": "2026-10-05T12:21:16+00:00" }, { "name": "knplabs/knp-snappy", @@ -1820,16 +1820,16 @@ }, { "name": "laravel/framework", - "version": "v12.69.3", + "version": "v12.70.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717" + "reference": "4a4554f4d81f4095c8ff1911ec8a58144b0ed71b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/58ea544a2a80dc03c168e13a5dc9a1d176a88717", - "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717", + "url": "https://api.github.com/repos/laravel/framework/zipball/4a4554f4d81f4095c8ff1911ec8a58144b0ed71b", + "reference": "4a4554f4d81f4095c8ff1911ec8a58144b0ed71b", "shasum": "" }, "require": { @@ -1942,10 +1942,10 @@ "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.9.0", + "orchestra/testbench-core": "^10.15.0", "pda/pheanstalk": "^5.0.6|^7.0.0", "php-http/discovery": "^1.15", - "phpstan/phpstan": "^2.1.41", + "phpstan/phpstan": "2.2.13", "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", "predis/predis": "^2.3|^3.0", "resend/resend-php": "^0.10.0|^1.0", @@ -2038,20 +2038,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-09-29T12:53:25+00:00" + "time": "2026-10-13T13:24:10+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.24", + "version": "v0.3.26", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "5d3cdef29e93ca3b62b1871359db3078cd99908b" + "reference": "2d1e9bf6bab8d3f383c254db7f2b4ea8816d55e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/5d3cdef29e93ca3b62b1871359db3078cd99908b", - "reference": "5d3cdef29e93ca3b62b1871359db3078cd99908b", + "url": "https://api.github.com/repos/laravel/prompts/zipball/2d1e9bf6bab8d3f383c254db7f2b4ea8816d55e0", + "reference": "2d1e9bf6bab8d3f383c254db7f2b4ea8816d55e0", "shasum": "" }, "require": { @@ -2094,10 +2094,9 @@ ], "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { - "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.24" + "source": "https://github.com/laravel/prompts/tree/v0.3.26" }, - "time": "2026-08-20T12:55:36+00:00" + "time": "2026-10-09T14:45:13+00:00" }, { "name": "laravel/serializable-closure", @@ -2300,16 +2299,16 @@ }, { "name": "league/commonmark", - "version": "2.10.3", + "version": "2.10.4", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "6efbd9c472b91db0a3350fcd601c8332c2382e1f" + "reference": "40821b7606d8d946bac57dbd2290076c722e3a65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6efbd9c472b91db0a3350fcd601c8332c2382e1f", - "reference": "6efbd9c472b91db0a3350fcd601c8332c2382e1f", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/40821b7606d8d946bac57dbd2290076c722e3a65", + "reference": "40821b7606d8d946bac57dbd2290076c722e3a65", "shasum": "" }, "require": { @@ -2403,7 +2402,7 @@ "type": "tidelift" } ], - "time": "2026-09-21T13:07:34+00:00" + "time": "2026-10-17T19:59:50+00:00" }, { "name": "league/config", @@ -2676,16 +2675,16 @@ }, { "name": "league/html-to-markdown", - "version": "5.1.2", + "version": "5.2.3", "source": { "type": "git", "url": "https://github.com/thephpleague/html-to-markdown.git", - "reference": "db234ecdb160b9d2b422c1c130db4b01eb3e9e24" + "reference": "905eb9374feee6cedf9b972fc47c7c26a86bbec1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/db234ecdb160b9d2b422c1c130db4b01eb3e9e24", - "reference": "db234ecdb160b9d2b422c1c130db4b01eb3e9e24", + "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/905eb9374feee6cedf9b972fc47c7c26a86bbec1", + "reference": "905eb9374feee6cedf9b972fc47c7c26a86bbec1", "shasum": "" }, "require": { @@ -2698,6 +2697,7 @@ "phpstan/phpstan": "^1.8.8 || ^2.0", "phpunit/phpunit": "^8.5 || ^9.2 || ^10.5 || ^11.0 || ^12.0 || ^13.0", "scrutinizer/ocular": "^1.6", + "symfony/process": "^5.4 || ^6.0 || ^7.0 || ^8.0", "unleashedtech/php-coding-standard": "^2.7 || ^3.0", "vimeo/psalm": "^4.22 || ^5.0 || ^6.0" }, @@ -2707,7 +2707,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.2-dev" + "dev-master": "5.3-dev" } }, "autoload": { @@ -2741,7 +2741,7 @@ ], "support": { "issues": "https://github.com/thephpleague/html-to-markdown/issues", - "source": "https://github.com/thephpleague/html-to-markdown/tree/5.1.2" + "source": "https://github.com/thephpleague/html-to-markdown/tree/5.2.3" }, "funding": [ { @@ -2761,7 +2761,7 @@ "type": "tidelift" } ], - "time": "2026-09-07T13:53:32+00:00" + "time": "2026-10-19T04:13:34+00:00" }, { "name": "league/mime-type-detection", @@ -2963,20 +2963,21 @@ }, { "name": "league/uri", - "version": "7.8.1", + "version": "7.9.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "08cf38e3924d4f56238125547b5720496fac8fd4" + "reference": "fcc872a3d872aa13f935e0cd1887b9abb06da07f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4", - "reference": "08cf38e3924d4f56238125547b5720496fac8fd4", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/fcc872a3d872aa13f935e0cd1887b9abb06da07f", + "reference": "fcc872a3d872aa13f935e0cd1887b9abb06da07f", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.8.1", + "ext-mbstring": "*", + "league/uri-interfaces": "^7.9.0", "php": "^8.1", "psr/http-factory": "^1" }, @@ -3049,7 +3050,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.8.1" + "source": "https://github.com/thephpleague/uri/tree/7.9.0" }, "funding": [ { @@ -3057,20 +3058,20 @@ "type": "github" } ], - "time": "2026-03-15T20:22:25+00:00" + "time": "2026-10-16T15:19:33+00:00" }, { "name": "league/uri-interfaces", - "version": "7.8.1", + "version": "7.9.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928" + "reference": "eb5f6d24e6a4fe0a8e9c78ded4eb1dfff1404f58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928", - "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/eb5f6d24e6a4fe0a8e9c78ded4eb1dfff1404f58", + "reference": "eb5f6d24e6a4fe0a8e9c78ded4eb1dfff1404f58", "shasum": "" }, "require": { @@ -3133,7 +3134,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.9.0" }, "funding": [ { @@ -3141,7 +3142,7 @@ "type": "github" } ], - "time": "2026-03-08T20:05:35+00:00" + "time": "2026-10-16T15:19:33+00:00" }, { "name": "masterminds/html5", @@ -3212,16 +3213,16 @@ }, { "name": "monolog/monolog", - "version": "3.12.0", + "version": "3.12.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "72c534fc0ab181ef52d92a68382318631e301608" + "reference": "d7059e4c691d05ea1222b5124bed0f961be46e15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/72c534fc0ab181ef52d92a68382318631e301608", - "reference": "72c534fc0ab181ef52d92a68382318631e301608", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d7059e4c691d05ea1222b5124bed0f961be46e15", + "reference": "d7059e4c691d05ea1222b5124bed0f961be46e15", "shasum": "" }, "require": { @@ -3301,7 +3302,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.12.0" + "source": "https://github.com/Seldaek/monolog/tree/3.12.1" }, "funding": [ { @@ -3313,7 +3314,7 @@ "type": "tidelift" } ], - "time": "2026-09-09T08:34:20+00:00" + "time": "2026-09-29T19:21:12+00:00" }, { "name": "mtdowling/jmespath.php", @@ -3383,16 +3384,16 @@ }, { "name": "nesbot/carbon", - "version": "3.14.1", + "version": "3.15.0", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "34e9109535165bf1d7ff17a610492372ae73a896" + "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/34e9109535165bf1d7ff17a610492372ae73a896", - "reference": "34e9109535165bf1d7ff17a610492372ae73a896", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/217d38553209bdb44e01590d9e9a2e4df8354cce", + "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce", "shasum": "" }, "require": { @@ -3402,6 +3403,7 @@ "psr/clock": "^1.0", "symfony/clock": "^6.3.12 || ^7.0 || ^8.0", "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-time": "^1.0", "symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0 || ^8.0" }, "provide": { @@ -3412,7 +3414,7 @@ "doctrine/orm": "^2.15.2 || ^3.0", "friendsofphp/php-cs-fixer": "^v3.87.1", "kylekatarnls/multi-tester": "^2.5.3", - "phpmd/phpmd": "^2.15.0", + "phpmd/phpmd": "^3.0@dev", "phpstan/extension-installer": "^1.4.3", "phpstan/phpstan": "^2.1.22", "phpunit/phpunit": "^10.5.53", @@ -3484,7 +3486,7 @@ "type": "tidelift" } ], - "time": "2026-09-27T12:07:26+00:00" + "time": "2026-10-18T18:27:53+00:00" }, { "name": "nette/schema", @@ -4222,16 +4224,16 @@ }, { "name": "predis/predis", - "version": "v3.6.1", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "e2db96312ecf57a01a3477bf192d1ebc0ad7e9fb" + "reference": "4d91f3b08a60c3bacc2afbd8dc41724559b7626a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/e2db96312ecf57a01a3477bf192d1ebc0ad7e9fb", - "reference": "e2db96312ecf57a01a3477bf192d1ebc0ad7e9fb", + "url": "https://api.github.com/repos/predis/predis/zipball/4d91f3b08a60c3bacc2afbd8dc41724559b7626a", + "reference": "4d91f3b08a60c3bacc2afbd8dc41724559b7626a", "shasum": "" }, "require": { @@ -4273,7 +4275,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v3.6.1" + "source": "https://github.com/predis/predis/tree/v3.7.0" }, "funding": [ { @@ -4281,7 +4283,7 @@ "type": "github" } ], - "time": "2026-09-17T20:41:00+00:00" + "time": "2026-10-08T16:46:04+00:00" }, { "name": "psr/clock", @@ -5461,16 +5463,16 @@ }, { "name": "symfony/clock", - "version": "v7.4.8", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "674fa3b98e21531dd040e613479f5f6fa8f32111" + "reference": "07437f612dca89c1894c1db04491002b1e798f03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/674fa3b98e21531dd040e613479f5f6fa8f32111", - "reference": "674fa3b98e21531dd040e613479f5f6fa8f32111", + "url": "https://api.github.com/repos/symfony/clock/zipball/07437f612dca89c1894c1db04491002b1e798f03", + "reference": "07437f612dca89c1894c1db04491002b1e798f03", "shasum": "" }, "require": { @@ -5515,7 +5517,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.4.8" + "source": "https://github.com/symfony/clock/tree/v7.4.21" }, "funding": [ { @@ -5535,20 +5537,20 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-10-12T14:31:36+00:00" }, { "name": "symfony/console", - "version": "v7.4.19", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063" + "reference": "21f1bc2296f7ff6043241a8dcbc09559b3732820" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063", + "url": "https://api.github.com/repos/symfony/console/zipball/21f1bc2296f7ff6043241a8dcbc09559b3732820", + "reference": "21f1bc2296f7ff6043241a8dcbc09559b3732820", "shasum": "" }, "require": { @@ -5613,7 +5615,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.19" + "source": "https://github.com/symfony/console/tree/v7.4.21" }, "funding": [ { @@ -5633,7 +5635,7 @@ "type": "tidelift" } ], - "time": "2026-09-13T10:38:41+00:00" + "time": "2026-10-12T18:45:38+00:00" }, { "name": "symfony/css-selector", @@ -5777,16 +5779,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.4.17", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "8373921e231e190a88e2ad526951bbaa791576fa" + "reference": "82239fe00f7cdc9f17c4166fff4ebdc22bd26ec0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/8373921e231e190a88e2ad526951bbaa791576fa", - "reference": "8373921e231e190a88e2ad526951bbaa791576fa", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/82239fe00f7cdc9f17c4166fff4ebdc22bd26ec0", + "reference": "82239fe00f7cdc9f17c4166fff4ebdc22bd26ec0", "shasum": "" }, "require": { @@ -5835,7 +5837,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.4.17" + "source": "https://github.com/symfony/error-handler/tree/v7.4.20" }, "funding": [ { @@ -5855,7 +5857,7 @@ "type": "tidelift" } ], - "time": "2026-08-21T17:40:08+00:00" + "time": "2026-09-22T18:56:40+00:00" }, { "name": "symfony/event-dispatcher", @@ -6024,16 +6026,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.4.18", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" + "reference": "fd0e3462be6d32a0d130e8423e4940a7688162d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", - "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fd0e3462be6d32a0d130e8423e4940a7688162d8", + "reference": "fd0e3462be6d32a0d130e8423e4940a7688162d8", "shasum": "" }, "require": { @@ -6070,7 +6072,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.18" + "source": "https://github.com/symfony/filesystem/tree/v7.4.21" }, "funding": [ { @@ -6090,20 +6092,20 @@ "type": "tidelift" } ], - "time": "2026-08-23T10:03:40+00:00" + "time": "2026-10-06T20:05:19+00:00" }, { "name": "symfony/finder", - "version": "v7.4.19", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe" + "reference": "2dd31e5208db7a0fda7bfc998ad727b79c2e4d1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1b900bc6ae5ba60c5eee69c11ba44566190576fe", - "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe", + "url": "https://api.github.com/repos/symfony/finder/zipball/2dd31e5208db7a0fda7bfc998ad727b79c2e4d1e", + "reference": "2dd31e5208db7a0fda7bfc998ad727b79c2e4d1e", "shasum": "" }, "require": { @@ -6138,7 +6140,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.19" + "source": "https://github.com/symfony/finder/tree/v7.4.20" }, "funding": [ { @@ -6158,20 +6160,20 @@ "type": "tidelift" } ], - "time": "2026-09-10T19:14:10+00:00" + "time": "2026-09-26T06:31:10+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.4.19", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "f7b953be7801974a5a0685e1228bbc3b12b35936" + "reference": "58c89144c7a36dd89c3d01917e9fa3a72d8aaf31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f7b953be7801974a5a0685e1228bbc3b12b35936", - "reference": "f7b953be7801974a5a0685e1228bbc3b12b35936", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/58c89144c7a36dd89c3d01917e9fa3a72d8aaf31", + "reference": "58c89144c7a36dd89c3d01917e9fa3a72d8aaf31", "shasum": "" }, "require": { @@ -6220,7 +6222,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.19" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.21" }, "funding": [ { @@ -6240,20 +6242,20 @@ "type": "tidelift" } ], - "time": "2026-09-14T17:41:17+00:00" + "time": "2026-10-08T16:56:12+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.19", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "683507424cc84ca85ac1551adb609b6b98216667" + "reference": "4779fce7dedacb8801b2b61c703ef99159502331" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/683507424cc84ca85ac1551adb609b6b98216667", - "reference": "683507424cc84ca85ac1551adb609b6b98216667", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4779fce7dedacb8801b2b61c703ef99159502331", + "reference": "4779fce7dedacb8801b2b61c703ef99159502331", "shasum": "" }, "require": { @@ -6339,7 +6341,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.4.19" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.21" }, "funding": [ { @@ -6359,7 +6361,7 @@ "type": "tidelift" } ], - "time": "2026-09-15T07:09:35+00:00" + "time": "2026-10-14T06:44:08+00:00" }, { "name": "symfony/mailer", @@ -6619,16 +6621,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.41.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + "reference": "5cac8f4db97208823aa353f59a01faad2da52c75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5cac8f4db97208823aa353f59a01faad2da52c75", + "reference": "5cac8f4db97208823aa353f59a01faad2da52c75", "shasum": "" }, "require": { @@ -6677,7 +6679,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.43.0" }, "funding": [ { @@ -6697,20 +6699,20 @@ "type": "tidelift" } ], - "time": "2026-07-28T08:25:59+00:00" + "time": "2026-09-25T15:46:47+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.42.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9" + "reference": "533d68cf99c8f8ee2e8893c59ed59192e92cfd74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/51b5ff5ba85452b31ec6f55490b08148612339d9", - "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/533d68cf99c8f8ee2e8893c59ed59192e92cfd74", + "reference": "533d68cf99c8f8ee2e8893c59ed59192e92cfd74", "shasum": "" }, "require": { @@ -6764,7 +6766,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.42.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.43.0" }, "funding": [ { @@ -6784,20 +6786,20 @@ "type": "tidelift" } ], - "time": "2026-08-24T10:51:20+00:00" + "time": "2026-09-23T14:40:04+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.42.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" + "reference": "ebd57ccc7edb93d632e184efbe7693d2517bab3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/ebd57ccc7edb93d632e184efbe7693d2517bab3b", + "reference": "ebd57ccc7edb93d632e184efbe7693d2517bab3b", "shasum": "" }, "require": { @@ -6849,7 +6851,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.43.0" }, "funding": [ { @@ -6869,20 +6871,20 @@ "type": "tidelift" } ], - "time": "2026-08-07T06:33:24+00:00" + "time": "2026-09-23T22:02:09+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.38.2", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + "reference": "4d5d331bf731e0aedbc6b2f5e61135b7b7996a72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/4d5d331bf731e0aedbc6b2f5e61135b7b7996a72", + "reference": "4d5d331bf731e0aedbc6b2f5e61135b7b7996a72", "shasum": "" }, "require": { @@ -6934,7 +6936,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.43.0" }, "funding": [ { @@ -6954,20 +6956,20 @@ "type": "tidelift" } ], - "time": "2026-05-27T06:59:30+00:00" + "time": "2026-09-24T15:19:04+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.37.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" + "reference": "9c6a5d6b01ca51d486c813e9a9c0ed55f208bb74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", - "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/9c6a5d6b01ca51d486c813e9a9c0ed55f208bb74", + "reference": "9c6a5d6b01ca51d486c813e9a9c0ed55f208bb74", "shasum": "" }, "require": { @@ -7018,7 +7020,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.43.0" }, "funding": [ { @@ -7038,20 +7040,20 @@ "type": "tidelift" } ], - "time": "2026-04-10T16:19:22+00:00" + "time": "2026-09-25T15:50:05+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.41.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6" + "reference": "80ccff923a8d61f73ebe9da0aa94e25232f004ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/5ea99087fb99c273a9b9236ed4c31e78b16103c6", - "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/80ccff923a8d61f73ebe9da0aa94e25232f004ce", + "reference": "80ccff923a8d61f73ebe9da0aa94e25232f004ce", "shasum": "" }, "require": { @@ -7098,7 +7100,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.43.0" }, "funding": [ { @@ -7118,20 +7120,20 @@ "type": "tidelift" } ], - "time": "2026-07-01T12:47:55+00:00" + "time": "2026-09-25T15:50:05+00:00" }, { "name": "symfony/polyfill-php84", - "version": "v1.38.1", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" + "reference": "22c6548499cbe5c5bb072fc0c42312dff062a015" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/22c6548499cbe5c5bb072fc0c42312dff062a015", + "reference": "22c6548499cbe5c5bb072fc0c42312dff062a015", "shasum": "" }, "require": { @@ -7178,7 +7180,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.43.0" }, "funding": [ { @@ -7198,20 +7200,20 @@ "type": "tidelift" } ], - "time": "2026-05-26T12:51:13+00:00" + "time": "2026-09-23T22:01:09+00:00" }, { "name": "symfony/polyfill-php85", - "version": "v1.41.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php85.git", - "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a" + "reference": "86a42cbcc07adc331481a5ab310a4024bfc227f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/255fab485aaa1006ed411040c42aecd7b5302d7a", - "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/86a42cbcc07adc331481a5ab310a4024bfc227f6", + "reference": "86a42cbcc07adc331481a5ab310a4024bfc227f6", "shasum": "" }, "require": { @@ -7258,7 +7260,90 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php85/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-php85/tree/v1.43.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-09-25T15:46:47+00:00" + }, + { + "name": "symfony/polyfill-time", + "version": "v1.42.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-time.git", + "reference": "ac9f1ed802dd58f37e720388130c088434aa09fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-time/zipball/ac9f1ed802dd58f37e720388130c088434aa09fc", + "reference": "ac9f1ed802dd58f37e720388130c088434aa09fc", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Time\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Philippe Nyamagana Butera", + "email": "nyamsprod@gmail.com" + }, + { + "name": "Tim Düsterhus", + "email": "tim@tideways-gmbh.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Time API added to PHP 8.6", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "duration", + "polyfill", + "portable", + "shim", + "time" + ], + "support": { + "source": "https://github.com/symfony/polyfill-time/tree/v1.42.0" }, "funding": [ { @@ -7278,20 +7363,20 @@ "type": "tidelift" } ], - "time": "2026-07-01T12:47:55+00:00" + "time": "2026-08-07T13:08:13+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.37.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94" + "reference": "b23ff8245cc5c4479ea2be3d0132d2e6dd433993" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/26dfec253c4cf3e51b541b52ddf7e42cb0908e94", - "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/b23ff8245cc5c4479ea2be3d0132d2e6dd433993", + "reference": "b23ff8245cc5c4479ea2be3d0132d2e6dd433993", "shasum": "" }, "require": { @@ -7341,7 +7426,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.43.0" }, "funding": [ { @@ -7361,20 +7446,20 @@ "type": "tidelift" } ], - "time": "2026-04-10T16:19:22+00:00" + "time": "2026-09-24T05:20:52+00:00" }, { "name": "symfony/process", - "version": "v7.4.19", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "ed0ae095b86994d370d5791612e55984f15aa30e" + "reference": "e5247f4a5e0797d232ad8e8e6803aeb341843c83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/ed0ae095b86994d370d5791612e55984f15aa30e", - "reference": "ed0ae095b86994d370d5791612e55984f15aa30e", + "url": "https://api.github.com/repos/symfony/process/zipball/e5247f4a5e0797d232ad8e8e6803aeb341843c83", + "reference": "e5247f4a5e0797d232ad8e8e6803aeb341843c83", "shasum": "" }, "require": { @@ -7406,7 +7491,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.4.19" + "source": "https://github.com/symfony/process/tree/v7.4.21" }, "funding": [ { @@ -7426,20 +7511,20 @@ "type": "tidelift" } ], - "time": "2026-09-02T12:38:34+00:00" + "time": "2026-10-08T16:56:12+00:00" }, { "name": "symfony/routing", - "version": "v7.4.18", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3" + "reference": "7a344cf871532d081875bfdd18f3dff8dca36c5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/ddd558991e98f693ae6bf5063cc1b0362c6bbec3", - "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3", + "url": "https://api.github.com/repos/symfony/routing/zipball/7a344cf871532d081875bfdd18f3dff8dca36c5b", + "reference": "7a344cf871532d081875bfdd18f3dff8dca36c5b", "shasum": "" }, "require": { @@ -7491,7 +7576,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.18" + "source": "https://github.com/symfony/routing/tree/v7.4.21" }, "funding": [ { @@ -7511,7 +7596,7 @@ "type": "tidelift" } ], - "time": "2026-08-17T13:12:36+00:00" + "time": "2026-10-11T18:40:59+00:00" }, { "name": "symfony/service-contracts", @@ -7602,16 +7687,16 @@ }, { "name": "symfony/string", - "version": "v7.4.19", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" + "reference": "9bc35d074ad16a58c21cd52b18c5cacc4f4c3981" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", - "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "url": "https://api.github.com/repos/symfony/string/zipball/9bc35d074ad16a58c21cd52b18c5cacc4f4c3981", + "reference": "9bc35d074ad16a58c21cd52b18c5cacc4f4c3981", "shasum": "" }, "require": { @@ -7669,7 +7754,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.19" + "source": "https://github.com/symfony/string/tree/v7.4.21" }, "funding": [ { @@ -7689,7 +7774,7 @@ "type": "tidelift" } ], - "time": "2026-09-11T14:46:58+00:00" + "time": "2026-10-03T15:15:30+00:00" }, { "name": "symfony/translation", @@ -7875,16 +7960,16 @@ }, { "name": "symfony/uid", - "version": "v7.4.17", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "69d732355a139c6f8881337d28515aa01f12b8be" + "reference": "3e706a245b5343ea93be9cafe84525bfb54e60fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/69d732355a139c6f8881337d28515aa01f12b8be", - "reference": "69d732355a139c6f8881337d28515aa01f12b8be", + "url": "https://api.github.com/repos/symfony/uid/zipball/3e706a245b5343ea93be9cafe84525bfb54e60fc", + "reference": "3e706a245b5343ea93be9cafe84525bfb54e60fc", "shasum": "" }, "require": { @@ -7929,7 +8014,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.4.17" + "source": "https://github.com/symfony/uid/tree/v7.4.21" }, "funding": [ { @@ -7949,20 +8034,20 @@ "type": "tidelift" } ], - "time": "2026-08-11T07:38:58+00:00" + "time": "2026-10-12T14:31:36+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.4.18", + "version": "v7.4.21", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "e088da50b813f32473a76871616cbb8fa54653a8" + "reference": "55d06b02f49eca9bff61828548988e6f8763e8a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e088da50b813f32473a76871616cbb8fa54653a8", - "reference": "e088da50b813f32473a76871616cbb8fa54653a8", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/55d06b02f49eca9bff61828548988e6f8763e8a6", + "reference": "55d06b02f49eca9bff61828548988e6f8763e8a6", "shasum": "" }, "require": { @@ -8016,7 +8101,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.18" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.21" }, "funding": [ { @@ -8036,7 +8121,7 @@ "type": "tidelift" } ], - "time": "2026-08-30T20:10:52+00:00" + "time": "2026-10-13T05:48:33+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -8098,12 +8183,12 @@ "version": "v5.7.0", "source": { "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", + "url": "https://github.com/phpdotenv/phpdotenv.git", "reference": "301c07936b16d88628b126b01d082ba153cf4c40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40", + "url": "https://api.github.com/repos/phpdotenv/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40", "reference": "301c07936b16d88628b126b01d082ba153cf4c40", "shasum": "" }, @@ -8378,16 +8463,16 @@ }, { "name": "filp/whoops", - "version": "2.18.5", + "version": "2.18.7", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "baec851ad6ae00db8bd0fdd30d208afc1b71c56e" + "reference": "50670ba239926c50f2073e868f6672f775cd57ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/baec851ad6ae00db8bd0fdd30d208afc1b71c56e", - "reference": "baec851ad6ae00db8bd0fdd30d208afc1b71c56e", + "url": "https://api.github.com/repos/filp/whoops/zipball/50670ba239926c50f2073e868f6672f775cd57ec", + "reference": "50670ba239926c50f2073e868f6672f775cd57ec", "shasum": "" }, "require": { @@ -8437,7 +8522,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.18.5" + "source": "https://github.com/filp/whoops/tree/2.18.7" }, "funding": [ { @@ -8445,7 +8530,7 @@ "type": "github" } ], - "time": "2026-09-18T12:00:00+00:00" + "time": "2026-10-18T13:17:38+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -8621,16 +8706,16 @@ }, { "name": "larastan/larastan", - "version": "v3.12.2", + "version": "v3.13.0", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "c328727e6103c1147d1c64cc96b3aedfda26bc20" + "reference": "24ee69a7705ffc7c2cd8a3c96a5f498a4c2de5e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/c328727e6103c1147d1c64cc96b3aedfda26bc20", - "reference": "c328727e6103c1147d1c64cc96b3aedfda26bc20", + "url": "https://api.github.com/repos/larastan/larastan/zipball/24ee69a7705ffc7c2cd8a3c96a5f498a4c2de5e3", + "reference": "24ee69a7705ffc7c2cd8a3c96a5f498a4c2de5e3", "shasum": "" }, "require": { @@ -8643,7 +8728,7 @@ "illuminate/pipeline": "^11.44.2 || ^12.4.1 || ^13", "illuminate/support": "^11.44.2 || ^12.4.1 || ^13", "php": "^8.2", - "phpstan/phpstan": "^2.2.14" + "phpstan/phpstan": "^2.3.0" }, "require-dev": { "doctrine/coding-standard": "^14", @@ -8698,7 +8783,7 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v3.12.2" + "source": "https://github.com/larastan/larastan/tree/v3.13.0" }, "funding": [ { @@ -8706,7 +8791,7 @@ "type": "github" } ], - "time": "2026-09-19T10:46:58+00:00" + "time": "2026-10-07T14:14:28+00:00" }, { "name": "mockery/mockery", @@ -9066,11 +9151,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.2.16", + "version": "2.3.1", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/46a6d9060e5a7763adfcc21ebcb8b504ebdbcb92", - "reference": "46a6d9060e5a7763adfcc21ebcb8b504ebdbcb92", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/6155239b488e95d26d1ebd95c6b4bb294d7f09db", + "reference": "6155239b488e95d26d1ebd95c6b4bb294d7f09db", "shasum": "" }, "require": { @@ -9126,7 +9211,7 @@ "type": "github" } ], - "time": "2026-09-25T09:31:51+00:00" + "time": "2026-10-08T21:09:11+00:00" }, { "name": "phpunit/php-code-coverage", @@ -9477,16 +9562,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.56", + "version": "11.5.57", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" + "reference": "36b75bf56a8535623f5b3e24b27ea1823759da1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/36b75bf56a8535623f5b3e24b27ea1823759da1a", + "reference": "36b75bf56a8535623f5b3e24b27ea1823759da1a", "shasum": "" }, "require": { @@ -9496,7 +9581,7 @@ "ext-libxml": "*", "ext-mbstring": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.4", + "myclabs/deep-copy": "^1.14.0", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.2", @@ -9559,7 +9644,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.57" }, "funding": [ { @@ -9567,7 +9652,7 @@ "type": "other" } ], - "time": "2026-07-06T14:52:39+00:00" + "time": "2026-10-05T05:47:54+00:00" }, { "name": "sebastian/cli-parser", diff --git a/dev/checksums/vendor b/dev/checksums/vendor index eb8b2f05237..08502dc949d 100644 --- a/dev/checksums/vendor +++ b/dev/checksums/vendor @@ -1 +1 @@ -22e02ee72d21ff719c1073abbec8302f8e2096ba6d072e133051064ed24b45b1 +8dee64fb95509d2ad6e9050d5699594d397493c9cdf4cebfffe3852fa2043e86 \ No newline at end of file diff --git a/lang/en/validation.php b/lang/en/validation.php index 3b76b99d1c9..806fdef1ae9 100644 --- a/lang/en/validation.php +++ b/lang/en/validation.php @@ -112,6 +112,7 @@ 'zip_file_mime' => 'The :attribute needs to reference a file of type :validTypes, found :foundType.', 'zip_model_expected' => 'Data object expected but ":type" found.', 'zip_unique' => 'The :attribute must be unique for the object type within the ZIP.', + 'zip_files_total_size' => 'The total size of all files in the import must not be more than :size MB', // Custom validation lines 'custom' => [ diff --git a/public/dist/app.js b/public/dist/app.js new file mode 100644 index 00000000000..0e5eb8d79d6 --- /dev/null +++ b/public/dist/app.js @@ -0,0 +1,33 @@ +// See the "/licenses" URI for full package license details +var uo=Object.defineProperty;var po=i=>{throw TypeError(i)};var zs=(i,e,t)=>e in i?uo(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var Ks=(i,e)=>{for(var t in e)uo(i,t,{get:e[t],enumerable:!0})};var c=(i,e,t)=>zs(i,typeof e!="symbol"?e+"":e,t),Xs=(i,e,t)=>e.has(i)||po("Cannot "+t);var mo=(i,e,t)=>e.has(i)?po("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,t);var ie=(i,e,t)=>(Xs(i,e,"access private method"),t);var xe=class{constructor(){c(this,"listeners",{});c(this,"stack",[])}emit(e,t={}){this.stack.push({name:e,data:t});let n=this.listeners[e]||[];for(let o of n)o(t)}listen(e,t){typeof this.listeners[e]>"u"&&(this.listeners[e]=[]),this.listeners[e].push(t)}remove(e,t){let n=this.listeners[e]||[],o=n.indexOf(t);o!==-1&&n.splice(o,1)}emitPublic(e,t,n){let o=new CustomEvent(t,{detail:n,bubbles:!0});e.dispatchEvent(o)}success(e){this.emit("success",e)}error(e){this.emit("error",e)}showValidationErrors(e){if(e.status===422&&e.data instanceof Object){let t=e.data,o=Object.values(t.errors??t).flat().join(` +`);this.error(o)}}showResponseError(e){e.status&&e.status>=400&&typeof e.data=="object"&&e.data.message&&this.error(e.data.message)}};var At=class extends Error{constructor(t,n){super(t.statusText);c(this,"data");c(this,"headers");c(this,"original");c(this,"redirected");c(this,"status");c(this,"statusText");c(this,"url");this.data=n,this.headers=t.headers,this.redirected=t.redirected,this.status=t.status,this.statusText=t.statusText,this.url=t.url,this.original=t}},Le=class{async getResponseContent(e){if(e.status===204)return null;let n=(e.headers.get("Content-Type")||"").split(";")[0].split("/").pop();return n==="javascript"||n==="json"?e.json():e.text()}createXMLHttpRequest(e,t,n={}){let o=document.querySelector("meta[name=token]")?.getAttribute("content"),s=new XMLHttpRequest;for(let[r,a]of Object.entries(n))s.addEventListener(r,a.bind(s));return s.open(e,t),s.withCredentials=!0,s.setRequestHeader("X-CSRF-TOKEN",o||""),s}async request(e,t={}){let n=e;if(n.startsWith("http")||(n=window.baseUrl(n)),t.params){let d=new URL(n);for(let m of Object.keys(t.params)){let p=t.params[m];typeof p<"u"&&p!==null&&d.searchParams.set(m,p)}n=d.toString()}let o=document.querySelector("meta[name=token]")?.getAttribute("content")||"",s={...t,credentials:"same-origin"};s.headers={...s.headers||{},baseURL:window.baseUrl(""),"X-CSRF-TOKEN":o};let r=await fetch(n,s),a=await this.getResponseContent(r)||"",l={data:a,headers:r.headers,redirected:r.redirected,status:r.status,statusText:r.statusText,url:r.url,original:r};if(!r.ok)throw new At(r,a);return l}async dataRequest(e,t,n){let o={method:e,body:n};return typeof n=="object"&&!(n instanceof FormData)&&(o.headers={"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},o.body=JSON.stringify(n)),n instanceof FormData&&e!=="post"&&(n.append("_method",e),o.method="post"),this.request(t,o)}async get(e,t={}){return this.request(e,{method:"GET",params:t})}async post(e,t=null){return this.dataRequest("POST",e,t)}async put(e,t=null){return this.dataRequest("PUT",e,t)}async patch(e,t=null){return this.dataRequest("PATCH",e,t)}async delete(e,t=null){return this.dataRequest("DELETE",e,t)}formatErrorResponseText(e){let t=e.startsWith("{")?JSON.parse(e):{message:e};if(!t)return e;if(t.message||t.error)return t.message||t.error;let n=Object.values(t.errors||{});return n.length>0&&n.every(s=>Array.isArray(s)&&s.every(r=>typeof r=="string"))?n.flat().join(" "):e}};var Te=class{choice(e,t,n={}){n=Object.assign({},{count:String(t)},n);let o=e.split("|"),s=/^{([0-9]+)}/,r=/^\[([0-9]+),([0-9*]+)]/,a=null;for(let l of o){let d=l.match(s);if(d!==null&&Number(d[1])===t){a=l.replace(s,"").trim();break}let m=l.match(r);if(m!==null&&Number(m[1])<=t&&(m[2]==="*"||Number(m[2])>=t)){a=l.replace(r,"").trim();break}}return a===null&&o.length>1&&(a=t===1?o[0]:o[1]),a===null&&(a=o[0]),this.performReplacements(a,n)}performReplacements(e,t){let n=e.match(/:(\S+)/g);if(n===null)return e;let o=e;for(let s of n){let r=s.substring(1);typeof t[r]>"u"||(o=o.replace(s,t[r]))}return o}};var lo={};Ks(lo,{AddRemoveRows:()=>Me,AjaxDeleteRow:()=>Ae,AjaxForm:()=>De,ApiNav:()=>Ie,Attachments:()=>He,AttachmentsList:()=>Pe,AutoSubmit:()=>Re,AutoSuggest:()=>Be,BackToTop:()=>Oe,BookSort:()=>tn,ChapterContents:()=>nn,CodeEditor:()=>on,CodeHighlighter:()=>sn,CodeTextarea:()=>rn,Collapsible:()=>an,ConfirmDialog:()=>ln,CustomCheckbox:()=>cn,DetailsHighlighter:()=>dn,Dropdown:()=>hn,DropdownSearch:()=>un,Dropzone:()=>pn,EditorToolbox:()=>mn,EntityPermissions:()=>fn,EntitySearch:()=>gn,EntitySelector:()=>vn,EntitySelectorPopup:()=>bn,EventEmitSelect:()=>wn,ExpandToggle:()=>yn,GlobalSearch:()=>En,HeaderMobileToggle:()=>Cn,ImageManager:()=>xn,ImagePicker:()=>Ln,LayoutEditor:()=>Tn,ListSortControl:()=>Sn,LoadingButton:()=>kn,MarkdownEditor:()=>$n,NewUserPassword:()=>Mn,Notification:()=>An,OptionalInput:()=>Dn,PageComment:()=>In,PageCommentReference:()=>Hn,PageComments:()=>Pn,PageDisplay:()=>Bn,PageEditor:()=>Rn,PagePicker:()=>Nn,PermissionsTable:()=>_n,Pointer:()=>Fn,Popup:()=>qn,SettingAppColorScheme:()=>Wn,SettingColorPicker:()=>jn,SettingHomepageControl:()=>Un,ShelfSort:()=>Vn,ShortcutInput:()=>Kn,Shortcuts:()=>zn,SortRuleManager:()=>Gn,SortableList:()=>Xn,SubmitOnChange:()=>Yn,Tabs:()=>ee,TagManager:()=>Jn,TemplateManager:()=>Zn,ToggleSwitch:()=>Qn,ToolboxContents:()=>ni,TriLayout:()=>ii,UserSelect:()=>oi,WebhookEvents:()=>si,WysiwygEditor:()=>ri,WysiwygEditorTinymce:()=>ui,WysiwygInput:()=>pi});function ft(i,e,t){let n=null;return function(...s){let r=this,a=function(){n=null,t||i.apply(r,s)},l=t&&!n;n&&clearTimeout(n),n=window.setTimeout(a,e),l&&i.apply(r,s)}}function Gs(i){return i.nodeName==="DETAILS"}function Dt(i){if(!i)return;let e=i;for(;e.parentElement;)e=e.parentElement,Gs(e)&&!e.open&&(e.open=!0);i.scrollIntoView({behavior:"smooth"});let t=getComputedStyle(document.body).getPropertyValue("--color-link");i.style.outline=`2px dashed ${t}`,i.style.outlineOffset="5px",i.style.removeProperty("transition"),setTimeout(()=>{i.style.transition="outline linear 3s",i.style.outline="2px dashed rgba(0, 0, 0, 0)";let n=()=>{i.removeEventListener("transitionend",n),i.style.removeProperty("transition"),i.style.removeProperty("outline"),i.style.removeProperty("outlineOffset")};i.addEventListener("transitionend",n)},1e3)}function fo(i){return i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function go(){let i=()=>((1+Math.random())*65536|0).toString(16).substring(1);return`${i()+i()}-${i()}-${i()}-${i()}-${i()}${i()}${i()}`}function vo(i){return new Promise(e=>{setTimeout(e,i)})}function bo(i){let e=i,t=document.querySelector('meta[name="base-url"]');if(!t)throw new Error("Could not find expected base-url meta tag in document");let n=t.getAttribute("content")||"";return n[n.length-1]==="/"&&(n=n.slice(0,n.length-1)),e[0]==="/"&&(e=e.slice(1)),`${n}/${e}`}function Ys(){let i=document.querySelector('link[href*="/dist/styles.css?version="]');if(!i)throw new Error("Could not find expected style link in document for version use");return(i.getAttribute("href")||"").split("?version=").pop()||""}function wo(i){return import(window.baseUrl(`dist/${i}.js?version=${Ys()}`))}function yo(i,e=0){let t=3735928559^e,n=1103547991^e;for(let o=0,s;o>>16,2246822507),t^=Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507),n^=Math.imul(t^t>>>13,3266489909),String(4294967296*(2097151&n)+(t>>>0))}function xt(i){return i instanceof HTMLElement}function Q(i,e={},t=[]){let n=document.createElement(i);for(let[o,s]of Object.entries(e))s===null?n.removeAttribute(o):n.setAttribute(o,s);for(let o of t)typeof o=="string"?n.append(document.createTextNode(o)):n.append(o);return n}function fi(i,e){let t=document.querySelectorAll(i);for(let n of t)e(n)}function Se(i,e,t){if(i)for(let n of e)i.addEventListener(n,t)}function H(i,e){Array.isArray(i)||(i=[i]);for(let t of i)t.addEventListener("click",e),t.addEventListener("keydown",n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),e(n))})}function Eo(i,e,t){Array.isArray(e)||(e=[e]);let n=o=>{o.key===i&&t(o)};e.forEach(o=>o.addEventListener("keydown",n))}function qt(i,e){Eo("Enter",i,e)}function Co(i,e){Eo("Escape",i,e)}function W(i,e,t,n){i.addEventListener(t,o=>{let s=o.target?.closest(e);s&&n.call(s,o,s)})}function xo(i,e){let t=document.querySelectorAll(i);e=e.toLowerCase();for(let n of t)if((n.textContent||"").toLowerCase().includes(e)&&xt(n))return n;return null}function It(i){i.innerHTML='
'}function Wt(){let i=document.createElement("div");return i.classList.add("loading-container"),i.innerHTML="
",i}function oe(i){let e=i.querySelectorAll(".loading-container");for(let t of e)t.remove()}function lt(i){let e=document.createElement("div");e.innerHTML=i,window.$components.init(e);let t=e.children[0];if(!xt(t))throw new Error("Could not find child HTMLElement when creating DOM element from HTML");return t}function gi(i,e,t){if(!t.contains(i))throw new Error("ParentElement must be a prent of element");let n=e,o=i.nodeType===Node.TEXT_NODE?i:i.childNodes[e];for(;o!==t&&o;)o.previousSibling?(o=o.previousSibling,n+=o.textContent?.length||0):o=o.parentNode;return n}function ke(i,e){if(e===0)return{node:i,offset:0};let t=0,n=null;for(let o=0;o=e)return{node:n,offset:e-t};t+=s}else if(n.nodeType===Node.ELEMENT_NODE){let s=(n.textContent||"").length;if(t+s>=e)return ke(n,e-t);t+=s}return null}function $e(i){let e=(i.textContent||"").replace(/\s{2,}/g,"");return yo(e)}function Lo(i){let e=i;do{if(window.getComputedStyle(e).overflowY==="scroll")return e;e=e.parentElement}while(e);return document.body}var h=class{constructor(){c(this,"$name","");c(this,"$el",null);c(this,"$refs",{});c(this,"$manyRefs",{});c(this,"$opts",{})}setup(){}$emit(e,t={}){t.from=this;let n=this.$name,o=new CustomEvent(`${n}-${e}`,{bubbles:!0,detail:t});this.$el.dispatchEvent(o)}};var Me=class extends h{setup(){this.modelRow=this.$refs.model,this.addButton=this.$refs.add,this.removeSelector=this.$opts.removeSelector,this.rowSelector=this.$opts.rowSelector,this.setupListeners()}setupListeners(){this.addButton.addEventListener("click",this.add.bind(this)),W(this.$el,this.removeSelector,"click",e=>{e.target.closest(this.rowSelector).remove()})}add(){let e=this.modelRow.cloneNode(!0);e.classList.remove("hidden"),this.setClonedInputNames(e),this.modelRow.parentNode.insertBefore(e,this.modelRow),window.$components.init(e)}setClonedInputNames(e){let t=go(),n=e.querySelectorAll('[name*="randrowid"]');for(let o of n)o.name=o.name.split("randrowid").join(t)}};var Ae=class extends h{constructor(){super(...arguments);c(this,"row");c(this,"url");c(this,"deleteButtons",[])}setup(){this.row=this.$el,this.url=this.$opts.url,this.deleteButtons=this.$manyRefs.delete||[],H(this.deleteButtons,this.runDelete.bind(this))}runDelete(){this.row.style.opacity="0.7",this.row.style.pointerEvents="none",window.$http.delete(this.url).then(t=>{typeof t.data=="object"&&t.data.message&&window.$events.emit("success",t.data.message),this.row.remove()}).catch(()=>{this.row.style.removeProperty("opacity"),this.row.style.removeProperty("pointer-events")})}};var De=class extends h{setup(){this.container=this.$el,this.responseContainer=this.container,this.url=this.$opts.url,this.method=this.$opts.method||"post",this.successMessage=this.$opts.successMessage,this.submitButtons=this.$manyRefs.submit||[],this.$opts.responseContainer&&(this.responseContainer=this.container.closest(this.$opts.responseContainer)),this.setupListeners()}setupListeners(){if(this.container.tagName==="FORM"){this.container.addEventListener("submit",this.submitRealForm.bind(this));return}qt(this.container,e=>{this.submitFakeForm(),e.preventDefault()}),this.submitButtons.forEach(e=>H(e,this.submitFakeForm.bind(this)))}submitFakeForm(){let e=new FormData,t=this.container.querySelectorAll("[name]");for(let n of t)e.append(n.getAttribute("name"),n.value);this.submit(e)}submitRealForm(e){e.preventDefault();let t=new FormData(this.container);this.submit(t)}async submit(e){this.responseContainer.style.opacity="0.7",this.responseContainer.style.pointerEvents="none";try{let t=await window.$http[this.method.toLowerCase()](this.url,e);this.$emit("success",{formData:e}),this.responseContainer.innerHTML=t.data,this.successMessage&&window.$events.emit("success",this.successMessage)}catch(t){this.responseContainer.innerHTML=t.data}window.$components.init(this.responseContainer),this.responseContainer.style.opacity=null,this.responseContainer.style.pointerEvents=null}};var Ie=class extends h{constructor(){super(...arguments);c(this,"select");c(this,"sidebar");c(this,"body")}setup(){this.select=this.$refs.select,this.sidebar=this.$refs.sidebar,this.body=this.$el.ownerDocument.documentElement,this.select.addEventListener("change",()=>{let t=this.select.value,n=document.getElementById(`sidebar-header-${t}`),o=document.getElementById(`section-${t}`);if(n&&o){let s=n.getBoundingClientRect().top-this.sidebar.getBoundingClientRect().top+this.sidebar.scrollTop;this.sidebar.scrollTo({top:s-120,behavior:"smooth"});let r=o.getBoundingClientRect().top+this.body.scrollTop;this.body.scrollTo({top:r-20,behavior:"smooth"})}})}};var He=class extends h{setup(){this.container=this.$el,this.pageId=this.$opts.pageId,this.editContainer=this.$refs.editContainer,this.listContainer=this.$refs.listContainer,this.linksContainer=this.$refs.linksContainer,this.listPanel=this.$refs.listPanel,this.attachLinkButton=this.$refs.attachLinkButton,this.setupListeners()}setupListeners(){let e=this.reloadList.bind(this);this.container.addEventListener("dropzone-upload-success",e),this.container.addEventListener("ajax-form-success",e),this.container.addEventListener("sortable-list-sort",t=>{this.updateOrder(t.detail.ids)}),this.container.addEventListener("event-emit-select-edit",t=>{this.startEdit(t.detail.id)}),this.container.addEventListener("event-emit-select-edit-back",()=>{this.stopEdit()}),this.container.addEventListener("event-emit-select-insert",t=>{let n=t.target.closest("[data-drag-content]").getAttribute("data-drag-content"),o=JSON.parse(n);window.$events.emit("editor::insert",{html:o["text/html"],markdown:o["text/plain"]})}),this.attachLinkButton.addEventListener("click",()=>{this.showSection("links")})}showSection(e){let t={links:this.linksContainer,edit:this.editContainer,list:this.listContainer};for(let[n,o]of Object.entries(t))o.toggleAttribute("hidden",n!==e)}reloadList(){this.stopEdit(),window.$http.get(`/attachments/get/page/${this.pageId}`).then(e=>{this.listPanel.innerHTML=e.data,window.$components.init(this.listPanel)})}updateOrder(e){window.$http.put(`/attachments/sort/page/${this.pageId}`,{order:e}).then(t=>{window.$events.emit("success",t.data.message)})}async startEdit(e){this.showSection("edit"),It(this.editContainer);let t=await window.$http.get(`/attachments/edit/${e}`);this.editContainer.innerHTML=t.data,window.$components.init(this.editContainer)}stopEdit(){this.showSection("list")}};var Pe=class extends h{setup(){this.container=this.$el,this.fileLinks=this.$manyRefs.linkTypeFile,this.setupListeners()}setupListeners(){let e=t=>t.key==="Control"||t.key==="Meta";window.addEventListener("keydown",t=>{e(t)&&this.addOpenQueryToLinks()},{passive:!0}),window.addEventListener("keyup",t=>{e(t)&&this.removeOpenQueryFromLinks()},{passive:!0})}addOpenQueryToLinks(){for(let e of this.fileLinks)e.href.split("?")[1]!=="open=true"&&(e.href+="?open=true",e.setAttribute("target","_blank"))}removeOpenQueryFromLinks(){for(let e of this.fileLinks)e.href=e.href.split("?")[0],e.removeAttribute("target")}};var Tt,bi,wi,Lt=class{constructor(e,t=null,n=null){mo(this,Tt);c(this,"containers");c(this,"onEscape");c(this,"onEnter");this.containers=[e],this.onEscape=t,this.onEnter=n,e.addEventListener("keydown",ie(this,Tt,bi).bind(this))}shareHandlingToEl(e){this.containers.push(e),e.addEventListener("keydown",ie(this,Tt,bi).bind(this))}focusNext(){let e=ie(this,Tt,wi).call(this),t=document.activeElement,o=(xt(t)?e.indexOf(t):-1)+1;o>=e.length&&(o=0),e[o].focus()}focusPrevious(){let e=ie(this,Tt,wi).call(this),t=document.activeElement,o=(xt(t)?e.indexOf(t):-1)-1;o<0&&(o=e.length-1),e[o].focus()}};Tt=new WeakSet,bi=function(e){xt(e.target)&&e.target.matches("input")&&(e.key==="ArrowRight"||e.key==="ArrowLeft")||(e.key==="ArrowDown"||e.key==="ArrowRight"?(this.focusNext(),e.preventDefault()):e.key==="ArrowUp"||e.key==="ArrowLeft"?(this.focusPrevious(),e.preventDefault()):e.key==="Escape"?this.onEscape?this.onEscape(e):xt(document.activeElement)&&document.activeElement.blur():e.key==="Enter"&&this.onEnter&&this.onEnter(e))},wi=function(){let e=[],t='[tabindex]:not([tabindex="-1"]),[href],button:not([tabindex="-1"],[disabled]),input:not([type=hidden])';for(let n of this.containers){let o=[...n.querySelectorAll(t)].filter(s=>xt(s)&&s.checkVisibility());e.push(...o)}return e};var yi={},Be=class extends h{setup(){this.parent=this.$el.parentElement,this.container=this.$el,this.type=this.$opts.type,this.url=this.$opts.url,this.input=this.$refs.input,this.list=this.$refs.list,this.lastPopulated=0,this.setupListeners()}setupListeners(){new Lt(this.list,()=>{this.input.focus(),setTimeout(()=>this.hideSuggestions(),1)},t=>{t.preventDefault();let n=t.target.textContent;n&&this.selectSuggestion(n)}).shareHandlingToEl(this.input),W(this.list,".text-item","click",(t,n)=>{this.selectSuggestion(n.textContent)}),this.input.addEventListener("input",this.requestSuggestions.bind(this)),this.input.addEventListener("focus",this.requestSuggestions.bind(this)),this.input.addEventListener("blur",this.hideSuggestionsIfFocusedLost.bind(this)),this.input.addEventListener("keydown",t=>{t.key==="Tab"&&this.hideSuggestions()})}selectSuggestion(e){this.input.value=e,this.lastPopulated=Date.now(),this.input.focus(),this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.input.dispatchEvent(new Event("change",{bubbles:!0})),this.hideSuggestions()}async requestSuggestions(){if(Date.now()-this.lastPopulated<50)return;let e=this.getNameFilterIfNeeded(),t=this.input.value.toLowerCase(),o=(await this.loadSuggestions(t,e)).filter(s=>t===""||s.toLowerCase().startsWith(t)).slice(0,10);this.displaySuggestions(o)}getNameFilterIfNeeded(){return this.type!=="value"?null:this.parent.querySelector("input").value}async loadSuggestions(e,t=null){e=e.slice(0,4);let n={search:e,name:t},o=`${this.url}:${JSON.stringify(n)}`;if(yi[o])return yi[o];let s=await window.$http.get(this.url,n);return yi[o]=s.data,s.data}displaySuggestions(e){if(e.length===0){this.hideSuggestions();return}this.list.innerHTML=e.map(t=>`
  • ${fo(t)}
  • `).join(""),this.list.style.display="block";for(let t of this.list.querySelectorAll(".text-item"))t.addEventListener("blur",this.hideSuggestionsIfFocusedLost.bind(this))}hideSuggestions(){this.list.style.display="none"}hideSuggestionsIfFocusedLost(e){this.container.contains(e.relatedTarget)||this.hideSuggestions()}};var Re=class extends h{setup(){this.form=this.$el,this.form.submit()}};var Oe=class extends h{constructor(){super(...arguments);c(this,"container");c(this,"button");c(this,"progress");c(this,"progressPath");c(this,"targetElem");c(this,"showing",!1);c(this,"breakPoint",1200);c(this,"isAnimating",!1)}setup(){if(this.container=this.$el,this.button=this.$refs.button,this.progress=this.$refs.progress,this.progressPath=this.$refs.progressPath,this.targetElem=document.getElementById("header"),document.body.classList.contains("flexbox")){this.container.style.display="none";return}this.button.addEventListener("click",this.scrollToTop.bind(this)),window.addEventListener("scroll",this.onPageScroll.bind(this)),this.setupProgressBar()}setupProgressBar(){this.button.addEventListener("transitionstart",n=>{n.target===this.button&&(this.isAnimating=!0,this.renderProgressPath())});let t=n=>{n.target===this.button&&(this.isAnimating=!1)};this.button.addEventListener("transitionend",t),this.button.addEventListener("transitioncancel",t),this.renderProgressPath()}onPageScroll(){let t=document.documentElement.scrollTop||document.body.scrollTop||0;if(!this.showing&&t>this.breakPoint?(this.container.style.display="block",this.showing=!0,setTimeout(()=>{this.container.style.opacity="0.4"},1)):this.showing&&t{this.container.style.display="none"},500)),this.showing){let n=document.documentElement.scrollHeight-window.innerHeight,o=t/n*100;this.updateProgress(o)}}scrollToTop(){let t=this.targetElem.getBoundingClientRect().top,n=document.documentElement.scrollTop?document.documentElement:document.body,o=300,s=Date.now(),r=this.targetElem.getBoundingClientRect().top,a=()=>{let l=1-(Date.now()-s)/o,d=Math.abs(l*r);l>0?(n.scrollTop=d,requestAnimationFrame(a)):n.scrollTop=t};requestAnimationFrame(a)}renderProgressPath(){let t=this.button.getBoundingClientRect(),n=window.getComputedStyle(this.progress).insetInlineStart,o=Math.abs(Number(n.replace("px","")||0)),s=this.roundedRectPath(t.width,t.height,t.height/2,o);this.progressPath.setAttribute("d",s),this.isAnimating&&window.requestAnimationFrame(this.renderProgressPath.bind(this))}updateProgress(t){t<5&&(t=5),this.progressPath.setAttribute("stroke-dasharray",`${Math.ceil(t)} 100`)}roundedRectPath(t,n,o,s=1.5){let r=t+2*s,a=n+2*s,l=Math.min(o+s,r/2,a/2);return[`M ${r/2} 0`,`H ${r-l}`,`A ${l} ${l} 0 0 1 ${r} ${l}`,`V ${a-l}`,`A ${l} ${l} 0 0 1 ${r-l} ${a}`,`H ${l}`,`A ${l} ${l} 0 0 1 0 ${a-l}`,`V ${l}`,`A ${l} ${l} 0 0 1 ${l} 0`,"Z"].join(" ")}};function Di(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,n=Array(e);t"&&(e=e.substring(1)),i)try{if(i.matches)return i.matches(e);if(i.msMatchesSelector)return i.msMatchesSelector(e);if(i.webkitMatchesSelector)return i.webkitMatchesSelector(e)}catch{return!1}return!1}}function No(i){return i.host&&i!==document&&i.host.nodeType&&i.host!==i?i.host:i.parentNode}function ot(i,e,t,n){if(i){t=t||document;do{if(e!=null&&(e[0]===">"?i.parentNode===t&&Xe(i,e):Xe(i,e))||n&&i===t)return i;if(i===t)break}while(i=No(i))}return null}var ko=/\s+/g;function K(i,e,t){if(i&&e)if(i.classList)i.classList[t?"add":"remove"](e);else{var n=(" "+i.className+" ").replace(ko," ").replace(" "+e+" "," ");i.className=(n+(t?" "+e:"")).replace(ko," ")}}function C(i,e,t){var n=i&&i.style;if(n){if(t===void 0)return document.defaultView&&document.defaultView.getComputedStyle?t=document.defaultView.getComputedStyle(i,""):i.currentStyle&&(t=i.currentStyle),e===void 0?t:t[e];!(e in n)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),n[e]=t+(typeof t=="string"?"":"px")}}function Rt(i,e){var t="";if(typeof i=="string")t=i;else do{var n=C(i,"transform");n&&n!=="none"&&(t=n+" "+t)}while(!e&&(i=i.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(t)}function _o(i,e,t){if(i){var n=i.getElementsByTagName(e),o=0,s=n.length;if(t)for(;o=s:r=o<=s,!r)return n;if(n===gt())break;n=$t(n,!1)}return!1}function Xt(i,e,t,n){for(var o=0,s=0,r=i.children;s2&&arguments[2]!==void 0?arguments[2]:{},o=n.evt,s=er(n,mr);be.pluginEvent.bind(T)(e,t,vt({dragEl:g,parentEl:j,ghostEl:M,rootEl:F,nextEl:Bt,lastDownEl:Ue,cloneEl:q,cloneHidden:kt,dragStarted:ce,putSortable:G,activeSortable:T.active,originalEvent:o,oldIndex:Kt,oldDraggableIndex:me,newIndex:at,newDraggableIndex:St,hideGhostForTarget:zo,unhideGhostForTarget:Ko,cloneNowHidden:function(){kt=!0},cloneNowShown:function(){kt=!1},dispatchSortableEvent:function(a){tt({sortable:t,name:a,originalEvent:o})}},s))};function tt(i){le(vt({putSortable:G,cloneEl:q,targetEl:g,rootEl:F,oldIndex:Kt,oldDraggableIndex:me,newIndex:at,newDraggableIndex:St},i))}var g,j,M,F,Bt,Ue,q,kt,Kt,at,me,St,Ne,G,zt=!1,Ge=!1,Ye=[],Ht,ct,Li,Ti,Do,Io,ce,Ut,fe,ge=!1,_e=!1,Ve,J,Si=[],Hi=!1,Je=[],Qe=typeof document<"u",Fe=Oi,Ho=ve||wt?"cssFloat":"float",fr=Qe&&!Ro&&!Oi&&"draggable"in document.createElement("div"),jo=(function(){if(Qe){if(wt)return!1;var i=document.createElement("x");return i.style.cssText="pointer-events:auto",i.style.pointerEvents==="auto"}})(),Uo=function(e,t){var n=C(e),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),s=Xt(e,0,t),r=Xt(e,1,t),a=s&&C(s),l=r&&C(r),d=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+_(s).width,m=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+_(r).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(s&&a.float&&a.float!=="none"){var p=a.float==="left"?"left":"right";return r&&(l.clear==="both"||l.clear===p)?"vertical":"horizontal"}return s&&(a.display==="block"||a.display==="flex"||a.display==="table"||a.display==="grid"||d>=o&&n[Ho]==="none"||r&&n[Ho]==="none"&&d+m>o)?"vertical":"horizontal"},gr=function(e,t,n){var o=n?e.left:e.top,s=n?e.right:e.bottom,r=n?e.width:e.height,a=n?t.left:t.top,l=n?t.right:t.bottom,d=n?t.width:t.height;return o===a||s===l||o+r/2===a+d/2},vr=function(e,t){var n;return Ye.some(function(o){var s=o[Y].options.emptyInsertThreshold;if(!(!s||Ni(o))){var r=_(o),a=e>=r.left-s&&e<=r.right+s,l=t>=r.top-s&&t<=r.bottom+s;if(a&&l)return n=o}}),n},Vo=function(e){function t(s,r){return function(a,l,d,m){var p=a.options.group.name&&l.options.group.name&&a.options.group.name===l.options.group.name;if(s==null&&(r||p))return!0;if(s==null||s===!1)return!1;if(r&&s==="clone")return s;if(typeof s=="function")return t(s(a,l,d,m),r)(a,l,d,m);var v=(r?a:l).options.group.name;return s===!0||typeof s=="string"&&s===v||s.join&&s.indexOf(v)>-1}}var n={},o=e.group;(!o||Ii(o)!="object")&&(o={name:o}),n.name=o.name,n.checkPull=t(o.pull,!0),n.checkPut=t(o.put),n.revertClone=o.revertClone,e.group=n},zo=function(){!jo&&M&&C(M,"display","none")},Ko=function(){!jo&&M&&C(M,"display","")};Qe&&!Ro&&document.addEventListener("click",function(i){if(Ge)return i.preventDefault(),i.stopPropagation&&i.stopPropagation(),i.stopImmediatePropagation&&i.stopImmediatePropagation(),Ge=!1,!1},!0);var Pt=function(e){if(g){e=e.touches?e.touches[0]:e;var t=vr(e.clientX,e.clientY);if(t){var n={};for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[Y]._onDragOver(n)}}},br=function(e){g&&g.parentNode[Y]._isOutsideThisEl(e.target)};function T(i,e){if(!(i&&i.nodeType&&i.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(i));this.el=i,this.options=e=ht({},e),i[Y]=this;var t={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(i.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Uo(i,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(r,a){r.setData("Text",a.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:T.supportPointer!==!1&&"PointerEvent"in window&&(!ue||Oi),emptyInsertThreshold:5};be.initializePlugins(this,i,t);for(var n in t)!(n in e)&&(e[n]=t[n]);Vo(e);for(var o in this)o.charAt(0)==="_"&&typeof this[o]=="function"&&(this[o]=this[o].bind(this));this.nativeDraggable=e.forceFallback?!1:fr,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?I(i,"pointerdown",this._onTapStart):(I(i,"mousedown",this._onTapStart),I(i,"touchstart",this._onTapStart)),this.nativeDraggable&&(I(i,"dragover",this),I(i,"dragenter",this)),Ye.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),ht(this,hr())}T.prototype={constructor:T,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(Ut=null)},_getDirection:function(e,t){return typeof this.options.direction=="function"?this.options.direction.call(this,e,t,g):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,o=this.options,s=o.preventOnFilter,r=e.type,a=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,l=(a||e).target,d=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,m=o.filter;if(Sr(n),!g&&!(/mousedown|pointerdown/.test(r)&&e.button!==0||o.disabled)&&!d.isContentEditable&&!(!this.nativeDraggable&&ue&&l&&l.tagName.toUpperCase()==="SELECT")&&(l=ot(l,o.draggable,n,!1),!(l&&l.animated)&&Ue!==l)){if(Kt=X(l),me=X(l,o.draggable),typeof m=="function"){if(m.call(this,e,l,this)){tt({sortable:t,rootEl:d,name:"filter",targetEl:l,toEl:n,fromEl:n}),nt("filter",t,{evt:e}),s&&e.preventDefault();return}}else if(m&&(m=m.split(",").some(function(p){if(p=ot(d,p.trim(),n,!1),p)return tt({sortable:t,rootEl:p,name:"filter",targetEl:l,fromEl:n,toEl:n}),nt("filter",t,{evt:e}),!0}),m)){s&&e.preventDefault();return}o.handle&&!ot(d,o.handle,n,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(e,t,n){var o=this,s=o.el,r=o.options,a=s.ownerDocument,l;if(n&&!g&&n.parentNode===s){var d=_(n);if(F=s,g=n,j=g.parentNode,Bt=g.nextSibling,Ue=n,Ne=r.group,T.dragged=g,Ht={target:g,clientX:(t||e).clientX,clientY:(t||e).clientY},Do=Ht.clientX-d.left,Io=Ht.clientY-d.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,g.style["will-change"]="all",l=function(){if(nt("delayEnded",o,{evt:e}),T.eventCanceled){o._onDrop();return}o._disableDelayedDragEvents(),!So&&o.nativeDraggable&&(g.draggable=!0),o._triggerDragStart(e,t),tt({sortable:o,name:"choose",originalEvent:e}),K(g,r.chosenClass,!0)},r.ignore.split(",").forEach(function(m){_o(g,m.trim(),ki)}),I(a,"dragover",Pt),I(a,"mousemove",Pt),I(a,"touchmove",Pt),r.supportPointer?(I(a,"pointerup",o._onDrop),!this.nativeDraggable&&I(a,"pointercancel",o._onDrop)):(I(a,"mouseup",o._onDrop),I(a,"touchend",o._onDrop),I(a,"touchcancel",o._onDrop)),So&&this.nativeDraggable&&(this.options.touchStartThreshold=4,g.draggable=!0),nt("delayStart",this,{evt:e}),r.delay&&(!r.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(ve||wt))){if(T.eventCanceled){this._onDrop();return}r.supportPointer?(I(a,"pointerup",o._disableDelayedDrag),I(a,"pointercancel",o._disableDelayedDrag)):(I(a,"mouseup",o._disableDelayedDrag),I(a,"touchend",o._disableDelayedDrag),I(a,"touchcancel",o._disableDelayedDrag)),I(a,"mousemove",o._delayedDragTouchMoveHandler),I(a,"touchmove",o._delayedDragTouchMoveHandler),r.supportPointer&&I(a,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(l,r.delay)}else l()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){g&&ki(g),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;D(e,"mouseup",this._disableDelayedDrag),D(e,"touchend",this._disableDelayedDrag),D(e,"touchcancel",this._disableDelayedDrag),D(e,"pointerup",this._disableDelayedDrag),D(e,"pointercancel",this._disableDelayedDrag),D(e,"mousemove",this._delayedDragTouchMoveHandler),D(e,"touchmove",this._delayedDragTouchMoveHandler),D(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||e.pointerType=="touch"&&e,!this.nativeDraggable||t?this.options.supportPointer?I(document,"pointermove",this._onTouchMove):t?I(document,"touchmove",this._onTouchMove):I(document,"mousemove",this._onTouchMove):(I(g,"dragend",this),I(F,"dragstart",this._onDragStart));try{document.selection?ze(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(zt=!1,F&&g){nt("dragStarted",this,{evt:t}),this.nativeDraggable&&I(document,"dragover",br);var n=this.options;!e&&K(g,n.dragClass,!1),K(g,n.ghostClass,!0),T.active=this,e&&this._appendGhost(),tt({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ct){this._lastX=ct.clientX,this._lastY=ct.clientY,zo();for(var e=document.elementFromPoint(ct.clientX,ct.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ct.clientX,ct.clientY),e!==t);)t=e;if(g.parentNode[Y]._isOutsideThisEl(e),t)do{if(t[Y]){var n=void 0;if(n=t[Y]._onDragOver({clientX:ct.clientX,clientY:ct.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=No(t));Ko()}},_onTouchMove:function(e){if(Ht){var t=this.options,n=t.fallbackTolerance,o=t.fallbackOffset,s=e.touches?e.touches[0]:e,r=M&&Rt(M,!0),a=M&&r&&r.a,l=M&&r&&r.d,d=Fe&&J&&Mo(J),m=(s.clientX-Ht.clientX+o.x)/(a||1)+(d?d[0]-Si[0]:0)/(a||1),p=(s.clientY-Ht.clientY+o.y)/(l||1)+(d?d[1]-Si[1]:0)/(l||1);if(!T.active&&!zt){if(n&&Math.max(Math.abs(s.clientX-this._lastX),Math.abs(s.clientY-this._lastY))=0&&(tt({rootEl:j,name:"add",toEl:j,fromEl:F,originalEvent:e}),tt({sortable:this,name:"remove",toEl:j,originalEvent:e}),tt({rootEl:j,name:"sort",toEl:j,fromEl:F,originalEvent:e}),tt({sortable:this,name:"sort",toEl:j,originalEvent:e})),G&&G.save()):at!==Kt&&at>=0&&(tt({sortable:this,name:"update",toEl:j,originalEvent:e}),tt({sortable:this,name:"sort",toEl:j,originalEvent:e})),T.active&&((at==null||at===-1)&&(at=Kt,St=me),tt({sortable:this,name:"end",toEl:j,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){nt("nulling",this),F=g=j=M=Bt=q=Ue=kt=Ht=ct=ce=at=St=Kt=me=Ut=fe=G=Ne=T.dragged=T.ghost=T.clone=T.active=null;var e=this.el;Je.forEach(function(t){e.contains(t)&&(t.checked=!0)}),Je.length=Li=Ti=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":g&&(this._onDragOver(e),wr(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,o=0,s=n.length,r=this.options;oo.right+s||i.clientY>n.bottom&&i.clientX>n.left:i.clientY>o.bottom+s||i.clientX>n.right&&i.clientY>n.top}function xr(i,e,t,n,o,s,r,a){var l=n?i.clientY:i.clientX,d=n?t.height:t.width,m=n?t.top:t.left,p=n?t.bottom:t.right,v=!1;if(!r){if(a&&Vem+d*s/2:lp-Ve)return-fe}else if(l>m+d*(1-o)/2&&lp-d*s/2)?l>m+d/2?1:-1:0}function Lr(i){return X(g)1&&($.forEach(function(a){s.addAnimationState({target:a,rect:it?_(a):r}),Ci(a),a.fromRect=r,n.removeAnimationState(a)}),it=!1,$r(!this.options.removeCloneOnHide,o))},dragOverCompleted:function(t){var n=t.sortable,o=t.isOwner,s=t.insertion,r=t.activeSortable,a=t.parentEl,l=t.putSortable,d=this.options;if(s){if(o&&r._hideClone(),re=!1,d.animation&&$.length>1&&(it||!o&&!r.options.sort&&!l)){var m=_(N,!1,!0,!0);$.forEach(function(v){v!==N&&(Ao(v,m),a.appendChild(v))}),it=!0}if(!o)if(it||je(),$.length>1){var p=We;r._showClone(n),r.options.animation&&!We&&p&&rt.forEach(function(v){r.addAnimationState({target:v,rect:ae}),v.fromRect=ae,v.thisAnimationDuration=null})}else r._showClone(n)}},dragOverAnimationCapture:function(t){var n=t.dragRect,o=t.isOwner,s=t.activeSortable;if($.forEach(function(a){a.thisAnimationDuration=null}),s.options.animation&&!o&&s.multiDrag.isMultiDrag){ae=ht({},n);var r=Rt(N,!0);ae.top-=r.f,ae.left-=r.e}},dragOverAnimationComplete:function(){it&&(it=!1,je())},drop:function(t){var n=t.originalEvent,o=t.rootEl,s=t.parentEl,r=t.sortable,a=t.dispatchSortableEvent,l=t.oldIndex,d=t.putSortable,m=d||this.sortable;if(n){var p=this.options,v=s.children;if(!Vt)if(p.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),K(N,p.selectedClass,!~$.indexOf(N)),~$.indexOf(N))$.splice($.indexOf(N),1),se=null,le({sortable:r,rootEl:o,name:"deselect",targetEl:N,originalEvent:n});else{if($.push(N),le({sortable:r,rootEl:o,name:"select",targetEl:N,originalEvent:n}),n.shiftKey&&se&&r.el.contains(se)){var y=X(se),u=X(N);~y&&~u&&y!==u&&(function(){var b,L;u>y?(L=y,b=u):(L=u,b=y+1);for(var S=p.filter;L1){var f=_(N),w=X(N,":not(."+this.options.selectedClass+")");if(!re&&p.animation&&(N.thisAnimationDuration=null),m.captureAnimationState(),!re&&(p.animation&&(N.fromRect=f,$.forEach(function(b){if(b.thisAnimationDuration=null,b!==N){var L=it?_(b):f;b.fromRect=L,m.addAnimationState({target:b,rect:L})}})),je(),$.forEach(function(b){v[w]?s.insertBefore(b,v[w]):s.appendChild(b),w++}),l===X(N))){var E=!1;$.forEach(function(b){if(b.sortableIndex!==X(b)){E=!0;return}}),E&&(a("update"),a("sort"))}$.forEach(function(b){Ci(b)}),m.animateAll()}dt=m}(o===s||d&&d.lastPutMode!=="clone")&&rt.forEach(function(b){b.parentNode&&b.parentNode.removeChild(b)})}},nullingGlobal:function(){this.isMultiDrag=Vt=!1,rt.length=0},destroyGlobal:function(){this._deselectMultiDrag(),D(document,"pointerup",this._deselectMultiDrag),D(document,"mouseup",this._deselectMultiDrag),D(document,"touchend",this._deselectMultiDrag),D(document,"keydown",this._checkKeyDown),D(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(t){if(!(typeof Vt<"u"&&Vt)&&dt===this.sortable&&!(t&&ot(t.target,this.options.draggable,this.sortable.el,!1))&&!(t&&t.button!==0))for(;$.length;){var n=$[0];K(n,this.options.selectedClass,!1),$.shift(),le({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:n,originalEvent:t})}},_checkKeyDown:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},ht(i,{pluginName:"multiDrag",utils:{select:function(t){var n=t.parentNode[Y];!n||!n.options.multiDrag||~$.indexOf(t)||(dt&&dt!==n&&(dt.multiDrag._deselectMultiDrag(),dt=n),K(t,n.options.selectedClass,!0),$.push(t))},deselect:function(t){var n=t.parentNode[Y],o=$.indexOf(t);!n||!n.options.multiDrag||!~o||(K(t,n.options.selectedClass,!1),$.splice(o,1))}},eventProperties:function(){var t=this,n=[],o=[];return $.forEach(function(s){n.push({multiDragElement:s,index:s.sortableIndex});var r;it&&s!==N?r=-1:it?r=X(s,":not(."+t.options.selectedClass+")"):r=X(s),o.push({multiDragElement:s,index:r})}),{items:ir($),clones:[].concat(rt),oldIndicies:n,newIndicies:o}},optionListeners:{multiDragKey:function(t){return t=t.toLowerCase(),t==="ctrl"?t="Control":t.length>1&&(t=t.charAt(0).toUpperCase()+t.substr(1)),t}}})}function $r(i,e){$.forEach(function(t,n){var o=e.children[t.sortableIndex+(i?Number(n):0)];o?e.insertBefore(t,o):e.appendChild(t)})}function Bo(i,e){rt.forEach(function(t,n){var o=e.children[t.sortableIndex+(i?Number(n):0)];o?e.insertBefore(t,o):e.appendChild(t)})}function je(){$.forEach(function(i){i!==N&&i.parentNode&&i.parentNode.removeChild(i)})}T.mount(new kr);T.mount(qi,Fi);var ut=T;var Yo={name(i,e){let t=i.getAttribute("data-name").trim().toLowerCase(),n=e.getAttribute("data-name").trim().toLowerCase();return t.localeCompare(n)},created(i,e){let t=Number(i.getAttribute("data-created"));return Number(e.getAttribute("data-created"))-t},updated(i,e){let t=Number(i.getAttribute("data-updated"));return Number(e.getAttribute("data-updated"))-t},chaptersFirst(i,e){let t=i.getAttribute("data-type"),n=e.getAttribute("data-type");return t===n?0:t==="chapter"?-1:1},chaptersLast(i,e){let t=i.getAttribute("data-type"),n=e.getAttribute("data-type");return t===n?0:t==="chapter"?1:-1}},Jo={up:{active(i,e){return!(i.previousElementSibling===null&&!e)},run(i,e){(i.previousElementSibling||e).insertAdjacentElement("beforebegin",i)}},down:{active(i,e){return!(i.nextElementSibling===null&&!e)},run(i,e){(i.nextElementSibling||e).insertAdjacentElement("afterend",i)}},next_book:{active(i,e,t){return t.nextElementSibling!==null},run(i,e,t){t.nextElementSibling.querySelector("ul").prepend(i)}},prev_book:{active(i,e,t){return t.previousElementSibling!==null},run(i,e,t){t.previousElementSibling.querySelector("ul").appendChild(i)}},next_chapter:{active(i,e){return i.dataset.type==="page"&&this.getNextChapter(i,e)},run(i,e){this.getNextChapter(i,e).querySelector("ul").prepend(i)},getNextChapter(i,e){let t=e||i,n=Array.from(t.parentElement.children),o=n.indexOf(t);return n.slice(o+1).find(s=>s.dataset.type==="chapter")}},prev_chapter:{active(i,e){return i.dataset.type==="page"&&this.getPrevChapter(i,e)},run(i,e){this.getPrevChapter(i,e).querySelector("ul").append(i)},getPrevChapter(i,e){let t=e||i,n=Array.from(t.parentElement.children),o=n.indexOf(t);return n.slice(0,o).reverse().find(s=>s.dataset.type==="chapter")}},book_end:{active(i,e){return e||e===null&&i.nextElementSibling},run(i,e,t){t.querySelector("ul").append(i)}},book_start:{active(i,e){return e||e===null&&i.previousElementSibling},run(i,e,t){t.querySelector("ul").prepend(i)}},before_chapter:{active(i,e){return e},run(i,e){e.insertAdjacentElement("beforebegin",i)}},after_chapter:{active(i,e){return e},run(i,e){e.insertAdjacentElement("afterend",i)}}},tn=class extends h{setup(){this.container=this.$el,this.sortContainer=this.$refs.sortContainer,this.input=this.$refs.input,ut.mount(new Go);let e=this.container.querySelector(".sort-box");this.setupBookSortable(e),this.setupSortPresets(),this.setupMoveActions(),window.$events.listen("entity-select-change",this.bookSelect.bind(this))}setupMoveActions(){this.container.addEventListener("click",e=>{if(e.target.matches("[data-move]")){let t=e.target.getAttribute("data-move"),n=e.target.closest("[data-id]");this.runSortAction(n,t)}}),this.updateMoveActionStateForAll()}setupSortPresets(){let e="",t=!1,n=["name","created","updated"];this.sortContainer.addEventListener("click",o=>{let s=o.target.closest(".sort-box-options [data-sort]");if(!s)return;o.preventDefault();let r=s.closest(".sort-box").querySelectorAll("ul"),a=s.getAttribute("data-sort");t=e===a?!t:!1;let l=Yo[a];t&&n.includes(a)&&(l=function(m,p){return 0-Yo[a](m,p)});for(let d of r)Array.from(d.children).filter(p=>p.matches("li")).sort(l).forEach(p=>{d.appendChild(p)});e=a,this.updateMapInput()})}bookSelect(e){if(this.container.querySelector(`[data-type="book"][data-id="${e.id}"]`)!==null)return;let n=`${e.link}/sort-item`;window.$http.get(n).then(o=>{let s=lt(o.data);this.sortContainer.append(s),this.setupBookSortable(s),this.updateMoveActionStateForAll(),s.querySelector("summary").focus()})}setupBookSortable(e){let t=Array.from(e.querySelectorAll(".sort-list, .sortable-page-sublist")),n={name:"book",pull:["book","chapter"],put:["book","chapter"]},o={name:"chapter",pull:["book","chapter"],put(s,r,a){return a.getAttribute("data-type")==="page"}};for(let s of t)ut.create(s,{group:s.classList.contains("sort-list")?n:o,animation:150,fallbackOnBody:!0,swapThreshold:.65,onSort:()=>{this.ensureNoNestedChapters(),this.updateMapInput(),this.updateMoveActionStateForAll()},dragClass:"bg-white",ghostClass:"primary-background-light",multiDrag:!0,multiDragKey:"Control",selectedClass:"sortable-selected"})}ensureNoNestedChapters(){let e=this.container.querySelectorAll('[data-type="chapter"] [data-type="chapter"]');for(let t of e)t.parentElement.closest('[data-type="chapter"]').insertAdjacentElement("afterend",t)}updateMapInput(){let e=this.buildEntityMap();this.input.value=JSON.stringify(e)}buildEntityMap(){let e=[],t=this.container.querySelectorAll(".sort-list");for(let n of t){let o=n.closest('[data-type="book"]').getAttribute("data-id"),s=Array.from(n.children).filter(r=>r.matches('[data-type="page"], [data-type="chapter"]'));for(let r=0;r{for(let r of o)i.style.removeProperty(r);i.style.removeProperty("transition"),i.removeEventListener("transitionend",s),en.delete(i),n&&n()};setTimeout(()=>{i.style.transition=`all ease-in-out ${t}ms`;for(let r of o)i.style.setProperty(r,e[r][1]);i.addEventListener("transitionend",s),en.set(i,s)},15)}function ye(i){en.has(i)&&en.get(i)()}function Zo(i,e=400,t=null){ye(i),i.style.display="block",we(i,{opacity:["0","1"]},e,()=>{t&&t()})}function Qo(i,e=400,t=null){ye(i),we(i,{opacity:["1","0"]},e,()=>{i.style.display="none",t&&t()})}function Gt(i,e=400){ye(i);let t=i.getBoundingClientRect().height,n=getComputedStyle(i),o=n.getPropertyValue("padding-top"),s=n.getPropertyValue("padding-bottom"),r={"max-height":[`${t}px`,"0px"],overflow:["hidden","hidden"],"padding-top":[o,"0px"],"padding-bottom":[s,"0px"]};we(i,r,e,()=>{i.style.display="none"})}function Yt(i,e=400){ye(i),i.style.display="block";let t=i.getBoundingClientRect().height,n=getComputedStyle(i),o=n.getPropertyValue("padding-top"),s=n.getPropertyValue("padding-bottom"),r={"max-height":["0px",`${t}px`],overflow:["hidden","hidden"],"padding-top":["0px",o],"padding-bottom":["0px",s]};we(i,r,e)}function ts(i,e=400){let t=i.getBoundingClientRect().height,n=getComputedStyle(i),o=n.getPropertyValue("padding-top"),s=n.getPropertyValue("padding-bottom");return()=>{ye(i);let r=i.getBoundingClientRect().height,a=getComputedStyle(i),l=a.getPropertyValue("padding-top"),d=a.getPropertyValue("padding-bottom"),m={height:[`${t}px`,`${r}px`],overflow:["hidden","hidden"],"padding-top":[o,l],"padding-bottom":[s,d]};we(i,m,e)}}var nn=class extends h{setup(){this.list=this.$refs.list,this.toggle=this.$refs.toggle,this.isOpen=this.toggle.classList.contains("open"),this.toggle.addEventListener("click",this.click.bind(this))}open(){this.toggle.classList.add("open"),this.toggle.setAttribute("aria-expanded","true"),Yt(this.list,180),this.isOpen=!0}close(){this.toggle.classList.remove("open"),this.toggle.setAttribute("aria-expanded","false"),Gt(this.list,180),this.isOpen=!1}click(e){e.preventDefault(),this.isOpen?this.close():this.open()}};var on=class extends h{constructor(){super(...arguments);c(this,"editor",null);c(this,"saveCallback",null);c(this,"cancelCallback",null);c(this,"history",{});c(this,"historyKey","code_history")}setup(){this.container=this.$refs.container,this.popup=this.$el,this.editorInput=this.$refs.editor,this.languageButtons=this.$manyRefs.languageButton,this.languageOptionsContainer=this.$refs.languageOptionsContainer,this.saveButton=this.$refs.saveButton,this.languageInput=this.$refs.languageInput,this.historyDropDown=this.$refs.historyDropDown,this.historyList=this.$refs.historyList,this.favourites=new Set(this.$opts.favourites.split(",")),this.setupListeners(),this.setupFavourites()}setupListeners(){this.container.addEventListener("keydown",t=>{t.ctrlKey&&t.key==="Enter"&&this.save()}),H(this.languageButtons,t=>{let n=t.target.dataset.lang;this.languageInput.value=n,this.languageInputChange(n)}),qt(this.languageInput,()=>this.save()),this.languageInput.addEventListener("input",()=>this.languageInputChange(this.languageInput.value)),H(this.saveButton,()=>this.save()),W(this.historyList,"button","click",(t,n)=>{t.preventDefault();let o=n.dataset.time;this.editor&&this.editor.setContent(this.history[o])})}setupFavourites(){for(let t of this.languageButtons)this.setupFavouritesForButton(t);this.sortLanguageList()}setupFavouritesForButton(t){let n=t.dataset.lang,o=this.favourites.has(n);t.setAttribute("data-favourite",o?"true":"false"),W(t.parentElement,".lang-option-favorite-toggle","click",()=>{o=!o,o?this.favourites.add(n):this.favourites.delete(n),t.setAttribute("data-favourite",o?"true":"false"),window.$http.patch("/preferences/update-code-language-favourite",{language:n,active:o}),this.sortLanguageList(),o&&t.scrollIntoView({block:"center",behavior:"smooth"})})}sortLanguageList(){let t=this.languageButtons.sort((n,o)=>{let s=n.dataset.favourite==="true",r=o.dataset.favourite==="true";return s&&!r?-1:r&&!s||n.dataset.lang>o.dataset.lang?1:-1}).map(n=>n.parentElement);for(let n of t)this.languageOptionsContainer.append(n)}save(){this.saveCallback&&this.saveCallback(this.editor.getContent(),this.languageInput.value),this.hide()}async open(t,n,o,s,r){this.languageInput.value=n,this.saveCallback=s,this.cancelCallback=r,await this.show(),this.languageInputChange(n),this.editor.setContent(t),this.setDirection(o)}async show(){let t=await window.importVersioned("code");this.editor||(this.editor=t.popupEditor(this.editorInput,this.languageInput.value)),this.loadHistory(),this.getPopup().show(()=>{this.editor.focus()},()=>{this.addHistory(),this.cancelCallback&&this.cancelCallback()})}setDirection(t){let n=this.editorInput.parentElement;t?n.setAttribute("dir",t):n.removeAttribute("dir")}hide(){this.getPopup().hide(),this.addHistory()}getPopup(){return window.$components.firstOnElement(this.popup,"popup")}async updateEditorMode(t){this.editor.setMode(t,this.editor.getContent())}languageInputChange(t){this.updateEditorMode(t);let n=t.toLowerCase();for(let o of this.languageButtons){let s=o.dataset.lang.toLowerCase().trim(),r=n===s;o.classList.toggle("active",r),r&&o.scrollIntoView({block:"center",behavior:"smooth"})}}loadHistory(){this.history=JSON.parse(window.sessionStorage.getItem(this.historyKey)||"{}");let t=Object.keys(this.history).reverse();this.historyDropDown.classList.toggle("hidden",t.length===0),this.historyList.innerHTML=t.map(n=>{let o=new Date(parseInt(n,10)).toLocaleTimeString();return`
  • `}).join("")}addHistory(){if(!this.editor)return;let t=this.editor.getContent();if(!t)return;let n=Object.keys(this.history).pop();if(this.history[n]===t)return;this.history[String(Date.now())]=t;let o=JSON.stringify(this.history);window.sessionStorage.setItem(this.historyKey,o)}};var sn=class extends h{setup(){let e=this.$el;e.querySelectorAll("pre").length>0&&window.importVersioned("code").then(n=>{n.highlightWithin(e)})}};var rn=class extends h{async setup(){let{mode:e}=this.$opts;(await window.importVersioned("code")).inlineEditor(this.$el,e)}};var an=class extends h{setup(){this.container=this.$el,this.trigger=this.$refs.trigger,this.content=this.$refs.content,this.trigger&&(this.trigger.addEventListener("click",this.toggle.bind(this)),this.openIfContainsError())}open(){this.container.classList.add("open"),this.trigger.setAttribute("aria-expanded","true"),Yt(this.content,300)}close(){this.container.classList.remove("open"),this.trigger.setAttribute("aria-expanded","false"),Gt(this.content,300)}toggle(){this.container.classList.contains("open")?this.close():this.open()}openIfContainsError(){this.content.querySelector(".text-neg.text-small")&&this.open()}};var ln=class extends h{setup(){this.container=this.$el,this.confirmButton=this.$refs.confirm,this.res=null,H(this.confirmButton,()=>{this.sendResult(!0),this.getPopup().hide()})}show(){return this.getPopup().show(null,()=>{this.sendResult(!1)}),new Promise(e=>{this.res=e})}getPopup(){return window.$components.firstOnElement(this.container,"popup")}sendResult(e){this.res&&(this.res(e),this.res=null)}};var cn=class extends h{setup(){this.container=this.$el,this.checkbox=this.container.querySelector("input[type=checkbox]"),this.display=this.container.querySelector('[role="checkbox"]'),this.checkbox.addEventListener("change",this.stateChange.bind(this)),this.container.addEventListener("keydown",this.onKeyDown.bind(this))}onKeyDown(e){(e.key===" "||e.key==="Enter")&&(e.preventDefault(),this.toggle())}toggle(){this.checkbox.disabled||(this.checkbox.checked=!this.checkbox.checked,this.checkbox.dispatchEvent(new Event("change")),this.stateChange())}stateChange(){let e=this.checkbox.checked?"true":"false";this.display.setAttribute("aria-checked",e)}};var dn=class extends h{setup(){this.container=this.$el,this.dealtWith=!1,this.container.addEventListener("toggle",this.onToggle.bind(this))}onToggle(){this.dealtWith||(this.container.querySelector("pre")&&window.importVersioned("code").then(e=>{e.highlightWithin(this.container)}),this.dealtWith=!0)}};var hn=class extends h{setup(){this.container=this.$el,this.menu=this.$refs.menu,this.toggle=this.$refs.toggle,this.fixedPositionMenu=this.$opts.fixedPositionMenu==="true",this.bubbleEscapes=this.$opts.bubbleEscapes==="true",this.direction=document.dir==="rtl"?"right":"left",this.body=document.body,this.showing=!1,this.hide=this.hide.bind(this),this.setupListeners()}show(e=null){this.hideAll(),this.menu.style.display="block",this.menu.classList.add("anim","menuIn"),this.toggle.setAttribute("aria-expanded","true");let t=this.menu.getBoundingClientRect(),n=0,o=this.toggle.getBoundingClientRect().height,r=(this.fixedPositionMenu?this.body:Lo(this.menu)).getBoundingClientRect(),a=t.bottom>r.bottom,l=this.container.getBoundingClientRect();if(this.fixedPositionMenu&&(this.menu.style.position="fixed",this.menu.style.width=`${t.width}px`,this.menu.style.left=`${t.left}px`,a?n=window.innerHeight-t.top-o/2:n=t.top),a){this.menu.style.top="initial",this.menu.style.bottom=`${n}px`;let p=window.innerHeight-40-(window.innerHeight-l.bottom);this.menu.style.maxHeight=`${Math.floor(p)}px`}else{this.menu.style.top=`${n}px`,this.menu.style.bottom="initial";let p=window.innerHeight-40-l.top;this.menu.style.maxHeight=`${Math.floor(p)}px`}this.menu.addEventListener("mouseleave",this.hide),window.addEventListener("click",p=>{this.menu.contains(p.target)||this.hide()});let d=this.menu.querySelector("input");d!==null&&d.focus(),this.showing=!0;let m=new Event("show");this.container.dispatchEvent(m),e&&e.stopPropagation()}hideAll(){for(let e of window.$components.get("dropdown"))e.hide()}hide(){this.menu.style.display="none",this.menu.classList.remove("anim","menuIn"),this.toggle.setAttribute("aria-expanded","false"),this.menu.style.top="",this.menu.style.bottom="",this.menu.style.maxHeight="",this.fixedPositionMenu&&(this.menu.style.position="",this.menu.style[this.direction]="",this.menu.style.width="",this.menu.style.left=""),this.showing=!1}setupListeners(){let e=new Lt(this.container,t=>{this.hide(),this.toggle.focus(),this.bubbleEscapes||t.stopPropagation()},t=>{t.target.nodeName==="INPUT"&&(t.preventDefault(),t.stopPropagation()),this.hide()});this.container.addEventListener("click",t=>{Array.from(this.menu.querySelectorAll("a")).includes(t.target)&&this.hide()}),H(this.toggle,t=>{t.stopPropagation(),t.preventDefault(),this.show(t),t instanceof KeyboardEvent&&e.focusNext()})}};var un=class extends h{setup(){this.elem=this.$el,this.searchInput=this.$refs.searchInput,this.loadingElem=this.$refs.loading,this.listContainerElem=this.$refs.listContainer,this.localSearchSelector=this.$opts.localSearchSelector,this.url=this.$opts.url,this.elem.addEventListener("show",this.onShow.bind(this)),this.searchInput.addEventListener("input",this.onSearch.bind(this)),this.runAjaxSearch=ft(this.runAjaxSearch,300,!1)}onShow(){this.loadList()}onSearch(){let e=this.searchInput.value.toLowerCase().trim();this.localSearchSelector?this.runLocalSearch(e):(this.toggleLoading(!0),this.listContainerElem.innerHTML="",this.runAjaxSearch(e))}runAjaxSearch(e){this.loadList(e)}runLocalSearch(e){let t=this.listContainerElem.querySelectorAll(this.localSearchSelector);for(let n of t){let o=!e||n.textContent.toLowerCase().includes(e);n.style.display=o?"flex":"none",n.classList.toggle("hidden",!o)}}async loadList(e=""){this.listContainerElem.innerHTML="",this.toggleLoading(!0);try{let t=await window.$http.get(this.getAjaxUrl(e)),n=ts(this.listContainerElem,80);this.listContainerElem.innerHTML=t.data,n()}catch(t){console.error(t)}this.toggleLoading(!1),this.localSearchSelector&&this.onSearch()}getAjaxUrl(e=null){if(!e)return this.url;let t=this.url.includes("?")?"&":"?";return`${this.url}${t}search=${encodeURIComponent(e)}`}toggleLoading(e=!1){this.loadingElem.style.display=e?"block":"none"}};var Jt=class{constructor(e){c(this,"data");this.data=e}hasItems(){return!!this.data&&!!this.data.types&&this.data.types.length>0}containsTabularData(){let e=this.data.getData("text/rtf");return!!e&&e.includes("\\trowd")}getImages(){return this.getFiles().filter(e=>e.type.includes("image"))}getFiles(){let{files:e}=this.data;return[...e]}};async function Wi(i){if(window.isSecureContext&&navigator.clipboard){await navigator.clipboard.writeText(i);return}let e=document.createElement("textarea");e.setAttribute("style","position: absolute; left: -1000px; top: -1000px;"),e.value=i,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}var pn=class extends h{setup(){this.container=this.$el,this.statusArea=this.$refs.statusArea,this.dropTarget=this.$refs.dropTarget,this.selectButtons=this.$manyRefs.selectButton||[],this.isActive=!0,this.url=this.$opts.url,this.method=(this.$opts.method||"post").toUpperCase(),this.successMessage=this.$opts.successMessage,this.errorMessage=this.$opts.errorMessage,this.uploadLimitMb=Number(this.$opts.uploadLimit),this.uploadLimitMessage=this.$opts.uploadLimitMessage,this.zoneText=this.$opts.zoneText,this.fileAcceptTypes=this.$opts.fileAccept,this.allowMultiple=this.$opts.allowMultiple==="true",this.setupListeners()}toggleActive(e){this.isActive=e}setupListeners(){H(this.selectButtons,this.manualSelectHandler.bind(this)),this.setupDropTargetHandlers()}setupDropTargetHandlers(){let e=0,t=()=>{this.hideOverlay(),e=0};this.dropTarget.addEventListener("dragenter",n=>{n.preventDefault(),e+=1,e===1&&this.isActive&&this.showOverlay()}),this.dropTarget.addEventListener("dragover",n=>{n.preventDefault()}),this.dropTarget.addEventListener("dragend",t),this.dropTarget.addEventListener("dragleave",()=>{e-=1,e===0&&t()}),this.dropTarget.addEventListener("drop",n=>{if(n.preventDefault(),t(),!this.isActive)return;let s=new Jt(n.dataTransfer).getFiles();for(let r of s)this.createUploadFromFile(r)})}manualSelectHandler(){let e=Q("input",{type:"file",style:"left: -400px; visibility: hidden; position: fixed;",accept:this.fileAcceptTypes,multiple:this.allowMultiple?"":null});this.container.append(e),e.click(),e.addEventListener("change",()=>{for(let t of e.files)this.createUploadFromFile(t);e.remove()})}showOverlay(){if(!this.dropTarget.querySelector(".dropzone-overlay")){let t=Q("div",{class:"dropzone-overlay"},[this.zoneText]);this.dropTarget.append(t)}}hideOverlay(){let e=this.dropTarget.querySelector(".dropzone-overlay");e&&e.remove()}createUploadFromFile(e){let{dom:t,status:n,progress:o,dismiss:s}=this.createDomForFile(e);this.statusArea.append(t);let r=this,a={file:e,dom:t,updateProgress(l){o.textContent=`${l}%`,o.style.width=`${l}%`},markError(l){n.setAttribute("data-status","error"),n.textContent=l,oe(t),this.updateProgress(100)},markSuccess(l){n.setAttribute("data-status","success"),n.textContent=l,oe(t),setTimeout(s,2400),r.$emit("upload-success",{name:e.name})}};return e.size>this.uploadLimitMb*1e6?(a.markError(this.uploadLimitMessage),a):(this.startXhrForUpload(a),a)}startXhrForUpload(e){let t=new FormData;t.append("file",e.file,e.file.name),this.method!=="POST"&&t.append("_method",this.method);let n=this,o=window.$http.createXMLHttpRequest("POST",this.url,{error(){e.markError(n.errorMessage)},readystatechange(){this.readyState===XMLHttpRequest.DONE&&this.status===200?e.markSuccess(n.successMessage):this.readyState===XMLHttpRequest.DONE&&this.status>=400&&e.markError(window.$http.formatErrorResponseText(this.responseText))}});o.upload.addEventListener("progress",s=>{let r=Math.min(Math.ceil(s.loaded/s.total*100),100);e.updateProgress(r)}),o.setRequestHeader("Accept","application/json"),o.send(t)}createDomForFile(e){let t=Q("img",{src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.224 7.373a.924.924 0 0 0-.92.925l-.006 7.404c0 .509.412.925.921.925h5.557a.928.928 0 0 0 .926-.925v-5.553l-2.777-2.776Zm3.239 3.239V8.067l2.545 2.545z' style='fill:%23000;fill-opacity:.75'/%3E%3C/svg%3E"}),n=Q("div",{class:"dropzone-file-item-status"},[]),o=Q("div",{class:"dropzone-file-item-progress"}),s=Q("div",{class:"dropzone-file-item-image-wrap"},[t]),r=Q("div",{class:"dropzone-file-item"},[s,Q("div",{class:"dropzone-file-item-text-wrap"},[Q("div",{class:"dropzone-file-item-label"},[e.name]),Wt(),n]),o]);e.type.startsWith("image/")&&(t.src=URL.createObjectURL(e));let a=()=>{r.classList.add("dismiss"),r.addEventListener("animationend",()=>{r.remove()})};return r.addEventListener("click",a),{dom:r,progress:o,status:n,dismiss:a}}};var mn=class extends h{constructor(){super(...arguments);c(this,"container");c(this,"buttons");c(this,"contentElements");c(this,"toggleButton");c(this,"editorWrapEl");c(this,"open",!1);c(this,"tab","")}setup(){this.container=this.$el,this.buttons=this.$manyRefs.tabButton,this.contentElements=this.$manyRefs.tabContent,this.toggleButton=this.$refs.toggle,this.editorWrapEl=this.container.closest(".page-editor"),this.setupListeners(),this.setActiveTab(this.contentElements[0].dataset.tabContent||"")}setupListeners(){this.toggleButton.addEventListener("click",()=>this.toggle()),this.container.addEventListener("click",t=>{let n=t.target.closest("button");if(n instanceof HTMLButtonElement&&this.buttons.includes(n)){let o=n.dataset.tab||"";this.setActiveTab(o,!0)}})}toggle(){this.container.classList.toggle("open");let t=this.container.classList.contains("open");this.toggleButton.setAttribute("aria-expanded",t?"true":"false"),this.editorWrapEl.classList.toggle("toolbox-open",t),this.open=t,this.emitState()}setActiveTab(t,n=!1){for(let o of this.buttons)o.classList.remove("active"),o.dataset.tab===t&&o.classList.add("active");for(let o of this.contentElements)o.style.display="none",o.dataset.tabContent===t&&(o.style.display="block");n&&!this.container.classList.contains("open")&&this.toggle(),this.tab=t,this.emitState()}emitState(){let t={tab:this.tab,open:this.open};this.$emit("change",t)}};var fn=class extends h{setup(){this.container=this.$el,this.entityType=this.$opts.entityType,this.everyoneInheritToggle=this.$refs.everyoneInherit,this.roleSelect=this.$refs.roleSelect,this.roleContainer=this.$refs.roleContainer,this.setupListeners()}setupListeners(){this.everyoneInheritToggle.addEventListener("change",e=>{let t=e.target.checked,n=document.querySelectorAll('input[name^="permissions[0]["]');for(let o of n)o.disabled=t,o.checked=!1}),this.container.addEventListener("click",e=>{let t=e.target.closest("button");t&&t.dataset.roleId&&this.removeRowOnButtonClick(t)}),this.roleSelect.addEventListener("change",()=>{let e=this.roleSelect.value;e&&this.addRoleRow(e)})}async addRoleRow(e){this.roleSelect.disabled=!0;let t=this.roleSelect.querySelector(`option[value="${e}"]`);t&&t.remove();let n=await window.$http.get(`/permissions/form-row/${this.entityType}/${e}`),o=lt(n.data);this.roleContainer.append(o),this.roleSelect.disabled=!1}removeRowOnButtonClick(e){let t=e.closest(".item-list-row"),{roleId:n}=e.dataset,{roleName:o}=e.dataset,s=document.createElement("option");s.value=n,s.textContent=o,this.roleSelect.append(s),t.remove()}};var gn=class extends h{setup(){this.entityId=this.$opts.entityId,this.entityType=this.$opts.entityType,this.contentView=this.$refs.contentView,this.searchView=this.$refs.searchView,this.searchResults=this.$refs.searchResults,this.searchInput=this.$refs.searchInput,this.searchForm=this.$refs.searchForm,this.clearButton=this.$refs.clearButton,this.loadingBlock=this.$refs.loadingBlock,this.setupListeners()}setupListeners(){this.searchInput.addEventListener("change",this.runSearch.bind(this)),this.searchForm.addEventListener("submit",e=>{e.preventDefault(),this.runSearch()}),H(this.clearButton,this.clearSearch.bind(this))}runSearch(){let e=this.searchInput.value.trim();if(e.length===0){this.clearSearch();return}this.searchView.classList.remove("hidden"),this.contentView.classList.add("hidden"),this.loadingBlock.classList.remove("hidden");let t=window.baseUrl(`/search/${this.entityType}/${this.entityId}`);window.$http.get(t,{term:e}).then(n=>{this.searchResults.innerHTML=n.data}).catch(console.error).then(()=>{this.loadingBlock.classList.add("hidden")})}clearSearch(){this.searchView.classList.add("hidden"),this.contentView.classList.remove("hidden"),this.loadingBlock.classList.add("hidden"),this.searchInput.value=""}};var vn=class extends h{constructor(){super(...arguments);c(this,"elem");c(this,"input");c(this,"searchInput");c(this,"loading");c(this,"resultsContainer");c(this,"searchOptions");c(this,"search","");c(this,"lastClick",0)}setup(){this.elem=this.$el,this.input=this.$refs.input,this.searchInput=this.$refs.search,this.loading=this.$refs.loading,this.resultsContainer=this.$refs.results,this.searchOptions={entityTypes:this.$opts.entityTypes||"page,book,chapter",entityPermission:this.$opts.entityPermission||"view",searchEndpoint:this.$opts.searchEndpoint||"",initialValue:this.searchInput.value||""},this.setupListeners(),this.showLoading(),this.searchOptions.searchEndpoint&&this.initialLoad()}configureSearchOptions(t){Object.assign(this.searchOptions,t),this.reset(),this.searchInput.value=this.searchOptions.initialValue}setupListeners(){this.elem.addEventListener("click",this.onClick.bind(this));let t=0;this.searchInput.addEventListener("input",()=>{t=Date.now(),this.showLoading(),setTimeout(()=>{Date.now()-t<199||this.searchEntities(this.searchInput.value)},200)}),this.searchInput.addEventListener("keydown",n=>{n.keyCode===13&&n.preventDefault()}),W(this.$el,"[data-entity-type]","keydown",(n=>{if(n.ctrlKey&&n.code==="Enter"){let o=this.$el.closest("form");if(o){o.submit(),n.preventDefault();return}}n.code==="ArrowDown"&&this.focusAdjacent(!0),n.code==="ArrowUp"&&this.focusAdjacent(!1)})),this.searchInput.addEventListener("keydown",n=>{n.code==="ArrowDown"&&this.focusAdjacent(!0)})}focusAdjacent(t=!0){let n=Array.from(this.resultsContainer.querySelectorAll("[data-entity-type]")),o=n.indexOf(document.activeElement),s=n[o+(t?1:-1)]||n[0];s instanceof HTMLElement&&s.focus()}reset(){this.searchInput.value="",this.showLoading(),this.initialLoad()}focusSearch(){this.searchInput.focus()}showLoading(){this.loading.style.display="block",this.resultsContainer.style.display="none"}hideLoading(){this.loading.style.display="none",this.resultsContainer.style.display="block"}initialLoad(){if(!this.searchOptions.searchEndpoint)throw new Error("Search endpoint not set for entity-selector load");if(this.searchOptions.initialValue){this.searchEntities(this.searchOptions.initialValue);return}window.$http.get(this.searchUrl()).then(t=>{this.resultsContainer.innerHTML=t.data,this.hideLoading()})}searchUrl(){let t=`types=${encodeURIComponent(this.searchOptions.entityTypes)}&permission=${encodeURIComponent(this.searchOptions.entityPermission)}`;return`${this.searchOptions.searchEndpoint}?${t}`}searchEntities(t){if(!this.searchOptions.searchEndpoint)throw new Error("Search endpoint not set for entity-selector load");this.input.value="";let n=`${this.searchUrl()}&term=${encodeURIComponent(t)}`;window.$http.get(n).then(o=>{this.resultsContainer.innerHTML=o.data,this.hideLoading()})}isDoubleClick(){let t=Date.now(),n=t-this.lastClick<300;return this.lastClick=t,n}onClick(t){let n=t.target.closest("[data-entity-type]");n instanceof HTMLElement&&(t.preventDefault(),t.stopPropagation(),this.selectItem(n))}selectItem(t){let n=this.isDoubleClick(),o=t.getAttribute("data-entity-type"),s=t.getAttribute("data-entity-id"),r=!t.classList.contains("selected")||n;this.unselectAll(),this.input.value=r?`${o}:${s}`:"";let a=t.getAttribute("href")||"",l=t.querySelector(".entity-list-item-name")?.textContent||"",d={id:Number(s),name:l,link:a};r?t.classList.add("selected"):window.$events.emit("entity-select-change"),!(!n&&!r)&&(n&&this.confirmSelection(d),r&&window.$events.emit("entity-select-change",d))}confirmSelection(t){window.$events.emit("entity-select-confirm",t)}unselectAll(){let t=this.elem.querySelectorAll(".selected");for(let n of t)n.classList.remove("selected","primary-background")}};var bn=class extends h{constructor(){super(...arguments);c(this,"container");c(this,"selectButton");c(this,"selectorEl");c(this,"callback",null);c(this,"selection",null)}setup(){this.container=this.$el,this.selectButton=this.$refs.select,this.selectorEl=this.$refs.selector,this.selectButton.addEventListener("click",this.onSelectButtonClick.bind(this)),window.$events.listen("entity-select-change",this.onSelectionChange.bind(this)),window.$events.listen("entity-select-confirm",this.handleConfirmedSelection.bind(this))}show(t,n={}){this.callback=t,this.getSelector().configureSearchOptions(n),this.getPopup().show(),this.getSelector().focusSearch()}hide(){this.getPopup().hide()}getPopup(){return window.$components.firstOnElement(this.container,"popup")}getSelector(){return window.$components.firstOnElement(this.selectorEl,"entity-selector")}onSelectButtonClick(){this.handleConfirmedSelection(this.selection)}onSelectionChange(t){this.selection=t.hasOwnProperty("id")?t:null,this.selection?this.selectButton.removeAttribute("disabled"):this.selectButton.setAttribute("disabled","true")}handleConfirmedSelection(t){this.hide(),this.getSelector().reset(),this.callback&&t&&this.callback(t)}};var wn=class extends h{setup(){this.container=this.$el,this.name=this.$opts.name,H(this.$el,()=>{this.$emit(this.name,this.$opts)})}};var yn=class extends h{setup(){this.targetSelector=this.$opts.targetSelector,this.isOpen=this.$opts.isOpen==="true",this.updateEndpoint=this.$opts.updateEndpoint,this.$el.addEventListener("click",this.click.bind(this))}open(e){Yt(e,200)}close(e){Gt(e,200)}click(e){e.preventDefault();let t=document.querySelectorAll(this.targetSelector);for(let n of t)(this.isOpen?this.close:this.open)(n);this.isOpen=!this.isOpen,this.updateSystemAjax(this.isOpen)}updateSystemAjax(e){window.$http.patch(this.updateEndpoint,{expand:e?"true":"false"})}};var En=class extends h{setup(){this.container=this.$el,this.input=this.$refs.input,this.suggestions=this.$refs.suggestions,this.suggestionResultsWrap=this.$refs.suggestionResults,this.loadingWrap=this.$refs.loading,this.button=this.$refs.button,this.setupListeners()}setupListeners(){let e=ft(this.updateSuggestions.bind(this),200,!1);this.input.addEventListener("input",()=>{let{value:t}=this.input;t.length>0?(this.loadingWrap.style.display="block",this.suggestionResultsWrap.style.opacity="0.5",e(t)):this.hideSuggestions()}),this.input.addEventListener("dblclick",()=>{this.input.setAttribute("autocomplete","on"),this.button.focus(),this.input.focus()}),new Lt(this.container,()=>{this.hideSuggestions()})}async updateSuggestions(e){let{data:t}=await window.$http.get("/search/suggest",{term:e});if(!this.input.value)return;let n=lt(t);this.suggestionResultsWrap.innerHTML="",this.suggestionResultsWrap.style.opacity="1",this.loadingWrap.style.display="none",this.suggestionResultsWrap.append(n),this.container.classList.contains("search-active")||this.showSuggestions()}showSuggestions(){this.container.classList.add("search-active"),window.requestAnimationFrame(()=>{this.suggestions.classList.add("search-suggestions-animation")})}hideSuggestions(){this.container.classList.remove("search-active"),this.suggestions.classList.remove("search-suggestions-animation"),this.suggestionResultsWrap.innerHTML=""}};var Cn=class extends h{setup(){this.elem=this.$el,this.toggleButton=this.$refs.toggle,this.menu=this.$refs.menu,this.open=!1,this.toggleButton.addEventListener("click",this.onToggle.bind(this)),this.onWindowClick=this.onWindowClick.bind(this),this.onKeyDown=this.onKeyDown.bind(this)}onToggle(e){this.open=!this.open,this.menu.classList.toggle("show",this.open),this.toggleButton.setAttribute("aria-expanded",this.open?"true":"false"),this.open?(this.elem.addEventListener("keydown",this.onKeyDown),window.addEventListener("click",this.onWindowClick)):(this.elem.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("click",this.onWindowClick)),e.stopPropagation()}onKeyDown(e){e.code==="Escape"&&this.onToggle(e)}onWindowClick(e){this.onToggle(e)}};var xn=class extends h{setup(){this.uploadedTo=this.$opts.uploadedTo,this.container=this.$el,this.popupEl=this.$refs.popup,this.searchForm=this.$refs.searchForm,this.searchInput=this.$refs.searchInput,this.cancelSearch=this.$refs.cancelSearch,this.listContainer=this.$refs.listContainer,this.filterTabs=this.$manyRefs.filterTabs,this.selectButton=this.$refs.selectButton,this.uploadButton=this.$refs.uploadButton,this.uploadHint=this.$refs.uploadHint,this.formContainer=this.$refs.formContainer,this.formContainerPlaceholder=this.$refs.formContainerPlaceholder,this.dropzoneContainer=this.$refs.dropzoneContainer,this.loadMore=this.$refs.loadMore,this.type="gallery",this.lastSelected={},this.lastSelectedTime=0,this.callback=null,this.resetState=()=>{this.hasData=!1,this.page=1,this.filter="all"},this.resetState(),this.setupListeners()}setupListeners(){H(this.filterTabs,n=>{this.resetAll(),this.filter=n.target.dataset.filter,this.setActiveFilterTab(this.filter),this.loadGallery()}),this.searchForm.addEventListener("submit",n=>{this.resetListView(),this.loadGallery(),this.cancelSearch.toggleAttribute("hidden",!this.searchInput.value),n.preventDefault()}),H(this.cancelSearch,()=>{this.resetListView(),this.resetSearchView(),this.loadGallery()}),W(this.container,".load-more button","click",this.runLoadMore.bind(this)),this.listContainer.addEventListener("event-emit-select-image",this.onImageSelectEvent.bind(this)),this.listContainer.addEventListener("error",n=>{n.target.src=window.baseUrl("loading_error.png")},!0),H(this.selectButton,()=>{this.callback&&this.callback(this.lastSelected),this.hide()}),W(this.formContainer,"#image-manager-delete","click",()=>{this.lastSelected&&this.loadImageEditForm(this.lastSelected.id,!0)}),W(this.formContainer,"#image-manager-rebuild-thumbs","click",async(n,o)=>{o.disabled=!0,this.lastSelected&&await this.rebuildThumbnails(this.lastSelected.id),o.disabled=!1}),this.formContainer.addEventListener("ajax-form-success",()=>{this.refreshGallery(),this.resetEditForm()}),this.container.addEventListener("dropzone-upload-success",this.refreshGallery.bind(this));let e=this.listContainer.parentElement,t=[];e.addEventListener("wheel",n=>{if(!(Math.ceil(e.scrollHeight-e.scrollTop)===e.clientHeight)||n.deltaY<1)return;let r=Date.now()-1e3;t.push(Date.now()),t=t.filter(a=>a>=r),t.length>5&&this.canLoadMore()&&this.runLoadMore()})}show(e,t="gallery"){this.resetAll(),this.callback=e,this.type=t,this.getPopup().show();let n=t!=="gallery";this.dropzoneContainer.classList.toggle("hidden",n),this.uploadButton.classList.toggle("hidden",n),this.uploadHint.classList.toggle("hidden",n),window.$components.firstOnElement(this.container,"dropzone").toggleActive(!n),this.hasData||(this.loadGallery(),this.hasData=!0)}hide(){this.getPopup().hide()}getPopup(){return window.$components.firstOnElement(this.popupEl,"popup")}async loadGallery(){let e={page:this.page,search:this.searchInput.value||null,uploaded_to:this.uploadedTo,filter_type:this.filter==="all"?null:this.filter},{data:t}=await window.$http.get(`images/${this.type}`,e);e.page===1&&(this.listContainer.innerHTML=""),this.addReturnedHtmlElementsToList(t),oe(this.listContainer)}addReturnedHtmlElementsToList(e){let t=document.createElement("div");t.innerHTML=e;let n=t.querySelector(".load-more");n&&(n.remove(),this.loadMore.innerHTML=n.innerHTML),this.loadMore.toggleAttribute("hidden",!n),window.$components.init(t);for(let o of[...t.children])this.listContainer.appendChild(o)}setActiveFilterTab(e){for(let t of this.filterTabs){let n=t.dataset.filter===e;t.setAttribute("aria-selected",n?"true":"false")}}resetAll(){this.resetState(),this.resetListView(),this.resetSearchView(),this.resetEditForm(),this.setActiveFilterTab("all"),this.selectButton.classList.add("hidden")}resetSearchView(){this.searchInput.value="",this.cancelSearch.toggleAttribute("hidden",!0)}resetEditForm(){this.formContainer.innerHTML="",this.formContainerPlaceholder.removeAttribute("hidden")}resetListView(){It(this.listContainer),this.page=1}refreshGallery(){this.resetListView(),this.loadGallery()}async onImageSelectEvent(e){let t=JSON.parse(e.detail.data),n=t&&t.id===this.lastSelected.id&&Date.now()-this.lastSelectedTime<400,o=e.target.classList.contains("selected");[...this.listContainer.querySelectorAll(".selected")].forEach(s=>{s.classList.remove("selected")}),!o&&!n?(e.target.classList.add("selected"),t=await this.loadImageEditForm(t.id)):n?n&&(t=this.lastSelected):this.resetEditForm(),this.selectButton.classList.toggle("hidden",o),n&&this.callback&&(this.callback(t),this.hide()),this.lastSelected=t,this.lastSelectedTime=Date.now()}async loadImageEditForm(e,t=!1){t||(this.formContainer.innerHTML="");let n=t?{delete:!0}:{},{data:o}=await window.$http.get(`/images/edit/${e}`,n);this.formContainer.innerHTML=o,this.formContainerPlaceholder.setAttribute("hidden",""),window.$components.init(this.formContainer);let s=this.formContainer.querySelector("#image-manager-form-image-data");return JSON.parse(s.text)}runLoadMore(){It(this.loadMore),this.page+=1,this.loadGallery()}canLoadMore(){return this.loadMore.querySelector("button")&&!this.loadMore.hasAttribute("hidden")}async rebuildThumbnails(e){try{let t=await window.$http.put(`/images/${e}/rebuild-thumbnails`);window.$events.success(t.data),this.refreshGallery()}catch(t){window.$events.showResponseError(t)}}};var Ln=class extends h{setup(){this.imageElem=this.$refs.image,this.imageInput=this.$refs.imageInput,this.resetInput=this.$refs.resetInput,this.removeInput=this.$refs.removeInput,this.resetButton=this.$refs.resetButton,this.removeButton=this.$refs.removeButton||null,this.defaultImage=this.$opts.defaultImage,this.setupListeners()}setupListeners(){this.resetButton.addEventListener("click",this.reset.bind(this)),this.removeButton&&this.removeButton.addEventListener("click",this.removeImage.bind(this)),this.imageInput.addEventListener("change",this.fileInputChange.bind(this))}fileInputChange(){this.resetInput.setAttribute("disabled","disabled"),this.removeInput&&this.removeInput.setAttribute("disabled","disabled");for(let e of this.imageInput.files)this.imageElem.src=window.URL.createObjectURL(e);this.imageElem.classList.remove("none")}reset(){this.imageInput.value="",this.imageElem.src=this.defaultImage,this.resetInput.removeAttribute("disabled"),this.removeInput&&this.removeInput.setAttribute("disabled","disabled"),this.imageElem.classList.remove("none")}removeImage(){this.imageInput.value="",this.imageElem.classList.add("none"),this.removeInput.removeAttribute("disabled"),this.resetInput.setAttribute("disabled","disabled")}};function Zt(...i){return{move_up(e){let t=e.parentNode,n=Array.from(t.children).indexOf(e),o=Math.max(n-1,0);t.insertBefore(e,t.children[o]||null)},move_down(e){let t=e.parentNode,n=Array.from(t.children).indexOf(e),o=Math.min(n+2,t.children.length);t.insertBefore(e,t.children[o]||null)},move_right(e){let t=e.parentNode,n=i.indexOf(t),o=Math.min(n+1,i.length-1);i[o].appendChild(e)},move_left(e){let t=e.parentNode,n=i.indexOf(t),o=Math.max(n-1,0);i[o].appendChild(e)},remove(e){let t=i.find(n=>n!==e.parentNode);t&&t.appendChild(e)},add(e){let t=i.find(n=>n!==e.parentNode);t&&t.appendChild(e)}}}function Qt(i,e){return t=>{let n=t.target.closest(".scroll-box-item button[data-action]");if(n){let o=n.closest(".scroll-box-item"),s=n.dataset.action;if(!s)throw new Error("No action defined for clicked button");let r=i[s];r(o),e()}}}var Tn=class extends h{constructor(){super(...arguments);c(this,"input");c(this,"columns");c(this,"actionMenus")}setup(){this.input=this.$refs.input,this.columns=this.$manyRefs.column||[],this.actionMenus=this.$manyRefs.actionMenu||[],this.initSortable();let t=this.columns.find(s=>s.dataset.column==="unused"),n=Zt(...this.columns);n.add=this.addBlockToLeastPopulated.bind(this),n.remove=function(s){t.appendChild(s)};let o=Qt(n,this.onChange.bind(this));for(let s of this.actionMenus)s.addEventListener("click",o)}initSortable(){let t=this.onChange.bind(this);for(let n of this.columns)new ut(n,{group:"layout-editor-blocks",ghostClass:"primary-background-light",handle:".handle",animation:150,onSort:t})}onChange(){let t={};for(let n of this.columns){let o=n.dataset.column||"";if(!o)continue;t[o]=[];let s=n.children;for(let r=0;r{e.target.closest("[data-sort-value]")!==null&&this.sortOptionClick(e)}),this.elem.addEventListener("click",e=>{e.target.closest("[data-sort-dir]")!==null&&this.sortDirectionClick(e)})}sortOptionClick(e){let t=e.target.closest("[data-sort-value]");this.sortInput.value=t.getAttribute("data-sort-value"),e.preventDefault(),this.form.submit()}sortDirectionClick(e){let t=this.orderInput.value;this.orderInput.value=t==="asc"?"desc":"asc",e.preventDefault(),this.form.submit()}};function Z(i,e={},t=[]){let n=document.createElement(i),o=Object.keys(e);for(let s of o)e[s]!==null&&n.setAttribute(s,e[s]);for(let s of t)typeof s=="string"?n.append(document.createTextNode(s)):n.append(s);return n}var kn=class extends h{constructor(){super(...arguments);c(this,"button");c(this,"loadingEl",null)}setup(){this.button=this.$el;let t=this.button.form,n=()=>{setTimeout(()=>this.showLoadingState(),10)};this.button.addEventListener("click",n),t&&t.addEventListener("submit",n)}showLoadingState(){this.button.disabled=!0,this.loadingEl||(this.loadingEl=Z("div",{class:"inline block"}),It(this.loadingEl),this.button.after(this.loadingEl))}};var $n=class extends h{setup(){this.elem=this.$el,this.pageId=this.$opts.pageId,this.textDirection=this.$opts.textDirection,this.imageUploadErrorText=this.$opts.imageUploadErrorText,this.serverUploadLimitText=this.$opts.serverUploadLimitText,this.display=this.$refs.display,this.input=this.$refs.input,this.divider=this.$refs.divider,this.displayWrap=this.$refs.displayWrap;let{settingContainer:e}=this.$refs,t=e.querySelectorAll('input[type="checkbox"]');this.editor=null,window.importVersioned("markdown").then(n=>n.init({pageId:this.pageId,container:this.elem,displayEl:this.display,inputEl:this.input,drawioUrl:this.getDrawioUrl(),settingInputs:Array.from(t),text:{serverUploadLimit:this.serverUploadLimitText,imageUploadError:this.imageUploadErrorText}})).then(n=>{this.editor=n,this.setupListeners(),this.emitEditorEvents(),this.scrollToTextIfNeeded(),this.editor.actions.updateAndRender()})}emitEditorEvents(){window.$events.emitPublic(this.elem,"editor-markdown::setup",{markdownIt:this.editor.markdown.getRenderer(),displayEl:this.display,cmEditorView:this.editor.cm})}setupListeners(){this.elem.addEventListener("click",e=>{let t=e.target.closest("button[data-action]");if(t===null)return;let n=t.getAttribute("data-action");if(n==="insertImage"&&this.editor.actions.showImageInsert(),n==="insertLink"&&this.editor.actions.showLinkSelector(),n==="insertDrawing"&&(e.ctrlKey||e.metaKey)){this.editor.actions.showImageManager();return}n==="insertDrawing"&&this.editor.actions.startDrawing(),n==="fullscreen"&&this.editor.actions.fullScreen()}),this.elem.addEventListener("click",e=>{let t=e.target.closest(".editor-toolbar-label");if(!t)return;let n=this.elem.querySelectorAll(".markdown-editor-wrap");for(let o of n)o.classList.remove("active");t.closest(".markdown-editor-wrap").classList.add("active")}),this.handleDividerDrag()}handleDividerDrag(){this.divider.addEventListener("pointerdown",()=>{let t=this.elem.getBoundingClientRect(),n=s=>{let r=s.pageX-t.left,a=Math.min(Math.max(20,Math.floor(r/t.width*100)),80);this.displayWrap.style.flexBasis=`${100-a}%`,this.editor.settings.set("editorWidth",a)},o=()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",o),this.display.style.pointerEvents=null,document.body.style.userSelect=null};this.display.style.pointerEvents="none",document.body.style.userSelect="none",window.addEventListener("pointermove",n),window.addEventListener("pointerup",o)});let e=this.editor.settings.get("editorWidth");e&&(this.displayWrap.style.flexBasis=`${100-e}%`)}scrollToTextIfNeeded(){let t=new URL(window.location).searchParams.get("content-text");t&&this.editor.actions.scrollToText(t)}getDrawioUrl(){let e=document.querySelector("[drawio-url]");return e&&e.getAttribute("drawio-url")||""}async getContent(){return this.editor.actions.getContent()}};var Mn=class extends h{setup(){this.container=this.$el,this.inputContainer=this.$refs.inputContainer,this.inviteOption=this.container.querySelector("input[name=send_invite]"),this.inviteOption&&(this.inviteOption.addEventListener("change",this.inviteOptionChange.bind(this)),this.inviteOptionChange())}inviteOptionChange(){let e=this.inviteOption.value==="true",t=this.container.querySelectorAll("input[type=password]");for(let n of t)n.disabled=e;this.inputContainer.style.display=e?"none":"block"}};var An=class extends h{setup(){this.container=this.$el,this.type=this.$opts.type,this.textElem=this.container.querySelector("span"),this.autoHide=this.$opts.autoHide==="true",this.initialShow=this.$opts.show==="true",this.container.style.display="grid",window.$events.listen(this.type,e=>{this.show(e)}),this.container.addEventListener("click",this.hide.bind(this)),this.initialShow&&setTimeout(()=>this.show(this.textElem.textContent),100),this.hideCleanup=this.hideCleanup.bind(this)}show(e=""){if(this.container.removeEventListener("transitionend",this.hideCleanup),this.textElem.textContent=e,this.container.style.display="grid",setTimeout(()=>{this.container.classList.add("showing")},1),this.autoHide){let t=e.split(" ").length,n=Math.max(2e3,1e3+250*t);setTimeout(this.hide.bind(this),n)}}hide(){this.container.classList.remove("showing"),this.container.addEventListener("transitionend",this.hideCleanup)}hideCleanup(){this.container.style.display="none",this.container.removeEventListener("transitionend",this.hideCleanup)}};var Dn=class extends h{setup(){this.removeButton=this.$refs.remove,this.showButton=this.$refs.show,this.input=this.$refs.input,this.setupListeners()}setupListeners(){H(this.removeButton,()=>{this.input.value="",this.input.classList.add("hidden"),this.removeButton.classList.add("hidden"),this.showButton.classList.remove("hidden")}),H(this.showButton,()=>{this.input.classList.remove("hidden"),this.removeButton.classList.remove("hidden"),this.showButton.classList.add("hidden")})}};var In=class extends h{constructor(){super(...arguments);c(this,"commentId");c(this,"commentLocalId");c(this,"deletedText");c(this,"updatedText");c(this,"archiveText");c(this,"wysiwygEditor",null);c(this,"wysiwygTextDirection");c(this,"container");c(this,"contentContainer");c(this,"form");c(this,"formCancel");c(this,"editButton");c(this,"deleteButton");c(this,"replyButton");c(this,"archiveButton");c(this,"input")}setup(){this.commentId=this.$opts.commentId,this.commentLocalId=this.$opts.commentLocalId,this.deletedText=this.$opts.deletedText,this.updatedText=this.$opts.updatedText,this.archiveText=this.$opts.archiveText,this.wysiwygTextDirection=this.$opts.wysiwygTextDirection,this.container=this.$el,this.contentContainer=this.$refs.contentContainer,this.form=this.$refs.form,this.formCancel=this.$refs.formCancel,this.editButton=this.$refs.editButton,this.deleteButton=this.$refs.deleteButton,this.replyButton=this.$refs.replyButton,this.archiveButton=this.$refs.archiveButton,this.input=this.$refs.input,this.setupListeners()}setupListeners(){if(this.replyButton){let t={id:this.commentLocalId,element:this.container};this.replyButton.addEventListener("click",()=>this.$emit("reply",t))}this.editButton&&(this.editButton.addEventListener("click",this.startEdit.bind(this)),this.form.addEventListener("submit",this.update.bind(this)),this.formCancel.addEventListener("click",()=>this.toggleEditMode(!1))),this.deleteButton&&this.deleteButton.addEventListener("click",this.delete.bind(this)),this.archiveButton&&this.archiveButton.addEventListener("click",this.archive.bind(this))}toggleEditMode(t){this.contentContainer.toggleAttribute("hidden",t),this.form.toggleAttribute("hidden",!t)}async startEdit(){if(this.toggleEditMode(!0),this.wysiwygEditor){this.wysiwygEditor.focus();return}let t=await window.importVersioned("wysiwyg"),n=this.input.value,o=Z("div",{class:"comment-editor-container"});this.input.parentElement?.appendChild(o),this.input.hidden=!0,this.wysiwygEditor=t.createCommentEditorInstance(o,n,{darkMode:document.documentElement.classList.contains("dark-mode"),textDirection:this.$opts.textDirection,translations:window.editor_translations}),this.wysiwygEditor.focus()}async update(t){t.preventDefault();let n=this.showLoading();this.form.toggleAttribute("hidden",!0);let o={html:await this.wysiwygEditor?.getContentAsHtml()||""};try{let s=await window.$http.put(`/comment/${this.commentId}`,o),r=lt(s.data);this.container.replaceWith(r),window.$events.success(this.updatedText)}catch(s){console.error(s),s instanceof At&&window.$events.showValidationErrors(s),this.form.toggleAttribute("hidden",!1),n.remove()}}async delete(){this.showLoading(),await window.$http.delete(`/comment/${this.commentId}`),this.$emit("delete");let t=this.container.closest(".comment-branch");if(t instanceof HTMLElement){let n=window.$components.allWithinElement(t,"page-comment-reference");for(let o of n)o.hideMarker();t.remove()}window.$events.success(this.deletedText)}async archive(){this.showLoading();let n=this.archiveButton.dataset.isArchived==="true"?"unarchive":"archive",o=await window.$http.put(`/comment/${this.commentId}/${n}`);window.$events.success(this.archiveText);let s={new_thread_dom:lt(o.data)};this.$emit(n,s);let r=this.container.closest(".comment-branch"),a=window.$components.allWithinElement(r,"page-comment-reference");for(let l of a)l.hideMarker();r.remove()}showLoading(){let t=Wt();return t.classList.add("px-l"),this.container.append(t),t}};var es='';var ns='';var te=null,Hn=class extends h{constructor(){super(...arguments);c(this,"link");c(this,"reference");c(this,"markerWrap",null);c(this,"viewCommentText");c(this,"jumpToThreadText");c(this,"closeText")}setup(){this.link=this.$el,this.reference=this.$opts.reference,this.viewCommentText=this.$opts.viewCommentText,this.jumpToThreadText=this.$opts.jumpToThreadText,this.closeText=this.$opts.closeText,this.showForDisplay(),window.addEventListener("editor-toolbox-change",(t=>{let n=t.detail.tab,o=t.detail.open;n==="comments"&&o&&this.link.checkVisibility()?this.showForEditor():this.hideMarker()})),window.addEventListener("toggle",t=>{t.target instanceof HTMLElement&&t.target.contains(this.link)&&window.requestAnimationFrame(()=>{this.link.checkVisibility()?this.showForEditor():this.hideMarker()})},{capture:!0}),window.addEventListener("tabs-change",(t=>{let n=t.detail.showing;if(!n.startsWith("comment-tab-panel"))return;document.getElementById(n)?.contains(this.link)?this.showForDisplay():this.hideMarker()}))}showForDisplay(){let t=document.querySelector(".page-content");t instanceof HTMLElement&&this.link.checkVisibility()&&this.updateMarker(t)}showForEditor(){let t=document.querySelector(".editor-content-wrap");t instanceof HTMLElement&&this.updateMarker(t);let n=()=>{this.hideMarker(),setTimeout(()=>{window.$events.remove("editor-html-change",n)},1)};window.$events.listen("editor-html-change",n)}updateMarker(t){this.link.classList.remove("outdated","missing"),this.markerWrap&&this.markerWrap.remove();let[n,o,s]=this.reference.split(":"),r=document.getElementById(n);if(!r){this.link.classList.add("outdated","missing");return}$e(r)!==o&&this.link.classList.add("outdated");let l=Z("button",{type:"button",class:"content-comment-marker",title:this.viewCommentText});l.innerHTML=es,l.addEventListener("click",m=>{this.showCommentAtMarker(l)}),this.markerWrap=Z("div",{class:"content-comment-highlight"},[l]),t.append(this.markerWrap),this.positionMarker(r,s),this.link.href=`#${r.id}`,this.link.addEventListener("click",m=>{m.preventDefault(),Dt(r)});let d=ft(()=>{this.positionMarker(r,s)},50,!1).bind(this);window.addEventListener("resize",d)}positionMarker(t,n){if(!this.markerWrap)return;let o=this.markerWrap.parentElement,s=o.getBoundingClientRect(),r=t.getBoundingClientRect(),[a,l]=n.split("-");if(a&&l){let p=new Range,v=ke(t,Number(a)),y=ke(t,Number(l));v&&y&&(p.setStart(v.node,v.offset),p.setEnd(y.node,y.offset),r=p.getBoundingClientRect())}let d=r.left-s.left,m=r.top-s.top+o.scrollTop;this.markerWrap.style.left=`${d}px`,this.markerWrap.style.top=`${m}px`,this.markerWrap.style.width=`${r.width}px`,this.markerWrap.style.height=`${r.height}px`}hideMarker(){te&&te(),this.markerWrap?.remove(),this.markerWrap=null}showCommentAtMarker(t){te&&te(),t.hidden=!0;let n=this.link.closest(".comment-box"),o=n.closest(".comment-branch").cloneNode(!0),s=o.querySelectorAll(".actions, form");for(let y of s)y.remove();let r=Z("button",{type:"button",title:this.closeText});r.innerHTML=ns;let a=Z("button",{type:"button","data-action":"jump"},[this.jumpToThreadText]),l=Z("div",{class:"content-comment-window"},[Z("div",{class:"content-comment-window-actions"},[a,r]),Z("div",{class:"content-comment-window-content comment-container-compact comment-container-super-compact"},[o])]);t.parentElement?.append(l);let d=()=>{l.remove(),t.hidden=!1,window.removeEventListener("click",m),te=null},m=y=>{t.parentElement.contains(y.target)||d()};window.addEventListener("click",m),te=d,r.addEventListener("click",d.bind(this)),a.addEventListener("click",()=>{d(),n.scrollIntoView({behavior:"smooth"});let y=n.querySelector(".header");y.classList.add("anim-highlight"),y.addEventListener("animationend",()=>y.classList.remove("anim-highlight"))});let p=l.getBoundingClientRect(),v=document.querySelector(".page-content")?.getBoundingClientRect();if(v&&p.right>v.right){let y=p.right-v.right;l.style.left=`-${y}px`}}};var ee=class extends h{constructor(){super(...arguments);c(this,"container");c(this,"tabList");c(this,"tabs");c(this,"panels");c(this,"activeUnder");c(this,"active",null)}setup(){this.container=this.$el,this.tabList=this.container.querySelector('[role="tablist"]'),this.tabs=Array.from(this.tabList.querySelectorAll('[role="tab"]')),this.panels=Array.from(this.container.querySelectorAll(':scope > [role="tabpanel"], :scope > * > [role="tabpanel"]')),this.activeUnder=this.$opts.activeUnder?Number(this.$opts.activeUnder):1e4,this.container.addEventListener("click",t=>{let n=t.target.closest('[role="tab"]');n instanceof HTMLElement&&this.tabs.includes(n)&&this.show(n.getAttribute("aria-controls")||"")}),window.addEventListener("resize",this.updateActiveState.bind(this),{passive:!0}),this.updateActiveState()}show(t){for(let o of this.panels)o.toggleAttribute("hidden",o.id!==t);for(let o of this.tabs){let r=o.getAttribute("aria-controls")===t;o.setAttribute("aria-selected",r?"true":"false")}let n={showing:t};this.$emit("change",n)}updateActiveState(){let t=window.innerWidth!n.hasAttribute("hidden"))||this.panels[0];this.show(t.id),this.tabList.toggleAttribute("hidden",!1)}deactivate(){for(let t of this.panels)t.removeAttribute("hidden");for(let t of this.tabs)t.setAttribute("aria-selected","false");this.tabList.toggleAttribute("hidden",!0)}};var Pn=class extends h{constructor(){super(...arguments);c(this,"elem");c(this,"pageId");c(this,"container");c(this,"commentCountBar");c(this,"activeTab");c(this,"archivedTab");c(this,"addButtonContainer");c(this,"archiveContainer");c(this,"activeContainer");c(this,"replyToRow");c(this,"referenceRow");c(this,"formContainer");c(this,"form");c(this,"formInput");c(this,"formReplyLink");c(this,"formReferenceLink");c(this,"addCommentButton");c(this,"hideFormButton");c(this,"removeReplyToButton");c(this,"removeReferenceButton");c(this,"wysiwygTextDirection");c(this,"wysiwygEditor",null);c(this,"createdText");c(this,"countText");c(this,"archivedCountText");c(this,"parentId",null);c(this,"contentReference","");c(this,"formReplyText","")}setup(){this.elem=this.$el,this.pageId=Number(this.$opts.pageId),this.container=this.$refs.commentContainer,this.commentCountBar=this.$refs.commentCountBar,this.activeTab=this.$refs.activeTab,this.archivedTab=this.$refs.archivedTab,this.addButtonContainer=this.$refs.addButtonContainer,this.archiveContainer=this.$refs.archiveContainer,this.activeContainer=this.$refs.activeContainer,this.replyToRow=this.$refs.replyToRow,this.referenceRow=this.$refs.referenceRow,this.formContainer=this.$refs.formContainer,this.form=this.$refs.form,this.formInput=this.$refs.formInput,this.formReplyLink=this.$refs.formReplyLink,this.formReferenceLink=this.$refs.formReferenceLink,this.addCommentButton=this.$refs.addCommentButton,this.hideFormButton=this.$refs.hideFormButton,this.removeReplyToButton=this.$refs.removeReplyToButton,this.removeReferenceButton=this.$refs.removeReferenceButton,this.wysiwygTextDirection=this.$opts.wysiwygTextDirection,this.createdText=this.$opts.createdText,this.countText=this.$opts.countText,this.archivedCountText=this.$opts.archivedCountText,this.formReplyText=this.formReplyLink?.textContent||"",this.setupListeners()}setupListeners(){this.elem.addEventListener("page-comment-delete",()=>{setTimeout(()=>{this.updateCount(),this.hideForm()},1)}),this.elem.addEventListener("page-comment-reply",(t=>{this.setReply(t.detail.id,t.detail.element)})),this.elem.addEventListener("page-comment-archive",(t=>{this.archiveContainer.append(t.detail.new_thread_dom),setTimeout(()=>this.updateCount(),1)})),this.elem.addEventListener("page-comment-unarchive",(t=>{this.container.append(t.detail.new_thread_dom),setTimeout(()=>this.updateCount(),1)})),this.form&&(this.removeReplyToButton.addEventListener("click",this.removeReplyTo.bind(this)),this.removeReferenceButton.addEventListener("click",()=>this.setContentReference("")),this.hideFormButton.addEventListener("click",this.hideForm.bind(this)),this.addCommentButton.addEventListener("click",this.showForm.bind(this)),this.form.addEventListener("submit",this.saveComment.bind(this)))}async saveComment(t){t.preventDefault(),t.stopPropagation();let n=Wt();n.classList.add("px-l"),this.form.after(n),this.form.toggleAttribute("hidden",!0);let o={html:await this.wysiwygEditor?.getContentAsHtml()||"",parent_id:this.parentId||null,content_ref:this.contentReference};window.$http.post(`/comment/${this.pageId}`,o).then(s=>{let r=lt(s.data);o.parent_id?this.formContainer.after(r):this.container.append(r);let a=window.$components.allWithinElement(r,"page-comment-reference");for(let l of a)l.showForDisplay();window.$events.success(this.createdText),this.hideForm(),this.updateCount()}).catch(s=>{this.form.toggleAttribute("hidden",!1),window.$events.showValidationErrors(s)}),this.form.toggleAttribute("hidden",!1),n.remove()}updateCount(){let t=this.getActiveThreadCount();this.activeTab.textContent=window.$trans.choice(this.countText,t);let n=this.getArchivedThreadCount();this.archivedTab.textContent=window.$trans.choice(this.archivedCountText,n)}resetForm(){this.removeEditor(),this.formInput.value="",this.parentId=null,this.replyToRow.toggleAttribute("hidden",!0),this.container.append(this.formContainer),this.setContentReference("")}showForm(){this.removeEditor(),this.formContainer.toggleAttribute("hidden",!1),this.addButtonContainer.toggleAttribute("hidden",!0),this.formContainer.scrollIntoView({behavior:"smooth",block:"nearest"}),this.loadEditor();let t=window.$components.firstOnElement(this.elem,"tabs");t instanceof ee&&this.formContainer.closest("#comment-tab-panel-active")&&t.show("comment-tab-panel-active")}hideForm(){this.resetForm(),this.formContainer.toggleAttribute("hidden",!0),this.getActiveThreadCount()>0?this.activeContainer.append(this.addButtonContainer):this.commentCountBar.append(this.addButtonContainer),this.addButtonContainer.toggleAttribute("hidden",!1)}async loadEditor(){if(this.wysiwygEditor){this.wysiwygEditor.focus();return}let t=await window.importVersioned("wysiwyg"),n=Z("div",{class:"comment-editor-container"});this.formInput.parentElement?.appendChild(n),this.formInput.hidden=!0,this.wysiwygEditor=t.createCommentEditorInstance(n,"

    ",{darkMode:document.documentElement.classList.contains("dark-mode"),textDirection:this.wysiwygTextDirection,translations:window.editor_translations}),this.wysiwygEditor.focus()}removeEditor(){this.wysiwygEditor&&(this.wysiwygEditor.remove(),this.wysiwygEditor=null)}getActiveThreadCount(){return this.container.querySelectorAll(":scope > .comment-branch:not([hidden])").length}getArchivedThreadCount(){return this.archiveContainer.querySelectorAll(":scope > .comment-branch").length}setReply(t,n){n.closest(".comment-branch").querySelector(".comment-branch-children").append(this.formContainer),this.showForm(),this.parentId=Number(t),this.replyToRow.toggleAttribute("hidden",!1),this.formReplyLink.textContent=this.formReplyText.replace("1234",String(this.parentId)),this.formReplyLink.href=`#comment${this.parentId}`}removeReplyTo(){this.parentId=null,this.replyToRow.toggleAttribute("hidden",!0),this.container.append(this.formContainer),this.showForm()}startNewComment(t){this.resetForm(),this.showForm(),this.setContentReference(t)}setContentReference(t){this.contentReference=t,this.referenceRow.toggleAttribute("hidden",!t);let[n]=t.split(":");this.formReferenceLink.href=`#${n}`,this.formReferenceLink.onclick=function(o){o.preventDefault();let s=document.getElementById(n);s&&Dt(s)}}};function Dr(i,e){fi(`#page-navigation a[href="#${i}"]`,t=>{t.closest("li").classList.toggle("current-heading",e)})}function Ir(i){for(let e of i){let t=e.intersectionRatio===1;Dr(e.target.id,t)}}function Hr(i){let e={rootMargin:"0px 0px 0px 0px",threshold:1},t=new IntersectionObserver(Ir,e);for(let n of i)t.observe(n)}var Bn=class extends h{setup(){if(this.container=this.$el,this.pageId=this.$opts.pageId,window.importVersioned("code").then(t=>t.highlight()),this.setupNavHighlighting(),window.location.hash){let t=window.location.hash.replace(/%20/g," ").substring(1);this.goToText(t)}let e=document.querySelector(".sidebar-page-nav");e&&W(e,"a","click",(t,n)=>{t.preventDefault(),window.$components.first("tri-layout").showContent();let o=n.getAttribute("href").substr(1);this.goToText(o),window.history.pushState(null,null,`#${o}`)})}goToText(e){let t=document.getElementById(e);if(fi(".page-content [data-highlighted]",n=>{n.removeAttribute("data-highlighted"),n.style.backgroundColor=null}),t!==null)Dt(t);else{let n=xo(".page-content > div > *",e);n&&Dt(n)}}setupNavHighlighting(){let e=document.querySelector(".sidebar-page-nav"),t=document.querySelector(".page-content").querySelectorAll("h1, h2, h3, h4, h5, h6");t.length>0&&e!==null&&Hr(t)}};function is(i){let e=new Date(i*1e3),t=e.getHours(),n=e.getMinutes();return`${(t>9?"":"0")+t}:${(n>9?"":"0")+n}`}var Rn=class extends h{setup(){this.draftsEnabled=this.$opts.draftsEnabled==="true",this.editorType=this.$opts.editorType,this.pageId=Number(this.$opts.pageId),this.isNewDraft=this.$opts.pageNewDraft==="true",this.hasDefaultTitle=this.$opts.hasDefaultTitle||!1,this.container=this.$el,this.titleElem=this.$refs.titleContainer.querySelector("input"),this.saveDraftButton=this.$refs.saveDraft,this.discardDraftButton=this.$refs.discardDraft,this.discardDraftWrap=this.$refs.discardDraftWrap,this.deleteDraftButton=this.$refs.deleteDraft,this.deleteDraftWrap=this.$refs.deleteDraftWrap,this.draftDisplay=this.$refs.draftDisplay,this.draftDisplayIcon=this.$refs.draftDisplayIcon,this.changelogInput=this.$refs.changelogInput,this.changelogDisplay=this.$refs.changelogDisplay,this.changelogCounter=this.$refs.changelogCounter,this.changeEditorButtons=this.$manyRefs.changeEditor||[],this.switchDialogContainer=this.$refs.switchDialog,this.deleteDraftDialogContainer=this.$refs.deleteDraftDialog,this.draftText=this.$opts.draftText,this.autosaveFailText=this.$opts.autosaveFailText,this.editingPageText=this.$opts.editingPageText,this.draftDiscardedText=this.$opts.draftDiscardedText,this.draftDeleteText=this.$opts.draftDeleteText,this.draftDeleteFailText=this.$opts.draftDeleteFailText,this.setChangelogText=this.$opts.setChangelogText,this.autoSave={interval:null,frequency:3e4,last:0,pendingChange:!1},this.shownWarningsCache=new Set,this.pageId!==0&&this.draftsEnabled&&window.setTimeout(()=>{this.startAutoSave()},1e3),this.draftDisplay.innerHTML=this.draftText,this.setupListeners(),this.setInitialFocus()}setupListeners(){window.$events.listen("editor-save-draft",this.saveDraft.bind(this)),window.$events.listen("editor-save-page",this.savePage.bind(this));let e=()=>{this.autoSave.pendingChange=!0};window.$events.listen("editor-html-change",e),window.$events.listen("editor-markdown-change",e),this.titleElem.addEventListener("input",e);let t=ft(this.updateChangelogDisplay.bind(this),300,!1);this.changelogInput.addEventListener("input",()=>{let n=this.changelogInput.value.length;this.changelogCounter.innerText=`${n} / 180`,t()}),H(this.saveDraftButton,this.saveDraft.bind(this)),H(this.discardDraftButton,this.discardDraft.bind(this)),H(this.deleteDraftButton,this.deleteDraft.bind(this)),H(this.changeEditorButtons,this.changeEditor.bind(this))}setInitialFocus(){if(this.hasDefaultTitle){this.titleElem.select();return}window.setTimeout(()=>{window.$events.emit("editor::focus","")},500)}startAutoSave(){this.autoSave.interval=window.setInterval(this.runAutoSave.bind(this),this.autoSave.frequency)}runAutoSave(){Date.now()-this.autoSave.last{this.draftDisplayIcon.classList.remove("visible")},2e3)}async discardDraft(e=!0){let t;try{t=await window.$http.get(`/ajax/page/${this.pageId}`)}catch(n){console.error(n);return}this.autoSave.interval&&window.clearInterval(this.autoSave.interval),this.draftDisplay.innerText=this.editingPageText,this.discardDraftWrap.toggleAttribute("hidden",!0),window.$events.emit("editor::replace",{html:t.data.html,markdown:t.data.markdown}),this.titleElem.value=t.data.name,window.setTimeout(()=>{this.startAutoSave()},1e3),e&&window.$events.success(this.draftDiscardedText)}async deleteDraft(){if(await window.$components.firstOnElement(this.deleteDraftDialogContainer,"confirm-dialog").show())try{let n=this.discardDraft(!1),o=window.$http.delete(`/page-revisions/user-drafts/${this.pageId}`);await Promise.all([n,o]),window.$events.success(this.draftDeleteText),this.deleteDraftWrap.toggleAttribute("hidden",!0)}catch(n){console.error(n),window.$events.error(this.draftDeleteFailText)}}updateChangelogDisplay(){let e=this.changelogInput.value.trim();e.length===0?e=this.setChangelogText:e.length>16&&(e=`${e.slice(0,16)}...`),this.changelogDisplay.innerText=e}async changeEditor(e){e.preventDefault();let t=e.target.closest("a").href,n=window.$components.firstOnElement(this.switchDialogContainer,"confirm-dialog"),[o,s]=await Promise.all([this.saveDraft(),n.show()]);o&&s&&(window.location=t)}getEditorComponent(){return window.$components.first("markdown-editor")||window.$components.first("wysiwyg-editor")||window.$components.first("wysiwyg-editor-tinymce")}};function On(i,e){i.toggleAttribute("hidden",!e)}var Nn=class extends h{setup(){this.input=this.$refs.input,this.resetButton=this.$refs.resetButton,this.selectButton=this.$refs.selectButton,this.display=this.$refs.display,this.defaultDisplay=this.$refs.defaultDisplay,this.buttonSep=this.$refs.buttonSeperator,this.selectorEndpoint=this.$opts.selectorEndpoint,this.value=this.input.value,this.setupListeners()}setupListeners(){this.selectButton.addEventListener("click",this.showPopup.bind(this)),this.display.parentElement.addEventListener("click",this.showPopup.bind(this)),this.display.addEventListener("click",e=>e.stopPropagation()),this.resetButton.addEventListener("click",()=>{this.setValue("","")})}showPopup(){window.$components.first("entity-selector-popup").show(t=>{this.setValue(t.id,t.name)},{initialValue:"",searchEndpoint:this.selectorEndpoint,entityTypes:"page",entityPermission:"view"})}setValue(e,t){this.value=e,this.input.value=e,this.controlView(t)}controlView(e){let t=this.value&&this.value!==0;if(On(this.resetButton,t),On(this.buttonSep,t),On(this.defaultDisplay,!t),On(this.display,t),t){let n=this.getAssetIdFromVal();this.display.textContent=`#${n}, ${e}`,this.display.href=window.baseUrl(`/link/${n}`)}}getAssetIdFromVal(){return Number(this.value)}};var _n=class extends h{setup(){this.container=this.$el,this.cellSelector=this.$opts.cellSelector||"td,th",this.rowSelector=this.$opts.rowSelector||"tr";for(let e of this.$manyRefs.toggleAll||[])e.addEventListener("click",this.toggleAllClick.bind(this));for(let e of this.$manyRefs.toggleRow||[])e.addEventListener("click",this.toggleRowClick.bind(this));for(let e of this.$manyRefs.toggleColumn||[])e.addEventListener("click",this.toggleColumnClick.bind(this))}toggleAllClick(e){e.preventDefault(),this.toggleAllInElement(this.container)}toggleRowClick(e){e.preventDefault(),this.toggleAllInElement(e.target.closest(this.rowSelector))}toggleColumnClick(e){e.preventDefault();let t=e.target.closest(this.cellSelector),n=Array.from(t.parentElement.children).indexOf(t),o=this.container.querySelectorAll(this.rowSelector),s=[];for(let r of o){let a=r.children[n];a&&s.push(...a.querySelectorAll("input[type=checkbox]"))}this.toggleAllInputs(s)}toggleAllInElement(e){let t=e.querySelectorAll("input[type=checkbox]");this.toggleAllInputs(t)}toggleAllInputs(e){let t=e.length>0?e[0].checked:!1;for(let n of e)n.checked=!t,n.dispatchEvent(new Event("change"))}};var Fn=class extends h{constructor(){super(...arguments);c(this,"showing",!1);c(this,"isMakingSelection",!1);c(this,"targetElement",null);c(this,"targetSelectionRange",null);c(this,"pointer");c(this,"linkInput");c(this,"linkButton");c(this,"includeInput");c(this,"includeButton");c(this,"sectionModeButton");c(this,"commentButton");c(this,"modeToggles");c(this,"modeSections");c(this,"pageId")}setup(){this.pointer=this.$refs.pointer,this.linkInput=this.$refs.linkInput,this.linkButton=this.$refs.linkButton,this.includeInput=this.$refs.includeInput,this.includeButton=this.$refs.includeButton,this.sectionModeButton=this.$refs.sectionModeButton,this.commentButton=this.$refs.commentButton,this.modeToggles=this.$manyRefs.modeToggle,this.modeSections=this.$manyRefs.modeSection,this.pageId=this.$opts.pageId,this.setupListeners()}setupListeners(){this.includeButton.addEventListener("click",()=>Wi(this.includeInput.value)),this.linkButton.addEventListener("click",()=>Wi(this.linkInput.value)),H([this.includeInput,this.linkInput],n=>{n.target.select(),n.stopPropagation()}),Se(this.pointer,["click","focus"],n=>{n.stopPropagation()}),Se(document.body,["click","focus"],()=>{!this.showing||this.isMakingSelection||this.hidePointer()}),Co(this.pointer,this.hidePointer.bind(this));let t=document.querySelector(".page-content");Se(t,["mouseup","keyup"],n=>{n.stopPropagation();let o=n.target.closest('[id^="bkmrk"]');if(o instanceof HTMLElement&&(window.getSelection()||"").toString().length>0){let s=n instanceof MouseEvent?n.pageX:0;this.showPointerAtTarget(o,s,!1)}}),H(this.sectionModeButton,this.enterSectionSelectMode.bind(this)),H(this.modeToggles,n=>{let o=n.target;for(let r of this.modeSections){let a=!r.contains(o);r.toggleAttribute("hidden",!a)}let s=this.modeToggles.find(r=>r!==o);s&&s.focus()}),this.commentButton&&H(this.commentButton,this.createCommentAtPointer.bind(this))}hidePointer(){this.pointer.style.removeProperty("display"),this.showing=!1,this.targetElement=null,this.targetSelectionRange=null}showPointerAtTarget(t,n,o){this.targetElement=t;let s=window.getSelection(),r=s?.direction||"";this.targetSelectionRange=s?.getRangeAt(0)||null,this.updateDomForTarget(t),this.pointer.style.display="block";let a=t.getBoundingClientRect(),l=this.pointer.getBoundingClientRect(),m=Math.min(Math.max(n,a.left),a.right)-l.width/2,p=a.top-l.height-16;this.pointer.style.left=`${m}px`,this.pointer.style.top=`${p}px`,this.showing=!0,this.isMakingSelection=!0,setTimeout(()=>{this.isMakingSelection=!1},100);let v=()=>{this.hidePointer(),window.removeEventListener("scroll",v)};r==="forward"?t.after(this.pointer):t.before(this.pointer),o||window.addEventListener("scroll",v,{passive:!0})}updateDomForTarget(t){let n=window.baseUrl(`/link/${this.pageId}#${t.id}`),o=`{{@${this.pageId}#${t.id}}}`;this.linkInput.value=n,this.includeInput.value=o;let s=this.pointer.querySelector("#pointer-edit");if(s instanceof HTMLAnchorElement&&t){let{editHref:r}=s.dataset,a=t.id,l=(t.textContent||"").substring(0,50);s.href=`${r}?content-id=${a}&content-text=${encodeURIComponent(l)}`}}enterSectionSelectMode(){let t=Array.from(document.querySelectorAll('.page-content [id^="bkmrk"]'));for(let n of t)n.setAttribute("tabindex","0");t[0].focus(),qt(t,n=>{this.showPointerAtTarget(n.target,0,!0),this.pointer.focus()})}createCommentAtPointer(){if(!this.targetElement)return;let t=this.targetElement.id,n=$e(this.targetElement),o="";if(this.targetSelectionRange){let a=this.targetSelectionRange.commonAncestorContainer;if(this.targetElement.contains(a)){let l=gi(this.targetSelectionRange.startContainer,this.targetSelectionRange.startOffset,this.targetElement),d=gi(this.targetSelectionRange.endContainer,this.targetSelectionRange.endOffset,this.targetElement);o=`${l}-${d}`}}let s=`${t}:${n}:${o}`;window.$components.first("page-comments").startNewComment(s)}};var qn=class extends h{setup(){this.container=this.$el,this.hideButtons=this.$manyRefs.hide||[],this.onkeyup=null,this.onHide=null,this.setupListeners()}setupListeners(){let e=null;this.container.addEventListener("mousedown",t=>{e=t.target}),this.container.addEventListener("click",t=>{t.target===this.container&&e===this.container&&this.hide()}),H(this.hideButtons,()=>this.hide())}hide(e=null){Qo(this.container,120,e),this.onkeyup&&(window.removeEventListener("keyup",this.onkeyup),this.onkeyup=null),this.onHide&&this.onHide()}show(e=null,t=null){Zo(this.container,120,e),this.onkeyup=n=>{n.key==="Escape"&&this.hide()},window.addEventListener("keyup",this.onkeyup),this.onHide=t}};var Wn=class extends h{setup(){this.container=this.$el,this.mode=this.$opts.mode,this.lightContainer=this.$refs.lightContainer,this.darkContainer=this.$refs.darkContainer,this.container.addEventListener("tabs-change",t=>{let o=t.detail.showing==="color-scheme-panel-light"?"light":"dark";this.handleModeChange(o)});let e=t=>{this.updateAppColorsFromInputs(),t.target.name.startsWith("setting-app-color")&&this.updateLightForInput(t.target)};this.container.addEventListener("change",e),this.container.addEventListener("input",e)}handleModeChange(e){this.mode=e;let t=e==="dark";document.documentElement.classList.toggle("dark-mode",t),this.updateAppColorsFromInputs()}updateAppColorsFromInputs(){let t=(this.mode==="dark"?this.darkContainer:this.lightContainer).querySelectorAll('input[type="color"]');for(let n of t){let o=n.name.split("-"),s=o.indexOf("color"),r=o.slice(1,s).join("-");r==="app"&&(r="primary");let a=`--color-${r}`;document.body.style.setProperty(a,n.value)}}updateLightForInput(e){let t=e.name.replace("-color","-color-light"),n=e.value,o=this.hexToRgb(n),s=`rgba(${[o.r,o.g,o.b,"0.15"].join(",")})`,r=this.container.querySelector(`input[name="${t}"][type="hidden"]`);r.value=s}hexToRgb(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return{r:t?parseInt(t[1],16):0,g:t?parseInt(t[2],16):0,b:t?parseInt(t[3],16):0}}};var jn=class extends h{setup(){this.colorInput=this.$refs.input,this.resetButton=this.$refs.resetButton,this.defaultButton=this.$refs.defaultButton,this.currentColor=this.$opts.current,this.defaultColor=this.$opts.default,this.resetButton.addEventListener("click",()=>this.setValue(this.currentColor)),this.defaultButton.addEventListener("click",()=>this.setValue(this.defaultColor))}setValue(e){this.colorInput.value=e,this.colorInput.dispatchEvent(new Event("change",{bubbles:!0}))}};var Un=class extends h{setup(){this.typeControl=this.$refs.typeControl,this.pagePickerContainer=this.$refs.pagePickerContainer,this.typeControl.addEventListener("change",this.controlPagePickerVisibility.bind(this)),this.controlPagePickerVisibility()}controlPagePickerVisibility(){let e=this.typeControl.value==="page";this.pagePickerContainer.style.display=e?"block":"none"}};var Vn=class extends h{setup(){this.elem=this.$el,this.input=this.$refs.input,this.shelfBookList=this.$refs.shelfBookList,this.allBookList=this.$refs.allBookList,this.bookSearchInput=this.$refs.bookSearch,this.sortButtonContainer=this.$refs.sortButtonContainer,this.lastSort=null,this.initSortable(),this.setupListeners()}initSortable(){let e=this.elem.querySelectorAll(".scroll-box");for(let t of e)new ut(t,{group:"shelf-books",ghostClass:"primary-background-light",handle:".handle",animation:150,onSort:this.onChange.bind(this)})}setupListeners(){let e=Zt(this.allBookList,this.shelfBookList),t=Qt(e,this.onChange.bind(this));this.elem.addEventListener("click",t),this.bookSearchInput.addEventListener("input",()=>{this.filterBooksByName(this.bookSearchInput.value)}),this.sortButtonContainer.addEventListener("click",n=>{let o=n.target.closest("button[data-sort]");o&&this.sortShelfBooks(o.dataset.sort)})}filterBooksByName(e){this.allBookList.style.height||(this.allBookList.style.height=`${this.allBookList.getBoundingClientRect().height}px`);let t=this.allBookList.children,n=e.trim().toLowerCase();for(let o of t){let s=!e||o.textContent.toLowerCase().includes(n);o.style.display=s?null:"none"}}onChange(){let e=Array.from(this.shelfBookList.querySelectorAll("[data-id]"));this.input.value=e.map(t=>t.getAttribute("data-id")).join(",")}sortShelfBooks(e){let t=Array.from(this.shelfBookList.children),n=e===this.lastSort;t.sort((o,s)=>{let r=o.dataset[e].toLowerCase(),a=s.dataset[e].toLowerCase();return n?a.localeCompare(r):r.localeCompare(a)});for(let o of t)this.shelfBookList.append(o);this.lastSort=this.lastSort===e?null:e,this.onChange()}};function Pr(i){let e={};for(let[t,n]of Object.entries(i))e[n]=t;return e}var zn=class extends h{setup(){this.container=this.$el,this.mapById=JSON.parse(this.$opts.keyMap),this.mapByShortcut=Pr(this.mapById),this.hintsShowing=!1,this.hideHints=this.hideHints.bind(this),this.hintAbortController=null,this.setupListeners()}setupListeners(){window.addEventListener("keydown",e=>{if(!e.target.closest("input, select, textarea, .cm-editor, .editor-container")){if(e.key==="?"){this.hintsShowing?this.hideHints():this.showHints();return}this.handleShortcutPress(e)}})}handleShortcutPress(e){let n=[e.ctrlKey?"Ctrl":"",e.metaKey?"Cmd":"",e.key].filter(s=>!!s).join(" + "),o=this.mapByShortcut[n];o&&this.runShortcut(o)&&e.preventDefault()}runShortcut(e){let t=this.container.querySelector(`[data-shortcut="${e}"]`);return t?t.matches("input, textarea, select")?(t.focus(),!0):t.matches("a, button")?(t.click(),!0):t.matches("div[tabindex]")?(t.click(),t.focus(),!0):(console.error("Shortcut attempted to be ran for element type that does not have handling setup",t),!1):!1}showHints(){let e=document.createElement("div");e.classList.add("shortcut-container"),this.container.append(e);let t=this.container.querySelectorAll("[data-shortcut]"),n=new Set;for(let s of t){let r=s.getAttribute("data-shortcut");if(n.has(r))continue;let a=this.mapById[r];this.showHintLabel(s,a,e),n.add(r)}this.hintAbortController=new AbortController;let o=this.hintAbortController.signal;window.addEventListener("scroll",this.hideHints,{signal:o}),window.addEventListener("focus",this.hideHints,{signal:o}),window.addEventListener("blur",this.hideHints,{signal:o}),window.addEventListener("click",this.hideHints,{signal:o}),this.hintsShowing=!0}showHintLabel(e,t,n){let o=e.getBoundingClientRect(),s=document.createElement("div");s.classList.add("shortcut-hint"),s.textContent=t;let r=document.createElement("div");r.classList.add("shortcut-linkage"),r.style.left=`${o.x}px`,r.style.top=`${o.y}px`,r.style.width=`${o.width}px`,r.style.height=`${o.height}px`,n.append(s,r);let a=s.getBoundingClientRect();s.style.insetInlineStart=`${o.x+o.width-(a.width+6)}px`,s.style.insetBlockStart=`${o.y+(o.height-a.height)/2}px`}hideHints(){this.container.querySelector(".shortcut-container").remove(),this.hintAbortController?.abort(),this.hintsShowing=!1}};var Br=["Control","Alt","Shift","Meta","Super"," ","+","Tab","Escape"],Kn=class extends h{setup(){this.input=this.$el,this.setupListeners()}setupListeners(){this.listenerRecordKey=this.listenerRecordKey.bind(this),this.input.addEventListener("focus",()=>{this.startListeningForInput()}),this.input.addEventListener("blur",()=>{this.stopListeningForInput()})}startListeningForInput(){this.input.addEventListener("keydown",this.listenerRecordKey)}listenerRecordKey(e){if(Br.includes(e.key))return;let t=[e.ctrlKey?"Ctrl":"",e.metaKey?"Cmd":"",e.key];this.input.value=t.filter(n=>!!n).join(" + ")}stopListeningForInput(){this.input.removeEventListener("keydown",this.listenerRecordKey)}};var Xn=class extends h{setup(){this.container=this.$el,this.handleSelector=this.$opts.handleSelector;let e=new ut(this.container,{handle:this.handleSelector,animation:150,onSort:()=>{this.$emit("sort",{ids:e.toArray()})},setData(t,n){let o=n.getAttribute("data-drag-content");if(o){let s=JSON.parse(o);for(let[r,a]of Object.entries(s))t.setData(r,a)}},revertOnSpill:!0,dropBubble:!0,dragoverBubble:!1})}};var Gn=class extends h{constructor(){super(...arguments);c(this,"input");c(this,"configuredList");c(this,"availableList")}setup(){this.input=this.$refs.input,this.configuredList=this.$refs.configuredOperationsList,this.availableList=this.$refs.availableOperationsList,this.initSortable();let t=Zt(this.availableList,this.configuredList),n=Qt(t,this.onChange.bind(this));this.$el.addEventListener("click",n)}initSortable(){let t=[this.configuredList,this.availableList];for(let n of t)new ut(n,{group:"sort-rule-operations",ghostClass:"primary-background-light",handle:".handle",animation:150,onSort:this.onChange.bind(this)})}onChange(){let t=Array.from(this.configuredList.querySelectorAll("[data-id]"));this.input.value=t.map(n=>n.getAttribute("data-id")).join(",")}};var Yn=class extends h{setup(){this.filter=this.$opts.filter,this.$el.addEventListener("change",e=>{if(this.filter&&!e.target.matches(this.filter))return;let t=this.$el.closest("form");t&&t.submit()})}};var Jn=class extends h{setup(){this.addRemoveComponentEl=this.$refs.addRemove,this.container=this.$el,this.rowSelector=this.$opts.rowSelector,this.setupListeners()}setupListeners(){this.container.addEventListener("input",e=>{let t=window.$components.firstOnElement(this.addRemoveComponentEl,"add-remove-rows");!this.hasEmptyRows()&&e.target.value&&t.add()})}hasEmptyRows(){return[...this.container.querySelectorAll(this.rowSelector)].find(n=>[...n.querySelectorAll("input")].filter(o=>o.value).length===0)!==void 0}};var Zn=class extends h{setup(){this.container=this.$el,this.list=this.$refs.list,this.searchInput=this.$refs.searchInput,this.searchButton=this.$refs.searchButton,this.searchCancel=this.$refs.searchCancel,this.setupListeners()}setupListeners(){W(this.container,"[template-action]","click",this.handleTemplateActionClick.bind(this)),W(this.container,".pagination a","click",this.handlePaginationClick.bind(this)),W(this.container,".template-item-content","click",this.handleTemplateItemClick.bind(this)),W(this.container,".template-item","dragstart",this.handleTemplateItemDragStart.bind(this)),this.searchInput.addEventListener("keypress",e=>{e.key==="Enter"&&(e.preventDefault(),this.performSearch())}),this.searchButton.addEventListener("click",()=>this.performSearch()),this.searchCancel.addEventListener("click",()=>{this.searchInput.value="",this.performSearch()})}handleTemplateItemClick(e,t){let n=t.closest("[template-id]").getAttribute("template-id");this.insertTemplate(n,"replace")}handleTemplateItemDragStart(e,t){let n=t.closest("[template-id]").getAttribute("template-id");e.dataTransfer.setData("bookstack/template",n),e.dataTransfer.setData("text/plain",n)}handleTemplateActionClick(e,t){e.stopPropagation();let n=t.getAttribute("template-action"),o=t.closest("[template-id]").getAttribute("template-id");this.insertTemplate(o,n)}async insertTemplate(e,t="replace"){let n=await window.$http.get(`/templates/${e}`),o=`editor::${t}`;window.$events.emit(o,n.data)}async handlePaginationClick(e,t){e.preventDefault();let n=t.getAttribute("href"),o=await window.$http.get(n);this.list.innerHTML=o.data}async performSearch(){let e=this.searchInput.value,t=await window.$http.get("/templates",{search:e});this.searchCancel.style.display=e?"block":"none",this.list.innerHTML=t.data}};var Qn=class extends h{setup(){this.input=this.$el.querySelector("input[type=hidden]"),this.checkbox=this.$el.querySelector("input[type=checkbox]"),this.checkbox.addEventListener("change",this.stateChange.bind(this))}stateChange(){this.input.value=this.checkbox.checked?"true":"false";let e=new Event("change");this.input.dispatchEvent(e)}};function Rr(i,e){return document.createElement(i,e)}function Or(i,e,t){return document.createElementNS(i,e,t)}function Nr(){return Ot(document.createDocumentFragment())}function _r(i){return document.createTextNode(i)}function Fr(i){return document.createComment(i)}function qr(i,e,t){if(yt(i)){let n=i;for(;n&&yt(n);)n=Ot(n).parent;i=n??i}yt(e)&&(e=Ot(e,i)),t&&yt(t)&&(t=Ot(t).firstChildNode),i.insertBefore(e,t)}function Wr(i,e){i.removeChild(e)}function jr(i,e){yt(e)&&(e=Ot(e,i)),i.appendChild(e)}function os(i){if(yt(i)){for(;i&&yt(i);)i=Ot(i).parent;return i??null}return i.parentNode}function Ur(i){var e;if(yt(i)){let t=Ot(i),n=os(t);if(n&&t.lastChildNode){let o=Array.from(n.childNodes),s=o.indexOf(t.lastChildNode);return(e=o[s+1])!==null&&e!==void 0?e:null}return null}return i.nextSibling}function Vr(i){return i.tagName}function zr(i,e){i.textContent=e}function Kr(i){return i.textContent}function Xr(i){return i.nodeType===1}function Gr(i){return i.nodeType===3}function Yr(i){return i.nodeType===8}function yt(i){return i.nodeType===11}function Ot(i,e){var t,n,o;let s=i;return(t=s.parent)!==null&&t!==void 0||(s.parent=e??null),(n=s.firstChildNode)!==null&&n!==void 0||(s.firstChildNode=i.firstChild),(o=s.lastChildNode)!==null&&o!==void 0||(s.lastChildNode=i.lastChild),s}var ti={createElement:Rr,createElementNS:Or,createTextNode:_r,createDocumentFragment:Nr,createComment:Fr,insertBefore:qr,removeChild:Wr,appendChild:jr,parentNode:os,nextSibling:Ur,tagName:Vr,setTextContent:zr,getTextContent:Kr,isElement:Xr,isText:Gr,isComment:Yr,isDocumentFragment:yt};function Et(i,e,t,n,o){let s=e===void 0?void 0:e.key;return{sel:i,data:e,children:t,text:n,elm:o,key:s}}var ji=Array.isArray;function ss(i){return typeof i=="string"||typeof i=="number"||i instanceof String||i instanceof Number}var Ui=Et("",{},[],void 0,void 0);function Ee(i,e){var t,n;let o=i.key===e.key,s=((t=i.data)===null||t===void 0?void 0:t.is)===((n=e.data)===null||n===void 0?void 0:n.is),r=i.sel===e.sel,a=!i.sel&&i.sel===e.sel?typeof i.text==typeof e.text:!0;return r&&o&&s&&a}function Zr(){throw new Error("The document fragment is not supported on this platform.")}function Qr(i,e){return i.isElement(e)}function ta(i,e){return i.isDocumentFragment(e)}function ea(i,e,t){var n;let o={};for(let s=e;s<=t;++s){let r=(n=i[s])===null||n===void 0?void 0:n.key;r!==void 0&&(o[r]=s)}return o}var na=["create","update","remove","destroy","pre","post"];function Vi(i,e,t){let n={create:[],update:[],remove:[],destroy:[],pre:[],post:[]},o=e!==void 0?e:ti;for(let u of na)for(let f of i){let w=f[u];w!==void 0&&n[u].push(w)}function s(u){let f=u.id?"#"+u.id:"",w=u.getAttribute("class"),E=w?"."+w.split(" ").join("."):"";return Et(o.tagName(u).toLowerCase()+f+E,{},[],void 0,u)}function r(u){return Et(void 0,{},[],void 0,u)}function a(u,f){return function(){if(--f===0){let E=o.parentNode(u);E!==null&&o.removeChild(E,u)}}}function l(u,f){var w,E,b,L,S;let x,A=u.data,B=A?.hook;(w=B?.init)===null||w===void 0||w.call(B,u);let P=u.children,k=u.sel;if(k==="!")(E=u.text)!==null&&E!==void 0||(u.text=""),u.elm=o.createComment(u.text);else if(k==="")u.elm=o.createTextNode(u.text);else if(k!==void 0){let O=k.indexOf("#"),R=k.indexOf(".",O),U=O>0?O:k.length,V=R>0?R:k.length,mt=O!==-1||R!==-1?k.slice(0,Math.min(U,V)):k,Ct=A?.ns,et=Ct===void 0?o.createElement(mt,A):o.createElementNS(Ct,mt,A);for(u.elm=et,U0&&et.setAttribute("class",k.slice(V+1).replace(/\./g," ")),x=0;xt.toUpperCase())}function Ce(i,e){var t;let n=e!==void 0?e:ti,o;if(n.isElement(i)){let s=i.id?"#"+i.id:"",r=(t=i.getAttribute("class"))===null||t===void 0?void 0:t.match(/[^\t\r\n\f ]+/g),a=r?"."+r.join("."):"",l=n.tagName(i).toLowerCase()+s+a,d={},m={},p={},v=[],y,u,f,w=i.attributes,E=i.childNodes;for(u=0,f=w.length;u0&&(p.attrs=d),Object.keys(m).length>0&&(p.dataset=m),l.startsWith("svg")&&(l.length===3||l[3]==="."||l[3]==="#")&&zi(p,v,l),Et(l,p,v,void 0,i)}else return n.isText(i)?(o=n.getTextContent(i),Et(void 0,void 0,void 0,o,i)):n.isComment(i)?(o=n.getTextContent(i),Et("!",{},[],o,i)):Et("",{},[],void 0,i)}var oa="http://www.w3.org/1999/xlink",sa="http://www.w3.org/2000/xmlns/",ra="http://www.w3.org/XML/1998/namespace";function rs(i,e){let t,n=e.elm,o=i.data.attrs,s=e.data.attrs;if(!(!o&&!s)&&o!==s){o=o||{},s=s||{};for(t in s){let r=s[t];o[t]!==r&&(r===!0?n.setAttribute(t,""):r===!1?n.removeAttribute(t):t.charCodeAt(0)!==120?n.setAttribute(t,r):t.charCodeAt(3)===58?n.setAttributeNS(ra,t,r):t.charCodeAt(5)===58?t.charCodeAt(1)===109?n.setAttributeNS(sa,t,r):n.setAttributeNS(oa,t,r):n.setAttribute(t,r))}for(t in o)t in s||n.removeAttribute(t)}}var Ki={create:rs,update:rs};var as=/[A-Z]/g;function ls(i,e){let t=e.elm,n=i.data.dataset,o=e.data.dataset,s;if(!n&&!o||n===o)return;n=n||{},o=o||{};let r=t.dataset;for(s in n)s in o||(r?s in r&&delete r[s]:t.removeAttribute("data-"+s.replace(as,"-$&").toLowerCase()));for(s in o)n[s]!==o[s]&&(r?r[s]=o[s]:t.setAttribute("data-"+s.replace(as,"-$&").toLowerCase(),o[s]))}var Xi={create:ls,update:ls};var ei;function aa(){return ei||(ei=Vi([Ki,Xi]),ei)}function cs(i,e){aa()(Ce(i),Ce(e))}var ni=class extends h{constructor(){super(...arguments);c(this,"container");c(this,"noneEl");c(this,"display");c(this,"isActive",!1)}setup(){this.container=this.$el,this.noneEl=this.$refs.none,this.display=this.$refs.display,window.addEventListener("editor-toolbox-change",(n=>{let o=n.detail.tab,s=n.detail.open;o==="contents"&&s?(this.isActive!==!0&&this.render(),this.isActive=!0):this.isActive=!1}));let t=ft(this.onContentChange.bind(this),500,!1);window.$events.listen("editor-html-change",t),window.$events.listen("editor-markdown-change",t),this.container.addEventListener("click",n=>{let o=n.target.closest("li[data-index]");o instanceof HTMLElement&&(n.preventDefault(),this.onHeaderSelect(o))})}onHeaderSelect(t){let n=t.getAttribute("data-id")||"",o=Number(t.getAttribute("data-index")||"");window.$events.emit("editor::focus-heading",{index:o,id:n})}onContentChange(){this.isActive&&this.render()}async render(){let t=await this.getEditorHtml(),n=this.parseHeadersFromHtml(t);this.rebaseHeaders(n);let o=this.headersToDom(n),s=this.display.firstElementChild;s||(s=document.createElement("ul"),this.display.appendChild(s)),cs(s,o),this.noneEl.hidden=n.length>0}async getEditorHtml(){return(await window.$components.first("page-editor").getEditorComponent().getContent()).html}parseHeadersFromHtml(t){let s=new DOMParser().parseFromString(t,"text/html").querySelectorAll("h1, h2, h3, h4, h5, h6"),r=[];for(let a=0;ao.level));if(n>1)for(let o of t)o.level--}while(n>1)}headersToDom(t){let n=t.map(o=>Q("li",{"data-level":String(o.level),"data-index":String(o.index),"data-id":o.id,id:`page-contents-${o.id}`,class:`page-nav-item h${o.level}`},[Q("a",{class:"text-limit-lines-1 block",href:`#${o.id}`},[o.text]),Q("div",{class:"link-background sidebar-page-nav-bullet"})]));return Q("ul",{class:"sidebar-page-nav menu"},n)}};var ii=class extends h{constructor(){super(...arguments);c(this,"container");c(this,"tabs");c(this,"sidebarScrollContainers");c(this,"lastLayoutType","none");c(this,"onDestroy",null);c(this,"scrollCache",{content:0,info:0});c(this,"lastTabShown","content")}setup(){this.container=this.$refs.container,this.tabs=this.$manyRefs.tab,this.sidebarScrollContainers=this.$manyRefs.sidebarScrollContainer,this.mobileTabClick=this.mobileTabClick.bind(this),this.updateLayout(),window.addEventListener("resize",()=>{this.updateLayout()},{passive:!0}),this.setupSidebarScrollHandlers()}updateLayout(){let t="tablet";window.innerWidth<=1e3&&(t="mobile"),window.innerWidth>1400&&(t="desktop"),t!==this.lastLayoutType&&(this.onDestroy&&(this.onDestroy(),this.onDestroy=null),t==="desktop"?this.setupDesktop():t==="mobile"&&this.setupMobile(),this.lastLayoutType=t)}setupMobile(){for(let t of this.tabs)t.addEventListener("click",this.mobileTabClick);this.onDestroy=()=>{for(let t of this.tabs)t.removeEventListener("click",this.mobileTabClick)}}setupDesktop(){}mobileTabClick(t){let n=t.target.dataset.tab||"";this.showTab(n)}showContent(){this.showTab("content",!1)}showTab(t,n=!0){this.scrollCache[this.lastTabShown]=document.documentElement.scrollTop;for(let s of this.tabs){let r=s.dataset.tab===t;s.setAttribute("aria-selected",r?"true":"false")}let o=t==="info";if(this.container.classList.toggle("show-info",o),n){let r=document.querySelector("header").getBoundingClientRect().bottom;document.documentElement.scrollTop=this.scrollCache[t]||r,setTimeout(()=>{document.documentElement.scrollTop=this.scrollCache[t]||r},50)}this.lastTabShown=t}setupSidebarScrollHandlers(){for(let t of this.sidebarScrollContainers)t.addEventListener("scroll",()=>this.handleSidebarScroll(t),{passive:!0}),this.handleSidebarScroll(t);window.addEventListener("resize",()=>{for(let t of this.sidebarScrollContainers)this.handleSidebarScroll(t)})}handleSidebarScroll(t){let n=t.clientHeight!==t.scrollHeight,o=t.scrollTop===0,s=t.scrollTop+t.clientHeight===t.scrollHeight;t.parentElement&&(t.parentElement.classList.toggle("scroll-away-from-top",!o&&n),t.parentElement.classList.toggle("scroll-away-from-bottom",!s&&n))}};var oi=class extends h{setup(){this.container=this.$el,this.input=this.$refs.input,this.userInfoContainer=this.$refs.userInfo,W(this.container,"a.dropdown-search-item","click",this.selectUser.bind(this))}selectUser(e,t){e.preventDefault(),this.input.value=t.getAttribute("data-id"),this.userInfoContainer.innerHTML=t.innerHTML,this.input.dispatchEvent(new Event("change",{bubbles:!0})),this.hide()}hide(){window.$components.firstOnElement(this.container,"dropdown").hide()}};var si=class extends h{setup(){this.checkboxes=this.$el.querySelectorAll('input[type="checkbox"]'),this.allCheckbox=this.$el.querySelector('input[type="checkbox"][value="all"]'),this.$el.addEventListener("change",e=>{e.target.checked&&e.target===this.allCheckbox?this.deselectIndividualEvents():e.target.checked&&(this.allCheckbox.checked=!1)})}deselectIndividualEvents(){for(let e of this.checkboxes)e!==this.allCheckbox&&(e.checked=!1)}};var ri=class extends h{setup(){this.elem=this.$el,this.editContainer=this.$refs.editContainer,this.input=this.$refs.input,this.editor=null;let e={...window.editor_translations,imageUploadErrorText:this.$opts.imageUploadErrorText,serverUploadLimitText:this.$opts.serverUploadLimitText};window.importVersioned("wysiwyg").then(n=>{let o=this.input.value;this.editor=n.createPageEditorInstance(this.editContainer,o,{drawioUrl:this.getDrawIoUrl(),pageId:Number(this.$opts.pageId),darkMode:document.documentElement.classList.contains("dark-mode"),textDirection:this.$opts.textDirection,translations:e}),window.wysiwyg=this.editor});let t=!1;this.input.form.addEventListener("submit",n=>{this.editor&&(t?t=!1:(n.preventDefault(),t=!0,this.editor.getContentAsHtml().then(o=>{this.input.value=o,setTimeout(()=>{this.input.form.requestSubmit()},5)})))})}getDrawIoUrl(){let e=document.querySelector("[drawio-url]");return e?e.getAttribute("drawio-url"):""}async getContent(){return{html:await this.editor.getContentAsHtml()}}};function ds(i){for(let e=1;e<5;e++)i.shortcuts.add(`meta+${e}`,"",["FormatBlock",!1,`h${e+1}`]);i.shortcuts.add("meta+5","",["FormatBlock",!1,"p"]),i.shortcuts.add("meta+d","",["FormatBlock",!1,"p"]),i.shortcuts.add("meta+6","",["FormatBlock",!1,"blockquote"]),i.shortcuts.add("meta+q","",["FormatBlock",!1,"blockquote"]),i.shortcuts.add("meta+7","",["codeeditor",!1,"pre"]),i.shortcuts.add("meta+e","",["codeeditor",!1,"pre"]),i.shortcuts.add("meta+8","",["FormatBlock",!1,"code"]),i.shortcuts.add("meta+shift+E","",["FormatBlock",!1,"code"]),i.shortcuts.add("meta+o","","InsertOrderedList"),i.shortcuts.add("meta+p","","InsertUnorderedList"),i.shortcuts.add("meta+S","",()=>{window.$events.emit("editor-save-draft")}),i.shortcuts.add("meta+13","",()=>{window.$events.emit("editor-save-page")}),i.shortcuts.add("meta+9","",()=>{let e=i.selection.getNode(),t=e?e.closest(".callout"):null,n=["info","success","warning","danger"],s=(n.findIndex(a=>t&&t.classList.contains(a))+1)%n.length,r=n[s];i.formatter.apply(`callout${r}`)}),i.shortcuts.add("meta+shift+K","",()=>{let e=window.$components.first("entity-selector-popup"),t=i.selection.getContent({format:"text"}).trim();e.show(n=>{i.selection.isCollapsed()?i.insertContent(i.dom.createHTML("a",{href:n.link},i.dom.encode(n.name))):i.formatter.apply("link",{href:n.link}),i.selection.collapse(!1),i.focus()},{initialValue:t,searchEndpoint:"/search/entity-selector",entityTypes:"page,book,chapter,bookshelf",entityPermission:"view"})})}function la(i,e){let t=i.dom.get(encodeURIComponent(e).replace(/!/g,"%21"));t&&(t.scrollIntoView(),i.selection.select(t,!0),i.selection.collapse(!1),i.focus())}function hs(i,e){let n=i.dom.select("h1, h2, h3, h4, h5, h6")[e];n&&(n.scrollIntoView(),i.selection.select(n,!0),i.selection.collapse(!1),i.focus())}function us(i){let t=new URL(window.location).searchParams.get("content-id");t&&la(i,t)}function ps(i){window.$events.listen("editor::replace",({html:e})=>{i.setContent(e)}),window.$events.listen("editor::append",({html:e})=>{let t=i.getContent()+e;i.setContent(t)}),window.$events.listen("editor::prepend",({html:e})=>{let t=e+i.getContent();i.setContent(t)}),window.$events.listen("editor::insert",({html:e})=>{i.insertContent(e)}),window.$events.listen("editor::focus",()=>{i.initialized&&i.focus()}),window.$events.listen("editor::focus-heading",({index:e})=>{hs(i,e)})}var Nt,ai;function ca(i){return i&&!!(i.textContent||i.innerText)}async function da(i,e){if(i===null||i.type.indexOf("image")!==0)throw new Error("Not an image file");let t=i.name||`image-${Date.now()}.png`,n=new FormData;return n.append("file",i,t),n.append("uploaded_to",e),(await window.$http.post(window.baseUrl("/images/gallery"),n)).data}function ms(i,e,t){let n=new Jt(t.clipboardData||t.dataTransfer);if(!n.hasItems()||n.containsTabularData())return;let o=n.getImages();for(let s of o){let r=`image-${Math.random().toString(16).slice(2)}`,a=window.baseUrl("/loading.gif");t.preventDefault(),setTimeout(()=>{i.insertContent(`

    `),da(s,e.pageId).then(l=>{let d=l.name.replace(/"/g,""),m=`${d}`,p=i.dom.create("a",{target:"_blank",href:l.url},m);i.dom.replace(p,r)}).catch(l=>{i.dom.remove(r),window.$events.error(l?.data?.message||e.translations.imageUploadErrorText),console.error(l)})},10)}}function ha(i){let e=i.selection.getNode();e.nodeName==="IMG"&&(Nt=i.dom.getParent(e,".mceTemp"),!Nt&&e.parentNode.nodeName==="A"&&!ca(e.parentNode)&&(Nt=e.parentNode)),e.hasAttribute("contenteditable")&&e.getAttribute("contenteditable")==="false"&&(ai=e)}function ua(i,e,t){let{dom:n}=i,o=window.tinymce.dom.RangeUtils.getCaretRangeFromPoint(t.clientX,t.clientY,i.getDoc()),s=t.dataTransfer&&t.dataTransfer.getData("bookstack/template");s&&(t.preventDefault(),window.$http.get(`/templates/${s}`).then(r=>{i.selection.setRng(o),i.undoManager.transact(()=>{i.execCommand("mceInsertContent",!1,r.data.html)})})),n.getParent(o.startContainer,".mceTemp")?t.preventDefault():Nt&&(t.preventDefault(),i.undoManager.transact(()=>{i.selection.setRng(o),i.selection.setNode(Nt),n.remove(Nt)})),!t.isDefaultPrevented()&&ai&&(t.preventDefault(),i.undoManager.transact(()=>{let r=i.selection.getNode(),a=i.selection.getRng(),l=r.closest("body > *");a.startOffset>a.startContainer.length/2?l.after(ai):l.before(ai)})),t.isDefaultPrevented()||ms(i,e,t),Nt=null}function pa(i,e){e.preventDefault(),i.focus();let n=window.tinymce.dom.RangeUtils.getCaretRangeFromPoint(e.clientX??0,e.clientY??0,i.getDoc());i.selection.setRng(n)}function fs(i,e){i.on("dragover",t=>pa(i,t)),i.on("dragstart",()=>ha(i)),i.on("drop",t=>ua(i,e,t)),i.on("paste",t=>ms(i,e,t))}function gs(i){return["undo redo","styles","bold italic underline forecolor backcolor formatoverflow","alignleft aligncenter alignright alignjustify","bullist numlist listoverflow",i.textDirection==="rtl"?"ltr rtl":"","link customtable imagemanager-insert insertoverflow","code about fullscreen"].filter(n=>!!n).join(" | ")}function ma(i){i.ui.registry.addGroupToolbarButton("formatoverflow",{icon:"more-drawer",tooltip:"More",items:"strikethrough superscript subscript inlinecode removeformat"}),i.ui.registry.addGroupToolbarButton("listoverflow",{icon:"more-drawer",tooltip:"More",items:"tasklist outdent indent"}),i.ui.registry.addGroupToolbarButton("insertoverflow",{icon:"more-drawer",tooltip:"More",items:"customhr codeeditor drawio media details"})}function fa(i){i.ui.registry.addContextToolbar("linkcontexttoolbar",{predicate(e){return e.closest("a")!==null},position:"node",scope:"node",items:"link unlink openlink"})}function ga(i){i.ui.registry.addContextToolbar("imagecontexttoolbar",{predicate(e){return e.closest("img")!==null&&!e.hasAttribute("data-mce-object")},position:"node",scope:"node",items:"image"})}function va(i){i.ui.registry.addContextToolbar("objectcontexttoolbar",{predicate(e){return e.closest("img")!==null&&e.hasAttribute("data-mce-object")},position:"node",scope:"node",items:"media"})}function vs(i){ma(i),fa(i),ga(i),va(i)}var ba={"table-delete-column":'',"table-delete-row":'',"table-insert-column-after":'',"table-insert-column-before":'',"table-insert-row-above":'',"table-insert-row-after":'',table:'',"table-delete-table":''};function bs(i){for(let[e,t]of Object.entries(ba))i.ui.registry.addIcon(e,t)}function wa(i){i.serializer.addNodeFilter("br",e=>{for(let t of e)if(t.parent&&t.parent.name==="code"){let n=window.tinymce.html.Node.create("#text");n.value=` +`,t.replace(n)}})}function ya(i){i.parser.addNodeFilter("div",e=>{for(let t of e){let n=t.attr("id")||"",o=t.attr("class")||"";(n==="pointer"||o.includes("pointer"))&&t.remove()}})}function ws(i){wa(i),ya(i)}function ys(i){return i.tagName.toLowerCase()==="code-block"}function Cs(i,e,t,n,o){let s=window.$components.first("code-editor"),r=i.selection.getBookmark();s.open(e,t,n,(a,l)=>{o(a,l),i.focus(),i.selection.moveToBookmark(r)},()=>{i.focus(),i.selection.moveToBookmark(r)})}function Es(i,e){let t=e.getAttribute("dir")||"";Cs(i,e.getContent(),e.getLanguage(),t,(n,o)=>{e.setContent(n,o)})}function Ea(i){let e=i.getDoc(),t=e.defaultView;class n extends t.HTMLElement{constructor(){super();c(this,"editor",null);this.attachShadow({mode:"open"});let r=document.head.querySelectorAll('link[rel="stylesheet"]:not([media="print"]),style'),a=Array.from(r).map(d=>d.cloneNode(!0)),l=document.createElement("div");l.style.pointerEvents="none",l.contentEditable="false",l.classList.add("CodeMirrorContainer"),l.classList.toggle("dark-mode",document.documentElement.classList.contains("dark-mode")),this.shadowRoot.append(...a,l)}getLanguage(){let r=d=>(d.split(" ").filter(p=>p.startsWith("language-"))[0]||"").replace("language-",""),a=this.querySelector("code"),l=this.querySelector("pre");return r(l.className)||a&&r(a.className)||""}setContent(r,a){this.editor&&(this.editor.setContent(r),this.editor.setMode(a,r));let l=this.querySelector("pre");l||(l=e.createElement("pre"),this.append(l)),l.innerHTML="";let d=e.createElement("code");l.append(d),d.innerText=r,d.className=`language-${a}`}getContent(){let r=this.querySelector("code")||this.querySelector("pre"),a=document.createElement("pre");a.innerHTML=r.innerHTML.replace(/\ufeff/g,"");let l=a.querySelectorAll("br");for(let d of l)d.replaceWith(` +`);return a.textContent}connectedCallback(){let r=Date.now();if(this.editor)return;this.cleanChildContent();let a=this.getContent(),d=a.split(` +`).length*19.2+18+24;this.style.height=`${d}px`;let m=this.shadowRoot.querySelector(".CodeMirrorContainer"),p=v=>{this.editor=v.wysiwygView(m,this.shadowRoot,a,this.getLanguage()),setTimeout(()=>{this.style.height=null},12)};window.importVersioned("code").then(v=>{let y=Date.now()-r<20?20:0;setTimeout(()=>p(v),y)})}cleanChildContent(){let r=this.querySelector("pre");if(r)for(let a of r.childNodes)a.nodeName==="#text"&&a.textContent==="\uFEFF"&&a.remove()}}t.customElements.define("code-block",n)}function Ca(i){i.ui.registry.addIcon("codeblock",''),i.ui.registry.addButton("codeeditor",{tooltip:"Insert code block",icon:"codeblock",onAction(){i.execCommand("codeeditor")}}),i.ui.registry.addButton("editcodeeditor",{tooltip:"Edit code block",icon:"edit-block",onAction(){i.execCommand("codeeditor")}}),i.addCommand("codeeditor",()=>{let e=i.selection.getNode(),t=e.ownerDocument;if(ys(e))Es(i,e);else{let n=i.selection.getContent({format:"text"}),o=document.dir==="rtl"?"ltr":"";Cs(i,n,"",o,(s,r)=>{let a=t.createElement("pre"),l=t.createElement("code");l.classList.add(`language-${r}`),l.innerText=s,o&&a.setAttribute("dir",o),a.append(l),i.insertContent(a.outerHTML)})}}),i.on("dblclick",()=>{let e=i.selection.getNode();ys(e)&&Es(i,e)}),i.on("PreInit",()=>{i.parser.addNodeFilter("pre",e=>{for(let t of e){let n=window.tinymce.html.Node.create("code-block",{contenteditable:"false"}),o=t.children().filter(a=>a.name==="code")[0]||null,s=t.attr("dir")||o&&o.attr("dir")||"";s&&n.attr("dir",s);let r=t.getAll("span");for(let a of r)a.unwrap();t.attr("style",null),t.wrap(n)}}),i.parser.addNodeFilter("code-block",e=>{for(let t of e)t.attr("contenteditable","false")}),i.serializer.addNodeFilter("code-block",e=>{for(let t of e){let n=t.attr("dir");n&&t.firstChild?t.firstChild.attr("dir",n):t.firstChild&&t.firstChild.attr("dir",null),t.unwrap()}})}),i.ui.registry.addContextToolbar("codeeditor",{predicate(e){return e.nodeName.toLowerCase()==="code-block"},items:"editcodeeditor",position:"node",scope:"node"}),i.on("PreInit",()=>{Ea(i)})}function xs(){return Ca}function li(i){return new Promise((e,t)=>{i.oncomplete=i.onsuccess=()=>e(i.result),i.onabort=i.onerror=()=>t(i.error)})}function xa(i,e){let t,n=()=>{if(t)return t;let o=indexedDB.open(i);return o.onupgradeneeded=()=>o.result.createObjectStore(e),t=li(o),t.then(s=>{s.onclose=()=>t=void 0},()=>{t=void 0}),t};return(o,s)=>n().then(r=>s(r.transaction(e,o).objectStore(e)))}var Gi;function Yi(){return Gi||(Gi=xa("keyval-store","keyval")),Gi}function Ji(i,e=Yi()){return e("readonly",t=>li(t.get(i)))}function Zi(i,e,t=Yi()){return t("readwrite",n=>(n.put(e,i),li(n.transaction)))}function Qi(i,e=Yi()){return e("readwrite",t=>(t.delete(i),li(t.transaction)))}var pt=null,no,ci,to,eo="last-drawing-save";function io(i){pt?.contentWindow?.postMessage(JSON.stringify(i),no)}function Ta(i){Zi(eo,i.data),to&&to(i.data).then(()=>{Qi(eo)})}function Sa(i){io({action:"export",format:"xmlpng",xml:i.xml,spin:"Updating drawing"})}function ka(){ci&&ci().then(i=>{io({action:"load",autosave:1,xml:i})})}function $a(){let i={};pt&&(window.$events.emitPublic(pt,"editor-drawio::configure",{config:i}),io({action:"configure",config:i}))}function Ls(){window.removeEventListener("message",Ts),pt&&document.body.removeChild(pt)}function Ts(i){if(!i.data||i.data.length<1||i.origin!==no)return;let e=JSON.parse(i.data);e.event==="init"?ka():e.event==="exit"?Ls():e.event==="save"?Sa(e):e.event==="export"?Ta(e):e.event==="configure"&&$a()}async function Ma(){let i=await Ji(eo),e=document.getElementById("unsaved-drawing-dialog");e||console.error("Missing expected unsaved-drawing dialog"),i&&e&&await window.$components.firstOnElement(e,"confirm-dialog").show()&&(ci=async()=>i)}async function Ss(i,e,t){ci=e,to=t,await Ma(),pt=document.createElement("iframe"),pt.setAttribute("frameborder","0"),window.addEventListener("message",Ts),pt.setAttribute("src",i),pt.setAttribute("class","fullscreen"),pt.style.backgroundColor="#FFFFFF",document.body.appendChild(pt),no=new URL(i).origin}async function oo(i,e){let t={image:i,uploaded_to:e};return(await window.$http.post(window.baseUrl("/images/drawio"),t)).data}function di(){Ls()}async function ks(i){try{return`data:image/png;base64,${(await window.$http.get(window.baseUrl(`/images/drawio/base64/${i}`))).data.content}`}catch(e){throw e instanceof At&&window.$events.showResponseError(e),di(),e}}var st=null,Ft=null,_t={};function so(i){return i.hasAttribute("drawio-diagram")}function Da(i,e=null){st=i,Ft=e,window.$components.first("image-manager").show(n=>{if(e){let o=e.querySelector("img");st.undoManager.transact(()=>{st.dom.setAttrib(o,"src",n.url),st.dom.setAttrib(e,"drawio-diagram",n.id)})}else{let o=`
    `;st.insertContent(o)}},"drawio")}async function Ia(i){let e=window.baseUrl("/loading.gif"),t=s=>{s.status===413?window.$events.emit("error",_t.translations.serverUploadLimitText):window.$events.emit("error",_t.translations.imageUploadErrorText),console.error(s)};if(Ft){di();let s=Ft.querySelector("img");try{let r=await oo(i,_t.pageId);st.undoManager.transact(()=>{st.dom.setAttrib(s,"src",r.url),st.dom.setAttrib(Ft,"drawio-diagram",r.id)})}catch(r){throw t(r),new Error(`Failed to save image with error: ${r}`,{cause:r})}return}await vo(5);let n=`drawing-${Math.random().toString(16).slice(2)}`,o=`drawing-wrap-${Math.random().toString(16).slice(2)}`;st.insertContent(`
    `),di();try{let s=await oo(i,_t.pageId);st.undoManager.transact(()=>{st.dom.setAttrib(n,"src",s.url),st.dom.setAttrib(o,"drawio-diagram",s.id)})}catch(s){throw st.dom.remove(o),t(s),new Error(`Failed to save image with error: ${s}`,{cause:s})}}function Ha(){if(!Ft)return Promise.resolve("");let i=Ft.getAttribute("drawio-diagram");return ks(i)}function $s(i,e=null){st=i,Ft=e,Ss(_t.drawioUrl,Ha,Ia)}function Pa(i){i.addCommand("drawio",()=>{let e=i.selection.getNode();$s(i,so(e)?e:null)}),i.ui.registry.addIcon("diagram",``),i.ui.registry.addSplitButton("drawio",{tooltip:"Insert/edit drawing",icon:"diagram",onAction(){i.execCommand("drawio"),window.document.body.dispatchEvent(new Event("mousedown",{bubbles:!0}))},fetch(e){e([{type:"choiceitem",text:"Drawing manager",value:"drawing-manager"}])},onItemAction(e,t){if(t==="drawing-manager"){let n=i.selection.getNode();Da(i,so(n)?n:null)}}}),i.on("dblclick",()=>{let e=i.selection.getNode();so(e)&&$s(i,e)}),i.on("SetContent",()=>{let e=i.dom.select("body > div[drawio-diagram]");e.length&&i.undoManager.transact(()=>{for(let t of e)t.setAttribute("contenteditable","false")})})}function Ms(i){return _t=i,Pa}function Ba(i){i.addCommand("InsertHorizontalRule",()=>{let e=document.createElement("hr"),t=i.selection.getNode(),{parentNode:n}=t;n.insertBefore(e,t)}),i.ui.registry.addButton("customhr",{icon:"horizontal-rule",tooltip:"Insert horizontal line",onAction(){i.execCommand("InsertHorizontalRule")}})}function As(){return Ba}function Ra(i){i.ui.registry.addButton("imagemanager-insert",{title:"Insert image",icon:"image",tooltip:"Insert image",onAction(){window.$components.first("image-manager").show(t=>{let n=t.thumbs?.display||t.url,o=``;o+=`${t.name}`,o+="",i.execCommand("mceInsertContent",!1,o)},"gallery")}})}function Ds(){return Ra}function Oa(i){let e={title:"About the WYSIWYG Editor",url:window.baseUrl("/help/tinymce")};i.ui.registry.addButton("about",{icon:"help",tooltip:"About the editor",onAction(){window.tinymce.activeEditor.windowManager.openUrl(e)}})}function Is(){return Oa}var Hs=["p","h1","h2","h3","h4","h5","h6","div","blockquote","pre","code-block","details","ul","ol","table","hr"];function hi(i){return i.selection.getNode().closest("details")}function Na(i,e){let t=hi(i);t&&(i.undoManager.transact(()=>{let n=t.querySelector("summary");n||(n=document.createElement("summary"),t.prepend(n)),n.textContent=e}),i.selection.select(t))}function _a(i){return{title:"Edit collapsible block",body:{type:"panel",items:[{type:"input",name:"summary",label:"Toggle label"}]},buttons:[{type:"cancel",text:"Cancel"},{type:"submit",text:"Save",primary:!0}],onSubmit(e){let{summary:t}=e.getData();Na(i,t),e.close()}}}function Fa(i){let e=i.querySelector("summary");return e?e.textContent:""}function Ps(i){let e=hi(i);i.windowManager.open(_a(i)).setData({summary:Fa(e)})}function qa(i){let e=i.selection.getNode().closest("details"),t=i.selection.getBookmark();if(e){let n=e.querySelectorAll("details > *:not(summary, doc-root), doc-root > *");i.undoManager.transact(()=>{for(let o of n)e.parentNode.insertBefore(o,e);e.remove()})}i.focus(),i.selection.moveToBookmark(t)}function ro(i){i.attr("contenteditable",null);let e=!1;for(let t of i.children())t.name==="doc-root"&&(t.unwrap(),e=!0);e&&ro(i)}function Wa(i){ro(i),i.attr("contenteditable","false");let e=window.tinymce.html.Node.create("doc-root",{contenteditable:"true"}),t=null;for(let n of i.children()){if(n.name==="summary")continue;Hs.includes(n.name)?(e.append(n),t=null):(t||(t=window.tinymce.html.Node.create("p"),e.append(t)),t.append(n))}i.append(e)}function ja(i){i.parser.addNodeFilter("details",e=>{for(let t of e)Wa(t)}),i.serializer.addNodeFilter("details",e=>{for(let t of e)ro(t),t.attr("open",null)}),i.serializer.addNodeFilter("doc-root",e=>{for(let t of e)t.unwrap()})}function Ua(i){i.ui.registry.addIcon("details",''),i.ui.registry.addIcon("togglefold",''),i.ui.registry.addIcon("togglelabel",''),i.ui.registry.addButton("details",{icon:"details",tooltip:"Insert collapsible block",onAction(){i.execCommand("InsertDetailsBlock")}}),i.ui.registry.addButton("removedetails",{icon:"table-delete-table",tooltip:"Unwrap",onAction(){qa(i)}}),i.ui.registry.addButton("editdetials",{icon:"togglelabel",tooltip:"Edit label",onAction(){Ps(i)}}),i.on("dblclick",e=>{let t=e?.target?.ownerDocument?.defaultView?.HTMLDetailsElement;t&&e.target instanceof t&&hi(i)&&(Ps(i),e.preventDefault(),e.stopPropagation())}),i.ui.registry.addButton("toggledetails",{icon:"togglefold",tooltip:"Toggle open/closed",onAction(){hi(i).toggleAttribute("open"),i.focus()}}),i.addCommand("InsertDetailsBlock",()=>{let e=i.selection.getContent({format:"html"}),t=document.createElement("details"),n=document.createElement("summary"),o=`details-${Date.now()}`;t.setAttribute("data-id",o),t.appendChild(n),e||(e="


    "),t.innerHTML+=e,i.insertContent(t.outerHTML),i.focus();let s=i.dom.select(`[data-id="${o}"]`)[0]||null;if(s){let r=s.querySelector("doc-root > *");r&&r.focus(),s.removeAttribute("data-id")}}),i.ui.registry.addContextToolbar("details",{predicate(e){return e.nodeName.toLowerCase()==="details"},items:"editdetials toggledetails removedetails",position:"node",scope:"node"}),i.on("PreInit",()=>{ja(i)})}function Bs(){return Ua}function Va(i){i.ui.registry.addIcon("tableclearformatting",'');let e={items:" | tablerowheader",predicate(n){let o=n.nodeName.toLowerCase()==="table",s=i.selection.getNode(),r=s.closest("table");return!o||!r?!1:r.querySelector("tr").contains(s)},position:"node",scope:"node"};i.ui.registry.addContextToolbar("customtabletoolbarfirstrow",e),i.addCommand("tableclearformatting",()=>{let n=i.dom.getParent(i.selection.getStart(),"table");if(!n)return;let o=["class","style","width","height"],s=[n,...n.querySelectorAll(o.map(r=>`[${r}]`).join(","))];for(let r of s)for(let a of o)r.removeAttribute(a)}),i.addCommand("tableclearsizes",()=>{let n=i.dom.getParent(i.selection.getStart(),"table");if(!n)return;let o=[n,...n.querySelectorAll("tr,td,th,tbody,thead,tfoot,th>*,td>*")];for(let s of o)s.removeAttribute("width"),s.removeAttribute("height"),s.style.height=null,s.style.width=null});let t=()=>{let n=i.ui.registry.getAll().buttons;i.ui.registry.addMenuButton("customtable",{...n.table,fetch:o=>o("inserttable | cell row column | advtablesort | tableprops tableclearformatting tableclearsizes deletetable")}),i.ui.registry.addMenuItem("tableclearformatting",{icon:"tableclearformatting",text:"Clear table formatting",onSetup:n.tableprops.onSetup,onAction(){i.execCommand("tableclearformatting")}}),i.ui.registry.addMenuItem("tableclearsizes",{icon:"resize",text:"Resize to contents",onSetup:n.tableprops.onSetup,onAction(){i.execCommand("tableclearsizes")}}),i.off("PreInit",t)};i.on("PreInit",t)}function Rs(){return Va}function za(i){let e=i.closest("li");return e&&e.parentNode.nodeName==="UL"&&e.classList.contains("task-list-item")}function Ka(i,e,t){let n=e.getBoundingClientRect();i.clientX<=n.right&&i.clientX>=n.left&&i.clientY>=n.top&&i.clientY<=n.bottom||t.undoManager.transact(()=>{e.hasAttribute("checked")?e.removeAttribute("checked"):e.setAttribute("checked","checked")})}function Xa(i){i.attr("class","task-list-item");for(let e of i.children())e.name==="input"&&(e.attr("checked")==="checked"&&i.attr("checked","checked"),e.remove())}function Ga(i){let e=i.attr("checked")==="checked";i.attr("checked",null);let t={type:"checkbox",disabled:"disabled"};e&&(t.checked="checked");let n=window.tinymce.html.Node.create("input",t);n.shortEnded=!0,i.firstChild?i.insert(n,i.firstChild,!0):i.append(n)}function Ya(i){i.ui.registry.addIcon("tasklist",''),i.ui.registry.addToggleButton("tasklist",{tooltip:"Task list",icon:"tasklist",active:!1,onAction(n){n.isActive()?i.execCommand("RemoveList"):i.execCommand("InsertUnorderedList",null,{"list-item-attributes":{class:"task-list-item"},"list-style-type":"tasklist"})},onSetup(n){i.on("NodeChange",o=>{let s=o.parents.find(a=>a.nodeName==="LI"),r=s&&s.classList.contains("task-list-item");n.setActive(!!r)})}});let e=i.ui.registry.getAll().buttons.bullist;e.onSetup=function(o){i.on("NodeChange",s=>{let r=s.parents.find(d=>d.nodeName==="LI"),a=r&&r.classList.contains("task-list-item"),l=r&&r.parentNode.nodeName==="UL";o.setActive(!!(l&&!a))})},e.onAction=function(){za(i.selection.getNode())&&i.execCommand("InsertOrderedList",null,{"list-item-attributes":{class:null}}),i.execCommand("InsertUnorderedList",null,{"list-item-attributes":{class:null}})};let t=i.ui.registry.getAll().buttons.numlist;t.onAction=function(){i.execCommand("InsertOrderedList",null,{"list-item-attributes":{class:null}})},i.on("PreInit",()=>{i.parser.addNodeFilter("li",n=>{for(let o of n)o.attributes.map.class==="task-list-item"&&Xa(o)}),i.serializer.addNodeFilter("li",n=>{for(let o of n)o.attributes.map.class==="task-list-item"&&Ga(o)})}),i.on("click",n=>{let o=n.target;o.nodeName==="LI"&&o.classList.contains("task-list-item")&&(Ka(n,o,i),n.preventDefault())})}function Os(){return Ya}function Ns(i){function e(t){let n=t.querySelector("iframe, video");if(!n)return;let o=[...n.classList.values()].filter(r=>r.startsWith("align-")),s=[...t.classList.values()].filter(r=>r.startsWith("align-"));t.classList.remove(...s),t.classList.add(...o)}i.on("SetContent",()=>{let t=i.dom.select("span.mce-preview-object");for(let n of t)e(n)}),i.on("FormatApply",t=>{let n=t.format.startsWith("align");if(!(t.node instanceof i.dom.doc.defaultView.HTMLElement)||!n||!t.node.matches(".mce-preview-object"))return;let s=t.node.querySelector("iframe, video");if(s){let r=(i.formatter.get(t.format)[0]?.classes||[])[0],a=!s.classList.contains(r),d=(t.node.getAttribute("data-mce-p-class")||"").split(" ").filter(p=>!p.startsWith("align-"));a&&d.push(r);let m=d.join(" ");t.node.setAttribute("data-mce-p-class",m),s.setAttribute("class",m),i.formatter.apply(t.format,{},s),e(t.node)}})}function _s(i){let e=i.querySelectorAll('[align],[style*="text-align"],.align-center,.align-left,.align-right');for(let t of e)t.removeAttribute("align"),t.style.textAlign=null,t.classList.remove("align-center","align-right","align-left")}function ao(i){let e=i.querySelectorAll('[dir],[style*="direction"]');for(let t of e)t.removeAttribute("dir"),t.style.direction=null;_s(i),i.style.direction=null,i.style.textAlign=null,i.removeAttribute("align")}function Fs(i){let e=[];i.on("TableSelectionChange",n=>{e=(n.cells||[]).map(o=>o.dom)}),i.on("TableSelectionClear",()=>{e=[]});let t={RemoveFormat:n=>{let o=["class","style","width","height","align"];for(let s of o)n.removeAttribute(s)},mceDirectionLTR:n=>{n.setAttribute("dir","ltr"),ao(n)},mceDirectionRTL:n=>{n.setAttribute("dir","rtl"),ao(n)},JustifyLeft:n=>{n.removeAttribute("align"),_s(n)}};t.JustifyRight=t.JustifyLeft,t.JustifyCenter=t.JustifyLeft,t.JustifyFull=t.JustifyLeft,i.on("ExecCommand",n=>{let o=t[n.command];if(o)for(let s of e)o(s)})}function qs(i){i.on("ExecCommand",e=>{let t=e.command;if(t!=="mceDirectionLTR"&&t!=="mceDirectionRTL")return;let n=i.selection.getSelectedBlocks();for(let o of n)ao(o)})}var Ja=[{title:"Large Header",format:"h2",preview:"color: blue;"},{title:"Medium Header",format:"h3"},{title:"Small Header",format:"h4"},{title:"Tiny Header",format:"h5"},{title:"Paragraph",format:"p",exact:!0,classes:""},{title:"Blockquote",format:"blockquote"},{title:"Callouts",items:[{title:"Information",format:"calloutinfo"},{title:"Success",format:"calloutsuccess"},{title:"Warning",format:"calloutwarning"},{title:"Danger",format:"calloutdanger"}]}],Za={alignleft:{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img,iframe,video",classes:"align-left"},aligncenter:{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img,iframe,video",classes:"align-center"},alignright:{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img,iframe,video",classes:"align-right"},calloutsuccess:{block:"p",exact:!0,attributes:{class:"callout success"}},calloutinfo:{block:"p",exact:!0,attributes:{class:"callout info"}},calloutwarning:{block:"p",exact:!0,attributes:{class:"callout warning"}},calloutdanger:{block:"p",exact:!0,attributes:{class:"callout danger"}}},Qa=["#BFEDD2","","#FBEEB8","","#F8CAC6","","#ECCAFA","","#C2E0F4","","#2DC26B","","#F1C40F","","#E03E2D","","#B96AD9","","#3598DB","","#169179","","#E67E23","","#BA372A","","#843FA1","","#236FA1","","#ECF0F1","","#CED4D9","","#95A5A6","","#7E8C8D","","#34495E","","#000000","","#ffffff",""];function tl(i,e,t){if(t.filetype==="file"){let n=window.$components.first("entity-selector-popup"),o=this.selection.getContent({format:"text"}).trim();n.show(s=>{i(s.link,{text:s.name,title:s.name})},{initialValue:o,searchEndpoint:"/search/entity-selector",entityTypes:"page,book,chapter,bookshelf",entityPermission:"view"})}t.filetype==="image"&&window.$components.first("image-manager").show(o=>{i(o.url,{alt:o.name})},"gallery")}function el(i){let e=["image","table","link","autolink","fullscreen","code","customhr","autosave","lists","codeeditor","media","imagemanager","about","details","tasklist","tableadditions",i.textDirection==="rtl"?"directionality":""];return window.tinymce.PluginManager.add("codeeditor",xs()),window.tinymce.PluginManager.add("customhr",As()),window.tinymce.PluginManager.add("imagemanager",Ds()),window.tinymce.PluginManager.add("about",Is()),window.tinymce.PluginManager.add("details",Bs()),window.tinymce.PluginManager.add("tasklist",Os()),window.tinymce.PluginManager.add("tableadditions",Rs()),i.drawioUrl&&(window.tinymce.PluginManager.add("drawio",Ms(i)),e.push("drawio")),e.filter(t=>!!t)}function nl(i){let e=document.head.innerHTML.split(` +`),t=e.findIndex(r=>r.trim()===""),n=e.findIndex(r=>r.trim()==="");if(t===-1||n===-1)return;let o=e.slice(t+1,n).join(` +`),s=i.createElement("div");s.innerHTML=o,i.head.append(...s.children)}function il(i){return function(t){function n(){i.darkMode&&t.contentDocument.documentElement.classList.add("dark-mode"),window.$events.emit("editor-html-change","")}t.on("ExecCommand change input NodeChange ObjectResized",n),ps(t),fs(t,i),t.on("init",()=>{n(),us(t),window.editor=t,ds(t)}),t.on("PreInit",()=>{ws(t)}),Ns(t),Fs(t),qs(t),window.$events.emitPublic(i.containerElement,"editor-tinymce::setup",{editor:t}),t.ui.registry.addButton("inlinecode",{tooltip:"Inline code",icon:"sourcecode",onAction(){t.execCommand("mceToggleFormat",!1,"code")}})}}function ol(i){return` +html, body, html.dark-mode { + background: ${i.darkMode?"#222":"#fff"}; +} +body { + padding-left: 15px !important; + padding-right: 15px !important; + height: initial !important; + margin:0!important; + margin-left: auto! important; + margin-right: auto !important; + overflow-y: hidden !important; +}`.trim().replace(` +`,"")}function Ws(i){return window.tinymce.addI18n(i.language,i.translationMap),{width:"100%",height:"100%",selector:"#html-editor",cache_suffix:`?version=${document.querySelector('script[src*="/dist/app.js"]').getAttribute("src").split("?version=")[1]}`,content_css:[window.baseUrl("/dist/styles.css")],branding:!1,skin:i.darkMode?"tinymce-5-dark":"tinymce-5",body_class:"page-content",browser_spellcheck:!0,relative_urls:!1,language:i.language,directionality:i.textDirection,remove_script_host:!1,document_base_url:window.baseUrl("/"),end_container_on_empty_block:!0,remove_trailing_brs:!1,statusbar:!1,menubar:!1,paste_data_images:!1,extended_valid_elements:"pre[*],svg[*],div[drawio-diagram],details[*],summary[*],div[*],li[class|checked|style]",automatic_uploads:!1,custom_elements:"doc-root,code-block",valid_children:["-div[p|h1|h2|h3|h4|h5|h6|blockquote|code-block]","+div[pre|img]","-doc-root[doc-root|#text]","-li[details]","+code-block[pre]","+doc-root[p|h1|h2|h3|h4|h5|h6|blockquote|code-block|div|hr]"].join(","),plugins:el(i),contextmenu:!1,toolbar:gs(i),content_style:ol(i),style_formats:Ja,style_formats_merge:!1,media_alt_source:!1,media_poster:!1,formats:Za,table_style_by_css:!0,table_use_colgroups:!0,file_picker_types:"file image",color_map:Qa,file_picker_callback:tl,paste_preprocess(t,n){let{content:o}=n;o.indexOf('{this.editor=e[0]})}getDrawIoUrl(){let e=document.querySelector("[drawio-url]");return e?e.getAttribute("drawio-url"):""}async getContent(){return{html:this.editor.getContent()}}};var pi=class extends h{constructor(){super(...arguments);c(this,"elem");c(this,"wysiwygEditor");c(this,"textDirection")}async setup(){this.elem=this.$el,this.textDirection=this.$opts.textDirection;let t=await window.importVersioned("wysiwyg"),n=Z("div",{class:"basic-editor-container"});this.elem.parentElement?.appendChild(n),this.elem.hidden=!0,this.wysiwygEditor=t.createBasicEditorInstance(n,this.elem.value,{darkMode:document.documentElement.classList.contains("dark-mode"),textDirection:this.textDirection,translations:window.editor_translations}),this.wysiwygEditor.onChange(()=>{this.wysiwygEditor.getContentAsHtml().then(o=>{this.elem.value=o})})}};function co(i){let e=n=>n.slice(0,1).toUpperCase()+n.slice(1),t=i.split("-");return t[0]+t.slice(1).map(e).join("")}function js(i){return i.replace(/[A-Z]/g,(e,t)=>(t>0?"-":"")+e.toLowerCase())}function sl(i,e){let t={},n={},o=`${i}@`,s=`[refs*="${o}"]`,r=[...e.querySelectorAll(s)];e.matches(s)&&r.push(e);for(let a of r){let l=(a.getAttribute("refs")||"").split(" ").filter(d=>d.startsWith(o)).map(d=>d.replace(o,"")).map(co);for(let d of l)t[d]=a,typeof n[d]>"u"&&(n[d]=[]),n[d].push(a)}return{refs:t,manyRefs:n}}function rl(i,e){let t={},n=`option:${i}:`;for(let{name:o,value:s}of e.attributes)if(o.startsWith(n)){let r=o.replace(n,"");t[co(r)]=s||""}return t}var mi=class{constructor(){c(this,"components",{});c(this,"componentModelMap",{});c(this,"elementComponentMap",new WeakMap)}initComponent(e,t){let n=this.componentModelMap[e];if(n===void 0)return;let o=null;try{o=new n,o.$name=e,o.$el=t;let r=sl(e,t);o.$refs=r.refs,o.$manyRefs=r.manyRefs,o.$opts=rl(e,t),o.setup()}catch(r){console.error("Failed to create component",r,e,t)}if(!o)return;typeof this.components[e]>"u"&&(this.components[e]=[]),this.components[e].push(o);let s=this.elementComponentMap.get(t)||{};s[e]=o,this.elementComponentMap.set(t,s)}init(e=document){let t=e.querySelectorAll("[component],[components]");for(let n of t){let o=`${n.getAttribute("component")||""} ${n.getAttribute("components")}`.toLowerCase().split(" ").filter(Boolean);for(let s of o)this.initComponent(s,n)}}register(e){let t=Object.keys(e);for(let n of t)this.componentModelMap[js(n)]=e[n]}first(e){return(this.components[e]||[null])[0]}get(e){return this.components[e]||[]}firstOnElement(e,t){return(this.elementComponentMap.get(e)||{})[t]||null}allWithinElement(e,t){return this.get(t).filter(o=>e.contains(o.$el))}};window.__DEV__=!1;window.baseUrl=bo;window.importVersioned=wo;window.$http=new Le;window.$events=new xe;window.$trans=new Te;window.$components=new mi;window.$components.register(lo);window.$components.init(); +/*! Bundled license information: + +sortablejs/modular/sortable.esm.js: + (**! + * Sortable 1.15.7 + * @author RubaXa + * @author owenm + * @license MIT + *) +*/ +//# sourceMappingURL=app.js.map diff --git a/public/dist/code.js b/public/dist/code.js new file mode 100644 index 00000000000..a17413e2bc7 --- /dev/null +++ b/public/dist/code.js @@ -0,0 +1,32 @@ +// See the "/licenses" URI for full package license details +var ps=[],Na=[];(()=>{let i="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,1n,9,16,o,,x,1i,3,,i,,7,a,2,t,3,1k,,,7,2,2,2,3,9,,a,2,q,,2,3,1k,,,5,4,2,2,3,3,,u,2,3,,b,3,1k,,,8,,3,,3,k,2,m,6,,3,1k,,,7,2,2,2,3,7,3,a,2,u,,1n,5,3,3,,4,9,,14,5,1j,,,7,,3,,4,7,2,b,2,t,3,1k,,,7,,3,,4,7,2,b,2,f,,c,4,1j,2,,7,,3,,4,9,,a,2,t,3,1y,,4,6,,,,8,i,2,1p,,,8,c,8,2q,,,a,b,7,21,2,r,,,,,,4,2,1d,k,,2,5,b,,10,9,,2u,b,,6,n,4,4,3,g,4,d,,,3,6,,f,,jj,3,qa,4,s,3,t,2,u,2,1s,w,9,,19,3,,,39,2,y,,3a,c,4,c,63,5,1l,a,,,,,2,o,2,,1c,1a,2,c,k,5,1b,h,12,9,c,3,u,d,1k,e,1c,k,48,3,,l,4,,6,,2,3,5i,1s,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,n,5,4,,2b,2,1e,i,q,i,d,,12,8,p,d,18,4,1b,e,10,,1v,e,c,,8,2,1a,,1f,,,3,2,2,5,2,,,15,5,5,2,6k,8,,2,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,1t,5,8t,2,25,6,1y,b,1d,4,3e,3,1h,f,15,,2,2,a,4,19,b,7,,1p,3,10,e,g,2,18,,c,3,1c,e,8,4,,2,2k,c,6,,2,,4d,c,l,4,1j,2,,7,2,2,2,3,9,,a,2,2,7,3,5,1v,9,,,2,,,4,,5,,,e,2,2a,i,n,,29,k,6j,7,2,9,r,2,2a,h,2y,d,2t,3,2,a,74,f,6t,6,,2,2,4,,,,2,3x,7,2,7,3,,s,a,14,7,,4,8,,9,b,1a,g,5i,8,5j,8,,8,2a,m,,e,3e,6,3,,,2,,7,,,1u,5,,2,,5,9n,4,9,2,,,1c,7,3,5,n,,44l,,6,f,8ug,i,1xc,5,1n,7,t4,,,1j,7,4,29,,b,2,f57,2,3mp,1a,2,n,f2,5,3,6,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,2s,,4g,7,af,,1p,4,e4,4,72,2,6r,,2,,7,2,5,,d6,7,31,7,240,5".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(i=Na[n])e=n+1;else return!0;if(e==t)return!1}}function Ia(i){return i>=127462&&i<=127487}var Ba=8205;function Fa(i,e,t=!0,n=!0){return(t?Ha:o$)(i,e,n)}function Ha(i,e,t){if(e==i.length)return e;e&&Ka(i.charCodeAt(e))&&Ja(i.charCodeAt(e-1))&&e--;let n=$s(i,e);for(e+=Da(n);e=0&&Ia($s(i,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function o$(i,e,t){for(;e>1;){let n=Ha(i,e-2,t);if(n=56320&&i<57344}function Ja(i){return i>=55296&&i<56320}function Da(i){return i<65536?1:2}var q=class i{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=bi(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),Si.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=bi(this,e,t);let n=[];return this.decompose(e,t,n,0),Si.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new Jt(this),s=new Jt(e);for(let o=t,O=t;;){if(r.next(o),s.next(o),o=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(O+=r.value.length,r.done||O>=n)return!0}}iter(e=1){return new Jt(this,e)}iterRange(e,t=this.length){return new Bn(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Dn(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?i.empty:e.length<=32?new Re(e):Si.from(Re.split(e,[]))}},Re=class i extends q{constructor(e,t=O$(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let s=0;;s++){let o=this.text[s],O=r+o.length;if((t?n:O)>=e)return new gs(r,O,n,o);r=O+1,n++}}decompose(e,t,n,r){let s=e<=0&&t>=this.length?this:new i(el(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let o=n.pop(),O=In(s.text,o.text.slice(),0,s.length);if(O.length<=32)n.push(new i(O,o.length+s.length));else{let a=O.length>>1;n.push(new i(O.slice(0,a)),new i(O.slice(a)))}}else n.push(s)}replace(e,t,n){if(!(n instanceof i))return super.replace(e,t,n);[e,t]=bi(this,e,t);let r=In(this.text,In(n.text,el(this.text,0,e)),t),s=this.length+n.length-(t-e);return r.length<=32?new i(r,s):Si.from(i.split(r,[]),s)}sliceString(e,t=this.length,n=` +`){[e,t]=bi(this,e,t);let r="";for(let s=0,o=0;s<=t&&oe&&o&&(r+=n),es&&(r+=O.slice(Math.max(0,e-s),t-s)),s=a+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],r=-1;for(let s of e)n.push(s),r+=s.length+1,n.length==32&&(t.push(new i(n,r)),n=[],r=-1);return r>-1&&t.push(new i(n,r)),t}},Si=class i extends q{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,r){for(let s=0;;s++){let o=this.children[s],O=r+o.length,a=n+o.lines-1;if((t?a:O)>=e)return o.lineInner(e,t,n,r);r=O+1,n=a+1}}decompose(e,t,n,r){for(let s=0,o=0;o<=t&&s=o){let l=r&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!l?n.push(O):O.decompose(e-o,t-o,n,l)}o=a+1}}replace(e,t,n){if([e,t]=bi(this,e,t),n.lines=s&&t<=O){let a=o.replace(e-s,t-s,n),l=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>l>>6){let h=this.children.slice();return h[r]=a,new i(h,this.length-(t-e)+n.length)}return super.replace(s,O,a)}s=O+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=` +`){[e,t]=bi(this,e,t);let r="";for(let s=0,o=0;se&&s&&(r+=n),eo&&(r+=O.sliceString(e-o,t-o,n)),o=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let n=0,[r,s,o,O]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==o||s==O)return n;let a=this.children[r],l=e.children[s];if(a!=l)return n+a.scanIdentical(l,t);n+=a.length+1}}static from(e,t=e.reduce((n,r)=>n+r.length+1,-1)){let n=0;for(let d of e)n+=d.lines;if(n<32){let d=[];for(let $ of e)$.flatten(d);return new Re(d,t)}let r=Math.max(32,n>>5),s=r<<1,o=r>>1,O=[],a=0,l=-1,h=[];function c(d){let $;if(d.lines>s&&d instanceof i)for(let p of d.children)c(p);else d.lines>o&&(a>o||!a)?(f(),O.push(d)):d instanceof Re&&a&&($=h[h.length-1])instanceof Re&&d.lines+$.lines<=32?(a+=d.lines,l+=d.length+1,h[h.length-1]=new Re($.text.concat(d.text),$.length+1+d.length)):(a+d.lines>r&&f(),a+=d.lines,l+=d.length+1,h.push(d))}function f(){a!=0&&(O.push(h.length==1?h[0]:i.from(h,l)),l=-1,a=h.length=0)}for(let d of e)c(d);return f(),O.length==1?O[0]:new i(O,t)}};q.empty=new Re([""],0);function O$(i){let e=-1;for(let t of i)e+=t.length+1;return e}function In(i,e,t=0,n=1e9){for(let r=0,s=0,o=!0;s=t&&(a>n&&(O=O.slice(0,n-r)),r0?1:(e instanceof Re?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],o=s>>1,O=r instanceof Re?r.text.length:r.children.length;if(o==(t>0?O:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(r instanceof Re){let a=r.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof Re?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Bn=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Jt(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Dn=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(q.prototype[Symbol.iterator]=function(){return this.iter()},Jt.prototype[Symbol.iterator]=Bn.prototype[Symbol.iterator]=Dn.prototype[Symbol.iterator]=function(){return this});var gs=class{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}};function bi(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function Oe(i,e,t=!0,n=!0){return Fa(i,e,t,n)}function a$(i){return i>=56320&&i<57344}function l$(i){return i>=55296&&i<56320}function Rs(i,e){let t=i.charCodeAt(e);if(!l$(t)||e+1==i.length)return t;let n=i.charCodeAt(e+1);return a$(n)?(t-55296<<10)+(n-56320)+65536:t}function Ys(i){return i<65536?1:2}var Qs=/\r\n?|\n/,le=(function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i})(le||(le={})),$t=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-r);s+=O}else{if(n!=le.Simple&&l>=e&&(n==le.TrackDel&&re||n==le.TrackBefore&&re))return null;if(l>e||l==e&&t<0&&!O)return e==r||t<0?s:s+a;s+=a}r=l}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let n=0,r=0;n=0&&r<=t&&O>=e)return rt?"cover":!0;r=O}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},ge=class i extends $t{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Ss(this,(t,n,r,s,o)=>e=e.replace(r,r+(n-t),o),!1),e}mapDesc(e,t=!1){return Ps(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let r=0,s=0;r=0){t[r]=O,t[r+1]=o;let a=r>>1;for(;n.length0&&vt(n,t,s.text),s.forward(h),O+=h}let l=e[o++];for(;O>1].toJSON()))}return e}static of(e,t,n){let r=[],s=[],o=0,O=null;function a(h=!1){if(!h&&!r.length)return;of||c<0||f>t)throw new RangeError(`Invalid change range ${c} to ${f} (in doc of length ${t})`);let $=d?typeof d=="string"?q.of(d.split(n||Qs)):d:q.empty,p=$.length;if(c==f&&p==0)return;co&&ce(r,c-o,-1),ce(r,f-c,p),vt(s,r,$),o=f}}return l(e),a(!O),O}static empty(e){return new i(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let r=0;rO&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;n.length=0&&t<=0&&t==i[r+1]?i[r]+=e:r>=0&&e==0&&i[r]==0?i[r+1]+=t:n?(i[r]+=e,i[r+1]+=t):i.push(e,t)}function vt(i,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n>1])),!(t||o==i.sections.length||i.sections[o+1]<0);)O=i.sections[o++],a=i.sections[o++];e(r,l,s,h,c),r=l,s=h}}}function Ps(i,e,t,n=!1){let r=[],s=n?[]:null,o=new ei(i),O=new ei(e);for(let a=-1;;){if(o.done&&O.len||O.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&O.ins==-1){let l=Math.min(o.len,O.len);ce(r,l,-1),o.forward(l),O.forward(l)}else if(O.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(O.len=0&&a=0){let l=0,h=o.len;for(;h;)if(O.ins==-1){let c=Math.min(h,O.len);l+=c,h-=c,O.forward(c)}else if(O.ins==0&&O.lena||o.ins>=0&&o.len>a)&&(O||n.length>l),s.forward2(a),o.forward(a)}}}}var ei=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?q.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?q.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Ft=class i{constructor(e,t,n,r){this.from=e,this.to=t,this.flags=n,this.goalColumn=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let n,r;return this.empty?n=r=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),n==this.from&&r==this.to?this:new i(n,r,this.flags,this.goalColumn)}extend(e,t=e,n=0){if(e<=this.anchor&&t>=this.anchor)return Q.range(e,t,void 0,void 0,n);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return Q.range(this.anchor,r,void 0,void 0,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return Q.range(e.anchor,e.head)}static create(e,t,n,r){return new i(e,t,n,r)}},Q=class i{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:i.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;ne.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new i(e.ranges.map(t=>Ft.fromJSON(t)),e.main)}static single(e,t=e){return new i([i.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,r=0;rr.from-s.from),t=e.indexOf(n);for(let r=1;rs.head?i.range(a,O):i.range(O,a))}}return new i(e,t)}};function ol(i,e){for(let t of i.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var zs=0,v=class i{constructor(e,t,n,r,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=zs++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new i(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:Vs),!!e.static,e.enables)}of(e){return new Pi([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Pi(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Pi(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}};function Vs(i,e){return i==e||i.length==e.length&&i.every((t,n)=>t===e[n])}var Pi=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=zs++}dynamicSlot(e){var t;let n=this.value,r=this.facet.compareInput,s=this.id,o=e[s]>>1,O=this.type==2,a=!1,l=!1,h=[];for(let c of this.dependencies)c=="doc"?a=!0:c=="selection"?l=!0:(((t=e[c.id])!==null&&t!==void 0?t:1)&1)==0&&h.push(e[c.id]);return{create(c){return c.values[o]=n(c),1},update(c,f){if(a&&f.docChanged||l&&(f.docChanged||f.selection)||ys(c,h)){let d=n(c);if(O?!tl(d,c.values[o],r):!r(d,c.values[o]))return c.values[o]=d,1}return 0},reconfigure:(c,f)=>{let d,$=f.config.address[s];if($!=null){let p=Hn(f,$);if(this.dependencies.every(m=>m instanceof v?f.facet(m)===c.facet(m):m instanceof Te?f.field(m,!1)==c.field(m,!1):!0)||(O?tl(d=n(c),p,r):r(d=n(c),p)))return c.values[o]=p,0}else d=n(c);return c.values[o]=d,1}}}get extension(){return this}};function tl(i,e,t){if(i.length!=e.length)return!1;for(let n=0;ni[a.id]),r=t.map(a=>a.type),s=n.filter(a=>!(a&1)),o=i[e.id]>>1;function O(a){let l=[];for(let h=0;hn===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(En).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,r)=>{let s=n.values[t],o=this.updateF(s,r);return this.compareF(s,o)?0:(n.values[t]=o,1)},reconfigure:(n,r)=>{let s=n.facet(En),o=r.facet(En),O;return(O=s.find(a=>a.field==this))&&O!=o.find(a=>a.field==this)?(n.values[t]=O.create(n),1):r.config.address[this.id]!=null?(n.values[t]=r.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,En.of({field:this,create:e})]}get extension(){return this}},Ht={lowest:4,low:3,default:2,high:1,highest:0};function Ni(i){return e=>new Nn(e,i)}var Ot={highest:Ni(Ht.highest),high:Ni(Ht.high),default:Ni(Ht.default),low:Ni(Ht.low),lowest:Ni(Ht.lowest)},Nn=class{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},pt=class i{of(e){return new Hi(this,e)}reconfigure(e){return i.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},Hi=class{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},Fn=class i{constructor(e,t,n,r,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,n){let r=[],s=Object.create(null),o=new Map;for(let f of c$(e,t,o))f instanceof Te?r.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let O=Object.create(null),a=[],l=[];for(let f of r)O[f.id]=l.length<<1,l.push(d=>f.slot(d));let h=n?.config.facets;for(let f in s){let d=s[f],$=d[0].facet,p=h&&h[f]||[];if(d.every(m=>m.type==0))if(O[$.id]=a.length<<1|1,Vs(p,d))a.push(n.facet($));else{let m=$.combine(d.map(g=>g.value));a.push(n&&$.compare(m,n.facet($))?n.facet($):m)}else{for(let m of d)m.type==0?(O[m.id]=a.length<<1|1,a.push(m.value)):(O[m.id]=l.length<<1,l.push(g=>m.dynamicSlot(g)));O[$.id]=l.length<<1,l.push(m=>h$(m,$,d))}}let c=l.map(f=>f(O));return new i(e,o,c,O,a,s)}};function c$(i,e,t){let n=[[],[],[],[],[]],r=new Map;function s(o,O){let a=r.get(o);if(a!=null){if(a<=O)return;let l=n[a].indexOf(o);l>-1&&n[a].splice(l,1),o instanceof Hi&&t.delete(o.compartment)}if(r.set(o,O),Array.isArray(o))for(let l of o)s(l,O);else if(o instanceof Hi){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let l=e.get(o.compartment)||o.inner;t.set(o.compartment,l),s(l,O)}else if(o instanceof Nn)s(o.inner,o.prec);else if(o instanceof Te)n[O].push(o),o.provides&&s(o.provides,O);else if(o instanceof Pi)n[O].push(o),o.facet.extensions&&s(o.facet.extensions,Ht.default);else{let l=o.extension;if(!l)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(l==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(l,O)}}return s(i,Ht.default),n.reduce((o,O)=>o.concat(O))}function Fi(i,e){if(e&1)return 2;let t=e>>1,n=i.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;i.status[t]=4;let r=i.computeSlot(i,i.config.dynamicSlots[t]);return i.status[t]=2|r}function Hn(i,e){return e&1?i.config.staticValues[e>>1]:i.values[e>>1]}var Ol=v.define(),bs=v.define({combine:i=>i.some(e=>e),static:!0}),al=v.define({combine:i=>i.length?i[0]:void 0,static:!0}),ll=v.define(),hl=v.define(),cl=v.define(),fl=v.define({combine:i=>i.length?i[0]:!1}),we=class{constructor(e,t){this.type=e,this.value=t}static define(){return new Ts}},Ts=class{of(e){return new we(this,e)}},ws=class{constructor(e){this.map=e}of(e){return new B(this,e)}},B=class i{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new i(this.type,t)}is(e){return this.type==e}static define(e={}){return new ws(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let s=r.map(t);s&&n.push(s)}return n}};B.reconfigure=B.define();B.appendConfig=B.define();var ne=class i{constructor(e,t,n,r,s,o){this.startState=e,this.changes=t,this.selection=n,this.effects=r,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,n&&ol(n,t.newLength),s.some(O=>O.type==i.time)||(this.annotations=s.concat(i.time.of(Date.now())))}static create(e,t,n,r,s,o){return new i(e,t,n,r,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(i.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};ne.time=we.define();ne.userEvent=we.define();ne.addToHistory=we.define();ne.remote=we.define();function f$(i,e){let t=[];for(let n=0,r=0;;){let s,o;if(n=i[n]))s=i[n++],o=i[n++];else if(r=0;r--){let s=n[r](i);s instanceof ne?i=s:Array.isArray(s)&&s.length==1&&s[0]instanceof ne?i=s[0]:i=dl(e,yi(s),!1)}return i}function d$(i){let e=i.startState,t=e.facet(cl),n=i;for(let r=t.length-1;r>=0;r--){let s=t[r](i);s&&Object.keys(s).length&&(n=ul(n,xs(e,s,i.changes.newLength),!0))}return n==i?i:ne.create(e,i.changes,i.selection,n.effects,n.annotations,n.scrollIntoView)}var $$=[];function yi(i){return i==null?$$:Array.isArray(i)?i:[i]}var je=(function(i){return i[i.Word=0]="Word",i[i.Space=1]="Space",i[i.Other=2]="Other",i})(je||(je={})),p$=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ks;try{ks=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function m$(i){if(ks)return ks.test(i);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||p$.test(t)))return!0}return!1}function g$(i){return e=>{if(!/\S/.test(e))return je.Space;if(m$(e))return je.Word;for(let t=0;t-1)return je.Word;return je.Other}}var D=class i{constructor(e,t,n,r,s,o){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let O=0;Or.set(l,a)),t=null),r.set(O.value.compartment,O.value.extension)):O.is(B.reconfigure)?(t=null,n=O.value):O.is(B.appendConfig)&&(t=null,n=yi(n).concat(O.value));let s;t?s=e.startState.values.slice():(t=Fn.resolve(n,r,this),s=new i(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,l)=>l.reconfigure(a,this),null).values);let o=e.startState.facet(bs)?e.newSelection:e.newSelection.asSingle();new i(t,e.newDoc,o,s,(O,a)=>a.update(O,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:Q.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),s=[n.range],o=yi(n.effects);for(let O=1;Oo.spec.fromJSON(O,a)))}}return i.create({doc:e.doc,selection:Q.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=Fn.resolve(e.extensions||[],new Map),n=e.doc instanceof q?e.doc:q.of((e.doc||"").split(t.staticFacet(i.lineSeparator)||Qs)),r=e.selection?e.selection instanceof Q?e.selection:Q.single(e.selection.anchor,e.selection.head):Q.single(0);return ol(r,n.length),t.staticFacet(bs)||(r=r.asSingle()),new i(t,n,r,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(i.tabSize)}get lineBreak(){return this.facet(i.lineSeparator)||` +`}get readOnly(){return this.facet(fl)}phrase(e,...t){for(let n of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,r)=>{if(r=="$")return"$";let s=+(r||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let r=[];for(let s of this.facet(Ol))for(let o of s(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return g$(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:r}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-n,O=e-n;for(;o>0;){let a=Oe(t,o,!1);if(s(t.slice(a,o))!=je.Word)break;o=a}for(;Oi.length?i[0]:4});D.lineSeparator=al;D.readOnly=fl;D.phrases=v.define({compare(i,e){let t=Object.keys(i),n=Object.keys(e);return t.length==n.length&&t.every(r=>i[r]==e[r])}});D.languageData=Ol;D.changeFilter=ll;D.transactionFilter=hl;D.transactionExtender=cl;pt.reconfigure=B.define();function Rt(i,e,t={}){let n={};for(let r of i)for(let s of Object.keys(r)){let o=r[s],O=n[s];if(O===void 0)n[s]=o;else if(!(O===o||o===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](O,o);else throw new Error("Config merge conflict for field "+s)}for(let r in e)n[r]===void 0&&(n[r]=e[r]);return n}var We=class{eq(e){return this==e}range(e,t=e){return Ki.create(e,t,this)}};We.prototype.startSide=We.prototype.endSide=0;We.prototype.point=!1;We.prototype.mapMode=le.TrackDel;function _s(i,e){return i==e||i.constructor==e.constructor&&i.eq(e)}var Ki=class i{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new i(e,t,n)}};function Xs(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var vs=class i{constructor(e,t,n,r){this.from=e,this.to=t,this.value=n,this.maxPoint=r}get length(){return Qi(this.to)}findIndex(e,t,n,r=0){let s=n?this.to:this.from;for(let o=r,O=s.length;;){if(o==O)return o;let a=o+O>>1,l=s[a]-e||(n?this.value[a].endSide:this.value[a].startSide)-t;if(a==o)return l>=0?o:O;l>=0?O=a:o=a+1}}between(e,t,n,r){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,s);sm||p==m&&f.startSide>0&&f.endSide<=0)continue;if(!((m-p||f.endSide-f.startSide)<0))if(l<0&&(l=p),f.point&&(h=Math.max(h,m-p)),(p-n||f.startSide-r)>=0)o.push(f),O.push(p-l),a.push(m-l),n=m,r=f.endSide;else{if(p==m)for(let g=o.length;g>0;g--){if((p-(a[g-1]+l)||f.startSide-o[g-1].endSide)>=0){o.splice(g,0,f),O.splice(g,0,p-l),a.splice(g,0,m-l);continue e}if((p-(O[g-1]+l)||f.endSide-o[g-1].startSide)>0)break}s(p,m,f)}}return{mapped:o.length?new i(O,a,o,h):null,pos:l}}},G=class i{constructor(e,t,n,r){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=r}static create(e,t,n,r){return new i(e,t,n,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:r=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(Xs)),this.isEmpty)return t.length?i.of(t):this;let O=new Kn(this,null,-1).goto(0),a=0,l=[],h=new Zt;for(;O.value||a=0){let c=t[a++];h.addInner(c.from,c.to,c.value,!1)||l.push(c)}else O.rangeIndex==1&&O.chunkIndexthis.chunkEnd(O.chunkIndex)||sO.to||s{s||(s=new Zt),s.addRange(a,l,h,!1)};for(let a=0;a=s&&e<=s+o.length&&o.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return Ji.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Ji.from(e).goto(t)}static compare(e,t,n,r,s=-1){let o=e.filter(c=>c.maxPoint>0||!c.isEmpty&&c.maxPoint>=s),O=t.filter(c=>c.maxPoint>0||!c.isEmpty&&c.maxPoint>=s),a=il(o,O,n),l=new Kt(o,a,s),h=new Kt(O,a,s);n.iterGaps((c,f,d)=>nl(l,c,h,f,d,r)),n.empty&&n.length==0&&nl(l,0,h,0,0,r)}static eq(e,t,n=0,r){r==null&&(r=999999999);let s=e.filter(h=>!h.isEmpty&&t.indexOf(h)<0),o=t.filter(h=>!h.isEmpty&&e.indexOf(h)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let O=il(s,o),a=new Kt(s,O,0).goto(n),l=new Kt(o,O,0).goto(n);for(;;){if(a.to!=l.to||!Zs(a.active,l.active)||a.point&&(!l.point||!_s(a.point,l.point)))return!1;if(a.to>r)return!0;a.next(),l.next()}}static spans(e,t,n,r,s=-1){let o=new Kt(e,null,s).goto(t),O=t,a=o.openStart;for(;;){let l=Math.min(o.to,n);if(o.point){let h=o.activeForPoint(o.to),c=o.pointFromO&&(r.span(O,l,o.active,a),a=o.openEnd(l));if(o.to>n)return a+(o.point&&o.to>n?1:0);O=o.to,o.next()}}static of(e,t=!1){let n=new Zt;for(let r of e instanceof Ki?[e]:t?Q$(e):e)n.add(r.from,r.to,r.value);return n.finish()}static join(e){if(!e.length)return i.empty;let t=Qi(e);for(let n=e.length-2;n>=0;n--)for(let r=e[n];r!=i.empty;r=r.nextLayer)t=new i(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}};G.empty=new G([],[],null,-1);function Qi(i){return i[i.length-1]}function Q$(i){if(i.length>1)for(let e=i[0],t=1;t0)return i.slice().sort(Xs);e=n}return i}G.empty.nextLayer=G.empty;var Zt=class i{finishChunk(e){this.chunks.push(new vs(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addRange(e,t,n,!0)}addRange(e,t,n,r){this.addInner(e,t,n,r)||(this.nextLayer||(this.nextLayer=new i)).addRange(e,t,n,r)}addInner(e,t,n,r){let s=e-this.lastTo||n.startSide-this.last.endSide;if(r&&s<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(G.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=G.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function il(i,e,t){let n=new Map;for(let s of i)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=n&&r.push(new Kn(o,t,n,s));return r.length==1?r[0]:new i(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)ms(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)ms(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),ms(this.heap,0)}}};function ms(i,e){for(let t=i[e];;){let n=(e<<1)+1;if(n>=i.length)break;let r=i[n];if(n+1=0&&(r=i[n+1],n++),t.compare(r)<0)break;i[n]=t,i[e]=r,e=n}}var Kt=class{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Ji.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Ln(this.active,e),Ln(this.activeTo,e),Ln(this.activeRank,e),this.minActive=rl(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:r,rank:s}=this.cursor;for(;t0;)t++;Gn(this.active,t,n),Gn(this.activeTo,t,r),Gn(this.activeRank,t,s),e&&Gn(e,t,this.cursor.from),this.minActive=rl(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),n&&Ln(n,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&n[r]=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}};function nl(i,e,t,n,r,s){i.goto(e),t.goto(n);let o=n+r,O=n,a=n-e,l=!!s.boundChange;for(let h=!1;;){let c=i.to+a-t.to,f=c||i.endSide-t.endSide,d=f<0?i.to+a:t.to,$=Math.min(d,o);if(i.point||t.point?(i.point&&t.point&&_s(i.point,t.point)&&Zs(i.activeForPoint(i.to),t.activeForPoint(t.to))||s.comparePoint(O,$,i.point,t.point),h=!1):(h&&s.boundChange(O),$>O&&!Zs(i.active,t.active)&&s.compareRange(O,$,i.active,t.active),l&&$o)break;O=d,f<=0&&i.next(),f>=0&&t.next()}}function Zs(i,e){if(i.length!=e.length)return!1;for(let t=0;t=e;n--)i[n+1]=i[n];i[e]=t}function rl(i,e){let t=-1,n=1e9;for(let r=0;r=e)return r;if(r==i.length)break;s+=i.charCodeAt(r)==9?t-s%t:1,r=Oe(i,r)}return n===!0?-1:i.length}var $l=typeof Symbol>"u"?"__\u037C":Symbol.for("\u037C"),Cs=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),pl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Me=class{constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,O,a,l){let h=[],c=/^@(\w+)\b/.exec(o[0]),f=c&&c[1]=="keyframes";if(c&&O==null)return a.push(o[0]+";");for(let d in O){let $=O[d];if(/&/.test(d))s(d.split(/,\s*/).map(p=>o.map(m=>p.replace(/&/,m))).reduce((p,m)=>p.concat(m)),$,a);else if($&&typeof $=="object"){if(!c)throw new RangeError("The value of a property ("+d+") should be a primitive value.");s(r(d),$,h,f)}else $!=null&&h.push(d.replace(/_.*/,"").replace(/[A-Z]/g,p=>"-"+p.toLowerCase())+": "+$+";")}(h.length||f)&&a.push((n&&!c&&!l?o.map(n):o).join(", ")+" {"+h.join(" ")+"}")}for(let o in e)s(r(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=pl[$l]||1;return pl[$l]=e+1,"\u037C"+e.toString(36)}static mount(e,t,n){let r=e[Cs],s=n&&n.nonce;r?s&&r.setNonce(s):r=new qs(e,s),r.mount(Array.isArray(t)?t:[t],e)}},ml=new Map,qs=class{constructor(e,t){let n=e.ownerDocument||e,r=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let s=ml.get(n);if(s)return e[Cs]=s;this.sheet=new r.CSSStyleSheet,ml.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Cs]=this}mount(e,t){let n=this.sheet,r=0,s=0;for(let o=0;o-1&&(this.modules.splice(a,1),s--,a=-1),a==-1){if(this.modules.splice(s++,0,O),n)for(let l=0;l",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},S$=typeof navigator<"u"&&/Mac/.test(navigator.platform),P$=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(re=0;re<10;re++)mt[48+re]=mt[96+re]=String(re);var re;for(re=1;re<=24;re++)mt[re+111]="F"+re;var re;for(re=65;re<=90;re++)mt[re]=String.fromCharCode(re+32),Ti[re]=String.fromCharCode(re);var re;for(er in mt)Ti.hasOwnProperty(er)||(Ti[er]=mt[er]);var er;function gl(i){var e=S$&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||P$&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?Ti:mt)[i.keyCode]||i.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}var Qe=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},Ls=typeof document<"u"?document:{documentElement:{style:{}}},Gs=/Edge\/(\d+)/.exec(Qe.userAgent),Hl=/MSIE \d/.test(Qe.userAgent),Is=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Qe.userAgent),Xr=!!(Hl||Is||Gs),Ql=!Xr&&/gecko\/(\d+)/i.test(Qe.userAgent),Us=!Xr&&/Chrome\/(\d+)/.exec(Qe.userAgent),Sl="webkitFontSmoothing"in Ls.documentElement.style,Bs=!Xr&&/Apple Computer/.test(Qe.vendor),Pl=Bs&&(/Mobile\/\w+/.test(Qe.userAgent)||Qe.maxTouchPoints>2),k={mac:Pl||/Mac/.test(Qe.platform),windows:/Win/.test(Qe.platform),linux:/Linux|X11/.test(Qe.platform),ie:Xr,ie_version:Hl?Ls.documentMode||6:Is?+Is[1]:Gs?+Gs[1]:0,gecko:Ql,gecko_version:Ql?+(/Firefox\/(\d+)/.exec(Qe.userAgent)||[0,0])[1]:0,chrome:!!Us,chrome_version:Us?+Us[1]:0,ios:Pl,android:/Android\b/.test(Qe.userAgent),webkit:Sl,webkit_version:Sl?+(/\bAppleWebKit\/(\d+)/.exec(Qe.userAgent)||[0,0])[1]:0,safari:Bs,safari_version:Bs?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Qe.userAgent)||[0,0])[1]:0,tabSize:Ls.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function _o(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}var ur=Object.create(null);function Co(i,e,t){if(i==e)return!0;i||(i=ur),e||(e=ur);let n=Object.keys(i),r=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=r.length-(t&&r.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(r.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function y$(i,e){for(let t=i.attributes.length-1;t>=0;t--){let n=i.attributes[t].name;e[n]==null&&i.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?i.style.cssText=n:i.getAttribute(t)!=n&&i.setAttribute(t,n)}}function yl(i,e,t){let n=!1;if(e)for(let r in e)t&&r in t||(n=!0,r=="style"?i.style.cssText="":i.removeAttribute(r));if(t)for(let r in t)e&&e[r]==t[r]||(n=!0,r=="style"?i.style.cssText=t[r]:i.setAttribute(r,t[r]));return n}function b$(i){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new ri(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,r;if(e.isBlockGap)n=-5e8,r=4e8;else{let{start:s,end:o}=Kl(e,t);n=(s?t?-3e8:-1:5e8)-1,r=(o?t?2e8:1:-6e8)+1}return new ri(e,n,r,t,e.widget||null,!0)}static line(e){return new un(e)}static set(e,t=!1){return G.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};M.none=G.empty;var fn=class i extends M{constructor(e){let{start:t,end:n}=Kl(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?_o(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||ur}eq(e){return this==e||e instanceof i&&this.tagName==e.tagName&&Co(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};fn.prototype.point=!1;var un=class i extends M{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof i&&this.spec.class==e.spec.class&&Co(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};un.prototype.mapMode=le.TrackBefore;un.prototype.point=!0;var ri=class i extends M{constructor(e,t,n,r,s,o){super(t,n,s,e),this.block=r,this.isReplace=o,this.mapMode=r?t<=0?le.TrackBefore:le.TrackAfter:le.TrackDel}get type(){return this.startSide!=this.endSide?he.WidgetRange:this.startSide<=0?he.WidgetBefore:he.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof i&&T$(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};ri.prototype.point=!0;function Kl(i,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=i;return t==null&&(t=i.inclusive),n==null&&(n=i.inclusive),{start:t??e,end:n??e}}function T$(i,e){return i==e||!!(i&&e&&i.compare(e))}function vi(i,e,t,n=0){let r=t.length-1;r>=0&&t[r]+n>=i?t[r]=Math.max(t[r],e):t.push(i,e)}var dr=class i extends We{constructor(e,t,n){super(),this.tagName=e,this.attributes=t,this.rank=n}eq(e){return e==this||e instanceof i&&this.tagName==e.tagName&&Co(this.attributes,e.attributes)}static create(e){return new i(e.tagName,e.attributes||ur,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,t=!1){return G.of(e,t)}};dr.prototype.startSide=dr.prototype.endSide=-1;function dn(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function Ds(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function rn(i,e){if(!e.anchorNode)return!1;try{return Ds(i,e.anchorNode)}catch{return!1}}function ar(i){return i.nodeType==3?$n(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function sn(i,e,t,n){return t?bl(i,e,t,n,-1)||bl(i,e,t,n,1):!1}function Vt(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function $r(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}function bl(i,e,t,n,r){for(;;){if(i==t&&e==n)return!0;if(e==(r<0?0:Pt(i))){if(i.nodeName=="DIV")return!1;let s=i.parentNode;if(!s||s.nodeType!=1)return!1;e=Vt(i)+(r<0?0:1),i=s}else if(i.nodeType==1){if(i=i.childNodes[e+(r<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=r<0?Pt(i):0}else return!1}}function Pt(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}function pr(i,e){let{left:t,right:n}=i;if(t==n)return i;let r=e?t:n;return{left:r,right:r,top:i.top,bottom:i.bottom}}function w$(i){let e=i.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function Jl(i,e){let t=e.width/i.offsetWidth,n=e.height/i.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-i.offsetWidth)<1)&&(t=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-i.offsetHeight)<1)&&(n=1),{scaleX:t,scaleY:n}}function x$(i,e,t,n,r,s,o,O){let a=i.ownerDocument,l=a.defaultView||window;for(let h=i,c=!1;h&&!c;)if(h.nodeType==1){let f,d=h==a.body,$=1,p=1;if(d)f=w$(l);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(c=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let P=h.getBoundingClientRect();({scaleX:$,scaleY:p}=Jl(h,P)),f={left:P.left,right:P.left+h.clientWidth*$,top:P.top,bottom:P.top+h.clientHeight*p}}let m=0,g=0;if(r=="nearest")e.top0&&e.bottom>f.bottom+g&&(g=e.bottom-f.bottom+o)):e.bottom>f.bottom-o&&(g=e.bottom-f.bottom+o,t<0&&e.top-g0&&e.right>f.right+m&&(m=e.right-f.right+s)):e.right>f.right-s&&(m=e.right-f.right+s,t<0&&e.leftf.bottom||e.leftf.right)&&(e={left:Math.max(e.left,f.left),right:Math.min(e.right,f.right),top:Math.max(e.top,f.top),bottom:Math.min(e.bottom,f.bottom)}),h=h.assignedSlot||h.parentNode}else if(h.nodeType==11)h=h.host;else break}function eh(i,e=!0){let t=i.ownerDocument,n=null,r=null;for(let s=i.parentNode;s&&!(s==t.body||(!e||n)&&r);)if(s.nodeType==1)!r&&s.scrollHeight>s.clientHeight&&(r=s),e&&!n&&s.scrollWidth>s.clientWidth&&(n=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:n,y:r}}var Ns=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?Pt(t):0),n,Math.min(e.focusOffset,n?Pt(n):0))}set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}};function th(i){let e=[];for(let t=i;t;t=t.nodeType==11?t.host:t.parentNode)t.nodeType==1&&e.push({node:t,left:t.scrollLeft,top:t.scrollTop});return e}function ih(i,e=!0){for(let{node:t,left:n,top:r}of i)e&&t.scrollTop!=r&&(t.scrollTop=r),t.scrollLeft!=n&&(t.scrollLeft=n)}var ti=null;k.safari&&k.safari_version>=26&&(ti=!1);function nh(i){if(i.setActive)return i.setActive();if(ti)return i.focus(ti);let e=th(i);i.focus(ti==null?{get preventScroll(){return ti={preventScroll:!0},!0}}:void 0),ti||(ti=!1,ih(e))}var Tl;function $n(i,e,t=e){let n=Tl||(Tl=document.createRange());return n.setEnd(i,t),n.setStart(i,e),n}function Zi(i,e,t,n){let r={key:e,code:e,keyCode:t,which:t,cancelable:!0};n&&({altKey:r.altKey,ctrlKey:r.ctrlKey,shiftKey:r.shiftKey,metaKey:r.metaKey}=n);let s=new KeyboardEvent("keydown",r);s.synthetic=!0,i.dispatchEvent(s);let o=new KeyboardEvent("keyup",r);return o.synthetic=!0,i.dispatchEvent(o),s.defaultPrevented||o.defaultPrevented}function k$(i){for(;i;){if(i&&(i.nodeType==9||i.nodeType==11&&i.host))return i;i=i.assignedSlot||i.parentNode}return null}function X$(i,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(n=Math.min(n,Pt(t));;)if(n){if(t.nodeType!=1)return!1;let r=t.childNodes[n-1];r.contentEditable=="false"?n--:(t=r,n=Pt(t))}else{if(t==i)return!0;n=Vt(t),t=t.parentNode}}function rh(i){return i instanceof Window?i.pageYOffset>Math.max(0,i.document.documentElement.scrollHeight-i.innerHeight-4):i.scrollTop>Math.max(1,i.scrollHeight-i.clientHeight-4)}function sh(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n>0)return{node:t,offset:n};if(t.nodeType==1&&n>0){if(t.contentEditable=="false")return null;t=t.childNodes[n-1],n=Pt(t)}else if(t.parentNode&&!$r(t))n=Vt(t),t=t.parentNode;else return null}}function oh(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n=t){if(O.level==n)return o;(s<0||(r!=0?r<0?O.fromt:e[s].level>O.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function lh(i,e){if(i.length!=e.length)return!1;for(let t=0;t=0;p-=3)if(at[p+1]==-d){let m=at[p+2],g=m&2?r:m&4?m&1?s:r:0;g&&(F[c]=F[at[p]]=g),O=p;break}}else{if(at.length==189)break;at[O++]=c,at[O++]=f,at[O++]=a}else if(($=F[c])==2||$==1){let p=$==r;a=p?0:1;for(let m=O-3;m>=0;m-=3){let g=at[m+2];if(g&2)break;if(p)at[m+2]|=2;else{if(g&4)break;at[m+2]|=4}}}}}function V$(i,e,t,n){for(let r=0,s=n;r<=t.length;r++){let o=r?t[r-1].to:i,O=ra;)$==m&&($=t[--p].from,m=p?t[p-1].to:i),F[--$]=d;a=h}else s=l,a++}}}function Hs(i,e,t,n,r,s,o){let O=n%2?2:1;if(n%2==r%2)for(let a=e,l=0;aa&&o.push(new Ge(a,p.from,d));let m=p.direction==si!=!(d%2);Ks(i,m?n+1:n,r,p.inner,p.from,p.to,o),a=p.to}$=p.to}else{if($==t||(h?F[$]!=O:F[$]==O))break;$++}f?Hs(i,a,$,n+1,r,f,o):a<$&&o.push(new Ge(a,$,d)),a=$}else for(let a=t,l=s.length;a>e;){let h=!0,c=!1;if(!l||a>s[l-1].to){let p=F[a-1];p!=O&&(h=!1,c=p==16)}let f=!h&&O==1?[]:null,d=h?n:n+1,$=a;e:for(;;)if(l&&$==s[l-1].to){if(c)break e;let p=s[--l];if(!h)for(let m=p.from,g=l;;){if(m==e)break e;if(g&&s[g-1].to==m)m=s[--g].from;else{if(F[m-1]==O)break e;break}}if(f)f.push(p);else{p.toF.length;)F[F.length]=256;let n=[],r=e==si?0:1;return Ks(i,r,r,t,0,i.length,n),n}function hh(i){return[new Ge(0,i,0)]}var ch="";function C$(i,e,t,n,r){var s;let o=n.head-i.from,O=Ge.find(e,o,(s=n.bidiLevel)!==null&&s!==void 0?s:-1,n.assoc),a=e[O],l=a.side(r,t);if(o==l){let f=O+=r?1:-1;if(f<0||f>=e.length)return null;a=e[O=f],o=a.side(!r,t),l=a.side(r,t)}let h=Oe(i.text,o,a.forward(r,t));(ha.to)&&(h=l),ch=i.text.slice(Math.min(o,h),Math.max(o,h));let c=O==(r?e.length-1:0)?null:e[O+(r?1:-1)];return c&&h==l&&c.level+(r?0:1)i.some(e=>e)}),Qh=v.define({combine:i=>i.some(e=>e)}),Sh=v.define(),on=class i{constructor(e,t,n,r,s,o=!1){this.range=e,this.y=t,this.x=n,this.yMargin=r,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new i(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new i(Q.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},tr=B.define({map:(i,e)=>i.map(e)}),Ph=B.define();function Ie(i,e,t){let n=i.facet($h);n.length?n[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var gt=v.define({combine:i=>i.length?i[0]:!0}),U$=0,xi=v.define({combine(i){return i.filter((e,t)=>{for(let n=0;n{let a=[];return o&&a.push(vr.of(l=>{let h=l.plugin(O);return h?o(h):M.none})),s&&a.push(s(O)),a})}static fromClass(e,t){return i.define((n,r)=>new e(n,r),t)}},On=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(Ie(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){Ie(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){Ie(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},yh=v.define(),jo=v.define(),vr=v.define(),bh=v.define(),Wo=v.define(),pn=v.define(),Th=v.define();function wl(i,e){let t=i.state.facet(Th);if(!t.length)return t;let n=t.map(s=>s instanceof Function?s(i):s),r=[];return G.spans(n,e.from,e.to,{point(){},span(s,o,O,a){let l=s-e.from,h=o-e.from,c=r;for(let f=O.length-1;f>=0;f--,a--){let d=O[f].spec.bidiIsolate,$;if(d==null&&(d=q$(e.text,l,h)),a>0&&c.length&&($=c[c.length-1]).to==l&&$.direction==d)$.to=h,c=$.inner;else{let p={from:l,to:h,direction:d,inner:[]};c.push(p),c=p.inner}}}}),r}var wh=v.define();function xh(i){let e=0,t=0,n=0,r=0;for(let s of i.state.facet(wh)){let o=s(i);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(r=Math.max(r,o.bottom)))}return{left:e,right:t,top:n,bottom:r}}var en=v.define(),He=class i{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}join(e){return new i(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>n.toA)){if(r.toAr.push(new He(s,o,O,a))),this.changedRanges=r}static create(e,t,n){return new i(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},A$=[],te=class{constructor(e,t,n=0){this.dom=e,this.length=t,this.flags=n,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return A$}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&y$(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let n=t;for(let r of this.children){if(r==e)return n;n+=r.length+r.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t,n){return null}domPosFor(e,t){let n=Vt(this.dom),r=this.length?e>0:t>0;return new lt(this.parent.dom,n+(r?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Yi)return e;return null}static get(e){return e.cmTile}},Ri=class extends te{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,n=null,r,s=e?.node==t?e:null,o=0;for(let O of this.children){if(O.sync(e),o+=O.length+O.breakAfter,r=n?n.nextSibling:t.firstChild,s&&r!=O.dom&&(s.written=!0),O.dom.parentNode==t)for(;r&&r!=O.dom;)r=xl(r);else t.insertBefore(O.dom,r);n=O.dom}for(r=n?n.nextSibling:t.firstChild,s&&r&&(s.written=!0);r;)r=xl(r);this.length=o}};function xl(i){let e=i.nextSibling;return i.parentNode.removeChild(i),e}var Yi=class extends Ri{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=te.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],n=this,r=0,s=0;;)if(r==n.children.length){if(!t.length)return;n=n.parent,n.breakAfter&&s++,r=t.pop()}else{let o=n.children[r++];if(o instanceof Qt)t.push(r),n=o,r=0;else{let O=s+o.length,a=e(o,s);if(a!==void 0)return a;s=O+o.breakAfter}}}resolveBlock(e,t){let n,r=-1,s,o=-1;if(this.blockTiles((O,a)=>{let l=a+O.length;if(e>=a&&e<=l){if(O.isWidget()&&t>=-1&&t<=1){if(O.flags&32)return!0;O.flags&16&&(n=void 0)}(ae||e==a&&(t>1?O.length:O.covers(-1)))&&(!s||!O.isWidget()&&s.isWidget())&&(s=O,o=e-a)}}),!n&&!s)throw new Error("No tile at position "+e);return n&&t<0||!s?{tile:n,offset:r}:{tile:s,offset:o}}},Qt=class i extends Ri{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let n=new i(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}},zi=class i extends Ri{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,n){let r=new i(t||document.createElement("div"),e);return(!t||!n)&&(r.flags|=4),r}get domAttrs(){return this.attrs}resolveInline(e,t,n){let r=null,s=-1,o=null,O=-1;function a(h,c){for(let f=0,d=0;f=c&&($.isComposite()?a($,c-d):(!o||o.isHidden&&(t>0&&!(o.flags&32)||n&&W$(o,$)))&&(p>c||$.flags&32&&t<=1)?(o=$,O=c-d):(d=-1)&&(r=$,s=c-d)),d=p}}a(this,e);let l=(t<0?r:o)||r||o;return l?{tile:l,offset:l==r?s:O}:null}coordsIn(e,t,n){let r=this.resolveInline(e,t,!0);return r?r.tile.coordsIn(Math.max(0,r.offset),t,n):j$(this)}domIn(e,t){let n=this.resolveInline(e,t);if(n){let{tile:r,offset:s}=n;if(this.dom.contains(r.dom))return r.isText()?new lt(r.dom,Math.min(r.dom.nodeValue.length,s)):r.domPosFor(s,r.flags&16?1:r.flags&32?-1:t);let o=n.tile.parent,O=!1;for(let a of o.children){if(O)return new lt(a.dom,0);a==n.tile&&(O=!0)}}return new lt(this.dom,0)}};function j$(i){let e=i.dom.lastChild;if(!e)return i.dom.getBoundingClientRect();let t=ar(e);return t[t.length-1]||null}function W$(i,e){let t=i.coordsIn(0,1),n=e.coordsIn(0,1);return t&&n&&n.topr&&(e=r);let s=e,o=e,O=0;e==0&&t<0||e==r&&t>=0?k.chrome||k.gecko||(e?(s--,O=1):o=0)?0:a.length-1];return k.safari&&!O&&l.width==0&&(l=Array.prototype.find.call(a,h=>h.width)||l),n==null?l:pr(l,(O?O>0:t<0)==n)}static of(e,t){let n=new i(t||document.createTextNode(e),e);return t||(n.flags|=2),n}},oi=class i extends te{constructor(e,t,n,r){super(e,t,r),this.widget=n}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,n){let r=this.widget.coordsAt(this.dom,e,t);if(r)return r;if(n)return pr(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let O=this.flags&16?!0:this.flags&32?!1:e>0;for(let a=O?s.length-1:0;o=s[a],!(e>0?a==0:a==s.length-1||o.top0==n)}},eo=class{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,n){let{tile:r,index:s,beforeBreak:o,parents:O}=this;for(;e||t>0;)if(r.isComposite())if(o){if(!e)break;n&&n.break(),e--,o=!1}else if(s==r.children.length){if(!e&&!O.length)break;n&&n.leave(r),o=!!r.breakAfter,{tile:r,index:s}=O.pop(),s++}else{let a=r.children[s],l=a.breakAfter;(t>0?a.length<=e:a.length=0;O--){let a=t.marks[O],l=r.lastChild;if(l instanceof ke&&l.mark.eq(a.mark))l.dom!=a.dom&&l.setDOM(As(a.dom)),r=l;else{if(this.cache.reused.get(a)){let c=te.get(a.dom);c&&c.setDOM(As(a.dom))}let h=ke.of(a.mark,a.dom);r.append(h),r=h}this.cache.reused.set(a,2)}let s=te.get(e.text);s&&this.cache.reused.set(s,2);let o=new ii(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,r.append(o)}addInlineWidget(e,t,n){let r=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);r||this.flushBuffer();let s=this.ensureMarks(t,n);!r&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,n){this.flushBuffer(),this.ensureMarks(t,n).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var n;e||(e=kh);let r=zi.start(e,t||((n=this.cache.find(zi))===null||n===void 0?void 0:n.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=r)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var n;let r=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],O;if(t>0&&(O=r.lastChild)&&O instanceof ke&&O.mark.eq(o))r=O,t--;else{let a=ke.of(o,(n=this.cache.find(ke,l=>l.mark.eq(o)))===null||n===void 0?void 0:n.dom);r.append(a),r=a,t=0}}return r}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!kl(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(k.ios&&kl(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(js,0,32)||new oi(js.toDOM(),0,js,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=e.rank*102+e.value.rank,n=new to(e.from,e.to,e.value,t),r=this.wrappers.length;for(;r>0&&(this.wrappers[r-1].rank-n.rank||this.wrappers[r-1].to-n.to)<0;)r--;this.wrappers.splice(r,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let n of this.wrappers){let r=t.lastChild;if(n.fromo.wrapper.eq(n.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),n=this.cache.find(Vi,void 0,1);return n&&(n.flags=t),n||new Vi(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},no=class{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:r,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=r;let O=this.textOff=Math.min(e,r.length);return s?null:r.slice(0,O)}let t=Math.min(this.text.length,this.textOff+e),n=this.text.slice(this.textOff,t);return this.textOff=t,n}},gr=[oi,zi,ii,ke,Vi,Qt,Yi];for(let i=0;i[]),this.index=gr.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,n=this.buckets[t];n.length<6?n.push(e):n[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,n=2){let r=e.bucket,s=this.buckets[r],o=this.index[r];for(let O=0;O{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let n=t&&this.getCompositionContext(t.text);for(let r=0,s=0,o=0;;){let O=or){let l=a-r;this.preserve(l,!o,!O),r=a,s+=l}if(!O)break;t&&O.fromA<=t.range.fromA&&O.toA>=t.range.toA?(this.forward(O.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(a-O);else{let l=a>0||O{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof ke&&r.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?r.length&&(r.length=s=0):o instanceof ke&&(r.shift(),s=Math.min(s,r.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let n=null,r=this.builder,s=-1,o=G.spans(this.decorations,e,t,{point:(O,a,l,h,c,f)=>{if(l instanceof ri){if(this.disallowBlockEffectsFor[f]){if(l.block)throw new RangeError("Block decorations may not be specified via plugins");if(a>this.view.state.doc.lineAt(O).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=h.length,c>h.length)r.continueWidget(a-O);else{let d=l.widget||(l.block?_t.block:_t.inline),$=M$(l),p=this.cache.findWidget(d,a-O,$)||oi.of(d,this.view,a-O,$);l.block?(l.startSide>0&&r.addLineStartIfNotCovered(n),r.addBlockWidget(p)):(r.ensureLine(n),r.addInlineWidget(p,h,c))}n=null}else n=E$(n,l);a>O&&this.text.skip(a-O)},span:(O,a,l,h)=>{for(let c=O;c-1&&(this.openWidget=o>s),this.openWidget||r.addLineStartIfNotCovered(n),this.openMarks=o}forward(e,t,n=1){t-e<=10?this.old.advance(t-e,n,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,n,this.reuseWalker))}getCompositionContext(e){let t=[],n=null;for(let r=e.parentNode;;r=r.parentNode){let s=te.get(r);if(r==this.view.contentDOM)break;s instanceof ke?t.push(s):s?.isLine()?n=s:s instanceof Qt||(r.nodeName=="DIV"&&!n&&r!=this.view.contentDOM?n=new zi(r,kh):n||t.push(ke.of(new fn({tagName:r.nodeName.toLowerCase(),attributes:b$(r)}),r)))}return{line:n,marks:t}}};function kl(i,e){let t=n=>{for(let r of n.children)if((e?r.isText():r.length)||t(r))return!0;return!1};return t(i)}function M$(i){let e=i.isReplace?(i.startSide<0?64:0)|(i.endSide>0?128:0):i.startSide>0?32:16;return i.block&&(e|=256),e}var kh={class:"cm-line"};function E$(i,e){let t=e.spec.attributes,n=e.spec.class;return!t&&!n||(i||(i={class:"cm-line"}),t&&_o(t,i),n&&(i.class+=" "+n)),i}function L$(i){let e=[];for(let t=i.parents.length;t>1;t--){let n=t==i.parents.length?i.tile:i.parents[t].tile;n instanceof ke&&e.push(n.mark)}return e}function As(i){let e=te.get(i);return e&&e.setDOM(i.cloneNode()),i}var _t=class extends St{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};_t.inline=new _t("span");_t.block=new _t("div");var js=new class extends St{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},Qr=class{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=M.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Yi(e,e.contentDOM),this.updateInner([new He(0,0,0,e.state.doc.length)],null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:h,toA:c})=>cthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let r=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?r=this.domChanged.newSel.head:!K$(e.changes,this.hasComposition)&&!e.selectionSet&&(r=e.state.selection.main.head));let s=r>-1?I$(this.view,e.changes,r):null;if(this.domChanged=null,this.hasComposition){let{from:h,to:c}=this.hasComposition;n=new He(h,c,e.changes.mapPos(h,-1),e.changes.mapPos(c,1)).addToSet(n.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(k.ie||k.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,O=this.blockWrappers;this.updateDeco();let a=N$(o,this.decorations,e.changes);a.length&&(n=He.extendWithRanges(n,a));let l=F$(O,this.blockWrappers,e.changes);return l.length&&(n=He.extendWithRanges(n,l)),s&&!n.some(h=>h.fromA<=s.range.fromA&&h.toA>=s.range.toA)&&(n=s.range.addToSet(n.slice())),this.tile.flags&2&&n.length==0?!1:(this.updateInner(n,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:n}=this.view;n.ignore(()=>{if(t||e.length){let o=this.tile,O=new so(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);t&&te.get(t.text)&&O.cache.reused.set(te.get(t.text),2),this.tile=O.run(e,t),oo(o,O.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=k.chrome||k.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||n.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let r=[];if(this.view.viewport.from||this.view.viewport.to-1)&&rn(n,this.view.observer.selectionRange)&&!(r&&n.contains(r));if(!(s||t||o))return;let O=this.forceSelection;this.forceSelection=!1;let a=this.view.state.selection.main,l,h;if(a.empty?h=l=this.inlineDOMNearPos(a.anchor,a.assoc||1):(h=this.inlineDOMNearPos(a.head,a.head==a.from?1:-1),l=this.inlineDOMNearPos(a.anchor,a.anchor==a.from?1:-1)),k.gecko&&a.empty&&!this.hasComposition&&G$(l)){let f=document.createTextNode("");this.view.observer.ignore(()=>l.node.insertBefore(f,l.node.childNodes[l.offset]||null)),l=h=new lt(f,0),O=!0}let c=this.view.observer.selectionRange;(O||!c.focusNode||(!sn(l.node,l.offset,c.anchorNode,c.anchorOffset)||!sn(h.node,h.offset,c.focusNode,c.focusOffset))&&!this.suppressWidgetCursorChange(c,a))&&(this.view.observer.ignore(()=>{k.android&&k.chrome&&n.contains(c.focusNode)&&H$(c.focusNode,n)&&(n.blur(),n.focus({preventScroll:!0}));let f=dn(this.view.root);if(f)if(a.empty){if(k.gecko){let d=B$(l.node,l.offset);if(d&&d!=3){let $=(d==1?sh:oh)(l.node,l.offset);$&&(l=new lt($.node,$.offset))}}f.collapse(l.node,l.offset),a.bidiLevel!=null&&f.caretBidiLevel!==void 0&&(f.caretBidiLevel=a.bidiLevel)}else if(f.extend){f.collapse(l.node,l.offset);try{f.extend(h.node,h.offset)}catch{}}else{let d=document.createRange();a.anchor>a.head&&([l,h]=[h,l]),d.setEnd(h.node,h.offset),d.setStart(l.node,l.offset),f.removeAllRanges(),f.addRange(d)}o&&this.view.root.activeElement==n&&(n.blur(),r&&r.focus())}),this.view.observer.setSelectionRange(l,h)),this.impreciseAnchor=l.precise?null:new lt(c.anchorNode,c.anchorOffset),this.impreciseHead=h.precise?null:new lt(c.focusNode,c.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&sn(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=dn(e.root),{anchorNode:r,anchorOffset:s}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let O=o.posAtStart;if(t.head==O||t.head==O+o.length)return;let a=this.coordsAt(t.head,-1),l=this.coordsAt(t.head,1);if(!a||!l||a.bottom>l.top)return;let h=this.domAtPos(t.head+t.assoc,t.assoc);n.collapse(h.node,h.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let c=e.observer.selectionRange;e.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=t.from&&n.collapse(r,s)}posFromDOM(e,t){let n=this.tile.nearest(e);if(!n)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let r=n.posAtStart;if(n.isComposite()){let s;if(e==n.dom)s=n.dom.childNodes[t];else{let o=Pt(e)==0?0:t==0?-1:1;for(;;){let O=e.parentNode;if(O==n.dom)break;o==0&&O.firstChild!=O.lastChild&&(e==O.firstChild?o=-1:o=1),e=O}o<0?s=e:s=e.nextSibling}if(s==n.dom.firstChild)return r;for(;s&&!te.get(s);)s=s.nextSibling;if(!s)return r+n.length;for(let o=0,O=r;;o++){let a=n.children[o];if(a.dom==s)return O;O+=a.length+a.breakAfter}}else return n.isText()?e==n.dom?r+t:r+(t?n.length:0):r}domAtPos(e,t){let{tile:n,offset:r}=this.tile.resolveBlock(e,t);return n.isWidget()?n.domPosFor(r,t):n.domIn(r,t)}inlineDOMNearPos(e,t){let n,r=-1,s=!1,o,O=-1,a=!1;return this.tile.blockTiles((l,h)=>{if(l.isWidget()){if(l.flags&32&&h>=e)return!0;l.flags&16&&(s=!0)}else{let c=h+l.length;if(h<=e&&(n=l,r=e-h,s=c=e&&!o&&(o=l,O=e-h,a=h>e),h>e&&o)return!0}}),!n&&!o?this.domAtPos(e,t):(s&&o?n=null:a&&n&&(o=null),n&&t<0||!o?n.domIn(r,t):o.domIn(O,t))}coordsAt(e,t,n){let{tile:r,offset:s}=this.tile.resolveBlock(e,t);return r.isWidget()?r.widget instanceof an?null:r.coordsInWidget(s,t,!0):r.coordsIn(s,t,n)}lineAt(e,t){let{tile:n}=this.tile.resolveBlock(e,t);return n.isLine()?n:null}coordsForChar(e){let{tile:t,offset:n}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function r(s,o){if(s.isComposite())for(let O of s.children){if(O.length>=o){let a=r(O,o);if(a)return a}if(o-=O.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,O=-1,a=this.view.textDirection==H.LTR,l=0,h=(c,f,d)=>{for(let $=0;$r);$++){let p=c.children[$],m=f+p.length,g=p.dom.getBoundingClientRect(),{height:P}=g;if(d&&!$&&(l+=g.top-d.top),p instanceof Qt)m>n&&h(p,f,g);else if(f>=n&&(l>0&&t.push(-l),t.push(P+l),l=0,o)){let S=p.dom.lastChild,z=S?ar(S):[];if(z.length){let b=z[z.length-1],x=a?b.right-g.left:g.right-b.left;x>O&&(O=x,this.minWidth=s,this.minWidthFrom=f,this.minWidthTo=m)}}d&&$==c.children.length-1&&(l+=d.bottom-g.bottom),f=m+p.breakAfter}};return h(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?H.RTL:H.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let O=0,a;for(let l of o.children){if(!l.isText()||/[^ -~]/.test(l.text))return;let h=ar(l.dom);if(h.length!=1)return;O+=h[0].width,a=h[0].height}if(O)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:O/o.length,textHeight:a}}});if(e)return e;let t=document.createElement("div"),n,r,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=ar(t.firstChild)[0];n=t.getBoundingClientRect().height,r=o&&o.width?o.width/27:7,s=o&&o.height?o.height:n,t.remove()}),{lineHeight:n,charWidth:r,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,r=0;;r++){let s=r==t.viewports.length?null:t.viewports[r],o=s?s.from-1:this.view.state.doc.length;if(o>n){let O=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(M.replace({widget:new an(O),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!s)break;n=s.to+1}return M.set(e)}updateDeco(){let e=1,t=this.view.state.facet(vr).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),n=!1,r=this.view.state.facet(Wo).map((s,o)=>{let O=typeof s=="function";return O&&(n=!0),O?s(this.view):s});for(r.length&&(this.dynamicDecorationMap[e++]=n,t.push(G.join(r))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let l=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=l.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let l of this.view.state.facet(Sh))try{if(l(this.view,e.range,e))return!0}catch(h){Ie(this.view.state,h,"scroll handler")}let{range:t}=e,n=this.coordsAt(t.head,t.assoc||(t.head>t.anchor?-1:1)),r;if(!n)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,r.left),top:Math.min(n.top,r.top),right:Math.max(n.right,r.right),bottom:Math.max(n.bottom,r.bottom)});let s=xh(this.view),o={left:n.left-s.left,top:n.top-s.top,right:n.right+s.right,bottom:n.bottom+s.bottom},{offsetWidth:O,offsetHeight:a}=this.view.scrollDOM;if(x$(this.view.scrollDOM,o,t.head1&&(n.top>window.visualViewport.offsetTop+window.visualViewport.height||n.bottomn.isWidget()||n.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){oo(this.tile)}};function oo(i,e){let t=e?.get(i);if(t!=1){t==null&&i.destroy();for(let n of i.children)oo(n,e)}}function G$(i){return i.node.nodeType==1&&i.node.firstChild&&(i.offset==0||i.node.childNodes[i.offset-1].contentEditable=="false")&&(i.offset==i.node.childNodes.length||i.node.childNodes[i.offset].contentEditable=="false")}function Xh(i,e){let t=i.observer.selectionRange;if(!t.focusNode)return null;let n=sh(t.focusNode,t.focusOffset),r=oh(t.focusNode,t.focusOffset),s=n||r;if(r&&n&&r.node!=n.node){let O=te.get(r.node);if(!O||O.isText()&&O.text!=r.node.nodeValue)s=r;else if(i.docView.lastCompositionAfterCursor){let a=te.get(n.node);!a||a.isText()&&a.text!=n.node.nodeValue||(s=r)}}if(i.docView.lastCompositionAfterCursor=s!=n,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function I$(i,e,t){let n=Xh(i,t);if(!n)return null;let{node:r,from:s,to:o}=n,O=r.nodeValue;if(/[\n\r]/.test(O)||i.state.doc.sliceString(n.from,n.to)!=O)return null;let a=e.invertedDesc;return{range:new He(a.mapPos(s),a.mapPos(o),s,o),text:r}}function B$(i,e){return i.nodeType!=1?0:(e&&i.childNodes[e-1].contentEditable=="false"?1:0)|(e{ne.from&&(t=!0)}),t}var an=class extends St{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function J$(i,e,t=1){let n=i.charCategorizer(e),r=i.doc.lineAt(e),s=e-r.from;if(r.length==0)return Q.cursor(e);s==0?t=1:s==r.length&&(t=-1);let o=s,O=s;t<0?o=Oe(r.text,s,!1):O=Oe(r.text,s);let a=n(r.text.slice(o,O));for(;o>0;){let l=Oe(r.text,o,!1);if(n(r.text.slice(l,o))!=a)break;o=l}for(;Oi.defaultLineHeight*1.5){let O=i.viewState.heightOracle.textHeight,a=Math.floor((r-t.top-(i.defaultLineHeight-O)*.5)/O);s+=a*i.viewState.heightOracle.lineLength}let o=i.state.sliceDoc(t.from,t.to);return t.from+Jn(o,s,i.state.tabSize)}function ao(i,e,t){let n=i.lineBlockAt(e);if(Array.isArray(n.type)){let r;for(let s of n.type){if(s.from>e)break;if(!(s.toe)return s;(!r||s.type==he.Text&&(r.type!=s.type||(t<0?s.frome)))&&(r=s)}}return r||n}return n}function tp(i,e,t,n){let r=ao(i,e.head,e.assoc||-1),s=!n||r.type!=he.Text||!(i.lineWrapping||r.widgetLineBreaks)?null:i.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(s){let o=i.dom.getBoundingClientRect(),O=i.textDirectionAt(r.from),a=i.posAtCoords({x:t==(O==H.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(a!=null)return Q.cursor(a,t?-1:1)}return Q.cursor(t?r.to:r.from,t?-1:1)}function Xl(i,e,t,n){let r=i.state.doc.lineAt(e.head),s=i.bidiSpans(r),o=i.textDirectionAt(r.from);for(let O=e,a=null;;){let l=C$(r,s,o,O,t),h=ch;if(!l){if(r.number==(t?i.state.doc.lines:1))return O;h=` +`,r=i.state.doc.line(r.number+(t?1:-1)),s=i.bidiSpans(r),l=i.visualLineSide(r,!t)}if(a){if(!a(h))return O}else{if(!n)return l;a=n(h)}O=l}}function ip(i,e,t){let n=i.state.charCategorizer(e),r=n(t);return s=>{let o=n(s);return r==je.Space&&(r=o),r==o}}function np(i,e,t,n){let r=e.head,s=t?1:-1;if(r==(t?i.state.doc.length:0))return Q.cursor(r,e.assoc);let o=e.goalColumn,O,a=i.contentDOM.getBoundingClientRect(),l=i.coordsAtPos(r,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),h=i.documentTop;if(l)o==null&&(o=l.left-a.left),O=s<0?l.top:l.bottom;else{let $=i.viewState.lineBlockAt(r);o==null&&(o=Math.min(a.right-a.left,i.defaultCharacterWidth*(r-$.from))),O=(s<0?$.top:$.bottom)+h}let c=a.left+o,f=i.viewState.heightOracle.textHeight>>1,d=n??f;for(let $=0;;$+=f){let p=O+(d+$)*s,m=lo(i,{x:c,y:p},!1,s);if(t?p>a.bottom:pO:P{if(e>s&&er(i)),t.from,e.head>t.from?-1:1);return n==t.from?t:Q.cursor(n,ni.viewState.docHeight)return new Le(i.state.doc.length,-1);if(l=i.elementAtHeight(a),n==null)break;if(l.type==he.Text){if(n<0?l.toi.viewport.to)break;let f=i.docView.coordsAt(n<0?l.from:l.to,n>0?-1:1);if(f&&(n<0?f.top<=a+s:f.bottom>=a+s))break}let c=i.viewState.heightOracle.textHeight/2;a=n>0?l.bottom+c:l.top-c}if(i.viewport.from>=l.to||i.viewport.to<=l.from){if(t)return null;if(l.type==he.Text){let c=ep(i,r,l,o,O);return new Le(c,c==l.from?1:-1)}}if(l.type!=he.Text)return a<(l.top+l.bottom)/2?new Le(l.from,1):new Le(l.to,-1);let h=i.docView.lineAt(l.from,2);return(!h||h.length!=l.length)&&(h=i.docView.lineAt(l.from,-2)),new ho(i,o,O,i.textDirectionAt(l.from)).scanTile(h,l.from)}var ho=class{constructor(e,t,n,r){this.view=e,this.x=t,this.y=n,this.baseDir=r,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||n.length&&(n[0].level!=this.baseDir||n[0].to+r.from>1;t:if(o.has(p)){for(let P=1;P<$;P++){let S=p+P;if(S>=s&&(S-=$),!o.has(S)){p=S;break t}}break e}o.add(p);let m=t(p),g=0;if(m)for(let P=0;P1))if(S.bottomthis.y)(!l||l.top>S.top)&&(l=S),g=-1;else{let z=S.left>this.x?this.x-S.left:S.right($+$+p)/3)return this.y=a.bottom-1,this.scan(e,t,!0);if(l&&l.top<($+p+p)/3)return this.y=l.top+1,this.scan(e,t,!0)}let d=(O?this.dirAt(e[h],1):this.baseDir)==H.LTR;return{i:h,after:this.x>(f.left+f.right)/2==d}}scanText(e,t){let n=[];for(let s=0;s{let o=n[s]-t,O=n[s+1]-t;return $n(e.dom,o,O).getClientRects()});return r.after?new Le(n[r.i+1],-1):new Le(n[r.i],1)}scanTile(e,t){if(!e.length)return new Le(t,1);if(e.children.length==1){let O=e.children[0];if(O.isText())return this.scanText(O,t);if(O.isComposite())return this.scanTile(O,t)}let n=[t];for(let O=0,a=t;O{let a=e.children[O];return a.flags&48?null:(a.dom.nodeType==1?a.dom:$n(a.dom,0,a.length)).getClientRects()}),s=e.children[r.i],o=n[r.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):r.after?new Le(n[r.i+1],-1):new Le(o,1)}},wi="\uFFFF",co=class{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(D.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=wi}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let r=e;;){this.findPointBefore(n,r);let s=this.text.length;this.readNode(r);let o=te.get(r),O=r.nextSibling;if(O==t){o?.breakAfter&&!O&&n!=this.view.contentDOM&&this.lineBreak();break}let a=te.get(O);(o&&a?o.breakAfter:(o?o.breakAfter:$r(r))||$r(O)&&(r.nodeName!="BR"||o?.isWidget())&&this.text.length>s)&&!sp(O,t)&&this.lineBreak(),r=O}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,O;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(O=r.exec(t))&&(s=O.index,o=O[0].length),this.append(t.slice(n,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=o-1);n=s+o}}readNode(e){let t=te.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let r=n.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(rp(e,n.node,n.offset)?t:0))}};function rp(i,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,O=e.state.selection;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=Zh(e.docView.tile,t,n,0))){let a=s||o?[]:Op(e),l=new co(a,e);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=ap(a,this.bounds.from)}else{let a=e.observer.selectionRange,l=s&&s.node==a.focusNode&&s.offset==a.focusOffset||!Ds(e.contentDOM,a.focusNode)?O.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),h=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!Ds(e.contentDOM,a.anchorNode)?O.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),c=e.viewport;if((k.ios||k.chrome)&&l!=h&&Math.min(l,h)<=O.main.from&&Math.max(l,h)>=O.main.to&&(c.from>0||c.to-1&&O.ranges.length>1)this.newSel=O.replaceRange(Q.range(h,l));else if(e.lineWrapping&&h==l&&!(O.main.empty&&O.main.head==l)&&e.inputState.lastTouchTime>Date.now()-100){let f=e.coordsAtPos(l,-1),d=0;f&&(d=e.inputState.lastTouchY<=f.bottom?-1:1),this.newSel=Q.create([Q.cursor(l,d)])}else this.newSel=Q.single(h,l)}}};function Zh(i,e,t,n){if(i.isComposite()){let r=-1,s=-1,o=-1,O=-1;for(let a=0,l=n,h=n;at)return Zh(c,e,t,l);if(f>=e&&r==-1&&(r=a,s=l),l>t&&c.dom.parentNode==i.dom){o=a,O=h;break}h=f,l=f+c.breakAfter}return{from:s,to:O<0?n+i.length:O,startDOM:(r?i.children[r-1].dom.nextSibling:null)||i.dom.firstChild,endDOM:o=0?i.children[o].dom:null}}else return i.isText()?{from:n,to:n+i.length,startDOM:i.dom,endDOM:i.dom.nextSibling}:null}function Rh(i,e){let t,{newSel:n}=e,{state:r}=i,s=r.selection.main,o=i.inputState.lastKeyTime>Date.now()-100?i.inputState.lastKeyCode:-1;if(e.bounds){let{from:O,to:a}=e.bounds,l=s.from,h=null;(o===8||k.android&&e.text.length=O&&s.to<=a&&(e.typeOver||c!=e.text)&&c.slice(0,s.from-O)==e.text.slice(0,s.from-O)&&c.slice(s.to-O)==e.text.slice(f=e.text.length-(c.length-(s.to-O)))?t={from:s.from,to:s.to,insert:q.of(e.text.slice(s.from-O,f).split(wi))}:(d=Yh(c,e.text,l-O,h))&&(k.chrome&&o==13&&d.toB==d.from+2&&e.text.slice(d.from,d.toB)==wi+wi&&d.toB--,t={from:O+d.from,to:O+d.toA,insert:q.of(e.text.slice(d.from,d.toB).split(wi))})}else n&&(!i.hasFocus&&r.facet(gt)||Pr(n,s))&&(n=null);if(!t&&!n)return!1;if((k.mac||k.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&i.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=Q.single(n.main.anchor-1,n.main.head-1)),t={from:t.from,to:t.to,insert:q.of([t.insert.toString().replace("."," ")])}):r.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:r.toText(i.inputState.insertingText)}:k.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` + `&&i.lineWrapping&&(n&&(n=Q.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:q.of([" "])}),t)return Mo(i,t,n,o);if(n&&!Pr(n,s)){let O=!1,a="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(O=!0),a=i.inputState.lastSelectionOrigin,a=="select.pointer"&&(n=vh(r.facet(pn).map(l=>l(i)),n))),i.dispatch({selection:n,scrollIntoView:O,userEvent:a}),!0}else return!1}function Mo(i,e,t,n=-1){if(k.ios&&i.inputState.flushIOSKey(e))return!0;let r=i.state.selection.main;if(k.android&&(e.to==r.to&&(e.from==r.from||e.from==r.from-1&&i.state.sliceDoc(e.from,r.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Zi(i.contentDOM,"Enter",13)||(e.from==r.from-1&&e.to==r.to&&e.insert.length==0||n==8&&e.insert.lengthr.head)&&Zi(i.contentDOM,"Backspace",8)||e.from==r.from&&e.to==r.to+1&&e.insert.length==0&&Zi(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,O=()=>o||(o=op(i,e,t));return i.state.facet(ph).some(a=>a(i,e.from,e.to,s,O))||i.dispatch(O()),!0}function op(i,e,t){let n,r=i.state,s=r.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let a=e.fromc(i)),l,a);e.from==h&&(o=h)}if(o>-1)n={changes:e,selection:Q.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let a=s.frome.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(i.state.toText(a+e.insert.sliceString(0,void 0,i.state.lineBreak)+l))}else{let a=r.changes(e),l=t&&t.main.to<=a.newLength?t.main:void 0;if(r.selection.ranges.length>1&&(i.inputState.composing>=0||i.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let h=i.state.sliceDoc(e.from,e.to),c,f=t&&Xh(i,t.main.head);if(f){let $=e.insert.length-(e.to-e.from);c={from:f.from,to:f.to-$}}else c=i.state.doc.lineAt(s.head);let d=s.to-e.to;n=r.changeByRange($=>{if($.from==s.from&&$.to==s.to)return{changes:a,range:l||$.map(a)};let p=$.to-d,m=p-h.length;if(i.state.sliceDoc(m,p)!=h||p>=c.from&&m<=c.to)return{range:$};let g=r.changes({from:m,to:p,insert:e.insert}),P=$.to-s.to;return{changes:g,range:l?Q.range(Math.max(0,l.anchor+P),Math.max(0,l.head+P)):$.map(g)}})}else n={changes:a,selection:l&&r.selection.replaceRange(l)}}let O="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,O+=".compose",i.inputState.compositionFirstChange&&(O+=".start",i.inputState.compositionFirstChange=!1)),r.update(n,{userEvent:O,scrollIntoView:!0})}function Yh(i,e,t,n){let r=Math.min(i.length,e.length),s=0;for(;s0&&O>0&&i.charCodeAt(o-1)==e.charCodeAt(O-1);)o--,O--;if(n=="end"){let a=Math.max(0,s-Math.min(o,O));t-=o+a-s}if(o=o?s-t:0;s-=a,O=s+(O-o),o=s}else if(O=O?s-t:0;s-=a,o=s+(o-O),O=s}return{from:s,toA:o,toB:O}}function Op(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new Sr(t,n)),(r!=t||s!=n)&&e.push(new Sr(r,s))),e}function ap(i,e){if(i.length==0)return null;let t=i[0].pos,n=i.length==2?i[1].pos:t;return t>-1&&n>-1?Q.single(t+e,n+e):null}function Pr(i,e){return e.head==i.main.head&&e.anchor==i.main.anchor}var uo=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,k.safari&&e.contentDOM.addEventListener("input",()=>null),k.gecko&&bp(e.contentDOM.ownerDocument)}handleEvent(e){!pp(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let r of n.observers)r(this.view,t);for(let r of n.handlers){if(t.defaultPrevented)break;if(r(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=hp(e),n=this.handlers,r=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,O=n[s];O&&o!=!O.handlers.length&&(r.removeEventListener(s,this.handleEvent),O=null),O||r.addEventListener(s,this.handleEvent,{passive:o})}for(let s in n)s!="scroll"&&!t[s]&&r.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Vh.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),k.android&&k.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(k.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(zh.some(t=>t.keyCode==e.keyCode)&&!e.ctrlKey||cp.indexOf(e.key)>-1&&e.ctrlKey)){let t={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return t.shiftKey&&k.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&lp(this.view.win)&&(t.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:t},setTimeout(()=>this.flushIOSKey(),50),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let t=this.pendingIOSKey;return!t||this.view.observer.pendingRecords().length||t.key=="Enter"&&e&&e.from0?!0:k.safari&&!k.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function lp(i){return i.visualViewport?i.visualViewport.height*i.visualViewport.scale/i.document.documentElement.clientHeight<.85:!1}function vl(i,e){return(t,n)=>{try{return e.call(i,n,t)}catch(r){Ie(t.state,r)}}}function hp(i){let e=Object.create(null);function t(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of i){let r=n.spec,s=r&&r.plugin.domEventHandlers,o=r&&r.plugin.domEventObservers;if(s)for(let O in s){let a=s[O];a&&t(O).handlers.push(vl(n.value,a))}if(o)for(let O in o){let a=o[O];a&&t(O).observers.push(vl(n.value,a))}}for(let n in Ke)t(n).handlers.push(Ke[n]);for(let n in Se)t(n).observers.push(Se[n]);return e}var zh=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],cp="dthko",Vh=[16,17,18,20,91,92,224,225],ir=6;function nr(i){return Math.max(0,i)*.7+8}function fp(i,e){return Math.max(Math.abs(i.clientX-e.clientX),Math.abs(i.clientY-e.clientY))}var $o=class{constructor(e,t,n,r){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=eh(e.contentDOM),this.atoms=e.state.facet(pn).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(D.allowMultipleSelections)&&up(e,t),this.dragging=$p(e,t)&&qh(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&fp(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,r=0,s=0,o=this.view.win.innerWidth,O=this.view.win.innerHeight;this.scrollParents.x&&({left:r,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:O}=this.scrollParents.y.getBoundingClientRect());let a=xh(this.view);e.clientX-a.left<=r+ir?t=-nr(r-e.clientX):e.clientX+a.right>=o-ir&&(t=nr(e.clientX-o)),e.clientY-a.top<=s+ir?n=-nr(s-e.clientY):e.clientY+a.bottom>=O-ir&&(n=nr(e.clientY-O)),this.setScrollSpeed(t,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,n=vh(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function up(i,e){let t=i.state.facet(fh);return t.length?t[0](e):k.mac?e.metaKey:e.ctrlKey}function dp(i,e){let t=i.state.facet(uh);return t.length?t[0](e):k.mac?!e.altKey:!e.ctrlKey}function $p(i,e){let{main:t}=i.state.selection;if(t.empty)return!1;let n=dn(i.root);if(!n||n.rangeCount==0)return!0;let r=n.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function pp(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=i.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=te.get(t))&&n.isWidget()&&!n.isHidden&&n.widget.ignoreEvent(e))return!1;return!0}var Ke=Object.create(null),Se=Object.create(null),_h=k.ie&&k.ie_version<15||k.ios&&k.webkit_version<604;function mp(i){let e=i.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{i.focus(),t.remove(),Ch(i,t.value)},50)}function Zr(i,e,t){for(let n of i.facet(e))t=n(t,i);return t}function Ch(i,e){e=Zr(i.state,Uo,e);let{state:t}=i,n,r=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(po!=null&&t.selection.ranges.every(a=>a.empty)&&po==s.toString()){let a=-1;n=t.changeByRange(l=>{let h=t.doc.lineAt(l.from);if(h.from==a)return{range:l};a=h.from;let c=t.toText((o?s.line(r++).text:e)+t.lineBreak);return{changes:{from:h.from,insert:c},range:Q.cursor(l.from+c.length)}})}else o?n=t.changeByRange(a=>{let l=s.line(r++);return{changes:{from:a.from,to:a.to,insert:l.text},range:Q.cursor(a.from+l.length)}}):n=t.replaceSelection(s);i.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}Se.scroll=i=>{let e=i.inputState;e.lastScrollTop=i.scrollDOM.scrollTop,e.lastScrollLeft=i.scrollDOM.scrollLeft,k.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};Se.wheel=Se.mousewheel=i=>{i.inputState.lastWheelEvent=Date.now()};Ke.keydown=(i,e)=>(i.inputState.setSelectionOrigin("select"),e.keyCode==27&&i.inputState.tabFocusMode!=0&&(i.inputState.tabFocusMode=Date.now()+2e3),!1);Se.touchstart=(i,e)=>{let t=i.inputState,n=e.targetTouches[0];t.touchActive=!0,t.lastTouchTime=Date.now(),n&&(t.lastTouchX=n.clientX,t.lastTouchY=n.clientY),t.setSelectionOrigin("select.pointer")};Se.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};Se.touchend=(i,e)=>{i.inputState.touchActive=!1};Ke.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let n of i.state.facet(dh))if(t=n(i,e),t)break;if(!t&&e.button==0&&(t=Qp(i,e)),t){let n=!i.hasFocus;i.inputState.startMouseSelection(new $o(i,e,t,n)),n&&i.observer.ignore(()=>{nh(i.contentDOM);let s=i.root.activeElement;s&&!s.contains(i.contentDOM)&&s.blur()});let r=i.inputState.mouseSelection;if(r)return r.start(e),r.dragging===!1}else i.inputState.setSelectionOrigin("select.pointer");return!1};function Zl(i,e,t,n){if(n==1)return Q.cursor(e,t);if(n==2)return J$(i.state,e,t);{let r=i.docView.lineAt(e,t),s=i.state.doc.lineAt(r?r.posAtEnd:e),o=r?r.posAtStart:s.from,O=r?r.posAtEnd:s.to;return ODate.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(Yl+1)%3:1}function Qp(i,e){let t=i.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),n=qh(e),r=i.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),r=r.map(s.changes))},get(s,o,O){let a=i.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),l,h=Zl(i,a.pos,a.assoc,n);if(t.pos!=a.pos&&!o){let c=Zl(i,t.pos,t.assoc,n),f=Math.min(c.from,h.from),d=Math.max(c.to,h.to);h=f1&&(l=Sp(r,a.pos))?l:O?r.addRange(h):Q.create([h])}}}function Sp(i,e){for(let t=0;t=e)return Q.create(i.ranges.slice(0,t).concat(i.ranges.slice(t+1)),i.mainIndex==t?0:i.mainIndex-(i.mainIndex>t?1:0))}return null}Ke.dragstart=(i,e)=>{let{selection:{main:t}}=i.state;if(e.target.draggable){let r=i.docView.tile.nearest(e.target);if(r&&r.isWidget()){let s=r.posAtStart,o=s+r.length;(s>=t.to||o<=t.from)&&(t=Q.undirectionalRange(s,o))}}let{inputState:n}=i;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",Zr(i.state,Ao,i.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Ke.dragend=i=>(i.inputState.draggedContent=null,!1);function Vl(i,e,t,n){if(t=Zr(i.state,Uo,t),!t)return;let r=i.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=i.inputState,o=n&&s&&dp(i,e)?{from:s.from,to:s.to}:null,O={from:r,insert:t},a=i.state.changes(o?[o,O]:O);i.focus(),i.dispatch({changes:a,selection:{anchor:a.mapPos(r,-1),head:a.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"}),i.inputState.draggedContent=null}Ke.drop=(i,e)=>{if(!e.dataTransfer)return!1;if(i.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let n=Array(t.length),r=0,s=()=>{++r==t.length&&Vl(i,e,n.filter(o=>o!=null).join(i.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(O.result)||(n[o]=O.result),s()},O.readAsText(t[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return Vl(i,e,n,!0),!0}return!1};Ke.paste=(i,e)=>{if(i.state.readOnly)return!0;i.observer.flush();let t=_h?null:e.clipboardData;return t?(Ch(i,t.getData("text/plain")||t.getData("text/uri-list")),!0):(mp(i),!1)};function Pp(i,e){let t=i.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),i.focus()},50)}function yp(i){let e=[],t=[],n=!1;for(let r of i.selection.ranges)r.empty||(e.push(i.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:s}of i.selection.ranges){let o=i.doc.lineAt(s);o.number>r&&(e.push(o.text),t.push({from:o.from,to:Math.min(i.doc.length,o.to+1)})),r=o.number}n=!0}return{text:Zr(i,Ao,e.join(i.lineBreak)),ranges:t,linewise:n}}var po=null;Ke.copy=Ke.cut=(i,e)=>{if(!rn(i.contentDOM,i.observer.selectionRange))return!1;let{text:t,ranges:n,linewise:r}=yp(i.state);if(!t&&!r)return!1;po=r?t:null,e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let s=_h?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(Pp(i,t),!1)};var Uh=we.define();function Ah(i,e){let t=[];for(let n of i.facet(mh)){let r=n(i,e);r&&t.push(r)}return t.length?i.update({effects:t,annotations:Uh.of(!0)}):null}function jh(i){setTimeout(()=>{let e=i.hasFocus;if(e!=i.inputState.notifiedFocused){let t=Ah(i.state,e);t?i.dispatch(t):i.update([])}},10)}Se.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),jh(i)};Se.blur=i=>{i.observer.clearSelectionRange(),jh(i)};Se.compositionstart=Se.compositionupdate=i=>{i.observer.editContext||(i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0))};Se.compositionend=i=>{i.observer.editContext||(i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionPendingKey=!0,i.inputState.compositionPendingChange=i.observer.pendingRecords().length>0,i.inputState.compositionFirstChange=null,k.chrome&&k.android?i.observer.flushSoon():i.inputState.compositionPendingChange?Promise.resolve().then(()=>i.observer.flush()):setTimeout(()=>{i.inputState.composing<0&&i.docView.hasComposition&&i.update([])},50))};Se.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};Ke.beforeinput=(i,e)=>{var t,n;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(i.inputState.insertingText=e.data,i.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&i.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let O=o[0],a=i.posAtDOM(O.startContainer,O.startOffset),l=i.posAtDOM(O.endContainer,O.endOffset);return Mo(i,{from:a,to:l,insert:i.state.toText(s)},null),!0}}let r;if(k.chrome&&k.android&&(r=zh.find(s=>s.inputType==e.inputType))&&(i.observer.delayAndroidKey(r.key,r.keyCode),r.key=="Backspace"||r.key=="Delete")){let s=((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}return k.ios&&e.inputType=="deleteContentForward"&&i.observer.flushSoon(),k.safari&&e.inputType=="insertText"&&i.inputState.composing>=0&&setTimeout(()=>Se.compositionend(i,e),20),!1};var _l=new Set;function bp(i){_l.has(i)||(_l.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{}))}var Cl=["pre-wrap","normal","pre-line","break-spaces"],_i=!1;function ql(){_i=!1}var mo=class{constructor(e){this.lineWrapping=e,this.doc=q.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Cl.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n-1,a=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=O;if(this.lineWrapping=O,this.lineHeight=t,this.charWidth=n,this.textHeight=r,this.lineLength=s,a){this.heightSamples={};for(let l=0;l0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>lr&&(_i=!0),this.height=e)}replace(e,t,n){return i.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,r){let s=this,o=n.doc;for(let O=r.length-1;O>=0;O--){let{fromA:a,toA:l,fromB:h,toB:c}=r[O],f=s.lineAt(a,J.ByPosNoHeight,n.setDoc(t),0,0),d=f.to>=l?f:s.lineAt(l,J.ByPosNoHeight,n,0,0);for(c+=d.to-l,l=d.to;O>0&&f.from<=r[O-1].toA;)a=r[O-1].fromA,h=r[O-1].fromB,O--,as*2){let O=e[t-1];O.break?e.splice(--t,1,O.left,null,O.right):e.splice(--t,1,O.left,O.right),n+=1+O.break,r-=O.size}else if(s>r*2){let O=e[n];O.break?e.splice(n,1,O.left,null,O.right):e.splice(n,1,O.left,O.right),n+=2+O.break,s-=O.size}else break;else if(r=s&&o(this.lineAt(0,J.ByPos,n,r,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more&&this.setMeasuredHeight(r),this.outdated=!1,this}toString(){return`block(${this.length})`}},Ee=class i extends br{constructor(e,t,n){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=n}mainBlock(e,t){return new Fe(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,n){let r=n[0];return n.length==1&&(r instanceof i||r instanceof zt&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof zt?r=new i(r.length,this.height,this.spaceAbove):r.height=this.height,this.outdated||(r.outdated=!1),r):Ye.of(n)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more?this.setMeasuredHeight(r):(n||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},zt=class i extends Ye{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,s=r-n+1,o,O=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*s);o=a/s,this.length>s+1&&(O=(this.height-a)/(this.length-s-1))}else o=this.height/s;return{firstLine:n,lastLine:r,perLine:o,perChar:O}}blockAt(e,t,n,r){let{firstLine:s,lastLine:o,perLine:O,perChar:a}=this.heightMetrics(t,r);if(t.lineWrapping){let l=r+(e0){let s=n[n.length-1];s instanceof i?n[n.length-1]=new i(s.length+r):n.push(null,new i(r-1))}if(e>0){let s=n[0];s instanceof i?n[0]=new i(e+s.length):n.unshift(new i(e-1),null)}return Ye.of(n)}decomposeLeft(e,t){t.push(new i(e-1),null)}decomposeRight(e,t){t.push(null,new i(this.length-e-1))}updateHeight(e,t=0,n=!1,r){let s=t+this.length;if(r&&r.from<=t+this.length&&r.more){let o=[],O=Math.max(t,r.from),a=-1;for(r.from>t&&o.push(new i(r.from-t-1).updateHeight(e,t));O<=s&&r.more;){let h=e.doc.lineAt(O).length;o.length&&o.push(null);let c=r.heights[r.index++],f=0;c<0&&(f=-c,c=r.heights[r.index++]),a==-1?a=c:Math.abs(c-a)>=lr&&(a=-2);let d=new Ee(h,c,f);d.outdated=!1,o.push(d),O+=h+1}O<=s&&o.push(null,new i(s-O).updateHeight(e,O));let l=Ye.of(o);return(a<0||Math.abs(l.height-this.height)>=lr||Math.abs(a-this.heightMetrics(e,t).perLine)>=lr)&&(_i=!0),yr(this,l)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},Qo=class extends Ye{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,r){let s=n+this.left.height;return eO))return l;let h=t==J.ByPosNoHeight?J.ByPosNoHeight:J.ByPos;return a?l.join(this.right.lineAt(O,h,n,o,O)):this.left.lineAt(O,h,n,r,s).join(l)}forEachLine(e,t,n,r,s,o){let O=r+this.left.height,a=s+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,n,O,a,o);else{let l=this.lineAt(a,J.ByPos,n,r,s);e=e&&l.from<=t&&o(l),t>l.to&&this.right.forEachLine(l.to+1,t,n,O,a,o)}}replace(e,t,n){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,n));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let O of n)s.push(O);if(e>0&&Ul(s,o-1),t=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,r=n+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?Ye.of(this.break?[e,null,t]:[e,t]):(this.left=yr(this.left,e),this.right=yr(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,r){let{left:s,right:o}=this,O=t+s.length+this.break,a=null;return r&&r.from<=t+s.length&&r.more?a=s=s.updateHeight(e,t,n,r):s.updateHeight(e,t,n),r&&r.from<=O+o.length&&r.more?a=o=o.updateHeight(e,O,n,r):o.updateHeight(e,O,n),a?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function Ul(i,e){let t,n;i[e]==null&&(t=i[e-1])instanceof zt&&(n=i[e+1])instanceof zt&&i.splice(e-1,3,new zt(t.length+1+n.length))}var wp=5,So=class i{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof Ee?r.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new Ee(n-this.pos,-1,0)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e=wp)&&this.addLineDeco(r,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new Ee(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let n=new zt(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Ee)return e;let t=new Ee(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let r=this.ensureLine();r.length+=n,r.collapsed+=n,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof Ee)&&!this.isCovered?this.nodes.push(new Ee(0,-1,0)):(this.writtenToh.clientHeight||h.scrollWidth>h.clientWidth)&&c.overflow!="visible"){let f=h.getBoundingClientRect();s=Math.max(s,f.left),o=Math.min(o,f.right),O=Math.max(O,f.top),a=Math.min(l==i.parentNode?r.innerHeight:a,f.bottom)}l=c.position=="absolute"||c.position=="fixed"?h.offsetParent:h.parentNode}else if(l.nodeType==11)l=l.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:O-(t.top+e),bottom:Math.max(O,a)-(t.top+e)}}function Xp(i){let e=i.getBoundingClientRect(),t=i.ownerDocument.defaultView||window;return e.left0&&e.top0}function vp(i,e){let t=i.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var hn=class{constructor(e,t,n,r){this.from=e,this.to=t,this.size=n,this.displaySize=r}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;ntypeof r!="function"&&r.class=="cm-lineWrapping");this.heightOracle=new mo(n),this.stateDeco=jl(t),this.heightMap=Ye.empty().applyChanges(this.stateDeco,q.empty,this.heightOracle.setDoc(t.doc),[new He(0,0,0,t.doc.length)]);for(let r=0;r<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());r++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=M.set(this.lineGaps.map(r=>r.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let r=n?t.head:t.anchor;if(!e.some(({from:s,to:o})=>r>=s&&r<=o)){let{from:s,to:o}=this.lineBlockAt(r);e.push(new ki(s,o))}}return this.viewports=e.sort((n,r)=>n.from-r.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Al:new bo(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(tn(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=jl(this.state);let r=e.changedRanges,s=He.extendWithRanges(r,xp(n,this.stateDeco,e?e.changes:ge.empty(this.state.doc.length))),o=this.heightMap.height,O=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);ql(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||_i)&&(e.flags|=2),O?(this.scrollAnchorPos=e.changes.mapPos(O.from,-1),this.scrollAnchorHeight=O.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let a=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let l=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(l||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Qh)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,t=e.contentDOM,n=window.getComputedStyle(t),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?H.RTL:H.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",O=t.getBoundingClientRect(),a=o||this.mustMeasureContent||this.contentDOMHeight!=O.height;this.contentDOMHeight=O.height,this.mustMeasureContent=!1;let l=0,h=0;if(O.width&&O.height){let{scaleX:b,scaleY:x}=Jl(t,O);(b>.005&&Math.abs(this.scaleX-b)>.005||x>.005&&Math.abs(this.scaleY-x)>.005)&&(this.scaleX=b,this.scaleY=x,l|=16,o=a=!0)}let c=(parseInt(n.paddingTop)||0)*this.scaleY,f=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=c||this.paddingBottom!=f)&&(this.paddingTop=c,this.paddingBottom=f,l|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=16);let d=eh(this.view.contentDOM,!1).y;d!=this.scrollParent&&(this.scrollParent=d,this.scrollAnchorHeight=-1,this.scrollOffset=0);let $=this.getScrollOffset();this.scrollOffset!=$&&(this.scrollAnchorHeight=-1,this.scrollOffset=$),this.scrolledToBottom=rh(this.scrollParent||e.win);let p=(this.printing?vp:kp)(t,this.paddingTop),m=p.top-this.pixelViewport.top,g=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let P=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(P!=this.inView&&(this.inView=P,P&&(a=!0)),!this.inView&&!this.scrollTarget&&!Xp(e.dom))return 0;let S=O.width;if((this.contentDOMWidth!=S||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=O.width,this.editorHeight=e.scrollDOM.clientHeight,l|=16),a){let b=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(b)&&(o=!0),o||r.lineWrapping&&Math.abs(S-this.contentDOMWidth)>r.charWidth){let{lineHeight:x,charWidth:w,textHeight:W}=e.docView.measureTextSize();o=x>0&&r.refresh(s,x,w,W,Math.max(5,S/w),b),o&&(e.docView.minWidth=0,l|=16)}m>0&&g>0?h=Math.max(m,g):m<0&&g<0&&(h=Math.min(m,g)),ql();for(let x of this.viewports){let w=x.from==this.viewport.from?b:e.docView.measureVisibleLineHeights(x);this.heightMap=(o?Ye.empty().applyChanges(this.stateDeco,q.empty,this.heightOracle,[new He(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new go(x.from,w))}_i&&(l|=2)}let z=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return z&&(l&2&&(l|=this.updateScaler()),this.viewport=this.getViewport(h,this.scrollTarget),l|=this.updateForViewport()),(l&2||z)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),l}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:O}=this,a=new ki(r.lineAt(o-n*1e3,J.ByHeight,s,0,0).from,r.lineAt(O+(1-n)*1e3,J.ByHeight,s,0,0).to);if(t){let{head:l}=t.range;if(la.to){let h=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),c=r.lineAt(l,J.ByPos,s,0,0),f;t.y=="center"?f=(c.top+c.bottom)/2-h/2:t.y=="start"||t.y=="nearest"&&l=O+Math.max(10,Math.min(n,250)))&&r>o-2*1e3&&s>1,o=r<<1;if(this.defaultTextDirection!=H.LTR&&!n)return[];let O=[],a=(h,c,f,d)=>{if(c-hh&&gg.from>=f.from&&g.to<=f.to&&Math.abs(g.from-h)g.fromP));if(!m){if(cS.from<=c&&S.to>=c)){let S=t.moveToLineBoundary(Q.cursor(c),!1,!0).head;S>h&&(c=S)}let g=this.gapSize(f,h,c,d),P=n||g<2e6?g:2e6;m=new hn(h,c,g,P)}O.push(m)},l=h=>{if(h.length2e6)for(let x of e)x.from>=h.from&&x.fromh.from&&a(h.from,d,h,c),$t.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];G.spans(t,this.viewport.from,this.viewport.to,{span(s,o){n.push({from:s,to:o})},point(){}},20);let r=0;if(n.length!=this.visibleRanges.length)r=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||tn(this.heightMap.lineAt(e,J.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||tn(this.heightMap.lineAt(this.scaler.fromDOM(e),J.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop*this.scaleY:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return tn(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},ki=class{constructor(e,t){this.from=e,this.to=t}};function Zp(i,e,t){let n=[],r=i,s=0;return G.spans(t,i,e,{span(){},point(o,O){o>r&&(n.push({from:r,to:o}),s+=o-r),r=O}},20),r=1)return e[e.length-1].to;let n=Math.floor(i*t);for(let r=0;;r++){let{from:s,to:o}=e[r],O=o-s;if(n<=O)return s+n;n-=O}}function sr(i,e){let t=0;for(let{from:n,to:r}of i.ranges){if(e<=r){t+=e-n;break}t+=r-n}return t/i.total}function Rp(i,e){for(let t of i)if(e(t))return t}var Al={toDOM(i){return i},fromDOM(i){return i},scale:1,eq(i){return i==this}};function jl(i){let e=i.facet(vr).filter(n=>typeof n!="function"),t=i.facet(Wo).filter(n=>typeof n!="function");return t.length&&e.push(G.join(t)),e}var bo=class i{constructor(e,t,n){let r=0,s=0,o=0;this.viewports=n.map(({from:O,to:a})=>{let l=t.lineAt(O,J.ByPos,e,0,0).top,h=t.lineAt(a,J.ByPos,e,0,0).bottom;return r+=h-l,{from:O,to:a,top:l,bottom:h,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let O of this.viewports)O.domTop=o+(O.top-s)*this.scale,o=O.domBottom=O.domTop+(O.bottom-O.top),s=O.bottom}toDOM(e){for(let t=0,n=0,r=0;;t++){let s=tt.from==e.viewports[n].from&&t.to==e.viewports[n].to):!1}};function tn(i,e){if(e.scale==1)return i;let t=e.toDOM(i.top),n=e.toDOM(i.bottom);return new Fe(i.from,i.length,t,n-t,Array.isArray(i._content)?i._content.map(r=>tn(r,e)):i._content)}var or=v.define({combine:i=>i.join(" ")}),To=v.define({combine:i=>i.indexOf(!0)>-1}),wo=Me.newName(),Wh=Me.newName(),Mh=Me.newName(),Eh={"&light":"."+Wh,"&dark":"."+Mh};function xo(i,e,t){return new Me(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,r=>{if(r=="&")return i;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):i+" "+n}})}var Yp=xo("."+wo,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},".cm-panels-top":{top:"0"},".cm-panels-bottom":{bottom:"0"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{background:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 0) no-repeat",backgroundSize:".4em",backgroundPosition:"calc(min(50%, 0px)) center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Eh),zp={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Ms=k.ie&&k.ie_version<=11,ko=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new Ns,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(k.ie&&k.ie_version<=11||k.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&k.android&&e.constructor.EDIT_CONTEXT!==!1&&!(k.chrome&&k.chrome_version<126)&&(this.editContext=new Xo(e),e.state.facet(gt)&&(e.contentDOM.editContext=this.editContext.editContext)),Ms&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,r=this.selectionRange;if(n.state.facet(gt)?n.root.activeElement!=this.dom:!rn(this.dom,r))return;let s=r.anchorNode&&n.docView.tile.nearest(r.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(k.ie&&k.ie_version<=11||k.android&&k.chrome)&&!n.state.selection.main.empty&&r.focusNode&&sn(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=dn(e.root);if(!t)return!1;let n=k.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&Vp(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let r=rn(this.dom,n);return r&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Zi(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,r=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(r=!0),t==-1?{from:t,to:n}=o:(t=Math.min(o.from,t),n=Math.max(o.to,n)))}return{from:t,to:n,typeOver:r}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),r=this.selectionChanged&&rn(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new fo(this.view,e,t,n);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,r=Rh(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!Pr(this.view.state.selection,t.newSel.main))&&this.view.update([]),r}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let n=Wl(t,e.previousSibling||e.target.previousSibling,-1),r=Wl(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(gt)!=e.state.facet(gt)&&(e.view.contentDOM.editContext=e.state.facet(gt)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function Wl(i,e,t){for(;e;){let n=te.get(e);if(n&&n.parent==i)return n;let r=e.parentNode;e=r!=i.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function Ml(i,e){let t=e.startContainer,n=e.startOffset,r=e.endContainer,s=e.endOffset,o=i.docView.domAtPos(i.state.selection.main.anchor,1);return sn(o.node,o.offset,r,s)&&([t,n,r,s]=[r,s,t,n]),{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}}function Vp(i,e){if(e.getComposedRanges){let r=e.getComposedRanges(i.root)[0];if(r)return Ml(i,r)}let t=null;function n(r){r.preventDefault(),r.stopImmediatePropagation(),t=r.getTargetRanges()[0]}return i.contentDOM.addEventListener("beforeinput",n,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",n,!0),t?Ml(i,t):null}var Xo=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=n=>{let r=e.state.selection.main,{anchor:s,head:o}=r,O=this.toEditorPos(n.updateRangeStart),a=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:O,drifted:!1});let l=a-O>n.text.length;O==this.from&&sthis.to&&(a=s);let h=Yh(e.state.sliceDoc(O,a),n.text,(l?r.from:r.to)-O,l?"end":null);if(!h){let f=Q.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));Pr(f,r)||e.dispatch({selection:f,userEvent:"select"});return}let c={from:h.from+O,to:h.toA+O,insert:q.of(n.text.slice(h.from,h.toB).split(` +`))};if((k.mac||k.android)&&c.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:O,to:a,insert:q.of([n.text.replace("."," ")])}),this.pendingContextChange=c,!e.state.readOnly){let f=this.to-this.from+(c.to-c.from+c.insert.length);Mo(e,c,Q.single(this.toEditorPos(n.selectionStart,f),this.toEditorPos(n.selectionEnd,f)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),c.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let r=[],s=null;for(let o=this.toEditorPos(n.rangeStart),O=this.toEditorPos(n.rangeEnd);o{let r=[];for(let s of n.getTextFormats()){let o=s.underlineStyle,O=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(O)){let a=this.toEditorPos(s.rangeStart),l=this.toEditorPos(s.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{let r=dn(n.root);r&&r.rangeCount&&this.editContext.updateSelectionBounds(r.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,r=this.pendingContextChange;return e.changes.iterChanges((s,o,O,a,l)=>{if(n)return;let h=l.length-(o-s);if(r&&o>=r.to)if(r.from==s&&r.to==o&&r.insert.eq(l)){r=this.pendingContextChange=null,t+=h,this.to+=h;return}else r=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=h,this.to+=h;else if(sthis.to||this.to-this.from+l.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),l.toString()),this.to+=h}t+=h}),r&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(r=>!r.isUserEvent("input.type")&&r.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),r=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=r)&&this.editContext.updateSelection(n,r)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},X=class i{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(r=>r.forEach(s=>n(s,this)))||(r=>this.update(r)),this.dispatch=this.dispatch.bind(this),this._root=e.root||k$(e.parent)||document,this.viewState=new Tr(this,e.state||D.create(e)),e.scrollTo&&e.scrollTo.is(tr)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(xi).map(r=>new On(r));for(let r of this.plugins)r.update(this);this.observer=new ko(this),this.inputState=new uo(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Qr(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof ne?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,r,s=this.state;for(let f of e){if(f.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=f.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,O=0,a=null;e.some(f=>f.annotation(Uh))?(this.inputState.notifiedFocused=o,O=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=Ah(s,o),a||(O=1));let l=this.observer.delayedAndroidKey,h=null;if(l?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(h=null)):this.observer.clear(),s.facet(D.phrases)!=this.state.facet(D.phrases))return this.setState(s);r=mr.create(this,s,e),r.flags|=O;let c=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(c&&(c=c.map(f.changes)),f.scrollIntoView){let{main:d}=f.state.selection,{x:$,y:p}=this.state.facet(i.cursorScrollMargin);c=new on(d.empty?d:Q.cursor(d.head,d.head>d.anchor?-1:1),"nearest","nearest",p,$)}for(let d of f.effects)d.is(tr)&&(c=d.value.clip(this.state))}this.viewState.update(r,c),this.bidiCache=wr.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(en)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(or)!=r.state.facet(or)&&(this.viewState.mustMeasureContent=!0),(t||n||c||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!r.empty)for(let f of this.state.facet(Js))try{f(r)}catch(d){Ie(this.state,d,"update listener")}(a||h)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),h&&!Rh(this,h)&&l.force&&Zi(this.contentDOM,l.key,l.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new Tr(this,e),this.plugins=e.facet(xi).map(n=>new On(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new Qr(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(xi),n=e.state.facet(xi);if(t!=n){let r=[];for(let s of n){let o=t.indexOf(s);if(o<0)r.push(new On(s));else{let O=this.plugins[o];O.mustUpdate=e,r.push(O)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.viewState.scrollParent,r=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o,scaleY:O}=this.viewState;Math.abs(r-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0){if(rh(n||this.win))s=-1,o=this.viewState.heightMap.height/this.viewState.scaleY;else{let $=this.viewState.scrollAnchorAt(r);s=$.from,o=$.top}O=this.viewState.scaleY}this.updateState=1;let l=this.viewState.measure();if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let h=[];l&4||([this.measureRequests,h]=[h,this.measureRequests]);let c=h.map($=>{try{return $.read(this)}catch(p){return Ie(this.state,p),El}}),f=mr.create(this,this.state,[]),d=!1;f.flags|=l,t?t.flags|=l:t=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),d=this.docView.update(f),d&&this.docViewUpdate());for(let $=0;$1||p<-1)&&!(k.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(n==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){r=r+p,n?s<0?n.scrollTop=n.scrollHeight:n.scrollTop+=p:this.win.scrollBy(0,p),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(Js))a(t)}get themeClasses(){return wo+" "+(this.state.facet(To)?Mh:Wh)+" "+this.state.facet(or)}updateAttrs(){let e=Ll(this,yh,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(gt)?"true":"false",class:"cm-content",style:`${k.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Ll(this,jo,t);let n=this.observer.ignore(()=>{let r=yl(this.contentDOM,this.contentAttrs,t),s=yl(this.dom,this.editorAttrs,e);return r||s});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let r of n.effects)if(r.is(i.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(en);let e=this.state.facet(i.cspNonce);Me.mount(this.root,this.styleModules.concat(Yp).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;tn.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return Ws(this,e,Xl(this,e,t,n))}moveByGroup(e,t){return Ws(this,e,Xl(this,e,t,n=>ip(this,e.head,n)))}visualLineSide(e,t){let n=this.bidiSpans(e),r=this.textDirectionAt(e.from),s=n[t?n.length-1:0];return Q.cursor(s.side(t,r)+e.from,s.forward(!t,r)?1:-1)}moveToLineBoundary(e,t,n=!0){return tp(this,e,t,n)}moveVertically(e,t,n){return Ws(this,e,np(this,e,t,n))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let n=lo(this,e,t);return n&&n.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),lo(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.state.doc.lineAt(e),r=this.bidiSpans(n),s=r[Ge.find(r,e-n.from,-1,t)];return this.docView.coordsAt(e,t,s.dir==H.RTL)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(gh)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>_p)return hh(e.length);let t=this.textDirectionAt(e.from),n;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||lh(s.isolates,n=wl(this,e))))return s.order;n||(n=wl(this,e));let r=_$(e.text,t,n);return this.bidiCache.push(new wr(e.from,e.to,t,n,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||k.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{nh(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){var n,r,s,o;return tr.of(new on(typeof e=="number"?Q.cursor(e):e,(n=t.y)!==null&&n!==void 0?n:"nearest",(r=t.x)!==null&&r!==void 0?r:"nearest",(s=t.yMargin)!==null&&s!==void 0?s:5,(o=t.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return tr.of(new on(Q.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return ze.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return ze.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=Me.newName(),r=[or.of(n),en.of(xo(`.${n}`,e))];return t&&t.dark&&r.push(To.of(!0)),r}static baseTheme(e){return Ot.lowest(en.of(xo("."+wo,e,Eh)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),r=n&&te.get(n)||te.get(e);return((t=r?.root)===null||t===void 0?void 0:t.view)||null}};X.styleModule=en;X.inputHandler=ph;X.clipboardInputFilter=Uo;X.clipboardOutputFilter=Ao;X.scrollHandler=Sh;X.focusChangeEffect=mh;X.perLineTextDirection=gh;X.exceptionSink=$h;X.updateListener=Js;X.editable=gt;X.mouseSelectionStyle=dh;X.dragMovesSelection=uh;X.clickAddsSelectionRange=fh;X.decorations=vr;X.blockWrappers=bh;X.outerDecorations=Wo;X.atomicRanges=pn;X.bidiIsolatedRanges=Th;X.cursorScrollMargin=v.define({combine:i=>{let e=5,t=5;for(let n of i)typeof n=="number"?e=t=n:{x:e,y:t}=n;return{x:e,y:t}}});X.scrollMargins=wh;X.darkTheme=To;X.cspNonce=v.define({combine:i=>i.length?i[0]:""});X.contentAttributes=jo;X.editorAttributes=yh;X.lineWrapping=X.contentAttributes.of({class:"cm-lineWrapping"});X.announce=B.define();var _p=4096,El={},wr=class i{constructor(e,t,n,r,s,o){this.from=e,this.to=t,this.dir=n,this.isolates=r,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let n=[],r=e.length?e[e.length-1].dir:H.LTR;for(let s=Math.max(0,e.length-10);s=0;r--){let s=n[r],o=typeof s=="function"?s(i):s;o&&_o(o,t)}return t}var Cp=k.mac?"mac":k.windows?"win":k.linux?"linux":"key";function qp(i,e){let t=i.split(/-(?!$)/),n=t[t.length-1];n=="Space"&&(n=" ");let r,s,o,O;for(let a=0;an.concat(r),[]))),t}var Yt=null,jp=4e3;function Wp(i,e=Cp){let t=Object.create(null),n=Object.create(null),r=(o,O)=>{let a=n[o];if(a==null)n[o]=O;else if(a!=O)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,O,a,l,h)=>{var c,f;let d=t[o]||(t[o]=Object.create(null)),$=O.split(/ (?!$)/).map(g=>qp(g,e));for(let g=1;g<$.length;g++){let P=$.slice(0,g).join(" ");r(P,!0),d[P]||(d[P]={preventDefault:!0,stopPropagation:!1,run:[S=>{let z=Yt={view:S,prefix:P,scope:o};return setTimeout(()=>{Yt==z&&(Yt=null)},jp),!0}]})}let p=$.join(" ");r(p,!1);let m=d[p]||(d[p]={preventDefault:!1,stopPropagation:!1,run:((f=(c=d._any)===null||c===void 0?void 0:c.run)===null||f===void 0?void 0:f.slice())||[]});a&&m.run.push(a),l&&(m.preventDefault=!0),h&&(m.stopPropagation=!0)};for(let o of i){let O=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let l of O){let h=t[l]||(t[l]=Object.create(null));h._any||(h._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:c}=o;for(let f in h)h[f].run.push(d=>c(d,vo))}let a=o[e]||o.key;if(a)for(let l of O)s(l,a,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(l,"Shift-"+a,o.shift,o.preventDefault,o.stopPropagation)}return t}var vo=null;function Mp(i,e,t,n){vo=e;let r=gl(e),s=Rs(r,0),o=Ys(s)==r.length&&r!=" ",O="",a=!1,l=!1,h=!1;Yt&&Yt.view==t&&Yt.scope==n&&(O=Yt.prefix+" ",Vh.indexOf(e.keyCode)<0&&(l=!0,Yt=null));let c=new Set,f=m=>{if(m){for(let g of m.run)if(!c.has(g)&&(c.add(g),g(t)))return m.stopPropagation&&(h=!0),!0;m.preventDefault&&(m.stopPropagation&&(h=!0),l=!0)}return!1},d=i[n],$,p;return d&&(f(d[O+Or(r,e,!o)])?a=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(k.windows&&e.ctrlKey&&e.altKey)&&!(k.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&($=mt[e.keyCode])&&$!=r?(f(d[O+Or($,e,!0)])||e.shiftKey&&(p=Ti[e.keyCode])!=r&&p!=$&&f(d[O+Or(p,e,!1)]))&&(a=!0):o&&e.shiftKey&&f(d[O+Or(r,e,!0)])&&(a=!0),!a&&f(d._any)&&(a=!0)),l&&(a=!0),a&&h&&e.stopPropagation(),vo=null,a}var ni=class i{constructor(e,t,n,r,s){this.className=e,this.left=t,this.top=n,this.width=r,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let r=e.coordsAtPos(n.head,n.assoc||1);if(!r)return[];let s=Lh(e);return[new i(t,r.left-s.left,r.top-s.top,null,r.bottom-r.top)]}else return Ep(e,t,n)}};function Lh(i){let e=i.scrollDOM.getBoundingClientRect();return{left:(i.textDirection==H.LTR?e.left:e.right-i.scrollDOM.clientWidth*i.scaleX)-i.scrollDOM.scrollLeft*i.scaleX,top:e.top-i.scrollDOM.scrollTop*i.scaleY}}function Il(i,e,t,n){let r=i.coordsAtPos(e,t*2);if(!r)return n;let s=i.dom.getBoundingClientRect(),o=(r.top+r.bottom)/2,O=i.posAtCoords({x:s.left+1,y:o}),a=i.posAtCoords({x:s.right-1,y:o});return O==null||a==null?n:{from:Math.max(n.from,Math.min(O,a)),to:Math.min(n.to,Math.max(O,a))}}function Ep(i,e,t){if(t.to<=i.viewport.from||t.from>=i.viewport.to)return[];let n=Math.max(t.from,i.viewport.from),r=Math.min(t.to,i.viewport.to),s=i.textDirection==H.LTR,o=i.contentDOM,O=o.getBoundingClientRect(),a=Lh(i),l=o.querySelector(".cm-line"),h=l&&window.getComputedStyle(l),c=O.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),f=O.right-(h?parseInt(h.paddingRight):0),d=ao(i,n,1),$=ao(i,r,-1),p=d.type==he.Text?d:null,m=$.type==he.Text?$:null;if(p&&(i.lineWrapping||d.widgetLineBreaks)&&(p=Il(i,n,1,p)),m&&(i.lineWrapping||$.widgetLineBreaks)&&(m=Il(i,r,-1,m)),p&&m&&p.from==m.from&&p.to==m.to)return P(S(t.from,t.to,p));{let b=p?S(t.from,null,p):z(d,!1),x=m?S(null,t.to,m):z($,!0),w=[];return(p||d).to<(m||$).from-(p&&m?1:0)||d.widgetLineBreaks>1&&b.bottom+i.defaultLineHeight/2V&&E.from=me)break;Ue>K&&C(Math.max(ae,K),b==null&&ae<=V,Math.min(Ue,me),x==null&&Ue>=I,st.dir)}if(K=Ze.to+1,K>=me)break}return N.length==0&&C(V,b==null,I,x==null,i.textDirection),{top:W,bottom:U,horizontal:N}}function z(b,x){let w=O.top+(x?b.top:b.bottom);return{top:w,bottom:w,horizontal:[]}}}function Lp(i,e){return i.constructor==e.constructor&&i.eq(e)}var Zo=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(hr)!=e.state.facet(hr)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(hr);for(;t!Lp(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[n].constructor&&r.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e,k.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},hr=v.define();function Gh(i){return[ze.define(e=>new Zo(e,i)),hr.of(i)]}var Ci=v.define({combine(i){return Rt(i,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Ih(i={}){return[Ci.of(i),Gp,Ip,Dp,Qh.of(!0)]}function Bh(i){return i.startState.facet(Ci)!=i.state.facet(Ci)}var Gp=Gh({above:!0,markers(i){let{state:e}=i,t=e.facet(Ci),n=[];for(let r of e.selection.ranges){let s=r==e.selection.main;if(r.empty||t.drawRangeCursor&&!(s&&k.ios&&t.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",O=r.empty?r:Q.cursor(r.head,r.assoc);for(let a of ni.forRange(i,o,O))n.push(a)}}return n},update(i,e){i.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Bh(i);return t&&Bl(i.state,e),i.docChanged||i.selectionSet||t},mount(i,e){Bl(e.state,i)},class:"cm-cursorLayer"});function Bl(i,e){e.style.animationDuration=i.facet(Ci).cursorBlinkRate+"ms"}var Ip=Gh({above:!1,markers(i){let e=[],{main:t,ranges:n}=i.state.selection;for(let r of n)if(!r.empty)for(let s of ni.forRange(i,"cm-selectionBackground",r))e.push(s);if(k.ios&&!t.empty&&i.state.facet(Ci).iosSelectionHandles){for(let r of ni.forRange(i,"cm-selectionHandle cm-selectionHandle-start",Q.cursor(t.from,1)))e.push(r);for(let r of ni.forRange(i,"cm-selectionHandle cm-selectionHandle-end",Q.cursor(t.to,1)))e.push(r)}return e},update(i,e){return i.docChanged||i.selectionSet||i.viewportChanged||Bh(i)},class:"cm-selectionLayer"}),Bp=k.gecko&&k.gecko_version==153?"#ffffff01":"transparent",Dp=Ot.highest(X.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:`${Bp} !important`},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Dh=B.define({map(i,e){return i==null?null:e.mapPos(i)}}),nn=Te.define({create(){return null},update(i,e){return i!=null&&(i=e.changes.mapPos(i)),e.effects.reduce((t,n)=>n.is(Dh)?n.value:t,i)}}),Np=ze.fromClass(class{constructor(i){this.view=i,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(i){var e;let t=i.state.field(nn);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(i.startState.field(nn)!=t||i.docChanged||i.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:i}=this,e=i.state.field(nn),t=e!=null&&i.coordsAtPos(e);if(!t)return null;let n=i.scrollDOM.getBoundingClientRect();return{left:t.left-n.left+i.scrollDOM.scrollLeft*i.scaleX,top:t.top-n.top+i.scrollDOM.scrollTop*i.scaleY,height:t.bottom-t.top}}drawCursor(i){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;i?(this.cursor.style.left=i.left/e+"px",this.cursor.style.top=i.top/t+"px",this.cursor.style.height=i.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(i){this.view.state.field(nn)!=i&&this.view.dispatch({effects:Dh.of(i)})}},{eventObservers:{dragover(i){this.setDropPos(this.view.posAtCoords({x:i.clientX,y:i.clientY}))},dragleave(i){(i.target==this.view.contentDOM||!this.view.contentDOM.contains(i.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Nh(){return[nn,Np]}var by=/x/.unicode!=null?"gu":"g";function Eo(){return Hp}var Fp=M.line({class:"cm-activeLine"}),Hp=ze.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.docChanged||i.selectionSet)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=-1,t=[];for(let n of i.state.selection.ranges){let r=i.lineBlockAt(n.head);r.from>e&&(t.push(Fp.range(r.from)),e=r.from)}return M.set(t)}},{decorations:i=>i.decorations});var Ro=2e3;function Kp(i,e,t){let n=Math.min(e.line,t.line),r=Math.max(e.line,t.line),s=[];if(e.off>Ro||t.off>Ro||e.col<0||t.col<0){let o=Math.min(e.off,t.off),O=Math.max(e.off,t.off);for(let a=n;a<=r;a++){let l=i.doc.line(a);l.length<=O&&s.push(Q.range(l.from+o,l.to+O))}}else{let o=Math.min(e.col,t.col),O=Math.max(e.col,t.col);for(let a=n;a<=r;a++){let l=i.doc.line(a),h=Jn(l.text,o,i.tabSize,!0);if(h<0)s.push(Q.cursor(l.to));else{let c=Jn(l.text,O,i.tabSize);s.push(Q.range(l.from+h,l.from+c))}}}return s}function Jp(i,e){let t=i.coordsAtPos(i.viewport.from);return t?Math.round(Math.abs((t.left-e)/i.defaultCharacterWidth)):-1}function Dl(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1),n=i.state.doc.lineAt(t),r=t-n.from,s=r>Ro?-1:r==n.length?Jp(i,e.clientX):xe(n.text,i.state.tabSize,t-n.from);return{line:n.number,col:s,off:r}}function em(i,e){let t=Dl(i,e),n=i.state.selection;return t?{update(r){if(r.docChanged){let s=r.changes.mapPos(r.startState.doc.line(t.line).from),o=r.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(r.changes)}},get(r,s,o){let O=Dl(i,r);if(!O)return n;let a=Kp(i.state,t,O);return a.length?o?Q.create(a.concat(n.ranges)):Q.create(a):n}}:null}function Fh(i){let e=i?.eventFilter||(t=>t.altKey&&t.button==0);return X.mouseSelectionStyle.of((t,n)=>e(n)?em(t,n):null)}var Je=class extends We{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Je.prototype.elementClass="";Je.prototype.toDOM=void 0;Je.prototype.mapMode=le.TrackBefore;Je.prototype.startSide=Je.prototype.endSide=-1;Je.prototype.point=!0;var cr=v.define(),tm=v.define();var fr=v.define();var Yo=v.define({combine:i=>i.some(e=>e)});function im(i){let e=[nm];return i&&i.fixed===!1&&e.push(Yo.of(!0)),e}var nm=ze.fromClass(class{constructor(i){this.view=i,this.domAfter=null,this.prevViewport=i.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=i.state.facet(fr).map(e=>new xr(i,e)),this.fixed=!i.state.facet(Yo);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),i.scrollDOM.insertBefore(this.dom,i.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(i){if(this.updateGutters(i)){let e=this.prevViewport,t=i.view.viewport,n=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(n<(t.to-t.from)*.8)}if(i.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(Yo)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=i.view.viewport}syncGutters(i){let e=this.dom.nextSibling;i&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=G.iter(this.view.state.facet(cr),this.view.viewport.from),n=[],r=this.gutters.map(s=>new Vo(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(s.type)){let o=!0;for(let O of s.type)if(O.type==he.Text&&o){zo(t,n,O.from);for(let a of r)a.line(this.view,O,n);o=!1}else if(O.widget)for(let a of r)a.widget(this.view,O)}else if(s.type==he.Text){zo(t,n,s.from);for(let o of r)o.line(this.view,s,n)}else if(s.widget)for(let o of r)o.widget(this.view,s);for(let s of r)s.finish();i&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(i){let e=i.startState.facet(fr),t=i.state.facet(fr),n=i.docChanged||i.heightChanged||i.viewportChanged||!G.eq(i.startState.facet(cr),i.state.facet(cr),i.view.viewport.from,i.view.viewport.to);if(e==t)for(let r of this.gutters)r.update(i)&&(n=!0);else{n=!0;let r=[];for(let s of t){let o=e.indexOf(s);o<0?r.push(new xr(this.view,s)):(this.gutters[o].update(i),r.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),r.indexOf(s)<0&&s.destroy();for(let s of r)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=r}return n}destroy(){for(let i of this.gutters)i.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:i=>X.scrollMargins.of(e=>{let t=e.plugin(i);if(!t||t.gutters.length==0||!t.fixed)return null;let n=t.dom.offsetWidth*e.scaleX,r=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==H.LTR?{left:n,right:r}:{right:n,left:r}})});function Nl(i){return Array.isArray(i)?i:[i]}function zo(i,e,t){for(;i.value&&i.from<=t;)i.from==t&&e.push(i.value),i.next()}var Vo=class{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=G.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:r}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==r.elements.length){let O=new kr(e,o,s,n);r.elements.push(O),r.dom.appendChild(O.dom)}else r.elements[this.i].update(e,o,s,n);this.height=t.bottom,this.i++}line(e,t,n){let r=[];zo(this.cursor,r,t.from),n.length&&(r=r.concat(n));let s=this.gutter.config.lineMarker(e,t,r);s&&r.unshift(s);let o=this.gutter;r.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,r)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t),r=n?[n]:null;for(let s of e.state.facet(tm)){let o=s(e,t.widget,t);o&&(r||(r=[])).push(o)}r&&this.addElement(e,t,r)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},xr=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let n in t.domEventHandlers)this.dom.addEventListener(n,r=>{let s=r.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let a=s.getBoundingClientRect();o=(a.top+a.bottom)/2}else o=r.clientY;let O=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[n](e,O,r)&&r.preventDefault()});this.markers=Nl(t.markers(e)),t.initialSpacer&&(this.spacer=new kr(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Nl(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let r=this.config.updateSpacer(this.spacer.markers[0],e);r!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[r])}let n=e.view.viewport;return!G.eq(this.markers,t,n.from,n.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},kr=class{constructor(e,t,n,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,n,r)}update(e,t,n,r){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),rm(this.markers,r)||this.setMarkers(e,r)}setMarkers(e,t){let n="cm-gutterElement",r=this.dom.firstChild;for(let s=0,o=0;;){let O=o,a=ss(O,a,l)||o(O,a,l):o}return n}})}}),cn=class extends Je{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function Es(i,e){return i.state.facet(Xi).formatNumber(e,i.state)}var Om=fr.compute([Xi],i=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(sm)},lineMarker(e,t,n){return n.some(r=>r.toDOM)?null:new cn(Es(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,n)=>{for(let r of e.state.facet(om)){let s=r(e,t,n);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Xi)!=e.state.facet(Xi),initialSpacer(e){return new cn(Es(e,Fl(e.state.doc.lines)))},updateSpacer(e,t){let n=Es(t.view,Fl(t.view.state.doc.lines));return n==e.number?e:new cn(n)},domEventHandlers:i.facet(Xi).domEventHandlers,side:"before"}));function Hh(i={}){return[Xi.of(i),im(),Om]}function Fl(i){let e=9;for(;e{let e=[],t=-1;for(let n of i.selection.ranges){let r=i.doc.lineAt(n.head).from;r>t&&(t=r,e.push(am.range(r)))}return G.of(e)});function Lo(){return lm}async function Kh(i){if(window.isSecureContext&&navigator.clipboard){await navigator.clipboard.writeText(i);return}let e=document.createElement("textarea");e.setAttribute("style","position: absolute; left: -1000px; top: -1000px;"),e.value=i,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}var hm=0,Xe=class{constructor(e,t){this.from=e,this.to=t}},Y=class{constructor(e={}){this.id=hm++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=ie.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};Y.closedBy=new Y({deserialize:i=>i.split(" ")});Y.openedBy=new Y({deserialize:i=>i.split(" ")});Y.group=new Y({deserialize:i=>i.split(" ")});Y.isolate=new Y({deserialize:i=>{if(i&&i!="rtl"&&i!="ltr"&&i!="auto")throw new RangeError("Invalid value for isolate: "+i);return i||"auto"}});Y.contextHash=new Y({perNode:!0});Y.lookAhead=new Y({perNode:!0});Y.mounted=new Y({perNode:!0});var Ct=class{constructor(e,t,n,r=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=r}static get(e){return e&&e.props&&e.props[Y.mounted.id]}},cm=Object.create(null),ie=class i{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):cm,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new i(e.name||"",t,e.id,n);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(Y.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(" "))t[r]=e[n];return n=>{for(let r=n.prop(Y.group),s=-1;s<(r?r.length:0);s++){let o=t[s<0?n.name:r[s]];if(o)return o}}}};ie.none=new ie("",Object.create(null),0,8);var yt=class i{constructor(e){this.types=e;for(let t=0;t0;for(let a=this.cursor(o|A.IncludeAnonymous);;){let l=!1;if(a.from<=s&&a.to>=r&&(!O&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;l=!0}for(;l&&n&&(O||!a.type.isAnonymous)&&n(a),!a.nextSibling();){if(!a.parent())return;l=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:tO(ie.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new i(this.type,t,n,r,this.propValues),e.makeTree||((t,n,r)=>new i(ie.none,t,n,r)))}static build(e){return um(e)}};_.empty=new _(ie.none,[],[],0);var Go=class i{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new i(this.buffer,this.index)}},qt=class i{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return ie.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return O}slice(e,t,n){let r=this.buffer,s=new Uint16Array(t-e),o=0;for(let O=e,a=0;O=e&&te;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function mn(i,e,t,n){for(var r;i.from==i.to||(t<1?i.from>=e:i.from>e)||(t>-1?i.to<=e:i.to0?O.length:-1;e!=l;e+=t){let h=O[e],c=a[e]+o.from,f;if(!(!(s&A.EnterBracketed&&h instanceof _&&(f=Ct.get(h))&&!f.overlay&&f.bracketed&&n>=c&&n<=c+h.length)&&!oc(r,n,c,c+h.length))){if(h instanceof qt){if(s&A.ExcludeBuffers)continue;let d=h.findChild(0,h.buffer.length,t,n-c,r);if(d>-1)return new Oi(new Bo(o,h,e,c),null,d)}else if(s&A.IncludeAnonymous||!h.type.isAnonymous||eO(h)){let d;if(!(s&A.IgnoreMounts)&&(d=Ct.get(h))&&!d.overlay)return new i(d.tree,c,e,o);let $=new i(h,c,e,o);return s&A.IncludeAnonymous||!$.type.isAnonymous?$:$.nextChild(t<0?h.children.length-1:0,t,n,r,s)}}}if(s&A.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,n=0){let r;if(!(n&A.IgnoreOverlays)&&(r=Ct.get(this._tree))&&r.overlay){let s=e-this.from,o=n&A.EnterBracketed&&r.bracketed;for(let{from:O,to:a}of r.overlay)if((t>0||o?O<=s:O=s:a>s))return new i(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function ec(i,e,t,n){let r=i.cursor(),s=[];if(!r.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=r.type.is(t),!r.nextSibling())return s}for(;;){if(n!=null&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return n==null?s:[]}}function Io(i,e,t=e.length-1){for(let n=i;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var Bo=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},Oi=class i extends zr{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new i(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,n=0){if(n&A.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new i(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new i(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new i(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,s=n.buffer[this.index+3];if(s>r){let o=n.buffer[this.index+1];e.push(n.slice(r,s,o)),t.push(0)}return new _(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Oc(i){if(!i.length)return null;let e=0,t=i[0];for(let s=1;st.from||o.to=e){let O=new ve(o.tree,o.overlay[0].from+s.from,-1,s);(r||(r=[n])).push(mn(O,e,t,!1))}}return r?Oc(r):n}var qi=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~A.EnterBracketed,e instanceof ve)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof ve?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&A.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&A.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&A.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let r=n<0?0:this.stack[n]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(r)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index-1)for(let s=t+e,o=e<0?-1:n._tree.children.length;s!=o;s+=e){let O=n._tree.children[s];if(this.mode&A.IncludeAnonymous||O instanceof qt||!O.type.isAnonymous||eO(O))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,n=s+1;break e}r=this.stack[--s]}for(let r=n;r=0;s--){if(s<0)return Io(this._tree,e,r);let o=n[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}};function eO(i){return i.children.some(e=>e instanceof qt||!e.type.isAnonymous||eO(e))}function um(i){var e;let{buffer:t,nodeSet:n,maxBufferLength:r=1024,reused:s=[],minRepeatType:o=n.types.length}=i,O=Array.isArray(t)?new Go(t,t.length):t,a=n.types,l=0,h=0;function c(b,x,w,W,U,N){let{id:C,start:V,end:I,size:E}=O,K=h,me=l;if(E<0)if(O.next(),E==-1){let dt=s[C];w.push(dt),W.push(V-b);return}else if(E==-3){l=C;return}else if(E==-4){h=C;return}else throw new RangeError(`Unrecognized record size: ${E}`);let Ze=a[C],st,ae,Ue=V-b;if(I-V<=r&&(ae=m(O.pos-x,U))){let dt=new Uint16Array(ae.size-ae.skip),Ae=O.pos-ae.size,ot=dt.length;for(;O.pos>Ae;)ot=g(ae.start,dt,ot);st=new qt(dt,I-ae.start,n),Ue=ae.start-b}else{let dt=O.pos-E;O.next();let Ae=[],ot=[],Nt=C>=o?C:-1,gi=0,Mn=I;for(;O.pos>dt;)Nt>=0&&O.id==Nt&&O.size>=0?(O.end<=Mn-r&&($(Ae,ot,V,gi,O.end,Mn,Nt,K,me),gi=Ae.length,Mn=O.end),O.next()):N>2500?f(V,dt,Ae,ot):c(V,dt,Ae,ot,Nt,N+1);if(Nt>=0&&gi>0&&gi-1&&gi>0){let Ga=d(Ze,me);st=tO(Ze,Ae,ot,0,Ae.length,0,I-V,Ga,Ga)}else st=p(Ze,Ae,ot,I-V,K-I,me)}w.push(st),W.push(Ue)}function f(b,x,w,W){let U=[],N=0,C=-1;for(;O.pos>x;){let{id:V,start:I,end:E,size:K}=O;if(K>4)O.next();else{if(C>-1&&I=0;E-=3)V[K++]=U[E],V[K++]=U[E+1]-I,V[K++]=U[E+2]-I,V[K++]=K;w.push(new qt(V,U[2]-I,n)),W.push(I-b)}}function d(b,x){return(w,W,U)=>{let N=0,C=w.length-1,V,I;if(C>=0&&(V=w[C])instanceof _){if(!C&&V.type==b&&V.length==U)return V;(I=V.prop(Y.lookAhead))&&(N=W[C]+V.length+I)}return p(b,w,W,U,N,x)}}function $(b,x,w,W,U,N,C,V,I){let E=[],K=[];for(;b.length>W;)E.push(b.pop()),K.push(x.pop()+w-U);b.push(p(n.types[C],E,K,N-U,V-N,I)),x.push(U-w)}function p(b,x,w,W,U,N,C){if(N){let V=[Y.contextHash,N];C=C?[V].concat(C):[V]}if(U>25){let V=[Y.lookAhead,U];C=C?[V].concat(C):[V]}return new _(b,x,w,W,C)}function m(b,x){let w=O.fork(),W=0,U=0,N=0,C=w.end-r,V={size:0,start:0,skip:0};e:for(let I=w.pos-b;w.pos>I;){let E=w.size;if(w.id==x&&E>=0){V.size=W,V.start=U,V.skip=N,N+=4,W+=4,w.next();continue}let K=w.pos-E;if(E<0||K=o?4:0,Ze=w.start;for(w.next();w.pos>K;){if(w.size<0)if(w.size==-3||w.size==-4)me+=4;else break e;else w.id>=o&&(me+=4);w.next()}U=Ze,W+=E,N+=me}return(x<0||W==b)&&(V.size=W,V.start=U,V.skip=N),V.size>4?V:void 0}function g(b,x,w){let{id:W,start:U,end:N,size:C}=O;if(O.next(),C>=0&&W4){let I=O.pos-(C-4);for(;O.pos>I;)w=g(b,x,w)}x[--w]=V,x[--w]=N-b,x[--w]=U-b,x[--w]=W}else C==-3?l=W:C==-4&&(h=W);return w}let P=[],S=[];for(;O.pos>0;)c(i.start||0,i.bufferStart||0,P,S,-1,0);let z=(e=i.length)!==null&&e!==void 0?e:P.length?S[0]+P[0].length:0;return new _(a[i.topID],P.reverse(),S.reverse(),z)}var tc=new WeakMap;function Yr(i,e){if(!i.isAnonymous||e instanceof qt||e.type!=i)return 1;let t=tc.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=i||!(n instanceof _)){t=1;break}t+=Yr(i,n)}tc.set(e,t)}return t}function tO(i,e,t,n,r,s,o,O,a){let l=0;for(let $=n;$=h)break;x+=w}if(S==z+1){if(x>h){let w=$[z];d(w.children,w.positions,0,w.children.length,p[z]+P);continue}c.push($[z])}else{let w=p[S-1]+$[S-1].length-b;c.push(tO(i,$,p,z,S,b,w,null,a))}f.push(b+P-s)}}return d(e,t,n,r,0),(O||a)(c,f,o)}var Ui=class{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof Oi?this.setBuffer(e.context.buffer,e.index,t):e instanceof ve&&this.map.set(e.tree,t)}get(e){return e instanceof Oi?this.getBuffer(e.context.buffer,e.index):e instanceof ve?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},bt=class i{constructor(e,t,n,r,s=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let r=[new i(0,e.length,e,0,!1,n)];for(let s of t)s.to>e.length&&r.push(s);return r}static applyChanges(e,t,n=128){if(!t.length)return e;let r=[],s=1,o=e.length?e[0]:null;for(let O=0,a=0,l=0;;O++){let h=O=n)for(;o&&o.from=f.from||c<=f.to||l){let d=Math.max(f.from,a)-l,$=Math.min(f.to,c)-l;f=d>=$?null:new i(d,$,f.tree,f.offset+l,O>0,!!h)}if(f&&r.push(f),o.to>c)break;o=snew Xe(r.from,r.to)):[new Xe(0,0)]:[new Xe(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let s=r.advance();if(s)return s}}},No=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function Ai(i){return(e,t,n,r)=>new Ko(e,i,t,n,r)}var Vr=class{constructor(e,t,n,r,s,o){this.parser=e,this.parse=t,this.overlay=n,this.bracketed=r,this.target=s,this.from=o}};function ic(i){if(!i.length||i.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(i))}var Fo=class{constructor(e,t,n,r,s,o,O,a){this.parser=e,this.predicate=t,this.mounts=n,this.index=r,this.start=s,this.bracketed=o,this.target=O,this.prev=a,this.depth=0,this.ranges=[]}},Ho=new Y({perNode:!0}),Ko=class{constructor(e,t,n,r,s){this.nest=t,this.input=n,this.fragments=r,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let n=this.baseParse.advance();if(!n)return null;if(this.baseParse=null,this.baseTree=n,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let n=this.baseTree;return this.stoppedAt!=null&&(n=new _(n.type,n.children,n.positions,n.length,n.propValues.concat([[Ho,this.stoppedAt]]))),n}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[Y.mounted.id]=new Ct(t,e.overlay,e.parser,e.bracketed),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)O=!1;else if(e.hasNode(r)){if(t){let l=t.mounts.find(h=>h.frag.from<=r.from&&h.frag.to>=r.to&&h.mount.overlay);if(l)for(let h of l.mount.overlay){let c=h.from+l.pos,f=h.to+l.pos;c>=r.from&&f<=r.to&&!t.ranges.some(d=>d.fromc)&&t.ranges.push({from:c,to:f})}}O=!1}else if(n&&(o=dm(n.ranges,r.from,r.to)))O=o!=2;else if(!r.type.isAnonymous&&(s=this.nest(r,this.input))&&(r.fromnew Xe(c.from-r.from,c.to-r.from)):null,!!s.bracketed,r.tree,h.length?h[0].from:r.from)),s.overlay?h.length&&(n={ranges:h,depth:0,prev:n}):O=!1}}else if(t&&(a=t.predicate(r))&&(a===!0&&(a=new Xe(r.from,r.to)),a.from=0&&t.ranges[l].to==a.from?t.ranges[l]={from:t.ranges[l].from,to:a.to}:t.ranges.push(a)}if(O&&r.firstChild())t&&t.depth++,n&&n.depth++;else for(;!r.nextSibling();){if(!r.parent())break e;if(t&&!--t.depth){let l=rc(this.ranges,t.ranges);l.length&&(ic(l),this.inner.splice(t.index,0,new Vr(t.parser,t.parser.startParse(this.input,sc(t.mounts,l),l),t.ranges.map(h=>new Xe(h.from-t.start,h.to-t.start)),t.bracketed,t.target,l[0].from))),t=t.prev}n&&!--n.depth&&(n=n.prev)}}}};function dm(i,e,t){for(let n of i){if(n.from>=t)break;if(n.to>e)return n.from<=e&&n.to>=t?2:1}return 0}function nc(i,e,t,n,r,s){if(e=e&&t.enter(n,1,A.IgnoreOverlays|A.ExcludeBuffers)))if(t.to<=e)t.next(!1)||(this.done=!0);else break}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof _)t=t.children[0];else break}return!1}},Jo=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=(t=n.tree.prop(Ho))!==null&&t!==void 0?t:n.to,this.inner=new _r(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Ho))!==null&&e!==void 0?e:t.to,this.inner=new _r(t.tree,-t.offset)}}findMounts(e,t){var n;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(n=s.tree)===null||n===void 0?void 0:n.prop(Y.mounted);if(o&&o.parser==t)for(let O=this.fragI;O=s.to)break;a.tree==this.curFrag.tree&&r.push({frag:a,pos:s.from-a.offset,mount:o})}}}return r}};function rc(i,e){let t=null,n=e;for(let r=1,s=0;r=O)break;a.to<=o||(t||(n=t=e.slice()),a.fromO&&t.splice(s+1,0,new Xe(O,a.to))):a.to>O?t[s--]=new Xe(O,a.to):t.splice(s--,1))}}return n}function pm(i,e,t,n){let r=0,s=0,o=!1,O=!1,a=-1e9,l=[];for(;;){let h=r==i.length?1e9:o?i[r].to:i[r].from,c=s==e.length?1e9:O?e[s].to:e[s].from;if(o!=O){let f=Math.max(a,t),d=Math.min(h,c,n);fnew Xe(f.from+n,f.to+n)),c=pm(e,h,a,l);for(let f=0,d=a;;f++){let $=f==c.length,p=$?l:c[f].from;if(p>d&&t.push(new bt(d,p,r.tree,-o,s.from>=d||s.openStart,s.to<=p||s.openEnd)),$)break;d=c[f].to}}else t.push(new bt(a,l,r.tree,-o,s.from>=o||s.openStart,s.to<=O||s.openEnd))}return t}var mm=0,Ve=class i{constructor(e,t,n,r){this.name=e,this.set=t,this.base=n,this.modified=r,this.id=mm++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof i&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let r=new i(n,[],null,[]);if(r.set.push(r),t)for(let s of t.set)r.set.push(s);return r}static defineModifier(e){let t=new Ar(e);return n=>n.modified.indexOf(t)>-1?n:Ar.get(n.base||n,n.modified.concat(t).sort((r,s)=>r.id-s.id))}},gm=0,Ar=class i{constructor(e){this.name=e,this.instances=[],this.id=gm++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(O=>O.base==e&&Qm(t,O.modified));if(n)return n;let r=[],s=new Ve(e.name,r,e,t);for(let O of t)O.instances.push(s);let o=Sm(t);for(let O of e.set)if(!O.modified.length)for(let a of o)r.push(i.get(O,a));return s}};function Qm(i,e){return i.length==e.length&&i.every((t,n)=>t==e[n])}function Sm(i){let e=[[]];for(let t=0;tn.length-t.length)}function se(i){let e=Object.create(null);for(let t in i){let n=i[t];Array.isArray(n)||(n=[n]);for(let r of t.split(" "))if(r){let s=[],o=2,O=r;for(let c=0;;){if(O=="..."&&c>0&&c+3==r.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(O);if(!f)throw new RangeError("Invalid path: "+r);if(s.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),c+=f[0].length,c==r.length)break;let d=r[c++];if(c==r.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+r);O=r.slice(c)}let a=s.length-1,l=s[a];if(!l)throw new RangeError("Invalid path: "+r);let h=new li(n,o,a>0?s.slice(0,a):null);e[l]=h.sort(e[l])}}return hc.add(e)}var hc=new Y({combine(i,e){let t,n,r;for(;i||e;){if(!i||e&&i.depth>=e.depth?(r=e,e=e.next):(r=i,i=i.next),t&&t.mode==r.mode&&!r.context&&!t.context)continue;let s=new li(r.tags,r.mode,r.context);t?t.next=s:n=s,t=s}return n}}),li=class{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=r;for(let O of s)for(let a of O.set){let l=t[a.id];if(l){o=o?o+" "+l:l;break}}return o},scope:n}}function Pm(i,e){let t=null;for(let n of i){let r=n.style(e);r&&(t=t?t+" "+r:r)}return t}function cc(i,e,t,n=0,r=i.length){let s=new nO(n,Array.isArray(e)?e:[e],t);s.highlightRange(i.cursor(),n,r,"",s.highlighters),s.flush(r)}var nO=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,s){let{type:o,from:O,to:a}=e;if(O>=n||a<=t)return;o.isTop&&(s=this.highlighters.filter(d=>!d.scope||d.scope(o)));let l=r,h=ym(e)||li.empty,c=Pm(s,h.tags);if(c&&(l&&(l+=" "),l+=c,h.mode==1&&(r+=(r?" ":"")+c)),this.startSpan(Math.max(t,O),l),h.opaque)return;let f=e.tree&&e.tree.prop(Y.mounted);if(f&&f.overlay){let d=e.node.enter(f.overlay[0].from+O,1),$=this.highlighters.filter(m=>!m.scope||m.scope(f.tree.type)),p=e.firstChild();for(let m=0,g=O;;m++){let P=m=S||!e.nextSibling())););if(!P||S>n)break;g=P.to+O,g>t&&(this.highlightRange(d.cursor(),Math.max(t,P.from+O),Math.min(n,g),"",$),this.startSpan(Math.min(n,g),l))}p&&e.parent()}else if(e.firstChild()){f&&(r="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,r,s),this.startSpan(Math.min(n,e.to),l)}while(e.nextSibling());e.parent()}}};function ym(i){let e=i.type.prop(hc);for(;e&&e.context&&!i.matchContext(e.context);)e=e.next;return e||null}var T=Ve.define,Cr=T(),Ut=T(),ac=T(Ut),lc=T(Ut),At=T(),qr=T(At),iO=T(At),ut=T(),ai=T(ut),ct=T(),ft=T(),rO=T(),gn=T(rO),Ur=T(),u={comment:Cr,lineComment:T(Cr),blockComment:T(Cr),docComment:T(Cr),name:Ut,variableName:T(Ut),typeName:ac,tagName:T(ac),propertyName:lc,attributeName:T(lc),className:T(Ut),labelName:T(Ut),namespace:T(Ut),macroName:T(Ut),literal:At,string:qr,docString:T(qr),character:T(qr),attributeValue:T(qr),number:iO,integer:T(iO),float:T(iO),bool:T(At),regexp:T(At),escape:T(At),color:T(At),url:T(At),keyword:ct,self:T(ct),null:T(ct),atom:T(ct),unit:T(ct),modifier:T(ct),operatorKeyword:T(ct),controlKeyword:T(ct),definitionKeyword:T(ct),moduleKeyword:T(ct),operator:ft,derefOperator:T(ft),arithmeticOperator:T(ft),logicOperator:T(ft),bitwiseOperator:T(ft),compareOperator:T(ft),updateOperator:T(ft),definitionOperator:T(ft),typeOperator:T(ft),controlOperator:T(ft),punctuation:rO,separator:T(rO),bracket:gn,angleBracket:T(gn),squareBracket:T(gn),paren:T(gn),brace:T(gn),content:ut,heading:ai,heading1:T(ai),heading2:T(ai),heading3:T(ai),heading4:T(ai),heading5:T(ai),heading6:T(ai),contentSeparator:T(ut),list:T(ut),quote:T(ut),emphasis:T(ut),strong:T(ut),link:T(ut),monospace:T(ut),strikethrough:T(ut),inserted:T(),deleted:T(),changed:T(),invalid:T(),meta:Ur,documentMeta:T(Ur),annotation:T(Ur),processingInstruction:T(Ur),definition:Ve.defineModifier("definition"),constant:Ve.defineModifier("constant"),function:Ve.defineModifier("function"),standard:Ve.defineModifier("standard"),local:Ve.defineModifier("local"),special:Ve.defineModifier("special")};for(let i in u){let e=u[i];e instanceof Ve&&(e.name=i)}var _y=sO([{tag:u.link,class:"tok-link"},{tag:u.heading,class:"tok-heading"},{tag:u.emphasis,class:"tok-emphasis"},{tag:u.strong,class:"tok-strong"},{tag:u.keyword,class:"tok-keyword"},{tag:u.atom,class:"tok-atom"},{tag:u.bool,class:"tok-bool"},{tag:u.url,class:"tok-url"},{tag:u.labelName,class:"tok-labelName"},{tag:u.inserted,class:"tok-inserted"},{tag:u.deleted,class:"tok-deleted"},{tag:u.literal,class:"tok-literal"},{tag:u.string,class:"tok-string"},{tag:u.number,class:"tok-number"},{tag:[u.regexp,u.escape,u.special(u.string)],class:"tok-string2"},{tag:u.variableName,class:"tok-variableName"},{tag:u.local(u.variableName),class:"tok-variableName tok-local"},{tag:u.definition(u.variableName),class:"tok-variableName tok-definition"},{tag:u.special(u.variableName),class:"tok-variableName2"},{tag:u.definition(u.propertyName),class:"tok-propertyName tok-definition"},{tag:u.typeName,class:"tok-typeName"},{tag:u.namespace,class:"tok-namespace"},{tag:u.className,class:"tok-className"},{tag:u.macroName,class:"tok-macroName"},{tag:u.propertyName,class:"tok-propertyName"},{tag:u.operator,class:"tok-operator"},{tag:u.comment,class:"tok-comment"},{tag:u.meta,class:"tok-meta"},{tag:u.invalid,class:"tok-invalid"},{tag:u.punctuation,class:"tok-punctuation"}]);var oO,wt=new Y;function Wi(i){return v.define({combine:i?e=>e.concat(i):void 0})}var Er=new Y,fe=class{constructor(e,t,n=[],r=""){this.data=e,this.name=r,D.prototype.hasOwnProperty("tree")||Object.defineProperty(D.prototype,"tree",{get(){return L(this)}}),this.parser=t,this.extension=[ji.of(this),D.languageData.of((s,o,O)=>{let a=fc(s,o,O),l=a.type.prop(wt);if(!l)return[];let h=s.facet(l),c=a.type.prop(Er);if(c){let f=a.resolve(o-a.from,O);for(let d of c)if(d.test(f,s)){let $=s.facet(d.facet);return d.type=="replace"?$:$.concat(h)}}return h})].concat(n)}isActiveAt(e,t,n=-1){return fc(e,t,n).type.prop(wt)==this.data}findRegions(e){let t=e.facet(ji);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],r=(s,o)=>{if(s.prop(wt)==this.data){n.push({from:o,to:o+s.length});return}let O=s.prop(Y.mounted);if(O){if(O.tree.prop(wt)==this.data){if(O.overlay)for(let a of O.overlay)n.push({from:a.from+o,to:a.to+o});else n.push({from:o,to:o+s.length});return}else if(O.overlay){let a=n.length;if(r(O.tree,O.overlay[0].from+o),n.length>a)return}}for(let a=0;an.isTop?t:void 0)]}),e.name)}configure(e,t){return new i(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function L(i){let e=i.field(fe.state,!1);return e?e.tree:_.empty}var hO=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}},Qn=null,hi=class i{constructor(e,t,n=[],r,s,o,O,a){this.parser=e,this.state=t,this.fragments=n,this.tree=r,this.treeLen=s,this.viewport=o,this.skipped=O,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new i(e,t,[],_.empty,0,n,[],null)}startParse(){return this.parser.startParse(new hO(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=_.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(bt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Qn;Qn=this;try{return e()}finally{Qn=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=uc(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:o,skipped:O}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((l,h,c,f)=>a.push({fromA:l,toA:h,fromB:c,toB:f})),n=bt.applyChanges(n,a),r=_.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){O=[];for(let l of this.skipped){let h=e.mapPos(l.from,1),c=e.mapPos(l.to,-1);he.from&&(this.fragments=uc(this.fragments,r,s),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Tt{createParse(t,n,r){let s=r[0].from,o=r[r.length-1].to;return{parsedPos:s,advance(){let a=Qn;if(a){for(let l of r)a.tempSkipped.push(l);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=o,new _(ie.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Qn}};function uc(i,e,t){return bt.applyChanges(i,[{fromA:e,toA:t,fromB:e,toB:t}])}var Sn=class i{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new i(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=hi.create(e.facet(ji).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new i(n)}};fe.state=Te.define({create:Sn.init,update(i,e){for(let t of e.effects)if(t.is(fe.setState))return t.value;return e.startState.facet(ji)!=e.state.facet(ji)?Sn.init(e.state):i.apply(e)}});var Qc=i=>{let e=setTimeout(()=>i(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Qc=i=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(i,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var OO=typeof navigator<"u"&&(!((oO=navigator.scheduling)===null||oO===void 0)&&oO.isInputPending)?()=>navigator.scheduling.isInputPending():null,bm=ze.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(fe.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(fe.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Qc(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,a=s.context.work(()=>OO&&OO()||Date.now()>o,r+(O?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:fe.setState.of(new Sn(s.context))})),this.chunkBudget>0&&!(a&&!O)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>Ie(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),ji=v.define({combine(i){return i.length?i[0]:null},enables:i=>[fe.state,bm,X.contentAttributes.compute([i],e=>{let t=e.facet(i);return t&&t.name?{"data-language":t.name}:{}})]}),oe=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}},Pn=class i{constructor(e,t,n,r,s,o=void 0){this.name=e,this.alias=t,this.extensions=n,this.filename=r,this.loadFunc=s,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:n}=e;if(!t){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(n)}return new i(e.name,(e.alias||[]).concat(e.name).map(r=>r.toLowerCase()),e.extensions||[],e.filename,t,n)}static matchFilename(e,t){for(let r of e)if(r.filename&&r.filename.test(t))return r;let n=/\.([^.]+)$/.exec(t);if(n){for(let r of e)if(r.extensions.indexOf(n[1])>-1)return r}return null}static matchLanguageName(e,t,n=!0){t=t.toLowerCase();for(let r of e)if(r.alias.some(s=>s==t))return r;if(n)for(let r of e)for(let s of r.alias){let o=t.indexOf(s);if(o>-1&&(s.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+s.length])))return r}return null}},Tm=v.define(),Wt=v.define({combine:i=>{if(!i.length)return" ";let e=i[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(i[0]));return e}});function jt(i){let e=i.facet(Wt);return e.charCodeAt(0)==9?i.tabSize*e.length:e.length}function bn(i,e){let t="",n=i.tabSize,r=i.facet(Wt)[0];if(r==" "){for(;e>=n;)t+=" ",e-=n;r=" "}for(let s=0;s=e?wm(i,t,e):null}var ci=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=jt(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:s}=this.options;return r!=null&&r>=n.from&&r<=n.to?s&&r==e?{text:"",from:e}:(t<0?r-1&&(s+=o-this.countColumn(n,n.search(/\S|$/))),s}countColumn(e,t=e.length){return xe(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:r}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(r);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},de=new Y;function wm(i,e,t){let n=e.resolveStack(t),r=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(r!=n.node){let s=[];for(let o=r;o&&!(o.fromn.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)n={node:s[o],next:n}}return Sc(n,i,t)}function Sc(i,e,t){for(let n=i;n;n=n.next){let r=km(n.node);if(r)return r(cO.create(e,t,n))}return 0}function xm(i){return i.pos==i.options.simulateBreak&&i.options.simulateDoubleBreak}function km(i){let e=i.type.prop(de);if(e)return e;let t=i.firstChild,n;if(t&&(n=t.type.prop(Y.closedBy))){let r=i.lastChild,s=r&&n.indexOf(r.name)>-1;return o=>Pc(o,!0,1,void 0,s&&!xm(o)?r.from:void 0)}return i.parent==null?Xm:null}function Xm(){return 0}var cO=class i extends ci{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new i(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(vm(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return Sc(this.context.next,this.base,this.pos)}};function vm(i,e){for(let t=e;t;t=t.parent)if(i==t)return!0;return!1}function Zm(i){let e=i.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let r=i.options.simulateBreak,s=i.state.doc.lineAt(t.from),o=r==null||r<=s.from?s.to:Math.min(s.to,r);for(let O=t.to;;){let a=e.childAfter(O);if(!a||a==n)return null;if(!a.type.isSkipped){if(a.from>=o)return null;let l=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+l}}O=a.to}}function Lr({closing:i,align:e=!0,units:t=1}){return n=>Pc(n,e,t,i)}function Pc(i,e,t,n,r){let s=i.textAfter,o=s.match(/^\s*/)[0].length,O=n&&s.slice(o,o+n.length)==n||r==i.pos+o,a=e?Zm(i):null;return a?O?i.column(a.from):i.column(a.to):i.baseIndent+(O?0:i.unit*t)}var yc=i=>i.baseIndent;function _e({except:i,units:e=1}={}){return t=>{let n=i&&i.test(t.textAfter);return t.baseIndent+(n?0:e*t.unit)}}var bc=v.define(),Pe=new Y;function Mt(i){let e=i.firstChild,t=i.lastChild;return e&&e.toO.prop(wt)==o.data:o?O=>O==o:void 0,this.style=sO(e.map(O=>({tag:O.tag,class:O.class||r(Object.assign({},O,{tag:null}))})),{all:s}).style,this.module=n?new Me(n):null,this.themeType=t.themeType}static define(e,t){return new i(e,t||{})}},fO=v.define(),Tc=v.define({combine(i){return i.length?[i[0]]:null}});function aO(i){let e=i.facet(fO);return e.length?e:i.facet(Tc)}function gO(i,e){let t=[Rm],n;return i instanceof xt&&(i.module&&t.push(X.styleModule.of(i.module)),n=i.themeType),e?.fallback?t.push(Tc.of(i)):n?t.push(fO.computeN([X.darkTheme],r=>r.facet(X.darkTheme)==(n=="dark")?[i]:[])):t.push(fO.of(i)),t}var uO=class{constructor(e){this.markCache=Object.create(null),this.tree=L(e.state),this.decorations=this.buildDeco(e,aO(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=L(e.state),n=aO(e.state),r=n!=aO(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return M.none;let n=new Zt;for(let{from:r,to:s}of e.visibleRanges)cc(this.tree,t,(o,O,a)=>{n.add(o,O,this.markCache[a]||(this.markCache[a]=M.mark({class:a})))},r,s);return n.finish()}},Rm=Ot.high(ze.fromClass(uO,{decorations:i=>i.decorations})),Ly=xt.define([{tag:u.meta,color:"#404740"},{tag:u.link,textDecoration:"underline"},{tag:u.heading,textDecoration:"underline",fontWeight:"bold"},{tag:u.emphasis,fontStyle:"italic"},{tag:u.strong,fontWeight:"bold"},{tag:u.strikethrough,textDecoration:"line-through"},{tag:u.keyword,color:"#708"},{tag:[u.atom,u.bool,u.url,u.contentSeparator,u.labelName],color:"#219"},{tag:[u.literal,u.inserted],color:"#164"},{tag:[u.string,u.deleted],color:"#a11"},{tag:[u.regexp,u.escape,u.special(u.string)],color:"#e40"},{tag:u.definition(u.variableName),color:"#00f"},{tag:u.local(u.variableName),color:"#30a"},{tag:[u.typeName,u.namespace],color:"#085"},{tag:u.className,color:"#167"},{tag:[u.special(u.variableName),u.macroName],color:"#256"},{tag:u.definition(u.propertyName),color:"#00c"},{tag:u.comment,color:"#940"},{tag:u.invalid,color:"#f00"}]),Ym=X.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),wc=1e4,xc="()[]{}",kc=v.define({combine(i){return Rt(i,{afterCursor:!0,brackets:xc,maxScanDistance:wc,renderMatch:_m})}}),zm=M.mark({class:"cm-matchingBracket"}),Vm=M.mark({class:"cm-nonmatchingBracket"});function _m(i){let e=[],t=i.matched?zm:Vm;return e.push(t.range(i.start.from,i.start.to)),i.end&&e.push(t.range(i.end.from,i.end.to)),e}function dc(i){let e=[],t=i.facet(kc);for(let n of i.selection.ranges){if(!n.empty)continue;let r=et(i,n.head,-1,t)||n.head>0&&et(i,n.head-1,1,t)||t.afterCursor&&(et(i,n.head,1,t)||n.headi.decorations}),qm=[Cm,Ym];function Xc(i={}){return[kc.of(i),qm]}var Tn=new Y;function dO(i,e,t){let n=i.prop(e<0?Y.openedBy:Y.closedBy);if(n)return n;if(i.name.length==1){let r=t.indexOf(i.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}function $O(i){let e=i.type.prop(Tn);return e?e(i.node):i}function et(i,e,t,n={}){let r=n.maxScanDistance||wc,s=n.brackets||xc,o=L(i),O=o.resolveInner(e,t);for(let a=O;a;a=a.parent){let l=dO(a.type,t,s);if(l&&a.from0?e>=h.from&&eh.from&&e<=h.to))return Um(i,e,t,a,h,l,s)}}return Am(i,e,t,o,O.type,r,s)}function Um(i,e,t,n,r,s,o){let O=n.parent,a={from:r.from,to:r.to},l=0,h=O?.cursor();if(h&&(t<0?h.childBefore(n.from):h.childAfter(n.to)))do if(t<0?h.to<=n.from:h.from>=n.to){if(l==0&&s.indexOf(h.type.name)>-1&&h.from0)return null;let l={from:t<0?e-1:e,to:t>0?e+1:e},h=i.doc.iterRange(e,t>0?i.doc.length:0),c=0;for(let f=0;!h.next().done&&f<=s;){let d=h.value;t<0&&(f+=d.length);let $=e+f*t;for(let p=t>0?0:d.length-1,m=t>0?d.length:-1;p!=m;p+=t){let g=o.indexOf(d[p]);if(!(g<0||n.resolveInner($+p,1).type!=r))if(g%2==0==t>0)c++;else{if(c==1)return{start:l,end:{from:$+p,to:$+p+1},matched:g>>1==a>>1};c--}}t>0&&(f+=d.length)}return h.done?{start:l,matched:!1}:null}function $c(i,e,t,n=0,r=0){e==null&&(e=i.search(/[^\s\u00a0]/),e==-1&&(e=i.length));let s=r;for(let o=n;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosn?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return r(s)==r(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}}current(){return this.string.slice(this.start,this.pos)}};function jm(i){return{name:i.name||"",token:i.token,blankLine:i.blankLine||(()=>{}),startState:i.startState||(()=>!0),copyState:i.copyState||Wm,indent:i.indent||(()=>null),languageData:i.languageData||{},tokenTable:i.tokenTable||SO,mergeTokens:i.mergeTokens!==!1}}function Wm(i){if(typeof i!="object")return i;let e={};for(let t in i){let n=i[t];e[t]=n instanceof Array?n.slice():n}return e}var pc=new WeakMap,Wr=class i extends fe{constructor(e){let t=Wi(e.languageData),n=jm(e),r,s=new class extends Tt{createParse(o,O,a){return new pO(r,o,O,a)}};super(t,s,[],e.name),this.topNode=Gm(t,this),r=this,this.streamParser=n,this.stateAfter=new Y({perNode:!0}),this.tokenTable=e.tokenTable?new Mr(n.tokenTable):Lm}static define(e){return new i(e)}getIndent(e){let t,{overrideIndentation:n}=e.options;n&&(t=pc.get(e.state),t!=null&&t1e4)return null;for(;s=n&&t+e.length<=r&&e.prop(i.stateAfter);if(s)return{state:i.streamParser.copyState(s),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let O=e.children[o],a=t+e.positions[o],l=O instanceof _&&a=e.length)return e;!r&&t==0&&e.type==i.topNode&&(r=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],O=e.children[s],a;if(ot&&QO(i,s.tree,0-s.offset,t,O),l;if(a&&a.pos<=n&&(l=vc(i,s.tree,t+s.offset,a.pos+s.offset,!1)))return{state:a.state,tree:l}}return{state:i.streamParser.startState(r?jt(r):4),tree:_.empty}}var pO=class{constructor(e,t,n,r){this.lang=e,this.input=t,this.fragments=n,this.ranges=r,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=r[r.length-1].to;let s=hi.get(),o=r[0].from,{state:O,tree:a}=Mm(e,n,o,this.to,s?.state);this.state=O,this.parsedPos=this.chunkStart=o+a.length;for(let l=0;ll.from<=s.viewport.from&&l.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(jt(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=hi.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),n=Math.min(t,this.chunkStart+512);for(e&&(n=Math.min(n,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` +`&&(t="");else{let n=t.indexOf(` +`);n>-1&&(t=t.slice(0,n))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),n=e+t.length;for(let r=this.rangeIndex;;){let s=this.ranges[r].to;if(s>=n||(t=t.slice(0,s-(n-t.length)),r++,r==this.ranges.length))break;let o=this.ranges[r].from,O=this.lineAfter(o);t+=O,n=o+O.length}return{line:t,end:n}}skipGapsTo(e,t,n){for(;;){let r=this.ranges[this.rangeIndex].to,s=e+t;if(n>0?r>s:r>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-r}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){r=this.skipGapsTo(t,r,1),t+=r;let O=this.chunk.length;r=this.skipGapsTo(n,r,-1),n+=r,s+=this.chunk.length-O}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=n:this.chunk.push(e,t,n,s),r}parseLine(e){let{line:t,end:n}=this.nextLine(),r=0,{streamParser:s}=this.lang,o=new jr(t,e?e.state.tabSize:4,e?jt(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let O=Zc(s.token,o,this.state);if(O&&(r=this.emitToken(this.lang.tokenTable.resolve(O),this.parsedPos+o.start,this.parsedPos+o.pos,r)),o.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPose.start)return r}throw new Error("Stream parser failed to advance stream.")}var SO=Object.create(null),yn=[ie.none],Em=new yt(yn),mc=[],gc=Object.create(null),Rc=Object.create(null);for(let[i,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Rc[i]=Yc(SO,e);var Mr=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Rc)}resolve(e){return e?this.table[e]||(this.table[e]=Yc(this.extra,e)):0}},Lm=new Mr(SO);function lO(i,e){mc.indexOf(i)>-1||(mc.push(i),console.warn(e))}function Yc(i,e){let t=[];for(let O of e.split(" ")){let a=[];for(let l of O.split(".")){let h=i[l]||u[l];h?typeof h=="function"?a.length?a=a.map(h):lO(l,`Modifier ${l} used at start of tag`):a.length?lO(l,`Tag ${l} used as modifier`):a=Array.isArray(h)?h:[h]:lO(l,`Unknown highlighting tag ${l}`)}for(let l of a)t.push(l)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),r=n+" "+t.map(O=>O.id),s=gc[r];if(s)return s.id;let o=gc[r]=ie.define({id:yn.length,name:n,props:[se({[n]:t})]});return yn.push(o),o.id}function Gm(i,e){let t=ie.define({id:yn.length,name:"Document",props:[wt.add(()=>i),de.add(()=>n=>e.getIndent(n))],top:!0});return yn.push(t),t}var Gy={rtl:M.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:H.RTL}),ltr:M.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:H.LTR}),auto:M.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var Im=i=>{let{state:e}=i,t=e.doc.lineAt(e.selection.main.from),n=kO(i.state,t.from);return n.line?Bm(i):n.block?Nm(i):!1};function xO(i,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=i(e,t);return r?(n(t.update(r)),!0):!1}}var Bm=xO(Km,0);var Dm=xO(Wc,0);var Nm=xO((i,e)=>Wc(i,e,Hm(e)),0);function kO(i,e){let t=i.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var wn=50;function Fm(i,{open:e,close:t},n,r){let s=i.sliceDoc(n-wn,n),o=i.sliceDoc(r,r+wn),O=/\s*$/.exec(s)[0].length,a=/^\s*/.exec(o)[0].length,l=s.length-O;if(s.slice(l-e.length,l)==e&&o.slice(a,a+t.length)==t)return{open:{pos:n-O,margin:O&&1},close:{pos:r+a,margin:a&&1}};let h,c;r-n<=2*wn?h=c=i.sliceDoc(n,r):(h=i.sliceDoc(n,n+wn),c=i.sliceDoc(r-wn,r));let f=/^\s*/.exec(h)[0].length,d=/\s*$/.exec(c)[0].length,$=c.length-d-t.length;return h.slice(f,f+e.length)==e&&c.slice($,$+t.length)==t?{open:{pos:n+f+e.length,margin:/\s/.test(h.charAt(f+e.length))?1:0},close:{pos:r-d-t.length,margin:/\s/.test(c.charAt($-1))?1:0}}:null}function Hm(i){let e=[];for(let t of i.selection.ranges){let n=i.doc.lineAt(t.from),r=t.to<=n.to?n:i.doc.lineAt(t.to);r.from>n.from&&r.from==t.to&&(r=t.to==n.to+1?n:i.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}function Wc(i,e,t=e.selection.ranges){let n=t.map(s=>kO(e,s.from).block);if(!n.every(s=>s))return null;let r=t.map((s,o)=>Fm(e,n[o],s.from,s.to));if(i!=2&&!r.every(s=>s))return{changes:e.changes(t.map((s,o)=>r[o]?[]:[{from:s.from,insert:n[o].open+" "},{from:s.to,insert:" "+n[o].close}]))};if(i!=1&&r.some(s=>s)){let s=[];for(let o=0,O;or&&(s==o||o>c.from)){r=c.from;let f=/^\s*/.exec(c.text)[0].length,d=f==c.length,$=c.text.slice(f,f+l.length)==l?f:-1;fs.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:O,token:a,indent:l,empty:h,single:c}of n)(c||!h)&&s.push({from:O.from+l,insert:a+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:O,token:a}of n)if(O>=0){let l=o.from+O,h=l+a.length;o.text[h-o.from]==" "&&h++,s.push({from:l,to:h})}return{changes:s}}return null}var yO=we.define(),Jm=we.define(),eg=v.define(),Mc=v.define({combine(i){return Rt(i,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),Ec=Te.define({create(){return fi.empty},update(i,e){let t=e.state.facet(Mc),n=e.annotation(yO);if(n){let a=tt.fromTransaction(e,n.selection),l=n.side,h=l==0?i.undone:i.done;return a?h=Ir(h,h.length,t.minDepth,a):h=Bc(h,e.startState.selection),new fi(l==0?n.rest:h,l==0?h:n.rest)}let r=e.annotation(Jm);if((r=="full"||r=="before")&&(i=i.isolate()),e.annotation(ne.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let s=tt.fromTransaction(e),o=e.annotation(ne.time),O=e.annotation(ne.userEvent);return s?i=i.addChanges(s,o,O,t,e):e.selection&&(i=i.addSelection(e.startState.selection,o,O,t.newGroupDelay)),(r=="full"||r=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new fi(i.done.map(tt.fromJSON),i.undone.map(tt.fromJSON))}});function Lc(i={}){return[Ec,Mc.of(i),X.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?Gc:e.inputType=="historyRedo"?bO:null;return n?(e.preventDefault(),n(t)):!1}})]}function Br(i,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let r=t.field(Ec,!1);if(!r)return!1;let s=r.pop(i,t,e);return s?(n(s),!0):!1}}var Gc=Br(0,!1),bO=Br(1,!1),tg=Br(0,!0),ig=Br(1,!0);var tt=class i{constructor(e,t,n,r,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=s}setSelAfter(e){return new i(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new i(e.changes&&ge.fromJSON(e.changes),[],e.mapped&&$t.fromJSON(e.mapped),e.startSelection&&Q.fromJSON(e.startSelection),e.selectionsAfter.map(Q.fromJSON))}static fromTransaction(e,t){let n=Be;for(let r of e.startState.facet(eg)){let s=r(e);s.length&&(n=n.concat(s))}return!n.length&&e.changes.empty?null:new i(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,Be)}static selection(e){return new i(void 0,Be,void 0,void 0,e)}};function Ir(i,e,t,n){let r=e+1>t+20?e-t-1:0,s=i.slice(r,e);return s.push(n),s}function ng(i,e){let t=[],n=!1;return i.iterChangedRanges((r,s)=>t.push(r,s)),e.iterChangedRanges((r,s,o,O)=>{for(let a=0;a=l&&o<=h&&(n=!0)}}),n}function rg(i,e){return i.ranges.length==e.ranges.length&&i.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function Ic(i,e){return i.length?e.length?i.concat(e):i:e}var Be=[],sg=200;function Bc(i,e){if(i.length){let t=i[i.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-sg));return n.length&&n[n.length-1].eq(e)?i:(n.push(e),Ir(i,i.length-1,1e9,t.setSelAfter(n)))}else return[tt.selection([e])]}function og(i){let e=i[i.length-1],t=i.slice();return t[i.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function PO(i,e){if(!i.length)return i;let t=i.length,n=Be;for(;t;){let r=Og(i[t-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let s=i.slice(0,t);return s[t-1]=r,s}else e=r.mapped,t--,n=r.selectionsAfter}return n.length?[tt.selection(n)]:Be}function Og(i,e,t){let n=Ic(i.selectionsAfter.length?i.selectionsAfter.map(O=>O.map(e)):Be,t);if(!i.changes)return tt.selection(n);let r=i.changes.map(e),s=e.mapDesc(i.changes,!0),o=i.mapped?i.mapped.composeDesc(s):s;return new tt(r,B.mapEffects(i.effects,e),o,i.startSelection.map(s),n)}var ag=/^(input\.type|delete)($|\.)/,fi=class i{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new i(this.done,this.undone):this}addChanges(e,t,n,r,s){let o=this.done,O=o[o.length-1];return O&&O.changes&&!O.changes.empty&&e.changes&&(!n||ag.test(n))&&(!O.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?i.moveByChar(t,e):Dr(t,e))}function $e(i){return i.textDirectionAt(i.state.selection.main.head)==H.LTR}var Fc=i=>Nc(i,!$e(i)),Hc=i=>Nc(i,$e(i));function Kc(i,e){return nt(i,t=>t.empty?i.moveByGroup(t,e):Dr(t,e))}var lg=i=>Kc(i,!$e(i)),hg=i=>Kc(i,$e(i));var eb=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function cg(i,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(i.sliceDoc(e.from,e.to)))||e.firstChild}function Nr(i,e,t){let n=L(i).resolveInner(e.head),r=t?Y.closedBy:Y.openedBy;for(let a=e.head;;){let l=t?n.childAfter(a):n.childBefore(a);if(!l)break;cg(i,l,r)?n=l:a=t?l.to:l.from}let s=n.type.prop(r),o,O;return s&&(o=t?et(i,n.from,1):et(i,n.to,-1))&&o.matched?O=t?o.end.to:o.end.from:O=t?n.to:n.from,Q.cursor(O,t?-1:1)}var fg=i=>nt(i,e=>Nr(i.state,e,!$e(i))),ug=i=>nt(i,e=>Nr(i.state,e,$e(i)));function Jc(i,e){return nt(i,t=>{if(!t.empty)return Dr(t,e);let n=i.moveVertically(t,e);return n.head!=t.head?n:i.moveToLineBoundary(t,e)})}var ef=i=>Jc(i,!1),tf=i=>Jc(i,!0);function nf(i){let e=i.scrollDOM.clientHeighto.empty?i.moveVertically(o,e,t.height):Dr(o,e));if(r.eq(n.selection))return!1;let s;if(t.selfScroll){let o=i.coordsAtPos(n.selection.main.head),O=i.scrollDOM.getBoundingClientRect(),a=O.top+t.marginTop,l=O.bottom-t.marginBottom;o&&o.top>a&&o.bottomrf(i,!1),TO=i=>rf(i,!0);function Et(i,e,t){let n=i.lineBlockAt(e.head),r=i.moveToLineBoundary(e,t);if(r.head==e.head&&r.head!=(t?n.to:n.from)&&(r=i.moveToLineBoundary(e,t,!1)),!t&&r.head==n.from&&n.length){let s=/^\s*/.exec(i.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;s&&e.head!=n.from+s&&(r=Q.cursor(n.from+s))}return r}var dg=i=>nt(i,e=>Et(i,e,!0)),$g=i=>nt(i,e=>Et(i,e,!1)),pg=i=>nt(i,e=>Et(i,e,!$e(i))),mg=i=>nt(i,e=>Et(i,e,$e(i))),gg=i=>nt(i,e=>Q.cursor(i.lineBlockAt(e.head).from,1)),Qg=i=>nt(i,e=>Q.cursor(i.lineBlockAt(e.head).to,-1));function Sg(i,e,t){let n=!1,r=Mi(i.selection,s=>{let o=et(i,s.head,-1)||et(i,s.head,1)||s.head>0&&et(i,s.head-1,1)||s.headSg(i,e,!1);function De(i,e,t){let n=Mi(i.state.selection,r=>{r.undirectional&&r.head>=r.anchor!=e&&(r=Q.range(r.head,r.anchor));let s=t(r);return Q.range(r.anchor,s.head,s.goalColumn,s.bidiLevel||void 0,s.assoc)});return n.eq(i.state.selection)?!1:(i.dispatch(it(i.state,n)),!0)}function sf(i,e){return De(i,e,t=>i.moveByChar(t,e))}var of=i=>sf(i,!$e(i)),Of=i=>sf(i,$e(i));function af(i,e){return De(i,e,t=>i.moveByGroup(t,e))}var yg=i=>af(i,!$e(i)),bg=i=>af(i,$e(i));var Tg=i=>{let e=!$e(i);return De(i,e,t=>Nr(i.state,t,e))},wg=i=>{let e=$e(i);return De(i,e,t=>Nr(i.state,t,e))};function lf(i,e){return De(i,e,t=>i.moveVertically(t,e))}var hf=i=>lf(i,!1),cf=i=>lf(i,!0);function ff(i,e){return De(i,e,t=>i.moveVertically(t,e,nf(i).height))}var Vc=i=>ff(i,!1),_c=i=>ff(i,!0),xg=i=>De(i,!0,e=>Et(i,e,!0)),kg=i=>De(i,!1,e=>Et(i,e,!1)),Xg=i=>{let e=!$e(i);return De(i,e,t=>Et(i,t,e))},vg=i=>{let e=$e(i);return De(i,e,t=>Et(i,t,e))},Zg=i=>De(i,!1,e=>Q.cursor(i.lineBlockAt(e.head).from)),Rg=i=>De(i,!0,e=>Q.cursor(i.lineBlockAt(e.head).to)),Cc=({state:i,dispatch:e})=>(e(it(i,{anchor:0})),!0),qc=({state:i,dispatch:e})=>(e(it(i,{anchor:i.doc.length})),!0),Uc=({state:i,dispatch:e})=>(e(it(i,{anchor:i.selection.main.anchor,head:0})),!0),Ac=({state:i,dispatch:e})=>(e(it(i,{anchor:i.selection.main.anchor,head:i.doc.length})),!0),Yg=({state:i,dispatch:e})=>(e(i.update({selection:{anchor:0,head:i.doc.length},userEvent:"select"})),!0),zg=({state:i,dispatch:e})=>{let t=Fr(i).map(({from:n,to:r})=>Q.undirectionalRange(n,Math.min(r+1,i.doc.length)));return e(i.update({selection:Q.create(t),userEvent:"select"})),!0},Vg=({state:i,dispatch:e})=>{let t=Mi(i.selection,n=>{let r=L(i),s=r.resolveStack(n.from,1);if(n.empty){let o=r.resolveStack(n.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:O}=o;if((O.from=n.to||O.to>n.to&&O.from<=n.from)&&o.next)return Q.undirectionalRange(O.from,O.to)}return n});return t.eq(i.selection)?!1:(e(it(i,t)),!0)};function uf(i,e){let{state:t}=i,n=t.selection,r=t.selection.ranges.slice();for(let s of t.selection.ranges){let o=t.doc.lineAt(s.head);if(e?o.to0)for(let O=s;;){let a=i.moveVertically(O,e);if(a.heado.to){r.some(l=>l.head==a.head)||r.push(a);break}else{if(a.head==O.head)break;O=a}}}return r.length==n.ranges.length?!1:(i.dispatch(it(t,Q.create(r,r.length-1))),!0)}var _g=i=>uf(i,!1),Cg=i=>uf(i,!0),qg=({state:i,dispatch:e})=>{let t=i.selection,n=null;return t.ranges.length>1?n=Q.create([t.main]):t.main.empty||(n=Q.create([Q.cursor(t.main.head)])),n?(e(it(i,n)),!0):!1};function xn(i,e){if(i.state.readOnly)return!1;let t="delete.selection",{state:n}=i,r=n.changeByRange(s=>{let{from:o,to:O}=s;if(o==O){let a=e(s);ao&&(t="delete.forward",a=Gr(i,a,!0)),o=Math.min(o,a),O=Math.max(O,a)}else o=Gr(i,o,!1),O=Gr(i,O,!0);return o==O?{range:s}:{changes:{from:o,to:O},range:Q.cursor(o,or(i)))n.between(e,e,(r,s)=>{re&&(e=t?s:r)});return e}var df=(i,e,t)=>xn(i,n=>{let r=n.from,{state:s}=i,o=s.doc.lineAt(r),O,a;if(t&&!e&&r>o.from&&rdf(i,!1,!0);var $f=i=>df(i,!0,!1),pf=(i,e)=>xn(i,t=>{let n=t.head,{state:r}=i,s=r.doc.lineAt(n),o=r.charCategorizer(n);for(let O=null;;){if(n==(e?s.to:s.from)){n==t.head&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let a=Oe(s.text,n-s.from,e)+s.from,l=s.text.slice(Math.min(n,a)-s.from,Math.max(n,a)-s.from),h=o(l);if(O!=null&&h!=O)break;(l!=" "||n!=t.head)&&(O=h),n=a}return n}),mf=i=>pf(i,!1),Ug=i=>pf(i,!0);var Ag=i=>xn(i,e=>{let t=i.lineBlockAt(e.head).to;return e.headxn(i,e=>{let t=i.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),Wg=i=>xn(i,e=>{let t=i.moveToLineBoundary(e,!0).head;return e.head{if(i.readOnly)return!1;let t=i.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:q.of(["",""])},range:Q.cursor(n.from)}));return e(i.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},Eg=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>{if(!n.empty||n.from==0||n.from==i.doc.length)return{range:n};let r=n.from,s=i.doc.lineAt(r),o=r==s.from?r-1:Oe(s.text,r-s.from,!1)+s.from,O=r==s.to?r+1:Oe(s.text,r-s.from,!0)+s.from;return{changes:{from:o,to:O,insert:i.doc.slice(r,O).append(i.doc.slice(o,r))},range:Q.cursor(O)}});return t.changes.empty?!1:(e(i.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Fr(i){let e=[],t=-1;for(let n of i.selection.ranges){let r=i.doc.lineAt(n.from),s=i.doc.lineAt(n.to);if(!n.empty&&n.to==s.from&&(s=i.doc.lineAt(n.to-1)),t>=r.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});t=s.number+1}return e}function gf(i,e,t){if(i.readOnly)return!1;let n=[],r=[];for(let s of Fr(i)){if(t?s.to==i.doc.length:s.from==0)continue;let o=i.doc.lineAt(t?s.to+1:s.from-1),O=o.length+1;if(t){n.push({from:s.to,to:o.to},{from:s.from,insert:o.text+i.lineBreak});for(let a of s.ranges)r.push(Q.range(Math.min(i.doc.length,a.anchor+O),Math.min(i.doc.length,a.head+O)))}else{n.push({from:o.from,to:s.from},{from:s.to,insert:i.lineBreak+o.text});for(let a of s.ranges)r.push(Q.range(a.anchor-O,a.head-O))}}return n.length?(e(i.update({changes:n,scrollIntoView:!0,selection:Q.create(r,i.selection.mainIndex),userEvent:"move.line"})),!0):!1}var Lg=({state:i,dispatch:e})=>gf(i,e,!1),Gg=({state:i,dispatch:e})=>gf(i,e,!0);function Qf(i,e,t){if(i.readOnly)return!1;let n=[];for(let s of Fr(i))t?n.push({from:s.from,insert:i.doc.slice(s.from,s.to)+i.lineBreak}):n.push({from:s.to,insert:i.lineBreak+i.doc.slice(s.from,s.to)});let r=i.changes(n);return e(i.update({changes:r,selection:i.selection.map(r,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var Ig=({state:i,dispatch:e})=>Qf(i,e,!1),Bg=({state:i,dispatch:e})=>Qf(i,e,!0),Dg=i=>{if(i.state.readOnly)return!1;let{state:e}=i,t=e.changes(Fr(e).map(({from:r,to:s})=>(r>0?r--:s{let s;if(i.lineWrapping){let o=i.lineBlockAt(r.head),O=i.coordsAtPos(r.head,r.assoc||1);O&&(s=o.bottom+i.documentTop-O.bottom+i.defaultLineHeight/2)}return i.moveVertically(r,!0,s)}).map(t);return i.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Ng(i,e){if(/\(\)|\[\]|\{\}/.test(i.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=L(i).resolveInner(e),n=t.childBefore(e),r=t.childAfter(e),s;return n&&r&&n.to<=e&&r.from>=e&&(s=n.type.prop(Y.closedBy))&&s.indexOf(r.name)>-1&&i.doc.lineAt(n.to).from==i.doc.lineAt(r.from).from&&!/\S/.test(i.sliceDoc(n.to,r.from))?{from:n.to,to:r.from}:null}var jc=Sf(!1),Fg=Sf(!0);function Sf(i){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{let{from:s,to:o}=r,O=e.doc.lineAt(s),a=!i&&s==o&&Ng(e,s);i&&(s=o=(o<=O.to?O:e.doc.lineAt(o)).to);let l=new ci(e,{simulateBreak:s,simulateDoubleBreak:!!a}),h=mO(l,s);for(h==null&&(h=xe(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));oO.from&&s{let r=[];for(let o=n.from;o<=n.to;){let O=i.doc.lineAt(o);O.number>t&&(n.empty||n.to>O.from)&&(e(O,r,n),t=O.number),o=O.to+1}let s=i.changes(r);return{changes:r,range:Q.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}})}var Hg=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=Object.create(null),n=new ci(i,{overrideIndentation:s=>{let o=t[s];return o??-1}}),r=XO(i,(s,o,O)=>{let a=mO(n,s.from);if(a==null)return;/\S/.test(s.text)||(a=0);let l=/^\s*/.exec(s.text)[0],h=bn(i,a);(l!=h||O.fromi.readOnly?!1:(e(i.update(XO(i,(t,n)=>{n.push({from:t.from,insert:i.facet(Wt)})}),{userEvent:"input.indent"})),!0),yf=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(XO(i,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let s=xe(r,i.tabSize),o=0,O=bn(i,Math.max(0,s-jt(i)));for(;o(i.setTabFocusMode(),!0);var Jg=[{key:"Ctrl-b",run:Fc,shift:of,preventDefault:!0},{key:"Ctrl-f",run:Hc,shift:Of},{key:"Ctrl-p",run:ef,shift:hf},{key:"Ctrl-n",run:tf,shift:cf},{key:"Ctrl-a",run:gg,shift:Zg},{key:"Ctrl-e",run:Qg,shift:Rg},{key:"Ctrl-d",run:$f},{key:"Ctrl-h",run:wO},{key:"Ctrl-k",run:Ag},{key:"Ctrl-Alt-h",run:mf},{key:"Ctrl-o",run:Mg},{key:"Ctrl-t",run:Eg},{key:"Ctrl-v",run:TO}],eQ=[{key:"ArrowLeft",run:Fc,shift:of,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:lg,shift:yg,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:pg,shift:Xg,preventDefault:!0},{key:"ArrowRight",run:Hc,shift:Of,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:hg,shift:bg,preventDefault:!0},{mac:"Cmd-ArrowRight",run:mg,shift:vg,preventDefault:!0},{key:"ArrowUp",run:ef,shift:hf,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Cc,shift:Uc},{mac:"Ctrl-ArrowUp",run:zc,shift:Vc},{key:"ArrowDown",run:tf,shift:cf,preventDefault:!0},{mac:"Cmd-ArrowDown",run:qc,shift:Ac},{mac:"Ctrl-ArrowDown",run:TO,shift:_c},{key:"PageUp",run:zc,shift:Vc},{key:"PageDown",run:TO,shift:_c},{key:"Home",run:$g,shift:kg,preventDefault:!0},{key:"Mod-Home",run:Cc,shift:Uc},{key:"End",run:dg,shift:xg,preventDefault:!0},{key:"Mod-End",run:qc,shift:Ac},{key:"Enter",run:jc,shift:jc},{key:"Mod-a",run:Yg},{key:"Backspace",run:wO,shift:wO,preventDefault:!0},{key:"Delete",run:$f,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:mf,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:Ug,preventDefault:!0},{mac:"Mod-Backspace",run:jg,preventDefault:!0},{mac:"Mod-Delete",run:Wg,preventDefault:!0}].concat(Jg.map(i=>({mac:i.key,run:i.run,shift:i.shift}))),vO=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:fg,shift:Tg},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:ug,shift:wg},{key:"Alt-ArrowUp",run:Lg},{key:"Shift-Alt-ArrowUp",run:Ig},{key:"Alt-ArrowDown",run:Gg},{key:"Shift-Alt-ArrowDown",run:Bg},{key:"Mod-Alt-ArrowUp",run:_g},{key:"Mod-Alt-ArrowDown",run:Cg},{key:"Escape",run:qg},{key:"Mod-Enter",run:Fg},{key:"Alt-l",mac:"Ctrl-l",run:zg},{key:"Mod-i",run:Vg,preventDefault:!0},{key:"Mod-[",run:yf},{key:"Mod-]",run:Pf},{key:"Mod-Alt-\\",run:Hg},{key:"Shift-Mod-k",run:Dg},{key:"Shift-Mod-\\",run:Pg},{key:"Mod-/",run:Im},{key:"Alt-A",mac:"Ctrl-A",run:Dm},{key:"Ctrl-m",mac:"Shift-Alt-m",run:Kg}].concat(eQ),bf={key:"Tab",run:Pf,shift:yf};var tQ="#e5c07b",Tf="#e06c75",iQ="#56b6c2",nQ="#ffffff",Hr="#abb2bf",RO="#7d8799",rQ="#61afef",sQ="#98c379",wf="#d19a66",oQ="#c678dd",OQ="#21252b",xf="#2c313a",kf="#282c34",ZO="#353a42",aQ="#3E4451",Xf="#528bff";var vf=X.theme({"&":{color:Hr,backgroundColor:kf},".cm-content":{caretColor:Xf},".cm-cursor, .cm-dropCursor":{borderLeftColor:Xf},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:aQ},".cm-panels":{backgroundColor:OQ,color:Hr},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:kf,color:RO,border:"none"},".cm-activeLineGutter":{backgroundColor:xf},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:ZO},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:ZO,borderBottomColor:ZO},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:xf,color:Hr}}},{dark:!0}),Zf=xt.define([{tag:u.keyword,color:oQ},{tag:[u.name,u.deleted,u.character,u.propertyName,u.macroName],color:Tf},{tag:[u.function(u.variableName),u.labelName],color:rQ},{tag:[u.color,u.constant(u.name),u.standard(u.name)],color:wf},{tag:[u.definition(u.name),u.separator],color:Hr},{tag:[u.typeName,u.className,u.number,u.changed,u.annotation,u.modifier,u.self,u.namespace],color:tQ},{tag:[u.operator,u.operatorKeyword,u.url,u.escape,u.regexp,u.link,u.special(u.string)],color:iQ},{tag:[u.meta,u.comment],color:RO},{tag:u.strong,fontWeight:"bold"},{tag:u.emphasis,fontStyle:"italic"},{tag:u.strikethrough,textDecoration:"line-through"},{tag:u.link,color:RO,textDecoration:"underline"},{tag:u.heading,fontWeight:"bold",color:Tf},{tag:[u.atom,u.bool,u.special(u.variableName)],color:wf},{tag:[u.processingInstruction,u.string,u.inserted],color:sQ},{tag:u.invalid,color:nQ}]);var lQ=xt.define([{tag:u.meta,color:"#388938"},{tag:u.link,textDecoration:"underline"},{tag:u.heading,textDecoration:"underline",fontWeight:"bold"},{tag:u.emphasis,fontStyle:"italic"},{tag:u.strong,fontWeight:"bold"},{tag:u.strikethrough,textDecoration:"line-through"},{tag:u.keyword,color:"#708"},{tag:[u.atom,u.bool,u.url,u.contentSeparator,u.labelName],color:"#219"},{tag:[u.literal,u.inserted],color:"#164"},{tag:[u.string,u.deleted],color:"#a11"},{tag:[u.regexp,u.escape,u.special(u.string)],color:"#e40"},{tag:u.definition(u.variableName),color:"#00f"},{tag:u.local(u.variableName),color:"#30a"},{tag:[u.typeName,u.namespace],color:"#085"},{tag:u.className,color:"#167"},{tag:[u.special(u.variableName),u.macroName],color:"#256"},{tag:u.definition(u.propertyName),color:"#00c"},{tag:u.compareOperator,color:"#708"},{tag:u.comment,color:"#940"},{tag:u.invalid,color:"#f00"}]),hQ={"&":{backgroundColor:"#FFF",color:"#000"},"&.cm-focused":{outline:"none"},".cm-line":{lineHeight:"1.6"}};function Rf(i){let e=document.documentElement.classList.contains("dark-mode"),t=e?vf:X.theme(hQ),n=e?Zf:lQ,r={darkModeActive:e,registerViewTheme(s){let o=s();o&&(t=X.theme(o))},registerHighlightStyle(s){let o=s(u)||[];o.length&&(n=xt.define(o))}};return window.$events.emitPublic(i,"library-cm6::configure-theme",r),[t,gO(n)]}function Yf(i){return[Rf(i),Hh(),Ih(),Nh(),Xc(),Fh()]}function cQ(){let i=new pt,e={focus(t,n){n.dispatch({effects:i.reconfigure([Lo(),Eo()])})},blur(t,n){n.dispatch({effects:i.reconfigure([])})}};return[i.of([]),X.domEventHandlers(e)]}function YO(i){return[...Yf(i),cQ(),ht.of([...vO]),D.readOnly.of(!0)]}function Kr(i){return[...Yf(i),Lo(),Eo(),Lc(),ht.of([...vO,...Dc,bf]),X.lineWrapping]}var _O=class i{constructor(e,t,n,r,s,o,O,a,l,h=0,c){this.p=e,this.stack=t,this.state=n,this.reducePos=r,this.pos=s,this.score=o,this.buffer=O,this.bufferBase=a,this.curContext=l,this.lookAhead=h,this.parent=c}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let r=e.parser.context;return new i(e,[],t,n,n,0,[],0,r?new Jr(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,r=e&65535,{parser:s}=this.p,o=this.reducePos=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=h):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(r,l)}storeNode(e,t,n,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&this.buffer[o-4]==0&&this.buffer[o-1]>-1){if(t==n)return;if(this.buffer[o-2]>=t){this.buffer[o-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,r);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let O=!1;for(let a=o;a>0&&this.buffer[a-2]>n;a-=4)if(this.buffer[a-1]>=0){O=!0;break}if(O)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,r>4&&(r-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=n,this.buffer[o+3]=r}}shift(e,t,n,r){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let s=e,{parser:o}=this.p;this.pos=r;let O=o.stateFlag(s,1);!O&&(r>n||t<=o.maxNode)&&(this.reducePos=r),this.pushState(s,O?n:Math.min(n,this.reducePos)),this.shiftContext(t,n),t<=o.maxNode&&this.buffer.push(t,n,r,4)}else this.pos=r,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,r,4)}apply(e,t,n,r){e&65536?this.reduce(e):this.shift(e,t,n,r)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(t&&e.buffer[t-4]==0&&(t-=4);t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new i(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new CO(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if((n&65536)==0)return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let r=[];for(let s=0,o;sa&1&&O==o)||r.push(t[s],o)}t=r}let n=[];for(let r=0;r>19,r=t&65535,s=this.stack.length-n*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,s)=>{if(!t.includes(r))return t.push(r),e.allActions(r,o=>{if(!(o&393216))if(o&65536){let O=(o>>19)-s;if(O>1){let a=o&65535,l=this.stack.length-O*3;if(l>=0&&e.getGoto(this.stack[l],a,!1)>=0)return O<<19|65536|a}}else{let O=n(o,s+1);if(O!=null)return O}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t0&&this.emitLookAhead()}},Jr=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},CO=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},qO=class i{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new i(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new i(this.stack,this.pos,this.index)}};function kn(i,e=Uint16Array){if(typeof i!="string")return i;let t=null;for(let n=0,r=0;n=92&&o--,o>=34&&o--;let a=o-32;if(a>=46&&(a-=46,O=!0),s+=a,O)break;s*=46}t?t[r++]=s:t=new e(s)}return t}var Ei=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},zf=new Ei,UO=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=zf,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,s=this.pos+e;for(;sn.to:s>=n.to;){if(r==this.ranges.length-1)return null;let o=this.ranges[++r];s+=o.from-n.to,n=o}return s}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t=this.chunk2Pos&&nO.to&&(this.chunk2=this.chunk2.slice(0,O.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=zf,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},Lt=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;Uf(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};Lt.prototype.contextual=Lt.prototype.fallback=Lt.prototype.extend=!1;var Gt=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?kn(e):e}token(e,t){let n=e.pos,r=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(Uf(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,o==null)break;e.reset(o,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}};Gt.prototype.contextual=Lt.prototype.fallback=Lt.prototype.extend=!1;var ee=class{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}};function Uf(i,e,t,n,r,s){let o=0,O=1<0){let $=i[d];if(a.allows($)&&(e.token.value==-1||e.token.value==$||uQ($,e.token.value,r,s))){e.acceptToken($);break}}let h=e.next,c=0,f=i[o+2];if(e.next<0&&f>c&&i[l+f*3-3]==65535){o=i[l+f*3-1];continue e}for(;c>1,$=l+d+(d<<1),p=i[$],m=i[$+1]||65536;if(h=m)c=d+1;else{o=i[$+2],e.advance();continue e}}break}}function Vf(i,e,t){for(let n=e,r;(r=i[n])!=65535;n++)if(r==t)return n-e;return-1}function uQ(i,e,t,n){let r=Vf(t,n,e);return r<0||Vf(t,n,i)e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(i.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:i.length}}var AO=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?_f(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?_f(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(s instanceof _){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},jO=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new Ei)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:s}=r,o=r.stateSlot(e.state,3),O=e.curContext?e.curContext.hash:0,a=0;for(let l=0;lc.end+25&&(a=Math.max(c.lookAhead,a)),c.value!=0)){let f=t;if(c.extended>-1&&(t=this.addActions(e,c.extended,c.end,t)),t=this.addActions(e,c.value,c.end,t),!h.extend&&(n=c,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new Ei,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Ei,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:s}=n.p;for(let o=0;o=0&&n.p.parser.dialect.allows(O>>1)){(O&1)==0?e.value=O>>1:e.extended=O>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let s=0;se.bufferLength*4?new AO(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;ot)n.push(O);else{if(this.advanceStack(O,n,e))continue;{r||(r=[],s=[]),r.push(O);let a=this.tokens.getMainToken(O);s.push(a.value,a.end)}}break}}if(!n.length){let o=r&&dQ(r);if(o)return Ce&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw Ce&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let o=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,n);if(o)return Ce&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((O,a)=>a.score-O.score);n.length>o;)n.pop();n.some(O=>O.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o500&&l.buffer.length>500)if((O.score-l.score||O.buffer.length-l.buffer.length)>0)n.splice(a--,1);else{n.splice(o--,1);continue e}}}n.length>12&&(n.sort((o,O)=>O.score-o.score),n.splice(12,n.length-12))}this.minStackPos=n[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let l=e.curContext&&e.curContext.tracker.strict,h=l?e.curContext.hash:0;for(let c=this.fragments.nodeAt(r);c;){let f=this.parser.nodeSet.types[c.type.id]==c.type?s.getGoto(e.state,c.type.id):-1;if(f>-1&&c.length&&(!l||(c.prop(Y.contextHash)||0)==h))return e.useNode(c,f),Ce&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(c.type.id)})`),!0;if(!(c instanceof _)||c.children.length==0||c.positions[0]>0)break;let d=c.children[0];if(d instanceof _&&c.positions[0]==0)c=d;else break}}let O=s.stateSlot(e.state,4);if(O>0)return e.reduce(O),Ce&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(O&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let l=0;lr?t.push($):n.push($)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return Cf(e,t),!0}}runRecovery(e,t,n){let r=null,s=!1;for(let o=0;o ":"";if(O.deadEnd&&(s||(s=!0,O.restart(),Ce&&console.log(h+this.stackID(O)+" (restarted)"),this.advanceFully(O,n))))continue;let c=O.split(),f=h;for(let d=0;d<10&&c.forceReduce()&&(Ce&&console.log(f+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,n));d++)Ce&&(f=this.stackID(c)+" -> ");for(let d of O.recoverByInsert(a))Ce&&console.log(h+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,n);this.stream.end>O.pos?(l==O.pos&&(l++,a=0),O.recoverByDelete(a,l),Ce&&console.log(h+this.stackID(O)+` (via recover-delete ${this.parser.getName(a)})`),Cf(O,n)):(!r||r.scorei,It=class{constructor(e){this.start=e.start,this.shift=e.shift||VO,this.reduce=e.reduce||VO,this.reuse=e.reuse||VO,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},pe=class i extends Tt{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let O=0;Oe.topRules[O][1]),r=[];for(let O=0;O=0)s(h,a,O[l++]);else{let c=O[l+-h];for(let f=-h;f>0;f--)s(O[l++],a,c);l++}}}this.nodeSet=new yt(t.map((O,a)=>ie.define({name:a>=this.minRepeatTerm?void 0:O,id:a,props:r[a],top:n.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=kn(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let O=0;Otypeof O=="number"?new Lt(o,O):O),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new WO(this,e,t,n);for(let s of this.wrappers)r=s(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let s=r[t+1];;){let o=r[s++],O=o&1,a=r[s++];if(O&&n)return a;for(let l=s+(o>>1);s0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=kt(this.data,s+2);else break;r=t(kt(this.data,s+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=kt(this.data,n+2);else break;if((this.data[n+2]&1)==0){let r=this.data[n+1];t.some((s,o)=>o&1&&s==r)||t.push(this.data[n],r)}}return t}configure(e){let t=Object.assign(Object.create(i.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let r=e.tokenizers.find(s=>s.from==n);return r?r.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,r)=>{let s=e.specializers.find(O=>O.from==n.external);if(!s)return n;let o=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[r]=qf(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(n[o]=!0)}let r=null;for(let s=0;sn)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scorei.external(t,n)<<1|e}return i.get}var $Q=148,Af=1,pQ=149,mQ=150,Wf=2,gQ=151,QQ=3,SQ=4,Mf=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],PQ=58,yQ=40,Ef=95,bQ=91,es=45,TQ=46,wQ=35,xQ=37,kQ=38,XQ=92,vQ=10,ZQ=42;function Xn(i){return i>=65&&i<=90||i>=97&&i<=122||i>=161}function EO(i){return i>=48&&i<=57}function jf(i){return EO(i)||i>=97&&i<=102||i>=65&&i<=70}var Lf=(i,e,t)=>(n,r)=>{for(let s=!1,o=0,O=0;;O++){let{next:a}=n;if(Xn(a)||a==es||a==Ef||s&&EO(a))!s&&(a!=es||O>0)&&(s=!0),o===O&&a==es&&o++,n.advance();else if(a==XQ&&n.peek(1)!=vQ){if(n.advance(),jf(n.next)){do n.advance();while(jf(n.next));n.next==32&&n.advance()}else n.next>-1&&n.advance();s=!0}else{s&&n.acceptToken(o==2&&r.canShift(Wf)?e:a==yQ?t:i);break}}},RQ=new ee(Lf(pQ,Wf,mQ),{contextual:!0}),YQ=new ee(Lf(gQ,QQ,SQ),{contextual:!0}),zQ=new ee(i=>{if(Mf.includes(i.peek(-1))){let{next:e}=i;(Xn(e)||e==Ef||e==wQ||e==TQ||e==ZQ||e==bQ||e==PQ&&Xn(i.peek(1))||e==es||e==kQ)&&i.acceptToken($Q)}}),VQ=new ee(i=>{if(!Mf.includes(i.peek(-1))){let{next:e}=i;if(e==xQ&&(i.advance(),i.acceptToken(Af)),Xn(e)){do i.advance();while(Xn(i.next)||EO(i.next));i.acceptToken(Af)}}}),_Q=se({"AtKeyword import charset namespace keyframes media supports font-feature-values":u.definitionKeyword,"from to selector scope MatchFlag":u.keyword,NamespaceName:u.namespace,KeyframeName:u.labelName,KeyframeRangeName:u.operatorKeyword,TagName:u.tagName,ClassName:u.className,PseudoClassName:u.constant(u.className),IdName:u.labelName,"FeatureName PropertyName":u.propertyName,AttributeName:u.attributeName,NumberLiteral:u.number,KeywordQuery:u.keyword,UnaryQueryOp:u.operatorKeyword,"CallTag ValueName FontName":u.atom,VariableName:u.variableName,Callee:u.operatorKeyword,Unit:u.unit,"UniversalSelector NestingSelector":u.definitionOperator,"MatchOp CompareOp":u.compareOperator,"ChildOp SiblingOp, LogicOp":u.logicOperator,BinOp:u.arithmeticOperator,Important:u.modifier,Comment:u.blockComment,ColorLiteral:u.color,"ParenthesizedContent StringLiteral":u.string,":":u.punctuation,"PseudoOp #":u.derefOperator,"; , |":u.separator,"( )":u.paren,"[ ]":u.squareBracket,"{ }":u.brace}),CQ={__proto__:null,lang:44,"nth-child":44,"nth-last-child":44,"nth-of-type":44,"nth-last-of-type":44,dir:44,"host-context":44,if:90,url:158,"url-prefix":158,domain:158,regexp:158},qQ={__proto__:null,or:104,and:104,not:112,only:112,layer:212},UQ={__proto__:null,selector:118,style:124,layer:208},AQ={__proto__:null,"@import":204,"@media":216,"@charset":220,"@namespace":224,"@keyframes":230,"@supports":242,"@scope":246,"@font-feature-values":252},jQ={__proto__:null,to:249},Gf=pe.deserialize({version:14,states:"MrQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FqO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#ERO'dQdO'#ETO'oQdO'#E[O'oQdO'#E_OOQP'#Fq'#FqO)RQhO'#FQOOQS'#Fp'#FpOOQS'#FT'#FTQYQdOOO)YQdO'#EeO*iQhO'#EkO)YQdO'#EmO*pQdO'#EoO*{QdO'#ErO)}QhO'#ExO+TQdO'#EzO+`QdO'#E}O+eQaO'#CfO+lQ`O'#EbO+qQ`O'#F}O+|QdO'#F}QOQ`OOP,WO&jO'#CaPOOO)CA`)CA`OOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,cQdO,59YO'_QdO,5:mO'dQdO,5:oO'oQdO,5:vO'oQdO,5:xO'oQdO,5:yO'oQdO'#F[O,nQ`O,58}O,vQdO'#EaOOQS,58},58}OOQP'#Cq'#CqOOQO'#EP'#EPOOQP,59Y,59YO,}Q`O,59YO-SQ`O,59YOOQP'#ES'#ESOOQP,5:m,5:mO-XQpO'#EUO-dQdO'#EVO-iQ`O'#EVO-nQpO,5:oO.XQaO,5:vO.oQaO,5:yOOQW'#D^'#D^O/nQhO'#DgO0RQhO,5;lO)}QhO'#DeO0`Q`O'#DnO0eQhO'#D{OOQW'#Fw'#FwOOQS,5;l,5;lO0jQ`O'#DhO0oQ`O'#DkOOQS-E9R-E9ROOQ['#Cv'#CvO0tQdO'#CwO1[QdO'#C}O1rQdO'#DQO2YQ!pO'#DSO4fQ!jO,5;POOQO'#DX'#DXO-SQ`O'#DWO4vQ!nO'#FtO6|Q`O'#DYO7RQ`O'#D|OOQ['#Ft'#FtO7WQhO'#GQO7fQ`O,5;VO7kQ!bO,5;XOOQS'#Eq'#EqO7sQ`O,5;ZO7xQdO,5;ZOOQO'#Et'#EtO8QQ`O,5;^O8VQhO,5;dO'oQdO'#DjOOQS,5;f,5;fO0jQ`O,5;fO8_QdO,5;fOOQS'#Fc'#FcO8gQdO'#FPO7fQ`O,5;iO8oQdO,5:|O9PQdO'#F^O9^Q`O,5lQhO'#DoOOQW,5:Y,5:YOOQW,5:g,5:gOOQW,5:S,5:SO>vQhO,5:VO?bQ!fO'#FuOOQS'#Fu'#FuOOQS'#FV'#FVO@rQdO,59cOOQ[,59c,59cOAYQdO,59iOOQ[,59i,59iOApQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)YQdO,59pOBWQhO'#EgOOQW'#Eg'#EgOBuQ`O1G0kO4oQhO1G0kOOQ[,59r,59rO)}QhO'#D[OOQ[,59t,59tOBzQ#tO,5:hOCVQhO'#F`OCdQ`O,5vQhO'#DmOI_QhO'#DsOIgQhO'#DuOIlQ!jO'#FzOOQO'#Fz'#FzOIwQ`O'#DxOJPQ!bO'#DzOOQO'#Fy'#FyOJUQ`O1G/qOOQS-E9T-E9TOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OJZQdO,5;ROOQS7+&V7+&VOJ`Q`O7+&VOJeQhO'#D]OJmQ`O,59vO)}QhO,59vOOQ[1G0S1G0SOJuQ`O1G0SOJzQhO,5;zOOQO-E9^-E9^OOQS7+&a7+&aOKYQbO'#DSOOQO'#Ew'#EwOKhQ`O'#EvOOQO'#Ev'#EvOKsQ`O'#FaOK{QdO,5;aOOQS,5;a,5;aOOQ[1G/p1G/pOOQS7+&l7+&lO7fQ`O7+&lOLWQ!fO'#F]O)YQdO'#F]OM_QdO7+&SOOQO7+&S7+&SOOQO,5;O,5;OOOQO1G1d1G1dOMrQ!bO<vQhO'#DtOOQO,5:_,5:_O! sQhO,5:aO! {QhO,5:fO)YQdO,5:dOOQW7+%]7+%]OOQO'#Ei'#EiO!!SQ`O1G0mOOQS<{AN>{O!$^Q`OAN>{O!$cQaO,5;uOOQO-E9X-E9XO!$mQdO,5;tOOQO-E9W-E9WOOQW<vQhO'#DwOOQO1G/{1G/{O!&aQ!bO1G0QO!&iQdO1G0OOJZQdO'#F_O!&pQ`O7+&XOOQW7+&X7+&XO!&xQ!bO1G/cOOQ[7+$|7+$|O!'TQhO7+$|P!'[Q`O'#FWOOQO,5;|,5;|OOQO-E9`-E9`OOQS1G1g1G1gOOQPG24gG24gO!'aQ`OAN>ZO)YQdO1G1_O!'fQ`O7+'mOOQO1G/z1G/zO!'nQ`O,5:cO!'sQhO7+%lOOQO,5;y,5;yOOQO-E9]-E9]OOQW<Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!r`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$_~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$_~!r`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$sYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!r`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!r`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!r`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!r`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!r`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!r`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!r`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!r`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!|S!r`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW#SQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!r`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!r`$jYOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!r`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!r`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!r`$jYOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!r`$jYOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!eYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!r`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!r`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!|SOy%jz;'S%j;'S;=`%{<%lO%jj@uV#PQ!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS#PQ!r`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!r`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!r`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!}WOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!}WOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!r`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!r`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!r`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!r`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!r`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!r`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!r`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$rQ!r`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$fUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU#SQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",tokenizers:[zQ,VQ,RQ,YQ,1,2,3,4,new Gt("m~RRYZ[z{a~~g~aO$b~~dP!P!Qg~lO$c~~",28,155)],topRules:{StyleSheet:[0,6],Styles:[1,129]},dynamicPrecedences:{97:1},specialized:[{term:150,get:i=>CQ[i]||-1},{term:151,get:i=>qQ[i]||-1},{term:4,get:i=>UQ[i]||-1},{term:28,get:i=>AQ[i]||-1},{term:149,get:i=>jQ[i]||-1}],tokenPrec:2444});var LO=null;function GO(){if(!LO&&typeof document=="object"&&document.body){let{style:i}=document.body,e=[],t=new Set;for(let n in i)n!="cssText"&&n!="cssFloat"&&typeof i[n]=="string"&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),t.has(n)||(e.push(n),t.add(n)));LO=e.sort().map(n=>({type:"property",label:n,apply:n+": "}))}return LO||[]}var If=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(i=>({type:"class",label:i})),Bf=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(i=>({type:"keyword",label:i})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(i=>({type:"constant",label:i}))),WQ=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(i=>({type:"type",label:i})),MQ=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(i=>({type:"keyword",label:i})),Xt=/^(\w[\w-]*|-\w[\w-]*|)$/,EQ=/^-(-[\w-]*)?$/;function LQ(i,e){var t;if((i.name=="("||i.type.isError)&&(i=i.parent||i),i.name!="ArgList")return!1;let n=(t=i.parent)===null||t===void 0?void 0:t.firstChild;return n?.name!="Callee"?!1:e.sliceString(n.from,n.to)=="var"}var Df=new Ui,GQ=["Declaration"];function IQ(i){for(let e=i;;){if(e.type.isTop)return e;if(!(e=e.parent))return i}}function Nf(i,e,t){if(e.to-e.from>4096){let n=Df.get(e);if(n)return n;let r=[],s=new Set,o=e.cursor(A.IncludeAnonymous);if(o.firstChild())do for(let O of Nf(i,o.node,t))s.has(O.label)||(s.add(O.label),r.push(O));while(o.nextSibling());return Df.set(e,r),r}else{let n=[],r=new Set;return e.cursor().iterate(s=>{var o;if(t(s)&&s.matchContext(GQ)&&((o=s.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let O=i.sliceString(s.from,s.to);r.has(O)||(r.add(O),n.push({label:O,type:"variable"}))}}),n}}var BQ=i=>e=>{let{state:t,pos:n}=e,r=L(t).resolveInner(n,-1),s=r.type.isError&&r.from==r.to-1&&t.doc.sliceString(r.from,r.to)=="-";if(r.name=="PropertyName"||(s||r.name=="TagName")&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:GO(),validFor:Xt};if(r.name=="ValueName")return{from:r.from,options:Bf,validFor:Xt};if(r.name=="PseudoClassName")return{from:r.from,options:If,validFor:Xt};if(i(r)||(e.explicit||s)&&LQ(r,t.doc))return{from:i(r)||s?r.from:n,options:Nf(t.doc,IQ(r),i),validFor:EQ};if(r.name=="TagName"){for(let{parent:a}=r;a;a=a.parent)if(a.name=="Block")return{from:r.from,options:GO(),validFor:Xt};return{from:r.from,options:WQ,validFor:Xt}}if(r.name=="AtKeyword")return{from:r.from,options:MQ,validFor:Xt};if(!e.explicit)return null;let o=r.resolve(n),O=o.childBefore(n);return O&&O.name==":"&&o.name=="PseudoClassSelector"?{from:n,options:If,validFor:Xt}:O&&O.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:n,options:Bf,validFor:Xt}:o.name=="Block"||o.name=="Styles"?{from:n,options:GO(),validFor:Xt}:null},DQ=BQ(i=>i.name=="VariableName"),vn=ue.define({name:"css",parser:Gf.configure({props:[de.add({Declaration:_e()}),Pe.add({"Block KeyframeList":Mt})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function ts(){return new oe(vn,vn.data.of({autocomplete:DQ}))}var NQ=se({String:u.string,Number:u.number,"True False":u.bool,PropertyName:u.propertyName,Null:u.null,", :":u.separator,"[ ]":u.squareBracket,"{ }":u.brace}),Ff=pe.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[NQ],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var FQ=ue.define({name:"json",parser:Ff.configure({props:[de.add({Object:_e({except:/^\s*\}/}),Array:_e({except:/^\s*\]/})}),Pe.add({"Object Array":Mt})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function Hf(){return new oe(FQ)}var HQ=316,KQ=317,Kf=1,JQ=2,eS=3,tS=4,iS=318,nS=320,rS=321,sS=5,oS=6,OS=0,BO=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Jf=125,aS=59,DO=47,lS=42,hS=43,cS=45,fS=60,uS=44,dS=63,$S=46,pS=91,mS=new It({start:!1,shift(i,e){return e==sS||e==oS||e==nS?i:e==rS},strict:!1}),gS=new ee((i,e)=>{let{next:t}=i;(t==Jf||t==-1||e.context)&&i.acceptToken(iS)},{contextual:!0,fallback:!0}),QS=new ee((i,e)=>{let{next:t}=i,n;BO.indexOf(t)>-1||t==DO&&((n=i.peek(1))==DO||n==lS)||t!=Jf&&t!=aS&&t!=-1&&!e.context&&i.acceptToken(HQ)},{contextual:!0}),SS=new ee((i,e)=>{i.next==pS&&!e.context&&i.acceptToken(KQ)},{contextual:!0}),PS=new ee((i,e)=>{let{next:t}=i;if(t==hS||t==cS){if(i.advance(),t==i.next){i.advance();let n=!e.context&&e.canShift(Kf);i.acceptToken(n?Kf:JQ)}}else t==dS&&i.peek(1)==$S&&(i.advance(),i.advance(),(i.next<48||i.next>57)&&i.acceptToken(eS))},{contextual:!0});function IO(i,e){return i>=65&&i<=90||i>=97&&i<=122||i==95||i>=192||!e&&i>=48&&i<=57}var yS=new ee((i,e)=>{if(i.next!=fS||!e.dialectEnabled(OS)||(i.advance(),i.next==DO))return;let t=0;for(;BO.indexOf(i.next)>-1;)i.advance(),t++;if(IO(i.next,!0)){for(i.advance(),t++;IO(i.next,!1);)i.advance(),t++;for(;BO.indexOf(i.next)>-1;)i.advance(),t++;if(i.next==uS)return;for(let n=0;;n++){if(n==7){if(!IO(i.next,!0))return;break}if(i.next!="extends".charCodeAt(n))break;i.advance(),t++}}i.acceptToken(tS,-t)}),bS=se({"get set async static":u.modifier,"for while do if else switch try catch finally return throw break continue default case defer":u.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":u.operatorKeyword,"let var const using function class extends":u.definitionKeyword,"import export from":u.moduleKeyword,"with debugger new":u.keyword,TemplateString:u.special(u.string),super:u.atom,BooleanLiteral:u.bool,this:u.self,null:u.null,Star:u.modifier,VariableName:u.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":u.function(u.variableName),VariableDefinition:u.definition(u.variableName),Label:u.labelName,PropertyName:u.propertyName,PrivatePropertyName:u.special(u.propertyName),"CallExpression/MemberExpression/PropertyName":u.function(u.propertyName),"FunctionDeclaration/VariableDefinition":u.function(u.definition(u.variableName)),"ClassDeclaration/VariableDefinition":u.definition(u.className),"NewExpression/VariableName":u.className,PropertyDefinition:u.definition(u.propertyName),PrivatePropertyDefinition:u.definition(u.special(u.propertyName)),UpdateOp:u.updateOperator,"LineComment Hashbang":u.lineComment,BlockComment:u.blockComment,Number:u.number,String:u.string,Escape:u.escape,ArithOp:u.arithmeticOperator,LogicOp:u.logicOperator,BitOp:u.bitwiseOperator,CompareOp:u.compareOperator,RegExp:u.regexp,Equals:u.definitionOperator,Arrow:u.function(u.punctuation),": Spread":u.punctuation,"( )":u.paren,"[ ]":u.squareBracket,"{ }":u.brace,"InterpolationStart InterpolationEnd":u.special(u.brace),".":u.derefOperator,", ;":u.separator,"@":u.meta,TypeName:u.typeName,TypeDefinition:u.definition(u.typeName),"type enum interface implements namespace module declare":u.definitionKeyword,"abstract global Privacy readonly override":u.modifier,"is keyof unique infer asserts":u.operatorKeyword,JSXAttributeValue:u.attributeValue,JSXText:u.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":u.angleBracket,"JSXIdentifier JSXNameSpacedName":u.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":u.attributeName,"JSXBuiltin/JSXIdentifier":u.standard(u.tagName)}),TS={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},wS={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},xS={__proto__:null,"<":193},eu=pe.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-EtOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-EPO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-ERQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<VO!l$xO#jROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!OVO!l$xO#jVO!l$xO#jROe!iOpkOrPO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]VO!l$xO#j^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOrROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]WO!l$xO#jgPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{SU+P%]S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mR>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o>UPS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^T)z$u){V+P%]S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SS#q]SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uSSR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:mSR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:oS)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mSS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:mS#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^Q+T%aQ/c*Oo4OP>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^n=rTQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o4OP>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f]>^nZ>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f]>^nZ>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.lPQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.nSR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:mS,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[bS],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l^!Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!^!LYP;=`<%l!KS>^!L`P;=`<%l!_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[QS,SS,PS,yS,2,3,4,5,6,7,8,9,10,11,12,13,14,gS,new Gt("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new Gt("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:i=>TS[i]||-1},{term:343,get:i=>wS[i]||-1},{term:95,get:i=>xS[i]||-1}],tokenPrec:15201});var is=class{constructor(e,t,n,r){this.state=e,this.pos=t,this.explicit=n,this.view=r,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=L(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),r=t.text.slice(n-t.from,this.pos-t.from),s=r.search(XS(e,!1));return s<0?null:{from:n+s,to:this.pos,text:r.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}};function tu(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function kS(i){let e=Object.create(null),t=Object.create(null);for(let{label:r}of i){e[r[0]]=!0;for(let s=1;stypeof r=="string"?{label:r}:r),[t,n]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:kS(e);return r=>{let s=r.matchBefore(n);return s||r.explicit?{from:s?s.from:r.pos,options:e,validFor:t}:null}}function ru(i,e){return t=>{for(let n=L(t.state).resolveInner(t.pos,-1);n;n=n.parent){if(i.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(t)}}function XS(i,e){var t;let{source:n}=i,r=e&&n[0]!="^",s=n[n.length-1]!="$";return!r&&!s?i:new RegExp(`${r?"^":""}(?:${n})${s?"$":""}`,(t=i.flags)!==null&&t!==void 0?t:i.ignoreCase?"i":"")}var vS=we.define();var Wb=typeof navigator=="object"&&/Win/.test(navigator.platform);var ZS=X.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center",cursor:"pointer"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),NO=class{constructor(e,t,n,r){this.field=e,this.line=t,this.from=n,this.to=r}},FO=class i{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,le.TrackDel),n=e.mapPos(this.to,1,le.TrackDel);return t==null||n==null?null:new i(this.field,t,n)}},HO=class i{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],r=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let a of this.lines){if(n.length){let l=o,h=/^\t*/.exec(a)[0].length;for(let c=0;cnew FO(a.field,r[a.line]+a.from,r[a.line]+a.to));return{text:n,ranges:O}}static parse(e){let t=[],n=[],r=[],s;for(let o of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let O=s[1]?+s[1]:null,a=s[2]||s[3]||"",l=-1;O===0&&(O=1e9);let h=a.replace(/\\[{}]/g,c=>c[1]);for(let c=0;c=l&&f.field++}for(let c of r)if(c.line==n.length&&c.from>s.index){let f=s[2]?3+(s[1]||"").length:2;c.from-=f,c.to-=f}r.push(new NO(l,n.length,s.index,s.index+h.length)),o=o.slice(0,s.index)+a+o.slice(s.index+s[0].length)}o=o.replace(/\\([{}])/g,(O,a,l)=>{for(let h of r)h.line==n.length&&h.from>l&&(h.from--,h.to--);return a}),n.push(o)}return new i(n,r)}},RS=M.widget({widget:new class extends St{toDOM(){let i=document.createElement("span");return i.className="cm-snippetFieldPosition",i}ignoreEvent(){return!1}}}),YS=M.mark({class:"cm-snippetField"}),Li=class i{constructor(e,t){this.ranges=e,this.active=t,this.deco=M.set(e.map(n=>(n.from==n.to?RS:YS).range(n.from,n.to)),!0)}map(e){let t=[];for(let n of this.ranges){let r=n.map(e);if(!r)return null;t.push(r)}return new i(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(n=>n.field==this.active&&n.from<=t.from&&n.to>=t.to))}},Rn=B.define({map(i,e){return i&&i.map(e)}}),zS=B.define(),Zn=Te.define({create(){return null},update(i,e){for(let t of e.effects){if(t.is(Rn))return t.value;if(t.is(zS)&&i)return new Li(i.ranges,t.value)}return i&&e.docChanged&&(i=i.map(e.changes)),i&&e.selection&&!i.selectionInsideField(e.selection)&&(i=null),i},provide:i=>X.decorations.from(i,e=>e?e.deco:M.none)});function KO(i,e){return Q.create(i.filter(t=>t.field==e).map(t=>Q.range(t.from,t.to)))}function VS(i){let e=HO.parse(i);return(t,n,r,s)=>{let{text:o,ranges:O}=e.instantiate(t.state,r),{main:a}=t.state.selection,l={changes:{from:r,to:s==a.from?a.to:s,insert:q.of(o)},scrollIntoView:!0,annotations:n?[vS.of(n),ne.userEvent.of("input.complete")]:void 0};if(O.length&&(l.selection=KO(O,0)),O.some(h=>h.field>0)){let h=new Li(O,0),c=l.effects=[Rn.of(h)];t.state.field(Zn,!1)===void 0&&c.push(B.appendConfig.of([Zn,AS,jS,ZS]))}t.dispatch(t.state.update(l))}}function su(i){return({state:e,dispatch:t})=>{let n=e.field(Zn,!1);if(!n||i<0&&n.active==0)return!1;let r=n.active+i,s=i>0&&!n.ranges.some(o=>o.field==r+i);return t(e.update({selection:KO(n.ranges,r),effects:Rn.of(s?null:new Li(n.ranges,r)),scrollIntoView:!0})),!0}}var _S=({state:i,dispatch:e})=>i.field(Zn,!1)?(e(i.update({effects:Rn.of(null)})),!0):!1,CS=su(1),qS=su(-1);var US=[{key:"Tab",run:CS,shift:qS},{key:"Escape",run:_S}],iu=v.define({combine(i){return i.length?i[0]:US}}),AS=Ot.highest(ht.compute([iu],i=>i.facet(iu)));function ye(i,e){return{...e,apply:VS(i)}}var jS=X.domEventHandlers({mousedown(i,e){let t=e.state.field(Zn,!1),n;if(!t||(n=e.posAtCoords({x:i.clientX,y:i.clientY}))==null)return!1;let r=t.ranges.find(s=>s.from<=n&&s.to>=n);return!r||r.field==t.active?!1:(e.dispatch({selection:KO(t.ranges,r.field),effects:Rn.of(t.ranges.some(s=>s.field>r.field)?new Li(t.ranges,r.field):null),scrollIntoView:!0}),!0)}});var ou=new class extends We{};ou.startSide=1;ou.endSide=-1;var Mb=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent);var hu=[ye("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),ye("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),ye("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),ye("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),ye("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),ye(`try { + \${} +} catch (\${error}) { + \${} +}`,{label:"try",detail:"/ catch block",type:"keyword"}),ye("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),ye(`if (\${}) { + \${} +} else { + \${} +}`,{label:"if",detail:"/ else block",type:"keyword"}),ye(`class \${name} { + constructor(\${params}) { + \${} + } +}`,{label:"class",detail:"definition",type:"keyword"}),ye('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),ye('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],WS=hu.concat([ye("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),ye("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),ye("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Ou=new Ui,cu=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Yn(i){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,i),!0}}var MS=["FunctionDeclaration"],ES={FunctionDeclaration:Yn("function"),ClassDeclaration:Yn("class"),ClassExpression:()=>!0,EnumDeclaration:Yn("constant"),TypeAliasDeclaration:Yn("type"),NamespaceDeclaration:Yn("namespace"),VariableDefinition(i,e){i.matchContext(MS)||e(i,"variable")},TypeDefinition(i,e){e(i,"type")},__proto__:null};function fu(i,e){let t=Ou.get(e);if(t)return t;let n=[],r=!0;function s(o,O){let a=i.sliceString(o.from,o.to);n.push({label:a,type:O})}return e.cursor(A.IncludeAnonymous).iterate(o=>{if(r)r=!1;else if(o.name){let O=ES[o.name];if(O&&O(o,s)||cu.has(o.name))return!1}else if(o.to-o.from>8192){for(let O of fu(i,o.node))n.push(O);return!1}}),Ou.set(e,n),n}var au=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,uu=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function LS(i){let e=L(i.state).resolveInner(i.pos,-1);if(uu.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&au.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let n=[];for(let r=e;r;r=r.parent)cu.has(r.name)&&(n=n.concat(fu(i.state.doc,r)));return{options:n,from:t?e.from:i.pos,validFor:au}}var rt=ue.define({name:"javascript",parser:eu.configure({props:[de.add({IfStatement:_e({except:/^\s*({|else\b)/}),TryStatement:_e({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:yc,SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},Block:Lr({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"TemplateString BlockComment":()=>null,"Statement Property":_e({except:/^\s*{/}),JSXElement(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},JSXEscape(i){let e=/\s*\}/.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"JSXOpenTag JSXSelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),Pe.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Mt,BlockComment(i){return{from:i.from+2,to:i.to-2}},JSXElement(i){let e=i.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=i.lastChild;return{from:e.to,to:t.type.isError?i.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(i){var e;let t=(e=i.firstChild)===null||e===void 0?void 0:e.nextSibling,n=i.lastChild;return!t||t.type.isError?null:{from:t.to,to:n.type.isError?i.to:n.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),du={test:i=>/^JSX/.test(i.name),facet:Wi({commentTokens:{block:{open:"{/*",close:"*/}"}}})},JO=rt.configure({dialect:"ts"},"typescript"),ea=rt.configure({dialect:"jsx",props:[Er.add(i=>i.isTop?[du]:void 0)]}),ta=rt.configure({dialect:"jsx ts",props:[Er.add(i=>i.isTop?[du]:void 0)]},"typescript"),$u=i=>({label:i,type:"keyword"}),pu="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map($u),GS=pu.concat(["declare","implements","private","protected","public"].map($u));function ui(i={}){let e=i.jsx?i.typescript?ta:ea:i.typescript?JO:rt,t=i.typescript?WS.concat(GS):hu.concat(pu);return new oe(e,[rt.data.of({autocomplete:ru(uu,nu(t))}),rt.data.of({autocomplete:LS}),i.jsx?DS:[]])}function IS(i){for(;;){if(i.name=="JSXOpenTag"||i.name=="JSXSelfClosingTag"||i.name=="JSXFragmentTag")return i;if(i.name=="JSXEscape"||!i.parent)return null;i=i.parent}}function lu(i,e,t=i.length){for(let n=e?.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return i.sliceString(n.from,Math.min(n.to,t));return""}var BS=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),DS=X.inputHandler.of((i,e,t,n,r)=>{if((BS?i.composing:i.compositionStarted)||i.state.readOnly||e!=t||n!=">"&&n!="/"||!rt.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,O=o.changeByRange(a=>{var l;let{head:h}=a,c=L(o).resolveInner(h-1,-1),f;if(c.name=="JSXStartTag"&&(c=c.parent),!(o.doc.sliceString(h-1,h)!=n||c.name=="JSXAttributeValue"&&c.to>h)){if(n==">"&&c.name=="JSXFragmentTag")return{range:a,changes:{from:h,insert:""}};if(n=="/"&&c.name=="JSXStartCloseTag"){let d=c.parent,$=d.parent;if($&&d.from==h-2&&((f=lu(o.doc,$.firstChild,h))||((l=$.firstChild)===null||l===void 0?void 0:l.name)=="JSXFragmentTag")){let p=`${f}>`;return{range:Q.cursor(h+p.length,-1),changes:{from:h,insert:p}}}}else if(n==">"){let d=IS(c);if(d&&d.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(h,h+2))&&(f=lu(o.doc,d,h)))return{range:a,changes:{from:h,insert:``}}}}return{range:a}});return O.changes.empty?!1:(i.dispatch([s,o.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var NS=55,FS=1,HS=56,KS=2,JS=57,eP=3,mu=4,tP=5,oa=6,wu=7,xu=8,ku=9,Xu=10,iP=11,nP=12,rP=13,ia=58,sP=14,oP=15,gu=59,vu=21,OP=23,Zu=24,aP=25,ra=27,Ru=28,lP=29,hP=32,cP=35,fP=37,uP=38,dP=0,$P=1,pP={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},mP={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},Qu={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function gP(i){return i==45||i==46||i==58||i>=65&&i<=90||i==95||i>=97&&i<=122||i>=161}var Su=null,Pu=null,yu=0;function sa(i,e){let t=i.pos+e;if(yu==t&&Pu==i)return Su;let n=i.peek(e),r="";for(;gP(n);)r+=String.fromCharCode(n),n=i.peek(++e);return Pu=i,yu=t,Su=r?r.toLowerCase():n==QP||n==SP?void 0:null}var Yu=60,ns=62,Oa=47,QP=63,SP=33,PP=45;function bu(i,e){this.name=i,this.parent=e}var yP=[oa,Xu,wu,xu,ku],bP=new It({start:null,shift(i,e,t,n){return yP.indexOf(e)>-1?new bu(sa(n,1)||"",i):i},reduce(i,e){return e==vu&&i?i.parent:i},reuse(i,e,t,n){let r=e.type.id;return r==oa||r==fP?new bu(sa(n,1)||"",i):i},strict:!1}),TP=new ee((i,e)=>{if(i.next!=Yu){i.next<0&&e.context&&i.acceptToken(ia);return}i.advance();let t=i.next==Oa;t&&i.advance();let n=sa(i,0);if(n===void 0)return;if(!n)return i.acceptToken(t?oP:sP);let r=e.context?e.context.name:null;if(t){if(n==r)return i.acceptToken(iP);if(r&&mP[r])return i.acceptToken(ia,-2);if(e.dialectEnabled(dP))return i.acceptToken(nP);for(let s=e.context;s;s=s.parent)if(s.name==n)return;i.acceptToken(rP)}else{if(n=="script")return i.acceptToken(wu);if(n=="style")return i.acceptToken(xu);if(n=="textarea")return i.acceptToken(ku);if(pP.hasOwnProperty(n))return i.acceptToken(Xu);r&&Qu[r]&&Qu[r][n]?i.acceptToken(ia,-1):i.acceptToken(oa)}},{contextual:!0}),wP=new ee(i=>{for(let e=0,t=0;;t++){if(i.next<0){t&&i.acceptToken(gu);break}if(i.next==PP)e++;else if(i.next==ns&&e>=2){t>=3&&i.acceptToken(gu,-2);break}else e=0;i.advance()}});function xP(i){for(;i;i=i.parent)if(i.name=="svg"||i.name=="math")return!0;return!1}var kP=new ee((i,e)=>{if(i.next==Oa&&i.peek(1)==ns){let t=e.dialectEnabled($P)||xP(e.context);i.acceptToken(t?tP:mu,2)}else i.next==ns&&i.acceptToken(mu,1)});function aa(i,e,t){let n=2+i.length;return new ee(r=>{for(let s=0,o=0,O=0;;O++){if(r.next<0){O&&r.acceptToken(e);break}if(s==0&&r.next==Yu||s==1&&r.next==Oa||s>=2&&so?r.acceptToken(e,-o):r.acceptToken(t,-(o-2));break}else if((r.next==10||r.next==13)&&O){r.acceptToken(e,1);break}else s=o=0;r.advance()}})}var XP=aa("script",NS,FS),vP=aa("style",HS,KS),ZP=aa("textarea",JS,eP),RP=se({"Text RawText IncompleteTag IncompleteCloseTag":u.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":u.angleBracket,TagName:u.tagName,"MismatchedCloseTag/TagName":[u.tagName,u.invalid],AttributeName:u.attributeName,"AttributeValue UnquotedAttributeValue":u.attributeValue,Is:u.definitionOperator,"EntityReference CharacterReference":u.character,Comment:u.blockComment,ProcessingInst:u.processingInstruction,DoctypeDecl:u.documentMeta}),zu=pe.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:bP,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[RP],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let l=O.type.id;if(l==lP)return na(O,a,t);if(l==hP)return na(O,a,n);if(l==cP)return na(O,a,r);if(l==vu&&s.length){let h=O.node,c=h.firstChild,f=c&&Tu(c,a),d;if(f){for(let $ of s)if($.tag==f&&(!$.attrs||$.attrs(d||(d=Vu(c,a))))){let p=h.lastChild,m=p.type.id==uP?p.from:h.to;if(m>c.to)return{parser:$.parser,overlay:[{from:c.to,to:m}]}}}}if(o&&l==Zu){let h=O.node,c;if(c=h.firstChild){let f=o[a.read(c.from,c.to)];if(f)for(let d of f){if(d.tagName&&d.tagName!=Tu(h.parent,a))continue;let $=h.lastChild;if($.type.id==ra){let p=$.from+1,m=$.lastChild,g=$.to-(m&&m.isError?0:1);if(g>p)return{parser:d.parser,overlay:[{from:p,to:g}],bracketed:!0}}else if($.type.id==Ru)return{parser:d.parser,overlay:[{from:$.from,to:$.to}]}}}}return null})}var zn=["_blank","_self","_top","_parent"],ha=["ascii","utf-8","utf-16","latin1","latin1"],ca=["get","post","put","delete"],fa=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],qe=["true","false"],R={},YP={a:{attrs:{href:null,ping:null,type:null,media:null,target:zn,hreflang:null}},abbr:R,address:R,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:R,aside:R,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:R,base:{attrs:{href:null,target:zn}},bdi:R,bdo:R,blockquote:{attrs:{cite:null}},body:R,br:R,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:fa,formmethod:ca,formnovalidate:["novalidate"],formtarget:zn,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:R,center:R,cite:R,code:R,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:R,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:R,div:R,dl:R,dt:R,em:R,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:R,figure:R,footer:R,form:{attrs:{action:null,name:null,"accept-charset":ha,autocomplete:["on","off"],enctype:fa,method:ca,novalidate:["novalidate"],target:zn}},h1:R,h2:R,h3:R,h4:R,h5:R,h6:R,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:R,hgroup:R,hr:R,html:{attrs:{manifest:null}},i:R,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:fa,formmethod:ca,formnovalidate:["novalidate"],formtarget:zn,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:R,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:R,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:R,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:ha,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:R,noscript:R,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:R,param:{attrs:{name:null,value:null}},pre:R,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:R,rt:R,ruby:R,samp:R,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:ha}},section:R,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:R,source:{attrs:{src:null,type:null,media:null}},span:R,strong:R,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:R,summary:R,sup:R,table:R,tbody:R,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:R,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:R,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:R,time:{attrs:{datetime:null}},title:R,tr:R,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:R,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:R},Uu={accesskey:null,class:null,contenteditable:qe,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:qe,autocorrect:qe,autocapitalize:qe,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":qe,"aria-autocomplete":["inline","list","both","none"],"aria-busy":qe,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":qe,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":qe,"aria-hidden":qe,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":qe,"aria-multiselectable":qe,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":qe,"aria-relevant":null,"aria-required":qe,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},Au="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(i=>"on"+i);for(let i of Au)Uu[i]=null;var di=class{constructor(e,t){this.tags={...YP,...e},this.globalAttrs={...Uu,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};di.default=new di;function $i(i,e,t=i.length){if(!e)return"";let n=e.firstChild,r=n&&n.getChild("TagName");return r?i.sliceString(r.from,Math.min(r.to,t)):""}function Gi(i,e=!1){for(;i;i=i.parent)if(i.name=="Element")if(e)e=!1;else return i;return null}function ju(i,e,t){let n=t.tags[$i(i,Gi(e))];return n?.children||t.allTags}function ua(i,e){let t=[];for(let n=Gi(e);n&&!n.type.isTop;n=Gi(n.parent)){let r=$i(i,n);if(r&&n.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=n.firstChild.to)&&t.push(r)}return t}var Wu=/^[:\-\.\w\u00b7-\uffff]*$/;function _u(i,e,t,n,r){let s=/\s*>/.test(i.sliceDoc(r,r+5))?"":">",o=Gi(t,t.name=="StartTag"||t.name=="TagName");return{from:n,to:r,options:ju(i.doc,o,e).map(O=>({label:O,type:"type"})).concat(ua(i.doc,t).map((O,a)=>({label:"/"+O,apply:"/"+O+s,type:"type",boost:99-a}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Cu(i,e,t,n){let r=/\s*>/.test(i.sliceDoc(n,n+5))?"":">";return{from:t,to:n,options:ua(i.doc,e).map((s,o)=>({label:s,apply:s+r,type:"type",boost:99-o})),validFor:Wu}}function zP(i,e,t,n){let r=[],s=0;for(let o of ju(i.doc,t,e))r.push({label:"<"+o,type:"type"});for(let o of ua(i.doc,t))r.push({label:"",type:"type",boost:99-s++});return{from:n,to:n,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function VP(i,e,t,n,r){let s=Gi(t),o=s?e.tags[$i(i.doc,s)]:null,O=o&&o.attrs?Object.keys(o.attrs):[],a=o&&o.globalAttrs===!1?O:O.length?O.concat(e.globalAttrNames):e.globalAttrNames;return{from:n,to:r,options:a.map(l=>({label:l,type:"property"})),validFor:Wu}}function _P(i,e,t,n,r){var s;let o=(s=t.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),O=[],a;if(o){let l=i.sliceDoc(o.from,o.to),h=e.globalAttrs[l];if(!h){let c=Gi(t),f=c?e.tags[$i(i.doc,c)]:null;h=f?.attrs&&f.attrs[l]}if(h){let c=i.sliceDoc(n,r).toLowerCase(),f='"',d='"';/^['"]/.test(c)?(a=c[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",d=i.sliceDoc(r,r+1)==c[0]?"":c[0],c=c.slice(1),n++):a=/^[^\s<>='"]*$/;for(let $ of h)O.push({label:$,apply:f+$+d,type:"constant"})}}return{from:n,to:r,options:O,validFor:a}}function Mu(i,e){let{state:t,pos:n}=e,r=L(t).resolveInner(n,-1),s=r.resolve(n);for(let o=n,O;s==r&&(O=r.childBefore(o));){let a=O.lastChild;if(!a||!a.type.isError||a.fromMu(n,r)}var qP=rt.parser.configure({top:"SingleExpression"}),Lu=[{tag:"script",attrs:i=>i.type=="text/typescript"||i.lang=="ts",parser:JO.parser},{tag:"script",attrs:i=>i.type=="text/babel"||i.type=="text/jsx",parser:ea.parser},{tag:"script",attrs:i=>i.type=="text/typescript-jsx",parser:ta.parser},{tag:"script",attrs(i){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(i.type)},parser:qP},{tag:"script",attrs(i){return!i.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(i.type)},parser:rt.parser},{tag:"style",attrs(i){return(!i.lang||i.lang=="css")&&(!i.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(i.type))},parser:vn.parser}],Gu=[{name:"style",parser:vn.parser.configure({top:"Styles"})}].concat(Au.map(i=>({name:i,parser:rt.parser}))),Iu=ue.define({name:"html",parser:zu.configure({props:[de.add({Element(i){let e=/^(\s*)(<\/)?/.exec(i.textAfter);return i.node.to<=i.pos+e[0].length?i.continue():i.lineIndent(i.node.from)+(e[2]?0:i.unit)},"OpenTag CloseTag SelfClosingTag"(i){return i.column(i.node.from)+i.unit},Document(i){if(i.pos+/\s*/.exec(i.textAfter)[0].lengthi.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),rs=Iu.configure({wrap:la(Lu,Gu)});function Ii(i={}){let e="",t;i.matchClosingTags===!1&&(e="noMatch"),i.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(i.nestedLanguages&&i.nestedLanguages.length||i.nestedAttributes&&i.nestedAttributes.length)&&(t=la((i.nestedLanguages||[]).concat(Lu),(i.nestedAttributes||[]).concat(Gu)));let n=t?Iu.configure({wrap:t,dialect:e}):e?rs.configure({dialect:e}):rs;return new oe(n,[rs.data.of({autocomplete:CP(i)}),i.autoCloseTags!==!1?AP:[],ui().support,ts().support])}var qu=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" "));function UP(i,e,t){for(var n;;){if(((n=e.lastChild)===null||n===void 0?void 0:n.name)!="CloseTag")return!1;let r=e.parent;if(!r||$i(i,r)!=t)return!0;e=r}}var AP=X.inputHandler.of((i,e,t,n,r)=>{if(i.composing||i.state.readOnly||e!=t||n!=">"&&n!="/"||!rs.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,O=o.changeByRange(a=>{var l;let h=o.doc.sliceString(a.from-1,a.to)==n,{head:c}=a,f=L(o).resolveInner(c,-1),d;if(h&&n==">"&&f.name=="EndTag"){let $=f.parent;if((d=$i(o.doc,$.parent,c))&&!qu.has(d)&&!UP(o.doc,$.parent,d)){let p=c+(o.doc.sliceString(c,c+1)===">"?1:0),m=``;return{range:a,changes:{from:c,to:p,insert:m}}}}else if(h&&n=="/"&&f.name=="IncompleteCloseTag"){let $=f.parent;if(f.from==c-2&&((l=$.lastChild)===null||l===void 0?void 0:l.name)!="CloseTag"&&(d=$i(o.doc,$,c))&&!qu.has(d)){let p=c+(o.doc.sliceString(c,c+1)===">"?1:0),m=`${d}>`;return{range:Q.cursor(c+m.length,-1),changes:{from:c,to:p,insert:m}}}}return{range:a}});return O.changes.empty?!1:(i.dispatch([s,o.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var Os=class i{static create(e,t,n,r,s){let o=r+(r<<8)+e+(t<<4)|0;return new i(e,t,n,o,s,[],[])}constructor(e,t,n,r,s,o,O){this.type=e,this.value=t,this.from=n,this.hash=r,this.end=s,this.children=o,this.positions=O,this.hashProp=[[Y.contextHash,r]]}addChild(e,t){e.prop(Y.contextHash)!=this.hash&&(e=new _(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math.max(t,this.positions[n]+this.children[n].length+this.from)),new _(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(r,s,o)=>new _(ie.none,r,s,o,this.hashProp)})}},y;(function(i){i[i.Document=1]="Document",i[i.CodeBlock=2]="CodeBlock",i[i.FencedCode=3]="FencedCode",i[i.Blockquote=4]="Blockquote",i[i.HorizontalRule=5]="HorizontalRule",i[i.BulletList=6]="BulletList",i[i.OrderedList=7]="OrderedList",i[i.ListItem=8]="ListItem",i[i.ATXHeading1=9]="ATXHeading1",i[i.ATXHeading2=10]="ATXHeading2",i[i.ATXHeading3=11]="ATXHeading3",i[i.ATXHeading4=12]="ATXHeading4",i[i.ATXHeading5=13]="ATXHeading5",i[i.ATXHeading6=14]="ATXHeading6",i[i.SetextHeading1=15]="SetextHeading1",i[i.SetextHeading2=16]="SetextHeading2",i[i.HTMLBlock=17]="HTMLBlock",i[i.LinkReference=18]="LinkReference",i[i.Paragraph=19]="Paragraph",i[i.CommentBlock=20]="CommentBlock",i[i.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",i[i.Escape=22]="Escape",i[i.Entity=23]="Entity",i[i.HardBreak=24]="HardBreak",i[i.Emphasis=25]="Emphasis",i[i.StrongEmphasis=26]="StrongEmphasis",i[i.Link=27]="Link",i[i.Image=28]="Image",i[i.InlineCode=29]="InlineCode",i[i.HTMLTag=30]="HTMLTag",i[i.Comment=31]="Comment",i[i.ProcessingInstruction=32]="ProcessingInstruction",i[i.Autolink=33]="Autolink",i[i.HeaderMark=34]="HeaderMark",i[i.QuoteMark=35]="QuoteMark",i[i.ListMark=36]="ListMark",i[i.LinkMark=37]="LinkMark",i[i.EmphasisMark=38]="EmphasisMark",i[i.CodeMark=39]="CodeMark",i[i.CodeText=40]="CodeText",i[i.CodeInfo=41]="CodeInfo",i[i.LinkTitle=42]="LinkTitle",i[i.LinkLabel=43]="LinkLabel",i[i.URL=44]="URL"})(y||(y={}));var pa=class{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}},ma=class{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return _n(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let r=t;r=e.stack[t.depth+1].value+t.baseIndent)return!0;if(t.indent>=t.baseIndent+4)return!1;let n=(i.type==y.OrderedList?va:Xa)(t,e,!1);return n>0&&(i.type!=y.BulletList||ka(t,e,!1)<0)&&t.text.charCodeAt(t.pos+n-1)==i.value}var rd={[y.Blockquote](i,e,t){return t.next!=62?!1:(t.markers.push(j(y.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1)),t.moveBase(t.pos+(Ne(t.text.charCodeAt(t.pos+1))?2:1)),i.end=e.lineStart+t.text.length,!0)},[y.ListItem](i,e,t){return t.indent-1?!1:(t.moveBaseColumn(t.baseIndent+i.value),!0)},[y.OrderedList]:Bu,[y.BulletList]:Bu,[y.Document](){return!0}};function Ne(i){return i==32||i==9||i==10||i==13}function _n(i,e=0){for(;et&&Ne(i.charCodeAt(e-1));)e--;return e}function sd(i){if(i.next!=96&&i.next!=126)return-1;let e=i.pos+1;for(;e-1&&i.depth==e.stack.length&&e.parser.leafBlockParsers.indexOf(ud.SetextHeading)>-1||n<3?-1:1}function Od(i,e){for(let t=i.stack.length-1;t>=0;t--)if(i.stack[t].type==e)return!0;return!1}function Xa(i,e,t){return(i.next==45||i.next==43||i.next==42)&&(i.pos==i.text.length-1||Ne(i.text.charCodeAt(i.pos+1)))&&(!t||Od(e,y.BulletList)||i.skipSpace(i.pos+2)=48&&r<=57;){n++;if(n==i.text.length)return-1;r=i.text.charCodeAt(n)}return n==i.pos||n>i.pos+9||r!=46&&r!=41||ni.pos+1||i.next!=49)?-1:n+1-i.pos}function ad(i){if(i.next!=35)return-1;let e=i.pos+1;for(;e6?-1:t}function ld(i){if(i.next!=45&&i.next!=61||i.indent>=i.baseIndent+4)return-1;let e=i.pos+1;for(;e/,cd=/\?>/,Qa=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(n);if(s)return i.append(j(y.Comment,t,t+1+s[0].length));let o=/^\?[^]*?\?>/.exec(n);if(o)return i.append(j(y.ProcessingInstruction,t,t+1+o[0].length));let O=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(n);return O?i.append(j(y.HTMLTag,t,t+1+O[0].length)):-1},Emphasis(i,e,t){if(e!=95&&e!=42)return-1;let n=t+1;for(;i.char(n)==e;)n++;let r=i.slice(t-1,t),s=i.slice(n,n+1),o=Un.test(r),O=Un.test(s),a=/\s|^$/.test(r),l=/\s|^$/.test(s),h=!l&&(!O||a||o),c=!a&&(!o||l||O),f=h&&(e==42||!c||o),d=c&&(e==42||!h||O);return i.append(new be(e==95?pd:md,t,n,(f?1:0)|(d?2:0)))},HardBreak(i,e,t){if(e==92&&i.char(t+1)==10)return i.append(j(y.HardBreak,t,t+2));if(e==32){let n=t+1;for(;i.char(n)==32;)n++;if(i.char(n)==10&&n>=t+2)return i.append(j(y.HardBreak,t,n+1))}return-1},Link(i,e,t){return e==91?i.append(new be(pi,t,t+1,1)):-1},Image(i,e,t){return e==33&&i.char(t+1)==91?i.append(new be(hs,t,t+2,1)):-1},LinkEnd(i,e,t){if(e!=93)return-1;for(let n=i.parts.length-1;n>=0;n--){let r=i.parts[n];if(r instanceof be&&(r.type==pi||r.type==hs)){if(!r.side||i.skipSpace(r.to)==t&&!/[(\[]/.test(i.slice(t+1,t+2)))return i.parts[n]=null,-1;let s=i.takeContent(n),o=i.parts[n]=MP(i,s,r.type==pi?y.Link:y.Image,r.from,t+1);if(r.type==pi)for(let O=0;Oe?j(y.URL,e+t,s+t):s==i.length?null:!1}}function Qd(i,e,t){let n=i.charCodeAt(e);if(n!=39&&n!=34&&n!=40)return!1;let r=n==40?41:n;for(let s=e+1,o=!1;s=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,n,r,s){return this.append(new be(e,t,n,(r?1:0)|(s?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let t=this.parts[e];if(t instanceof be&&(t.type==pi||t.type==hs))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let n=e;n=e;a--){let p=this.parts[a];if(p instanceof be&&p.side&1&&p.type==r.type&&!(s&&(r.side&1||p.side&2)&&(p.to-p.from+o)%3==0&&((p.to-p.from)%3||o%3))){O=p;break}}if(!O)continue;let l=r.type.resolve,h=[],c=O.from,f=r.to;if(s){let p=Math.min(2,O.to-O.from,o);c=O.to-p,f=r.from+p,l=p==1?"Emphasis":"StrongEmphasis"}O.type.mark&&h.push(this.elt(O.type.mark,c,O.to));for(let p=a+1;p=0;t--){let n=this.parts[t];if(n instanceof be&&n.type==e&&n.side&1)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}getDelimiterAt(e){let t=this.parts[e];return t instanceof be?t:null}skipSpace(e){return _n(this.text,e-this.offset)+this.offset}elt(e,t,n,r){return typeof e=="string"?j(this.parser.getNodeType(e),t,n,r):new ls(e,t)}};An.linkStart=pi;An.imageStart=hs;function Ta(i,e){if(!e.length)return i;if(!i.length)return e;let t=i.slice(),n=0;for(let r of e){for(;n(e?e-1:0))return!1;if(this.fragmentEnd<0){let s=this.fragment.to;for(;s>0&&this.input.read(s-1,s)!=` +`;)s--;this.fragmentEnd=s?s-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let r=e+this.fragment.offset;for(;n.to<=r;)if(!n.parent())return!1;for(;;){if(n.from>=r)return this.fragment.from<=t;if(!n.childAfter(r))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(Y.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,r=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,O=e.block.children.length,a=o,l=O;for(;;){if(t.to-n>r){if(t.type.isAnonymous&&t.firstChild())continue;break}let h=Pd(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,h);else{let c=new _(e.parser.nodeSet.types[y.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(c,t.tree),e.addNode(c,h)}if(t.type.is("Block")&&(EP.indexOf(t.type.id)<0?(o=t.to-n,O=e.block.children.length):(o=a,O=l),a=t.to-n,l=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>O;)e.block.children.pop(),e.block.positions.pop();return o-s}};function Pd(i,e){let t=i;for(let n=1;nss[i]),Object.keys(ss).map(i=>ud[i]),Object.keys(ss),jP,rd,Object.keys($a).map(i=>$a[i]),Object.keys($a),[]);function GP(i,e,t){let n=[];for(let r=i.firstChild,s=e;;r=r.nextSibling){let o=r?r.from:t;if(o>s&&n.push({from:s,to:o}),!r)break;s=r.to}return n}function bd(i){let{codeParser:e,htmlParser:t}=i;return{wrap:Ai((r,s)=>{let o=r.type.id;if(e&&(o==y.CodeBlock||o==y.FencedCode)){let O="";if(o==y.FencedCode){let l=r.node.getChild(y.CodeInfo);l&&(O=s.read(l.from,l.to))}let a=e(O);if(a)return{parser:a,overlay:l=>l.type.id==y.CodeText,bracketed:o==y.FencedCode}}else if(t&&(o==y.HTMLBlock||o==y.HTMLTag||o==y.CommentBlock))return{parser:t,overlay:GP(r.node,r.from,r.to)};return null})}}var IP={resolve:"Strikethrough",mark:"StrikethroughMark"},BP={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":u.strikethrough}},{name:"StrikethroughMark",style:u.processingInstruction}],parseInline:[{name:"Strikethrough",parse(i,e,t){if(e!=126||i.char(t+1)!=126||i.char(t+2)==126)return-1;let n=i.slice(t-1,t),r=i.slice(t+2,t+3),s=/\s|^$/.test(n),o=/\s|^$/.test(r),O=Un.test(n),a=Un.test(r);return i.addDelimiter(IP,t,t+2,!o&&(!a||s||O),!s&&(!O||o||a))},after:"Emphasis"}]};function Cn(i,e,t=0,n,r=0){let s=0,o=!0,O=-1,a=-1,l=!1,h=()=>{n.push(i.elt("TableCell",r+O,r+a,i.parser.parseInline(e.slice(O,a),r+O)))};for(let c=t;c-1)&&s++,o=!1,n&&(O>-1&&h(),n.push(i.elt("TableDelimiter",c+r,c+r+1))),O=a=-1):(l||f!=32&&f!=9)&&(O<0&&(O=c),a=c+1),l=!l&&f==92}return O>-1&&(s++,n&&h()),s}function Hu(i,e){for(let t=e;t\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,cs=class{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let r;if((t.next==45||t.next==58||t.next==124)&&Td.test(r=t.text.slice(t.pos))){let s=[];Cn(e,n.content,0,s,n.start)==Cn(e,r,0)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,s),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let r=[];Cn(e,t.text,t.pos,r,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,r))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}},DP={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":u.heading}},"TableRow",{name:"TableCell",style:u.content},{name:"TableDelimiter",style:u.processingInstruction}],parseBlock:[{name:"Table",leaf(i,e){return Hu(e.content,0)?new cs:null},endLeaf(i,e,t){if(t.parsers.some(r=>r instanceof cs)||!Hu(e.text,e.basePos))return!1;let n=i.peekLine();return Td.test(n)&&Cn(i,e.text,e.basePos)==Cn(i,n,e.basePos)},before:"SetextHeading"}]},xa=class{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}},NP={defineNodes:[{name:"Task",block:!0,style:u.list},{name:"TaskMarker",style:u.atom}],parseBlock:[{name:"TaskList",leaf(i,e){return/^\[[ xX]\][ \t]/.test(e.content)&&i.parentType().name=="ListItem"?new xa:null},after:"SetextHeading"}]},Ku=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,Ju=/[\w-]+(\.[\w-]+)+(:\d+)?(\/[^\s<]*)?/gy,FP=/[\w-]+\.[\w-]+($|[/:])/,ed=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,td=/\/[a-zA-Z\d@.]+/gy;function id(i,e,t,n){let r=0;for(let s=e;s-1)return-1;let n=e+t[0].length;for(;;){let r=i[n-1],s;if(/[?!.,:*_~]/.test(r)||r==")"&&id(i,e,n,")")>id(i,e,n,"("))n--;else if(r==";"&&(s=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(i.slice(e,n))))n=e+s.index;else break}return n}function nd(i,e){ed.lastIndex=e;let t=ed.exec(i);if(!t)return-1;let n=t[0][t[0].length-1];return n=="_"||n=="-"?-1:e+t[0].length-(n=="."?1:0)}var KP={parseInline:[{name:"Autolink",parse(i,e,t){let n=t-i.offset;if(n&&/\w/.test(i.text[n-1]))return-1;Ku.lastIndex=n;let r=Ku.exec(i.text),s=-1;if(!r)return-1;if(r[1]||r[2]){if(s=HP(i.text,n+r[0].length),s>-1&&i.hasOpenLink){let o=/([^\[\]]|\[[^\]]*\])*/.exec(i.text.slice(n,s));s=n+o[0].length}}else r[3]?s=nd(i.text,n):(s=nd(i.text,n+r[0].length),s>-1&&r[0]=="xmpp:"&&(td.lastIndex=s,r=td.exec(i.text),r&&(s=r.index+r[0].length)));return s<0?-1:(i.addElement(i.elt("URL",t,s+i.offset)),s+i.offset)}}]},wd=[DP,NP,BP,KP];function xd(i,e,t){return(n,r,s)=>{if(r!=i||n.char(s+1)==i)return-1;let o=[n.elt(t,s,s+1)];for(let O=s+1;O"}}}),zd=new Y,Vd=yd.configure({props:[Pe.add(i=>!i.is("Block")||i.is("Document")||Ya(i)!=null||JP(i)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),zd.add(Ya),de.add({Document:()=>null}),wt.add({Document:Yd})]});function Ya(i){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(i.name);return e?+e[1]:void 0}function JP(i){return i.name=="OrderedList"||i.name=="BulletList"}function e0(i,e){let t=i;for(;;){let n=t.nextSibling,r;if(!n||(r=Ya(n.type))!=null&&r<=e)break;t=n}return t.to}var t0=bc.of((i,e,t)=>{for(let n=L(i).resolveInner(t,-1);n&&!(n.fromt)return{from:t,to:s}}return null});function za(i){return new fe(Yd,i,[],"markdown")}var i0=za(Vd),n0=Vd.configure([wd,Xd,kd,vd,{props:[Pe.add({Table:(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}]),fs=za(n0);function r0(i,e){return t=>{if(t&&i){let n=null;if(t=/\S*/.exec(t)[0],typeof i=="function"?n=i(t):n=Pn.matchLanguageName(i,t,!0),n instanceof Pn)return n.support?n.support.language.parser:hi.getSkippingParser(n.load());if(n)return n.parser}return e?e.parser:null}}var jn=class{constructor(e,t,n,r,s,o,O){this.node=e,this.from=t,this.to=n,this.spaceBefore=r,this.spaceAfter=s,this.type=o,this.item=O}blank(e,t=!0){let n=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;n.length0;r--)n+=" ";return n+(t?this.spaceAfter:"")}}marker(e,t){let n=this.node.name=="OrderedList"?String(+Cd(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}};function _d(i,e){let t=[],n=[];for(let r=i;r;r=r.parent){if(r.name=="FencedCode")return n;(r.name=="ListItem"||r.name=="Blockquote")&&t.push(r)}for(let r=t.length-1;r>=0;r--){let s=t[r],o,O=e.lineAt(s.from),a=s.from-O.from;if(s.name=="Blockquote"&&(o=/^ *>( ?)/.exec(O.text.slice(a))))n.push(new jn(s,a,a+o[0].length,"",o[1],">",null));else if(s.name=="ListItem"&&s.parent.name=="OrderedList"&&(o=/^( *)\d+([.)])( *)/.exec(O.text.slice(a)))){let l=o[3],h=o[0].length;l.length>=4&&(l=l.slice(0,l.length-4),h-=4),n.push(new jn(s.parent,a,a+h,o[1],l,o[2],s))}else if(s.name=="ListItem"&&s.parent.name=="BulletList"&&(o=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(O.text.slice(a)))){let l=o[4],h=o[0].length;l.length>4&&(l=l.slice(0,l.length-4),h-=4);let c=o[2];o[3]&&(c+=o[3].replace(/[xX]/," ")),n.push(new jn(s.parent,a,a+h,o[1],l,c,s))}}return n}function Cd(i,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(i.from,i.from+10))}function Za(i,e,t,n=0){for(let r=-1,s=i;;){if(s.name=="ListItem"){let O=Cd(s,e),a=+O[2];if(r>=0){if(a!=r+1)return;t.push({from:s.from+O[1].length,to:s.from+O[0].length,insert:String(r+2+n)})}r=a}let o=s.nextSibling;if(!o)break;s=o}}function Va(i,e){let t=/^[ \t]*/.exec(i)[0].length;if(!t||e.facet(Wt)!=" ")return i;let n=xe(i,4,t),r="";for(let s=n;s>0;)s>=4?(r+=" ",s-=4):(r+=" ",s--);return r+i.slice(t)}var s0=(i={})=>({state:e,dispatch:t})=>{let n=L(e),{doc:r}=e,s=null,o=e.changeByRange(O=>{if(!O.empty||!fs.isActiveAt(e,O.from,-1)&&!fs.isActiveAt(e,O.from,1))return s={range:O};let a=O.from,l=r.lineAt(a),h=_d(n.resolveInner(a,-1),r);for(;h.length&&h[h.length-1].from>a-l.from;)h.pop();if(!h.length)return s={range:O};let c=h[h.length-1];if(c.to-c.spaceAfter.length>a-l.from)return s={range:O};let f=a>=c.to-c.spaceAfter.length&&!/\S/.test(l.text.slice(c.to));if(c.item&&f){if(c.item.from]*$/.test(l.text.slice(0,c.to)))return s={range:O};let g=c.node.firstChild,P=c.node.getChild("ListItem","ListItem");if(g.to>=a||P&&P.to0&&!/[^\s>]/.test(r.lineAt(l.from-1).text)||i.nonTightLists===!1){let S=h.length>1?h[h.length-2]:null,z,b="";S&&S.item?(z=l.from+S.from,b=S.marker(r,1)):z=l.from+(S?S.to:0);let x=[{from:z,to:a,insert:b}];return c.node.name=="OrderedList"&&Za(c.item,r,x,-2),S&&S.node.name=="OrderedList"&&Za(S.item,r,x),{range:Q.cursor(z+b.length),changes:x}}else{let S=Rd(h,e,l);return{range:Q.cursor(a+S.length+1),changes:{from:l.from,insert:S+e.lineBreak}}}}if(c.node.name=="Blockquote"&&f&&l.from){let g=r.lineAt(l.from-1),P=/>\s*$/.exec(g.text);if(P&&P.index==c.from){let S=e.changes([{from:g.from+P.index,to:g.to},{from:l.from+c.from,to:l.to}]);return{range:O.map(S),changes:S}}}let d=[];c.node.name=="OrderedList"&&Za(c.item,r,d);let $=c.item&&c.item.from]*/.exec(l.text)[0].length>=c.to)for(let g=0,P=h.length-1;g<=P;g++)p+=g==P&&!$?h[g].marker(r,1):h[g].blank(gl.from&&/\s/.test(l.text.charAt(m-l.from-1));)m--;return p=Va(p,e),O0(c.node,e.doc)&&(p=Rd(h,e,l)+e.lineBreak+p),d.push({from:m,to:a,insert:e.lineBreak+p}),{range:Q.cursor(m+p.length+1),changes:d}});return s?!1:(t(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)},o0=s0();function Zd(i){return i.name=="QuoteMark"||i.name=="ListMark"}function O0(i,e){if(i.name!="OrderedList"&&i.name!="BulletList")return!1;let t=i.firstChild,n=i.getChild("ListItem","ListItem");if(!n)return!1;let r=e.lineAt(t.to),s=e.lineAt(n.from),o=/^[\s>]*$/.test(r.text);return r.number+(o?0:1){let t=L(i),n=null,r=i.changeByRange(s=>{let o=s.from,{doc:O}=i;if(s.empty&&fs.isActiveAt(i,s.from)){let a=O.lineAt(o),l=_d(a0(t,o),O);if(l.length){let h=l[l.length-1],c=h.to-h.spaceAfter.length+(h.spaceAfter?1:0);if(o-a.from>c&&!/\S/.test(a.text.slice(c,o-a.from)))return{range:Q.cursor(a.from+c),changes:{from:a.from+c,to:o}};if(o-a.from==c&&(h.item&&a.from<=h.item.from||/^[\s>]*$/.test(a.text.slice(0,h.to)))){let f=a.from+h.from;if(h.item&&h.node.from{var t;let{main:n}=e.state.selection;if(n.empty)return!1;let r=(t=i.clipboardData)===null||t===void 0?void 0:t.getData("text/plain");if(!r||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(r)||(/^www\./.test(r)&&(r="https://"+r),!fs.isActiveAt(e.state,n.from,1)))return!1;let s=L(e.state),o=!1;return s.iterate({from:n.from,to:n.to,enter:O=>{(O.from>n.from||u0.test(O.name))&&(o=!0)},leave:O=>{O.to=97&&i<=122||i>=65&&i<=90}function Wn(i){return i==95||i>=128||Md(i)}function Ca(i){return i>=48&&i<=55||i>=97&&i<=102||i>=65&&i<=70}var v1={int:!0,integer:!0,bool:!0,boolean:!0,float:!0,double:!0,real:!0,string:!0,array:!0,object:!0,unset:!0,__proto__:null},Z1=new ee(i=>{if(i.next==40){i.advance();let e=0;for(;Wd(i.peek(e));)e++;let t="",n;for(;Md(n=i.peek(e));)t+=String.fromCharCode(n),e++;for(;Wd(i.peek(e));)e++;i.peek(e)==41&&v1[t.toLowerCase()]&&i.acceptToken($0)}else if(i.next==60&&i.peek(1)==60&&i.peek(2)==60){for(let n=0;n<3;n++)i.advance();for(;i.next==32||i.next==9;)i.advance();let e=i.next==39;if(e&&i.advance(),!Wn(i.next))return;let t=String.fromCharCode(i.next);for(;i.advance(),!(!Wn(i.next)&&!(i.next>=48&&i.next<=55));)t+=String.fromCharCode(i.next);if(e){if(i.next!=39)return;i.advance()}if(i.next!=10&&i.next!=13)return;for(;;){let n=i.next==10||i.next==13;if(i.advance(),i.next<0)return;if(n){for(;i.next==32||i.next==9;)i.advance();let r=!0;for(let s=0;s{i.next<0&&i.acceptToken(S0)}),Y1=new ee((i,e)=>{i.next==63&&e.canShift(Ud)&&i.peek(1)==62&&i.acceptToken(Ud)});function z1(i){let e=i.peek(1);if(e==110||e==114||e==116||e==118||e==101||e==102||e==92||e==36||e==34||e==123)return 2;if(e>=48&&e<=55){let t=2,n;for(;t<5&&(n=i.peek(t))>=48&&n<=55;)t++;return t}if(e==120&&Ca(i.peek(2)))return Ca(i.peek(3))?4:3;if(e==117&&i.peek(2)==123)for(let t=3;;t++){let n=i.peek(t);if(n==125)return t==2?0:t+1;if(!Ca(n))break}return 0}var V1=new ee((i,e)=>{let t=!1;for(;!(i.next==34||i.next<0||i.next==36&&(Wn(i.peek(1))||i.peek(1)==123)||i.next==123&&i.peek(1)==36);t=!0){if(i.next==92){let n=z1(i);if(n){if(t)break;return i.acceptToken(g0,n)}}else if(!t&&(i.next==91||i.next==45&&i.peek(1)==62&&Wn(i.peek(2))||i.next==63&&i.peek(1)==45&&i.peek(2)==62&&Wn(i.peek(3)))&&e.canShift(Q0))break;i.advance()}t&&i.acceptToken(m0)}),_1=se({"Visibility abstract final static":u.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":u.controlKeyword,"endif endfor endforeach endswitch endwhile declare enddeclare goto match":u.controlKeyword,"and or xor yield unset clone instanceof insteadof":u.operatorKeyword,"function fn class trait implements extends const enum global interface use var":u.definitionKeyword,"include include_once require require_once namespace":u.moduleKeyword,"new from echo print array list as":u.keyword,null:u.null,Boolean:u.bool,VariableName:u.variableName,"NamespaceName/...":u.namespace,"NamedType/...":u.typeName,Name:u.name,"CallExpression/Name":u.function(u.variableName),"LabelStatement/Name":u.labelName,"MemberExpression/Name":u.propertyName,"MemberExpression/VariableName":u.special(u.propertyName),"ScopedExpression/ClassMemberName/Name":u.propertyName,"ScopedExpression/ClassMemberName/VariableName":u.special(u.propertyName),"CallExpression/MemberExpression/Name":u.function(u.propertyName),"CallExpression/ScopedExpression/ClassMemberName/Name":u.function(u.propertyName),"MethodDeclaration/Name":u.function(u.definition(u.variableName)),"FunctionDefinition/Name":u.function(u.definition(u.variableName)),"ClassDeclaration/Name":u.definition(u.className),UpdateOp:u.updateOperator,ArithOp:u.arithmeticOperator,"LogicOp IntersectionType/&":u.logicOperator,BitOp:u.bitwiseOperator,CompareOp:u.compareOperator,ControlOp:u.controlOperator,AssignOp:u.definitionOperator,"$ ConcatOp":u.operator,LineComment:u.lineComment,BlockComment:u.blockComment,Integer:u.integer,Float:u.float,String:u.string,ShellExpression:u.special(u.string),"=> ->":u.punctuation,"( )":u.paren,"#[ [ ]":u.squareBracket,"${ { }":u.brace,"-> ?->":u.derefOperator,", ; :: : \\":u.separator,"PhpOpen PhpClose":u.processingInstruction}),C1={__proto__:null,static:325,STATIC:325,class:351,CLASS:351},Ed=pe.deserialize({version:14,states:"%$dQ`OWOOQhQaOOP%oO`OOOOO#t'#Hh'#HhO%tO#|O'#DuOOO#u'#Dx'#DxQ&SOWO'#DxO&XO$VOOOOQ#u'#Dy'#DyO&lQaO'#D}O'[QdO'#EQO+QQdO'#IrO+_QdO'#ERO-RQaO'#EXO/bQ`O'#EUO/gQ`O'#E_O2UQaO'#E_O2]Q`O'#EgO2bQ`O'#EqO-RQaO'#EqO2mQpO'#FOO2rQ`O'#FOOOQS'#Ir'#IrO2wQ`O'#ExOOQS'#Ii'#IiO5SQdO'#IfO9UQeO'#F]O-RQaO'#FlO-RQaO'#FmO-RQaO'#FnO-RQaO'#FoO-RQaO'#FoO-RQaO'#FrOOQO'#Is'#IsO9cQ`O'#FxOOQO'#Ht'#HtO9kQ`O'#HXO:VQ`O'#FsO:bQ`O'#HfO:mQ`O'#GPO:uQaO'#GQO-RQaO'#G`O-RQaO'#GcO;bOrO'#GfOOQS'#JR'#JROOQS'#JQ'#JQOOQS'#If'#IfO/bQ`O'#GmO/bQ`O'#GoO/bQ`O'#GtOhQaO'#GvO;iQ`O'#GwO;nQ`O'#GzO:]Q`O'#G}O;sQeO'#HOO;sQeO'#HPO;sQeO'#HQO;}Q`O'#HROhQ`O'#HVO:]Q`O'#HWO>mQ`O'#HWO;}Q`O'#HXO:]Q`O'#HZO:]Q`O'#H[O:]Q`O'#H]O>rQ`O'#H`O>}Q`O'#HaOQO!$gQ`O,5POOQ#u-E;h-E;hO!1TQ`O,5=tOOO#u,5:_,5:_O!1`O#|O,5:_OOO#u-E;g-E;gOOOO,5>},5>}OOQ#y1G0T1G0TO!1hQ`O1G0YO-RQaO1G0YO!2zQ`O1G0qOOQS1G0q1G0qOOQS'#Eo'#EoOOQS'#Im'#ImO-RQaO'#ImOOQS1G0r1G0rO!4^Q`O'#IpO!5sQ`O'#IrO!6QQaO'#EwOOQO'#Ip'#IpO!6[Q`O'#IoO!6dQ`O,5;aO-RQaO'#FXOOQS'#FW'#FWOOQS1G1[1G1[O!6iQdO1G1dO!8nQdO1G1dO!:ZQdO1G1dO!;vQdO1G1dO!=cQdO1G1dO!?OQdO1G1dO!@kQdO1G1dO!BWQdO1G1dO!CsQdO1G1dO!E`QdO1G1dO!F{QdO1G1dO!HhQdO1G1dO!JTQdO1G1dO!KpQdO1G1dO!M]QdO1G1dO!NxQdO1G1dOOQT1G0_1G0_O!#_Q`O,5<_O#!eQaO'#EYOOQS1G0[1G0[O#!lQ`O,5:zOEdQaO,5:zO#!qQaO,5;OO#!xQdO,5:|O#$wQdO,5?VO#&vQaO'#HmO#'WQ`O,5?UOOQS1G0e1G0eO#'`Q`O1G0eO#'eQ`O'#IlO#(}Q`O'#IlO#)VQ`O,5;SOG|QaO,5;SOOQS1G0w1G0wOOQO,5>^,5>^OOQO-E;p-E;pOOQS1G1U1G1UO#)sQdO'#FQO#+xQ`O'#HsOJ}QpO1G1UO2wQ`O'#HpO#+}QtO,5;eO2wQ`O'#HqO#,lQtO,5;gO#-ZQaO1G1OOOQS,5;h,5;hO#/jQtO'#FQO#/wQdO1G0dO-RQaO1G0dO#1dQdO1G1aO#3PQdO1G1cOOQO,5X,5>XOOQO-E;k-E;kOOQS7+&P7+&PO!+lQaO,5;TO$$mQaO'#HnO$$wQ`O,5?WOOQS1G0n1G0nO$%PQ`O1G0nPOQO'#FQ'#FQOOQO,5>_,5>_OOQO-E;q-E;qOOQS7+&p7+&pOOQS,5>[,5>[OOQS-E;n-E;nO$%UQtO,5>]OOQS-E;o-E;oO$%sQdO7+&jO$'xQtO'#FQO$(VQdO7+&OOOQS1G0j1G0jOOQO,5>a,5>aOOQO-E;s-E;sOOQ#u7+(x7+(xO!$_QdO7+(xOOQ#u7+(}7+(}O#JuQ`O7+(}O#JzQ`O7+(}OOQ#u7+(z7+(zO!.`Q`O7+(zO!1WQ`O7+(zO!1TQ`O7+(zO$)rQ`O,5j,5>jOOQS-E;|-E;|O$/]QdO7+'qO$/mQpO7+'qO$/xQdO'#IzOOQO,5qOOQ#u,5>q,5>qOOQ#u-EpOOQS-EvQdO1G2^OOQS,5>i,5>iOOQS-E;{-E;{OOQ#u7+({7+({O$@`Q`O'#GXO:]Q`O'#H_OOQO'#IW'#IWO$AVQ`O,5=xOOQ#u,5=x,5=xO$BSQ!bO'#EQO$BkQ!bO7+(}O$ByQpO7+)RO#KbQpO7+)RO$CRQ`O'#HbO!$_QdO7+)RO$CaQdO,5>sOOQS-EVOOQS-E;i-E;iO$ElQdO<Z,5>ZOOQO-E;m-E;mOOQS1G1_1G1_O$9cQaO,5:uO$HnQaO'#HlO$H{Q`O,5?ROOQS1G0`1G0`OOQS7+&Q7+&QO$ITQ`O7+&UO$JjQ`O1G0oO$LPQ`O,5>YOOQO,5>Y,5>YOOQO-E;l-E;lOOQS7+&Y7+&YOOQS7+&U7+&UOOQ#u<d,5>dOOQO-E;v-E;vOOQS<mOOQ#u-EnOOQO-EW,5>WOOQO-E;j-E;jO!+lQaO,5;UOOQ#uANBTANBTO#JuQ`OANBTOOQ#uANBQANBQO!.`Q`OANBQO!+lQaO7+'hOOQO7+'l7+'lO%.^Q`O7+'hO%/sQ`O7+'hO%0OQ`O7+'lO%0TQ`O7+'mO!+lQaO7+'mOOQO7+'m7+'mO%0cQdO'#F}OOQO'#Hw'#HwO%0tQ`O,5f,5>fOOQS-E;x-E;xOOQO1G2_1G2_O$1yQdO1G2_O$0ZQpO1G2_O#JzQ`O1G2]O!.pQdO1G2aO%%`Q!bO1G2]O!$_QdO1G2]OOQO1G2a1G2aOOQO1G2]1G2]O%4PQaO'#G]OOQO1G2b1G2bOOQSAN@xAN@xO!.`Q`OAN@xOOOQ<]O%7|Q!bO'#FQO!$_QdOANBXOOQ#uANBXANBXO:]Q`O,5=}O%8bQ`O,5=}O%8mQ`O'#IYO%9RQ`O,5?tOOQS1G3h1G3hOOQS7+)y7+)yP%+zQpOANBXO%9ZQ`O1G0pOOQ#uG27oG27oOOQ#uG27lG27lO%:pQ`O<e,5>eO%=tQ`O,5>eOOQO-E;w-E;wO%=yQ`O1G5POOQSG26VG26VO$,bQpOG26VO2wQ`OG26VO%>RQdOG26cO-RQaOG26cOOQO7+'y7+'yO$1yQdO7+'yO%%`Q!bO7+'wO!$_QdO7+'wOOQO7+'{7+'{OOQO7+'w7+'wO%>cQ`OLD+}O%?rQ`O'#IrO%?|Q`O'#IiO!$_QdO'#IPO%AvQaO,5t,5>tOOQO-Ek,5>kOOQP-E;}-E;}OOQO1G2c1G2cOOQ#uLD,kLD,kOOQTG27[G27[O!$_QdOLD-RO!$_QdO<OO%HaQ`O,5>OPOQ#uLD-_LD-_OOQO7+'o7+'oO+_QdO7+'oOOQS!$( ]!$( ]OOQOAN@}AN@}OOQS1G2d1G2dOOQS1G2e1G2eO%HlQdO1G2eOOQ#u!$(!m!$(!mOOQOANBVANBVOOQO1G3j1G3jO:]Q`O1G3jOOQO<dQdO1G1dO&@YQdO1G1dO&BOQdO1G1dO&CtQdO1G1dO&EjQdO1G1dO&G`QdO,5:|O&IUQdO,5?VO&JzQdO1G0dO#-ZQaO1G0dO&LpQdO1G1aO&NfQdO1G1cO#-ZQaO1G2VO#-ZQaO7+%tO'![QdO7+%tO'$QQdO7+&OO#-ZQaO7+'qO'%vQdO7+'qO''lQdO<`Q`O1G2VO'>hQ`O7+'qO'>pQpO7+'qO'>{QpO<WQdO1G1dO(@]QdO1G1dO(BbQdO,5:|O(DgQdO,5?VO(FlQdO1G0dO'2gQaO1G0dO(HqQdO1G1aO(JvQdO1G1cO'2gQaO1G2VO'2gQaO7+%tO(L{QdO7+%tO) QQdO7+&OO'2gQaO7+'qO)#VQdO7+'qO)%[QdO<aQdO,5rQdO1G1cOpO*JUQ`O,5>VO*KkQdO<zQ`O,5<}O+@aQ`O1G0YO!+lQaO1G0YO+AsQ`O1G1dO+CYQ`O1G1dO+DoQ`O1G1dO+FUQ`O1G1dO+GkQ`O1G1dO+IQQ`O1G1dO+JgQ`O1G1dO+K|Q`O1G1dO+McQ`O1G1dO+NxQ`O1G1dO,!_Q`O1G1dO,#tQ`O1G1dO,%ZQ`O1G1dO,&pQ`O1G1dO,(VQ`O1G1dO,)lQ`O1G0dO!+lQaO1G0dO,+RQ`O1G1aO,,hQ`O1G1cO,-}Q`O1G2VO$9cQaO,5mQ`O'#FsO!+lQaO'#EbO!+lQaO'#IkO,>uQaO,5:xO,>|QaO,5:xO$9cQaO,5;uO+2^QaO,5;uO$9cQaO,5;wO,@{QdO,5cQ`O,5SQaO,5;OO.>ZQaO,5;OO$9cQaO1G0jO+2^QaO1G0jO.@YQ`O'#IkO.AlQdO'#IkO.ERQ`O'#IfO.E`Q`O'#GPO.EhQaO,5:nO.EoQ`O,5`O~P$9cOP8QOU_O[:{Oo?}Os#fOx:{Oy:{O}aO!O^O!QaO#X`O#dhO#fbO#gcO#sdO$[<_O$d:{O$e<_O$hqO%TyO~P$9cOP8QOU_O[:{Oo?}Os#fOx:{Oy:{O}aO!O^O!QzO#X`O#dhO#fbO#gcO#sdO$[<_O$d:{O$e<_O$hqO%TxO#T#PO$R8]O$S8aO$T8bO$U8cO$V8dO$X8fO$Y8gO$Z8hO$[8iO$]8jO$^8kO$_8kO%T#cO~P!%dOT8^Oz8[O!S8_O!c8`O!w:hO#P>wO#T#PO$R8]O$S8aO$T8bO$U8cO$V8dO$X8fO$Y8gO$Z8hO$[8iO$]8jO$^8kO$_8kO%T#cO!n'_X!r'_X!o'_X#O'_X!p'_X'Q'_X~P!%dOT'YXz'YX!S'YX!c'YX!w'YX!z'YX#O'YX#T'YX#X'YX#a'YX#b'YX#y'YX$R'YX$S'YX$T'YX$U'YX$V'YX$X'YX$Y'YX$Z'YX$['YX$]'YX$^'YX$_'YX%T'YX~O#|;OO$O;PO!y'YX~P.CbO!z$hO#T?TO~O!r;]O~PeO~O!r@TO#P:{O~OT8^Oz8[O!S8_O!c8`O!r>fO!w:hO#T#PO$R8]O$S8aO$T8bO$U8cO$V8dO$X8fO$Y8gO$Z8hO$[8iO$]8jO$^8kO$_8kO%T#cO~P!%dOT8^Oz8[O!S8_O!c8`O!r>gO!w:hO#T#PO$R8]O$S8aO$T8bO$U8cO$V8dO$X8fO$Y8gO$Z8hO$[8iO$]8jO$^8kO$_8kO%T#cO~P!%dO!r@UO#P>lO~O!r@VO#P>qO~O#P>qO#T'ZO#n'XO~O#P:{O#T'ZO#n'XO~O#P>rO#T'ZO#n'XO~O#P>uO#T'ZO#n'XO~O!z$hO#T?wO~Oo?QOs$lO~O!z$hO#T?xO~O#O?ZO!n'rX!p'rX'Q'rX~O!z$hO#T@PO~O!z$hO#T@QO~O!z$hO#T@RO~Oo?uOs$lO~Oo@OOs$lO~Oo?}Os$lO~O%X$]%W$k!e$^#d%`#g'w'X#f~",goto:"%2U'}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP(OP(VPP(](`PPP(xP(`*q(`6gP6gPP>hGOGRPP6gGX! YP! ]P! ]PPGX! l! o! sGXGXPP! vP! yPPGX!)}!0z!0zGX!1OP!1O!1O!1O!2ZP!;s!X#>_#>e#>o#>u#>{#?Z#?a#?k#?q#?w#?}#@T#@_#@i#@o#@u#APPPPPPPPP#AV#AZP#BP$)^$)a$)k$1x$2U$2k$2qP$2t$2w$2}$6U$@U$Ho$Hr$Hx$H{$IS$Lf$Li$Lr$Lz$MU$Mm$NT% O%)SPP%1U%1Y%1f%1{%2RQ!nQT!qV!rQUOR%x!mRVO}!hPVX!S!j!r!s!w%O%Q%T%V(j,U,X.z.|/U1T1U1^2e|!hPVX!S!j!r!s!w%O%Q%T%V(j,U,X.z.|/U1T1U1^2eQ%_!ZQ%h!aQ%m!eQ'k$cQ'z$iQ)f%lQ+['}Q,o)SU.T+X+Z+aQ.o+tQ/e,nS0g.Y.ZQ0w.iQ1v0]S2P0f0jQ2Y0tQ2z1xQ2}2QR3e3O|ZPVX!S!j!r!s!w%O%Q%T%V(j,U,X.z.|/U1T1U1^2e2pf]`cgjklmnoprxyz!W!X!Y!]!e!f!g!y!z#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r#}$Q$R$T$h$z%S%U%d%r%}&S&W&[&q&t&u&x'P'X'Z']'a'e'p'v'{(T(X(Y([(](^(v)V)Z)b)e)i)p)w){*X*]*^*t*y+O+P+U+]+`+b+c+n+q+u+x,^,g,i,k,m,y,|-S-d-e-x-z.P.X.[.a.b.c.g/^/s0O0T0Z0h0k1X1Y1h1q1s1w2R2T2s2{3w3y3|3}4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7r7s7t7x8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:V:W:X:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?]?^?c?g?h?y?z?{@S@T@U@VS$ku$`Q%W!V^%e!_$a'j)[.k0u2WQ%i!bQ%j!cQ%k!dQ%v!kS&V!|)}Q&]#OQ'l$dQ'm$eS(O$j'hQ)U%`Q*x'nQ,O(dQ,S(fQ-W)kU.l+r.h0sQ.v,PQ.w,QQ/i,zS0].O0_Q1_/hQ1k/wS2]0y2`Q2p1fQ3_2qQ3g3TQ3h3UQ3l3`Q3o3iR3p3m0}!OPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(T(X(j(v)V)Z)p)w){)}*X*]*^+P+b,U,X,^,g,i,k-d-e-x.P.a.z.|/U/^0O0T0Z0k0y1T1U1X1Y1^1q1s1w2T2`2e2{3y4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?h0|!OPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(T(X(j(v)V)Z)p)w){)}*X*]*^+P+b,U,X,^,g,i,k-d-e-x.P.a.z.|/U/^0O0T0Z0k0y1T1U1X1Y1^1q1s1w2T2`2e2{3y4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?hQ#h^Q%O!PQ%P!QQ%Q!RQ,f(uQ.z,VR/O,YR&r#hQ*S&qR/|-e0}hPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(T(X(j(v)V)Z)p)w){)}*X*]*^+P+b,U,X,^,g,i,k-d-e-x.P.a.z.|/U/^0O0T0Z0k0y1T1U1X1Y1^1q1s1w2T2`2e2{3y4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?hR#j_k#n`j#i#q&t&x5m5n9a:Z:[:]:^R#saT&}#r'PR-l*^R&R!{0|hPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(T(X(j(v)V)Z)p)w){)}*X*]*^+P+b,U,X,^,g,i,k-d-e-x.P.a.z.|/U/^0O0T0Z0k0y1T1U1X1Y1^1q1s1w2T2`2e2{3y4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?hR#tb-z!}[#e#k#u$U$V$W$X$Y$Z$v$w%X%Z%]%a%s%|&O&U&_&`&a&b&c&d&e&f&g&h&i&j&k&l&m&n&v&w&|'`'b'c(g(z)x)z)|*Q*W*j*l+e+h,r,u-[-^-`-i-j-k-}._/T/a/{0V0a0l1m1p1u2S2[2h2w2x2y3P3d4f4g4m4n4o4p4q4r4s4u4v4w4x4y4z4{4|4}5O5P5Q5R5S5T5U5V5W5Y5Z5^5_5a5b5c5f5g5i5}6n6o6p6q6r6s6t6v6w6x6y6z6{6|6}7O7P7Q7R7S7T7U7V7W7X7Z7[7_7`7b7c7d7g7h7j7v7z8r8s8t8u8v8w8y8z8{8}9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9]9_9`9c9e9f9m9n9p9r9s9t9u9v9w9z9{9}:Q:y;R;S;T;U;V;W;Z;[;^;_;`;a;b;c;d;e;f;g;h;i;j;k;l;m;o;p;u;v;y;{;|O>P>Q>R>S>T>U>V>W>X>Y>Z>[>]>^>_>b>c>d>h>i>j>k>m>n>o>p>s>t>v>{>|?U?V?W?`?k?lQ'd$[Y(Z$s8x;Y=g=hS(_3x7uQ(b$tR+}(cT&X!|)}#c$Pg#}$h'X'Z'p'v'{(Y(^)b)e*t*y+O+U+]+`+c+n+q+r+x,m,y,|-z.X.[.b.g.h0h0s2R3w3|3}7r7s7t8Q:V:W:X?]?^?c?y?z?{@S@T@U@V3}fPVX]`cgjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r#}$Q$R$T$h$z%O%Q%S%T%U%V%d%r%}&S&W&[&q&t&u&x'P'X'Z']'a'e'p'v'{(T(X(Y([(](^(j(v)V)Z)b)e)i)p)w){)}*X*]*^*t*y+O+P+U+]+`+b+c+n+q+r+u+x,U,X,^,g,i,k,m,y,|-S-d-e-x-z.P.X.[.a.b.c.g.h.z.|/U/^/s0O0T0Z0h0k0s0y1T1U1X1Y1^1h1q1s1w2R2T2`2e2s2{3w3y3|3}4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7r7s7t7x8Q8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:V:W:X:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?]?^?c?g?h?y?z?{@S@T@U@V[#wd#x3q3r3s3th'V#z'W)h-R-Y/p/z1l3u3v3z3{Q)g%nR-X)mY#yd%n)m3q3rV'T#x3s3t1fePVX]`cjklmnoprxyz!S!W!X!Y!]!e!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a'e(T(X([(](j(v)V)Z)i)p)w){)}*X*]*^+P+b+u,U,X,^,g,i,k-S-d-e-x.P.a.c.z.|/U/^/s0O0T0Z0k0y1T1U1X1Y1^1h1q1s1w2T2`2e2s2{3y4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?hQ%o!fQ)n%r#Q4Pg#}$h'X'Z'p'v'{(Y(^)b*y+O+U+]+`+c+n+q+x,m,y,|-z.X.[.b.g0h2R7r7s7t8Q:V:W:X?]?^?c?y?z?{@S@T@U@Va4Q)e*t+r.h0s3w3|3}Y'T#z)h-Y3u3vZ*e'W-R/z3z3{0xhPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(T(X(j(v)V)Z)p)w){)}*X*]*^+P+b,U,X,^,g,i,k-d-e-x.P.a.z.|/U/^0O0T0Z0k1T1U1X1Y1^1q1s1w2T2e2{3y4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?hT2^0y2`R&^#OR&]#O!r#Z[#e#u$U$V$W$X$Z$s$w%X%Z%]&`&a&b&c&d&e&f&g'`'b'c(g)x)z*Q*l+h-^._0l2S2h2y3P3d9_9`!Y4_3x4m4n4o4p4r4s4u4v4w4x4y4z4{4|5U5V5W5Y5Z5^5_5a5b5c5f5g5i!^6b4g6n6o6p6q6s6t6v6w6x6y6z6{6|6}7V7W7X7Z7[7_7`7b7c7d7g7h7j7u7v#b8e#k%a%s%|&O&v&w&|(z*W+e,r,u-[-i-k/a4f5}7z8r8s8t8u8w8x8y8}9O9P9Q9R9S9T9U9c9e9f9m9p9r9u9w9z9{9}:Q:y;[{>|?U?k?l#O:r&U)|-`-j-}0V0a1m1p1u2w2x8z8{9n9s9t9v;R;S;T;U;W;Y;Z;^;_;`;a;b;c;d;e;m;o;p;u;v;y;{;|[>]!`^>b>d>h>j>m>n>p>s>t>v?V?W?`o_>c>i>k>oS$iu#fQ$qwU'}$j$l&pQ(P$kS(R$m$rQ+_(OQ+a(QQ+d(SQ1x0]Q5|7mS6P7o7pQ6Q7qQ7y:RS7{:S:TQ7|:UQ;X?OS;q?Q?TQ;x?YQ?S?sS?X?u?wQ?_?xQ?i?|S?j?}@QS?m@O@PR?n@RT'w$h+U!csPVXt!S!j!r!s!w$h%O%Q%T%V'p(^(j)b+U+n+x,U,X,y,|.z.|/U1T1U1^2eQ$]rR*n'eQ.Q+TQ.n+sQ0[-|Q0p.eQ1t0YQ2U0qR3Q2VT0^.O0_Q+Z'|Q.Z+^R0j.^Q(a$tQ)`%iQ)u%vQ*w'mS+|(b(cQ-u*xR.u+}Q(`$tQ)d%kQ)t%vQ*s'lS*v'm)uU+{(a(b(cS-t*w*xS.t+|+}Q/n-PQ0Q-rQ0S-uR0|.uQ(_$tQ)_%iQ)a%jQ)s%vU*u'm)t)uW+z(`(a(b(cQ,x)`U-s*v*w*xU.s+{+|+}S0R-t-uS0{.t.uQ1o0SR2b0|X+v(^)b+x,|b%f!_$a'j+r.h.k0s0u2WR,v)[Q$ovS+f(U?Zg?v(^)b+m+n+q+x,y,|.f.g0rR0z.pT2_0y2`1P|PVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(T(X(j(v)V)Z)p)w){)}*X*]*^+P+b,U,X,^,g,i,k,q-d-e-x.P.a.z.|/U/^0O0T0Z0k0y1T1U1X1Y1^1q1s1w2T2`2e2{3y4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?hT$y{$|Q,S(fR.w,QT${{$|Q(l%OQ(t%QQ(y%TQ(|%VQ/S,]Q1Q/OQ1R/RR2k1^R(o%PX,`(m(n,a,cR(p%PX(r%Q%T%V1^R%T!T_%b!]%S(v,g,i/^1XR%V!UR/b,kR,n)RQ)c%kS*r'l)dS-q*s-PS0P-r/nR1n0QT,{)b,|Q-T)hU/q-Q-R-YU1d/p/y/zR2v1lR/t-SR2t1hSSO!mR!oSQ!rVR%y!rQ!jPS!sV!rQ!wX[%u!j!s!w,U1U2eQ,U(jQ1U/UR2e1TQ)q%sS-])q9kR9k8{Q-f*SR/}-fQ&y#oS*Z&y9bR9b:}S*_&|&}R-m*_Q*O&YR-b*O!l'Y#|'o*h*|+R+X+i+m-{.Y.].`.f/d0f0i0m0r2Q3O6R6S6T7n7}8O8P;z;}w>xQ+e(TQ+h(XQ,r)VQ,u)ZQ-[)pQ-^)wQ-`){Q-i*XQ-j*]Q-k*^^-o4O5k7l:Py>zQ-}+PQ._+bQ/T,^Q/a,kQ/{-dQ0V-xQ0a.PQ0l.aQ1m0OQ1p0TQ1u0ZQ2S0kU2[0y2`:{Q2h1YQ2w1qQ2x1sQ2y1wQ3P2TQ3d2{Q3x4RQ4fjQ4g5nQ4m5oQ4n5qQ4o5sQ4p5uQ4q5wQ4r5yQ4s4TQ4u4VQ4v4WQ4w4XQ4x4YQ4y4ZQ4z4[Q4{4]Q4|4^Q4}4_Q5O4`Q5P4aQ5Q4bQ5R4cQ5S4dQ5T4eQ5U4hQ5V4iQ5W4jQ5Y4kQ5Z4lQ5^4tQ5_5XQ5a5[Q5b5]Q5c5`Q5f5dQ5g5eQ5i5hQ5}5{Q6n5pQ6o5rQ6p5tQ6q5vQ6r5xQ6s5zQ6t6WQ6v6YQ6w6ZQ6x6[Q6y6]Q6z6^Q6{6_Q6|6`Q6}6aQ7O6bQ7P6cQ7Q6dQ7R6eQ7S6fQ7T6gQ7U6hQ7V6iQ7W6jQ7X6kQ7Z6lQ7[6mQ7_6uQ7`7YQ7b7]Q7c7^Q7d7aQ7g7eQ7h7fQ7j7iQ7u6UQ7v5mQ7z7xQ8r8RQ8s8SQ8t8TQ8u8UQ8v8VQ8w8WQ8x8XQ8y8ZU8z,g/^1XQ8{%dQ8}8]Q9O8^Q9P8_Q9Q8`Q9R8aQ9S8bQ9T8cQ9U8dQ9V8eQ9W8fQ9X8gQ9Y8hQ9Z8iQ9[8jQ9]8kQ9_8mQ9`8nQ9c8oQ9e8pQ9f8qQ9m8|Q9n9^Q9p9dQ9r9gQ9s9hQ9t9jQ9u9lQ9v9oQ9w9qQ9z9xQ9{9yQ9}9|Q:Q:ZU:y#i&t9aQ;R:_Q;S:`Q;T:aQ;U:bQ;V:cQ;W:dQ;Y:eQ;Z:gQ;[:hQ;^:jQ;_:kQ;`:lQ;a:mQ;b:nQ;c:oQ;d:pQ;e:qQ;f:rQ;g:sQ;h:tQ;i:uQ;j:vQ;k:wQ;l:xQ;m;OQ;o;PQ;p;QQ;u;]Q;v;nQ;y;sQ;{;tQ;|;wQOP<{Q>Q<|Q>R<}Q>S=OQ>T=PQ>U=QQ>V=RQ>W=SQ>X=TQ>Y=UQ>Z=VQ>[=XQ>]=YQ>^=ZQ>_=[Q>b=]Q>c=^Q>d=_Q>h=jQ>i=kQ>j>`Q>k>aQ>m>eQ>n>fQ>o>gQ>p>lQ>s>qQ>t>rQ>v>uQ>{:]Q>|:[Q?U?PQ?V:zQ?W:|Q?`;rQ?k?gR?l?hR*T&qQ%t!gQ)Y%dT*R&q-e$WiPVX]cklmnopxyz!S!W!X!Y!j!r!s!w#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a$Q$R$T$z%O%Q%T%V%}&S&['a(X(j)w+b,U,X.a.z.|/U0k1T1U1Y1^1w2T2e2{3y4O8m8n!t5l']4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5o5q5s5u5w5y7k7l!x7w5j5k5m5n5p5r5t5v5x5z6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i$`:Y`j!]!g!y!z#i#l#m#q#r%S%U&q&t&u&x'P(T(v)V)Z)p*X*^,i,k-e5{7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8o8p8q8|9a9d9g9l9q9x9y9|:O:P:Z:[:]:^:h?P?g?h#n>}!|%d&W){)}*]+P,g-x.P/^0O0T0Z1X1q1s9^9h9j9o:_:`:a:b:c:d:e:f:g:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x;O;P;Q;];n;s;t;w`>e>f>l>q>r>u>w>y!]?f0y2`:{<_a>g>x>zQ#p`Q&s#iQ&{#qR*V&tS#o`#q^$Sj5m5n:Z:[:]:^S*Y&x9aT:}#i&tQ'O#rR*a'PR&T!{R&Z!|Q&Y!|R-a)}Q#|gS'^#}3wS'o$h+US*f'X3|U*h'Z*y-zQ*|'pQ+R'vQ+X'{Q+i(YW+m(^)b+x,|Q-P)eQ-r*tQ-{+OQ.Y+]Q.]+`Q.`+cU.f+n+q,yQ.k+rQ/d,mQ0f.XQ0i.[Q0m.bQ0r.gQ0u.hQ1b3}Q2Q0hQ2W0sQ3O2RQ6R7rQ6S7sQ6T7tQ7n8QQ7}:VQ8O:WQ8P:XQ;z?]Q;}?^Q`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?h#b$Og#}$h'X'Z'p'v'{(Y(^)b)e*t*y+O+U+]+`+c+n+q+r+x,m,y,|-z.X.[.b.g.h0h0s2R3w3|3}7r7s7t8Q:V:W:X?]?^?c?y?z?{@S@T@U@VS$[r'eQ%l!eS%p!f%rU+j([(]+uQ-U)iQ/r-SQ0n.cQ1g/sQ2r1hR3a2s|vPVX!S!j!r!s!w%O%Q%T%V(j,U,X.z.|/U1T1U1^2e#Y#g]cklmnopxyz!W!X!Y#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a$Q$R$T$z%}&S&['a(X)w+b.a0k1Y1w2T2{3y4O8m8n`+o(^)b+n+q+x,y,|.g!t8l']4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5o5q5s5u5w5y7k7l!x=W5j5k5m5n5p5r5t5v5x5z6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i$`?t`j!]!g!y!z#i#l#m#q#r%S%U&q&t&u&x'P(T(v)V)Z)p*X*^,i,k-e5{7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8o8p8q8|9a9d9g9l9q9x9y9|:O:P:Z:[:]:^:h?P?g?h#n@W!|%d&W){)}*]+P,g-x.P/^0O0T0Z1X1q1s9^9h9j9o:_:`:a:b:c:d:e:f:g:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x;O;P;Q;];n;s;t;w`>e>f>l>q>r>u>w>y!]@Y0y2`:{<_a>g>x>zR'y$hQ'x$hR.R+UR$^rZ'u$h'p'v+O+UQ#d[Q%Y!WQ%[!XQ%^!YQ(W$pQ(}%WQ)O%XQ)P%ZQ)Q%]Q)X%cQ)^%gQ)f%lQ)l%qQ)r%tQ*p'iQ-Z)oQ-p*qQ.n+sQ.o+tQ.},[Q/X,dQ/Y,eQ/Z,fQ/`,jQ/c,lQ/g,tQ/v-TQ0p.eQ0w.iQ0x.mQ0z.pQ1P/QQ1`/iQ1e/qQ1v0]Q2U0qQ2Y0tQ2Z0vQ2d1SQ2l1_Q2o1dQ3Q2VQ3S2XQ3V2_Q3Y2cQ3^2nQ3b2vQ3c2yQ3f3RQ3j3[Q3k3]R3n3dR.W+YQ+k([Q+l(]R.p+uS+w(^+xT,{)b,|a+p(^)b+n+q+x,y,|.gQ%g!_Q'i$aQ*q'jQ.m+rS0v.h.kS2X0s0uR3R2WQ$pvW+s(^)b+x,|W.e+m+n+q,yS0q.f.gR2V0r|!aPVX!S!j!r!s!w%O%Q%T%V(j,U,X.z.|/U1T1U1^2eQ$ctW+t(^)b+x,|U.i+n+q,yR0t.g0|!OPVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(T(X(j(v)V)Z)p)w){)}*X*]*^+P+b,U,X,^,g,i,k-d-e-x.P.a.z.|/U/^0O0T0Z0k0y1T1U1X1Y1^1q1s1w2T2`2e2{3y4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?hR/f,q1P}PVX]`cjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!|#Q#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#i#l#m#q#r$Q$R$T$z%O%Q%S%T%U%V%d%}&S&W&[&q&t&u&x'P']'a(T(X(j(v)V)Z)p)w){)}*X*]*^+P+b,U,X,^,g,i,k,q-d-e-x.P.a.z.|/U/^0O0T0Z0k0y1T1U1X1Y1^1q1s1w2T2`2e2{3y4O4R4S4T4U4V4W4X4Y4Z4[4]4^4_4`4a4b4c4d4e4h4i4j4k4l4t5X5[5]5`5d5e5h5j5k5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{6O6U6V6W6X6Y6Z6[6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6u7Y7]7^7a7e7f7i7k7l7x8R8S8T8U8V8W8X8Y8Z8[8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8m8n8o8p8q8|9^9a9d9g9h9j9l9o9q9x9y9|:O:P:Z:[:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:z:{:|;O;P;Q;];n;r;s;t;w`>a>e>f>g>l>q>r>u>w>x>y>z?P?g?hT$x{$|Q(s%QQ(x%TQ({%VR2j1^Q%c!]Q(w%SQ,h(vQ/],gQ/_,iQ1W/^R2g1XQ%q!fR)o%rR/u-S",nodeNames:"\u26A0 ( HeredocString EscapeSequence abstract LogicOp array as Boolean break case catch clone const continue default declare do echo else elseif enddeclare endfor endforeach endif endswitch endwhile enum extends final finally fn for foreach from function global goto if implements include include_once LogicOp insteadof interface list match namespace new null LogicOp print readonly require require_once return switch throw trait try unset use var Visibility while LogicOp yield LineComment BlockComment TextInterpolation PhpClose Text PhpOpen Template TextInterpolation EmptyStatement ; } { Block : LabelStatement Name ExpressionStatement ConditionalExpression LogicOp MatchExpression ) ( ParenthesizedExpression MatchBlock MatchArm , => AssignmentExpression ArrayExpression ValueList & VariadicUnpacking ... Pair [ ] ListExpression ValueList Pair Pair SubscriptExpression MemberExpression -> ?-> Name VariableName DynamicVariable $ ${ CallExpression ArgList NamedArgument SpreadArgument CastExpression UnionType LogicOp IntersectionType OptionalType NamedType QualifiedName \\ NamespaceName Name NamespaceName Name ScopedExpression :: ClassMemberName DynamicMemberName AssignOp UpdateExpression UpdateOp YieldExpression BinaryExpression LogicOp LogicOp LogicOp BitOp BitOp BitOp CompareOp CompareOp BitOp ArithOp ConcatOp ArithOp ArithOp IncludeExpression RequireExpression CloneExpression UnaryExpression ControlOp LogicOp PrintIntrinsic FunctionExpression static ParamList Parameter #[ Attributes Attribute VariadicParameter PropertyParameter PropertyHooks PropertyHook UseList ArrowFunction NewExpression class BaseClause ClassInterfaceClause DeclarationList ConstDeclaration VariableDeclarator PropertyDeclaration VariableDeclarator MethodDeclaration UseDeclaration UseList UseInsteadOfClause UseAsClause UpdateExpression ArithOp ShellExpression ThrowExpression Integer Float String MemberExpression SubscriptExpression UnaryExpression ArithOp Interpolation String IfStatement ColonBlock SwitchStatement Block CaseStatement DefaultStatement ColonBlock WhileStatement EmptyStatement DoStatement ForStatement ForSpec SequenceExpression ForeachStatement ForSpec Pair GotoStatement ContinueStatement BreakStatement ReturnStatement TryStatement CatchDeclarator DeclareStatement EchoStatement UnsetStatement ConstDeclaration FunctionDefinition ClassDeclaration InterfaceDeclaration TraitDeclaration EnumDeclaration EnumBody EnumCase NamespaceDefinition NamespaceUseDeclaration UseGroup UseClause UseClause GlobalDeclaration FunctionStaticDeclaration Program",maxTerm:320,nodeProps:[["group",-36,2,8,49,82,84,86,89,94,95,103,107,108,112,113,116,120,126,132,137,139,140,154,155,156,157,160,161,173,174,188,190,191,192,193,194,200,"Expression",-28,75,79,81,83,201,203,208,210,211,214,217,218,219,220,221,223,224,225,226,227,228,229,230,231,234,235,239,240,"Statement",-4,121,123,124,125,"Type"],["isolate",-4,67,68,71,200,""],["openedBy",70,"phpOpen",77,"{",87,"(",102,"#["],["closedBy",72,"phpClose",78,"}",88,")",165,"]"]],propSources:[_1],skippedNodes:[0],repeatNodeCount:33,tokenData:"!GQ_R!]OX$zXY&^YZ'sZ]$z]^&^^p$zpq&^qr)Rrs+Pst+otu2buv5evw6rwx8Vxy>]yz>yz{?g{|@}|}Bb}!OCO!O!PDh!P!QKT!Q!R!!o!R![!$q![!]!,P!]!^!-a!^!_!-}!_!`!1S!`!a!2d!a!b!3t!b!c!7^!c!d!7z!d!e!9Y!e!}!7z!}#O!;b#O#P!V<%lO8VR9WV'UP%`QOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ9rV%`QOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ:^O%`QQ:aRO;'S9m;'S;=`:j;=`O9mQ:oW%`QOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l9m<%lO9mQ;[P;=`<%l9mR;fV'UP%`QOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRV<%l~8V~O8V~~%fR=OW'UPOY8VYZ9PZ!^8V!^!_;{!_;'S8V;'S;=`=h;=`<%l9m<%lO8VR=mW%`QOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l8V<%lO9mR>YP;=`<%l8VR>dV!zQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV?QV!yU'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR?nY'UP$^QOY$zYZ%fZz$zz{@^{!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR@eW$_Q'UPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRAUY$[Q'UPOY$zYZ%fZ{$z{|At|!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRA{V%TQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRBiV#OQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_CXZ$[Q%^W'UPOY$zYZ%fZ}$z}!OAt!O!^$z!^!_%k!_!`6U!`!aCz!a;'S$z;'S;=`&W<%lO$zVDRV#aU'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVDo['UP$]QOY$zYZ%fZ!O$z!O!PEe!P!Q$z!Q![Fs![!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVEjX'UPOY$zYZ%fZ!O$z!O!PFV!P!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVF^V#VU'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRFz_'UP%XQOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#SJc#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zRHO]'UPOY$zYZ%fZ{$z{|Hw|}$z}!OHw!O!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRH|X'UPOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRIpZ'UP%XQOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_#R$z#R#SHw#S;'S$z;'S;=`&W<%lO$zRJhX'UPOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_K[['UP$^QOY$zYZ%fZz$zz{LQ{!P$z!P!Q,o!Q!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$z_LVX'UPOYLQYZLrZzLQz{N_{!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQ_LwT'UPOzMWz{Mj{;'SMW;'S;=`NX<%lOMW^MZTOzMWz{Mj{;'SMW;'S;=`NX<%lOMW^MmVOzMWz{Mj{!PMW!P!QNS!Q;'SMW;'S;=`NX<%lOMW^NXO!f^^N[P;=`<%lMW_NdZ'UPOYLQYZLrZzLQz{N_{!PLQ!P!Q! V!Q!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQ_! ^V!f^'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_! vZOYLQYZLrZzLQz{N_{!aLQ!a!bMW!b;'SLQ;'S;=`!!i<%l~LQ~OLQ~~%f_!!lP;=`<%lLQZ!!vm'UP%WYOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!d$z!d!e!&o!e!g$z!g!hGy!h!q$z!q!r!(a!r!z$z!z!{!){!{#R$z#R#S!%}#S#U$z#U#V!&o#V#X$z#X#YGy#Y#c$z#c#d!(a#d#l$z#l#m!){#m;'S$z;'S;=`&W<%lO$zZ!$xa'UP%WYOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#S!%}#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zZ!&SX'UPOY$zYZ%fZ!Q$z!Q![!$q![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!&tY'UPOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!'k['UP%WYOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_#R$z#R#S!&o#S;'S$z;'S;=`&W<%lO$zZ!(fX'UPOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!)YZ'UP%WYOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_#R$z#R#S!(a#S;'S$z;'S;=`&W<%lO$zZ!*Q]'UPOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zZ!+Q_'UP%WYOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#R$z#R#S!){#S#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zR!,WX!rQ'UPOY$zYZ%fZ![$z![!]!,s!]!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!,zV#yQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!-hV!nU'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!.S[$YQOY$zYZ%fZ!^$z!^!_!.x!_!`!/i!`!a*c!a!b!0]!b;'S$z;'S;=`&W<%l~$z~O$z~~%fR!/PW$ZQ'UPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!/pX$YQ'UPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a*c!a;'S$z;'S;=`&W<%lO$zP!0bR!jP!_!`!0k!r!s!0p#d#e!0pP!0pO!jPP!0sQ!j!k!0y#[#]!0yP!0|Q!r!s!0k#d#e!0k_!1ZX#|Y'UPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`!a!1v!a;'S$z;'S;=`&W<%lO$zV!1}V#PU'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!2kX$YQ'UPOY$zYZ%fZ!^$z!^!_%k!_!`!3W!`!a!.x!a;'S$z;'S;=`&W<%lO$zR!3_V$YQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!3{[!wQ'UPOY$zYZ%fZ}$z}!O!4q!O!^$z!^!_%k!_!`$z!`!a!6P!a!b!6m!b;'S$z;'S;=`&W<%lO$zV!4vX'UPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a!5c!a;'S$z;'S;=`&W<%lO$zV!5jV#bU'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!6WV!h^'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!6tW$RQ'UPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!7eV$dQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!8Ta'bS'UP'XYOY$zYZ%fZ!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$z_!9ce'bS'UP'XYOY$zYZ%fZr$zrs!:tsw$zwx8Vx!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$zR!:{V'UP'wQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!;iV#XU'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!OZ'UPOY!=yYZ!>qZ!^!=y!^!_!@y!_#O!=y#O#P!Au#P#S!=y#S#T!CP#T;'S!=y;'S;=`!Cm<%lO!=yR!>vV'UPO#O!?]#O#P!?u#P#S!?]#S#T!@n#T;'S!?];'S;=`!@s<%lO!?]Q!?`VO#O!?]#O#P!?u#P#S!?]#S#T!@n#T;'S!?];'S;=`!@s<%lO!?]Q!?xRO;'S!?];'S;=`!@R;=`O!?]Q!@UWO#O!?]#O#P!?u#P#S!?]#S#T!@n#T;'S!?];'S;=`!@s;=`<%l!?]<%lO!?]Q!@sO%UQQ!@vP;=`<%l!?]R!@|]OY!=yYZ!>qZ!a!=y!a!b!?]!b#O!=y#O#P!Au#P#S!=y#S#T!CP#T;'S!=y;'S;=`!Cm<%l~!=y~O!=y~~%fR!AzW'UPOY!=yYZ!>qZ!^!=y!^!_!@y!_;'S!=y;'S;=`!Bd;=`<%l!?]<%lO!=yR!BgWO#O!?]#O#P!?u#P#S!?]#S#T!@n#T;'S!?];'S;=`!@s;=`<%l!=y<%lO!?]R!CWV%UQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!CpP;=`<%l!=y_!CzV!p^'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!DjY$UQ#n['UPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`#p$z#p#q!EY#q;'S$z;'S;=`&W<%lO$zR!EaV$SQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!E}V!oQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!FkV$eQ'UPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z",tokenizers:[Z1,V1,Y1,0,1,2,3,R1],topRules:{Template:[0,73],Program:[1,241]},dynamicPrecedences:{299:1},specialized:[{term:285,get:(i,e)=>jd(i)<<1,external:jd},{term:285,get:i=>C1[i]||-1}],tokenPrec:30012});var q1=ue.define({name:"php",parser:Ed.configure({props:[de.add({IfStatement:_e({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:_e({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},ColonBlock:i=>i.baseIndent+i.unit,"Block EnumBody DeclarationList":Lr({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"String BlockComment":()=>null,Statement:_e({except:/^({|end(for|foreach|switch|while)\b)/})}),Pe.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":Mt,ColonBlock(i){return{from:i.from+1,to:i.to}},BlockComment(i){return{from:i.from+2,to:i.to-2}}})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function Ld(i={}){let e=[],t;if(i.baseLanguage!==null)if(i.baseLanguage)t=i.baseLanguage;else{let n=Ii({matchClosingTags:!1});e.push(n.support),t=n.language}return new oe(q1.configure({wrap:t&&Ai(n=>n.type.isTop?{parser:t.parser,overlay:r=>r.name=="Text"}:null),top:i.plain?"Program":"Template"}),e)}var U1=pe.deserialize({version:14,states:"%^QYQPOOO!YQQO'#CaO#RQQO'#CrOOQO'#Ct'#CtQYQPOOOOQO'#C}'#C}O#]QQO'#CzO$ZQQO'#CoOOQO'#Cz'#CzOOQO'#Cu'#CuO$lQQO,58{OOQO,58{,58{O$sQQO,59^O$sQQO,59^OOQO,59^,59^OOQO-E6r-E6rO$zQQO'#CfOOQO,58|,58|OOQO'#C|'#C|O%]QSO'#C{O%hQQO,59ZOOQO-E6s-E6sOOQO1G.g1G.gO%mQQO1G.xOOQO1G.x1G.xO%tQQO,59QO%yQSO'#CvO&bQSO,59gOOQO1G.u1G.uOOQO7+$d7+$dOOQO1G.l1G.lOOQO,59b,59bOOQO-E6t-E6t",stateData:"&{~OmOSPOS~OSPOeQOgRO~OVUOZTO[TO]TO^WO_WO`WOaWObWOtVOuWO~ORZO~PeOVUOZTO[TO]TO^WO_WO`WObWOtVOuWO~Oa[Od^O~P!aOX`ORnXVnXZnX[nX]nX^nX_nX`nXanXbnXtnXunXdnX~OVbOZTO[TO]TOsoP~ORfO~PeOdhO~PeOVbOZTO[TO]TOWoP~OrjOsoXWoX~OslO~OdmO~PeOWnO~OVbOZTO[TO]TOrjXsjXWjX~OrjOsoaWoa~Og[]a_^`bVmPZ`~",goto:"#brPPPPPswPPP!PPPPPPPPPwPPsP!S!Y!hPPP!n!v!|#TTROS]WPQY[]gRaUQSOR_SQYPQ]QUeY]gRg[QkcRpk]XPQY[]gQdVRi`ScV`Roj[WPQY[]gVbV`j",nodeNames:"\u26A0 BlockComment Template }} {{ InsertBlock Function Identifier ) ( FunctionParamList String Boolean Number ChainedIdentifier Comparison Operator CodeTag Math Array %} {% CodeBlock PlainText",maxTerm:37,nodeProps:[["openedBy",3,"{{",8,"(",20,"{%"],["closedBy",4,"}}",9,")",21,"%}"]],skippedNodes:[0,1],repeatNodeCount:3,tokenData:"#Jr~R!^OX$}XY&ZYZ&ZZ]$}]^&Z^p$}pq&Zqr'Wrs(Ysu$}uv-cvw$}wx.gxy3Wyz3nz{4U{|4r|}5Y}!O5r!O!P>u!P!Q?]!Q!R:[!R![=m![!]?y!]!^$}!^!_@a!_!`@}!`!a@a!a!c$}!c!}6}!}#OAk#O#P$}#P#QBR#Q#R$}#R#S6}#S#T$}#T#UBi#U#V!'f#V#X6}#X#Y!,h#Y#Z# Y#Z#]6}#]#^#'g#^#a6}#a#b#.T#b#c#5r#c#d#8[#d#g6}#g#h#9h#h#i#AV#i#j!.Q#j#k!@V#k#l#Co#l#o6}#o#p#Ge#p#q>u#q#r#In#r;'S$};'S;=`&O<%lO$}P%STgPO#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}P%fWOs$}tu$}v#o$}#p;'S$};'S;=`&O<%l~$}~O$}~~&UP&RP;=`<%l$}P&ZOgP~&b[gPm~OX$}XY&ZYZ&ZZ]$}]^&Z^p$}pq&Zq#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~']VgPO!_$}!_!`'r!`#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~'yTgP_~O#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~(aXgPZ~Or(Yrs(|s#O(Y#O#P)d#P#o(Y#o#p){#p;'S(Y;'S;=`,n<%lO(Y~)TTgPZ~O#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~)iUgPO#o(Y#o#p){#p;'S(Y;'S;=`,t;=`<%l*|<%lO(Y~*Q^Z~Or(Yrs(|st*|tu(Yuv*|v#O(Y#O#P)d#P#o(Y#o#p*|#p;'S(Y;'S;=`,n<%l~(Y~O(Y~~&U~+RVZ~Or*|rs+hs#O*|#O#P+m#P;'S*|;'S;=`,h<%lO*|~+mOZ~~+pRO;'S*|;'S;=`+y;=`O*|~,OWZ~Or*|rs+hs#O*|#O#P+m#P;'S*|;'S;=`,h;=`<%l*|<%lO*|~,kP;=`<%l*|~,qP;=`<%l(Y~,yWZ~Or*|rs+hs#O*|#O#P+m#P;'S*|;'S;=`,h;=`<%l(Y<%lO*|~-jVgPb~O#o$}#o#p%c#p#q$}#q#r.P#r;'S$};'S;=`&O<%lO$}R.WTdQgPO#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~.nXgPZ~Ow.gwx(|x#O.g#O#P/Z#P#o.g#o#p/r#p;'S.g;'S;=`2c<%lO.g~/`UgPO#o.g#o#p/r#p;'S.g;'S;=`2i;=`<%l0v<%lO.g~/w_Z~Os.gst0vtu.guv0vvw.gwx(|x#O.g#O#P/Z#P#o.g#o#p0v#p;'S.g;'S;=`2c<%l~.g~O.g~~&U~0{VZ~Ow0vwx+hx#O0v#O#P1b#P;'S0v;'S;=`2]<%lO0v~1eRO;'S0v;'S;=`1n;=`O0v~1sWZ~Ow0vwx+hx#O0v#O#P1b#P;'S0v;'S;=`2];=`<%l0v<%lO0v~2`P;=`<%l0v~2fP;=`<%l.g~2nWZ~Ow0vwx+hx#O0v#O#P1b#P;'S0v;'S;=`2];=`<%l.g<%lO0vR3_TXQgPO#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}V3uTWUgPO#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~4]VgPb~Oz$}z{4r{#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~4yTgPb~O#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}V5cTrSuQgPO#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~5{`gPb~V~O}$}}!O6}!O!P8T!P!Q$}!Q!R:[!R![=m![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~7U_gPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~8Y^gPO}$}}!O9U!O!Q$}!Q![9U![!c$}!c!}9U!}#R$}#R#S9U#S#T$}#T#o9U#o#p%c#p;'S$};'S;=`&O<%lO$}~9]_gP^~O}$}}!O9U!O!P8T!P!Q$}!Q![9U![!c$}!c!}9U!}#R$}#R#S9U#S#T$}#T#o9U#o#p%c#p;'S$};'S;=`&O<%lO$}~:e_gP]~V~O}$}}!O6}!O!P;d!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~;i^gPO}$}}!O9U!O!Q$}!Q![|TgP`~O#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~?dVgPb~O!P$}!P!Q4r!Q#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}R@QTuQgPO#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~@hVgP_~O!_$}!_!`'r!`#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~AUVgP`~O!_$}!_!`'r!`#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}RArTtQgPO#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}VBYTsUgPO#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~BpegPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#b6}#b#cDR#c#d6}#d#eFg#e#i6}#i#jKe#j#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~DYagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#W6}#W#XE_#X#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~Eh_gP_~V~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~FnagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#d6}#d#eGs#e#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~GzagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#`6}#`#aIP#a#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~IWagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#m6}#m#nJ]#n#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~Jf_gPa~V~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~KlagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#h6}#h#iLq#i#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~LxagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#c6}#c#dM}#d#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~NUagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#X6}#X#Y! Z#Y#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~! bagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#g6}#g#h!!g#h#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!!nagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#V6}#V#W!#s#W#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!#z`gPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#U!$|#U#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!%TagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#d6}#d#e!&Y#e#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!&aagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#X6}#X#YJ]#Y#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!'magPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#`6}#`#a!(r#a#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!(yagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#c6}#c#d!*O#d#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!*VagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#V6}#V#W!+[#W#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!+cagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#_6}#_#`J]#`#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!,oegPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#`6}#`#a!.Q#a#b6}#b#c!/^#c#l6}#l#m!Hz#m#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!.XagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#g6}#g#h!&Y#h#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!/eagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#W6}#W#X!0j#X#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!0qkgPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#U!2f#U#V!'f#V#Y6}#Y#Z!3x#Z#]6}#]#^!6b#^#a6}#a#b!7n#b#g6}#g#h!OVgPO#k$}#k#l!>e#l#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~!>jVgPO#]$}#]#^!?P#^#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~!?UVgPO#h$}#h#i!?k#i#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~!?pVgPO#[$}#[#]'r#]#o$}#o#p%c#p;'S$};'S;=`&O<%lO$}~!@^agPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#X6}#X#Y!Ac#Y#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!AjagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#f6}#f#g!Bo#g#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!BvagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#U6}#U#V!C{#V#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!DS`gPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#U!EU#U#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!E]agPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#h6}#h#i!Fb#i#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!FiagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#]6}#]#^!Gn#^#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!GuagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#a6}#a#bJ]#b#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!IRagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#h6}#h#i!JW#i#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!J_agPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#X6}#X#Y!Kd#Y#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!KkagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#b6}#b#c!Lp#c#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!LwagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#W6}#W#X!M|#X#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~!NTagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#g6}#g#hJ]#h#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~# abgPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#U#!i#U#c6}#c#d!5U#d#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#!pagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#`6}#`#a##u#a#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~##|agPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#g6}#g#h#%R#h#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#%YagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#X6}#X#Y#&_#Y#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#&h_gP[~V~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#'negPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#Y6}#Y#ZJ]#Z#b6}#b#c#)P#c#g6}#g#hE_#h#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#)YagP_~V~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#V6}#V#W#*_#W#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#*fagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#`6}#`#a#+k#a#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#+ragPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#i6}#i#j#,w#j#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#-OagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#W6}#W#X!&Y#X#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#.[`gPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#U#/^#U#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#/ecgPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#V6}#V#W!:T#W#h6}#h#i#0p#i#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#0wagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#V6}#V#W#1|#W#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#2TagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#[6}#[#]#3Y#]#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#3aagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#X6}#X#Y#4f#Y#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#4magPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#g6}#g#hE_#h#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#5yagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#c6}#c#d#7O#d#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#7VagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#h6}#h#iE_#i#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#8cagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#f6}#f#gE_#g#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#9ocgPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#X6}#X#Y#:z#Y#h6}#h#i#m#g#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#>tagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#h6}#h#i#?y#i#o6}#o#p%c#p;'S$};'S;=`&O<%lO$}~#@QagPV~O}$}}!O6}!O!P8T!P!Q$}!Q![6}![!c$}!c!}6}!}#R$}#R#S6}#S#T$}#T#g6}#g#h!=65&&i<=90||i==95||i>=97&&i<=122||i>=161}function F1(i){return i==9||i==10||i==13||i==32}var Id=null,Bd=null,Dd=0;function Ua(i,e){let t=i.pos+e;if(Bd==i&&Dd==t)return Id;for(;F1(i.peek(e));)e++;let n="";for(;;){let r=i.peek(e);if(!N1(r))break;n+=String.fromCharCode(r),e++}return Bd=i,Dd=t,Id=n||null}function Nd(i,e){this.name=i,this.parent=e}var H1=new It({start:null,shift(i,e,t,n){return e==qa?new Nd(Ua(n,1)||"",i):i},reduce(i,e){return e==B1&&i?i.parent:i},reuse(i,e,t,n){let r=e.type.id;return r==qa||r==D1?new Nd(Ua(n,1)||"",i):i},strict:!1}),K1=new ee((i,e)=>{if(i.next==60){if(i.advance(),i.next==47){i.advance();let t=Ua(i,0);if(!t)return i.acceptToken(E1);if(e.context&&t==e.context.name)return i.acceptToken(j1);for(let n=e.context;n;n=n.parent)if(n.name==t)return i.acceptToken(W1,-2);i.acceptToken(M1)}else if(i.next!=33&&i.next!=63)return i.acceptToken(qa)}},{contextual:!0});function Aa(i,e){return new ee(t=>{let n=0,r=e.charCodeAt(0);e:for(;!(t.next<0);t.advance(),n++)if(t.next==r){for(let s=1;s"),ey=Aa(G1,"?>"),ty=Aa(I1,"]]>"),iy=se({Text:u.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":u.angleBracket,TagName:u.tagName,"MismatchedCloseTag/TagName":[u.tagName,u.invalid],AttributeName:u.attributeName,AttributeValue:u.attributeValue,Is:u.definitionOperator,"EntityReference CharacterReference":u.character,Comment:u.blockComment,ProcessingInst:u.processingInstruction,DoctypeDecl:u.documentMeta,Cdata:u.special(u.string)}),Fd=pe.deserialize({version:14,states:",lOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DT'#DTOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C|'#C|O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C}'#C}O$dOrO,59^OOOP,59^,59^OOOS'#DO'#DOO$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6z-E6zOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6{-E6{OOOP1G.x1G.xOOOS-E6|-E6|OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'mO!bO,59eOOOO-E6w-E6wO'{OpO1G.uO'{OpO1G.uOOOP1G.u1G.uO(TOpO7+$fOOOP7+$f7+$fO(]O!bO<c!|;'S(o;'S;=`)]<%lO(oi>jX|W!O`Or(ors&osv(owx'}x!r(o!r!s?V!s;'S(o;'S;=`)]<%lO(oi?^X|W!O`Or(ors&osv(owx'}x!g(o!g!h?y!h;'S(o;'S;=`)]<%lO(oi@QY|W!O`Or?yrs@psv?yvwA[wxBdx!`?y!`!aCr!a;'S?y;'S;=`Db<%lO?ya@uV!O`Ov@pvxA[x!`@p!`!aAy!a;'S@p;'S;=`B^<%lO@pPA_TO!`A[!`!aAn!a;'SA[;'S;=`As<%lOA[PAsOiPPAvP;=`<%lA[aBQSiP!O`Ov&ox;'S&o;'S;=`'Q<%lO&oaBaP;=`<%l@pXBiX|WOrBdrsA[svBdvwA[w!`Bd!`!aCU!a;'SBd;'S;=`Cl<%lOBdXC]TiP|WOr'}sv'}w;'S'};'S;=`(c<%lO'}XCoP;=`<%lBdiC{ViP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiDeP;=`<%l?yiDoZ|W!O`Or(ors&osv(owx'}x!e(o!e!fEb!f#V(o#V#WIr#W;'S(o;'S;=`)]<%lO(oiEiX|W!O`Or(ors&osv(owx'}x!f(o!f!gFU!g;'S(o;'S;=`)]<%lO(oiF]X|W!O`Or(ors&osv(owx'}x!c(o!c!dFx!d;'S(o;'S;=`)]<%lO(oiGPX|W!O`Or(ors&osv(owx'}x!v(o!v!wGl!w;'S(o;'S;=`)]<%lO(oiGsX|W!O`Or(ors&osv(owx'}x!c(o!c!dH`!d;'S(o;'S;=`)]<%lO(oiHgX|W!O`Or(ors&osv(owx'}x!}(o!}#OIS#O;'S(o;'S;=`)]<%lO(oiI]V|W!O`yPOr(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiIyX|W!O`Or(ors&osv(owx'}x#W(o#W#XJf#X;'S(o;'S;=`)]<%lO(oiJmX|W!O`Or(ors&osv(owx'}x#T(o#T#UKY#U;'S(o;'S;=`)]<%lO(oiKaX|W!O`Or(ors&osv(owx'}x#h(o#h#iK|#i;'S(o;'S;=`)]<%lO(oiLTX|W!O`Or(ors&osv(owx'}x#T(o#T#UH`#U;'S(o;'S;=`)]<%lO(oiLwX|W!O`Or(ors&osv(owx'}x#c(o#c#dMd#d;'S(o;'S;=`)]<%lO(oiMkX|W!O`Or(ors&osv(owx'}x#V(o#V#WNW#W;'S(o;'S;=`)]<%lO(oiN_X|W!O`Or(ors&osv(owx'}x#h(o#h#iNz#i;'S(o;'S;=`)]<%lO(oi! RX|W!O`Or(ors&osv(owx'}x#m(o#m#n! n#n;'S(o;'S;=`)]<%lO(oi! uX|W!O`Or(ors&osv(owx'}x#d(o#d#e!!b#e;'S(o;'S;=`)]<%lO(oi!!iX|W!O`Or(ors&osv(owx'}x#X(o#X#Y?y#Y;'S(o;'S;=`)]<%lO(oi!#_V!SP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(ok!$PXaQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qo!$wX[UVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!%mZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!&`!a;'S$q;'S;=`)c<%lO$qk!&kX!RQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!'aZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_#P$q#P#Q!(S#Q;'S$q;'S;=`)c<%lO$qk!(]ZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!)O!a;'S$q;'S;=`)c<%lO$qk!)ZXxQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$q",tokenizers:[K1,J1,ey,ty,0,1,2,3,4],topRules:{Document:[0,6]},tokenPrec:0});function ds(i,e){let t=e&&e.getChild("TagName");return t?i.sliceString(t.from,t.to):""}function ja(i,e){let t=e&&e.firstChild;return!t||t.name!="OpenTag"?"":ds(i,t)}function ny(i,e,t){let n=e&&e.getChildren("Attribute").find(s=>s.from<=t&&s.to>=t),r=n&&n.getChild("AttributeName");return r?i.sliceString(r.from,r.to):""}function Wa(i){for(let e=i&&i.parent;e;e=e.parent)if(e.name=="Element")return e;return null}function ry(i,e){var t;let n=L(i).resolveInner(e,-1),r=null;for(let s=n;!r&&s.parent;s=s.parent)(s.name=="OpenTag"||s.name=="CloseTag"||s.name=="SelfClosingTag"||s.name=="MismatchedCloseTag")&&(r=s);if(r&&(r.to>e||r.lastChild.type.isError)){let s=r.parent;if(n.name=="TagName")return r.name=="CloseTag"||r.name=="MismatchedCloseTag"?{type:"closeTag",from:n.from,context:s}:{type:"openTag",from:n.from,context:Wa(s)};if(n.name=="AttributeName")return{type:"attrName",from:n.from,context:r};if(n.name=="AttributeValue")return{type:"attrValue",from:n.from,context:r};let o=n==r||n.name=="Attribute"?n.childBefore(e):n;return o?.name=="StartTag"?{type:"openTag",from:e,context:Wa(s)}:o?.name=="StartCloseTag"&&o.to<=e?{type:"closeTag",from:e,context:s}:o?.name=="Is"?{type:"attrValue",from:e,context:r}:o?{type:"attrName",from:e,context:r}:null}else if(n.name=="StartCloseTag")return{type:"closeTag",from:e,context:n.parent};for(;n.parent&&n.to==e&&!(!((t=n.lastChild)===null||t===void 0)&&t.type.isError);)n=n.parent;return n.name=="Element"||n.name=="Text"||n.name=="Document"?{type:"tag",from:e,context:n.name=="Element"?n:Wa(n)}:null}var Ea=class{constructor(e,t,n){this.attrs=t,this.attrValues=n,this.children=[],this.name=e.name,this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=e.textContent?e.textContent.map(r=>({label:r,type:"text"})):[]}},Ma=/^[:\-\.\w\u00b7-\uffff]*$/;function Hd(i){return Object.assign(Object.assign({type:"property"},i.completion||{}),{label:i.name})}function Kd(i){return typeof i=="string"?{label:`"${i}"`,type:"constant"}:/^"/.test(i.label)?i:Object.assign(Object.assign({},i),{label:`"${i.label}"`})}function sy(i,e){let t=[],n=[],r=Object.create(null);for(let a of e){let l=Hd(a);t.push(l),a.global&&n.push(l),a.values&&(r[a.name]=a.values.map(Kd))}let s=[],o=[],O=Object.create(null);for(let a of i){let l=n,h=r;a.attributes&&(l=l.concat(a.attributes.map(f=>typeof f=="string"?t.find(d=>d.label==f)||{label:f,type:"property"}:(f.values&&(h==r&&(h=Object.create(h)),h[f.name]=f.values.map(Kd)),Hd(f)))));let c=new Ea(a,l,h);O[c.name]=c,s.push(c),a.top&&o.push(c)}o.length||(o=s);for(let a=0;a{var l;let{doc:h}=a.state,c=ry(a.state,a.pos);if(!c||c.type=="tag"&&!a.explicit)return null;let{type:f,from:d,context:$}=c;if(f=="openTag"){let p=o,m=ja(h,$);if(m){let g=O[m];p=g?.children||s}return{from:d,options:p.map(g=>g.completion),validFor:Ma}}else if(f=="closeTag"){let p=ja(h,$);return p?{from:d,to:a.pos+(h.sliceString(a.pos,a.pos+1)==">"?1:0),options:[((l=O[p])===null||l===void 0?void 0:l.closeNameCompletion)||{label:p+">",type:"type"}],validFor:Ma}:null}else if(f=="attrName"){let p=O[ds(h,$)];return{from:d,options:p?.attrs||n,validFor:Ma}}else if(f=="attrValue"){let p=ny(h,$,d);if(!p)return null;let m=O[ds(h,$)],g=(m?.attrValues||r)[p];return!g||!g.length?null:{from:d,to:a.pos+(h.sliceString(a.pos,a.pos+1)=='"'?1:0),options:g,validFor:/^"[^"]*"?$/}}else if(f=="tag"){let p=ja(h,$),m=O[p],g=[],P=$&&$.lastChild;p&&(!P||P.name!="CloseTag"||ds(h,P)!=p)&&g.push(m?m.closeCompletion:{label:"",type:"type",boost:2});let S=g.concat((m?.children||($?s:o)).map(z=>z.openCompletion));if($&&m?.text.length){let z=$.firstChild;z.to>a.pos-20&&!/\S/.test(a.state.sliceDoc(z.to,a.pos))&&(S=S.concat(m.text))}return{from:d,options:S,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}var La=ue.define({name:"xml",parser:Fd.configure({props:[de.add({Element(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"OpenTag CloseTag SelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),Pe.add({Element(i){let e=i.firstChild,t=i.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:i.to}}}),Tn.add({"OpenTag CloseTag":i=>i.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/$/}});function e$(i={}){let e=[La.data.of({autocomplete:sy(i.elements||[],i.attributes||[])})];return i.autoCloseTags!==!1&&e.push(oy),new oe(La,e)}function Jd(i,e,t=i.length){if(!e)return"";let n=e.firstChild,r=n&&n.getChild("TagName");return r?i.sliceString(r.from,Math.min(r.to,t)):""}var oy=X.inputHandler.of((i,e,t,n,r)=>{if(i.composing||i.state.readOnly||e!=t||n!=">"&&n!="/"||!La.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,O=o.changeByRange(a=>{var l,h,c;let{head:f}=a,d=o.doc.sliceString(f-1,f)==n,$=L(o).resolveInner(f,-1),p;if(d&&n==">"&&$.name=="EndTag"){let m=$.parent;if(((h=(l=m.parent)===null||l===void 0?void 0:l.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(p=Jd(o.doc,m.parent,f))){let g=f+(o.doc.sliceString(f,f+1)===">"?1:0),P=``;return{range:a,changes:{from:f,to:g,insert:P}}}}else if(d&&n=="/"&&$.name=="StartCloseTag"){let m=$.parent;if($.from==f-2&&((c=m.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(p=Jd(o.doc,m,f))){let g=f+(o.doc.sliceString(f,f+1)===">"?1:0),P=`${p}>`;return{range:Q.cursor(f+P.length,-1),changes:{from:f,to:g,insert:P}}}}return{range:a}});return O.changes.empty?!1:(i.dispatch([s,o.update(O,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var Z=async i=>{let e=await window.importVersioned("legacy-modes");return Wr.define(e[i])},Oy={bash:()=>Z("shell"),c:()=>Z("c"),css:async()=>ts(),"c++":()=>Z("cpp"),"c#":()=>Z("csharp"),clj:()=>Z("clojure"),clojure:()=>Z("clojure"),csharp:()=>Z("csharp"),dart:()=>Z("dart"),diff:()=>Z("diff"),for:()=>Z("fortran"),fortran:()=>Z("fortran"),"f#":()=>Z("fSharp"),fsharp:()=>Z("fSharp"),go:()=>Z("go"),groovy:()=>Z("groovy"),haskell:()=>Z("haskell"),hs:()=>Z("haskell"),html:async()=>Ii({selfClosingTags:!0}),ini:()=>Z("properties"),java:()=>Z("java"),javascript:async()=>ui(),json:async()=>Hf(),js:async()=>ui(),jl:()=>Z("julia"),julia:()=>Z("julia"),kotlin:()=>Z("kotlin"),latex:()=>Z("stex"),lua:()=>Z("lua"),markdown:async()=>us(),matlab:()=>Z("octave"),md:async()=>us(),mdown:async()=>us(),ml:()=>Z("sml"),mssql:()=>Z("msSQL"),mysql:()=>Z("mySQL"),nginx:()=>Z("nginx"),octave:()=>Z("octave"),pas:()=>Z("pascal"),pascal:()=>Z("pascal"),perl:()=>Z("perl"),pgsql:()=>Z("pgSQL"),php:async i=>{let e=i.includes("Z("perl"),"pl/sql":()=>Z("plSQL"),postgresql:()=>Z("pgSQL"),powershell:()=>Z("powerShell"),properties:()=>Z("properties"),ocaml:()=>Z("oCaml"),py:()=>Z("python"),python:()=>Z("python"),r:()=>Z("r"),rb:()=>Z("ruby"),rs:()=>Z("rust"),ruby:()=>Z("ruby"),rust:()=>Z("rust"),sas:()=>Z("sas"),scala:()=>Z("scala"),scheme:()=>Z("scheme"),shell:()=>Z("shell"),sh:()=>Z("shell"),smarty:()=>Z("smarty"),stext:()=>Z("stex"),swift:()=>Z("swift"),toml:()=>Z("toml"),ts:async()=>ui({typescript:!0}),twig:async()=>Gd(),typescript:async()=>ui({typescript:!0}),sql:()=>Z("standardSQL"),sqlite:()=>Z("sqlite"),vbs:()=>Z("vbScript"),vbscript:()=>Z("vbScript"),"vb.net":()=>Z("vb"),vbnet:()=>Z("vb"),xml:async()=>e$(),yaml:()=>Z("yaml"),yml:()=>Z("yaml")};function t$(i,e){let t=i.trim().replace(/^\./g,"").toLowerCase(),n=Oy[t];if(!(typeof n>"u"))return n(e)}var i$=new WeakMap;function Di(i,e){let t=new pt;e.extensions.push(t.of([]));let n={usage:i,editorViewConfig:e,libEditorView:X,libEditorState:D,libCompartment:pt};window.$events.emitPublic(e.parent,"library-cm6::pre-init",n);let r=new X(e);return i$.set(r,t),window.$events.emitPublic(e.parent,"library-cm6::post-init",{editorView:r,...n}),r}async function n$(i,e,t){let n=i$.get(i),r=await t$(e,t);i.dispatch({effects:n.reconfigure(r||[])})}var Dt=class{constructor(e){this.ev=e}getContent(){return this.ev.state.doc.toString()}setContent(e){let{doc:t}=this.ev.state;this.ev.dispatch({changes:{from:0,to:t.length,insert:e}})}focus(){this.ev.focus()}setMode(e,t=""){n$(this.ev,e,t)}};function ay(i){let e='',t='',n=document.createElement("button");n.setAttribute("type","button"),n.classList.add("cm-copy-button"),n.innerHTML=e,i.dom.appendChild(n);let r=620,s=60;n.addEventListener("click",()=>{Kh(i.state.doc.toString()),n.classList.add("success"),setTimeout(()=>{n.innerHTML=t},s/2),setTimeout(()=>{n.classList.remove("success")},r),setTimeout(()=>{n.innerHTML=e},r+s/2)})}function ly(i){let e="",t=i.querySelector("code");return t&&t.hasAttribute("dir")?e=t.getAttribute("dir"):i.hasAttribute("dir")&&(e=i.getAttribute("dir")),e}function r$(i){let e=i.querySelector("code[class^=language-]");i.innerHTML=i.innerHTML.replace(//gi,` +`);let t=i.textContent.trimEnd(),n="";e!==null&&(n=e.className.replace("language-",""));let r=document.createElement("div");i.parentNode.insertBefore(r,i);let s=ly(i);s&&r.setAttribute("dir",s);let o=Di("content-code-block",{parent:r,doc:t,extensions:YO(r)});new Dt(o).setMode(n,t),i.remove(),ay(o)}function aw(i){let e=i.querySelectorAll("pre");for(let t of e)r$(t)}function lw(){let i=document.querySelectorAll(".page-content pre, .comment-box .content pre");for(let e of i)r$(e)}function hw(i,e,t,n){let r=Di("content-code-block",{parent:i,doc:t,extensions:YO(i),root:e}),s=new Dt(r);return s.setMode(n,t),s}function cw(i,e){let t=i.textContent,n={parent:i.parentElement,doc:t,extensions:[...Kr(i.parentElement)]},r=new Dt(Di("code-editor",n));return r.setMode(e,t),i.style.display="none",r}function fw(i,e){let t=i.value,n={parent:i.parentElement,doc:t,extensions:[...Kr(i.parentElement),X.updateListener.of(o=>{o.docChanged&&(i.value=o.state.doc.toString())})]},r=Di("code-input",n),s=new Dt(r);return s.setMode(e,t),i.style.display="none",s}function uw(i,e,t,n){let r=i.textContent,s={parent:i.parentElement,doc:r,extensions:[ht.of(n),...Kr(i.parentElement),X.updateListener.of(O=>{e(O)}),X.domEventHandlers(t)]};window.$events.emitPublic(i,"editor-markdown-cm6::pre-init",{editorViewConfig:s});let o=Di("markdown-editor",s);return new Dt(o).setMode("markdown",""),i.style.display="none",o}export{lw as highlight,aw as highlightWithin,fw as inlineEditor,uw as markdownEditor,cw as popupEditor,hw as wysiwygView}; +//# sourceMappingURL=code.js.map diff --git a/public/dist/export-styles.css b/public/dist/export-styles.css new file mode 100644 index 00000000000..08a7d53c784 --- /dev/null +++ b/public/dist/export-styles.css @@ -0,0 +1 @@ +.dummy-style{color:red}:root{--font-body: -apple-system, BlinkMacSystemFont, Segoe UI, Oxygen, Ubuntu, Roboto, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;--font-code: Lucida Console, DejaVu Sans Mono, Ubuntu Mono, Monaco, monospace;--color-primary: #206ea7;--color-primary-light: rgba(32,110,167,0.15);--color-link: #206ea7;--color-page: #206ea7;--color-page-draft: #7e50b1;--color-chapter: #af4d0d;--color-book: #077b70;--color-bookshelf: #a94747;--color-positive: #0f7d15;--color-negative: #ab0f0e;--color-info: #0288D1;--color-warning: #cf4d03;--bg-disabled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='100%25' width='100%25'%3E%3Cdefs%3E%3Cpattern id='doodad' width='19' height='19' viewBox='0 0 40 40' patternUnits='userSpaceOnUse' patternTransform='rotate(143)'%3E%3Crect width='100%25' height='100%25' fill='rgba(42, 67, 101,0)'/%3E%3Cpath d='M-10 30h60v20h-60zM-10-10h60v20h-60' fill='rgba(26, 32, 44,0)'/%3E%3Cpath d='M-10 10h60v20h-60zM-10-30h60v20h-60z' fill='rgba(0, 0, 0,0.05)'/%3E%3C/pattern%3E%3C/defs%3E%3Crect fill='url(%23doodad)' height='200%25' width='200%25'/%3E%3C/svg%3E")}:root.dark-mode{--bg-disabled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='100%25' width='100%25'%3E%3Cdefs%3E%3Cpattern id='doodad' width='19' height='19' viewBox='0 0 40 40' patternUnits='userSpaceOnUse' patternTransform='rotate(143)'%3E%3Crect width='100%25' height='100%25' fill='rgba(42, 67, 101,0)'/%3E%3Cpath d='M-10 30h60v20h-60zM-10-10h60v20h-60' fill='rgba(26, 32, 44,0)'/%3E%3Cpath d='M-10 10h60v20h-60zM-10-30h60v20h-60z' fill='rgba(255, 255, 255,0.05)'/%3E%3C/pattern%3E%3C/defs%3E%3Crect fill='url(%23doodad)' height='200%25' width='200%25'/%3E%3C/svg%3E");color-scheme:only dark;--color-positive: #4aa850;--color-negative: #e85c5b;--color-warning: #de8a5a}:root:not(.dark-mode){color-scheme:only light}*{box-sizing:border-box;outline-color:var(--color-primary);outline-width:1px}*:focus{outline-style:dotted}html{height:100%;overflow-y:scroll;background-color:#f2f2f2}html.flexbox{overflow-y:hidden}html.dark-mode{background-color:#111}body{font-size:14px;line-height:1.6;color:#444}html.dark-mode body{color:#aaa}body{-webkit-font-smoothing:antialiased;height:100%;display:flex;flex-direction:column}body,button,input,select,label,textarea{font-family:var(--font-body)}pre,#markdown-editor-input,.text-mono,.code-base,span.code,code{font-family:var(--font-code)}h1{font-size:3.425em;line-height:1.22222222em;margin-top:.48888889em;margin-bottom:.48888889em}h2{font-size:2.8275em;line-height:1.294117647em;margin-top:.8627451em;margin-bottom:.43137255em}h3{font-size:2.333em;line-height:1.221428572em;margin-top:.78571429em;margin-bottom:.43137255em}h4{font-size:1.666em;line-height:1.375em;margin-top:.78571429em;margin-bottom:.43137255em}h1,h2,h3,h4,h5,h6{font-weight:400;position:relative;display:block;font-family:var(--font-heading, var(--font-body));color:#222}html.dark-mode h1,html.dark-mode h2,html.dark-mode h3,html.dark-mode h4,html.dark-mode h5,html.dark-mode h6{color:#bbb}h5{font-size:1.4em}h5,h6{line-height:1.2em;margin-top:.78571429em;margin-bottom:.66em}@media screen and (max-width: 600px){h1{font-size:2.8275em}h2{font-size:2.333em}h3{font-size:1.666em}h4{font-size:1.333em}h5{font-size:1.161616em}}.list-heading{font-size:2rem}h2.list-heading{font-size:1.333rem}a{color:var(--color-link);fill:currentColor;cursor:pointer;text-decoration:none;transition:filter ease-in-out 80ms;line-height:1.6}a:hover{text-decoration:underline}a.icon{display:inline-block}a svg{position:relative;display:inline-block}a:focus img:only-child{outline:2px dashed var(--color-link);outline-offset:2px}a.no-link-style{color:inherit}a.no-link-style:hover{text-decoration:none}.blended-links a{color:inherit}.blended-links a svg{fill:currentColor}p,ul,ol,pre,table,blockquote{margin-top:.3em;margin-bottom:1.375em}hr{border:0;height:1px;background:#eaeaea}html.dark-mode hr{background:#555}hr{margin-bottom:24px}hr.faded{background-image:linear-gradient(to right, #FFF, #e3e0e0 20%, #e3e0e0 80%, #FFF)}hr.darker{background:#ddd}html.dark-mode hr.darker{background:#666}hr.margin-top,hr.even{margin-top:24px}strong,b,.bold,.strong{font-weight:bold}strong>strong,strong>b,strong>.bold,strong>.strong,b>strong,b>b,b>.bold,b>.strong,.bold>strong,.bold>b,.bold>.bold,.bold>.strong,.strong>strong,.strong>b,.strong>.bold,.strong>.strong{font-weight:bolder}em,i,.italic{font-style:italic}small,p.small,span.small,.text-small{font-size:.75rem}sup,.superscript{vertical-align:super;font-size:.8em}sub,.subscript{vertical-align:sub;font-size:.8em}pre{font-size:12px;border:1px solid #ddd;background-color:#fff}html.dark-mode pre{background-color:#2b2b2b}pre{border-color:#ddd}html.dark-mode pre{border-color:#111}pre{border-radius:4px;padding-inline-start:26px;position:relative;padding-top:3px;padding-bottom:3px}pre:before{content:"";display:block;position:absolute;top:0;width:22.4px;inset-inline-start:0;height:100%;background-color:#f5f5f5}html.dark-mode pre:before{background-color:#313335}pre:before{border-inline-end:1px solid #ddd}html.dark-mode pre:before{border-inline-end:none}@media print{pre{padding-left:12px}pre:before{display:none}}blockquote{display:block;position:relative;border-left:4px solid rgba(0,0,0,0);border-left-color:var(--color-primary);background-color:#f8f8f8}html.dark-mode blockquote{background-color:#333}blockquote{padding:12px 16px 12px 32px;overflow:auto}blockquote:before{content:"“";font-size:2em;font-weight:bold;position:absolute;top:12px;left:12px;color:#777}.text-mono{font-family:var(--font-code)}.text-uppercase{text-transform:uppercase}.text-capitals{text-transform:capitalize}.code-base,span.code,code{font-size:.84em;border:1px solid #ddd;border-radius:3px;background-color:#f8f8f8}html.dark-mode .code-base,html.dark-mode span.code,html.dark-mode code{background-color:#2b2b2b}.code-base,span.code,code{border-color:#ddd}html.dark-mode .code-base,html.dark-mode span.code,html.dark-mode code{border-color:#444}code{display:inline;padding:1px 3px;white-space:pre-wrap;line-height:1.2em}span.code{padding:1px 6px}pre code{background-color:rgba(0,0,0,0);border:0;font-size:1em;display:block;line-height:1.6}span.highlight{font-weight:bold;padding:2px 4px}ul,ol{padding-left:32px;padding-right:32px;display:flow-root}ul p,ol p{margin:0}ul{list-style:disc}ul ul{list-style:circle}ul label{margin:0}ol{list-style:decimal}li>ol,li>ul{margin-top:0;margin-bottom:0;margin-block-end:0;margin-block-start:0;padding-block-end:0;padding-block-start:0;padding-left:19.2px;padding-right:19.2px}li.checkbox-item,li.task-list-item{display:list-item;list-style:none;margin-left:-19.2px;margin-inline-start:-19.2px;margin-inline-end:0}li.checkbox-item input[type=checkbox],li.task-list-item input[type=checkbox]{margin-right:6px;margin-inline-end:6px;margin-inline-start:0}li.checkbox-item li.checkbox-item,li.checkbox-item li.task-list-item,li.task-list-item li.checkbox-item,li.task-list-item li.task-list-item{margin-left:6px;margin-inline-start:6px;margin-inline-end:0}.underlined{text-decoration:underline}.text-center{text-align:center}.text-left{text-align:start}.text-right{text-align:end}@media screen and (min-width: 361px){.text-xxs-center{text-align:center}.text-xxs-left{text-align:start}.text-xxs-right{text-align:end}}@media screen and (min-width: 401px){.text-xs-center{text-align:center}.text-xs-left{text-align:start}.text-xs-right{text-align:end}}@media screen and (min-width: 601px){.text-s-center{text-align:center}.text-s-left{text-align:start}.text-s-right{text-align:end}}@media screen and (min-width: 881px){.text-m-center{text-align:center}.text-m-left{text-align:start}.text-m-right{text-align:end}}@media screen and (min-width: 1001px){.text-l-center{text-align:center}.text-l-left{text-align:start}.text-l-right{text-align:end}}@media screen and (min-width: 1101px){.text-xl-center{text-align:center}.text-xl-left{text-align:start}.text-xl-right{text-align:end}}.text-bigger{font-size:1.1em}.text-large{font-size:1.6666em}.no-color{color:inherit}.break-text{white-space:normal;word-wrap:break-word;overflow-wrap:break-word}.text-limit-lines-1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-limit-lines-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.header-group{margin:16px 0}.header-group h1,.header-group h2,.header-group h3,.header-group h4,.header-group h5,.header-group h6{margin:0}span.sep{color:#bbb;padding:0 6px}.list>*{display:block}.svg-icon{width:1em;height:1em;display:inline-block;position:relative;bottom:-0.105em;margin-inline-end:6px;pointer-events:none;fill:currentColor}table{min-width:100px;max-width:100%}table td,table th{min-width:10px;padding:6px 8px;border:1px solid #ddd;overflow:auto;line-height:1.2;word-break:break-word;vertical-align:top}table td p,table th p{margin:0}table:not(:has(thead)) th,table thead{background-color:#f8f8f8}html.dark-mode table:not(:has(thead)) th,html.dark-mode table thead{background-color:#333}table:not(:has(thead)) th,table thead{font-weight:500}table.table{width:100%}table.table tr td,table.table tr th{border-bottom:1px solid rgba(0,0,0,.05)}table.table th,table.table td{text-align:start;border:none;padding:12px 12px;vertical-align:middle;margin:0;overflow:visible}table.table th{font-weight:bold}table.table tr:hover{background-color:#f2f2f2}html.dark-mode table.table tr:hover{background-color:#333}table.table .text-right{text-align:end}table.table .text-center{text-align:center}table.table td.actions{overflow:visible}table.table a{display:inline-block}table.table.expand-to-padding{margin-left:-12px;margin-right:-12px;width:calc(100% + 2*12px);max-width:calc(100% + 2*12px)}table.no-style td{border:0;padding:0}table.list-table{margin:0 -6px}table.list-table td{border:0;vertical-align:middle;padding:6px}.page-content{width:100%;max-width:840px;margin:0 auto;overflow-wrap:break-word;position:relative}.page-content .align-left{text-align:left}.page-content img.align-left,.page-content table.align-left,.page-content iframe.align-left,.page-content video.align-left{float:left !important;margin:6px 16px 16px 0}.page-content .align-right{text-align:right !important}.page-content img.align-right,.page-content table.align-right,.page-content iframe.align-right,.page-content video.align-right{float:right !important;margin:6px 0 6px 12px}.page-content .align-center{text-align:center}.page-content img.align-center,.page-content video.align-center,.page-content iframe.align-center{display:block}.page-content img.align-center,.page-content table.align-center,.page-content iframe.align-center,.page-content video.align-center{margin-left:auto;margin-right:auto}.page-content .align-justify{text-align:justify}.page-content h1,.page-content h2,.page-content h3,.page-content h4,.page-content h5,.page-content h6,.page-content pre{clear:left}.page-content hr{clear:both;margin:16px 0}.page-content table{hyphens:auto;table-layout:fixed;max-width:100%;height:auto !important}.page-content ins,.page-content del{text-decoration:none}.page-content ins{background:#dbffdb}.page-content del{background:#ffecec}.page-content details{border:1px solid;border-color:#ddd}html.dark-mode .page-content details{border-color:#555}.page-content details{margin-bottom:1em;padding:12px}.page-content details>summary{margin-top:-12px;margin-left:-12px;margin-right:-12px;margin-bottom:-12px;font-weight:bold;background-color:#eee}html.dark-mode .page-content details>summary{background-color:#333}.page-content details>summary{padding:6px 12px}.page-content details[open]>summary{margin-bottom:12px;border-bottom:1px solid;border-color:#ddd}html.dark-mode .page-content details[open]>summary{border-color:#555}.page-content details>summary+*{margin-top:.2em}.page-content details:after{content:"";display:block;clear:both}.page-content li>input[type=checkbox]{vertical-align:top;margin-top:.3em}.page-content p:empty{min-height:1.6em}.page-content.page-revision pre code{white-space:pre-wrap}.page-content .cm-editor{margin-bottom:1.375em}.page-content video,.page-content iframe{max-width:100%}.page-content a{text-decoration:underline}body .page-content img,.page-content img:not([data-mce-object]){max-width:100%;height:auto}.callout{border-left:3px solid #bbb;border-inline-start:3px solid #bbb;border-inline-end:none;background-color:#eee;padding:12px;padding-left:32px;padding-inline-start:32px;padding-inline-end:12px;display:block;position:relative;overflow:auto}.callout:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiMwMTUzODAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTZoMnY2em0wLThoLTJWN2gydjJ6Ii8+PC9zdmc+");background-repeat:no-repeat;content:"";width:1.2em;height:1.2em;left:8px;inset-inline-start:8px;inset-inline-end:unset;top:50%;margin-top:-9px;display:inline-block;position:absolute;line-height:1;opacity:.8}.callout.success{border-color:#0f7d15}html.dark-mode .callout.success{border-color:#4aa850}.callout.success{background-color:#eafdeb}html.dark-mode .callout.success{background-color:#122913}.callout.success{color:#063409}html.dark-mode .callout.success{color:#4aa850}.callout.success:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiMzNzZjMzkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0yIDE1bC01LTUgMS40MS0xLjQxTDEwIDE0LjE3bDcuNTktNy41OUwxOSA4bC05IDl6Ii8+PC9zdmc+")}.callout.danger{border-color:#ab0f0e}html.dark-mode .callout.danger{border-color:#e85c5b}.callout.danger{background-color:#fcdbdb}html.dark-mode .callout.danger{background-color:#250505}.callout.danger{color:#4d0706}html.dark-mode .callout.danger{color:#e85c5b}.callout.danger:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiNiOTE4MTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTIgMTcuM2MtLjcyIDAtMS4zLS41OC0xLjMtMS4zIDAtLjcyLjU4LTEuMyAxLjMtMS4zLjcyIDAgMS4zLjU4IDEuMyAxLjMgMCAuNzItLjU4IDEuMy0xLjMgMS4zem0xLTQuM2gtMlY3aDJ2NnoiLz4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==")}.callout.info{border-color:#0288d1}html.dark-mode .callout.info{border-color:#0288d1}.callout.info{background-color:#d3efff}html.dark-mode .callout.info{background-color:#001825}.callout.info{color:#01466c}html.dark-mode .callout.info{color:#0288d1}.callout.warning{border-color:#cf4d03}html.dark-mode .callout.warning{border-color:#de8a5a}.callout.warning{background-color:#fee3d3}html.dark-mode .callout.warning{background-color:#30170a}.callout.warning{color:#6a2802}html.dark-mode .callout.warning{color:#de8a5a}.callout.warning:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiNiNjUzMWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiLz48L3N2Zz4=")}.callout a{color:inherit;text-decoration:underline}a[data-mention-user-id]{display:inline-block;position:relative;color:var(--color-link);padding:.1em .4em;display:-webkit-inline-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;max-width:180px;overflow:hidden;text-overflow:ellipsis;font-size:.92em;margin-inline:.2em;vertical-align:middle;border-radius:3px;border:1px solid rgba(0,0,0,0)}a[data-mention-user-id]:hover{text-decoration:none;border-color:currentColor}a[data-mention-user-id]:after{content:"";background-color:currentColor;opacity:.2;position:absolute;top:0;right:0;width:100%;height:100%;display:block}html,body{background-color:#fff}body{margin:0;padding:0;display:block}body,h1,h2,h3,h4,h5,h6{font-family:"DejaVu Sans",-apple-system,BlinkMacSystemFont,"Segoe UI","Oxygen","Ubuntu","Roboto","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}table{border-spacing:0;border-collapse:collapse}.page-content{overflow:hidden}pre{padding-left:12px}pre:before{display:none}pre code{white-space:pre-wrap}.page-break{page-break-after:always}@media screen{.page-break{border-top:1px solid #ddd}}ul.contents ul li{list-style:circle}.chapter-hint{color:#888;margin-top:32px}.chapter-hint+h1{margin-top:0}body.export-format-pdf{font-size:14px;line-height:1.2}body.export-format-pdf h1,body.export-format-pdf h2,body.export-format-pdf h3,body.export-format-pdf h4,body.export-format-pdf h5,body.export-format-pdf h6{line-height:1.2}body.export-format-pdf table{max-width:800px !important;font-size:.8em;width:100% !important}body.export-format-pdf table td{width:auto !important}body.export-format-pdf .page-content .float{float:none !important}body.export-format-pdf .page-content img.align-left,body.export-format-pdf .page-content img.align-right{float:none !important;clear:both;display:block}body.export-format-pdf.export-engine-dompdf .page-content a>img{max-width:700px}body.export-format-pdf.export-engine-dompdf .page-content td a>img{max-width:100%}/*# sourceMappingURL=export-styles.css.map */ diff --git a/public/dist/legacy-modes.js b/public/dist/legacy-modes.js new file mode 100644 index 00000000000..f7ef256b5dd --- /dev/null +++ b/public/dist/legacy-modes.js @@ -0,0 +1,3 @@ +// See the "/licenses" URI for full package license details +function Sn(e,n,t,r,i,o){this.indented=e,this.column=n,this.type=t,this.info=r,this.align=i,this.prev=o}function Ke(e,n,t,r){var i=e.indented;return e.context&&e.context.type=="statement"&&t!="statement"&&(i=e.context.indented),e.context=new Sn(i,n,t,r,null,e.context)}function De(e){var n=e.context.type;return(n==")"||n=="]"||n=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}function pt(e,n,t){if(n.prevToken=="variable"||n.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,t))||n.typeAtEndOfLine&&e.column()==e.indentation())return!0}function xn(e){for(;;){if(!e||e.type=="top")return!0;if(e.type=="}"&&e.prev.info!="namespace")return!1;e=e.prev}}function ne(e){var n=e.statementIndentUnit,t=e.dontAlignCalls,r=e.keywords||{},i=e.types||{},o=e.builtin||{},a=e.blockKeywords||{},s=e.defKeywords||{},_=e.atoms||{},z=e.hooks||{},S=e.multiLineStrings,c=e.indentStatements!==!1,f=e.indentSwitch!==!1,y=e.namespaceSeparator,R=e.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,Q=e.numberStart||/[\d\.]/,U=e.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,d=e.isOperatorChar||/[+\-*&%=<>!?|\/]/,C=e.isIdentifierChar||/[\w\$_\xa1-\uffff]/,E=e.isReservedIdentifier||!1,I,l;function u(m,p){var T=m.next();if(z[T]){var k=z[T](m,p);if(k!==!1)return k}if(T=='"'||T=="'")return p.tokenize=A(T),p.tokenize(m,p);if(Q.test(T)){if(m.backUp(1),m.match(U))return"number";m.next()}if(R.test(T))return I=T,null;if(T=="/"){if(m.eat("*"))return p.tokenize=x,x(m,p);if(m.eat("/"))return m.skipToEnd(),"comment"}if(d.test(T)){for(;!m.match(/^\/[\/*]/,!1)&&m.eat(d););return"operator"}if(m.eatWhile(C),y)for(;m.match(y);)m.eatWhile(C);var $=m.current();return de(r,$)?(de(a,$)&&(I="newstatement"),de(s,$)&&(l=!0),"keyword"):de(i,$)?"type":de(o,$)||E&&E($)?(de(a,$)&&(I="newstatement"),"builtin"):de(_,$)?"atom":"variable"}function A(m){return function(p,T){for(var k=!1,$,ce=!1;($=p.next())!=null;){if($==m&&!k){ce=!0;break}k=!k&&$=="\\"}return(ce||!(k||S))&&(T.tokenize=null),"string"}}function x(m,p){for(var T=!1,k;k=m.next();){if(k=="/"&&T){p.tokenize=null;break}T=k=="*"}return"comment"}function L(m,p){e.typeFirstDefinitions&&m.eol()&&xn(p.context)&&(p.typeAtEndOfLine=pt(m,p,m.pos))}return{name:e.name,startState:function(m){return{tokenize:null,context:new Sn(-m,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(m,p){var T=p.context;if(m.sol()&&(T.align==null&&(T.align=!1),p.indented=m.indentation(),p.startOfLine=!0),m.eatSpace())return L(m,p),null;I=l=null;var k=(p.tokenize||u)(m,p);if(k=="comment"||k=="meta")return k;if(T.align==null&&(T.align=!0),I==";"||I==":"||I==","&&m.match(/^\s*(?:\/\/.*)?$/,!1))for(;p.context.type=="statement";)De(p);else if(I=="{")Ke(p,m.column(),"}");else if(I=="[")Ke(p,m.column(),"]");else if(I=="(")Ke(p,m.column(),")");else if(I=="}"){for(;T.type=="statement";)T=De(p);for(T.type=="}"&&(T=De(p));T.type=="statement";)T=De(p)}else I==T.type?De(p):c&&((T.type=="}"||T.type=="top")&&I!=";"||T.type=="statement"&&I=="newstatement")&&Ke(p,m.column(),"statement",m.current());if(k=="variable"&&(p.prevToken=="def"||e.typeFirstDefinitions&&pt(m,p,m.start)&&xn(p.context)&&m.match(/^\s*\(/,!1))&&(k="def"),z.token){var $=z.token(m,p,k);$!==void 0&&(k=$)}return k=="def"&&e.styleDefs===!1&&(k="variable"),p.startOfLine=!1,p.prevToken=l?"def":k||I,L(m,p),k},indent:function(m,p,T){if(m.tokenize!=u&&m.tokenize!=null||m.typeAtEndOfLine&&xn(m.context))return null;var k=m.context,$=p&&p.charAt(0),ce=$==k.type;if(k.type=="statement"&&$=="}"&&(k=k.prev),e.dontIndentStatements)for(;k.type=="statement"&&e.dontIndentStatements.test(k.info);)k=k.prev;if(z.indent){var Pe=z.indent(m,k,p,T.unit);if(typeof Pe=="number")return Pe}var yn=k.prev&&k.prev.info=="switch";if(e.allmanIndentation&&/[{(]/.test($)){for(;k.type!="top"&&k.type!="}";)k=k.prev;return k.indented}return k.type=="statement"?k.indented+($=="{"?0:n||T.unit):k.align&&(!t||k.type!=")")?k.column+(ce?0:1):k.type==")"&&!ce?k.indented+(n||T.unit):k.indented+(ce?0:T.unit)+(!ce&&yn&&!/^(?:case|default)\b/.test(p)?T.unit:0)},languageData:{indentOnInput:f?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(r).concat(Object.keys(i)).concat(Object.keys(o)).concat(Object.keys(_)),...e.languageData}}}function v(e){for(var n={},t=e.split(" "),r=0;r!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,n){return e.match('""')?(n.tokenize=_t,n.tokenize(e,n)):!1},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(e,n){var t=n.context;return t.type=="}"&&t.align&&e.eat(">")?(n.context=new Sn(t.indented,t.column,t.type,t.info,null,t.prev),"operator"):!1},"/":function(e,n){return e.eat("*")?(n.tokenize=Le(1),n.tokenize(e,n)):!1}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function bi(e){return function(n,t){for(var r=!1,i,o=!1;!n.eol();){if(!e&&!r&&n.match('"')){o=!0;break}if(e&&n.match('"""')){o=!0;break}i=n.next(),!r&&i=="$"&&n.match("{")&&n.skipTo("}"),r=!r&&i=="\\"&&!e}return(o||!e)&&(t.tokenize=null),"string"}}var vi=ne({name:"kotlin",keywords:v("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:v("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(ul?|l|f)?/i,blockKeywords:v("catch class do else finally for if where try while enum"),defKeywords:v("class val var object interface fun"),atoms:v("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,n){return n.prevToken=="."?"variable":"operator"},'"':function(e,n){return n.tokenize=bi(e.match('""')),n.tokenize(e,n)},"/":function(e,n){return e.eat("*")?(n.tokenize=Le(1),n.tokenize(e,n)):!1},indent:function(e,n,t,r){var i=t&&t.charAt(0);if((e.prevToken=="}"||e.prevToken==")")&&t=="")return e.indented;if(e.prevToken=="operator"&&t!="}"&&e.context.type!="}"||e.prevToken=="variable"&&i=="."||(e.prevToken=="}"||e.prevToken==")")&&i==".")return r*2+n.indented;if(n.align&&n.type=="}")return n.indented+(e.context.type==(t||"").charAt(0)?0:r)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),Bc=ne({name:"shader",keywords:v("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:v("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:v("for while do if else struct"),builtin:v("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:v("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":ve}}),Wc=ne({name:"nesc",keywords:v($e+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:Ne,blockKeywords:v(Fe),atoms:v("null true false"),hooks:{"#":ve}}),jc=ne({name:"objectivec",keywords:v($e+" "+bt),types:yt,builtin:v(vt),blockKeywords:v(Fe+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:v(Ze+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:v("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Qe,hooks:{"#":ve,"*":Ge}}),Uc=ne({name:"objectivecpp",keywords:v($e+" "+bt+" "+gt),types:yt,builtin:v(vt),blockKeywords:v(Fe+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:v(Ze+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:v("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Qe,hooks:{"#":ve,"*":Ge,u:be,U:be,L:be,R:be,0:W,1:W,2:W,3:W,4:W,5:W,6:W,7:W,8:W,9:W,token:function(e,n,t){if(t=="variable"&&e.peek()=="("&&(n.prevToken==";"||n.prevToken==null||n.prevToken=="}")&&kt(e.current()))return"def"}},namespaceSeparator:"::"}),Vc=ne({name:"squirrel",keywords:v("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:Ne,blockKeywords:v("case catch class else for foreach if switch try while"),defKeywords:v("function local class"),typeFirstDefinitions:!0,atoms:v("true false null"),hooks:{"#":ve}}),He=null;function xt(e){return function(n,t){for(var r=!1,i,o=!1;!n.eol();){if(!r&&n.match('"')&&(e=="single"||n.match('""'))){o=!0;break}if(!r&&n.match("``")){He=xt(e),o=!0;break}i=n.next(),r=e=="single"&&!r&&i=="\\"}return o&&(t.tokenize=null),"string"}}var Kc=ne({name:"ceylon",keywords:v("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var n=e.charAt(0);return n===n.toUpperCase()&&n!==n.toLowerCase()},blockKeywords:v("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:v("class dynamic function interface module object package value"),builtin:v("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:v("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,n){return n.tokenize=xt(e.match('""')?"triple":"single"),n.tokenize(e,n)},"`":function(e,n){return!He||!e.match("`")?!1:(n.tokenize=He,He=null,n.tokenize(e,n))},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(e,n,t){if((t=="variable"||t=="type")&&n.prevToken==".")return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function yi(e){(e.interpolationStack||(e.interpolationStack=[])).push(e.tokenize)}function wt(e){return(e.interpolationStack||(e.interpolationStack=[])).pop()}function ki(e){return e.interpolationStack?e.interpolationStack.length:0}function wn(e,n,t,r){var i=!1;if(n.eat(e))if(n.eat(e))i=!0;else return"string";function o(a,s){for(var _=!1;!a.eol();){if(!r&&!_&&a.peek()=="$")return yi(s),s.tokenize=_i,"string";var z=a.next();if(z==e&&!_&&(!i||a.match(e+e))){s.tokenize=null;break}_=!r&&!_&&z=="\\"}return"string"}return t.tokenize=o,o(n,t)}function _i(e,n){return e.eat("$"),e.eat("{")?n.tokenize=null:n.tokenize=xi,null}function xi(e,n){return e.eatWhile(/[\w_]/),n.tokenize=wt(n),"variable"}var wi=ne({name:"dart",keywords:v("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:v("try catch finally do else for if switch while"),builtin:v("void bool num int double dynamic var String Null Never"),atoms:v("true false null"),number:/^(?:0x[a-f\d_]+|(?:[\d_]+\.?[\d_]*|\.[\d_]+)(?:e[-+]?[\d_]+)?)/i,hooks:{"@":function(e){return e.eatWhile(/[\w\$_\.]/),"meta"},"'":function(e,n){return wn("'",e,n,!1)},'"':function(e,n){return wn('"',e,n,!1)},r:function(e,n){var t=e.peek();return t=="'"||t=='"'?wn(e.next(),e,n,!0):!1},"}":function(e,n){return ki(n)>0?(n.tokenize=wt(n),null):!1},"/":function(e,n){return e.eat("*")?(n.tokenize=Le(1),n.tokenize(e,n)):!1},token:function(e,n,t){if(t=="variable"){var r=RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g");if(r.test(e.current()))return"type"}}}});var St=["false","nil","true"],zt=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],Et=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],Si=["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"],zi=Xe(St),Ei=Xe(zt),Ti=Xe(Et),Ci=Xe(Si),Ii=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/,Ai=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,Oi=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,Ri=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function zn(e,n){if(e.eatSpace()||e.eat(","))return["space",null];if(e.match(Ai))return[null,"number"];if(e.match(Oi))return[null,"string.special"];if(e.eat(/^"/))return(n.tokenize=Pi)(e,n);if(e.eat(/^[(\[{]/))return["open","bracket"];if(e.eat(/^[)\]}]/))return["close","bracket"];if(e.eat(/^;/))return e.skipToEnd(),["space","comment"];if(e.eat(/^[#'@^`~]/))return[null,"meta"];var t=e.match(Ri),r=t&&t[0];return r?r==="comment"&&n.lastToken==="("?(n.tokenize=Di)(e,n):qe(r,zi)||r.charAt(0)===":"?["symbol","atom"]:qe(r,Ei)||qe(r,Ti)?["symbol","keyword"]:n.lastToken==="("?["symbol","builtin"]:["symbol","variable"]:(e.next(),e.eatWhile(function(i){return!qe(i,Ii)}),[null,"error"])}function Pi(e,n){for(var t=!1,r;r=e.next();){if(r==='"'&&!t){n.tokenize=zn;break}t=!t&&r==="\\"}return[null,"string"]}function Di(e,n){for(var t=1,r;r=e.next();)if(r===")"&&t--,r==="("&&t++,t===0){e.backUp(1),n.tokenize=zn;break}return["space","comment"]}function Xe(e){for(var n={},t=0;t\/\:]/,Mi=/^\.(and|or|eq|lt|le|gt|ge|ne|not|eqv|neqv)\./i;function Bi(e,n){if(e.match(Mi))return"operator";var t=e.next();if(t=="!")return e.skipToEnd(),"comment";if(t=='"'||t=="'")return n.tokenize=Wi(t),n.tokenize(e,n);if(/[\[\]\(\),]/.test(t))return null;if(/\d/.test(t))return e.eatWhile(/[\w\.]/),"number";if(Ct.test(t))return e.eatWhile(Ct),"operator";e.eatWhile(/[\w\$_]/);var r=e.current().toLowerCase();return Ni.hasOwnProperty(r)?"keyword":Fi.hasOwnProperty(r)||qi.hasOwnProperty(r)?"builtin":"variable"}function Wi(e){return function(n,t){for(var r=!1,i,o=!1;(i=n.next())!=null;){if(i==e&&!r){o=!0;break}r=!r&&i=="\\"}return(o||!r)&&(t.tokenize=null),"string"}}var ji={name:"fortran",startState:function(){return{tokenize:null}},token:function(e,n){if(e.eatSpace())return null;var t=(n.tokenize||Bi)(e,n);return t=="comment"||t=="meta",t}};var Ui={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0,any:!0,comparable:!0},Vi={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},It=/[+\-*&^%:=<>!|\/]/,fe;function Je(e,n){var t=e.next();if(t=='"'||t=="'"||t=="`")return n.tokenize=Ki(t),n.tokenize(e,n);if(/[\d\.]/.test(t))return t=="."?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):t=="0"?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(t))return fe=t,null;if(t=="/"){if(e.eat("*"))return n.tokenize=At,At(e,n);if(e.eat("/"))return e.skipToEnd(),"comment"}if(It.test(t))return e.eatWhile(It),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var r=e.current();return Ui.propertyIsEnumerable(r)?((r=="case"||r=="default")&&(fe="case"),"keyword"):Vi.propertyIsEnumerable(r)?"atom":"variable"}function Ki(e){return function(n,t){for(var r=!1,i,o=!1;(i=n.next())!=null;){if(i==e&&!r){o=!0;break}r=!r&&e!="`"&&i=="\\"}return(o||!(r||e=="`"))&&(t.tokenize=Je),"string"}}function At(e,n){for(var t=!1,r;r=e.next();){if(r=="/"&&t){n.tokenize=Je;break}t=r=="*"}return"comment"}function Rt(e,n,t,r,i){this.indented=e,this.column=n,this.type=t,this.align=r,this.prev=i}function Tn(e,n,t){return e.context=new Rt(e.indented,n,t,null,e.context)}function Ot(e){if(e.context.prev){var n=e.context.type;return(n==")"||n=="]"||n=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}}var Hi={name:"go",startState:function(e){return{tokenize:null,context:new Rt(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,n){var t=n.context;if(e.sol()&&(t.align==null&&(t.align=!1),n.indented=e.indentation(),n.startOfLine=!0,t.type=="case"&&(t.type="}")),e.eatSpace())return null;fe=null;var r=(n.tokenize||Je)(e,n);return r=="comment"||(t.align==null&&(t.align=!0),fe=="{"?Tn(n,e.column(),"}"):fe=="["?Tn(n,e.column(),"]"):fe=="("?Tn(n,e.column(),")"):fe=="case"?t.type="case":(fe=="}"&&t.type=="}"||fe==t.type)&&Ot(n),n.startOfLine=!1),r},indent:function(e,n,t){if(e.tokenize!=Je&&e.tokenize!=null)return null;var r=e.context,i=n&&n.charAt(0);if(r.type=="case"&&/^(?:case|default)\b/.test(n))return r.indented;var o=i==r.type;return r.align?r.column+(o?0:1):r.indented+(o?0:t.unit)},languageData:{indentOnInput:/^\s([{}]|case |default\s*:)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};function en(e){for(var n={},t=e.split(" "),r=0;r"))return X="->",null;if(/[+\-*&%=<>!?|\/~]/.test(t))return e.eatWhile(/[+\-*&%=<>|~]/),"operator";if(e.eatWhile(/[\w\$_]/),t=="@")return e.eatWhile(/[\w\$_\.]/),"meta";if(n.lastToken==".")return"property";if(e.eat(":"))return X="proplabel","property";var r=e.current();return Xi.propertyIsEnumerable(r)?"atom":Zi.propertyIsEnumerable(r)?(Gi.propertyIsEnumerable(r)?X="newstatement":Qi.propertyIsEnumerable(r)&&(X="standalone"),"keyword"):"variable"}In.isBase=!0;function Pt(e,n,t){var r=!1;if(e!="/"&&n.eat(e))if(n.eat(e))r=!0;else return"string";function i(o,a){for(var s=!1,_,z=!r;(_=o.next())!=null;){if(_==e&&!s){if(!r)break;if(o.match(e+e)){z=!0;break}}if(e=='"'&&_=="$"&&!s){if(o.eat("{"))return a.tokenize.push(Ji()),"string";if(o.match(/^\w/,!1))return a.tokenize.push(Yi),"string"}s=!s&&_=="\\"}return z&&a.tokenize.pop(),"string"}return t.tokenize.push(i),i(n,t)}function Ji(){var e=1;function n(t,r){if(t.peek()=="}"){if(e--,e==0)return r.tokenize.pop(),r.tokenize[r.tokenize.length-1](t,r)}else t.peek()=="{"&&e++;return In(t,r)}return n.isBase=!0,n}function Yi(e,n){var t=e.match(/^(\.|[\w\$_]+)/);return(!t||!e.match(t[0]=="."?/^[\w$_]/:/^\./))&&n.tokenize.pop(),t?t[0]=="."?null:"variable":n.tokenize[n.tokenize.length-1](e,n)}function Dt(e,n){for(var t=!1,r;r=e.next();){if(r=="/"&&t){n.tokenize.pop();break}t=r=="*"}return"comment"}function Cn(e,n){return!e||e=="operator"||e=="->"||/[\.\[\{\(,;:]/.test(e)||e=="newstatement"||e=="keyword"||e=="proplabel"||e=="standalone"&&!n}function Lt(e,n,t,r,i){this.indented=e,this.column=n,this.type=t,this.align=r,this.prev=i}function Ye(e,n,t){return e.context=new Lt(e.indented,n,t,null,e.context)}function xe(e){var n=e.context.type;return(n==")"||n=="]"||n=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}var eo={name:"groovy",startState:function(e){return{tokenize:[In],context:new Lt(-e,0,"top",!1),indented:0,startOfLine:!0,lastToken:null}},token:function(e,n){var t=n.context;if(e.sol()&&(t.align==null&&(t.align=!1),n.indented=e.indentation(),n.startOfLine=!0,t.type=="statement"&&!Cn(n.lastToken,!0)&&(xe(n),t=n.context)),e.eatSpace())return null;X=null;var r=n.tokenize[n.tokenize.length-1](e,n);if(r=="comment")return r;if(t.align==null&&(t.align=!0),(X==";"||X==":")&&t.type=="statement")xe(n);else if(X=="->"&&t.type=="statement"&&t.prev.type=="}")xe(n),n.context.align=!1;else if(X=="{")Ye(n,e.column(),"}");else if(X=="[")Ye(n,e.column(),"]");else if(X=="(")Ye(n,e.column(),")");else if(X=="}"){for(;t.type=="statement";)t=xe(n);for(t.type=="}"&&(t=xe(n));t.type=="statement";)t=xe(n)}else X==t.type?xe(n):(t.type=="}"||t.type=="top"||t.type=="statement"&&X=="newstatement")&&Ye(n,e.column(),"statement");return n.startOfLine=!1,n.lastToken=X||r,r},indent:function(e,n,t){if(!e.tokenize[e.tokenize.length-1].isBase)return null;var r=n&&n.charAt(0),i=e.context;i.type=="statement"&&!Cn(e.lastToken,!0)&&(i=i.prev);var o=r==i.type;return i.type=="statement"?i.indented+(r=="{"?0:t.unit):i.align?i.column+(o?0:1):i.indented+(o?0:t.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}};function j(e){return{type:e,style:"keyword"}}var $t=j("keyword a"),An=j("keyword b"),Me=j("keyword c"),no=j("operator"),On={type:"atom",style:"atom"},nn={type:"attribute",style:"attribute"},J=j("typedef"),Nt={if:$t,while:$t,else:An,do:An,try:An,return:Me,break:Me,continue:Me,new:Me,throw:Me,var:j("var"),inline:nn,static:nn,using:j("import"),public:nn,private:nn,cast:j("cast"),import:j("import"),macro:j("macro"),function:j("function"),catch:j("catch"),untyped:j("untyped"),callback:j("cb"),for:j("for"),switch:j("switch"),case:j("case"),default:j("default"),in:no,never:j("property_access"),trace:j("trace"),class:J,abstract:J,enum:J,interface:J,typedef:J,extends:J,implements:J,dynamic:J,true:On,false:On,null:On},Rn=/[+\-*&%=<>!?|]/;function Ft(e,n,t){return n.tokenize=t,t(e,n)}function Mt(e,n){for(var t=!1,r;(r=e.next())!=null;){if(r==n&&!t)return!0;t=!t&&r=="\\"}}var J,Bt;function ee(e,n,t){return J=e,Bt=t,n}function tn(e,n){var t=e.next();if(t=='"'||t=="'")return Ft(e,n,to(t));if(/[\[\]{}\(\),;\:\.]/.test(t))return ee(t);if(t=="0"&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),ee("number","number");if(/\d/.test(t)||t=="-"&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),ee("number","number");if(n.reAllowed&&t=="~"&&e.eat(/\//))return Mt(e,"/"),e.eatWhile(/[gimsu]/),ee("regexp","string.special");if(t=="/")return e.eat("*")?Ft(e,n,ro):e.eat("/")?(e.skipToEnd(),ee("comment","comment")):(e.eatWhile(Rn),ee("operator",null,e.current()));if(t=="#")return e.skipToEnd(),ee("conditional","meta");if(t=="@")return e.eat(/:/),e.eatWhile(/[\w_]/),ee("metadata","meta");if(Rn.test(t))return e.eatWhile(Rn),ee("operator",null,e.current());var r;if(/[A-Z]/.test(t))return e.eatWhile(/[\w_<>]/),r=e.current(),ee("type","type",r);e.eatWhile(/[\w_]/);var r=e.current(),i=Nt.propertyIsEnumerable(r)&&Nt[r];return i&&n.kwAllowed?ee(i.type,i.style,r):ee("variable","variable",r)}function to(e){return function(n,t){return Mt(n,e)&&(t.tokenize=tn),ee("string","string")}}function ro(e,n){for(var t=!1,r;r=e.next();){if(r=="/"&&t){n.tokenize=tn;break}t=r=="*"}return ee("comment","comment")}var Wt={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};function jt(e,n,t,r,i,o){this.indented=e,this.column=n,this.type=t,this.prev=i,this.info=o,r!=null&&(this.align=r)}function io(e,n){for(var t=e.localVars;t;t=t.next)if(t.name==n)return!0}function oo(e,n,t,r,i){var o=e.cc;for(F.state=e,F.stream=i,F.marked=null,F.cc=o,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){var a=o.length?o.pop():pe;if(a(t,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return F.marked?F.marked:t=="variable"&&io(e,r)?"variableName.local":t=="variable"&&ao(e,r)?"variableName.special":n}}}function ao(e,n){if(/[a-z]/.test(n.charAt(0)))return!1;for(var t=e.importedtypes.length,r=0;r=0;e--)F.cc.push(arguments[e])}function g(){return me.apply(null,arguments),!0}function qt(e,n){for(var t=n;t;t=t.next)if(t.name==e)return!0;return!1}function on(e){var n=F.state;if(n.context){if(F.marked="def",qt(e,n.localVars))return;n.localVars={name:e,next:n.localVars}}else if(n.globalVars){if(qt(e,n.globalVars))return;n.globalVars={name:e,next:n.globalVars}}}var lo={name:"this",next:null};function Dn(){F.state.context||(F.state.localVars=lo),F.state.context={prev:F.state.context,vars:F.state.localVars}}function rn(){F.state.localVars=F.state.context.vars,F.state.context=F.state.context.prev}rn.lex=!0;function V(e,n){var t=function(){var r=F.state;r.lexical=new jt(r.indented,F.stream.column(),e,null,r.lexical,n)};return t.lex=!0,t}function B(){var e=F.state;e.lexical.prev&&(e.lexical.type==")"&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}B.lex=!0;function Y(e){function n(t){return t==e?g():e==";"?me():g(n)}return n}function pe(e){return e=="@"?g(Ln):e=="var"?g(V("vardef"),Nn,Y(";"),B):e=="keyword a"?g(V("form"),re,pe,B):e=="keyword b"?g(V("form"),pe,B):e=="{"?g(V("}"),Dn,$n,B,rn):e==";"?g():e=="attribute"?g(Vt):e=="function"?g(Be):e=="for"?g(V("form"),Y("("),V(")"),mo,Y(")"),B,pe,B):e=="variable"?g(V("stat"),so):e=="switch"?g(V("form"),re,V("}","switch"),Y("{"),$n,B,B):e=="case"?g(re,Y(":")):e=="default"?g(Y(":")):e=="catch"?g(V("form"),Dn,Y("("),Zt,Y(")"),pe,B,rn):e=="import"?g(Kt,Y(";")):e=="typedef"?g(uo):me(V("stat"),re,Y(";"),B)}function re(e){return Wt.hasOwnProperty(e)||e=="type"?g(ue):e=="function"?g(Be):e=="keyword c"?g(Pn):e=="("?g(V(")"),Pn,Y(")"),B,ue):e=="operator"?g(re):e=="["?g(V("]"),Ee(Pn,"]"),B,ue):e=="{"?g(V("}"),Ee(po,"}"),B,ue):g()}function Pn(e){return e.match(/[;\}\)\],]/)?me():me(re)}function ue(e,n){if(e=="operator"&&/\+\+|--/.test(n))return g(ue);if(e=="operator"||e==":")return g(re);if(e!=";"){if(e=="(")return g(V(")"),Ee(re,")"),B,ue);if(e==".")return g(fo,ue);if(e=="[")return g(V("]"),re,Y("]"),B,ue)}}function Vt(e){if(e=="attribute")return g(Vt);if(e=="function")return g(Be);if(e=="var")return g(Nn)}function Ln(e){if(e==":"||e=="variable")return g(Ln);if(e=="(")return g(V(")"),Ee(co,")"),B,pe)}function co(e){if(e=="variable")return g()}function Kt(e,n){if(e=="variable"&&/[A-Z]/.test(n.charAt(0)))return Ut(n),g();if(e=="variable"||e=="property"||e=="."||n=="*")return g(Kt)}function uo(e,n){if(e=="variable"&&/[A-Z]/.test(n.charAt(0)))return Ut(n),g();if(e=="type"&&/[A-Z]/.test(n.charAt(0)))return g()}function so(e){return e==":"?g(B,pe):me(ue,Y(";"),B)}function fo(e){if(e=="variable")return F.marked="property",g()}function po(e){if(e=="variable"&&(F.marked="property"),Wt.hasOwnProperty(e))return g(Y(":"),re)}function Ee(e,n){function t(r){return r==","?g(e,t):r==n?g():g(Y(n))}return function(r){return r==n?g():me(e,t)}}function $n(e){return e=="}"?g():me(pe,$n)}function Nn(e,n){return e=="variable"?(on(n),g(an,Ht)):g()}function Ht(e,n){if(n=="=")return g(re,Ht);if(e==",")return g(Nn)}function mo(e,n){return e=="variable"?(on(n),g(ho,re)):me()}function ho(e,n){if(n=="in")return g()}function Be(e,n){if(e=="variable"||e=="type")return on(n),g(Be);if(n=="new")return g(Be);if(e=="(")return g(V(")"),Dn,Ee(Zt,")"),B,an,pe,rn)}function an(e){if(e==":")return g(go)}function go(e){if(e=="type"||e=="variable")return g();if(e=="{")return g(V("}"),Ee(bo,"}"),B)}function bo(e){if(e=="variable")return g(an)}function Zt(e,n){if(e=="variable")return on(n),g(an)}var vo={name:"haxe",startState:function(e){var n=["Int","Float","String","Void","Std","Bool","Dynamic","Array"],t={tokenize:tn,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new jt(-e,0,"block",!1),importedtypes:n,context:null,indented:0};return t},token:function(e,n){if(e.sol()&&(n.lexical.hasOwnProperty("align")||(n.lexical.align=!1),n.indented=e.indentation()),e.eatSpace())return null;var t=n.tokenize(e,n);return J=="comment"?t:(n.reAllowed=!!(J=="operator"||J=="keyword c"||J.match(/^[\[{}\(,;:]$/)),n.kwAllowed=J!=".",oo(n,t,J,Bt,e))},indent:function(e,n,t){if(e.tokenize!=tn)return 0;var r=n&&n.charAt(0),i=e.lexical;i.type=="stat"&&r=="}"&&(i=i.prev);var o=i.type,a=r==o;return o=="vardef"?i.indented+4:o=="form"&&r=="{"?i.indented:o=="stat"||o=="form"?i.indented+t.unit:i.info=="switch"&&!a?i.indented+(/^(?:case|default)\b/.test(n)?t.unit:2*t.unit):i.align?i.column+(a?0:1):i.indented+(a?0:t.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};function Mn(e,n,t){return n(t),t(e,n)}var yo=/[a-z_]/,ko=/[A-Z]/,Fn=/\d/,_o=/[0-9A-Fa-f]/,xo=/[0-7]/,Gt=/[a-z_A-Z0-9'\xa1-\uffff]/,qn=/[-!#$%&*+.\/<=>?@\\^|~:]/,wo=/[(),;[\]`{}]/,Xt=/[ \t\v\f]/;function Te(e,n){if(e.eatWhile(Xt))return null;var t=e.next();if(wo.test(t)){if(t=="{"&&e.eat("-")){var r="comment";return e.eat("#")&&(r="meta"),Mn(e,n,Jt(r,1))}return null}if(t=="'")return e.eat("\\"),e.next(),e.eat("'")?"string":"error";if(t=='"')return Mn(e,n,Yt);if(ko.test(t))return e.eatWhile(Gt),e.eat(".")?"qualifier":"type";if(yo.test(t))return e.eatWhile(Gt),"variable";if(Fn.test(t)){if(t=="0"){if(e.eat(/[xX]/))return e.eatWhile(_o),"integer";if(e.eat(/[oO]/))return e.eatWhile(xo),"number"}e.eatWhile(Fn);var r="number";return e.match(/^\.\d+/)&&(r="number"),e.eat(/[eE]/)&&(r="number",e.eat(/[-+]/),e.eatWhile(Fn)),r}return t=="."&&e.eat(".")?"keyword":qn.test(t)?t=="-"&&e.eat(/-/)&&(e.eatWhile(/-/),!e.eat(qn))?(e.skipToEnd(),"comment"):(e.eatWhile(qn),"variable"):"error"}function Jt(e,n){return n==0?Te:function(t,r){for(var i=n;!t.eol();){var o=t.next();if(o=="{"&&t.eat("-"))++i;else if(o=="-"&&t.eat("}")&&(--i,i==0))return r(Te),e}return r(Jt(e,i)),e}}function Yt(e,n){for(;!e.eol();){var t=e.next();if(t=='"')return n(Te),"string";if(t=="\\"){if(e.eol()||e.eat(Xt))return n(So),"string";e.eat("&")||e.next()}}return n(Te),"error"}function So(e,n){return e.eat("\\")?Mn(e,n,Yt):(e.next(),n(Te),"error")}var Qt=(function(){var e={};function n(t){return function(){for(var r=0;r","@","~","=>"),n("builtin")("!!","$!","$","&&","+","++","-",".","/","/=","<","<*","<=","<$>","<*>","=<<","==",">",">=",">>",">>=","^","^^","||","*","*>","**"),n("builtin")("Applicative","Bool","Bounded","Char","Double","EQ","Either","Enum","Eq","False","FilePath","Float","Floating","Fractional","Functor","GT","IO","IOError","Int","Integer","Integral","Just","LT","Left","Maybe","Monad","Nothing","Num","Ord","Ordering","Rational","Read","ReadS","Real","RealFloat","RealFrac","Right","Show","ShowS","String","True"),n("builtin")("abs","acos","acosh","all","and","any","appendFile","asTypeOf","asin","asinh","atan","atan2","atanh","break","catch","ceiling","compare","concat","concatMap","const","cos","cosh","curry","cycle","decodeFloat","div","divMod","drop","dropWhile","either","elem","encodeFloat","enumFrom","enumFromThen","enumFromThenTo","enumFromTo","error","even","exp","exponent","fail","filter","flip","floatDigits","floatRadix","floatRange","floor","fmap","foldl","foldl1","foldr","foldr1","fromEnum","fromInteger","fromIntegral","fromRational","fst","gcd","getChar","getContents","getLine","head","id","init","interact","ioError","isDenormalized","isIEEE","isInfinite","isNaN","isNegativeZero","iterate","last","lcm","length","lex","lines","log","logBase","lookup","map","mapM","mapM_","max","maxBound","maximum","maybe","min","minBound","minimum","mod","negate","not","notElem","null","odd","or","otherwise","pi","pred","print","product","properFraction","pure","putChar","putStr","putStrLn","quot","quotRem","read","readFile","readIO","readList","readLn","readParen","reads","readsPrec","realToFrac","recip","rem","repeat","replicate","return","reverse","round","scaleFloat","scanl","scanl1","scanr","scanr1","seq","sequence","sequence_","show","showChar","showList","showParen","showString","shows","showsPrec","significand","signum","sin","sinh","snd","span","splitAt","sqrt","subtract","succ","sum","tail","take","takeWhile","tan","tanh","toEnum","toInteger","toRational","truncate","uncurry","undefined","unlines","until","unwords","unzip","unzip3","userError","words","writeFile","zip","zip3","zipWith","zipWith3"),e})(),zo={name:"haskell",startState:function(){return{f:Te}},copyState:function(e){return{f:e.f}},token:function(e,n){var t=n.f(e,function(i){n.f=i}),r=e.current();return Qt.hasOwnProperty(r)?Qt[r]:t},languageData:{commentTokens:{line:"--",block:{open:"{-",close:"-}"}}}};function ye(e,n,t){return typeof t>"u"&&(t=""),typeof n>"u"&&(n="\\b"),new RegExp("^"+t+"(("+e.join(")|(")+"))"+n)}var Eo="\\\\[0-7]{1,3}",To="\\\\x[A-Fa-f0-9]{1,2}",Co=`\\\\[abefnrtv0%?'"\\\\]`,Io="([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])",tr=["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","\\.{2,3}","[\\.\\\\%*+\\-<>!\\/^|&]=?","\\?","\\$","~",":"],Ao=ye(["[<>]:","[<>=]=","[!=]==","<<=?",">>>?=?","=>?","--?>","<--[->]?","\\/\\/","[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),Oo=/^[;,()[\]{}]/,Ro=/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,Po=ye([Eo,To,Co,Io],"'"),Do=["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"],Lo=["end","else","elseif","catch","finally"],rr=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],ir=["true","false","nothing","NaN","Inf"],$o=ye(Do),No=ye(Lo),Fo=ye(rr),qo=ye(ir),Mo=/^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,Bo=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,Wo=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/,jo=ye(tr,"","@"),Uo=ye(tr,"",":");function er(e){return e.nestedArrays>0}function Vo(e){return e.nestedGenerators>0}function nr(e,n){return typeof n>"u"&&(n=0),e.scopes.length<=n?null:e.scopes[e.scopes.length-(n+1)]}function Ce(e,n){if(e.match("#=",!1))return n.tokenize=Ho,n.tokenize(e,n);var t=n.leavingExpr;if(e.sol()&&(t=!1),n.leavingExpr=!1,t&&e.match(/^'+/))return"operator";if(e.match(/\.{4,}/))return"error";if(e.match(/\.{1,3}/))return"operator";if(e.eatSpace())return null;var r=e.peek();if(r==="#")return e.skipToEnd(),"comment";if(r==="["&&(n.scopes.push("["),n.nestedArrays++),r==="("&&(n.scopes.push("("),n.nestedGenerators++),er(n)&&r==="]"){for(;n.scopes.length&&nr(n)!=="[";)n.scopes.pop();n.scopes.pop(),n.nestedArrays--,n.leavingExpr=!0}if(Vo(n)&&r===")"){for(;n.scopes.length&&nr(n)!=="(";)n.scopes.pop();n.scopes.pop(),n.nestedGenerators--,n.leavingExpr=!0}if(er(n)){if(n.lastToken=="end"&&e.match(":"))return"operator";if(e.match("end"))return"number"}var i;if((i=e.match($o,!1))&&n.scopes.push(i[0]),e.match(No,!1)&&n.scopes.pop(),e.match(/^::(?![:\$])/))return n.tokenize=Ko,n.tokenize(e,n);if(!t&&(e.match(Bo)||e.match(Uo)))return"builtin";if(e.match(Ao))return"operator";if(e.match(/^\.?\d/,!1)){var o=RegExp(/^im\b/),a=!1;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(a=!0),e.match(/^0x[0-9a-f_]+/i)&&(a=!0),e.match(/^0b[01_]+/i)&&(a=!0),e.match(/^0o[0-7_]+/i)&&(a=!0),e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(a=!0),e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(a=!0),a)return e.match(o),n.leavingExpr=!0,"number"}if(e.match("'"))return n.tokenize=Zo,n.tokenize(e,n);if(e.match(Wo))return n.tokenize=Go(e.current()),n.tokenize(e,n);if(e.match(Mo)||e.match(jo))return"meta";if(e.match(Oo))return null;if(e.match(Fo))return"keyword";if(e.match(qo))return"builtin";var s=n.isDefinition||n.lastToken=="function"||n.lastToken=="macro"||n.lastToken=="type"||n.lastToken=="struct"||n.lastToken=="immutable";return e.match(Ro)?s?e.peek()==="."?(n.isDefinition=!0,"variable"):(n.isDefinition=!1,"def"):(n.leavingExpr=!0,"variable"):(e.next(),"error")}function Ko(e,n){return e.match(/.*?(?=[,;{}()=\s]|$)/),e.match("{")?n.nestedParameters++:e.match("}")&&n.nestedParameters>0&&n.nestedParameters--,n.nestedParameters>0?e.match(/.*?(?={|})/)||e.next():n.nestedParameters==0&&(n.tokenize=Ce),"builtin"}function Ho(e,n){return e.match("#=")&&n.nestedComments++,e.match(/.*?(?=(#=|=#))/)||e.skipToEnd(),e.match("=#")&&(n.nestedComments--,n.nestedComments==0&&(n.tokenize=Ce)),"comment"}function Zo(e,n){var t=!1,r;if(e.match(Po))t=!0;else if(r=e.match(/\\u([a-f0-9]{1,4})(?=')/i)){var i=parseInt(r[1],16);(i<=55295||i>=57344)&&(t=!0,e.next())}else if(r=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var i=parseInt(r[1],16);i<=1114111&&(t=!0,e.next())}return t?(n.leavingExpr=!0,n.tokenize=Ce,"string"):(e.match(/^[^']+(?=')/)||e.skipToEnd(),e.match("'")&&(n.tokenize=Ce),"error")}function Go(e){e.substr(-3)==='"""'?e='"""':e.substr(-1)==='"'&&(e='"');function n(t,r){if(t.eat("\\"))t.next();else{if(t.match(e))return r.tokenize=Ce,r.leavingExpr=!0,"string";t.eat(/[`"]/)}return t.eatWhile(/[^\\`"]/),"string"}return n}var Qo={name:"julia",startState:function(){return{tokenize:Ce,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,n){var t=n.tokenize(e,n),r=e.current();return r&&t&&(n.lastToken=r),t},indent:function(e,n,t){var r=0;return(n==="]"||n===")"||/^end\b/.test(n)||/^else/.test(n)||/^catch\b/.test(n)||/^elseif\b/.test(n)||/^finally/.test(n))&&(r=-1),(e.scopes.length+r)*t.unit},languageData:{indentOnInput:/^\s*(end|else|catch|finally)\b$/,commentTokens:{line:"#",block:{open:"#=",close:"=#"}},closeBrackets:{brackets:["(","[","{",'"']},autocomplete:rr.concat(ir)}};function Xo(e){return new RegExp("^(?:"+e.join("|")+")","i")}function ln(e){return new RegExp("^(?:"+e.join("|")+")$","i")}var Jo=ln(["_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load","loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require","select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall","coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield","debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable","debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable","debug.setupvalue","debug.traceback","close","flush","lines","read","seek","setvbuf","write","io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin","io.stdout","io.tmpfile","io.type","io.write","math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg","math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max","math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh","math.sqrt","math.tan","math.tanh","os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale","os.time","os.tmpname","package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload","package.seeall","string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub","string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper","table.concat","table.insert","table.maxn","table.remove","table.sort"]),Yo=ln(["and","break","elseif","false","nil","not","or","return","true","function","end","if","then","else","do","while","repeat","until","for","in","local"]),ea=ln(["function","if","repeat","do","\\(","{"]),na=ln(["end","until","\\)","}"]),ta=Xo(["end","until","\\)","}","else","elseif"]);function or(e){for(var n=0;e.eat("=");)++n;return e.eat("["),n}function Bn(e,n){var t=e.next();return t=="-"&&e.eat("-")?e.eat("[")&&/[\[=]/.test(e.peek())?(n.cur=ar(or(e),"comment"))(e,n):(e.skipToEnd(),"comment"):t=='"'||t=="'"?(n.cur=ra(t))(e,n):t=="["&&/[\[=]/.test(e.peek())?(n.cur=ar(or(e),"string"))(e,n):/\d/.test(t)?(e.eatWhile(/[\w.%]/),"number"):/[\w_]/.test(t)?(e.eatWhile(/[\w\\\-_.]/),"variable"):null}function ar(e,n){return function(t,r){for(var i=null,o;(o=t.next())!=null;)if(i==null)o=="]"&&(i=0);else if(o=="=")++i;else if(o=="]"&&i==e){r.cur=Bn;break}else i=null;return n}}function ra(e){return function(n,t){for(var r=!1,i;(i=n.next())!=null&&!(i==e&&!r);)r=!r&&i=="\\";return r||(t.cur=Bn),"string"}}var ia={name:"lua",startState:function(){return{basecol:0,indentDepth:0,cur:Bn}},token:function(e,n){if(e.eatSpace())return null;var t=n.cur(e,n),r=e.current();return t=="variable"&&(Yo.test(r)?t="keyword":Jo.test(r)&&(t="builtin")),t!="comment"&&t!="string"&&(ea.test(r)?++n.indentDepth:na.test(r)&&--n.indentDepth),t},indent:function(e,n,t){var r=ta.test(n);return e.basecol+t.unit*(e.indentDepth-(r?1:0))},languageData:{indentOnInput:/^\s*(?:end|until|else|\)|\})$/,commentTokens:{line:"--",block:{open:"--[[",close:"]]--"}}}};function Wn(e){var n={as:"keyword",do:"keyword",else:"keyword",end:"keyword",exception:"keyword",fun:"keyword",functor:"keyword",if:"keyword",in:"keyword",include:"keyword",let:"keyword",of:"keyword",open:"keyword",rec:"keyword",struct:"keyword",then:"keyword",type:"keyword",val:"keyword",while:"keyword",with:"keyword"},t=e.extraWords||{};for(var r in t)t.hasOwnProperty(r)&&(n[r]=e.extraWords[r]);var i=[];for(var o in n)i.push(o);function a(S,c){var f=S.next();if(f==='"')return c.tokenize=s,c.tokenize(S,c);if(f==="{"&&S.eat("|"))return c.longString=!0,c.tokenize=z,c.tokenize(S,c);if(f==="("&&S.match(/^\*(?!\))/))return c.commentLevel++,c.tokenize=_,c.tokenize(S,c);if(f==="~"||f==="?")return S.eatWhile(/\w/),"variableName.special";if(f==="`")return S.eatWhile(/\w/),"quote";if(f==="/"&&e.slashComments&&S.eat("/"))return S.skipToEnd(),"comment";if(/\d/.test(f))return f==="0"&&S.eat(/[bB]/)&&S.eatWhile(/[01]/),f==="0"&&S.eat(/[xX]/)&&S.eatWhile(/[0-9a-fA-F]/),f==="0"&&S.eat(/[oO]/)?S.eatWhile(/[0-7]/):(S.eatWhile(/[\d_]/),S.eat(".")&&S.eatWhile(/[\d]/),S.eat(/[eE]/)&&S.eatWhile(/[\d\-+]/)),"number";if(/[+\-*&%=<>!?|@\.~:]/.test(f))return"operator";if(/[\w\xa1-\uffff]/.test(f)){S.eatWhile(/[\w\xa1-\uffff]/);var y=S.current();return n.hasOwnProperty(y)?n[y]:"variable"}return null}function s(S,c){for(var f,y=!1,R=!1;(f=S.next())!=null;){if(f==='"'&&!R){y=!0;break}R=!R&&f==="\\"}return y&&!R&&(c.tokenize=a),"string"}function _(S,c){for(var f,y;c.commentLevel>0&&(y=S.next())!=null;)f==="("&&y==="*"&&c.commentLevel++,f==="*"&&y===")"&&c.commentLevel--,f=y;return c.commentLevel<=0&&(c.tokenize=a),"comment"}function z(S,c){for(var f,y;c.longString&&(y=S.next())!=null;)f==="|"&&y==="}"&&(c.longString=!1),f=y;return c.longString||(c.tokenize=a),"string"}return{startState:function(){return{tokenize:a,commentLevel:0,longString:!1}},token:function(S,c){return S.eatSpace()?null:c.tokenize(S,c)},languageData:{autocomplete:i,commentTokens:{line:e.slashComments?"//":void 0,block:{open:"(*",close:"*)"}}}}}var oa=Wn({name:"ocaml",extraWords:{and:"keyword",assert:"keyword",begin:"keyword",class:"keyword",constraint:"keyword",done:"keyword",downto:"keyword",external:"keyword",function:"keyword",initializer:"keyword",lazy:"keyword",match:"keyword",method:"keyword",module:"keyword",mutable:"keyword",new:"keyword",nonrec:"keyword",object:"keyword",private:"keyword",sig:"keyword",to:"keyword",try:"keyword",value:"keyword",virtual:"keyword",when:"keyword",raise:"builtin",failwith:"builtin",true:"builtin",false:"builtin",asr:"builtin",land:"builtin",lor:"builtin",lsl:"builtin",lsr:"builtin",lxor:"builtin",mod:"builtin",or:"builtin",raise_notrace:"builtin",trace:"builtin",exit:"builtin",print_string:"builtin",print_endline:"builtin",int:"type",float:"type",bool:"type",char:"type",string:"type",unit:"type",List:"builtin"}}),aa=Wn({name:"fsharp",extraWords:{abstract:"keyword",assert:"keyword",base:"keyword",begin:"keyword",class:"keyword",default:"keyword",delegate:"keyword","do!":"keyword",done:"keyword",downcast:"keyword",downto:"keyword",elif:"keyword",extern:"keyword",finally:"keyword",for:"keyword",function:"keyword",global:"keyword",inherit:"keyword",inline:"keyword",interface:"keyword",internal:"keyword",lazy:"keyword","let!":"keyword",match:"keyword",member:"keyword",module:"keyword",mutable:"keyword",namespace:"keyword",new:"keyword",null:"keyword",override:"keyword",private:"keyword",public:"keyword","return!":"keyword",return:"keyword",select:"keyword",static:"keyword",to:"keyword",try:"keyword",upcast:"keyword","use!":"keyword",use:"keyword",void:"keyword",when:"keyword","yield!":"keyword",yield:"keyword",atomic:"keyword",break:"keyword",checked:"keyword",component:"keyword",const:"keyword",constraint:"keyword",constructor:"keyword",continue:"keyword",eager:"keyword",event:"keyword",external:"keyword",fixed:"keyword",method:"keyword",mixin:"keyword",object:"keyword",parallel:"keyword",process:"keyword",protected:"keyword",pure:"keyword",sealed:"keyword",tailcall:"keyword",trait:"keyword",virtual:"keyword",volatile:"keyword",List:"builtin",Seq:"builtin",Map:"builtin",Set:"builtin",Option:"builtin",int:"builtin",string:"builtin",not:"builtin",true:"builtin",false:"builtin",raise:"builtin",failwith:"builtin"},slashComments:!0}),la=Wn({name:"sml",extraWords:{abstype:"keyword",and:"keyword",andalso:"keyword",case:"keyword",datatype:"keyword",fn:"keyword",handle:"keyword",infix:"keyword",infixr:"keyword",local:"keyword",nonfix:"keyword",op:"keyword",orelse:"keyword",raise:"keyword",withtype:"keyword",eqtype:"keyword",sharing:"keyword",sig:"keyword",signature:"keyword",structure:"keyword",where:"keyword",true:"keyword",false:"keyword",int:"builtin",real:"builtin",string:"builtin",char:"builtin",bool:"builtin"},slashComments:!0});function jn(e){for(var n={},t=e.split(" "),r=0;r*\/]/.test(r)?ie(null,"select-op"):/[;{}:\[\]]/.test(r)?ie(null,r):(e.eatWhile(/[\w\\\-]/),ie("variable","variable"))}function lr(e,n){for(var t=!1,r;(r=e.next())!=null;){if(t&&r=="/"){n.tokenize=cn;break}t=r=="*"}return ie("comment","comment")}function cr(e,n){for(var t=0,r;(r=e.next())!=null;){if(t>=2&&r==">"){n.tokenize=cn;break}t=r=="-"?t+1:0}return ie("comment","comment")}function da(e){return function(n,t){for(var r=!1,i;(i=n.next())!=null&&!(i==e&&!r);)r=!r&&i=="\\";return r||(t.tokenize=cn),ie("string","string")}}var fa={name:"nginx",startState:function(){return{tokenize:cn,baseIndent:0,stack:[]}},token:function(e,n){if(e.eatSpace())return null;ke=null;var t=n.tokenize(e,n),r=n.stack[n.stack.length-1];return ke=="hash"&&r=="rule"?t="atom":t=="variable"&&(r=="rule"?t="number":(!r||r=="@media{")&&(t="tag")),r=="rule"&&/^[\{\};]$/.test(ke)&&n.stack.pop(),ke=="{"?r=="@media"?n.stack[n.stack.length-1]="@media{":n.stack.push("{"):ke=="}"?n.stack.pop():ke=="@media"?n.stack.push("@media"):r=="{"&&ke!="comment"&&n.stack.push("rule"),t},indent:function(e,n,t){var r=e.stack.length;return/^\}/.test(n)&&(r-=e.stack[e.stack.length-1]=="rule"?2:1),e.baseIndent+r*t.unit},languageData:{indentOnInput:/^\s*\}$/}};function Un(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var pa=new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]"),ma=new RegExp("^[\\(\\[\\{\\},:=;\\.]"),ha=new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))"),ga=new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))"),ba=new RegExp("^((>>=)|(<<=))"),va=new RegExp("^[\\]\\)]"),ya=new RegExp("^[_A-Za-z\xA1-\uFFFF][_A-Za-z0-9\xA1-\uFFFF]*"),ka=Un(["error","eval","function","abs","acos","atan","asin","cos","cosh","exp","log","prod","sum","log10","max","min","sign","sin","sinh","sqrt","tan","reshape","break","zeros","default","margin","round","ones","rand","syn","ceil","floor","size","clear","zeros","eye","mean","std","cov","det","eig","inv","norm","rank","trace","expm","logm","sqrtm","linspace","plot","title","xlabel","ylabel","legend","text","grid","meshgrid","mesh","num2str","fft","ifft","arrayfun","cellfun","input","fliplr","flipud","ismember"]),_a=Un(["return","case","switch","else","elseif","end","endif","endfunction","if","otherwise","do","for","while","try","catch","classdef","properties","events","methods","global","persistent","endfor","endwhile","printf","sprintf","disp","until","continue","pkg"]);function ur(e,n){return!e.sol()&&e.peek()==="'"?(e.next(),n.tokenize=Ie,"operator"):(n.tokenize=Ie,Ie(e,n))}function xa(e,n){return e.match(/^.*%}/)?(n.tokenize=Ie,"comment"):(e.skipToEnd(),"comment")}function Ie(e,n){if(e.eatSpace())return null;if(e.match("%{"))return n.tokenize=xa,e.skipToEnd(),"comment";if(e.match(/^[%#]/))return e.skipToEnd(),"comment";if(e.match(/^[0-9\.+-]/,!1)){if(e.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/))return e.tokenize=Ie,"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/)||e.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/))return"number"}if(e.match(Un(["nan","NaN","inf","Inf"])))return"number";var t=e.match(/^"(?:[^"]|"")*("|$)/)||e.match(/^'(?:[^']|'')*('|$)/);return t?t[1]?"string":"error":e.match(_a)?"keyword":e.match(ka)?"builtin":e.match(ya)?"variable":e.match(pa)||e.match(ha)?"operator":e.match(ma)||e.match(ga)||e.match(ba)?null:e.match(va)?(n.tokenize=ur,null):(e.next(),"error")}var wa={name:"octave",startState:function(){return{tokenize:Ie}},token:function(e,n){var t=n.tokenize(e,n);return(t==="number"||t==="variable")&&(n.tokenize=ur),t},languageData:{commentTokens:{line:"%"}}};function K(e,n){return e.string.charAt(e.pos+(n||0))}function sr(e,n){if(n){var t=e.pos-n;return e.string.substr(t>=0?t:0,n)}else return e.string.substr(0,e.pos-1)}function Vn(e,n){var t=e.string.length,r=t-e.pos+1;return e.string.substr(e.pos,n&&n=(r=e.string.length-1)?e.pos=r:e.pos=t}var We={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},P="string.special",D=/[goseximacplud]/;function w(e,n,t,r,i){return n.chain=null,n.style=null,n.tail=null,n.tokenize=function(o,a){for(var s=!1,_,z=0;_=o.next();){if(_===t[z]&&!s)return t[++z]!==void 0?(a.chain=t[z],a.style=r,a.tail=i):i&&o.eatWhile(i),a.tokenize=un,r;s=!s&&_=="\\"}return r},n.tokenize(e,n)}function Kn(e,n,t){return n.tokenize=function(r,i){return r.string==t&&(i.tokenize=un),r.skipToEnd(),"string"},n.tokenize(e,n)}function un(e,n){if(e.eatSpace())return null;if(n.chain)return w(e,n,n.chain,n.style,n.tail);if(e.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))return"number";if(e.match(/^<<(?=[_a-zA-Z])/))return e.eatWhile(/\w/),Kn(e,n,e.current().substr(2));if(e.sol()&&e.match(/^\=item(?!\w)/))return Kn(e,n,"=cut");var t=e.next();if(t=='"'||t=="'"){if(sr(e,3)=="<<"+t){var r=e.pos;e.eatWhile(/\w/);var i=e.current().substr(1);if(i&&e.eat(t))return Kn(e,n,i);e.pos=r}return w(e,n,[t],"string")}if(t=="q"){var o=K(e,-2);if(!(o&&/\w/.test(o))){if(o=K(e,0),o=="x"){if(o=K(e,1),o=="(")return q(e,2),w(e,n,[")"],P,D);if(o=="[")return q(e,2),w(e,n,["]"],P,D);if(o=="{")return q(e,2),w(e,n,["}"],P,D);if(o=="<")return q(e,2),w(e,n,[">"],P,D);if(/[\^'"!~\/]/.test(o))return q(e,1),w(e,n,[e.eat(o)],P,D)}else if(o=="q"){if(o=K(e,1),o=="(")return q(e,2),w(e,n,[")"],"string");if(o=="[")return q(e,2),w(e,n,["]"],"string");if(o=="{")return q(e,2),w(e,n,["}"],"string");if(o=="<")return q(e,2),w(e,n,[">"],"string");if(/[\^'"!~\/]/.test(o))return q(e,1),w(e,n,[e.eat(o)],"string")}else if(o=="w"){if(o=K(e,1),o=="(")return q(e,2),w(e,n,[")"],"bracket");if(o=="[")return q(e,2),w(e,n,["]"],"bracket");if(o=="{")return q(e,2),w(e,n,["}"],"bracket");if(o=="<")return q(e,2),w(e,n,[">"],"bracket");if(/[\^'"!~\/]/.test(o))return q(e,1),w(e,n,[e.eat(o)],"bracket")}else if(o=="r"){if(o=K(e,1),o=="(")return q(e,2),w(e,n,[")"],P,D);if(o=="[")return q(e,2),w(e,n,["]"],P,D);if(o=="{")return q(e,2),w(e,n,["}"],P,D);if(o=="<")return q(e,2),w(e,n,[">"],P,D);if(/[\^'"!~\/]/.test(o))return q(e,1),w(e,n,[e.eat(o)],P,D)}else if(/[\^'"!~\/(\[{<]/.test(o)){if(o=="(")return q(e,1),w(e,n,[")"],"string");if(o=="[")return q(e,1),w(e,n,["]"],"string");if(o=="{")return q(e,1),w(e,n,["}"],"string");if(o=="<")return q(e,1),w(e,n,[">"],"string");if(/[\^'"!~\/]/.test(o))return w(e,n,[e.eat(o)],"string")}}}if(t=="m"){var o=K(e,-2);if(!(o&&/\w/.test(o))&&(o=e.eat(/[(\[{<\^'"!~\/]/),o)){if(/[\^'"!~\/]/.test(o))return w(e,n,[o],P,D);if(o=="(")return w(e,n,[")"],P,D);if(o=="[")return w(e,n,["]"],P,D);if(o=="{")return w(e,n,["}"],P,D);if(o=="<")return w(e,n,[">"],P,D)}}if(t=="s"){var o=/[\/>\]})\w]/.test(K(e,-2));if(!o&&(o=e.eat(/[(\[{<\^'"!~\/]/),o))return o=="["?w(e,n,["]","]"],P,D):o=="{"?w(e,n,["}","}"],P,D):o=="<"?w(e,n,[">",">"],P,D):o=="("?w(e,n,[")",")"],P,D):w(e,n,[o,o],P,D)}if(t=="y"){var o=/[\/>\]})\w]/.test(K(e,-2));if(!o&&(o=e.eat(/[(\[{<\^'"!~\/]/),o))return o=="["?w(e,n,["]","]"],P,D):o=="{"?w(e,n,["}","}"],P,D):o=="<"?w(e,n,[">",">"],P,D):o=="("?w(e,n,[")",")"],P,D):w(e,n,[o,o],P,D)}if(t=="t"){var o=/[\/>\]})\w]/.test(K(e,-2));if(!o&&(o=e.eat("r"),o&&(o=e.eat(/[(\[{<\^'"!~\/]/),o)))return o=="["?w(e,n,["]","]"],P,D):o=="{"?w(e,n,["}","}"],P,D):o=="<"?w(e,n,[">",">"],P,D):o=="("?w(e,n,[")",")"],P,D):w(e,n,[o,o],P,D)}if(t=="`")return w(e,n,[t],"builtin");if(t=="/")return/~\s*$/.test(sr(e))?w(e,n,[t],P,D):"operator";if(t=="$"){var r=e.pos;if(e.eatWhile(/\d/)||e.eat("{")&&e.eatWhile(/\d/)&&e.eat("}"))return"builtin";e.pos=r}if(/[$@%]/.test(t)){var r=e.pos;if(e.eat("^")&&e.eat(/[A-Z]/)||!/[@$%&]/.test(K(e,-2))&&e.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var o=e.current();if(We[o])return"builtin"}e.pos=r}if(/[$@%&]/.test(t)&&(e.eatWhile(/[\w$]/)||e.eat("{")&&e.eatWhile(/[\w$]/)&&e.eat("}"))){var o=e.current();return We[o]?"builtin":"variable"}if(t=="#"&&K(e,-2)!="$")return e.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(t)){var r=e.pos;if(e.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),We[e.current()])return"operator";e.pos=r}if(t=="_"&&e.pos==1){if(Vn(e,6)=="_END__")return w(e,n,["\0"],"comment");if(Vn(e,7)=="_DATA__")return w(e,n,["\0"],"builtin");if(Vn(e,7)=="_C__")return w(e,n,["\0"],"string")}if(/\w/.test(t)){var r=e.pos;if(K(e,-2)=="{"&&(K(e,0)=="}"||e.eatWhile(/\w/)&&K(e,0)=="}"))return"string";e.pos=r}if(/[A-Z]/.test(t)){var a=K(e,-2),r=e.pos;if(e.eatWhile(/[A-Z_]/),/[\da-z]/.test(K(e,0)))e.pos=r;else{var o=We[e.current()];return o?(o[1]&&(o=o[0]),a!=":"?o==1?"keyword":o==2?"def":o==3?"atom":o==4?"operator":o==5?"builtin":"meta":"meta"):"meta"}}if(/[a-zA-Z_]/.test(t)){var a=K(e,-2);e.eatWhile(/\w/);var o=We[e.current()];return o?(o[1]&&(o=o[0]),a!=":"?o==1?"keyword":o==2?"def":o==3?"atom":o==4?"operator":o==5?"builtin":"meta":"meta"):"meta"}return null}var Sa={name:"perl",startState:function(){return{tokenize:un,chain:null,style:null,tail:null}},token:function(e,n){return(n.tokenize||un)(e,n)},languageData:{commentTokens:{line:"#"},wordChars:"$"}};function za(e){for(var n={},t=e.split(" "),r=0;r!?|\/]/;function Ca(e,n){var t=e.next();if(t=="#"&&n.startOfLine)return e.skipToEnd(),"meta";if(t=='"'||t=="'")return n.tokenize=Ia(t),n.tokenize(e,n);if(t=="("&&e.eat("*"))return n.tokenize=fr,fr(e,n);if(t=="{")return n.tokenize=pr,pr(e,n);if(/[\[\]\(\),;\:\.]/.test(t))return null;if(/\d/.test(t))return e.eatWhile(/[\w\.]/),"number";if(t=="/"&&e.eat("/"))return e.skipToEnd(),"comment";if(dr.test(t))return e.eatWhile(dr),"operator";e.eatWhile(/[\w\$_]/);var r=e.current().toLowerCase();return Ea.propertyIsEnumerable(r)?"keyword":Ta.propertyIsEnumerable(r)?"atom":"variable"}function Ia(e){return function(n,t){for(var r=!1,i,o=!1;(i=n.next())!=null;){if(i==e&&!r){o=!0;break}r=!r&&i=="\\"}return(o||!r)&&(t.tokenize=null),"string"}}function fr(e,n){for(var t=!1,r;r=e.next();){if(r==")"&&t){n.tokenize=null;break}t=r=="*"}return"comment"}function pr(e,n){for(var t;t=e.next();)if(t=="}"){n.tokenize=null;break}return"comment"}var Aa={name:"pascal",startState:function(){return{tokenize:null}},token:function(e,n){if(e.eatSpace())return null;var t=(n.tokenize||Ca)(e,n);return t=="comment"||t=="meta",t},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{block:{open:"(*",close:"*)"}}}};function Ae(e,n){n=n||{};for(var t=n.prefix!==void 0?n.prefix:"^",r=n.suffix!==void 0?n.suffix:"\\b",i=0;i/,La=Ae([Pa,Da],{suffix:""}),$a=/^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i,Na=/^[A-Za-z\_][A-Za-z\-\_\d]*\b/,Fa=/[A-Z]:|%|\?/i,qa=Ae([/Add-(Computer|Content|History|Member|PSSnapin|Type)/,/Checkpoint-Computer/,/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,/Compare-Object/,/Complete-Transaction/,/Connect-PSSession/,/ConvertFrom-(Csv|Json|SecureString|StringData)/,/Convert-Path/,/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,/Copy-Item(Property)?/,/Debug-Process/,/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/Disconnect-PSSession/,/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/(Enter|Exit)-PSSession/,/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,/ForEach-Object/,/Format-(Custom|List|Table|Wide)/,new RegExp("Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)"),/Group-Object/,/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,/ImportSystemModules/,/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,/Join-Path/,/Limit-EventLog/,/Measure-(Command|Object)/,/Move-Item(Property)?/,new RegExp("New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)"),/Out-(Default|File|GridView|Host|Null|Printer|String)/,/Pause/,/(Pop|Push)-Location/,/Read-Host/,/Receive-(Job|PSSession)/,/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,/Rename-(Computer|Item(Property)?)/,/Reset-ComputerMachinePassword/,/Resolve-Path/,/Restart-(Computer|Service)/,/Restore-Computer/,/Resume-(Job|Service)/,/Save-Help/,/Select-(Object|String|Xml)/,/Send-MailMessage/,new RegExp("Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)"),/Show-(Command|ControlPanelItem|EventLog)/,/Sort-Object/,/Split-Path/,/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,/Stop-(Computer|Job|Process|Service|Transcript)/,/Suspend-(Job|Service)/,/TabExpansion2/,/Tee-Object/,/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,/Trace-Command/,/Unblock-File/,/Undo-Transaction/,/Unregister-(Event|PSSessionConfiguration)/,/Update-(FormatData|Help|List|TypeData)/,/Use-Transaction/,/Wait-(Event|Job|Process)/,/Where-Object/,/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,/cd|help|mkdir|more|oss|prompt/,/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/],{prefix:"",suffix:""}),Ma=Ae([/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,/WarningPreference|WhatIfPreference/,/Event|EventArgs|EventSubscriber|Sender/,/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,/true|false|null/],{prefix:"\\$",suffix:""}),Ba=Ae([Fa,qa,Ma],{suffix:br}),mr={keyword:Oa,number:$a,operator:La,builtin:Ba,punctuation:Ra,variable:Na};function he(e,n){var t=n.returnStack[n.returnStack.length-1];if(t&&t.shouldReturnFrom(n))return n.tokenize=t.tokenize,n.returnStack.pop(),n.tokenize(e,n);if(e.eatSpace())return null;if(e.eat("("))return n.bracketNesting+=1,"punctuation";if(e.eat(")"))return n.bracketNesting-=1,"punctuation";for(var r in mr)if(e.match(mr[r]))return r;var i=e.next();if(i==="'")return Wa(e,n);if(i==="$")return Zn(e,n);if(i==='"')return vr(e,n);if(i==="<"&&e.eat("#"))return n.tokenize=hr,hr(e,n);if(i==="#")return e.skipToEnd(),"comment";if(i==="@"){var o=e.eat(/["']/);if(o&&e.eol())return n.tokenize=sn,n.startQuote=o[0],sn(e,n);if(e.eol())return"error";if(e.peek().match(/[({]/))return"punctuation";if(e.peek().match(Hn))return Zn(e,n)}return"error"}function Wa(e,n){for(var t;(t=e.peek())!=null;)if(e.next(),t==="'"&&!e.eat("'"))return n.tokenize=he,"string";return"error"}function vr(e,n){for(var t;(t=e.peek())!=null;){if(t==="$")return n.tokenize=ja,"string";if(e.next(),t==="`"){e.next();continue}if(t==='"'&&!e.eat('"'))return n.tokenize=he,"string"}return"error"}function ja(e,n){return yr(e,n,vr)}function Ua(e,n){return n.tokenize=sn,n.startQuote='"',sn(e,n)}function Va(e,n){return yr(e,n,Ua)}function yr(e,n,t){if(e.match("$(")){var r=n.bracketNesting;return n.returnStack.push({shouldReturnFrom:function(i){return i.bracketNesting===r},tokenize:t}),n.tokenize=he,n.bracketNesting+=1,"punctuation"}else return e.next(),n.returnStack.push({shouldReturnFrom:function(){return!0},tokenize:t}),n.tokenize=Zn,n.tokenize(e,n)}function hr(e,n){for(var t=!1,r;(r=e.next())!=null;){if(t&&r==">"){n.tokenize=he;break}t=r==="#"}return"comment"}function Zn(e,n){var t=e.peek();return e.eat("{")?(n.tokenize=gr,gr(e,n)):t!=null&&t.match(Hn)?(e.eatWhile(Hn),n.tokenize=he,"variable"):(n.tokenize=he,"error")}function gr(e,n){for(var t;(t=e.next())!=null;)if(t==="}"){n.tokenize=he;break}return"variable"}function sn(e,n){var t=n.startQuote;if(e.sol()&&e.match(new RegExp(t+"@")))n.tokenize=he;else if(t==='"')for(;!e.eol();){var r=e.peek();if(r==="$")return n.tokenize=Va,"string";e.next(),r==="`"&&e.next()}else e.skipToEnd();return"string"}var Ka={name:"powershell",startState:function(){return{returnStack:[],bracketNesting:0,tokenize:he}},token:function(e,n){return n.tokenize(e,n)},languageData:{commentTokens:{line:"#",block:{open:"<#",close:"#>"}}}};var Ha={name:"properties",token:function(e,n){var t=e.sol()||n.afterSection,r=e.eol();if(n.afterSection=!1,t&&(n.nextMultiline?(n.inMultiline=!0,n.nextMultiline=!1):n.position="def"),r&&!n.nextMultiline&&(n.inMultiline=!1,n.position="def"),t)for(;e.eatSpace(););var i=e.next();return t&&(i==="#"||i==="!"||i===";")?(n.position="comment",e.skipToEnd(),"comment"):t&&i==="["?(n.afterSection=!0,e.skipTo("]"),e.eat("]"),"header"):i==="="||i===":"?(n.position="quote",null):(i==="\\"&&n.position==="quote"&&e.eol()&&(n.nextMultiline=!0),n.position)},startState:function(){return{position:"def",nextMultiline:!1,inMultiline:!1,afterSection:!1}}};function Gn(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var Za=Gn(["and","or","not","is"]),kr=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in","False","True"],_r=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];function oe(e){return e.scopes[e.scopes.length-1]}function xr(e){for(var n="error",t=e.delimiters||e.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,r=[e.singleOperators,e.doubleOperators,e.doubleDelimiters,e.tripleDelimiters,e.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],i=0;ix?d(l,u):L0&&E(l,u)&&(m+=" "+n),m}}return R(l,u)}function R(l,u,A){if(l.eatSpace())return null;if(!A&&l.match(/^#.*/))return"comment";if(l.match(/^[0-9\.]/,!1)){var x=!1;if(l.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(x=!0),l.match(/^[\d_]+\.\d*/)&&(x=!0),l.match(/^\.\d+/)&&(x=!0),x)return l.eat(/J/i),"number";var L=!1;if(l.match(/^0x[0-9a-f_]+/i)&&(L=!0),l.match(/^0b[01_]+/i)&&(L=!0),l.match(/^0o[0-7_]+/i)&&(L=!0),l.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(l.eat(/J/i),L=!0),l.match(/^0(?![\dx])/i)&&(L=!0),L)return l.eat(/L/i),"number"}if(l.match(S)){var m=l.current().toLowerCase().indexOf("f")!==-1;return m?(u.tokenize=Q(l.current(),u.tokenize),u.tokenize(l,u)):(u.tokenize=U(l.current(),u.tokenize),u.tokenize(l,u))}for(var p=0;p=0;)l=l.substr(1);var A=l.length==1,x="string";function L(p){return function(T,k){var $=R(T,k,!0);return $=="punctuation"&&(T.current()=="{"?k.tokenize=L(p+1):T.current()=="}"&&(p>1?k.tokenize=L(p-1):k.tokenize=m)),$}}function m(p,T){for(;!p.eol();)if(p.eatWhile(/[^'"\{\}\\]/),p.eat("\\")){if(p.next(),A&&p.eol())return x}else{if(p.match(l))return T.tokenize=u,x;if(p.match("{{"))return x;if(p.match("{",!1))return T.tokenize=L(0),p.current()?x:T.tokenize(p,T);if(p.match("}}"))return x;if(p.match("}"))return n;p.eat(/['"]/)}if(A){if(e.singleLineStringErrors)return n;T.tokenize=u}return x}return m.isString=!0,m}function U(l,u){for(;"rubf".indexOf(l.charAt(0).toLowerCase())>=0;)l=l.substr(1);var A=l.length==1,x="string";function L(m,p){for(;!m.eol();)if(m.eatWhile(/[^'"\\]/),m.eat("\\")){if(m.next(),A&&m.eol())return x}else{if(m.match(l))return p.tokenize=u,x;m.eat(/['"]/)}if(A){if(e.singleLineStringErrors)return n;p.tokenize=u}return x}return L.isString=!0,L}function d(l,u){for(;oe(u).type!="py";)u.scopes.pop();u.scopes.push({offset:oe(u).offset+l.indentUnit,type:"py",align:null})}function C(l,u,A){var x=l.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:l.column()+1;u.scopes.push({offset:u.indent+(o||l.indentUnit),type:A,align:x})}function E(l,u){for(var A=l.indentation();u.scopes.length>1&&oe(u).offset>A;){if(oe(u).type!="py")return!0;u.scopes.pop()}return oe(u).offset!=A}function I(l,u){l.sol()&&(u.beginningOfLine=!0,u.dedent=!1);var A=u.tokenize(l,u),x=l.current();if(u.beginningOfLine&&x=="@")return l.match(z,!1)?"meta":_?"operator":n;if(/\S/.test(x)&&(u.beginningOfLine=!1),(A=="variable"||A=="builtin")&&u.lastToken=="meta"&&(A="meta"),(x=="pass"||x=="return")&&(u.dedent=!0),x=="lambda"&&(u.lambda=!0),x==":"&&!u.lambda&&oe(u).type=="py"&&l.match(/^\s*(?:#|$)/,!1)&&d(l,u),x.length==1&&!/string|comment/.test(A)){var L="[({".indexOf(x);if(L!=-1&&C(l,u,"])}".slice(L,L+1)),L="])}".indexOf(x),L!=-1)if(oe(u).type==x)u.indent=u.scopes.pop().offset-(o||l.indentUnit);else return n}return u.dedent&&l.eol()&&oe(u).type=="py"&&u.scopes.length>1&&u.scopes.pop(),A}return{name:"python",startState:function(){return{tokenize:y,scopes:[{offset:0,type:"py",align:null}],indent:0,lastToken:null,lambda:!1,dedent:0}},token:function(l,u){var A=u.errorToken;A&&(u.errorToken=!1);var x=I(l,u);return x&&x!="comment"&&(u.lastToken=x=="keyword"||x=="punctuation"?l.current():x),x=="punctuation"&&(x=null),l.eol()&&u.lambda&&(u.lambda=!1),A?n:x},indent:function(l,u,A){if(l.tokenize!=y)return l.tokenize.isString?null:0;var x=oe(l),L=x.type==u.charAt(0)||x.type=="py"&&!l.dedent&&/^(else:|elif |except |finally:)/.test(u);return x.align!=null?x.align-(L?1:0):x.offset-(L?o||A.unit:0)},languageData:{autocomplete:kr.concat(_r).concat(["exec","print"]),indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/,commentTokens:{line:"#"},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}}}var Ga=function(e){return e.split(" ")},Qa=xr({}),su=xr({extra_keywords:Ga("by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE")});function fn(e){for(var n={},t=0;t=!&|~$:]/,ae;function Yn(e,n){ae=null;var t=e.next();if(t=="#")return e.skipToEnd(),"comment";if(t=="0"&&e.eat("x"))return e.eatWhile(/[\da-f]/i),"number";if(t=="."&&e.eat(/\d/))return e.match(/\d*(?:e[+\-]?\d+)?/),"number";if(/\d/.test(t))return e.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/),"number";if(t=="'"||t=='"')return n.tokenize=tl(t),"string";if(t=="`")return e.match(/[^`]+`/),"string.special";if(t=="."&&e.match(/.(?:[.]|\d+)/))return"keyword";if(/[a-zA-Z\.]/.test(t)){e.eatWhile(/[\w\.]/);var r=e.current();return Ja.propertyIsEnumerable(r)?"atom":el.propertyIsEnumerable(r)?(nl.propertyIsEnumerable(r)&&!e.match(/\s*if(\s+|$)/,!1)&&(ae="block"),"keyword"):Ya.propertyIsEnumerable(r)?"builtin":"variable"}else return t=="%"?(e.skipTo("%")&&e.next(),"variableName.special"):t=="<"&&e.eat("-")||t=="<"&&e.match("<-")||t=="-"&&e.match(/>>?/)||t=="="&&n.ctx.argList?"operator":wr.test(t)?(t=="$"||e.eatWhile(wr),"operator"):/[\(\){}\[\];]/.test(t)?(ae=t,t==";"?"punctuation":null):null}function tl(e){return function(n,t){if(n.eat("\\")){var r=n.next();return r=="x"?n.match(/^[a-f0-9]{2}/i):(r=="u"||r=="U")&&n.eat("{")&&n.skipTo("}")?n.next():r=="u"?n.match(/^[a-f0-9]{4}/i):r=="U"?n.match(/^[a-f0-9]{8}/i):/[0-7]/.test(r)&&n.match(/^[0-7]{1,2}/),"string.special"}else{for(var i;(i=n.next())!=null;){if(i==e){t.tokenize=Yn;break}if(i=="\\"){n.backUp(1);break}}return"string"}}}var Sr=1,Qn=2,Xn=4;function dn(e,n,t){e.ctx={type:n,indent:e.indent,flags:0,column:t.column(),prev:e.ctx}}function zr(e,n){var t=e.ctx;e.ctx={type:t.type,indent:t.indent,flags:t.flags|n,column:t.column,prev:t.prev}}function Jn(e){e.indent=e.ctx.indent,e.ctx=e.ctx.prev}var rl={name:"r",startState:function(e){return{tokenize:Yn,ctx:{type:"top",indent:-e,flags:Qn},indent:0,afterIdent:!1}},token:function(e,n){if(e.sol()&&((n.ctx.flags&3)==0&&(n.ctx.flags|=Qn),n.ctx.flags&Xn&&Jn(n),n.indent=e.indentation()),e.eatSpace())return null;var t=n.tokenize(e,n);return t!="comment"&&(n.ctx.flags&Qn)==0&&zr(n,Sr),(ae==";"||ae=="{"||ae=="}")&&n.ctx.type=="block"&&Jn(n),ae=="{"?dn(n,"}",e):ae=="("?(dn(n,")",e),n.afterIdent&&(n.ctx.argList=!0)):ae=="["?dn(n,"]",e):ae=="block"?dn(n,"block",e):ae==n.ctx.type?Jn(n):n.ctx.type=="block"&&t!="comment"&&zr(n,Xn),n.afterIdent=t=="variable"||t=="keyword",t},indent:function(e,n,t){if(e.tokenize!=Yn)return 0;var r=n&&n.charAt(0),i=e.ctx,o=r==i.type;return i.flags&Xn&&(i=i.prev),i.type=="block"?i.indent+(r=="{"?0:t.unit):i.flags&Sr?i.column+(o?0:1):i.indent+(o?0:t.unit)},languageData:{wordChars:".",commentTokens:{line:"#"},autocomplete:Er.concat(Tr,Cr)}};function nt(e){for(var n={},t=0,r=e.length;t]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator";if(t=="@"&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if(t=="$")return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(t))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"variable";if(t=="|"&&(n.varList||n.lastTok=="{"||n.lastTok=="do"))return le="|",null;if(/[\(\)\[\]{}\\;]/.test(t))return le=t,null;if(t=="-"&&e.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(t)){var s=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return t=="."&&!s&&(le="."),"operator"}else return null}}}function cl(e){for(var n=e.pos,t=0,r,i=!1,o=!1;(r=e.next())!=null;)if(o)o=!1;else{if("[{(".indexOf(r)>-1)t++;else if("]})".indexOf(r)>-1){if(t--,t<0)break}else if(r=="/"&&t==0){i=!0;break}o=r=="\\"}return e.backUp(e.pos-n),i}function et(e){return e||(e=1),function(n,t){if(n.peek()=="}"){if(e==1)return t.tokenize.pop(),t.tokenize[t.tokenize.length-1](n,t);t.tokenize[t.tokenize.length-1]=et(e-1)}else n.peek()=="{"&&(t.tokenize[t.tokenize.length-1]=et(e+1));return pn(n,t)}}function ul(){var e=!1;return function(n,t){return e?(t.tokenize.pop(),t.tokenize[t.tokenize.length-1](n,t)):(e=!0,pn(n,t))}}function je(e,n,t,r){return function(i,o){var a=!1,s;for(o.context.type==="read-quoted-paused"&&(o.context=o.context.prev,i.eat("}"));(s=i.next())!=null;){if(s==e&&(r||!a)){o.tokenize.pop();break}if(t&&s=="#"&&!a){if(i.eat("{")){e=="}"&&(o.context={prev:o.context,type:"read-quoted-paused"}),o.tokenize.push(et());break}else if(/[@\$]/.test(i.peek())){o.tokenize.push(ul());break}}a=!a&&s=="\\"}return n}}function sl(e,n){return function(t,r){return n&&t.eatSpace(),t.match(e)?r.tokenize.pop():t.skipToEnd(),"string"}}function dl(e,n){return e.sol()&&e.match("=end")&&e.eol()&&n.tokenize.pop(),e.skipToEnd(),"comment"}var fl={name:"ruby",startState:function(e){return{tokenize:[pn],indented:0,context:{type:"top",indented:-e},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,n){le=null,e.sol()&&(n.indented=e.indentation());var t=n.tokenize[n.tokenize.length-1](e,n),r,i=le;if(t=="variable"){var o=e.current();t=n.lastTok=="."?"property":il.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(o)?"tag":n.lastTok=="def"||n.lastTok=="class"||n.varList?"def":"variable",t=="keyword"&&(i=o,ol.propertyIsEnumerable(o)?r="indent":al.propertyIsEnumerable(o)?r="dedent":((o=="if"||o=="unless")&&e.column()==e.indentation()||o=="do"&&n.context.indented2&&a.token&&typeof a.token!="string"){t.pending=[];for(var z=2;z-1)return null;var i=t.indent.length-1,o=e[t.state];e:for(;;){for(var a=0;a!]+/,token:"operator"},{regex:/[a-zA-Z_]\w*!/,token:"macroName"},{regex:/[a-zA-Z_]\w*/,token:"variable"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0}],string:[{regex:/"/,token:"string",next:"start"},{regex:/(?:[^\\"]|\\(?:.|$))*/,token:"string"}],string_raw:[{regex:/"/,token:"string",next:"start"},{regex:/[^"]*/,token:"string"}],string_raw_hash:[{regex:/"#+/,token:"string",next:"start"},{regex:/(?:[^"]|"(?!#))*/,token:"string"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"rust",dontIndentStates:["comment"],indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}});var M={},Pr={eq:"operator",lt:"operator",le:"operator",gt:"operator",ge:"operator",in:"operator",ne:"operator",or:"operator"},yl=/(<=|>=|!=|<>)/,kl=/[=\(:\),{}.*<>+\-\/^\[\]]/;function H(e,n,t){if(t)for(var r=n.split(" "),i=0;iinteger char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"),zl=Mr("define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless");function El(e,n,t){this.indent=e,this.type=n,this.prev=t}function tt(e,n,t){e.indentStack=new El(n,t,e.indentStack)}function Tl(e){e.indentStack=e.indentStack.prev}var Cl=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),Il=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i),Al=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i),Ol=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);function Rl(e){return e.match(Cl)}function Pl(e){return e.match(Il)}function rt(e,n){return n===!0&&e.backUp(1),e.match(Ol)}function Dl(e){return e.match(Al)}function qr(e,n){for(var t,r=!1;(t=e.next())!=null;){if(t==n.token&&!r){n.state.mode=!1;break}r=!r&&t=="\\"}}var Ll={name:"scheme",startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1,sExprQuote:!1}},token:function(e,n){if(n.indentStack==null&&e.sol()&&(n.indentation=e.indentation()),e.eatSpace())return null;var t=null;switch(n.mode){case"string":qr(e,{token:'"',state:n}),t=Dr;break;case"symbol":qr(e,{token:"|",state:n}),t=Lr;break;case"comment":for(var r,i=!1;(r=e.next())!=null;){if(r=="#"&&i){n.mode=!1;break}i=r=="|"}t=we;break;case"s-expr-comment":if(n.mode=!1,e.peek()=="("||e.peek()=="[")n.sExprComment=0;else{e.eatWhile(/[^\s\(\)\[\]]/),t=we;break}default:var o=e.next();if(o=='"')n.mode="string",t=Dr;else if(o=="'")e.peek()=="("||e.peek()=="["?(typeof n.sExprQuote!="number"&&(n.sExprQuote=0),t=Ue):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),t=Ue);else if(o=="|")n.mode="symbol",t=Lr;else if(o=="#")if(e.eat("|"))n.mode="comment",t=we;else if(e.eat(/[tf]/i))t=Ue;else if(e.eat(";"))n.mode="s-expr-comment",t=we;else{var a=null,s=!1,_=!0;e.eat(/[ei]/i)?s=!0:e.backUp(1),e.match(/^#b/i)?a=Rl:e.match(/^#o/i)?a=Pl:e.match(/^#x/i)?a=Dl:e.match(/^#d/i)?a=rt:e.match(/^[-+0-9.]/,!1)?(_=!1,a=rt):s||e.eat("#"),a!=null&&(_&&!s&&e.match(/^#[ei]/i),a(e)&&(t=$r))}else if(/^[-+0-9.]/.test(o)&&rt(e,!0))t=$r;else if(o==";")e.skipToEnd(),t=we;else if(o=="("||o=="["){for(var z="",S=e.column(),c;(c=e.eat(/[^\s\(\[\;\)\]]/))!=null;)z+=c;z.length>0&&zl.propertyIsEnumerable(z)?tt(n,S+Sl,o):(e.eatSpace(),e.eol()||e.peek()==";"?tt(n,S+1,o):tt(n,S+e.current().length,o)),e.backUp(e.current().length-1),typeof n.sExprComment=="number"&&n.sExprComment++,typeof n.sExprQuote=="number"&&n.sExprQuote++,t=Nr}else o==")"||o=="]"?(t=Nr,n.indentStack!=null&&n.indentStack.type==(o==")"?"(":"[")&&(Tl(n),typeof n.sExprComment=="number"&&--n.sExprComment==0&&(t=we,n.sExprComment=!1),typeof n.sExprQuote=="number"&&--n.sExprQuote==0&&(t=Ue,n.sExprQuote=!1))):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),Fr&&Fr.propertyIsEnumerable(e.current())?t=wl:t="variable")}return typeof n.sExprComment=="number"?we:typeof n.sExprQuote=="number"?Ue:t},indent:function(e){return e.indentStack==null?e.indentation:e.indentStack.indent},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:";;"}}};var it={};function ot(e,n){for(var t=0;t1&&e.eat("$");var t=e.next();return/['"({]/.test(t)?(n.tokens[0]=mn(t,t=="("?"quote":t=="{"?"def":"string"),Re(e,n)):(/\d/.test(t)||e.eatWhile(/\w/),n.tokens.shift(),"def")};function Fl(e){return function(n,t){return n.sol()&&n.string==e&&t.tokens.shift(),n.skipToEnd(),"string.special"}}function Re(e,n){return(n.tokens[0]||$l)(e,n)}var ql={name:"shell",startState:function(){return{tokens:[]}},token:function(e,n){return Re(e,n)},languageData:{autocomplete:Br.concat(Wr,jr),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}};function te(e){var n=e.client||{},t=e.atoms||{false:!0,true:!0,null:!0},r=e.builtin||h(Kr),i=e.keywords||h(ze),o=e.operatorChars||/^[*+\-%<>!=&|~^\/]/,a=e.support||{},s=e.hooks||{},_=e.dateSQL||{date:!0,time:!0,timestamp:!0},z=e.backslashStringEscapes!==!1,S=e.brackets||/^[\{}\(\)\[\]]/,c=e.punctuation||/^[;.,:]/;function f(d,C){var E=d.next();if(s[E]){var I=s[E](d,C);if(I!==!1)return I}if(a.hexNumber&&(E=="0"&&d.match(/^[xX][0-9a-fA-F]+/)||(E=="x"||E=="X")&&d.match(/^'[0-9a-fA-F]*'/)))return"number";if(a.binaryNumber&&((E=="b"||E=="B")&&d.match(/^'[01]+'/)||E=="0"&&d.match(/^b[01]*/)))return"number";if(E.charCodeAt(0)>47&&E.charCodeAt(0)<58)return d.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),a.decimallessFloat&&d.match(/^\.(?!\.)/),"number";if(E=="?"&&(d.eatSpace()||d.eol()||d.eat(";")))return"macroName";if(E=="'"||E=='"'&&a.doubleQuote)return C.tokenize=y(E),C.tokenize(d,C);if((a.nCharCast&&(E=="n"||E=="N")||a.charsetCast&&E=="_"&&d.match(/[a-z][a-z0-9]*/i))&&(d.peek()=="'"||d.peek()=='"'))return"keyword";if(a.escapeConstant&&(E=="e"||E=="E")&&(d.peek()=="'"||d.peek()=='"'&&a.doubleQuote))return C.tokenize=function(u,A){return(A.tokenize=y(u.next(),!0))(u,A)},"keyword";if(a.commentSlashSlash&&E=="/"&&d.eat("/"))return d.skipToEnd(),"comment";if(a.commentHash&&E=="#"||E=="-"&&d.eat("-")&&(!a.commentSpaceRequired||d.eat(" ")))return d.skipToEnd(),"comment";if(E=="/"&&d.eat("*"))return C.tokenize=R(1),C.tokenize(d,C);if(E=="."){if(a.zerolessFloat&&d.match(/^(?:\d+(?:e[+-]?\d+)?)/i))return"number";if(d.match(/^\.+/))return null;if(a.ODBCdotTable&&d.match(/^[\w\d_$#]+/))return"type"}else{if(o.test(E))return d.eatWhile(o),"operator";if(S.test(E))return"bracket";if(c.test(E))return d.eatWhile(c),"punctuation";if(E=="{"&&(d.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||d.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";d.eatWhile(/^[_\w\d]/);var l=d.current().toLowerCase();return _.hasOwnProperty(l)&&(d.match(/^( )+'[^']*'/)||d.match(/^( )+"[^"]*"/))?"number":t.hasOwnProperty(l)?"atom":r.hasOwnProperty(l)?"type":i.hasOwnProperty(l)?"keyword":n.hasOwnProperty(l)?"builtin":null}}function y(d,C){return function(E,I){for(var l=!1,u;(u=E.next())!=null;){if(u==d&&!l){I.tokenize=f;break}l=(z||C)&&!l&&u=="\\"}return"string"}}function R(d){return function(C,E){var I=C.match(/^.*?(\/\*|\*\/)/);return I?I[1]=="/*"?E.tokenize=R(d+1):d>1?E.tokenize=R(d-1):E.tokenize=f:C.skipToEnd(),"comment"}}function Q(d,C,E){C.context={prev:C.context,indent:d.indentation(),col:d.column(),type:E}}function U(d){d.indent=d.context.indent,d.context=d.context.prev}return{name:"sql",startState:function(){return{tokenize:f,context:null}},token:function(d,C){if(d.sol()&&C.context&&C.context.align==null&&(C.context.align=!1),C.tokenize==f&&d.eatSpace())return null;var E=C.tokenize(d,C);if(E=="comment")return E;C.context&&C.context.align==null&&(C.context.align=!0);var I=d.current();return I=="("?Q(d,C,")"):I=="["?Q(d,C,"]"):C.context&&C.context.type==I&&U(C),E},indent:function(d,C,E){var I=d.context;if(!I)return null;var l=C.charAt(0)==I.type;return I.align?I.col+(l?0:1):I.indent+(l?0:E.unit)},languageData:{commentTokens:{line:a.commentSlashSlash?"//":a.commentHash?"#":"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}function at(e){for(var n;(n=e.next())!=null;)if(n=="`"&&!e.eat("`"))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null}function Ml(e){for(var n;(n=e.next())!=null;)if(n=='"'&&!e.eat('"'))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null}function Se(e){return e.eat("@")&&(e.match("session."),e.match("local."),e.match("global.")),e.eat("'")?(e.match(/^.*'/),"string.special"):e.eat('"')?(e.match(/^.*"/),"string.special"):e.eat("`")?(e.match(/^.*`/),"string.special"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"string.special":null}function Vr(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"string.special":null}var ze="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function h(e){for(var n={},t=e.split(" "),r=0;r!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:h("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":Se}}),jl=te({client:h("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:h(ze+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:h("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:h("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:h("date time timestamp"),support:h("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":Se,"`":at,"\\":Vr}}),ku=te({client:h("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:h(ze+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:h("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:h("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:h("date time timestamp"),support:h("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":Se,"`":at,"\\":Vr}}),Ul=te({client:h("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:h(ze+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:h("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:h("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:h("date time timestamp datetime"),support:h("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":Se,":":Se,"?":Se,$:Se,'"':Ml,"`":at}}),_u=te({client:{},keywords:h("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:h("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:h("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:h("commentSlashSlash decimallessFloat"),hooks:{}}),Vl=te({client:h("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:h("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:h("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:h("date time timestamp"),support:h("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),xu=te({keywords:h("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:h("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:h("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:h("date timestamp"),support:h("ODBCdotTable doubleQuote binaryNumber hexNumber")}),Kl=te({client:h("source"),keywords:h(ze+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:h("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:h("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:h("date time timestamp"),support:h("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),wu=te({keywords:h("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:h("false true"),builtin:h("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),Su=te({client:h("source"),keywords:h("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:h("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:h("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:h("date time timestamp"),support:h("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),zu=te({keywords:h("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:h("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:h("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:h("date time timestamp"),support:h("ODBCdotTable doubleQuote zerolessFloat")}),Eu=te({client:h("source"),keywords:h("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:h("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:h("time"),support:h("decimallessFloat zerolessFloat binaryNumber hexNumber")});function Hr(e){function n(c,f){c.cmdState.push(f)}function t(c){return c.cmdState.length>0?c.cmdState[c.cmdState.length-1]:null}function r(c){var f=c.cmdState.pop();f&&f.closeBracket()}function i(c){for(var f=c.cmdState,y=f.length-1;y>=0;y--){var R=f[y];if(R.name!="DEFAULT")return R}return{styleIdentifier:function(){return null}}}function o(c,f,y){return function(){this.name=c,this.bracketNo=0,this.style=f,this.styles=y,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}var a={};a.importmodule=o("importmodule","tag",["string","builtin"]),a.documentclass=o("documentclass","tag",["","atom"]),a.usepackage=o("usepackage","tag",["atom"]),a.begin=o("begin","tag",["atom"]),a.end=o("end","tag",["atom"]),a.label=o("label","tag",["atom"]),a.ref=o("ref","tag",["atom"]),a.eqref=o("eqref","tag",["atom"]),a.cite=o("cite","tag",["atom"]),a.bibitem=o("bibitem","tag",["atom"]),a.Bibitem=o("Bibitem","tag",["atom"]),a.RBibitem=o("RBibitem","tag",["atom"]),a.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}};function s(c,f){c.f=f}function _(c,f){var y;if(c.match(/^\\[a-zA-Z@\xc0-\u1fff\u2060-\uffff]+/)){var R=c.current().slice(1);return y=a.hasOwnProperty(R)?a[R]:a.DEFAULT,y=new y,n(f,y),s(f,S),y.style}if(c.match(/^\\[$&%#{}_]/)||c.match(/^\\[,;!\/\\]/))return"tag";if(c.match("\\["))return s(f,function(U,d){return z(U,d,"\\]")}),"keyword";if(c.match("\\("))return s(f,function(U,d){return z(U,d,"\\)")}),"keyword";if(c.match("$$"))return s(f,function(U,d){return z(U,d,"$$")}),"keyword";if(c.match("$"))return s(f,function(U,d){return z(U,d,"$")}),"keyword";var Q=c.next();if(Q=="%")return c.skipToEnd(),"comment";if(Q=="}"||Q=="]"){if(y=t(f),y)y.closeBracket(Q),s(f,S);else return"error";return"bracket"}else return Q=="{"||Q=="["?(y=a.DEFAULT,y=new y,n(f,y),"bracket"):/\d/.test(Q)?(c.eatWhile(/[\w.%]/),"atom"):(c.eatWhile(/[\w\-_]/),y=i(f),y.name=="begin"&&(y.argument=c.current()),y.styleIdentifier())}function z(c,f,y){if(c.eatSpace())return null;if(y&&c.match(y))return s(f,_),"keyword";if(c.match(/^\\[a-zA-Z@]+/))return"tag";if(c.match(/^[a-zA-Z]+/))return"variableName.special";if(c.match(/^\\[$&%#{}_]/)||c.match(/^\\[,;!\/]/)||c.match(/^[\^_&]/))return"tag";if(c.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(c.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var R=c.next();return R=="{"||R=="}"||R=="["||R=="]"||R=="("||R==")"?"bracket":R=="%"?(c.skipToEnd(),"comment"):"error"}function S(c,f){var y=c.peek(),R;return y=="{"||y=="["?(R=t(f),R.openBracket(y),c.eat(y),s(f,_),"bracket"):/[ \t\r]/.test(y)?(c.eat(y),null):(s(f,_),r(f),_(c,f))}return{name:"stex",startState:function(){var c=e?function(f,y){return z(f,y)}:_;return{cmdState:[],f:c}},copyState:function(c){return{cmdState:c.cmdState.slice(),f:c.f}},token:function(c,f){return f.f(c,f)},blankLine:function(c){c.f=_,c.cmdState.length=0},languageData:{commentTokens:{line:"%"}}}}var Hl=Hr(!1),Cu=Hr(!0);function hn(e){for(var n={},t=0;t~^?!",Yl=":;,.(){}[]",ec=/^\-?0b[01][01_]*/,nc=/^\-?0o[0-7][0-7_]*/,tc=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,rc=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,ic=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,oc=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,ac=/^\#[A-Za-z]+/,lc=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function Zr(e,n,t){if(e.sol()&&(n.indented=e.indentation()),e.eatSpace())return null;var r=e.peek();if(r=="/"){if(e.match("//"))return e.skipToEnd(),"comment";if(e.match("/*"))return n.tokenize.push(lt),lt(e,n)}if(e.match(ac))return"builtin";if(e.match(lc))return"attribute";if(e.match(ec)||e.match(nc)||e.match(tc)||e.match(rc))return"number";if(e.match(oc))return"property";if(Jl.indexOf(r)>-1)return e.next(),"operator";if(Yl.indexOf(r)>-1)return e.next(),e.match(".."),"punctuation";var i;if(i=e.match(/("""|"|')/)){var o=uc.bind(null,i[0]);return n.tokenize.push(o),o(e,n)}if(e.match(ic)){var a=e.current();return Xl.hasOwnProperty(a)?"type":Ql.hasOwnProperty(a)?"atom":Zl.hasOwnProperty(a)?(Gl.hasOwnProperty(a)&&(n.prev="define"),"keyword"):t=="define"?"def":"variable"}return e.next(),null}function cc(){var e=0;return function(n,t,r){var i=Zr(n,t,r);if(i=="punctuation"){if(n.current()=="(")++e;else if(n.current()==")"){if(e==0)return n.backUp(1),t.tokenize.pop(),t.tokenize[t.tokenize.length-1](n,t);--e}}return i}}function uc(e,n,t){for(var r=e.length==1,i,o=!1;i=n.peek();)if(o){if(n.next(),i=="(")return t.tokenize.push(cc()),"string";o=!1}else{if(n.match(e))return t.tokenize.pop(),"string";n.next(),o=i=="\\"}return r&&t.tokenize.pop(),"string"}function lt(e,n){for(var t;t=e.next();)if(t==="/"&&e.eat("*"))n.tokenize.push(lt);else if(t==="*"&&e.eat("/")){n.tokenize.pop();break}return"comment"}function sc(e,n,t){this.prev=e,this.align=n,this.indented=t}function dc(e,n){var t=n.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:n.column()+1;e.context=new sc(e.context,t,e.indented)}function fc(e){e.context&&(e.indented=e.context.indented,e.context=e.context.prev)}var pc={name:"swift",startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(e,n){var t=n.prev;n.prev=null;var r=n.tokenize[n.tokenize.length-1]||Zr,i=r(e,n,t);if(!i||i=="comment"?n.prev=t:n.prev||(n.prev=i),i=="punctuation"){var o=/[\(\[\{]|([\]\)\}])/.exec(e.current());o&&(o[1]?fc:dc)(n,e)}return i},indent:function(e,n,t){var r=e.context;if(!r)return 0;var i=/^[\]\}\)]/.test(n);return r.align!=null?r.align-(i?1:0):r.indented+(i?0:t.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}};var mc={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(e,n){let t;if(!n.inString&&(t=e.match(/^('''|"""|'|")/))&&(n.stringType=t[0],n.inString=!0),e.sol()&&!n.inString&&n.inArray===0&&(n.lhs=!0),n.inString){for(;n.inString;)if(e.match(n.stringType))n.inString=!1;else if(e.peek()==="\\")e.next(),e.next();else{if(e.eol())break;e.match(/^.[^\\\"\']*/)}return n.lhs?"property":"string"}else{if(n.inArray&&e.peek()==="]")return e.next(),n.inArray--,"bracket";if(n.lhs&&e.peek()==="["&&e.skipTo("]"))return e.next(),e.peek()==="]"&&e.next(),"atom";if(e.peek()==="#")return e.skipToEnd(),"comment";if(e.eatSpace())return null;if(n.lhs&&e.eatWhile(function(r){return r!="="&&r!=" "}))return"property";if(n.lhs&&e.peek()==="=")return e.next(),n.lhs=!1,null;if(!n.lhs&&e.match(/^\d\d\d\d[\d\-\:\.T]*Z/))return"atom";if(!n.lhs&&(e.match("true")||e.match("false")))return"atom";if(!n.lhs&&e.peek()==="[")return n.inArray++,e.next(),"bracket";if(!n.lhs&&e.match(/^\-?\d+(?:\.\d+)?/))return"number";e.eatSpace()||e.next()}return null},languageData:{commentTokens:{line:"#"}}};var gn="error";function _e(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var hc=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),gc=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),bc=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),vc=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),yc=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),kc=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),Gr=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"],Qr=["else","elseif","case","catch","finally"],Xr=["next","loop"],Jr=["and","andalso","or","orelse","xor","in","not","is","isnot","like"],_c=_e(Jr),Yr=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"],ei=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"],xc=_e(Yr),wc=_e(ei),Sc='"',zc=_e(Gr),ni=_e(Qr),ti=_e(Xr),ri=_e(["end"]),Ec=_e(["do"]),Tc=null;function ct(e,n){n.currentIndent++}function Ve(e,n){n.currentIndent--}function ut(e,n){if(e.eatSpace())return null;var t=e.peek();if(t==="'")return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var r=!1;if((e.match(/^\d*\.\d+F?/i)||e.match(/^\d+\.\d*F?/)||e.match(/^\.\d+F?/))&&(r=!0),r)return e.eat(/J/i),"number";var i=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?i=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),i=!0):e.match(/^0(?![\dx])/i)&&(i=!0),i)return e.eat(/L/i),"number"}return e.match(Sc)?(n.tokenize=Cc(e.current()),n.tokenize(e,n)):e.match(yc)||e.match(vc)?null:e.match(bc)||e.match(hc)||e.match(_c)?"operator":e.match(gc)?null:e.match(Ec)?(ct(e,n),n.doInCurrentLine=!0,"keyword"):e.match(zc)?(n.doInCurrentLine?n.doInCurrentLine=!1:ct(e,n),"keyword"):e.match(ni)?"keyword":e.match(ri)?(Ve(e,n),Ve(e,n),"keyword"):e.match(ti)?(Ve(e,n),"keyword"):e.match(wc)||e.match(xc)?"keyword":e.match(kc)?"variable":(e.next(),gn)}function Cc(e){var n=e.length==1,t="string";return function(r,i){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return i.tokenize=ut,t;r.eat(/['"]/)}return n&&(i.tokenize=ut),t}}function Ic(e,n){var t=n.tokenize(e,n),r=e.current();if(r===".")return t=n.tokenize(e,n),t==="variable"?"variable":gn;var i="[({".indexOf(r);return i!==-1&&ct(e,n),Tc==="dedent"&&Ve(e,n)||(i="])}".indexOf(r),i!==-1&&Ve(e,n))?gn:t}var Ac={name:"vb",startState:function(){return{tokenize:ut,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,n){e.sol()&&(n.currentIndent+=n.nextLineIndent,n.nextLineIndent=0,n.doInCurrentLine=0);var t=Ic(e,n);return n.lastToken={style:t,content:e.current()},t},indent:function(e,n,t){var r=n.replace(/^\s+|\s+$/g,"");return r.match(ti)||r.match(ri)||r.match(ni)?t.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*t.unit},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:"'"},autocomplete:Gr.concat(Qr).concat(Xr).concat(Jr).concat(Yr).concat(ei)}};function ii(e){var n="error";function t(b){return new RegExp("^(("+b.join(")|(")+"))\\b","i")}var r=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),i=new RegExp("^((<>)|(<=)|(>=))"),o=new RegExp("^[\\.,]"),a=new RegExp("^[\\(\\)]"),s=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),_=["class","sub","select","while","if","function","property","with","for"],z=["else","elseif","case"],S=["next","loop","wend"],c=t(["and","or","not","xor","is","mod","eqv","imp"]),f=["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"],y=["true","false","nothing","empty","null"],R=["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"],Q=["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"],U=["WScript","err","debug","RegExp"],d=["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"],C=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"],E=["server","response","request","session","application"],I=["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"],l=["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],u=C.concat(d);U=U.concat(Q),e.isASP&&(U=U.concat(E),u=u.concat(l,I));var A=t(f),x=t(y),L=t(R),m=t(U),p=t(u),T='"',k=t(_),$=t(z),ce=t(S),Pe=t(["end"]),yn=t(["do"]),ai=t(["on error resume next","exit"]),li=t(["rem"]);function ft(b,O){O.currentIndent++}function kn(b,O){O.currentIndent--}function _n(b,O){if(b.eatSpace())return null;var N=b.peek();if(N==="'"||b.match(li))return b.skipToEnd(),"comment";if(b.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!b.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var Z=!1;if((b.match(/^\d*\.\d+/i)||b.match(/^\d+\.\d*/)||b.match(/^\.\d+/))&&(Z=!0),Z)return b.eat(/J/i),"number";var ge=!1;if(b.match(/^&H[0-9a-f]+/i)||b.match(/^&O[0-7]+/i)?ge=!0:b.match(/^[1-9]\d*F?/)?(b.eat(/J/i),ge=!0):b.match(/^0(?![\dx])/i)&&(ge=!0),ge)return b.eat(/L/i),"number"}return b.match(T)?(O.tokenize=ci(b.current()),O.tokenize(b,O)):b.match(i)||b.match(r)||b.match(c)?"operator":b.match(o)?null:b.match(a)?"bracket":b.match(ai)?(O.doInCurrentLine=!0,"keyword"):b.match(yn)?(ft(b,O),O.doInCurrentLine=!0,"keyword"):b.match(k)?(O.doInCurrentLine?O.doInCurrentLine=!1:ft(b,O),"keyword"):b.match($)?"keyword":b.match(Pe)?(kn(b,O),kn(b,O),"keyword"):b.match(ce)?(O.doInCurrentLine?O.doInCurrentLine=!1:kn(b,O),"keyword"):b.match(A)?"keyword":b.match(x)?"atom":b.match(p)?"variableName.special":b.match(L)||b.match(m)?"builtin":b.match(s)?"variable":(b.next(),n)}function ci(b){var O=b.length==1,N="string";return function(Z,ge){for(;!Z.eol();){if(Z.eatWhile(/[^'"]/),Z.match(b))return ge.tokenize=_n,N;Z.eat(/['"]/)}return O&&(ge.tokenize=_n),N}}function ui(b,O){var N=O.tokenize(b,O),Z=b.current();return Z==="."?(N=O.tokenize(b,O),Z=b.current(),N&&(N.substr(0,8)==="variable"||N==="builtin"||N==="keyword")?((N==="builtin"||N==="keyword")&&(N="variable"),u.indexOf(Z.substr(1))>-1&&(N="keyword"),N):n):N}return{name:"vbscript",startState:function(){return{tokenize:_n,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(b,O){b.sol()&&(O.currentIndent+=O.nextLineIndent,O.nextLineIndent=0,O.doInCurrentLine=0);var N=ui(b,O);return O.lastToken={style:N,content:b.current()},N===null&&(N=null),N},indent:function(b,O,N){var Z=O.replace(/^\s+|\s+$/g,"");return Z.match(ce)||Z.match(Pe)||Z.match($)?N.unit*(b.currentIndent-1):b.currentIndent<0?0:b.currentIndent*N.unit}}}var Oc=ii({}),Pu=ii({isASP:!0});var Rc=["true","false","on","off","yes","no"],Pc=new RegExp("\\b(("+Rc.join(")|(")+"))$","i"),Dc={name:"yaml",token:function(e,n){var t=e.peek(),r=n.escaped;if(n.escaped=!1,t=="#"&&(e.pos==0||/\s/.test(e.string.charAt(e.pos-1))))return e.skipToEnd(),"comment";if(e.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(n.literal&&e.indentation()>n.keyCol)return e.skipToEnd(),"string";if(n.literal&&(n.literal=!1),e.sol()){if(n.keyCol=0,n.pair=!1,n.pairStart=!1,e.match("---")||e.match("..."))return"def";if(e.match(/^\s*-\s+/))return"meta"}if(e.match(/^(\{|\}|\[|\])/))return t=="{"?n.inlinePairs++:t=="}"?n.inlinePairs--:t=="["?n.inlineList++:n.inlineList--,"meta";if(n.inlineList>0&&!r&&t==",")return e.next(),"meta";if(n.inlinePairs>0&&!r&&t==",")return n.keyCol=0,n.pair=!1,n.pairStart=!1,e.next(),"meta";if(n.pairStart){if(e.match(/^\s*(\||\>)\s*/))return n.literal=!0,"meta";if(e.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable";if(n.inlinePairs==0&&e.match(/^\s*-?[0-9\.\,]+\s?$/)||n.inlinePairs>0&&e.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(e.match(Pc))return"keyword"}return!n.pair&&e.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(n.pair=!0,n.keyCol=e.indentation(),"atom"):n.pair&&e.match(/^:\s*/)?(n.pairStart=!0,"meta"):(n.pairStart=!1,n.escaped=t=="\\",e.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},languageData:{commentTokens:{line:"#"}}};var st={token:e=>e.skipToEnd()},dt=["debug","extends","function","include","literal"],se={operatorChars:/[+\-*&%=<>!?]/,validIdentifier:/[a-zA-Z0-9_]/,stringChar:/['"]/},vn;function G(e,n){return vn=n,e}function Lc(e,n,t){return n.tokenize=t,t(e,n)}function $c(e,n){return!1}function bn(e,n){let t=e.string,r;for(let o=e.pos;r=t.indexOf("{",o),o=r+1,!(r===-1||!$c()););if(r===e.pos)return e.match("{"),e.eat("*")?Lc(e,n,Fc("comment","*}")):(n.depth++,n.tokenize=oi,vn="startTag","tag");r>-1&&(e.string=t.slice(0,r));let i=st.token(e,n.base);return r>-1&&(e.string=t),i}function oi(e,n){if(e.match("}",!0))return n.tokenize=bn,G("tag",null);if(e.match("{",!0))return n.depth++,G("tag","startTag");let t=e.next();if(t==="$")return e.eatWhile(se.validIdentifier),G("variable-2","variable");if(t==="|")return G("operator","pipe");if(t===".")return G("operator","property");if(se.stringChar.test(t))return n.tokenize=Nc(t),G("string","string");if(se.operatorChars.test(t))return e.eatWhile(se.operatorChars),G("operator","operator");if(t==="["||t==="]")return G("bracket","bracket");if(t==="("||t===")")return G("bracket","operator");if(/\d/.test(t))return e.eatWhile(/\d/),G("number","number");{if(n.last==="variable"){if(t==="@")return e.eatWhile(se.validIdentifier),G("property","property");if(t==="|")return e.eatWhile(se.validIdentifier),G("qualifier","modifier")}else{if(n.last==="pipe")return e.eatWhile(se.validIdentifier),G("qualifier","modifier");if(n.last==="whitespace")return e.eatWhile(se.validIdentifier),G("attribute","modifier")}if(n.last==="property")return e.eatWhile(se.validIdentifier),G("property",null);if(/\s/.test(t))return vn="whitespace",null;let r="";t!=="/"&&(r+=t);let i=null;for(;i=e.eat(se.validIdentifier);)r+=i;for(let o=0,a=dt.length;o{throw TypeError(e)};var ir=(e,u,t)=>u in e?Ce(e,u,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[u]=t;var cr=(e,u)=>()=>{try{return u||e((u={exports:{}}).exports,u),u.exports}catch(t){throw u=0,t}},De=(e,u)=>{for(var t in u)Ce(e,t,{get:u[t],enumerable:!0})},ar=(e,u,t,r)=>{if(u&&typeof u=="object"||typeof u=="function")for(let n of rr(u))!or.call(e,n)&&n!==t&&Ce(e,n,{get:()=>u[n],enumerable:!(r=tr(u,n))||r.enumerable});return e};var sr=(e,u,t)=>(t=e!=null?ur(nr(e)):{},ar(u||!e||!e.__esModule?Ce(t,"default",{value:e,enumerable:!0}):t,e));var A=(e,u,t)=>ir(e,typeof u!="symbol"?u+"":u,t),lr=(e,u,t)=>u.has(e)||Ft("Cannot "+t);var St=(e,u,t)=>u.has(e)?Ft("Cannot add the same private member more than once"):u instanceof WeakSet?u.add(e):u.set(e,t);var R=(e,u,t)=>(lr(e,u,"access private method"),t);var $0=cr((xs,N0)=>{var it=!0,B0=!1,z0=!1;N0.exports=function(e,u){u&&(it=!u.enabled,B0=!!u.label,z0=!!u.labelAfter),e.core.ruler.after("inline","github-task-lists",function(t){for(var r=t.tokens,n=2;n=0;r--)if(e[r].level===t)return r;return-1}function ao(e,u){return mo(e[u])&&bo(e[u-1])&&go(e[u-2])&&xo(e[u])}function so(e,u){if(e.children.unshift(lo(e,u)),e.children[1].content=e.children[1].content.slice(3),e.content=e.content.slice(3),B0)if(z0){e.children.pop();var t="task-item-"+Math.ceil(Math.random()*(1e4*1e3)-1e3);e.children[0].content=e.children[0].content.slice(0,-1)+' id="'+t+'">',e.children.push(ho(e.content,t,u))}else e.children.unshift(fo(u)),e.children.push(po(u))}function lo(e,u){var t=new u("html_inline","",0),r=it?' disabled="" ':"";return e.content.indexOf("[ ] ")===0?t.content='':(e.content.indexOf("[x] ")===0||e.content.indexOf("[X] ")===0)&&(t.content=''),t}function fo(e){var u=new e("html_inline","",0);return u.content="",u}function ho(e,u,t){var r=new t("html_inline","",0);return r.content='",r.attrs=[{for:u}],r}function mo(e){return e.type==="inline"}function bo(e){return e.type==="paragraph_open"}function go(e){return e.type==="list_item_open"}function xo(e){return e.content.indexOf("[ ] ")===0||e.content.indexOf("[x] ")===0||e.content.indexOf("[X] ")===0}});var fu={};De(fu,{arrayReplaceAt:()=>Pr,asciiTrim:()=>re,assign:()=>de,escapeHtml:()=>Z,escapeRE:()=>Gr,fromCodePoint:()=>fe,has:()=>qr,isMdAsciiPunct:()=>ue,isPunctChar:()=>Jt,isPunctCharCode:()=>ee,isSpace:()=>v,isString:()=>Be,isValidEntityCode:()=>ze,isWhiteSpace:()=>Q,lib:()=>Wr,normalizeReference:()=>te,unescapeAll:()=>V,unescapeMd:()=>Or});var Te={};De(Te,{decode:()=>be,encode:()=>Fe,format:()=>ae,parse:()=>ge});var Tt={};function dr(e){let u=Tt[e];if(u)return u;u=Tt[e]=[];for(let t=0;t<128;t++){let r=String.fromCharCode(t);u.push(r)}for(let t=0;t=55296&&d<=57343?n+="\uFFFD\uFFFD\uFFFD":n+=String.fromCharCode(d),o+=6;continue}}if((c&248)===240&&o+91114111?n+="\uFFFD\uFFFD\uFFFD\uFFFD":(f-=65536,n+=String.fromCharCode(55296+(f>>10),56320+(f&1023))),o+=9;continue}}n+="\uFFFD"}return n})}Ae.defaultChars=";/?:@&=+$,#";Ae.componentChars="";var be=Ae;var Mt={};function fr(e){let u=Mt[e];if(u)return u;u=Mt[e]=[];for(let t=0;t<128;t++){let r=String.fromCharCode(t);/^[0-9a-z]$/i.test(r)?u.push(r):u.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2))}for(let t=0;t"u"&&(t=!0);let r=fr(u),n="";for(let o=0,i=e.length;o=55296&&c<=57343){if(c>=55296&&c<=56319&&o+1=56320&&a<=57343){n+=encodeURIComponent(e[o]+e[o+1]),o++;continue}}n+="%EF%BF%BD";continue}n+=encodeURIComponent(e[o])}return n}ve.defaultChars=";/?:@&=+$,-_.!~*'()#";ve.componentChars="-_.!~*'()";var Fe=ve;function ae(e){let u="";return u+=e.protocol||"",u+=e.slashes?"//":"",u+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?u+="["+e.hostname+"]":u+=e.hostname||"",u+=e.port?":"+e.port:"",u+=e.pathname||"",u+=e.search||"",u+=e.hash||"",u}function Se(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var pr=/^([a-z0-9.+-]+:)/i,hr=/:[0-9]*$/,mr=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,br=["<",">",'"',"`"," ","\r",` +`," "],gr=["{","}","|","\\","^","`"].concat(br),xr=["'"].concat(gr),Lt=["%","/","?",";","#"].concat(xr),It=["/","?","#"],kr=255,Rt=/^[+a-z0-9A-Z_-]{0,63}$/,_r=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,qt={javascript:!0,"javascript:":!0},Pt={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function yr(e,u){if(e&&e instanceof Se)return e;let t=new Se;return t.parse(e,u),t}Se.prototype.parse=function(e,u){let t,r,n,o=e;if(o=o.trim(),!u&&e.split("#").length===1){let s=mr.exec(o);if(s)return this.pathname=s[1],s[2]&&(this.search=s[2]),this}let i=pr.exec(o);if(i&&(i=i[0],t=i.toLowerCase(),this.protocol=i,o=o.substr(i.length)),(u||i||o.match(/^\/\/[^@\/]+@[^@\/]+/))&&(n=o.substr(0,2)==="//",n&&!(i&&qt[i])&&(o=o.substr(2),this.slashes=!0)),!qt[i]&&(n||i&&!Pt[i])){let s=-1;for(let l=0;l127?_+="x":_+=x[k];if(!_.match(Rt)){let k=l.slice(0,h),y=l.slice(h+1),g=x.match(_r);g&&(k.push(g[1]),y.unshift(g[2])),y.length&&(o=y.join(".")+o),this.hostname=k.join(".");break}}}}this.hostname.length>kr&&(this.hostname=""),p&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}let c=o.indexOf("#");c!==-1&&(this.hash=o.substr(c),o=o.slice(0,c));let a=o.indexOf("?");return a!==-1&&(this.search=o.substr(a),o=o.slice(0,a)),o&&(this.pathname=o),Pt[t]&&this.hostname&&!this.pathname&&(this.pathname=""),this};Se.prototype.parseHost=function(e){let u=hr.exec(e);u&&(u=u[0],u!==":"&&(this.port=u.substr(1)),e=e.substr(0,e.length-u.length)),e&&(this.hostname=e)};var ge=yr;var ou={};De(ou,{Any:()=>Me,Cc:()=>Le,Cf:()=>Bt,P:()=>se,S:()=>Ie,Z:()=>Re});var Me=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;var Le=/[\0-\x1F\x7F-\x9F]/;var Bt=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/;var se=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/;var Ie=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/;var Re=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;var zt=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(e=>e.charCodeAt(0)));var Nt=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(e=>e.charCodeAt(0)));var iu,Er=new Map([[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]]),cu=(iu=String.fromCodePoint)!==null&&iu!==void 0?iu:function(e){let u="";return e>65535&&(e-=65536,u+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),u+=String.fromCharCode(e),u};function au(e){var u;return e>=55296&&e<=57343||e>1114111?65533:(u=Er.get(e))!==null&&u!==void 0?u:e}var L;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(L||(L={}));var wr=32,J;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(J||(J={}));function su(e){return e>=L.ZERO&&e<=L.NINE}function Cr(e){return e>=L.UPPER_A&&e<=L.UPPER_F||e>=L.LOWER_A&&e<=L.LOWER_F}function Dr(e){return e>=L.UPPER_A&&e<=L.UPPER_Z||e>=L.LOWER_A&&e<=L.LOWER_Z||su(e)}function Ar(e){return e===L.EQUALS||Dr(e)}var M;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(M||(M={}));var z;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(z||(z={}));var qe=class{constructor(u,t,r){this.decodeTree=u,this.emitCodePoint=t,this.errors=r,this.state=M.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=z.Strict}startEntity(u){this.decodeMode=u,this.state=M.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(u,t){switch(this.state){case M.EntityStart:return u.charCodeAt(t)===L.NUM?(this.state=M.NumericStart,this.consumed+=1,this.stateNumericStart(u,t+1)):(this.state=M.NamedEntity,this.stateNamedEntity(u,t));case M.NumericStart:return this.stateNumericStart(u,t);case M.NumericDecimal:return this.stateNumericDecimal(u,t);case M.NumericHex:return this.stateNumericHex(u,t);case M.NamedEntity:return this.stateNamedEntity(u,t)}}stateNumericStart(u,t){return t>=u.length?-1:(u.charCodeAt(t)|wr)===L.LOWER_X?(this.state=M.NumericHex,this.consumed+=1,this.stateNumericHex(u,t+1)):(this.state=M.NumericDecimal,this.stateNumericDecimal(u,t))}addToNumericResult(u,t,r,n){if(t!==r){let o=r-t;this.result=this.result*Math.pow(n,o)+parseInt(u.substr(t,o),n),this.consumed+=o}}stateNumericHex(u,t){let r=t;for(;t>14;for(;t>14,o!==0){if(i===L.SEMI)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);this.decodeMode!==z.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var u;let{result:t,decodeTree:r}=this,n=(r[t]&J.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,n,this.consumed),(u=this.errors)===null||u===void 0||u.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(u,t,r){let{decodeTree:n}=this;return this.emitCodePoint(t===1?n[u]&~J.VALUE_LENGTH:n[u+1],r),t===3&&this.emitCodePoint(n[u+2],r),r}end(){var u;switch(this.state){case M.NamedEntity:return this.result!==0&&(this.decodeMode!==z.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case M.NumericDecimal:return this.emitNumericEntity(0,2);case M.NumericHex:return this.emitNumericEntity(0,3);case M.NumericStart:return(u=this.errors)===null||u===void 0||u.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case M.EntityStart:return 0}}};function $t(e){let u="",t=new qe(e,r=>u+=cu(r));return function(n,o){let i=0,c=0;for(;(c=n.indexOf("&",c))>=0;){u+=n.slice(i,c),t.startEntity(o);let s=t.write(n,c+1);if(s<0){i=c+t.end();break}i=c+s,c=s===0?i+1:i}let a=u+n.slice(i);return u="",a}}function vr(e,u,t,r){let n=(u&J.BRANCH_LENGTH)>>7,o=u&J.JUMP_TABLE;if(n===0)return o!==0&&r===o?t:-1;if(o){let a=r-o;return a<0||a>=n?-1:e[t+a]-1}let i=t,c=i+n-1;for(;i<=c;){let a=i+c>>>1,s=e[a];if(sr)c=a-1;else return e[a+n]}return-1}var Ot=$t(zt),Fi=$t(Nt);function le(e,u=z.Legacy){return Ot(e,u)}function xe(e){return Ot(e,z.Strict)}function Pe(e){for(let u=1;ue.codePointAt(u):(e,u)=>(e.charCodeAt(u)&64512)===55296?(e.charCodeAt(u)-55296)*1024+e.charCodeAt(u+1)-56320+65536:e.charCodeAt(u);function lu(e,u){return function(r){let n,o=0,i="";for(;n=e.exec(r);)o!==n.index&&(i+=r.substring(o,n.index)),i+=u.get(n[0].charCodeAt(0)),o=n.index+1;return i+r.substring(o)}}var Ht=lu(/[&<>'"]/g,Sr),Ut=lu(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),jt=lu(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]));var Vt;(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Vt||(Vt={}));var Zt;(function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"})(Zt||(Zt={}));function Ir(e){return Object.prototype.toString.call(e)}function Be(e){return Ir(e)==="[object String]"}var Rr=Object.prototype.hasOwnProperty;function qr(e,u){return Rr.call(e,u)}function de(e){return Array.prototype.slice.call(arguments,1).forEach(function(t){if(t){if(typeof t!="object")throw new TypeError(t+"must be object");Object.keys(t).forEach(function(r){e[r]=t[r]})}}),e}function Pr(e,u,t){return[].concat(e.slice(0,u),t,e.slice(u+1))}function ze(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function fe(e){if(e>65535){e-=65536;let u=55296+(e>>10),t=56320+(e&1023);return String.fromCharCode(u,t)}return String.fromCharCode(e)}var Xt=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,Br=/&([a-z#][a-z0-9]{1,31});/gi,zr=new RegExp(Xt.source+"|"+Br.source,"gi"),Nr=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function $r(e,u){if(u.charCodeAt(0)===35&&Nr.test(u)){let r=u[1].toLowerCase()==="x"?parseInt(u.slice(2),16):parseInt(u.slice(1),10);return ze(r)?fe(r):e}let t=le(e);return t!==e?t:e}function Or(e){return e.indexOf("\\")<0?e:e.replace(Xt,"$1")}function V(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(zr,function(u,t,r){return t||$r(u,r)})}var Hr=/[&<>"]/,Ur=/[&<>"]/g,jr={"&":"&","<":"<",">":">",'"':"""};function Vr(e){return jr[e]}function Z(e){return Hr.test(e)?e.replace(Ur,Vr):e}var Zr=/[.?*+^$[\]\\(){}|-]/g;function Gr(e){return e.replace(Zr,"\\$&")}function v(e){switch(e){case 9:case 32:return!0}return!1}function Q(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function Jt(e){return se.test(e)||Ie.test(e)}function ee(e){return Jt(fe(e))}function ue(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function te(e){return e=e.trim().replace(/\s+/g," "),"\u1E9E".toLowerCase()==="\u1E7E"&&(e=e.replace(/ẞ/g,"\xDF")),e.toLowerCase().toUpperCase()}function Wt(e){return e===32||e===9||e===10||e===13}function re(e){let u=0;for(;u=u&&Wt(e.charCodeAt(t));t--);return e.slice(u,t+1)}var Wr={mdurl:Te,ucmicro:ou};var bu={};De(bu,{parseLinkDestination:()=>hu,parseLinkLabel:()=>pu,parseLinkTitle:()=>mu});function pu(e,u,t){let r,n,o,i,c=e.posMax,a=e.pos;for(e.pos=u+1,r=1;e.pos32))return o;if(r===41){if(i===0)break;i--}n++}return u===n||i!==0||(o.str=V(e.slice(u,n)),o.pos=n,o.ok=!0),o}function mu(e,u,t,r){let n,o=u,i={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(r)i.str=r.str,i.marker=r.marker;else{if(o>=t)return i;let c=e.charCodeAt(o);if(c!==34&&c!==39&&c!==40)return i;u++,o++,c===40&&(c=41),i.marker=c}for(;o"+Z(o.content)+""};O.code_block=function(e,u,t,r,n){let o=e[u];return""+Z(e[u].content)+` +`};O.fence=function(e,u,t,r,n){let o=e[u],i=o.info?V(o.info).trim():"",c="",a="";if(i){let d=i.split(/(\s+)/g);c=d[0],a=d.slice(2).join("")}let s;if(t.highlight?s=t.highlight(o.content,c,a)||Z(o.content):s=Z(o.content),s.indexOf("${s} +`}return`
    ${s}
    +`};O.image=function(e,u,t,r,n){let o=e[u];return o.attrs[o.attrIndex("alt")][1]=n.renderInlineAsText(o.children,t,r),n.renderToken(e,u,t)};O.hardbreak=function(e,u,t){return t.xhtmlOut?`
    +`:`
    +`};O.softbreak=function(e,u,t){return t.breaks?t.xhtmlOut?`
    +`:`
    +`:` +`};O.text=function(e,u){return Z(e[u].content)};O.html_block=function(e,u){return e[u].content};O.html_inline=function(e,u){return e[u].content};function pe(){this.rules=de({},O)}pe.prototype.renderAttrs=function(u){let t,r,n;if(!u.attrs)return"";for(n="",t=0,r=u.attrs.length;t +`:">",o};pe.prototype.renderInline=function(e,u,t){let r="",n=this.rules;for(let o=0,i=e.length;o=0&&(r=this.attrs[t][1]),r};he.prototype.attrJoin=function(u,t){let r=this.attrIndex(u);r<0?this.attrPush([u,t]):this.attrs[r][1]=this.attrs[r][1]+" "+t};var G=he;function Yt(e,u,t){this.src=e,this.env=t,this.tokens=[],this.inlineMode=!1,this.md=u}Yt.prototype.Token=G;var Qt=Yt;var Xr=/\r\n?|\n/g,Jr=/\0/g;function gu(e){let u;u=e.src.replace(Xr,` +`),u=u.replace(Jr,"\uFFFD"),e.src=u}function xu(e){let u;e.inlineMode?(u=new e.Token("inline","",0),u.content=e.src,u.map=[0,1],u.children=[],e.tokens.push(u)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}function ku(e){let u=e.tokens;for(let t=0,r=u.length;t\s]/i.test(e)}function Yr(e){return/^<\/a\s*>/i.test(e)}function _u(e){let u=e.tokens;if(e.md.options.linkify)for(let t=0,r=u.length;t=0;c--){let a=n[c];if(a.type==="link_close"){for(c--;n[c].level!==a.level&&n[c].type!=="link_open";)c--;continue}if(a.type==="html_inline"&&(Kr(a.content)&&i>0&&i--,Yr(a.content)&&i++),!(i>0)&&a.type==="text"&&e.md.linkify.test(a.content)){let s=a.content,d=e.md.linkify.match(s),f=[],m=a.level,p=0;d.length>0&&d[0].index===0&&c>0&&n[c-1].type==="text_special"&&(d=d.slice(1));for(let l=0;lp){let E=new e.Token("text","",0);E.content=s.slice(p,_),E.level=m,f.push(E)}let k=new e.Token("link_open","a",1);k.attrs=[["href",b]],k.level=m++,k.markup="linkify",k.info="auto",f.push(k);let y=new e.Token("text","",0);y.content=x,y.level=m,f.push(y);let g=new e.Token("link_close","a",-1);g.level=--m,g.markup="linkify",g.info="auto",f.push(g),p=d[l].lastIndex}if(p0){let c=n.length;for(let f of o)c+=f.nodes.length-1;let a=new Array(c),s=0,d=0;o.reverse();for(let f=0;f=0;t--){let r=e[t];r.type==="text"&&!u&&(r.content=r.content.replace(en,tn)),r.type==="link_open"&&r.info==="auto"&&u--,r.type==="link_close"&&r.info==="auto"&&u++}}function nn(e){let u=0;for(let t=e.length-1;t>=0;t--){let r=e[t];r.type==="text"&&!u&&e0.test(r.content)&&(r.content=r.content.replace(/\+-/g,"\xB1").replace(/\.{2,}/g,"\u2026").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1\u2014").replace(/(^|\s)--(?=\s|$)/mg,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1\u2013")),r.type==="link_open"&&r.info==="auto"&&u--,r.type==="link_close"&&r.info==="auto"&&u++}}function yu(e){let u;if(e.md.options.typographer)for(u=e.tokens.length-1;u>=0;u--)e.tokens[u].type==="inline"&&(Qr.test(e.tokens[u].content)&&rn(e.tokens[u].children),e0.test(e.tokens[u].content)&&nn(e.tokens[u].children))}var on=/['"]/,u0=/['"]/g,t0="\u2019",cn=1e3;function r0(e,u,t){for(;e.length>t;){let r=e.pop();r.isSingleQuote?u.single=r.prevSameQuoteIdx:u.double=r.prevSameQuoteIdx}}function Ne(e,u,t,r){e[u]||(e[u]=[]),e[u].push({pos:t,ch:r})}function an(e,u){let t="",r=0;u.sort((n,o)=>n.pos-o.pos);for(let n=0;n=0&&!(r[t].level<=a);t--);if(r0(r,n,t+1),c.type!=="text")continue;let s=c.content,d=0,f=s.length;e:for(;d=0)b=s.charCodeAt(m.index-1);else for(t=i-1;t>=0&&!(e[t].type==="softbreak"||e[t].type==="hardbreak");t--)if(e[t].content){b=e[t].content.charCodeAt(e[t].content.length-1);break}let x=32;if(d=48&&b<=57&&(l=p=!1),p&&l&&(p=_,l=k),!p&&!l){h&&Ne(o,i,m.index,t0);continue}if(l&&(t=h?n.single:n.double,t>=0&&r[t].level===a)){let E=r[t],w,C;h?(w=u.md.options.quotes[2],C=u.md.options.quotes[3]):(w=u.md.options.quotes[0],C=u.md.options.quotes[1]),Ne(o,i,m.index,C),Ne(o,E.tokenIdx,E.contentPos,w),r0(r,n,t);continue e}if(p){if(r.length>=cn)return;r.push({tokenIdx:i,contentPos:m.index,isSingleQuote:h,level:a,prevSameQuoteIdx:h?n.single:n.double}),h?n.single=r.length-1:n.double=r.length-1}else l&&h&&Ne(o,i,m.index,t0)}}Object.keys(o).forEach(function(i){e[i].content=an(e[i].content,o[i])})}function Eu(e){if(e.md.options.typographer)for(let u=e.tokens.length-1;u>=0;u--)e.tokens[u].type!=="inline"||!on.test(e.tokens[u].content)||sn(e.tokens[u].children,e)}function wu(e){let u,t,r=e.tokens,n=r.length;for(let o=0;o0&&this.level++,this.tokens.push(r),r};H.prototype.isEmpty=function(u){return this.bMarks[u]+this.tShift[u]>=this.eMarks[u]};H.prototype.skipEmptyLines=function(u){for(let t=this.lineMax;ut;)if(!v(this.src.charCodeAt(--u)))return u+1;return u};H.prototype.skipChars=function(u,t){for(let r=this.src.length;ur;)if(t!==this.src.charCodeAt(--u))return u+1;return u};H.prototype.getLines=function(u,t,r,n){if(u>=t)return"";let o=new Array(t-u);for(let i=0,c=u;cr?o[i]=new Array(a-r+1).join(" ")+this.src.slice(d,f):o[i]=this.src.slice(d,f)}return o.join("")};H.prototype.Token=G;var o0=H;var ln=65536;function Au(e,u){let t=e.bMarks[u]+e.tShift[u],r=e.eMarks[u];return e.src.slice(t,r)}function i0(e){let u=[],t=e.length,r=0,n=e.charCodeAt(r),o=!1,i=0,c="";for(;rt)return!1;let n=u+1;if(e.sCount[n]=4)return!1;let o=e.bMarks[n]+e.tShift[n];if(o>=e.eMarks[n])return!1;let i=e.src.charCodeAt(o++);if(i!==124&&i!==45&&i!==58||o>=e.eMarks[n])return!1;let c=e.src.charCodeAt(o++);if(c!==124&&c!==45&&c!==58&&!v(c)||i===45&&v(c))return!1;for(;o=4)return!1;s=i0(a),s.length&&s[0]===""&&s.shift(),s.length&&s[s.length-1]===""&&s.pop();let f=s.length;if(f===0||f!==d.length)return!1;if(r)return!0;let m=e.parentType;e.parentType="table";let p=e.md.block.ruler.getRules("blockquote"),l=e.push("table_open","table",1),h=[u,0];l.map=h;let b=e.push("thead_open","thead",1);b.map=[u,u+1];let x=e.push("tr_open","tr",1);x.map=[u,u+1];for(let y=0;y=4||(s=i0(a),s.length&&s[0]===""&&s.shift(),s.length&&s[s.length-1]===""&&s.pop(),k+=f-s.length,k>ln))break;if(n===u+2){let E=e.push("tbody_open","tbody",1);E.map=_=[u+2,0]}let g=e.push("tr_open","tr",1);g.map=[n,n+1];for(let E=0;E=4){r++,n=r;continue}break}e.line=n;let o=e.push("code_block","code",0);return o.content=e.getLines(u,n,4+e.blkIndent,!1)+` +`,o.map=[u,e.line],!0}function Su(e,u,t,r){let n=e.bMarks[u]+e.tShift[u],o=e.eMarks[u];if(e.sCount[u]-e.blkIndent>=4||n+3>o)return!1;let i=e.src.charCodeAt(n);if(i!==126&&i!==96)return!1;let c=n;n=e.skipChars(n,i);let a=n-c;if(a<3)return!1;let s=e.src.slice(c,n),d=e.src.slice(n,o);if(i===96&&d.indexOf(String.fromCharCode(i))>=0)return!1;if(r)return!0;let f=u,m=!1;for(;f++,!(f>=t||(n=c=e.bMarks[f]+e.tShift[f],o=e.eMarks[f],n=4)&&(n=e.skipChars(n,i),!(n-c=4||e.src.charCodeAt(n)!==62)return!1;if(r)return!0;let c=[],a=[],s=[],d=[],f=e.md.block.ruler.getRules("blockquote"),m=e.parentType;e.parentType="blockquote";let p=!1,l;for(l=u;l=o)break;if(e.src.charCodeAt(n++)===62&&!k){let g=e.sCount[l]+1,E,w;e.src.charCodeAt(n)===32?(n++,g++,w=!1,E=!0):e.src.charCodeAt(n)===9?(E=!0,(e.bsCount[l]+g)%4===3?(n++,g++,w=!1):w=!0):E=!1;let C=g;for(c.push(e.bMarks[l]),e.bMarks[l]=n;n=o,a.push(e.bsCount[l]),e.bsCount[l]=e.sCount[l]+1+(E?1:0),s.push(e.sCount[l]),e.sCount[l]=C-g,d.push(e.tShift[l]),e.tShift[l]=n-e.bMarks[l];continue}if(p)break;let y=!1;for(let g=0,E=f.length;g";let x=[u,0];b.map=x,e.md.block.tokenize(e,u,l);let _=e.push("blockquote_close","blockquote",-1);_.markup=">",e.lineMax=i,e.parentType=m,x[1]=e.line;for(let k=0;k=4)return!1;let o=e.bMarks[u]+e.tShift[u],i=e.src.charCodeAt(o++);if(i!==42&&i!==45&&i!==95)return!1;let c=1;for(;o=r)return-1;let o=e.src.charCodeAt(n++);if(o<48||o>57)return-1;for(;;){if(n>=r)return-1;if(o=e.src.charCodeAt(n++),o>=48&&o<=57){if(n-t>=10)return-1;continue}if(o===41||o===46)break;return-1}return n=4||e.listIndent>=0&&e.sCount[a]-e.listIndent>=4&&e.sCount[a]=e.blkIndent&&(d=!0);let f,m,p;if((p=a0(e,a))>=0){if(f=!0,i=e.bMarks[a]+e.tShift[a],m=Number(e.src.slice(i,p-1)),d&&m!==1)return!1}else if((p=c0(e,a))>=0)f=!1;else return!1;if(d&&e.skipSpaces(p)>=e.eMarks[a])return!1;if(r)return!0;let l=e.src.charCodeAt(p-1),h=e.tokens.length;f?(c=e.push("ordered_list_open","ol",1),m!==1&&(c.attrs=[["start",m]])):c=e.push("bullet_list_open","ul",1);let b=[a,0];c.map=b,c.markup=String.fromCharCode(l);let x=!1,_=e.md.block.ruler.getRules("list"),k=e.parentType;for(e.parentType="list";a=n?w=1:w=g-y,w>4&&(w=1);let C=y+w;c=e.push("list_item_open","li",1),c.markup=String.fromCharCode(l);let D=[a,0];c.map=D,f&&(c.info=e.src.slice(i,p-1));let F=e.tight,S=e.tShift[a],I=e.sCount[a],q=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=C,e.tight=!0,e.tShift[a]=E-e.bMarks[a],e.sCount[a]=g,E>=n&&e.isEmpty(a+1)?e.line=Math.min(e.line+2,t):e.md.block.tokenize(e,a,t,!0),(!e.tight||x)&&(s=!1),x=e.line-a>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=q,e.tShift[a]=S,e.sCount[a]=I,e.tight=F,c=e.push("list_item_close","li",-1),c.markup=String.fromCharCode(l),a=e.line,D[1]=a,a>=t||e.sCount[a]=4)break;let me=!1;for(let j=0,Y=_.length;j=4||e.src.charCodeAt(n)!==91)return!1;function c(_){let k=e.lineMax;if(_>=k||e.isEmpty(_))return null;let y=!1;if(e.sCount[_]-e.blkIndent>3&&(y=!0),e.sCount[_]<0&&(y=!0),!y){let w=e.md.block.ruler.getRules("reference"),C=e.parentType;e.parentType="reference";let D=!1;for(let F=0,S=w.length;F"u"&&(e.env.references={}),typeof e.env.references[x]>"u"&&(e.env.references[x]={title:b,href:f}),e.line=i),!0):!1}var s0=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"];var fn="[a-zA-Z_:][a-zA-Z0-9:._-]*",pn="[^\"'=<>`\\x00-\\x20]+",hn="'[^']*'",mn='"[^"]*"',bn="(?:"+pn+"|"+hn+"|"+mn+")",gn="(?:\\s+"+fn+"(?:\\s*=\\s*"+bn+")?)",l0="<[A-Za-z][A-Za-z0-9\\-]*"+gn+"*\\s*\\/?>",d0="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",xn="",kn="<[?][\\s\\S]*?[?]>",_n="]*>",yn="",f0=new RegExp("^(?:"+l0+"|"+d0+"|"+xn+"|"+kn+"|"+_n+"|"+yn+")"),p0=new RegExp("^(?:"+l0+"|"+d0+")");var oe=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(p0.source+"\\s*$"),/^$/,!1]];function Ru(e,u,t,r){let n=e.bMarks[u]+e.tShift[u],o=e.eMarks[u];if(e.sCount[u]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(n)!==60)return!1;let i=e.src.slice(n,o),c=0;for(;c=4)return!1;let i=e.src.charCodeAt(n);if(i!==35||n>=o)return!1;let c=1;for(i=e.src.charCodeAt(++n);i===35&&n6||nn&&v(e.src.charCodeAt(a-1))&&(o=a),e.line=u+1;let s=e.push("heading_open","h"+String(c),1);s.markup="########".slice(0,c),s.map=[u,e.line];let d=e.push("inline","",0);d.content=re(e.src.slice(n,o)),d.map=[u,e.line],d.children=[];let f=e.push("heading_close","h"+String(c),-1);return f.markup="########".slice(0,c),!0}function Pu(e,u,t){let r=e.md.block.ruler.getRules("paragraph");if(e.sCount[u]-e.blkIndent>=4)return!1;let n=e.parentType;e.parentType="paragraph";let o=0,i,c=u+1;for(;c3)continue;if(e.sCount[c]>=e.blkIndent){let p=e.bMarks[c]+e.tShift[c],l=e.eMarks[c];if(p=l))){o=i===61?1:2;break}}if(e.sCount[c]<0)continue;let m=!1;for(let p=0,l=r.length;p3||e.sCount[o]<0)continue;let s=!1;for(let d=0,f=r.length;d=t||e.sCount[i]=o){e.line=t;break}let a=e.line,s=!1;for(let d=0;d=e.line)throw new Error("block rule didn't increment state.line");break}if(!s)throw new Error("none of the block rules matched");e.tight=!c,e.isEmpty(e.line-1)&&(c=!0),i=e.line,i0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],n={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(n),r};ke.prototype.scanDelims=function(e,u){let t=this.posMax,r=this.src.charCodeAt(e),n;if(e===0)n=32;else if(e===1)n=this.src.charCodeAt(0),(n&63488)===55296&&(n=65533);else if(n=this.src.charCodeAt(e-1),(n&64512)===56320){let b=this.src.charCodeAt(e-2);n=(b&64512)===55296?65536+(b-55296<<10)+(n-56320):65533}else(n&64512)===55296&&(n=65533);let o=e;for(;o=65&&e<=90||e>=97&&e<=122}function Cn(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===45||e===46}function Nu(e,u){if(!e.md.options.linkify||e.linkLevel>0)return!1;let t=e.pos,r=e.posMax;if(t+3>r||e.src.charCodeAt(t)!==58||e.src.charCodeAt(t+1)!==47||e.src.charCodeAt(t+2)!==47)return!1;let n=t-Math.min(10,e.pending.length,t),o=t;for(;o>n&&Cn(e.src.charCodeAt(o-1));)o--;if(o===t||!wn(e.src.charCodeAt(o)))return!1;let i=t-o,c=e.md.linkify.matchAtStart(e.src.slice(o));if(!c)return!1;let a=c.url;if(a.length<=i)return!1;let s=a.length;for(;s>0&&a.charCodeAt(s-1)===42;)s--;s!==a.length&&(a=a.slice(0,s));let d=e.md.normalizeLink(a);if(!e.md.validateLink(d))return!1;if(!u){e.pending=e.pending.slice(0,-i);let f=e.push("link_open","a",1);f.attrs=[["href",d]],f.markup="linkify",f.info="auto";let m=e.push("text","",0);m.content=e.md.normalizeLinkText(a);let p=e.push("link_close","a",-1);p.markup="linkify",p.info="auto"}return e.pos+=a.length-i,!0}function $u(e,u){let t=e.pos;if(e.src.charCodeAt(t)!==10)return!1;let r=e.pending.length-1,n=e.posMax;if(!u)if(r>=0&&e.pending.charCodeAt(r)===32)if(r>=1&&e.pending.charCodeAt(r-1)===32){let o=r-1;for(;o>=1&&e.pending.charCodeAt(o-1)===32;)o--;e.pending=e.pending.slice(0,o),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(t++;t?@[]^_`{|}~-".split("").forEach(function(e){Ou[e.charCodeAt(0)]=1});function Hu(e,u){let t=e.pos,r=e.posMax;if(e.src.charCodeAt(t)!==92||(t++,t>=r))return!1;let n=e.src.charCodeAt(t);if(n===10){for(u||e.push("hardbreak","br",0),t++;t=55296&&n<=56319&&t+1=56320&&c<=57343&&(o+=e.src[t+1],t++)}let i="\\"+o;if(!u){let c=e.push("text_special","",0);n<256&&Ou[n]!==0?c.content=o:c.content=i,c.markup=i,c.info="escape"}return e.pos=t+1,!0}function Uu(e,u){let t=e.pos;if(e.src.charCodeAt(t)!==96)return!1;let n=t;t++;let o=e.posMax;for(;t=0;r--){let n=u[r];if(n.marker!==95&&n.marker!==42||n.end===-1)continue;let o=u[n.end],i=r>0&&u[r-1].end===n.end+1&&u[r-1].marker===n.marker&&u[r-1].token===n.token-1&&u[n.end+1].token===o.token+1,c=String.fromCharCode(n.marker),a=e.tokens[n.token];a.type=i?"strong_open":"em_open",a.tag=i?"strong":"em",a.nesting=1,a.markup=i?c+c:c,a.content="";let s=e.tokens[o.token];s.type=i?"strong_close":"em_close",s.tag=i?"strong":"em",s.nesting=-1,s.markup=i?c+c:c,s.content="",i&&(e.tokens[u[r-1].token].content="",e.tokens[u[n.end+1].token].content="",r--)}}function Fn(e){let u=e.tokens_meta,t=e.tokens_meta.length;g0(e,e.delimiters);for(let r=0;r=f)return!1;if(a=l,n=e.md.helpers.parseLinkDestination(e.src,l,e.posMax),n.ok){for(i=e.md.normalizeLink(n.str),e.md.validateLink(i)?l=n.pos:i="",a=l;l=f||e.src.charCodeAt(l)!==41)&&(s=!0),l++}if(s){if(typeof e.env.references>"u")return!1;if(l=0?r=e.src.slice(a,l++):l=p+1):l=p+1,r||(r=e.src.slice(m,p)),o=e.env.references[te(r)],!o)return e.pos=d,!1;i=o.href,c=o.title}if(!u){e.pos=m,e.posMax=p;let h=e.push("link_open","a",1),b=[["href",i]];h.attrs=b,c&&b.push(["title",c]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=l,e.posMax=f,!0}function Gu(e,u){let t,r,n,o,i,c,a,s,d="",f=e.pos,m=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;let p=e.pos+2,l=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(l<0)return!1;if(o=l+1,o=m)return!1;for(s=o,c=e.md.helpers.parseLinkDestination(e.src,o,e.posMax),c.ok&&(d=e.md.normalizeLink(c.str),e.md.validateLink(d)?o=c.pos:d=""),s=o;o=m||e.src.charCodeAt(o)!==41)return e.pos=f,!1;o++}else{if(typeof e.env.references>"u")return!1;if(o=0?n=e.src.slice(s,o++):o=l+1):o=l+1,n||(n=e.src.slice(p,l)),i=e.env.references[te(n)],!i)return e.pos=f,!1;d=i.href,a=i.title}if(!u){r=e.src.slice(p,l);let h=[];e.md.inline.parse(r,e.md,e.env,h);let b=e.push("image","img",0),x=[["src",d],["alt",""]];b.attrs=x,b.children=h,b.content=r,a&&x.push(["title",a])}return e.pos=o,e.posMax=m,!0}var Sn=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,Tn=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function Wu(e,u){let t=e.pos;if(e.src.charCodeAt(t)!==60)return!1;let r=e.pos,n=e.posMax;for(;;){if(++t>=n)return!1;let i=e.src.charCodeAt(t);if(i===60)return!1;if(i===62)break}let o=e.src.slice(r+1,t);if(Tn.test(o)){let i=e.md.normalizeLink(o);if(!e.md.validateLink(i))return!1;if(!u){let c=e.push("link_open","a",1);c.attrs=[["href",i]],c.markup="autolink",c.info="auto";let a=e.push("text","",0);a.content=e.md.normalizeLinkText(o);let s=e.push("link_close","a",-1);s.markup="autolink",s.info="auto"}return e.pos+=o.length+2,!0}if(Sn.test(o)){let i=e.md.normalizeLink("mailto:"+o);if(!e.md.validateLink(i))return!1;if(!u){let c=e.push("link_open","a",1);c.attrs=[["href",i]],c.markup="autolink",c.info="auto";let a=e.push("text","",0);a.content=e.md.normalizeLinkText(o);let s=e.push("link_close","a",-1);s.markup="autolink",s.info="auto"}return e.pos+=o.length+2,!0}return!1}function Mn(e){return/^\s]/i.test(e)}function Ln(e){return/^<\/a\s*>/i.test(e)}function In(e){let u=e|32;return u>=97&&u<=122}function Xu(e,u){if(!e.md.options.html)return!1;let t=e.posMax,r=e.pos;if(e.src.charCodeAt(r)!==60||r+2>=t)return!1;let n=e.src.charCodeAt(r+1);if(n!==33&&n!==63&&n!==47&&!In(n))return!1;let o=e.src.slice(r).match(f0);if(!o)return!1;if(!u){let i=e.push("html_inline","",0);i.content=o[0],Mn(i.content)&&e.linkLevel++,Ln(i.content)&&e.linkLevel--}return e.pos+=o[0].length,!0}var Rn=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,qn=/^&([a-z][a-z0-9]{1,31});/i;function Ju(e,u){let t=e.pos,r=e.posMax;if(e.src.charCodeAt(t)!==38||t+1>=r)return!1;if(e.src.charCodeAt(t+1)===35){let o=e.src.slice(t).match(Rn);if(o){if(!u){let i=o[1][0].toLowerCase()==="x"?parseInt(o[1].slice(1),16):parseInt(o[1],10),c=e.push("text_special","",0);c.content=ze(i)?fe(i):fe(65533),c.markup=o[0],c.info="entity"}return e.pos+=o[0].length,!0}}else{let o=e.src.slice(t).match(qn);if(o){let i=xe(o[0]);if(i!==o[0]){if(!u){let c=e.push("text_special","",0);c.content=i,c.markup=o[0],c.info="entity"}return e.pos+=o[0].length,!0}}}return!1}function x0(e){let u={},t=e.length;if(!t)return;let r=0,n=-2,o=[];for(let i=0;ia;s-=o[s]+1){let f=e[s];if(f.marker===c.marker&&f.open&&f.end<0){let m=!1;if((f.close||c.open)&&(f.length+c.length)%3===0&&(f.length%3!==0||c.length%3!==0)&&(m=!0),!m){let p=s>0&&!e[s-1].open?o[s-1]+1:0;o[i]=i-s+p,o[s]=p,c.open=!1,f.end=i,f.close=!1,d=-1,n=-2;break}}}d!==-1&&(u[c.marker][(c.open?3:0)+(c.length||0)%3]=d)}}function Ku(e){let u=e.tokens_meta,t=e.tokens_meta.length;x0(e.delimiters);for(let r=0;r0&&r++,n[u].type==="text"&&u+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;i||e.pos++,o[u]=e.pos};_e.prototype.tokenize=function(e){let u=this.ruler.getRules(""),t=u.length,r=e.posMax,n=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}}if(i){if(e.pos>=r)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};_e.prototype.parse=function(e,u,t,r){let n=new this.State(e,u,t,r);this.tokenize(n);let o=this.ruler2.getRules(""),i=o.length;for(let c=0;c|$))`,u.tpl_email_fuzzy=`(^|${t}|"|\\(|${u.src_ZCc})(${u.src_email_name}@${u.tpl_host_fuzzy_strict})`,u.tpl_link_fuzzy=`(^|(?![.:/\\-_@])(?:[$+<=>^\`|\uFF5C]|${u.src_ZPCc}))((?![$+<=>^\`|\uFF5C])${u.tpl_host_port_fuzzy_strict}${u.src_path})`,u.tpl_link_no_ip_fuzzy=`(^|(?![.:/\\-_@])(?:[$+<=>^\`|\uFF5C]|${u.src_ZPCc}))((?![$+<=>^\`|\uFF5C])${u.tpl_host_port_no_ip_fuzzy_strict}${u.src_path})`,u}function ut(e){return Array.prototype.slice.call(arguments,1).forEach(function(t){t&&Object.keys(t).forEach(function(r){e[r]=t[r]})}),e}function Ue(e){return Object.prototype.toString.call(e)}function Pn(e){return Ue(e)==="[object String]"}function Bn(e){return Ue(e)==="[object Object]"}function zn(e){return Ue(e)==="[object RegExp]"}function y0(e){return Ue(e)==="[object Function]"}function Nn(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var w0={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function $n(e){return Object.keys(e||{}).reduce(function(u,t){return u||w0.hasOwnProperty(t)},!1)}var On={"http:":{validate:function(e,u,t){let r=e.slice(u);return t.re.http||(t.re.http=new RegExp(`^\\/\\/${t.re.src_auth}${t.re.src_host_port_strict}${t.re.src_path}`,"i")),t.re.http.test(r)?r.match(t.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,u,t){let r=e.slice(u);return t.re.no_http||(t.re.no_http=new RegExp("^"+t.re.src_auth+`(?:localhost|(?:(?:${t.re.src_domain})\\.)+${t.re.src_domain_root})`+t.re.src_port+t.re.src_host_terminator+t.re.src_path,"i")),t.re.no_http.test(r)?u>=3&&e[u-3]===":"||u>=3&&e[u-3]==="/"?0:r.match(t.re.no_http)[0].length:0}},"mailto:":{validate:function(e,u,t){let r=e.slice(u);return t.re.mailto||(t.re.mailto=new RegExp(`^${t.re.src_email_name}@${t.re.src_host_strict}`,"i")),t.re.mailto.test(r)?r.match(t.re.mailto)[0].length:0}}},Hn="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",Un="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function jn(e){return function(u,t){let r=u.slice(t);return e.test(r)?r.match(e)[0].length:0}}function E0(){return function(e,u){u.normalize(e)}}function He(e){let u=e.re=_0(e.__opts__),t=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||t.push(Hn),t.push(u.src_xn),u.src_tlds=t.join("|");function r(c){return c.replace("%TLDS%",u.src_tlds)}u.email_fuzzy=RegExp(r(u.tpl_email_fuzzy),"i"),u.email_fuzzy_global=RegExp(r(u.tpl_email_fuzzy),"ig"),u.link_fuzzy=RegExp(r(u.tpl_link_fuzzy),"i"),u.link_fuzzy_global=RegExp(r(u.tpl_link_fuzzy),"ig"),u.link_no_ip_fuzzy=RegExp(r(u.tpl_link_no_ip_fuzzy),"i"),u.link_no_ip_fuzzy_global=RegExp(r(u.tpl_link_no_ip_fuzzy),"ig"),u.host_fuzzy_test=RegExp(r(u.tpl_host_fuzzy_test),"i");let n=[];e.__compiled__={};function o(c,a){throw new Error(`(LinkifyIt) Invalid schema "${c}": ${a}`)}Object.keys(e.__schemas__).forEach(function(c){let a=e.__schemas__[c];if(a===null)return;let s={validate:null,link:null};if(e.__compiled__[c]=s,Bn(a)){zn(a.validate)?s.validate=jn(a.validate):y0(a.validate)?s.validate=a.validate:o(c,a),y0(a.normalize)?s.normalize=a.normalize:a.normalize?o(c,a):s.normalize=E0();return}if(Pn(a)){n.push(c);return}o(c,a)}),n.forEach(function(c){e.__compiled__[e.__schemas__[c]]&&(e.__compiled__[c].validate=e.__compiled__[e.__schemas__[c]].validate,e.__compiled__[c].normalize=e.__compiled__[e.__schemas__[c]].normalize)}),e.__compiled__[""]={validate:null,normalize:E0()};let i=Object.keys(e.__compiled__).filter(function(c){return c.length>0&&e.__compiled__[c]}).map(Nn).join("|");e.re.schema_test=RegExp(`(^|(?!_)(?:[><\uFF5C]|${u.src_ZPCc}))(${i})`,"i"),e.re.schema_search=RegExp(`(^|(?!_)(?:[><\uFF5C]|${u.src_ZPCc}))(${i})`,"ig"),e.re.schema_at_start=RegExp(`^${e.re.schema_search.source}`,"i"),e.re.pretest=RegExp(`(${e.re.schema_test.source})|(${e.re.host_fuzzy_test.source})|@`,"i")}function C0(e,u,t,r){let n=e.slice(t,r);this.schema=u.toLowerCase(),this.index=t,this.lastIndex=r,this.raw=n,this.text=n,this.url=n}function P(e,u){if(!(this instanceof P))return new P(e,u);u||$n(e)&&(u=e,e={}),this.__opts__=ut({},w0,u),this.__schemas__=ut({},On,e),this.__compiled__={},this.__tlds__=Un,this.__tlds_replaced__=!1,this.re={},He(this)}P.prototype.add=function(u,t){return this.__schemas__[u]=t,He(this),this};P.prototype.set=function(u){return this.__opts__=ut(this.__opts__,u),this};P.prototype.test=function(u){if(!u.length)return!1;let t,r;if(this.re.schema_test.test(u)){for(r=this.re.schema_search,r.lastIndex=0;(t=r.exec(u))!==null;)if(this.testSchemaAt(u,t[2],r.lastIndex))return!0}return!!(this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&u.search(this.re.host_fuzzy_test)>=0&&u.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy)!==null||this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&u.indexOf("@")>=0&&u.match(this.re.email_fuzzy)!==null)};P.prototype.pretest=function(u){return this.re.pretest.test(u)};P.prototype.testSchemaAt=function(u,t,r){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(u,r,this):0};P.prototype.match=function(u){let t=[],r=[],n=[],o=[],i,c,a;function s(m,p){return m?p?m.index!==p.index?m.index=p.lastIndex?m:p:m:p}if(!u.length)return null;if(this.re.schema_test.test(u))for(a=this.re.schema_search,a.lastIndex=0;(i=a.exec(u))!==null;)c=this.testSchemaAt(u,i[2],a.lastIndex),c&&r.push({schema:i[2],index:i.index+i[1].length,lastIndex:i.index+i[0].length+c});if(this.__opts__.fuzzyLink&&this.__compiled__["http:"])for(a=this.__opts__.fuzzyIP?this.re.link_fuzzy_global:this.re.link_no_ip_fuzzy_global,a.lastIndex=0;(i=a.exec(u))!==null;)n.push({schema:"",index:i.index+i[1].length,lastIndex:i.index+i[0].length});if(this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"])for(a=this.re.email_fuzzy_global,a.lastIndex=0;(i=a.exec(u))!==null;)o.push({schema:"mailto:",index:i.index+i[1].length,lastIndex:i.index+i[0].length});let d=[0,0,0],f=0;for(;;){let m=[r[d[0]],o[d[1]],n[d[2]]],p=s(s(m[0],m[1]),m[2]);if(!p)break;if(p===m[0]?d[0]++:p===m[1]?d[1]++:d[2]++,p.index= 0x80 (not a basic code point)","invalid-input":"Invalid input"},tt=35,U=Math.floor,rt=String.fromCharCode;function K(e){throw new RangeError(Wn[e])}function Xn(e,u){let t=[],r=e.length;for(;r--;)t[r]=u(e[r]);return t}function v0(e,u){let t=e.split("@"),r="";t.length>1&&(r=t[0]+"@",e=t[1]),e=e.replace(Gn,".");let n=e.split("."),o=Xn(n,u).join(".");return r+o}function F0(e){let u=[],t=0,r=e.length;for(;t=55296&&n<=56319&&tString.fromCodePoint(...e),Kn=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:36},A0=function(e,u){return e+22+75*(e<26)-((u!=0)<<5)},S0=function(e,u,t){let r=0;for(e=t?U(e/700):e>>1,e+=U(e/u);e>tt*26>>1;r+=36)e=U(e/tt);return U(r+(tt+1)*e/(e+38))},T0=function(e){let u=[],t=e.length,r=0,n=128,o=72,i=e.lastIndexOf("-");i<0&&(i=0);for(let c=0;c=128&&K("not-basic"),u.push(e.charCodeAt(c));for(let c=i>0?i+1:0;c=t&&K("invalid-input");let m=Kn(e.charCodeAt(c++));m>=36&&K("invalid-input"),m>U((2147483647-r)/d)&&K("overflow"),r+=m*d;let p=f<=o?1:f>=o+26?26:f-o;if(mU(2147483647/l)&&K("overflow"),d*=l}let s=u.length+1;o=S0(r-a,s,a==0),U(r/s)>2147483647-n&&K("overflow"),n+=U(r/s),r%=s,u.splice(r++,0,n)}return String.fromCodePoint(...u)},M0=function(e){let u=[];e=F0(e);let t=e.length,r=128,n=0,o=72;for(let a of e)a<128&&u.push(rt(a));let i=u.length,c=i;for(i&&u.push("-");c=r&&dU((2147483647-n)/s)&&K("overflow"),n+=(a-r)*s,r=a;for(let d of e)if(d2147483647&&K("overflow"),d===r){let f=n;for(let m=36;;m+=36){let p=m<=o?1:m>=o+26?26:m-o;if(f=0))try{u.hostname=nt.toASCII(u.hostname)}catch{}return Fe(ae(u))}function io(e){let u=ge(e,!0);if(u.hostname&&(!u.protocol||q0.indexOf(u.protocol)>=0))try{u.hostname=nt.toUnicode(u.hostname)}catch{}return be(ae(u),be.defaultChars+"%")}function B(e,u){if(!(this instanceof B))return new B(e,u);u||Be(e)||(u=e||{},e="default"),this.inline=new k0,this.block=new h0,this.core=new n0,this.renderer=new Kt,this.linkify=new D0,this.validateLink=no,this.normalizeLink=oo,this.normalizeLinkText=io,this.utils=fu,this.helpers=de({},bu),this.options={},this.configure(e),u&&this.set(u)}B.prototype.set=function(e){return de(this.options,e),this};B.prototype.configure=function(e){let u=this;if(Be(e)){let t=e;if(e=uo[t],!e)throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&u.set(e.options),e.components&&Object.keys(e.components).forEach(function(t){e.components[t].rules&&u[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&u[t].ruler2.enableOnly(e.components[t].rules2)}),this};B.prototype.enable=function(e,u){let t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(n){t=t.concat(this[n].ruler.enable(e,!0))},this),t=t.concat(this.inline.ruler2.enable(e,!0));let r=e.filter(function(n){return t.indexOf(n)<0});if(r.length&&!u)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this};B.prototype.disable=function(e,u){let t=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(n){t=t.concat(this[n].ruler.disable(e,!0))},this),t=t.concat(this.inline.ruler2.disable(e,!0));let r=e.filter(function(n){return t.indexOf(n)<0});if(r.length&&!u)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this};B.prototype.use=function(e){let u=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,u),this};B.prototype.parse=function(e,u){if(typeof e!="string")throw new Error("Input data should be a String");let t=new this.core.State(e,this,u);return this.core.process(t),t.tokens};B.prototype.render=function(e,u){return u=u||{},this.renderer.render(this.parse(e,u),this.options,u)};B.prototype.parseInline=function(e,u){let t=new this.core.State(e,this,u);return t.inlineMode=!0,this.core.process(t),t.tokens};B.prototype.renderInline=function(e,u){return u=u||{},this.renderer.render(this.parseInline(e,u),this.options,u)};var ot=B;var O0=sr($0());var je=class{constructor(){A(this,"renderer");this.renderer=new ot({html:!0}),this.renderer.use(O0.default,{label:!0})}getRenderer(){return this.renderer}render(u){return this.renderer.render(u)}};function ko(e,u){return document.createElement(e,u)}function _o(e,u,t){return document.createElementNS(e,u,t)}function yo(){return ie(document.createDocumentFragment())}function Eo(e){return document.createTextNode(e)}function wo(e){return document.createComment(e)}function Co(e,u,t){if(W(e)){let r=e;for(;r&&W(r);)r=ie(r).parent;e=r??e}W(u)&&(u=ie(u,e)),t&&W(t)&&(t=ie(t).firstChildNode),e.insertBefore(u,t)}function Do(e,u){e.removeChild(u)}function Ao(e,u){W(u)&&(u=ie(u,e)),e.appendChild(u)}function H0(e){if(W(e)){for(;e&&W(e);)e=ie(e).parent;return e??null}return e.parentNode}function vo(e){var u;if(W(e)){let t=ie(e),r=H0(t);if(r&&t.lastChildNode){let n=Array.from(r.childNodes),o=n.indexOf(t.lastChildNode);return(u=n[o+1])!==null&&u!==void 0?u:null}return null}return e.nextSibling}function Fo(e){return e.tagName}function So(e,u){e.textContent=u}function To(e){return e.textContent}function Mo(e){return e.nodeType===1}function Lo(e){return e.nodeType===3}function Io(e){return e.nodeType===8}function W(e){return e.nodeType===11}function ie(e,u){var t,r,n;let o=e;return(t=o.parent)!==null&&t!==void 0||(o.parent=u??null),(r=o.firstChildNode)!==null&&r!==void 0||(o.firstChildNode=e.firstChild),(n=o.lastChildNode)!==null&&n!==void 0||(o.lastChildNode=e.lastChild),o}var Ve={createElement:ko,createElementNS:_o,createTextNode:Eo,createDocumentFragment:yo,createComment:wo,insertBefore:Co,removeChild:Do,appendChild:Ao,parentNode:H0,nextSibling:vo,tagName:Fo,setTextContent:So,getTextContent:To,isElement:Mo,isText:Lo,isComment:Io,isDocumentFragment:W};function X(e,u,t,r,n){let o=u===void 0?void 0:u.key;return{sel:e,data:u,children:t,text:r,elm:n,key:o}}var ct=Array.isArray;function U0(e){return typeof e=="string"||typeof e=="number"||e instanceof String||e instanceof Number}var at=X("",{},[],void 0,void 0);function ye(e,u){var t,r;let n=e.key===u.key,o=((t=e.data)===null||t===void 0?void 0:t.is)===((r=u.data)===null||r===void 0?void 0:r.is),i=e.sel===u.sel,c=!e.sel&&e.sel===u.sel?typeof e.text==typeof u.text:!0;return i&&n&&o&&c}function qo(){throw new Error("The document fragment is not supported on this platform.")}function Po(e,u){return e.isElement(u)}function Bo(e,u){return e.isDocumentFragment(u)}function zo(e,u,t){var r;let n={};for(let o=u;o<=t;++o){let i=(r=e[o])===null||r===void 0?void 0:r.key;i!==void 0&&(n[i]=o)}return n}var No=["create","update","remove","destroy","pre","post"];function st(e,u,t){let r={create:[],update:[],remove:[],destroy:[],pre:[],post:[]},n=u!==void 0?u:Ve;for(let l of No)for(let h of e){let b=h[l];b!==void 0&&r[l].push(b)}function o(l){let h=l.id?"#"+l.id:"",b=l.getAttribute("class"),x=b?"."+b.split(" ").join("."):"";return X(n.tagName(l).toLowerCase()+h+x,{},[],void 0,l)}function i(l){return X(void 0,{},[],void 0,l)}function c(l,h){return function(){if(--h===0){let x=n.parentNode(l);x!==null&&n.removeChild(x,l)}}}function a(l,h){var b,x,_,k,y;let g,E=l.data,w=E?.hook;(b=w?.init)===null||b===void 0||b.call(w,l);let C=l.children,D=l.sel;if(D==="!")(x=l.text)!==null&&x!==void 0||(l.text=""),l.elm=n.createComment(l.text);else if(D==="")l.elm=n.createTextNode(l.text);else if(D!==void 0){let F=D.indexOf("#"),S=D.indexOf(".",F),I=F>0?F:D.length,q=S>0?S:D.length,me=F!==-1||S!==-1?D.slice(0,Math.min(I,q)):D,j=E?.ns,Y=j===void 0?n.createElement(me,E):n.createElementNS(j,me,E);for(l.elm=Y,I0&&Y.setAttribute("class",D.slice(q+1).replace(/\./g," ")),g=0;gt.toUpperCase())}function Ee(e,u){var t;let r=u!==void 0?u:Ve,n;if(r.isElement(e)){let o=e.id?"#"+e.id:"",i=(t=e.getAttribute("class"))===null||t===void 0?void 0:t.match(/[^\t\r\n\f ]+/g),c=i?"."+i.join("."):"",a=r.tagName(e).toLowerCase()+o+c,s={},d={},f={},m=[],p,l,h,b=e.attributes,x=e.childNodes;for(l=0,h=b.length;l0&&(f.attrs=s),Object.keys(d).length>0&&(f.dataset=d),a.startsWith("svg")&&(a.length===3||a[3]==="."||a[3]==="#")&<(f,m,a),X(a,f,m,void 0,e)}else return r.isText(e)?(n=r.getTextContent(e),X(void 0,void 0,void 0,n,e)):r.isComment(e)?(n=r.getTextContent(e),X("!",{},[],n,e)):X("",{},[],void 0,e)}var Oo="http://www.w3.org/1999/xlink",Ho="http://www.w3.org/2000/xmlns/",Uo="http://www.w3.org/XML/1998/namespace";function j0(e,u){let t,r=u.elm,n=e.data.attrs,o=u.data.attrs;if(!(!n&&!o)&&n!==o){n=n||{},o=o||{};for(t in o){let i=o[t];n[t]!==i&&(i===!0?r.setAttribute(t,""):i===!1?r.removeAttribute(t):t.charCodeAt(0)!==120?r.setAttribute(t,i):t.charCodeAt(3)===58?r.setAttributeNS(Uo,t,i):t.charCodeAt(5)===58?t.charCodeAt(1)===109?r.setAttributeNS(Ho,t,i):r.setAttributeNS(Oo,t,i):r.setAttribute(t,i))}for(t in n)t in o||r.removeAttribute(t)}}var dt={create:j0,update:j0};var V0=/[A-Z]/g;function Z0(e,u){let t=u.elm,r=e.data.dataset,n=u.data.dataset,o;if(!r&&!n||r===n)return;r=r||{},n=n||{};let i=t.dataset;for(o in r)o in n||(i?o in i&&delete i[o]:t.removeAttribute("data-"+o.replace(V0,"-$&").toLowerCase()));for(o in n)r[o]!==n[o]&&(i?i[o]=n[o]:t.setAttribute("data-"+o.replace(V0,"-$&").toLowerCase(),n[o]))}var ft={create:Z0,update:Z0};var Ze;function jo(){return Ze||(Ze=st([dt,ft]),Ze)}function G0(e,u){let t=document.createElement("div");t.innerHTML=u,jo()(Ee(e),Ee(t))}var Ge=class{constructor(u){A(this,"editor");A(this,"container");A(this,"doc",null);A(this,"lastDisplayClick",0);this.editor=u,this.container=u.config.displayEl,this.container.contentDocument?.readyState==="complete"?this.onLoad():this.container.addEventListener("load",this.onLoad.bind(this)),this.updateVisibility(!!u.settings.get("showPreview")),u.settings.onChange("showPreview",t=>this.updateVisibility(!!t))}updateVisibility(u){let t=this.container.closest(".markdown-editor-wrap");t.style.display=u?"":"none"}onLoad(){this.doc=this.container.contentDocument,this.doc&&(this.loadStylesIntoDisplay(),this.doc.body.className="page-content",this.doc.addEventListener("click",this.onDisplayClick.bind(this)))}onDisplayClick(u){let t=Date.now()-this.lastDisplayClick<300,r=u.target.closest("a");if(r!==null){u.preventDefault();let o=r.getAttribute("href");o&&window.open(o);return}let n=u.target.closest("[drawio-diagram]");if(n!==null&&t){this.editor.actions.editDrawing(n);return}this.lastDisplayClick=Date.now()}loadStylesIntoDisplay(){if(!this.doc)return;this.doc.documentElement.classList.add("markdown-editor-display"),document.documentElement.classList.contains("dark-mode")&&(this.doc.documentElement.style.backgroundColor="#222",this.doc.documentElement.classList.add("dark-mode")),this.doc.head.innerHTML="";let u=document.head.querySelectorAll("style,link[rel=stylesheet]");for(let t of u){let r=t.cloneNode(!0);this.doc.head.appendChild(r)}}patchWithHtml(u){if(!this.doc)return;let{body:t}=this.doc;if(t.children.length===0){let n=document.createElement("div");this.doc.body.append(n)}let r=t.children[0];G0(r,u)}scrollToIndex(u){let t=this.doc?.body?.children[0]?.children;if(!t||t.length<=u)return;(u===-1?t[t.length-1]:t[u]).scrollIntoView({block:"start",inline:"nearest",behavior:"smooth"})}};function We(e){return new Promise((u,t)=>{e.oncomplete=e.onsuccess=()=>u(e.result),e.onabort=e.onerror=()=>t(e.error)})}function Vo(e,u){let t,r=()=>{if(t)return t;let n=indexedDB.open(e);return n.onupgradeneeded=()=>n.result.createObjectStore(u),t=We(n),t.then(o=>{o.onclose=()=>t=void 0},()=>{t=void 0}),t};return(n,o)=>r().then(i=>o(i.transaction(u,n).objectStore(u)))}var pt;function ht(){return pt||(pt=Vo("keyval-store","keyval")),pt}function mt(e,u=ht()){return u("readonly",t=>We(t.get(e)))}function bt(e,u,t=ht()){return t("readwrite",r=>(r.put(u,e),We(r.transaction)))}function gt(e,u=ht()){return u("readwrite",t=>(t.delete(e),We(t.transaction)))}var Xe=class extends Error{constructor(t,r){super(t.statusText);A(this,"data");A(this,"headers");A(this,"original");A(this,"redirected");A(this,"status");A(this,"statusText");A(this,"url");this.data=r,this.headers=t.headers,this.redirected=t.redirected,this.status=t.status,this.statusText=t.statusText,this.url=t.url,this.original=t}};var $=null,_t,Je,xt,kt="last-drawing-save";function yt(e){$?.contentWindow?.postMessage(JSON.stringify(e),_t)}function Go(e){bt(kt,e.data),xt&&xt(e.data).then(()=>{gt(kt)})}function Wo(e){yt({action:"export",format:"xmlpng",xml:e.xml,spin:"Updating drawing"})}function Xo(){Je&&Je().then(e=>{yt({action:"load",autosave:1,xml:e})})}function Jo(){let e={};$&&(window.$events.emitPublic($,"editor-drawio::configure",{config:e}),yt({action:"configure",config:e}))}function W0(){window.removeEventListener("message",X0),$&&document.body.removeChild($)}function X0(e){if(!e.data||e.data.length<1||e.origin!==_t)return;let u=JSON.parse(e.data);u.event==="init"?Xo():u.event==="exit"?W0():u.event==="save"?Wo(u):u.event==="export"?Go(u):u.event==="configure"&&Jo()}async function Ko(){let e=await mt(kt),u=document.getElementById("unsaved-drawing-dialog");u||console.error("Missing expected unsaved-drawing dialog"),e&&u&&await window.$components.firstOnElement(u,"confirm-dialog").show()&&(Je=async()=>e)}async function Et(e,u,t){Je=u,xt=t,await Ko(),$=document.createElement("iframe"),$.setAttribute("frameborder","0"),window.addEventListener("message",X0),$.setAttribute("src",e),$.setAttribute("class","fullscreen"),$.style.backgroundColor="#FFFFFF",document.body.appendChild($),_t=new URL(e).origin}function Ke(){W0()}async function J0(e){try{return`data:image/png;base64,${(await window.$http.get(window.baseUrl(`/images/drawio/base64/${e}`))).data.content}`}catch(u){throw u instanceof Xe&&window.$events.showResponseError(u),Ke(),u}}var T,wt,ce,Ct,Dt,Ye,Qe=class{constructor(u){St(this,T);A(this,"editor");A(this,"lastContent",{html:"",markdown:""});this.editor=u}updateAndRender(){let u=this.editor.input.getText();this.editor.config.inputEl.value=u;let t=this.editor.markdown.render(u);window.$events.emit("editor-html-change",""),window.$events.emit("editor-markdown-change",""),this.lastContent.html=t,this.lastContent.markdown=u,this.editor.display.patchWithHtml(t)}getContent(){return this.lastContent}showImageInsert(){window.$components.first("image-manager").show(t=>{let r=t.thumbs?.display||t.url,o=`[![${this.editor.input.getSelectionText()||t.name}](${r})](${t.url})`;R(this,T,ce).call(this,o,o.length)},"gallery")}insertImage(){let u=`![${this.editor.input.getSelectionText()}](http://)`;R(this,T,ce).call(this,u,u.length-1)}insertLink(){let u=this.editor.input.getSelectionText(),t=`[${u}]()`,r=u===""?-3:-1;R(this,T,ce).call(this,t,t.length+r)}showImageManager(){let u=this.editor.input.getSelection();window.$components.first("image-manager").show(r=>{R(this,T,wt).call(this,r,u)},"drawio")}showLinkSelector(){let u=this.editor.input.getSelection(),t=window.$components.first("entity-selector-popup"),r=this.editor.input.getSelectionText(u);t.show(n=>{let i=`[${r||n.name}](${n.link})`;R(this,T,ce).call(this,i,i.length,u)},{initialValue:r,searchEndpoint:"/search/entity-selector",entityTypes:"page,book,chapter,bookshelf",entityPermission:"view"})}startDrawing(){let u=this.editor.config.drawioUrl;if(!u)return;let t=this.editor.input.getSelection();Et(u,()=>Promise.resolve(""),async r=>{let n={image:r,uploaded_to:Number(this.editor.config.pageId)};try{let o=await window.$http.post("/images/drawio",n);R(this,T,wt).call(this,o.data,t),Ke()}catch(o){throw this.handleDrawingUploadError(o),new Error(`Failed to save image with error: ${o}`)}})}editDrawing(u){let{drawioUrl:t}=this.editor.config;if(!t)return;let r=this.editor.input.getSelection(),n=u.getAttribute("drawio-diagram")||"";n&&Et(t,()=>J0(n),async o=>{let i={image:o,uploaded_to:Number(this.editor.config.pageId)};try{let a=(await window.$http.post("/images/drawio",i)).data,s=`
    `,d=this.editor.input.getText().split(` +`).map(f=>f.indexOf(`drawio-diagram="${n}"`)!==-1?s:f).join(` +`);this.editor.input.setText(d,r),Ke()}catch(c){throw this.handleDrawingUploadError(c),new Error(`Failed to save image with error: ${c}`)}})}handleDrawingUploadError(u){u.status===413?window.$events.emit("error",this.editor.config.text.serverUploadLimit):window.$events.emit("error",this.editor.config.text.imageUploadError),console.error(u)}fullScreen(){let{container:u}=this.editor.config,t=u.classList.contains("fullscreen");u.classList.toggle("fullscreen",!t),document.body.classList.toggle("markdown-fullscreen",!t)}scrollToText(u){if(!u)return;let t=this.editor.input.searchForLineContaining(u);t&&(this.editor.input.setSelection(t,!0),this.editor.input.focus())}focus(){this.editor.input.focus()}focusOnHeader(u){let t=/^\s{0,3}(#+|])/i,r=/^\s{0,3}```/i,n=-1,o=!1;this.editor.input.forEachLine((i,c,a)=>{if(t.test(c)&&!o){if(n++,n===u)return this.editor.input.setSelection({from:a.to,to:a.to},!0),!1}else r.test(c)&&(o=!o)}),this.focus()}insertContent(u){R(this,T,ce).call(this,u,u.length)}prependContent(u){u=R(this,T,Ct).call(this,u);let r=this.editor.input.getSelection().from+u.length+1;this.editor.input.spliceText(0,0,`${u} +`,{from:r}),this.editor.input.focus()}appendContent(u){u=R(this,T,Ct).call(this,u),this.editor.input.appendText(u),this.editor.input.focus()}replaceContent(u){this.editor.input.setText(u)}replaceLineStart(u){let t=this.editor.input.getSelection(),r=this.editor.input.getLineRangeFromPosition(t.from),n=this.editor.input.getSelectionText(r),o=n.split(" ")[0];if(o===u){let s=n.replace(`${u} `,""),d=t.from+(s.length-n.length);this.editor.input.spliceText(r.from,r.to,s,{from:d});return}let i=n;/^[#>`]/.test(o)?i=n.replace(o,u).trim():u!==""&&(i=`${u} ${n}`);let a=t.from+(i.length-n.length);this.editor.input.spliceText(r.from,r.to,i,{from:a})}wrapSelection(u,t){let r=this.editor.input.getSelection(),n=this.editor.input.getSelectionText(r);if(!n){R(this,T,Ye).call(this,u,t);return}let o,i={from:r.from,to:r.to};n.startsWith(u)&&n.endsWith(t)?(o=n.slice(u.length,n.length-t.length),i.to=r.to-(u.length+t.length)):(o=`${u}${n}${t}`,i.to=r.to+(u.length+t.length)),this.editor.input.spliceText(r.from,r.to,o,i)}replaceLineStartForOrderedList(){let u=this.editor.input.getSelection(),t=this.editor.input.getLineRangeFromPosition(u.from),r=this.editor.input.getLineRangeFromPosition(t.from-1),o=this.editor.input.getSelectionText(r).match(/^(\s*)(\d)([).])\s/)||[],i=(Number(o[2])||0)+1,c=o[1]||"",a=o[3]||".",s=`${c}${i}${a}`;return this.replaceLineStart(s)}cycleCalloutTypeAtSelection(){let u=this.editor.input.getSelection(),t=this.editor.input.getLineRangeFromPosition(u.from),r=this.editor.input.getSelectionText(t),n=["info","success","warning","danger"],o=n.join("|"),c=new RegExp(`class="((${o})\\s+callout|callout\\s+(${o}))"`,"i").exec(r),a=(c?c[2]||c[3]:"").toLowerCase();if(a===n[n.length-1])R(this,T,Ye).call(this,`

    `,"

    ");else if(a==="")R(this,T,Ye).call(this,'

    ',"

    ");else if(c){let s=n.indexOf(a)+1,d=n[s],f=r.replace(c[0],c[0].replace(a,d)),m=f.length-r.length,p=Math.min(u.from,u.to),l=Math.max(u.from,u.to);this.editor.input.spliceText(t.from,t.to,f,{from:p+m,to:l+m})}}syncDisplayPosition(u){let t=u.target;if(Math.abs(t.scrollHeight-t.clientHeight-t.scrollTop)<1){this.editor.display.scrollToIndex(-1);return}let n=this.editor.input.getTextAboveView(),c=new DOMParser().parseFromString(this.editor.markdown.render(n),"text/html").documentElement.querySelectorAll("body > *");this.editor.display.scrollToIndex(c.length)}async insertTemplate(u,t){let r=this.editor.input.eventToPosition(t).from,n=(await window.$http.get(`/templates/${u}`)).data,o=n.markdown||n.html;this.editor.input.spliceText(r,r,o,{from:r})}insertClipboardImages(u,t){let r=this.editor.input.eventToPosition(t).from;for(let n of u)this.uploadImage(n,r)}async uploadImage(u,t=null){if(u===null||u.type.indexOf("image")!==0)return;let r="png";if(t===null&&(t=this.editor.input.getSelection().from),u.name){let s=u.name.match(/\.(.+)$/);s&&s.length>1&&(r=s[1])}let n=`image-${Math.random().toString(16).slice(2)}`,i=`![](${window.baseUrl(`/loading.gif#upload${n}`)})`;this.editor.input.spliceText(t,t,i,{from:t});let c=`image-${Date.now()}.${r}`,a=new FormData;a.append("file",u,c),a.append("uploaded_to",this.editor.config.pageId);try{let s=(await window.$http.post("/images/gallery",a)).data,d=`[![](${s.thumbs.display})](${s.url})`;R(this,T,Dt).call(this,i,d)}catch(s){window.$events.error(s?.data?.message||this.editor.config.text.imageUploadError),R(this,T,Dt).call(this,i,""),console.error(s)}}};T=new WeakSet,wt=function(u,t){let r=`
    `;R(this,T,ce).call(this,r,r.length,t)},ce=function(u,t=0,r=null){r=r||this.editor.input.getSelection();let n=r.from+t;this.editor.input.spliceText(r.from,r.to,u,{from:n,to:n}),this.editor.input.focus()},Ct=function(u){return u.replace(/\r\n|\r/g,` +`)},Dt=function(u,t){let r=this.editor.input.getText().replace(u,t);this.editor.input.setText(r)},Ye=function(u,t){let r=this.editor.input.getSelection(),n=this.editor.input.getLineRangeFromPosition(r.from),o=this.editor.input.getSelectionText(n),i,c;o.startsWith(u)&&o.endsWith(t)?(i=o.slice(u.length,o.length-t.length),c=-u.length):(i=`${u}${o}${t}`,c=u.length),this.editor.input.spliceText(n.from,n.to,i,{from:r.from+c})};var eu=class{constructor(u){A(this,"changeListeners",{});A(this,"settingMap",{scrollSync:!0,showPreview:!0,editorWidth:50,plainEditor:!1});this.loadFromLocalStorage(),this.applyToInputs(u),this.listenToInputChanges(u)}applyToInputs(u){for(let t of u){let r=t.getAttribute("name")?.replace("md-","");if(r&&r in this.settingMap){let n=this.settingMap[r];typeof n=="boolean"?t.checked=n:t.value=n.toString()}}}listenToInputChanges(u){for(let t of u)t.addEventListener("change",()=>{let r=t.getAttribute("name")?.replace("md-","");if(r&&r in this.settingMap){let n=t.type==="checkbox"?t.checked:Number(t.value);this.set(r,n)}})}loadFromLocalStorage(){let u=window.localStorage.getItem("md-editor-settings");if(u)try{let t=JSON.parse(u);for(let[r,n]of Object.entries(t))n!=null&&r in this.settingMap&&(this.settingMap[r]=n)}catch(t){console.warn("Failed to parse settings from localStorage:",t)}}set(u,t){this.settingMap[u]=t,window.localStorage.setItem("md-editor-settings",JSON.stringify(this.settingMap));let r=this.changeListeners[u]||[];for(let n of r)n(t)}get(u){return this.settingMap[u]??null}onChange(u,t){let r=this.changeListeners[u]||[];r.push(t),this.changeListeners[u]=r}};function uu({html:e,markdown:u}){return u||e}function K0(e){window.$events.listen("editor::replace",u=>{let t=uu(u);e.actions.replaceContent(t)}),window.$events.listen("editor::append",u=>{let t=uu(u);e.actions.appendContent(t)}),window.$events.listen("editor::prepend",u=>{let t=uu(u);e.actions.prependContent(t)}),window.$events.listen("editor::insert",u=>{let t=uu(u);e.actions.insertContent(t)}),window.$events.listen("editor::focus",()=>{e.actions.focus()}),window.$events.listen("editor::focus-heading",({index:u})=>{e.actions.focusOnHeader(u)})}function Qo(e){let u=[],t=r=>()=>(r(),!0);for(let[r,n]of Object.entries(e))u.push({key:r,run:t(n),preventDefault:!0});return u}async function Y0(e,u,t,r){let n=await window.importVersioned("code");function o(c){c.docChanged&&r()}let i=n.markdownEditor(e,o,t,Qo(u));return window.mdEditorView=i,i}var tu=class{constructor(u){A(this,"cm");this.cm=u}teardown(){this.cm.destroy()}focus(){this.cm.hasFocus||this.cm.focus()}getSelection(){return this.cm.state.selection.main}getSelectionText(u){return u=u||this.getSelection(),this.cm.state.sliceDoc(u.from,u.to)}setSelection(u,t=!1){this.cm.dispatch({selection:{anchor:u.from,head:u.to},scrollIntoView:t})}getText(){return this.cm.state.doc.toString()}getTextAboveView(){let u=this.cm.lineBlockAtHeight(this.cm.scrollDOM.scrollTop);return this.cm.state.sliceDoc(0,u.from)}setText(u,t){t=t||this.getSelection();let r=this.cm.state.toText(u),n=Math.min(t.from,r.length),o=this.cm.scrollDOM.scrollTop;this.dispatchChange(0,this.cm.state.doc.length,u,n),this.focus(),window.requestAnimationFrame(()=>{this.cm.scrollDOM.scrollTop=o})}spliceText(u,t,r,n=null){let o=n?.from===n?.to?null:n?.to;this.dispatchChange(u,t,r,n?.from,o)}appendText(u){let t=this.cm.state.doc.length;this.dispatchChange(t,t,` +${u}`)}getLineText(u=-1){let t=u>-1?u:this.getSelection().from;return this.cm.state.doc.lineAt(t).text}eventToPosition(u){let t=this.cm.posAtCoords({x:u.screenX,y:u.screenY},!1);return{from:t,to:t}}getLineRangeFromPosition(u){let t=this.cm.state.doc.lineAt(u);return{from:t.from,to:t.to}}searchForLineContaining(u){let t=this.cm.state.doc,r=1,n=-1;for(let i of t.iterLines()){if(i.includes(u)){n=r;break}r+=1}if(n===-1)return null;let o=t.line(n);return{from:o.from,to:o.to}}forEachLine(u){let t=this.cm.state.doc,r=0;for(let n of t.iterLines()){r++;let o=t.line(r);if(u(r,n,{from:o.from,to:o.to})===!1)break}}dispatchChange(u,t=null,r=null,n=null,o=null){let i={from:u};t&&(i.to=t),r&&(i.insert=r);let c={changes:i};n&&(c.selection={anchor:n},o&&(c.selection.head=o)),this.cm.dispatch(c)}};function ru(e,u,t){let r=null;return function(...o){let i=this,c=function(){r=null,t||e.apply(i,o)},a=t&&!r;r&&clearTimeout(r),r=window.setTimeout(c,u),a&&e.apply(i,o)}}var At=class{constructor(){A(this,"onChangeDebounced");A(this,"stack",[]);A(this,"pointer",-1);A(this,"lastActionTime",0);this.onChangeDebounced=ru(this.onChange,1e3,!1)}undo(){return this.pointer<1?null:(this.lastActionTime=Date.now(),this.pointer-=1,this.stack[this.pointer])}redo(){return this.pointer===this.stack.length-1?null:(this.lastActionTime=Date.now(),this.pointer++,this.stack[this.pointer])}push(u){Date.now()-this.lastActionTime<100||this.onChangeDebounced(u)}onChange(u){this.pointer!==this.stack.length-1&&(this.stack=this.stack.slice(0,this.pointer)),this.stack.push(u()),this.stack.length>50&&(this.stack=this.stack.slice(this.stack.length-50)),this.pointer=this.stack.length-1}},nu=class{constructor(u,t,r,n){A(this,"input");A(this,"shortcuts");A(this,"events");A(this,"onChange");A(this,"eventController",new AbortController);A(this,"undoStack",new At);A(this,"textSizeCache",null);this.input=u,this.shortcuts=t,this.events=r,this.onChange=n,this.onKeyDown=this.onKeyDown.bind(this),this.configureLocalShortcuts(),this.configureListeners(),this.input.style.removeProperty("display"),this.undoStack.push(()=>({content:this.getText(),selection:this.getSelection()}))}teardown(){this.eventController.abort("teardown")}configureLocalShortcuts(){this.shortcuts["Mod-z"]=()=>{let u=this.undoStack.undo();u&&(this.setText(u.content),this.setSelection(u.selection,!1))},this.shortcuts["Mod-y"]=()=>{let u=this.undoStack.redo();u&&(this.setText(u.content),this.setSelection(u.selection,!1))}}configureListeners(){this.input.addEventListener("keydown",this.onKeyDown,{signal:this.eventController.signal});for(let[u,t]of Object.entries(this.events))this.input.addEventListener(u,t,{signal:this.eventController.signal});this.input.addEventListener("input",()=>{this.onChange(),this.undoStack.push(()=>({content:this.input.value,selection:this.getSelection()}))},{signal:this.eventController.signal})}onKeyDown(u){let t=navigator.platform.startsWith("Mac")||navigator.platform==="iPhone",r=u.key.length>1?u.key:u.key.toLowerCase(),o=[u.shiftKey?"Shift":null,t&&u.metaKey?"Mod":null,!t&&u.ctrlKey?"Mod":null,r].filter(Boolean).join("-");this.shortcuts[o]&&(u.preventDefault(),this.shortcuts[o]())}appendText(u){this.input.value+=` +${u}`,this.input.dispatchEvent(new Event("input"))}eventToPosition(u){let t=this.mouseEventToTextRelativeCoords(u);return this.inputPositionToSelection(t.x,t.y)}focus(){this.input.focus()}getLineRangeFromPosition(u){let t=this.getText().split(` +`),r=0;for(let n=0;n-1?this.getLineRangeFromPosition(t):null}forEachLine(u){let t=this.getText().split(` +`),r=0;for(let n=0;nt){let m=Math.floor(u/r.x),p=Math.min(c+s+m,c+a.length);return{from:p,to:p}}s+=n}c+=a.length+1}return this.getSelection()}};function Q0(e){let u={};return u["Shift-Mod-i"]=()=>e.actions.insertImage(),u["Mod-s"]=()=>window.$events.emit("editor-save-draft"),u["Mod-Enter"]=()=>window.$events.emit("editor-save-page"),u["Shift-Mod-k"]=()=>e.actions.showLinkSelector(),u["Mod-k"]=()=>e.actions.insertLink(),u["Mod-1"]=()=>e.actions.replaceLineStart("##"),u["Mod-2"]=()=>e.actions.replaceLineStart("###"),u["Mod-3"]=()=>e.actions.replaceLineStart("####"),u["Mod-4"]=()=>e.actions.replaceLineStart("#####"),u["Mod-5"]=()=>e.actions.replaceLineStart(""),u["Mod-d"]=()=>e.actions.replaceLineStart(""),u["Mod-6"]=()=>e.actions.replaceLineStart(">"),u["Mod-q"]=()=>e.actions.replaceLineStart(">"),u["Mod-7"]=()=>e.actions.wrapSelection("\n```\n","\n```"),u["Mod-8"]=()=>e.actions.wrapSelection("`","`"),u["Shift-Mod-e"]=()=>e.actions.wrapSelection("`","`"),u["Mod-9"]=()=>e.actions.cycleCalloutTypeAtSelection(),u["Mod-p"]=()=>e.actions.replaceLineStart("-"),u["Mod-o"]=()=>e.actions.replaceLineStartForOrderedList(),u}var we=class{constructor(u){A(this,"data");this.data=u}hasItems(){return!!this.data&&!!this.data.types&&this.data.types.length>0}containsTabularData(){let u=this.data.getData("text/rtf");return!!u&&u.includes("\\trowd")}getImages(){return this.getFiles().filter(u=>u.type.includes("image"))}getFiles(){let{files:u}=this.data;return[...u]}};function er(e){let u=ru(e.actions.syncDisplayPosition.bind(e.actions),100,!1),t=e.settings.get("scrollSync");return e.settings.onChange("scrollSync",r=>{t=r}),{scroll:r=>t&&u(r),drop:r=>{if(!r.dataTransfer)return;let n=r.dataTransfer.getData("bookstack/template");n&&(r.preventDefault(),e.actions.insertTemplate(n,r));let i=new we(r.dataTransfer).getImages();i.length>0&&(r.stopPropagation(),r.preventDefault(),e.actions.insertClipboardImages(i,r))},dragover:r=>{r.preventDefault()},paste:r=>{if(!r.clipboardData)return;let n=new we(r.clipboardData);if(!n.hasItems()||n.containsTabularData())return;let o=n.getImages();for(let i of o)e.actions.uploadImage(i)}}}async function Cl(e){let u={config:e,markdown:new je,settings:new eu(e.settingInputs)};u.actions=new Qe(u),u.display=new Ge(u);let t=er(u),r=Q0(u),n=()=>u.actions.updateAndRender(),o=async()=>{let a=await Y0(e.inputEl,r,t,n);return new tu(a)},i=async()=>new nu(e.inputEl,r,t,n),c=!!u.settings.get("plainEditor");return u.input=await(c?i():o()),u.settings.onChange("plainEditor",async a=>{let d=await(!!a?i():o());u.input.teardown(),u.input=d}),K0(u),u}export{Cl as init}; +//# sourceMappingURL=markdown.js.map diff --git a/public/dist/styles.css b/public/dist/styles.css new file mode 100644 index 00000000000..ea18bfd28db --- /dev/null +++ b/public/dist/styles.css @@ -0,0 +1 @@ +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after{content:"";content:none}q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}.dummy-style{color:red}:root{--font-body: -apple-system, BlinkMacSystemFont, Segoe UI, Oxygen, Ubuntu, Roboto, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;--font-code: Lucida Console, DejaVu Sans Mono, Ubuntu Mono, Monaco, monospace;--color-primary: #206ea7;--color-primary-light: rgba(32,110,167,0.15);--color-link: #206ea7;--color-page: #206ea7;--color-page-draft: #7e50b1;--color-chapter: #af4d0d;--color-book: #077b70;--color-bookshelf: #a94747;--color-positive: #0f7d15;--color-negative: #ab0f0e;--color-info: #0288D1;--color-warning: #cf4d03;--bg-disabled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='100%25' width='100%25'%3E%3Cdefs%3E%3Cpattern id='doodad' width='19' height='19' viewBox='0 0 40 40' patternUnits='userSpaceOnUse' patternTransform='rotate(143)'%3E%3Crect width='100%25' height='100%25' fill='rgba(42, 67, 101,0)'/%3E%3Cpath d='M-10 30h60v20h-60zM-10-10h60v20h-60' fill='rgba(26, 32, 44,0)'/%3E%3Cpath d='M-10 10h60v20h-60zM-10-30h60v20h-60z' fill='rgba(0, 0, 0,0.05)'/%3E%3C/pattern%3E%3C/defs%3E%3Crect fill='url(%23doodad)' height='200%25' width='200%25'/%3E%3C/svg%3E")}:root.dark-mode{--bg-disabled: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='100%25' width='100%25'%3E%3Cdefs%3E%3Cpattern id='doodad' width='19' height='19' viewBox='0 0 40 40' patternUnits='userSpaceOnUse' patternTransform='rotate(143)'%3E%3Crect width='100%25' height='100%25' fill='rgba(42, 67, 101,0)'/%3E%3Cpath d='M-10 30h60v20h-60zM-10-10h60v20h-60' fill='rgba(26, 32, 44,0)'/%3E%3Cpath d='M-10 10h60v20h-60zM-10-30h60v20h-60z' fill='rgba(255, 255, 255,0.05)'/%3E%3C/pattern%3E%3C/defs%3E%3Crect fill='url(%23doodad)' height='200%25' width='200%25'/%3E%3C/svg%3E");color-scheme:only dark;--color-positive: #4aa850;--color-negative: #e85c5b;--color-warning: #de8a5a}:root:not(.dark-mode){color-scheme:only light}.m-none{margin:0 !important}.mx-none{margin-inline-start:0 !important;margin-inline-end:0 !important}.my-none{margin-top:0 !important;margin-bottom:0 !important}.mt-none{margin-top:0 !important}.mr-none{margin-inline-end:0 !important}.mb-none{margin-bottom:0 !important}.ml-none{margin-inline-start:0 !important}.m-xxs{margin:3px !important}.mx-xxs{margin-inline-start:3px !important;margin-inline-end:3px !important}.my-xxs{margin-top:3px !important;margin-bottom:3px !important}.mt-xxs{margin-top:3px !important}.mr-xxs{margin-inline-end:3px !important}.mb-xxs{margin-bottom:3px !important}.ml-xxs{margin-inline-start:3px !important}.m-xs{margin:6px !important}.mx-xs{margin-inline-start:6px !important;margin-inline-end:6px !important}.my-xs{margin-top:6px !important;margin-bottom:6px !important}.mt-xs{margin-top:6px !important}.mr-xs{margin-inline-end:6px !important}.mb-xs{margin-bottom:6px !important}.ml-xs{margin-inline-start:6px !important}.m-s{margin:12px !important}.mx-s{margin-inline-start:12px !important;margin-inline-end:12px !important}.my-s{margin-top:12px !important;margin-bottom:12px !important}.mt-s{margin-top:12px !important}.mr-s{margin-inline-end:12px !important}.mb-s{margin-bottom:12px !important}.ml-s{margin-inline-start:12px !important}.m-m{margin:16px !important}.mx-m{margin-inline-start:16px !important;margin-inline-end:16px !important}.my-m{margin-top:16px !important;margin-bottom:16px !important}.mt-m{margin-top:16px !important}.mr-m{margin-inline-end:16px !important}.mb-m{margin-bottom:16px !important}.ml-m{margin-inline-start:16px !important}.m-l{margin:24px !important}.mx-l{margin-inline-start:24px !important;margin-inline-end:24px !important}.my-l{margin-top:24px !important;margin-bottom:24px !important}.mt-l{margin-top:24px !important}.mr-l{margin-inline-end:24px !important}.mb-l{margin-bottom:24px !important}.ml-l{margin-inline-start:24px !important}.m-xl{margin:32px !important}.mx-xl{margin-inline-start:32px !important;margin-inline-end:32px !important}.my-xl{margin-top:32px !important;margin-bottom:32px !important}.mt-xl{margin-top:32px !important}.mr-xl{margin-inline-end:32px !important}.mb-xl{margin-bottom:32px !important}.ml-xl{margin-inline-start:32px !important}.m-xxl{margin:48px !important}.mx-xxl{margin-inline-start:48px !important;margin-inline-end:48px !important}.my-xxl{margin-top:48px !important;margin-bottom:48px !important}.mt-xxl{margin-top:48px !important}.mr-xxl{margin-inline-end:48px !important}.mb-xxl{margin-bottom:48px !important}.ml-xxl{margin-inline-start:48px !important}.m-auto{margin:auto !important}.mx-auto{margin-inline-start:auto !important;margin-inline-end:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-inline-end:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-inline-start:auto !important}.p-none{padding:0 !important}.px-none{padding-inline-start:0 !important;padding-inline-end:0 !important}.py-none{padding-top:0 !important;padding-bottom:0 !important}.pt-none{padding-top:0 !important}.pr-none{padding-inline-end:0 !important}.pb-none{padding-bottom:0 !important}.pl-none{padding-inline-start:0 !important}.p-xxs{padding:3px !important}.px-xxs{padding-inline-start:3px !important;padding-inline-end:3px !important}.py-xxs{padding-top:3px !important;padding-bottom:3px !important}.pt-xxs{padding-top:3px !important}.pr-xxs{padding-inline-end:3px !important}.pb-xxs{padding-bottom:3px !important}.pl-xxs{padding-inline-start:3px !important}.p-xs{padding:6px !important}.px-xs{padding-inline-start:6px !important;padding-inline-end:6px !important}.py-xs{padding-top:6px !important;padding-bottom:6px !important}.pt-xs{padding-top:6px !important}.pr-xs{padding-inline-end:6px !important}.pb-xs{padding-bottom:6px !important}.pl-xs{padding-inline-start:6px !important}.p-s{padding:12px !important}.px-s{padding-inline-start:12px !important;padding-inline-end:12px !important}.py-s{padding-top:12px !important;padding-bottom:12px !important}.pt-s{padding-top:12px !important}.pr-s{padding-inline-end:12px !important}.pb-s{padding-bottom:12px !important}.pl-s{padding-inline-start:12px !important}.p-m{padding:16px !important}.px-m{padding-inline-start:16px !important;padding-inline-end:16px !important}.py-m{padding-top:16px !important;padding-bottom:16px !important}.pt-m{padding-top:16px !important}.pr-m{padding-inline-end:16px !important}.pb-m{padding-bottom:16px !important}.pl-m{padding-inline-start:16px !important}.p-l{padding:24px !important}.px-l{padding-inline-start:24px !important;padding-inline-end:24px !important}.py-l{padding-top:24px !important;padding-bottom:24px !important}.pt-l{padding-top:24px !important}.pr-l{padding-inline-end:24px !important}.pb-l{padding-bottom:24px !important}.pl-l{padding-inline-start:24px !important}.p-xl{padding:32px !important}.px-xl{padding-inline-start:32px !important;padding-inline-end:32px !important}.py-xl{padding-top:32px !important;padding-bottom:32px !important}.pt-xl{padding-top:32px !important}.pr-xl{padding-inline-end:32px !important}.pb-xl{padding-bottom:32px !important}.pl-xl{padding-inline-start:32px !important}.p-xxl{padding:48px !important}.px-xxl{padding-inline-start:48px !important;padding-inline-end:48px !important}.py-xxl{padding-top:48px !important;padding-bottom:48px !important}.pt-xxl{padding-top:48px !important}.pr-xxl{padding-inline-end:48px !important}.pb-xxl{padding-bottom:48px !important}.pl-xxl{padding-inline-start:48px !important}.p-auto{padding:auto !important}.px-auto{padding-inline-start:auto !important;padding-inline-end:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-inline-end:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-inline-start:auto !important}.gap-none{gap:0 !important}.gap-x-none{column-gap:0 !important}.gap-y-none{row-gap:0 !important}.gap-xxs{gap:3px !important}.gap-x-xxs{column-gap:3px !important}.gap-y-xxs{row-gap:3px !important}.gap-xs{gap:6px !important}.gap-x-xs{column-gap:6px !important}.gap-y-xs{row-gap:6px !important}.gap-s{gap:12px !important}.gap-x-s{column-gap:12px !important}.gap-y-s{row-gap:12px !important}.gap-m{gap:16px !important}.gap-x-m{column-gap:16px !important}.gap-y-m{row-gap:16px !important}.gap-l{gap:24px !important}.gap-x-l{column-gap:24px !important}.gap-y-l{row-gap:24px !important}.gap-xl{gap:32px !important}.gap-x-xl{column-gap:32px !important}.gap-y-xl{row-gap:32px !important}.gap-xxl{gap:48px !important}.gap-x-xxl{column-gap:48px !important}.gap-y-xxl{row-gap:48px !important}.gap-auto{gap:auto !important}.gap-x-auto{column-gap:auto !important}.gap-y-auto{row-gap:auto !important}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}*{box-sizing:border-box;outline-color:var(--color-primary);outline-width:1px}*:focus{outline-style:dotted}html{height:100%;overflow-y:scroll;background-color:#f2f2f2}html.flexbox{overflow-y:hidden}html.dark-mode{background-color:#111}body{font-size:14px;line-height:1.6;color:#444}html.dark-mode body{color:#aaa}body{-webkit-font-smoothing:antialiased;height:100%;display:flex;flex-direction:column}body,button,input,select,label,textarea{font-family:var(--font-body)}pre,#markdown-editor-input,.text-mono,.code-base,span.code,code{font-family:var(--font-code)}h1{font-size:3.425em;line-height:1.22222222em;margin-top:.48888889em;margin-bottom:.48888889em}h2{font-size:2.8275em;line-height:1.294117647em;margin-top:.8627451em;margin-bottom:.43137255em}h3{font-size:2.333em;line-height:1.221428572em;margin-top:.78571429em;margin-bottom:.43137255em}h4{font-size:1.666em;line-height:1.375em;margin-top:.78571429em;margin-bottom:.43137255em}h1,h2,h3,h4,h5,h6{font-weight:400;position:relative;display:block;font-family:var(--font-heading, var(--font-body));color:#222}html.dark-mode h1,html.dark-mode h2,html.dark-mode h3,html.dark-mode h4,html.dark-mode h5,html.dark-mode h6{color:#bbb}h5{font-size:1.4em}h5,h6{line-height:1.2em;margin-top:.78571429em;margin-bottom:.66em}@media screen and (max-width: 600px){h1{font-size:2.8275em}h2{font-size:2.333em}h3{font-size:1.666em}h4{font-size:1.333em}h5{font-size:1.161616em}}.list-heading{font-size:2rem}h2.list-heading{font-size:1.333rem}a{color:var(--color-link);fill:currentColor;cursor:pointer;text-decoration:none;transition:filter ease-in-out 80ms;line-height:1.6}a:hover{text-decoration:underline}a.icon{display:inline-block}a svg{position:relative;display:inline-block}a:focus img:only-child{outline:2px dashed var(--color-link);outline-offset:2px}a.no-link-style{color:inherit}a.no-link-style:hover{text-decoration:none}.blended-links a{color:inherit}.blended-links a svg{fill:currentColor}p,ul,ol,pre,table,blockquote{margin-top:.3em;margin-bottom:1.375em}hr{border:0;height:1px;background:#eaeaea}html.dark-mode hr{background:#555}hr{margin-bottom:24px}hr.faded{background-image:linear-gradient(to right, #FFF, #e3e0e0 20%, #e3e0e0 80%, #FFF)}hr.darker{background:#ddd}html.dark-mode hr.darker{background:#666}hr.margin-top,hr.even{margin-top:24px}strong,b,.bold,.strong{font-weight:bold}strong>strong,strong>b,strong>.bold,strong>.strong,b>strong,b>b,b>.bold,b>.strong,.bold>strong,.bold>b,.bold>.bold,.bold>.strong,.strong>strong,.strong>b,.strong>.bold,.strong>.strong{font-weight:bolder}em,i,.italic{font-style:italic}small,p.small,span.small,.text-small{font-size:.75rem}sup,.superscript{vertical-align:super;font-size:.8em}sub,.subscript{vertical-align:sub;font-size:.8em}pre{font-size:12px;border:1px solid #ddd;background-color:#fff}html.dark-mode pre{background-color:#2b2b2b}pre{border-color:#ddd}html.dark-mode pre{border-color:#111}pre{border-radius:4px;padding-inline-start:26px;position:relative;padding-top:3px;padding-bottom:3px}pre:before{content:"";display:block;position:absolute;top:0;width:22.4px;inset-inline-start:0;height:100%;background-color:#f5f5f5}html.dark-mode pre:before{background-color:#313335}pre:before{border-inline-end:1px solid #ddd}html.dark-mode pre:before{border-inline-end:none}@media print{pre{padding-left:12px}pre:before{display:none}}blockquote{display:block;position:relative;border-left:4px solid rgba(0,0,0,0);border-left-color:var(--color-primary);background-color:#f8f8f8}html.dark-mode blockquote{background-color:#333}blockquote{padding:12px 16px 12px 32px;overflow:auto}blockquote:before{content:"“";font-size:2em;font-weight:bold;position:absolute;top:12px;left:12px;color:#777}.text-mono{font-family:var(--font-code)}.text-uppercase{text-transform:uppercase}.text-capitals{text-transform:capitalize}.code-base,span.code,code{font-size:.84em;border:1px solid #ddd;border-radius:3px;background-color:#f8f8f8}html.dark-mode .code-base,html.dark-mode span.code,html.dark-mode code{background-color:#2b2b2b}.code-base,span.code,code{border-color:#ddd}html.dark-mode .code-base,html.dark-mode span.code,html.dark-mode code{border-color:#444}code{display:inline;padding:1px 3px;white-space:pre-wrap;line-height:1.2em}span.code{padding:1px 6px}pre code{background-color:rgba(0,0,0,0);border:0;font-size:1em;display:block;line-height:1.6}span.highlight{font-weight:bold;padding:2px 4px}ul,ol{padding-left:32px;padding-right:32px;display:flow-root}ul p,ol p{margin:0}ul{list-style:disc}ul ul{list-style:circle}ul label{margin:0}ol{list-style:decimal}li>ol,li>ul{margin-top:0;margin-bottom:0;margin-block-end:0;margin-block-start:0;padding-block-end:0;padding-block-start:0;padding-left:19.2px;padding-right:19.2px}li.checkbox-item,li.task-list-item{display:list-item;list-style:none;margin-left:-19.2px;margin-inline-start:-19.2px;margin-inline-end:0}li.checkbox-item input[type=checkbox],li.task-list-item input[type=checkbox]{margin-right:6px;margin-inline-end:6px;margin-inline-start:0}li.checkbox-item li.checkbox-item,li.checkbox-item li.task-list-item,li.task-list-item li.checkbox-item,li.task-list-item li.task-list-item{margin-left:6px;margin-inline-start:6px;margin-inline-end:0}.underlined{text-decoration:underline}.text-center{text-align:center}.text-left{text-align:start}.text-right{text-align:end}@media screen and (min-width: 361px){.text-xxs-center{text-align:center}.text-xxs-left{text-align:start}.text-xxs-right{text-align:end}}@media screen and (min-width: 401px){.text-xs-center{text-align:center}.text-xs-left{text-align:start}.text-xs-right{text-align:end}}@media screen and (min-width: 601px){.text-s-center{text-align:center}.text-s-left{text-align:start}.text-s-right{text-align:end}}@media screen and (min-width: 881px){.text-m-center{text-align:center}.text-m-left{text-align:start}.text-m-right{text-align:end}}@media screen and (min-width: 1001px){.text-l-center{text-align:center}.text-l-left{text-align:start}.text-l-right{text-align:end}}@media screen and (min-width: 1101px){.text-xl-center{text-align:center}.text-xl-left{text-align:start}.text-xl-right{text-align:end}}.text-bigger{font-size:1.1em}.text-large{font-size:1.6666em}.no-color{color:inherit}.break-text{white-space:normal;word-wrap:break-word;overflow-wrap:break-word}.text-limit-lines-1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-limit-lines-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.header-group{margin:16px 0}.header-group h1,.header-group h2,.header-group h3,.header-group h4,.header-group h5,.header-group h6{margin:0}span.sep{color:#bbb;padding:0 6px}.list>*{display:block}.svg-icon{width:1em;height:1em;display:inline-block;position:relative;bottom:-0.105em;margin-inline-end:6px;pointer-events:none;fill:currentColor}.primary-background{background-color:var(--color-primary) !important}.primary-background-light{background-color:var(--color-primary-light)}html.dark-mode .primary-background-light{background:#000}html.dark-mode .primary-background-light .text-link{color:#aaa !important}.link-background{background-color:var(--color-link) !important}.text-pos,.text-pos:hover,.text-pos-hover:hover{color:var(--color-positive) !important;fill:var(--color-positive) !important}.text-warn,.text-warn:hover,.text-warn-hover:hover{color:var(--color-warning) !important;fill:var(--color-warning) !important}.text-neg,.text-neg:hover,.text-neg-hover:hover{color:var(--color-negative) !important;fill:var(--color-negative) !important}.text-primary,.text-primary:hover,.text-primary-hover:hover{color:var(--color-primary) !important;fill:var(--color-primary) !important}.text-link,.text-link:hover,.text-link-hover:hover{color:var(--color-link) !important;fill:var(--color-link) !important}.text-muted{color:#575757 !important}html.dark-mode .text-muted{color:#888 !important}.text-muted{fill:currentColor !important}.text-dark{color:#222 !important}html.dark-mode .text-dark{color:#ccc !important}.text-dark{fill:currentColor !important}.text-white{color:#fff;fill:currentColor !important}.text-bookshelf,.text-bookshelf:hover{color:var(--color-bookshelf);fill:var(--color-bookshelf)}.text-book,.text-book:hover{color:var(--color-book);fill:var(--color-book)}.text-page,.text-page:hover{color:var(--color-page);fill:var(--color-page)}.text-page.draft,.text-page.draft:hover{color:var(--color-page-draft);fill:var(--color-page-draft)}.text-chapter,.text-chapter:hover{color:var(--color-chapter);fill:var(--color-chapter)}.bg-white{background-color:#fff}.bg-book{background-color:var(--color-book)}.bg-chapter{background-color:var(--color-chapter)}.bg-bookshelf{background-color:var(--color-bookshelf)}.container{max-width:1400px;margin-inline-start:auto;margin-inline-end:auto;padding-inline-start:16px;padding-inline-end:16px}.container.medium{max-width:1100px}.container.small{max-width:840px}.container.very-small{max-width:480px}.grid{display:grid;grid-column-gap:24px;grid-row-gap:24px}.grid>*{min-width:0}.grid.half{grid-template-columns:1fr 1fr}.grid.third{grid-template-columns:1fr 1fr 1fr}.grid.left-focus{grid-template-columns:2fr 1fr}.grid.right-focus{grid-template-columns:1fr 3fr}.grid.gap-y-xs{grid-row-gap:6px}.grid.gap-xl{grid-column-gap:32px;grid-row-gap:32px}.grid.gap-xxl{grid-column-gap:48px;grid-row-gap:48px}.grid.v-center{align-items:center}.grid.v-end{align-items:end}.grid.no-gap{grid-row-gap:0;grid-column-gap:0}.grid.no-row-gap{grid-row-gap:0}@media screen and (max-width: 880px){.grid.third:not(.no-break){grid-template-columns:1fr 1fr}.grid.half:not(.no-break),.grid.left-focus:not(.no-break),.grid.right-focus:not(.no-break){grid-template-columns:1fr}.grid.half.collapse-xs{grid-template-columns:1fr 1fr}.grid.gap-xl{grid-column-gap:16px;grid-row-gap:16px}.grid.right-focus.reverse-collapse>*:nth-child(2){order:0}.grid.right-focus.reverse-collapse>*:nth-child(1){order:1}}@media screen and (max-width: 600px){.grid.third:not(.no-break){grid-template-columns:1fr}}@media screen and (max-width: 400px){.grid.half.collapse-xs{grid-template-columns:1fr}}#content{flex:1 0 auto}body.flexbox{display:flex;flex-direction:column;align-items:stretch;height:100%;min-height:100%;max-height:100%;overflow:hidden}body.flexbox #content{flex:1;display:flex;min-height:0}.flex-fill{display:flex;align-items:stretch;min-height:0;max-width:100%;position:relative}.flex-container-row{display:flex;flex-direction:row}.flex-container-row.v-center{align-items:center}.flex-container-column{display:flex;flex-direction:column}.flex-container-row.inline,.flex-container-column.inline{display:inline-flex !important}.flex-container-column.wrap,.flex-container-row.wrap{flex-wrap:wrap}.flex{min-height:0;flex:1;max-width:100%}.flex.fit-content{flex-basis:auto;flex-grow:0}.flex.fill-area{flex-grow:1;flex-shrink:0;min-width:fit-content}.flex-2{min-height:0;flex:2;max-width:100%}.flex-3{min-height:0;flex:3;max-width:100%}.flex-none{flex:none}.justify-flex-start{justify-content:flex-start}.justify-flex-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-space-between{justify-content:space-between}.items-center{align-items:center}.items-stretch{align-items:stretch}.min-width-xxxxs{min-width:60px}.min-width-xxxs{min-width:80px}.min-width-xxs{min-width:100px}.min-width-xs{min-width:120px}.min-width-s{min-width:160px}.min-width-m{min-width:200px}.min-width-l{min-width:240px}.min-width-xl{min-width:280px}.min-width-xxl{min-width:320px}.block{display:block !important;position:relative}.inline{display:inline !important}.block.inline{display:inline-block !important}.relative{position:relative}.fixed{position:fixed;z-index:20}.fixed.top-right{top:0;right:0}.hidden{display:none !important}.overflow-hidden{overflow:hidden}.height-fill{height:100%}.height-auto{height:auto !important}.float{float:left}.float.right{float:right}.sticky-top-m{position:sticky;top:16px}@media screen and (max-width: 360px){.hide-under-xxs{display:none !important}}@media screen and (min-width: 361px){.hide-over-xxs{display:none !important}}@media screen and (max-width: 400px){.hide-under-xs{display:none !important}}@media screen and (min-width: 401px){.hide-over-xs{display:none !important}}@media screen and (max-width: 600px){.hide-under-s{display:none !important}}@media screen and (min-width: 601px){.hide-over-s{display:none !important}}@media screen and (max-width: 880px){.hide-under-m{display:none !important}}@media screen and (min-width: 881px){.hide-over-m{display:none !important}}@media screen and (max-width: 1000px){.hide-under-l{display:none !important}}@media screen and (min-width: 1001px){.hide-over-l{display:none !important}}@media screen and (max-width: 1100px){.hide-under-xl{display:none !important}}@media screen and (min-width: 1101px){.hide-over-xl{display:none !important}}[hidden]{display:none !important}.screen-reader-only{position:absolute;inset-inline-start:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.rounded{border-radius:4px}.dual-column-content{columns:2}@media screen and (max-width: 880px){.dual-column-content{columns:1}}.clearfix::before,.clearfix::after{content:" ";display:table}.clearfix::after{clear:both}.tri-layout-container{display:grid;margin-inline-start:32px;margin-inline-end:32px;grid-template-columns:1fr 4fr 1fr;grid-template-areas:"a b c";grid-column-gap:32px;position:relative}.tri-layout-sides{grid-column-start:a;grid-column-end:c;grid-row:1;min-width:0;z-index:4}.tri-layout-sides-content{display:grid;grid-template-areas:"a b c";grid-template-columns:1fr 4fr 1fr;height:100%}.tri-layout-middle{grid-area:b;padding-top:16px;min-width:0;z-index:5}.tri-layout-right{grid-area:c;min-width:0;position:relative}.tri-layout-left{grid-area:a;min-width:0;position:relative}@media screen and (min-width: 1401px){.tri-layout-left-contents,.tri-layout-right-contents{padding:32px 16px;position:sticky;top:0;max-height:100vh;min-height:50vh;overflow-y:scroll;overflow-x:hidden;height:100%;scrollbar-width:none;-ms-overflow-style:none}.tri-layout-left-contents::-webkit-scrollbar,.tri-layout-right-contents::-webkit-scrollbar{display:none}.tri-layout-middle-contents{max-width:940px;margin:0 auto}}@media screen and (min-width: 1401px)and (max-width: 1700px){.tri-layout-sides-content,.tri-layout-container{grid-template-columns:1fr 972px 1fr}.tri-layout-container{grid-column-gap:12px;margin-inline-start:16px;margin-inline-end:16px}}@media screen and (max-width: 1400px){.tri-layout-container{grid-template-areas:"a b b";grid-template-columns:1fr 3fr;grid-template-rows:min-content min-content 1fr;margin-inline-start:19px;margin-inline-end:19px}.tri-layout-sides{grid-column-start:a;grid-column-end:a}.tri-layout-sides-content{display:block}}@media screen and (min-width: 1001px)and (max-width: 1400px){.tri-layout-sides-content{position:sticky;top:0;max-height:100vh;min-height:50vh;overflow-y:scroll;overflow-x:hidden;height:100%;scrollbar-width:none;-ms-overflow-style:none;padding-inline:16px;margin-inline:-16px}.tri-layout-sides-content::-webkit-scrollbar{display:none}}@media screen and (min-width: 1001px){.tri-layout-mobile-tabs{display:none}.tri-layout-left-contents>*,.tri-layout-right-contents>*{opacity:.6}html.dark-mode .tri-layout-left-contents>*,html.dark-mode .tri-layout-right-contents>*{opacity:.75}.tri-layout-left-contents>*,.tri-layout-right-contents>*{transition:opacity ease-in-out 120ms}.tri-layout-left-contents>*:hover,.tri-layout-left-contents>*:focus-within,.tri-layout-right-contents>*:hover,.tri-layout-right-contents>*:focus-within{opacity:1 !important}}@media screen and (min-width: 1001px)and (prefers-contrast: more){.tri-layout-left-contents>*,.tri-layout-right-contents>*{opacity:1 !important}}@media screen and (max-width: 1000px){.tri-layout-container{grid-template-areas:none;grid-template-columns:1fr;grid-column-gap:0;padding-inline-end:6px;padding-inline-start:6px}.tri-layout-container .tri-layout-sides{padding-inline-start:16px;padding-inline-end:16px;grid-column:1/1}.tri-layout-container .tri-layout-left>*,.tri-layout-container .tri-layout-right>*{display:none;pointer-events:none}.tri-layout-container .tri-layout-left,.tri-layout-container .tri-layout-right{padding-top:0 !important}.tri-layout-container .tri-layout-middle{grid-area:none;grid-row:3;grid-column:1/1;z-index:1;overflow:hidden;transition:transform ease-in-out 240ms}.tri-layout-container .tri-layout-left{grid-row:2}.tri-layout-container.show-info{overflow:hidden}.tri-layout-container.show-info .tri-layout-middle{display:none}.tri-layout-container.show-info .tri-layout-right>*,.tri-layout-container.show-info .tri-layout-left>*{display:block;pointer-events:auto}}@media screen and (max-width: 880px){.tri-layout-container{margin-inline-start:0;margin-inline-end:0}}.scroll-away-from-top:before,.scroll-away-from-bottom:after{content:"";display:block;position:absolute;color:#f2f2f2}html.dark-mode .scroll-away-from-top:before,html.dark-mode .scroll-away-from-bottom:after{color:#111}.scroll-away-from-top:before,.scroll-away-from-bottom:after{left:0;top:0;width:100%;height:50px;background:linear-gradient(to bottom, currentColor, transparent);z-index:2}.scroll-away-from-bottom:after{top:auto;bottom:0;background:linear-gradient(to top, currentColor, transparent)}.card{background-color:#fff}html.dark-mode .card{background-color:#222}.card{box-shadow:0 1px 6px -1px rgba(0,0,0,.1);border-radius:3px;break-inside:avoid}.card .body,.card p.empty-text{padding-block:16px}.card a,.card p{word-wrap:break-word;word-break:break-word}.card-title{padding:16px 16px 6px;margin:0;font-size:14px;color:#222;fill:#222;font-weight:400}.card-title a{line-height:1}.card-footer-link,button.card-footer-link{display:block;padding:12px 16px;line-height:1;border-top:1px solid;width:100%;text-align:left;border-color:#ddd}html.dark-mode .card-footer-link,html.dark-mode button.card-footer-link{border-color:#555}.card-footer-link,button.card-footer-link{border-radius:0 0 3px 3px;font-size:.9em;margin-top:6px}.card-footer-link:hover,button.card-footer-link:hover{text-decoration:none;background-color:#f2f2f2}html.dark-mode .card-footer-link:hover,html.dark-mode button.card-footer-link:hover{background-color:#2d2d2d}.card-footer-link:focus,button.card-footer-link:focus{background-color:#eee}html.dark-mode .card-footer-link:focus,html.dark-mode button.card-footer-link:focus{background-color:#222}.card-footer-link:focus,button.card-footer-link:focus{outline:1px dotted #666;outline-offset:-2px}.card.border-card{border:1px solid;border-color:#ddd}html.dark-mode .card.border-card{border-color:#000}.card.drag-card{border:1px solid #ddd;border-color:#ddd}html.dark-mode .card.drag-card{border-color:#000}.card.drag-card{background-color:#fff}html.dark-mode .card.drag-card{background-color:#333}.card.drag-card{border-radius:4px;display:flex;padding:0 0 0 40px;margin:12px 0;position:relative}.card.drag-card .drag-card-action{cursor:pointer}.card.drag-card .handle,.card.drag-card .drag-card-action{display:flex;align-items:center;text-align:center;justify-content:center;width:28px;flex-grow:0;padding:0 6px}.card.drag-card .handle:hover,.card.drag-card .drag-card-action:hover{background-color:#eee}html.dark-mode .card.drag-card .handle:hover,html.dark-mode .card.drag-card .drag-card-action:hover{background-color:#2d2d2d}.card.drag-card .handle .svg-icon,.card.drag-card .drag-card-action .svg-icon{margin-inline-end:0px}.card.drag-card .outline input{margin:12px 0;width:100%}.card.drag-card .outline{position:relative}.card.drag-card .handle{background-color:#eee}html.dark-mode .card.drag-card .handle{background-color:#2d2d2d}.card.drag-card .handle{left:0;position:absolute;top:0;bottom:0}.card.drag-card>div{padding:0 12px;max-width:80%;flex:1}.grid-card{display:flex;flex-direction:column;border:1px solid #ddd;border-color:#ddd}html.dark-mode .grid-card{border-color:#000}.grid-card{margin-bottom:24px;border-radius:4px;overflow:hidden;min-width:100px;color:#444;transition:border-color ease-in-out 120ms,box-shadow ease-in-out 120ms}.grid-card:hover{color:#444;text-decoration:none;box-shadow:0 1px 6px -1px rgba(0,0,0,.1)}html.dark-mode .grid-card:hover{box-shadow:0 1px 6px -1px rgba(0,0,0,.5)}.grid-card h2{width:100%;font-size:1.5em;margin:0 0 10px}.grid-card p{font-size:.7rem;margin:0;line-height:1.6em}.grid-card .grid-card-content{flex:1;border-top:0;border-bottom-width:2px}.grid-card .grid-card-content,.grid-card .grid-card-footer{padding:24px}.grid-card .grid-card-content+.grid-card-footer{padding-top:0}.book-grid-item .grid-card-footer p.small{font-size:.8em;margin:0}.content-wrap.card{padding:16px 48px;margin-inline-start:auto;margin-inline-end:auto;margin-bottom:24px;overflow:initial;min-height:60vh;border-radius:8px}.content-wrap.card.auto-height{min-height:0}.content-wrap.card.fill-width{width:100%}@media screen and (max-width: 1400px){.content-wrap.card{padding:16px 32px}}@media screen and (max-width: 880px){.content-wrap.card{padding:16px 24px}}@media screen and (max-width: 600px){.content-wrap.card{padding:16px 16px}}.sub-card{box-shadow:0 1px 3px 0 rgba(0,0,0,.1);border:1.5px solid;border-color:#e2e2e2}html.dark-mode .sub-card{border-color:#444}.sub-card{border-radius:4px}.outline-hover{border:1px solid rgba(0,0,0,0) !important}.outline-hover:hover{border:1px solid rgba(0,0,0,.1) !important}.fade-in-when-active{opacity:.6}html.dark-mode .fade-in-when-active{opacity:.7}.fade-in-when-active{transition:opacity ease-in-out 120ms}.fade-in-when-active:hover,.fade-in-when-active:focus-within{opacity:1 !important}@media(prefers-contrast: more){.fade-in-when-active{opacity:1 !important}}.tag-item{display:inline-flex;margin-bottom:6px;margin-inline-end:6px;border-radius:4px;border:1px solid;overflow:hidden;font-size:.85em;border-color:#ccc}html.dark-mode .tag-item{border-color:#666}.tag-item a,.tag-item span,.tag-item a:hover,.tag-item a:active{padding:4px 8px;color:rgba(0,0,0,.7)}html.dark-mode .tag-item a,html.dark-mode .tag-item span,html.dark-mode .tag-item a:hover,html.dark-mode .tag-item a:active{color:rgba(255,255,255,.8)}.tag-item a,.tag-item span,.tag-item a:hover,.tag-item a:active{transition:background-color ease-in-out 80ms;text-decoration:none}.tag-item a:hover{background-color:rgba(255,255,255,.7)}html.dark-mode .tag-item a:hover{background-color:rgba(255,255,255,.3)}.tag-item svg{fill:rgba(0,0,0,.5)}html.dark-mode .tag-item svg{fill:rgba(255,255,255,.5)}.tag-item .tag-value{border-inline-start:1px solid;border-color:#ddd}html.dark-mode .tag-item .tag-value{border-color:#666}.tag-item .tag-value{background-color:rgba(255,255,255,.5)}html.dark-mode .tag-item .tag-value{background-color:rgba(255,255,255,.2)}.tag-name.highlight,.tag-value.highlight{font-weight:bold}.tag-list div:last-child .tag-item{margin-bottom:0}.item-list-row .tag-item{margin-bottom:0}.api-docs h2.list-heading{font-size:1.666rem}.api-method{font-size:.75rem;background-color:#888;padding:6px;line-height:1.3;opacity:.7;vertical-align:top;border-radius:3px;color:#fff;display:inline-block;min-width:60px;text-align:center;font-weight:bold}.api-method[data-method=GET]{background-color:#077b70}.api-method[data-method=POST]{background-color:#cf4d03}.api-method[data-method=PUT]{background-color:#0288d1}.api-method[data-method=DELETE]{background-color:#ab0f0e}.sticky-sidebar{position:sticky;top:0;padding-left:2px;max-height:100vh;overflow-y:auto}.sticky-sidebar .sticky-sidebar-header{position:sticky;top:0;background:#f2f2f2;background:linear-gradient(180deg, rgb(242, 242, 242) 80%, rgba(242, 242, 242, 0) 100%);z-index:4}.dark-mode .sticky-sidebar-header{background:#111;background:linear-gradient(180deg, rgb(17, 17, 17) 80%, rgba(17, 17, 17, 0) 100%)}button{background-color:rgba(0,0,0,0);border:0;font-size:100%}.button{text-decoration:none;font-size:.85rem;line-height:1.4em;padding:7.8px 16px;margin-top:6px;margin-bottom:6px;display:inline-block;font-weight:400;outline:0;border-radius:4px;cursor:pointer;transition:background-color ease-in-out 120ms,filter ease-in-out 120ms,box-shadow ease-in-out 120ms;box-shadow:none;background-color:var(--color-primary);color:#fff;border:1px solid var(--color-primary);vertical-align:top}.button:hover,.button:focus,.button:active{background-color:var(--color-primary);text-decoration:none;color:#fff}.button:hover{box-shadow:0 0 4px 1px #ccc}html.dark-mode .button:hover{box-shadow:0 0 4px 1px rgba(0,0,0,.5)}.button:hover{filter:brightness(110%)}.button:focus{outline:1px dotted currentColor;outline-offset:-6px;box-shadow:none;filter:brightness(90%)}.button:active{outline:0}.button.outline{background-color:rgba(0,0,0,0);color:#666}html.dark-mode .button.outline{color:#aaa}.button.outline{fill:currentColor;border:1px solid;border-color:#ccc}html.dark-mode .button.outline{border-color:#666}.button.outline:hover,.button.outline:focus,.button.outline:active{color:#444}html.dark-mode .button.outline:hover,html.dark-mode .button.outline:focus,html.dark-mode .button.outline:active{color:#bbb}.button.outline:hover,.button.outline:focus,.button.outline:active{border:1px solid #ccc;box-shadow:0 1px 4px 0 rgba(0,0,0,.1);background-color:#f2f2f2;background-color:#f8f8f8}html.dark-mode .button.outline:hover,html.dark-mode .button.outline:focus,html.dark-mode .button.outline:active{background-color:#444}.button.outline:hover,.button.outline:focus,.button.outline:active{filter:none}.button.outline:active{border-color:#bbb;background-color:#ddd;color:#666;box-shadow:inset 0 0 2px rgba(0,0,0,.1)}.button+.button{margin-inline-start:12px}.button.small{font-size:.75rem;padding:7.2px 12px}.text-button{cursor:pointer;background-color:rgba(0,0,0,0);padding:0;margin:0;border:none;user-select:none;font-size:.75rem;line-height:1.4em;color:var(--color-link)}.text-button:active{outline:0}.text-button:hover{text-decoration:none}.text-button:hover,.text-button:focus{color:var(--color-link);fill:var(--color-link)}.text-button.hover-underline:hover{text-decoration:underline}.button.block{width:100%;text-align:start;display:block}.button.icon .svg-icon,.icon-button .svg-icon,.text-button.icon .svg-icon{margin-inline-end:0}.icon-button{text-align:center;border:1px solid rgba(0,0,0,0)}.icon-button:hover{background-color:rgba(0,0,0,.05);border-radius:4px;border-color:#ddd}html.dark-mode .icon-button:hover{border-color:#444}.icon-button:hover{cursor:pointer}.button.svg{display:flex;align-items:center;padding:12px 16px;padding-bottom:10px;width:100%}.button.svg svg{display:inline-block;width:24px;height:24px;bottom:auto;margin-inline-end:16px}.button[disabled]{background-color:#bbb;cursor:default;border-color:#ccc}.button[disabled]:hover{background-color:#bbb;cursor:default;box-shadow:none}table{min-width:100px;max-width:100%}table td,table th{min-width:10px;padding:6px 8px;border:1px solid #ddd;overflow:auto;line-height:1.2;word-break:break-word;vertical-align:top}table td p,table th p{margin:0}table:not(:has(thead)) th,table thead{background-color:#f8f8f8}html.dark-mode table:not(:has(thead)) th,html.dark-mode table thead{background-color:#333}table:not(:has(thead)) th,table thead{font-weight:500}table.table{width:100%}table.table tr td,table.table tr th{border-bottom:1px solid rgba(0,0,0,.05)}table.table th,table.table td{text-align:start;border:none;padding:12px 12px;vertical-align:middle;margin:0;overflow:visible}table.table th{font-weight:bold}table.table tr:hover{background-color:#f2f2f2}html.dark-mode table.table tr:hover{background-color:#333}table.table .text-right{text-align:end}table.table .text-center{text-align:center}table.table td.actions{overflow:visible}table.table a{display:inline-block}table.table.expand-to-padding{margin-left:-12px;margin-right:-12px;width:calc(100% + 2*12px);max-width:calc(100% + 2*12px)}table.no-style td{border:0;padding:0}table.list-table{margin:0 -6px}table.list-table td{border:0;vertical-align:middle;padding:6px}.input-base,input[type=text],input[type=number],input[type=email],input[type=date],input[type=search],input[type=url],input[type=color],input[type=password],select,textarea,.fake-input{border-radius:3px;border:1px solid #d4d4d4;background-color:#fff}html.dark-mode .input-base,html.dark-mode input[type=text],html.dark-mode input[type=number],html.dark-mode input[type=email],html.dark-mode input[type=date],html.dark-mode input[type=search],html.dark-mode input[type=url],html.dark-mode input[type=color],html.dark-mode input[type=password],html.dark-mode select,html.dark-mode textarea,html.dark-mode .fake-input{background-color:#333}.input-base,input[type=text],input[type=number],input[type=email],input[type=date],input[type=search],input[type=url],input[type=color],input[type=password],select,textarea,.fake-input{border-color:#d4d4d4}html.dark-mode .input-base,html.dark-mode input[type=text],html.dark-mode input[type=number],html.dark-mode input[type=email],html.dark-mode input[type=date],html.dark-mode input[type=search],html.dark-mode input[type=url],html.dark-mode input[type=color],html.dark-mode input[type=password],html.dark-mode select,html.dark-mode textarea,html.dark-mode .fake-input{border-color:#111}.input-base,input[type=text],input[type=number],input[type=email],input[type=date],input[type=search],input[type=url],input[type=color],input[type=password],select,textarea,.fake-input{color:#666}html.dark-mode .input-base,html.dark-mode input[type=text],html.dark-mode input[type=number],html.dark-mode input[type=email],html.dark-mode input[type=date],html.dark-mode input[type=search],html.dark-mode input[type=url],html.dark-mode input[type=color],html.dark-mode input[type=password],html.dark-mode select,html.dark-mode textarea,html.dark-mode .fake-input{color:#aaa}.input-base,input[type=text],input[type=number],input[type=email],input[type=date],input[type=search],input[type=url],input[type=color],input[type=password],select,textarea,.fake-input{display:inline-block;font-size:14px;padding:10.8px;height:40px;width:250px;max-width:100%}.input-base.neg,input.neg[type=text],input.neg[type=number],input.neg[type=email],input.neg[type=date],input.neg[type=search],input.neg[type=url],input.neg[type=color],input.neg[type=password],select.neg,textarea.neg,.neg.fake-input,.input-base.invalid,input.invalid[type=text],input.invalid[type=number],input.invalid[type=email],input.invalid[type=date],input.invalid[type=search],input.invalid[type=url],input.invalid[type=color],input.invalid[type=password],select.invalid,textarea.invalid,.invalid.fake-input{border:1px solid var(--color-negative)}.input-base.pos,input.pos[type=text],input.pos[type=number],input.pos[type=email],input.pos[type=date],input.pos[type=search],input.pos[type=url],input.pos[type=color],input.pos[type=password],select.pos,textarea.pos,.pos.fake-input,.input-base.valid,input.valid[type=text],input.valid[type=number],input.valid[type=email],input.valid[type=date],input.valid[type=search],input.valid[type=url],input.valid[type=color],input.valid[type=password],select.valid,textarea.valid,.valid.fake-input{border:1px solid var(--color-positive)}.input-base.disabled,input.disabled[type=text],input.disabled[type=number],input.disabled[type=email],input.disabled[type=date],input.disabled[type=search],input.disabled[type=url],input.disabled[type=color],input.disabled[type=password],select.disabled,textarea.disabled,.disabled.fake-input,.input-base[disabled],input[disabled][type=text],input[disabled][type=number],input[disabled][type=email],input[disabled][type=date],input[disabled][type=search],input[disabled][type=url],input[disabled][type=color],input[disabled][type=password],select[disabled],textarea[disabled],[disabled].fake-input{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAMUlEQVQIW2NkwAGuXbv2nxGbHEhCS0uLEUMSJgHShCKJLIEiiS4Bl8QmAZbEJQGSBAC62BuJ+tt7zgAAAABJRU5ErkJggg==)}.input-base[readonly],input[readonly][type=text],input[readonly][type=number],input[readonly][type=email],input[readonly][type=date],input[readonly][type=search],input[readonly][type=url],input[readonly][type=color],input[readonly][type=password],select[readonly],textarea[readonly],[readonly].fake-input{background-color:#f8f8f8}.input-base:focus,input[type=text]:focus,input[type=number]:focus,input[type=email]:focus,input[type=date]:focus,input[type=search]:focus,input[type=url]:focus,input[type=color]:focus,input[type=password]:focus,select:focus,textarea:focus,.fake-input:focus{border-color:var(--color-primary);outline:1px solid var(--color-primary)}.input-fill-width{width:100% !important}.fake-input{overflow:auto}#html-editor{display:none}#markdown-editor{position:relative;z-index:5}#markdown-editor #markdown-editor-input{font-style:normal;font-weight:400;padding:6px 16px;color:#444}html.dark-mode #markdown-editor #markdown-editor-input{color:#aaa}#markdown-editor #markdown-editor-input{background-color:#fff}html.dark-mode #markdown-editor #markdown-editor-input{background-color:#222}#markdown-editor #markdown-editor-input{border-radius:0;height:100%;font-size:14px;line-height:1.2;max-height:100%;flex:1;border:0;width:100%;margin:0}#markdown-editor #markdown-editor-input:focus{outline:0}#markdown-editor.fullscreen{position:fixed;top:0;left:0;height:100%;z-index:2}.markdown-editor-wrap{border-top:1px solid #ddd;border-bottom:1px solid #ddd;border-color:#ddd}html.dark-mode .markdown-editor-wrap{border-color:#000}.markdown-editor-wrap{position:relative;flex:1;min-width:0}.markdown-editor-wrap+.markdown-editor-wrap{flex-basis:50%;flex-shrink:0;flex-grow:0}.markdown-editor-wrap .cm-editor{flex:1;max-width:100%;border:0;margin:0}.markdown-panel-divider{width:2px;background-color:#ddd}html.dark-mode .markdown-panel-divider{background-color:#000}.markdown-panel-divider{cursor:col-resize}@media screen and (max-width: 880px){#markdown-editor{flex-direction:column}#markdown-editor .markdown-editor-wrap{width:100%;max-width:100%;flex-grow:1;flex-basis:auto !important;min-height:0}.editor-toolbar-label{float:none !important;border-color:#ddd}html.dark-mode .editor-toolbar-label{border-color:#555}.editor-toolbar-label{display:block}.markdown-editor-wrap:not(.active) .editor-toolbar+div,.markdown-editor-wrap:not(.active) .editor-toolbar .buttons,.markdown-editor-wrap:not(.active) .markdown-display{display:none}#markdown-editor .markdown-editor-wrap:not(.active){flex-grow:0;flex:none}}.markdown-editor-display{background-color:#fff}.markdown-editor-display body{display:block;background-color:#fff;padding-inline-start:12px;padding-inline-end:12px;max-width:864px}.markdown-editor-display [drawio-diagram]{cursor:pointer}.markdown-editor-display [drawio-diagram]:hover{outline:2px solid var(--color-primary)}html.markdown-editor-display.dark-mode{background-color:#222}html.markdown-editor-display.dark-mode body{background-color:#222}.editor-toolbar{height:32px;width:100%;font-size:11px;line-height:1.6;border-bottom:1px solid #ccc;background-color:#fff}html.dark-mode .editor-toolbar{background-color:#333}.editor-toolbar{border-color:#ccc}html.dark-mode .editor-toolbar{border-color:#000}.editor-toolbar{flex:none}html.dark-mode .editor-toolbar button{color:#aaa}.editor-toolbar .buttons{font-size:14px}.editor-toolbar .buttons .dropdown-menu{padding:0}.editor-toolbar .buttons .toggle-switch{margin:12px 0}.editor-toolbar .buttons button{font-size:.9rem;width:2rem;text-align:center;border-left:1px solid;border-color:#ddd}html.dark-mode .editor-toolbar .buttons button{border-color:#555}.editor-toolbar .buttons button svg{margin-inline-end:0}.editor-toolbar .buttons button:hover{background-color:#ddd}html.dark-mode .editor-toolbar .buttons button:hover{background-color:#222}label{color:#666}html.dark-mode label{color:#ddd}label{display:block;line-height:1.4em;font-size:.94em;font-weight:400;padding-bottom:2px;margin-bottom:.2em}label.inline{display:inline-block}label.radio,label.checkbox{font-weight:400;user-select:none}label.radio input[type=radio],label.radio input[type=checkbox],label.checkbox input[type=radio],label.checkbox input[type=checkbox]{margin-inline-end:6px}label.inline.checkbox{margin-inline-end:16px}label+p.small{margin-bottom:.8em}table.form-table{max-width:100%}table.form-table td{overflow:hidden;padding:1.5px 0}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:url("data:image/svg+xml;utf8,");background-size:10px 12px;background-position:calc(100% - 20px) 64%;background-repeat:no-repeat}html[dir=rtl] select{background-position:20px 70%}input[type=date]{width:190px}input[type=color]{height:60px}input[type=color].small{height:42px;width:60px;padding:2px}.toggle-switch{user-select:none;display:inline-grid;grid-template-columns:28px 1fr;align-items:center;margin:16px 0}.toggle-switch .custom-checkbox{width:16px;height:16px;border-radius:2px;display:inline-block;border:2px solid currentColor;overflow:hidden;fill:currentColor}.toggle-switch .custom-checkbox .svg-icon{width:100%;height:100%;margin:0;bottom:auto;top:-1.5px;left:0;transition:transform ease-in-out 120ms;transform:scale(0);transform-origin:center center}.toggle-switch input[type=checkbox]{display:none}.toggle-switch input[type=checkbox]:checked+.custom-checkbox .svg-icon{transform:scale(1)}.toggle-switch .custom-checkbox:hover{background-color:rgba(0,0,0,.05);opacity:.8}.toggle-switch input[type=checkbox][disabled]~*{opacity:.8;cursor:not-allowed}.toggle-switch input[type=checkbox][disabled]~.custom-checkbox{border-color:#999;color:#999 !important;background:#f2f2f2}.toggle-switch-list .toggle-switch{margin:6px 0}.toggle-switch-list.compact .toggle-switch{margin:1px 0}.form-group{margin-bottom:12px}.setting-list>div{border-bottom:1px solid #ddd;padding:32px 0}.setting-list>div:last-child{border-bottom:none}.setting-list-label{color:#222}html.dark-mode .setting-list-label{color:#ddd}.setting-list-label{color:#222;font-size:1rem}.setting-list-label+p.small{margin-bottom:0}.setting-list-label+.grid{margin-top:16px}.setting-list .grid input[type=text],.setting-list .grid input[type=email],.setting-list .grid input[type=password],.setting-list .grid select,.stretch-inputs input[type=text],.stretch-inputs input[type=email],.stretch-inputs input[type=password],.stretch-inputs select{width:100%}.small-inputs input{width:150px}.simple-code-input{background-color:#f8f8f8;font-family:monospace;font-size:12px;min-height:100px;display:block;width:100%}.form-group div.text-pos,.form-group div.text-neg,.form-group p.text-post,.form-group p.text-neg{padding:6px 0}.form-group.collapsible{padding:0 16px;border:1px solid;border-color:#ddd}html.dark-mode .form-group.collapsible{border-color:#000}.form-group.collapsible{border-radius:4px}.form-group.collapsible .collapse-title{margin-inline-start:-16px;margin-inline-end:-16px;padding:12px 16px;display:block;width:calc(100% + 32px);text-align:start}.form-group.collapsible .collapse-title,.form-group.collapsible .collapse-title label{cursor:pointer}.form-group.collapsible .collapse-title label{padding-bottom:0;margin-bottom:0;color:inherit}.form-group.collapsible .collapse-title label:before{display:inline-block;content:"▸";margin-inline-end:16px;transition:all ease-in-out 400ms;transform:rotate(0)}.form-group.collapsible .collapse-content{display:none;padding-bottom:16px}.form-group.collapsible.open .collapse-title label:before{transform:rotate(90deg)}.form-group.ambrosia-container,.form-group.ambrosia-container *{position:absolute !important;height:1px !important;width:1px !important;margin:-1px !important;padding:0 !important;background:rgba(0,0,0,0) !important;color:rgba(0,0,0,0) !important;border:none !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important}.title-input input[type=text]{display:block;width:100%;padding:12px;margin-top:0;font-size:2em;height:auto}.description-input textarea{display:block;width:100%;padding:12px;font-size:14px;color:#666;height:auto}.description-input>.tox-tinymce{border:1px solid #ddd !important;border-color:#ddd !important}html.dark-mode .description-input>.tox-tinymce{border-color:#000 !important}.description-input>.tox-tinymce{border-radius:3px}.description-input>.tox-tinymce .tox-toolbar__primary{justify-content:end}.search-box{max-width:100%;position:relative}.search-box button[tabindex="-1"]{background-color:rgba(0,0,0,0);border:none;color:#666}html.dark-mode .search-box button[tabindex="-1"]{color:#aaa}.search-box button[tabindex="-1"]{padding:0;cursor:pointer;position:absolute;inset-inline-start:8px;top:10px}.search-box input{display:block;padding:9px;padding-inline-start:28px;width:300px;max-width:100%;height:auto}.search-box.flexible input{width:100%}.search-box button.search-box-cancel{left:auto;right:0}.contained-search-box{display:flex;height:38px;z-index:-1}.contained-search-box.floating{box-shadow:0 1px 3px 1px rgba(76,76,76,.26);border-radius:4px;overflow:hidden}html.dark-mode .contained-search-box.floating{border:1px solid #000}.contained-search-box input,.contained-search-box button{height:100%;border-radius:0;border:1px solid #ddd;border-color:#ddd}html.dark-mode .contained-search-box input,html.dark-mode .contained-search-box button{border-color:#000}.contained-search-box input,.contained-search-box button{margin-inline-start:-1px}.contained-search-box input:last-child,.contained-search-box button:last-child{border-inline-end:0}.contained-search-box input{border:0;flex:5;padding:6px 12px}.contained-search-box input:focus,.contained-search-box input:active{outline:1px dotted var(--color-primary);outline-offset:-2px;border:0}.contained-search-box button{border:0;width:48px;border-inline-start:1px solid #ddd;background-color:#fff;background-color:#fff}html.dark-mode .contained-search-box button{background-color:#333}.contained-search-box button{color:#444}html.dark-mode .contained-search-box button{color:#aaa}.contained-search-box button:focus{outline:1px dotted var(--color-primary);outline-offset:-2px}.contained-search-box svg{margin:0}@media screen and (max-width: 600px){.contained-search-box{width:180px}}.outline>input{border:0;border-bottom:2px solid #ddd;border-radius:0}.outline>input:focus,.outline>input:active{border:0;border-bottom:2px solid #aaa;outline:0}.image-picker img{background-color:#bbb;max-width:100%}.custom-file-input{overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;height:1px;border:0;clip:rect(0, 0, 0, 0)}.custom-file-input:focus+label{border-color:var(--color-primary);outline:1px solid var(--color-primary)}.custom-simple-file-input{max-width:100%;border:1px solid;border-color:#ddd}html.dark-mode .custom-simple-file-input{border-color:#666}.custom-simple-file-input{border-radius:4px;padding:12px 16px}.custom-simple-file-input::file-selector-button{background-color:rgba(0,0,0,0);text-decoration:none;font-size:.8rem;line-height:1.4em;padding:6px 12px;border:1px solid;font-weight:400;outline:0;border-radius:4px;cursor:pointer;margin-right:16px;color:#666}html.dark-mode .custom-simple-file-input::file-selector-button{color:#aaa}.custom-simple-file-input::file-selector-button{border-color:#ccc}html.dark-mode .custom-simple-file-input::file-selector-button{border-color:#666}.custom-simple-file-input::file-selector-button:hover,.custom-simple-file-input::file-selector-button:focus,.custom-simple-file-input::file-selector-button:active{color:#444}html.dark-mode .custom-simple-file-input::file-selector-button:hover,html.dark-mode .custom-simple-file-input::file-selector-button:focus,html.dark-mode .custom-simple-file-input::file-selector-button:active{color:#bbb}.custom-simple-file-input::file-selector-button:hover,.custom-simple-file-input::file-selector-button:focus,.custom-simple-file-input::file-selector-button:active{border:1px solid #ccc;box-shadow:0 1px 4px 0 rgba(0,0,0,.1);background-color:#f2f2f2;background-color:#f8f8f8}html.dark-mode .custom-simple-file-input::file-selector-button:hover,html.dark-mode .custom-simple-file-input::file-selector-button:focus,html.dark-mode .custom-simple-file-input::file-selector-button:active{background-color:#444}.custom-simple-file-input::file-selector-button:hover,.custom-simple-file-input::file-selector-button:focus,.custom-simple-file-input::file-selector-button:active{filter:none}.custom-simple-file-input::file-selector-button:active{border-color:#bbb;background-color:#ddd;color:#666;box-shadow:inset 0 0 2px rgba(0,0,0,.1)}input.shortcut-input{width:auto;max-width:120px;height:auto}.anim.fadeIn{opacity:0;animation-name:fadeIn;animation-duration:120ms;animation-timing-function:ease-in-out;animation-fill-mode:forwards}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.search-suggestions-animation{animation-name:searchSuggestions;animation-duration:120ms;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(0.62, 0.28, 0.23, 0.99)}@keyframes searchSuggestions{0%{opacity:.5;transform:scale(0.9)}100%{opacity:1;transform:scale(1)}}@keyframes loadingBob{0%{transform:translate3d(0, 0, 0)}30%{transform:translate3d(0, 0, 0)}50%{transform:translate3d(0, -10px, 0)}70%{transform:translate3d(0, 0, 0)}100%{transform:translate3d(0, 0, 0)}}@keyframes pointer{0%{transform:translate3d(0, 20px, 0) scale3d(0, 0, 0)}100%{transform:translate3d(0, 0, 0) scale3d(1, 1, 1)}}.anim.pointer{transform-origin:50% 100%;animation-name:pointer;animation-duration:180ms;animation-delay:0s;animation-timing-function:cubic-bezier(0.62, 0.28, 0.23, 0.99)}@keyframes highlight{0%{background-color:var(--color-primary-light)}33%{background-color:rgba(0,0,0,0)}66%{background-color:var(--color-primary-light)}100%{background-color:rgba(0,0,0,0)}}.anim-highlight{animation-name:highlight;animation-duration:2s;animation-delay:0s;animation-timing-function:linear}.tox.tox-fullscreen{position:fixed;top:0;height:100%;width:100%;max-width:100%;z-index:100}.tox.tox-tinymce{border-inline:0;border-bottom:0}.page-content.mce-content-body{padding-block-start:1rem;padding-block-end:1rem;outline:0;display:block;max-width:870px}.wysiwyg-input.mce-content-body{padding-block-start:1rem;padding-block-end:1rem;outline:0;display:block}.wysiwyg-input.mce-content-body:before{padding:1rem;top:4px;font-style:italic;color:rgba(34,47,62,.5)}html.dark-mode .wysiwyg-input.mce-content-body:before{color:rgba(155,155,155,.5)}.page-content.mce-content-body doc-root{display:block}.page-content.mce-content-body code-block{display:block}body.page-content.mce-content-body{padding-bottom:5rem}.tox .tox-pop__dialog .tox-toolbar{background:rgba(0,0,0,0) !important}.tox-toolbar__primary{justify-content:center}.page-content.mce-content-body code-block>*{pointer-events:none}.page-content.mce-content-body code-block pre{display:none}.page-content.mce-content-body details summary{pointer-events:none}.page-content.mce-content-body details doc-root{padding:12px;margin-left:-10px;margin-right:-10px;margin-bottom:-10px;margin-top:-10px;overflow:hidden}.page-content.mce-content-body .mce-preview-object.align-right{float:right !important;margin:6px 0 6px 12px}.page-content.mce-content-body .mce-preview-object.align-left{float:left !important;margin:6px 16px 16px 0}.page-content.mce-content-body .mce-preview-object.align-center{display:block;margin-left:auto;margin-right:auto}.page-content.mce-content-body .mce-preview-object iframe,.page-content.mce-content-body .mce-preview-object video{display:block;margin:0 !important;float:none !important}.page-content.mce-content-body td[data-mce-selected]::after,.page-content.mce-content-body th[data-mce-selected]::after{top:1px;left:1px;bottom:1px;right:1px;outline:1px dashed #1a85ff;outline-offset:0}.dark-mode .tox .tox-toolbar__primary,.dark-mode .tox .tox-menu,.dark-mode .tox .tox-dialog__header,.dark-mode .tox .tox-dialog,.dark-mode .tox .tox-dialog__footer,.dark-mode .tox .tox-pop__dialog,.dark-mode .tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#333 !important}.dark-mode .tox .tox-tbtn svg,.dark-mode .tox .tox-tbtn,.dark-mode .tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#dbdbdb;fill:#dbdbdb}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{width:6em !important}.tox-menu .tox-collection__item blockquote::before{content:none}.tox-menu .tox-collection__item blockquote{border-left:4px solid var(--color-primary) !important;padding:4px 6px !important}.tox-menu .tox-collection__item blockquote{border-left:4px solid var(--color-primary) !important;padding:4px 6px !important}.tox-menu .tox-collection__item p[style*=background-color]{padding:4px 6px !important;border-left:3px solid currentColor !important}.tox-menu .tox-collection__item[title^="<"]>div>div{font-family:var(--font-code) !important;border:1px solid #ddd !important;background-color:#eee !important;padding:4px 6px !important}.tox-menu .tox-collection__item-label{line-height:normal !important}.page-content.mce-content-body .task-list-item{margin-inline-start:0;position:relative}.page-content.mce-content-body .task-list-item>input[type=checkbox]{display:none}.page-content.mce-content-body .task-list-item:before{content:"";display:inline-block;border:2px solid #ccc;width:12px;height:12px;border-radius:2px;margin-inline-end:8px;vertical-align:text-top;cursor:pointer;position:absolute;inset-inline-start:-24px;top:4px}.page-content.mce-content-body .task-list-item[checked]:before{background-color:#ccc;background-image:url('data:image/svg+xml;utf8,');background-position:50% 50%;background-size:100% 100%}.page-content.mce-content-body [drawio-diagram]{cursor:pointer}:root{--editor-color-primary: #206ea7}.editor-container{background-color:#fff}html.dark-mode .editor-container{background-color:#222}.editor-container{position:relative}.editor-container.fullscreen{z-index:500}.editor-toolbar-main{display:flex;flex-wrap:wrap;justify-content:center;border-top:1px solid #ddd;border-bottom:1px solid #ddd;border-color:#ddd}html.dark-mode .editor-toolbar-main{border-color:#000}@media screen and (max-width: 1100px){.editor-toolbar-main{overflow-x:scroll;flex-wrap:nowrap;justify-content:start}}body.editor-is-fullscreen{overflow:hidden}body.editor-is-fullscreen .edit-area{z-index:20}.editor-content-area{min-height:100%;padding-block:1rem}.editor-content-area:focus{outline:0}.editor-content-wrap{position:relative;overflow-y:scroll;padding-inline:12px;flex:1}.comment-editor-container,.basic-editor-container{border-left:1px solid #ddd;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-radius:3px;border-color:#ddd}html.dark-mode .comment-editor-container,html.dark-mode .basic-editor-container{border-color:#000}.comment-editor-container .editor-toolbar-main,.basic-editor-container .editor-toolbar-main{border-radius:3px 3px 0 0;justify-content:end}.basic-editor-container .editor-content-area{padding-bottom:0}.editor-button{font-size:12px;padding:4px;color:#444;color:#444}html.dark-mode .editor-button{color:#999}.editor-button{border-radius:4px;display:flex;align-items:center;justify-content:center;margin:2px}.editor-button:hover{background-color:#eee;background-color:#eee}html.dark-mode .editor-button:hover{background-color:#333}.editor-button:hover{cursor:pointer;color:#000}.editor-button[disabled]{pointer-events:none;cursor:not-allowed;opacity:.6}.editor-button-active,.editor-button-active:hover{background-color:#ceebff}html.dark-mode .editor-button-active,html.dark-mode .editor-button-active:hover{background-color:#444}.editor-button-active,.editor-button-active:hover{color:#000}.editor-button-long{display:flex !important;flex-direction:row;align-items:center;justify-content:start;gap:.5rem}.editor-button-text{font-weight:400;color:#000}html.dark-mode .editor-button-text{color:#aaa}.editor-button-text{font-size:14px;flex:1;padding-inline-end:4px}.editor-button-format-preview{padding:4px 6px;display:block}.editor-button-long .editor-button-icon{width:24px;height:24px}.editor-button-icon svg{width:24px;height:24px;color:inherit;fill:currentColor;display:block}.editor-menu-button-icon{width:24px;height:24px}.editor-menu-button-icon svg{fill:#888}.editor-container[dir=rtl] .editor-menu-button-icon{rotate:180deg}.editor-button-with-menu-container{display:flex;flex-direction:row;gap:0;align-items:stretch;border-radius:4px}.editor-button-with-menu-container .editor-dropdown-menu-container{display:flex}.editor-button-with-menu-container .editor-dropdown-menu-container>.editor-dropdown-menu{top:100%}.editor-button-with-menu-container .editor-dropdown-menu-container>.editor-button{padding-inline:4px;margin-inline-start:-3px}.editor-button-with-menu-container .editor-dropdown-menu-container>.editor-button svg{width:12px;height:12px}.editor-button-with-menu-container:hover{outline:1px solid;outline-color:#ddd}html.dark-mode .editor-button-with-menu-container:hover{outline-color:#111}.editor-button-with-menu-container:hover{outline-offset:-3px}.editor-dropdown-menu-container{position:relative}.editor-dropdown-menu{position:absolute;border:1px solid;background-color:#fff}html.dark-mode .editor-dropdown-menu{background-color:#292929}.editor-dropdown-menu{border-color:#fff}html.dark-mode .editor-dropdown-menu{border-color:#333}.editor-dropdown-menu{box-shadow:0 0 6px 0 rgba(0,0,0,.15)}html.dark-mode .editor-dropdown-menu{box-shadow:0 1px 4px 0 rgba(0,0,0,.4)}.editor-dropdown-menu{z-index:99;display:flex;flex-direction:row;border-radius:3px}.editor-dropdown-menu-vertical{display:flex;flex-direction:column;align-items:stretch;min-width:160px}.editor-dropdown-menu-vertical .editor-button{border-bottom:0;text-align:start;display:block;width:100%}.editor-dropdown-menu-vertical>.editor-dropdown-menu-container .editor-dropdown-menu{inset-inline-start:100%;top:0}.editor-separator{display:block;height:1px;opacity:.8;background-color:#ddd}html.dark-mode .editor-separator{background-color:#000}.editor-format-menu-toggle{width:130px;height:32px;font-size:13px;overflow:hidden;padding-inline:12px;justify-content:start;background-image:url('data:image/svg+xml;utf8,');background-repeat:no-repeat;background-position:98% 50%;background-size:28px}.editor-container[dir=rtl] .editor-format-menu-toggle{background-position:2% 50%}.editor-format-menu .editor-dropdown-menu{min-width:300px}.editor-format-menu .editor-dropdown-menu .editor-dropdown-menu{min-width:220px}.editor-format-menu .editor-dropdown-menu .editor-button-icon{display:none}.editor-format-menu .editor-dropdown-menu .editor-dropdown-menu-container>.editor-button{padding:8px 10px}.editor-overflow-container{display:flex;border-inline:1px solid #ddd;padding-inline:4px;border-color:#ddd}html.dark-mode .editor-overflow-container{border-color:#000}.editor-overflow-container:first-child{border-inline-start:none}.editor-overflow-container:last-child{border-inline-end:none}.editor-overflow-container+.editor-overflow-container{border-inline-start:none}.editor-context-toolbar{position:fixed;border:1px solid #ddd;background-color:#fff}html.dark-mode .editor-context-toolbar{background-color:#222}.editor-context-toolbar{border-color:#ddd}html.dark-mode .editor-context-toolbar{border-color:#333}.editor-context-toolbar{box-shadow:0 2px 4px 0 rgba(0,0,0,.12)}html.dark-mode .editor-context-toolbar{box-shadow:0 1px 4px 0 rgba(0,0,0,.4)}.editor-context-toolbar{padding:.2rem;border-radius:4px;display:flex;flex-direction:row}.editor-context-toolbar:before{content:"";z-index:-1;display:block;width:8px;height:8px;position:absolute;background-color:#fff}html.dark-mode .editor-context-toolbar:before{background-color:#222}.editor-context-toolbar:before{border-top:1px solid #ddd;border-left:1px solid #ddd;border-color:#ddd}html.dark-mode .editor-context-toolbar:before{border-color:#333}.editor-context-toolbar:before{transform:rotate(45deg);left:50%;margin-left:-4px;top:-5px}.editor-context-toolbar.is-above:before{top:calc(100% - 5px);transform:rotate(225deg)}.editor-modal-wrapper{position:fixed;display:flex;align-items:center;justify-content:center;z-index:999;background-color:rgba(0,0,0,.5);width:100%;height:100%}.editor-modal{background-color:#fff}html.dark-mode .editor-modal{background-color:#222}.editor-modal{border-radius:4px;overflow:hidden;box-shadow:0 0 15px 0 rgba(0,0,0,.3);margin:6px;max-height:100%;overflow-y:auto}.editor-modal-header{display:flex;justify-content:space-between;align-items:stretch;background-color:var(--color-primary);color:#fff}.editor-modal-title{padding:8px 16px}.editor-modal-close{color:#fff;padding:8px 16px;align-items:center;justify-content:center;cursor:pointer}.editor-modal-close:hover{background-color:rgba(255,255,255,.1)}.editor-modal-close svg{width:1rem;height:1rem;fill:currentColor;display:block}.editor-modal-body{padding:16px}.editor-color-select-row{display:flex}.editor-color-select-option{width:28px;height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center}.editor-color-select-option:hover{border-radius:3px;box-sizing:border-box;z-index:3;box-shadow:0 0 4px 1px rgba(0,0,0,.25)}.editor-color-select-option[data-color=""] svg{width:20px;height:20px;fill:#888}.editor-table-creator-row{display:flex}.editor-table-creator-cell{border:1px solid;border-color:#ddd}html.dark-mode .editor-table-creator-cell{border-color:#000}.editor-table-creator-cell{width:15px;height:15px;cursor:pointer}.editor-table-creator-cell.active{background-color:var(--editor-color-primary)}.editor-table-creator-display{text-align:center;padding:.2em}.editor-external-content{min-width:500px;min-height:500px}.editor-external-content h4:first-child{margin-top:0}.editor-image-wrap{position:relative;display:inline-flex}.editor-node-resizer{position:absolute;left:0;right:auto;display:inline-block;outline:2px dashed var(--editor-color-primary);direction:ltr;pointer-events:none}.editor-node-resizer-handle{pointer-events:auto;position:absolute;display:block;width:10px;height:10px;border:2px solid var(--editor-color-primary);z-index:3;background-color:#fff}html.dark-mode .editor-node-resizer-handle{background-color:#000}.editor-node-resizer-handle{user-select:none}.editor-node-resizer-handle.nw{inset-inline-start:-5px;inset-block-start:-5px;cursor:nw-resize}.editor-node-resizer-handle.ne{inset-inline-end:-5px;inset-block-start:-5px;cursor:ne-resize}.editor-node-resizer-handle.se{inset-inline-end:-5px;inset-block-end:-5px;cursor:se-resize}.editor-node-resizer-handle.sw{inset-inline-start:-5px;inset-block-end:-5px;cursor:sw-resize}.editor-node-resizer-ghost{opacity:.5;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:2;pointer-events:none;background-color:var(--editor-color-primary)}.editor-node-resizer.active .editor-node-resizer-ghost{display:block}.editor-content-area details[contenteditable=false],.editor-content-area summary[contenteditable=false]{user-select:none}.editor-content-area details[contenteditable=false]>details *{pointer-events:none}.editor-content-area details summary{caret-color:rgba(0,0,0,0)}.editor-content-area details.selected{outline:1px dashed var(--editor-color-primary);outline-offset:1px}.editor-content-area [drawio-diagram]{cursor:pointer}.editor-table-marker{position:fixed;background-color:var(--editor-color-primary);z-index:3;user-select:none;opacity:0;transition:opacity 120ms ease-in-out}.editor-table-marker:hover,.editor-table-marker.active{opacity:.4}.editor-table-marker-column{width:4px;cursor:col-resize}.editor-table-marker-row{height:4px;cursor:row-resize}.editor-code-block-wrap{user-select:none}.editor-code-block-wrap>*{pointer-events:none}.editor-code-block-wrap.selected .cm-editor{border:1px dashed var(--editor-color-primary)}.editor-diagram.selected{outline:2px dashed var(--editor-color-primary)}.editor-media-wrap{display:inline-block;cursor:not-allowed}.editor-media-wrap iframe,.editor-media-wrap video{pointer-events:none}.editor-media-wrap.align-left{float:left}.editor-media-wrap.align-right{float:right}.editor-media-wrap.align-center{display:block;margin-inline:auto}.editor-content-area .task-list-item{margin-left:0;position:relative}.editor-content-area .task-list-item>input[type=checkbox]{display:none}.editor-content-area .task-list-item:before{content:"";display:inline-block;border:2px solid #ccc;width:12px;height:12px;border-radius:2px;margin-right:8px;vertical-align:text-top;cursor:pointer;position:absolute;left:-24px;top:4px}.editor-content-area .task-list-item[checked]:before{background-color:#ccc;background-image:url('data:image/svg+xml;utf8,');background-position:50% 50%;background-size:100% 100%}.editor-form-field-wrapper{margin-bottom:.5rem}.editor-form-field-input{display:block;width:400px;min-width:100px;max-width:100%;border:1px solid;border-color:#ddd}html.dark-mode .editor-form-field-input{border-color:#000}.editor-form-field-input{padding:.5rem;border-radius:4px;color:#444}html.dark-mode .editor-form-field-input{color:#bbb}@media screen and (max-width: 400px){.editor-form-field-input{min-width:160px}}textarea.editor-form-field-input{font-family:var(--font-code);width:350px;height:250px;font-size:12px}.editor-form-field-label{color:#444;font-weight:700;font-size:12px}.editor-form-actions{display:flex;justify-content:end;gap:12px;margin-top:16px}.editor-form-actions>button{display:block;font-size:.85rem;line-height:1.4em;padding:7.8px 16px;font-weight:400;border-radius:4px;cursor:pointer;box-shadow:none}.editor-form-actions>button:focus{outline:1px dotted currentColor;outline-offset:-6px;box-shadow:none;filter:brightness(90%)}.editor-form-action-primary{background-color:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.editor-form-action-primary:hover{box-shadow:0 0 4px 1px #ccc}html.dark-mode .editor-form-action-primary:hover{box-shadow:0 0 4px 1px rgba(0,0,0,.5)}.editor-form-action-primary:hover{filter:brightness(110%)}.editor-form-action-secondary{border:1px solid;border-color:#ccc}html.dark-mode .editor-form-action-secondary{border-color:#666}.editor-form-action-secondary{color:#666}html.dark-mode .editor-form-action-secondary{color:#aaa}.editor-form-action-secondary:hover,.editor-form-action-secondary:focus,.editor-form-action-secondary:active{color:#444}html.dark-mode .editor-form-action-secondary:hover,html.dark-mode .editor-form-action-secondary:focus,html.dark-mode .editor-form-action-secondary:active{color:#bbb}.editor-form-action-secondary:hover,.editor-form-action-secondary:focus,.editor-form-action-secondary:active{border:1px solid #ccc;box-shadow:0 1px 4px 0 rgba(0,0,0,.1);background-color:#f2f2f2;background-color:#f8f8f8}html.dark-mode .editor-form-action-secondary:hover,html.dark-mode .editor-form-action-secondary:focus,html.dark-mode .editor-form-action-secondary:active{background-color:#444}.editor-form-action-secondary:hover,.editor-form-action-secondary:focus,.editor-form-action-secondary:active{filter:none}.editor-form-action-secondary:active{border-color:#bbb;background-color:#ddd;color:#666;box-shadow:inset 0 0 2px rgba(0,0,0,.1)}.editor-form-tab-container{display:flex;flex-direction:row;gap:2rem}.editor-form-tab-controls{display:flex;flex-direction:column;align-items:stretch;gap:.25rem}@media screen and (max-width: 880px){.editor-form-tab-container{flex-direction:column;gap:.5rem}.editor-form-tab-controls{flex-direction:row}}.editor-form-tab-control{font-weight:bold;font-size:14px;color:#444}html.dark-mode .editor-form-tab-control{color:#666}.editor-form-tab-control{border-bottom:2px solid rgba(0,0,0,0);position:relative;cursor:pointer;padding:.25rem .5rem;text-align:start}.editor-form-tab-control[aria-selected=true]{border-color:var(--editor-color-primary);color:var(--editor-color-primary) !important}.editor-form-tab-control[aria-selected=true]:after,.editor-form-tab-control:hover:after{background-color:var(--editor-color-primary);opacity:.15;content:"";display:block;position:absolute;left:0;top:0;width:100%;height:100%}.editor-form-tab-contents{width:400px;max-width:100%}.editor-action-input-container{display:flex;flex-direction:row;align-items:end;justify-content:space-between;gap:.1rem}.editor-action-input-container>div:has(input){flex:1;min-width:100px}.editor-action-input-container .editor-button{margin-bottom:12px}.editor-action-input-container input{width:360px}.editor-color-field-container{position:relative}.editor-color-field-container input{padding-left:36px}.editor-color-field-container .editor-dropdown-menu-container{position:absolute;bottom:0}textarea.editor-form-field-input[name=source]{width:1000px;height:600px;max-height:60vh;max-width:80vw}.editor-theme-bold{font-weight:bold}.editor-theme-italic{font-style:italic}.editor-theme-strikethrough{text-decoration-line:line-through}.editor-theme-underline{text-decoration-line:underline}.editor-theme-underline-strikethrough{text-decoration:underline line-through}.cm-editor{font-size:12px;border:1px solid #ddd;line-height:1.4;margin-bottom:24px}.page-content .cm-editor,.CodeMirrorContainer .cm-editor{border-radius:4px}.cm-editor .cm-line{line-height:1.6}.cm-editor .cm-line,.cm-editor .cm-gutter{font-family:var(--font-code)}.dark-mode .cm-editor{border-color:#444}.cm-copy-button{position:absolute;display:flex;align-items:center;justify-content:center;top:-1px;inset-inline-end:-1px;background-color:#eee;border:1px solid #ddd;border-start-end-radius:4px;background-color:#eee}html.dark-mode .cm-copy-button{background-color:#333}.cm-copy-button{border-color:#ddd}html.dark-mode .cm-copy-button{border-color:#444}.cm-copy-button{color:#444}html.dark-mode .cm-copy-button{color:#888}.cm-copy-button{line-height:0;cursor:pointer;z-index:5;user-select:none;opacity:0;pointer-events:none;width:32px;height:32px;transition:background-color linear 60ms,color linear 60ms}.cm-copy-button svg{fill:currentColor}.cm-copy-button.success{background:var(--color-positive);color:#fff}.cm-copy-button:focus{outline:0 !important}.cm-editor:hover .cm-copy-button{user-select:all;opacity:.6;pointer-events:all}.notification{position:fixed;top:0;right:0;margin:32px;padding:16px 24px;background-color:#fff;background-color:#fff}html.dark-mode .notification{background-color:#444}.notification{border-radius:4px;border-inline-start:6px solid currentColor;box-shadow:0 1px 6px 1px rgba(22,22,22,.2);z-index:999999;cursor:pointer;max-width:360px;transition:transform ease-in-out 280ms;transform:translateX(580px);display:grid;grid-template-columns:42px 1fr 12px;color:#444;font-weight:700}.notification span,.notification svg{vertical-align:middle;justify-self:center;align-self:center}.notification svg{width:2.8rem;height:2.8rem;padding-inline-end:12px;fill:currentColor}.notification .dismiss{margin-top:-8px}.notification .dismiss svg{height:1rem;color:#444}html.dark-mode .notification .dismiss svg{color:#888}.notification span{vertical-align:middle;line-height:1.3}html.dark-mode .notification span{color:#bbb}.notification.pos{color:var(--color-positive)}.notification.neg{color:var(--color-negative)}.notification.warning{color:var(--color-warning)}.notification.showing{transform:translateX(0)}.notification.showing:hover{transform:translate3d(0, -2px, 0)}.chapter-contents-toggle{cursor:pointer;margin:0;transition:all ease-in-out 180ms;user-select:none}.chapter-contents-toggle svg[data-icon=caret-right]{margin-inline-end:0;font-size:1rem;transition:all ease-in-out 180ms;transform:rotate(0deg);transform-origin:50% 50%}.chapter-contents-toggle.open svg[data-icon=caret-right]{transform:rotate(90deg)}.chapter-contents-toggle svg[data-icon=caret-right]+*{margin-inline-start:3px}[overlay],.popup-background{background-color:rgba(0,0,0,.333)}html.dark-mode [overlay],html.dark-mode .popup-background{background-color:rgba(0,0,0,.6)}[overlay],.popup-background{position:fixed;z-index:95536;width:100%;height:100%;min-width:100%;min-height:100%;top:0;left:0;right:0;bottom:0;align-items:center;justify-content:center;display:none}.popup-body-wrap{display:flex}.popup-body{background-color:#fff}html.dark-mode .popup-body{background-color:#333}.popup-body{max-height:90%;max-width:1200px;width:90%;height:auto;margin:2% auto;border-radius:4px;box-shadow:0 0 15px 0 rgba(0,0,0,.3);overflow:hidden;z-index:999;display:flex;flex-direction:column;position:relative}.popup-body.small{margin:2% auto;width:800px;max-width:90%}.popup-body.very-small{margin:2% auto;width:600px;max-width:90%}.popup-body:before{display:flex;align-self:flex-start}.popup-body .popup-content{overflow-y:auto}.popup-body:focus{outline:0}.popup-header button,.popup-footer button{margin:0;border-radius:0;box-shadow:none;color:#fff;padding:6px 16px;cursor:pointer}.popup-header button:not(.popup-header-close){font-size:.8rem}.popup-header button:hover{background-color:rgba(255,255,255,.1)}.popup-footer{justify-content:end;background-color:var(--color-primary-light);min-height:41px}.popup-footer button{padding:10px 16px}.popup-header-close{border:0;color:#fff;font-size:16px;cursor:pointer}.popup-header-close svg{margin-right:0}.popup-header,.popup-footer{display:flex;position:relative;height:40px;flex:0}.popup-header .popup-title,.popup-footer .popup-title{color:#fff;margin-inline-end:auto;padding:8px 16px}.popup-header.flex-container-row,.popup-footer.flex-container-row{display:flex !important}body.flexbox-support #entity-selector-wrap .popup-body .form-group{height:444px;min-height:444px}#entity-selector-wrap .popup-body .form-group{margin:0}.popup-body .entity-selector-container{flex:1}.dropzone-overlay{position:absolute;display:flex;justify-content:center;align-items:center;font-size:1.333rem;width:98%;height:98%;left:1%;top:1%;border-radius:4px;border:1px dashed var(--color-primary);font-style:italic;box-sizing:content-box;background-clip:padding-box;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%23a9a9a9' fill-opacity='0.52' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E");background-color:var(--color-primary);color:#fff;opacity:.8;z-index:9;pointer-events:none;animation:dzAnimIn 240ms ease-in-out}.dropzone-landing-area{background-color:var(--color-primary-light);padding:16px 24px;width:100%;border:1px dashed var(--color-primary);color:var(--color-primary);border-radius:4px}@keyframes dzAnimIn{0%{opacity:0;transform:scale(0.7)}60%{transform:scale(1.1)}100%{transform:scale(1);opacity:.8}}@keyframes dzFileItemIn{0%{opacity:.5;transform:translateY(28px)}100%{opacity:1;transform:translateY(0)}}@keyframes dzFileItemOut{0%{opacity:1;transform:translateY(0)}100%{opacity:.5;transform:translateY(28px)}}.dropzone-file-item{width:260px;height:80px;position:relative;display:flex;margin:1rem;flex-direction:row;background:#fff}html.dark-mode .dropzone-file-item{background:#444}.dropzone-file-item{box-shadow:0 1px 6px 1px rgba(22,22,22,.2);border-radius:4px;overflow:hidden;padding-bottom:3px;animation:dzFileItemIn ease-in-out 240ms;transition:transform ease-in-out 120ms,box-shadow ease-in-out 120ms;cursor:pointer}.dropzone-file-item:hover{transform:translateY(-3px);box-shadow:0 3px 8px 1px rgba(22,22,22,.2)}.dropzone-file-item.dismiss{animation:dzFileItemOut ease-in-out 240ms}.dropzone-file-item .loading-container{text-align:start !important;margin:0}.dropzone-file-item-image-wrap{width:80px;position:relative;background-color:var(--color-primary-light)}.dropzone-file-item-image-wrap img{object-fit:cover;width:100%;height:100%;opacity:.8}.dropzone-file-item-text-wrap{flex:1;display:block;padding:1rem;overflow:auto}.dropzone-file-item-progress{position:absolute;bottom:0;left:0;font-size:0;height:3px;background-color:var(--color-primary);transition:width ease-in-out 240ms}.dropzone-file-item-label{line-height:1.2;margin-bottom:.2rem}.dropzone-file-item-label,.dropzone-file-item-status{align-items:center;font-size:.8rem;font-weight:700}.dropzone-file-item-status[data-status]{display:flex;font-size:.6rem;font-weight:500;line-height:1.2}.dropzone-file-item-status[data-status=success]{color:var(--color-positive)}.dropzone-file-item-status[data-status=error]{color:var(--color-negative)}.dropzone-file-item-status[data-status]+.dropzone-file-item-label{display:none}.image-manager-body{min-height:70vh}.image-manager-filter-bar{position:sticky;top:0;z-index:5;background-color:rgba(255,255,255,.85)}html.dark-mode .image-manager-filter-bar{background-color:rgba(80,80,80,.85)}.image-manager-filter-bar-bg{position:absolute;left:0;top:0;width:100%;height:100%;opacity:.15;z-index:-1}.image-manager-filters{box-shadow:0 1px 3px 1px rgba(76,76,76,.26);border-radius:4px;overflow:hidden;border-bottom:0 !important}html.dark-mode .image-manager-filters{border:1px solid #000 !important}.image-manager-filters button{line-height:0;background-color:#fff}html.dark-mode .image-manager-filters button{background-color:#333}.image-manager-filters svg{margin:0}.image-manager-list{padding:3px;display:grid;grid-template-columns:repeat(auto-fill, minmax(max(140px, 17%), 1fr));gap:3px;z-index:3}.image-manager-list>div{aspect-ratio:1}.image-manager-list .image{display:block;position:relative;border-radius:0;margin:0;width:100%;text-align:start;padding:0;cursor:pointer;aspect-ratio:1;border-color:#ddd}html.dark-mode .image-manager-list .image{border-color:#000}.image-manager-list .image{transition:all linear 80ms;overflow:hidden}.image-manager-list .image.selected{background-color:var(--color-primary-light);outline:currentColor 3px solid;border-radius:3px;transform:scale3d(0.95, 0.95, 0.95)}.image-manager-list .image img{width:100%;max-width:100%;display:block;object-fit:cover;height:auto}.image-manager-list .image .image-meta{opacity:0;position:absolute;width:100%;bottom:0;left:0;color:#eee;background-color:rgba(0,0,0,.7);font-size:10px;padding:3px 4px;pointer-events:none;transition:opacity ease-in-out 80ms}.image-manager-list .image .image-meta span{display:block}.image-manager-list .image.selected .image-meta,.image-manager-list .image:hover .image-meta,.image-manager-list .image:focus .image-meta{opacity:1}@media screen and (max-width: 880px){.image-manager-list .image .image-meta{display:none}}.image-manager .load-more{text-align:center;padding:12px 16px;clear:both}.image-manager .load-more .loading-container{margin:0}.image-manager .loading-container{text-align:center}.image-manager-list .image-manager-list-warning{grid-column:1/-1;aspect-ratio:auto}.image-manager-warning{background:#fff}html.dark-mode .image-manager-warning{background:#333}.image-manager-warning{color:var(--color-warning);font-weight:bold;border-inline:3px solid var(--color-warning)}.image-manager-sidebar{width:300px;margin:0 auto;overflow-y:auto;overflow-x:hidden;border-inline-start:1px solid #ddd;border-color:#ddd}html.dark-mode .image-manager-sidebar{border-color:#000}.image-manager-sidebar .inner{min-height:auto;padding:16px}.image-manager-sidebar .image-manager-viewer img{max-width:100%;max-height:180px;display:block;margin:0 auto 16px auto;box-shadow:0 1px 21px 1px rgba(76,76,76,.3)}.image-manager-sidebar .image-manager-viewer{height:196px;display:flex;align-items:center;justify-content:center}.image-manager-sidebar .image-manager-viewer a{display:inline-block}@media screen and (max-width: 880px){.image-manager-sidebar{border-inline-start:0}}.image-manager-content{display:flex;flex-direction:column;flex:1;overflow-y:scroll}.image-manager-content .container{width:100%}.image-manager-content .full-tab{text-align:center}.tab-container.bordered [role=tablist] button[role=tab]{border-inline-end:1px solid #ddd;border-inline-end-color:#ddd}html.dark-mode .tab-container.bordered [role=tablist] button[role=tab]{border-inline-end-color:#000}.tab-container.bordered [role=tablist] button[role=tab]:last-child{border-inline-end:none}.tab-container [role=tablist]{display:flex;align-items:end;justify-items:start;text-align:start;border-bottom:1px solid #ddd;border-color:#ddd}html.dark-mode .tab-container [role=tablist]{border-color:#444}.tab-container [role=tablist]{margin-bottom:16px}.tab-container [role=tablist] button[role=tab]{display:inline-block;padding:12px;color:rgba(0,0,0,.5)}html.dark-mode .tab-container [role=tablist] button[role=tab]{color:rgba(255,255,255,.5)}.tab-container [role=tablist] button[role=tab]{cursor:pointer;border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-1px}.tab-container [role=tablist] button[role=tab][aria-selected=true]{color:var(--color-link) !important;border-bottom-color:var(--color-link) !important;outline:0 !important}.tab-container [role=tablist] button[role=tab]:hover,.tab-container [role=tablist] button[role=tab]:focus{color:rgba(0,0,0,.8)}html.dark-mode .tab-container [role=tablist] button[role=tab]:hover,html.dark-mode .tab-container [role=tablist] button[role=tab]:focus{color:rgba(255,255,255,.8)}.tab-container [role=tablist] button[role=tab]:hover,.tab-container [role=tablist] button[role=tab]:focus{border-bottom-color:rgba(0,0,0,.2)}html.dark-mode .tab-container [role=tablist] button[role=tab]:hover,html.dark-mode .tab-container [role=tablist] button[role=tab]:focus{border-bottom-color:rgba(255,255,255,.2)}.tab-container [role=tablist] button[role=tab]:focus{outline:1px dotted var(--color-primary);outline-offset:-2px}.tab-container [role=tablist].controls-card{margin-bottom:0;border-bottom:0;padding:0 6px}.tab-container [role=tabpanel].no-outline:focus{outline:none}.image-picker .none{display:none}.code-editor .CodeMirror{height:auto;min-height:50vh;border-bottom:0}.code-editor .lang-options{overflow-y:scroll;flex-basis:200px;flex-grow:1}.code-editor .lang-options button{display:block;padding:6px 16px;border-bottom:1px solid;color:#333}html.dark-mode .code-editor .lang-options button{color:#aaa}.code-editor .lang-options button{border-bottom-color:#eee}html.dark-mode .code-editor .lang-options button{border-bottom-color:#000}.code-editor .lang-options button{cursor:pointer;width:100%;text-align:left;font-family:var(--font-code);font-size:.7rem;padding-left:30px}.code-editor .lang-options button:hover,.code-editor .lang-options button.active{background-color:var(--color-primary-light);color:var(--color-primary)}.code-editor button.lang-option-favorite-toggle{position:absolute;top:0;left:0;width:28px;font-size:1rem;border:0;line-height:1;padding:2px;z-index:2;height:100%;text-align:center;color:var(--color-primary)}.code-editor button.lang-option-favorite-toggle svg{margin:0}.code-editor button[data-favourite=true]~.action-favourite,.code-editor button[data-favourite=false]~.action-unfavourite{display:none}.code-editor .action-favourite{opacity:.5}.code-editor button:hover~.action-favourite{opacity:1}.code-editor label{background-color:var(--color-primary-light);width:100%;color:var(--color-primary);padding:3px 12px;margin-bottom:0}.code-editor-language-list{position:relative;width:160px;z-index:2;align-items:stretch}.code-editor-language-list input{border-radius:0;border:0;border-bottom:1px solid #ddd;padding:6px 12px;height:auto}.code-editor-main{flex:1;min-width:0}.code-editor-main .cm-editor{margin-bottom:0;z-index:1;max-width:100%;width:100%}.code-editor-body-wrap{height:80vh}@media screen and (max-width: 600px){.code-editor .lang-options{display:none}.code-editor-body-wrap{flex-direction:column}.code-editor-language-list,.code-editor-language-list input{width:100%}}.comments-container{padding-inline:32px}@media screen and (max-width: 880px){.comments-container{padding-inline:6px}}.comment-box{border-radius:4px;border:1px solid #ddd;border-color:#ddd}html.dark-mode .comment-box{border-color:#000}.comment-box{background-color:#fff}html.dark-mode .comment-box{background-color:#222}.comment-box .content{font-size:.666em;padding:6px 12px}.comment-box .content p,.comment-box .content ul,.comment-box .content ol{font-size:14px;margin:.5em 0}.comment-box .actions{opacity:0;transition:opacity ease-in-out 120ms}.comment-box:hover .actions,.comment-box:focus-within .actions{opacity:1}.comment-box .actions button:focus{outline:1px dotted var(--color-primary)}@media screen and (max-width: 880px){.comment-box .actions{opacity:1}}.comment-box .header{border-bottom:1px solid #ddd;padding:6px 12px;border-color:#ddd}html.dark-mode .comment-box .header{border-color:#000}.comment-box .header a{color:inherit}.comment-box .header .text-muted{color:#999}.comment-box .header .meta a,.comment-box .header .meta span{white-space:nowrap}.comment-box .header .right-meta .text-muted{opacity:.8}.comment-thread-indicator{border-inline-start:3px dotted #ddd;border-color:#ddd}html.dark-mode .comment-thread-indicator{border-color:#444}.comment-thread-indicator{margin-inline-start:6px;width:24px;height:calc(100% - 16px)}.comment-reference-indicator-wrap a{float:left;margin-top:6px;font-size:12px;display:inline-block;font-weight:bold;position:relative;border-radius:4px;overflow:hidden;padding:2px 6px 2px 0;margin-inline-end:6px;color:var(--color-link)}.comment-reference-indicator-wrap a span{display:none}.comment-reference-indicator-wrap a.outdated span{display:inline}.comment-reference-indicator-wrap a.outdated.missing{color:var(--color-warning);pointer-events:none}.comment-reference-indicator-wrap a svg{width:24px;margin-inline-end:0}.comment-reference-indicator-wrap a:after{background-color:currentColor;content:"";width:100%;height:100%;position:absolute;left:0;top:0;opacity:.15}.comment-reference-indicator-wrap a[href="#"]{color:#444;pointer-events:none}.comment-branch .comment-box{margin-bottom:16px}.comment-branch .comment-branch .comment-branch .comment-branch .comment-thread-indicator{display:none}.comment-reply{display:none;margin:0 !important;margin-bottom:-3px !important}.comment-branch .comment-branch .comment-branch .comment-branch .comment-reply{display:block}.comment-container .empty-state{display:none}.comment-container:not(:has([component=page-comment])) .empty-state{display:block}.comment-container-compact .comment-box{margin-bottom:6px}.comment-container-compact .comment-box .meta{font-size:.8rem}.comment-container-compact .comment-box .header{padding:6px}.comment-container-compact .comment-box .right-meta{display:none}.comment-container-compact .comment-box .content{padding:6px 12px}.comment-container-compact .comment-thread-indicator{width:16px}.comment-container-super-compact .comment-box .meta{font-size:12px}.comment-container-super-compact .comment-box .avatar{width:22px;height:22px;margin-inline-end:2px !important}.comment-container-super-compact .comment-box .content{padding:3px 12px;line-height:1.2}.comment-container-super-compact .comment-box .content p{font-size:12px}.comment-container-super-compact .comment-thread-indicator{width:9px;margin-inline-start:3px}#tag-manager .drag-card{max-width:500px}.template-item{cursor:pointer;position:relative}.template-item:hover,.template-item .template-item-actions button:hover{background-color:#f2f2f2}.template-item .template-item-actions{position:absolute;top:0;inset-inline-end:0;width:50px;height:100%;display:flex;flex-direction:column;border-inline-start:1px solid;border-color:#ddd}html.dark-mode .template-item .template-item-actions{border-color:#000}.template-item .template-item-actions button{cursor:pointer;flex:1;background-color:#fff}html.dark-mode .template-item .template-item-actions button{background-color:#222}.template-item .template-item-actions button{border:0;border-top:1px solid;border-color:#ddd}html.dark-mode .template-item .template-item-actions button{border-color:#000}.template-item .template-item-actions button svg{margin:0}.template-item .template-item-actions button:first-child{border-top:0}.dropdown-search{position:relative}.dropdown-search-toggle-breadcrumb{border:1px solid rgba(0,0,0,0);border-radius:4px;line-height:normal;padding:6px;opacity:.6;cursor:pointer}.dropdown-search-toggle-breadcrumb:hover{opacity:1;border-color:#ddd}html.dark-mode .dropdown-search-toggle-breadcrumb:hover{border-color:#444}.dropdown-search-toggle-breadcrumb .svg-icon{margin-inline-end:0}.dropdown-search-toggle-select{display:flex;gap:12px;line-height:normal}.dropdown-search-toggle-select .svg-icon{height:26px;width:26px;margin:0}.dropdown-search-toggle-select .avatar{height:22px;width:22px}.dropdown-search-toggle-select .avatar+span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-search-toggle-select .dropdown-search-toggle-caret{font-size:1.15rem}.dropdown-search-toggle-select-label{min-width:0;white-space:nowrap}.dropdown-search-toggle-select-caret{line-height:0;margin-left:auto;margin-top:-2px;display:flex;align-items:center}.dropdown-search-dropdown{box-shadow:0 1px 3px 1px rgba(76,76,76,.26);overflow:hidden;min-height:100px;width:240px;display:none;position:absolute;z-index:80;right:0;top:0;margin-top:16px}html[dir=rtl] .dropdown-search-dropdown{right:auto;left:-16px}.dropdown-search-dropdown .dropdown-search-search .svg-icon{position:absolute;left:12px}html[dir=rtl] .dropdown-search-dropdown .dropdown-search-search .svg-icon{right:12px;left:auto}.dropdown-search-dropdown .dropdown-search-search .svg-icon{top:11px;fill:#888;pointer-events:none}.dropdown-search-dropdown .dropdown-search-list{max-height:400px;overflow-y:scroll;text-align:start}.dropdown-search-dropdown .dropdown-search-item{padding:12px 16px;font-size:.8rem}.dropdown-search-dropdown .dropdown-search-item:hover,.dropdown-search-dropdown .dropdown-search-item:focus{background-color:#f2f2f2;background-color:#f2f2f2}html.dark-mode .dropdown-search-dropdown .dropdown-search-item:hover,html.dark-mode .dropdown-search-dropdown .dropdown-search-item:focus{background-color:#444}.dropdown-search-dropdown .dropdown-search-item:hover,.dropdown-search-dropdown .dropdown-search-item:focus{text-decoration:none}.dropdown-search-dropdown input,.dropdown-search-dropdown input:focus{padding-inline-start:32px;border-radius:0;border:0;border-bottom:1px solid #ddd}.dropdown-search-dropdown input:focus{outline:0}.dropdown-search-dropdown .svg-icon{font-size:14px}.dropdown-search-dropdown.compact .dropdown-search-list{max-height:320px}.dropdown-search-dropdown.compact .dropdown-search-item{padding:6px 12px}.dropdown-search-dropdown.compact .avatar{width:22px;height:22px}@media screen and (max-width: 1000px){.dropdown-search-dropdown{inset-inline:16px auto}.dropdown-search-dropdown .dropdown-search-list{max-height:240px}}.item-list{box-shadow:0 1px 3px 0 rgba(0,0,0,.1)}.item-list-row{border:1.5px solid;border-color:#e2e2e2}html.dark-mode .item-list-row{border-color:#444}.item-list-row{border-bottom-width:0}.item-list-row label{padding-bottom:0}.item-list-row:hover{background-color:#f6f6f6}html.dark-mode .item-list-row:hover{background-color:#333}.item-list-row:first-child{border-radius:4px 4px 0 0}.item-list-row:last-child{border-radius:0 0 4px 4px;border-bottom-width:1.5px}.item-list-row:first-child:last-child{border-radius:4px}.item-list-row-toggle-all{visibility:hidden}.item-list-row:hover .item-list-row-toggle-all{visibility:visible}.status-indicator-active,.status-indicator-inactive{width:8px;height:8px;border-radius:50%;display:inline-block}.status-indicator-active{background-color:var(--color-positive)}.status-indicator-inactive{background-color:var(--color-negative)}.shortcut-container{background-color:rgba(0,0,0,.25);pointer-events:none;position:fixed;left:0;top:0;width:100%;height:100%;z-index:99}.shortcut-linkage{position:fixed;box-shadow:0 0 4px 0 #fff;border-radius:3px}.shortcut-hint{position:fixed;padding:3px 3px;font-size:.85rem;font-weight:700;line-height:1;background-color:#eee;border-radius:3px;border:1px solid #b4b4b4;box-shadow:0 1px 1px rgba(0,0,0,.2),0 2px 0 0 rgba(255,255,255,.7) inset;color:#333}.back-to-top-container{position:fixed;bottom:16px;right:24px;opacity:0;z-index:999;transition:opacity ease-in-out 180ms}.back-to-top-container:hover{opacity:1 !important}.back-to-top{background-color:var(--color-primary);padding:5px 7px;cursor:pointer;color:#fff;fill:#fff}.back-to-top .inner svg{width:26.6666666667px;height:26.6666666667px;margin-inline-end:4px}.back-to-top{width:40px;height:40px;border-radius:40px;transition:all ease-in-out 180ms;overflow:hidden}.back-to-top:hover{width:136px;opacity:1 !important}.back-to-top .inner{width:136px;text-align:start}.back-to-top span{position:relative;vertical-align:top;line-height:2}.back-to-top-progress{position:absolute;top:-3px;inset-inline-start:-3px;width:100%;height:100%;pointer-events:none;overflow:visible}.back-to-top-progress path{fill:none;stroke:var(--color-primary);stroke-width:2px;stroke-linecap:butt;transition:stroke-dasharray ease-in-out 120ms}.scroll-box{list-style:none;padding:0;margin:0;max-height:280px;overflow-y:scroll;border:1px solid;border-color:#ddd}html.dark-mode .scroll-box{border-color:#000}.scroll-box{border-radius:3px;min-height:20px;background-color:#eee}html.dark-mode .scroll-box{background-color:#000}.scroll-box-item{border-bottom:1px solid;border-top:1px solid;border-color:#ddd}html.dark-mode .scroll-box-item{border-color:#000}.scroll-box-item{margin-top:-1px;background-color:#fff}html.dark-mode .scroll-box-item{background-color:#222}.scroll-box-item{display:flex;align-items:flex-start;padding:1px}.scroll-box-item:last-child{border-bottom:0}.scroll-box-item:hover{cursor:pointer;background-color:#f8f8f8}html.dark-mode .scroll-box-item:hover{background-color:#333}.scroll-box-item.items-center{align-items:center}.scroll-box-item .handle{color:#aaa;cursor:grab}.scroll-box-item button{opacity:.6;line-height:1}.scroll-box-item .handle svg{margin:0}.scroll-box-item>*{padding:6px 16px}.scroll-box-item .handle+*{padding-left:0}.scroll-box-item:hover .handle{color:#444}html.dark-mode .scroll-box-item:hover .handle{color:#fff}.scroll-box-item:hover button{opacity:1}.scroll-box-item a:hover{text-decoration:none}input.scroll-box-search,.scroll-box-header-item{font-size:.8rem;border:1px solid;border-color:#ddd}html.dark-mode input.scroll-box-search,html.dark-mode .scroll-box-header-item{border-color:#000}input.scroll-box-search,.scroll-box-header-item{background-color:#fff}html.dark-mode input.scroll-box-search,html.dark-mode .scroll-box-header-item{background-color:#222}input.scroll-box-search,.scroll-box-header-item{margin-bottom:-1px;border-radius:3px 3px 0 0;width:100%;max-width:100%;height:auto;line-height:1.4;color:#666}.scroll-box-search+.scroll-box,.scroll-box-header-item+.scroll-box{border-radius:0 0 3px 3px}.scroll-box.configured-option-list [data-action=add]{display:none}.scroll-box.available-option-list [data-action=remove],.scroll-box.available-option-list [data-action=move_up],.scroll-box.available-option-list [data-action=move_down]{display:none}.scroll-box.layout-editor-column-left [data-action=move_left],.scroll-box.layout-editor-column-right [data-action=move_right],.scroll-box.layout-editor-column-unused [data-action=move_right],.scroll-box.layout-editor-column-unused [data-action=move_left],.scroll-box.layout-editor-column-unused [data-action=remove],.scroll-box.layout-editor-column-left [data-action=add],.scroll-box.layout-editor-column-right [data-action=add],.scroll-box.layout-editor-column-center [data-action=add]{display:none}.scroll-box:has(>li:not(.empty-state)) .empty-state{display:none}details.section-expander summary{border-top:1px solid #ddd;border-color:#ddd}html.dark-mode details.section-expander summary{border-color:#000}details.section-expander summary{font-weight:bold;font-size:12px;color:#888;cursor:pointer;padding-block:6px}details.section-expander:open summary{margin-bottom:12px}details.section-expander{border-bottom:1px solid #ddd;border-color:#ddd}html.dark-mode details.section-expander{border-color:#000}header.grid{grid-template-columns:minmax(max-content, 2fr) 1fr minmax(max-content, 2fr)}@media screen and (max-width: 1000px){header.grid{grid-template-columns:1fr;grid-row-gap:0}}header{position:relative;display:block;z-index:11;top:0;color:#fafafa;border-bottom:1px solid #ddd;box-shadow:0 1px 6px -1px rgba(0,0,0,.1);border-bottom-color:#ddd}html.dark-mode header{border-bottom-color:#000}header .header-links{display:flex;align-items:center;justify-content:end}header .links{display:inline-block;vertical-align:top}header .links a{display:inline-block;padding:10px 16px;color:#fff;border-radius:3px}header .links a:hover{text-decoration:none;background-color:rgba(255,255,255,.15)}header .dropdown-container{padding-inline-start:16px;padding-inline-end:0}header .avatar,header .user-name{display:inline-block}header .avatar{width:30px;height:30px}header .user-name{vertical-align:top;position:relative;display:inline-flex;align-items:center;cursor:pointer;padding:12px;margin:0 -12px;border-radius:3px;gap:6px;color:#fff}header .user-name>span{padding-inline-start:6px;display:inline-block;line-height:1}header .user-name>svg{font-size:18px;margin-top:-2px;margin-inline-end:0}header .user-name:hover{background-color:rgba(255,255,255,.15)}@media screen and (min-width: 1001px)and (max-width: 1100px){header .user-name{padding-inline-start:6px}header .user-name .name{display:none}}.header *,.primary-background *{outline-color:#fff}header .search-box{display:inline-block}header .search-box input{background-color:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.2);border-radius:40px;color:#eee;z-index:2;height:auto;padding:9px;padding-inline-start:40px}header .search-box input:focus{outline:none;border:1px solid rgba(255,255,255,.4)}header .search-box input::placeholder{color:#fff;opacity:.6}@media screen and (min-width: 1001px)and (max-width: 1100px){header .search-box{max-width:200px}}header .search-box:focus-within #header-search-box-button{opacity:1}#header-search-box-button{z-index:1;inset-inline-start:16px;top:10px;color:#fff;opacity:.6;color:rgba(255,255,255,.8)}html.dark-mode #header-search-box-button{color:#aaa}#header-search-box-button svg{margin-inline-end:0}.global-search-suggestions{display:none;position:absolute;top:-12px;left:0;right:0;z-index:-1;margin-left:-48px;margin-right:-48px;padding-top:56px;border-radius:3px;box-shadow:0 2px 2px 1px rgba(0,0,0,.13);transform-origin:top center;opacity:.5;transform:scale(0.9)}.global-search-suggestions .entity-item-snippet p{display:none}.global-search-suggestions .entity-item-snippet{font-size:.8rem}.global-search-suggestions .entity-list-item-name{font-size:.9rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.global-search-suggestions .global-search-loading{position:absolute;width:100%}header .search-box.search-active:focus-within .global-search-suggestions{display:block}header .search-box.search-active:focus-within input{background-color:#eee}html.dark-mode header .search-box.search-active:focus-within input{background-color:#333}header .search-box.search-active:focus-within input{border-color:#ddd}html.dark-mode header .search-box.search-active:focus-within input{border-color:#111}header .search-box.search-active:focus-within #header-search-box-button,header .search-box.search-active:focus-within input{color:#444}html.dark-mode header .search-box.search-active:focus-within #header-search-box-button,html.dark-mode header .search-box.search-active:focus-within input{color:#aaa}.logo{display:inline-flex;padding:6px 12px;margin:6px -12px;gap:12px;align-items:center;border-radius:4px}.logo:hover{color:#fff;text-decoration:none;background-color:rgba(255,255,255,.15)}.logo-text{font-size:1.8em;color:#fff;font-weight:400;line-height:1}.logo-image{height:43px}.mobile-menu-toggle{color:#fff;fill:#fff;font-size:2em;border:2px solid rgba(255,255,255,.8);border-radius:4px;padding:0 6px;line-height:1;cursor:pointer;user-select:none}.mobile-menu-toggle svg{margin:0;bottom:-2px}@media screen and (max-width: 1000px){header .header-links{background-color:#fff}html.dark-mode header .header-links{background-color:#333}header .header-links{display:none;z-index:10;inset-inline-end:16px;border-radius:4px;overflow:hidden;position:absolute;box-shadow:0 2px 2px 1px rgba(0,0,0,.13);margin-top:16px;padding:6px 0}header .header-links.show{display:block}header .links a,header .dropdown-container ul li a,header .dropdown-container ul li button{text-align:start;display:grid;align-items:center;padding:8px 16px;gap:16px;color:#444;grid-template-columns:16px auto;line-height:1.4;color:#444}html.dark-mode header .links a,html.dark-mode header .dropdown-container ul li a,html.dark-mode header .dropdown-container ul li button{color:#eee}header .links a svg,header .dropdown-container ul li a svg,header .dropdown-container ul li button svg{margin-inline-end:12px;width:16px}header .links a:hover,header .dropdown-container ul li a:hover,header .dropdown-container ul li button:hover{background-color:var(--color-primary-light);color:var(--color-primary);text-decoration:none}header .links a:focus,header .dropdown-container ul li a:focus,header .dropdown-container ul li button:focus{background-color:#eee}html.dark-mode header .links a:focus,html.dark-mode header .dropdown-container ul li a:focus,html.dark-mode header .dropdown-container ul li button:focus{background-color:#333}header .links a:focus,header .dropdown-container ul li a:focus,header .dropdown-container ul li button:focus{outline-color:var(--color-primary);color:var(--color-primary)}header .dropdown-container{display:block;padding-inline-start:0}header .links{display:block}header .dropdown-container ul{display:block !important;position:relative;background-color:rgba(0,0,0,0);border:0;padding:0;margin:0;box-shadow:none}}.tri-layout-mobile-tabs{position:sticky;top:0;z-index:5;background-color:#fff;border-bottom:1px solid #ddd;border-bottom-color:#ddd}html.dark-mode .tri-layout-mobile-tabs{border-bottom-color:#333}.tri-layout-mobile-tabs{box-shadow:0 1px 6px -1px rgba(0,0,0,.1)}.tri-layout-mobile-tab{text-align:center;border-bottom:3px solid #bbb;cursor:pointer;margin:0;background-color:#fff}html.dark-mode .tri-layout-mobile-tab{background-color:#222}.tri-layout-mobile-tab{border-bottom-color:#bbb}html.dark-mode .tri-layout-mobile-tab{border-bottom-color:#333}.tri-layout-mobile-tab:first-child{border-inline-end:1px solid #ddd;border-inline-end-color:#ddd}html.dark-mode .tri-layout-mobile-tab:first-child{border-inline-end-color:#000}.tri-layout-mobile-tab[aria-selected=true]{border-bottom-color:currentColor !important}.breadcrumbs{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:wrap;opacity:.7}.breadcrumbs .icon-list-item{width:auto;padding-top:6px;padding-bottom:6px}.breadcrumbs .separator{display:inline-block;fill:#aaa;font-size:1.6em;line-height:.8;margin:-2px 0 0}.breadcrumbs:hover,.breadcrumbs:focus-within{opacity:1}@media(prefers-contrast: more){.breadcrumbs{opacity:1}}@media screen and (max-width: 1000px){.breadcrumbs .icon-list-item{padding:6px}.breadcrumbs .icon-list-item>span+span{display:none}.breadcrumbs .icon-list-item>span:first-child{margin-inline-end:0}}.faded a,.faded button,.faded span,.faded span>div{color:#666;fill:#666}.faded .text-button{opacity:.5;transition:all ease-in-out 120ms}.faded .text-button:hover{opacity:1;text-decoration:none}.faded span.faded-text{display:inline-block;padding:12px}footer{flex-shrink:0;padding:1rem 1rem 2rem 1rem;text-align:center}footer a{margin:0 .5em}body.flexbox footer{display:none}.book-contents .entity-list-item .icon{width:4px;border-radius:1px;justify-self:stretch;align-self:stretch;height:auto;margin-inline-end:6px}.book-contents .entity-list-item .icon:after{opacity:.5}.book-contents .entity-list-item .icon svg{display:none}.book-contents .entity-list-item p{margin-bottom:0}.book-contents .entity-list-item .inner-page{padding-top:0;padding-bottom:0}.entity-list-item+.chapter-expansion{display:flex;padding:0 16px 16px 16px;align-items:center;border:0;width:100%;position:relative}.entity-list-item+.chapter-expansion>.icon{width:4px;height:auto;border-radius:0 0 1px 1px;align-self:stretch;flex-shrink:0}.entity-list-item+.chapter-expansion>.icon:before{position:absolute;top:0;left:0;width:100%;height:1px;background-color:currentColor;content:"";opacity:.5}.entity-list-item+.chapter-expansion>.icon:after{opacity:.5}.entity-list-item+.chapter-expansion .icon svg{display:none}.entity-list-item+.chapter-expansion>.content{flex:1}.entity-list-item+.chapter-expansion .chapter-contents-toggle{border-radius:0 4px 4px 0;padding:6px 19px;width:100%;text-align:start}.entity-list-item+.chapter-expansion .chapter-contents-toggle:hover{background-color:rgba(0,0,0,.06)}.entity-list-item.has-children{padding-bottom:0}.entity-list-item.has-children>.icon{border-radius:4px 4px 0 0}.inset-list{display:none}.inset-list .entity-list-item-name{font-size:1rem}.inset-list .entity-list-item-children{padding-top:0;padding-bottom:0}.sidebar-page-nav{list-style:none;margin-block-start:12px;margin-block-end:16px;margin-inline-start:6px;margin-inline-end:0;position:relative;padding-inline:0;display:block}.sidebar-page-nav:after{content:"";display:block;position:absolute;left:0}html[dir=rtl] .sidebar-page-nav:after{left:auto;right:0}.sidebar-page-nav:after{background-color:rgba(0,0,0,.2)}html.dark-mode .sidebar-page-nav:after{background-color:rgba(255,255,255,.2)}.sidebar-page-nav:after{width:2px;top:5px;bottom:5px;z-index:0}.sidebar-page-nav li{margin-bottom:4px;font-size:.95em;position:relative}.sidebar-page-nav .h1{padding-inline-start:16px}.sidebar-page-nav .h2{padding-inline-start:24px}.sidebar-page-nav .h3{padding-inline-start:32px}.sidebar-page-nav .h4{padding-inline-start:40px}.sidebar-page-nav .h5{padding-inline-start:48px}.sidebar-page-nav .h6{padding-inline-start:56px}.sidebar-page-nav .current-heading{font-weight:bold}.sidebar-page-nav li:not(.current-heading) .sidebar-page-nav-bullet{background-color:#bbb !important}html.dark-mode .sidebar-page-nav li:not(.current-heading) .sidebar-page-nav-bullet{background-color:#666 !important}.sidebar-page-nav .sidebar-page-nav-bullet{width:6px;height:6px;position:absolute;left:-2px;top:30%;border-radius:50%;box-shadow:0 0 0 6px #f2f2f2;box-shadow:0 0 0 6px #f2f2f2}html.dark-mode .sidebar-page-nav .sidebar-page-nav-bullet{box-shadow:0 0 0 6px #111}.sidebar-page-nav .sidebar-page-nav-bullet{z-index:1}html[dir=rtl] .sidebar-page-nav .sidebar-page-nav-bullet{left:auto;right:-2px}.toolbox-tab-content .sidebar-page-nav .sidebar-page-nav-bullet{box-shadow:0 0 0 6px #fff}.toolbox-tab-content .sidebar-page-nav li{font-size:1em}.book-tree .sidebar-page-list{list-style:none;margin-block-start:6px;margin-block-end:0;margin-inline-start:-12px;margin-inline-end:-12px;padding-inline-start:0;padding-inline-end:0}.book-tree .sidebar-page-list ul{list-style:none;padding-inline-start:1rem;padding-inline-end:0}.book-tree .sidebar-page-list .entity-list-item{padding-top:2px;padding-bottom:2px;background-clip:content-box;border-radius:0 3px 3px 0;padding-inline-end:0}.book-tree .sidebar-page-list .entity-list-item .content{width:100%;padding-top:6px;padding-bottom:6px;max-width:calc(100% - 20px)}.book-tree .sidebar-page-list .entity-list-item.selected{background-color:rgba(0,0,0,.06)}html.dark-mode .book-tree .sidebar-page-list .entity-list-item.selected{background-color:rgba(255,255,255,.06)}.book-tree .sidebar-page-list .entity-list-item.no-hover{margin-top:-6px;padding-inline-end:0}.book-tree .sidebar-page-list .entity-list-item-name{font-size:1em;margin:0;margin-inline-end:16px}.book-tree .sidebar-page-list .chapter-child-menu{font-size:.8rem;margin-top:-0.2rem;margin-inline-start:-1rem}.book-tree .sidebar-page-list .chapter-contents-toggle{display:block;width:100%;text-align:start;padding:3px 12px 6px 12px;border-radius:0 3px 3px 0;line-height:1;margin-top:-3px;margin-bottom:-3px}.book-tree .sidebar-page-list .chapter-contents-toggle:hover{background-color:rgba(0,0,0,.06)}html.dark-mode .book-tree .sidebar-page-list .chapter-contents-toggle:hover{background-color:rgba(255,255,255,.06)}.book-tree .sidebar-page-list .entity-list-item .icon{z-index:2;width:4px;height:auto;align-self:stretch;flex-shrink:0;border-radius:1px;opacity:.8}.book-tree .sidebar-page-list .entity-list-item .icon:after{opacity:1}.book-tree .sidebar-page-list .entity-list-item .icon svg{display:none}.chapter-child-menu ul.sub-menu{display:none;padding-inline-start:0;position:relative;margin-bottom:0}.sortable-page-list,.sortable-page-sublist{list-style:none}.sort-box{margin-bottom:16px;padding:16px 32px;position:relative}.sort-box summary:focus{outline:1px dashed var(--color-primary);outline-offset:5px}.sort-box::before{pointer-events:none;content:"";border-radius:4px;opacity:.5;border:2px solid var(--color-book);display:block;top:0;bottom:0;left:0;right:0;position:absolute}.sort-box-options{display:flex;flex-wrap:wrap;justify-content:space-between}.sort-box-options .button{margin-inline-start:0}.sortable-page-list{margin-inline-start:0;padding:0}.sortable-page-list .entity-list-item>span:first-child{align-self:flex-start}.sortable-page-list .sortable-selected,.sortable-page-list .sortable-selected:hover{outline:1px dotted var(--color-primary);background-color:var(--color-primary-light) !important}.sortable-page-list .entity-list-item>div{display:block;flex:1}.sortable-page-list>ul{margin-inline-start:0}.sortable-page-list .sortable-page-sublist{margin-bottom:16px;margin-top:0;padding-inline-start:16px}.sortable-page-list li{background-color:#fff}html.dark-mode .sortable-page-list li{background-color:#222}.sortable-page-list li{border:1px solid;border-color:#ddd}html.dark-mode .sortable-page-list li{border-color:#666}.sortable-page-list li{margin-top:-1px;min-height:38px}.sortable-page-list li.text-page,.sortable-page-list li.text-chapter{border-inline-start:2px solid currentColor}.sortable-page-list li:first-child{margin-top:6px}.sortable-page-list li.placeholder{position:relative}.sortable-page-list li.placeholder:before{position:absolute}.sort-box summary{list-style:none;font-size:.9rem;cursor:pointer}.sort-box summary::-webkit-details-marker{display:none}details.sort-box summary .caret-container svg{transition:transform ease-in-out 120ms}details.sort-box[open] summary .caret-container svg{transform:rotate(90deg)}.sort-box-actions .icon-button{opacity:.6}.sort-box .flex-container-row:hover .sort-box-actions .icon-button,.sort-box .flex-container-row:focus-within .sort-box-actions .icon-button{opacity:1}.sort-box-actions .icon-button[disabled]{visibility:hidden}.sort-box-actions .dropdown-menu button[disabled]{display:none}.sort-list-handle{cursor:grab}.activity-list-item{padding:12px 0;display:grid;grid-template-columns:min-content 1fr;grid-column-gap:16px;font-size:.9em}.card .activity-list-item{padding-block:12px}.user-list-item{display:inline-grid;padding:12px;grid-template-columns:min-content 1fr;grid-column-gap:16px;font-size:.9em;align-items:center}.user-list-item>div:first-child{line-height:0}ul.pagination{display:inline-flex;flex-wrap:wrap;list-style:none;margin:16px 0;padding-inline:1px}ul.pagination li:first-child a,ul.pagination li:first-child span{border-radius:3px 0 0 3px}ul.pagination li:last-child a,ul.pagination li:last-child span{border-radius:0 3px 3px 0}ul.pagination a,ul.pagination span{display:block;padding:3px 12px;border:1px solid #ccc;margin-inline-start:-1px;margin-block-end:-1px;user-select:none;color:#555}html.dark-mode ul.pagination a,html.dark-mode ul.pagination span{color:#eee}ul.pagination a,ul.pagination span{border-color:#ccc}html.dark-mode ul.pagination a,html.dark-mode ul.pagination span{border-color:#666}ul.pagination li.disabled{cursor:not-allowed}ul.pagination li.active span{color:#111}html.dark-mode ul.pagination li.active span{color:#eee}ul.pagination li.active span{background-color:rgba(0,0,0,.05)}html.dark-mode ul.pagination li.active span{background-color:rgba(0,0,0,.5)}.compact ul.pagination{margin:0}.entity-list,.icon-list{margin:0 -16px}.entity-list h4,.icon-list h4{margin:0}.entity-list hr,.icon-list hr{margin:0}.entity-list .text-small.text-muted,.icon-list .text-small.text-muted{color:#aaa;font-size:.75em;margin-top:6px}.entity-list .text-muted p.text-muted,.icon-list .text-muted p.text-muted{margin-top:0}.entity-list .page.draft .text-page,.icon-list .page.draft .text-page{color:var(--color-page-draft);fill:var(--color-page-draft)}.entity-list>.dropdown-container,.icon-list>.dropdown-container{display:block}.icon-list hr{margin:12px 16px;max-width:140px;opacity:.25;height:1.1px}.icon-list hr+hr,.icon-list hr:first-child,.icon-list hr:last-child{display:none}.entity-list-item,.icon-list-item{padding:12px 16px;display:flex;align-items:center;gap:16px;background-color:rgba(0,0,0,0);border:0;width:100%;position:relative;word-break:break-word}.entity-list-item h4 a,.icon-list-item h4 a{color:#666}.entity-list-item>span:first-child,.icon-list-item>span:first-child{flex-basis:1.88em;flex:none}.entity-list-item>span:last-child,.icon-list-item>span:last-child{flex:1;text-align:start}.entity-list-item>.content,.icon-list-item>.content{min-width:0}.entity-list-item:not(.no-hover),.icon-list-item:not(.no-hover){cursor:pointer}.entity-list-item:not(.no-hover):hover,.icon-list-item:not(.no-hover):hover{background-color:rgba(0,0,0,.06)}html.dark-mode .entity-list-item:not(.no-hover):hover,html.dark-mode .icon-list-item:not(.no-hover):hover{background-color:rgba(255,255,255,.06)}.entity-list-item:not(.no-hover):hover,.icon-list-item:not(.no-hover):hover{text-decoration:none;border-radius:4px}.entity-list-item.outline-hover:hover,.icon-list-item.outline-hover:hover{background-color:rgba(0,0,0,0)}.entity-list-item:focus,.icon-list-item:focus{background-color:#eee}html.dark-mode .entity-list-item:focus,html.dark-mode .icon-list-item:focus{background-color:#222}.entity-list-item:focus,.icon-list-item:focus{outline:1px dotted #666;outline-offset:-2px}.entity-list-item.disabled{pointer-events:none;cursor:not-allowed;opacity:.8;user-select:none;background:var(--bg-disabled)}.entity-list-item-path-sep{display:inline-block;vertical-align:top;position:relative;top:1px}.entity-list-item-path-sep svg{margin-inline-end:0}.split-icon-list-item{display:flex;align-items:center;gap:16px;background-color:rgba(0,0,0,0);border:0;width:100%;position:relative;word-break:break-word;border-radius:4px}.split-icon-list-item>a{padding:12px 16px;display:flex;align-items:center;gap:16px;flex:1}.split-icon-list-item>a:hover{text-decoration:none}.split-icon-list-item .icon{flex-basis:1.88em;flex:none}.split-icon-list-item:hover{background-color:rgba(0,0,0,.06)}html.dark-mode .split-icon-list-item:hover{background-color:rgba(255,255,255,.06)}.icon-list-item-dropdown{margin-inline-start:auto;align-self:stretch;display:flex;align-items:stretch;border-inline-start:1px solid rgba(0,0,0,.1);visibility:hidden}.split-icon-list-item:hover .icon-list-item-dropdown,.split-icon-list-item:focus-within .icon-list-item-dropdown{visibility:visible}.icon-list-item-dropdown-toggle{padding:6px;display:flex;align-items:center;cursor:pointer;color:#888}html.dark-mode .icon-list-item-dropdown-toggle{color:#999}.icon-list-item-dropdown-toggle svg{margin:0}.icon-list-item-dropdown-toggle:hover{background-color:rgba(0,0,0,.06)}html.dark-mode .icon-list-item-dropdown-toggle:hover{background-color:rgba(255,255,255,.06)}.card .entity-list-item:not(.no-hover,.book-contents .entity-list-item):hover{background-color:#f2f2f2}html.dark-mode .card .entity-list-item:not(.no-hover,.book-contents .entity-list-item):hover{background-color:#2d2d2d}.card .entity-list-item:not(.no-hover,.book-contents .entity-list-item):hover{border-radius:0}.card .entity-list-item .entity-list-item:hover{background-color:#eee}.entity-list-item-children{padding:16px 24px}.entity-list-item-children>div{overflow:hidden;padding:0 0 6px 0}.entity-list-item-children .entity-chip{text-overflow:ellipsis;height:2.5em;overflow:hidden;text-align:start;display:block;white-space:nowrap}.entity-list-item-children>.entity-list>.entity-list-item:last-child{margin-bottom:-6px}.entity-list-item-image{align-self:stretch;width:140px;flex:none;background-size:cover;background-position:50% 50%;border-radius:3px;position:relative;margin-inline-end:24px}.entity-list-item-image.entity-list-item-image-wide{width:220px}.entity-list-item-image .svg-icon{color:#fff}html.dark-mode .entity-list-item-image .svg-icon{color:rgba(255,255,255,.6)}.entity-list-item-image .svg-icon{font-size:1.66rem;margin-inline-end:0;position:absolute;bottom:6px;left:6px}@media screen and (max-width: 880px){.entity-list-item-image{width:80px}}.chapter>.entity-list-item-image{width:60px}.entity-list.compact{font-size:8.4px}.entity-list.compact h4,.entity-list.compact a{line-height:1.2}.entity-list.compact .entity-item-snippet{display:none}.entity-list.compact .entity-list-item p{font-size:11.2px;padding-top:6px}.entity-list.compact .entity-list-item p:empty{padding-top:0}.entity-list.compact p{margin:0}.entity-list.compact>p.empty-text{display:block;font-size:14px}.entity-list.compact hr{margin:0}@media screen and (max-width: 880px){.entity-list.compact h4{font-size:1.666em}}.entity-item-tags{font-size:.75rem;opacity:1}.entity-item-tags .primary-background-light{background:rgba(0,0,0,0)}.entity-item-tags .tag-name{background-color:rgba(0,0,0,.05)}.dropdown-container{display:inline-block;vertical-align:top;position:relative}.dropdown-menu{display:none;position:absolute;z-index:999;top:0;list-style:none;inset-inline-end:0;margin:16px 0;background-color:#fff}html.dark-mode .dropdown-menu{background-color:#333}.dropdown-menu{box-shadow:0 1px 6px 0 rgba(0,0,0,.18);border-radius:3px;min-width:180px;padding:6px 0;color:#555}html.dark-mode .dropdown-menu{color:#eee}.dropdown-menu{fill:currentColor;text-align:start !important;max-height:500px;overflow-y:auto}.dropdown-menu.anchor-left{inset-inline-end:auto;inset-inline-start:0}.dropdown-menu.wide{min-width:220px}.dropdown-menu.xl-limited{width:280px;max-width:100%}.dropdown-menu .text-muted{color:#999;fill:#999}.dropdown-menu li.active a{font-weight:600}.dropdown-menu button{width:100%;text-align:start}.dropdown-menu li.border-bottom{border-bottom:1px solid #ddd}.dropdown-menu li hr{margin:6px 0}.dropdown-menu .icon-item,.dropdown-menu .text-item,.dropdown-menu .label-item{padding:8px 16px;color:#555}html.dark-mode .dropdown-menu .icon-item,html.dark-mode .dropdown-menu .text-item,html.dark-mode .dropdown-menu .label-item{color:#eee}.dropdown-menu .icon-item,.dropdown-menu .text-item,.dropdown-menu .label-item{fill:currentColor;white-space:nowrap;line-height:1.4;cursor:pointer}.dropdown-menu .icon-item.break-text,.dropdown-menu .text-item.break-text,.dropdown-menu .label-item.break-text{white-space:normal;word-wrap:break-word;overflow-wrap:break-word}.dropdown-menu .icon-item:hover,.dropdown-menu .icon-item:focus,.dropdown-menu .text-item:hover,.dropdown-menu .text-item:focus,.dropdown-menu .label-item:hover,.dropdown-menu .label-item:focus{text-decoration:none;background-color:var(--color-primary-light);color:var(--color-primary)}.dropdown-menu .icon-item:focus,.dropdown-menu .text-item:focus,.dropdown-menu .label-item:focus{outline:1px solid var(--color-primary);outline-offset:-2px}.dropdown-menu .icon-item svg,.dropdown-menu .text-item svg,.dropdown-menu .label-item svg{margin-inline-end:12px;display:inline-block;width:16px}.dropdown-menu .text-item{display:block}.dropdown-menu .label-item{display:grid;align-items:center;grid-template-columns:auto min-content;gap:16px}.dropdown-menu .label-item>*:nth-child(2){opacity:.7}.dropdown-menu .label-item>*:nth-child(2):hover{opacity:1}.dropdown-menu .icon-item{display:grid;align-items:start;grid-template-columns:16px auto;gap:16px}.dropdown-menu .icon-item svg{margin-inline-end:0;margin-block-start:1px}.tri-layout-right .dropdown-menu,.tri-layout-left .dropdown-menu{inset-inline-end:6px}.featured-image-container{position:relative;overflow:hidden;min-height:140px;background-size:cover;background-position:50% 50%;transition:opacity ease-in-out 240ms}.featured-image-container a{display:block}.featured-image-container img{display:block;width:100%;max-width:100%;height:auto}.featured-image-container-wrap{position:relative}.featured-image-container-wrap .svg-icon{color:#fff}html.dark-mode .featured-image-container-wrap .svg-icon{color:rgba(255,255,255,.6)}.featured-image-container-wrap .svg-icon{font-size:2rem;margin-inline-end:0;position:absolute;bottom:10px;left:6px}.grid-card:hover .featured-image-container{opacity:.5}.action-link{background:rgba(0,0,0,0);border:none;color:currentColor;padding:16px 0}.active-link-list a{display:inline-block;padding:12px}.active-link-list a:not(.active){color:#444}html.dark-mode .active-link-list a:not(.active){color:#888}.active-link-list a:hover{background-color:rgba(0,0,0,.05)}html.dark-mode .active-link-list a:hover{background-color:rgba(255,255,255,.05)}.active-link-list a:hover{border-radius:4px;text-decoration:none}.active-link-list.in-sidebar a{display:block;margin-bottom:6px}.active-link-list.in-sidebar a.active{border-radius:4px;background-color:rgba(0,0,0,.05)}html.dark-mode .active-link-list.in-sidebar a.active{background-color:rgba(255,255,255,.05)}.entity-meta-item{display:flex;line-height:1.2;margin:.6em 0;align-content:start;gap:12px}.entity-meta-item a{line-height:1.2}.entity-meta-item svg{flex-shrink:0;width:1em;margin:0}.page-editor{display:flex;flex-direction:column;align-items:stretch}.page-editor .edit-area{flex:1;flex-direction:column;z-index:10;border-radius:0 0 8px 8px}.page-editor .mce-tinymce{box-shadow:none}.page-editor .mce-top-part::before{box-shadow:none}.page-editor-page-area{width:100%;border-radius:8px;box-shadow:0 1px 6px -1px rgba(0,0,0,.1);min-width:300px;background-color:#fff}html.dark-mode .page-editor-page-area{background-color:#333}.page-edit-toolbar{width:100%;margin:0 auto;display:grid;grid-template-columns:minmax(max-content, 2fr) 1.5fr minmax(max-content, 2fr);align-items:center}@media screen and (min-width: 1401px){.page-editor-wysiwyg2024 .page-edit-toolbar,.page-editor-wysiwyg2024 .page-editor-page-area,.page-editor-wysiwyg .page-edit-toolbar,.page-editor-wysiwyg .page-editor-page-area{max-width:1140px}.page-editor-wysiwyg .floating-toolbox,.page-editor-wysiwyg2024 .floating-toolbox{position:absolute}}@media screen and (max-width: 880px){.page-edit-toolbar{display:flex;flex-direction:row;justify-content:space-between}}.title-input.page-title{font-size:.8em}.title-input.page-title .input{border:0;margin-bottom:-1px}.title-input.page-title input[type=text]{max-width:840px;margin:0 auto;border:none;height:auto;display:block;width:100%;font-size:20px;border-radius:8px}.title-input.page-title input[type=text]:focus{position:relative;outline-offset:-1px;outline:1px dashed var(--color-primary);box-shadow:0 1px 6px -1px rgba(0,0,0,.1);z-index:50}.page-editor-markdown .title-input.page-title input[type=text]{max-width:100%}body.tox-fullscreen .page-editor .edit-area,body.markdown-fullscreen .page-editor .edit-area{z-index:12}body.tox-fullscreen .page-editor,body.tox-fullscreen .flex-fill,body.markdown-fullscreen .page-editor,body.markdown-fullscreen .flex-fill{overflow:visible}@media screen and (max-width: 600px){.page-edit-toolbar{overflow-x:scroll;overflow-y:visible}.page-edit-toolbar{white-space:nowrap}.page-edit-toolbar>div{display:inline-block}}.page-save-mobile-button{position:fixed;z-index:30;border-radius:50%;width:52px;height:52px;font-size:26px;inset-inline-end:6px;bottom:12px;box-shadow:0 2px 2px 1px rgba(0,0,0,.13);background-color:currentColor;text-align:center}.page-save-mobile-button svg{fill:#fff;margin-inline-end:0}.draft-notification{pointer-events:none;transform:scale(0);transition:transform ease-in-out 120ms;transform-origin:50% 50%}.draft-notification.visible{transform:scale(1)}.page-style.editor{padding:0 !important}.pointer-container{position:fixed;display:none;left:0;z-index:10}.pointer{border:1px solid #ccc;border-color:#ccc}html.dark-mode .pointer{border-color:#000}.pointer{border-radius:4px;box-shadow:0 0 12px 1px rgba(0,0,0,.1);background-color:#fff}html.dark-mode .pointer{background-color:#333}.pointer{width:344px}.pointer:before{position:absolute;left:50%;bottom:-9px;width:16px;height:16px;margin-inline-start:-8px;content:"";display:block;transform:rotate(45deg);transform-origin:50% 50%;border-right:1px solid #ccc;border-bottom:1px solid #ccc;z-index:56;background-color:#fff}html.dark-mode .pointer:before{background-color:#333}.pointer:before{border-color:#ccc}html.dark-mode .pointer:before{border-color:#000}.pointer input,.pointer button,.pointer a{position:relative;height:28px;font-size:12px;vertical-align:top;padding:5px 16px}.pointer input{background-color:#fff;border:1px solid #ddd;border-color:#ddd}html.dark-mode .pointer input{border-color:#000}.pointer input{color:#666;width:auto;flex:1;z-index:58;padding:5px;border-radius:0}.pointer .text-button{color:#444}html.dark-mode .pointer .text-button{color:#aaa}.pointer .input-group .button{line-height:1;margin-inline-start:-1px;margin-block:0;box-shadow:none;border-radius:0}.pointer a.button{margin:0}.pointer .svg-icon{width:1.2em;height:1.2em}.pointer .button{border-color:#ddd}html.dark-mode .pointer .button{border-color:#000}.content-comment-highlight{position:absolute;left:0;top:0;width:0;height:0;user-select:none;pointer-events:none}.content-comment-highlight:after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--color-primary);opacity:.25}.content-comment-window{font-size:14px;line-height:1.4;position:absolute;top:calc(100% + 3px);left:0;z-index:92;pointer-events:all;min-width:min(340px,80vw);background-color:#fff}html.dark-mode .content-comment-window{background-color:#222}.content-comment-window{box-shadow:0 2px 2px 1px rgba(0,0,0,.13);border-radius:4px;overflow:hidden}.content-comment-window-actions{background-color:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:end;gap:6px}.content-comment-window-actions button{color:#fff;font-size:12px;padding:6px;line-height:1;cursor:pointer}.content-comment-window-actions button[data-action=jump]{text-decoration:underline}.content-comment-window-actions svg{fill:currentColor;width:12px}.content-comment-window-content{padding:6px 12px 6px 6px;max-height:200px;overflow-y:scroll}.content-comment-window-content .comment-reference-indicator-wrap{display:none}.content-comment-marker{position:absolute;right:-16px;top:-16px;pointer-events:all;width:min(1.5em,32px);height:min(1.5em,32px);border-radius:min(.75em,32px);display:flex;align-items:center;justify-content:center;background-color:var(--color-primary);box-shadow:0 2px 2px 1px rgba(0,0,0,.13);color:#fff;cursor:pointer;z-index:90;transform:scale(1);transition:transform ease-in-out 120ms}.content-comment-marker svg{fill:#fff;width:80%}.page-content [id^=bkmrk-]:hover .content-comment-marker{transform:scale(1.15)}.floating-toolbox{background-color:#fff}html.dark-mode .floating-toolbox{background-color:#222}.floating-toolbox{overflow:hidden;align-items:stretch;flex-direction:row;display:flex;max-height:100%;border-radius:8px;box-shadow:0 1px 6px -1px rgba(0,0,0,.1);margin-bottom:auto;margin-inline-start:24px;position:relative}.floating-toolbox.open{position:relative;right:0;max-width:480px;margin-bottom:0}.floating-toolbox:not(.open) .toolbox-tab-content{display:none !important}.floating-toolbox .toolbox-toggle svg{transition:transform ease-in-out 180ms}.floating-toolbox .toolbox-toggle{transition:background-color ease-in-out 180ms}.floating-toolbox.open .toolbox-toggle{background-color:rgba(255,0,0,.2)}.floating-toolbox.open .toolbox-toggle svg{transform:rotate(180deg)}.floating-toolbox>div{flex:1;position:relative}.floating-toolbox .tabs{border-inline-end:1px solid #ddd;border-inline-end-color:#ddd}html.dark-mode .floating-toolbox .tabs{border-inline-end-color:#000}.floating-toolbox .tabs{width:40px;flex:0 1 auto;margin-inline-end:-1px}.floating-toolbox .tabs-inner{background-color:#fff}html.dark-mode .floating-toolbox .tabs-inner{background-color:#222}.floating-toolbox .tabs svg{padding:0;margin:0}.floating-toolbox .tabs-inner>button{color:rgba(0,0,0,.7)}html.dark-mode .floating-toolbox .tabs-inner>button{color:rgba(255,255,255,.5)}.floating-toolbox .tabs-inner>button{display:block;cursor:pointer;padding:10px 6px;font-size:18px;line-height:1.6}.floating-toolbox .tabs-inner>button:hover,.floating-toolbox.open .tabs-inner>button.active{color:var(--color-link) !important;position:relative}.floating-toolbox .tabs-inner>button:hover:after,.floating-toolbox.open .tabs-inner>button.active:after{content:"";display:block;position:absolute;left:0;width:100%;top:0;height:100%;background-color:currentColor;opacity:.075}.floating-toolbox.open .tabs-inner>button.active{border-inline-end:1px solid var(--color-link);margin-inline-end:-1px}.floating-toolbox h4{font-size:24px;margin:16px 0 0 0;padding:0 24px 12px 24px}.floating-toolbox .tags input{max-width:100%;width:100%;min-width:50px}.floating-toolbox .tags td,.floating-toolbox .inline-start-table>div>div>div{padding-inline-end:12px;padding-top:12px;position:relative}.floating-toolbox .handle{user-select:none;cursor:move;fill:#999}.floating-toolbox form{display:flex;flex:1;flex-direction:column;overflow-y:scroll}.floating-toolbox table td,.floating-toolbox table th{overflow:visible}@media screen and (max-width: 1400px){.floating-toolbox{margin-inline-start:12px}}@media screen and (max-width: 600px){.page-editor-page-area-wrap{margin:4px !important}.floating-toolbox{margin-inline-start:4px}.floating-toolbox .tabs{width:32px}.floating-toolbox .tabs-inner>button{font-size:12px}.page-edit-toolbar{padding-block:0 !important}.page-editor.toolbox-open .page-editor-page-area{display:none}}.toolbox-tab-content{display:none;overflow-y:auto;padding-bottom:45px}.suggestion-box{top:auto;margin:-4px 0 0;right:auto;left:0;padding:0}.suggestion-box li{display:block;border-bottom:1px solid #ddd}.suggestion-box li:last-child{border-bottom:0}.comments-container h5{color:#888;font-weight:normal;margin-top:.5em}.comment-editor .CodeMirror,.comment-editor .CodeMirror-scroll{min-height:175px}.mce-floatpanel[aria-label="Insert/edit media"] .mce-open{display:none}.entity-list-item>span:first-child,.icon-list-item>span:first-child,.split-icon-list-item>a>.icon,.chapter-expansion>.icon{font-size:.8rem;width:1.88em;height:1.88em;flex-shrink:0;display:flex;align-items:center;justify-content:center;text-align:center;border-radius:1em;position:relative;overflow:hidden}.entity-list-item>span:first-child svg,.icon-list-item>span:first-child svg,.split-icon-list-item>a>.icon svg,.chapter-expansion>.icon svg{margin:0;bottom:0}.entity-list-item>span:first-child:after,.icon-list-item>span:first-child:after,.split-icon-list-item>a>.icon:after,.chapter-expansion>.icon:after{content:"";position:absolute;background-color:currentColor;opacity:.2;left:0;top:0;width:100%;height:100%}.entity-chip{display:inline-block;align-items:center;justify-content:center;text-align:center;font-size:.9em;border-radius:3px;position:relative;overflow:hidden;padding:6px 12px;fill:currentColor;opacity:.85;transition:opacity ease-in-out 120ms}.entity-chip:after{content:"";position:absolute;background-color:currentColor;opacity:.15;left:0;top:0;width:100%;height:100%}.entity-chip:hover{text-decoration:none;opacity:1}@media(prefers-contrast: more){.entity-chip{opacity:1}}.page-content{width:100%;max-width:840px;margin:0 auto;overflow-wrap:break-word;position:relative}.page-content .align-left{text-align:left}.page-content img.align-left,.page-content table.align-left,.page-content iframe.align-left,.page-content video.align-left{float:left !important;margin:6px 16px 16px 0}.page-content .align-right{text-align:right !important}.page-content img.align-right,.page-content table.align-right,.page-content iframe.align-right,.page-content video.align-right{float:right !important;margin:6px 0 6px 12px}.page-content .align-center{text-align:center}.page-content img.align-center,.page-content video.align-center,.page-content iframe.align-center{display:block}.page-content img.align-center,.page-content table.align-center,.page-content iframe.align-center,.page-content video.align-center{margin-left:auto;margin-right:auto}.page-content .align-justify{text-align:justify}.page-content h1,.page-content h2,.page-content h3,.page-content h4,.page-content h5,.page-content h6,.page-content pre{clear:left}.page-content hr{clear:both;margin:16px 0}.page-content table{hyphens:auto;table-layout:fixed;max-width:100%;height:auto !important}.page-content ins,.page-content del{text-decoration:none}.page-content ins{background:#dbffdb}.page-content del{background:#ffecec}.page-content details{border:1px solid;border-color:#ddd}html.dark-mode .page-content details{border-color:#555}.page-content details{margin-bottom:1em;padding:12px}.page-content details>summary{margin-top:-12px;margin-left:-12px;margin-right:-12px;margin-bottom:-12px;font-weight:bold;background-color:#eee}html.dark-mode .page-content details>summary{background-color:#333}.page-content details>summary{padding:6px 12px}.page-content details[open]>summary{margin-bottom:12px;border-bottom:1px solid;border-color:#ddd}html.dark-mode .page-content details[open]>summary{border-color:#555}.page-content details>summary+*{margin-top:.2em}.page-content details:after{content:"";display:block;clear:both}.page-content li>input[type=checkbox]{vertical-align:top;margin-top:.3em}.page-content p:empty{min-height:1.6em}.page-content.page-revision pre code{white-space:pre-wrap}.page-content .cm-editor{margin-bottom:1.375em}.page-content video,.page-content iframe{max-width:100%}.page-content a{text-decoration:underline}body .page-content img,.page-content img:not([data-mce-object]){max-width:100%;height:auto}.callout{border-left:3px solid #bbb;border-inline-start:3px solid #bbb;border-inline-end:none;background-color:#eee;padding:12px;padding-left:32px;padding-inline-start:32px;padding-inline-end:12px;display:block;position:relative;overflow:auto}.callout:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiMwMTUzODAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTZoMnY2em0wLThoLTJWN2gydjJ6Ii8+PC9zdmc+");background-repeat:no-repeat;content:"";width:1.2em;height:1.2em;left:8px;inset-inline-start:8px;inset-inline-end:unset;top:50%;margin-top:-9px;display:inline-block;position:absolute;line-height:1;opacity:.8}.callout.success{border-color:#0f7d15}html.dark-mode .callout.success{border-color:#4aa850}.callout.success{background-color:#eafdeb}html.dark-mode .callout.success{background-color:#122913}.callout.success{color:#063409}html.dark-mode .callout.success{color:#4aa850}.callout.success:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiMzNzZjMzkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0yIDE1bC01LTUgMS40MS0xLjQxTDEwIDE0LjE3bDcuNTktNy41OUwxOSA4bC05IDl6Ii8+PC9zdmc+")}.callout.danger{border-color:#ab0f0e}html.dark-mode .callout.danger{border-color:#e85c5b}.callout.danger{background-color:#fcdbdb}html.dark-mode .callout.danger{background-color:#250505}.callout.danger{color:#4d0706}html.dark-mode .callout.danger{color:#e85c5b}.callout.danger:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiNiOTE4MTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTIgMTcuM2MtLjcyIDAtMS4zLS41OC0xLjMtMS4zIDAtLjcyLjU4LTEuMyAxLjMtMS4zLjcyIDAgMS4zLjU4IDEuMyAxLjMgMCAuNzItLjU4IDEuMy0xLjMgMS4zem0xLTQuM2gtMlY3aDJ2NnoiLz4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==")}.callout.info{border-color:#0288d1}html.dark-mode .callout.info{border-color:#0288d1}.callout.info{background-color:#d3efff}html.dark-mode .callout.info{background-color:#001825}.callout.info{color:#01466c}html.dark-mode .callout.info{color:#0288d1}.callout.warning{border-color:#cf4d03}html.dark-mode .callout.warning{border-color:#de8a5a}.callout.warning{background-color:#fee3d3}html.dark-mode .callout.warning{background-color:#30170a}.callout.warning{color:#6a2802}html.dark-mode .callout.warning{color:#de8a5a}.callout.warning:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiNiNjUzMWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiLz48L3N2Zz4=")}.callout a{color:inherit;text-decoration:underline}a[data-mention-user-id]{display:inline-block;position:relative;color:var(--color-link);padding:.1em .4em;display:-webkit-inline-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;max-width:180px;overflow:hidden;text-overflow:ellipsis;font-size:.92em;margin-inline:.2em;vertical-align:middle;border-radius:3px;border:1px solid rgba(0,0,0,0)}a[data-mention-user-id]:hover{text-decoration:none;border-color:currentColor}a[data-mention-user-id]:after{content:"";background-color:currentColor;opacity:.2;position:absolute;top:0;right:0;width:100%;height:100%;display:block}@media print{html,body{font-size:12px;background-color:#fff}.page-content{margin:0 auto}.print-hidden{display:none !important}.tri-layout-container{grid-template-columns:1fr;grid-template-areas:"b";margin-inline-start:0;margin-inline-end:0;display:block}.card{box-shadow:none}.content-wrap.card{padding-inline-start:0;padding-inline-end:0}}.dragged{position:absolute;opacity:.5;z-index:2000}body.dragging,body.dragging *{cursor:move !important}.avatar{border-radius:100%;background-color:#eee}html.dark-mode .avatar{background-color:#000}.avatar{width:30px;height:30px}.avatar.med{width:40px;height:40px}.avatar.large{width:80px;height:80px}.avatar.huge{width:120px;height:120px}.avatar.square{border-radius:3px}html.dark-mode .avatar[src$="user_avatar.png"]{filter:invert(1)}.loading-container{position:relative;display:block;margin:32px auto}.loading-container>div{width:10px;height:10px;border-radius:10px;display:inline-block;vertical-align:top;transform:translate3d(-10px, 0, 0);margin-top:6px;animation-name:loadingBob;animation-duration:1.4s;animation-iteration-count:infinite;animation-timing-function:cubic-bezier(0.62, 0.28, 0.23, 0.99);margin-inline-end:4px;background-color:var(--color-page);animation-delay:-300ms}.loading-container>div:first-child{left:-16px;background-color:var(--color-book);animation-delay:-600ms}.loading-container>div:last-of-type{left:16px;background-color:var(--color-chapter);animation-delay:0ms}.loading-container>span{margin-inline-start:12px;font-style:italic;color:#888;vertical-align:top}.inline.block .loading-container{margin:6px 12px}.skip-to-content-link{position:fixed;top:-52px;left:0;background-color:#fff;z-index:15;border-radius:0 4px 4px 0;display:block;box-shadow:0 0 4px 1px rgba(0,0,0,.5);font-weight:bold}.skip-to-content-link:focus{top:32px;outline-offset:-10px;outline:2px dotted var(--color-link)}.entity-selector{border:1px solid #ddd;border-color:#ddd}html.dark-mode .entity-selector{border-color:#111}.entity-selector{border-radius:3px;overflow:hidden;font-size:.8em}.entity-selector input[type=text]{width:100%;display:block;border-radius:0;border:0;border-bottom:1px solid #ddd;font-size:16px;padding:12px 16px}.entity-selector input[type=text]:focus{outline:1px solid var(--color-primary);border-radius:3px 3px 0 0;outline-offset:-1px}.entity-selector .entity-list{overflow-y:scroll;height:400px;background-color:#eee}html.dark-mode .entity-selector .entity-list{background-color:#222}.entity-selector .entity-list{margin-inline-end:0;margin-inline-start:0}.entity-selector .entity-list-item{background-color:#fff}html.dark-mode .entity-selector .entity-list-item{background-color:#222}.entity-selector .entity-list-item p{margin-bottom:0}.entity-selector .entity-list-item:focus{outline:2px dotted var(--color-primary);outline-offset:-4px}.entity-selector .entity-list-item.selected{background-color:rgba(0,0,0,.05)}html.dark-mode .entity-selector .entity-list-item.selected{background-color:rgba(255,255,255,.05)}.entity-selector .loading{height:400px;padding-top:24px}.entity-selector.compact{font-size:10px}.entity-selector.compact .entity-item-snippet{display:none}.entity-selector.compact h4{font-size:14px}.entity-selector.small .entity-list-item{padding:6px 16px}.entity-selector.small .entity-list,.entity-selector.small .loading{height:300px}.entity-selector.small input[type=text]{font-size:13px;padding:6px 16px;height:auto}.fullscreen{border:0;position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:150}@media screen and (min-width: 601px)and (max-width: 880px){#home-default>.grid.third{display:block;columns:2;column-gap:24px !important}}.list-sort-container{display:inline-block}.list-sort-container form{display:inline-block}.list-sort-container .list-sort{display:inline-grid;margin-inline-start:12px;grid-template-columns:minmax(120px, max-content) 40px;font-size:.9rem;border:2px solid #ddd;border-color:#ddd}html.dark-mode .list-sort-container .list-sort{border-color:#444}.list-sort-container .list-sort{border-radius:4px}.list-sort-container .list-sort-label{font-weight:bold;display:inline-block}.list-sort-container .list-sort-label,.list-sort-container .list-sort-toggle{color:#555}html.dark-mode .list-sort-container .list-sort-label,html.dark-mode .list-sort-container .list-sort-toggle{color:#888}.list-sort-container .list-sort-type{text-align:start}.list-sort-container .list-sort-toggle,.list-sort-container .list-sort-dir{padding:8px 12px;cursor:pointer}.list-sort-container .list-sort-dir{border-inline-start:2px solid #ddd;color:#888;border-color:#ddd}html.dark-mode .list-sort-container .list-sort-dir{border-color:#444}.list-sort-container .list-sort-dir .svg-icon{transition:transform ease-in-out 120ms}.list-sort-container .list-sort-dir:hover .svg-icon{transform:rotate(180deg)}.list-sort-container .list-sort-toggle{display:block;width:100%;text-align:start}.import-item{border-inline-start:2px solid currentColor;padding-inline-start:6px}/*# sourceMappingURL=styles.css.map */ diff --git a/public/dist/wysiwyg.js b/public/dist/wysiwyg.js new file mode 100644 index 00000000000..190383eec79 --- /dev/null +++ b/public/dist/wysiwyg.js @@ -0,0 +1,33 @@ +// See the "/licenses" URI for full package license details +var bN=Object.defineProperty;var Tc=o=>{throw TypeError(o)};var _N=(o,t,e)=>t in o?bN(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var p=(o,t,e)=>_N(o,typeof t!="symbol"?t+"":t,e),vl=(o,t,e)=>t.has(o)||Tc("Cannot "+e);var we=(o,t,e)=>(vl(o,t,"read from private field"),e?e.call(o):t.get(o)),kt=(o,t,e)=>t.has(o)?Tc("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(o):t.set(o,e),No=(o,t,e,n)=>(vl(o,t,"write to private field"),n?n.call(o,e):t.set(o,e),e),br=(o,t,e)=>(vl(o,t,"access private method"),e);function $(o){return{type:o}}var _e=$("SELECTION_CHANGE_COMMAND"),_r=$("SELECTION_INSERT_CLIPBOARD_NODES_COMMAND"),Yt=$("CLICK_COMMAND"),rt=$("DELETE_CHARACTER_COMMAND"),Zt=$("INSERT_LINE_BREAK_COMMAND"),Nt=$("INSERT_PARAGRAPH_COMMAND"),xt=$("CONTROLLED_TEXT_INSERTION_COMMAND"),xo=$("PASTE_COMMAND"),Dn=$("REMOVE_TEXT_COMMAND"),It=$("DELETE_WORD_COMMAND"),Et=$("DELETE_LINE_COMMAND"),Be=$("FORMAT_TEXT_COMMAND"),Eo=$("UNDO_COMMAND"),To=$("REDO_COMMAND"),Dl=$("KEYDOWN_COMMAND"),qo=$("KEY_ARROW_RIGHT_COMMAND"),Ol=$("MOVE_TO_END"),Yo=$("KEY_ARROW_LEFT_COMMAND"),Al=$("MOVE_TO_START"),Vt=$("KEY_ARROW_UP_COMMAND"),Xt=$("KEY_ARROW_DOWN_COMMAND"),ve=$("KEY_ENTER_COMMAND"),yr=$("KEY_SPACE_COMMAND"),jt=$("KEY_BACKSPACE_COMMAND"),Zo=$("KEY_ESCAPE_COMMAND"),Gt=$("KEY_DELETE_COMMAND"),Ai=$("KEY_AT_COMMAND"),Vo=$("KEY_TAB_COMMAND"),Rl=$("INSERT_TAB_COMMAND"),yN=$("INDENT_CONTENT_COMMAND"),SN=$("OUTDENT_CONTENT_COMMAND"),Xo=$("DROP_COMMAND"),jo=$("DRAGSTART_COMMAND"),Sr=$("DRAGOVER_COMMAND"),kl=$("DRAGEND_COMMAND"),Co=$("COPY_COMMAND"),bo=$("CUT_COMMAND"),On=$("SELECT_ALL_COMMAND"),Il=$("CLEAR_EDITOR_COMMAND"),$l=$("CLEAR_HISTORY_COMMAND"),_o=$("CAN_REDO_COMMAND"),yo=$("CAN_UNDO_COMMAND"),Lr=$("FOCUS_COMMAND"),Pl=$("BLUR_COMMAND"),Bl=$("KEY_MODIFIER_COMMAND");var pe=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";var LN=pe&&"documentMode"in document?document.documentMode:null,Ve=pe&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),Xe=pe&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),So=pe&&"InputEvent"in window&&!LN?"getTargetRanges"in new window.InputEvent("input"):!1,Jt=pe&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),$t=pe&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,Cc=pe&&/Android/.test(navigator.userAgent),Hl=pe&&/^(?=.*Chrome).*/i.test(navigator.userAgent),Fl=pe&&Cc&&Hl,Qt=pe&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!Hl;var Lo=1,je=3,Pt=0,Kl=1,eo=2,bc=0,Ri=1,ki=2,Mr=1,wr=2,An=4,Rn=8,vr=16,Dr=32,Or=64,Ar=128,Ul=Mr|wr|An|Rn|vr|Dr|Or|Ar,Ii=1,kn=2;var _c="\xA0",MN="\u200B",In=Jt||$t||Qt?_c:MN,it=` + +`,yc=Xe?_c:In,Sc="\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC",Lc="A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0800-\u1FFF\u200E\u2C00-\uFB1C\uFE00-\uFE6F\uFEFD-\uFFFF",wN=new RegExp("^[^"+Lc+"]*["+Sc+"]"),vN=new RegExp("^[^"+Sc+"]*["+Lc+"]"),He={bold:Mr,code:vr,highlight:Ar,italic:wr,strikethrough:An,subscript:Dr,superscript:Or,underline:Rn},Mc={directionless:Ii,unmergeable:kn},wc={normal:bc,segmented:ki,token:Ri},vc={[bc]:"normal",[ki]:"segmented",[Ri]:"token"};function C(o,t,...e){if(!o){for(let n of e)t=(t||"").replace("%s",n);throw new Error(t)}}function Bt(...o){let t=[];for(let e of o)if(e&&typeof e=="string")for(let[n]of e.matchAll(/\S+/g))t.push(n);return t}var DN=100,Wl=!1,ql=0;function Dc(){return Wl}function ON(o){ql=o.timeStamp}function AN(o){ql===0&&$n(o).addEventListener("textInput",ON,!0)}function zl(o,t,e){return t.__lexicalLineBreak===o||o[`__lexicalKey_${e._key}`]!==void 0}function RN(o){return o.getEditorState().read(()=>{let t=T();return t!==null?t.clone():null})}function kN(o,t,e){let n=De(e._window),r=null,i=null;n!==null&&n.anchorNode===o&&(r=n.anchorOffset,i=n.focusOffset);let s=o.nodeValue;s!==null&&Rr(t,s,r,i,!1)}function IN(o,t,e){return t.nodeType===je&&e.isAttached()}function Oc(o,t,e){Wl=!0;let n=performance.now()-ql>DN;try{Ee(o,()=>{let r=T()||RN(o),i=new Map,s=o.getRootElement(),l=o._editorState,a=o._blockCursorElement,d=!1,u="";for(let c=0;c0){let v=0;for(let M=0;M0)for(let[c,m]of i)if(E(m)){let g=m.getChildrenKeys(),h=c.firstChild;for(let N=0;N0){for(let c=0;c{Oc(o,t,e)})}function Ac(o,t){let e=o.__mode,n=o.__format,r=o.__style,i=t.__mode,s=t.__format,l=t.__style;return(e===null||e===i)&&(n===null||n===s)&&(r===null||r===l)}function Rc(o,t){let e=o.mergeWithSibling(t),n=Q()._normalizedNodes;return n.add(o.__key),n.add(t.__key),e}function Vl(o){let t=o;if(t.__text===""&&t.isSimpleText()&&!t.isUnmergeable()){t.remove();return}let e;for(;(e=t.getPreviousSibling())!==null&&L(e)&&e.isSimpleText()&&!e.isUnmergeable();)if(e.__text==="")e.remove();else if(Ac(e,t)){t=Rc(e,t);break}else break;let n;for(;(n=t.getNextSibling())!==null&&L(n)&&n.isSimpleText()&&!n.isUnmergeable();)if(n.__text==="")n.remove();else if(Ac(t,n)){t=Rc(t,n);break}else break}function Go(o){return kc(o.anchor),kc(o.focus),o}function kc(o){for(;o.type==="element";){let t=o.getNode(),e=o.offset,n,r;if(e===t.getChildrenSize()?(n=t.getChildAtIndex(e-1),r=!0):(n=t.getChildAtIndex(e),r=!1),L(n)){o.set(n.__key,r?n.getTextContentSize():0,"text");break}else if(!E(n))break;o.set(n.__key,r?n.getChildrenSize():0,"element")}}var $N=1;function PN(){return""+$N++}function Pc(o,t){let e=o._nodes.get(t);return e===void 0&&C(!1,"registeredNode: Type %s not found",t),e}var Bc=typeof queueMicrotask=="function"?queueMicrotask:o=>{Promise.resolve().then(o)};function Hc(o){return H(Y(o))}function Fn(o){let t=document.activeElement;if(t===null)return!1;let e=t.nodeName;return H(Y(o))&&(e==="INPUT"||e==="TEXTAREA"||t.contentEditable==="true"&&Jo(t)==null)}function to(o,t,e){let n=o.getRootElement();try{return n!==null&&n.contains(t)&&n.contains(e)&&t!==null&&!Fn(t)&&Hi(t)===o}catch{return!1}}function Kn(o){return o instanceof so}function Hi(o){let t=o;for(;t!=null;){let e=Jo(t);if(Kn(e))return e;t=Wi(t)}return null}function Jo(o){return o?o.__lexicalEditor:null}function Ge(o){return o.isToken()||o.isSegmented()}function BN(o){return o.nodeType===je}function Un(o){let t=o;for(;t!=null;){if(BN(t))return t;t=t.firstChild}return null}function Ir(o,t,e){let n=He[t];if(e!==null&&(o&n)===(e&n))return o;let r=o^n;return t==="subscript"?r&=~He.superscript:t==="superscript"&&(r&=~He.subscript),r}function $r(o){return L(o)||Fe(o)||H(o)}function Fc(o,t){if(t!=null){__DEV__&&HN(o,t),o.__key=t;return}ue(),ra();let e=Q(),n=lt(),r=PN();n._nodeMap.set(r,o),E(o)?e._dirtyElements.set(r,!0):e._dirtyLeaves.add(r),e._cloneNotNeeded.add(r),e._dirtyType=Kl,o.__key=r}function HN(o,t){let e=yu();if(!e)return;let n=e._nodeMap.get(t);n&&n.constructor!==o.constructor&&(o.constructor.name!==n.constructor.name?C(!1,"Lexical node with constructor %s attempted to re-use key from node in active editor state with constructor %s. Keys must not be re-used when the type is changed.",o.constructor.name,n.constructor.name):C(!1,"Lexical node with constructor %s attempted to re-use key from node in active editor state with different constructor with the same name (possibly due to invalid Hot Module Replacement). Keys must not be re-used when the type is changed.",o.constructor.name))}function FN(o,t,e){let n=o;for(;n!==null;){if(e.has(n))return;let r=t.get(n);if(r===void 0)break;e.set(n,!1),n=r.__parent}}function oo(o){let t=o.getParent();if(t!==null){let e=o.getWritable(),n=t.getWritable(),r=o.getPreviousSibling(),i=o.getNextSibling();if(r===null)if(i!==null){let s=i.getWritable();n.__first=i.__key,s.__prev=null}else n.__first=null;else{let s=r.getWritable();if(i!==null){let l=i.getWritable();l.__prev=s.__key,s.__next=l.__key}else s.__next=null;e.__prev=null}if(i===null)if(r!==null){let s=r.getWritable();n.__last=r.__key,s.__next=null}else n.__last=null;else{let s=i.getWritable();if(r!==null){let l=r.getWritable();l.__next=s.__key,s.__prev=l.__key}else s.__prev=null;e.__next=null}n.__size--,e.__parent=null}}function kr(o){ra();let t=o.getLatest(),e=t.__parent,n=lt(),r=Q(),i=n._nodeMap,s=r._dirtyElements;e!==null&&FN(e,i,s);let l=t.__key;r._dirtyType=Kl,E(o)?s.set(l,!0):r._dirtyLeaves.add(l)}function Kc(o){let t=o.getPreviousSibling(),e=o.getNextSibling();t!==null&&kr(t),e!==null&&kr(e)}function le(o){ue();let t=Q(),e=t._compositionKey;if(o!==e){if(t._compositionKey=o,e!==null){let n=ee(e);n!==null&&n.getWritable()}if(o!==null){let n=ee(o);n!==null&&n.getWritable()}}}function st(){return Tt()?null:Q()._compositionKey}function ee(o,t){let n=(t||lt())._nodeMap.get(o);return n===void 0?null:n}function Yl(o,t){let e=Q(),n=o[`__lexicalKey_${e._key}`];return n!==void 0?ee(n,t):null}function Y(o,t){let e=o;for(;e!=null;){let n=Yl(e,t);if(n!==null)return n;e=Wi(e)}return null}function Fi(o){let t=o._decorators,e=Object.assign({},t);return o._pendingDecorators=e,e}function jl(o){return o.read(()=>F().getTextContent())}function Uc(o,t){Ee(o,()=>{let e=lt();if(e.isEmpty())return;if(t==="root"){F().markDirty();return}let n=e._nodeMap;for(let[,r]of n)r.markDirty()},o._pendingEditorState===null?{tag:"history-merge"}:void 0)}function F(){return Zl(lt())}function Zl(o){return o._nodeMap.get("root")}function q(o){ue();let t=lt();o!==null&&(__DEV__&&Object.isFrozen(o)&&C(!1,"$setSelection called on frozen selection object. Ensure selection is cloned before passing in."),o.dirty=!0,o.setCachedNodes(null)),t._selection=o}function zc(){ue();let o=Q();$i(o)}function Qo(o){let t=Q(),e=KN(o,t);if(e===null){let n=t.getRootElement();return o===n?ee("root"):null}return ee(e)}function Gl(o,t){return t?o.getTextContentSize():0}function KN(o,t){let e=o;for(;e!=null;){let n=e[`__lexicalKey_${t._key}`];if(n!==void 0)return n;e=Wi(e)}return null}function Ki(o){return/[\uD800-\uDBFF][\uDC00-\uDFFF]/g.test(o)}function Pr(o){let t=[],e=o;for(;e!==null;)t.push(e),e=e._parentEditor;return t}function Jl(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function Ql(o){return o.nodeType===je?o.nodeValue:null}function Ui(o,t,e){let n=De(t._window);if(n===null)return;let r=n.anchorNode,{anchorOffset:i,focusOffset:s}=n;if(r!==null){let l=Ql(r),a=Y(r);if(l!==null&&L(a)){if(l===In&&e){let d=e.length;l=e,i=d,s=d}l!==null&&Rr(a,l,i,s,o)}}}function Rr(o,t,e,n,r){let i=o;if(i.isAttached()&&(r||!i.isDirty())){let s=i.isComposing(),l=t;(s||r)&&t[t.length-1]===In&&(l=t.slice(0,-1));let a=i.getTextContent();if(r||l!==a){if(l===""){if(le(null),!Jt&&!$t&&!Qt){let h=Q();setTimeout(()=>{h.update(()=>{i.isAttached()&&i.remove()})},20)}else i.remove();return}let d=i.getParent(),u=Je(),f=i.getTextContentSize(),c=st(),m=i.getKey();if(i.isToken()||c!==null&&m===c&&!s||_(u)&&(d!==null&&!d.canInsertTextBefore()&&u.anchor.offset===0||u.anchor.key===o.__key&&u.anchor.offset===0&&!i.canInsertTextBefore()&&!s||u.focus.key===o.__key&&u.focus.offset===f&&!i.canInsertTextAfter()&&!s)){i.markDirty();return}let g=T();if(!_(g)||e===null||n===null){i.setTextContent(l);return}if(g.setTextNodeRange(i,e,i,n),i.isSegmented()){let h=i.getTextContent(),N=z(h);i.replace(N),i=N}i.setTextContent(l)}}}function UN(o){let t=o.getPreviousSibling();return(L(t)||E(t)&&t.isInline())&&!t.canInsertTextAfter()}function Wc(o,t){if(t.isSegmented())return!0;if(!o.isCollapsed())return!1;let e=o.anchor.offset,n=t.getParentOrThrow(),r=t.isToken();return e===0?!t.canInsertTextBefore()||!n.canInsertTextBefore()&&!t.isComposing()||r||UN(t):e===t.getTextContentSize()?!t.canInsertTextAfter()||!n.canInsertTextAfter()&&!t.isComposing()||r:!1}function qc(o,t,e,n){return o==="Tab"&&!t&&!e&&!n}function Yc(o,t){return hu(o)&&!t}function Zc(o,t){return hu(o)&&t}function Vc(o,t){return Ve&&t&&o.toLowerCase()==="o"}function Xc(o,t,e){return Pn(o)&&(Ve?t:e)}function jc(o,t,e){return Bn(o)&&(Ve?t:e)}function Gc(o,t){return Ve&&t&&Pn(o)}function Jc(o,t){return Ve&&t&&Bn(o)}function Qc(o,t,e,n){return Ve?t||e?!1:Pn(o)||o.toLowerCase()==="h"&&n:n||t||e?!1:Pn(o)}function eu(o,t,e,n,r){return Ve?e||n||r?!1:Bn(o)||o.toLowerCase()==="d"&&t:t||n||r?!1:Bn(o)}function tu(o,t,e,n){return o.toLowerCase()==="z"&&!t&&gu(e,n)}function ou(o,t,e,n){return Ve?o.toLowerCase()==="z"&&e&&t:o.toLowerCase()==="y"&&n||o.toLowerCase()==="z"&&n&&t}function nu(o,t,e,n){return t?!1:o.toLowerCase()==="c"?Ve?e:n:!1}function ru(o,t,e,n){return t?!1:o.toLowerCase()==="x"?Ve?e:n:!1}function iu(o){return o==="ArrowLeft"}function su(o){return o==="ArrowRight"}function zN(o){return o==="ArrowUp"}function WN(o){return o==="ArrowDown"}function lu(o,t,e,n){return iu(o)&&!t&&!n&&!e}function au(o,t,e,n,r){return iu(o)&&!n&&!e&&(t||r)}function du(o,t,e,n){return su(o)&&!t&&!n&&!e}function cu(o,t,e,n,r){return su(o)&&!n&&!e&&(t||r)}function uu(o,t,e){return zN(o)&&!t&&!e}function fu(o,t,e){return WN(o)&&!t&&!e}function mu(o,t,e,n){return o||t||e||n}function pu(o){return o===" "}function gu(o,t){return Ve?o:t}function hu(o){return o==="Enter"}function Pn(o){return o==="Backspace"}function Nu(o){return o==="Escape"}function Bn(o){return o==="Delete"}function xu(o){return o==="@"}function ea(o,t,e){return o.toLowerCase()==="a"&&gu(t,e)}function ta(){let o=F(),t=o.select(0,o.getChildrenSize());q(Go(t))}function Mo(o,t){o.__lexicalClassNameCache===void 0&&(o.__lexicalClassNameCache={});let e=o.__lexicalClassNameCache,n=e[t];if(n!==void 0)return n;let r=o[t];if(typeof r=="string"){let i=Bt(r);return e[t]=i,i}return r}function zi(o,t,e,n,r){if(e.size===0)return;let i=n.__type,s=n.__key,l=t.get(i);l===void 0&&C(!1,"Type %s not in registeredNodes",i);let a=l.klass,d=o.get(a);d===void 0&&(d=new Map,o.set(a,d));let u=d.get(s),f=u==="destroyed"&&r==="created";(u===void 0||f)&&d.set(s,f?"updated":r)}function Ic(o,t,e){let n=o.getParent(),r=e,i=o;return n!==null&&(t&&e===0?(r=i.getIndexWithinParent(),i=n):!t&&e===i.getChildrenSize()&&(r=i.getIndexWithinParent()+1,i=n)),i.getChildAtIndex(t?r-1:r)}function no(o,t){let e=o.offset;if(o.type==="element"){let n=o.getNode();return Ic(n,t,e)}else{let n=o.getNode();if(t&&e===0||!t&&e===n.getTextContentSize()){let r=t?n.getPreviousSibling():n.getNextSibling();return r===null?Ic(n.getParentOrThrow(),t,n.getIndexWithinParent()+(t?0:1)):r}}return null}function Bi(o){let t=$n(o).event,e=t&&t.inputType;return e==="insertFromPaste"||e==="insertFromPasteAsQuotation"}function A(o,t,e){return ia(o,t,e)}function Br(o){return!re(o)&&!o.isLastChild()&&!o.isInline()}function zn(o,t){let e=o._keyToDOMMap.get(t);return e===void 0&&C(!1,"Reconciliation: could not find DOM element for node key %s",t),e}function Wi(o){let t=o.assignedSlot||o.parentElement;return t!==null&&t.nodeType===11?t.host:t}function Eu(o,t,e){let n=e.ownerDocument,r=n.defaultView;if(r===null)return;let{top:i,bottom:s}=t,l=0,a=0,d=e;for(;d!==null;){let u=d===n.body;if(u)l=0,a=$n(o).innerHeight;else{let c=d.getBoundingClientRect();l=c.top,a=c.bottom}let f=0;if(ia&&(f=s-a),f!==0)if(u)r.scrollBy(0,f);else{let c=d.scrollTop;d.scrollTop+=f;let m=d.scrollTop-c;i-=m,s-=m}if(u)break;d=Wi(d)}}function Tu(o){let t=T();if(!_(t)||!E(o))return t;let{anchor:e,focus:n}=t,r=e.getNode(),i=n.getNode();return Hn(r,o)&&e.set(o.__key,0,"element"),Hn(i,o)&&n.set(o.__key,0,"element"),t}function Hn(o,t){let e=o.getParent();for(;e!==null;){if(e.is(t))return!0;e=e.getParent()}return!1}function Cu(o){let t=o.ownerDocument;return t&&t.defaultView||null}function $n(o){let t=o._window;return t===null&&C(!1,"window object not found"),t}function oa(o){return o!==null&&(L(o)||E(o)&&o.isInline())}function na(o){let t=o.getParentOrThrow();for(;t!==null;){if(ge(t))return t;t=t.getParentOrThrow()}return t}function ge(o){return re(o)||E(o)&&o.isShadowRoot()}function ie(o){let t=Q(),e=o.constructor.getType(),n=t._nodes.get(e);n===void 0&&C(!1,'$initializeNode failed. Ensure node has been registered to the editor. You can do this by passing the node class via the "nodes" array in the editor config.');let r=n.replace;if(r!==null){let i=r(o);return i instanceof o.constructor||C(!1,"$initializeNode failed. Ensure replacement node is a subclass of the original node."),i}return o}function qi(o,t){let e=o.getParent();re(e)&&!E(t)&&!H(t)&&C(!1,"Only element or decorator nodes can be inserted in to the root node")}function qN(o){let t=o.theme,e=document.createElement("div");e.contentEditable="false",e.setAttribute("data-lexical-cursor","true");let n=t.blockCursor;if(n!==void 0){if(typeof n=="string"){let r=Bt(n);n=t.blockCursor=r}n!==void 0&&e.classList.add(...n)}return e}function Xl(o){return(H(o)||E(o)&&!o.canBeEmpty())&&!o.isInline()}function Hr(o,t,e){e.style.removeProperty("caret-color"),t._blockCursorElement=null;let n=o.parentElement;n!==null&&n.removeChild(o)}function bu(o,t,e){let n=o._blockCursorElement;if(_(e)&&e.isCollapsed()&&e.anchor.type==="element"&&t.contains(document.activeElement)){let r=e.anchor,i=r.getNode(),s=r.offset,l=i.getChildrenSize(),a=!1,d=null;if(s===l){let u=i.getChildAtIndex(s-1);Xl(u)&&(a=!0)}else{let u=i.getChildAtIndex(s);if(Xl(u)){let f=u.getPreviousSibling();(f===null||Xl(f))&&(a=!0,d=o.getElementByKey(u.__key))}}if(a){let u=o.getElementByKey(i.__key);n===null&&(o._blockCursorElement=n=qN(o._config)),t.style.caretColor="transparent",d===null?u.appendChild(n):u.insertBefore(n,d);return}}n!==null&&Hr(n,o,t)}function De(o){return pe?(o||window).getSelection():null}function Yi(o){return he(o)&&o.tagName==="A"}function he(o){return o.nodeType===1}function en(o){let t=new RegExp(/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var|#text)$/,"i");return o.nodeName.match(t)!==null}function wo(o){let t=new RegExp(/^(address|article|aside|blockquote|canvas|dd|div|dl|dt|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hr|li|main|nav|noscript|ol|p|pre|section|table|td|tfoot|ul|video)$/,"i");return o.nodeName.match(t)!==null}function ro(o){if(re(o)||H(o)&&!o.isInline())return!0;if(!E(o)||ge(o))return!1;let t=o.getFirstChild(),e=t===null||Fe(t)||L(t)||t.isInline();return!o.isInline()&&o.canBeEmpty()!==!1&&e}function Wn(o,t){let e=o;for(;e!==null&&e.getParent()!==null&&!t(e);)e=e.getParentOrThrow();return t(e)?e:null}function Fr(){return Q()}var $c=new WeakMap,YN=new Map;function _u(o){if(!o._readOnly&&o.isEmpty())return YN;C(o._readOnly,"getCachedTypeToNodeMap called with a writable EditorState");let t=$c.get(o);if(!t){t=new Map,$c.set(o,t);for(let[e,n]of o._nodeMap){let r=n.__type,i=t.get(r);i||(i=new Map,t.set(r,i)),i.set(e,n)}}return t}function io(o){let t=o.constructor,e=t.clone(o);return e.afterCloneFrom(o),__DEV__&&(C(e.__key===o.__key,"$cloneWithProperties: %s.clone(node) (with type '%s') did not return a node with the same key, make sure to specify node.__key as the last argument to the constructor",t.name,t.getType()),C(e.__parent===o.__parent&&e.__next===o.__next&&e.__prev===o.__prev,"$cloneWithProperties: %s.clone(node) (with type '%s') overrided afterCloneFrom but did not call super.afterCloneFrom(prevNode)",t.name,t.getType())),e}function Su(o,t){let e=o._decorators,r=o._pendingDecorators||e,i=t._nodeMap,s;for(s in r)i.has(s)||(r===e&&(r=Fi(o)),delete r[s])}function Lu(o,t,e,n,r,i){let s=o.getFirstChild();for(;s!==null;){let l=s.__key;s.__parent===t&&(E(s)&&Lu(s,l,e,n,r,i),e.has(l)||i.delete(l),r.push(l)),s=s.getNextSibling()}}function Mu(o,t,e,n){let r=o._nodeMap,i=t._nodeMap,s=[];for(let[l]of n){let a=i.get(l);a!==void 0&&(a.isAttached()||(E(a)&&Lu(a,l,r,i,s,n),r.has(l)||n.delete(l),s.push(l)))}for(let l of s)i.delete(l);for(let l of e){let a=i.get(l);a!==void 0&&!a.isAttached()&&(r.has(l)||e.delete(l),i.delete(l))}}var fe="",vo=null,Ct="",lo="",qn,Oe,Ur,vu=!1,Vi=!1,Xi,la,aa,tn,bt,da,zr;function ji(o,t){let e=tn.get(o);if(t!==null){let n=fa(o);n.parentNode===t&&t.removeChild(n)}if(bt.has(o)||Oe._keyToDOMMap.delete(o),E(e)){let n=Zi(e,tn);ca(n,0,n.length-1,null)}e!==void 0&&zi(zr,Ur,Xi,e,"destroyed")}function ca(o,t,e,n){let r=t;for(;r<=e;++r){let i=o[r];i!==void 0&&ji(i,n)}}function Gi(o,t,e){let n=bt.get(o);n===void 0&&C(!1,"createNode: node does not exist in nodeMap");let r=n.createDOM(qn,Oe);if(QN(o,r,Oe),L(n)?r.setAttribute("data-lexical-text","true"):H(n)&&r.setAttribute("data-lexical-decorator","true"),E(n)){let i=n.__size;if(i!==0){let s=i-1,l=Zi(n,bt);ua(l,n,0,s,r,null)}n.isInline()||Du(null,n,r),Br(n)&&(fe+=it,lo+=it)}else{let i=n.getTextContent();if(H(n)){let s=n.decorate(Oe,qn);s!==null&&Ou(o,s),r.contentEditable="false"}fe+=i,lo+=i}if(t!==null&&!n?.insertDOMIntoParent(r,t))if(e!=null)t.insertBefore(r,e);else{let s=t.__lexicalLineBreak;s!=null?t.insertBefore(r,s):t.appendChild(r)}return __DEV__&&Object.freeze(n),zi(zr,Ur,Xi,n,"created"),r}function ua(o,t,e,n,r,i){let s=fe;fe="";let l=e;for(;l<=n;++l){Gi(o[l],r,i);let a=bt.get(o[l]);a!==null&&L(a)&&(vo===null&&(vo=a.getFormat()),Ct===""&&(Ct=a.getStyle()))}Br(t)&&(fe+=it),r.__lexicalTextContent=fe,fe=s+fe}function wu(o,t){let e=t.get(o);return Fe(e)||H(e)&&e.isInline()}function Du(o,t,e){let n=o!==null&&(o.__size===0||wu(o.__last,tn)),r=t.__size===0||wu(t.__last,bt);if(n){if(!r){let i=e.__lexicalLineBreak;if(i!=null)try{e.removeChild(i)}catch(s){if(typeof s=="object"&&s!=null){let l=`${s.toString()} Parent: ${e.tagName}, child: ${i.tagName}.`;throw new Error(l)}else throw s}e.__lexicalLineBreak=null}}else if(r){let i=document.createElement("br");e.__lexicalLineBreak=i,e.appendChild(i)}}function ZN(o){Qe(o)&&vo!=null&&!Vi&&o.setTextStyle(Ct)}function VN(o){Qe(o)&&Ct!==""&&Ct!==o.__textStyle&&!Vi&&o.setTextStyle(Ct)}function XN(o,t,e){vo=null,Ct="",jN(o,t,e),ZN(t),VN(t)}function Zi(o,t){let e=[],n=o.__first;for(;n!==null;){let r=t.get(n);r===void 0&&C(!1,"createChildrenArray: node does not exist in nodeMap"),e.push(n),n=r.__next}return e}function jN(o,t,e){let n=fe,r=o.__size,i=t.__size;if(fe="",r===1&&i===1){let s=o.__first,l=t.__first;if(s===l)Kr(s,e);else{let d=fa(s),u=Gi(l,null,null);try{e.replaceChild(u,d)}catch(f){if(typeof f=="object"&&f!=null){let c=`${f.toString()} Parent: ${e.tagName}, new child: {tag: ${u.tagName} key: ${l}}, old child: {tag: ${d.tagName}, key: ${s}}.`;throw new Error(c)}else throw f}ji(s,null)}let a=bt.get(l);L(a)&&(vo===null&&(vo=a.getFormat()),Ct===""&&(Ct=a.getStyle()))}else{let s=Zi(o,tn),l=Zi(t,bt);if(r===0)i!==0&&ua(l,t,0,i-1,e,null);else if(i===0){if(r!==0){let d=e.__lexicalLineBreak==null;ca(s,0,r-1,d?null:e),d&&(e.textContent="")}}else JN(t,s,l,r,i,e)}Br(t)&&(fe+=it),e.__lexicalTextContent=fe,fe=n+fe}function Kr(o,t){let e=tn.get(o),n=bt.get(o);(e===void 0||n===void 0)&&C(!1,"reconcileNode: prevNode or nextNode does not exist in nodeMap");let r=vu||aa.has(o)||la.has(o),i=zn(Oe,o);if(e===n&&!r){if(E(e)){let s=i.__lexicalTextContent;s!==void 0&&(fe+=s,lo+=s)}else{let s=e.getTextContent();lo+=s,fe+=s}return i}if(e!==n&&r&&zi(zr,Ur,Xi,n,"updated"),n.updateDOM(e,i,qn)){let s=Gi(o,null,null);return t===null&&C(!1,"reconcileNode: parentDOM is null"),t.replaceChild(s,i),ji(o,null),s}if(E(e)&&E(n))r&&(XN(e,n,i),!re(n)&&!n.isInline()&&Du(e,n,i)),Br(n)&&(fe+=it,lo+=it);else{let s=n.getTextContent();if(H(n)){let l=n.decorate(Oe,qn);l!==null&&Ou(o,l)}fe+=s,lo+=s}if(!Vi&&re(n)&&n.__cachedText!==lo){let s=n.getWritable();s.__cachedText=lo,n=s}return __DEV__&&Object.freeze(n),i}function Ou(o,t){let e=Oe._pendingDecorators,n=Oe._decorators;if(e===null){if(n[o]===t)return;e=Fi(Oe)}e[o]=t}function GN(o){return o.firstChild}function sa(o){let t=o.nextSibling;return t!==null&&t===Oe._blockCursorElement&&(t=t.nextSibling),t}function JN(o,t,e,n,r,i){let s=n-1,l=r-1,a,d,u=GN(i),f=0,c=0;for(;f<=s&&c<=l;){let h=t[f],N=e[c];if(h===N)u=sa(Kr(N,i)),f++,c++;else{a===void 0&&(a=new Set(t)),d===void 0&&(d=new Set(e));let x=d.has(h),S=a.has(N);if(!x)u=sa(fa(h)),ji(h,i),f++;else if(!S)Gi(N,i,u),c++;else{let v=zn(Oe,N);v===u?u=sa(Kr(N,i)):(u!=null?i.insertBefore(v,u):i.appendChild(v),Kr(N,i)),f++,c++}}let b=bt.get(N);b!==null&&L(b)&&(vo===null&&(vo=b.getFormat()),Ct===""&&(Ct=b.getStyle()))}let m=f>s,g=c>l;if(m&&!g){let h=e[l+1],N=h===void 0?null:Oe.getElementByKey(h);ua(e,o,c,l,i,N)}else g&&!m&&ca(t,f,s,i)}function Au(o,t,e,n,r,i){fe="",lo="",vu=n===eo,Oe=e,qn=e._config,Ur=e._nodes,Xi=Oe._listeners.mutation,la=r,aa=i,tn=o._nodeMap,bt=t._nodeMap,Vi=t._readOnly,da=new Map(e._keyToDOMMap);let s=new Map;return zr=s,Kr("root",null),Oe=void 0,Ur=void 0,la=void 0,aa=void 0,tn=void 0,bt=void 0,qn=void 0,da=void 0,zr=void 0,s}function QN(o,t,e){let n=e._keyToDOMMap;t["__lexicalKey_"+e._key]=o,n.set(o,t)}function fa(o){let t=da.get(o);return t===void 0&&C(!1,"Reconciliation: could not find DOM element for node key %s",o),t}var ao=Object.freeze({}),Na=30,ma=[["keydown",ax],["pointerdown",tx],["compositionstart",sx],["compositionend",lx],["input",ix],["click",ex],["cut",ao],["copy",ao],["dragstart",ao],["dragover",ao],["dragend",ao],["paste",ao],["focus",ao],["blur",ao],["drop",ao]];So&&ma.push(["beforeinput",(o,t)=>rx(o,t)]);var Yr=0,Pu=null,Bu=0,Yn=null,Ji=new WeakMap,pa=!1,ga=!1,qr=!1,Wr=!1,Hu=[0,"",0,"root",0];function Fu(o,t,e,n,r){let i=o.anchor,s=o.focus,l=i.getNode(),a=Q(),d=De(a._window),u=d!==null?d.anchorNode:null,f=i.key,c=a.getElementByKey(f),m=e.length;return f!==s.key||!L(l)||(!r&&(!So||Bu1||(r||!So)&&c!==null&&!l.isComposing()&&u!==Un(c)||d!==null&&t!==null&&(!t.collapsed||t.startContainer!==d.anchorNode||t.startOffset!==d.anchorOffset)||l.getFormat()!==o.format||l.getStyle()!==o.style||Wc(o,l)}function Ru(o,t){return o!==null&&o.nodeValue!==null&&o.nodeType===je&&t!==0&&t!==o.nodeValue.length}function ku(o,t,e){let{anchorNode:n,anchorOffset:r,focusNode:i,focusOffset:s}=o;pa&&(pa=!1,Ru(n,r)&&Ru(i,s))||Ee(t,()=>{if(!e){q(null);return}if(!to(t,n,i))return;let l=T();if(_(l)){let a=l.anchor,d=a.getNode();if(l.isCollapsed()){o.type==="Range"&&o.anchorNode===o.focusNode&&(l.dirty=!0);let u=$n(t).event,f=u?u.timeStamp:performance.now(),[c,m,g,h,N]=Hu,b=F(),x=t.isComposing()===!1&&b.getTextContent()==="";if(f{let e=T(),n=De(t._window),r=Je();if(n){if(_(e)){let i=e.anchor,s=i.getNode();if(i.type==="element"&&i.offset===0&&e.isCollapsed()&&!re(s)&&F().getChildrenSize()===1&&s.getTopLevelElementOrThrow().isEmpty()&&r!==null&&e.is(r))n.removeAllRanges(),e.dirty=!0;else if(o.detail===3&&!e.isCollapsed()){let a=e.focus.getNode();s!==a&&(E(s)?s.select(0):s.getParentOrThrow().select(0))}}else if(o.pointerType==="touch"){let i=n.anchorNode;if(i!==null){let s=i.nodeType;if(s===Lo||s===je){let l=Zr(r,n,t,o);q(l)}}}}A(t,Yt,o)})}function tx(o,t){let e=o.target,n=o.pointerType;e instanceof Node&&n!=="touch"&&Ee(t,()=>{Hc(e)||(ga=!0)})}function Ku(o){if(!o.getTargetRanges)return null;let t=o.getTargetRanges();return t.length===0?null:t[0]}function ox(o,t){return o!==t||E(o)||E(t)||!o.isToken()||!t.isToken()}function nx(o){return Pu==="MediaLast"&&o{let r=T();if(e==="deleteContentBackward"){if(r===null){let u=Je();if(!_(u))return;q(u.clone())}if(_(r)){let u=r.anchor.key===r.focus.key;if(nx(o.timeStamp)&&t.isComposing()&&u){if(le(null),Yr=0,setTimeout(()=>{Ee(t,()=>{le(null)})},Na),_(r)){let f=r.anchor.getNode();f.markDirty(),C(L(f),"Anchor node must be a TextNode"),r.style=f.getStyle()}}else{le(null),o.preventDefault();let f=r.anchor.getNode().getTextContent(),c=r.anchor.offset===0&&r.focus.offset===f.length;Fl&&u&&!c||A(t,rt,!0)}return}}if(!_(r))return;let i=o.data;Yn!==null&&Ui(!1,t,Yn),(!r.dirty||Yn!==null)&&r.isCollapsed()&&!re(r.anchor.getNode())&&n!==null&&r.applyDOMRange(n),Yn=null;let s=r.anchor,l=r.focus,a=s.getNode(),d=l.getNode();if(e==="insertText"||e==="insertTranspose"){if(i===` +`)o.preventDefault(),A(t,Zt,!1);else if(i===it)o.preventDefault(),A(t,Nt,void 0);else if(i==null&&o.dataTransfer){let u=o.dataTransfer.getData("text/plain");o.preventDefault(),r.insertRawText(u)}else i!=null&&Fu(r,n,i,o.timeStamp,!0)?(o.preventDefault(),A(t,xt,i)):Yn=i;Bu=o.timeStamp;return}switch(o.preventDefault(),e){case"insertFromYank":case"insertFromDrop":case"insertReplacementText":{A(t,xt,o);break}case"insertFromComposition":{le(null),A(t,xt,o);break}case"insertLineBreak":{le(null),A(t,Zt,!1);break}case"insertParagraph":{le(null),qr&&!$t?(qr=!1,A(t,Zt,!1)):A(t,Nt,void 0);break}case"insertFromPaste":case"insertFromPasteAsQuotation":{A(t,xo,o);break}case"deleteByComposition":{ox(a,d)&&A(t,Dn,o);break}case"deleteByDrag":case"deleteByCut":{A(t,Dn,o);break}case"deleteContent":{A(t,rt,!1);break}case"deleteWordBackward":{A(t,It,!0);break}case"deleteWordForward":{A(t,It,!1);break}case"deleteHardLineBackward":case"deleteSoftLineBackward":{A(t,Et,!0);break}case"deleteContentForward":case"deleteHardLineForward":case"deleteSoftLineForward":{A(t,Et,!1);break}case"formatStrikeThrough":{A(t,Be,"strikethrough");break}case"formatBold":{A(t,Be,"bold");break}case"formatItalic":{A(t,Be,"italic");break}case"formatUnderline":{A(t,Be,"underline");break}case"historyUndo":{A(t,Eo,void 0);break}case"historyRedo":{A(t,To,void 0);break}default:}})}function ix(o,t){o.stopPropagation(),Ee(t,()=>{let e=T(),n=o.data,r=Ku(o);if(n!=null&&_(e)&&Fu(e,r,n,o.timeStamp,!1)){Wr&&(ha(t,n),Wr=!1);let s=e.anchor.getNode(),l=De(t._window);if(l===null)return;let a=e.isBackward(),d=a?e.anchor.offset:e.focus.offset,u=a?e.focus.offset:e.anchor.offset;(!So||e.isCollapsed()||!L(s)||l.anchorNode===null||s.getTextContent().slice(0,d)+n+s.getTextContent().slice(d+u)!==Ql(l.anchorNode))&&A(t,xt,n);let f=n.length;Xe&&f>1&&o.inputType==="insertCompositionText"&&!t.isComposing()&&(e.anchor.offset-=f),!Jt&&!$t&&!Qt&&t.isComposing()&&(Yr=0,le(null))}else Ui(!1,t,n!==null?n:void 0),Wr&&(ha(t,n||void 0),Wr=!1);zc()}),Yn=null}function sx(o,t){Ee(t,()=>{let e=T();if(_(e)&&!t.isComposing()){let n=e.anchor,r=e.anchor.getNode();le(n.key),(o.timeStamp{ha(t,o.data)})}function ax(o,t){if(Yr=o.timeStamp,Pu=o.key,t.isComposing())return;let{key:e,shiftKey:n,ctrlKey:r,metaKey:i,altKey:s}=o;if(!A(t,Dl,o)&&e!=null){if(du(e,r,s,i))A(t,qo,o);else if(cu(e,r,n,s,i))A(t,Ol,o);else if(lu(e,r,s,i))A(t,Yo,o);else if(au(e,r,n,s,i))A(t,Al,o);else if(uu(e,r,i))A(t,Vt,o);else if(fu(e,r,i))A(t,Xt,o);else if(Zc(e,n))qr=!0,A(t,ve,o);else if(pu(e))A(t,yr,o);else if(Vc(e,r))o.preventDefault(),qr=!0,A(t,Zt,!0);else if(Yc(e,n))qr=!1,A(t,ve,o);else if(Qc(e,s,i,r))Pn(e)?A(t,jt,o):(o.preventDefault(),A(t,rt,!0));else if(Nu(e))A(t,Zo,o);else if(eu(e,r,n,s,i))Bn(e)?A(t,Gt,o):(o.preventDefault(),A(t,rt,!1));else if(Xc(e,s,r))o.preventDefault(),A(t,It,!0);else if(jc(e,s,r))o.preventDefault(),A(t,It,!1);else if(Gc(e,i))o.preventDefault(),A(t,Et,!0);else if(Jc(e,i))o.preventDefault(),A(t,Et,!1);else if(xu(e))A(t,Ai,o);else if(qc(e,s,r,i))A(t,Vo,o);else if(tu(e,n,i,r))o.preventDefault(),A(t,Eo,void 0);else if(ou(e,n,i,r))o.preventDefault(),A(t,To,void 0);else{let l=t._editorState._selection;Ae(l)?nu(e,n,i,r)?(o.preventDefault(),A(t,Co,o)):ru(e,n,i,r)?(o.preventDefault(),A(t,bo,o)):ea(e,i,r)&&(o.preventDefault(),A(t,On,o)):!Xe&&ea(e,i,r)&&(o.preventDefault(),A(t,On,o))}mu(r,n,s,i)&&A(t,Bl,o)}}function Uu(o){let t=o.__lexicalEventHandles;return t===void 0&&(t=[],o.__lexicalEventHandles=t),t}var Zn=new Map;function zu(o){let t=o.target,e=t==null?null:t.nodeType===9?t.defaultView:t.ownerDocument.defaultView,n=De(e);if(n===null)return;let r=Hi(n.anchorNode);if(r===null)return;ga&&(ga=!1,Ee(r,()=>{let u=Je(),f=n.anchorNode;if(f===null)return;let c=f.nodeType;if(c!==Lo&&c!==je)return;let m=Zr(u,n,r,o);q(m)}));let i=Pr(r),s=i[i.length-1],l=s._key,a=Zn.get(l),d=a||s;d!==r&&ku(n,d,!1),ku(n,r,!0),r!==s?Zn.set(l,r):a&&Zn.delete(l)}function Iu(o){o._lexicalHandled=!0}function $u(o){return o._lexicalHandled===!0}function Wu(o,t){let e=o.ownerDocument,n=Ji.get(e);(n===void 0||n<1)&&e.addEventListener("selectionchange",zu),Ji.set(e,(n||0)+1),o.__lexicalEditor=t;let r=Uu(o);for(let i=0;i{$u(d)||(Iu(d),(t.isEditable()||s==="click")&&l(d,t))}:d=>{if($u(d))return;Iu(d);let u=t.isEditable();switch(s){case"cut":return u&&A(t,bo,d);case"copy":return A(t,Co,d);case"paste":return u&&A(t,xo,d);case"dragstart":return u&&A(t,jo,d);case"dragover":return u&&A(t,Sr,d);case"dragend":return u&&A(t,kl,d);case"focus":return u&&A(t,Lr,d);case"blur":return u&&A(t,Pl,d);case"drop":return u&&A(t,Xo,d)}};o.addEventListener(s,a),r.push(()=>{o.removeEventListener(s,a)})}}function qu(o){let t=o.ownerDocument,e=Ji.get(t);C(e!==void 0,"Root element not registered");let n=e-1;C(n>=0,"Root element count less than 0"),Ji.set(t,n),n===0&&t.removeEventListener("selectionchange",zu);let r=Jo(o);Kn(r)?(dx(r),o.__lexicalEditor=null):r&&C(!1,"Attempted to remove event handlers from a node that does not belong to this build of Lexical");let i=Uu(o);for(let s=0;si.__key===this.__key);if(L(this))return n;if(_(e)&&e.anchor.type==="element"&&e.focus.type==="element"){if(e.isCollapsed())return!1;let i=this.getParent();if(H(this)&&this.isInline()&&i){let s=e.isBackward()?e.focus:e.anchor,l=s.getNode();if(s.offset===l.getChildrenSize()&&l.is(i)&&l.getLastChildOrThrow().is(this))return!1}}return n}shouldSelectDirectly(){return!1}getKey(){return this.__key}getIndexWithinParent(){let t=this.getParent();if(t===null)return-1;let e=t.getFirstChild(),n=0;for(;e!==null;){if(this.is(e))return n;n++,e=e.getNextSibling()}return-1}getParent(){let t=this.getLatest().__parent;return t===null?null:ee(t)}getParentOrThrow(){let t=this.getParent();return t===null&&C(!1,"Expected node %s to have a parent.",this.__key),t}getTopLevelElement(){let t=this;for(;t!==null;){let e=t.getParent();if(ge(e))return C(E(t)||t===this&&H(t),"Children of root nodes must be elements or decorators"),t;t=e}return null}getTopLevelElementOrThrow(){let t=this.getTopLevelElement();return t===null&&C(!1,"Expected node %s to have a top parent element.",this.__key),t}getParents(){let t=[],e=this.getParent();for(;e!==null;)t.push(e),e=e.getParent();return t}getParentKeys(){let t=[],e=this.getParent();for(;e!==null;)t.push(e.__key),e=e.getParent();return t}getPreviousSibling(){let e=this.getLatest().__prev;return e===null?null:ee(e)}getPreviousSiblings(){let t=[],e=this.getParent();if(e===null)return t;let n=e.getFirstChild();for(;n!==null&&!n.is(this);)t.push(n),n=n.getNextSibling();return t}getNextSibling(){let e=this.getLatest().__next;return e===null?null:ee(e)}getNextSiblings(){let t=[],e=this.getNextSibling();for(;e!==null;)t.push(e),e=e.getNextSibling();return t}getCommonAncestor(t){let e=this.getParents(),n=t.getParents();E(this)&&e.unshift(this),E(t)&&n.unshift(t);let r=e.length,i=n.length;if(r===0||i===0||e[r-1]!==n[i-1])return null;let s=new Set(n);for(let l=0;l{l.append(h)})),_(n)){q(n);let h=n.anchor,N=n.focus;h.key===i&&Ea(h,l),N.key===i&&Ea(N,l)}return st()===i&&le(s),l}insertAfter(t,e=!0){ue(),qi(this,t);let n=this.getWritable(),r=t.getWritable(),i=r.getParent(),s=T(),l=!1,a=!1;if(i!==null){let m=t.getIndexWithinParent();if(oo(r),_(s)){let g=i.__key,h=s.anchor,N=s.focus;l=h.type==="element"&&h.key===g&&h.offset===m+1,a=N.type==="element"&&N.key===g&&N.offset===m+1}}let d=this.getNextSibling(),u=this.getParentOrThrow().getWritable(),f=r.__key,c=n.__next;if(d===null)u.__last=f;else{let m=d.getWritable();m.__prev=f}if(u.__size++,n.__next=f,r.__next=c,r.__prev=n.__key,r.__parent=n.__parent,e&&_(s)){let m=this.getIndexWithinParent();Vn(s,u,m+1);let g=u.__key;l&&s.anchor.set(g,m+2,"element"),a&&s.focus.set(g,m+2,"element")}return t}insertBefore(t,e=!0){ue(),qi(this,t);let n=this.getWritable(),r=t.getWritable(),i=r.__key;oo(r);let s=this.getPreviousSibling(),l=this.getParentOrThrow().getWritable(),a=n.__prev,d=this.getIndexWithinParent();if(s===null)l.__first=i;else{let f=s.getWritable();f.__next=i}l.__size++,n.__prev=i,r.__prev=a,r.__next=n.__key,r.__parent=n.__parent;let u=T();if(e&&_(u)){let f=this.getParentOrThrow();Vn(u,f,d)}return t}isParentRequired(){return!1}createParentElementNode(){return I()}selectStart(){return this.selectPrevious()}selectEnd(){return this.selectNext(0,0)}selectPrevious(t,e){ue();let n=this.getPreviousSibling(),r=this.getParentOrThrow();if(n===null)return r.select(0,0);if(E(n))return n.select();if(!L(n)){let i=n.getIndexWithinParent()+1;return r.select(i,i)}return n.select(t,e)}selectNext(t,e){ue();let n=this.getNextSibling(),r=this.getParentOrThrow();if(n===null)return r.select();if(E(n))return n.select(0,0);if(!L(n)){let i=n.getIndexWithinParent();return r.select(i,i)}return n.select(t,e)}markDirty(){this.getWritable()}insertDOMIntoParent(t,e){return!1}};p(_t,"importDOM");function cx(o,t){let e=Q()._nodes.get(o);e===void 0&&C(!1,"Create node: Attempted to create node %s that was not configured to be used on the editor.",t.name);let n=e.klass;n!==t&&C(!1,"Create node: Type %s in node %s does not match registered node %s with the same type",o,t.name,n.name)}function Vu(o,t,e){let n=e||t.getParentOrThrow().getLastChild(),r=t,i=[t];for(;r!==n;)r.getNextSibling()||C(!1,"insertRangeAfter: lastToInsert must be a later sibling of firstToInsert"),r=r.getNextSibling(),i.push(r);let s=o;for(let l of i)s=s.insertAfter(l)}var on=class o extends _t{static getType(){return"linebreak"}static clone(t){return new o(t.__key)}constructor(t){super(t)}getTextContent(){return` +`}createDOM(){return document.createElement("br")}exportDOM(t){let e=super.exportDOM(t),n=this.getParent();return n&&!n.isInline()&&n.getLastChild()?.getKey()===this.getKey()&&(e.after=r=>(r instanceof HTMLElement&&r.before(document.createElement("br"),r),null)),e}updateDOM(){return!1}static importDOM(){return{br:t=>fx(t)||mx(t)?null:{conversion:ux,priority:0}}}static importJSON(t){return et()}exportJSON(){return{type:"linebreak",version:1}}};function ux(o){return{node:et()}}function et(){return ie(new on)}function Fe(o){return o instanceof on}function fx(o){let t=o.parentElement;if(t!==null&&wo(t)){let e=t.firstChild;if(e===o||e.nextSibling===o&&Qi(e)){let n=t.lastChild;if(n===o||n.previousSibling===o&&Qi(n))return!0}}return!1}function mx(o){let t=o.parentElement;if(t!==null&&wo(t)){let e=t.firstChild;if(e===o||e.nextSibling===o&&Qi(e))return!1;let n=t.lastChild;if(n===o||n.previousSibling===o&&Qi(n))return!0}return!1}function Qi(o){return o.nodeType===je&&/^( |\t|\r?\n)+$/.test(o.textContent||"")}function Ta(o,t){return t&vr?"code":t&Ar?"mark":t&Dr?"sub":t&Or?"sup":null}function Ca(o,t){return t&Mr?"strong":t&wr?"em":"span"}function Qu(o,t,e,n,r){let i=n.classList,s=Mo(r,"base");s!==void 0&&i.add(...s),s=Mo(r,"underlineStrikethrough");let l=!1,a=t&Rn&&t&An,d=e&Rn&&e&An;s!==void 0&&(d?(l=!0,a||i.add(...s)):a&&i.remove(...s));for(let u in He){let c=He[u];if(s=Mo(r,u),s!==void 0)if(e&c){if(l&&(u==="underline"||u==="strikethrough")){t&c&&i.remove(...s);continue}((t&c)===0||a&&u==="underline"||u==="strikethrough")&&i.add(...s)}else t&c&&i.remove(...s)}}function px(o,t){let e=o.length,n=t.length,r=0,i=0;for(;r{let e=o?1:0;return t.split("").map((n,r)=>r%2===e?"\xA0":n).join("")}}var dt=class o extends _t{constructor(e,n){super(n);p(this,"__text");p(this,"__format");p(this,"__style");p(this,"__mode");p(this,"__detail");this.__text=e,this.__format=0,this.__style="",this.__mode=0,this.__detail=0}static getType(){return"text"}static clone(e){return new o(e.__text,e.__key)}afterCloneFrom(e){super.afterCloneFrom(e),this.__format=e.__format,this.__style=e.__style,this.__mode=e.__mode,this.__detail=e.__detail}getFormat(){return this.getLatest().__format}getDetail(){return this.getLatest().__detail}getMode(){let e=this.getLatest();return vc[e.__mode]}getStyle(){return this.getLatest().__style}isToken(){return this.getLatest().__mode===Ri}isComposing(){return this.__key===st()}isSegmented(){return this.getLatest().__mode===ki}isDirectionless(){return(this.getLatest().__detail&Ii)!==0}isUnmergeable(){return(this.getLatest().__detail&kn)!==0}hasFormat(e){let n=He[e];return(this.getFormat()&n)!==0}isSimpleText(){return this.__type==="text"&&this.__mode===0}getTextContent(){return this.getLatest().__text}getFormatFlags(e,n){let i=this.getLatest().__format;return Ir(i,e,n)}canHaveFormat(){return!0}createDOM(e,n){let r=this.__format,i=Ta(this,r),s=Ca(this,r),l=i===null?s:i,a=document.createElement(l),d=a;this.hasFormat("code")&&a.setAttribute("spellcheck","false"),i!==null&&(d=document.createElement(s),a.appendChild(d));let u=this.__text;Xu(d,this,s,r,u,e);let f=this.__style;return f!==""&&(a.style.cssText=f),a}updateDOM(e,n,r){let i=this.__text,s=e.__format,l=this.__format,a=Ta(this,s),d=Ta(this,l),u=Ca(this,s),f=Ca(this,l);if((a===null?u:a)!==(d===null?f:d))return!0;if(a===d&&u!==f){let S=n.firstChild;S==null&&C(!1,"updateDOM: prevInnerDOM is null or undefined");let v=document.createElement(f);return Xu(v,this,f,l,i,r),n.replaceChild(v,S),!1}let g=n;d!==null&&a!==null&&(g=n.firstChild,g==null&&C(!1,"updateDOM: innerDOM is null or undefined")),ef(i,g,this);let N=r.theme.text;N!==void 0&&s!==l&&Qu(f,s,l,g,N);let b=e.__style,x=this.__style;return b!==x&&(n.style.cssText=x),!1}static importDOM(){return{"#text":()=>({conversion:Ex,priority:0}),b:()=>({conversion:hx,priority:0}),code:()=>({conversion:Do,priority:0}),em:()=>({conversion:Do,priority:0}),i:()=>({conversion:Do,priority:0}),s:()=>({conversion:Do,priority:0}),span:()=>({conversion:gx,priority:0}),strong:()=>({conversion:Do,priority:0}),sub:()=>({conversion:Do,priority:0}),sup:()=>({conversion:Do,priority:0}),u:()=>({conversion:Do,priority:0})}}static importJSON(e){let n=z(e.text);return n.setFormat(e.format),n.setDetail(e.detail),n.setMode(e.mode),n.setStyle(e.style),n}exportDOM(e){let{element:n}=super.exportDOM(e),r=(n?.nodeName||"").toLowerCase();C(n!==null&&he(n),"Expected TextNode createDOM to always return a HTMLElement");let i=this.getTextContent(),s=oa(this.getPreviousSibling()),l=oa(this.getNextSibling());/^\s/.test(i)&&(i=i.replace(/^(\s+)/,ju(s))),/\s$/.test(i)&&(i=i.replace(/(\s+)$/,ju(l)));for(let a of Array.from(n.classList.values()))a.startsWith("editor-theme-")&&n.classList.remove(a);if(n.classList.length===0&&n.removeAttribute("class"),n.nodeName==="SPAN"&&!n.getAttribute("style"))n=document.createTextNode(i);else{let a=n;for(;a.childElementCount>0;)a=a.children[0];a.textContent=i}return this.hasFormat("bold")&&r!=="strong"&&(n=es(n,"strong")),this.hasFormat("italic")&&r!=="em"&&(n=es(n,"em")),this.hasFormat("strikethrough")&&(n=es(n,"s")),this.hasFormat("underline")&&(n=es(n,"u")),{element:n}}exportJSON(){return{detail:this.getDetail(),format:this.getFormat(),mode:this.getMode(),style:this.getStyle(),text:this.getTextContent(),type:"text",version:1}}selectionTransform(e,n){}setFormat(e){let n=this.getWritable();return n.__format=typeof e=="string"?He[e]:e,n}setDetail(e){let n=this.getWritable();return n.__detail=typeof e=="string"?Mc[e]:e,n}setStyle(e){let n=this.getWritable();return n.__style=e,n}toggleFormat(e){let n=this.getFormat(),r=Ir(n,e,null);return this.setFormat(r)}toggleDirectionless(){let e=this.getWritable();return e.__detail^=Ii,e}toggleUnmergeable(){let e=this.getWritable();return e.__detail^=kn,e}setMode(e){let n=wc[e];if(this.__mode===n)return this;let r=this.getWritable();return r.__mode=n,r}setTextContent(e){if(this.__text===e)return this;let n=this.getWritable();return n.__text=e,n}select(e,n){ue();let r=e,i=n,s=T(),l=this.getTextContent(),a=this.__key;if(typeof l=="string"){let d=l.length;r===void 0&&(r=d),i===void 0&&(i=d)}else r=0,i=0;if(_(s)){let d=st();(d===s.anchor.key||d===s.focus.key)&&le(a),s.setTextNodeRange(this,r,this,i)}else return ts(a,r,a,i,"text","text");return s}selectStart(){return this.select(0,0)}selectEnd(){let e=this.getTextContentSize();return this.select(e,e)}spliceText(e,n,r,i){let s=this.getWritable(),l=s.__text,a=r.length,d=e;d<0&&(d=a+d,d<0&&(d=0));let u=T();if(i&&_(u)){let c=e+a;u.setTextNodeRange(s,c,s,c)}let f=l.slice(0,d)+r+l.slice(d+n);return s.__text=f,s}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}splitText(...e){ue();let n=this.getLatest(),r=n.getTextContent(),i=n.__key,s=st(),l=new Set(e),a=[],d=r.length,u="";for(let R=0;RM&&se.offset<=j&&(se.key=k,se.offset-=M,S.dirty=!0),Ye.key===i&&Ye.type==="text"&&Ye.offset>M&&Ye.offset<=j&&(Ye.key=k,Ye.offset-=M,S.dirty=!0)}s===i&&le(k),M=j,v.push(B)}if(m!==null){Kc(this);let R=m.getWritable(),O=this.getIndexWithinParent();x?(R.splice(O,0,v),this.remove()):R.splice(O,1,v),_(S)&&Vn(S,m,O,f-1)}return v}mergeWithSibling(e){let n=e===this.getPreviousSibling();!n&&e!==this.getNextSibling()&&C(!1,"mergeWithSibling: sibling must be a previous or next sibling");let r=this.__key,i=e.__key,s=this.__text,l=s.length;st()===i&&le(r);let d=T();if(_(d)){let m=d.anchor,g=d.focus;m!==null&&m.key===i&&(ba(m,n,r,e,l),d.dirty=!0),g!==null&&g.key===i&&(ba(g,n,r,e,l),d.dirty=!0)}let u=e.__text,f=n?u+s:s+u;this.setTextContent(f);let c=this.getWritable();return e.remove(),c}isTextEntity(){return!1}};function gx(o){let e=o.style;return{forChild:_a(e),node:null}}function hx(o){let t=o,e=t.style.fontWeight==="normal";return{forChild:_a(t.style,e?void 0:"bold"),node:null}}var Gu=new WeakMap;function Nx(o){return o.nodeName==="PRE"||o.nodeType===Lo&&o.style!==void 0&&o.style.whiteSpace!==void 0&&o.style.whiteSpace.startsWith("pre")}function xx(o){let t,e=o.parentNode,n=[o];for(;e!==null&&(t=Gu.get(e))===void 0&&!Nx(e);)n.push(e),e=e.parentNode;let r=t===void 0?e:t;for(let i=0;i0){/[ \t\n]$/.test(s)&&(n=n.slice(1)),i=!1;break}}i&&(n=n.slice(1))}if(n[n.length-1]===" "){let r=t,i=!0;for(;r!==null&&(r=Ju(r,!0))!==null;)if((r.textContent||"").replace(/^( |\t|\r?\n)+/,"").length>0){i=!1;break}i&&(n=n.slice(0,n.length-1))}return n===""?{node:null}:{node:z(n)}}function Ju(o,t){let e=o;for(;;){let n;for(;(n=t?e.nextSibling:e.previousSibling)===null;){let i=e.parentElement;if(i===null)return null;e=i}if(e=n,e.nodeType===Lo){let i=e.style.display;if(i===""&&!en(e)||i!==""&&!i.startsWith("inline"))return null}let r=e;for(;(r=t?e.firstChild:e.lastChild)!==null;)e=r;if(e.nodeType===je)return e;if(e.nodeName==="BR")return null}}var Tx={code:"code",em:"italic",i:"italic",s:"strikethrough",strong:"bold",sub:"subscript",sup:"superscript",u:"underline"};function Do(o){let t=Tx[o.nodeName.toLowerCase()];return t==="code"&&o.closest("pre")?{node:null}:t===void 0?{node:null}:{forChild:_a(o.style,t),node:null}}function z(o=""){return ie(new dt(o))}function L(o){return o instanceof dt}function _a(o,t){let e=o.fontWeight,n=o.textDecoration.split(" "),r=e==="700"||e==="bold",i=n.includes("line-through"),s=o.fontStyle==="italic",l=n.includes("underline"),a=o.verticalAlign,d=o.color,u=o.backgroundColor;return f=>{if(!L(f))return f;r&&!f.hasFormat("bold")&&f.toggleFormat("bold"),i&&!f.hasFormat("strikethrough")&&f.toggleFormat("strikethrough"),s&&!f.hasFormat("italic")&&f.toggleFormat("italic"),l&&!f.hasFormat("underline")&&f.toggleFormat("underline"),a==="sub"&&!f.hasFormat("subscript")&&f.toggleFormat("subscript"),a==="super"&&!f.hasFormat("superscript")&&f.toggleFormat("superscript");let c=f.getStyle();return d&&(c+=`color: ${d};`),u&&u!=="transparent"&&(c+=`background-color: ${u};`),c&&f.setStyle(c),t&&!f.hasFormat(t)&&f.toggleFormat(t),f}}var nn=class o extends dt{static getType(){return"tab"}static clone(t){return new o(t.__key)}afterCloneFrom(t){super.afterCloneFrom(t),this.__text=t.__text}constructor(t){super(" ",t),this.__detail=kn}static importDOM(){return null}static importJSON(t){let e=Ht();return e.setFormat(t.format),e.setStyle(t.style),e}exportJSON(){return{...super.exportJSON(),type:"tab",version:1}}setTextContent(t){C(!1,"TabNode does not support setTextContent")}setDetail(t){C(!1,"TabNode does not support setDetail")}setMode(t){C(!1,"TabNode does not support setMode")}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}};function Ht(){return ie(new nn)}function ya(o){return o instanceof nn}var Ma=class{constructor(t,e,n){p(this,"key");p(this,"offset");p(this,"type");p(this,"_selection");this._selection=null,this.key=t,this.offset=e,this.type=n}is(t){return this.key===t.key&&this.offset===t.offset&&this.type===t.type}isBefore(t){let e=this.getNode(),n=t.getNode(),r=this.offset,i=t.offset;if(E(e)){let s=e.getDescendantByIndex(r);e=s??e}if(E(n)){let s=n.getDescendantByIndex(i);n=s??n}return e===n?ri&&(n=i)}else if(!E(t)){let i=t.getNextSibling();if(L(i))e=i.__key,n=0,r="text";else{let s=t.getParent();s&&(e=s.__key,n=t.getIndexWithinParent()+1)}}o.set(e,n,r)}function Ea(o,t){if(E(t)){let e=t.getLastDescendant();E(e)||L(e)?Sa(o,e):Sa(o,t)}else Sa(o,t)}function Cx(o,t,e,n){let r=o.getNode(),i=r.getChildAtIndex(o.offset),s=z(),l=re(r)?I().append(s):s;s.setFormat(e),s.setStyle(n),i===null?r.append(l):i.insertBefore(l),o.is(t)&&t.set(s.__key,0,"text"),o.set(s.__key,0,"text")}function Oo(o,t,e,n){o.key=t,o.offset=e,o.type=n}var os=class o{constructor(t){p(this,"_nodes");p(this,"_cachedNodes");p(this,"dirty");this._cachedNodes=null,this._nodes=t,this.dirty=!1}getCachedNodes(){return this._cachedNodes}setCachedNodes(t){this._cachedNodes=t}is(t){if(!Ae(t))return!1;let e=this._nodes,n=t._nodes;return e.size===n.size&&Array.from(e).every(r=>n.has(r))}isCollapsed(){return!1}isBackward(){return!1}getStartEndPoints(){return null}add(t){this.dirty=!0,this._nodes.add(t),this._cachedNodes=null}delete(t){this.dirty=!0,this._nodes.delete(t),this._cachedNodes=null}clear(){this.dirty=!0,this._nodes.clear(),this._cachedNodes=null}has(t){return this._nodes.has(t)}clone(){return new o(new Set(this._nodes))}extract(){return this.getNodes()}insertRawText(t){}insertText(){}insertNodes(t){let e=this.getNodes(),n=e.length,r=e[n-1],i;if(L(r))i=r.select();else{let s=r.getIndexWithinParent()+1;i=r.getParentOrThrow().select(s,s)}i.insertNodes(t);for(let s=0;s0&&!l.shouldSelectDirectly()?f=[]:f=[l]:f=l.getNodesBetween(a),Tt()||(this._cachedNodes=f),f}setTextNodeRange(t,e,n,r){Oo(this.anchor,t.__key,e,"text"),Oo(this.focus,n.__key,r,"text"),this._cachedNodes=null,this.dirty=!0}getTextContent(){let t=this.getNodes();if(t.length===0)return"";let e=t[0],n=t[t.length-1],r=this.anchor,i=this.focus,s=r.isBefore(i),[l,a]=Vr(this),d="",u=!0;for(let f=0;f=0;k--){let j=R[k];if(j.is(c)||E(j)&&j.isParentOf(c))break;j.isAttached()&&(!O.has(j)||j.is(M)?P||B.insertAfter(j,!1):j.remove())}if(!P){let k=v,j=null;for(;k!==null;){let se=k.getChildren(),Ye=se.length;(Ye===0||se[Ye-1].is(j))&&(x.delete(k.__key),j=k),k=k.getParent()}}if(!c.isToken())c=c.spliceText(a,g-a,t,!0),c.getTextContent()===""?c.remove():c.isComposing()&&this.anchor.type==="text"&&(this.anchor.offset-=t.length);else if(a===g)c.select();else{let k=z(t);k.select(),c.replace(k)}for(let k=1;k0&&(N!==h.getTextContentSize()&&!Ge(h)&&([h]=h.splitText(N)),h.setFormat(b));for(let x=u+1;x(E(N)||H(N))&&!N.isInline();if(!t.some(i)){C(E(n),"Expected 'firstBlock' to be an ElementNode");let N=La(this);n.splice(N,0,t),r.selectEnd();return}let s=wx(t),l=s.getLastDescendant(),a=s.getChildren(),d=N=>E(N)&&ro(N)&&!N.isEmpty()&&E(n)&&(!n.isEmpty()||n.canMergeWhenEmpty()),f=!E(n)||!n.isEmpty()?this.insertParagraph():null,c=a[a.length-1],m=a[0];d(m)&&(C(E(n),"Expected 'firstBlock' to be an ElementNode"),n.append(...m.getChildren()),m=a[1]),m&&Vu(n,m);let g=Wn(l,ro);f&&E(g)&&(f.canMergeWhenEmpty()||ro(c)||E(c)&&c.isShadowRoot())&&(g.append(...f.getChildren()),f.remove()),E(n)&&n.isEmpty()&&n.remove(),l.selectEnd();let h=E(n)?n.getLastChild():null;Fe(h)&&g!==n&&h.remove()}insertParagraph(){if(this.anchor.key==="root"){let s=I();return F().splice(this.anchor.offset,0,[s]),s.select(),s}let t=La(this),e=Wn(this.anchor.getNode(),ro);C(E(e),"Expected ancestor to be an ElementNode");let n=e.getChildAtIndex(t),r=n?[n,...n.getNextSiblings()]:[],i=e.insertNewAfter(this,!1);return i?(i.append(...r),i.selectStart(),i):null}insertLineBreak(t){let e=et();if(this.insertNodes([e]),t){let n=e.getParentOrThrow(),r=e.getIndexWithinParent();n.select(r,r)}}extract(){let t=this.getNodes(),e=t.length,n=e-1,r=this.anchor,i=this.focus,s=t[0],l=t[n],[a,d]=Vr(this);if(e===0)return[];if(e===1){if(L(s)&&!this.isCollapsed()){let f=a>d?d:a,c=a>d?a:d,m=s.splitText(f,c),g=f===0?m[0]:m[1];return g!=null?[g]:[]}return[s]}let u=r.isBefore(i);if(L(s)){let f=u?a:d;f===s.getTextContentSize()?t.shift():f!==0&&([,s]=s.splitText(f),t[0]=s)}if(L(l)){let c=l.getTextContent().length,m=u?d:a;m===0?t.pop():m!==c&&([l]=l.splitText(m),t[n]=l)}return t}modify(t,e,n){let r=this.focus,i=this.anchor,s=t==="move",l=no(r,e);if(H(l)&&!l.isIsolated()){if(s&&l.isKeyboardSelectable()){let m=Ao();m.add(l.__key),q(m);return}let c=e?l.getPreviousSibling():l.getNextSibling();if(L(c)){let m=c.__key,g=e?c.getTextContent().length:0;r.set(m,g,"text"),s&&i.set(m,g,"text");return}else{let m=l.getParentOrThrow(),g,h;E(c)?(h=c.__key,g=e?c.getChildrenSize():0):(g=l.getIndexWithinParent(),h=m.__key,e||g++),r.set(h,g,"element"),s&&i.set(h,g,"element");return}}let a=Q(),d=De(a._window);if(!d)return;let u=a._blockCursorElement,f=a._rootElement;if(f!==null&&u!==null&&E(l)&&!l.isInline()&&!l.canBeEmpty()&&Hr(u,a,f),_x(d,t,e?"backward":"forward",n),d.rangeCount>0){let c=d.getRangeAt(0),m=this.anchor.getNode(),g=re(m)?m:na(m);if(this.applyDOMRange(c),this.dirty=!0,!s){let h=this.getNodes(),N=[],b=!1;for(let x=0;x0)if(e){let x=N[0];E(x)?x.selectStart():x.getParentOrThrow().selectStart()}else{let x=N[N.length-1];E(x)?x.selectEnd():x.getParentOrThrow().selectEnd()}(d.anchorNode!==c.startContainer||d.anchorOffset!==c.startOffset)&&bx(this)}}}forwardDeletion(t,e,n){if(!n&&(t.type==="element"&&E(e)&&t.offset===e.getChildrenSize()||t.type==="text"&&t.offset===e.getTextContentSize())){let r=e.getParent(),i=e.getNextSibling()||(r===null?null:r.getNextSibling());if(E(i)&&i.isShadowRoot())return!0}return!1}deleteCharacter(t){let e=this.isCollapsed();if(this.isCollapsed()){let n=this.anchor,r=n.getNode();if(this.forwardDeletion(n,r,t))return;let i=this.focus,s=no(i,t);if(H(s)&&!s.isIsolated()){if(s.isKeyboardSelectable()&&E(r)&&r.getChildrenSize()===0){r.remove();let l=Ao();l.add(s.__key),q(l)}else s.remove(),Q().dispatchCommand(_e,void 0);return}else if(!t&&E(s)&&E(r)&&r.isEmpty()){r.remove(),s.selectStart();return}if(this.modify("extend",t,"character"),this.isCollapsed()){if(t&&n.offset===0&&(n.type==="element"?n.getNode():n.getNode().getParentOrThrow()).collapseAtStart(this))return}else{let l=i.type==="text"?i.getNode():null;if(r=n.type==="text"?n.getNode():null,l!==null&&l.isSegmented()){let a=i.offset,d=l.getTextContentSize();if(l.is(r)||t&&a!==d||!t&&a!==0){of(l,t,a);return}}else if(r!==null&&r.isSegmented()){let a=n.offset,d=r.getTextContentSize();if(r.is(l)||t&&a!==0||!t&&a!==d){of(r,t,a);return}}yx(this,t)}}if(this.removeText(),t&&!e&&this.isCollapsed()&&this.anchor.type==="element"&&this.anchor.offset===0){let n=this.anchor.getNode();n.isEmpty()&&re(n.getParent())&&n.getIndexWithinParent()===0&&n.collapseAtStart(this)}}deleteLine(t){if(this.isCollapsed()){let e=this.anchor.type==="element";if(e&&this.insertText(" "),this.modify("extend",t,"lineboundary"),(t?this.focus:this.anchor).offset===0&&this.modify("extend",t,"character"),e){let r=t?this.anchor:this.focus;r.set(r.key,r.offset+1,r.type)}}this.removeText()}deleteWord(t){if(this.isCollapsed()){let e=this.anchor,n=e.getNode();if(this.forwardDeletion(e,n,t))return;this.modify("extend",t,"word")}this.removeText()}isBackward(){return this.focus.isBefore(this.anchor)}getStartEndPoints(){return[this.anchor,this.focus]}};function Ae(o){return o instanceof os}function tf(o){let t=o.offset;if(o.type==="text")return t;let e=o.getNode();return t===e.getChildrenSize()?e.getTextContent().length:0}function Vr(o){let t=o.getStartEndPoints();if(t===null)return[0,0];let[e,n]=t;return e.type==="element"&&n.type==="element"&&e.key===n.key&&e.offset===n.offset?[0,0]:[tf(e),tf(n)]}function bx(o){let t=o.focus,e=o.anchor,n=e.key,r=e.offset,i=e.type;Oo(e,t.key,t.offset,t.type),Oo(t,n,r,i),o._cachedNodes=null}function _x(o,t,e,n){o.modify(t,e,n)}function yx(o,t){let e=o.anchor,n=o.focus,r=e.getNode(),i=n.getNode();if(r===i&&e.type==="text"&&n.type==="text"){let s=e.offset,l=n.offset,a=se||c){i.splice(u,1),c&&(a=void 0);break}}let d=i.join("").trim();d===""?n.remove():(n.setTextContent(d),n.select(a,a))}function Sx(o,t,e){let n=o.getParent();return e===null||n===null||!n.canBeEmpty()||n!==e.getNode()}function nf(o,t,e,n){let r=t,i;if(o.nodeType===Lo){let s=!1,l=o.childNodes,a=l.length,d=n._blockCursorElement;r===a&&(s=!0,r=a-1);let u=l[r],f=!1;if(u===d)u=l[r+1],f=!0;else if(d!==null){let c=d.parentNode;if(o===c){let m=Array.prototype.indexOf.call(c.children,d);t>m&&r--}}if(i=Qo(u),L(i))r=Gl(i,s);else{let c=Qo(o);if(c===null)return null;if(E(c)){r=Math.min(c.getChildrenSize(),r);let m=c.getChildAtIndex(r);if(E(m)&&Sx(m,r,e)){let g=s?m.getLastDescendant():m.getFirstDescendant();g===null?c=m:(m=g,c=E(m)?m:m.getParentOrThrow()),r=0}L(m)?(i=m,c=null,r=Gl(m,s)):m!==c&&s&&!f&&r++}else{let m=c.getIndexWithinParent();t===0&&H(c)&&Qo(o)===c?r=m:r=m+1,c=c.getParentOrThrow()}if(E(c))return ye(c.__key,r,"element")}}else i=Qo(o);return L(i)?ye(i.__key,r,"text"):null}function rf(o,t,e){let n=o.offset,r=o.getNode();if(n===0){let i=r.getPreviousSibling(),s=r.getParent();if(!t)E(i)&&!e&&i.isInline()?(o.key=i.__key,o.offset=i.getChildrenSize(),o.type="element"):L(i)&&(o.key=i.__key,o.offset=i.getTextContent().length);else if((e||!t)&&i===null&&E(s)&&s.isInline()){let l=s.getPreviousSibling();L(l)&&(o.key=l.__key,o.offset=l.getTextContent().length)}}else if(n===r.getTextContent().length){let i=r.getNextSibling(),s=r.getParent();if(t&&E(i)&&i.isInline())o.key=i.__key,o.offset=0,o.type="element";else if((e||t)&&i===null&&E(s)&&s.isInline()&&!s.canInsertTextAfter()){let l=s.getNextSibling();L(l)&&(o.key=l.__key,o.offset=0)}}}function lf(o,t,e){if(o.type==="text"&&t.type==="text"){let n=o.isBefore(t),r=o.is(t);rf(o,n,r),rf(t,!n,r),r&&(t.key=o.key,t.offset=o.offset,t.type=o.type);let i=Q();if(i.isComposing()&&i._compositionKey!==o.key&&_(e)){let s=e.anchor,l=e.focus;Oo(o,s.key,s.offset,s.type),Oo(t,l.key,l.offset,l.type)}}}function af(o,t,e,n,r,i){if(o===null||e===null||!to(r,o,e))return null;let s=nf(o,t,_(i)?i.anchor:null,r);if(s===null)return null;let l=nf(e,n,_(i)?i.focus:null,r);if(l===null)return null;if(s.type==="element"&&l.type==="element"){let a=Qo(o),d=Qo(e);if(H(a)&&H(d))return null}return lf(s,l,i),[s,l]}function yt(o){return E(o)&&!o.isInline()}function ts(o,t,e,n,r,i){let s=lt(),l=new co(ye(o,t,r),ye(e,n,i),0,"");return l.dirty=!0,s._selection=l,l}function rn(){let o=ye("root",0,"element"),t=ye("root",0,"element");return new co(o,t,0,"")}function df(o,t=0){let e=L(o)?"text":"element",n=ye(o.getKey(),t,e),r=ye(o.getKey(),t,e);return new co(n,r,0,"")}function Ao(){return new os(new Set)}function Lx(o){let t=Ao();t.add(o.getKey()),q(t)}function cf(o){let e=o.getEditorState()._selection,n=De(o._window);return _(e)||e==null?Zr(e,n,o,null):e.clone()}function wa(o,t){return Zr(null,o,t,null)}function Zr(o,t,e,n){let r=e._window;if(r===null)return null;let i=n||r.event,s=i?i.type:void 0,l=s==="selectionchange",a=!Dc()&&(l||s==="beforeinput"||s==="compositionstart"||s==="compositionend"||s==="click"&&i&&i.detail===3||s==="drop"||s===void 0),d,u,f,c;if(!_(o)||a){if(t===null)return null;if(d=t.anchorNode,u=t.focusNode,f=t.anchorOffset,c=t.focusOffset,l&&_(o)&&!to(e,d,u))return o.clone()}else return o.clone();let m=af(d,f,u,c,e,o);if(m===null)return null;let[g,h]=m;return new co(g,h,_(o)?o.format:0,_(o)?o.style:"")}function T(){return lt()._selection}function Je(){return Q()._editorState._selection}function Vn(o,t,e,n=1){let r=o.anchor,i=o.focus,s=r.getNode(),l=i.getNode();if(!t.is(s)&&!t.is(l))return;let a=t.__key;if(o.isCollapsed()){let d=r.offset;if(e<=d&&n>0||e0||e0||e=l,d=a?i.getChildAtIndex(l-1):i.getChildAtIndex(e);if(L(d)){let u=0;a&&(u=d.getTextContentSize()),t.set(d.__key,u,"text"),n.set(d.__key,u,"text")}return}if(E(i)){let l=i.getChildrenSize(),a=e>=l,d=a?i.getChildAtIndex(l-1):i.getChildAtIndex(e);if(L(d)){let u=0;a&&(u=d.getTextContentSize()),t.set(d.__key,u,"text")}}if(E(s)){let l=s.getChildrenSize(),a=r>=l,d=a?s.getChildAtIndex(l-1):s.getChildAtIndex(r);if(L(d)){let u=0;a&&(u=d.getTextContentSize()),n.set(d.__key,u,"text")}}}function uf(o,t){let n=t.getEditorState()._selection,r=o._selection;if(_(r)){let i=r.anchor,s=r.focus,l;if(i.type==="text"&&(l=i.getNode(),l.selectionTransform(n,r)),s.type==="text"){let a=s.getNode();l!==a&&a.selectionTransform(n,r)}}}function Xn(o,t,e,n,r){let i=null,s=0,l=null;n!==null?(i=n.__key,L(n)?(s=n.getTextContentSize(),l="text"):E(n)&&(s=n.getChildrenSize(),l="element")):r!==null&&(i=r.__key,L(r)?l="text":E(r)&&(l="element")),i!==null&&l!==null?o.set(i,s,l):(s=t.getIndexWithinParent(),s===-1&&(s=e.getChildrenSize()),o.set(e.__key,s,"element"))}function ba(o,t,e,n,r){o.type==="text"?(o.key=e,t||(o.offset+=r)):o.offset>n.getIndexWithinParent()&&(o.offset-=1)}function ff(o,t,e,n,r,i,s){let l=n.anchorNode,a=n.focusNode,d=n.anchorOffset,u=n.focusOffset,f=document.activeElement;if(r.has("collaboration")&&f!==i||f!==null&&Fn(f))return;if(!_(t)){if(f!==null&&n.isCollapsed&&a instanceof Node){let k=Y(a);if(H(k)){n.removeAllRanges(),Lx(k);return}}o!==null&&to(e,l,a)&&n.removeAllRanges();return}let c=t.anchor,m=t.focus,g=c.key,h=m.key,N=zn(e,g),b=zn(e,h),x=c.offset,S=m.offset,v=t.format,M=t.style,R=t.isCollapsed(),O=N,P=b,B=!1;if(c.type==="text"){O=Un(N);let k=c.getNode();B=k.getFormat()!==v||k.getStyle()!==M}else _(o)&&o.anchor.type==="text"&&(B=!0);if(m.type==="text"&&(P=Un(b)),!(O===null||P===null)&&(R&&(o===null||B||_(o)&&(o.format!==v||o.style!==M))&&Zu(v,M,x,g,performance.now()),!(d===x&&u===S&&l===O&&a===P&&!(n.type==="Range"&&R)&&((f===null||!i.contains(f))&&i.focus({preventScroll:!0}),c.type!=="element")))){try{n.setBaseAndExtent(O,x,P,S)}catch(k){__DEV__&&console.warn(k)}if(!r.has("skip-scroll-into-view")&&t.isCollapsed()&&i!==null&&i===document.activeElement){let k=t instanceof co&&t.anchor.type==="element"?O.childNodes[x]||null:n.rangeCount>0?n.getRangeAt(0):null;if(k!==null){let j;if(k instanceof Text){let se=document.createRange();se.selectNode(k),j=se.getBoundingClientRect()}else k instanceof Range,j=k.getBoundingClientRect();Eu(e,j,i)}}Yu()}}function Te(o){let t=T()||Je();t===null&&(t=F().selectEnd()),t.insertNodes(o)}function La(o){let t=o;o.isCollapsed()||t.removeText();let e=T();_(e)&&(t=e),C(_(t),"Unexpected dirty selection to be null");let n=t.anchor,r=n.getNode(),i=n.offset;for(;!ro(r);)[r,i]=Mx(r,i);return i}function Mx(o,t){let e=o.getParent();if(!e){let r=I();return F().append(r),r.select(),[F(),0]}if(L(o)){let r=o.splitText(t);if(r.length===0)return[e,o.getIndexWithinParent()];let i=t===0?0:1,s=r[0].getIndexWithinParent()+i;return[e,s]}if(!E(o)||t===0)return[e,o.getIndexWithinParent()];let n=o.getChildAtIndex(t);if(n){let r=new co(ye(o.__key,t,"element"),ye(o.__key,t,"element"),0,""),i=o.insertNewAfter(r);i&&i.append(n,...n.getNextSiblings())}return[e,o.getIndexWithinParent()+1]}function wx(o){let t=I(),e=null;for(let n=0;n99&&C(!1,"One or more transforms are endlessly triggering additional transforms. May have encountered infinite recursion caused by transforms that have their preconditions too lose and/or conflict with each other.")}function lt(){return me===null&&C(!1,"Unable to find an active editor state. State helpers or node methods can only be used synchronously during the callback of editor.update(), editor.read(), or editorState.read().%s",Nf()),me}function Q(){return Ne===null&&C(!1,"Unable to find an active editor. This method can only be used synchronously during the callback of editor.update() or editor.read().%s",Nf()),Ne}function Nf(){let o=0,t=new Set,e=so.version;if(typeof window<"u")for(let r of document.querySelectorAll("[contenteditable]")){let i=Jo(r);if(Kn(i))o++;else if(i){let s=String(i.constructor.version||"<0.17.1");s===e&&(s+=" (separately built, likely a bundler configuration issue)"),t.add(s)}}let n=` Detected on the page: ${o} compatible editor(s) with version ${e}`;return t.size&&(n+=` and incompatible editors with versions ${Array.from(t).join(", ")}`),n}function xf(){return Ne}function yu(){return me}function pf(o,t,e){let n=t.__type,r=Pc(o,n),i=e.get(n);i===void 0&&(i=Array.from(r.transforms),e.set(n,i));let s=i.length;for(let l=0;l0||u>0;){if(a>0){t._dirtyLeaves=new Set;for(let f of l){let c=r.get(f);L(c)&&c.isAttached()&&c.isSimpleText()&&!c.isUnmergeable()&&Vl(c),c!==void 0&&gf(c,i)&&pf(t,c,s),e.add(f)}if(l=t._dirtyLeaves,a=l.size,a>0){ns++;continue}}t._dirtyLeaves=new Set,t._dirtyElements=new Map;for(let f of d){let c=f[0],m=f[1];if(c!=="root"&&!m)continue;let g=r.get(c);g!==void 0&&gf(g,i)&&pf(t,g,s),n.set(c,m)}l=t._dirtyLeaves,a=l.size,d=t._dirtyElements,u=d.size,ns++}t._dirtyLeaves=e,t._dirtyElements=n}function Da(o){return Oa(o,Q()._nodes)}function Oa(o,t){let e=o.type,n=t.get(e);n===void 0&&C(!1,'parseEditorState: type "%s" + not found',e);let r=n.klass;o.type!==r.getType()&&C(!1,"LexicalNode: Node %s does not implement .importJSON().",r.name);let i=r.importJSON(o),s=o.children;if(E(i)&&Array.isArray(s))for(let l=0;l{throw new Error("Cannot call set() on a frozen Lexical node map")},t.clear=()=>{throw new Error("Cannot call clear() on a frozen Lexical node map")},t.delete=()=>{throw new Error("Cannot call delete() on a frozen Lexical node map")}}function Ft(o,t){let e=o._pendingEditorState,n=o._rootElement,r=o._headless||n===null;if(e===null)return;let i=o._editorState,s=i._selection,l=e._selection,a=o._dirtyType!==Pt,d=me,u=Ke,f=Ne,c=o._updating,m=o._observer,g=null;if(o._pendingEditorState=null,o._editorState=e,!r&&a&&m!==null){Ne=o,me=e,Ke=!1,o._updating=!0;try{let O=o._dirtyType,P=o._dirtyElements,B=o._dirtyLeaves;m.disconnect(),g=Au(i,e,o,O,P,B)}catch(O){if(O instanceof Error&&o._onError(O),!va)Ra(o,null,n,e),Pi(o),o._dirtyType=eo,va=!0,Ft(o,i),va=!1;else throw O;return}finally{m.observe(n,mf),o._updating=c,me=d,Ke=u,Ne=f}}e._readOnly||(e._readOnly=!0,__DEV__&&(Tf(e),_(l)&&(Object.freeze(l.anchor),Object.freeze(l.focus)),Object.freeze(l)));let h=o._dirtyLeaves,N=o._dirtyElements,b=o._normalizedNodes,x=o._updateTags,S=o._deferred,v=e._nodeMap.size;a&&(o._dirtyType=Pt,o._cloneNotNeeded.clear(),o._dirtyLeaves=new Set,o._dirtyElements=new Map,o._normalizedNodes=new Set,o._updateTags=new Set),Su(o,e);let M=r?null:De(o._window);if(o._editable&&M!==null&&(a||l===null||l.dirty)){Ne=o,me=e;try{if(m!==null&&m.disconnect(),a||l===null||l.dirty){let O=o._blockCursorElement;O!==null&&Hr(O,o,n),ff(s,l,o,M,x,n,v)}bu(o,n,l),m!==null&&m.observe(n,mf)}finally{Ne=f,me=d}}g!==null&&Ax(o,g,x,h,i),!_(l)&&l!==null&&(s===null||!s.is(l))&&o.dispatchCommand(_e,void 0);let R=o._pendingDecorators;R!==null&&(o._decorators=R,o._pendingDecorators=null,jn("decorator",o,!0,R)),Ox(o,t||i,e),jn("update",o,!0,{dirtyElements:N,dirtyLeaves:h,editorState:e,normalizedNodes:b,prevEditorState:t||i,tags:x}),kx(o,S),Rx(o)}function Ox(o,t,e){let n=jl(t),r=jl(e);n!==r&&jn("textcontent",o,!0,r)}function Ax(o,t,e,n,r){let i=Array.from(o._listeners.mutation),s=i.length;for(let l=0;l{r=ia(o,t,e)}),r}let n=Pr(o);for(let r=4;r>=0;r--)for(let i=0;i{Ft(o)}):(d._flushSync=!1,u&&(n.clear(),o._deferred=[],o._pendingEditorState=null))}function Ee(o,t,e){o._updating?o._updates.push([t,e]):Cf(o,t,e)}var G=class extends _t{constructor(e){super(e);p(this,"__first");p(this,"__last");p(this,"__size");p(this,"__style");p(this,"__dir");this.__first=null,this.__last=null,this.__size=0,this.__style="",this.__dir=null}afterCloneFrom(e){super.afterCloneFrom(e),this.__first=e.__first,this.__last=e.__last,this.__size=e.__size,this.__style=e.__style,this.__dir=e.__dir}getStyle(){return this.getLatest().__style}getChildren(){let e=[],n=this.getFirstChild();for(;n!==null;)e.push(n),n=n.getNextSibling();return e}getChildrenKeys(){let e=[],n=this.getFirstChild();for(;n!==null;)e.push(n.__key),n=n.getNextSibling();return e}getChildrenSize(){return this.getLatest().__size}isEmpty(){return this.getChildrenSize()===0}isDirty(){let n=Q()._dirtyElements;return n!==null&&n.has(this.__key)}isLastChild(){let e=this.getLatest(),n=this.getParentOrThrow().getLastChild();return n!==null&&n.is(e)}getAllTextNodes(){let e=[],n=this.getFirstChild();for(;n!==null;){if(L(n)&&e.push(n),E(n)){let r=n.getAllTextNodes();e.push(...r)}n=n.getNextSibling()}return e}getFirstDescendant(){let e=this.getFirstChild();for(;E(e);){let n=e.getFirstChild();if(n===null)break;e=n}return e}getFirstSelectableDescendant(){if(this.shouldSelectDirectly())return null;let e=this.getFirstChild();for(;E(e)&&!e.shouldSelectDirectly();){let n=e.getFirstChild();if(n===null)break;e=n}return e}getLastDescendant(){let e=this.getLastChild();for(;E(e);){let n=e.getLastChild();if(n===null)break;e=n}return e}getLastSelectableDescendant(){if(this.shouldSelectDirectly())return null;let e=this.getLastChild();for(;E(e)&&!e.shouldSelectDirectly();){let n=e.getLastChild();if(n===null)break;e=n}return e}getDescendantByIndex(e){let n=this.getChildren(),r=n.length;if(e>=r){let s=n[r-1];return E(s)&&s.getLastDescendant()||s||null}let i=n[e];return E(i)&&i.getFirstDescendant()||i||null}getFirstChild(){let n=this.getLatest().__first;return n===null?null:ee(n)}getFirstChildOrThrow(){let e=this.getFirstChild();return e===null&&C(!1,"Expected node %s to have a first child.",this.__key),e}getLastChild(){let n=this.getLatest().__last;return n===null?null:ee(n)}getLastChildOrThrow(){let e=this.getLastChild();return e===null&&C(!1,"Expected node %s to have a last child.",this.__key),e}getChildAtIndex(e){let n=this.getChildrenSize(),r,i;if(e=e;){if(i===e)return r;r=r.getPreviousSibling(),i--}return null}getTextContent(){let e="",n=this.getChildren(),r=n.length;for(let i=0;ir.remove()),e}append(...e){return this.splice(this.getChildrenSize(),0,e)}setDirection(e){let n=this.getWritable();return n.__dir=e,n}setStyle(e){let n=this.getWritable();return n.__style=e||"",this}splice(e,n,r){let i=r.length,s=this.getChildrenSize(),l=this.getWritable(),a=l.__key,d=[],u=[],f=this.getChildAtIndex(e+n),c=null,m=s-n+i;if(e!==0)if(e===s)c=this.getLastChild();else{let h=this.getChildAtIndex(e);h!==null&&(c=h.getPreviousSibling())}if(n>0){let h=c===null?this.getFirstChild():c.getNextSibling();for(let N=0;N({root:Lf(F())}))}};var Ro=class extends G{static getType(){return"artificial"}createDOM(t){return document.createElement("div")}};function y(o,t={},e=[]){let n=document.createElement(o),r=Object.keys(t);for(let i of r)t[i]!==null&&n.setAttribute(i,t[i]);for(let i of e)typeof i=="string"?n.append(document.createTextNode(i)):n.append(i);return n}function is(o){return new DOMParser().parseFromString(o,"text/html")}function St(o,t="px"){return typeof o=="number"||/^-?\d+$/.test(o)?`${o}${t}`:o}function ln(o){return/^-?\d+$/.test(o)?Number(o):/^-?\d+\.\d+$/.test(o)?Math.round(Number(o)):/^-?\d+px\s*$/.test(o)?Number(o.trim().replace("px","")):0}function Gn(o){let t=o.getAttribute("style")||"";return ka(t)}function ka(o){let t=new Map,e=o.split(";");for(let n of e){let[r,i]=n.split(":");!r||!i||t.set(r.trim().toLowerCase(),i.trim())}return t}function Mf(o){let t=[];for(let[e,n]of o.entries())t.push(`${e}:${n}`);return t.join(";")}function wf(o,t,e){e?o.setAttribute(t,e):o.removeAttribute(t)}var vf=["left","right","center","justify"];function jr(o){let t=o.style.textAlign||"";return vf.includes(t)?t:o.classList.contains("align-left")?"left":o.classList.contains("align-right")?"right":o.classList.contains("align-center")?"center":o.classList.contains("align-justify")?"justify":""}function Ix(o){let t=o.style.paddingLeft||"0";return ln(t)}function Gr(o){let t=(o.dir||"").toLowerCase();return t==="rtl"||t==="ltr"?t:null}function ut(o,t){o.id&&t.setId(o.id),t.setAlignment(jr(o)),t.setInset(Ix(o)),t.setDirection(Gr(o))}function ko(o,t){return o.__id!==t.__id||o.__alignment!==t.__alignment||o.__inset!==t.__inset||o.__dir!==t.__dir}function Df(o,t,e){if(o.__id!==t.__id&&e.setAttribute("id",t.__id),o.__alignment!==t.__alignment){for(let n of vf)e.classList.remove("align-"+n);t.__alignment&&e.classList.add("align-"+t.__alignment)}o.__inset!==t.__inset&&(t.__inset?e.style.paddingLeft=`${t.__inset}px`:e.style.removeProperty("paddingLeft")),o.__dir!==t.__dir&&(t.__dir?e.dir=t.__dir:e.removeAttribute("dir"))}function ft(o,t){t.__id&&o.setAttribute("id",t.__id),t.__alignment&&o.classList.add("align-"+t.__alignment),t.__inset&&(o.style.paddingLeft=`${t.__inset}px`),t.__dir&&(o.dir=t.__dir)}function mt(o,t){t.setId(o.id),t.setAlignment(o.alignment),t.setInset(o.inset),t.setDirection(o.direction)}var Kt=class extends G{constructor(){super(...arguments);p(this,"__id","");p(this,"__alignment","");p(this,"__inset",0)}setId(e){let n=this.getWritable();n.__id=e}getId(){return this.getLatest().__id}setAlignment(e){let n=this.getWritable();n.__alignment=e}getAlignment(){return this.getLatest().__alignment}setInset(e){let n=this.getWritable();n.__inset=e}getInset(){return this.getLatest().__inset}exportJSON(){return{...super.exportJSON(),id:this.__id,alignment:this.__alignment,inset:this.__inset}}};function Io(o,t){t.__alignment=o.__alignment,t.__inset=o.__inset}var at=class o extends Kt{constructor(e){super(e);p(this,"__textFormat");p(this,"__textStyle");this.__textFormat=0,this.__textStyle=""}static getType(){return"paragraph"}getTextFormat(){return this.getLatest().__textFormat}setTextFormat(e){let n=this.getWritable();return n.__textFormat=e,n}hasTextFormat(e){let n=He[e];return(this.getTextFormat()&n)!==0}getTextStyle(){return this.getLatest().__textStyle}setTextStyle(e){let n=this.getWritable();return n.__textStyle=e,n}static clone(e){return new o(e.__key)}afterCloneFrom(e){super.afterCloneFrom(e),this.__textFormat=e.__textFormat,this.__textStyle=e.__textStyle,Io(e,this)}createDOM(e){let n=document.createElement("p"),r=Mo(e.theme,"paragraph");return r!==void 0&&n.classList.add(...r),ft(n,this),n}updateDOM(e,n,r){return ko(e,this)}static importDOM(){return{p:e=>({conversion:$x,priority:0})}}exportDOM(e){let{element:n}=super.exportDOM(e);return n&&he(n)&&this.isEmpty()&&n.append(document.createElement("br")),{element:n}}static importJSON(e){let n=I();return mt(e,n),n.setTextFormat(e.textFormat),n}exportJSON(){return{...super.exportJSON(),textFormat:this.getTextFormat(),textStyle:this.getTextStyle(),type:"paragraph",version:1}}insertNewAfter(e,n){let r=I();r.setTextFormat(e.format),r.setTextStyle(e.style);let i=this.getDirection();return r.setDirection(i),r.setStyle(this.getTextStyle()),this.insertAfter(r,n),r}collapseAtStart(){let e=this.getChildren();if(e.length===0||L(e[0])&&e[0].getTextContent().trim()===""){if(this.getNextSibling()!==null)return this.selectNext(),this.remove(),!0;if(this.getPreviousSibling()!==null)return this.selectPrevious(),this.remove(),!0}return!1}};function $x(o){let t=I();return ut(o,t),{node:t}}function I(){return ie(new at)}function Qe(o){return o instanceof at}var Px=!0,J=0,Re=1,Lt=2,Ue=3,ze=4;function Ra(o,t,e,n){let r=o._keyToDOMMap;r.clear(),o._editorState=Xr(),o._pendingEditorState=n,o._compositionKey=null,o._dirtyType=Pt,o._cloneNotNeeded.clear(),o._dirtyLeaves=new Set,o._dirtyElements.clear(),o._normalizedNodes=new Set,o._updateTags=new Set,o._updates=[],o._blockCursorElement=null;let i=o._observer;i!==null&&(i.disconnect(),o._observer=null),t!==null&&(t.textContent=""),e!==null&&(e.textContent="",r.set("root",e))}function Bx(o,t){let e=new Map,n=new Set,r=i=>{Object.keys(i).forEach(s=>{let l=e.get(s);l===void 0&&(l=[],e.set(s,l)),l.push(i[s])})};return o.forEach(i=>{let s=i.klass.importDOM;if(s==null||n.has(s))return;n.add(s);let l=s.call(i.klass);l!==null&&r(l)}),t&&r(t),e}function Jr(o){let t=o||{},e=xf(),n=t.theme||{},r=o===void 0?e:t.parentEditor||null,i=t.disableEvents||!1,s=Xr(),l=t.namespace||(r!==null?r._config.namespace:Jl()),a=t.editorState,d=[sn,dt,on,nn,at,Ro,...t.nodes||[]],{onError:u,html:f}=t,c=t.editable!==void 0?t.editable:!0,m;if(o===void 0&&e!==null)m=e._nodes;else{m=new Map;for(let h=0;h{N.hasOwnProperty(B)||console.warn(`${O} must implement static "${B}" method`)}),!N.hasOwnProperty("importDOM")&&N.hasOwnProperty("exportDOM")&&console.warn(`${O} should implement "importDOM" if using a custom "exportDOM" method to ensure HTML serialization (important for copy & paste) works as expected`),P instanceof ct&&(P.hasOwnProperty("decorate")||console.warn(`${P.constructor.name} must implement "decorate" method`)),N.hasOwnProperty("importJSON")||console.warn(`${O} should implement "importJSON" method to ensure JSON and default HTML serialization works as expected`),P.hasOwnProperty("exportJSON")||console.warn(`${O} should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected`)}}let S=N.getType(),v=N.transform(),M=new Set;v!==null&&M.add(v),m.set(S,{exportDOM:f&&f.export?f.export.get(N):void 0,klass:N,replace:b,replaceWithKlass:x,transforms:M})}}let g=new so(s,r,m,{disableEvents:i,namespace:l,theme:n},u||console.error,Bx(m,f?f.import:void 0),c);return a!==void 0&&(g._pendingEditorState=a,g._dirtyType=eo),g}var so=class{constructor(t,e,n,r,i,s,l){p(this,"constructor");p(this,"_headless");p(this,"_parentEditor");p(this,"_rootElement");p(this,"_editorState");p(this,"_pendingEditorState");p(this,"_compositionKey");p(this,"_deferred");p(this,"_keyToDOMMap");p(this,"_updates");p(this,"_updating");p(this,"_listeners");p(this,"_commands");p(this,"_nodes");p(this,"_decorators");p(this,"_pendingDecorators");p(this,"_config");p(this,"_dirtyType");p(this,"_cloneNotNeeded");p(this,"_dirtyLeaves");p(this,"_dirtyElements");p(this,"_normalizedNodes");p(this,"_updateTags");p(this,"_observer");p(this,"_key");p(this,"_onError");p(this,"_htmlConversions");p(this,"_window");p(this,"_editable");p(this,"_blockCursorElement");p(this,"_context");this._parentEditor=e,this._rootElement=null,this._editorState=t,this._pendingEditorState=null,this._compositionKey=null,this._deferred=[],this._keyToDOMMap=new Map,this._updates=[],this._updating=!1,this._listeners={decorator:new Set,editable:new Set,mutation:new Map,root:new Set,textcontent:new Set,update:new Set},this._commands=new Map,this._config=r,this._nodes=n,this._decorators={},this._pendingDecorators=null,this._dirtyType=Pt,this._cloneNotNeeded=new Set,this._dirtyLeaves=new Set,this._dirtyElements=new Map,this._normalizedNodes=new Set,this._updateTags=new Set,this._observer=null,this._key=Jl(),this._onError=i,this._htmlConversions=s,this._editable=l,this._headless=e!==null&&e._headless,this._window=null,this._blockCursorElement=null,this._context=null}isComposing(){return this._compositionKey!=null}registerUpdateListener(t){let e=this._listeners.update;return e.add(t),()=>{e.delete(t)}}registerEditableListener(t){let e=this._listeners.editable;return e.add(t),()=>{e.delete(t)}}registerDecoratorListener(t){let e=this._listeners.decorator;return e.add(t),()=>{e.delete(t)}}registerTextContentListener(t){let e=this._listeners.textcontent;return e.add(t),()=>{e.delete(t)}}registerRootListener(t){let e=this._listeners.root;return t(this._rootElement,null),e.add(t),()=>{t(null,this._rootElement),e.delete(t)}}registerCommand(t,e,n){n===void 0&&C(!1,'Listener for type "command" requires a "priority".');let r=this._commands;r.has(t)||r.set(t,[new Set,new Set,new Set,new Set,new Set]);let i=r.get(t);i===void 0&&C(!1,"registerCommand: Command %s not found in command map",String(t));let s=i[n];return s.add(e),()=>{s.delete(e),i.every(l=>l.size===0)&&r.delete(t)}}registerMutationListener(t,e,n){let r=this.resolveRegisteredNodeAfterReplacements(this.getRegisteredNode(t)).klass,i=this._listeners.mutation;i.set(e,r);let s=n&&n.skipInitialization;return(s===void 0?Px:s)||this.initializeMutationListener(e,r),()=>{i.delete(e)}}getRegisteredNode(t){let e=this._nodes.get(t.getType());return e===void 0&&C(!1,"Node %s has not been registered. Ensure node has been passed to createEditor.",t.name),e}resolveRegisteredNodeAfterReplacements(t){for(;t.replaceWithKlass;)t=this.getRegisteredNode(t.replaceWithKlass);return t}initializeMutationListener(t,e){let n=this._editorState,r=_u(n).get(e.getType());if(!r)return;let i=new Map;for(let s of r.keys())i.set(s,"created");i.size>0&&t(i,{dirtyLeaves:new Set,prevEditorState:n,updateTags:new Set(["registerMutationListener"])})}registerNodeTransformToKlass(t,e){let n=this.getRegisteredNode(t);return n.transforms.add(e),n}registerNodeTransform(t,e){let n=this.registerNodeTransformToKlass(t,e),r=[n],i=n.replaceWithKlass;if(i!=null){let s=this.registerNodeTransformToKlass(i,e);r.push(s)}return Uc(this,t.getType()),()=>{r.forEach(s=>s.transforms.delete(e))}}hasNode(t){return this._nodes.has(t.getType())}hasNodes(t){return t.every(this.hasNode.bind(this))}dispatchCommand(t,e){return A(this,t,e)}getDecorators(){return this._decorators}getRootElement(){return this._rootElement}getKey(){return this._key}setRootElement(t){let e=this._rootElement;if(t!==e){let n=Mo(this._config.theme,"root"),r=this._pendingEditorState||this._editorState;if(this._rootElement=t,Ra(this,e,t,r),e!==null&&(this._config.disableEvents||qu(e),n!=null&&e.classList.remove(...n)),t!==null){let i=Cu(t),s=t.style;s.userSelect="text",s.whiteSpace="pre-wrap",s.wordBreak="break-word",t.setAttribute("data-lexical-editor","true"),this._window=i,this._dirtyType=eo,Pi(this),this._updateTags.add("history-merge"),Ft(this),this._config.disableEvents||Wu(t,this),n!=null&&t.classList.add(...n)}else this._editorState=r,this._pendingEditorState=null,this._window=null;jn("root",this,!1,t,e)}}getElementByKey(t){return this._keyToDOMMap.get(t)||null}getEditorState(){return this._editorState}setEditorState(t,e){t.isEmpty()&&C(!1,"setEditorState: the editor state is empty. Ensure the editor state's root node never becomes empty."),$i(this);let n=this._pendingEditorState,r=this._updateTags,i=e!==void 0?e.tag:null;n!==null&&!n.isEmpty()&&(i!=null&&r.add(i),Ft(this)),this._pendingEditorState=t,this._dirtyType=eo,this._dirtyElements.set("root",!1),this._compositionKey=null,i!=null&&r.add(i),Ft(this)}parseEditorState(t,e){let n=typeof t=="string"?JSON.parse(t):t;return Ef(n,this,e)}read(t){return Ft(this),this.getEditorState().read(t,{editor:this})}update(t,e){Ee(this,t,e)}updateAndCommit(t,e){this.update(t,e),this.commitUpdates()}focus(t,e={}){let n=this._rootElement;n!==null&&(n.setAttribute("autocapitalize","off"),Ee(this,()=>{let r=T(),i=F();r!==null?r.dirty=!0:i.getChildrenSize()!==0&&(e.defaultSelection==="rootStart"?i.selectStart():i.selectEnd())},{onUpdate:()=>{n.removeAttribute("autocapitalize"),t&&t()},tag:"focus"}),this._pendingEditorState===null&&n.removeAttribute("autocapitalize"))}commitUpdates(){Ft(this)}blur(){let t=this._rootElement;t!==null&&t.blur();let e=De(this._window);e!==null&&e.removeAllRanges()}isEditable(){return this._editable}setEditable(t){this._editable!==t&&(this._editable=t,jn("editable",this,!0,t))}setUiContext(t){this._context=t}getUiContext(){return this._context}toJSON(){return{editorState:this._editorState.toJSON()}}};p(so,"version");so.version="0.17.1";function tt(...o){return()=>{for(let t=o.length-1;t>=0;t--)o[t]();o.length=0}}var Jn=new Map;function Ia(o){let t={},e=o.split(";");for(let n of e)if(n!==""){let[r,i]=n.split(/:([^]+)/);r&&i&&(t[r.trim()]=i.trim())}return t}function Qn(o){let t=Jn.get(o);return t===void 0&&(t=Ia(o),Jn.set(o,t)),__DEV__&&Object.freeze(t),t}function Af(o){let t="";for(let e in o)e&&(t+=`${e}: ${o[e]};`);return t}function Qr(o,t){let e=o.getStartEndPoints();if(t.isSelected(o)&&!t.isSegmented()&&!t.isToken()&&e!==null){let[n,r]=e,i=o.isBackward(),s=n.getNode(),l=r.getNode(),a=t.is(s),d=t.is(l);if(a||d){let[u,f]=Vr(o),c=s.is(l),m=t.is(i?l:s),g=t.is(i?s:l),h=0,N;if(c)h=u>f?f:u,N=u>f?u:f;else if(m)h=i?f:u,N=void 0;else if(g){let b=i?u:f;h=0,N=b}return t.__text=t.__text.slice(h,N),t}}return t}function $a(o){let t=o.getStyle(),e=Ia(t);Jn.set(t,e)}function er(o,t){let e=Qn("getStyle"in o?o.getStyle():o.style),n=Object.entries(t).reduce((i,[s,l])=>(typeof l=="function"?i[s]=l(e[s],o):l===null?delete i[s]:i[s]=l,i),{...e}),r=Af(n);o.setStyle(r),Jn.set(r,n)}function Pa(o,t){let e=o.getNodes(),n=e.length,r=o.getStartEndPoints();if(r===null)return;let[i,s]=r,l=n-1,a=e[0],d=e[l];if(o.isCollapsed()&&_(o)){er(o,t);return}let f=a.getTextContent().length,c=s.offset,m=i.offset,g=i.isBefore(s),h=g?m:c,N=g?c:m,b=g?i.type:s.type,x=g?s.type:i.type,S=g?s.key:i.key;if(L(a)&&h===f){let v=a.getNextSibling();L(v)&&(m=0,h=0,a=v)}if(e.length===1){if(L(a)&&a.canHaveFormat()){if(h=b==="element"?0:m>c?c:m,N=x==="element"?f:m>c?m:c,h===N)return;if(Ge(a)||h===0&&N===f)er(a,t),a.select(h,N);else{let v=a.splitText(h,N),M=h===0?v[0]:v[1];er(M,t),M.select(0,N-h)}}}else{if(L(a)&&h0&&o.classList.add(...e)}function ds(o,...t){let e=Bt(...t);e.length>0&&o.classList.remove(...e)}function $f(o,t){let e=o;for(;e!=null;){if(e instanceof t)return e;e=e.getParent()}return null}function Pf(o){let t=W(o,e=>E(e)&&!e.isInline());return E(t)||C(!1,"Expected node %s to have closest block element node.",o.__key),t}var W=(o,t)=>{let e=o;for(;e!==F()&&e!=null;){if(t(e))return e;e=e.getParent()}return null};function Mt(o,t){return o!==null?Object.getPrototypeOf(o).constructor.name===t.name:!1}var cs=0,Ha=1,Fa=2,wt=0,Wx=1,Bf=2,qx=3,Yx=4;function Zx(o,t,e){let n=o._nodeMap,r=[];for(let i of t){let s=n.get(i);s!==void 0&&r.push(s)}for(let[i,s]of e){if(!s)continue;let l=n.get(i);l!==void 0&&!re(l)&&r.push(l)}return r}function Vx(o,t,e,n,r){if(o===null||e.size===0&&n.size===0&&!r)return wt;let i=t._selection,s=o._selection;if(r)return Wx;if(!_(i)||!_(s)||!s.isCollapsed()||!i.isCollapsed())return wt;let l=Zx(t,e,n);if(l.length===0)return wt;if(l.length>1){let b=t._nodeMap,x=b.get(i.anchor.key),S=b.get(s.anchor.key);return x&&S&&!o._nodeMap.has(x.__key)&&L(x)&&x.__text.length===1&&i.anchor.offset===1?Bf:wt}let a=l[0],d=o._nodeMap.get(a.__key);if(!L(d)||!L(a)||d.__mode!==a.__mode)return wt;let u=d.__text,f=a.__text;if(u===f)return wt;let c=i.anchor,m=s.anchor;if(c.key!==m.key||c.type!=="text")return wt;let g=c.offset,h=m.offset,N=f.length-u.length;return N===1&&h===g-1?Bf:N===-1&&h===g+1?qx:N===-1&&h===g?Yx:wt}function Xx(o,t,e){let n=t._nodeMap.get(o),r=e._nodeMap.get(o),i=t._selection,s=e._selection;return!(_(i)&&_(s)&&i.anchor.type==="element"&&i.focus.type==="element"&&s.anchor.type==="text"&&s.focus.type==="text")&&L(n)&&L(r)&&n.__parent===r.__parent?JSON.stringify(t.read(()=>n.exportJSON()))===JSON.stringify(e.read(()=>r.exportJSON())):!1}function jx(o,t){let e=Date.now(),n=wt;return(r,i,s,l,a,d)=>{let u=Date.now();if(d.has("historic"))return n=wt,e=u,Fa;let f=Vx(r,i,l,a,o.isComposing()),c=(()=>{let m=s===null||s.editor===o,g=d.has("history-push");if(!g&&m&&d.has("history-merge"))return cs;if(r===null)return Ha;let N=i._selection;if(!(l.size>0||a.size>0))return N!==null?cs:Fa;if(g===!1&&f!==wt&&f===n&&uS)&&l.size===1){let S=Array.from(l)[0];if(Xx(S,r,i))return cs}return Ha})();return e=u,n=f,c}}function Gx(o,t){let e=t.redoStack,n=t.undoStack;if(e.length!==0){let r=t.current;r!==null&&(n.push(r),o.dispatchCommand(yo,!0));let i=e.pop();e.length===0&&o.dispatchCommand(_o,!1),t.current=i||null,i&&i.editor.setEditorState(i.editorState,{tag:"historic"})}}function Jx(o,t){let e=t.redoStack,n=t.undoStack;if(n.length!==0){let i=t.current,s=n.pop();i!==null&&(e.push(i),o.dispatchCommand(_o,!0)),n.length===0&&o.dispatchCommand(yo,!1),t.current=s||null,s&&s.editor.setEditorState(s.editorState,{tag:"historic"})}}function Hf(o){o.undoStack=[],o.redoStack=[],o.current=null}function us(o,t,e){let n=jx(o,e),r=({editorState:s,prevEditorState:l,dirtyLeaves:a,dirtyElements:d,tags:u})=>{let f=t.current,c=t.redoStack,m=t.undoStack,g=f===null?null:f.editorState;if(f!==null&&s===g)return;let h=n(l,s,f,a,d,u);if(h===Ha)c.length!==0&&(t.redoStack=[],o.dispatchCommand(_o,!1)),f!==null&&(m.push({...f}),o.dispatchCommand(yo,!0));else if(h===Fa)return;t.current={editor:o,editorState:s}};return tt(o.registerCommand(Eo,()=>(Jx(o,t),!0),J),o.registerCommand(To,()=>(Gx(o,t),!0),J),o.registerCommand(Il,()=>(Hf(t),!1),J),o.registerCommand($l,()=>(Hf(t),o.dispatchCommand(_o,!1),o.dispatchCommand(yo,!1),!0),J),o.registerUpdateListener(r))}function fs(){return{current:null,redoStack:[],undoStack:[]}}function ms(o,t){let e=t.body?t.body.childNodes:[],n=[],r=[];for(let i=0;i"u"||typeof window>"u"&&typeof global.window>"u")throw new Error("To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.");let e=document.createElement("div"),r=F().getChildren();for(let s=0;s{let g=new Ro;return e.push(g),g}):c=Ff(o,c,I)),l==null?c.length>0?s=s.concat(c):wo(o)&&tE(o)&&(s=s.concat(et())):E(l)&&l.append(...c),s}function Ff(o,t,e){let n=[],r=[];for(let i=0;i{n.update(()=>{this.select()})}),r}updateDOM(e,n){return e.__src!==this.__src&&n.setAttribute("src",this.__src),e.__width!==this.__width&&(this.__width?n.setAttribute("width",String(this.__width)):n.removeAttribute("width")),e.__height!==this.__height&&(this.__height?n.setAttribute("height",String(this.__height)):n.removeAttribute("height")),e.__alt!==this.__alt&&(this.__alt?n.setAttribute("alt",String(this.__alt)):n.removeAttribute("alt")),e.__alignment!==this.__alignment&&(e.__alignment&&n.classList.remove("align-"+e.__alignment),this.__alignment&&n.classList.add("align-"+this.__alignment)),!1}static importDOM(){return{img(e){return{conversion:n=>{let r=n.getAttribute("src")||"",i={alt:n.getAttribute("alt")||"",height:Number.parseInt(n.getAttribute("height")||"0"),width:Number.parseInt(n.getAttribute("width")||"0")},s=new o(r,i);return s.setAlignment(jr(n)),{node:s}},priority:3}}}}exportJSON(){return{...super.exportJSON(),type:"image",version:1,src:this.__src,alt:this.__alt,height:this.__height,width:this.__width,alignment:this.__alignment}}static importJSON(e){let n=dn(e.src,{alt:e.alt,width:e.width,height:e.height});return n.setAlignment(e.alignment),n}};function dn(o,t={}){return new an(o,t)}function ke(o){return o instanceof an}var oE=["width","height","style","title","name","src","allow","allowfullscreen","loading","sandbox","type","data","controls","autoplay","controlslist","loop","muted","playsinline","poster","preload"];function nE(o){let t={};for(let e of Object.keys(o))oE.includes(e)&&(t[e]=o[e]);return t}function hs(o,t){let e=Object.assign({},o);if(!o.style)return e;let n=ka(o.style);return n.delete(t),e.style=Mf(n),e}function zf(o,t){let e=Wf(o),n={};for(let i of t.attributes)n[i.name]=i.value;e.setAttributes(n);let r=[];if(o==="video"||o==="audio"){for(let i of t.children)if(i.tagName==="SOURCE"){let s=i.getAttribute("src"),l=i.getAttribute("type");s&&l&&r.push({src:s,type:l})}e.setSources(r)}return ut(t,e),e}var $o=class o extends G{constructor(e,n){super(n);p(this,"__id","");p(this,"__alignment","");p(this,"__tag");p(this,"__attributes",{});p(this,"__sources",[]);p(this,"__inset",0);this.__tag=e}static getType(){return"media"}static clone(e){let n=new o(e.__tag,e.__key);return n.__attributes=Object.assign({},e.__attributes),n.__sources=e.__sources.map(r=>Object.assign({},r)),n.__id=e.__id,n.__alignment=e.__alignment,n.__inset=e.__inset,n}setTag(e){let n=this.getWritable();n.__tag=e}getTag(){return this.getLatest().__tag}setAttributes(e){let n=this.getWritable();n.__attributes=nE(e)}getAttributes(){let e=this.getLatest();return Object.assign({},e.__attributes)}setSources(e){let n=this.getWritable();n.__sources=e}getSources(){return this.getLatest().__sources.map(n=>Object.assign({},n))}setSrc(e){let n=this.getAttributes(),r=this.getSources();this.__tag==="object"&&(n.data=e),this.__tag==="video"&&r.length>0?(r[0].src=e,delete n.src,r.length>1&&r.splice(1,r.length-1),this.setSources(r)):n.src=e,this.setAttributes(n)}setWidthAndHeight(e,n){let r=Object.assign(this.getAttributes(),{width:e,height:n});r=hs(r,"width"),r=hs(r,"height"),this.setAttributes(r)}setId(e){let n=this.getWritable();n.__id=e}getId(){return this.getLatest().__id}setAlignment(e){let n=this.getWritable();n.__alignment=e}getAlignment(){return this.getLatest().__alignment}setInset(e){let n=this.getWritable();n.__inset=e}getInset(){return this.getLatest().__inset}setHeight(e){if(!e)return;let n=Object.assign(this.getAttributes(),{height:e});this.setAttributes(hs(n,"height"))}getHeight(){let e=this.getLatest();return ln(e.__attributes.height||"0")}setWidth(e){let n=this.getAttributes(),r=Object.assign(n,{width:e});this.setAttributes(hs(r,"width"))}getWidth(){let e=this.getLatest();return ln(e.__attributes.width||"0")}isInline(){return!0}isParentRequired(){return!0}createInnerDOM(){let n=(this.__tag==="video"||this.__tag==="audio"?this.__sources:[]).map(i=>y("source",i)),r=y(this.__tag,this.__attributes,n);return ft(r,this),r}createDOM(e,n){let r=this.createInnerDOM();return y("span",{class:r.className+" editor-media-wrap"},[r])}updateDOM(e,n){if(e.__tag!==this.__tag||JSON.stringify(e.__sources)!==JSON.stringify(this.__sources)||JSON.stringify(e.__attributes)!==JSON.stringify(this.__attributes))return!0;let r=n.firstElementChild;return e.__id!==this.__id&&wf(r,"id",this.__id),e.__alignment!==this.__alignment&&(e.__alignment&&(n.classList.remove(`align-${e.__alignment}`),r.classList.remove(`align-${e.__alignment}`)),this.__alignment&&(n.classList.add(`align-${this.__alignment}`),r.classList.add(`align-${this.__alignment}`))),e.__inset!==this.__inset&&(n.style.paddingLeft=`${this.__inset}px`),!1}static importDOM(){let e=n=>r=>({conversion:i=>({node:zf(n,i)}),priority:3});return{iframe:e("iframe"),embed:e("embed"),object:e("object"),video:e("video"),audio:e("audio")}}exportDOM(e){return{element:this.createInnerDOM()}}exportJSON(){return{...super.exportJSON(),type:"media",version:1,id:this.__id,alignment:this.__alignment,inset:this.__inset,tag:this.__tag,attributes:this.__attributes,sources:this.__sources}}static importJSON(e){let n=Wf(e.tag);return mt(e,n),n}};function Wf(o){return new $o(o)}function qf(o){let n=new DOMParser().parseFromString(`${o}`,"text/html").body.children[0];if(!(n instanceof HTMLElement))return null;let r=n.tagName.toLowerCase();return["embed","iframe","video","audio","object"].includes(r)?zf(r,n):null}var rE=[{regex:/.*?youtu\.be\/([\w\-_\?&=.]+)/i,w:560,h:314,url:"https://www.youtube.com/embed/$1"},{regex:/.*youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?.*/i,w:560,h:314,url:"https://www.youtube.com/embed/$2?$4"},{regex:/.*youtube.com\/embed\/([a-z0-9\?&=\-_]+).*/i,w:560,h:314,url:"https://www.youtube.com/embed/$1"}],iE=["mp4","mpeg","m4v","m4p","mov"],sE=["3gp","aac","flac","mp3","m4a","ogg","wav","webm"],lE=["html","htm","php","asp","aspx",""];function Yf(o){for(let s of rE)if(o.match(s.regex)){let a=o.replace(s.regex,s.url),d=new $o("iframe");return d.setSrc(a),d.setHeight(s.h),d.setWidth(s.w),d}let t="iframe",n=(o.split("?")[0].split("/").pop()||"").split("."),r=(n.length>1?n[n.length-1]:"").toLowerCase();iE.includes(r)?t="video":sE.includes(r)?t="audio":r&&!lE.includes(r)&&(t="embed");let i=new $o(t);return i.setSrc(o),i}function vt(o){return o instanceof $o}var tr=class extends Error{constructor(e,n){super(e.statusText);p(this,"data");p(this,"headers");p(this,"original");p(this,"redirected");p(this,"status");p(this,"statusText");p(this,"url");this.data=n,this.headers=e.headers,this.redirected=e.redirected,this.status=e.status,this.statusText=e.statusText,this.url=e.url,this.original=e}};function Ns(o){return new Promise((t,e)=>{o.oncomplete=o.onsuccess=()=>t(o.result),o.onabort=o.onerror=()=>e(o.error)})}function aE(o,t){let e,n=()=>{if(e)return e;let r=indexedDB.open(o);return r.onupgradeneeded=()=>r.result.createObjectStore(t),e=Ns(r),e.then(i=>{i.onclose=()=>e=void 0},()=>{e=void 0}),e};return(r,i)=>n().then(s=>i(s.transaction(t,r).objectStore(t)))}var Ua;function za(){return Ua||(Ua=aE("keyval-store","keyval")),Ua}function Wa(o,t=za()){return t("readonly",e=>Ns(e.get(o)))}function qa(o,t,e=za()){return e("readwrite",n=>(n.put(t,o),Ns(n.transaction)))}function Ya(o,t=za()){return t("readwrite",e=>(e.delete(o),Ns(e.transaction)))}var Dt=null,Xa,xs,Za,Va="last-drawing-save";function ja(o){Dt?.contentWindow?.postMessage(JSON.stringify(o),Xa)}function cE(o){qa(Va,o.data),Za&&Za(o.data).then(()=>{Ya(Va)})}function uE(o){ja({action:"export",format:"xmlpng",xml:o.xml,spin:"Updating drawing"})}function fE(){xs&&xs().then(o=>{ja({action:"load",autosave:1,xml:o})})}function mE(){let o={};Dt&&(window.$events.emitPublic(Dt,"editor-drawio::configure",{config:o}),ja({action:"configure",config:o}))}function Zf(){window.removeEventListener("message",Vf),Dt&&document.body.removeChild(Dt)}function Vf(o){if(!o.data||o.data.length<1||o.origin!==Xa)return;let t=JSON.parse(o.data);t.event==="init"?fE():t.event==="exit"?Zf():t.event==="save"?uE(t):t.event==="export"?cE(t):t.event==="configure"&&mE()}async function pE(){let o=await Wa(Va),t=document.getElementById("unsaved-drawing-dialog");t||console.error("Missing expected unsaved-drawing dialog"),o&&t&&await window.$components.firstOnElement(t,"confirm-dialog").show()&&(xs=async()=>o)}async function Xf(o,t,e){xs=t,Za=e,await pE(),Dt=document.createElement("iframe"),Dt.setAttribute("frameborder","0"),window.addEventListener("message",Vf),Dt.setAttribute("src",o),Dt.setAttribute("class","fullscreen"),Dt.style.backgroundColor="#FFFFFF",document.body.appendChild(Dt),Xa=new URL(o).origin}async function jf(o,t){let e={image:o,uploaded_to:t};return(await window.$http.post(window.baseUrl("/images/drawio"),e)).data}function Ga(){Zf()}async function Gf(o){try{return`data:image/png;base64,${(await window.$http.get(window.baseUrl(`/images/drawio/base64/${o}`))).data.content}`}catch(t){throw t instanceof tr&&window.$events.showResponseError(t),Ga(),t}}var Po=class o extends ct{constructor(e,n,r){super(r);p(this,"__id","");p(this,"__drawingId","");p(this,"__drawingUrl","");this.__drawingId=e,this.__drawingUrl=n}static getType(){return"diagram"}static clone(e){let n=new o(e.__drawingId,e.__drawingUrl,e.__key);return n.__id=e.__id,n}setDrawingIdAndUrl(e,n){let r=this.getWritable();r.__drawingUrl=n,r.__drawingId=e}getDrawingIdAndUrl(){let e=this.getLatest();return{id:e.__drawingId,url:e.__drawingUrl}}setId(e){let n=this.getWritable();n.__id=e}getId(){return this.getLatest().__id}decorate(e,n){return{type:"diagram",getNode:()=>this}}isInline(){return!1}isIsolated(){return!0}createDOM(e,n){return y("div",{id:this.__id||null,"drawio-diagram":this.__drawingId},[y("img",{src:this.__drawingUrl})])}updateDOM(e,n){let r=n.querySelector("img");return r&&(e.__id!==this.__id&&n.setAttribute("id",this.__id),e.__drawingUrl!==this.__drawingUrl&&r.setAttribute("src",this.__drawingUrl),e.__drawingId!==this.__drawingId&&n.setAttribute("drawio-diagram",this.__drawingId)),!1}static importDOM(){return{div(e){return e.hasAttribute("drawio-diagram")?{conversion:n=>{let i=n.querySelector("img")?.getAttribute("src")||"",s=n.getAttribute("drawio-diagram")||"",l=or(s,i);return n.id&&l.setId(n.id),{node:l}},priority:3}:null}}}exportJSON(){return{type:"diagram",version:1,id:this.__id,drawingId:this.__drawingId,drawingUrl:this.__drawingUrl}}static importJSON(e){let n=or(e.drawingId,e.drawingUrl);return n.setId(e.id||""),n}};function or(o="",t=""){return new Po(o,t)}function Ja(o){let t=1,e=o.getParent();for(;e!=null;){if(K(e)){let n=e.getParent();if(Z(n)){t++,e=n.getParent();continue}C(!1,"A ListItemNode must have a ListNode for a parent.")}return t}return t}function Qa(o){let t=o.getParent();Z(t)||C(!1,"A ListItemNode must have a ListNode for a parent.");let e=t;for(;e!==null;)e=e.getParent(),Z(e)&&(t=e);return t}function ed(o){let t=[],e=o.getChildren().filter(K);for(let n=0;n{C(Z(e),"node is not a ListNode"),om(e),tm(e)}}static importDOM(){return{ol:()=>({conversion:em,priority:0}),ul:()=>({conversion:em,priority:0})}}static importJSON(e){let n=Ce(e.listType,e.start);return n.setId(e.id),n.setDirection(e.direction),n}exportDOM(e){let{element:n}=super.exportDOM(e);return n&&he(n)&&(this.__start!==1&&n.setAttribute("start",String(this.__start)),this.__listType==="check"&&n.setAttribute("__lexicalListType","check")),{element:n}}exportJSON(){return{...super.exportJSON(),listType:this.getListType(),start:this.getStart(),tag:this.getTag(),type:"list",version:1,id:this.__id}}canBeEmpty(){return!1}canIndent(){return!1}append(...e){for(let n=0;n1?n.push(...g):r.push(...g)}}r.length>0&&ds(o,...r),n.length>0&&Se(o,...n)}function hE(o){let t=[];for(let e of o)K(e)?t.push(e):t.push(Jf(e));return t}function NE(o){if(o.getAttribute("__lexicallisttype")==="check"||o.classList.contains("contains-task-list"))return!0;for(let t of o.childNodes)if(he(t)&&(t.hasAttribute("aria-checked")||t.classList.contains("task-list-item")||t.firstElementChild&&t.firstElementChild.matches('input[type="checkbox"]')))return!0;return!1}function em(o){let t=o.nodeName.toLowerCase(),e=null;if(t==="ol"){let n=o.start;e=Ce("number",n)}else t==="ul"&&(NE(o)?e=Ce("check"):e=Ce("bullet"));return o.id&&e&&e.setId(o.id),o.dir&&e&&e.setDirection(Gr(o)),{after:hE,node:e}}var xE={ol:"number",ul:"bullet"};function Ce(o,t=1){return ie(new Bo(o,t))}function Z(o){return o instanceof Bo}function EE(o){let t=o.getParent();if(!Z(t))return o;let e=o.getChildren().filter(d=>Z(d))[0]||null,n=e?.getChildren()||[],r=t.getChildren(),i=r.findIndex(d=>d.getKey()===o.getKey()),s=i===0,l=Ie(),a=Ce(t.getListType());if(a.append(l),l.append(...o.getChildren()),s?o.append(a):(r[i-1].append(a),o.remove()),e){for(let d of n)l.insertAfter(d);e.remove()}return l}function TE(o){let t=o.getParent(),e=t?.getParent(),n=e?.getParent();if(!Z(t)||!Z(n)||!K(e))return o;let r=o.getNextSiblings();if(e.insertAfter(o),t.getChildren().length===0&&t.remove(),r.length>0){let i=Ce(t.getListType());i.append(...r),o.append(i)}return t.getChildrenSize()===0&&t.remove(),e.getChildren().length===0&&e.remove(),o}function CE(o){let t=o?.getNodes()||[],[e,n]=o?.getStartEndPoints()||[null,null],r=new Set;if(o&&e){o.isBackward()&&n&&([n,e]=[e,n]);let s=e.getNode().getParents(),l=!1;for(let a of s)K(a)&&(l?r.add(a.getKey()):l=!0)}let i=[];e:for(let s of t){if(K(s)){r.has(s.getKey())||i.push(s);continue}let l=s.getParents();for(let a of l)if(K(a)){r.has(a.getKey())||i.push(a);continue e}i.push(null)}return i}function bE(o){let t={};for(let n of o){if(n===null)continue;let r=n.getKey();typeof t[r]>"u"&&(t[r]=n)}let e=Object.values(t);return Es(e)}function ei(o,t){let e=T(),n=e?.getStartEndPoints(),r=CE(e);if(r.length>0&&!r.includes(null)){let l=[],a=bE(r);if(t>0)for(let d of a)l.push(EE(d));else if(t<0){for(let d of[...a].reverse())l.push(TE(d));l.reverse()}if(l.length===1&&n){let d=l[0],u=d.getChildren()[0];u||(u=z(""),d.append(u)),u.select(n[0].offset,n[1].offset)}else rm(l);return}let s=pt(e);for(let l of s)if(sm(l)){let a=l.getInset(),d=Math.min(Math.max(a+t,0),500);l.setInset(d)}im(o)}function nm(o){let t=o.getParentOrThrow(),e=t.getParent();if(K(e))return e.insertAfter(o),o.selectStart(),null;if(!o.isLastChild()){let r=o.getNextSiblings(),i=Ce(t.getListType());i.append(...r),t.insertAfter(i)}let n=I();return t.insertAfter(n,!0),o.remove(),n}var Ut=class o extends G{constructor(e,n,r){super(r);p(this,"__value");p(this,"__checked");this.__value=e===void 0?1:e,this.__checked=n}static getType(){return"listitem"}static clone(e){return new o(e.__value,e.__checked,e.__key)}createDOM(e){let n=document.createElement("li"),r=this.getParent();return Z(r)&&r.getListType()==="check"&&am(n,this),n.value=this.__value,lm(this)&&(n.style.listStyle="none"),n}updateDOM(e,n,r){let i=this.getParent();return Z(i)&&i.getListType()==="check"&&am(n,this),n.style.listStyle=lm(this)?"none":"",n.value=this.__value,!1}static transform(){return e=>{if(C(K(e),"node is not a ListItemNode"),e.__checked==null)return;let n=e.getParent();Z(n)&&n.getListType()!=="check"&&e.getChecked()!=null&&e.setChecked(void 0)}}static importDOM(){return{li:()=>({conversion:_E,priority:0})}}static importJSON(e){let n=Ie();return n.setChecked(e.checked),n.setValue(e.value),n.setDirection(e.direction),n}exportDOM(e){let n=this.createDOM(e._config);if(n.classList.contains("task-list-item")){let r=y("input",{type:"checkbox",disabled:"disabled"});n.hasAttribute("checked")&&(r.setAttribute("checked","checked"),n.removeAttribute("checked")),n.prepend(r)}return{element:n}}exportJSON(){return{...super.exportJSON(),checked:this.getChecked(),type:"listitem",value:this.getValue(),version:1}}append(...e){for(let n=0;n{e.append(i)})),this.remove(),r.getChildrenSize()===0&&r.remove(),e}insertAfter(e,n=!0){let r=this.getParentOrThrow();if(Z(r)||C(!1,"insertAfter: list node is not parent of list item node"),K(e))return super.insertAfter(e,n);let i=this.getNextSiblings();if(r.insertAfter(e,n),i.length!==0){let s=Ce(r.getListType());i.forEach(l=>s.append(l)),e.insertAfter(s,n)}return e}remove(e){let n=this.getPreviousSibling(),r=this.getNextSibling();super.remove(e),n&&r&&nr(n)&&nr(r)&&(Ts(n.getFirstChild(),r.getFirstChild()),r.remove())}insertNewAfter(e,n=!0){let r=this.getTextContent();if(r===""||r.trim()===""&&this.isLastChild())return nm(this);let i=Ie(this.__checked==null?void 0:!1);return this.insertAfter(i,n),i}collapseAtStart(e){let n=I();this.getChildren().forEach(a=>n.append(a));let i=this.getParentOrThrow(),s=i.getParentOrThrow(),l=K(s);if(i.getChildrenSize()===1)if(l)i.remove(),s.select();else{i.insertBefore(n),i.remove();let a=e.anchor,d=e.focus,u=n.getKey();a.type==="element"&&a.getNode().is(this)&&a.set(u,a.offset,"element"),d.type==="element"&&d.getNode().is(this)&&d.set(u,d.offset,"element")}else i.insertBefore(n),this.remove();return!0}getValue(){return this.getLatest().__value}setValue(e){let n=this.getWritable();n.__value=e}getChecked(){let e=this.getLatest(),n,r=this.getParent();return Z(r)&&(n=r.getListType()),n==="check"?!!e.__checked:void 0}setChecked(e){let n=this.getWritable();n.__checked=e}toggleChecked(){this.setChecked(!this.__checked)}canInsertAfter(e){return K(e)}canReplaceWith(e){return K(e)}canMergeWith(e){return Qe(e)||K(e)}extractWithChild(e,n){if(!_(n))return!1;let r=n.anchor.getNode(),i=n.focus.getNode();return this.isParentOf(r)&&this.isParentOf(i)&&this.getTextContent().length===n.getTextContent().length}isParentRequired(){return!0}createParentElementNode(){return Ce("bullet")}canMergeWhenEmpty(){return!0}};function lm(o){let t=o.getChildren(),e=!1,n=!1;for(let r of t)Z(r)?n=!0:r.getTextContent().trim().length>0&&(e=!0);return n&&!e}function am(o,t){let e=!Z(t.getFirstChild());o.classList.toggle("task-list-item",e),t.__checked?o.setAttribute("checked","checked"):o.removeAttribute("checked")}function _E(o){if(o.classList.contains("task-list-item")){for(let r of o.children)if(r.tagName==="INPUT")return yE(r)}let e=o.getAttribute("aria-checked");return{node:Ie(e==="true"?!0:e==="false"?!1:void 0)}}function yE(o){if(!(o.getAttribute("type")==="checkbox"))return{node:null};let e=o.hasAttribute("checked");return{node:Ie(e)}}function Ie(o){return ie(new Ut(void 0,o))}function K(o){return o instanceof Ut}function cm(o,t){return K(o)&&(t.length===0||t.length===1&&o.is(t[0])&&o.getChildrenSize()===0)}function td(o,t){o.update(()=>{let e=T();if(e!==null){let n=e.getNodes();if(_(e)){let i=e.getStartEndPoints();C(i!==null,"insertList: anchor should be defined");let[s]=i,l=s.getNode(),a=l.getParent();if(cm(l,n)){let d=Ce(t);if(ge(a)){l.replace(d);let u=Ie();d.append(u)}else if(K(l)){let u=l.getParentOrThrow();ti(d,u.getChildren()),u.replace(d)}return}}let r=new Set;for(let i=0;i0&&o.append(...r),t.remove()}function od(o){o.update(()=>{let t=T();if(_(t)){let e=new Set,n=t.getNodes(),r=t.anchor.getNode();if(cm(r,n))e.add(Qa(r));else for(let i=0;i{let t=T();if(!_(t))return!1;let e=t.anchor.getNode(),r=Wn(e,ro).getParent();if(K(r)){let i=t.insertParagraph();if(i){let s=Ie(),l=i.getNextSiblings();s.append(i,...l),r.insertAfter(s,!1),s.selectStart()}return!0}return!1},Lt))}var um=new WeakMap;function de(o){return um.get(o)||null}function fm(o,t){um.set(o,t)}function ce(o,t){return X(o,t)!==null}function X(o,t){if(!o)return null;for(let e of o.getNodes()){if(t(e))return e;let n=zt(e,t);if(n)return n}return null}function mm(o){return X(o,L)}function pm(o,t){if(!o)return!1;let e=o.getNodes();for(let n of e)if(L(n)&&n.hasFormat(t))return!0;return!!(e.length===1&&Qe(e[0])&&e[0].hasTextFormat(t))}function SE(o){let t=o.getStartEndPoints();if(!t)return;let e=ot(t[0].getNode()),n=ot(t[1].getNode());if(K(e)&&e.getKey()===n?.getKey()){let i=I();Es([t[0].getNode(),t[1].getNode()],e)[0].insertBefore(i),i.append(...o.getNodes())}}function rr(o,t){let e=T(),n=e?Pf(e.getNodes()[0]):null;K(n)&&e&&SE(e),e&&o(n)?ss(e,I):ss(e,t)}function cn(o,t=!0){LE([o],t)}function LE(o,t=!0){let e=T()?.getNodes()||[],n=e.length>0?ot(e[0]):null;if(n)if(t)for(let r=o.length-1;r>=0;r--)n.insertAfter(o[r]);else for(let r of o)n.insertBefore(r);else F().append(...o)}function gm(o){let t=T();if(t){t.insertNodes(o);return}let e=F(),n=e.getLastChild();for(let r of o){let i=yt(r);if(i&&!n)e.append(r),n=r;else if(i)n?.insertAfter(r),n=r;else if(E(n))n.append(r);else{let s=I();s.append(r),e.append(s),n=s}}}function ME(o){let t=Ao();return t.add(o.getKey()),t}function gt(o){q(ME(o))}function hm(o){for(let t of o){if(L(t))return t;if(E(t)){let e=t.getChildren(),n=hm(e);if(n!==null)return n}}return null}function Nm(o){let t=[...o].reverse();for(let e of t){if(L(e))return e;if(E(e)){let n=[...e.getChildren()].reverse(),r=Nm(n);if(r!==null)return r}}return null}function rm(o){if(o.length===0)return;let t=rn(),e=hm(o),n=Nm(o);e&&n&&(t.setTextNodeRange(e,0,n,n.getTextContentSize()||0),q(t))}function im(o){let t=de(o);t&&window.requestAnimationFrame(()=>{o.update(()=>{q(t.clone())})})}function Cs(o,t){if(!o)return!1;let e=t.getKey();for(let n of o.getNodes())if(n.getKey()===e)return!0;return!1}function oi(o,t){let e=[...o?.getNodes()||[],...pt(o)];for(let n of e)if(ni(n)&&n.getAlignment()===t)return!0;return!1}function rd(o,t){let e=[...o?.getNodes()||[],...pt(o)];for(let n of e)if(yt(n)&&n.getDirection()===t)return!0;return!1}function pt(o){if(!o)return[];let t=new Map;for(let e of o.getNodes()){let n=ot(e);E(n)&&t.set(n.getKey(),n)}return Array.from(t.values())}function xm(o){return o?o.getNodes().filter(t=>H(t)):[]}function Em(o,t,e=!0){let n=Fr().getElementByKey(o.getKey());if(!n)return null;let i=(n.children[e?0:n.children.length-1]||n).getBoundingClientRect(),s=i[e?"top":"bottom"]+(e?1:-1),l=i.x+t,a=document.caretRangeFromPoint?.(l,s),d=document.caretPositionFromPoint?.(l,s)??(a?{offsetNode:a.startContainer,offset:a.startOffset}:void 0);if(!d)return null;let u=Y(d.offsetNode);if(!u)return null;let f=df(u,d.offset);return q(f),f}function uo(o){return o instanceof Po}function wE(o,t){o.status===413?window.$events.emit("error",t.options.translations.serverUploadLimitText||""):window.$events.emit("error",t.options.translations.imageUploadErrorText||""),console.error(o)}async function vE(o,t){return await new Promise((n,r)=>{o.getEditorState().read(()=>{let{id:i}=t.getDrawingIdAndUrl();n(i)})})||""}async function DE(o,t,e,n){if(Ga(),n){let r=window.baseUrl("/loading.gif");o.editor.update(()=>{t.setDrawingIdAndUrl("",r)})}try{let r=await jf(e,o.options.pageId);o.editor.update(()=>{t.setDrawingIdAndUrl(String(r.id),r.url)})}catch(r){throw r instanceof tr&&wE(r,o),n&&o.editor.update(()=>{t.remove()}),new Error(`Failed to save image with error: ${r}`)}}function ri(o,t){let e=!1;Xf(o.options.drawioUrl,async()=>{let n=await vE(o.editor,t);return e=!n,e?"":Gf(n)},async n=>DE(o,t,n,e))}function OE(o){window.$components.first("image-manager").show(e=>{o(e)},"drawio")}function Tm(o){let t=de(o.editor);OE(e=>{o.editor.update(()=>{let n=or(e.id,e.url),r=X(t,uo);uo(r)?r.replace(n):Te([n])})})}var un=class o extends G{constructor(e,n={},r){super(r);p(this,"__url");p(this,"__target");p(this,"__rel");p(this,"__title");let{target:i=null,rel:s=null,title:l=null}=n;this.__url=e,this.__target=i,this.__rel=s,this.__title=l}static getType(){return"link"}static clone(e){return new o(e.__url,{rel:e.__rel,target:e.__target,title:e.__title},e.__key)}createDOM(e){let n=document.createElement("a");return n.href=this.__url,this.__target!==null&&(n.target=this.__target),this.__rel!==null&&(n.rel=this.__rel),this.__title!==null&&(n.title=this.__title),Se(n,e.theme.link),n}updateDOM(e,n,r){if(n instanceof HTMLAnchorElement){let i=this.__url,s=this.__target,l=this.__rel,a=this.__title;i!==e.__url&&(n.href=i),s!==e.__target&&(s?n.target=s:n.removeAttribute("target")),l!==e.__rel&&(l?n.rel=l:n.removeAttribute("rel")),a!==e.__title&&(a?n.title=a:n.removeAttribute("title"))}return!1}static importDOM(){return{a:e=>({conversion:AE,priority:1})}}static importJSON(e){let n=Ot(e.url,{rel:e.rel,target:e.target,title:e.title});return n.setDirection(e.direction),n}exportJSON(){return{...super.exportJSON(),rel:this.getRel(),target:this.getTarget(),title:this.getTitle(),type:"link",url:this.getURL(),version:1}}getURL(){return this.getLatest().__url}setURL(e){let n=this.getWritable();n.__url=e}getTarget(){return this.getLatest().__target}setTarget(e){let n=this.getWritable();n.__target=e}getRel(){return this.getLatest().__rel}setRel(e){let n=this.getWritable();n.__rel=e}getTitle(){return this.getLatest().__title}setTitle(e){let n=this.getWritable();n.__title=e}insertNewAfter(e,n=!0){let r=Ot(this.__url,{rel:this.__rel,target:this.__target,title:this.__title});return this.insertAfter(r,n),r}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(e,n,r){if(!_(n))return!1;let i=n.anchor.getNode(),s=n.focus.getNode();return this.isParentOf(i)&&this.isParentOf(s)&&n.getTextContent().length>0}isEmailURI(){return this.__url.startsWith("mailto:")}isWebSiteURI(){return this.__url.startsWith("https://")||this.__url.startsWith("http://")}};function AE(o){let t=null;if(Yi(o)){let e=o.textContent;(e!==null&&e!==""||o.children.length>0)&&(t=Ot(o.getAttribute("href")||"",{rel:o.getAttribute("rel"),target:o.getAttribute("target"),title:o.getAttribute("title")}))}return{node:t}}function Ot(o,t){return ie(new un(o,t))}function We(o){return o instanceof un}var Cw=$("TOGGLE_LINK_COMMAND");function bs(o){window.$components.first("image-manager").show(e=>{o(e)},"gallery")}function Cm(o){let t=o.thumbs?.display||o.url,e=Ot(t,{target:"_blank"}),n=dn(t,{alt:o.name});return e.append(n),e}function _s(o){if(!ke(o))return!1;let t=o.getParent();return We(t)?t.getChildren().filter(r=>r.getKey()!==o.getKey()&&(E(r)||L(r)&&r.getTextContent().trim().length>0)).length===0:!1}async function bm(o,t){if(o===null||o.type.indexOf("image")!==0)throw new Error("Not an image file");let e=o.name||`image-${Date.now()}.png`,n=new FormData;return n.append("file",o,e),n.append("uploaded_to",t),(await window.$http.post("/images/gallery",n)).data}function id(o){return"build"in o}var $e=class{constructor(){p(this,"dom",null);p(this,"context",null);p(this,"abortController",new AbortController)}setContext(t){this.context=t}getContext(){if(this.context===null)throw new Error("Attempted to use EditorUIContext before it has been set");return this.context}getDOMElement(){return this.dom||(this.dom=this.buildDOM()),this.dom}rebuildDOM(){let t=this.buildDOM();return this.dom?.replaceWith(t),this.dom=t,this.dom}trans(t){return this.getContext().translate(t)}updateState(t){}emitEvent(t,e={}){this.dom&&this.dom.dispatchEvent(new CustomEvent("editor::"+t,{detail:e,bubbles:!0}))}onEvent(t,e,n=null){let r=n||this.dom;r&&r.addEventListener("editor::"+t,(i=>{e(i.detail)}),{signal:this.abortController.signal})}teardown(){this.dom&&this.dom.isConnected&&this.dom.remove(),this.abortController.abort("teardown")}},ne=class extends $e{constructor(e){super();p(this,"children",[]);this.children.push(...e)}buildDOM(){return y("div",{},this.getChildren().map(e=>e.getDOMElement()))}getChildren(){return this.children}addChildren(...e){this.children.push(...e)}removeChildren(...e){for(let n of e)this.removeChild(n)}removeChild(e){let n=this.children.indexOf(e);n!==-1&&this.children.splice(n,1)}updateState(e){for(let n of this.children)n.updateState(e)}setContext(e){super.setContext(e);for(let n of this.getChildren())n.setContext(e)}teardown(){for(let e of this.children)e.teardown();super.teardown()}},ii=class extends ne{constructor(e,n){super(n);p(this,"className");this.className=e}buildDOM(){return y("div",{class:this.className},this.getChildren().map(e=>e.getDOMElement()))}};function _m(o,t,e){let n=null;return function(...i){let s=this,l=function(){n=null,e||o.apply(s,i)},a=e&&!n;n&&clearTimeout(n),n=window.setTimeout(l,t),a&&o.apply(s,i)}}function ym(){let o=()=>((1+Math.random())*65536|0).toString(16).substring(1);return`${o()+o()}-${o()}-${o()}-${o()}-${o()}${o()}${o()}`}function ys(){return((1+Math.random())*65536|0).toString(16).substring(1)}var Wt=class extends $e{constructor(e){super();p(this,"definition");this.definition=e}setValue(e){let n=this.getDOMElement().querySelector("input,select,textarea");this.definition.type==="checkbox"?n.checked=!!e:n.value=e,n.dispatchEvent(new Event("change"))}getName(){return this.definition.name}buildDOM(){let e=`editor-form-field-${this.definition.name}-${Date.now()}`,n;if(this.definition.type==="select"){let r=this.definition.valuesByLabel,s=Object.keys(r).map(l=>y("option",{value:r[l]},[this.trans(l)]));n=y("select",{id:e,name:this.definition.name,class:"editor-form-field-input"},s)}else if(this.definition.type==="textarea")n=y("textarea",{id:e,name:this.definition.name,class:"editor-form-field-input"});else if(this.definition.type==="checkbox")n=y("input",{id:e,name:this.definition.name,type:"checkbox",class:"editor-form-field-input-checkbox",value:"true"});else{if(this.definition.type==="hidden")return n=y("input",{id:e,name:this.definition.name,type:"hidden"}),y("div",{hidden:"true"},[n]);n=y("input",{id:e,name:this.definition.name,class:"editor-form-field-input"})}return y("div",{class:"editor-form-field-wrapper"},[y("label",{class:"editor-form-field-label",for:e},[this.trans(this.definition.label)]),n])}},Ss=class extends ne{constructor(e){let n=e.fields.map(r=>id(r)?r.build():new Wt(r));super(n);p(this,"definition");p(this,"onCancel",null);p(this,"onSuccessfulSubmit",null);this.definition=e}focusOnFirst(){let e=this.getDOMElement().querySelector("input,select,textarea");e&&e.focus()}getValues(){let e={},n=this.getDOMElement(),r=new FormData(n);for(let[i,s]of r.entries())e[i]=s;return e}setValues(e){for(let n of Object.keys(e)){let r=this.getFieldByName(n);r&&r.setValue(e[n])}}setOnCancel(e){this.onCancel=e}setOnSuccessfulSubmit(e){this.onSuccessfulSubmit=e}getFieldByName(e){let n=r=>{for(let i of r){if(i instanceof Wt&&i.getName()===e)return i;if(i instanceof ne){let s=n(i.getChildren());if(s)return s}}return null};return n(this.getChildren())}buildDOM(){let e=y("button",{type:"button",class:"editor-form-action-secondary"},[this.trans("Cancel")]),n=y("form",{},[...this.children.map(r=>r.getDOMElement()),y("div",{class:"editor-form-actions"},[e,y("button",{type:"submit",class:"editor-form-action-primary"},[this.trans(this.definition.submitText)])])]);return n.addEventListener("submit",async r=>{r.preventDefault();let i=new FormData(n);await this.definition.action(i,this.getContext())&&this.onSuccessfulSubmit&&this.onSuccessfulSubmit()}),e.addEventListener("click",r=>{this.onCancel&&this.onCancel()}),n}},sd=class extends ne{constructor(e){let n=e.contents.map(r=>id(r)?r.build():new Wt(r));super(n);p(this,"definition");p(this,"fields");p(this,"id");this.definition=e,this.fields=n,this.id=ym()}getLabel(){return this.getContext().translate(this.definition.label)}getId(){return this.id}buildDOM(){return y("div",{class:"editor-form-tab-content",role:"tabpanel",id:`editor-tabpanel-${this.id}`,"aria-labelledby":`editor-tab-${this.id}`},this.fields.map(e=>e.getDOMElement()))}},fn=class extends ne{constructor(e){let n=e.map(r=>new sd(r));super(n);p(this,"definitions",[]);p(this,"tabs",[]);this.definitions=e,this.tabs=n}buildDOM(){let e=[],n=[],r=i=>{for(let s=0;s{r(e.indexOf(s))})}return r(0),y("div",{class:"editor-form-tab-container"},[y("div",{class:"editor-form-tab-controls"},e),y("div",{class:"editor-form-tab-contents"},n)])}};var si=class extends ne{constructor(e,n){super([e,n]);p(this,"input");p(this,"action");this.input=e,this.action=n}buildDOM(){return y("div",{class:"editor-action-input-container"},[this.input.getDOMElement(),this.action.getDOMElement()])}};var w=class extends $e{constructor(e){super();p(this,"definition");p(this,"active",!1);p(this,"completedSetup",!1);p(this,"disabled",!1);e.action!==void 0?this.definition=e:this.definition={...e,action(){return!1},isActive:()=>!1}}setContext(e){super.setContext(e),this.definition.setup&&!this.completedSetup&&(this.definition.setup(e,this),this.completedSetup=!0)}buildDOM(){let e=this.getLabel(),n=this.definition.format||"small",r=[];if(this.definition.icon||n==="long"){let s=y("div",{class:"editor-button-icon"});s.innerHTML=this.definition.icon||"",r.push(s)}if(!this.definition.icon||n==="long"){let s=y("div",{class:"editor-button-text"},[e]);r.push(s)}let i=y("button",{type:"button",class:`editor-button editor-button-${n}`,title:this.definition.icon?e:null,disabled:this.disabled?"true":null},r);return i.addEventListener("click",this.onClick.bind(this)),i}onClick(){let e=this.definition.action(this.getContext(),this);e instanceof Promise?e.then(n=>{n===!1&&this.emitEvent("button-action")}):e!==!1&&this.emitEvent("button-action")}updateActiveState(e){let n=this.definition.isActive(e,this.getContext());this.setActiveState(n)}updateDisabledState(e){if(this.definition.isDisabled){let n=this.definition.isDisabled(e,this.getContext());this.toggleDisabled(n)}}setActiveState(e){this.active=e,this.dom?.classList.toggle("editor-button-active",this.active)}updateState(e){this.updateActiveState(e.selection),this.updateDisabledState(e.selection)}isActive(){return this.active}getLabel(){return this.trans(this.definition.label)}toggleDisabled(e){this.disabled=e,e?this.dom?.setAttribute("disabled","true"):this.dom?.removeAttribute("disabled")}};var Sm='';var Ls='';function Ms(o,t){window.$components.first("entity-selector-popup").show(n=>o(n),{initialValue:t||"",searchEndpoint:"/search/entity-selector",entityTypes:"page,book,chapter,bookshelf",entityPermission:"view"})}var lr=class o extends Kt{constructor(e,n){super(n);p(this,"__tag");this.__tag=e}static getType(){return"heading"}static clone(e){let n=new o(e.__tag,e.__key);return Io(e,n),n}getTag(){return this.__tag}createDOM(e){let n=this.__tag,r=document.createElement(n),s=e.theme.heading;if(s!==void 0){let l=s[n];Se(r,l)}return ft(r,this),r}updateDOM(e,n){return ko(e,this)}static importDOM(){return{h1:e=>({conversion:ir,priority:0}),h2:e=>({conversion:ir,priority:0}),h3:e=>({conversion:ir,priority:0}),h4:e=>({conversion:ir,priority:0}),h5:e=>({conversion:ir,priority:0}),h6:e=>({conversion:ir,priority:0})}}exportDOM(e){let{element:n}=super.exportDOM(e);return n&&he(n)&&this.isEmpty()&&n.append(document.createElement("br")),{element:n}}static importJSON(e){let n=sr(e.tag);return mt(e,n),n}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:"heading",version:1}}insertNewAfter(e,n=!0){let r=e?e.anchor.offset:0,i=this.getLastDescendant(),l=!i||e&&e.anchor.key===i.getKey()&&r===i.getTextContentSize()||!e?I():sr(this.getTag()),a=this.getDirection();if(l.setDirection(a),this.insertAfter(l,n),r===0&&!this.isEmpty()&&e){let d=I();d.select(),this.replace(d,!0)}return l}collapseAtStart(){let e=this.isEmpty()?I():sr(this.getTag());return this.getChildren().forEach(r=>e.append(r)),this.replace(e),!0}extractWithChild(){return!0}};function ir(o){let t=o.nodeName.toLowerCase(),e=null;return(t==="h1"||t==="h2"||t==="h3"||t==="h4"||t==="h5"||t==="h6")&&(e=sr(t),ut(o,e)),{node:e}}function sr(o){return ie(new lr(o))}function Ho(o){return o instanceof lr}var ws=class extends ne{constructor(e){super([e]);p(this,"input");p(this,"headerMap",new Map);this.input=e}buildDOM(){let e="editor-form-datalist-"+this.input.getName()+"-"+Date.now(),n=this.input.getDOMElement(),r=n.querySelector("input");r?.setAttribute("list",e),r?.setAttribute("autocomplete","off");let i=y("datalist",{id:e}),s=y("div",{class:"editor-link-field-container"},[n,i]);return r?.addEventListener("focusin",()=>{this.updateDataList(i)}),r?.addEventListener("input",()=>{let l=r.value,a=this.headerMap.get(l);a&&this.updateFormFromHeader(a)}),s}updateFormFromHeader(e){this.getHeaderIdAndText(e).then(({id:n,text:r})=>{let i=this.getContext().manager.getActiveModal("link");i&&i.getForm().setValues({url:`#${n}`,text:r,title:r})})}getHeaderIdAndText(e){return new Promise(n=>{this.getContext().editor.update(()=>{let r=e.getId();r||(r="header-"+ys(),e.setId(r));let i=e.getTextContent();n({id:r,text:i})})})}updateDataList(e){this.getContext().editor.getEditorState().read(()=>{let n=li(Ho);this.headerMap.clear();let r=[];for(let i of n){let s="header-"+i.getKey();this.headerMap.set(s,i),r.push(y("option",{value:s,label:i.getTextContent().substring(0,54)}))}e.innerHTML="",e.append(...r)})}};function Fo(o,t){o.update(()=>{let e=F();for(let r of e.getChildren())r.remove(!0);let n=ar(o,t);e.append(...n),e.isEmpty()&&e.append(I())})}function vs(o,t){o.update(()=>{let e=F(),n=ar(o,t);e.append(...n)})}function Ds(o,t){o.update(()=>{let e=F(),n=ar(o,t),r=e.getChildren()[0];for(let i=n.length-1;i>=0;i--)r?r.insertBefore(n[i]):e.append(n[i]),r=n[i]})}function Os(o,t){o.update(()=>{let e=T(),n=ai(o,t),r=e?.getNodes()[0],i=!1,s=r?ot(r):null;for(let l=n.length-1;l>=0;l--){let a=n[l];yt(a)&&s?i?s.insertBefore(a):s.insertAfter(a):yt(a)?F().append(a):i?r?.insertBefore(a):(Te([a]),r=a,s=ot(r),i=!0)}})}function As(o){return new Promise((t,e)=>{o.getEditorState().read(()=>{let n=ps(o);t(n)})})}function fo(o){o.update(()=>{let t=F(),e=T(),n=t.getFirstChild();n&&!e&&n.selectStart(),mn(e?.getNodes()||[])&&o._rootElement?.focus()}),o.commitUpdates(),o.focus(()=>{},{defaultSelection:"rootStart"})}function Lm(o,t){o.update(()=>{let n=li(Ho)[t];n&&n.selectEnd()})}var Mm=o=>(o.split(" ").filter(e=>e.startsWith("language-"))[0]||"").replace("language-",""),pn=class o extends ct{constructor(e="",n="",r){super(r);p(this,"__id","");p(this,"__language","");p(this,"__code","");this.__language=e,this.__code=n}static getType(){return"code-block"}static clone(e){let n=new o(e.__language,e.__code,e.__key);return n.__id=e.__id,n.__dir=e.__dir,n}setLanguage(e){let n=this.getWritable();n.__language=e}getLanguage(){return this.getLatest().__language}setCode(e){let n=this.getWritable();n.__code=e}getCode(){return this.getLatest().__code}setId(e){let n=this.getWritable();n.__id=e}getId(){return this.getLatest().__id}decorate(e,n){return{type:"code",getNode:()=>this}}isInline(){return!1}isIsolated(){return!0}createDOM(e,n){let r=y("pre",{id:this.__id||null},[y("code",{class:this.__language?`language-${this.__language}`:null},[this.__code])]);return y("div",{class:"editor-code-block-wrap",dir:this.__dir},[r])}updateDOM(e,n){let r=n.querySelector("code"),i=n.querySelector("pre");return!r||!i||(e.__language!==this.__language&&(r.className=this.__language?`language-${this.__language}`:""),e.__id!==this.__id&&i.setAttribute("id",this.__id),e.__code!==this.__code&&(r.textContent=this.__code),e.__dir!==this.__dir&&(this.__dir!==null?n.setAttribute("dir",this.__dir):n.removeAttribute("dir"))),!1}exportDOM(e){let r=this.createDOM(e._config,e).querySelector("pre");return this.__dir!==null&&r.setAttribute("dir",this.__dir),{element:r}}static importDOM(){return{pre(e){return{conversion:n=>{let r=n.querySelector("code"),i=Mm(n.className)||r&&Mm(r.className)||"",s=r?(r.textContent||"").trim():(n.textContent||"").trim(),l=Rs(i,s);return n.id&&l.setId(n.id),n.dir&&(n.dir==="ltr"||n.dir==="rtl")&&l.setDirection(n.dir),{node:l,after(a){return[]}}},priority:3}}}}exportJSON(){return{type:"code-block",version:1,id:this.__id,language:this.__language,code:this.__code,dir:this.__dir}}static importJSON(e){let n=Rs(e.language,e.code);return n.setId(e.id||""),n.setDirection(e.dir||null),n}};function Rs(o="",t=""){return new pn(o,t)}function ks(o){return o instanceof pn}function di(o,t){let e=t.getCode(),n=t.getLanguage(),r=t.getDirection()||"ltr";window.$components.first("code-editor").open(e,n,r,(s,l)=>{o.update(()=>{t.setCode(s),t.setLanguage(l)}),fo(o)},()=>{fo(o)})}var gn=class o extends G{constructor(e,n){super(n);p(this,"__id","");p(this,"__category","info");p(this,"__alignment","");p(this,"__inset",0);this.__category=e}static getType(){return"callout"}static clone(e){let n=new o(e.__category,e.__key);return n.__id=e.__id,n.__alignment=e.__alignment,n.__inset=e.__inset,n}setCategory(e){let n=this.getWritable();n.__category=e}getCategory(){return this.getLatest().__category}setId(e){let n=this.getWritable();n.__id=e}getId(){return this.getLatest().__id}setAlignment(e){let n=this.getWritable();n.__alignment=e}getAlignment(){return this.getLatest().__alignment}setInset(e){let n=this.getWritable();n.__inset=e}getInset(){return this.getLatest().__inset}createDOM(e,n){let r=document.createElement("p");return r.classList.add("callout",this.__category||""),ft(r,this),r}updateDOM(e){return e.__category!==this.__category||ko(e,this)}insertNewAfter(e,n){let r=e?e.anchor.offset:0,i=r===this.getTextContentSize()||!e?I():hn(this.__category);if(i.setDirection(this.getDirection()),this.insertAfter(i,n),r===0&&!this.isEmpty()&&e){let s=I();s.select(),this.replace(s,!0)}return i}static importDOM(){return{p(e){return e.classList.contains("callout")?{conversion:n=>{let r="info",i=["info","success","warning","danger"];for(let l of i)if(n.classList.contains(l)){r=l;break}let s=new o(r);return ut(n,s),{node:s}},priority:3}:null}}}exportJSON(){return{...super.exportJSON(),type:"callout",version:1,category:this.__category,id:this.__id,alignment:this.__alignment,inset:this.__inset}}static importJSON(e){let n=hn(e.category);return mt(e,n),n}};function hn(o="info"){return new gn(o)}function ci(o){return o instanceof gn}function ld(o,t="info"){return o instanceof gn&&o.getCategory()===t}var dr=class o extends Kt{static getType(){return"quote"}static clone(t){let e=new o(t.__key);return Io(t,e),e}constructor(t){super(t)}createDOM(t){let e=document.createElement("blockquote");return Se(e,t.theme.quote),ft(e,this),e}updateDOM(t,e){return ko(t,this)}static importDOM(){return{blockquote:t=>({conversion:IE,priority:0})}}exportDOM(t){let{element:e}=super.exportDOM(t);return e&&he(e)&&this.isEmpty()&&e.append(document.createElement("br")),{element:e}}static importJSON(t){let e=Is();return mt(t,e),e}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(t,e){let n=I(),r=this.getDirection();return n.setDirection(r),this.insertAfter(n,e),n}collapseAtStart(){let t=I();return this.getChildren().forEach(n=>t.append(n)),this.replace(t),!0}canMergeWhenEmpty(){return!0}};function Is(){return ie(new dr)}function $s(o){return o instanceof dr}function IE(o){let t=Is();return ut(o,t),{node:t}}var $E=(o,t)=>Ho(o)&&o.getTag()===t;function Ps(o,t){o.update(()=>{rr(e=>$E(e,t),()=>sr(t))})}function ui(o){o.update(()=>{rr(Qe,I)})}function fi(o){o.update(()=>{rr($s,Is)})}function mi(o,t){o.getEditorState().read(()=>{let e=T();ce(e,r=>Z(r)&&r.getListType()===t)?od(o):td(o,t)})}function pi(o){o.update(()=>{let t=T(),e=de(o),n=X(e,ks);if(n===null){let r=Rs(),i=[],s=pt(t);for(let d of s)i.push(d.getTextContent());r.setCode(i.join(` +`));let l=s[0],a=s.slice(1);K(l)?(l.getChildren().forEach(d=>d.remove()),l.append(r),a.forEach(d=>d.remove())):l?(l.replace(r),a.forEach(d=>d.remove())):cn(r,!0),di(o,r),gt(r)}else di(o,n)})}function wm(o){o.update(()=>{let t=T(),e=pt(t),n=!1;for(let i of e)if(!ci(i)){if(K(i)){let s=i.getChildren();if(s.some(ci))continue;let a=hn("info");a.append(...s),i.splice(0,0,[a])}else{if(i.getParents().some(ci))continue;i.replace(hn("info"),!0)}n=!0}if(n)return;let r=["info","warning","danger","success"];for(let i of e)if(ci(i)){let s=i.getCategory(),a=(r.indexOf(s)+1)%r.length,d=r[a];i.setCategory(d)}})}function Bs(o,t){o.update(()=>{let e=T(),n=X(e,We);if(We(n)?(n.setURL(t.url),n.setTarget(t.target),n.setTitle(t.title)):(n=Ot(t.url,{title:t.title,target:t.target}),Te([n])),We(n)){for(let r of n.getChildren())r.remove(!0);n.append(z(t.text))}})}function vm(o,t){let e=t.manager.createModal("image"),n=o.getHeight(),r=o.getWidth(),i={src:o.getSrc(),alt:o.getAltText(),height:n===0?"":String(n),width:r===0?"":String(r)};e.show(i)}var Dm={submitText:"Apply",async action(o,t){return t.editor.update(()=>{let e=de(t.editor),n=X(e,ke);ke(n)&&(n.setSrc(o.get("src")?.toString()||""),n.setAltText(o.get("alt")?.toString()||""),n.setWidth(Number(o.get("width")?.toString()||"0")),n.setHeight(Number(o.get("height")?.toString()||"0")),t.manager.triggerLayoutUpdate())}),!0},fields:[{build(){return new si(new Wt({label:"Source",name:"src",type:"text"}),new w({label:"Browse files",icon:Sm,action(o){bs(t=>{let e=o.manager.getActiveModal("image");e&&e.getForm().setValues({src:t.thumbs?.display||t.url,alt:t.name})})}}))}},{label:"Alternative description",name:"alt",type:"text"},{label:"Width",name:"width",type:"text"},{label:"Height",name:"height",type:"text"}]};function Hs(o,t){let e=t.manager.createModal("link");if(o){let n={url:o.getURL(),text:o.getTextContent(),title:o.getTitle()||"",target:o.getTarget()||""};t.editor.update(()=>{let r=Ao();r.add(o.getKey()),q(r)}),e.show(n)}else t.editor.getEditorState().read(()=>{let i={text:T()?.getTextContent()||""};e.show(i)})}var Om={submitText:"Apply",async action(o,t){return Bs(t.editor,{url:o.get("url")?.toString()||"",title:o.get("title")?.toString()||"",target:o.get("target")?.toString()||"",text:o.get("text")?.toString()||""}),!0},fields:[{build(){return new si(new ws(new Wt({label:"URL",name:"url",type:"text"})),new w({label:"Browse links",icon:Ls,action(o){Ms(t=>{let e=o.manager.getActiveModal("link");if(e){let n=e.getForm().getValues();e.getForm().setValues({url:t.link,text:n.text||t.name,title:n.title||t.name})}})}}))}},{label:"Text to display",name:"text",type:"text"},{label:"Title",name:"title",type:"text"},{label:"Open link in...",name:"target",type:"select",valuesByLabel:{"Current window":"","New window":"_blank"}}]};function Am(o,t){let e=t.manager.createModal("media"),n={};if(o){let r=o.getAttributes(),i=o.exportDOM(t.editor).element,s=i instanceof HTMLElement?i.outerHTML:"";n={src:r.src||r.data||o.getSources()[0]?.src||"",width:r.width,height:r.height,embed:s,embed_check:s}}e.show(n)}var Rm={submitText:"Save",async action(o,t){let e=await new Promise((i,s)=>{t.editor.getEditorState().read(()=>{let l=X(T(),vt);i(l)})}),n=(o.get("embed")||"").toString().trim(),r=(o.get("embed_check")||"").toString().trim();return n&&n!==r?(t.editor.update(()=>{let i=qf(n);e&&i?e.replace(i):i&&Te([i])}),!0):(t.editor.update(()=>{let i=(o.get("src")||"").toString().trim(),s=(o.get("height")||"").toString().trim(),l=(o.get("width")||"").toString().trim();if(e){e.setSrc(i),e.setWidthAndHeight(l,s),t.manager.triggerFutureStateRefresh();return}let a=Yf(i);(l||s)&&a.setWidthAndHeight(l,s),Te([a])}),!0)},fields:[{build(){return new fn([{label:"General",contents:[{label:"Source",name:"src",type:"text"},{label:"Width",name:"width",type:"text"},{label:"Height",name:"height",type:"text"}]},{label:"Embed",contents:[{label:"Paste your embed code below:",name:"embed",type:"textarea"},{label:"",name:"embed_check",type:"hidden"}]}])}}]};function Fs(o,t){let e=t.manager.createModal("details");o&&e.show({summary:o.getSummary()})}var km={submitText:"Save",async action(o,t){return t.editor.update(()=>{let e=X(T(),ae),n=(o.get("summary")||"").toString().trim();ae(e)&&e.setSummary(n)}),!0},fields:[{label:"Toggle label",name:"summary",type:"text"}]};var cr=class o extends G{constructor(){super(...arguments);p(this,"__id","");p(this,"__summary","");p(this,"__open",!1)}static getType(){return"details"}setId(e){let n=this.getWritable();n.__id=e}getId(){return this.getLatest().__id}setSummary(e){let n=this.getWritable();n.__summary=e}getSummary(){return this.getLatest().__summary}setOpen(e){let n=this.getWritable();n.__open=e}getOpen(){return this.getLatest().__open}static clone(e){let n=new o(e.__key);return n.__id=e.__id,n.__dir=e.__dir,n.__summary=e.__summary,n.__open=e.__open,n}isShadowRoot(){return!0}createDOM(e,n){let r=document.createElement("details");this.__id&&r.setAttribute("id",this.__id),this.__dir&&r.setAttribute("dir",this.__dir),this.__open?(r.setAttribute("open","true"),r.removeAttribute("contenteditable")):(r.setAttribute("draggable","true"),r.setAttribute("contenteditable","false"));let i=document.createElement("summary");return i.textContent=this.__summary,i.setAttribute("contenteditable","false"),i.addEventListener("click",s=>{s.preventDefault(),n.update(()=>{this.select()})}),i.addEventListener("pointerdown",s=>{n.update(()=>{this.select()}),r.draggable=!0;let l=()=>{document.removeEventListener("pointerup",l),r.draggable=!1};document.addEventListener("pointerup",l)}),i.addEventListener("dblclick",s=>{s.preventDefault();let l=n.getUiContext();l&&n.read(()=>{Fs(this,l)})}),r.append(i),r}updateDOM(e,n){return e.__open!==this.__open&&(n.toggleAttribute("open",this.__open),this.__open?(n.removeAttribute("contenteditable"),n.removeAttribute("draggable")):(n.setAttribute("contenteditable","false"),n.setAttribute("draggable","true"))),e.__id!==this.__id||e.__dir!==this.__dir||e.__summary!==this.__summary}static importDOM(){return{details(e){return{conversion:n=>{let r=new o;n.id&&r.setId(n.id),n.dir&&r.setDirection(Gr(n));let i=Array.from(n.children).find(s=>s.nodeName==="SUMMARY");return r.setSummary(i?.textContent||""),{node:r}},priority:3}},summary(e){return{conversion:n=>({node:"ignore"}),priority:3}}}}exportDOM(e){let n=this.createDOM(e._config,e),r=n.querySelectorAll("[contenteditable]");for(let i of r)i.removeAttribute("contenteditable");return n.removeAttribute("open"),n.removeAttribute("contenteditable"),n.removeAttribute("draggable"),{element:n}}exportJSON(){return{...super.exportJSON(),type:"details",version:1,id:this.__id,summary:this.__summary}}static importJSON(e){let n=ad();return n.setId(e.id),n.setDirection(e.direction),n}shouldSelectDirectly(){return!0}canBeEmpty(){return!1}};function ad(){return new cr}function ae(o){return o instanceof cr}function PE(o){return o.map(t=>{if(L(t)){let e=I();return e.append(t),e}return t})}function ai(o,t){let e=is(t);return ms(o,e)}function ar(o,t){return PE(ai(o,t))}function zt(o,t){for(let e of o.getParents())if(t(e))return e;return null}function li(o,t){t||(t=F());let e=[];for(let n of t.getChildren())o(n)&&e.push(n),E(n)&&e.push(...li(o,n));return e}function $m(o,t){let e=o.clientX,n=o.clientY,r=window.document.caretPositionFromPoint(o.x,o.y);if(!r){let s=Im(t,e,n);return s?{node:s,offset:0}:null}let i=Y(r.offsetNode);if(!i){let s=Im(t,e,n);return s?{node:s,offset:0}:null}return{node:i,offset:r.offset}}function Im(o,t,e){let n=F().getChildren();for(let r of n){let i=o.getElementByKey(r.__key);if(!i)continue;let s=i.getBoundingClientRect();if(e<=s.bottom)return r}return null}function ot(o){let t=e=>(E(e)||H(e))&&!e.isInline()&&!re(e);return t(o)?o:W(o,t)}function Es(o,t=null){let e=[],n=i=>{for(let s of i.getChildren())e.push(s.getKey()),E(s)&&n(s)};n(t||F());let r=Array.from(o);return r.sort((i,s)=>{let l=e.indexOf(i.getKey()),a=e.indexOf(s.getKey());return l-a}),r}function gi(o,t){let e=ot(o)||o,n=t?e.getNextSibling():e.getPreviousSibling();return n||(n=I(),t?e.insertAfter(n):e.insertBefore(n)),t?n.selectStart():n.selectEnd()}function mn(o){if(o.length===1){let t=o[0];if(H(t)||ke(t)||vt(t)||uo(t)||ae(t))return!0}return!1}function Ko(o){if(!mn(o))return null;let t=o[0];return _s(t)?t.getParent():t}function ni(o){return"__alignment"in o}function sm(o){return"__inset"in o}var Bm=o=>pe?(o||window).getSelection():null;function Ks(o,t=T()){t==null&&C(!1,"Expected valid LexicalSelection");let e=Ko(t.getNodes());return e?gs(o,e):_(t)&&t.isCollapsed()||t.getNodes().length===0?"":ps(o,t)}function Hm(o,t=T()){t==null&&C(!1,"Expected valid LexicalSelection");let e=Ko(t.getNodes());return e?JSON.stringify(HE(o,e)):_(t)&&t.isCollapsed()||t.getNodes().length===0?null:JSON.stringify(Fm(o,t))}function Us(o,t,e){let n=o.getData("application/x-lexical-editor");if(n)try{let s=JSON.parse(n);if(s.namespace===e._config.namespace&&Array.isArray(s.nodes)){let l=Km(s.nodes);return dd(e,l,t)}}catch{}let r=o.getData("text/html");if(r)try{let l=new DOMParser().parseFromString(r,"text/html"),a=ms(e,l);return dd(e,a,t)}catch{}let i=o.getData("text/plain")||o.getData("text/uri-list");if(i!=null)if(_(t)){let s=i.split(/(\r?\n|\t)/);s[s.length-1]===""&&s.pop();for(let l=0;l0?a.text=d:r=!1}for(let d=0;d{o.update(()=>{a(Pm(o,t,e))})});let n=o.getRootElement(),r=o._window==null?window.document:o._window.document,i=Bm(o._window);if(n===null||i===null)return!1;let s=r.createElement("span");s.style.cssText="position: fixed; top: -1000px;",s.append(r.createTextNode("#")),n.append(s);let l=new Range;return l.setStart(s,0),l.setEnd(s,1),i.removeAllRanges(),i.addRange(l),new Promise((a,d)=>{let u=o.registerCommand(Co,f=>(Mt(f,ClipboardEvent)&&(u(),ur!==null&&(window.clearTimeout(ur),ur=null),a(Pm(o,f,e))),!0),ze);ur=window.setTimeout(()=>{u(),ur=null,a(!1)},FE),r.execCommand("copy"),s.remove()})}function Pm(o,t,e){if(e===void 0){let r=Bm(o._window);if(!r)return!1;let i=r.anchorNode,s=r.focusNode;if(i!==null&&s!==null&&!to(o,i,s))return!1;let l=T();if(l===null)return!1;e=zs(l)}t.preventDefault();let n=t.clipboardData;return n===null?!1:(Um(n,e),!0)}var KE=[["text/html",Ks],["application/x-lexical-editor",Hm]];function zs(o=T()){let t={"text/plain":o?o.getTextContent():""};if(o){let e=Fr();for(let[n,r]of KE){let i=r(e,o);i!==null&&(t[n]=i)}}return t}function Um(o,t){for(let e in t){let n=t[e];n!==void 0&&o.setData(e,n)}}function Ws(o,t){if(typeof document.caretRangeFromPoint<"u"){let e=document.caretRangeFromPoint(o,t);return e===null?null:{node:e.startContainer,offset:e.startOffset}}else if(document.caretPositionFromPoint!=="undefined"){let e=document.caretPositionFromPoint(o,t);return e===null?null:{node:e.offsetNode,offset:e.offset}}else return null}var zm=$("DRAG_DROP_PASTE_FILE");function UE(o,t){o.preventDefault(),t.update(()=>{let e=T(),n=Mt(o,InputEvent)||Mt(o,KeyboardEvent)?null:o.clipboardData;n!=null&&e!==null&&Us(n,e,t)},{tag:"paste"})}async function zE(o,t){await fr(t,Mt(o,ClipboardEvent)?o:null),t.update(()=>{let e=T();if(_(e)){let n=Ko(e.getNodes());n?n.remove():e.removeText()}else Ae(e)&&e.getNodes().forEach(n=>n.remove())})}function qs(o){let t=null;if(Mt(o,DragEvent)?t=o.dataTransfer:Mt(o,ClipboardEvent)&&(t=o.clipboardData),t===null)return[!1,[],!1];let e=t.types,n=e.includes("Files"),r=e.includes("text/html")||e.includes("text/plain");return[n,Array.from(t.files),r]}function Ys(o){let t=Y(o);return H(t)}function WE(o){let t=o.focus;return t.key==="root"&&t.offset===F().getChildrenSize()}function Zs(o){return tt(o.registerCommand(Yt,e=>{let n=T();return Ae(n)?(n.clear(),!0):!1},0),o.registerCommand(rt,e=>{let n=T();return _(n)?(n.deleteCharacter(e),!0):!1},J),o.registerCommand(It,e=>{let n=T();return _(n)?(n.deleteWord(e),!0):!1},J),o.registerCommand(Et,e=>{let n=T();return _(n)?(n.deleteLine(e),!0):!1},J),o.registerCommand(xt,e=>{let n=T();if(typeof e=="string")n!==null&&n.insertText(e);else{if(n===null)return!1;let r=e.dataTransfer;if(r!=null)Us(r,n,o);else if(_(n)){let i=e.data;return i&&n.insertText(i),!0}}return!0},J),o.registerCommand(Dn,()=>{let e=T();return _(e)?(e.removeText(),!0):!1},J),o.registerCommand(Be,e=>{let n=T();return _(n)?(n.formatText(e),!0):!1},J),o.registerCommand(Zt,e=>{let n=T();return _(n)?(n.insertLineBreak(e),!0):!1},J),o.registerCommand(Nt,()=>{let e=T();return _(e)?(e.insertParagraph(),!0):!1},J),o.registerCommand(Rl,()=>(Te([Ht()]),!0),J),o.registerCommand(Vt,e=>{let n=T();if(Ae(n)&&!Ys(e.target)){let r=n.getNodes();if(r.length>0)return r[0].selectPrevious(),!0}else if(_(n)){let r=no(n.focus,!0);if(!e.shiftKey&&H(r)&&!r.isIsolated()&&!r.isInline())return r.selectPrevious(),e.preventDefault(),!0}return!1},J),o.registerCommand(Xt,e=>{let n=T();if(Ae(n)){let r=n.getNodes();if(r.length>0)return r[0].selectNext(0,0),!0}else if(_(n)){if(WE(n))return e.preventDefault(),!0;let r=no(n.focus,!1);if(!e.shiftKey&&H(r)&&!r.isIsolated()&&!r.isInline())return r.selectNext(),e.preventDefault(),!0}return!1},J),o.registerCommand(Yo,e=>{let n=T();if(Ae(n)){let r=n.getNodes();if(r.length>0)return e.preventDefault(),r[0].selectPrevious(),!0}if(!_(n))return!1;if(ls(n,!0)){let r=e.shiftKey;return e.preventDefault(),as(n,r,!0),!0}return!1},J),o.registerCommand(qo,e=>{let n=T();if(Ae(n)&&!Ys(e.target)){let i=n.getNodes();if(i.length>0)return e.preventDefault(),i[0].selectNext(0,0),!0}if(!_(n))return!1;let r=e.shiftKey;return ls(n,!1)?(e.preventDefault(),as(n,r,!1),!0):!1},J),o.registerCommand(jt,e=>{if(Ys(e.target))return!1;let n=T();return _(n)?(e.preventDefault(),o.dispatchCommand(rt,!0)):!1},J),o.registerCommand(Gt,e=>{if(Ys(e.target))return!1;let n=T();return _(n)?(e.preventDefault(),o.dispatchCommand(rt,!1)):!1},J),o.registerCommand(ve,e=>{let n=T();if(!_(n))return!1;if(e!==null){if(($t||Jt||Qt)&&So)return!1;if(e.preventDefault(),e.shiftKey)return o.dispatchCommand(Zt,!1)}return o.dispatchCommand(Nt,void 0)},J),o.registerCommand(Zo,()=>{let e=T();return _(e)?(o.blur(),!0):!1},J),o.registerCommand(Xo,e=>{let[,n]=qs(e);if(n.length>0){let i=e.clientX,s=e.clientY,l=Ws(i,s);if(l!==null){let{offset:a,node:d}=l,u=Y(d);if(u!==null){let f=rn();if(L(u))f.anchor.set(u.getKey(),a,"text"),f.focus.set(u.getKey(),a,"text");else{let m=u.getParentOrThrow().getKey(),g=u.getIndexWithinParent()+1;f.anchor.set(m,g,"element"),f.focus.set(m,g,"element")}let c=Go(f);q(c)}o.dispatchCommand(zm,n)}return e.preventDefault(),!0}let r=T();return!!_(r)},J),o.registerCommand(jo,e=>{let[n]=qs(e),r=T();return!(n&&!_(r))},J),o.registerCommand(Sr,e=>{let[n]=qs(e),r=T();if(n&&!_(r))return!1;let i=e.clientX,s=e.clientY,l=Ws(i,s);if(l!==null){let a=Y(l.node);H(a)&&e.preventDefault()}return!0},J),o.registerCommand(On,()=>(ta(),!0),J),o.registerCommand(Co,e=>(fr(o,Mt(e,ClipboardEvent)?e:null),!0),J),o.registerCommand(bo,e=>(zE(e,o),!0),J),o.registerCommand(xo,e=>{let[,n,r]=qs(e);return n.length>0&&!r?(o.dispatchCommand(zm,n),!0):Fn(e.target)?!1:T()!==null?(UE(e,o),!0):!1},J))}var te={BOTH:3,COLUMN:2,NO_STATUS:0,ROW:1},mo=class o extends G{constructor(e=te.NO_STATUS,n=1,r,i){super(i);p(this,"__colSpan");p(this,"__rowSpan");p(this,"__headerState");p(this,"__width");p(this,"__backgroundColor");p(this,"__styles",new Map);p(this,"__alignment","");this.__colSpan=n,this.__rowSpan=1,this.__headerState=e,this.__width=r,this.__backgroundColor=null}static getType(){return"tablecell"}static clone(e){let n=new o(e.__headerState,e.__colSpan,e.__width,e.__key);return n.__rowSpan=e.__rowSpan,n.__backgroundColor=e.__backgroundColor,n.__styles=new Map(e.__styles),n.__alignment=e.__alignment,n}static importDOM(){return{td:e=>({conversion:Wm,priority:0}),th:e=>({conversion:Wm,priority:0})}}static importJSON(e){let n=qe(e.headerState,e.colSpan,e.width);return e.rowSpan&&n.setRowSpan(e.rowSpan),n.setStyles(new Map(Object.entries(e.styles))),n.setAlignment(e.alignment),n}createDOM(e){let n=document.createElement(this.getTag());this.__width&&(n.style.width=`${this.__width}px`),this.__colSpan>1&&(n.colSpan=this.__colSpan),this.__rowSpan>1&&(n.rowSpan=this.__rowSpan),this.__backgroundColor!==null&&(n.style.backgroundColor=this.__backgroundColor),Se(n,e.theme.tableCell,this.hasHeader()&&e.theme.tableCellHeader);for(let[r,i]of this.__styles.entries())n.style.setProperty(r,i);return this.__alignment&&n.classList.add("align-"+this.__alignment),n}exportDOM(e){let{element:n}=super.exportDOM(e);return{element:n}}exportJSON(){return{...super.exportJSON(),backgroundColor:this.getBackgroundColor(),colSpan:this.__colSpan,headerState:this.__headerState,rowSpan:this.__rowSpan,type:"tablecell",width:this.getWidth(),styles:Object.fromEntries(this.__styles),alignment:this.__alignment}}getColSpan(){return this.__colSpan}setColSpan(e){return this.getWritable().__colSpan=e,this}getRowSpan(){return this.__rowSpan}setRowSpan(e){return this.getWritable().__rowSpan=e,this}getTag(){return this.hasHeader()?"th":"td"}setHeaderStyles(e){let n=this.getWritable();return n.__headerState=e,this.__headerState}getHeaderStyles(){return this.getLatest().__headerState}setWidth(e){let n=this.getWritable();return n.__width=e,this.__width}getWidth(){return this.getLatest().__width}clearWidth(){let e=this.getWritable();e.__width=void 0}getStyles(){let e=this.getLatest();return new Map(e.__styles)}setStyles(e){let n=this.getWritable();n.__styles=new Map(e)}setAlignment(e){let n=this.getWritable();n.__alignment=e}getAlignment(){return this.getLatest().__alignment}updateTag(e){let r=e.toLowerCase()==="th"?te.ROW:te.NO_STATUS,i=this.getWritable();i.__headerState=r}getBackgroundColor(){return this.getLatest().__backgroundColor}setBackgroundColor(e){this.getWritable().__backgroundColor=e}toggleHeaderStyle(e){let n=this.getWritable();return(n.__headerState&e)===e?n.__headerState-=e:n.__headerState+=e,n}hasHeaderState(e){return(this.getHeaderStyles()&e)===e}hasHeader(){return this.getLatest().__headerState!==te.NO_STATUS}updateDOM(e){return e.__headerState!==this.__headerState||e.__width!==this.__width||e.__colSpan!==this.__colSpan||e.__rowSpan!==this.__rowSpan||e.__backgroundColor!==this.__backgroundColor||e.__styles!==this.__styles||e.__alignment!==this.__alignment}isShadowRoot(){return!0}collapseAtStart(){return!0}canBeEmpty(){return!1}canIndent(){return!1}};function Wm(o){let t=o,e=o.nodeName.toLowerCase(),n;/^(\d+(?:\.\d+)?)px$/.test(t.style.width)&&(n=parseFloat(t.style.width));let i=e==="th";o instanceof HTMLElement&&o.closest("thead")&&(i=!0);let s=qe(i?te.ROW:te.NO_STATUS,t.colSpan,n);s.__rowSpan=t.rowSpan;let l=t.style,a=l.textDecoration.split(" "),d=l.fontWeight==="700"||l.fontWeight==="bold",u=a.includes("line-through"),f=l.fontStyle==="italic",c=a.includes("underline");if(o instanceof HTMLElement){let g=Gn(o);g.delete("background-color"),s.setStyles(g),s.setAlignment(jr(o))}let m=l.backgroundColor||null;return m&&s.setBackgroundColor(m),{after:g=>(g.length===0&&g.push(I()),g),forChild:(g,h)=>{if(D(h)&&!E(g)){let N=I();return Fe(g)&&g.getTextContent()===` +`?null:(L(g)&&(d&&g.toggleFormat("bold"),u&&g.toggleFormat("strikethrough"),f&&g.toggleFormat("italic"),c&&g.toggleFormat("underline")),N.append(g),N)}return g},node:s}}function qe(o=te.NO_STATUS,t=1,e){return ie(new mo(o,t,e))}function D(o){return o instanceof mo}var qE=$("INSERT_TABLE_COMMAND");var po=class o extends G{constructor(e){super(e);p(this,"__height");p(this,"__styles",new Map)}static getType(){return"tablerow"}static clone(e){let n=new o(e.__key);return n.__styles=new Map(e.__styles),n}static importDOM(){return{tr:e=>({conversion:YE,priority:0})}}static importJSON(e){let n=Nn();return n.setStyles(new Map(Object.entries(e.styles))),n}exportJSON(){return{...super.exportJSON(),type:"tablerow",version:1,styles:Object.fromEntries(this.__styles),height:this.__height||0}}createDOM(e){let n=document.createElement("tr");this.__height&&(n.style.height=`${this.__height}px`);for(let[r,i]of this.__styles.entries())n.style.setProperty(r,i);return Se(n,e.theme.tableRow),n}isShadowRoot(){return!0}getStyles(){let e=this.getLatest();return new Map(e.__styles)}setStyles(e){let n=this.getWritable();n.__styles=new Map(e)}setHeight(e){let n=this.getWritable();return n.__height=e,this.__height}getHeight(){return this.getLatest().__height}updateDOM(e){return e.__height!==this.__height||e.__styles!==this.__styles}canBeEmpty(){return!1}canIndent(){return!1}};function YE(o){let t=Nn(),n=ln(o.style.height);return t.setHeight(n),o instanceof HTMLElement&&t.setStyles(Gn(o)),{node:t}}function Nn(){return ie(new po)}function oe(o){return o instanceof po}var mr=class o extends G{static getType(){return"caption"}static clone(t){return new o(t.__key)}createDOM(t,e){return document.createElement("caption")}updateDOM(t,e,n){return!1}isParentRequired(){return!0}canBeEmpty(){return!1}exportJSON(){return{...super.exportJSON(),type:"caption",version:1}}insertDOMIntoParent(t,e){return e.insertBefore(t,e.firstChild),!0}static importJSON(t){return ud()}static importDOM(){return{caption:t=>({conversion(e){return{node:ud()}},priority:0})}}};function ud(){return new mr}function hi(o){return o instanceof mr}function fd(o){for(let t of o.getChildren())if(hi(t))return!0;return!1}function qm(o,t=""){let e=ud(),n=z(t||" ");e.append(n),o.append(e)}function pd(o,t,e=!0){let n=xi();for(let r=0;ro===te.BOTH||o===t?t:te.NO_STATUS;function Vs(o=!0){let t=T();C(_(t)||V(t),"Expected a RangeSelection or TableSelection");let e=t.focus.getNode(),[n,,r]=Pe(e),[i,s]=ht(r,n,n),l=i[0].length,{startRow:a}=s;if(o){let d=a+n.__rowSpan-1,u=i[d],f=Nn();for(let m=0;m1;)if(k-=M.__colSpan,k>=0){let{cell:j,startRow:se}=x[k];P=j,B=se}else{N.append(h(v));continue e}P.insertAfter(h(v))}else M.setColSpan(M.__colSpan+1)}g!==null&&Ni(g)}function gd(){let o=T();C(_(o)||V(o),"Expected a RangeSelection or TableSelection");let t=o.anchor.getNode(),e=o.focus.getNode(),[n,,r]=Pe(t),[i]=Pe(e),[s,l,a]=ht(r,n,i),{startRow:d}=l,{startRow:u}=a,f=u+i.__rowSpan-1;if(s.length===f-d+1){r.remove();return}let c=s[0].length,m=s[f+1],g=r.getChildAtIndex(f+1);for(let h=f;h>=d;h--){for(let b=c-1;b>=0;b--){let{cell:x,startRow:S,startColumn:v}=s[h][b];if(v===b&&(h===d&&S=d&&S+x.__rowSpan-1>f))if(x.setRowSpan(x.__rowSpan-(f-S+1)),C(g!==null,"Expected nextRowNode not to be null"),b===0)Nd(g,x);else{let{cell:M}=m[b-1];M.insertAfter(x)}}let N=r.getChildAtIndex(h);C(oe(N),"Expected GridNode childAtIndex(%s) to be RowNode",String(h)),N.remove()}if(m!==void 0){let{cell:h}=m[0];Ni(h)}else{let h=s[d-1],{cell:N}=h[0];Ni(N)}}function hd(){let o=T();C(_(o)||V(o),"Expected a RangeSelection or TableSelection");let t=o.anchor.getNode(),e=o.focus.getNode(),[n,,r]=Pe(t),[i]=Pe(e),[s,l,a]=ht(r,n,i),{startColumn:d}=l,{startRow:u,startColumn:f}=a,c=Math.min(d,f),m=Math.max(d+n.__colSpan-1,f+i.__colSpan-1),g=m-c+1;if(s[0].length===m-c+1){r.selectPrevious(),r.remove();return}let N=s.length;for(let S=0;Sm){if(v===m){let O=m-R+1;M.setColSpan(M.__colSpan-O)}}else M.remove()}let b=s[u],x=d>f?b[d+n.__colSpan]:b[f+i.__colSpan];if(x!==void 0){let{cell:S}=x;Ni(S)}else{let S=f1){for(let l=1;l1){let[l,a]=ht(r,e,e),{startColumn:d,startRow:u}=a,f;for(let c=1;c1&&(N+=x.__colSpan-1)}if(h===null)for(let N=0;N!hi(d));for(let d=0;dx||h>S;){if(cx){let O=S-b,P=x+1;for(let B=0;B<=O;B++)v(d[b+B][P]);x=P}if(h>S){let O=x-N,P=S+1;for(let B=0;B<=O;B++)v(d[P][N+B]);S=P}}let M=[l],R=null;for(let O=m;O<=h;O++)for(let P=c;P<=g;P++){let{cell:B}=d[O][P],k=B.getParent();C(oe(k),"Expected TableCellNode parent to be a TableRowNode"),k!==R&&M.push(k),M.push(B,...ZE(B)),R=k}return Tt()||(this._cachedNodes=M),M}getTextContent(){let t=this.getNodes().filter(n=>D(n)),e="";for(let n=0;n0;){let n=e.pop();C(n!==void 0,"Stack.length > 0; can't be undefined"),E(n)&&e.unshift(...n.getChildren()),n!==o&&t.push(n)}return t}var Ti=class{constructor(t,e){p(this,"focusX");p(this,"focusY");p(this,"listenersToRemove");p(this,"table");p(this,"isHighlightingCells");p(this,"anchorX");p(this,"anchorY");p(this,"tableNodeKey");p(this,"anchorCell");p(this,"focusCell");p(this,"anchorCellNodeKey");p(this,"focusCellNodeKey");p(this,"editor");p(this,"tableSelection");p(this,"hasHijackedSelectionStyles");p(this,"isSelecting");this.isHighlightingCells=!1,this.anchorX=-1,this.anchorY=-1,this.focusX=-1,this.focusY=-1,this.listenersToRemove=new Set,this.tableNodeKey=e,this.editor=t,this.table={columns:0,domRows:[],rows:0},this.tableSelection=null,this.anchorCellNodeKey=null,this.focusCellNodeKey=null,this.anchorCell=null,this.focusCell=null,this.hasHijackedSelectionStyles=!1,this.trackTable(),this.isSelecting=!1}getTable(){return this.table}removeListeners(){Array.from(this.listenersToRemove).forEach(t=>t())}trackTable(){let t=new MutationObserver(e=>{this.editor.update(()=>{let n=!1;for(let i=0;i{let e=this.editor.getElementByKey(this.tableNodeKey);if(!e)throw new Error("Expected to find TableElement in DOM");this.table=xn(e),t.observe(e,{attributes:!0,childList:!0,subtree:!0})})}clearHighlight(){let t=this.editor;this.isHighlightingCells=!1,this.anchorX=-1,this.anchorY=-1,this.focusX=-1,this.focusY=-1,this.tableSelection=null,this.anchorCellNodeKey=null,this.focusCellNodeKey=null,this.anchorCell=null,this.focusCell=null,this.hasHijackedSelectionStyles=!1,this.enableHighlightStyle(),t.update(()=>{let e=ee(this.tableNodeKey);if(!U(e))throw new Error("Expected TableNode.");let n=t.getElementByKey(this.tableNodeKey);if(!n)throw new Error("Expected to find TableElement in DOM");let r=xn(n);Ei(t,r,null),q(null),t.dispatchCommand(_e,void 0)})}enableHighlightStyle(){let t=this.editor;t.update(()=>{let e=t.getElementByKey(this.tableNodeKey);if(!e)throw new Error("Expected to find TableElement in DOM");ds(e,t._config.theme.tableSelection),e.classList.remove("disable-selection"),this.hasHijackedSelectionStyles=!1})}disableHighlightStyle(){let t=this.editor;t.update(()=>{let e=t.getElementByKey(this.tableNodeKey);if(!e)throw new Error("Expected to find TableElement in DOM");Se(e,t._config.theme.tableSelection),this.hasHijackedSelectionStyles=!0})}updateTableTableSelection(t){if(t!==null&&t.tableKey===this.tableNodeKey){let e=this.editor;this.tableSelection=t,this.isHighlightingCells=!0,this.disableHighlightStyle(),Ei(e,this.table,this.tableSelection)}else t==null?this.clearHighlight():(this.tableNodeKey=t.tableKey,this.updateTableTableSelection(t))}setFocusCellForSelection(t,e=!1){let n=this.editor;n.update(()=>{let r=ee(this.tableNodeKey);if(!U(r))throw new Error("Expected TableNode.");if(!n.getElementByKey(this.tableNodeKey))throw new Error("Expected to find TableElement in DOM");let s=t.x,l=t.y;if(this.focusCell=t,this.anchorCell!==null){let a=Ed(n._window);a&&a.setBaseAndExtent(this.anchorCell.elem,0,this.focusCell.elem,0)}if(!this.isHighlightingCells&&(this.anchorX!==s||this.anchorY!==l||e))this.isHighlightingCells=!0,this.disableHighlightStyle();else if(s===this.focusX&&l===this.focusY)return;if(this.focusX=s,this.focusY=l,this.isHighlightingCells){let a=Y(t.elem);if(this.tableSelection!=null&&this.anchorCellNodeKey!=null&&D(a)&&r.is(Uo(a))){let d=a.getKey();this.tableSelection=this.tableSelection.clone()||Js(),this.focusCellNodeKey=d,this.tableSelection.set(this.tableNodeKey,this.anchorCellNodeKey,this.focusCellNodeKey),q(this.tableSelection),n.dispatchCommand(_e,void 0),Ei(n,this.table,this.tableSelection)}}})}setAnchorCellForSelection(t){this.isHighlightingCells=!1,this.anchorCell=t,this.anchorX=t.x,this.anchorY=t.y,this.editor.update(()=>{let e=Y(t.elem);if(D(e)){let n=e.getKey();this.tableSelection=this.tableSelection!=null?this.tableSelection.clone():Js(),this.anchorCellNodeKey=n}})}formatCells(t){this.editor.update(()=>{let e=T();V(e)||C(!1,"Expected grid selection");let n=rn(),r=n.anchor,i=n.focus;e.getNodes().forEach(s=>{D(s)&&s.getTextContentSize()!==0&&(r.set(s.getKey(),0,"element"),i.set(s.getKey(),s.getChildrenSize(),"element"),n.formatText(t))}),q(e),this.editor.dispatchCommand(_e,void 0)})}clearText(){let t=this.editor;t.update(()=>{let e=ee(this.tableNodeKey);if(!U(e))throw new Error("Expected TableNode.");let n=T();V(n)||C(!1,"Expected grid selection");let r=n.getNodes().filter(D);if(r.length===this.table.columns*this.table.rows){e.selectPrevious(),e.remove(),F().selectStart();return}r.forEach(i=>{if(E(i)){let s=I(),l=z();s.append(l),i.append(s),i.getChildren().forEach(a=>{a!==s&&a.remove()})}}),Ei(t,this.table,null),q(null),t.dispatchCommand(_e,void 0)})}};var VE="__lexicalTableSelection",Ed=o=>pe?(o||window).getSelection():null,XE=o=>(o.buttons&1)===1;function bd(o,t,e,n){let r=e.getRootElement();if(r===null)throw new Error("No root element.");let i=new Ti(e,o.getKey()),s=e._window||window;jE(t,i);let l=()=>{let c=()=>{i.isSelecting=!1,s.removeEventListener("mouseup",c),s.removeEventListener("mousemove",m)},m=g=>{setTimeout(()=>{if(!XE(g)&&i.isSelecting){i.isSelecting=!1,s.removeEventListener("mouseup",c),s.removeEventListener("mousemove",m);return}let h=Cd(g.target);h!==null&&(i.anchorX!==h.x||i.anchorY!==h.y)&&(g.preventDefault(),i.setFocusCellForSelection(h))},0)};return{onMouseMove:m,onMouseUp:c}};t.addEventListener("mousedown",c=>{setTimeout(()=>{if(c.button!==0||!s)return;let m=Cd(c.target);m!==null&&(Tn(c),i.setAnchorCellForSelection(m));let{onMouseUp:g,onMouseMove:h}=l();i.isSelecting=!0,s.addEventListener("mouseup",g),s.addEventListener("mousemove",h)},0)});let a=c=>{c.button===0&&e.update(()=>{let m=T(),g=c.target;V(m)&&m.tableKey===i.tableNodeKey&&r.contains(g)&&i.clearHighlight()})};s.addEventListener("mousedown",a),i.listenersToRemove.add(()=>s.removeEventListener("mousedown",a)),i.listenersToRemove.add(e.registerCommand(Xt,c=>Ci(e,c,"down",o,i),Ue)),i.listenersToRemove.add(e.registerCommand(Vt,c=>Ci(e,c,"up",o,i),Ue)),i.listenersToRemove.add(e.registerCommand(Yo,c=>Ci(e,c,"backward",o,i),Ue)),i.listenersToRemove.add(e.registerCommand(qo,c=>Ci(e,c,"forward",o,i),Ue)),i.listenersToRemove.add(e.registerCommand(Zo,c=>{let m=T();if(V(m)){let g=W(m.focus.getNode(),D);if(D(g))return Tn(c),g.selectEnd(),!0}return!1},Ue));let d=c=>()=>{let m=T();if(!En(m,o))return!1;if(V(m))return i.clearText(),!0;if(_(m)){let g=W(m.anchor.getNode(),R=>D(R));if(!D(g))return!1;let h=m.anchor.getNode(),N=m.focus.getNode(),b=o.isParentOf(h),x=o.isParentOf(N);if(b&&!x||x&&!b)return i.clearText(),!0;let v=W(m.anchor.getNode(),R=>E(R)),M=v&&W(v,R=>E(R)&&D(R.getParent()));if(!E(M)||!E(v))return!1;if(c===Et&&M.getPreviousSibling()===null)return!0}return!1};[It,Et,rt].forEach(c=>{i.listenersToRemove.add(e.registerCommand(c,d(c),ze))});let u=c=>{let m=T();if(!En(m,o)){let g=m?m.getNodes():null;if(g){let h=g.find(N=>U(N)&&N.getKey()===i.tableNodeKey);if(U(h)){if(!h.getParent())return!1;h.remove()}}return!1}if(V(m))return c&&(c.preventDefault(),c.stopPropagation()),i.clearText(),!0;if(_(m)){let g=W(m.anchor.getNode(),h=>D(h));if(!D(g))return!1}return!1};i.listenersToRemove.add(e.registerCommand(jt,u,ze)),i.listenersToRemove.add(e.registerCommand(Gt,u,ze)),i.listenersToRemove.add(e.registerCommand(bo,c=>{let m=T();if(m){if(!(V(m)||_(m)))return!1;fr(e,Mt(c,ClipboardEvent)?c:null,zs(m));let g=u(c);return _(m)&&m.removeText(),g}return!1},ze)),i.listenersToRemove.add(e.registerCommand(Be,c=>{let m=T();if(!En(m,o))return!1;if(V(m))return i.formatCells(c),!0;if(_(m)){let g=W(m.anchor.getNode(),h=>D(h));if(!D(g))return!1}return!1},ze)),i.listenersToRemove.add(e.registerCommand(xt,c=>{let m=T();if(!En(m,o))return!1;if(V(m))return i.clearHighlight(),!1;if(_(m)){let g=W(m.anchor.getNode(),h=>D(h));if(!D(g))return!1;if(typeof c=="string"){let h=Xm(e,m,o);if(h)return Vm(h,o,[z(c)]),!0}}return!1},ze)),n&&i.listenersToRemove.add(e.registerCommand(Vo,c=>{let m=T();if(!_(m)||!m.isCollapsed()||!En(m,o))return!1;let g=el(m.anchor.getNode());if(g===null)return!1;Tn(c);let h=o.getCordsFromCellNode(g,i.table);return jm(i,o,h.x,h.y,c.shiftKey?"backward":"forward"),!0},ze)),i.listenersToRemove.add(e.registerCommand(Lr,c=>o.isSelected(),Ue));function f(c){let m=o.getCordsFromCellNode(c,i.table);return o.getDOMCellFromCordsOrThrow(m.x,m.y,i.table)}return i.listenersToRemove.add(e.registerCommand(_r,c=>{let{nodes:m,selection:g}=c,h=g.getStartEndPoints(),N=V(g),x=_(g)&&W(g.anchor.getNode(),Ze=>D(Ze))!==null&&W(g.focus.getNode(),Ze=>D(Ze))!==null||N;if(m.length!==1||!U(m[0])||!x||h===null)return!1;let[S]=h,v=m[0],M=v.getChildren(),R=v.getFirstChildOrThrow().getChildrenSize(),O=v.getChildrenSize(),P=W(S.getNode(),Ze=>D(Ze)),B=P&&W(P,Ze=>oe(Ze)),k=B&&W(B,Ze=>U(Ze));if(!D(P)||!oe(B)||!U(k))return!1;let j=B.getIndexWithinParent(),se=Math.min(k.getChildrenSize()-1,j+O-1),Ye=P.getIndexWithinParent(),pc=Math.min(B.getChildrenSize()-1,Ye+R-1),pN=Math.min(Ye,pc),gN=Math.min(j,se),hN=Math.max(Ye,pc),NN=Math.max(j,se),xN=k.getChildren(),gc=0;for(let Ze=gN;Ze<=NN;Ze++){let hc=xN[Ze];if(!oe(hc))return!1;let Nc=M[gc];if(!oe(Nc))return!1;let EN=hc.getChildren(),TN=Nc.getChildren(),xc=0;for(let wl=pN;wl<=hN;wl++){let Oi=EN[wl];if(!D(Oi))return!1;let Ec=TN[xc];if(!D(Ec))return!1;let CN=Oi.getChildren();Ec.getChildren().forEach(vn=>{L(vn)&&I().append(vn),Oi.append(vn)}),CN.forEach(vn=>vn.remove()),xc++}gc++}return!0},ze)),i.listenersToRemove.add(e.registerCommand(_e,()=>{let c=T(),m=Je();if(_(c)){let{anchor:g,focus:h}=c,N=g.getNode(),b=h.getNode(),x=el(N),S=el(b),v=!!(x&&o.is(Uo(x))),M=!!(S&&o.is(Uo(S))),R=v!==M,O=v&&M,P=c.isBackward();if(R){let B=c.clone();if(M){let[k]=ht(o,S,S),j=k[0][0].cell,se=k[k.length-1].at(-1).cell;B.focus.set(P?j.getKey():se.getKey(),P?j.getChildrenSize():se.getChildrenSize(),"element")}q(B),Zm(e,i)}else O&&(x.is(S)||(i.setAnchorCellForSelection(f(x)),i.setFocusCellForSelection(f(S),!0),i.isSelecting||setTimeout(()=>{let{onMouseUp:B,onMouseMove:k}=l();i.isSelecting=!0,s.addEventListener("mouseup",B),s.addEventListener("mousemove",k)},0)))}else if(c&&V(c)&&c.is(m)&&c.tableKey===o.getKey()){let g=Ed(e._window);if(g&&g.anchorNode&&g.focusNode){let h=Y(g.focusNode),N=h&&!o.is(Uo(h)),b=Y(g.anchorNode),x=b&&o.is(Uo(b));if(N&&x&&g.rangeCount>0){let S=wa(g,e);S&&(S.anchor.set(o.getKey(),c.isBackward()?o.getChildrenSize():0,"element"),g.removeAllRanges(),q(S))}}}return c&&!c.is(m)&&(V(c)||V(m))&&i.tableSelection&&!i.tableSelection.is(m)?(V(c)&&c.tableKey===i.tableNodeKey?i.updateTableTableSelection(c):!V(c)&&V(m)&&m.tableKey===i.tableNodeKey&&i.updateTableTableSelection(null),!1):(i.hasHijackedSelectionStyles&&!o.isSelected()?GE(e,i):!i.hasHijackedSelectionStyles&&o.isSelected()&&Zm(e,i),!1)},ze)),i.listenersToRemove.add(e.registerCommand(Nt,()=>{let c=T();if(!_(c)||!c.isCollapsed()||!En(c,o))return!1;let m=Xm(e,c,o);return m?(Vm(m,o),!0):!1},ze)),i}function jE(o,t){o[VE]=t}function Cd(o){let t=o;for(;t!=null;){let e=t.nodeName;if(e==="TD"||e==="TH"){let n=t._cell;return n===void 0?null:n}t=t.parentNode}return null}function xn(o){let t=[],e={columns:0,domRows:t,rows:0},n=o.firstChild,r=0,i=0;for(t.length=0;n!=null;){let s=n.nodeName;if(s==="COLGROUP"||s==="CAPTION"){n=n.nextSibling;continue}if(s==="TD"||s==="TH"){let d=n,u={elem:d,hasBackgroundColor:d.style.backgroundColor!=="",highlighted:!1,x:r,y:i};n._cell=u;let f=t[i];f===void 0&&(f=t[i]=[]),f[r]=u}else{let d=n.firstChild;if(d!=null){n=d;continue}}let l=n.nextSibling;if(l!=null){r++,n=l;continue}let a=n.parentNode;if(a!=null){let d=a.nextSibling;if(d==null)break;i++,r=0,n=d}}return e.columns=r+1,e.rows=i+1,e}function Ei(o,t,e){let n=new Set(e?e.getNodes():[]);_d(t,(r,i)=>{let s=r.elem;n.has(i)?(r.highlighted=!0,Gm(o,r)):(r.highlighted=!1,Jm(o,r),s.getAttribute("style")||s.removeAttribute("style"))})}function _d(o,t){let{domRows:e}=o;for(let n=0;n{e.highlighted=!0,Gm(o,e)})}function GE(o,t){t.enableHighlightStyle(),_d(t.table,e=>{let n=e.elem;e.highlighted=!1,Jm(o,e),n.getAttribute("style")||n.removeAttribute("style")})}var jm=(o,t,e,n,r,i=-1)=>{let s=r==="forward";switch(r){case"backward":case"forward":return e!==(s?o.table.columns-1:0)?Qs(t.getCellNodeFromCordsOrThrow(e+(s?1:-1),n,o.table),s):n!==(s?o.table.rows-1:0)?Qs(t.getCellNodeFromCordsOrThrow(s?0:o.table.columns-1,n+(s?1:-1),o.table),s):s?t.selectNext():t.selectPrevious(),!0;case"up":return n!==0?Qs(t.getCellNodeFromCordsOrThrow(e,n-1,o.table),!1,i):gi(t,!1),!0;case"down":return n!==o.table.rows-1?Qs(t.getCellNodeFromCordsOrThrow(e,n+1,o.table),!0,i):gi(t,!0),!0;default:return!1}},JE=(o,t,e,n,r)=>{let i=r==="forward";switch(r){case"backward":case"forward":return e!==(i?o.table.columns-1:0)&&o.setFocusCellForSelection(t.getDOMCellFromCordsOrThrow(e+(i?1:-1),n,o.table)),!0;case"up":return n!==0?(o.setFocusCellForSelection(t.getDOMCellFromCordsOrThrow(e,n-1,o.table)),!0):!1;case"down":return n!==o.table.rows-1?(o.setFocusCellForSelection(t.getDOMCellFromCordsOrThrow(e,n+1,o.table)),!0):!1;default:return!1}};function En(o,t){if(_(o)||V(o)){let e=t.isParentOf(o.anchor.getNode()),n=t.isParentOf(o.focus.getNode());return e&&n}return!1}function Qs(o,t,e=-1){e!==-1&&Em(o,e,t)||(t?o.selectStart():o.selectEnd())}var Td="172,206,247";function Gm(o,t){let e=t.elem,n=Y(e);C(D(n),"Expected to find LexicalNode from Table Cell DOMNode"),n.getBackgroundColor()===null?e.style.setProperty("background-color",`rgb(${Td})`):e.style.setProperty("background-image",`linear-gradient(to right, rgba(${Td},0.85), rgba(${Td},0.85))`),e.style.setProperty("caret-color","transparent")}function Jm(o,t){let e=t.elem,n=Y(e);C(D(n),"Expected to find LexicalNode from Table Cell DOMNode"),n.getBackgroundColor()===null&&e.style.removeProperty("background-color"),e.style.removeProperty("background-image"),e.style.removeProperty("caret-color")}function el(o){let t=W(o,D);return D(t)?t:null}function Uo(o){let t=W(o,U);return U(t)?t:null}function Ci(o,t,e,n,r){if((e==="up"||e==="down")&&QE(o))return!1;let i=T();if(!En(i,n)){if(_(i)){if(i.isCollapsed()&&e==="backward"){let s=i.anchor.type,l=i.anchor.offset;if(s!=="element"&&!(s==="text"&&l===0))return!1;let a=i.anchor.getNode();if(!a)return!1;let d=W(a,f=>E(f)&&!f.isInline());if(!d)return!1;let u=d.getPreviousSibling();return!u||!U(u)?!1:(Tn(t),u.selectEnd(),!0)}else if(t.shiftKey&&(e==="up"||e==="down")){let s=i.focus.getNode();if(ge(s)){let l=i.getNodes()[0];if(l){let a=W(l,D);if(a&&n.isParentOf(a)){let d=n.getFirstDescendant(),u=n.getLastDescendant();if(!d||!u)return!1;let[f]=Pe(d),[c]=Pe(u),m=n.getCordsFromCellNode(f,r.table),g=n.getCordsFromCellNode(c,r.table),h=n.getDOMCellFromCordsOrThrow(m.x,m.y,r.table),N=n.getDOMCellFromCordsOrThrow(g.x,g.y,r.table);return r.setAnchorCellForSelection(h),r.setFocusCellForSelection(N,!0),!0}}return!1}else{let l=W(s,d=>E(d)&&!d.isInline());if(!l)return!1;let a=e==="down"?l.getNextSibling():l.getPreviousSibling();if(U(a)&&r.tableNodeKey===a.getKey()){let d=a.getFirstDescendant(),u=a.getLastDescendant();if(!d||!u)return!1;let[f]=Pe(d),[c]=Pe(u),m=i.clone();return m.focus.set((e==="up"?f:c).getKey(),e==="up"?0:c.getChildrenSize(),"element"),q(m),!0}}}}return!1}if(_(i)&&i.isCollapsed()){let{anchor:s,focus:l}=i,a=W(s.getNode(),D),d=W(l.getNode(),D);if(!D(a)||!a.is(d))return!1;let u=Uo(a);if(u!==n&&u!=null){let x=o.getElementByKey(u.getKey());if(x!=null)return r.table=xn(x),Ci(o,t,e,u,r)}if(e==="backward"||e==="forward"){let x=s.type,S=s.offset,v=s.getNode();if(!v)return!1;let M=i.getNodes();return M.length===1&&H(M[0])?!1:eT(x,S,v,e)?nT(t,v,n,e):!1}let f=o.getElementByKey(a.__key),c=o.getElementByKey(s.key);if(c==null||f==null)return!1;let m;if(s.type==="element")m=c.getBoundingClientRect();else{let x=window.getSelection();if(x===null||x.rangeCount===0)return!1;m=x.getRangeAt(0).getBoundingClientRect()}let g=e==="up"?a.getFirstChild():a.getLastChild();if(g==null)return!1;let h=o.getElementByKey(g.__key);if(h==null)return!1;let N=h.getBoundingClientRect();if(e==="up"?N.top>m.top-m.height:m.bottom+m.height>N.bottom){Tn(t);let x=n.getCordsFromCellNode(a,r.table);if(t.shiftKey){let S=n.getDOMCellFromCordsOrThrow(x.x,x.y,r.table);r.setAnchorCellForSelection(S),r.setFocusCellForSelection(S,!0)}else{let S=m.x-N.x;return jm(r,n,x.x,x.y,e,S)}return!0}}else if(V(i)){let{anchor:s,focus:l}=i,a=W(s.getNode(),D),d=W(l.getNode(),D),[u]=i.getNodes(),f=o.getElementByKey(u.getKey());if(!D(a)||!D(d)||!U(u)||f==null)return!1;r.updateTableTableSelection(i);let c=xn(f),m=n.getCordsFromCellNode(a,c),g=n.getDOMCellFromCordsOrThrow(m.x,m.y,c);if(r.setAnchorCellForSelection(g),Tn(t),t.shiftKey){let h=n.getCordsFromCellNode(d,c);return JE(r,u,h.x,h.y,e)}else d.selectEnd();return!0}return!1}function Tn(o){o.preventDefault(),o.stopImmediatePropagation(),o.stopPropagation()}function QE(o){let t=o.getRootElement();return t?t.hasAttribute("aria-controls")&&t.getAttribute("aria-controls")==="typeahead-menu":!1}function eT(o,t,e,n){return tT(o,e,n)||oT(o,t,e,n)}function tT(o,t,e){return o==="element"&&(e==="backward"?t.getPreviousSibling()===null:t.getNextSibling()===null)}function oT(o,t,e,n){let r=W(e,s=>E(s)&&!s.isInline());if(!r)return!1;let i=n==="backward"?t===0:t===e.getTextContentSize();return o==="text"&&i&&(n==="backward"?r.getPreviousSibling()===null:r.getNextSibling()===null)}function nT(o,t,e,n){let r=W(t,D);if(!D(r))return!1;let[i,s]=ht(e,r,r);if(!rT(i,s,n))return!1;let l=iT(t,n,e);return!l||U(l)?!1:(Tn(o),n==="backward"?l.selectEnd():l.selectStart(),!0)}function rT(o,t,e){let n=o[0][0],r=o[o.length-1][o[0].length-1],{startColumn:i,startRow:s}=t;return e==="backward"?i===n.startColumn&&s===n.startRow:i===r.startColumn&&s===r.startRow}function iT(o,t,e){let n=W(o,i=>E(i)&&!i.isInline());if(!n)return;let r=t==="backward"?n.getPreviousSibling():n.getNextSibling();return r&&U(r)?r:t==="backward"?e.getPreviousSibling():e.getNextSibling()}function Vm(o,t,e){let n=I();o==="first"?t.insertBefore(n):t.insertAfter(n),n.append(...e||[]),n.selectEnd()}function Xm(o,t,e){let n=e.getParent();if(!n)return;let r=o.getElementByKey(n.getKey());if(!r)return;let i=window.getSelection();if(!i||i.anchorNode!==r)return;let s=W(t.anchor.getNode(),N=>D(N));if(!s)return;let l=W(s,N=>U(N));if(!U(l)||!l.is(e))return;let[a,d]=ht(e,s,s),u=a[0][0],f=a[a.length-1][a[0].length-1],{startRow:c,startColumn:m}=d,g=c===u.startRow&&m===u.startColumn,h=c===f.startRow&&m===f.startColumn;return g?"first":h?"last":void 0}var qt=class{constructor(t){p(this,"rowCount",0);p(this,"columnCount",0);p(this,"cells",[]);this.buildCellMap(t)}buildCellMap(t){let e=[],n=(a,d,u)=>{typeof e[d]>"u"&&(e[d]=[]),e[d][a]=u},r=(a,d)=>!!(e[d]&&e[d][a]),i=t.getChildren().filter(a=>oe(a));for(let a=0;aD(c)),f=0;for(let c=0;ca.length));let s=[],l=e[0][0];for(let a=0;a=this.cells.length)throw new Error(`TableMap Error: Attempted to get cell ${n+1} of ${this.cells.length}`);return this.cells[n]}getCellsInRange(t){let e=Math.max(Math.min(t.fromX,t.toX),0),n=Math.min(Math.max(t.fromX,t.toX),this.columnCount-1),r=Math.max(Math.min(t.fromY,t.toY),0),i=Math.min(Math.max(t.fromY,t.toY),this.rowCount-1),s=new Set;for(let l=r;l<=i;l++)for(let a=e;a<=n;a++)s.add(this.getCellAtPosition(a,l));return[...s.values()]}getCellsInColumn(t){return this.getCellsInRange({fromX:t,toX:t,fromY:0,toY:this.rowCount-1})}getRangeForCell(t){let e=null,n=t.getKey();for(let r=0;re&&(n=r,e=r.childElementCount);return n}function Qm(o){return[...o.children].map(t=>sT(t))}function sT(o){let t=o.style.width||o.getAttribute("width");return t&&!Number.isNaN(Number(t))&&(t=t+"px"),t||""}function Sd(o,t,e){let n=o.getChildren(),r=0;for(let s of n){let l=s.getChildren().length;l>r&&(r=l)}let i=o.getColWidths();(i.length===0||i.lengthi.length&&console.error(`Attempted to set table column width for column [${t}] but only ${i.length} columns found`),i[t]=St(e),o.setColWidths(i)}function op(o,t,e){let n=t.getColWidths();if(n.length>e&&n[e].endsWith("px"))return Number(n[e].replace("px",""));let r=o.getElementByKey(t.__key);if(r){let i=tp(r);if(i&&i.children.length>e)return i.children[e].clientWidth}return 0}function np(o){let t=o.getParent();if(!oe(t))return-1;let e=0,n=t.getChildren();for(let r of n){let i=r.getColSpan()||1;if(e+=i,r.getKey()===o.getKey())break}return e-1}function rp(o,t){let e=yd(o),n=np(o);e&&n>=0&&Sd(e,n,t)}function ip(o,t){let e=yd(t),n=np(t);if(!e)return"";let r=e.getColWidths();return r.length>n?r[n]:""}function Ld(o){if(o.length===0)return null;let t=y("colgroup");for(let e of o){let n=y("col");e&&(n.style.width=e),t.append(n)}return t}function Cn(o){if(V(o))return o.getNodes().filter(n=>D(n));let t=X(o,D);return t?[t]:[]}function sp(o){let t=o.getShape(),e=Cn(o);if(e.length===0)return;let n=yd(e[0]);if(!n)return;let r=new qt(n),i=r.getCellAtPosition(t.toX,t.toY);if(!i)return;let s=t.toX+((i.getColSpan()||1)-1),l=t.toY+((i.getRowSpan()||1)-1),a=r.getCellsInRange({fromX:t.fromX,fromY:t.fromY,toX:s,toY:l});if(a.length===0)return;let d=a[0],u=Math.abs(t.fromX-s)+1,f=Math.abs(t.fromY-l)+1;for(let c=1;cD(r));for(let r of n){let i=r.getStyles();i.delete("height"),i.delete("width"),r.setStyles(i),r.clearWidth()}}}function ap(o){o.setColWidths([]),o.setStyles(new Map);for(let t of o.getChildren()){if(!oe(t))continue;t.setStyles(new Map);let e=t.getChildren().filter(n=>D(n));for(let n of e)n.setStyles(new Map),n.setBackgroundColor(null),n.clearWidth()}}function Md(o,t){e:for(let e of o.getChildren()){if(!oe(e))continue;let n=e.getChildren();for(let r of n){if(!D(r))return;if(t(r)===!1)break e}}}function dp(o){let t=null;return Md(o,e=>{let n=e.getStyles().get("padding")||"";if(t===null&&(t=n),n!==t)return t=null,!1}),t||""}function cp(o){let t=o.getFirstChild(),e=D(t)?t.getHeaderStyles()!==te.NO_STATUS:!1,n=o.getChildren();for(let r of n)D(r)&&r.setHeaderStyles(e?te.NO_STATUS:te.ROW);return!e}var Rt=class o extends Kt{constructor(e){super(e);p(this,"__colWidths",[]);p(this,"__styles",new Map)}static getType(){return"table"}static clone(e){let n=new o(e.__key);return Io(e,n),n.__colWidths=[...e.__colWidths],n.__styles=new Map(e.__styles),n}static importDOM(){return{table:e=>({conversion:lT,priority:1})}}static importJSON(e){let n=xi();return mt(e,n),n.setColWidths(e.colWidths),n.setStyles(new Map(Object.entries(e.styles))),n}exportJSON(){return{...super.exportJSON(),type:"table",version:1,colWidths:this.__colWidths,styles:Object.fromEntries(this.__styles)}}createDOM(e,n){let r=document.createElement("table");Se(r,e.theme.table),ft(r,this);let i=this.getColWidths(),s=Ld(i);s&&r.append(s);for(let[l,a]of this.__styles.entries())r.style.setProperty(l,a);return r}updateDOM(e,n){if(Df(e,this,n),this.__colWidths.join(":")!==e.__colWidths.join(":")){let r=Array.from(n.children).find(s=>s.nodeName==="COLGROUP"),i=Ld(this.__colWidths);r&&r.remove(),i&&n.prepend(i)}if(Array.from(this.__styles.values()).join(":")!==Array.from(e.__styles.values()).join(":")){n.style.cssText="";for(let[r,i]of this.__styles.entries())n.style.setProperty(r,i)}return!1}exportDOM(e){return{...super.exportDOM(e),after:n=>{if(!n)return;let r=n.cloneNode(),i=document.createElement("tbody");if(he(n))for(let s of Array.from(n.children))s.nodeName==="TR"?i.append(s):s.nodeName==="CAPTION"?r.insertBefore(s,r.firstChild):r.append(s);return r.append(i),r}}}canBeEmpty(){return!1}isShadowRoot(){return!0}setColWidths(e){let n=this.getWritable();n.__colWidths=e}getColWidths(){return[...this.getLatest().__colWidths]}getStyles(){let e=this.getLatest();return new Map(e.__styles)}setStyles(e){let n=this.getWritable();n.__styles=new Map(e)}getCordsFromCellNode(e,n){let{rows:r,domRows:i}=n;for(let s=0;s{if(!d)return;let{elem:u}=d;return Y(u)===e});if(a!==-1)return{x:a,y:s}}throw new Error("Cell not found in table.")}getDOMCellFromCords(e,n,r){let{domRows:i}=r,s=i[n];if(s==null)return null;let l=e{let r=new o;return n.id&&r.setId(n.id),{node:r}},priority:3}}}}exportJSON(){return{...super.exportJSON(),type:"horizontal-rule",version:1,id:this.__id}}static importJSON(e){let n=wd();return n.setId(e.id),n}};function wd(){return new pr}function up(o){return o instanceof pr}var gr=class o extends ct{constructor(){super(...arguments);p(this,"__user_id",0);p(this,"__user_name","");p(this,"__user_slug","")}static getType(){return"mention"}static clone(e){let n=new o(e.__key);return n.__user_id=e.__user_id,n.__user_name=e.__user_name,n.__user_slug=e.__user_slug,n}setUserDetails(e,n,r){let i=this.getWritable();i.__user_id=e,i.__user_name=n,i.__user_slug=r}hasUserSet(){return this.__user_id>0}isInline(){return!0}isParentRequired(){return!0}decorate(e,n){return{type:"mention",getNode:()=>this}}createDOM(e,n){let r=document.createElement("a");return r.setAttribute("target","_blank"),r.setAttribute("href",window.baseUrl("/user/"+this.__user_slug)),r.setAttribute("data-mention-user-id",String(this.__user_id)),r.setAttribute("title","@"+this.__user_name),r.textContent="@"+this.__user_name,r}updateDOM(e){return e.__user_id!==this.__user_id}static importDOM(){return{a(e){return e.hasAttribute("data-mention-user-id")?{conversion:n=>{let r=new o;return r.setUserDetails(Number(n.getAttribute("data-mention-user-id")||"0"),n.innerText.replace(/^@/,""),n.getAttribute("href")?.split("/user/")[1]||""),{node:r,after(i){return[]}}},priority:4}:null}}}exportJSON(){return{type:"mention",version:1,user_id:this.__user_id,user_name:this.__user_name,user_slug:this.__user_slug}}static importJSON(e){return vd(e.user_id,e.user_name,e.user_slug)}};function vd(o,t,e){let n=new gr;return n.setUserDetails(o,t,e),n}function fp(o){return o instanceof gr}function mp(){return[gn,lr,dr,Bo,Ut,Rt,po,mo,mr,an,pr,cr,pn,Po,$o,at,un]}function Dd(){return[Bo,Ut,at,un]}function pp(){return[...Dd(),gr]}function gp(o){let t=[an,pn,Po],e=n=>{for(let[r,i]of n)if(i==="destroyed"){let s=o.manager.getDecoratorByNodeKey(r);s&&s.teardown()}};for(let n of t)o.editor.registerMutationListener(n,r=>e(r))}var hp='';var tl=class extends ne{constructor(e,n){super([new Ss(e.form)]);p(this,"definition");p(this,"key");p(this,"originalFocus",null);this.definition=e,this.key=n}show(e){this.originalFocus=document.activeElement;let n=this.getDOMElement();document.body.append(n);let r=this.getForm();r.setValues(e),r.setOnCancel(this.hide.bind(this)),r.setOnSuccessfulSubmit(this.hide.bind(this)),this.getContext().manager.setModalActive(this.key,this),r.focusOnFirst()}hide(){this.getContext().manager.setModalInactive(this.key),this.teardown(),this.originalFocus===this.getContext().editorDOM?this.getContext().editor.focus():this.originalFocus instanceof HTMLElement&&this.originalFocus.isConnected&&this.originalFocus.focus()}getForm(){return this.children[0]}buildDOM(){let e=y("button",{class:"editor-modal-close",type:"button",title:this.trans("Close")});e.innerHTML=hp,e.addEventListener("click",this.hide.bind(this));let n=y("div",{class:"editor-modal editor-form-modal"},[y("div",{class:"editor-modal-header"},[y("div",{class:"editor-modal-title"},[this.trans(this.definition.title)]),e]),y("div",{class:"editor-modal-body"},[this.getForm().getDOMElement()])]),r=y("div",{class:"editor-modal-wrapper"},[n]),i=!1;return n.addEventListener("mousedown",()=>{i=!0}),r.addEventListener("mouseup",()=>{window.setTimeout(()=>{i=!1},10)}),r.addEventListener("click",s=>{!i&&!n.contains(s.target)&&this.hide()}),r.addEventListener("keydown",s=>{s.key==="Escape"&&this.hide()}),r}};var ol=class extends ne{constructor(e,n){super(n);p(this,"target");this.target=e}buildDOM(){let e=y("div",{class:"editor-context-toolbar"},this.getChildren().map(n=>n.getDOMElement()));return e.addEventListener("keydown",n=>{n.key==="Escape"&&(n.preventDefault(),n.stopPropagation(),this.getContext().editor.focus())},{signal:this.abortController.signal}),e}updatePosition(e=[]){let n=this.getContext(),r=n.scrollDOM.getBoundingClientRect(),i=this.target.getBoundingClientRect(),s=this.getDOMElement(),l=s.getBoundingClientRect(),a=i.bottom>r.top&&i.topr.bottom||this.willOverlapWithOthersIfBelow(u,e);s.classList.toggle("is-above",f),f&&(u.y=i.top-6-l.height),s.style.top=u.y+"px",s.style.left=u.x+"px";let c=1,m=this.target.parentElement;for(;m&&m!==n.editorDOM;)m=m.parentElement,c++;return s.style.zIndex=`${c}`,s.getBoundingClientRect()}insert(e){this.addChildren(...e),this.getDOMElement().append(...e.map(r=>r.getDOMElement()))}willOverlapWithOthersIfBelow(e,n){for(let r of n){if(r===null)continue;let i=e.x??0,s=e.y??0,l=i+(e.width??0),a=s+(e.height??0);if(ir.left&&sr.top)return!0}return!1}};var hr=class{constructor(t,e=!1){p(this,"rect");p(this,"isRTL");this.rect=t.getBoundingClientRect(),this.isRTL=e}get blockStart(){return this.rect.top}get inlineStart(){return this.isRTL?window.innerWidth-this.rect.right:this.rect.left}get blockEnd(){return this.rect.bottom}get inlineEnd(){return this.isRTL?window.innerWidth-this.rect.left:this.rect.right}get width(){return this.rect.width}get height(){return this.rect.height}};function Np(){return new hr(document.documentElement,!1)}function dT(o,t,e,n){let r=new hr(t,n),i=new hr(o,n),s=Np();if(o.style.position="fixed",e){let l=r.inlineEnd;r.inlineEnd+i.width>s.width&&(l=Math.max(r.inlineStart-i.width,0)),o.style.top=r.blockStart+"px",o.style.insetInlineStart=l+"px"}else{let l=r.inlineStart+i.width>s.width,a=r.inlineStart;l&&(a=Math.max(r.inlineEnd-i.width,0)),o.style.top=r.blockEnd+"px",o.style.insetInlineStart=a+"px"}}var nl=class{constructor(){p(this,"dropdownOptions",new WeakMap);p(this,"openDropdowns",new Set);p(this,"isRTL",!1);this.onMenuMouseOver=this.onMenuMouseOver.bind(this),this.onWindowClick=this.onWindowClick.bind(this),window.addEventListener("click",this.onWindowClick)}setIsRTL(t){this.isRTL=t}teardown(){window.removeEventListener("click",this.onWindowClick)}onWindowClick(t){let e=t.target;this.closeAllNotContainingElement(e)}closeAllNotContainingElement(t){for(let e of this.openDropdowns)e.parentElement?.contains(t)||this.closeDropdown(e)}onMenuMouseOver(t){let e=t.target;this.closeAllNotContainingElement(e)}closeAll(){for(let t of this.openDropdowns)this.closeDropdown(t)}closeDropdown(t){t.hidden=!0,t.style.removeProperty("position"),t.style.removeProperty("inset-inline-start"),t.style.removeProperty("top"),this.openDropdowns.delete(t),t.removeEventListener("mouseover",this.onMenuMouseOver);let e=this.getOptions(t).onClose;e&&e()}openDropdown(t){let{toggle:e,showAside:n,onOpen:r}=this.getOptions(t);t.hidden=!1,dT(t,e,!!n,this.isRTL),this.openDropdowns.add(t),t.addEventListener("mouseover",this.onMenuMouseOver),r&&r()}getOptions(t){let e=this.dropdownOptions.get(t);if(!e)throw new Error("Can't find options for dropdown menu");return e}handle(t){let{menu:e,toggle:n,showOnHover:r}=t;this.dropdownOptions.set(e,t);let i=s=>{e.hasAttribute("hidden")?this.openDropdown(e):this.closeDropdown(e)};n.addEventListener("click",i),r&&n.addEventListener("mouseenter",()=>{this.openDropdown(e)})}};var rl=class{constructor(){p(this,"dropdowns",new nl);p(this,"modalDefinitionsByKey",{});p(this,"activeModalsByKey",{});p(this,"decoratorConstructorsByType",{});p(this,"decoratorInstancesByNodeKey",{});p(this,"context",null);p(this,"toolbar",null);p(this,"contextToolbarDefinitionsByKey",{});p(this,"activeContextToolbars",[]);p(this,"selectionChangeHandlers",new Set);p(this,"layoutUpdateHandlers",new Set);p(this,"domEventAbortController",new AbortController);p(this,"teardownCallbacks",[])}setContext(t){this.context=t,this.setupEventListeners(),this.setupEditor(t.editor,t),this.dropdowns.setIsRTL(this.context.manager.getDefaultDirection()==="rtl")}getContext(){if(this.context===null)throw new Error("Context attempted to be used without being set");return this.context}triggerStateUpdateForElement(t){t.updateState({selection:null,editor:this.getContext().editor})}registerModal(t,e){this.modalDefinitionsByKey[t]=e}createModal(t){let e=this.modalDefinitionsByKey[t];if(!e)throw new Error(`Attempted to show modal of key [${t}] but no modal registered for that key`);let n=new tl(e,t);return n.setContext(this.getContext()),n}setModalActive(t,e){this.activeModalsByKey[t]=e}setModalInactive(t){delete this.activeModalsByKey[t]}getActiveModal(t){return this.activeModalsByKey[t]}registerDecoratorType(t,e){this.decoratorConstructorsByType[t]=e}getDecorator(t,e){if(this.decoratorInstancesByNodeKey[e])return this.decoratorInstancesByNodeKey[e];let n=this.decoratorConstructorsByType[t];if(!n)throw new Error(`Attempted to use decorator of type [${t}] but not decorator registered for that type`);let r=new n(this.getContext());return this.decoratorInstancesByNodeKey[e]=r,r}getDecoratorByNodeKey(t){return this.decoratorInstancesByNodeKey[t]||null}setToolbar(t){this.toolbar&&this.toolbar.teardown(),this.toolbar=t,t.setContext(this.getContext()),this.getContext().containerDOM.prepend(t.getDOMElement())}getToolbar(){return this.toolbar}registerContextToolbar(t,e){this.contextToolbarDefinitionsByKey[t]=e}triggerStateUpdate(t){fm(t.editor,t.selection),this.toolbar?.updateState(t),this.updateContextToolbars(t);for(let e of this.activeContextToolbars)e.updateState(t);this.triggerSelectionChange(t.selection)}triggerStateRefresh(){let t=this.getContext().editor,e={editor:t,selection:de(t)};this.triggerStateUpdate(e),this.updateContextToolbars(e)}triggerFutureStateRefresh(){requestAnimationFrame(()=>{this.getContext().editor.getEditorState().read(()=>{this.triggerStateRefresh()})})}triggerSelectionChange(t){if(t)for(let e of this.selectionChangeHandlers)e(t)}onSelectionChange(t){this.selectionChangeHandlers.add(t)}offSelectionChange(t){this.selectionChangeHandlers.delete(t)}onLayoutUpdate(t){this.layoutUpdateHandlers.add(t)}offLayoutUpdate(t){this.layoutUpdateHandlers.delete(t)}triggerLayoutUpdate(){window.requestAnimationFrame(()=>{let t=[];for(let e of this.activeContextToolbars){let n=e.updatePosition(t);t.push(n)}for(let e of this.layoutUpdateHandlers)e()})}getDefaultDirection(){return this.getContext().options.textDirection==="rtl"?"rtl":"ltr"}onTeardown(t){this.teardownCallbacks.push(t)}teardown(){this.domEventAbortController.abort("teardown");for(let[t,e]of Object.entries(this.activeModalsByKey))e.teardown();for(let[t,e]of Object.entries(this.decoratorInstancesByNodeKey))e.teardown();this.toolbar&&this.toolbar.teardown();for(let t of this.activeContextToolbars)t.teardown();this.dropdowns.teardown();for(let t of this.teardownCallbacks)t()}focus(){this.getContext().editorDOM.focus(),this.getContext().editor.focus()}updateContextToolbars(t){for(let l=this.activeContextToolbars.length-1;l>=0;l--)this.activeContextToolbars[l].teardown(),this.activeContextToolbars.splice(l,1);let e=(t.selection?.getNodes()||[])[0]||null;if(!e)return;let n=t.editor.getElementByKey(e.getKey());if(!n)return;let r=Object.keys(this.contextToolbarDefinitionsByKey),i=new Map;for(let l of r){let a=this.contextToolbarDefinitionsByKey[l],d=n.closest(a.selector)||n.querySelector(a.selector);if(d){let u=a.displayTargetLocator?a.displayTargetLocator(d):d;i.has(u)||i.set(u,[]),i.get(u).push(...a.content())}}let s=[];for(let[l,a]of i){let d=new ol(l,a);d.setContext(this.getContext()),this.activeContextToolbars.push(d),this.getContext().containerDOM.append(d.getDOMElement());let u=d.updatePosition(s);s.push(u)}}setupEditor(t,e){t.setUiContext(e);let n=r=>{t.getEditorState().read(()=>{let i=Object.keys(r);for(let s of i){let l=t.getElementByKey(s);if(!l)continue;let a=r[s],d=this.getDecorator(a.type,s);d.setNode(a.getNode());let u=d.render(l);u&&l.append(u)}})};t.registerDecoratorListener(n),t.registerUpdateListener(({editorState:r,prevEditorState:i})=>{!i._selection?.is(r._selection)&&t.update(()=>{let l=T();this.triggerStateUpdate({editor:t,selection:l})})})}setupEventListeners(){let t=this.triggerLayoutUpdate.bind(this);window.addEventListener("scroll",t,{capture:!0,passive:!0,signal:this.domEventAbortController.signal}),window.addEventListener("resize",t,{passive:!0,signal:this.domEventAbortController.signal})}};function il(o,t,e){let n=y("div",{contenteditable:"true",class:`editor-content-area ${e.editorClass||""}`}),r=y("div",{class:"editor-content-wrap"},[n]);o.append(r),o.classList.add("editor-container"),o.setAttribute("dir",e.textDirection),e.darkMode&&o.classList.add("editor-dark");let i=new rl,s={editor:t,containerDOM:o,editorDOM:n,scrollDOM:r,manager:i,translate(l){return e.translations[l]||l},error(l){let a=l instanceof Error?l.message:l;window.$events.error(a)},options:e};return i.setContext(s),s}var Nr=class{constructor(t,e,n){p(this,"container");p(this,"dragTargetSelector");p(this,"options");p(this,"startX",0);p(this,"startY",0);p(this,"target",null);this.container=t,this.dragTargetSelector=e,this.options=n,this.onMouseDown=this.onMouseDown.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.container.addEventListener("mousedown",this.onMouseDown)}teardown(){this.container.removeEventListener("mousedown",this.onMouseDown),this.container.removeEventListener("mouseup",this.onMouseUp),this.container.removeEventListener("mousemove",this.onMouseMove)}onMouseDown(t){this.target=t.target.closest(this.dragTargetSelector),this.target&&(this.startX=t.screenX,this.startY=t.screenY,window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("mouseup",this.onMouseUp),this.options.down&&this.options.down(t,this.target))}onMouseMove(t){this.options.move&&this.target&&this.options.move(t,this.target,{x:t.screenX-this.startX,y:t.screenY-this.startY})}onMouseUp(t){window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("mouseup",this.onMouseUp),this.options.up&&this.target&&this.options.up(t,this.target,{x:t.screenX-this.startX,y:t.screenY-this.startY})}};var Od=class{constructor(t,e){p(this,"editor");p(this,"editScrollContainer");p(this,"markerDom",null);p(this,"mouseTracker",null);p(this,"dragging",!1);p(this,"targetCell",null);p(this,"xMarkerAtStart",!1);p(this,"yMarkerAtStart",!1);p(this,"activeInTable",!1);this.editor=t,this.editScrollContainer=e,this.setupListeners()}teardown(){this.editScrollContainer.removeEventListener("mousemove",this.onCellMouseMove),window.removeEventListener("scroll",this.onScrollOrResize,{capture:!0}),window.removeEventListener("resize",this.onScrollOrResize),this.mouseTracker&&this.mouseTracker.teardown()}setupListeners(){this.onTableMouseOver=this.onTableMouseOver.bind(this),this.onCellMouseMove=this.onCellMouseMove.bind(this),this.onScrollOrResize=this.onScrollOrResize.bind(this),this.editScrollContainer.addEventListener("mouseover",this.onTableMouseOver,{passive:!0}),window.addEventListener("scroll",this.onScrollOrResize,{capture:!0,passive:!0}),window.addEventListener("resize",this.onScrollOrResize,{passive:!0})}onScrollOrResize(){this.updateCurrentMarkerTargetPosition()}onTableMouseOver(t){if(this.dragging)return;let e=t.target.closest("table");e&&!this.activeInTable?(this.editScrollContainer.addEventListener("mousemove",this.onCellMouseMove,{passive:!0}),this.onCellMouseMove(t),this.activeInTable=!0):!e&&this.activeInTable&&(this.editScrollContainer.removeEventListener("mousemove",this.onCellMouseMove),this.hideMarkers(),this.activeInTable=!1)}onCellMouseMove(t){let e=t.target.closest("td,th");if(!e||this.dragging)return;let n=e.getBoundingClientRect(),r=n.left+n.width/2,i=n.top+n.height/2;this.targetCell=e,this.xMarkerAtStart=t.clientX<=r,this.yMarkerAtStart=t.clientY<=i;let s=this.xMarkerAtStart?n.left:n.right,l=this.yMarkerAtStart?n.top:n.bottom;this.updateMarkersTo(e,s,l)}updateMarkersTo(t,e,n){let r=this.getMarkers(),i=t.closest("table"),s=i.querySelector("caption"),l=i.getBoundingClientRect(),a=this.editScrollContainer.getBoundingClientRect(),d=l.top;s&&(d=s.getBoundingClientRect().bottom);let u=Math.max(d,a.top),c=Math.min(l.bottom,a.bottom)-u;r.x.style.left=e+"px",r.x.style.top=u+"px",r.x.style.height=c+"px",r.y.style.top=n+"px",r.y.style.left=l.left+"px",r.y.style.width=l.width+"px",r.y.hidden=na.bottom,r.x.hidden=l.top>a.bottom||l.bottom0?d-=1:e.xMarkerAtStart&&d===0&&(u=-u),e.editor.update(()=>{let f=Y(a);if(f instanceof Rt){let c=op(e.editor,f,d),m=Math.max(c+u,10);Sd(f,d,m)}})}if(r==="top"&&e.targetCell){let d=e.targetCell;e.editor.update(()=>{let f=Y(d)?.getParent(),c=f?.getIndexWithinParent()||0,m=l.y;e.yMarkerAtStart&&c>0?c-=1:e.yMarkerAtStart&&c===0&&(m=-m);let g=f?.getParent()?.getChildren()[c];if(g instanceof po){let h=g.getHeight()||0,N=Math.max(h+m,10);g.setHeight(N)}})}}})}getTargetCellColumnIndex(){let t=this.targetCell;if(t===null)return-1;let e=0,n=t.parentElement;for(let r of n?.children||[]){let i=Number(r.getAttribute("colspan"));if((Number.isNaN(i)||i<1)&&(i=1),e+=i,r===t)return e-1}return-1}};function xp(o,t){let e=new Od(o,t);return()=>{e.teardown()}}function sl(o){return o.html||""}function Ep(o){window.$events.listen("editor::replace",e=>{let n=sl(e);Fo(o,n)}),window.$events.listen("editor::append",e=>{let n=sl(e);vs(o,n)}),window.$events.listen("editor::prepend",e=>{let n=sl(e);Ds(o,n)}),window.$events.listen("editor::insert",e=>{let n=sl(e);Os(o,n)}),window.$events.listen("editor::focus",()=>{fo(o)}),window.$events.listen("editor::focus-heading",({index:e})=>{Lm(o,e)});let t=!0;o.registerUpdateListener(({dirtyElements:e,dirtyLeaves:n,editorState:r,prevEditorState:i})=>{(e.size>0||n.size>0)&&(t?t=!1:window.$events.emit("editor-html-change",""))})}var ll=class{constructor(t){p(this,"data");this.data=t}hasItems(){return!!this.data&&!!this.data.types&&this.data.types.length>0}containsTabularData(){let t=this.data.getData("text/rtf");return!!t&&t.includes("\\trowd")}getImages(){return this.getFiles().filter(t=>t.type.includes("image"))}getFiles(){let{files:t}=this.data;return[...t]}};var Ad=new WeakMap;function Tp(o,t,e){let n=$m(t,e);if(n&&L(n.node)){let r=n.node.select(n.offset,n.offset);q(r)}else n&>(n.node);gm(o),n&&!H(n.node)&&!n.node?.getTextContent()&&n.node.remove()}async function cT(o,t,e){let i=((await window.$http.get(`/templates/${t}`)).data||{html:""}).html||"";o.update(()=>{let s=ar(o,i);Tp(s,e,o)})}function uT(o,t,e,n){o.update(()=>{if(e){let i=T();if(_(i)){let s=Ko(i.getNodes());s?s.remove():i.removeText();let l=pt(i);for(let a of l)a.isEmpty()&&a.remove()}}let r=ai(o,t);Tp(r,n,o)})}function Cp(o,t){let e=new ll(o),n=!1;if(!e.hasItems()||e.containsTabularData())return n;let r=e.getImages();return r.length>0&&(n=!0),t.editor.update(async()=>{for(let i of r){let s=window.baseUrl("/loading.gif"),l=dn(s),a=I();a.append(l),Te([a]);try{let d=await bm(i,t.options.pageId),u=d.name.replace(/"/g,"");t.editor.update(()=>{let f=dn(d.thumbs?.display||"",{alt:u}),c=Ot(d.url,{target:"_blank"});c.append(f),l.replace(c)})}catch(d){t.editor.update(()=>{l.remove(!1)}),window.$events.error(d?.data?.message||t.options.translations.imageUploadErrorText),console.error(d)}}}),n}function fT(o,t){let e=/https?:\/\/([^?#]*?)\.(png|jpeg|jpg|gif|webp|bmp|avif)/i,n=o.getData("text/plain");return n&&e.test(n)?(t.editor.update(()=>{let r=dn(n);Te([r]),r.select()}),!0):!1}function mT(o){let t=o.editor;return e=>{let n=Ad.has(t);Ad.delete(t);let r=e.dataTransfer?.getData("bookstack/template")||"";if(r)return cT(t,r,e),e.preventDefault(),e.stopPropagation(),!0;let i=e.dataTransfer?.getData("text/html")||"";return i?(uT(t,i,n,e),e.preventDefault(),e.stopPropagation(),!0):e.dataTransfer&&Cp(e.dataTransfer,o)?(e.preventDefault(),e.stopPropagation(),!0):!1}}function pT(o){return t=>{if(!t.clipboardData)return!1;let e=fT(t.clipboardData,o)||Cp(t.clipboardData,o);return e&&t.preventDefault(),e}}function gT(o){return t=>(Ad.set(o.editor,t),o.editor.update(()=>{let e=T();if(_(e)){let n=Ko(e.getNodes());if(n){let i=gs(o.editor,n);t.dataTransfer?.setData("text/html",i);return}e.extract();let r=Ks(o.editor,e);t.dataTransfer?.setData("text/html",r)}}),!1)}function bp(o){let t=mT(o),e=pT(o),n=gT(o),r=o.editor.registerCommand(Xo,t,Ue),i=o.editor.registerCommand(xo,e,Ue),s=o.editor.registerCommand(jo,n,Ue);return o.scrollDOM.addEventListener("drop",t),()=>{r(),i(),s(),o.scrollDOM.removeEventListener("drop",t)}}var Rd=class{constructor(t,e){p(this,"editorContainer");p(this,"editor");this.editor=t,this.editorContainer=e,this.setupListeners()}setupListeners(){this.handleClick=this.handleClick.bind(this),this.editorContainer.addEventListener("click",this.handleClick)}handleClick(t){let e=t.target;e instanceof HTMLElement&&e.nodeName==="LI"&&e.classList.contains("task-list-item")&&(this.handleTaskListItemClick(e,t),t.preventDefault())}handleTaskListItemClick(t,e){let n=t.getBoundingClientRect();e.clientX<=n.right&&e.clientX>=n.left&&e.clientY>=n.top&&e.clientY<=n.bottom||this.editor.update(()=>{let i=Y(t);K(i)&&i.setChecked(!i.getChecked())})}teardown(){this.editorContainer.removeEventListener("click",this.handleClick)}};function _p(o,t){let e=new Rd(o,t);return()=>{e.teardown()}}var kd=class{constructor(t){p(this,"editor");p(this,"tableSelections",new Map);p(this,"unregisterMutationListener",()=>{});this.editor=t,this.init()}init(){this.unregisterMutationListener=this.editor.registerMutationListener(Rt,t=>{for(let[e,n]of t)if(n==="created")this.editor.getEditorState().read(()=>{let r=ee(e);U(r)&&this.initializeTableNode(r)});else if(n==="destroyed"){let r=this.tableSelections.get(e);r!==void 0&&(r.removeListeners(),this.tableSelections.delete(e))}})}initializeTableNode(t){let e=t.getKey(),n=this.editor.getElementByKey(e);if(n&&!this.tableSelections.has(e)){let r=bd(t,n,this.editor,!0);this.tableSelections.set(e,r)}}teardown(){this.unregisterMutationListener();for(let[,t]of this.tableSelections)t.removeListeners()}};function yp(o){let t=new kd(o);return()=>{t.teardown()}}function al(o,t){return Ps(o.editor,t),o.manager.triggerFutureStateRefresh(),!0}function ho(o){return(t,e)=>(o(t),e.manager.triggerFutureStateRefresh(),!0)}function bi(o,t){return o.dispatchCommand(Be,t),!0}var Sp={"meta+8":o=>bi(o,"code"),"meta+shift+e":o=>bi(o,"code"),"meta+b":o=>bi(o,"bold"),"meta+i":o=>bi(o,"italic"),"meta+u":o=>bi(o,"underline"),"meta+o":ho(o=>mi(o,"number")),"meta+p":ho(o=>mi(o,"bullet")),"meta+k":(o,t)=>(o.getEditorState().read(()=>{let e=X(T(),We);Hs(e,t)}),!0),"meta+shift+k":(o,t)=>(o.getEditorState().read(()=>{let n=T()?.getTextContent()||"";Ms(r=>{Bs(o,{text:r.name,title:r.link,target:"",url:r.link})},n)}),!0)},hT={...Sp,"meta+s":()=>(window.$events.emit("editor-save-draft"),!0),"meta+enter":()=>(window.$events.emit("editor-save-page"),!0),"meta+1":(o,t)=>al(t,"h2"),"meta+2":(o,t)=>al(t,"h3"),"meta+3":(o,t)=>al(t,"h4"),"meta+4":(o,t)=>al(t,"h5"),"meta+5":ho(ui),"meta+d":ho(ui),"meta+6":ho(fi),"meta+7":ho(pi),"meta+e":ho(pi),"meta+q":ho(fi),"meta+9":ho(wm)};function NT(o,t){let n=xT(t?hT:Sp);return r=>{let i=ET(r);for(let s of i)if(n[s]){n[s](o.editor,o)&&(r.stopPropagation(),r.preventDefault());break}}}function xT(o){let t={},e=Object.keys(o);for(let n of e){let r=o[n];t[n]=r;let i=n.split("+"),s=i.pop()||"";if(s.match(/^[a-zA-Z]$/)){let l=s.toUpperCase().charCodeAt(0);i.push(String(l));let a=i.join("+");t[a]=r}}return t}function ET(o){let e=[(Lp()?o.metaKey:o.ctrlKey)?"meta":"",o.shiftKey?"shift":"",o.key],n=[e.filter(Boolean).join("+").toLowerCase()],r=o.keyCode||0;if(r>=65&&r<=90){let i=[...e];i.pop(),i.push(String(r)),n.push(i.filter(Boolean).join("+").toLowerCase())}return n}function Lp(){return window.navigator.userAgent.includes("Mac OS X")}function TT(o){o.registerCommand(ve,t=>Lp()?t?.metaKey||!1:t?.ctrlKey||!1,Ue)}function dl(o,t){let e=NT(o,t);return TT(o.editor),o.editor.registerRootListener((n,r)=>{n?.addEventListener("keydown",e),r?.removeEventListener("keydown",e)})}function CT(o){return ke(o)||vt(o)}var Id=class{constructor(t){p(this,"context");p(this,"resizerDOM",null);p(this,"targetNode",null);p(this,"scrollContainer");p(this,"mouseTracker",null);p(this,"activeSelection","");p(this,"loadAbortController",new AbortController);this.context=t,this.scrollContainer=t.scrollDOM,this.onSelectionChange=this.onSelectionChange.bind(this),this.onLayoutUpdate=this.onLayoutUpdate.bind(this),this.onTargetDOMLoad=this.onTargetDOMLoad.bind(this),t.manager.onSelectionChange(this.onSelectionChange),t.manager.onLayoutUpdate(this.onLayoutUpdate)}onSelectionChange(t){let e=t?.getNodes()||[];if(this.activeSelection&&this.hide(),e.length===1&&CT(e[0])){let n=e[0],r=this.getTargetDOM(n);r&&this.showForNode(n,r)}}onLayoutUpdate(){this.updateResizerPosition()}getTargetDOM(t){if(t==null)return null;let e=this.context.editor.getElementByKey(t.__key);return e&&e.nodeName==="SPAN"&&(e=e.firstElementChild),e}onTargetDOMLoad(){this.updateResizerPosition()}teardown(){this.context.manager.offSelectionChange(this.onSelectionChange),this.context.manager.offLayoutUpdate(this.onLayoutUpdate),this.hide()}showForNode(t,e){this.resizerDOM=this.buildDOM(),this.targetNode=t;let n=y("span",{class:"editor-node-resizer-ghost"});ke(t)&&(n=y("img",{src:e.getAttribute("src"),class:"editor-node-resizer-ghost"})),this.resizerDOM.append(n),this.context.scrollDOM.append(this.resizerDOM),this.updateResizerPosition(),this.mouseTracker=this.setupTracker(this.resizerDOM,t,e),this.activeSelection=t.getKey(),e.matches("img, embed, iframe, object")&&(this.loadAbortController=new AbortController,e.addEventListener("load",this.onTargetDOMLoad,{signal:this.loadAbortController.signal}))}updateResizerPosition(){let t=this.getTargetDOM(this.targetNode);if(!this.resizerDOM||!t)return;let e=this.scrollContainer.getBoundingClientRect(),n=t.getBoundingClientRect(),r=n.top-(e.top-this.scrollContainer.scrollTop),i=n.left-e.left;this.resizerDOM.style.top=`${r}px`,this.resizerDOM.style.left=`${i}px`,this.resizerDOM.style.width=n.width+"px",this.resizerDOM.style.height=n.height+"px"}updateDOMSize(t,e){this.resizerDOM&&(this.resizerDOM.style.width=t+"px",this.resizerDOM.style.height=e+"px")}hide(){this.mouseTracker?.teardown(),this.resizerDOM?.remove(),this.targetNode=null,this.activeSelection="",this.loadAbortController.abort()}buildDOM(){let e=["nw","ne","se","sw"].map(n=>y("div",{class:`editor-node-resizer-handle ${n}`}));return y("div",{class:"editor-node-resizer"},e)}setupTracker(t,e,n){let r=0,i=0,s=0,l=!1,a=this,d=!1,u=!1,f=c=>{let m=c.x;d&&(m=0-m);let g=c.y;u&&(g=0-g);let h=Math.sqrt(Math.pow(Math.abs(m),2)+Math.pow(Math.abs(g),2)),b=m+g>0?h:0-h,x=Math.max(5,Math.round(r+b)),S=Math.round(x*s);return{width:x,height:S}};return new Nr(t,".editor-node-resizer-handle",{down(c,m){a.resizerDOM?.classList.add("active"),a.context.editor.getEditorState().read(()=>{let g=n.getBoundingClientRect();r=e.getWidth()||g.width,i=e.getHeight()||g.height,e.getHeight()&&(l=!0),s=i/r}),d=m.classList.contains("nw")||m.classList.contains("sw"),u=m.classList.contains("nw")||m.classList.contains("ne")},move(c,m,g){let h=f(g);a.updateDOMSize(h.width,h.height)},up(c,m,g){let h=f(g);a.context.editor.update(()=>{e.setWidth(h.width),e.setHeight(l?h.height:0)},{onUpdate:()=>{requestAnimationFrame(()=>{a.context.manager.triggerLayoutUpdate(),a.updateResizerPosition()})}}),a.resizerDOM?.classList.remove("active")}})}};function Mp(o){let t=new Id(o);return()=>{t.teardown()}}function cl(o){let t=o.getChildren();for(let e of t)o.insertBefore(e);o.remove()}function wp(o){let t=de(o)?.getNodes()||[];mn(t)&&o.update(()=>{t[0].remove()})}function bT(o,t){let e=de(o)?.getNodes()||[];if(!mn(e))return!1;let n=e[0],r=ot(n)||n,i=t?.shiftKey===!0,s=null;return K(r)?s=()=>{let l=z(""),a=et(),d=n.getParent(),u=n;We(d)&&_s(n)&&(u=d);let f=i?u.insertBefore:u.insertAfter;f.bind(u)(l),f.bind(u)(a),l.selectStart()}:r&&(s=()=>{let l=I();(i?r.insertBefore:r.insertAfter).bind(r)(l),l.select()}),s?(requestAnimationFrame(()=>o.update(s)),t?.preventDefault(),!0):!1}function vp(o,t,e=!0){let n=de(o)?.getNodes()||[];if(!mn(n))return!1;t?.preventDefault();let r=n[0];return o.update(()=>{gi(r,e)}),!0}function _T(o,t){let e=Dp(o);return e===null||e.detailsSibling?!1:(o.update(()=>{let n=I();e.parentDetails.insertAfter(n),n.select()}),t?.preventDefault(),!0)}function yT(o,t){let e=Dp(o);if(e===null||e.parentBlock.getTextContent()!=="")return!1;t?.preventDefault();let n=e.parentDetails.getNextSibling();return o.update(()=>{if(n)n.selectStart();else{let r=I();e.parentDetails.insertAfter(r),r.select()}e.parentBlock.remove()}),!0}function Dp(o){let e=de(o)?.getNodes()[0];if(!e)return null;let n=ot(e),r=zt(e,ae);if(!ae(r)||n===null||n.getKey()!==r.getLastChild()?.getKey())return null;let i=r.getNextSibling();return{parentDetails:r,parentBlock:n,detailsSibling:i}}function ST(o,t){let e=T(),n=e?.getNodes()||[];if(n.length!==1)return!1;let r=ot(n[0]);if(!r)return!1;let i=r.getParent(),s=e?.getStartEndPoints();return s&&ae(i)&&s[0].offset===0&&r.getIndexWithinParent()===0?(t.preventDefault(),o.editor.update(()=>{cl(i),r.selectStart(),o.manager.triggerLayoutUpdate()}),!0):!1}function LT(o){if(o.length!==1)return!1;let t=o[0];return K(t)||K(t.getParent())}function MT(o,t){let e=t?.shiftKey?-40:40,r=T()?.getNodes()||[];return r.length>1||LT(r)?(o.update(()=>{ei(o,e)}),t?.preventDefault(),!0):!1}function Op(o){let t=o.editor.registerCommand(jt,l=>(wp(o.editor),ST(o,l)),Re),e=o.editor.registerCommand(Gt,()=>(wp(o.editor),!1),Re),n=o.editor.registerCommand(ve,l=>bT(o.editor,l)||yT(o.editor,l),Re),r=o.editor.registerCommand(Vo,l=>MT(o.editor,l),Re),i=o.editor.registerCommand(Vt,l=>vp(o.editor,l,!1),Re),s=o.editor.registerCommand(Xt,l=>_T(o.editor,l)||vp(o.editor,l,!0),Re);return()=>{t(),e(),n(),r(),i(),s()}}function wT(o){return o.toLowerCase().startsWith("http")?/(http|https):\/\/(\S+)\.\S+$/.test(o):!1}function vT(o,t,e){let n=t.getStartEndPoints();if(!n)return;let r=n[0].offset,i=o.getTextContent(),a=i.slice(0,r).lastIndexOf(" ")+1,d=i.slice(a,r);wT(d)&&e.update(()=>{let u=Ot(d);u.append(new dt(d));let f=o.splitText(a,r),c=a>0?1:0,m=f[c];m&&m.replace(u)})}function ul(o){let t=r=>{let i=T(),s=mm(i);return s&&i&&vT(s,i,o),!1},e=o.registerCommand(yr,t,Lt),n=o.registerCommand(ve,t,Lt);return()=>{e(),n()}}var fl=class extends ne{buildDOM(){let t=this.getChildren().map(i=>i.getDOMElement()),e=y("div",{class:"editor-format-menu-dropdown editor-dropdown-menu editor-dropdown-menu-vertical",hidden:"true"},t),n=y("button",{class:"editor-format-menu-toggle editor-button",type:"button"},[this.trans("Formats")]),r=y("div",{class:"editor-format-menu editor-dropdown-menu-container"},[n,e]);return this.getContext().manager.dropdowns.handle({toggle:n,menu:e}),this.onEvent("button-action",()=>{this.getContext().manager.dropdowns.closeAll()},r),r}updateState(t){super.updateState(t);for(let e of this.children){if(e instanceof w&&e.isActive()){this.updateToggleLabel(e.getLabel());return}if(e instanceof ne){for(let n of e.getChildren())if(n instanceof w&&n.isActive()){this.updateToggleLabel(n.getLabel());return}}}this.updateToggleLabel(this.trans("Formats"))}updateToggleLabel(t){let e=this.getDOMElement().querySelector("button");e&&(e.innerText=t)}};var nt=class extends w{constructor(e,n){super(n);p(this,"previewSampleElement");this.previewSampleElement=e}buildDOM(){let e=super.buildDOM();e.innerHTML="";let n=y("span",{class:"editor-button-format-preview"},[this.getLabel()]),r=this.getStylesFromPreview();for(let i of Object.keys(r))n.style.setProperty(i,r[i]);return e.append(n),e}getStylesFromPreview(){let e=y("div",{style:"display: none",hidden:"true",class:"page-content"}),n=this.previewSampleElement.cloneNode();n.textContent=this.getLabel(),e.append(n),document.body.append(e);let r=["color","font-size","background-color","border-inline-start"],i={},s=window.getComputedStyle(n);for(let l of r)i[l]=s.getPropertyValue(l);return e.remove(),i}};var Ap='';var ml=class extends w{buildDOM(){let t=super.buildDOM(),e=y("div",{class:"editor-menu-button-icon"});return e.innerHTML=Ap,t.append(e),t}};var OT={showOnHover:!1,direction:"horizontal",showAside:void 0,hideOnAction:!0,button:{label:"Menu"}},be=class extends ne{constructor(e,n){super(n);p(this,"button");p(this,"childItems");p(this,"open",!1);p(this,"options");if(this.childItems=n,this.options=Object.assign({},OT,e),e.button instanceof w)this.button=e.button;else{let r=e.button.format==="long"?ml:w;this.button=new r({...e.button,action(){return!1},isActive:()=>this.open})}this.addChildren(this.button)}insertItems(...e){this.addChildren(...e),this.childItems.push(...e)}buildDOM(){let e=this.button.getDOMElement(),n=this.childItems.map(s=>s.getDOMElement()),r=y("div",{class:`editor-dropdown-menu editor-dropdown-menu-${this.options.direction}`,hidden:"true"},n),i=y("div",{class:"editor-dropdown-menu-container"},[e,r]);return this.getContext().manager.dropdowns.handle({toggle:e,menu:r,showOnHover:this.options.showOnHover,showAside:typeof this.options.showAside=="boolean"?this.options.showAside:this.options.direction==="vertical",onOpen:()=>{this.open=!0,this.getContext().manager.triggerStateUpdateForElement(this.button)},onClose:()=>{this.open=!1,this.getContext().manager.triggerStateUpdateForElement(this.button)}}),this.options.hideOnAction&&this.onEvent("button-action",()=>{this.getContext().manager.dropdowns.closeAll()},i),i}};var Rp='';var kp='';var Ip=["#000000","#ffffff","#BFEDD2","#FBEEB8","#F8CAC6","#ECCAFA","#C2E0F4","#2DC26B","#F1C40F","#E03E2D","#B96AD9","#3598DB","#169179","#E67E23","#BA372A","#843FA1","#236FA1","#ECF0F1","#CED4D9","#95A5A6","#7E8C8D","#34495E"],$p="bs-lexical-custom-colors",bn=class extends $e{constructor(e){super();p(this,"callback");this.callback=e}buildDOM(){let e=ys(),r=[...Ip,...this.getCustomColorChoices()].map(u=>y("div",{class:"editor-color-select-option",style:`background-color: ${u}`,"data-color":u,"aria-label":u})),i=y("div",{class:"editor-color-select-option","data-color":"",title:this.getContext().translate("Remove color")},[]);i.innerHTML=Rp,r.push(i);let s=y("label",{class:"editor-color-select-option",for:`color-select-${e}`,"data-color":"",title:this.getContext().translate("Custom color")},[]);s.innerHTML=kp,r.push(s);let l=y("input",{type:"color",hidden:"true",id:`color-select-${e}`});r.push(l),l.addEventListener("change",u=>{l.value&&(this.storeCustomColorChoice(l.value),this.setColor(l.value),this.rebuildDOM())});let a=[];for(let u=0;u{let l=s.target.closest(".editor-table-creator-cell");if(l){let a=Number(l.dataset.rows||0),d=Number(l.dataset.columns||0);this.updateGridSelection(a,d,n,r)}}),i.addEventListener("click",s=>{let l=s.target.closest(".editor-table-creator-cell");l&&this.onCellClick(l)}),i.addEventListener("mouseleave",s=>{this.updateGridSelection(0,0,n,r)}),y("div",{class:"editor-table-creator"},[i,r])}updateGridSelection(t,e,n,r){for(let i of n){let s=Number(i.dataset.rows)<=t&&Number(i.dataset.columns)<=e;i.classList.toggle("active",s)}r.textContent=`${t} x ${e}`}onCellClick(t){let e=Number(t.dataset.rows||0),n=Number(t.dataset.columns||0);if(e<1||n<1)return;let r=Math.min(Math.round(840/n),240),i=Array(n).fill(r+"px");this.getContext().editor.update(()=>{let s=pd(e,n,!1);s.setColWidths(i),cn(s)})}};var _i=class extends w{constructor(e,n){super(e);p(this,"style");this.style=n}getColorBar(){let e=this.getDOMElement().querySelector("svg .editor-icon-color-bar");if(!e)throw new Error(`Could not find expected color bar in the icon for this ${this.definition.label} button`);return e}updateState(e){if(super.updateState(e),_(e.selection)){let n=Ba(e.selection,this.style);this.getColorBar().setAttribute("fill",n)}}};var Pp='';var Le=class extends ne{constructor(e,n,r){super(r);p(this,"size");p(this,"overflowButton");p(this,"content");p(this,"label");this.label=e,this.size=n,this.content=r,this.overflowButton=new be({button:{label:"More",icon:Pp},hideOnAction:!1},[]),this.addChildren(this.overflowButton)}addChild(e,n=-1){this.content.splice(n,0,e),this.addChildren(e)}buildDOM(){let e=this.content.length>this.size?this.size-1:this.size,n=this.content.slice(0,e),r=this.content.slice(e),i=n.map(s=>s.getDOMElement());return r.length>0&&(this.removeChildren(...r),this.overflowButton.insertItems(...r),i.push(this.overflowButton.getDOMElement())),y("div",{class:"editor-overflow-container"},i)}getLabel(){return this.label}};var $d='';var gl='';var Bp='';var Hp='';var Fp='';var Kp='';var Up='';var zp='';var Wp='';var qp=` + + + + + + + + + +`;var Pd=class extends ne{constructor(e){super([]);p(this,"input");p(this,"pickerButton");this.input=e,this.pickerButton=new be({button:{icon:qp,label:"Select color"}},[new bn(this.onColorSelect.bind(this))]),this.addChildren(this.pickerButton,this.input)}buildDOM(){let e=this.input.getDOMElement();e.append(this.pickerButton.getDOMElement()),e.classList.add("editor-color-field-container");let n=e.querySelector("input");return n.addEventListener("change",()=>{this.setIconColor(n.value)}),e}onColorSelect(e,n){this.input.setValue(e)}setIconColor(e){let n=this.getDOMElement().querySelector("svg .editor-icon-color-display");n&&n.setAttribute("fill",e||"url(#pattern2)")}};function _n(o){return{build(){return new Pd(new Wt(o))}}}var Bd={label:"Border style",name:"border_style",type:"select",valuesByLabel:{"Select...":"",Solid:"solid",Dotted:"dotted",Dashed:"dashed",Double:"double",Groove:"groove",Ridge:"ridge",Inset:"inset",Outset:"outset",None:"none",Hidden:"hidden"}},Hd={label:"Border color",name:"border_color",type:"text"},Fd={label:"Background color",name:"background_color",type:"text"},Yp={label:"Alignment",name:"align",type:"select",valuesByLabel:{None:"",Left:"left",Center:"center",Right:"right"}};function Zp(o,t){let e=o.getStyles(),n=t.manager.createModal("cell_properties");return n.show({width:ip(t.editor,o),height:e.get("height")||"",type:o.getTag(),h_align:o.getAlignment(),v_align:e.get("vertical-align")||"",border_width:e.get("border-width")||"",border_style:e.get("border-style")||"",border_color:e.get("border-color")||"",background_color:o.getBackgroundColor()||e.get("background-color")||""}),n}var Vp={submitText:"Save",async action(o,t){return t.editor.update(()=>{let e=Cn(T());for(let n of e){let r=o.get("width")?.toString()||"";rp(n,r),n.updateTag(o.get("type")?.toString()||""),n.setAlignment(o.get("h_align")?.toString()||""),n.setBackgroundColor(o.get("background_color")?.toString()||"");let i=n.getStyles();i.set("height",St(o.get("height")?.toString()||"")),i.set("vertical-align",o.get("v_align")?.toString()||""),i.set("border-width",St(o.get("border_width")?.toString()||"")),i.set("border-style",o.get("border_style")?.toString()||""),i.set("border-color",o.get("border_color")?.toString()||""),n.setStyles(i)}}),!0},fields:[{build(){let o=[{label:"Width",name:"width",type:"text"},{label:"Height",name:"height",type:"text"},{label:"Cell type",name:"type",type:"select",valuesByLabel:{Cell:"td","Header cell":"th"}},{...Yp,label:"Horizontal align",name:"h_align"},{label:"Vertical align",name:"v_align",type:"select",valuesByLabel:{None:"",Top:"top",Middle:"middle",Bottom:"bottom"}}],t=[{label:"Border width",name:"border_width",type:"text"},Bd,_n(Hd),_n(Fd)];return new fn([{label:"General",contents:o},{label:"Advanced",contents:t}])}}]};function Xp(o,t){let e=o.getStyles(),n=t.manager.createModal("row_properties");return n.show({height:e.get("height")||"",border_style:e.get("border-style")||"",border_color:e.get("border-color")||"",background_color:e.get("background-color")||""}),n}var jp={submitText:"Save",async action(o,t){return t.editor.update(()=>{let e=go(T());for(let n of e){let r=n.getStyles();r.set("height",St(o.get("height")?.toString()||"")),r.set("border-style",o.get("border_style")?.toString()||""),r.set("border-color",o.get("border_color")?.toString()||""),r.set("background-color",o.get("background_color")?.toString()||""),n.setStyles(r)}}),!0},fields:[{label:"Height",name:"height",type:"text"},Bd,_n(Hd),_n(Fd)]};function Gp(o,t){let e=o.getStyles(),n=t.manager.createModal("table_properties");return n.show({width:e.get("width")||"",height:e.get("height")||"",cell_spacing:e.get("cell-spacing")||"",cell_padding:dp(o),border_width:e.get("border-width")||"",border_style:e.get("border-style")||"",border_color:e.get("border-color")||"",background_color:e.get("background-color")||"",caption:fd(o)?"true":"",align:o.getAlignment()}),n}var Jp={submitText:"Save",async action(o,t){return t.editor.update(()=>{let e=At(T());if(!e)return;let n=e.getStyles();n.set("width",St(o.get("width")?.toString()||"")),n.set("height",St(o.get("height")?.toString()||"")),n.set("cell-spacing",St(o.get("cell_spacing")?.toString()||"")),n.set("border-width",St(o.get("border_width")?.toString()||"")),n.set("border-style",o.get("border_style")?.toString()||""),n.set("border-color",o.get("border_color")?.toString()||""),n.set("background-color",o.get("background_color")?.toString()||""),e.setStyles(n),e.setAlignment(o.get("align"));let r=o.get("cell_padding")?.toString()||"";if(r){let l=St(r);Md(e,a=>{let d=a.getStyles();d.set("padding",l),a.setStyles(d)})}let i=!!o.get("caption")?.toString(),s=fd(e);if(i&&!s)qm(e,t.translate("Caption"));else if(!i&&s)for(let l of e.getChildren())hi(l)&&l.remove()}),!0},fields:[{build(){let o=[{label:"Width",name:"width",type:"text"},{label:"Height",name:"height",type:"text"},{label:"Cell spacing",name:"cell_spacing",type:"text"},{label:"Cell padding",name:"cell_padding",type:"text"},{label:"Border width",name:"border_width",type:"text"},{label:"Show caption",name:"caption",type:"checkbox"},Yp],t=[Bd,_n(Hd),_n(Fd)];return new fn([{label:"General",contents:o},{label:"Advanced",contents:t}])}}]};function Qp(o){let t=E(o)?o.getChildren():[];return{node:o.exportJSON(),children:t.map(e=>Qp(e))}}function eg(o,{node:t,children:e}){let n=o._nodes.get(t.type)?.klass.importJSON(t);if(!n)return null;let r=e.map(i=>eg(o,i));for(let i of r)i&&E(n)&&n.append(i);return n}var yi=class{constructor(){p(this,"store",[])}set(...t){this.store.splice(0,this.store.length);for(let e of t)this.store.push(Qp(e))}get(t){return this.store.map(e=>eg(t,e)).filter(e=>e!==null)}size(){return this.store.length}};var Si=new yi;function Kd(){return Si.size()===0}function tg(o){let t=null;for(let e of o){let n=e.getChildren().filter(i=>D(i)),r=0;for(let i of n)if(r+=i.getColSpan()||1,i.getRowSpan()>1)throw Error("Cannot copy rows with merged cells");if(t===null)t=r;else if(t!==r)throw Error("Cannot copy rows with inconsistent sizes")}}function og(o,t){let e=new qt(t).columnCount;for(let n of o){let r=n.getChildren().filter(s=>D(s)),i=0;for(let s of r)i+=s.getColSpan()||1;if(i>e)throw Error("Cannot paste rows that are wider than target table");for(;i{let n=new yi;return n.set(...e),n});hl.splice(0,hl.length,...t)}function Ud(){return hl.length===0}function ag(o){if(V(o)){let i=o.getShape();return{from:i.fromX,to:i.toX}}let t=X(o,D),e=At(o);if(!D(t)||!e)return null;let r=new qt(e).getRangeForCell(t);return r?{from:r.fromX,to:r.toX}:null}function dg(o,t){let e=new qt(t),n=[];for(let r=o.from;r<=o.to;r++){let i=e.getCellsInColumn(r);n.push(i)}return n}function cg(o){let t=null;for(let e of o){let n=0;for(let r of e)if(n+=r.getRowSpan()||1,r.getColSpan()>1)throw Error("Cannot copy columns with merged cells");if(t===null)t=n;else if(t!==n)throw Error("Cannot copy columns with inconsistent sizes")}}function ug(){let o=T(),t=ag(o),e=At(o);if(!t||!e)return;let n=e.getColWidths(),r=dg(t,e);cg(r),lg(r);for(let s of r)for(let l of s)l.remove();let i=[...n].splice(t.from,t.to-t.from+1);e.setColWidths(i)}function fg(){let o=T(),t=ag(o),e=At(o);if(!t||!e)return;let n=dg(t,e);cg(n),lg(n)}function qT(o,t){let e=new qt(t).rowCount;for(let n of o){let r=0;for(let i of n)r+=i.getRowSpan()||1;if(r>e)throw Error("Cannot paste columns that are taller than target table");for(;rm.get(o));t||s.reverse(),qT(s,n);let l=new qt(n),a=l.getRangeForCell(i);if(!a)return;let d=t?a.fromX:a.toX,u=n.getColWidths();for(let m=0;mf);u.splice(t?d:d+1,0,...c)}function pg(o){mg(o,!0)}function gg(o){mg(o,!1)}var xe=()=>!1,Me=o=>!ce(o,D),hg={label:"Table",icon:$d},zd={label:"Table properties",icon:$d,action(o){o.editor.getEditorState().read(()=>{let t=At(T());U(t)&&Gp(t,o)})},isActive:xe,isDisabled:Me},Ng={label:"Clear table formatting",format:"long",action(o){o.editor.update(()=>{let t=X(T(),D);if(!D(t))return;let e=zt(t,U);U(e)&&ap(e)})},isActive:xe,isDisabled:Me},xg={label:"Resize to contents",format:"long",action(o){o.editor.update(()=>{let t=X(T(),D);if(!D(t))return;let e=zt(t,U);U(e)&&lp(e)})},isActive:xe,isDisabled:Me},Wd={label:"Delete table",icon:gl,action(o){o.editor.update(()=>{let t=X(T(),U);t&&t.remove()})},isActive(){return!1}},Eg={...Wd,format:"long",isDisabled(o){return!ce(o,U)}},qd={label:"Insert row before",icon:Up,action(o){o.editor.update(()=>{Vs(!1)})},isActive:xe,isDisabled:Me},Yd={label:"Insert row after",icon:zp,action(o){o.editor.update(()=>{Vs(!0)})},isActive:xe,isDisabled:Me},Zd={label:"Delete row",icon:Hp,action(o){o.editor.update(()=>{gd()})},isActive:xe,isDisabled:Me},Tg={label:"Row properties",format:"long",action(o){o.editor.getEditorState().read(()=>{let t=go(T());oe(t[0])&&Xp(t[0],o)})},isActive:xe,isDisabled:Me},Cg={label:"Cut row",format:"long",action(o){o.editor.update(()=>{try{ng()}catch(t){o.error(t)}})},isActive:xe,isDisabled:Me},bg={label:"Copy row",format:"long",action(o){o.editor.getEditorState().read(()=>{try{rg()}catch(t){o.error(t)}})},isActive:xe,isDisabled:Me},_g={label:"Paste row before",format:"long",action(o){o.editor.update(()=>{try{ig(o.editor)}catch(t){o.error(t)}})},isActive:xe,isDisabled:o=>Me(o)||Kd()},yg={label:"Paste row after",format:"long",action(o){o.editor.update(()=>{try{sg(o.editor)}catch(t){o.error(t)}})},isActive:xe,isDisabled:o=>Me(o)||Kd()},Sg={label:"Row header",format:"small",icon:Wp,action(o,t){o.editor.update(()=>{let e=X(T(),D)?.getParent();if(!oe(e))return;let n=cp(e);t.setActiveState(n)})},isActive:o=>ce(o,t=>D(t)&&t.getHeaderStyles()!==te.NO_STATUS)},Lg={label:"Cut column",format:"long",action(o){o.editor.update(()=>{try{ug()}catch(t){o.error(t)}})},isActive:xe,isDisabled:Me},Mg={label:"Copy column",format:"long",action(o){o.editor.getEditorState().read(()=>{try{fg()}catch(t){o.error(t)}})},isActive:xe,isDisabled:Me},wg={label:"Paste column before",format:"long",action(o){o.editor.update(()=>{try{pg(o.editor)}catch(t){o.error(t)}})},isActive:xe,isDisabled:o=>Me(o)||Ud()},vg={label:"Paste column after",format:"long",action(o){o.editor.update(()=>{try{gg(o.editor)}catch(t){o.error(t)}})},isActive:xe,isDisabled:o=>Me(o)||Ud()},Vd={label:"Insert column before",icon:Kp,action(o){o.editor.update(()=>{Xs(!1)})},isActive(){return!1}},Xd={label:"Insert column after",icon:Fp,action(o){o.editor.update(()=>{Xs(!0)})},isActive(){return!1}},jd={label:"Delete column",icon:Bp,action(o){o.editor.update(()=>{hd()})},isActive(){return!1}},Dg={label:"Cell properties",format:"long",action(o){o.editor.getEditorState().read(()=>{let t=X(T(),D);D(t)&&Zp(t,o)})},isActive:xe,isDisabled:Me},Og={label:"Merge cells",format:"long",action(o){o.editor.update(()=>{let t=T();V(t)&&sp(t)})},isActive:xe,isDisabled(o){return!V(o)}},Ag={label:"Split cell",format:"long",action(o){o.editor.update(()=>{xd()})},isActive:xe,isDisabled(o){let t=X(o,D);return t?!(t.getRowSpan()>1||t.getColSpan()>1):!0}};var Rg='';var kg='';var Ig='';var $g='';var Pg='';var Bg={label:"Undo",icon:Rg,action(o){o.editor.dispatchCommand(Eo,void 0),o.manager.triggerFutureStateRefresh()},isActive(o){return!1},setup(o,t){t.toggleDisabled(!0),o.editor.registerCommand(yo,e=>(t.toggleDisabled(!e),!1),Re)}},Hg={label:"Redo",icon:kg,action(o){o.editor.dispatchCommand(To,void 0),o.manager.triggerFutureStateRefresh()},isActive(o){return!1},setup(o,t){t.toggleDisabled(!0),o.editor.registerCommand(_o,e=>(t.toggleDisabled(!e),!1),Re)}},Fg={label:"Source code",icon:Ig,async action(o){let t=o.manager.createModal("source"),e=await As(o.editor);t.show({source:e})},isActive(){return!1}},Kg={label:"Fullscreen",icon:$g,async action(o,t){let e=o.containerDOM.classList.contains("fullscreen");o.containerDOM.classList.toggle("fullscreen",!e),o.containerDOM.closest("body").classList.toggle("editor-is-fullscreen",!e),t.setActiveState(!e)},isActive(o,t){return t.containerDOM.classList.contains("fullscreen")}},Ug={label:"About the editor",icon:Pg,async action(o,t){o.manager.createModal("about").show({})},isActive(o,t){return!1}};function Nl(o,t){return{label:t,action(e){e.editor.update(()=>{rr(n=>ld(n,o),()=>hn(o))})},isActive(e){return ce(e,n=>ld(n,o))}}}var zg=Nl("info","Info"),Wg=Nl("danger","Danger"),qg=Nl("warning","Warning"),Yg=Nl("success","Success"),GT=(o,t)=>Ho(o)&&o.getTag()===t;function xl(o,t){return{label:t,action(e){Ps(e.editor,o)},isActive(e){return ce(e,n=>GT(n,o))}}}var Zg=xl("h2","Large Header"),Vg=xl("h3","Medium Header"),Xg=xl("h4","Small Header"),jg=xl("h5","Tiny Header"),Gg={label:"Blockquote",action(o){fi(o.editor)},isActive(o){return ce(o,$s)}},Jg={label:"Paragraph",action(o){ui(o.editor)},isActive(o){return ce(o,Qe)}};var Qg='';var eh='';var th='';var oh=` +`;var nh='';var rh='';var ih='';var sh='';var lh='';var ah='';function yn(o,t,e){return{label:o,icon:e,action(n){n.editor.dispatchCommand(Be,t)},isActive(n){return pm(n,t)}}}var Gd=yn("Bold","bold",Qg),Jd=yn("Italic","italic",eh),dh=yn("Underline","underline",th),ch={label:"Text color",icon:oh},uh={label:"Highlight color",icon:nh};function fh(o,t,e){o.editor.update(()=>{let n=T();n&&Pa(n,{[t]:e||null})})}var mh=(o,t)=>fh(t,"color",o),ph=(o,t)=>fh(t,"background-color",o),gh=yn("Strikethrough","strikethrough",rh),hh=yn("Superscript","superscript",ih),Nh=yn("Subscript","subscript",sh),Qd=yn("Inline code","code",lh),xh={label:"Clear formatting",icon:ah,action(o){o.editor.update(()=>{let t=T();for(let e of t?.getNodes()||[])L(e)&&(e.setFormat(0),e.setStyle(""))})},isActive(){return!1}};var Eh='';var Th='';var Ch='';var bh='';var _h='';var yh='';function El(o,t){let e=de(o.editor),n=e?.getNodes()||[];if(n.length===1&&E(n[0])&&n[0].isInline()&&ni(n[0])){n[0].setAlignment(t),gt(n[0]),o.manager.triggerFutureStateRefresh();return}let i=pt(e).filter(a=>ni(a)),l=i.every(a=>a.getAlignment()===t)?"":t;for(let a of i)a.setAlignment(l);o.manager.triggerFutureStateRefresh()}function Sh(o,t){let e=de(o.editor),n=pt(e);for(let i of n)i.setDirection(t);let r=xm(e);for(let i of r)i.setDirection(t);o.manager.triggerFutureStateRefresh()}var Lh={label:"Align left",icon:Eh,action(o){o.editor.update(()=>El(o,"left"))},isActive(o){return oi(o,"left")}},Mh={label:"Align center",icon:Th,action(o){o.editor.update(()=>El(o,"center"))},isActive(o){return oi(o,"center")}},wh={label:"Align right",icon:Ch,action(o){o.editor.update(()=>El(o,"right"))},isActive(o){return oi(o,"right")}},vh={label:"Justify",icon:bh,action(o){o.editor.update(()=>El(o,"justify"))},isActive(o){return oi(o,"justify")}},Dh={label:"Left to right",icon:_h,action(o){o.editor.update(()=>Sh(o,"ltr"))},isActive(o){return rd(o,"ltr")}},Oh={label:"Right to left",icon:yh,action(o){o.editor.update(()=>Sh(o,"rtl"))},isActive(o){return rd(o,"rtl")}};var Ah='';var Rh='';var kh='';var Ih='';var $h='';function ec(o,t,e){return{label:o,icon:e,action(n){mi(n.editor,t)},isActive(n){return ce(n,r=>Z(r)&&r.getListType()===t)}}}var tc=ec("Bullet list","bullet",Ah),oc=ec("Numbered list","number",Rh),Ph=ec("Task list","check",kh),Bh={label:"Increase indent",icon:Ih,action(o){o.editor.update(()=>{ei(o.editor,40)})},isActive(){return!1}},Hh={label:"Decrease indent",icon:$h,action(o){o.editor.update(()=>{ei(o.editor,-40)})},isActive(){return!1}};var Fh='';var Kh='';var Uh='';var zh='';var Wh='';var qh='';var Yh='';var Zh='';var Vh=` +`;var Xh='';var jh='';var Tl={label:"Insert/edit link",icon:Fh,action(o){o.editor.getEditorState().read(()=>{let t=X(T(),We);Hs(t,o)})},isActive(o){return ce(o,We)}},Gh={label:"Remove link",icon:Kh,action(o){o.editor.update(()=>{let t=de(o.editor),e=X(t,We);if(e){let n=e.getChildren().reverse();for(let r of n)e.insertAfter(r);e.remove(),n[n.length-1].selectStart(),o.manager.triggerFutureStateRefresh()}})},isActive(o){return!1}},nc={label:"Insert/Edit Image",icon:Uh,action(o){o.editor.getEditorState().read(()=>{let t=de(o.editor),e=X(t,ke);if(e){vm(e,o);return}bs(n=>{o.editor.update(()=>{let r=Cm(n);Te([r]),r.select()})})})},isActive(o){return ce(o,ke)}},Jh={label:"Insert horizontal line",icon:zh,action(o){o.editor.update(()=>{cn(wd(),!1)})},isActive(o){return ce(o,up)}},rc={label:"Insert code block",icon:Wh,action(o){pi(o.editor)},isActive(o){return ce(o,ks)}},Qh=Object.assign({},rc,{label:"Edit code block",icon:qh}),eN={label:"Insert/edit drawing",icon:Yh,action(o){o.editor.getEditorState().read(()=>{let t=de(o.editor),e=X(t,uo);e===null?o.editor.update(()=>{let n=or();cn(n,!0),ri(o,n),n.selectStart()}):ri(o,e)})},isActive(o){return ce(o,uo)}},tN={label:"Drawing manager",action(o){Tm(o)},isActive(){return!1}},ic={label:"Insert/edit media",icon:jh,action(o){o.editor.getEditorState().read(()=>{let t=T(),e=X(t,vt);Am(e,o)})},isActive(o){return ce(o,vt)}},oN={label:"Insert collapsible block",icon:Zh,action(o){o.editor.update(()=>{let t=T(),e=ad(),r=(t?.getNodes()||[]).map(s=>s.getTopLevelElement()).filter(s=>s!==null),i=[...new Set(r)];e.setOpen(!0),i.length>0?i[0].insertAfter(e):F().append(e);for(let s of i)e.append(s)})},isActive(o){return ce(o,ae)}},nN={label:"Edit label",icon:Xh,action(o){o.editor.getEditorState().read(()=>{let t=X(T(),ae);ae(t)&&Fs(t,o)})},isActive(o){return!1}},rN={label:"Toggle open/closed",icon:Vh,action(o){o.editor.update(()=>{let t=X(T(),ae);ae(t)&&(t.setOpen(!t.getOpen()),o.manager.triggerLayoutUpdate())})},isActive(o){return!1}},iN={label:"Unwrap",icon:gl,action(o){o.editor.update(()=>{let t=X(T(),ae);ae(t)&&(cl(t),o.manager.triggerLayoutUpdate())})},isActive(o){return!1}};var sN=` +`;var Cl=class extends ne{constructor(e,n){super([e]);p(this,"button");p(this,"dropdownButton");this.button=e,this.dropdownButton=new be({button:{label:"Menu",icon:sN},showOnHover:!1,direction:"vertical",showAside:!1},n),this.addChildren(this.dropdownButton)}buildDOM(){return y("div",{class:"editor-button-with-menu-container"},[this.button.getDOMElement(),this.dropdownButton.getDOMElement()])}};var Sn=class extends $e{buildDOM(){return y("div",{class:"editor-separator"})}};function lN(o){let t=o.manager.getDefaultDirection()==="rtl";return new ii("editor-toolbar-main",[new Le("history",2,[new w(Bg),new w(Hg)]),new fl([new nt(y("h2"),Zg),new nt(y("h3"),Vg),new nt(y("h4"),Xg),new nt(y("h5"),jg),new nt(y("blockquote"),Gg),new nt(y("p"),Jg),new be({button:{label:"Callouts",format:"long"},showOnHover:!0,direction:"vertical"},[new nt(y("p",{class:"callout info"}),zg),new nt(y("p",{class:"callout success"}),Yg),new nt(y("p",{class:"callout warning"}),qg),new nt(y("p",{class:"callout danger"}),Wg)])]),new Le("inline_formats",6,[new w(Gd),new w(Jd),new w(dh),new be({button:new _i(ch,"color")},[new bn(mh)]),new be({button:new _i(uh,"background-color")},[new bn(ph)]),new w(gh),new w(hh),new w(Nh),new w(Qd),new w(xh)]),new Le("alignment",6,[new w(Lh),new w(Mh),new w(wh),new w(vh),t?new w(Dh):null,t?new w(Oh):null].filter(e=>e!==null)),new Le("lists",3,[new w(tc),new w(oc),new w(Ph),new w(Hh),new w(Bh)]),new Le("inserts",4,[new w(Tl),new be({button:hg,direction:"vertical",showAside:!1},[new be({button:{label:"Insert",format:"long"},showOnHover:!0,showAside:!0},[new pl]),new Sn,new be({button:{label:"Cell",format:"long"},direction:"vertical",showOnHover:!0},[new w(Dg),new w(Og),new w(Ag)]),new be({button:{label:"Row",format:"long"},direction:"vertical",showOnHover:!0},[new w({...qd,format:"long"}),new w({...Yd,format:"long"}),new w({...Zd,format:"long"}),new w(Tg),new Sn,new w(Cg),new w(bg),new w(_g),new w(yg)]),new be({button:{label:"Column",format:"long"},direction:"vertical",showOnHover:!0},[new w({...Vd,format:"long"}),new w({...Xd,format:"long"}),new w({...jd,format:"long"}),new Sn,new w(Lg),new w(Mg),new w(wg),new w(vg)]),new Sn,new w({...zd,format:"long"}),new w(Ng),new w(xg),new w(Eg)]),new w(nc),new w(Jh),new w(rc),new Cl(new w(eN),[new w(tN)]),new w(ic),new w(oN)]),new Le("meta",3,[new w(Fg),new w(Ug),new w(Kg)])])}function sc(o){return new ii("editor-toolbar-main",[new Le("formats",7,[new w(Gd),new w(Jd),new w(Tl),new w(Qd),new w(tc),new w(oc)])])}var Li={image:{selector:"img:not([drawio-diagram] img)",content:()=>[new w(nc)]},media:{selector:".editor-media-wrap",content:()=>[new w(ic)]},link:{selector:"a:not([data-mention-user-id])",content(){return[new w(Tl),new w(Gh)]},displayTargetLocator(o){return o.querySelector("img")||o}},code:{selector:".editor-code-block-wrap",content:()=>[new w(Qh)]},table:{selector:"td,th",content(){return[new Le("table",2,[new w(zd),new w(Wd)]),new Le("table_row",3,[new w(qd),new w(Yd),new w(Zd)]),new Le("table_column",3,[new w(Vd),new w(Xd),new w(jd)])]},displayTargetLocator(o){return o.closest("table")}},table_header:{selector:"table tr:first-of-type td, table tr:first-of-type th",content(){return[new Le("table_headers",1,[new w(Sg)])]},displayTargetLocator(o){return o.closest("table")}},details:{selector:"details",content(){return[new w(nN),new w(rN),new w(iN)]}}};var bl=class extends $e{constructor(e){super();p(this,"url","");this.url=e}buildDOM(){let e=y("div",{class:"editor-external-content"});return window.$http.get(this.url).then(n=>{typeof n.data=="string"&&(e.innerHTML=n.data)}),e}};var aN={submitText:"Save",async action(o,t){return Fo(t.editor,o.get("source")?.toString()||""),t.editor.commitUpdates(),window.requestAnimationFrame(()=>{fo(t.editor)}),!0},fields:[{label:"Source",name:"source",type:"textarea"}]},dN={submitText:"Close",async action(){return!0},fields:[{build(){return new bl("/help/wysiwyg")}}]};var Mi={link:{title:"Insert/Edit Link",form:Om},image:{title:"Insert/Edit Image",form:Dm},media:{title:"Insert/Edit Media",form:Rm},source:{title:"Source code",form:aN},cell_properties:{title:"Cell Properties",form:Vp},row_properties:{title:"Row Properties",form:jp},table_properties:{title:"Table Properties",form:Jp},details:{title:"Edit collapsible block",form:km},about:{title:"About the WYSIWYG Editor",form:dN}};var zo=class{constructor(t){p(this,"node",null);p(this,"context");p(this,"onDestroyCallbacks",[]);this.context=t}getNode(){if(!this.node)throw new Error("Attempted to get use node without it being set");return this.node}setNode(t){this.node=t}onDestroy(t){this.onDestroyCallbacks.push(t)}teardown(){for(let t of this.onDestroyCallbacks)t()}};var _l=class extends zo{constructor(){super(...arguments);p(this,"completedSetup",!1);p(this,"latestCode","");p(this,"latestLanguage","");p(this,"editor",null)}setup(e){let n=this.getNode(),r=e.querySelector("pre");if(!r)return;r&&(r.hidden=!0),this.latestCode=n.__code,this.latestLanguage=n.__language;let s=this.latestCode.split(` +`).length*19.2+18+24;e.style.height=`${s}px`;let l=Date.now();e.addEventListener("click",u=>{requestAnimationFrame(()=>{this.context.editor.update(()=>{gt(this.getNode())})})}),e.addEventListener("dblclick",u=>{this.context.editor.getEditorState().read(()=>{di(this.context.editor,this.getNode())})});let a=u=>{e.classList.toggle("selected",Cs(u,n))};this.context.manager.onSelectionChange(a),this.onDestroy(()=>{this.context.manager.offSelectionChange(a)});let d=u=>{this.editor=u.wysiwygView(e,document,this.latestCode,this.latestLanguage),setTimeout(()=>{e.style.height=""},12)};window.importVersioned("code").then(u=>{let f=Date.now()-l<20?20:0;setTimeout(()=>d(u),f)}),this.completedSetup=!0}update(){let e=this.getNode(),n=e.getCode(),r=e.getLanguage();this.latestCode===n&&this.latestLanguage===r||(this.latestLanguage=r,this.latestCode=n,this.editor&&(this.editor.setContent(n),this.editor.setMode(r,n)))}render(e){this.completedSetup?this.update():this.setup(e)}};var yl=class extends zo{constructor(){super(...arguments);p(this,"completedSetup",!1)}setup(e){let n=this.getNode();e.classList.add("editor-diagram"),this.context.editor.registerCommand(Yt,i=>e.contains(i.target)?(this.context.editor.update(()=>{gt(this.getNode())}),!0):!1,Lt),e.addEventListener("dblclick",i=>{this.context.editor.getEditorState().read(()=>{ri(this.context,this.getNode())})});let r=i=>{e.classList.toggle("selected",Cs(i,n))};this.context.manager.onSelectionChange(r),this.onDestroy(()=>{this.context.manager.offSelectionChange(r)}),this.completedSetup=!0}update(){}render(e){this.completedSetup?this.update():this.setup(e)}};function OC(o){return H(o)||ke(o)||vt(o)||uo(o)||U(o)||ae(o)}function AC(o){if(o.target instanceof HTMLElement){let t=o.target.closest("details");if(t){let e=Y(t);if(ae(e))return e}}return F()}function RC(o,t){let e=AC(t),n=e.getLastChild();if(!n||!OC(n))return!1;let r=o.editor.getElementByKey(n.getKey());if(!r)return!1;let i=r.getBoundingClientRect();return t.clientY>i.bottom?(o.editor.update(()=>{let l=I();e.append(l),l.select()}),!0):!1}function cN(o){let t=o.editor.registerCommand(Yt,e=>(RC(o,e),!1),Re);return()=>{t()}}var lc=new Set;function kC(o){for(let n of lc)n.classList.remove("selected"),lc.delete(n);let e=T()?.getNodes()||[];if(e.length===1&&ae(e[0])){let n=o.editor.getElementByKey(e[0].getKey());n&&(n.classList.add("selected"),lc.add(n))}return!1}function uN(o){let t=o.editor.registerCommand(_e,()=>(kC(o),!1),Re);return()=>{t()}}var Ln,wi,ac=class{constructor(t,e){kt(this,Ln);kt(this,wi,!1);No(this,Ln,new w({label:t.label||"",icon:t.icon||"",action:()=>{t.action()},isActive:()=>we(this,wi)})),we(this,Ln).setContext(e)}setActive(t=!0){No(this,wi,t),we(this,Ln).setActiveState(t)}_getOriginalModel(){return we(this,Ln)}};Ln=new WeakMap,wi=new WeakMap;var vi,dc=class{constructor(t){kt(this,vi);No(this,vi,t)}getSections(){return we(this,vi).getChildren().filter(e=>e instanceof Le).map(e=>new cc(e))}};vi=new WeakMap;var Mn,cc=class{constructor(t){kt(this,Mn);No(this,Mn,t)}getLabel(){return we(this,Mn).getLabel()}addButton(t,e=-1){we(this,Mn).addChild(t._getOriginalModel(),e),we(this,Mn).rebuildDOM()}};Mn=new WeakMap;var xr,Sl=class{constructor(t){kt(this,xr);No(this,xr,t)}createButton(t){return new ac(t,we(this,xr))}getMainToolbar(){let t=we(this,xr).manager.getToolbar();return t?new dc(t):null}};xr=new WeakMap;var wn,Ll=class{constructor(t){kt(this,wn);No(this,wn,t)}insertHtml(t,e="selection"){let n=["start","end","selection"];if(!n.includes(e))throw new Error(`Invalid position: ${e}. Valid positions are: ${n.join(", ")}`);e==="start"?Ds(we(this,wn).editor,t):e==="end"?vs(we(this,wn).editor,t):Os(we(this,wn).editor,t)}};wn=new WeakMap;var Er=class{constructor(t){p(this,"ui");p(this,"content");this.ui=new Sl(t),this.content=new Ll(t)}};function Tr(o){return o instanceof HTMLElement}function fN(o){o.innerHTML='
    '}var Wo,uc,fc,Ml=class{constructor(t,e=null,n=null){kt(this,Wo);p(this,"containers");p(this,"onEscape");p(this,"onEnter");this.containers=[t],this.onEscape=e,this.onEnter=n,t.addEventListener("keydown",br(this,Wo,uc).bind(this))}shareHandlingToEl(t){this.containers.push(t),t.addEventListener("keydown",br(this,Wo,uc).bind(this))}focusNext(){let t=br(this,Wo,fc).call(this),e=document.activeElement,r=(Tr(e)?t.indexOf(e):-1)+1;r>=t.length&&(r=0),t[r].focus()}focusPrevious(){let t=br(this,Wo,fc).call(this),e=document.activeElement,r=(Tr(e)?t.indexOf(e):-1)-1;r<0&&(r=t.length-1),t[r].focus()}};Wo=new WeakSet,uc=function(t){Tr(t.target)&&t.target.matches("input")&&(t.key==="ArrowRight"||t.key==="ArrowLeft")||(t.key==="ArrowDown"||t.key==="ArrowRight"?(this.focusNext(),t.preventDefault()):t.key==="ArrowUp"||t.key==="ArrowLeft"?(this.focusPrevious(),t.preventDefault()):t.key==="Escape"?this.onEscape?this.onEscape(t):Tr(document.activeElement)&&document.activeElement.blur():t.key==="Enter"&&this.onEnter&&this.onEnter(t))},fc=function(){let t=[],e='[tabindex]:not([tabindex="-1"]),[href],button:not([tabindex="-1"],[disabled]),input:not([type=hidden])';for(let n of this.containers){let r=[...n.querySelectorAll(e)].filter(i=>Tr(i)&&i.checkVisibility());t.push(...r)}return t};function IC(o){return t=>{let e=t.target.closest("a[data-id]");if(!e)return;let n=Number(e.dataset.id||"0"),r=e.dataset.name||"",i=e.dataset.slug||"";o(n,r,i),t.preventDefault()}}function $C(o,t,e,n){t.addEventListener("keydown",i=>{i.key==="Escape"&&n()},{signal:e.signal});let r=t.querySelector("input");r.addEventListener("keydown",i=>{i.key==="Backspace"&&r.value===""&&(n(),i.preventDefault(),i.stopPropagation())},{signal:e.signal}),o.editorDOM.addEventListener("click",i=>{n()},{signal:e.signal}),o.editorDOM.addEventListener("keydown",i=>{n()},{signal:e.signal})}function PC(o){let t=new Map,e=async i=>{for(let d of[...o.children])d.remove();let s="";if(t.has(i))s=t.get(i)||"";else{let d=y("div",{class:"flex-container-row items-center dropdown-search-item"});fN(d),o.appendChild(d),s=(await window.$http.get(`/search/users/mention?search=${i}`)).data,t.set(i,s),d.remove()}let a=[...is(s).body.children];for(let d of a){let u=window.document.adoptNode(d);o.appendChild(u)}};e("");let n=o.parentElement?.querySelector("input"),r=_m(e,200,!1);n.addEventListener("input",()=>{let i=n.value;r(i)})}function BC(o,t){let e=y("input",{type:"text"}),n=y("div",{class:"dropdown-search-list"}),r=y("div");r.innerHTML=Ls;let i=r.children[0];i.classList.add("svg-icon");let s=y("div",{class:"dropdown-search-dropdown compact card"},[y("div",{class:"dropdown-search-search"},[i,e]),n]);o.containerDOM.appendChild(s),s.style.display="block",s.style.top="0",s.style.left="0";let l=t.getBoundingClientRect(),a=s.getBoundingClientRect();return s.style.top=`${l.bottom-a.top+3}px`,s.style.left=`${l.left-a.left}px`,e.focus(),s}var Cr=class extends zo{constructor(){super(...arguments);p(this,"abortController",null);p(this,"dropdownContainer",null);p(this,"mentionElement",null)}setup(e){this.mentionElement=e,e.addEventListener("click",n=>{this.showSelection(),n.preventDefault(),n.stopPropagation()})}showSelection(){!this.mentionElement||this.dropdownContainer||(this.hideSelection(),this.abortController=new AbortController,this.dropdownContainer=BC(this.context,this.mentionElement),PC(this.dropdownContainer.querySelector(".dropdown-search-list")),this.dropdownContainer.addEventListener("click",IC((e,n,r)=>{this.context.editor.update(()=>{let i=this.getNode();this.hideSelection(),i.setUserDetails(e,n,r),i.selectNext()})}),{signal:this.abortController.signal}),$C(this.context,this.dropdownContainer,this.abortController,()=>{this.getNode().hasUserSet()?this.hideSelection():this.revertMention()}),new Ml(this.dropdownContainer))}hideSelection(){this.abortController?.abort(),this.dropdownContainer?.remove(),this.abortController=null,this.dropdownContainer=null,this.context.manager.focus()}revertMention(){this.hideSelection(),this.context.editor.update(()=>{let e=z("@"),n=this.getNode().getPreviousSibling();this.getNode().replace(e),requestAnimationFrame(()=>{this.context.editor.update(()=>{e.isAttached()?e.selectEnd():n?.isAttached()&&n?.selectEnd()})})})}render(e){this.setup(e)}};function HC(o,t){let e=t.getNodes()[0],n=t.getStartEndPoints();if(!n)return;let r=n[0].offset,i=r===0,s=e.getTextContent().charAt(r-1)===" ";if(!i&&!s)return;let l=e.splitText(r),a=l[0],d=l[i?0:1],u=vd(0,"","");a.insertAfter(u),d.spliceText(0,1,"",!1),gt(u),requestAnimationFrame(()=>{let f=o.manager.getDecoratorByNodeKey(u.getKey());f instanceof Cr&&f.showSelection()})}function FC(o,t){let e=T()?.getNodes()||[];if(e.length===1&&fp(e[0])){let n=e[0];return o.manager.getDecoratorByNodeKey(n.getKey()).showSelection(),t.preventDefault(),t.stopPropagation(),!0}return!1}function mN(o){let t=o.editor,e=t.registerCommand(Ai,function(r){let i=T();return _(i)&&i.isCollapsed()&&window.setTimeout(()=>{t.update(()=>{HC(o,i)})},1),!1},Lt),n=t.registerCommand(ve,function(r){return FC(o,r)},Lt);return()=>{e(),n()}}var mc={text:{bold:"editor-theme-bold",code:"editor-theme-code",italic:"editor-theme-italic",strikethrough:"editor-theme-strikethrough",subscript:"editor-theme-subscript",superscript:"editor-theme-superscript",underline:"editor-theme-underline",underlineStrikethrough:"editor-theme-underline-strikethrough"}};function e3(o,t,e={}){let n=Jr({namespace:"BookStackPageEditor",nodes:mp(),onError:console.error,theme:mc}),r=il(o,n,{...e,editorClass:"page-content"});n.setRootElement(r.editorDOM),tt(Zs(n),nd(n),us(n,fs(),300),dl(r,!0),Op(r),cN(r),uN(r),xp(n,r.scrollDOM),yp(n),_p(n,r.editorDOM),bp(r),Mp(r),ul(n)),r.manager.setToolbar(lN(r));for(let s of Object.keys(Li))r.manager.registerContextToolbar(s,Li[s]);for(let s of Object.keys(Mi))r.manager.registerModal(s,Mi[s]);r.manager.registerDecoratorType("code",_l),r.manager.registerDecoratorType("diagram",yl),Ep(n),Fo(n,t);let i=document.getElementById("lexical-debug");return i&&(i.hidden=!0,n.registerUpdateListener(({dirtyElements:s,dirtyLeaves:l,editorState:a,prevEditorState:d})=>{i.textContent=JSON.stringify(a.toJSON(),null,2)})),window.debugEditorState=()=>n.getEditorState().toJSON(),gp(r),window.$events.emitPublic(o,"editor-wysiwyg::post-init",{usage:"page-editor",api:new Er(r)}),new Di(r)}function t3(o,t,e={}){let n=Jr({namespace:"BookStackBasicEditor",nodes:Dd(),onError:console.error,theme:mc}),r=il(o,n,e);n.setRootElement(r.editorDOM);let i=tt(Zs(n),nd(n),us(n,fs(),300),dl(r,!1),ul(n));return r.manager.setToolbar(sc(r)),r.manager.registerContextToolbar("link",Li.link),r.manager.registerModal("link",Mi.link),r.manager.onTeardown(i),Fo(n,t),window.$events.emitPublic(o,"editor-wysiwyg::post-init",{usage:"description-editor",api:new Er(r)}),new Di(r)}function o3(o,t,e={}){let n=Jr({namespace:"BookStackCommentEditor",nodes:pp(),onError:console.error,theme:mc}),r=il(o,n,e);n.setRootElement(r.editorDOM);let i=tt(Zs(n),us(n,fs(),300),dl(r,!1),ul(n),mN(r));return r.manager.setToolbar(sc(r)),r.manager.registerContextToolbar("link",Li.link),r.manager.registerModal("link",Mi.link),r.manager.onTeardown(i),r.manager.registerDecoratorType("mention",Cr),Fo(n,t),window.$events.emitPublic(o,"editor-wysiwyg::post-init",{usage:"comment-editor",api:new Er(r)}),new Di(r)}var Di=class{constructor(t){p(this,"context");p(this,"onChangeListeners",[]);p(this,"editorListenerTeardown",null);this.context=t}async getContentAsHtml(){return await As(this.context.editor)}onChange(t){this.onChangeListeners.push(t),this.startListeningToChanges()}focus(){fo(this.context.editor)}remove(){this.context.manager.teardown(),this.context.containerDOM.remove(),this.editorListenerTeardown&&this.editorListenerTeardown()}startListeningToChanges(){this.editorListenerTeardown||(this.editorListenerTeardown=this.context.editor.registerUpdateListener(()=>{for(let t of this.onChangeListeners)t()}))}};export{Di as SimpleWysiwygEditorInterface,t3 as createBasicEditorInstance,o3 as createCommentEditorInstance,e3 as createPageEditorInstance}; +//# sourceMappingURL=wysiwyg.js.map diff --git a/tests/Activity/CommentsApiTest.php b/tests/Activity/CommentsApiTest.php index 51009da3952..08192b34383 100644 --- a/tests/Activity/CommentsApiTest.php +++ b/tests/Activity/CommentsApiTest.php @@ -247,4 +247,19 @@ public function test_destroy() 'id' => $comment->id, ]); } + + public function test_comments_on_deleted_pages_are_not_visible() + { + $page = $this->entities->page(); + $comment = Comment::factory()->make([ + 'html' => '

    A lovely comment

    ', + ]); + $page->comments()->save($comment); + $comment->refresh(); + + $this->entities->sendToRecycleBin($page); + + $this->actingAsApiAdmin()->get("/api/comments?sort=-id")->assertJsonMissing(['id' => $comment->id]); + $this->get("/api/comments/{$comment->id}")->assertStatus(404); + } } diff --git a/tests/Api/TagsApiTest.php b/tests/Api/TagsApiTest.php index e39d72ce10c..dbd277a509f 100644 --- a/tests/Api/TagsApiTest.php +++ b/tests/Api/TagsApiTest.php @@ -105,4 +105,18 @@ public function test_list_values_is_limited_by_permission_visibility(): void $resp->assertJson(['total' => 8]); $resp->assertJsonMissing(['value' => 'cat' . $pagesToTag[3]->id]); } + + public function test_tags_are_not_reflected_on_items_in_the_recycle_bin(): void + { + $page = $this->entities->page(); + $page->tags()->save(new Tag(['name' => 'MyRecycledTag', 'value' => 'cat' . $page->id])); + + $this->entities->sendToRecycleBin($page); + + $resp = $this->actingAsApiAdmin()->getJson('api/tags/names?filter[name]=MyRecycledTag'); + $resp->assertJsonCount(0, 'data'); + + $resp = $this->getJson('api/tags/values-for-name?name=MyRecycledTag'); + $resp->assertJsonCount(0, 'data'); + } } diff --git a/tests/Exports/ZipExportValidatorTest.php b/tests/Exports/ZipExportValidatorTest.php index 0d19e6f079b..1e1bfb523a8 100644 --- a/tests/Exports/ZipExportValidatorTest.php +++ b/tests/Exports/ZipExportValidatorTest.php @@ -131,4 +131,31 @@ public function test_book_cover_image_files_need_to_be_a_valid_detected_image_fi $this->assertEquals('The cover needs to reference a file of type image/jpg,image/jpeg,image/png,image/gif,image/webp,image/avif, found text/plain.', $results['book.cover']); } + + public function test_file_references_total_size_must_be_within_a_reasonable_limit_related_to_app_upload_size_limit() + { + config()->set('app.upload_limit', 1); + + $attachments = []; + $testFileToUse = $this->files->testFilePath('animated.png'); + $testFileSize = filesize($testFileToUse); + $count = intval(ceil(1000000 / ($testFileSize - 5))) * 5; + for ($i = 0; $i < $count; $i++) { + $attachments[] = ['id' => $i, 'name' => 'Attachment ' . $i, 'file' => 'cat.png']; + } + + $validator = $this->getValidatorForData([ + 'page' => [ + 'id' => 5, + 'name' => 'My book', + 'markdown' => 'Hello', + 'attachments' => $attachments, + ] + ], ['cat.png' => $testFileToUse]); + + $results = $validator->validate(); + + $this->assertCount(1, $results); + $this->assertEquals('The total size of all files in the import must not be more than 5 MB', $results['files']); + } } diff --git a/tests/Uploads/AttachmentTest.php b/tests/Uploads/AttachmentTest.php index 30e45fff6fc..300829883a9 100644 --- a/tests/Uploads/AttachmentTest.php +++ b/tests/Uploads/AttachmentTest.php @@ -7,6 +7,7 @@ use BookStack\Entities\Tools\TrashCan; use BookStack\Permissions\Permission; use BookStack\Uploads\Attachment; +use Illuminate\Testing\TestResponse; use Tests\TestCase; class AttachmentTest extends TestCase @@ -171,7 +172,7 @@ public function test_attachment_update_without_permission() 'attachment_edit_url' => 'https://test.example.com', ]); - $this->assertPermissionError($resp); + $resp->assertNotFound(); } public function test_attachment_update_without_permission_with_validation_errors() @@ -187,7 +188,7 @@ public function test_attachment_update_without_permission_with_validation_errors 'attachment_edit_url' => 'https://test.example.com', ]); - $this->assertPermissionError($resp); + $resp->assertNotFound(); $resp->assertDontSee($attachment->path); } @@ -286,7 +287,7 @@ public function test_attachment_edit_form_access_requires_view_permission() $this->permissions->setEntityPermissionsForRole($page, ['update'], $editor->roles()->first()); $resp = $this->actingAs($editor)->get("/attachments/edit/{$attachment->id}"); - $this->assertPermissionError($resp); + $resp->assertNotFound(); $this->permissions->setEntityPermissionsForRole($page, ['view', 'update'], $editor->roles()->first()); $resp = $this->actingAs($editor)->get("/attachments/edit/{$attachment->id}"); @@ -407,6 +408,33 @@ public function test_attachment_edit_only_shows_with_permission() $html->assertElementExists(".card[data-id=\"{$attachment->id}\"] button[title=\"Edit\"]"); } + public function test_attachment_actions_fail_for_other_users_page_drafts() + { + $this->asAdmin(); + $page = $this->entities->newDraftPage(); + $this->files->uploadAttachmentFile($this, 'upload_test.txt', $page->id); + $attachment = $page->attachments()->first(); + + $user = $this->users->editor(); + $this->permissions->grantUserRolePermissions($user, [Permission::AttachmentUpdateAll, Permission::AttachmentDeleteAll]); + $this->actingAs($user); + + /** @var array $actions */ + $actions = [ + 'uploadUpdate' => $this->call('POST', "/attachments/upload/{$attachment->id}", [], [], ['file' => $this->files->uploadedTextFile('text.txt')]), + 'getUpdateForm' => $this->get("/attachments/edit/{$attachment->id}"), + 'update' => $this->put("/attachments/{$attachment->id}", ['attachment_edit_name' => 'new_name']), + 'listForPage' => $this->get("/attachments/get/page/{$page->id}"), + 'sortForPage' => $this->put("/attachments/sort/page/{$page->id}", ['order' => [$attachment->id]]), + 'get' => $this->get("/attachments/{$attachment->id}"), + 'delete' => $this->delete("/attachments/{$attachment->id}"), + ]; + + foreach ($actions as $action => $response) { + $this->assertEquals(404, $response->getStatusCode(), "Failed to assert 404 status for {$action}"); + } + } + public function test_file_access_with_open_query_param_provides_inline_response_with_correct_content_type() { $page = $this->entities->page(); diff --git a/tests/User/UserManagementTest.php b/tests/User/UserManagementTest.php index d50ac208791..40bf56ab7e3 100644 --- a/tests/User/UserManagementTest.php +++ b/tests/User/UserManagementTest.php @@ -79,6 +79,10 @@ public function test_user_updating() public function test_user_password_update() { $user = $this->users->viewer(); + $rememberToken = Str::random(); + $user->remember_token = $rememberToken; + $user->save(); + $userProfilePage = '/settings/users/' . $user->id; $this->asAdmin()->get($userProfilePage); @@ -93,8 +97,9 @@ public function test_user_password_update() 'password-confirm' => 'newpassword', ])->assertRedirect('/settings/users'); - $userPassword = User::query()->find($user->id)->password; - $this->assertTrue(Hash::check('newpassword', $userPassword)); + $user->refresh(); + $this->assertTrue(Hash::check('newpassword', $user->password)); + $this->assertNotEquals($rememberToken, $user->remember_token); } public function test_user_can_be_updated_with_single_char_name() diff --git a/tests/User/UserMyAccountTest.php b/tests/User/UserMyAccountTest.php index e2c054befe4..283cd3737bf 100644 --- a/tests/User/UserMyAccountTest.php +++ b/tests/User/UserMyAccountTest.php @@ -176,6 +176,24 @@ public function test_auth_password_change_requires_current_password() $this->assertTrue(Hash::check('password', $editor->password)); } + public function test_auth_password_change_rotates_remember_token() + { + $editor = $this->users->editor(); + $rememberToken = Str::random(16); + $editor->remember_token = $rememberToken; + $editor->password = Hash::make('password'); + $editor->save(); + + $this->actingAs($editor)->put('/my-account/auth/password', [ + 'password' => 'newpassword101', + 'password-confirm' => 'newpassword101', + 'password-current' => 'password' + ]); + + $editor->refresh(); + $this->assertNotEquals($rememberToken, $editor->remember_token); + } + public function test_auth_password_change_hides_if_not_using_email_auth() { $editor = $this->users->editor(); diff --git a/version b/version index 9eadc470b49..9c07eb9239c 100644 --- a/version +++ b/version @@ -1 +1 @@ -v26.05-dev +v26.09.2