@ckeditor/ckeditor5-bookmark 45.2.0-alpha.7 → 45.2.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/ui/bookmarkformview.ts","../src/utils.ts","../src/insertbookmarkcommand.ts","../src/updatebookmarkcommand.ts","../src/bookmarkediting.ts","../src/bookmarkui.ts","../src/bookmark.ts"],"names":["BookmarkFormView","View","focusTracker","FocusTracker","keystrokes","KeystrokeHandler","_focusables","ViewCollection","constructor","locale","validators","_validators","backButtonView","_createBackButton","saveButtonView","_createSaveButton","idInputView","_createIdInput","children","createCollection","_createHeaderView","add","FormRowView","class","set","data","cancel","fire","_focusCycler","FocusCycler","focusables","keystrokeHandler","actions","focusPrevious","focusNext","setTemplate","tag","attributes","tabindex","render","submitHandler","view","childViews","forEach","v","element","listenTo","destroy","focus","resetFormStatus","validator","errorText","t","backButton","ButtonView","label","icon","IconPreviousArrow","tooltip","delegate","to","saveButton","withText","type","header","FormHeaderView","labeledInput","LabeledFieldView","createLabeledInputText","infoText","id","fieldView","value","trim","isBookmarkIdValid","test","InsertBookmarkCommand","Command","model","editor","selection","document","position","_getPositionToInsertBookmark","isEnabled","execute","options","bookmarkId","logWarning","change","writer","isBookmarkAllowed","schema","checkChild","newPosition","bookmarkElement","createElement","Object","fromEntries","getAttributes","insertObject","setSelection","firstRange","getFirstRange","startPosition","start","previousPosition","item","is","createPositionAt","UpdateBookmarkCommand","selectedBookmark","getSelectedBookmark","getAttribute","undefined","setAttribute","getSelectedElement","BookmarkEditing","Plugin","_bookmarkElements","Map","pluginName","isOfficialPlugin","config","define","toolbar","_defineSchema","_defineConverters","commands","_trackBookmarkElements","getElementForBookmarkId","Set","values","register","inheritAllFrom","allowAttributes","disallowAttributes","conversion","htmlProcessor","domConverter","registerInlineObjectMatcher","upcastMatcher","editing","for","elementToElement","name","modelElement","emptyElement","createEmptyElement","containerElement","createContainerElement","_createBookmarkUIElement","setCustomProperty","labelCreator","toWidget","dispatcher","on","dataViewModelAnchorInsertion","createUIElement","domDocument","domElement","toDomElement","IconView","content","IconBookmarkInline","isColorInherited","appendChild","root","rootName","delete","expectEmpty","isAnchorElement","isEmpty","hasIdAttribute","hasAttribute","hasNameAttribute","hasHrefAttribute","evt","conversionApi","viewItem","match","consumable","enableNonEmptyAnchorConversion","isEnabledNonEmptyAnchorConversion","modelWriter","anchorId","anchorName","bookmark","safeInsert","modelCursor","consume","updateConversionResult","modelRange","convertChildren","createRange","end","get","VISUAL_SELECTION_MARKER_NAME","BookmarkUI","formView","requires","ContextualBalloon","WidgetToolbarRepository","_balloon","plugins","has","_registerLinkProvider","_registerComponents","markerToHighlight","classes","markerToElement","markerRange","isCollapsed","markerElement","addClass","widgetToolbarRepository","defaultPositions","BalloonPanelView","ariaLabel","items","getRelatedElement","getSelectedBookmarkWidget","balloonClassName","positions","southArrowNorth","southArrowNorthMiddleWest","southArrowNorthMiddleEast","southArrowNorthWest","southArrowNorthEast","northArrowSouth","northArrowSouthMiddleWest","northArrowSouthMiddleEast","northArrowSouthWest","northArrowSouthEast","viewportStickyNorth","_createFormView","_enableUserBalloonInteractions","insertBookmarkCommand","updateBookmarkCommand","CssTransitionDisablerMixin","getFormValidators","bind","toMany","areEnabled","some","_hideFormView","isValid","_getSelectedBookmarkElement","ui","update","linksUI","bookmarkEditing","getListItems","Array","from","getAllBookmarkNames","sort","a","b","localeCompare","map","href","IconBookmarkMedium","getItem","find","IconBookmarkSmall","registerLinksListProvider","emptyListPlaceholder","navigate","_scrollToBookmark","slice","scrollToTheSelection","alignToTop","forceScroll","componentFactory","buttonView","_createBookmarkButton","MenuBarMenuListItemButtonView","LabelView","extendTemplate","button","IconPencil","_showFormView","deleteCommand","IconRemove","ButtonClass","insertCommand","updateCommand","IconBookmark","_isFormVisible","clickOutsideHandler","emitter","activator","_isFormInPanel","contextElements","callback","_createViews","disableCssTransitions","_getBalloonPositionData","isVisible","visibleView","select","enableCssTransitions","_removeFormView","updateFocus","reset","remove","_hideFakeVisualSelection","_showFakeVisualSelection","_addFormView","showStack","_startUpdatingUI","stopListening","viewDocument","prevSelectedBookmark","prevSelectionParent","getSelectionParent","selectionParent","updatePosition","getAncestors","reverse","node","hasView","target","markers","markerViewElements","mapper","markerNameToElements","newRange","createPositionBefore","createPositionAfter","length","viewRangeToDom","viewElement","toViewElement","mapViewToDom","range","updateMarker","isAtEnd","getLastMatchingPosition","isContent","boundaries","addMarker","usingOperation","affectsData","removeMarker","form","selectedElement","existingBookmarkForId","isWidget","getCustomProperty","Bookmark","Widget"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { toWidget, WidgetToolbarRepository, isWidget, Widget } from '@ckeditor/ckeditor5-widget/dist/index.js';\nimport { View, ViewCollection, FormRowView, FocusCycler, submitHandler, ButtonView, FormHeaderView, LabeledFieldView, createLabeledInputText, IconView, ContextualBalloon, BalloonPanelView, CssTransitionDisablerMixin, MenuBarMenuListItemButtonView, LabelView, clickOutsideHandler } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconBookmarkInline, IconPencil, IconRemove, IconBookmark, IconBookmarkMedium, IconBookmarkSmall } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { FocusTracker, KeystrokeHandler, logWarning } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { IconPreviousArrow } from '@ckeditor/ckeditor5-icons/dist/index.js';\n\n/**\n * The bookmark form view controller class.\n *\n * See {@link module:bookmark/ui/bookmarkformview~BookmarkFormView}.\n */ class BookmarkFormView extends View {\n /**\n\t * Tracks information about DOM focus in the form.\n\t */ focusTracker = new FocusTracker();\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes = new KeystrokeHandler();\n /**\n\t * The ID input view.\n\t */ idInputView;\n /**\n\t * The Back button view displayed in the header.\n\t */ backButtonView;\n /**\n\t * A button used to submit the form.\n\t */ saveButtonView;\n /**\n\t * A collection of form child views in the form.\n\t */ children;\n /**\n\t * An array of form validators used by {@link #isValid}.\n\t */ _validators;\n /**\n\t * A collection of views that can be focused in the form.\n\t */ _focusables = new ViewCollection();\n /**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */ _focusCycler;\n /**\n\t * Creates an instance of the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param validators Form validators used by {@link #isValid}.\n\t */ constructor(locale, validators){\n super(locale);\n this._validators = validators;\n // Create buttons.\n this.backButtonView = this._createBackButton();\n this.saveButtonView = this._createSaveButton();\n // Create input fields.\n this.idInputView = this._createIdInput();\n this.children = this.createCollection([\n this._createHeaderView()\n ]);\n this.children.add(new FormRowView(locale, {\n children: [\n this.idInputView,\n this.saveButtonView\n ],\n class: [\n 'ck-form__row_with-submit',\n 'ck-form__row_large-top-padding'\n ]\n }));\n // Close the panel on esc key press when the **form has focus**.\n this.keystrokes.set('Esc', (data, cancel)=>{\n this.fire('cancel');\n cancel();\n });\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: [\n 'ck',\n 'ck-form',\n 'ck-bookmark-form',\n 'ck-responsive-form'\n ],\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: this.children\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n submitHandler({\n view: this\n });\n const childViews = [\n this.backButtonView,\n this.idInputView,\n this.saveButtonView\n ];\n childViews.forEach((v)=>{\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */ focus() {\n this.idInputView.focus();\n }\n /**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t */ isValid() {\n this.resetFormStatus();\n for (const validator of this._validators){\n const errorText = validator(this);\n // One error per field is enough.\n if (errorText) {\n // Apply updated error.\n this.idInputView.errorText = errorText;\n return false;\n }\n }\n return true;\n }\n /**\n\t * Cleans up the supplementary error and information text of the {@link #idInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */ resetFormStatus() {\n this.idInputView.errorText = null;\n }\n /**\n\t * Creates a back button view that cancels the form.\n\t */ _createBackButton() {\n const t = this.locale.t;\n const backButton = new ButtonView(this.locale);\n backButton.set({\n class: 'ck-button-back',\n label: t('Back'),\n icon: IconPreviousArrow,\n tooltip: true\n });\n backButton.delegate('execute').to(this, 'cancel');\n return backButton;\n }\n /**\n\t * Creates a save button view that saves the bookmark.\n\t */ _createSaveButton() {\n const t = this.locale.t;\n const saveButton = new ButtonView(this.locale);\n saveButton.set({\n label: t('Save'),\n withText: true,\n type: 'submit',\n class: 'ck-button-action ck-button-bold'\n });\n return saveButton;\n }\n /**\n\t * Creates a header view for the form.\n\t */ _createHeaderView() {\n const t = this.locale.t;\n const header = new FormHeaderView(this.locale, {\n label: t('Bookmark')\n });\n header.children.add(this.backButtonView, 0);\n return header;\n }\n /**\n\t * Creates a labeled input view.\n\t *\n\t * @returns Labeled field view instance.\n\t */ _createIdInput() {\n const t = this.locale.t;\n const labeledInput = new LabeledFieldView(this.locale, createLabeledInputText);\n labeledInput.label = t('Bookmark name');\n labeledInput.infoText = t('Enter the bookmark name without spaces.');\n labeledInput.class = 'ck-labeled-field-view_full-width';\n return labeledInput;\n }\n /**\n\t * The native DOM `value` of the {@link #idInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t */ get id() {\n const { element } = this.idInputView.fieldView;\n if (!element) {\n return null;\n }\n return element.value.trim();\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module bookmark/utils\n */ /**\n * Returns `true` if the bookmark id is valid; otherwise, returns `false`.\n */ function isBookmarkIdValid(id) {\n if (!id || typeof id !== 'string') {\n return false;\n }\n if (/\\s/.test(id)) {\n return false;\n }\n return true;\n}\n\n/**\n * The insert bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'insertBookmark'`.\n *\n * To insert a bookmark element at place where is the current collapsed selection or where is the beginning of document selection,\n * execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'insertBookmark', { bookmarkId: 'foo_bar' } );\n * ```\n */ class InsertBookmarkCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const position = this._getPositionToInsertBookmark(selection);\n this.isEnabled = !!position;\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The value of the `bookmarkId` attribute.\n\t */ execute(options) {\n if (!options) {\n return;\n }\n const { bookmarkId } = options;\n if (!isBookmarkIdValid(bookmarkId)) {\n /**\n\t\t\t * Insert bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error insert-bookmark-command-executed-with-invalid-name\n\t\t\t */ logWarning('insert-bookmark-command-executed-with-invalid-name');\n return;\n }\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n model.change((writer)=>{\n let position = this._getPositionToInsertBookmark(selection);\n const isBookmarkAllowed = model.schema.checkChild(position, 'bookmark');\n // If the position does not allow for `bookmark` but allows for a `paragraph`\n // then insert a `paragraph` then we will insert a `bookmark` inside.\n if (!isBookmarkAllowed) {\n const newPosition = editor.execute('insertParagraph', {\n position\n });\n if (!newPosition) {\n return;\n }\n position = newPosition;\n }\n const bookmarkElement = writer.createElement('bookmark', {\n ...Object.fromEntries(selection.getAttributes()),\n bookmarkId\n });\n model.insertObject(bookmarkElement, position, null, {\n setSelection: 'on'\n });\n });\n }\n /**\n\t * Returns the position where the bookmark can be inserted. And if it is not possible to insert a bookmark,\n\t * check if it is possible to insert a paragraph.\n\t */ _getPositionToInsertBookmark(selection) {\n const model = this.editor.model;\n const schema = model.schema;\n const firstRange = selection.getFirstRange();\n const startPosition = firstRange.start;\n // Return position if it is allowed to insert bookmark or if it is allowed to insert paragraph.\n if (isBookmarkAllowed(startPosition, schema)) {\n return startPosition;\n }\n for (const { previousPosition, item } of firstRange){\n // When the table cell is selected (from the outside) we look for the first paragraph-like element inside.\n if (item.is('element') && schema.checkChild(item, '$text') && isBookmarkAllowed(item, schema)) {\n return model.createPositionAt(item, 0);\n }\n if (isBookmarkAllowed(previousPosition, schema)) {\n return previousPosition;\n }\n }\n return null;\n }\n}\n/**\n * Verify if the given position allows for bookmark insertion. Verify if auto-paragraphing could help.\n */ function isBookmarkAllowed(position, schema) {\n if (schema.checkChild(position, 'bookmark')) {\n return true;\n }\n if (!schema.checkChild(position, 'paragraph')) {\n return false;\n }\n return schema.checkChild('paragraph', 'bookmark');\n}\n\n/**\n * The update bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'updateBookmark'`.\n *\n * To update the `bookmarkId` of current selected bookmark element, execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'updateBookmark', { bookmarkId: 'newId' } );\n * ```\n */ class UpdateBookmarkCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedBookmark = getSelectedBookmark(selection);\n this.isEnabled = !!selectedBookmark;\n this.value = selectedBookmark ? selectedBookmark.getAttribute('bookmarkId') : undefined;\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The new value of the `bookmarkId` attribute to set.\n\t */ execute(options) {\n if (!options) {\n return;\n }\n const { bookmarkId } = options;\n if (!isBookmarkIdValid(bookmarkId)) {\n /**\n\t\t\t * Update bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error update-bookmark-command-executed-with-invalid-name\n\t\t\t */ logWarning('update-bookmark-command-executed-with-invalid-name');\n return;\n }\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedBookmark = getSelectedBookmark(selection);\n if (selectedBookmark) {\n model.change((writer)=>{\n writer.setAttribute('bookmarkId', bookmarkId, selectedBookmark);\n });\n }\n }\n}\n/**\n * Returns the selected `bookmark` element in the model, if any.\n */ function getSelectedBookmark(selection) {\n const element = selection.getSelectedElement();\n if (!!element && element.is('element', 'bookmark')) {\n return element;\n }\n return null;\n}\n\n/**\n * The bookmark editing plugin.\n */ class BookmarkEditing extends Plugin {\n /**\n\t * A collection of bookmarks elements in the document.\n\t */ _bookmarkElements = new Map();\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'BookmarkEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('bookmark', {\n toolbar: [\n 'bookmarkPreview',\n '|',\n 'editBookmark',\n 'removeBookmark'\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const { editor } = this;\n this._defineSchema();\n this._defineConverters();\n editor.commands.add('insertBookmark', new InsertBookmarkCommand(editor));\n editor.commands.add('updateBookmark', new UpdateBookmarkCommand(editor));\n this.listenTo(editor.model.document, 'change:data', ()=>{\n this._trackBookmarkElements();\n });\n }\n /**\n\t * Returns the model element for the given bookmark ID if it exists.\n\t */ getElementForBookmarkId(bookmarkId) {\n for (const [element, id] of this._bookmarkElements){\n if (id == bookmarkId) {\n return element;\n }\n }\n return null;\n }\n /**\n\t * Returns all unique bookmark names existing in the content.\n\t */ getAllBookmarkNames() {\n return new Set(this._bookmarkElements.values());\n }\n /**\n\t * Defines the schema for the bookmark feature.\n\t */ _defineSchema() {\n const schema = this.editor.model.schema;\n schema.register('bookmark', {\n inheritAllFrom: '$inlineObject',\n allowAttributes: 'bookmarkId',\n disallowAttributes: [\n 'linkHref',\n 'htmlA'\n ]\n });\n }\n /**\n\t * Defines the converters for the bookmark feature.\n\t */ _defineConverters() {\n const { editor } = this;\n const { conversion, t } = editor;\n editor.data.htmlProcessor.domConverter.registerInlineObjectMatcher((element)=>upcastMatcher(element));\n // Register an inline object matcher so that bookmarks <a>s are correctly recognized as inline elements in editing pipeline.\n // This prevents converting spaces around bookmarks to `&nbsp;`s.\n editor.editing.view.domConverter.registerInlineObjectMatcher((element)=>upcastMatcher(element, false));\n conversion.for('dataDowncast').elementToElement({\n model: {\n name: 'bookmark',\n attributes: [\n 'bookmarkId'\n ]\n },\n view: (modelElement, { writer })=>{\n const emptyElement = writer.createEmptyElement('a', {\n 'id': modelElement.getAttribute('bookmarkId')\n });\n // `getFillerOffset` is not needed to set here, because `emptyElement` has already covered it.\n return emptyElement;\n }\n });\n conversion.for('editingDowncast').elementToElement({\n model: {\n name: 'bookmark',\n attributes: [\n 'bookmarkId'\n ]\n },\n view: (modelElement, { writer })=>{\n const id = modelElement.getAttribute('bookmarkId');\n const containerElement = writer.createContainerElement('a', {\n id,\n class: 'ck-bookmark'\n }, [\n this._createBookmarkUIElement(writer)\n ]);\n writer.setCustomProperty('bookmark', true, containerElement);\n this._bookmarkElements.set(modelElement, id);\n // `getFillerOffset` is not needed to set here, because `toWidget` has already covered it.\n const labelCreator = ()=>`${id} ${t('bookmark widget')}`;\n return toWidget(containerElement, writer, {\n label: labelCreator\n });\n }\n });\n conversion.for('upcast').add((dispatcher)=>dispatcher.on('element:a', dataViewModelAnchorInsertion(editor)));\n }\n /**\n\t * Creates a UI element for the `bookmark` representation in editing view.\n\t */ _createBookmarkUIElement(writer) {\n return writer.createUIElement('span', {\n class: 'ck-bookmark__icon'\n }, function(domDocument) {\n const domElement = this.toDomElement(domDocument);\n const icon = new IconView();\n icon.set({\n content: IconBookmarkInline,\n isColorInherited: false\n });\n icon.render();\n domElement.appendChild(icon.element);\n return domElement;\n });\n }\n /**\n\t * Tracking the added or removed bookmark elements.\n\t */ _trackBookmarkElements() {\n this._bookmarkElements.forEach((id, element)=>{\n if (element.root.rootName === '$graveyard') {\n this._bookmarkElements.delete(element);\n }\n });\n }\n}\n/**\n * A helper function to match an `anchor` element which must contain `id` or `name` attribute but without `href` attribute,\n * also when `expectEmpty` is set to `true` but the element is not empty matcher should not match any element.\n *\n * @param element The element to be checked.\n * @param expectEmpty Default set to `true`, when set to `false` matcher expects that `anchor` is not empty;\n * in editing pipeline it's not empty because it contains the `UIElement`.\n */ function upcastMatcher(element, expectEmpty = true) {\n const isAnchorElement = element.name === 'a';\n if (!isAnchorElement) {\n return null;\n }\n if (expectEmpty && !element.isEmpty) {\n return null;\n }\n const hasIdAttribute = element.hasAttribute('id');\n const hasNameAttribute = element.hasAttribute('name');\n const hasHrefAttribute = element.hasAttribute('href');\n if (hasIdAttribute && !hasHrefAttribute) {\n return {\n name: true,\n attributes: [\n 'id'\n ]\n };\n }\n if (hasNameAttribute && !hasHrefAttribute) {\n return {\n name: true,\n attributes: [\n 'name'\n ]\n };\n }\n return null;\n}\n/**\n * A view-to-model converter that handles converting pointed or wrapped anchors with `id` and/or `name` attributes.\n *\n * @returns Returns a conversion callback.\n */ function dataViewModelAnchorInsertion(editor) {\n return (evt, data, conversionApi)=>{\n const viewItem = data.viewItem;\n const match = upcastMatcher(viewItem, false);\n if (!match || !conversionApi.consumable.test(viewItem, match)) {\n return;\n }\n const enableNonEmptyAnchorConversion = isEnabledNonEmptyAnchorConversion(editor);\n if (!enableNonEmptyAnchorConversion && !viewItem.isEmpty) {\n return;\n }\n const modelWriter = conversionApi.writer;\n const anchorId = viewItem.getAttribute('id');\n const anchorName = viewItem.getAttribute('name');\n const bookmarkId = anchorId || anchorName;\n const bookmark = modelWriter.createElement('bookmark', {\n bookmarkId\n });\n if (!conversionApi.safeInsert(bookmark, data.modelCursor)) {\n return;\n }\n conversionApi.consumable.consume(viewItem, match);\n if (anchorId === anchorName) {\n conversionApi.consumable.consume(viewItem, {\n attributes: [\n 'name'\n ]\n });\n }\n conversionApi.updateConversionResult(bookmark, data);\n // Convert children uses the result of `bookmark` insertion to convert the `anchor` content\n // after the bookmark element (not inside it).\n const { modelCursor, modelRange } = conversionApi.convertChildren(viewItem, data.modelCursor);\n data.modelCursor = modelCursor;\n data.modelRange = modelWriter.createRange(data.modelRange.start, modelRange.end);\n };\n}\n/**\n * Normalize the bookmark configuration option `enableNonEmptyAnchorConversion`.\n */ function isEnabledNonEmptyAnchorConversion(editor) {\n const enableNonEmptyAnchorConversion = editor.config.get('bookmark.enableNonEmptyAnchorConversion');\n // When not defined, option `enableNonEmptyAnchorConversion` by default is set to `true`.\n return enableNonEmptyAnchorConversion !== undefined ? enableNonEmptyAnchorConversion : true;\n}\n\nconst VISUAL_SELECTION_MARKER_NAME = 'bookmark-ui';\n/**\n * The UI plugin of the bookmark feature.\n *\n * It registers the `'bookmark'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * which inserts the `bookmark` element upon selection.\n */ class BookmarkUI extends Plugin {\n /**\n\t * The form view displayed inside the balloon.\n\t */ formView = null;\n /**\n\t * The contextual balloon plugin instance.\n\t */ _balloon;\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n BookmarkEditing,\n ContextualBalloon,\n WidgetToolbarRepository\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'BookmarkUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n this._balloon = editor.plugins.get(ContextualBalloon);\n // Register the link provider in link plugin to display the link form.\n if (editor.plugins.has('LinkUI')) {\n this._registerLinkProvider();\n }\n // Create toolbar buttons.\n this._registerComponents();\n // Renders a fake visual selection marker on an expanded selection.\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: {\n classes: [\n 'ck-fake-bookmark-selection'\n ]\n }\n });\n // Renders a fake visual selection marker on a collapsed selection.\n editor.conversion.for('editingDowncast').markerToElement({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: (data, { writer })=>{\n if (!data.markerRange.isCollapsed) {\n return null;\n }\n const markerElement = writer.createUIElement('span');\n writer.addClass([\n 'ck-fake-bookmark-selection',\n 'ck-fake-bookmark-selection_collapsed'\n ], markerElement);\n return markerElement;\n }\n });\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n const t = editor.locale.t;\n const widgetToolbarRepository = this.editor.plugins.get(WidgetToolbarRepository);\n const defaultPositions = BalloonPanelView.defaultPositions;\n widgetToolbarRepository.register('bookmark', {\n ariaLabel: t('Bookmark toolbar'),\n items: editor.config.get('bookmark.toolbar'),\n getRelatedElement: getSelectedBookmarkWidget,\n balloonClassName: 'ck-bookmark-balloon ck-toolbar-container',\n // Override positions to the same list as for balloon panel default\n // so widget toolbar will try to use same position as form view.\n positions: [\n defaultPositions.southArrowNorth,\n defaultPositions.southArrowNorthMiddleWest,\n defaultPositions.southArrowNorthMiddleEast,\n defaultPositions.southArrowNorthWest,\n defaultPositions.southArrowNorthEast,\n defaultPositions.northArrowSouth,\n defaultPositions.northArrowSouthMiddleWest,\n defaultPositions.northArrowSouthMiddleEast,\n defaultPositions.northArrowSouthWest,\n defaultPositions.northArrowSouthEast,\n defaultPositions.viewportStickyNorth\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n if (this.formView) {\n this.formView.destroy();\n }\n }\n /**\n\t * Creates views.\n\t */ _createViews() {\n this.formView = this._createFormView();\n // Attach lifecycle actions to the the balloon.\n this._enableUserBalloonInteractions();\n }\n /**\n\t * Creates the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} instance.\n\t */ _createFormView() {\n const editor = this.editor;\n const locale = editor.locale;\n const t = locale.t;\n const insertBookmarkCommand = editor.commands.get('insertBookmark');\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const commands = [\n insertBookmarkCommand,\n updateBookmarkCommand\n ];\n const formView = new (CssTransitionDisablerMixin(BookmarkFormView))(locale, getFormValidators(editor));\n formView.idInputView.fieldView.bind('value').to(updateBookmarkCommand, 'value');\n formView.saveButtonView.bind('label').to(updateBookmarkCommand, 'value', (value)=>value ? t('Save') : t('Insert'));\n // Form elements should be read-only when corresponding commands are disabled.\n formView.idInputView.bind('isEnabled').toMany(commands, 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n // Disable the \"save\" button if the command is disabled.\n formView.saveButtonView.bind('isEnabled').toMany(commands, 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n // Close the panel on form after clicking back button.\n this.listenTo(formView, 'cancel', ()=>{\n this._hideFormView();\n });\n // Execute link command after clicking the \"Save\" button.\n this.listenTo(formView, 'submit', ()=>{\n if (formView.isValid()) {\n const value = formView.id;\n if (this._getSelectedBookmarkElement()) {\n editor.execute('updateBookmark', {\n bookmarkId: value\n });\n } else {\n editor.execute('insertBookmark', {\n bookmarkId: value\n });\n }\n this._hideFormView();\n }\n });\n // Update balloon position when form error changes.\n this.listenTo(formView.idInputView, 'change:errorText', ()=>{\n editor.ui.update();\n });\n return formView;\n }\n /**\n\t * Creates link form menu list entry, so it'll be possible to access\n\t * the list of the bookmarks from the link form.\n\t */ _registerLinkProvider() {\n const t = this.editor.locale.t;\n const linksUI = this.editor.plugins.get('LinkUI');\n const bookmarkEditing = this.editor.plugins.get(BookmarkEditing);\n const getListItems = ()=>Array.from(bookmarkEditing.getAllBookmarkNames()).sort((a, b)=>a.localeCompare(b)).map((bookmarkId)=>({\n id: bookmarkId,\n href: `#${bookmarkId}`,\n label: bookmarkId,\n icon: IconBookmarkMedium\n }));\n const getItem = (href)=>{\n const bookmark = [\n ...bookmarkEditing.getAllBookmarkNames()\n ].find((item)=>`#${item}` === href);\n if (!bookmark) {\n return null;\n }\n return {\n href,\n label: bookmark,\n icon: IconBookmarkSmall,\n tooltip: t('Scroll to bookmark')\n };\n };\n linksUI.registerLinksListProvider({\n label: t('Bookmarks'),\n emptyListPlaceholder: t('No bookmarks available.'),\n navigate: ({ href })=>this._scrollToBookmark(href),\n getListItems,\n getItem\n });\n }\n /**\n\t * Scrolls the editor to the bookmark with the given id.\n\t */ _scrollToBookmark(href) {\n const bookmarkEditing = this.editor.plugins.get(BookmarkEditing);\n const bookmarkElement = bookmarkEditing.getElementForBookmarkId(href.slice(1));\n if (!bookmarkElement) {\n return false;\n }\n this.editor.model.change((writer)=>{\n writer.setSelection(bookmarkElement, 'on');\n });\n this.editor.editing.view.scrollToTheSelection({\n alignToTop: true,\n forceScroll: true\n });\n return true;\n }\n /**\n\t * Creates a toolbar Bookmark button. Clicking this button will show\n\t * a {@link #_balloon} attached to the selection.\n\t */ _registerComponents() {\n const editor = this.editor;\n editor.ui.componentFactory.add('bookmark', ()=>{\n const buttonView = this._createBookmarkButton(ButtonView);\n buttonView.set({\n tooltip: true\n });\n return buttonView;\n });\n editor.ui.componentFactory.add('menuBar:bookmark', ()=>{\n return this._createBookmarkButton(MenuBarMenuListItemButtonView);\n });\n // Bookmark toolbar buttons.\n editor.ui.componentFactory.add('bookmarkPreview', (locale)=>{\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const label = new LabelView(locale);\n label.extendTemplate({\n attributes: {\n class: [\n 'ck-bookmark-toolbar__preview'\n ]\n }\n });\n label.bind('text').to(updateBookmarkCommand, 'value');\n return label;\n });\n editor.ui.componentFactory.add('editBookmark', (locale)=>{\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const button = new ButtonView(locale);\n const t = locale.t;\n button.set({\n label: t('Edit bookmark'),\n icon: IconPencil,\n tooltip: true\n });\n button.bind('isEnabled').to(updateBookmarkCommand);\n this.listenTo(button, 'execute', ()=>{\n this._showFormView();\n });\n return button;\n });\n editor.ui.componentFactory.add('removeBookmark', (locale)=>{\n const deleteCommand = editor.commands.get('delete');\n const button = new ButtonView(locale);\n const t = locale.t;\n button.set({\n label: t('Remove bookmark'),\n icon: IconRemove,\n tooltip: true\n });\n button.bind('isEnabled').to(deleteCommand);\n this.listenTo(button, 'execute', ()=>{\n editor.execute('delete');\n editor.editing.view.focus();\n });\n return button;\n });\n }\n /**\n\t * Creates a button for `bookmark` command to use either in toolbar or in menu bar.\n\t */ _createBookmarkButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const insertCommand = editor.commands.get('insertBookmark');\n const updateCommand = editor.commands.get('updateBookmark');\n const t = locale.t;\n view.set({\n label: t('Bookmark'),\n icon: IconBookmark\n });\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.editing.view.scrollToTheSelection();\n this._showFormView();\n });\n view.bind('isEnabled').toMany([\n insertCommand,\n updateCommand\n ], 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n view.bind('isOn').to(updateCommand, 'value', (value)=>!!value);\n return view;\n }\n /**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} is visible or not.\n\t */ _enableUserBalloonInteractions() {\n // Close the panel on the Esc key press when the editable has focus and the balloon is visible.\n this.editor.keystrokes.set('Esc', (data, cancel)=>{\n if (this._isFormVisible) {\n this._hideFormView();\n cancel();\n }\n });\n // Close on click outside of balloon panel element.\n clickOutsideHandler({\n emitter: this.formView,\n activator: ()=>this._isFormInPanel,\n contextElements: ()=>[\n this._balloon.view.element\n ],\n callback: ()=>{\n // Focusing on the editable during a click outside the balloon panel might\n // cause the selection to move to the beginning of the editable, so we avoid\n // focusing on it during this action.\n // See: https://github.com/ckeditor/ckeditor5/issues/18253\n this._hideFormView(false);\n }\n });\n }\n /**\n\t * Adds the {@link #formView} to the {@link #_balloon}.\n\t */ _addFormView() {\n if (!this.formView) {\n this._createViews();\n }\n if (this._isFormInPanel) {\n return;\n }\n const updateBookmarkCommand = this.editor.commands.get('updateBookmark');\n this.formView.disableCssTransitions();\n this.formView.resetFormStatus();\n this._balloon.add({\n view: this.formView,\n position: this._getBalloonPositionData()\n });\n this.formView.backButtonView.isVisible = updateBookmarkCommand.isEnabled;\n this.formView.idInputView.fieldView.value = updateBookmarkCommand.value || '';\n // Select input when form view is currently visible.\n if (this._balloon.visibleView === this.formView) {\n this.formView.idInputView.fieldView.select();\n }\n this.formView.enableCssTransitions();\n }\n /**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */ _removeFormView(updateFocus = true) {\n // Blur the input element before removing it from DOM to prevent issues in some browsers.\n // See https://github.com/ckeditor/ckeditor5/issues/1501.\n this.formView.saveButtonView.focus();\n // Reset the ID field to update the state of the submit button.\n this.formView.idInputView.fieldView.reset();\n this._balloon.remove(this.formView);\n // Because the form has an input which has focus, the focus must be brought back\n // to the editor. Otherwise, it would be lost.\n if (updateFocus) {\n this.editor.editing.view.focus();\n }\n this._hideFakeVisualSelection();\n }\n /**\n\t * Shows the {@link #formView}.\n\t */ _showFormView() {\n if (!this.formView) {\n this._createViews();\n }\n if (!this._getSelectedBookmarkElement()) {\n this._showFakeVisualSelection();\n }\n this._addFormView();\n // Be sure panel with bookmark is visible.\n this._balloon.showStack('main');\n // Begin responding to ui#update once the UI is added.\n this._startUpdatingUI();\n }\n /**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */ _hideFormView(updateFocus = true) {\n if (!this._isFormInPanel) {\n return;\n }\n const editor = this.editor;\n this.stopListening(editor.ui, 'update');\n this.stopListening(this._balloon, 'change:visibleView');\n // Make sure the focus always gets back to the editable _before_ removing the focused form view.\n // Doing otherwise causes issues in some browsers. See https://github.com/ckeditor/ckeditor5-link/issues/193.\n if (updateFocus) {\n editor.editing.view.focus();\n }\n // Remove form first because it's on top of the stack.\n this._removeFormView(updateFocus);\n this._hideFakeVisualSelection();\n }\n /**\n\t * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to\n\t * reposition itself when the editor UI should be refreshed.\n\t *\n\t * See: {@link #_hideFormView} to learn when the UI stops reacting to the `update` event.\n\t */ _startUpdatingUI() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n let prevSelectedBookmark = this._getSelectedBookmarkElement();\n let prevSelectionParent = getSelectionParent();\n const update = ()=>{\n const selectedBookmark = this._getSelectedBookmarkElement();\n const selectionParent = getSelectionParent();\n // Hide the panel if:\n //\n // * the selection went out of the EXISTING bookmark element. E.g. user moved the caret out\n // of the bookmark,\n // * the selection went to a different parent when creating a NEW bookmark. E.g. someone\n // else modified the document.\n // * the selection has expanded (e.g. displaying bookmark actions then pressing SHIFT+Right arrow).\n //\n if (prevSelectedBookmark && !selectedBookmark || !prevSelectedBookmark && selectionParent !== prevSelectionParent) {\n this._hideFormView();\n } else if (this._isFormVisible) {\n // If still in a bookmark element, simply update the position of the balloon.\n // If there was no bookmark (e.g. inserting one), the balloon must be moved\n // to the new position in the editing view (a new native DOM range).\n this._balloon.updatePosition(this._getBalloonPositionData());\n }\n prevSelectedBookmark = selectedBookmark;\n prevSelectionParent = selectionParent;\n };\n function getSelectionParent() {\n return viewDocument.selection.focus.getAncestors().reverse().find((node)=>node.is('element'));\n }\n this.listenTo(editor.ui, 'update', update);\n this.listenTo(this._balloon, 'change:visibleView', update);\n }\n /**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n\t */ get _isFormInPanel() {\n return !!this.formView && this._balloon.hasView(this.formView);\n }\n /**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon} and it is currently visible.\n\t */ get _isFormVisible() {\n return !!this.formView && this._balloon.visibleView == this.formView;\n }\n /**\n\t * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */ _getBalloonPositionData() {\n const view = this.editor.editing.view;\n const model = this.editor.model;\n let target;\n const bookmarkElement = this._getSelectedBookmarkElement();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n // There are cases when we highlight selection using a marker (#7705, #4721).\n const markerViewElements = Array.from(this.editor.editing.mapper.markerNameToElements(VISUAL_SELECTION_MARKER_NAME));\n const newRange = view.createRange(view.createPositionBefore(markerViewElements[0]), view.createPositionAfter(markerViewElements[markerViewElements.length - 1]));\n target = view.domConverter.viewRangeToDom(newRange);\n } else if (bookmarkElement) {\n target = ()=>{\n const mapper = this.editor.editing.mapper;\n const domConverter = view.domConverter;\n const viewElement = mapper.toViewElement(bookmarkElement);\n return domConverter.mapViewToDom(viewElement);\n };\n }\n if (!target) {\n return;\n }\n return {\n target\n };\n }\n /**\n\t * Returns the bookmark {@link module:engine/view/attributeelement~AttributeElement} under\n\t * the {@link module:engine/view/document~Document editing view's} selection or `null`\n\t * if there is none.\n\t */ _getSelectedBookmarkElement() {\n const selection = this.editor.model.document.selection;\n const element = selection.getSelectedElement();\n if (element && element.is('element', 'bookmark')) {\n return element;\n }\n return null;\n }\n /**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds a 'bookmark-ui' marker into the document that is rendered as a highlight on selected text fragment.\n\t */ _showFakeVisualSelection() {\n const model = this.editor.model;\n model.change((writer)=>{\n const range = model.document.selection.getFirstRange();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n writer.updateMarker(VISUAL_SELECTION_MARKER_NAME, {\n range\n });\n } else {\n if (range.start.isAtEnd) {\n const startPosition = range.start.getLastMatchingPosition(({ item })=>!model.schema.isContent(item), {\n boundaries: range\n });\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range: writer.createRange(startPosition, range.end)\n });\n } else {\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range\n });\n }\n }\n });\n }\n /**\n\t * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.\n\t */ _hideFakeVisualSelection() {\n const model = this.editor.model;\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n model.change((writer)=>{\n writer.removeMarker(VISUAL_SELECTION_MARKER_NAME);\n });\n }\n }\n}\n/**\n * Returns bookmark form validation callbacks.\n */ function getFormValidators(editor) {\n const { t } = editor;\n const bookmarkEditing = editor.plugins.get(BookmarkEditing);\n return [\n (form)=>{\n if (!form.id) {\n return t('Bookmark must not be empty.');\n }\n },\n (form)=>{\n if (form.id && /\\s/.test(form.id)) {\n return t('Bookmark name cannot contain space characters.');\n }\n },\n (form)=>{\n const selectedElement = editor.model.document.selection.getSelectedElement();\n const existingBookmarkForId = bookmarkEditing.getElementForBookmarkId(form.id);\n // Accept change of bookmark ID if no real change is happening (edit -> submit, without changes).\n if (selectedElement === existingBookmarkForId) {\n return;\n }\n if (existingBookmarkForId) {\n return t('Bookmark name already exists.');\n }\n }\n ];\n}\n/**\n * Returns the currently selected bookmark view element.\n */ function getSelectedBookmarkWidget(selection) {\n const element = selection.getSelectedElement();\n if (!element || !isWidget(element) || !element.getCustomProperty('bookmark')) {\n return null;\n }\n return element;\n}\n\n/**\n * The bookmark feature.\n *\n * For a detailed overview, check the {@glink features/bookmarks Bookmarks} feature guide.\n */ class Bookmark extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Bookmark';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n BookmarkEditing,\n BookmarkUI,\n Widget\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { Bookmark, BookmarkEditing, BookmarkUI, InsertBookmarkCommand, UpdateBookmarkCommand };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/ui/bookmarkformview\n */\n\nimport {\n\tButtonView,\n\tFocusCycler,\n\tFormRowView,\n\tLabeledFieldView,\n\tView,\n\tViewCollection,\n\tcreateLabeledInputText,\n\tsubmitHandler,\n\ttype InputTextView,\n\ttype FocusableView,\n\tFormHeaderView\n} from 'ckeditor5/src/ui.js';\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype Locale\n} from 'ckeditor5/src/utils.js';\nimport { IconPreviousArrow } from '@ckeditor/ckeditor5-icons';\n\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/form/form.css';\n\nimport '../../theme/bookmarkform.css';\n\n/**\n * The bookmark form view controller class.\n *\n * See {@link module:bookmark/ui/bookmarkformview~BookmarkFormView}.\n */\nexport default class BookmarkFormView extends View {\n\t/**\n\t * Tracks information about DOM focus in the form.\n\t */\n\tpublic readonly focusTracker = new FocusTracker();\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes = new KeystrokeHandler();\n\n\t/**\n\t * The ID input view.\n\t */\n\tpublic idInputView: LabeledFieldView<InputTextView>;\n\n\t/**\n\t * The Back button view displayed in the header.\n\t */\n\tpublic backButtonView: ButtonView;\n\n\t/**\n\t * A button used to submit the form.\n\t */\n\tpublic saveButtonView: ButtonView;\n\n\t/**\n\t * A collection of form child views in the form.\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * An array of form validators used by {@link #isValid}.\n\t */\n\tprivate readonly _validators: Array<BookmarkFormValidatorCallback>;\n\n\t/**\n\t * A collection of views that can be focused in the form.\n\t */\n\tprivate readonly _focusables = new ViewCollection<FocusableView>();\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */\n\tprivate readonly _focusCycler: FocusCycler;\n\n\t/**\n\t * Creates an instance of the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param validators Form validators used by {@link #isValid}.\n\t */\n\tconstructor( locale: Locale, validators: Array<BookmarkFormValidatorCallback> ) {\n\t\tsuper( locale );\n\n\t\tthis._validators = validators;\n\n\t\t// Create buttons.\n\t\tthis.backButtonView = this._createBackButton();\n\t\tthis.saveButtonView = this._createSaveButton();\n\n\t\t// Create input fields.\n\t\tthis.idInputView = this._createIdInput();\n\n\t\tthis.children = this.createCollection( [ this._createHeaderView() ] );\n\t\tthis.children.add( new FormRowView( locale, {\n\t\t\tchildren: [\n\t\t\t\tthis.idInputView,\n\t\t\t\tthis.saveButtonView\n\t\t\t],\n\t\t\tclass: [\n\t\t\t\t'ck-form__row_with-submit',\n\t\t\t\t'ck-form__row_large-top-padding'\n\t\t\t]\n\t\t} ) );\n\n\t\t// Close the panel on esc key press when the **form has focus**.\n\t\tthis.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tthis.fire<BookmarkFormViewCancelEvent>( 'cancel' );\n\t\t\tcancel();\n\t\t} );\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'form',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-form',\n\t\t\t\t\t'ck-bookmark-form',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-link/issues/90\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: this.children\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tsubmitHandler( {\n\t\t\tview: this\n\t\t} );\n\n\t\tconst childViews = [\n\t\t\tthis.backButtonView,\n\t\t\tthis.idInputView,\n\t\t\tthis.saveButtonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element! );\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */\n\tpublic focus(): void {\n\t\tthis.idInputView!.focus();\n\t}\n\n\t/**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t */\n\tpublic isValid(): boolean {\n\t\tthis.resetFormStatus();\n\n\t\tfor ( const validator of this._validators ) {\n\t\t\tconst errorText = validator( this );\n\n\t\t\t// One error per field is enough.\n\t\t\tif ( errorText ) {\n\t\t\t\t// Apply updated error.\n\t\t\t\tthis.idInputView.errorText = errorText;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cleans up the supplementary error and information text of the {@link #idInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */\n\tpublic resetFormStatus(): void {\n\t\tthis.idInputView.errorText = null;\n\t}\n\n\t/**\n\t * Creates a back button view that cancels the form.\n\t */\n\tprivate _createBackButton(): ButtonView {\n\t\tconst t = this.locale!.t;\n\t\tconst backButton = new ButtonView( this.locale );\n\n\t\tbackButton.set( {\n\t\t\tclass: 'ck-button-back',\n\t\t\tlabel: t( 'Back' ),\n\t\t\ticon: IconPreviousArrow,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbackButton.delegate( 'execute' ).to( this, 'cancel' );\n\n\t\treturn backButton;\n\t}\n\n\t/**\n\t * Creates a save button view that saves the bookmark.\n\t */\n\tprivate _createSaveButton(): ButtonView {\n\t\tconst t = this.locale!.t;\n\t\tconst saveButton = new ButtonView( this.locale );\n\n\t\tsaveButton.set( {\n\t\t\tlabel: t( 'Save' ),\n\t\t\twithText: true,\n\t\t\ttype: 'submit',\n\t\t\tclass: 'ck-button-action ck-button-bold'\n\t\t} );\n\n\t\treturn saveButton;\n\t}\n\n\t/**\n\t * Creates a header view for the form.\n\t */\n\tprivate _createHeaderView(): FormHeaderView {\n\t\tconst t = this.locale!.t;\n\n\t\tconst header = new FormHeaderView( this.locale, {\n\t\t\tlabel: t( 'Bookmark' )\n\t\t} );\n\n\t\theader.children.add( this.backButtonView, 0 );\n\n\t\treturn header;\n\t}\n\n\t/**\n\t * Creates a labeled input view.\n\t *\n\t * @returns Labeled field view instance.\n\t */\n\tprivate _createIdInput(): LabeledFieldView<InputTextView> {\n\t\tconst t = this.locale!.t;\n\t\tconst labeledInput = new LabeledFieldView( this.locale, createLabeledInputText );\n\n\t\tlabeledInput.label = t( 'Bookmark name' );\n\t\tlabeledInput.infoText = t( 'Enter the bookmark name without spaces.' );\n\t\tlabeledInput.class = 'ck-labeled-field-view_full-width';\n\n\t\treturn labeledInput;\n\t}\n\n\t/**\n\t * The native DOM `value` of the {@link #idInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t */\n\tpublic get id(): string | null {\n\t\tconst { element } = this.idInputView.fieldView;\n\n\t\tif ( !element ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn element.value.trim();\n\t}\n}\n\n/**\n * Callback used by {@link ~BookmarkFormView} to check if passed form value is valid.\n *\n * If `undefined` is returned, it is assumed that the form value is correct and there is no error.\n * If string is returned, it is assumed that the form value is incorrect and the returned string is displayed in the error label\n */\nexport type BookmarkFormValidatorCallback = ( form: BookmarkFormView ) => string | undefined;\n\n/**\n * Fired when the form view is canceled.\n *\n * @eventName ~BookmarkFormView#cancel\n */\nexport type BookmarkFormViewCancelEvent = {\n\tname: 'cancel';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/utils\n */\n\n/**\n * Returns `true` if the bookmark id is valid; otherwise, returns `false`.\n */\nexport function isBookmarkIdValid( id: string ): boolean {\n\tif ( !id || typeof id !== 'string' ) {\n\t\treturn false;\n\t}\n\n\tif ( /\\s/.test( id ) ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/insertbookmarkcommand\n */\n\nimport type {\n\tDocumentSelection,\n\tSelection,\n\tPosition,\n\tSchema,\n\tSchemaContextDefinition\n} from 'ckeditor5/src/engine.js';\nimport { logWarning } from 'ckeditor5/src/utils.js';\nimport { Command } from 'ckeditor5/src/core.js';\n\nimport { isBookmarkIdValid } from './utils.js';\n\n/**\n * The insert bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'insertBookmark'`.\n *\n * To insert a bookmark element at place where is the current collapsed selection or where is the beginning of document selection,\n * execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'insertBookmark', { bookmarkId: 'foo_bar' } );\n * ```\n */\nexport default class InsertBookmarkCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst position = this._getPositionToInsertBookmark( selection );\n\n\t\tthis.isEnabled = !!position;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The value of the `bookmarkId` attribute.\n\t */\n\tpublic override execute( options: { bookmarkId: string } ): void {\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { bookmarkId } = options;\n\n\t\tif ( !isBookmarkIdValid( bookmarkId ) ) {\n\t\t\t/**\n\t\t\t * Insert bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error insert-bookmark-command-executed-with-invalid-name\n\t\t\t */\n\t\t\tlogWarning( 'insert-bookmark-command-executed-with-invalid-name' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\tmodel.change( writer => {\n\t\t\tlet position = this._getPositionToInsertBookmark( selection )!;\n\n\t\t\tconst isBookmarkAllowed = model.schema.checkChild( position, 'bookmark' );\n\n\t\t\t// If the position does not allow for `bookmark` but allows for a `paragraph`\n\t\t\t// then insert a `paragraph` then we will insert a `bookmark` inside.\n\t\t\tif ( !isBookmarkAllowed ) {\n\t\t\t\tconst newPosition = editor.execute( 'insertParagraph', { position } ) as Position | null;\n\n\t\t\t\tif ( !newPosition ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tposition = newPosition;\n\t\t\t}\n\n\t\t\tconst bookmarkElement = writer.createElement( 'bookmark', {\n\t\t\t\t...Object.fromEntries( selection.getAttributes() ),\n\t\t\t\tbookmarkId\n\t\t\t} );\n\n\t\t\tmodel.insertObject( bookmarkElement, position, null, { setSelection: 'on' } );\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the position where the bookmark can be inserted. And if it is not possible to insert a bookmark,\n\t * check if it is possible to insert a paragraph.\n\t */\n\tprivate _getPositionToInsertBookmark( selection: Selection | DocumentSelection ): Position | null {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\n\t\tconst firstRange = selection.getFirstRange()!;\n\t\tconst startPosition = firstRange.start;\n\n\t\t// Return position if it is allowed to insert bookmark or if it is allowed to insert paragraph.\n\t\tif ( isBookmarkAllowed( startPosition, schema ) ) {\n\t\t\treturn startPosition;\n\t\t}\n\n\t\tfor ( const { previousPosition, item } of firstRange ) {\n\t\t\t// When the table cell is selected (from the outside) we look for the first paragraph-like element inside.\n\t\t\tif (\n\t\t\t\titem.is( 'element' ) &&\n\t\t\t\tschema.checkChild( item, '$text' ) &&\n\t\t\t\tisBookmarkAllowed( item, schema )\n\t\t\t) {\n\t\t\t\treturn model.createPositionAt( item, 0 );\n\t\t\t}\n\n\t\t\tif ( isBookmarkAllowed( previousPosition, schema ) ) {\n\t\t\t\treturn previousPosition;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}\n\n/**\n * Verify if the given position allows for bookmark insertion. Verify if auto-paragraphing could help.\n */\nfunction isBookmarkAllowed( position: SchemaContextDefinition, schema: Schema ): boolean {\n\tif ( schema.checkChild( position, 'bookmark' ) ) {\n\t\treturn true;\n\t}\n\n\tif ( !schema.checkChild( position, 'paragraph' ) ) {\n\t\treturn false;\n\t}\n\n\treturn schema.checkChild( 'paragraph', 'bookmark' );\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/updatebookmarkcommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport type { Selection, DocumentSelection } from 'ckeditor5/src/engine.js';\nimport { logWarning } from 'ckeditor5/src/utils.js';\n\nimport { isBookmarkIdValid } from './utils.js';\n\n/**\n * The update bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'updateBookmark'`.\n *\n * To update the `bookmarkId` of current selected bookmark element, execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'updateBookmark', { bookmarkId: 'newId' } );\n * ```\n */\nexport default class UpdateBookmarkCommand extends Command {\n\t/**\n\t * The value of the `'bookmarkId'` attribute.\n\t *\n\t * @observable\n\t * @readonly\n\t */\n\tdeclare public value: string | undefined;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedBookmark = getSelectedBookmark( selection );\n\n\t\tthis.isEnabled = !!selectedBookmark;\n\t\tthis.value = selectedBookmark ? selectedBookmark.getAttribute( 'bookmarkId' ) as string : undefined;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The new value of the `bookmarkId` attribute to set.\n\t */\n\tpublic override execute( options: { bookmarkId: string } ): void {\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { bookmarkId } = options;\n\n\t\tif ( !isBookmarkIdValid( bookmarkId ) ) {\n\t\t\t/**\n\t\t\t * Update bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error update-bookmark-command-executed-with-invalid-name\n\t\t\t */\n\t\t\tlogWarning( 'update-bookmark-command-executed-with-invalid-name' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedBookmark = getSelectedBookmark( selection );\n\n\t\tif ( selectedBookmark ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.setAttribute( 'bookmarkId', bookmarkId, selectedBookmark );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Returns the selected `bookmark` element in the model, if any.\n */\nfunction getSelectedBookmark( selection: Selection | DocumentSelection ) {\n\tconst element = selection.getSelectedElement();\n\n\tif ( !!element && element.is( 'element', 'bookmark' ) ) {\n\t\treturn element;\n\t}\n\n\treturn null;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/bookmarkediting\n */\n\nimport { type Editor, Plugin } from 'ckeditor5/src/core.js';\nimport { toWidget } from 'ckeditor5/src/widget.js';\nimport { IconView } from 'ckeditor5/src/ui.js';\nimport { IconBookmarkInline } from 'ckeditor5/src/icons.js';\nimport type { EventInfo } from 'ckeditor5/src/utils.js';\n\nimport type {\n\tViewUIElement,\n\tDowncastWriter,\n\tViewElement,\n\tElement,\n\tDocumentChangeEvent,\n\tUpcastElementEvent,\n\tUpcastConversionData,\n\tUpcastConversionApi\n} from 'ckeditor5/src/engine.js';\n\nimport InsertBookmarkCommand from './insertbookmarkcommand.js';\nimport UpdateBookmarkCommand from './updatebookmarkcommand.js';\n\nimport '../theme/bookmark.css';\n\n/**\n * The bookmark editing plugin.\n */\nexport default class BookmarkEditing extends Plugin {\n\t/**\n\t * A collection of bookmarks elements in the document.\n\t */\n\tprivate _bookmarkElements = new Map<Element, string>();\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'BookmarkEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'bookmark', {\n\t\t\ttoolbar: [ 'bookmarkPreview', '|', 'editBookmark', 'removeBookmark' ]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { editor } = this;\n\n\t\tthis._defineSchema();\n\t\tthis._defineConverters();\n\n\t\teditor.commands.add( 'insertBookmark', new InsertBookmarkCommand( editor ) );\n\t\teditor.commands.add( 'updateBookmark', new UpdateBookmarkCommand( editor ) );\n\n\t\tthis.listenTo<DocumentChangeEvent>( editor.model.document, 'change:data', () => {\n\t\t\tthis._trackBookmarkElements();\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the model element for the given bookmark ID if it exists.\n\t */\n\tpublic getElementForBookmarkId( bookmarkId: string ): Element | null {\n\t\tfor ( const [ element, id ] of this._bookmarkElements ) {\n\t\t\tif ( id == bookmarkId ) {\n\t\t\t\treturn element;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns all unique bookmark names existing in the content.\n\t */\n\tpublic getAllBookmarkNames(): Set<string> {\n\t\treturn new Set( this._bookmarkElements.values() );\n\t}\n\n\t/**\n\t * Defines the schema for the bookmark feature.\n\t */\n\tprivate _defineSchema() {\n\t\tconst schema = this.editor.model.schema;\n\n\t\tschema.register( 'bookmark', {\n\t\t\tinheritAllFrom: '$inlineObject',\n\t\t\tallowAttributes: 'bookmarkId',\n\t\t\tdisallowAttributes: [ 'linkHref', 'htmlA' ]\n\t\t} );\n\t}\n\n\t/**\n\t * Defines the converters for the bookmark feature.\n\t */\n\tprivate _defineConverters() {\n\t\tconst { editor } = this;\n\t\tconst { conversion, t } = editor;\n\n\t\teditor.data.htmlProcessor.domConverter.registerInlineObjectMatcher( element => upcastMatcher( element ) );\n\n\t\t// Register an inline object matcher so that bookmarks <a>s are correctly recognized as inline elements in editing pipeline.\n\t\t// This prevents converting spaces around bookmarks to `&nbsp;`s.\n\t\teditor.editing.view.domConverter.registerInlineObjectMatcher( element => upcastMatcher( element, false ) );\n\n\t\tconversion.for( 'dataDowncast' ).elementToElement( {\n\t\t\tmodel: {\n\t\t\t\tname: 'bookmark',\n\t\t\t\tattributes: [ 'bookmarkId' ]\n\t\t\t},\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst emptyElement = writer.createEmptyElement( 'a', {\n\t\t\t\t\t'id': modelElement.getAttribute( 'bookmarkId' )\n\t\t\t\t} );\n\n\t\t\t\t// `getFillerOffset` is not needed to set here, because `emptyElement` has already covered it.\n\n\t\t\t\treturn emptyElement;\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'editingDowncast' ).elementToElement( {\n\t\t\tmodel: {\n\t\t\t\tname: 'bookmark',\n\t\t\t\tattributes: [ 'bookmarkId' ]\n\t\t\t},\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst id = modelElement.getAttribute( 'bookmarkId' ) as string;\n\t\t\t\tconst containerElement = writer.createContainerElement( 'a', {\n\t\t\t\t\tid,\n\t\t\t\t\tclass: 'ck-bookmark'\n\t\t\t\t}, [ this._createBookmarkUIElement( writer ) ] );\n\n\t\t\t\twriter.setCustomProperty( 'bookmark', true, containerElement );\n\t\t\t\tthis._bookmarkElements.set( modelElement, id );\n\n\t\t\t\t// `getFillerOffset` is not needed to set here, because `toWidget` has already covered it.\n\n\t\t\t\tconst labelCreator = () => `${ id } ${ t( 'bookmark widget' ) }`;\n\n\t\t\t\treturn toWidget( containerElement, writer, { label: labelCreator } );\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'upcast' ).add(\n\t\t\tdispatcher => dispatcher.on<UpcastElementEvent>( 'element:a', dataViewModelAnchorInsertion( editor ) )\n\t\t);\n\t}\n\n\t/**\n\t * Creates a UI element for the `bookmark` representation in editing view.\n\t */\n\tprivate _createBookmarkUIElement( writer: DowncastWriter ): ViewUIElement {\n\t\treturn writer.createUIElement( 'span', { class: 'ck-bookmark__icon' }, function( domDocument ) {\n\t\t\tconst domElement = this.toDomElement( domDocument );\n\n\t\t\tconst icon = new IconView();\n\n\t\t\ticon.set( {\n\t\t\t\tcontent: IconBookmarkInline,\n\t\t\t\tisColorInherited: false\n\t\t\t} );\n\n\t\t\ticon.render();\n\n\t\t\tdomElement.appendChild( icon.element! );\n\n\t\t\treturn domElement;\n\t\t} );\n\t}\n\n\t/**\n\t * Tracking the added or removed bookmark elements.\n\t */\n\tprivate _trackBookmarkElements(): void {\n\t\tthis._bookmarkElements.forEach( ( id, element ) => {\n\t\t\tif ( element.root.rootName === '$graveyard' ) {\n\t\t\t\tthis._bookmarkElements.delete( element );\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * A helper function to match an `anchor` element which must contain `id` or `name` attribute but without `href` attribute,\n * also when `expectEmpty` is set to `true` but the element is not empty matcher should not match any element.\n *\n * @param element The element to be checked.\n * @param expectEmpty Default set to `true`, when set to `false` matcher expects that `anchor` is not empty;\n * in editing pipeline it's not empty because it contains the `UIElement`.\n */\nfunction upcastMatcher( element: ViewElement, expectEmpty: boolean = true ) {\n\tconst isAnchorElement = element.name === 'a';\n\n\tif ( !isAnchorElement ) {\n\t\treturn null;\n\t}\n\n\tif ( expectEmpty && !element.isEmpty ) {\n\t\treturn null;\n\t}\n\n\tconst hasIdAttribute = element.hasAttribute( 'id' );\n\tconst hasNameAttribute = element.hasAttribute( 'name' );\n\tconst hasHrefAttribute = element.hasAttribute( 'href' );\n\n\tif ( hasIdAttribute && !hasHrefAttribute ) {\n\t\treturn { name: true, attributes: [ 'id' ] };\n\t}\n\n\tif ( hasNameAttribute && !hasHrefAttribute ) {\n\t\treturn { name: true, attributes: [ 'name' ] };\n\t}\n\n\treturn null;\n}\n\n/**\n * A view-to-model converter that handles converting pointed or wrapped anchors with `id` and/or `name` attributes.\n *\n * @returns Returns a conversion callback.\n */\nfunction dataViewModelAnchorInsertion( editor: Editor ) {\n\treturn (\n\t\tevt: EventInfo,\n\t\tdata: UpcastConversionData<ViewElement>,\n\t\tconversionApi: UpcastConversionApi\n\t) => {\n\t\tconst viewItem = data.viewItem;\n\t\tconst match = upcastMatcher( viewItem, false );\n\n\t\tif ( !match || !conversionApi.consumable.test( viewItem, match ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst enableNonEmptyAnchorConversion = isEnabledNonEmptyAnchorConversion( editor );\n\n\t\tif ( !enableNonEmptyAnchorConversion && !viewItem.isEmpty ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelWriter = conversionApi.writer;\n\t\tconst anchorId = viewItem.getAttribute( 'id' );\n\t\tconst anchorName = viewItem.getAttribute( 'name' );\n\t\tconst bookmarkId = anchorId || anchorName;\n\t\tconst bookmark = modelWriter.createElement( 'bookmark', { bookmarkId } );\n\n\t\tif ( !conversionApi.safeInsert( bookmark, data.modelCursor ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconversionApi.consumable.consume( viewItem, match );\n\n\t\tif ( anchorId === anchorName ) {\n\t\t\tconversionApi.consumable.consume( viewItem, { attributes: [ 'name' ] } );\n\t\t}\n\n\t\tconversionApi.updateConversionResult( bookmark, data );\n\n\t\t// Convert children uses the result of `bookmark` insertion to convert the `anchor` content\n\t\t// after the bookmark element (not inside it).\n\t\tconst { modelCursor, modelRange } = conversionApi.convertChildren( viewItem, data.modelCursor );\n\n\t\tdata.modelCursor = modelCursor;\n\t\tdata.modelRange = modelWriter.createRange( data.modelRange!.start, modelRange!.end );\n\t};\n}\n\n/**\n * Normalize the bookmark configuration option `enableNonEmptyAnchorConversion`.\n */\nfunction isEnabledNonEmptyAnchorConversion( editor: Editor ): boolean {\n\tconst enableNonEmptyAnchorConversion = editor.config.get( 'bookmark.enableNonEmptyAnchorConversion' );\n\n\t// When not defined, option `enableNonEmptyAnchorConversion` by default is set to `true`.\n\treturn enableNonEmptyAnchorConversion !== undefined ? enableNonEmptyAnchorConversion : true;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/bookmarkui\n */\n\nimport type { LinksProviderDetailedItem, LinksProviderListItem } from '@ckeditor/ckeditor5-link';\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tButtonView,\n\tContextualBalloon,\n\tCssTransitionDisablerMixin,\n\tMenuBarMenuListItemButtonView,\n\tclickOutsideHandler,\n\tLabelView,\n\tBalloonPanelView,\n\ttype ViewWithCssTransitionDisabler\n} from 'ckeditor5/src/ui.js';\nimport { IconBookmark, IconRemove, IconBookmarkMedium, IconBookmarkSmall, IconPencil } from 'ckeditor5/src/icons.js';\nimport {\n\ttype Element,\n\ttype ViewDocumentSelection,\n\ttype ViewElement\n} from 'ckeditor5/src/engine.js';\n\nimport type { PositionOptions } from 'ckeditor5/src/utils.js';\nimport type { DeleteCommand } from 'ckeditor5/src/typing.js';\nimport { isWidget, WidgetToolbarRepository } from 'ckeditor5/src/widget.js';\n\nimport BookmarkFormView, { type BookmarkFormViewCancelEvent, type BookmarkFormValidatorCallback } from './ui/bookmarkformview.js';\nimport type UpdateBookmarkCommand from './updatebookmarkcommand.js';\nimport type InsertBookmarkCommand from './insertbookmarkcommand.js';\n\nimport BookmarkEditing from './bookmarkediting.js';\n\nimport '../theme/bookmarktoolbar.css';\n\nconst VISUAL_SELECTION_MARKER_NAME = 'bookmark-ui';\n\n/**\n * The UI plugin of the bookmark feature.\n *\n * It registers the `'bookmark'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * which inserts the `bookmark` element upon selection.\n */\nexport default class BookmarkUI extends Plugin {\n\t/**\n\t * The form view displayed inside the balloon.\n\t */\n\tpublic formView: BookmarkFormView & ViewWithCssTransitionDisabler | null = null;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tprivate _balloon!: ContextualBalloon;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ BookmarkEditing, ContextualBalloon, WidgetToolbarRepository ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'BookmarkUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tthis._balloon = editor.plugins.get( ContextualBalloon );\n\n\t\t// Register the link provider in link plugin to display the link form.\n\t\tif ( editor.plugins.has( 'LinkUI' ) ) {\n\t\t\tthis._registerLinkProvider();\n\t\t}\n\n\t\t// Create toolbar buttons.\n\t\tthis._registerComponents();\n\n\t\t// Renders a fake visual selection marker on an expanded selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToHighlight( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: {\n\t\t\t\tclasses: [ 'ck-fake-bookmark-selection' ]\n\t\t\t}\n\t\t} );\n\n\t\t// Renders a fake visual selection marker on a collapsed selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToElement( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: ( data, { writer } ) => {\n\t\t\t\tif ( !data.markerRange.isCollapsed ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst markerElement = writer.createUIElement( 'span' );\n\n\t\t\t\twriter.addClass(\n\t\t\t\t\t[ 'ck-fake-bookmark-selection', 'ck-fake-bookmark-selection_collapsed' ],\n\t\t\t\t\tmarkerElement\n\t\t\t\t);\n\n\t\t\t\treturn markerElement;\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.locale.t;\n\t\tconst widgetToolbarRepository = this.editor.plugins.get( WidgetToolbarRepository );\n\t\tconst defaultPositions = BalloonPanelView.defaultPositions;\n\n\t\twidgetToolbarRepository.register( 'bookmark', {\n\t\t\tariaLabel: t( 'Bookmark toolbar' ),\n\t\t\titems: editor.config.get( 'bookmark.toolbar' )!,\n\n\t\t\tgetRelatedElement: getSelectedBookmarkWidget,\n\t\t\tballoonClassName: 'ck-bookmark-balloon ck-toolbar-container',\n\n\t\t\t// Override positions to the same list as for balloon panel default\n\t\t\t// so widget toolbar will try to use same position as form view.\n\t\t\tpositions: [\n\t\t\t\tdefaultPositions.southArrowNorth,\n\t\t\t\tdefaultPositions.southArrowNorthMiddleWest,\n\t\t\t\tdefaultPositions.southArrowNorthMiddleEast,\n\t\t\t\tdefaultPositions.southArrowNorthWest,\n\t\t\t\tdefaultPositions.southArrowNorthEast,\n\t\t\t\tdefaultPositions.northArrowSouth,\n\t\t\t\tdefaultPositions.northArrowSouthMiddleWest,\n\t\t\t\tdefaultPositions.northArrowSouthMiddleEast,\n\t\t\t\tdefaultPositions.northArrowSouthWest,\n\t\t\t\tdefaultPositions.northArrowSouthEast,\n\t\t\t\tdefaultPositions.viewportStickyNorth\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\t// Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n\t\tif ( this.formView ) {\n\t\t\tthis.formView.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * Creates views.\n\t */\n\tprivate _createViews() {\n\t\tthis.formView = this._createFormView();\n\n\t\t// Attach lifecycle actions to the the balloon.\n\t\tthis._enableUserBalloonInteractions();\n\t}\n\n\t/**\n\t * Creates the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} instance.\n\t */\n\tprivate _createFormView(): BookmarkFormView & ViewWithCssTransitionDisabler {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst t = locale.t;\n\t\tconst insertBookmarkCommand: InsertBookmarkCommand = editor.commands.get( 'insertBookmark' )!;\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst commands = [ insertBookmarkCommand, updateBookmarkCommand ];\n\n\t\tconst formView = new ( CssTransitionDisablerMixin( BookmarkFormView ) )( locale, getFormValidators( editor ) );\n\n\t\tformView.idInputView.fieldView.bind( 'value' ).to( updateBookmarkCommand, 'value' );\n\t\tformView.saveButtonView.bind( 'label' ).to( updateBookmarkCommand, 'value', value => value ? t( 'Save' ) : t( 'Insert' ) );\n\n\t\t// Form elements should be read-only when corresponding commands are disabled.\n\t\tformView.idInputView.bind( 'isEnabled' ).toMany(\n\t\t\tcommands,\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\t// Disable the \"save\" button if the command is disabled.\n\t\tformView.saveButtonView.bind( 'isEnabled' ).toMany(\n\t\t\tcommands,\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\t// Close the panel on form after clicking back button.\n\t\tthis.listenTo<BookmarkFormViewCancelEvent>( formView, 'cancel', () => {\n\t\t\tthis._hideFormView();\n\t\t} );\n\n\t\t// Execute link command after clicking the \"Save\" button.\n\t\tthis.listenTo( formView, 'submit', () => {\n\t\t\tif ( formView.isValid() ) {\n\t\t\t\tconst value = formView.id!;\n\n\t\t\t\tif ( this._getSelectedBookmarkElement() ) {\n\t\t\t\t\teditor.execute( 'updateBookmark', { bookmarkId: value } );\n\t\t\t\t} else {\n\t\t\t\t\teditor.execute( 'insertBookmark', { bookmarkId: value } );\n\t\t\t\t}\n\n\t\t\t\tthis._hideFormView();\n\t\t\t}\n\t\t} );\n\n\t\t// Update balloon position when form error changes.\n\t\tthis.listenTo( formView.idInputView, 'change:errorText', () => {\n\t\t\teditor.ui.update();\n\t\t} );\n\n\t\treturn formView;\n\t}\n\n\t/**\n\t * Creates link form menu list entry, so it'll be possible to access\n\t * the list of the bookmarks from the link form.\n\t */\n\tprivate _registerLinkProvider() {\n\t\tconst t = this.editor.locale.t;\n\t\tconst linksUI = this.editor.plugins.get( 'LinkUI' )!;\n\t\tconst bookmarkEditing = this.editor.plugins.get( BookmarkEditing );\n\n\t\tconst getListItems = () => Array\n\t\t\t.from( bookmarkEditing.getAllBookmarkNames() )\n\t\t\t.sort( ( a, b ) => a.localeCompare( b ) )\n\t\t\t.map( ( bookmarkId ): LinksProviderListItem => ( {\n\t\t\t\tid: bookmarkId,\n\t\t\t\thref: `#${ bookmarkId }`,\n\t\t\t\tlabel: bookmarkId,\n\t\t\t\ticon: IconBookmarkMedium\n\t\t\t} ) );\n\n\t\tconst getItem = ( href: string ): LinksProviderDetailedItem | null => {\n\t\t\tconst bookmark = [ ...bookmarkEditing.getAllBookmarkNames() ].find( item => `#${ item }` === href );\n\n\t\t\tif ( !bookmark ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thref,\n\t\t\t\tlabel: bookmark,\n\t\t\t\ticon: IconBookmarkSmall,\n\t\t\t\ttooltip: t( 'Scroll to bookmark' )\n\t\t\t};\n\t\t};\n\n\t\tlinksUI.registerLinksListProvider( {\n\t\t\tlabel: t( 'Bookmarks' ),\n\t\t\temptyListPlaceholder: t( 'No bookmarks available.' ),\n\t\t\tnavigate: ( { href }: LinksProviderDetailedItem ) => this._scrollToBookmark( href ),\n\t\t\tgetListItems,\n\t\t\tgetItem\n\t\t} );\n\t}\n\n\t/**\n\t * Scrolls the editor to the bookmark with the given id.\n\t */\n\tprivate _scrollToBookmark( href: string ) {\n\t\tconst bookmarkEditing = this.editor.plugins.get( BookmarkEditing );\n\t\tconst bookmarkElement = bookmarkEditing.getElementForBookmarkId( href.slice( 1 ) );\n\n\t\tif ( !bookmarkElement ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.editor.model.change( writer => {\n\t\t\twriter.setSelection( bookmarkElement!, 'on' );\n\t\t} );\n\n\t\tthis.editor.editing.view.scrollToTheSelection( {\n\t\t\talignToTop: true,\n\t\t\tforceScroll: true\n\t\t} );\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Creates a toolbar Bookmark button. Clicking this button will show\n\t * a {@link #_balloon} attached to the selection.\n\t */\n\tprivate _registerComponents() {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'bookmark', () => {\n\t\t\tconst buttonView = this._createBookmarkButton( ButtonView );\n\n\t\t\tbuttonView.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn buttonView;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:bookmark', () => {\n\t\t\treturn this._createBookmarkButton( MenuBarMenuListItemButtonView );\n\t\t} );\n\n\t\t// Bookmark toolbar buttons.\n\n\t\teditor.ui.componentFactory.add( 'bookmarkPreview', locale => {\n\t\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\t\tconst label = new LabelView( locale );\n\n\t\t\tlabel.extendTemplate( {\n\t\t\t\tattributes: {\n\t\t\t\t\tclass: [ 'ck-bookmark-toolbar__preview' ]\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tlabel.bind( 'text' ).to( updateBookmarkCommand, 'value' );\n\n\t\t\treturn label;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'editBookmark', locale => {\n\t\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\t\tconst button = new ButtonView( locale );\n\t\t\tconst t = locale.t;\n\n\t\t\tbutton.set( {\n\t\t\t\tlabel: t( 'Edit bookmark' ),\n\t\t\t\ticon: IconPencil,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tbutton.bind( 'isEnabled' ).to( updateBookmarkCommand );\n\n\t\t\tthis.listenTo( button, 'execute', () => {\n\t\t\t\tthis._showFormView();\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'removeBookmark', locale => {\n\t\t\tconst deleteCommand: DeleteCommand = editor.commands.get( 'delete' )!;\n\t\t\tconst button = new ButtonView( locale );\n\t\t\tconst t = locale.t;\n\n\t\t\tbutton.set( {\n\t\t\t\tlabel: t( 'Remove bookmark' ),\n\t\t\t\ticon: IconRemove,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tbutton.bind( 'isEnabled' ).to( deleteCommand );\n\n\t\t\tthis.listenTo( button, 'execute', () => {\n\t\t\t\teditor.execute( 'delete' );\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button for `bookmark` command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createBookmarkButton<T extends typeof ButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst insertCommand: InsertBookmarkCommand = editor.commands.get( 'insertBookmark' )!;\n\t\tconst updateCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst t = locale.t;\n\n\t\tview.set( {\n\t\t\tlabel: t( 'Bookmark' ),\n\t\t\ticon: IconBookmark\n\t\t} );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.editing.view.scrollToTheSelection();\n\t\t\tthis._showFormView();\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).toMany(\n\t\t\t[ insertCommand, updateCommand ],\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\tview.bind( 'isOn' ).to( updateCommand, 'value', value => !!value );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} is visible or not.\n\t */\n\tprivate _enableUserBalloonInteractions(): void {\n\t\t// Close the panel on the Esc key press when the editable has focus and the balloon is visible.\n\t\tthis.editor.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tif ( this._isFormVisible ) {\n\t\t\t\tthis._hideFormView();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\n\t\t// Close on click outside of balloon panel element.\n\t\tclickOutsideHandler( {\n\t\t\temitter: this.formView!,\n\t\t\tactivator: () => this._isFormInPanel,\n\t\t\tcontextElements: () => [ this._balloon.view.element! ],\n\t\t\tcallback: () => {\n\t\t\t\t// Focusing on the editable during a click outside the balloon panel might\n\t\t\t\t// cause the selection to move to the beginning of the editable, so we avoid\n\t\t\t\t// focusing on it during this action.\n\t\t\t\t// See: https://github.com/ckeditor/ckeditor5/issues/18253\n\t\t\t\tthis._hideFormView( false );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Adds the {@link #formView} to the {@link #_balloon}.\n\t */\n\tprivate _addFormView(): void {\n\t\tif ( !this.formView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\tif ( this._isFormInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = this.editor.commands.get( 'updateBookmark' )!;\n\n\t\tthis.formView!.disableCssTransitions();\n\t\tthis.formView!.resetFormStatus();\n\n\t\tthis._balloon.add( {\n\t\t\tview: this.formView!,\n\t\t\tposition: this._getBalloonPositionData()\n\t\t} );\n\n\t\tthis.formView!.backButtonView.isVisible = updateBookmarkCommand.isEnabled;\n\t\tthis.formView!.idInputView.fieldView.value = updateBookmarkCommand.value || '';\n\n\t\t// Select input when form view is currently visible.\n\t\tif ( this._balloon.visibleView === this.formView ) {\n\t\t\tthis.formView!.idInputView.fieldView.select();\n\t\t}\n\n\t\tthis.formView!.enableCssTransitions();\n\t}\n\n\t/**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */\n\tprivate _removeFormView( updateFocus: boolean = true ): void {\n\t\t// Blur the input element before removing it from DOM to prevent issues in some browsers.\n\t\t// See https://github.com/ckeditor/ckeditor5/issues/1501.\n\t\tthis.formView!.saveButtonView.focus();\n\n\t\t// Reset the ID field to update the state of the submit button.\n\t\tthis.formView!.idInputView.fieldView.reset();\n\n\t\tthis._balloon.remove( this.formView! );\n\n\t\t// Because the form has an input which has focus, the focus must be brought back\n\t\t// to the editor. Otherwise, it would be lost.\n\t\tif ( updateFocus ) {\n\t\t\tthis.editor.editing.view.focus();\n\t\t}\n\n\t\tthis._hideFakeVisualSelection();\n\t}\n\n\t/**\n\t * Shows the {@link #formView}.\n\t */\n\tprivate _showFormView(): void {\n\t\tif ( !this.formView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\tif ( !this._getSelectedBookmarkElement() ) {\n\t\t\tthis._showFakeVisualSelection();\n\t\t}\n\n\t\tthis._addFormView();\n\n\t\t// Be sure panel with bookmark is visible.\n\t\tthis._balloon.showStack( 'main' );\n\n\t\t// Begin responding to ui#update once the UI is added.\n\t\tthis._startUpdatingUI();\n\t}\n\n\t/**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */\n\tprivate _hideFormView( updateFocus: boolean = true ): void {\n\t\tif ( !this._isFormInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\n\t\tthis.stopListening( editor.ui, 'update' );\n\t\tthis.stopListening( this._balloon, 'change:visibleView' );\n\n\t\t// Make sure the focus always gets back to the editable _before_ removing the focused form view.\n\t\t// Doing otherwise causes issues in some browsers. See https://github.com/ckeditor/ckeditor5-link/issues/193.\n\t\tif ( updateFocus ) {\n\t\t\teditor.editing.view.focus();\n\t\t}\n\n\t\t// Remove form first because it's on top of the stack.\n\t\tthis._removeFormView( updateFocus );\n\n\t\tthis._hideFakeVisualSelection();\n\t}\n\n\t/**\n\t * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to\n\t * reposition itself when the editor UI should be refreshed.\n\t *\n\t * See: {@link #_hideFormView} to learn when the UI stops reacting to the `update` event.\n\t */\n\tprivate _startUpdatingUI(): void {\n\t\tconst editor = this.editor;\n\t\tconst viewDocument = editor.editing.view.document;\n\n\t\tlet prevSelectedBookmark = this._getSelectedBookmarkElement();\n\t\tlet prevSelectionParent = getSelectionParent();\n\n\t\tconst update = () => {\n\t\t\tconst selectedBookmark = this._getSelectedBookmarkElement();\n\t\t\tconst selectionParent = getSelectionParent();\n\n\t\t\t// Hide the panel if:\n\t\t\t//\n\t\t\t// * the selection went out of the EXISTING bookmark element. E.g. user moved the caret out\n\t\t\t// of the bookmark,\n\t\t\t// * the selection went to a different parent when creating a NEW bookmark. E.g. someone\n\t\t\t// else modified the document.\n\t\t\t// * the selection has expanded (e.g. displaying bookmark actions then pressing SHIFT+Right arrow).\n\t\t\t//\n\t\t\tif (\n\t\t\t\tprevSelectedBookmark && !selectedBookmark ||\n\t\t\t\t!prevSelectedBookmark && selectionParent !== prevSelectionParent\n\t\t\t) {\n\t\t\t\tthis._hideFormView();\n\t\t\t}\n\t\t\t// Update the position of the panel when:\n\t\t\t// * bookmark panel is in the visible stack\n\t\t\t// * the selection remains on the original bookmark element,\n\t\t\t// * there was no bookmark element in the first place, i.e. creating a new bookmark\n\t\t\telse if ( this._isFormVisible ) {\n\t\t\t\t// If still in a bookmark element, simply update the position of the balloon.\n\t\t\t\t// If there was no bookmark (e.g. inserting one), the balloon must be moved\n\t\t\t\t// to the new position in the editing view (a new native DOM range).\n\t\t\t\tthis._balloon.updatePosition( this._getBalloonPositionData() );\n\t\t\t}\n\n\t\t\tprevSelectedBookmark = selectedBookmark;\n\t\t\tprevSelectionParent = selectionParent;\n\t\t};\n\n\t\tfunction getSelectionParent() {\n\t\t\treturn viewDocument.selection.focus!.getAncestors()\n\t\t\t\t.reverse()\n\t\t\t\t.find( ( node ): node is ViewElement => node.is( 'element' ) );\n\t\t}\n\n\t\tthis.listenTo( editor.ui, 'update', update );\n\t\tthis.listenTo( this._balloon, 'change:visibleView', update );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n\t */\n\tprivate get _isFormInPanel(): boolean {\n\t\treturn !!this.formView && this._balloon.hasView( this.formView );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon} and it is currently visible.\n\t */\n\tprivate get _isFormVisible(): boolean {\n\t\treturn !!this.formView && this._balloon.visibleView == this.formView;\n\t}\n\n\t/**\n\t * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */\n\tprivate _getBalloonPositionData(): Partial<PositionOptions> | undefined {\n\t\tconst view = this.editor.editing.view;\n\t\tconst model = this.editor.model;\n\t\tlet target: PositionOptions[ 'target' ] | undefined;\n\n\t\tconst bookmarkElement = this._getSelectedBookmarkElement();\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t// There are cases when we highlight selection using a marker (#7705, #4721).\n\t\t\tconst markerViewElements = Array.from( this.editor.editing.mapper.markerNameToElements( VISUAL_SELECTION_MARKER_NAME )! );\n\t\t\tconst newRange = view.createRange(\n\t\t\t\tview.createPositionBefore( markerViewElements[ 0 ] ),\n\t\t\t\tview.createPositionAfter( markerViewElements[ markerViewElements.length - 1 ] )\n\t\t\t);\n\n\t\t\ttarget = view.domConverter.viewRangeToDom( newRange );\n\t\t}\n\t\telse if ( bookmarkElement ) {\n\t\t\ttarget = () => {\n\t\t\t\tconst mapper = this.editor.editing.mapper;\n\t\t\t\tconst domConverter = view.domConverter;\n\t\t\t\tconst viewElement = mapper.toViewElement( bookmarkElement )!;\n\n\t\t\t\treturn domConverter.mapViewToDom( viewElement )!;\n\t\t\t};\n\t\t}\n\n\t\tif ( !target ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn {\n\t\t\ttarget\n\t\t};\n\t}\n\n\t/**\n\t * Returns the bookmark {@link module:engine/view/attributeelement~AttributeElement} under\n\t * the {@link module:engine/view/document~Document editing view's} selection or `null`\n\t * if there is none.\n\t */\n\tprivate _getSelectedBookmarkElement(): Element | null {\n\t\tconst selection = this.editor.model.document.selection;\n\t\tconst element = selection.getSelectedElement();\n\n\t\tif ( element && element.is( 'element', 'bookmark' ) ) {\n\t\t\treturn element;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds a 'bookmark-ui' marker into the document that is rendered as a highlight on selected text fragment.\n\t */\n\tprivate _showFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tconst range = model.document.selection.getFirstRange()!;\n\n\t\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t\twriter.updateMarker( VISUAL_SELECTION_MARKER_NAME, { range } );\n\t\t\t} else {\n\t\t\t\tif ( range.start.isAtEnd ) {\n\t\t\t\t\tconst startPosition = range.start.getLastMatchingPosition(\n\t\t\t\t\t\t( { item } ) => !model.schema.isContent( item ),\n\t\t\t\t\t\t{ boundaries: range }\n\t\t\t\t\t);\n\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange: writer.createRange( startPosition, range.end )\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.\n\t */\n\tprivate _hideFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.removeMarker( VISUAL_SELECTION_MARKER_NAME );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Returns bookmark form validation callbacks.\n */\nfunction getFormValidators( editor: Editor ): Array<BookmarkFormValidatorCallback> {\n\tconst { t } = editor;\n\tconst bookmarkEditing = editor.plugins.get( BookmarkEditing );\n\n\treturn [\n\t\tform => {\n\t\t\tif ( !form.id ) {\n\t\t\t\treturn t( 'Bookmark must not be empty.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tif ( form.id && /\\s/.test( form.id ) ) {\n\t\t\t\treturn t( 'Bookmark name cannot contain space characters.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tconst selectedElement = editor.model.document.selection.getSelectedElement();\n\t\t\tconst existingBookmarkForId = bookmarkEditing.getElementForBookmarkId( form.id! );\n\n\t\t\t// Accept change of bookmark ID if no real change is happening (edit -> submit, without changes).\n\t\t\tif ( selectedElement === existingBookmarkForId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( existingBookmarkForId ) {\n\t\t\t\treturn t( 'Bookmark name already exists.' );\n\t\t\t}\n\t\t}\n\t];\n}\n\n/**\n * Returns the currently selected bookmark view element.\n */\nfunction getSelectedBookmarkWidget( selection: ViewDocumentSelection ): ViewElement | null {\n\tconst element = selection.getSelectedElement();\n\n\tif ( !element || !isWidget( element ) || !element.getCustomProperty( 'bookmark' ) ) {\n\t\treturn null;\n\t}\n\n\treturn element;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/bookmark\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { Widget } from 'ckeditor5/src/widget.js';\nimport BookmarkUI from './bookmarkui.js';\nimport BookmarkEditing from './bookmarkediting.js';\n\n/**\n * The bookmark feature.\n *\n * For a detailed overview, check the {@glink features/bookmarks Bookmarks} feature guide.\n */\nexport default class Bookmark extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Bookmark' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ BookmarkEditing, BookmarkUI, Widget ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/ui/bookmarkformview.ts","../src/utils.ts","../src/insertbookmarkcommand.ts","../src/updatebookmarkcommand.ts","../src/bookmarkediting.ts","../src/bookmarkui.ts","../src/bookmark.ts"],"names":["BookmarkFormView","View","focusTracker","FocusTracker","keystrokes","KeystrokeHandler","_focusables","ViewCollection","locale","validators","_validators","backButtonView","_createBackButton","saveButtonView","_createSaveButton","idInputView","_createIdInput","children","createCollection","_createHeaderView","add","FormRowView","class","set","data","cancel","fire","_focusCycler","FocusCycler","focusables","keystrokeHandler","actions","focusPrevious","focusNext","setTemplate","tag","attributes","tabindex","render","submitHandler","view","childViews","forEach","v","element","listenTo","destroy","focus","resetFormStatus","validator","errorText","t","backButton","ButtonView","label","icon","IconPreviousArrow","tooltip","delegate","to","saveButton","withText","type","header","FormHeaderView","labeledInput","LabeledFieldView","createLabeledInputText","infoText","id","fieldView","value","trim","isBookmarkIdValid","test","InsertBookmarkCommand","Command","model","editor","selection","document","position","_getPositionToInsertBookmark","isEnabled","execute","options","bookmarkId","logWarning","change","writer","isBookmarkAllowed","schema","checkChild","newPosition","bookmarkElement","createElement","Object","fromEntries","getAttributes","insertObject","setSelection","firstRange","getFirstRange","startPosition","start","previousPosition","item","is","createPositionAt","UpdateBookmarkCommand","selectedBookmark","getSelectedBookmark","getAttribute","undefined","setAttribute","getSelectedElement","BookmarkEditing","Plugin","_bookmarkElements","Map","pluginName","isOfficialPlugin","config","define","toolbar","_defineSchema","_defineConverters","commands","_trackBookmarkElements","getElementForBookmarkId","Set","values","register","inheritAllFrom","allowAttributes","disallowAttributes","conversion","htmlProcessor","domConverter","registerInlineObjectMatcher","upcastMatcher","editing","for","elementToElement","name","modelElement","emptyElement","createEmptyElement","containerElement","createContainerElement","_createBookmarkUIElement","setCustomProperty","labelCreator","toWidget","dispatcher","on","dataViewModelAnchorInsertion","createUIElement","domDocument","domElement","toDomElement","IconView","content","IconBookmarkInline","isColorInherited","appendChild","root","rootName","delete","expectEmpty","isAnchorElement","isEmpty","hasIdAttribute","hasAttribute","hasNameAttribute","hasHrefAttribute","evt","conversionApi","viewItem","match","consumable","enableNonEmptyAnchorConversion","isEnabledNonEmptyAnchorConversion","modelWriter","anchorId","anchorName","bookmark","safeInsert","modelCursor","consume","updateConversionResult","modelRange","convertChildren","createRange","end","get","VISUAL_SELECTION_MARKER_NAME","BookmarkUI","formView","requires","ContextualBalloon","WidgetToolbarRepository","_balloon","plugins","has","_registerLinkProvider","_registerComponents","markerToHighlight","classes","markerToElement","markerRange","isCollapsed","markerElement","addClass","widgetToolbarRepository","defaultPositions","BalloonPanelView","ariaLabel","items","getRelatedElement","getSelectedBookmarkWidget","balloonClassName","positions","southArrowNorth","southArrowNorthMiddleWest","southArrowNorthMiddleEast","southArrowNorthWest","southArrowNorthEast","northArrowSouth","northArrowSouthMiddleWest","northArrowSouthMiddleEast","northArrowSouthWest","northArrowSouthEast","viewportStickyNorth","_createFormView","_enableUserBalloonInteractions","insertBookmarkCommand","updateBookmarkCommand","CssTransitionDisablerMixin","getFormValidators","bind","toMany","areEnabled","some","_hideFormView","isValid","_getSelectedBookmarkElement","ui","update","linksUI","bookmarkEditing","getListItems","Array","from","getAllBookmarkNames","sort","a","b","localeCompare","map","href","IconBookmarkMedium","getItem","find","IconBookmarkSmall","registerLinksListProvider","emptyListPlaceholder","navigate","_scrollToBookmark","slice","scrollToTheSelection","alignToTop","forceScroll","componentFactory","buttonView","_createBookmarkButton","MenuBarMenuListItemButtonView","LabelView","extendTemplate","button","IconPencil","_showFormView","deleteCommand","IconRemove","ButtonClass","insertCommand","updateCommand","IconBookmark","_isFormVisible","clickOutsideHandler","emitter","activator","_isFormInPanel","contextElements","callback","_createViews","disableCssTransitions","_getBalloonPositionData","isVisible","visibleView","select","enableCssTransitions","_removeFormView","updateFocus","reset","remove","_hideFakeVisualSelection","_showFakeVisualSelection","_addFormView","showStack","_startUpdatingUI","stopListening","viewDocument","prevSelectedBookmark","prevSelectionParent","getSelectionParent","selectionParent","updatePosition","getAncestors","reverse","node","hasView","target","markers","markerViewElements","mapper","markerNameToElements","newRange","createPositionBefore","createPositionAfter","length","viewRangeToDom","viewElement","toViewElement","mapViewToDom","range","updateMarker","isAtEnd","getLastMatchingPosition","isContent","boundaries","addMarker","usingOperation","affectsData","removeMarker","form","selectedElement","existingBookmarkForId","isWidget","getCustomProperty","Bookmark","Widget"],"mappings":";;;;AAAA,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACxE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9G,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,gBAAgB,CAAC,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAAC,CAAC,0BAA0B,CAAC,CAAC,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACpU,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACzJ,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACpG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;;ACgC3E,CAAA,CAAA;AD7BA,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;AAC1C,CAAC;AACD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AACnE,CAAC,CAAC,CAAC,CC+BY,KAAMA,CAAAA,gBAAyBC,CAAAA,OAAAA,CAAAA,IAAAA,CAAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9BD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AAClD,CAAC,CAAC,CAAC,CAAC,CCgCaC,YAAe,CAAA,CAAA,CAAA,GAAIC,CAAAA,YAAe,CAAA,CAAA;AAElD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhCD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AAC7E,CAAC,CAAC,CAAC,CAAC,CCkCaC,UAAa,CAAA,CAAA,CAAA,GAAIC,CAAAA,gBAAmB,CAAA,CAAA;AAEpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADlCD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI;ACoCnB,CAAA,CAAA,CAAA,CAAA,CACD,WAAoD;AAEpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADpCD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;ACsC9C,CAAA,CAAA,CAAA,CAAA,CACD,cAAkC;AAElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADtCD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;ACwClC,CAAA,CAAA,CAAA,CAAA,CACD,cAAkC;AAElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADxCD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AC0C9C,CAAA,CAAA,CAAA,CAAA,CACD,QAAyC;AAEzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD1CD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AC4CtD,CAAA,CAAA,CAAA,CAAA,CACD,WAAmE;AAEnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD5CD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;AACzD,CAAC,CAAC,CAAC,CAAC,CC8CcC,WAAc,CAAA,CAAA,CAAA,GAAIC,CAAAA,cAAgC,CAAA,CAAA;AAEnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9CD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;ACgDrD,CAAA,CAAA,CAAA,CAAA,CACD,YAA2C;AAE3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhDD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,KAAK;AACjG,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAC5B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ;AACpD,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;ACkD7D,CAAA,CAAA,CAAA,CAAA,CACD,WAAaC,CAAAA,MAAc,CAAA,CAAEC,UAAgD,CAAG;AAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAED,MAAAA,CAAAA;ADjDT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCmDL,IAAI,CAACE,WAAW,CAAA,CAAA,CAAGD,UAAAA;ADlDrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;ACqDvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACE,cAAc,CAAA,CAAA,CAAG,IAAI,CAACC,iBAAiB,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,cAAc,CAAA,CAAA,CAAG,IAAI,CAACC,iBAAiB,CAAA,CAAA;ADnD9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;ACsD5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,WAAW,CAAA,CAAA,CAAG,IAAI,CAACC,cAAc,CAAA,CAAA;AAEtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,QAAQ,CAAA,CAAA,CAAG,IAAI,CAACC,gBAAgB,CAAE;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,iBAAiB,CAAA;AAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACF,QAAQ,CAACG,GAAG,CAAE,GAAIC,CAAAA,WAAAA,CAAab,MAAQ,CAAA,CAAA;ADnD9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoDRS,QAAU,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACF,WAAW;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACF;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADnDJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoDRS,KAAO,CAAA,CAAA;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,cAAA,CAAA,MAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,eAAA,CAAA,GAAA,CAAA,OAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADnDF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;ACsDrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAClB,UAAU,CAACmB,GAAG,CAAE,CAAA,GAAA,CAAA,CAAA,CAAO,CAAEC,IAAMC,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;ADpDtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqDR,IAAI,CAACC,IAAI,CAA+B,CAAA,MAAA,CAAA,CAAA;AACxCD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACE,YAAY,CAAG,CAAA,CAAA,GAAA,CAAIC,WAAa,CAAA;ADrDvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCsDRC,UAAY,CAAA,CAAA,IAAI,CAACvB,WAAW;ADrD/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCsDRJ,YAAc,CAAA,CAAA,IAAI,CAACA,YAAY;ADrDlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCsDR4B,gBAAkB,CAAA,CAAA,IAAI,CAAC1B,UAAU;ADrDpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCsDR2B,OAAS,CAAA,CAAA;ADrDZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS;AACjF,CCsDIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAe,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,GAAA,CAAA;ADrDnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG;AAClE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuDXC,SAAW,CAAA,CAAA,CAAA,GAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADtDF,CCwDE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,WAAW,CAAE;ADvDpB,CCwDGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAK,CAAA,CAAA,CAAA,IAAA,CAAA;ADvDR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyDRC,UAAY,CAAA,CAAA;ADxDf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyDXd,KAAO,CAAA,CAAA;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,QAAA,CAAA,IAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,UAAA,CAAA,IAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADxDL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACrE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC0DXe,QAAU,CAAA,CAAA,CAAA,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADzDH,CC2DGpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAU,CAAA,CAAA,IAAI,CAACA;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD3DD,CAAC,CAAC,CAAC,CAAC,CAAC;AC6DH,CAAA,CAAA,CAAA,CAAA,CACD,MAA+B,CAAA,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAACqB,MAAAA,CAAAA,CAAAA;AD5DR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC8DLC,aAAe,CAAA;AACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAM,CAAA;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,UAAa,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC9B,cAAc;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACI,WAAW;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACF;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9DH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgEL4B,UAAWC,CAAAA,OAAO,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AD/DtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS;ACiE1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACrC,WAAW,CAACc,GAAG,CAAEuB,CAAAA,CAAAA;AD/DzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;ACkElD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACzC,YAAY,CAACkB,GAAG,CAAEuB,CAAAA,CAAEC,OAAO,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhEF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO;ACmEhE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACxC,UAAU,CAACyC,QAAQ,CAAE,IAAI,CAACD,OAAO,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADlED,CAAC,CAAC,CAAC,CAAC,CAAC;ACoEH,CAAA,CAAA,CAAA,CAAA,CACD,OAAgC,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAACE,OAAAA,CAAAA,CAAAA;ADnER,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqEL,IAAI,CAAC5C,YAAY,CAAC4C,OAAO,CAAA,CAAA;ADpE3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqEL,IAAI,CAAC1C,UAAU,CAAC0C,OAAO,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADrED,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;ACuEnD,CAAA,CAAA,CAAA,CAAA,CACD,KAAqB,CAAA,CAAA,CAAA;ADtEtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuEL,IAAI,CAAC/B,WAAW,CAAEgC,KAAK,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADvED,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;ACyErE,CAAA,CAAA,CAAA,CAAA,CACD,OAA0B,CAAA,CAAA,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,eAAe,CAAA,CAAA;AAEpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAMC,CAAAA,SAAAA,CAAAA,EAAAA,CAAa,IAAI,CAACvC,WAAW,CAAG;ADzE9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC0ER,KAAA,CAAMwC,SAAAA,CAAAA,CAAAA,CAAYD,SAAAA,CAAW,IAAI,CAAA;ADzEpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM;AC4EzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKC,SAAY,CAAA,CAAA;AD1EpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK;AC4ElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACnC,WAAW,CAACmC,SAAS,CAAA,CAAA,CAAGA,SAAAA;AD1EjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC4EX,MAAA,CAAO,KAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD3EF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC6EL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD7ED,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW;AACrF,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;AACvF,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AC+EtB,CAAA,CAAA,CAAA,CAAA,CACD,eAA+B,CAAA,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACnC,WAAW,CAACmC,SAAS,CAAA,CAAA,CAAG,IAAA;AAC9B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD/ED,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;ACiFlD,CAAA,CAAA,CAAA,CAAA,CACD,iBAAwC,CAAA,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,CAAI,CAAA,CAAA,CAAA,IAAI,CAAC3C,MAAM,CAAE2C,CAAC;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,UAAa,CAAA,CAAA,CAAA,GAAA,CAAIC,UAAY,CAAA,IAAI,CAAC7C,MAAM,CAAA;AAE9C4C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAW7B,GAAG,CAAE;ADjFlB,CCkFGD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAO,CAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,IAAA,CAAA;AACPgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOH,CAAG,CAAA,CAAA,IAAA,CAAA,CAAA;ADjFb,CCkFGI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAMC,CAAAA,CAAAA,iBAAAA;ADjFT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCkFRC,OAAS,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWM,QAAQ,CAAE,CAAA,OAAA,CAAA,CAAA,CAAYC,EAAE,CAAE,IAAI,CAAE,CAAA,CAAA,MAAA,CAAA,CAAA;ADlF7C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoFL,MAAA,CAAOP,UAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADpFD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ;ACsFpD,CAAA,CAAA,CAAA,CAAA,CACD,iBAAwC,CAAA,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMD,CAAI,CAAA,CAAA,CAAA,IAAI,CAAC3C,MAAM,CAAE2C,CAAC;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMS,UAAa,CAAA,CAAA,CAAA,GAAA,CAAIP,UAAY,CAAA,IAAI,CAAC7C,MAAM,CAAA;AAE9CoD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWrC,GAAG,CAAE;AACf+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOH,CAAG,CAAA,CAAA,IAAA,CAAA,CAAA;ADtFb,CCuFGU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAU,CAAA,CAAA,IAAA;ADtFb,CCuFGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAM,CAAA,CAAA,CAAA,MAAA,CAAA;ADtFT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuFRxC,KAAO,CAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,CAAA,MAAA,CAAA,IAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADtFF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCwFL,MAAA,CAAOsC,UAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADxFD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;AC0FpC,CAAA,CAAA,CAAA,CAAA,CACD,iBAA4C,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMT,CAAI,CAAA,CAAA,CAAA,IAAI,CAAC3C,MAAM,CAAE2C,CAAC;AAExB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMY,MAAAA,CAAS,CAAA,CAAA,GAAA,CAAIC,cAAAA,CAAgB,IAAI,CAACxD,MAAM,CAAE,CAAA;AAC/C8C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOH,CAAG,CAAA,CAAA,QAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO9C,QAAQ,CAACG,GAAG,CAAE,IAAI,CAACT,cAAc,CAAE,CAAA,CAAA,CAAA;AD3F5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC6FL,MAAA,CAAOoD,MAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD7FD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;AAChC,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;AC+FtC,CAAA,CAAA,CAAA,CAAA,CACD,cAA0D,CAAA,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMZ,CAAI,CAAA,CAAA,CAAA,IAAI,CAAC3C,MAAM,CAAE2C,CAAC;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMc,YAAAA,CAAAA,CAAAA,CAAe,GAAIC,CAAAA,gBAAAA,CAAkB,IAAI,CAAC1D,MAAM,CAAE2D,CAAAA,sBAAAA,CAAAA;AD9F1D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgGLF,YAAaX,CAAAA,KAAK,CAAA,CAAA,CAAGH,CAAG,CAAA,CAAA,QAAA,CAAA,IAAA,CAAA,CAAA;AD/F1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgGLc,YAAaG,CAAAA,QAAQ,CAAA,CAAA,CAAGjB,CAAG,CAAA,CAAA,KAAA,CAAA,GAAA,CAAA,QAAA,CAAA,IAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAC3Bc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAa3C,KAAK,CAAA,CAAA,CAAG,CAAA,EAAA,CAAA,OAAA,CAAA,KAAA,CAAA,SAAA,CAAA,KAAA,CAAA;AD/FvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCiGL,MAAA,CAAO2C,YAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADjGD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO;AAC9D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK;AACrG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;ACmG7F,CACD,CAAA,CAAA,CAAA,CAAA,GAAA,CAAWI,EAAoB,CAAA,CAAA,CAAA;ADlGhC,CCmGE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,CAAA,CAAEzB,OAAO,CAAA,CAAE,CAAA,CAAA,CAAG,IAAI,CAAC7B,WAAW,CAACuD,SAAS;AAE9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC1B,OAAU,CAAA,CAAA;ADnGlB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoGR,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADnGF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqGL,MAAA,CAAOA,OAAAA,CAAQ2B,KAAK,CAACC,IAAI,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA;AACD;;AC5TA,CAAA,CAAA;AF0NA,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;AACpF,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AAClF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AACpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;AACzE,CAAC,CAAC,CAAC,CEpNI,QAASC,CAAAA,iBAAAA,CAAmBJ,EAAU,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACA,EAAAA,CAAAA,CAAAA,CAAAA,CAAM,MAAA,CAAOA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,MAAA,CAAW,CAAA,CAAA;AFqNtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEpNL,MAAA,CAAO,KAAA;AACR,CAAA,CAAA,CAAA,CAAA;AFqND,CAAC,CAAC,CAAC,CEnNF,EAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAKK,IAAI,CAAEL,EAAO,CAAA,CAAA,CAAA;AFoNxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnNL,MAAA,CAAO,KAAA;AACR,CAAA,CAAA,CAAA,CAAA;AFoND,CAAC,CAAC,CAAC,CElNF,MAAA,CAAO,IAAA;AACR;;ACDA,CAAA,CAAA;AHsNA,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO;AAC9B,CAAC;AACD,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAC7G,CAAC;AACD,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS;AACjI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;AAC7D,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CGpNY,KAAMM,CAAAA,qBAA8BC,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHqND,CAAC,CAAC,CAAC,CAAC,CAAC;AGnNH,CAAA,CAAA,CAAA,CAAA,CACD,OAAgC,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,KAAQ,CAAA,CAAA,CAAA,IAAI,CAACC,MAAM,CAACD,KAAK;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,SAAYF,CAAAA,CAAAA,CAAAA,KAAAA,CAAMG,QAAQ,CAACD,SAAS;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,QAAW,CAAA,CAAA,CAAA,IAAI,CAACC,4BAA4B,CAAEH,SAAAA,CAAAA;AAEpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACI,SAAS,CAAG,CAAA,CAAA,CAAC,CAACF,QAAAA;AACpB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHkND,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO;AACxB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACX,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS;AACrE,CGhNiBG,CAAAA,CAAAA,CAAAA,CAAAA,OAASC,CAAAA,OAA+B,CAAS,CAAA;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACA,OAAU,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHiNF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG/ML,KAAM,CAAA,CAAA,CAAEC,UAAU,CAAA,CAAE,CAAA,CAAA,CAAGD,OAAAA;AHgNzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG9ML,EAAA,CAAA,CAAK,CAACZ,iBAAAA,CAAmBa,UAAe,CAAA,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH+MH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACpE,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;AACtF,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AG7MvD,CACDC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAY,CAAA,CAAA,MAAA,CAAA,QAAA,CAAA,OAAA,CAAA,QAAA,CAAA,IAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;AAEZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH6MF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG3ML,KAAMT,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;AH4M5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG3ML,KAAMD,CAAAA,KAAAA,CAAQC,CAAAA,CAAAA,MAAAA,CAAOD,KAAK;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,SAAYF,CAAAA,CAAAA,CAAAA,KAAAA,CAAMG,QAAQ,CAACD,SAAS;AH4M5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG1MLF,KAAMW,CAAAA,MAAM,CAAEC,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAIR,QAAW,CAAA,CAAA,CAAA,IAAI,CAACC,4BAA4B,CAAEH,SAAAA,CAAAA;AAElD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMW,CAAAA,iBAAAA,CAAoBb,CAAAA,CAAAA,KAAMc,CAAAA,MAAM,CAACC,UAAU,CAAEX,QAAU,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA;AH0MhE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;AACxF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM;AGvM7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACS,iBAAoB,CAAA,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMG,WAAcf,CAAAA,CAAAA,CAAAA,MAAAA,CAAOM,OAAO,CAAE,CAAA,eAAA,CAAmB,CAAA,CAAA;AAAEH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAElE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACY,WAAc,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH0MJ,CGxMIZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAWY,CAAAA,CAAAA,CAAAA,WAAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,eAAkBL,CAAAA,CAAAA,CAAAA,MAAAA,CAAOM,aAAa,CAAE,CAAA,QAAA,CAAY,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGC,MAAOC,CAAAA,WAAW,CAAElB,SAAAA,CAAUmB,aAAa,CAAA,CAAI,CAAA;AAClDZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAMsB,YAAY,CAAEL,eAAiBb,CAAAA,CAAAA,QAAAA,CAAU,CAAA,IAAM,CAAA,CAAA;AHuMxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGvM2CmB,YAAc,CAAA,CAAA,CAAA,EAAA;AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHwMD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;AAC3G,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;AACjD,CGtMSlB,CAAAA,CAAAA,CAAAA,CAAAA,4BAA8BH,CAAAA,SAAwC,CAAoB,CAAA;AACjG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMF,KAAQ,CAAA,CAAA,CAAA,IAAI,CAACC,MAAM,CAACD,KAAK;AHuMjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGtML,KAAMc,CAAAA,MAAAA,CAASd,CAAAA,CAAAA,KAAAA,CAAMc,MAAM;AHuM7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGrML,KAAA,CAAMU,UAAAA,CAAAA,CAAAA,CAAatB,SAAAA,CAAUuB,aAAa,CAAA,CAAA;AHsM5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGrML,KAAMC,CAAAA,aAAAA,CAAgBF,CAAAA,CAAAA,UAAAA,CAAWG,KAAK;AHsMxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;AACtG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGpML,EAAA,CAAA,CAAKd,iBAAAA,CAAmBa,aAAAA,CAAeZ,CAAAA,MAAW,CAAA,CAAA,CAAA;AHqMpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGpMR,MAAA,CAAOY,aAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAA,CAAM,CAAEE,CAAAA,gBAAgB,CAAA,CAAEC,IAAI,CAAA,CAAE,CAAIL,EAAAA,CAAAA,UAAa,CAAA;AHoMzD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;AACrH,CGnMG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CACCK,IAAAA,CAAKC,EAAE,CAAE,CACThB,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOC,UAAU,CAAEc,IAAM,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CACzBhB,CAAAA,CAAAA,CAAAA,iBAAmBgB,CAAAA,IAAAA,CAAAA,CAAMf,MACxB,CAAA,CAAA,CAAA;AHgML,CG/LI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOd,KAAAA,CAAM+B,gBAAgB,CAAEF,IAAM,CAAA,CAAA,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHgMH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG9LR,EAAA,CAAA,CAAKhB,iBAAAA,CAAmBe,gBAAAA,CAAkBd,CAAAA,MAAW,CAAA,CAAA,CAAA;AH+LxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG9LX,MAAA,CAAOc,gBAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH+LF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG7LL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AACD;AAEA,CAAA,CAAA;AH6LA,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI;AG3LpG,CAAA,CAAA,CAAA,CACD,QAAA,CAASf,iBAAAA,CAAmBT,QAAiC,CAAA,CAAEU,MAAc,CAAA,CAAA;AAC5E,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKA,MAAOC,CAAAA,UAAU,CAAEX,QAAAA,CAAAA,CAAU,CAAe,QAAA,CAAA,CAAA,CAAA,CAAA;AH4LlD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG3LL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACU,MAAAA,CAAOC,UAAU,CAAEX,QAAAA,CAAAA,CAAU,CAAgB,SAAA,CAAA,CAAA,CAAA,CAAA;AH2LpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG1LL,MAAA,CAAO,KAAA;AACR,CAAA,CAAA,CAAA,CAAA;AH2LD,CGzLC,CAAA,CAAA,CAAA,MAAA,CAAOU,MAAAA,CAAOC,UAAU,CAAE,CAAa,SAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA;AACxC;;ACvIA,CAAA,CAAA;AJmUA,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO;AAC9B,CAAC;AACD,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAC7G,CAAC;AACD,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;AAC9H,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CIjUY,KAAMiB,CAAAA,qBAA8BjC,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA;AASlD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJ0TD,CAAC,CAAC,CAAC,CAAC,CAAC;AIxTH,CAAA,CAAA,CAAA,CAAA,CACD,OAAgC,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,KAAQ,CAAA,CAAA,CAAA,IAAI,CAACC,MAAM,CAACD,KAAK;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,SAAYF,CAAAA,CAAAA,CAAAA,KAAAA,CAAMG,QAAQ,CAACD,SAAS;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM+B,gBAAAA,CAAAA,CAAAA,CAAmBC,mBAAqBhC,CAAAA,SAAAA,CAAAA;AAE9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACI,SAAS,CAAG,CAAA,CAAA,CAAC,CAAC2B,gBAAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACvC,KAAK,CAAA,CAAA,CAAGuC,gBAAAA,CAAAA,CAAAA,CAAmBA,gBAAiBE,CAAAA,YAAY,CAAE,CAA2BC,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA;AAC3F,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJuTD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO;AACxB,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACX,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;AAClC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;AAChF,CIrTiB7B,CAAAA,CAAAA,CAAAA,CAAAA,OAASC,CAAAA,OAA+B,CAAS,CAAA;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACA,OAAU,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJsTF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CIpTL,KAAM,CAAA,CAAA,CAAEC,UAAU,CAAA,CAAE,CAAA,CAAA,CAAGD,OAAAA;AJqTzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CInTL,EAAA,CAAA,CAAK,CAACZ,iBAAAA,CAAmBa,UAAe,CAAA,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJoTH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;AACpE,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;AACtF,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AIlTvD,CACDC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAY,CAAA,CAAA,MAAA,CAAA,QAAA,CAAA,OAAA,CAAA,QAAA,CAAA,IAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;AAEZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMV,KAAQ,CAAA,CAAA,CAAA,IAAI,CAACC,MAAM,CAACD,KAAK;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,SAAYF,CAAAA,CAAAA,CAAAA,KAAAA,CAAMG,QAAQ,CAACD,SAAS;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM+B,gBAAAA,CAAAA,CAAAA,CAAmBC,mBAAqBhC,CAAAA,SAAAA,CAAAA;AAE9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK+B,gBAAmB,CAAA,CAAA;AJgT1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI/SRjC,KAAMW,CAAAA,MAAM,CAAEC,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AJgTjB,CI/SIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAOyB,CAAAA,YAAY,CAAE,CAAA,UAAA,CAAA,CAAc5B,CAAAA,UAAYwB,CAAAA,CAAAA,gBAAAA,CAAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AACD;AAEA,CAAA,CAAA;AJ+SA,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;AAC/D,CAAC,CAAC,CAAC,CI7SH,QAASC,CAAAA,mBAAAA,CAAqBhC,SAAwC,CAAA,CAAA;AJ8StE,CAAC,CAAC,CAAC,CI7SF,KAAA,CAAMnC,OAAAA,CAAAA,CAAAA,CAAUmC,SAAAA,CAAUoC,kBAAkB,CAAA,CAAA;AAE5C,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAC,CAACvE,OAAAA,CAAWA,CAAAA,CAAAA,CAAAA,OAAAA,CAAQ+D,EAAE,CAAE,CAAA,OAAA,CAAA,CAAW,CAAA,CAAA,QAAA,CAAe,CAAA,CAAA,CAAA;AJ6SzD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI5SL,MAAA,CAAO/D,OAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AJ6SD,CAAC,CAAC,CAAC,CI3SF,MAAA,CAAO,IAAA;AACR;;AClEA,CAAA,CAAA;ALgXA,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM;AAC9B,CAAC,CAAC,CAAC,CK9WY,KAAMwE,CAAAA,eAAwBC,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL+WD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ;AACtD,CAAC,CAAC,CAAC,CAAC,CK7WKC,iBAAoB,CAAA,CAAA,CAAA,GAAIC,CAAAA,GAAuB,CAAA,CAAA;AAEvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL6WD,CAAC,CAAC,CAAC,CAAC,CAAC;AK3WH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBC,UAAa,CAAA,CAAA,CAAA;AL4WhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK3WL,MAAA,CAAO,CAAA,eAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL2WD,CAAC,CAAC,CAAC,CAAC,CAAC;AKzWH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAA2BC,gBAAyB,CAAA,CAAA,CAAA;AL0WrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKzWL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALyWD,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CKvWC,CAAA,CAAA,CAAA,CAAA,WAAA,CAAa3C,MAAc,CAAG;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAEA,MAAAA,CAAAA;AAEPA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO4C,MAAM,CAACC,MAAM,CAAE,CAAA,QAAA,CAAY,CAAA,CAAA;ALuWpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKtWRC,OAAS,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA;AAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA;AAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAA;AAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL2WD,CAAC,CAAC,CAAC,CAAC,CAAC;AKzWH,CAAA,CAAA,CAAA,CAAA,CACD,IAAoB,CAAA,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAM,CAAA,CAAA,CAAE9C,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,IAAI;AAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC+C,aAAa,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,iBAAiB,CAAA,CAAA;AAEtBhD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOiD,QAAQ,CAAC3G,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA,CAAkB,GAAIuD,CAAAA,qBAAuBG,CAAAA,MAAAA,CAAAA,CAAAA;AAClEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOiD,QAAQ,CAAC3G,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA,CAAkB,GAAIyF,CAAAA,qBAAuB/B,CAAAA,MAAAA,CAAAA,CAAAA;ALwWpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKtWL,IAAI,CAACjC,QAAQ,CAAuBiC,MAAAA,CAAOD,KAAK,CAACG,QAAQ,CAAA,CAAE,CAAe,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACgD,sBAAsB,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALsWD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM;AACpE,CKpWQC,CAAAA,CAAAA,CAAAA,CAAAA,uBAAyB3C,CAAAA,UAAkB,CAAmB,CAAA;ALqWtE,CKpWE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM,CAAA,CAAE1C,OAASyB,CAAAA,CAAAA,EAAAA,CAAI,CAAI,EAAA,CAAA,IAAI,CAACiD,iBAAiB,CAAG;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAKjD,CAAAA,CAAAA,EAAAA,CAAMiB,CAAAA,CAAAA,CAAAA,UAAa,CAAA,CAAA;ALqW3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKpWX,MAAA,CAAO1C,OAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALqWF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKnWL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALmWD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;AKjW3D,CAAA,CAAA,CAAA,CAAA,CACD,mBAA0C,CAAA,CAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,GAAIsF,CAAAA,GAAK,CAAA,IAAI,CAACZ,iBAAiB,CAACa,MAAM,CAAA,CAAA,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALiWD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;AK/V7C,CAAA,CAAA,CAAA,CAAA,CACD,aAAwB,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMxC,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACb,MAAM,CAACD,KAAK,CAACc,MAAM;ALgWzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK9VLA,MAAOyC,CAAAA,QAAQ,CAAE,CAAA,QAAA,CAAY,CAAA,CAAA;AL+V/B,CK9VGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAgB,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA;AL+VnB,CK9VGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAiB,CAAA,CAAA,CAAA,UAAA,CAAA;AL+VpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK9VRC,kBAAoB,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA;AAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA;AAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALiWD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;AK/VjD,CAAA,CAAA,CAAA,CAAA,CACD,iBAA4B,CAAA,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAM,CAAA,CAAA,CAAEzD,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,IAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,CAAE0D,CAAAA,UAAU,CAAA,CAAErF,CAAC,CAAA,CAAE,CAAA,CAAA,CAAG2B,MAAAA;ALgW5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK9VLA,MAAOtD,CAAAA,IAAI,CAACiH,aAAa,CAACC,YAAY,CAACC,2BAA2B,CAAE/F,CAAAA,OAAAA,CAAAA,CAAAA,CAAWgG,aAAehG,CAAAA,OAAAA,CAAAA,CAAAA;AL+VhG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ;AACnI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK7VLkC,MAAO+D,CAAAA,OAAO,CAACrG,IAAI,CAACkG,YAAY,CAACC,2BAA2B,CAAE/F,CAAAA,OAAWgG,CAAAA,CAAAA,CAAAA,aAAAA,CAAehG,OAAS,CAAA,CAAA,KAAA,CAAA,CAAA;AAEjG4F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWM,GAAG,CAAE,CAAA,YAAA,CAAiBC,CAAAA,CAAAA,gBAAgB,CAAE;AL6VrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK5VRlE,KAAO,CAAA,CAAA;AL6VV,CK5VImE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAM,CAAA,CAAA,CAAA,QAAA,CAAA;AL6VV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK5VX5G,UAAY,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA;AAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACAI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAM,CAAEyG,YAAAA,CAAAA,CAAc,CAAExD,CAAAA,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMyD,YAAezD,CAAAA,CAAAA,CAAAA,MAAAA,CAAO0D,kBAAkB,CAAE,CAAA,CAAA,CAAK,CAAA,CAAA;AL+VzD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK9Vd,CAAA,EAAA,CAAMF,CAAAA,CAAAA,YAAAA,CAAajC,YAAY,CAAE,CAAA,UAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL+VJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC7G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK5VX,MAAA,CAAOkC,YAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWM,GAAG,CAAE,CAAA,eAAA,CAAoBC,CAAAA,CAAAA,gBAAgB,CAAE;AL4VxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK3VRlE,KAAO,CAAA,CAAA;AL4VV,CK3VImE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAM,CAAA,CAAA,CAAA,QAAA,CAAA;AL4VV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK3VX5G,UAAY,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA;AAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACAI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAM,CAAEyG,YAAAA,CAAAA,CAAc,CAAExD,CAAAA,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA;AL8VnC,CK7VI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMpB,EAAAA,CAAK4E,CAAAA,CAAAA,YAAajC,CAAAA,YAAY,CAAE,CAAA,UAAA,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMoC,gBAAmB3D,CAAAA,CAAAA,CAAAA,MAAAA,CAAO4D,sBAAsB,CAAE,CAAA,CAAA,CAAK,CAAA,CAAA;AAC5DhF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA;AL8VL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK7Vd/C,KAAO,CAAA,CAAA,CAAA,EAAA,CAAA,QAAA;AL8VZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK7VT,CAAA,CAAA;AL8VP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK9VV,IAAI,CAACgI,wBAAwB,CAAE7D,MAAAA;AAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALgWlD,CK9VIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAO8D,CAAAA,iBAAiB,CAAE,CAAA,QAAA,CAAA,CAAY,CAAA,IAAMH,CAAAA,CAAAA,gBAAAA,CAAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC9B,iBAAiB,CAAC/F,GAAG,CAAE0H,YAAc5E,CAAAA,CAAAA,EAAAA,CAAAA;AL+V9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AK3VrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMmF,CAAAA,YAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAInF,CAAAA,EAAAA,CAAI,CAAC,CAAA,CAAGlB,CAAAA,CAAG,CAAsB,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AL6VpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK3VX,MAAA,CAAOsG,QAAAA,CAAUL,gBAAAA,CAAAA,CAAkB3D,MAAQ,CAAA,CAAA;AL4V/C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK5V8BnC,KAAOkG,CAAAA,CAAAA;AAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL8VF,CK5VEhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAWM,CAAAA,GAAG,CAAE,CAAA,MAAA,CAAA,CAAA,CAAW1H,GAAG,CAC7BsI,CAAAA,UAAAA,CAAAA,CAAAA,CAAcA,UAAWC,CAAAA,EAAE,CAAsB,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAaC,4BAA8B9E,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AAE9F,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL0VD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI;AAC1E,CKxVSwE,CAAAA,CAAAA,CAAAA,CAAAA,wBAA0B7D,CAAAA,MAAsB,CAAkB,CAAA;ALyV3E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKxVL,MAAA,CAAOA,MAAAA,CAAOoE,eAAe,CAAE,CAAA,IAAA,CAAQ,CAAA,CAAA;ALyVzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKzVgCvI,KAAO,CAAA,CAAA,CAAA,EAAA,CAAA,cAAA;AAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,QAAUwI,CAAAA,WAAW,CAAA,CAAA;AAC3F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,UAAa,CAAA,CAAA,CAAA,IAAI,CAACC,YAAY,CAAEF,WAAAA,CAAAA;AAEtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMvG,CAAAA,IAAAA,CAAO,CAAA,CAAA,GAAA,CAAI0G,QAAAA,CAAAA,CAAAA;AAEjB1G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKhC,GAAG,CAAE;ALyVb,CKxVI2I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAASC,CAAAA,CAAAA,kBAAAA;ALyVb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKxVXC,gBAAkB,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA7G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKjB,MAAM,CAAA,CAAA;ALwVd,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKtVRyH,UAAWM,CAAAA,WAAW,CAAE9G,IAAAA,CAAKX,OAAO,CAAA;ALuVvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKrVR,MAAA,CAAOmH,UAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALqVD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;AKnVjD,CAAA,CAAA,CAAA,CAAA,CACD,sBAAuC,CAAA,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACzC,iBAAiB,CAAC5E,OAAO,CAAE,CAAE2B,EAAIzB,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKA,OAAQ0H,CAAAA,IAAI,CAACC,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,SAAA,CAAe,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACjD,iBAAiB,CAACkD,MAAM,CAAE5H,OAAAA,CAAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AACD;AAEA,CAAA,CAAA;ALmVA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS;AAC1H,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO;AAC7G,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO;AAC3C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AAC3G,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;AKjVxE,CACD,CAAA,CAAA,CAAA,QAAA,CAASgG,aAAAA,CAAehG,OAAoB,CAAA,CAAE6H,WAAAA,CAAAA,CAAAA,CAAuB,IAAI,CAAA,CAAA;ALkVzE,CAAC,CAAC,CAAC,CKjVF,KAAA,CAAMC,eAAAA,CAAAA,CAAAA,CAAkB9H,OAAQoG,CAAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA;AAEzC,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC0B,eAAkB,CAAA,CAAA;ALiVzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKhVL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKD,WAAe,CAAA,CAAA,CAAA,CAAA,CAAC7H,OAAQ+H,CAAAA,OAAO,CAAG,CAAA;ALgVxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK/UL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;ALgVD,CK9UC,CAAA,CAAA,CAAA,KAAA,CAAMC,cAAAA,CAAiBhI,CAAAA,CAAAA,OAAQiI,CAAAA,YAAY,CAAE,CAAA,EAAA,CAAA,CAAA;AL+U9C,CK9UC,CAAA,CAAA,CAAA,KAAA,CAAMC,gBAAAA,CAAmBlI,CAAAA,CAAAA,OAAQiI,CAAAA,YAAY,CAAE,CAAA,IAAA,CAAA,CAAA;AL+UhD,CK9UC,CAAA,CAAA,CAAA,KAAA,CAAME,gBAAAA,CAAmBnI,CAAAA,CAAAA,OAAQiI,CAAAA,YAAY,CAAE,CAAA,IAAA,CAAA,CAAA;AL+UhD,CAAC,CAAC,CAAC,CK7UF,EAAKD,CAAAA,CAAAA,cAAAA,CAAkB,CAAA,CAAA,CAAA,CAACG,gBAAmB,CAAA,CAAA;AL8U5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK7UL,MAAO,CAAA;AL8UT,CK9UW/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAM,CAAA,CAAA,IAAA;AL+UjB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK/UY5G,UAAY,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA;ALmVD,CAAC,CAAC,CAAC,CKjVF,EAAK0I,CAAAA,CAAAA,gBAAAA,CAAoB,CAAA,CAAA,CAAA,CAACC,gBAAmB,CAAA,CAAA;ALkV9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKjVL,MAAO,CAAA;ALkVT,CKlVW/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAM,CAAA,CAAA,IAAA;ALmVjB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKnVY5G,UAAY,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA;AAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA;ALuVD,CAAC,CAAC,CAAC,CKrVF,MAAA,CAAO,IAAA;AACR;AAEA,CAAA,CAAA;ALqVA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU;AAClH,CAAC;AACD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ;AACzC,CAAC,CAAC,CAAC,CKnVH,QAASwH,CAAAA,4BAAAA,CAA8B9E,MAAc,CAAA,CAAA;ALoVrD,CAAC,CAAC,CAAC,CKnVF,MAAA,CAAO,CACNkG,GAAAA,CAAAA,CACAxJ,IACAyJ,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,CAAAA;ALiVF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK/UL,KAAMC,CAAAA,QAAAA,CAAW1J,CAAAA,CAAAA,IAAAA,CAAK0J,QAAQ;ALgVhC,CK/UE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,KAAAA,CAAQvC,CAAAA,CAAAA,aAAAA,CAAesC,QAAU,CAAA,CAAA,KAAA,CAAA;ALgVzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK9UL,EAAK,CAAA,CAAA,CAACC,KAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAACF,aAAAA,CAAcG,UAAU,CAAC1G,IAAI,CAAEwG,QAAAA,CAAUC,CAAAA,KAAU,CAAA,CAAA,CAAA;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,8BAAAA,CAAAA,CAAAA,CAAiCC,iCAAmCxG,CAAAA,MAAAA,CAAAA;AAE1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACuG,8BAAAA,CAAAA,CAAAA,CAAAA,CAAkC,CAACH,QAAAA,CAASP,OAAO,CAAG,CAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL6UF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK3UL,KAAMY,CAAAA,WAAAA,CAAcN,CAAAA,CAAAA,aAAAA,CAAcxF,MAAM;AL4U1C,CK3UE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM+F,QAAAA,CAAWN,CAAAA,CAAAA,QAASlE,CAAAA,YAAY,CAAE,CAAA,EAAA,CAAA,CAAA;AL4U1C,CK3UE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMyE,UAAAA,CAAaP,CAAAA,CAAAA,QAASlE,CAAAA,YAAY,CAAE,CAAA,IAAA,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAM1B,CAAAA,UAAAA,CAAakG,CAAAA,CAAAA,QAAYC,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,QAAWH,CAAAA,CAAAA,CAAAA,WAAAA,CAAYxF,aAAa,CAAE,CAAA,QAAA,CAAY,CAAA,CAAA;AAAET,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAErE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAC2F,aAAcU,CAAAA,UAAU,CAAED,QAAUlK,CAAAA,CAAAA,IAAAA,CAAKoK,WAAW,CAAK,CAAA,CAAA;AAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAcG,UAAU,CAACS,OAAO,CAAEX,QAAUC,CAAAA,CAAAA,KAAAA,CAAAA;AAE5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAKK,CAAAA,CAAAA,QAAAA,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,UAAa,CAAA,CAAA;AAC9BR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAcG,UAAU,CAACS,OAAO,CAAEX,QAAU,CAAA,CAAA;AL2U/C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK3UkC9I,UAAY,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA;AAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL+UF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK7UL6I,aAAca,CAAAA,sBAAsB,CAAEJ,QAAUlK,CAAAA,CAAAA,IAAAA,CAAAA;AL8UlD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AACrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK5UL,KAAA,CAAM,CAAEoK,CAAAA,WAAW,CAAEG,CAAAA,UAAU,CAAA,CAAE,CAAGd,CAAAA,CAAAA,aAAAA,CAAce,eAAe,CAAEd,QAAU1J,CAAAA,CAAAA,IAAAA,CAAKoK,WAAW,CAAA;AAE7FpK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKoK,WAAW,CAAA,CAAA,CAAGA,WAAAA;AL4UrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK3ULpK,IAAKuK,CAAAA,UAAU,CAAGR,CAAAA,CAAAA,WAAAA,CAAYU,WAAW,CAAEzK,IAAKuK,CAAAA,UAAU,CAAEvF,KAAK,CAAA,CAAEuF,UAAAA,CAAYG,GAAG,CAAA;AACnF,CAAA,CAAA,CAAA,CAAA,CAAA;AACD;AAEA,CAAA,CAAA;AL2UA,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC;AAC/E,CAAC,CAAC,CAAC,CKzUH,QAASZ,CAAAA,iCAAAA,CAAmCxG,MAAc,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMuG,8BAAiCvG,CAAAA,CAAAA,CAAAA,MAAAA,CAAO4C,MAAM,CAACyE,GAAG,CAAE,CAAA,QAAA,CAAA,8BAAA,CAAA,CAAA;AL0U3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;AAC5F,CAAC,CAAC,CAAC,CKxUF,MAAA,CAAOd,8BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmCpE,SAAAA,CAAYoE,CAAAA,CAAAA,8BAAiC,CAAA,CAAA,CAAA,IAAA;AACxF;;ACnQA,KAAMe,CAAAA,4BAA+B,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,EAAA,CAAA;AAErC,CAAA,CAAA;AN6kBA,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;AACxC,CAAC;AACD,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO;AAC/H,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;AACtD,CAAC,CAAC,CAAC,CM3kBY,KAAMC,CAAAA,UAAmBhF,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4kBD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AAC9C,CM1kBQiF,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAoE,IAAK;AAEhF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0kBD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ;AMxkBxC,CAAA,CAAA,CAAA,CAAA,CACD,QAAqC;AAErC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwkBD,CAAC,CAAC,CAAC,CAAC,CAAC;AMtkBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBC,QAAW,CAAA,CAAA,CAAA;ANukB9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtkBL,MAAO,CAAA;AAAEnF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA;AAAiBoF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAAA;AAAmBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACvE,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0kBD,CAAC,CAAC,CAAC,CAAC,CAAC;AMxkBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBjF,UAAa,CAAA,CAAA,CAAA;ANykBhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxkBL,MAAA,CAAO,CAAA,UAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwkBD,CAAC,CAAC,CAAC,CAAC,CAAC;AMtkBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAA2BC,gBAAyB,CAAA,CAAA,CAAA;ANukBrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtkBL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANskBD,CAAC,CAAC,CAAC,CAAC,CAAC;AMpkBH,CAAA,CAAA,CAAA,CAAA,CACD,IAAoB,CAAA,CAAA,CAAA;ANqkBrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpkBL,KAAM3C,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;AAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC4H,QAAQ,CAAG5H,CAAAA,CAAAA,MAAAA,CAAO6H,OAAO,CAACR,GAAG,CAAEK,iBAAAA,CAAAA;ANokBtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AMjkB3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK1H,MAAO6H,CAAAA,OAAO,CAACC,GAAG,CAAE,CAAa,MAAA,CAAA,CAAA,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,qBAAqB,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmkBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;AMhkB/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,mBAAmB,CAAA,CAAA;ANkkB1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS;AM/jBxEhI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO0D,UAAU,CAACM,GAAG,CAAE,CAAA,eAAA,CAAA,CAAA,CAAoBiE,iBAAiB,CAAE;ANikBhE,CMhkBGlI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAOuH,CAAAA,CAAAA,4BAAAA;ANikBV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhkBR5J,IAAM,CAAA,CAAA;ANikBT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhkBXwK,OAAS,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA,QAAA,CAAA,SAAA;AAA8B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmkBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS;AMhkBxElI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO0D,UAAU,CAACM,GAAG,CAAE,CAAA,eAAA,CAAA,CAAA,CAAoBmE,eAAe,CAAE;ANkkB9D,CMjkBGpI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAOuH,CAAAA,CAAAA,4BAAAA;AACP5J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAM,CAAEhB,IAAAA,CAAAA,CAAM,CAAEiE,CAAAA,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACjE,IAAAA,CAAK0L,WAAW,CAACC,WAAW,CAAG,CAAA;ANkkBzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjkBd,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANkkBJ,CMhkBI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,aAAAA,CAAgB3H,CAAAA,CAAAA,MAAOoE,CAAAA,eAAe,CAAE,CAAA,IAAA,CAAA,CAAA;AAE9CpE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO4H,QAAQ,CACd;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA,QAAA,CAAA,SAAA,CAAA;AAA8B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA,QAAA,CAAA,mBAAA;ANikBrC,CMjkB6E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxED,aAAAA,CAAAA;ANikBL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9jBX,MAAA,CAAOA,aAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8jBD,CAAC,CAAC,CAAC,CAAC,CAAC;AM5jBH,CAAA,CAAA,CAAA,CAAA,CACD,SAAyB,CAAA,CAAA,CAAA;AN6jB1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5jBL,KAAMtI,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM3B,CAAI2B,CAAAA,CAAAA,CAAAA,MAAAA,CAAOtE,MAAM,CAAC2C,CAAC;AN6jB3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5jBL,KAAMmK,CAAAA,uBAAAA,CAA0B,CAAA,CAAA,IAAI,CAACxI,MAAM,CAAC6H,OAAO,CAACR,GAAG,CAAEM,uBAAAA,CAAAA;AN6jB3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5jBL,KAAMc,CAAAA,gBAAAA,CAAmBC,CAAAA,CAAAA,gBAAAA,CAAiBD,gBAAgB;AN6jB5D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3jBLD,uBAAwBlF,CAAAA,QAAQ,CAAE,CAAA,QAAA,CAAY,CAAA,CAAA;AAC7CqF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAWtK,CAAG,CAAA,CAAA,QAAA,CAAA,OAAA,CAAA,CAAA;AACduK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAO5I,MAAO4C,CAAAA,MAAM,CAACyE,GAAG,CAAE,CAAA,QAAA,CAAA,OAAA,CAAA,CAAA;AN4jB7B,CM1jBGwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAmBC,CAAAA,CAAAA,yBAAAA;AN2jBtB,CM1jBGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAkB,CAAA,CAAA,CAAA,EAAA,CAAA,QAAA,CAAA,OAAA,CAAA,EAAA,CAAA,OAAA,CAAA,SAAA,CAAA;AN2jBrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AACxE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI;AAC3E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzjBRC,SAAW,CAAA,CAAA;AACVP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBQ,eAAe;AAChCR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBS,yBAAyB;AAC1CT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBU,yBAAyB;AAC1CV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBW,mBAAmB;AACpCX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBY,mBAAmB;AACpCZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBa,eAAe;AAChCb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBc,yBAAyB;AAC1Cd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBe,yBAAyB;AAC1Cf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBgB,mBAAmB;AACpChB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBiB,mBAAmB;AACpCjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA,CAAiBkB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANyjBD,CAAC,CAAC,CAAC,CAAC,CAAC;AMvjBH,CAAA,CAAA,CAAA,CAAA,CACD,OAAgC,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAC3L,OAAAA,CAAAA,CAAAA;ANwjBR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACrG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtjBL,EAAK,CAAA,CAAA,IAAI,CAACwJ,QAAQ,CAAG,CAAA;ANujBvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtjBR,IAAI,CAACA,QAAQ,CAACxJ,OAAO,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANsjBD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;AMpjBf,CAAA,CAAA,CAAA,CAAA,CACD,YAAuB,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACwJ,QAAQ,CAAA,CAAA,CAAG,IAAI,CAACoC,eAAe,CAAA,CAAA;ANqjBtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;AMljBpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,8BAA8B,CAAA,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmjBD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,QAAQ;AMjjBnF,CAAA,CAAA,CAAA,CAAA,CACD,eAA4E,CAAA,CAAA,CAAA;ANkjB7E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjjBL,KAAM7J,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;ANkjB5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjjBL,KAAMtE,CAAAA,MAAAA,CAASsE,CAAAA,CAAAA,MAAAA,CAAOtE,MAAM;ANkjB9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjjBL,KAAM2C,CAAAA,CAAAA,CAAI3C,CAAAA,CAAAA,MAAAA,CAAO2C,CAAC;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMyL,qBAA+C9J,CAAAA,CAAAA,CAAAA,MAAAA,CAAOiD,QAAQ,CAACoE,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM0C,qBAA+C/J,CAAAA,CAAAA,CAAAA,MAAAA,CAAOiD,QAAQ,CAACoE,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMpE,QAAW,CAAA,CAAA,CAAA;AAAE6G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA;AAAuBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMvC,CAAAA,QAAAA,CAAW,CAAA,CAAA,GAAA,CAAA,CAAMwC,0BAAAA,CAA4B9O,gBAAiB,CAAA,CAAA,CAAKQ,MAAAA,CAAQuO,CAAAA,iBAAmBjK,CAAAA,MAAAA,CAAAA,CAAAA;ANojBtG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMljBLwH,QAASvL,CAAAA,WAAW,CAACuD,SAAS,CAAC0K,IAAI,CAAE,CAAA,KAAA,CAAA,CAAA,CAAUrL,EAAE,CAAEkL,qBAAuB,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA;AAC1EvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAASzL,cAAc,CAACmO,IAAI,CAAE,CAAA,KAAA,CAAA,CAAA,CAAUrL,EAAE,CAAEkL,qBAAuB,CAAA,CAAA,CAAA,KAAA,CAAA,CAAStK,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAASA,KAAQpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAA,IAAA,CAAA,CAAA,CAAWA,CAAAA,CAAAA,CAAG,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA;ANmjBhH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ;AMhjBnFmJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAASvL,WAAW,CAACiO,IAAI,CAAE,CAAA,SAAA,CAAA,CAAA,CAAcC,MAAM,CAC9ClH,QAAAA,CACA,CAAA,CAAA,SAAA,CACA,CAAA,CAAA,CAAE,CAAGmH,CAAAA,CAAAA,UAAgBA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWC,IAAI,CAAEhK,CAAAA,SAAaA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA;AN+iBtD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ;AM3iB7DmH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAASzL,cAAc,CAACmO,IAAI,CAAE,CAAA,SAAA,CAAA,CAAA,CAAcC,MAAM,CACjDlH,QAAAA,CACA,CAAA,CAAA,SAAA,CACA,CAAA,CAAA,CAAE,CAAGmH,CAAAA,CAAAA,UAAgBA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWC,IAAI,CAAEhK,CAAAA,SAAaA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA;AN0iBtD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;AMtiB3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACtC,QAAQ,CAA+ByJ,QAAAA,CAAU,CAAA,CAAA,MAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC8C,aAAa,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwiBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM;AMriB9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACvM,QAAQ,CAAEyJ,QAAAA,CAAU,CAAA,CAAA,MAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANuiBrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtiBR,EAAKA,CAAAA,CAAAA,QAAAA,CAAS+C,OAAO,CAAA,CAAK,CAAA,CAAA;ANuiB7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtiBX,KAAM9K,CAAAA,KAAAA,CAAQ+H,CAAAA,CAAAA,QAAAA,CAASjI,EAAE;ANuiB7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMriBX,EAAK,CAAA,CAAA,IAAI,CAACiL,2BAA2B,CAAA,CAAK,CAAA,CAAA;ANsiB9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMriBdxK,MAAOM,CAAAA,OAAO,CAAE,CAAA,cAAA,CAAkB,CAAA,CAAA;ANsiBvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtiBkBE,UAAYf,CAAAA,CAAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwiB3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMviBL,CAAA,IAAA,CAAA;ANwiBX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMviBdO,MAAOM,CAAAA,OAAO,CAAE,CAAA,cAAA,CAAkB,CAAA,CAAA;ANwiBvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxiBkBE,UAAYf,CAAAA,CAAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC6K,aAAa,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANyiBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AMtiBxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACvM,QAAQ,CAAEyJ,QAASvL,CAAAA,WAAW,CAAA,CAAE,CAAoB,MAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwiB3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMviBR+D,MAAOyK,CAAAA,EAAE,CAACC,MAAM,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwiBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtiBL,MAAA,CAAOlD,QAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANsiBD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;AMpiB9C,CAAA,CAAA,CAAA,CAAA,CACD,qBAAgC,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMnJ,CAAAA,CAAI,CAAA,CAAA,IAAI,CAAC2B,MAAM,CAACtE,MAAM,CAAC2C,CAAC;ANqiBhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpiBL,KAAMsM,CAAAA,OAAAA,CAAU,CAAA,CAAA,IAAI,CAAC3K,MAAM,CAAC6H,OAAO,CAACR,GAAG,CAAE,CAAA,MAAA,CAAA,CAAA;ANqiB3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpiBL,KAAMuD,CAAAA,eAAAA,CAAkB,CAAA,CAAA,IAAI,CAAC5K,MAAM,CAAC6H,OAAO,CAACR,GAAG,CAAE/E,eAAAA,CAAAA;ANqiBnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMniBL,KAAMuI,CAAAA,YAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,KACzBC,CAAAA,IAAI,CAAEH,eAAgBI,CAAAA,mBAAmB,CAAA,CAAA,CAAA,CACzCC,IAAI,CAAE,CAAEC,CAAGC,CAAAA,CAAAA,CAAAA,CAAOD,CAAAA,CAAAA,CAAAA,CAAEE,aAAa,CAAED,CAAAA,CAAAA,CAAAA,CACnCE,GAAG,CAAE,CAAE7K,UAAAA,CAAyC,CAAA,CAAA,CAAA;ANiiBpD,CMhiBIjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAIiB,CAAAA,CAAAA,UAAAA;ANiiBR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhiBf8K,IAAM,CAAA,CAAA,CAAC,CAAC,CAAG9K,CAAAA,UAAa,CAAA,CAAA;ANiiB5B,CMhiBIhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAOgC,CAAAA,CAAAA,UAAAA;ANiiBX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhiBf/B,IAAM8M,CAAAA,CAAAA;ANiiBV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhiBb,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMC,CAAAA,OAAAA,CAAU,CAAA,CAAA,CAAEF,IAAAA,CAAAA,CAAAA,CAAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM1E,QAAW,CAAA,CAAA,CAAA;AAAKgE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAgBI,mBAAmB,CAAA;ANiiB5D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjiBoD,CAACS,IAAI,CAAE7J,CAAAA,IAAAA,CAAQ,CAAA,CAAA,CAAC,CAAC,CAAA,CAAGA,IAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK0J,IAAAA,CAAAA;AAE7F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC1E,QAAW,CAAA,CAAA;ANiiBpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhiBX,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANiiBH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/hBR,MAAO,CAAA;AACN0E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA;ANgiBJ,CM/hBI9M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAOoI,CAAAA,CAAAA,QAAAA;ANgiBX,CM/hBInI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAMiN,CAAAA,CAAAA,iBAAAA;AACN/M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAASN,CAAG,CAAA,CAAA,MAAA,CAAA,EAAA,CAAA,QAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAsM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAQgB,yBAAyB,CAAE;AAClCnN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOH,CAAG,CAAA,CAAA,SAAA,CAAA,CAAA;AACVuN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,oBAAAA,CAAAA,CAAsBvN,CAAG,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,SAAA,CAAA,CAAA,CAAA;AN+hB5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9hBRwN,QAAU,CAAA,CAAA,CAAE,CAAA,CAAEP,IAAI,CAAA,CAA6B,CAAM,CAAA,CAAA,IAAI,CAACQ,iBAAiB,CAAER,IAAAA,CAAAA;AAC7ET,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA;AACAW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8hBD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACxD,CM5hBSM,CAAAA,CAAAA,CAAAA,CAAAA,iBAAmBR,CAAAA,IAAY,CAAG,CAAA;AN6hB3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5hBL,KAAMV,CAAAA,eAAAA,CAAkB,CAAA,CAAA,IAAI,CAAC5K,MAAM,CAAC6H,OAAO,CAACR,GAAG,CAAE/E,eAAAA,CAAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMtB,CAAAA,eAAAA,CAAkB4J,CAAAA,CAAAA,eAAgBzH,CAAAA,uBAAuB,CAAEmI,IAAAA,CAAKS,KAAK,CAAE,CAAA,CAAA,CAAA;AAE7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC/K,eAAkB,CAAA,CAAA;AN4hB1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3hBR,MAAA,CAAO,KAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAChB,MAAM,CAACD,KAAK,CAACW,MAAM,CAAEC,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AN2hB5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1hBRA,MAAOW,CAAAA,YAAY,CAAEN,eAAkB,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN2hBF,CMzhBE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAChB,MAAM,CAAC+D,OAAO,CAACrG,IAAI,CAACsO,oBAAoB,CAAE;AN0hBjD,CMzhBGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAY,CAAA,CAAA,IAAA;AN0hBf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzhBRC,WAAa,CAAA,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0hBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxhBL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANwhBD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACjE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS;AMthB/C,CAAA,CAAA,CAAA,CAAA,CACD,mBAA8B,CAAA,CAAA,CAAA;ANuhB/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMthBL,KAAMlM,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;AAE1BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOyK,EAAE,CAAC0B,gBAAgB,CAAC7P,GAAG,CAAE,CAAY,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM8P,UAAa,CAAA,CAAA,CAAA,IAAI,CAACC,qBAAqB,CAAE9N,UAAAA,CAAAA;AAE/C6N,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAW3P,GAAG,CAAE;ANqhBnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMphBXkC,OAAS,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANqhBH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnhBR,MAAA,CAAOyN,UAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEApM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOyK,EAAE,CAAC0B,gBAAgB,CAAC7P,GAAG,CAAE,CAAoB,OAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmhBtD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMlhBR,MAAA,CAAO,IAAI,CAAC+P,qBAAqB,CAAEC,6BAAAA,CAAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmhBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO;AM/gBjCtM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOyK,EAAE,CAAC0B,gBAAgB,CAAC7P,GAAG,CAAE,CAAA,eAAA,CAAA,CAAA,CAAmBZ,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMqO,qBAA+C/J,CAAAA,CAAAA,CAAAA,MAAAA,CAAOiD,QAAQ,CAACoE,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;ANihB7E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhhBR,KAAA,CAAM7I,KAAAA,CAAAA,CAAAA,CAAQ,GAAA,CAAI+N,SAAW7Q,CAAAA,MAAAA,CAAAA;AAE7B8C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAMgO,cAAc,CAAE;ANghBzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/gBXlP,UAAY,CAAA,CAAA;ANghBhB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/gBdd,KAAO,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,QAAA,CAAA,gBAAA;AAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAM0L,IAAI,CAAE,CAASrL,IAAAA,CAAAA,CAAAA,CAAAA,EAAE,CAAEkL,qBAAuB,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA;ANihBnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM/gBR,MAAA,CAAOvL,KAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOyK,EAAE,CAAC0B,gBAAgB,CAAC7P,GAAG,CAAE,CAAA,YAAA,CAAA,CAAA,CAAgBZ,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMqO,qBAA+C/J,CAAAA,CAAAA,CAAAA,MAAAA,CAAOiD,QAAQ,CAACoE,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;AN+gB7E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9gBR,KAAA,CAAMoF,MAAAA,CAAAA,CAAAA,CAAS,GAAA,CAAIlO,UAAY7C,CAAAA,MAAAA,CAAAA;AN+gBlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9gBR,KAAM2C,CAAAA,CAAAA,CAAI3C,CAAAA,CAAAA,MAAAA,CAAO2C,CAAC;AAElBoO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOhQ,GAAG,CAAE;AACX+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOH,CAAG,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA;AN8gBd,CM7gBII,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAMiO,CAAAA,CAAAA,UAAAA;AN8gBV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7gBX/N,OAAS,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA8N,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOvC,IAAI,CAAE,CAAA,SAAA,CAAcrL,CAAAA,CAAAA,EAAE,CAAEkL,qBAAAA,CAAAA;AAE/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAChM,QAAQ,CAAE0O,MAAAA,CAAQ,CAAA,CAAA,OAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACE,aAAa,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4gBH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1gBR,MAAA,CAAOF,MAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAzM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOyK,EAAE,CAAC0B,gBAAgB,CAAC7P,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA,CAAkBZ,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMkR,aAA+B5M,CAAAA,CAAAA,CAAAA,MAAAA,CAAOiD,QAAQ,CAACoE,GAAG,CAAE,CAAA,MAAA,CAAA,CAAA;AN0gB7D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzgBR,KAAA,CAAMoF,MAAAA,CAAAA,CAAAA,CAAS,GAAA,CAAIlO,UAAY7C,CAAAA,MAAAA,CAAAA;AN0gBlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzgBR,KAAM2C,CAAAA,CAAAA,CAAI3C,CAAAA,CAAAA,MAAAA,CAAO2C,CAAC;AAElBoO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOhQ,GAAG,CAAE;AACX+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOH,CAAG,CAAA,CAAA,MAAA,CAAA,QAAA,CAAA,CAAA;ANygBd,CMxgBII,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAMoO,CAAAA,CAAAA,UAAAA;ANygBV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxgBXlO,OAAS,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA8N,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOvC,IAAI,CAAE,CAAA,SAAA,CAAcrL,CAAAA,CAAAA,EAAE,CAAE+N,aAAAA,CAAAA;AAE/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC7O,QAAQ,CAAE0O,MAAAA,CAAQ,CAAA,CAAA,OAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjCzM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOM,OAAO,CAAE,CAAA,MAAA,CAAA,CAAA;AAChBN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO+D,OAAO,CAACrG,IAAI,CAACO,KAAK,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANugBH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMrgBR,MAAA,CAAOwO,MAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANqgBD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;AACnF,CMngBSJ,CAAAA,CAAAA,CAAAA,CAAAA,qBAAoDS,CAAAA,WAAc,CAAoB,CAAA;ANogB/F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMngBL,KAAM9M,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;ANogB5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMngBL,KAAMtE,CAAAA,MAAAA,CAASsE,CAAAA,CAAAA,MAAAA,CAAOtE,MAAM;ANogB9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMngBL,KAAA,CAAMgC,IAAAA,CAAAA,CAAAA,CAAO,GAAA,CAAIoP,WAAapR,CAAAA,MAAAA,CAAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMqR,aAAuC/M,CAAAA,CAAAA,CAAAA,MAAAA,CAAOiD,QAAQ,CAACoE,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM2F,aAAuChN,CAAAA,CAAAA,CAAAA,MAAAA,CAAOiD,QAAQ,CAACoE,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;ANogBpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMngBL,KAAMhJ,CAAAA,CAAAA,CAAI3C,CAAAA,CAAAA,MAAAA,CAAO2C,CAAC;AAElBX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKjB,GAAG,CAAE;AACT+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOH,CAAG,CAAA,CAAA,QAAA,CAAA,CAAA;ANmgBb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMlgBRI,IAAMwO,CAAAA,CAAAA;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmgBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;AMhgB5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAClP,QAAQ,CAAEL,IAAAA,CAAM,CAAA,CAAA,OAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/BsC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO+D,OAAO,CAACrG,IAAI,CAACsO,oBAAoB,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACW,aAAa,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAjP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKwM,IAAI,CAAE,CAAA,SAAA,CAAcC,CAAAA,CAAAA,MAAM,CAC9B;AAAE4C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA;AAAeC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;ANkgBpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMlgB2B,CAAA,CAChC,CAAA,SAAA,CAAA,CAAA,CACA,CAAE,CAAA,CAAA,CAAG5C,UAAAA,CAAgBA,CAAAA,CAAAA,UAAAA,CAAWC,IAAI,CAAEhK,CAAAA,SAAaA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA;ANigBtD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9fL3C,IAAKwM,CAAAA,IAAI,CAAE,CAAA,IAAA,CAAA,CAAA,CAASrL,EAAE,CAAEmO,aAAAA,CAAe,CAAA,CAAA,KAAA,CAASvN,CAAAA,CAAAA,CAAAA,KAAS,CAAA,CAAA,CAAA,CAAC,CAACA,KAAAA,CAAAA;AN+f7D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7fL,MAAA,CAAO/B,IAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN6fD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;AACvE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;AM3frC,CAAA,CAAA,CAAA,CAAA,CACD,8BAA+C,CAAA,CAAA,CAAA;AN4fhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO;AACtG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3fL,IAAI,CAACsC,MAAM,CAAC1E,UAAU,CAACmB,GAAG,CAAE,CAAA,GAAA,CAAO,CAAA,CAAA,CAAEC,IAAMC,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AN4f7C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3fR,EAAK,CAAA,CAAA,IAAI,CAACuQ,cAAc,CAAG,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC5C,aAAa,CAAA,CAAA;AAClB3N,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4fF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;AAC1D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1fLwQ,mBAAqB,CAAA;AN2fvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1fRC,OAAS,CAAA,CAAA,IAAI,CAAC5F,QAAQ;AN2fzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1fR6F,SAAW,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,IAAI,CAACC,cAAc;AACpCC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAiB,CAAM,CAAA,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC3F,QAAQ,CAAClK,IAAI,CAACI;AAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN6fzD,CM5fG0P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN6fb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AACrF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACvF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;AACpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;AACrE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5fX,IAAI,CAAClD,aAAa,CAAE,KAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4fD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AM1frD,CAAA,CAAA,CAAA,CAAA,CACD,YAA6B,CAAA,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAC,IAAI,CAAC9C,QAAQ,CAAG,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACiG,YAAY,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN2fF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMzfL,EAAK,CAAA,CAAA,IAAI,CAACH,cAAc,CAAG,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0fF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxfL,KAAMvD,CAAAA,qBAAAA,CAA+C,CAAA,CAAA,IAAI,CAAC/J,MAAM,CAACiD,QAAQ,CAACoE,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;ANyfjF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvfL,IAAI,CAACG,QAAQ,CAAEkG,qBAAqB,CAAA,CAAA;ANwftC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvfL,IAAI,CAAClG,QAAQ,CAAEtJ,eAAe,CAAA,CAAA;AAE9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC0J,QAAQ,CAACtL,GAAG,CAAE;ANufrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtfRoB,IAAM,CAAA,CAAA,IAAI,CAAC8J,QAAQ;ANuftB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtfRrH,QAAU,CAAA,CAAA,IAAI,CAACwN,uBAAuB,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANufF,CMrfE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACnG,QAAQ,CAAE3L,cAAc,CAAC+R,SAAS,CAAA,CAAA,CAAG7D,qBAAAA,CAAsB1J,SAAS;ANsf3E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMrfL,IAAI,CAACmH,QAAQ,CAAEvL,WAAW,CAACuD,SAAS,CAACC,KAAK,CAAGsK,CAAAA,CAAAA,qBAAsBtK,CAAAA,KAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;ANsf9E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO;AAC3D,CMpfE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACmI,QAAQ,CAACiG,WAAW,CAAK,CAAA,CAAA,CAAA,CAAA,IAAI,CAACrG,QAAQ,CAAG,CAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACA,QAAQ,CAAEvL,WAAW,CAACuD,SAAS,CAACsO,MAAM,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANqfF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnfL,IAAI,CAACtG,QAAQ,CAAEuG,oBAAoB,CAAA,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmfD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AMjf1D,CAAA,CAAA,CAAA,CAAA,CACD,eAAQC,CAAiBC,WAAuB,CAAA,CAAA,CAAA,IAAI,CAAS,CAAA;ANkf9D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ;AAChG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI;AMhf9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACzG,QAAQ,CAAEzL,cAAc,CAACkC,KAAK,CAAA,CAAA;ANkfrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;AM/epE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACuJ,QAAQ,CAAEvL,WAAW,CAACuD,SAAS,CAAC0O,KAAK,CAAA,CAAA;AAE1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACtG,QAAQ,CAACuG,MAAM,CAAE,IAAI,CAAC3G,QAAQ,CAAA;ANgfrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;AACpF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;AM7enD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKyG,WAAc,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACjO,MAAM,CAAC+D,OAAO,CAACrG,IAAI,CAACO,KAAK,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACmQ,wBAAwB,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN6eD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AM3e7B,CAAA,CAAA,CAAA,CAAA,CACD,aAA8B,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAC,IAAI,CAAC5G,QAAQ,CAAG,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACiG,YAAY,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC,IAAI,CAACjD,2BAA2B,CAAA,CAAK,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC6D,wBAAwB,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,YAAY,CAAA,CAAA;AN0enB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO;AMve/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC1G,QAAQ,CAAC2G,SAAS,CAAE,CAAA,IAAA,CAAA,CAAA;ANye3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AMte3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,gBAAgB,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANueD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AMre1D,CAAA,CAAA,CAAA,CAAA,CACD,aAAQlE,CAAe2D,WAAuB,CAAA,CAAA,CAAA,IAAI,CAAS,CAAA;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAC,IAAI,CAACX,cAAc,CAAG,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANseF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpeL,KAAMtN,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;AAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACyO,aAAa,CAAEzO,MAAAA,CAAOyK,EAAE,CAAE,CAAA,CAAA,MAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACgE,aAAa,CAAE,IAAI,CAAC7G,QAAQ,CAAE,CAAA,CAAA,MAAA,CAAA,WAAA,CAAA,CAAA;ANoerC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AACvG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;AMjelH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKqG,WAAc,CAAA,CAAA;AAClBjO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO+D,OAAO,CAACrG,IAAI,CAACO,KAAK,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmeF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AAC7D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjeL,IAAI,CAAC+P,eAAe,CAAEC,WAAAA,CAAAA;AAEtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACG,wBAAwB,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANgeD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;AAC9F,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS;AAC5D,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK;AM9dvF,CAAA,CAAA,CAAA,CAAA,CACD,gBAAiC,CAAA,CAAA,CAAA;AN+dlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9dL,KAAMpO,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM0O,YAAAA,CAAe1O,CAAAA,CAAAA,MAAO+D,CAAAA,OAAO,CAACrG,IAAI,CAACwC,QAAQ;AN+dnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM7dL,GAAA,CAAIyO,oBAAAA,CAAAA,CAAAA,CAAuB,IAAI,CAACnE,2BAA2B,CAAA,CAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAIoE,CAAAA,mBAAsBC,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA;AAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMnE,MAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN6djB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5dR,KAAA,CAAM1I,gBAAAA,CAAAA,CAAAA,CAAmB,IAAI,CAACwI,2BAA2B,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMsE,CAAAA,eAAkBD,CAAAA,CAAAA,CAAAA,kBAAAA,CAAAA,CAAAA;AN6d3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACpG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ;AAC3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AM1dV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACCF,CAAAA,CAAAA,oBAAAA,CAAwB,CAAA,CAAA,CAAA,CAAC3M,gBAAAA,CAAAA,CAAAA,CAAAA,CACzB,CAAC2M,oBAAAA,CAAwBG,CAAAA,CAAAA,CAAAA,eAAAA,CAAoBF,CAAAA,CAAAA,CAAAA,CAAAA,mBAC5C,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACtE,aAAa,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKK,IAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAAC4C,cAAc,CAAG,CAAA;ANodnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;AAC5F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACtF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AMld/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACtF,QAAQ,CAACmH,cAAc,CAAE,IAAI,CAACpB,uBAAuB,CAAA,CAAA,CAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANodH,CMldGgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,oBAAuB3M,CAAAA,CAAAA,CAAAA,gBAAAA;ANmd1B,CMldG4M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,mBAAsBE,CAAAA,CAAAA,CAAAA,eAAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmdF,CMjdE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAASD,kBAAAA,CAAAA,CAAAA,CAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOH,YAAazO,CAAAA,SAAS,CAAChC,KAAK,CAAE+Q,YAAY,CAAA,CAAA,CAC/CC,OAAO,CAAA,CAAA,CACPxD,IAAI,CAAE,CAAEyD,IAA+BA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKrN,EAAE,CAAE,CAAA,OAAA,CAAA,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC9D,QAAQ,CAAEiC,MAAOyK,CAAAA,EAAE,CAAE,CAAA,CAAA,MAAA,CAAUC,CAAAA,CAAAA,MAAAA,CAAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC3M,QAAQ,CAAE,IAAI,CAAC6J,QAAQ,CAAE,CAAA,CAAA,MAAA,CAAA,WAAA,CAAsB8C,CAAAA,CAAAA,MAAAA,CAAAA;AACrD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8cD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AM5cnE,CACD,CAAA,CAAA,CAAA,CAAA,GAAA,CAAY4C,cAA0B,CAAA,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,CAAC,CAAC,IAAI,CAAC9F,QAAQ,CAAI,CAAA,CAAA,CAAA,IAAI,CAACI,QAAQ,CAACuH,OAAO,CAAE,IAAI,CAAC3H,QAAQ,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4cD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO;AM1c/F,CACD,CAAA,CAAA,CAAA,CAAA,GAAA,CAAY0F,cAA0B,CAAA,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAO,CAAA,CAAC,CAAC,IAAI,CAAC1F,QAAQ,CAAA,CAAA,CAAA,CAAI,IAAI,CAACI,QAAQ,CAACiG,WAAW,CAAI,CAAA,CAAA,CAAA,IAAI,CAACrG,QAAQ;AACrE,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0cD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/F,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS;AMxcpC,CAAA,CAAA,CAAA,CAAA,CACD,uBAAwE,CAAA,CAAA,CAAA;AACvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM9J,IAAAA,CAAO,CAAA,CAAA,IAAI,CAACsC,MAAM,CAAC+D,OAAO,CAACrG,IAAI;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMqC,KAAQ,CAAA,CAAA,CAAA,IAAI,CAACC,MAAM,CAACD,KAAK;ANycjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxcL,GAAA,CAAIqP,MAAAA;ANycN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvcL,KAAA,CAAMpO,eAAAA,CAAAA,CAAAA,CAAkB,IAAI,CAACwJ,2BAA2B,CAAA,CAAA;AAExD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKzK,KAAMsP,CAAAA,OAAO,CAACvH,GAAG,CAAER,4BAAiC,CAAA,CAAA,CAAA;ANuc3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AMrcrF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMgI,kBAAqBxE,CAAAA,CAAAA,CAAAA,KAAAA,CAAMC,IAAI,CAAE,IAAI,CAAC/K,MAAM,CAAC+D,OAAO,CAACwL,MAAM,CAACC,oBAAoB,CAAElI,4BAAAA,CAAAA,CAAAA;AACxF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMmI,CAAAA,QAAAA,CAAW/R,CAAAA,CAAAA,IAAKyJ,CAAAA,WAAW,CAChCzJ,IAAKgS,CAAAA,oBAAoB,CAAEJ,kBAAkB,CAAE,CAAA,CAAG,CAClD5R,CAAAA,CAAAA,IAAAA,CAAKiS,mBAAmB,CAAEL,kBAAkB,CAAEA,kBAAmBM,CAAAA,MAAM,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAA;AAG9ER,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS1R,IAAKkG,CAAAA,YAAY,CAACiM,cAAc,CAAEJ,QAAAA,CAAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CACK,EAAKzO,CAAAA,CAAAA,eAAkB,CAAA,CAAA;ANkc9B,CMjcGoO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMG,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACvP,MAAM,CAAC+D,OAAO,CAACwL,MAAM;ANkc7C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMjcX,KAAM3L,CAAAA,YAAAA,CAAelG,CAAAA,CAAAA,IAAAA,CAAKkG,YAAY;ANkc1C,CMjcI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMkM,WAAAA,CAAcP,CAAAA,CAAAA,MAAOQ,CAAAA,aAAa,CAAE/O,eAAAA,CAAAA;ANkc9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhcX,MAAA,CAAO4C,YAAAA,CAAaoM,YAAY,CAAEF,WAAAA,CAAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACV,MAAS,CAAA,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANgcF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM9bL,MAAO,CAAA;AACNA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8bD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AACtF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI;AACtF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;AM5blB,CAAA,CAAA,CAAA,CAAA,CACD,2BAAsD,CAAA,CAAA,CAAA;AN6bvD,CM5bE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMnP,SAAAA,CAAAA,CAAAA,CAAY,IAAI,CAACD,MAAM,CAACD,KAAK,CAACG,QAAQ,CAACD,SAAS;AN6bxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5bL,KAAA,CAAMnC,OAAAA,CAAAA,CAAAA,CAAUmC,SAAAA,CAAUoC,kBAAkB,CAAA,CAAA;AAE5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKvE,OAAWA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAQ+D,EAAE,CAAE,CAAA,OAAA,CAAA,CAAA,CAAW,CAAe,QAAA,CAAA,CAAA,CAAA,CAAA;AN4bxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3bR,MAAA,CAAO/D,OAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4bF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1bL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0bD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS;AAC7E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ;AMxb9G,CAAA,CAAA,CAAA,CAAA,CACD,wBAAyC,CAAA,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMiC,KAAQ,CAAA,CAAA,CAAA,IAAI,CAACC,MAAM,CAACD,KAAK;ANybjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvbLA,KAAMW,CAAAA,MAAM,CAAEC,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMsP,KAAAA,CAAAA,CAAAA,CAAQlQ,KAAMG,CAAAA,QAAQ,CAACD,SAAS,CAACuB,aAAa,CAAA,CAAA;AAEpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKzB,KAAMsP,CAAAA,OAAO,CAACvH,GAAG,CAAER,4BAAiC,CAAA,CAAA,CAAA;ANub5D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtbX3G,MAAOuP,CAAAA,YAAY,CAAE5I,4BAA8B,CAAA,CAAA;AAAE2I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANyb/D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxbF,CAAA,IAAA,CAAA;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKA,KAAMvO,CAAAA,KAAK,CAACyO,OAAO,CAAG,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM1O,aAAAA,CAAgBwO,CAAAA,CAAAA,KAAMvO,CAAAA,KAAK,CAAC0O,uBAAuB,CACxD,CAAE,CAAA,CAAExO,IAAI,CAAE,CAAA,CAAA,CAAA,CAAM,CAAC7B,KAAAA,CAAMc,MAAM,CAACwP,SAAS,CAAEzO,IACzC,CAAA,CAAA,CAAA;ANubN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvbf0O,UAAYL,CAAAA,CAAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANyb1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtbdtP,MAAO4P,CAAAA,SAAS,CAAEjJ,4BAA8B,CAAA,CAAA;ANubrD,CMtbMkJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAgB,CAAA,CAAA,KAAA;ANubtB,CMtbMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAa,CAAA,CAAA,KAAA;AACbR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAOtP,CAAAA,MAAOwG,CAAAA,WAAW,CAAE1F,aAAAA,CAAAA,CAAewO,KAAAA,CAAM7I,GAAG;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANubL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtbL,CAAA,IAAA,CAAA;ANubX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMtbdzG,MAAO4P,CAAAA,SAAS,CAAEjJ,4BAA8B,CAAA,CAAA;ANubrD,CMtbMkJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAgB,CAAA,CAAA,KAAA;ANubtB,CMtbMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAa,CAAA,CAAA,KAAA;AACbR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANsbD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC;AMpb9E,CAAA,CAAA,CAAA,CAAA,CACD,wBAAyC,CAAA,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMlQ,KAAQ,CAAA,CAAA,CAAA,IAAI,CAACC,MAAM,CAACD,KAAK;AAE/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKA,KAAMsP,CAAAA,OAAO,CAACvH,GAAG,CAAER,4BAAiC,CAAA,CAAA,CAAA;ANob3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMnbRvH,KAAMW,CAAAA,MAAM,CAAEC,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AACbA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO+P,YAAY,CAAEpJ,4BAAAA,CAAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AACD;AAEA,CAAA,CAAA;ANmbA,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS;AAC7C,CAAC,CAAC,CAAC,CMjbH,QAAS2C,CAAAA,iBAAAA,CAAmBjK,MAAc,CAAA,CAAA;ANkb1C,CAAC,CAAC,CAAC,CMjbF,KAAM,CAAA,CAAA,CAAE3B,CAAC,CAAA,CAAE,CAAA,CAAA,CAAG2B,MAAAA;AACd,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM4K,eAAkB5K,CAAAA,CAAAA,CAAAA,MAAAA,CAAO6H,OAAO,CAACR,GAAG,CAAE/E,eAAAA,CAAAA;ANkb7C,CAAC,CAAC,CAAC,CMhbF,MAAO,CAAA;ANibR,CMhbEqO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;ANibF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhbR,EAAK,CAAA,CAAA,CAACA,IAAKpR,CAAAA,EAAE,CAAG,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAOlB,CAAAA,CAAG,CAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANibF,CMhbEsS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;ANibF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhbR,EAAKA,CAAAA,CAAAA,IAAAA,CAAKpR,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKK,IAAI,CAAE+Q,IAAAA,CAAKpR,EAAE,CAAK,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAOlB,CAAAA,CAAG,CAAA,CAAA,QAAA,CAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,KAAA,CAAA,UAAA,CAAA,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANibF,CMhbEsS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;ANibF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhbR,KAAMC,CAAAA,eAAAA,CAAkB5Q,CAAAA,CAAAA,MAAAA,CAAOD,KAAK,CAACG,QAAQ,CAACD,SAAS,CAACoC,kBAAkB,CAAA,CAAA;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMwO,qBAAwBjG,CAAAA,CAAAA,CAAAA,eAAAA,CAAgBzH,uBAAuB,CAAEwN,IAAAA,CAAKpR,EAAE,CAAA;ANibjF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AM9azG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAKqR,CAAAA,CAAAA,eAAAA,CAAoBC,CAAAA,CAAAA,CAAAA,CAAAA,qBAAwB,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKA,qBAAwB,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAOxS,CAAAA,CAAG,CAAA,CAAA,QAAA,CAAA,IAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF;AAEA,CAAA,CAAA;AN8aA,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;AACvD,CAAC,CAAC,CAAC,CM5aH,QAASyK,CAAAA,yBAAAA,CAA2B7I,SAAgC,CAAA,CAAA;AN6apE,CAAC,CAAC,CAAC,CM5aF,KAAA,CAAMnC,OAAAA,CAAAA,CAAAA,CAAUmC,SAAAA,CAAUoC,kBAAkB,CAAA,CAAA;AN6a7C,CAAC,CAAC,CAAC,CM3aF,EAAA,CAAA,CAAK,CAACvE,OAAAA,CAAW,CAAA,CAAA,CAAA,CAACgT,QAAAA,CAAUhT,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAACA,OAAAA,CAAQiT,iBAAiB,CAAE,CAAA,QAAA,CAAe,CAAA,CAAA,CAAA;AN4arF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM3aL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AN4aD,CAAC,CAAC,CAAC,CM1aF,MAAA,CAAOjT,OAAAA;AACR;;ACjvBA,CAAA,CAAA;AP8pCA,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;AACvB,CAAC;AACD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK;AACzF,CAAC,CAAC,CAAC,CO5pCY,KAAMkT,CAAAA,QAAiBzO,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AP6pCD,CAAC,CAAC,CAAC,CAAC,CAAC;AO3pCH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBG,UAAa,CAAA,CAAA,CAAA;AP4pChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CO3pCL,MAAA,CAAO,CAAA,QAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AP2pCD,CAAC,CAAC,CAAC,CAAC,CAAC;AOzpCH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkB+E,QAAW,CAAA,CAAA,CAAA;AP0pC9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,COzpCL,MAAO,CAAA;AAAEnF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAAA;AAAiBiF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA;AAAY0J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AP6pCD,CAAC,CAAC,CAAC,CAAC,CAAC;AO3pCH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAA2BtO,gBAAyB,CAAA,CAAA,CAAA;AP4pCrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CO3pCL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AACD;;AP6pCA,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAC9F,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { toWidget, WidgetToolbarRepository, isWidget, Widget } from '@ckeditor/ckeditor5-widget/dist/index.js';\nimport { View, ViewCollection, FormRowView, FocusCycler, submitHandler, ButtonView, FormHeaderView, LabeledFieldView, createLabeledInputText, IconView, ContextualBalloon, BalloonPanelView, CssTransitionDisablerMixin, MenuBarMenuListItemButtonView, LabelView, clickOutsideHandler } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconBookmarkInline, IconPencil, IconRemove, IconBookmark, IconBookmarkMedium, IconBookmarkSmall } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { FocusTracker, KeystrokeHandler, logWarning } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { IconPreviousArrow } from '@ckeditor/ckeditor5-icons/dist/index.js';\n\n/**\n * The bookmark form view controller class.\n *\n * See {@link module:bookmark/ui/bookmarkformview~BookmarkFormView}.\n */ class BookmarkFormView extends View {\n /**\n\t * Tracks information about DOM focus in the form.\n\t */ focusTracker = new FocusTracker();\n /**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */ keystrokes = new KeystrokeHandler();\n /**\n\t * The ID input view.\n\t */ idInputView;\n /**\n\t * The Back button view displayed in the header.\n\t */ backButtonView;\n /**\n\t * A button used to submit the form.\n\t */ saveButtonView;\n /**\n\t * A collection of form child views in the form.\n\t */ children;\n /**\n\t * An array of form validators used by {@link #isValid}.\n\t */ _validators;\n /**\n\t * A collection of views that can be focused in the form.\n\t */ _focusables = new ViewCollection();\n /**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */ _focusCycler;\n /**\n\t * Creates an instance of the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param validators Form validators used by {@link #isValid}.\n\t */ constructor(locale, validators){\n super(locale);\n this._validators = validators;\n // Create buttons.\n this.backButtonView = this._createBackButton();\n this.saveButtonView = this._createSaveButton();\n // Create input fields.\n this.idInputView = this._createIdInput();\n this.children = this.createCollection([\n this._createHeaderView()\n ]);\n this.children.add(new FormRowView(locale, {\n children: [\n this.idInputView,\n this.saveButtonView\n ],\n class: [\n 'ck-form__row_with-submit',\n 'ck-form__row_large-top-padding'\n ]\n }));\n // Close the panel on esc key press when the **form has focus**.\n this.keystrokes.set('Esc', (data, cancel)=>{\n this.fire('cancel');\n cancel();\n });\n this._focusCycler = new FocusCycler({\n focusables: this._focusables,\n focusTracker: this.focusTracker,\n keystrokeHandler: this.keystrokes,\n actions: {\n // Navigate form fields backwards using the Shift + Tab keystroke.\n focusPrevious: 'shift + tab',\n // Navigate form fields forwards using the Tab key.\n focusNext: 'tab'\n }\n });\n this.setTemplate({\n tag: 'form',\n attributes: {\n class: [\n 'ck',\n 'ck-form',\n 'ck-bookmark-form',\n 'ck-responsive-form'\n ],\n // https://github.com/ckeditor/ckeditor5-link/issues/90\n tabindex: '-1'\n },\n children: this.children\n });\n }\n /**\n\t * @inheritDoc\n\t */ render() {\n super.render();\n submitHandler({\n view: this\n });\n const childViews = [\n this.backButtonView,\n this.idInputView,\n this.saveButtonView\n ];\n childViews.forEach((v)=>{\n // Register the view as focusable.\n this._focusables.add(v);\n // Register the view in the focus tracker.\n this.focusTracker.add(v.element);\n });\n // Start listening for the keystrokes coming from #element.\n this.keystrokes.listenTo(this.element);\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n this.focusTracker.destroy();\n this.keystrokes.destroy();\n }\n /**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */ focus() {\n this.idInputView.focus();\n }\n /**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t */ isValid() {\n this.resetFormStatus();\n for (const validator of this._validators){\n const errorText = validator(this);\n // One error per field is enough.\n if (errorText) {\n // Apply updated error.\n this.idInputView.errorText = errorText;\n return false;\n }\n }\n return true;\n }\n /**\n\t * Cleans up the supplementary error and information text of the {@link #idInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */ resetFormStatus() {\n this.idInputView.errorText = null;\n }\n /**\n\t * Creates a back button view that cancels the form.\n\t */ _createBackButton() {\n const t = this.locale.t;\n const backButton = new ButtonView(this.locale);\n backButton.set({\n class: 'ck-button-back',\n label: t('Back'),\n icon: IconPreviousArrow,\n tooltip: true\n });\n backButton.delegate('execute').to(this, 'cancel');\n return backButton;\n }\n /**\n\t * Creates a save button view that saves the bookmark.\n\t */ _createSaveButton() {\n const t = this.locale.t;\n const saveButton = new ButtonView(this.locale);\n saveButton.set({\n label: t('Save'),\n withText: true,\n type: 'submit',\n class: 'ck-button-action ck-button-bold'\n });\n return saveButton;\n }\n /**\n\t * Creates a header view for the form.\n\t */ _createHeaderView() {\n const t = this.locale.t;\n const header = new FormHeaderView(this.locale, {\n label: t('Bookmark')\n });\n header.children.add(this.backButtonView, 0);\n return header;\n }\n /**\n\t * Creates a labeled input view.\n\t *\n\t * @returns Labeled field view instance.\n\t */ _createIdInput() {\n const t = this.locale.t;\n const labeledInput = new LabeledFieldView(this.locale, createLabeledInputText);\n labeledInput.label = t('Bookmark name');\n labeledInput.infoText = t('Enter the bookmark name without spaces.');\n labeledInput.class = 'ck-labeled-field-view_full-width';\n return labeledInput;\n }\n /**\n\t * The native DOM `value` of the {@link #idInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t */ get id() {\n const { element } = this.idInputView.fieldView;\n if (!element) {\n return null;\n }\n return element.value.trim();\n }\n}\n\n/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */ /**\n * @module bookmark/utils\n */ /**\n * Returns `true` if the bookmark id is valid; otherwise, returns `false`.\n */ function isBookmarkIdValid(id) {\n if (!id || typeof id !== 'string') {\n return false;\n }\n if (/\\s/.test(id)) {\n return false;\n }\n return true;\n}\n\n/**\n * The insert bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'insertBookmark'`.\n *\n * To insert a bookmark element at place where is the current collapsed selection or where is the beginning of document selection,\n * execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'insertBookmark', { bookmarkId: 'foo_bar' } );\n * ```\n */ class InsertBookmarkCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const position = this._getPositionToInsertBookmark(selection);\n this.isEnabled = !!position;\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The value of the `bookmarkId` attribute.\n\t */ execute(options) {\n if (!options) {\n return;\n }\n const { bookmarkId } = options;\n if (!isBookmarkIdValid(bookmarkId)) {\n /**\n\t\t\t * Insert bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error insert-bookmark-command-executed-with-invalid-name\n\t\t\t */ logWarning('insert-bookmark-command-executed-with-invalid-name');\n return;\n }\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n model.change((writer)=>{\n let position = this._getPositionToInsertBookmark(selection);\n const isBookmarkAllowed = model.schema.checkChild(position, 'bookmark');\n // If the position does not allow for `bookmark` but allows for a `paragraph`\n // then insert a `paragraph` then we will insert a `bookmark` inside.\n if (!isBookmarkAllowed) {\n const newPosition = editor.execute('insertParagraph', {\n position\n });\n if (!newPosition) {\n return;\n }\n position = newPosition;\n }\n const bookmarkElement = writer.createElement('bookmark', {\n ...Object.fromEntries(selection.getAttributes()),\n bookmarkId\n });\n model.insertObject(bookmarkElement, position, null, {\n setSelection: 'on'\n });\n });\n }\n /**\n\t * Returns the position where the bookmark can be inserted. And if it is not possible to insert a bookmark,\n\t * check if it is possible to insert a paragraph.\n\t */ _getPositionToInsertBookmark(selection) {\n const model = this.editor.model;\n const schema = model.schema;\n const firstRange = selection.getFirstRange();\n const startPosition = firstRange.start;\n // Return position if it is allowed to insert bookmark or if it is allowed to insert paragraph.\n if (isBookmarkAllowed(startPosition, schema)) {\n return startPosition;\n }\n for (const { previousPosition, item } of firstRange){\n // When the table cell is selected (from the outside) we look for the first paragraph-like element inside.\n if (item.is('element') && schema.checkChild(item, '$text') && isBookmarkAllowed(item, schema)) {\n return model.createPositionAt(item, 0);\n }\n if (isBookmarkAllowed(previousPosition, schema)) {\n return previousPosition;\n }\n }\n return null;\n }\n}\n/**\n * Verify if the given position allows for bookmark insertion. Verify if auto-paragraphing could help.\n */ function isBookmarkAllowed(position, schema) {\n if (schema.checkChild(position, 'bookmark')) {\n return true;\n }\n if (!schema.checkChild(position, 'paragraph')) {\n return false;\n }\n return schema.checkChild('paragraph', 'bookmark');\n}\n\n/**\n * The update bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'updateBookmark'`.\n *\n * To update the `bookmarkId` of current selected bookmark element, execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'updateBookmark', { bookmarkId: 'newId' } );\n * ```\n */ class UpdateBookmarkCommand extends Command {\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedBookmark = getSelectedBookmark(selection);\n this.isEnabled = !!selectedBookmark;\n this.value = selectedBookmark ? selectedBookmark.getAttribute('bookmarkId') : undefined;\n }\n /**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The new value of the `bookmarkId` attribute to set.\n\t */ execute(options) {\n if (!options) {\n return;\n }\n const { bookmarkId } = options;\n if (!isBookmarkIdValid(bookmarkId)) {\n /**\n\t\t\t * Update bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error update-bookmark-command-executed-with-invalid-name\n\t\t\t */ logWarning('update-bookmark-command-executed-with-invalid-name');\n return;\n }\n const model = this.editor.model;\n const selection = model.document.selection;\n const selectedBookmark = getSelectedBookmark(selection);\n if (selectedBookmark) {\n model.change((writer)=>{\n writer.setAttribute('bookmarkId', bookmarkId, selectedBookmark);\n });\n }\n }\n}\n/**\n * Returns the selected `bookmark` element in the model, if any.\n */ function getSelectedBookmark(selection) {\n const element = selection.getSelectedElement();\n if (!!element && element.is('element', 'bookmark')) {\n return element;\n }\n return null;\n}\n\n/**\n * The bookmark editing plugin.\n */ class BookmarkEditing extends Plugin {\n /**\n\t * A collection of bookmarks elements in the document.\n\t */ _bookmarkElements = new Map();\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'BookmarkEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('bookmark', {\n toolbar: [\n 'bookmarkPreview',\n '|',\n 'editBookmark',\n 'removeBookmark'\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const { editor } = this;\n this._defineSchema();\n this._defineConverters();\n editor.commands.add('insertBookmark', new InsertBookmarkCommand(editor));\n editor.commands.add('updateBookmark', new UpdateBookmarkCommand(editor));\n this.listenTo(editor.model.document, 'change:data', ()=>{\n this._trackBookmarkElements();\n });\n }\n /**\n\t * Returns the model element for the given bookmark ID if it exists.\n\t */ getElementForBookmarkId(bookmarkId) {\n for (const [element, id] of this._bookmarkElements){\n if (id == bookmarkId) {\n return element;\n }\n }\n return null;\n }\n /**\n\t * Returns all unique bookmark names existing in the content.\n\t */ getAllBookmarkNames() {\n return new Set(this._bookmarkElements.values());\n }\n /**\n\t * Defines the schema for the bookmark feature.\n\t */ _defineSchema() {\n const schema = this.editor.model.schema;\n schema.register('bookmark', {\n inheritAllFrom: '$inlineObject',\n allowAttributes: 'bookmarkId',\n disallowAttributes: [\n 'linkHref',\n 'htmlA'\n ]\n });\n }\n /**\n\t * Defines the converters for the bookmark feature.\n\t */ _defineConverters() {\n const { editor } = this;\n const { conversion, t } = editor;\n editor.data.htmlProcessor.domConverter.registerInlineObjectMatcher((element)=>upcastMatcher(element));\n // Register an inline object matcher so that bookmarks <a>s are correctly recognized as inline elements in editing pipeline.\n // This prevents converting spaces around bookmarks to `&nbsp;`s.\n editor.editing.view.domConverter.registerInlineObjectMatcher((element)=>upcastMatcher(element, false));\n conversion.for('dataDowncast').elementToElement({\n model: {\n name: 'bookmark',\n attributes: [\n 'bookmarkId'\n ]\n },\n view: (modelElement, { writer })=>{\n const emptyElement = writer.createEmptyElement('a', {\n 'id': modelElement.getAttribute('bookmarkId')\n });\n // `getFillerOffset` is not needed to set here, because `emptyElement` has already covered it.\n return emptyElement;\n }\n });\n conversion.for('editingDowncast').elementToElement({\n model: {\n name: 'bookmark',\n attributes: [\n 'bookmarkId'\n ]\n },\n view: (modelElement, { writer })=>{\n const id = modelElement.getAttribute('bookmarkId');\n const containerElement = writer.createContainerElement('a', {\n id,\n class: 'ck-bookmark'\n }, [\n this._createBookmarkUIElement(writer)\n ]);\n writer.setCustomProperty('bookmark', true, containerElement);\n this._bookmarkElements.set(modelElement, id);\n // `getFillerOffset` is not needed to set here, because `toWidget` has already covered it.\n const labelCreator = ()=>`${id} ${t('bookmark widget')}`;\n return toWidget(containerElement, writer, {\n label: labelCreator\n });\n }\n });\n conversion.for('upcast').add((dispatcher)=>dispatcher.on('element:a', dataViewModelAnchorInsertion(editor)));\n }\n /**\n\t * Creates a UI element for the `bookmark` representation in editing view.\n\t */ _createBookmarkUIElement(writer) {\n return writer.createUIElement('span', {\n class: 'ck-bookmark__icon'\n }, function(domDocument) {\n const domElement = this.toDomElement(domDocument);\n const icon = new IconView();\n icon.set({\n content: IconBookmarkInline,\n isColorInherited: false\n });\n icon.render();\n domElement.appendChild(icon.element);\n return domElement;\n });\n }\n /**\n\t * Tracking the added or removed bookmark elements.\n\t */ _trackBookmarkElements() {\n this._bookmarkElements.forEach((id, element)=>{\n if (element.root.rootName === '$graveyard') {\n this._bookmarkElements.delete(element);\n }\n });\n }\n}\n/**\n * A helper function to match an `anchor` element which must contain `id` or `name` attribute but without `href` attribute,\n * also when `expectEmpty` is set to `true` but the element is not empty matcher should not match any element.\n *\n * @param element The element to be checked.\n * @param expectEmpty Default set to `true`, when set to `false` matcher expects that `anchor` is not empty;\n * in editing pipeline it's not empty because it contains the `UIElement`.\n */ function upcastMatcher(element, expectEmpty = true) {\n const isAnchorElement = element.name === 'a';\n if (!isAnchorElement) {\n return null;\n }\n if (expectEmpty && !element.isEmpty) {\n return null;\n }\n const hasIdAttribute = element.hasAttribute('id');\n const hasNameAttribute = element.hasAttribute('name');\n const hasHrefAttribute = element.hasAttribute('href');\n if (hasIdAttribute && !hasHrefAttribute) {\n return {\n name: true,\n attributes: [\n 'id'\n ]\n };\n }\n if (hasNameAttribute && !hasHrefAttribute) {\n return {\n name: true,\n attributes: [\n 'name'\n ]\n };\n }\n return null;\n}\n/**\n * A view-to-model converter that handles converting pointed or wrapped anchors with `id` and/or `name` attributes.\n *\n * @returns Returns a conversion callback.\n */ function dataViewModelAnchorInsertion(editor) {\n return (evt, data, conversionApi)=>{\n const viewItem = data.viewItem;\n const match = upcastMatcher(viewItem, false);\n if (!match || !conversionApi.consumable.test(viewItem, match)) {\n return;\n }\n const enableNonEmptyAnchorConversion = isEnabledNonEmptyAnchorConversion(editor);\n if (!enableNonEmptyAnchorConversion && !viewItem.isEmpty) {\n return;\n }\n const modelWriter = conversionApi.writer;\n const anchorId = viewItem.getAttribute('id');\n const anchorName = viewItem.getAttribute('name');\n const bookmarkId = anchorId || anchorName;\n const bookmark = modelWriter.createElement('bookmark', {\n bookmarkId\n });\n if (!conversionApi.safeInsert(bookmark, data.modelCursor)) {\n return;\n }\n conversionApi.consumable.consume(viewItem, match);\n if (anchorId === anchorName) {\n conversionApi.consumable.consume(viewItem, {\n attributes: [\n 'name'\n ]\n });\n }\n conversionApi.updateConversionResult(bookmark, data);\n // Convert children uses the result of `bookmark` insertion to convert the `anchor` content\n // after the bookmark element (not inside it).\n const { modelCursor, modelRange } = conversionApi.convertChildren(viewItem, data.modelCursor);\n data.modelCursor = modelCursor;\n data.modelRange = modelWriter.createRange(data.modelRange.start, modelRange.end);\n };\n}\n/**\n * Normalize the bookmark configuration option `enableNonEmptyAnchorConversion`.\n */ function isEnabledNonEmptyAnchorConversion(editor) {\n const enableNonEmptyAnchorConversion = editor.config.get('bookmark.enableNonEmptyAnchorConversion');\n // When not defined, option `enableNonEmptyAnchorConversion` by default is set to `true`.\n return enableNonEmptyAnchorConversion !== undefined ? enableNonEmptyAnchorConversion : true;\n}\n\nconst VISUAL_SELECTION_MARKER_NAME = 'bookmark-ui';\n/**\n * The UI plugin of the bookmark feature.\n *\n * It registers the `'bookmark'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * which inserts the `bookmark` element upon selection.\n */ class BookmarkUI extends Plugin {\n /**\n\t * The form view displayed inside the balloon.\n\t */ formView = null;\n /**\n\t * The contextual balloon plugin instance.\n\t */ _balloon;\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n BookmarkEditing,\n ContextualBalloon,\n WidgetToolbarRepository\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'BookmarkUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n this._balloon = editor.plugins.get(ContextualBalloon);\n // Register the link provider in link plugin to display the link form.\n if (editor.plugins.has('LinkUI')) {\n this._registerLinkProvider();\n }\n // Create toolbar buttons.\n this._registerComponents();\n // Renders a fake visual selection marker on an expanded selection.\n editor.conversion.for('editingDowncast').markerToHighlight({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: {\n classes: [\n 'ck-fake-bookmark-selection'\n ]\n }\n });\n // Renders a fake visual selection marker on a collapsed selection.\n editor.conversion.for('editingDowncast').markerToElement({\n model: VISUAL_SELECTION_MARKER_NAME,\n view: (data, { writer })=>{\n if (!data.markerRange.isCollapsed) {\n return null;\n }\n const markerElement = writer.createUIElement('span');\n writer.addClass([\n 'ck-fake-bookmark-selection',\n 'ck-fake-bookmark-selection_collapsed'\n ], markerElement);\n return markerElement;\n }\n });\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n const t = editor.locale.t;\n const widgetToolbarRepository = this.editor.plugins.get(WidgetToolbarRepository);\n const defaultPositions = BalloonPanelView.defaultPositions;\n widgetToolbarRepository.register('bookmark', {\n ariaLabel: t('Bookmark toolbar'),\n items: editor.config.get('bookmark.toolbar'),\n getRelatedElement: getSelectedBookmarkWidget,\n balloonClassName: 'ck-bookmark-balloon ck-toolbar-container',\n // Override positions to the same list as for balloon panel default\n // so widget toolbar will try to use same position as form view.\n positions: [\n defaultPositions.southArrowNorth,\n defaultPositions.southArrowNorthMiddleWest,\n defaultPositions.southArrowNorthMiddleEast,\n defaultPositions.southArrowNorthWest,\n defaultPositions.southArrowNorthEast,\n defaultPositions.northArrowSouth,\n defaultPositions.northArrowSouthMiddleWest,\n defaultPositions.northArrowSouthMiddleEast,\n defaultPositions.northArrowSouthWest,\n defaultPositions.northArrowSouthEast,\n defaultPositions.viewportStickyNorth\n ]\n });\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n super.destroy();\n // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n if (this.formView) {\n this.formView.destroy();\n }\n }\n /**\n\t * Creates views.\n\t */ _createViews() {\n this.formView = this._createFormView();\n // Attach lifecycle actions to the the balloon.\n this._enableUserBalloonInteractions();\n }\n /**\n\t * Creates the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} instance.\n\t */ _createFormView() {\n const editor = this.editor;\n const locale = editor.locale;\n const t = locale.t;\n const insertBookmarkCommand = editor.commands.get('insertBookmark');\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const commands = [\n insertBookmarkCommand,\n updateBookmarkCommand\n ];\n const formView = new (CssTransitionDisablerMixin(BookmarkFormView))(locale, getFormValidators(editor));\n formView.idInputView.fieldView.bind('value').to(updateBookmarkCommand, 'value');\n formView.saveButtonView.bind('label').to(updateBookmarkCommand, 'value', (value)=>value ? t('Save') : t('Insert'));\n // Form elements should be read-only when corresponding commands are disabled.\n formView.idInputView.bind('isEnabled').toMany(commands, 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n // Disable the \"save\" button if the command is disabled.\n formView.saveButtonView.bind('isEnabled').toMany(commands, 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n // Close the panel on form after clicking back button.\n this.listenTo(formView, 'cancel', ()=>{\n this._hideFormView();\n });\n // Execute link command after clicking the \"Save\" button.\n this.listenTo(formView, 'submit', ()=>{\n if (formView.isValid()) {\n const value = formView.id;\n if (this._getSelectedBookmarkElement()) {\n editor.execute('updateBookmark', {\n bookmarkId: value\n });\n } else {\n editor.execute('insertBookmark', {\n bookmarkId: value\n });\n }\n this._hideFormView();\n }\n });\n // Update balloon position when form error changes.\n this.listenTo(formView.idInputView, 'change:errorText', ()=>{\n editor.ui.update();\n });\n return formView;\n }\n /**\n\t * Creates link form menu list entry, so it'll be possible to access\n\t * the list of the bookmarks from the link form.\n\t */ _registerLinkProvider() {\n const t = this.editor.locale.t;\n const linksUI = this.editor.plugins.get('LinkUI');\n const bookmarkEditing = this.editor.plugins.get(BookmarkEditing);\n const getListItems = ()=>Array.from(bookmarkEditing.getAllBookmarkNames()).sort((a, b)=>a.localeCompare(b)).map((bookmarkId)=>({\n id: bookmarkId,\n href: `#${bookmarkId}`,\n label: bookmarkId,\n icon: IconBookmarkMedium\n }));\n const getItem = (href)=>{\n const bookmark = [\n ...bookmarkEditing.getAllBookmarkNames()\n ].find((item)=>`#${item}` === href);\n if (!bookmark) {\n return null;\n }\n return {\n href,\n label: bookmark,\n icon: IconBookmarkSmall,\n tooltip: t('Scroll to bookmark')\n };\n };\n linksUI.registerLinksListProvider({\n label: t('Bookmarks'),\n emptyListPlaceholder: t('No bookmarks available.'),\n navigate: ({ href })=>this._scrollToBookmark(href),\n getListItems,\n getItem\n });\n }\n /**\n\t * Scrolls the editor to the bookmark with the given id.\n\t */ _scrollToBookmark(href) {\n const bookmarkEditing = this.editor.plugins.get(BookmarkEditing);\n const bookmarkElement = bookmarkEditing.getElementForBookmarkId(href.slice(1));\n if (!bookmarkElement) {\n return false;\n }\n this.editor.model.change((writer)=>{\n writer.setSelection(bookmarkElement, 'on');\n });\n this.editor.editing.view.scrollToTheSelection({\n alignToTop: true,\n forceScroll: true\n });\n return true;\n }\n /**\n\t * Creates a toolbar Bookmark button. Clicking this button will show\n\t * a {@link #_balloon} attached to the selection.\n\t */ _registerComponents() {\n const editor = this.editor;\n editor.ui.componentFactory.add('bookmark', ()=>{\n const buttonView = this._createBookmarkButton(ButtonView);\n buttonView.set({\n tooltip: true\n });\n return buttonView;\n });\n editor.ui.componentFactory.add('menuBar:bookmark', ()=>{\n return this._createBookmarkButton(MenuBarMenuListItemButtonView);\n });\n // Bookmark toolbar buttons.\n editor.ui.componentFactory.add('bookmarkPreview', (locale)=>{\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const label = new LabelView(locale);\n label.extendTemplate({\n attributes: {\n class: [\n 'ck-bookmark-toolbar__preview'\n ]\n }\n });\n label.bind('text').to(updateBookmarkCommand, 'value');\n return label;\n });\n editor.ui.componentFactory.add('editBookmark', (locale)=>{\n const updateBookmarkCommand = editor.commands.get('updateBookmark');\n const button = new ButtonView(locale);\n const t = locale.t;\n button.set({\n label: t('Edit bookmark'),\n icon: IconPencil,\n tooltip: true\n });\n button.bind('isEnabled').to(updateBookmarkCommand);\n this.listenTo(button, 'execute', ()=>{\n this._showFormView();\n });\n return button;\n });\n editor.ui.componentFactory.add('removeBookmark', (locale)=>{\n const deleteCommand = editor.commands.get('delete');\n const button = new ButtonView(locale);\n const t = locale.t;\n button.set({\n label: t('Remove bookmark'),\n icon: IconRemove,\n tooltip: true\n });\n button.bind('isEnabled').to(deleteCommand);\n this.listenTo(button, 'execute', ()=>{\n editor.execute('delete');\n editor.editing.view.focus();\n });\n return button;\n });\n }\n /**\n\t * Creates a button for `bookmark` command to use either in toolbar or in menu bar.\n\t */ _createBookmarkButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const insertCommand = editor.commands.get('insertBookmark');\n const updateCommand = editor.commands.get('updateBookmark');\n const t = locale.t;\n view.set({\n label: t('Bookmark'),\n icon: IconBookmark\n });\n // Execute the command.\n this.listenTo(view, 'execute', ()=>{\n editor.editing.view.scrollToTheSelection();\n this._showFormView();\n });\n view.bind('isEnabled').toMany([\n insertCommand,\n updateCommand\n ], 'isEnabled', (...areEnabled)=>areEnabled.some((isEnabled)=>isEnabled));\n view.bind('isOn').to(updateCommand, 'value', (value)=>!!value);\n return view;\n }\n /**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} is visible or not.\n\t */ _enableUserBalloonInteractions() {\n // Close the panel on the Esc key press when the editable has focus and the balloon is visible.\n this.editor.keystrokes.set('Esc', (data, cancel)=>{\n if (this._isFormVisible) {\n this._hideFormView();\n cancel();\n }\n });\n // Close on click outside of balloon panel element.\n clickOutsideHandler({\n emitter: this.formView,\n activator: ()=>this._isFormInPanel,\n contextElements: ()=>[\n this._balloon.view.element\n ],\n callback: ()=>{\n // Focusing on the editable during a click outside the balloon panel might\n // cause the selection to move to the beginning of the editable, so we avoid\n // focusing on it during this action.\n // See: https://github.com/ckeditor/ckeditor5/issues/18253\n this._hideFormView(false);\n }\n });\n }\n /**\n\t * Adds the {@link #formView} to the {@link #_balloon}.\n\t */ _addFormView() {\n if (!this.formView) {\n this._createViews();\n }\n if (this._isFormInPanel) {\n return;\n }\n const updateBookmarkCommand = this.editor.commands.get('updateBookmark');\n this.formView.disableCssTransitions();\n this.formView.resetFormStatus();\n this._balloon.add({\n view: this.formView,\n position: this._getBalloonPositionData()\n });\n this.formView.backButtonView.isVisible = updateBookmarkCommand.isEnabled;\n this.formView.idInputView.fieldView.value = updateBookmarkCommand.value || '';\n // Select input when form view is currently visible.\n if (this._balloon.visibleView === this.formView) {\n this.formView.idInputView.fieldView.select();\n }\n this.formView.enableCssTransitions();\n }\n /**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */ _removeFormView(updateFocus = true) {\n // Blur the input element before removing it from DOM to prevent issues in some browsers.\n // See https://github.com/ckeditor/ckeditor5/issues/1501.\n this.formView.saveButtonView.focus();\n // Reset the ID field to update the state of the submit button.\n this.formView.idInputView.fieldView.reset();\n this._balloon.remove(this.formView);\n // Because the form has an input which has focus, the focus must be brought back\n // to the editor. Otherwise, it would be lost.\n if (updateFocus) {\n this.editor.editing.view.focus();\n }\n this._hideFakeVisualSelection();\n }\n /**\n\t * Shows the {@link #formView}.\n\t */ _showFormView() {\n if (!this.formView) {\n this._createViews();\n }\n if (!this._getSelectedBookmarkElement()) {\n this._showFakeVisualSelection();\n }\n this._addFormView();\n // Be sure panel with bookmark is visible.\n this._balloon.showStack('main');\n // Begin responding to ui#update once the UI is added.\n this._startUpdatingUI();\n }\n /**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */ _hideFormView(updateFocus = true) {\n if (!this._isFormInPanel) {\n return;\n }\n const editor = this.editor;\n this.stopListening(editor.ui, 'update');\n this.stopListening(this._balloon, 'change:visibleView');\n // Make sure the focus always gets back to the editable _before_ removing the focused form view.\n // Doing otherwise causes issues in some browsers. See https://github.com/ckeditor/ckeditor5-link/issues/193.\n if (updateFocus) {\n editor.editing.view.focus();\n }\n // Remove form first because it's on top of the stack.\n this._removeFormView(updateFocus);\n this._hideFakeVisualSelection();\n }\n /**\n\t * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to\n\t * reposition itself when the editor UI should be refreshed.\n\t *\n\t * See: {@link #_hideFormView} to learn when the UI stops reacting to the `update` event.\n\t */ _startUpdatingUI() {\n const editor = this.editor;\n const viewDocument = editor.editing.view.document;\n let prevSelectedBookmark = this._getSelectedBookmarkElement();\n let prevSelectionParent = getSelectionParent();\n const update = ()=>{\n const selectedBookmark = this._getSelectedBookmarkElement();\n const selectionParent = getSelectionParent();\n // Hide the panel if:\n //\n // * the selection went out of the EXISTING bookmark element. E.g. user moved the caret out\n // of the bookmark,\n // * the selection went to a different parent when creating a NEW bookmark. E.g. someone\n // else modified the document.\n // * the selection has expanded (e.g. displaying bookmark actions then pressing SHIFT+Right arrow).\n //\n if (prevSelectedBookmark && !selectedBookmark || !prevSelectedBookmark && selectionParent !== prevSelectionParent) {\n this._hideFormView();\n } else if (this._isFormVisible) {\n // If still in a bookmark element, simply update the position of the balloon.\n // If there was no bookmark (e.g. inserting one), the balloon must be moved\n // to the new position in the editing view (a new native DOM range).\n this._balloon.updatePosition(this._getBalloonPositionData());\n }\n prevSelectedBookmark = selectedBookmark;\n prevSelectionParent = selectionParent;\n };\n function getSelectionParent() {\n return viewDocument.selection.focus.getAncestors().reverse().find((node)=>node.is('element'));\n }\n this.listenTo(editor.ui, 'update', update);\n this.listenTo(this._balloon, 'change:visibleView', update);\n }\n /**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n\t */ get _isFormInPanel() {\n return !!this.formView && this._balloon.hasView(this.formView);\n }\n /**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon} and it is currently visible.\n\t */ get _isFormVisible() {\n return !!this.formView && this._balloon.visibleView == this.formView;\n }\n /**\n\t * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */ _getBalloonPositionData() {\n const view = this.editor.editing.view;\n const model = this.editor.model;\n let target;\n const bookmarkElement = this._getSelectedBookmarkElement();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n // There are cases when we highlight selection using a marker (#7705, #4721).\n const markerViewElements = Array.from(this.editor.editing.mapper.markerNameToElements(VISUAL_SELECTION_MARKER_NAME));\n const newRange = view.createRange(view.createPositionBefore(markerViewElements[0]), view.createPositionAfter(markerViewElements[markerViewElements.length - 1]));\n target = view.domConverter.viewRangeToDom(newRange);\n } else if (bookmarkElement) {\n target = ()=>{\n const mapper = this.editor.editing.mapper;\n const domConverter = view.domConverter;\n const viewElement = mapper.toViewElement(bookmarkElement);\n return domConverter.mapViewToDom(viewElement);\n };\n }\n if (!target) {\n return;\n }\n return {\n target\n };\n }\n /**\n\t * Returns the bookmark {@link module:engine/view/attributeelement~AttributeElement} under\n\t * the {@link module:engine/view/document~Document editing view's} selection or `null`\n\t * if there is none.\n\t */ _getSelectedBookmarkElement() {\n const selection = this.editor.model.document.selection;\n const element = selection.getSelectedElement();\n if (element && element.is('element', 'bookmark')) {\n return element;\n }\n return null;\n }\n /**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds a 'bookmark-ui' marker into the document that is rendered as a highlight on selected text fragment.\n\t */ _showFakeVisualSelection() {\n const model = this.editor.model;\n model.change((writer)=>{\n const range = model.document.selection.getFirstRange();\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n writer.updateMarker(VISUAL_SELECTION_MARKER_NAME, {\n range\n });\n } else {\n if (range.start.isAtEnd) {\n const startPosition = range.start.getLastMatchingPosition(({ item })=>!model.schema.isContent(item), {\n boundaries: range\n });\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range: writer.createRange(startPosition, range.end)\n });\n } else {\n writer.addMarker(VISUAL_SELECTION_MARKER_NAME, {\n usingOperation: false,\n affectsData: false,\n range\n });\n }\n }\n });\n }\n /**\n\t * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.\n\t */ _hideFakeVisualSelection() {\n const model = this.editor.model;\n if (model.markers.has(VISUAL_SELECTION_MARKER_NAME)) {\n model.change((writer)=>{\n writer.removeMarker(VISUAL_SELECTION_MARKER_NAME);\n });\n }\n }\n}\n/**\n * Returns bookmark form validation callbacks.\n */ function getFormValidators(editor) {\n const { t } = editor;\n const bookmarkEditing = editor.plugins.get(BookmarkEditing);\n return [\n (form)=>{\n if (!form.id) {\n return t('Bookmark must not be empty.');\n }\n },\n (form)=>{\n if (form.id && /\\s/.test(form.id)) {\n return t('Bookmark name cannot contain space characters.');\n }\n },\n (form)=>{\n const selectedElement = editor.model.document.selection.getSelectedElement();\n const existingBookmarkForId = bookmarkEditing.getElementForBookmarkId(form.id);\n // Accept change of bookmark ID if no real change is happening (edit -> submit, without changes).\n if (selectedElement === existingBookmarkForId) {\n return;\n }\n if (existingBookmarkForId) {\n return t('Bookmark name already exists.');\n }\n }\n ];\n}\n/**\n * Returns the currently selected bookmark view element.\n */ function getSelectedBookmarkWidget(selection) {\n const element = selection.getSelectedElement();\n if (!element || !isWidget(element) || !element.getCustomProperty('bookmark')) {\n return null;\n }\n return element;\n}\n\n/**\n * The bookmark feature.\n *\n * For a detailed overview, check the {@glink features/bookmarks Bookmarks} feature guide.\n */ class Bookmark extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Bookmark';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n BookmarkEditing,\n BookmarkUI,\n Widget\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { Bookmark, BookmarkEditing, BookmarkUI, InsertBookmarkCommand, UpdateBookmarkCommand };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/ui/bookmarkformview\n */\n\nimport {\n\tButtonView,\n\tFocusCycler,\n\tFormRowView,\n\tLabeledFieldView,\n\tView,\n\tViewCollection,\n\tcreateLabeledInputText,\n\tsubmitHandler,\n\ttype InputTextView,\n\ttype FocusableView,\n\tFormHeaderView\n} from 'ckeditor5/src/ui.js';\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\ttype Locale\n} from 'ckeditor5/src/utils.js';\nimport { IconPreviousArrow } from '@ckeditor/ckeditor5-icons';\n\n// See: #8833.\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css';\n// eslint-disable-next-line ckeditor5-rules/ckeditor-imports\nimport '@ckeditor/ckeditor5-ui/theme/components/form/form.css';\n\nimport '../../theme/bookmarkform.css';\n\n/**\n * The bookmark form view controller class.\n *\n * See {@link module:bookmark/ui/bookmarkformview~BookmarkFormView}.\n */\nexport default class BookmarkFormView extends View {\n\t/**\n\t * Tracks information about DOM focus in the form.\n\t */\n\tpublic readonly focusTracker = new FocusTracker();\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes = new KeystrokeHandler();\n\n\t/**\n\t * The ID input view.\n\t */\n\tpublic idInputView: LabeledFieldView<InputTextView>;\n\n\t/**\n\t * The Back button view displayed in the header.\n\t */\n\tpublic backButtonView: ButtonView;\n\n\t/**\n\t * A button used to submit the form.\n\t */\n\tpublic saveButtonView: ButtonView;\n\n\t/**\n\t * A collection of form child views in the form.\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * An array of form validators used by {@link #isValid}.\n\t */\n\tprivate readonly _validators: Array<BookmarkFormValidatorCallback>;\n\n\t/**\n\t * A collection of views that can be focused in the form.\n\t */\n\tprivate readonly _focusables = new ViewCollection<FocusableView>();\n\n\t/**\n\t * Helps cycling over {@link #_focusables} in the form.\n\t */\n\tprivate readonly _focusCycler: FocusCycler;\n\n\t/**\n\t * Creates an instance of the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} class.\n\t *\n\t * Also see {@link #render}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param validators Form validators used by {@link #isValid}.\n\t */\n\tconstructor( locale: Locale, validators: Array<BookmarkFormValidatorCallback> ) {\n\t\tsuper( locale );\n\n\t\tthis._validators = validators;\n\n\t\t// Create buttons.\n\t\tthis.backButtonView = this._createBackButton();\n\t\tthis.saveButtonView = this._createSaveButton();\n\n\t\t// Create input fields.\n\t\tthis.idInputView = this._createIdInput();\n\n\t\tthis.children = this.createCollection( [ this._createHeaderView() ] );\n\t\tthis.children.add( new FormRowView( locale, {\n\t\t\tchildren: [\n\t\t\t\tthis.idInputView,\n\t\t\t\tthis.saveButtonView\n\t\t\t],\n\t\t\tclass: [\n\t\t\t\t'ck-form__row_with-submit',\n\t\t\t\t'ck-form__row_large-top-padding'\n\t\t\t]\n\t\t} ) );\n\n\t\t// Close the panel on esc key press when the **form has focus**.\n\t\tthis.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tthis.fire<BookmarkFormViewCancelEvent>( 'cancel' );\n\t\t\tcancel();\n\t\t} );\n\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate form fields backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate form fields forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'form',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-form',\n\t\t\t\t\t'ck-bookmark-form',\n\t\t\t\t\t'ck-responsive-form'\n\t\t\t\t],\n\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-link/issues/90\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: this.children\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tsubmitHandler( {\n\t\t\tview: this\n\t\t} );\n\n\t\tconst childViews = [\n\t\t\tthis.backButtonView,\n\t\t\tthis.idInputView,\n\t\t\tthis.saveButtonView\n\t\t];\n\n\t\tchildViews.forEach( v => {\n\t\t\t// Register the view as focusable.\n\t\t\tthis._focusables.add( v );\n\n\t\t\t// Register the view in the focus tracker.\n\t\t\tthis.focusTracker.add( v.element! );\n\t\t} );\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Focuses the fist {@link #_focusables} in the form.\n\t */\n\tpublic focus(): void {\n\t\tthis.idInputView!.focus();\n\t}\n\n\t/**\n\t * Validates the form and returns `false` when some fields are invalid.\n\t */\n\tpublic isValid(): boolean {\n\t\tthis.resetFormStatus();\n\n\t\tfor ( const validator of this._validators ) {\n\t\t\tconst errorText = validator( this );\n\n\t\t\t// One error per field is enough.\n\t\t\tif ( errorText ) {\n\t\t\t\t// Apply updated error.\n\t\t\t\tthis.idInputView.errorText = errorText;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cleans up the supplementary error and information text of the {@link #idInputView}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */\n\tpublic resetFormStatus(): void {\n\t\tthis.idInputView.errorText = null;\n\t}\n\n\t/**\n\t * Creates a back button view that cancels the form.\n\t */\n\tprivate _createBackButton(): ButtonView {\n\t\tconst t = this.locale!.t;\n\t\tconst backButton = new ButtonView( this.locale );\n\n\t\tbackButton.set( {\n\t\t\tclass: 'ck-button-back',\n\t\t\tlabel: t( 'Back' ),\n\t\t\ticon: IconPreviousArrow,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\tbackButton.delegate( 'execute' ).to( this, 'cancel' );\n\n\t\treturn backButton;\n\t}\n\n\t/**\n\t * Creates a save button view that saves the bookmark.\n\t */\n\tprivate _createSaveButton(): ButtonView {\n\t\tconst t = this.locale!.t;\n\t\tconst saveButton = new ButtonView( this.locale );\n\n\t\tsaveButton.set( {\n\t\t\tlabel: t( 'Save' ),\n\t\t\twithText: true,\n\t\t\ttype: 'submit',\n\t\t\tclass: 'ck-button-action ck-button-bold'\n\t\t} );\n\n\t\treturn saveButton;\n\t}\n\n\t/**\n\t * Creates a header view for the form.\n\t */\n\tprivate _createHeaderView(): FormHeaderView {\n\t\tconst t = this.locale!.t;\n\n\t\tconst header = new FormHeaderView( this.locale, {\n\t\t\tlabel: t( 'Bookmark' )\n\t\t} );\n\n\t\theader.children.add( this.backButtonView, 0 );\n\n\t\treturn header;\n\t}\n\n\t/**\n\t * Creates a labeled input view.\n\t *\n\t * @returns Labeled field view instance.\n\t */\n\tprivate _createIdInput(): LabeledFieldView<InputTextView> {\n\t\tconst t = this.locale!.t;\n\t\tconst labeledInput = new LabeledFieldView( this.locale, createLabeledInputText );\n\n\t\tlabeledInput.label = t( 'Bookmark name' );\n\t\tlabeledInput.infoText = t( 'Enter the bookmark name without spaces.' );\n\t\tlabeledInput.class = 'ck-labeled-field-view_full-width';\n\n\t\treturn labeledInput;\n\t}\n\n\t/**\n\t * The native DOM `value` of the {@link #idInputView} element.\n\t *\n\t * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n\t * which works one way only and may not represent the actual state of the component in the DOM.\n\t */\n\tpublic get id(): string | null {\n\t\tconst { element } = this.idInputView.fieldView;\n\n\t\tif ( !element ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn element.value.trim();\n\t}\n}\n\n/**\n * Callback used by {@link ~BookmarkFormView} to check if passed form value is valid.\n *\n * If `undefined` is returned, it is assumed that the form value is correct and there is no error.\n * If string is returned, it is assumed that the form value is incorrect and the returned string is displayed in the error label\n */\nexport type BookmarkFormValidatorCallback = ( form: BookmarkFormView ) => string | undefined;\n\n/**\n * Fired when the form view is canceled.\n *\n * @eventName ~BookmarkFormView#cancel\n */\nexport type BookmarkFormViewCancelEvent = {\n\tname: 'cancel';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/utils\n */\n\n/**\n * Returns `true` if the bookmark id is valid; otherwise, returns `false`.\n */\nexport function isBookmarkIdValid( id: string ): boolean {\n\tif ( !id || typeof id !== 'string' ) {\n\t\treturn false;\n\t}\n\n\tif ( /\\s/.test( id ) ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/insertbookmarkcommand\n */\n\nimport type {\n\tDocumentSelection,\n\tSelection,\n\tPosition,\n\tSchema,\n\tSchemaContextDefinition\n} from 'ckeditor5/src/engine.js';\nimport { logWarning } from 'ckeditor5/src/utils.js';\nimport { Command } from 'ckeditor5/src/core.js';\n\nimport { isBookmarkIdValid } from './utils.js';\n\n/**\n * The insert bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'insertBookmark'`.\n *\n * To insert a bookmark element at place where is the current collapsed selection or where is the beginning of document selection,\n * execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'insertBookmark', { bookmarkId: 'foo_bar' } );\n * ```\n */\nexport default class InsertBookmarkCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst position = this._getPositionToInsertBookmark( selection );\n\n\t\tthis.isEnabled = !!position;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The value of the `bookmarkId` attribute.\n\t */\n\tpublic override execute( options: { bookmarkId: string } ): void {\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { bookmarkId } = options;\n\n\t\tif ( !isBookmarkIdValid( bookmarkId ) ) {\n\t\t\t/**\n\t\t\t * Insert bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error insert-bookmark-command-executed-with-invalid-name\n\t\t\t */\n\t\t\tlogWarning( 'insert-bookmark-command-executed-with-invalid-name' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\tmodel.change( writer => {\n\t\t\tlet position = this._getPositionToInsertBookmark( selection )!;\n\n\t\t\tconst isBookmarkAllowed = model.schema.checkChild( position, 'bookmark' );\n\n\t\t\t// If the position does not allow for `bookmark` but allows for a `paragraph`\n\t\t\t// then insert a `paragraph` then we will insert a `bookmark` inside.\n\t\t\tif ( !isBookmarkAllowed ) {\n\t\t\t\tconst newPosition = editor.execute( 'insertParagraph', { position } ) as Position | null;\n\n\t\t\t\tif ( !newPosition ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tposition = newPosition;\n\t\t\t}\n\n\t\t\tconst bookmarkElement = writer.createElement( 'bookmark', {\n\t\t\t\t...Object.fromEntries( selection.getAttributes() ),\n\t\t\t\tbookmarkId\n\t\t\t} );\n\n\t\t\tmodel.insertObject( bookmarkElement, position, null, { setSelection: 'on' } );\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the position where the bookmark can be inserted. And if it is not possible to insert a bookmark,\n\t * check if it is possible to insert a paragraph.\n\t */\n\tprivate _getPositionToInsertBookmark( selection: Selection | DocumentSelection ): Position | null {\n\t\tconst model = this.editor.model;\n\t\tconst schema = model.schema;\n\n\t\tconst firstRange = selection.getFirstRange()!;\n\t\tconst startPosition = firstRange.start;\n\n\t\t// Return position if it is allowed to insert bookmark or if it is allowed to insert paragraph.\n\t\tif ( isBookmarkAllowed( startPosition, schema ) ) {\n\t\t\treturn startPosition;\n\t\t}\n\n\t\tfor ( const { previousPosition, item } of firstRange ) {\n\t\t\t// When the table cell is selected (from the outside) we look for the first paragraph-like element inside.\n\t\t\tif (\n\t\t\t\titem.is( 'element' ) &&\n\t\t\t\tschema.checkChild( item, '$text' ) &&\n\t\t\t\tisBookmarkAllowed( item, schema )\n\t\t\t) {\n\t\t\t\treturn model.createPositionAt( item, 0 );\n\t\t\t}\n\n\t\t\tif ( isBookmarkAllowed( previousPosition, schema ) ) {\n\t\t\t\treturn previousPosition;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}\n\n/**\n * Verify if the given position allows for bookmark insertion. Verify if auto-paragraphing could help.\n */\nfunction isBookmarkAllowed( position: SchemaContextDefinition, schema: Schema ): boolean {\n\tif ( schema.checkChild( position, 'bookmark' ) ) {\n\t\treturn true;\n\t}\n\n\tif ( !schema.checkChild( position, 'paragraph' ) ) {\n\t\treturn false;\n\t}\n\n\treturn schema.checkChild( 'paragraph', 'bookmark' );\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/updatebookmarkcommand\n */\n\nimport { Command } from 'ckeditor5/src/core.js';\nimport type { Selection, DocumentSelection } from 'ckeditor5/src/engine.js';\nimport { logWarning } from 'ckeditor5/src/utils.js';\n\nimport { isBookmarkIdValid } from './utils.js';\n\n/**\n * The update bookmark command.\n *\n * The command is registered by {@link module:bookmark/bookmarkediting~BookmarkEditing} as `'updateBookmark'`.\n *\n * To update the `bookmarkId` of current selected bookmark element, execute the command passing the bookmark id as a parameter:\n *\n * ```ts\n * editor.execute( 'updateBookmark', { bookmarkId: 'newId' } );\n * ```\n */\nexport default class UpdateBookmarkCommand extends Command {\n\t/**\n\t * The value of the `'bookmarkId'` attribute.\n\t *\n\t * @observable\n\t * @readonly\n\t */\n\tdeclare public value: string | undefined;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedBookmark = getSelectedBookmark( selection );\n\n\t\tthis.isEnabled = !!selectedBookmark;\n\t\tthis.value = selectedBookmark ? selectedBookmark.getAttribute( 'bookmarkId' ) as string : undefined;\n\t}\n\n\t/**\n\t * Executes the command.\n\t *\n\t * @fires execute\n\t * @param options Command options.\n\t * @param options.bookmarkId The new value of the `bookmarkId` attribute to set.\n\t */\n\tpublic override execute( options: { bookmarkId: string } ): void {\n\t\tif ( !options ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { bookmarkId } = options;\n\n\t\tif ( !isBookmarkIdValid( bookmarkId ) ) {\n\t\t\t/**\n\t\t\t * Update bookmark command can be executed only with a valid name.\n\t\t\t *\n\t\t\t * A valid bookmark name must be a non-empty string and must not contain any spaces.\n\t\t\t *\n\t\t\t * @error update-bookmark-command-executed-with-invalid-name\n\t\t\t */\n\t\t\tlogWarning( 'update-bookmark-command-executed-with-invalid-name' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedBookmark = getSelectedBookmark( selection );\n\n\t\tif ( selectedBookmark ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.setAttribute( 'bookmarkId', bookmarkId, selectedBookmark );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Returns the selected `bookmark` element in the model, if any.\n */\nfunction getSelectedBookmark( selection: Selection | DocumentSelection ) {\n\tconst element = selection.getSelectedElement();\n\n\tif ( !!element && element.is( 'element', 'bookmark' ) ) {\n\t\treturn element;\n\t}\n\n\treturn null;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/bookmarkediting\n */\n\nimport { type Editor, Plugin } from 'ckeditor5/src/core.js';\nimport { toWidget } from 'ckeditor5/src/widget.js';\nimport { IconView } from 'ckeditor5/src/ui.js';\nimport { IconBookmarkInline } from 'ckeditor5/src/icons.js';\nimport type { EventInfo } from 'ckeditor5/src/utils.js';\n\nimport type {\n\tViewUIElement,\n\tDowncastWriter,\n\tViewElement,\n\tElement,\n\tDocumentChangeEvent,\n\tUpcastElementEvent,\n\tUpcastConversionData,\n\tUpcastConversionApi\n} from 'ckeditor5/src/engine.js';\n\nimport InsertBookmarkCommand from './insertbookmarkcommand.js';\nimport UpdateBookmarkCommand from './updatebookmarkcommand.js';\n\nimport '../theme/bookmark.css';\n\n/**\n * The bookmark editing plugin.\n */\nexport default class BookmarkEditing extends Plugin {\n\t/**\n\t * A collection of bookmarks elements in the document.\n\t */\n\tprivate _bookmarkElements = new Map<Element, string>();\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'BookmarkEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'bookmark', {\n\t\t\ttoolbar: [ 'bookmarkPreview', '|', 'editBookmark', 'removeBookmark' ]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { editor } = this;\n\n\t\tthis._defineSchema();\n\t\tthis._defineConverters();\n\n\t\teditor.commands.add( 'insertBookmark', new InsertBookmarkCommand( editor ) );\n\t\teditor.commands.add( 'updateBookmark', new UpdateBookmarkCommand( editor ) );\n\n\t\tthis.listenTo<DocumentChangeEvent>( editor.model.document, 'change:data', () => {\n\t\t\tthis._trackBookmarkElements();\n\t\t} );\n\t}\n\n\t/**\n\t * Returns the model element for the given bookmark ID if it exists.\n\t */\n\tpublic getElementForBookmarkId( bookmarkId: string ): Element | null {\n\t\tfor ( const [ element, id ] of this._bookmarkElements ) {\n\t\t\tif ( id == bookmarkId ) {\n\t\t\t\treturn element;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns all unique bookmark names existing in the content.\n\t */\n\tpublic getAllBookmarkNames(): Set<string> {\n\t\treturn new Set( this._bookmarkElements.values() );\n\t}\n\n\t/**\n\t * Defines the schema for the bookmark feature.\n\t */\n\tprivate _defineSchema() {\n\t\tconst schema = this.editor.model.schema;\n\n\t\tschema.register( 'bookmark', {\n\t\t\tinheritAllFrom: '$inlineObject',\n\t\t\tallowAttributes: 'bookmarkId',\n\t\t\tdisallowAttributes: [ 'linkHref', 'htmlA' ]\n\t\t} );\n\t}\n\n\t/**\n\t * Defines the converters for the bookmark feature.\n\t */\n\tprivate _defineConverters() {\n\t\tconst { editor } = this;\n\t\tconst { conversion, t } = editor;\n\n\t\teditor.data.htmlProcessor.domConverter.registerInlineObjectMatcher( element => upcastMatcher( element ) );\n\n\t\t// Register an inline object matcher so that bookmarks <a>s are correctly recognized as inline elements in editing pipeline.\n\t\t// This prevents converting spaces around bookmarks to `&nbsp;`s.\n\t\teditor.editing.view.domConverter.registerInlineObjectMatcher( element => upcastMatcher( element, false ) );\n\n\t\tconversion.for( 'dataDowncast' ).elementToElement( {\n\t\t\tmodel: {\n\t\t\t\tname: 'bookmark',\n\t\t\t\tattributes: [ 'bookmarkId' ]\n\t\t\t},\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst emptyElement = writer.createEmptyElement( 'a', {\n\t\t\t\t\t'id': modelElement.getAttribute( 'bookmarkId' )\n\t\t\t\t} );\n\n\t\t\t\t// `getFillerOffset` is not needed to set here, because `emptyElement` has already covered it.\n\n\t\t\t\treturn emptyElement;\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'editingDowncast' ).elementToElement( {\n\t\t\tmodel: {\n\t\t\t\tname: 'bookmark',\n\t\t\t\tattributes: [ 'bookmarkId' ]\n\t\t\t},\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tconst id = modelElement.getAttribute( 'bookmarkId' ) as string;\n\t\t\t\tconst containerElement = writer.createContainerElement( 'a', {\n\t\t\t\t\tid,\n\t\t\t\t\tclass: 'ck-bookmark'\n\t\t\t\t}, [ this._createBookmarkUIElement( writer ) ] );\n\n\t\t\t\twriter.setCustomProperty( 'bookmark', true, containerElement );\n\t\t\t\tthis._bookmarkElements.set( modelElement, id );\n\n\t\t\t\t// `getFillerOffset` is not needed to set here, because `toWidget` has already covered it.\n\n\t\t\t\tconst labelCreator = () => `${ id } ${ t( 'bookmark widget' ) }`;\n\n\t\t\t\treturn toWidget( containerElement, writer, { label: labelCreator } );\n\t\t\t}\n\t\t} );\n\n\t\tconversion.for( 'upcast' ).add(\n\t\t\tdispatcher => dispatcher.on<UpcastElementEvent>( 'element:a', dataViewModelAnchorInsertion( editor ) )\n\t\t);\n\t}\n\n\t/**\n\t * Creates a UI element for the `bookmark` representation in editing view.\n\t */\n\tprivate _createBookmarkUIElement( writer: DowncastWriter ): ViewUIElement {\n\t\treturn writer.createUIElement( 'span', { class: 'ck-bookmark__icon' }, function( domDocument ) {\n\t\t\tconst domElement = this.toDomElement( domDocument );\n\n\t\t\tconst icon = new IconView();\n\n\t\t\ticon.set( {\n\t\t\t\tcontent: IconBookmarkInline,\n\t\t\t\tisColorInherited: false\n\t\t\t} );\n\n\t\t\ticon.render();\n\n\t\t\tdomElement.appendChild( icon.element! );\n\n\t\t\treturn domElement;\n\t\t} );\n\t}\n\n\t/**\n\t * Tracking the added or removed bookmark elements.\n\t */\n\tprivate _trackBookmarkElements(): void {\n\t\tthis._bookmarkElements.forEach( ( id, element ) => {\n\t\t\tif ( element.root.rootName === '$graveyard' ) {\n\t\t\t\tthis._bookmarkElements.delete( element );\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * A helper function to match an `anchor` element which must contain `id` or `name` attribute but without `href` attribute,\n * also when `expectEmpty` is set to `true` but the element is not empty matcher should not match any element.\n *\n * @param element The element to be checked.\n * @param expectEmpty Default set to `true`, when set to `false` matcher expects that `anchor` is not empty;\n * in editing pipeline it's not empty because it contains the `UIElement`.\n */\nfunction upcastMatcher( element: ViewElement, expectEmpty: boolean = true ) {\n\tconst isAnchorElement = element.name === 'a';\n\n\tif ( !isAnchorElement ) {\n\t\treturn null;\n\t}\n\n\tif ( expectEmpty && !element.isEmpty ) {\n\t\treturn null;\n\t}\n\n\tconst hasIdAttribute = element.hasAttribute( 'id' );\n\tconst hasNameAttribute = element.hasAttribute( 'name' );\n\tconst hasHrefAttribute = element.hasAttribute( 'href' );\n\n\tif ( hasIdAttribute && !hasHrefAttribute ) {\n\t\treturn { name: true, attributes: [ 'id' ] };\n\t}\n\n\tif ( hasNameAttribute && !hasHrefAttribute ) {\n\t\treturn { name: true, attributes: [ 'name' ] };\n\t}\n\n\treturn null;\n}\n\n/**\n * A view-to-model converter that handles converting pointed or wrapped anchors with `id` and/or `name` attributes.\n *\n * @returns Returns a conversion callback.\n */\nfunction dataViewModelAnchorInsertion( editor: Editor ) {\n\treturn (\n\t\tevt: EventInfo,\n\t\tdata: UpcastConversionData<ViewElement>,\n\t\tconversionApi: UpcastConversionApi\n\t) => {\n\t\tconst viewItem = data.viewItem;\n\t\tconst match = upcastMatcher( viewItem, false );\n\n\t\tif ( !match || !conversionApi.consumable.test( viewItem, match ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst enableNonEmptyAnchorConversion = isEnabledNonEmptyAnchorConversion( editor );\n\n\t\tif ( !enableNonEmptyAnchorConversion && !viewItem.isEmpty ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst modelWriter = conversionApi.writer;\n\t\tconst anchorId = viewItem.getAttribute( 'id' );\n\t\tconst anchorName = viewItem.getAttribute( 'name' );\n\t\tconst bookmarkId = anchorId || anchorName;\n\t\tconst bookmark = modelWriter.createElement( 'bookmark', { bookmarkId } );\n\n\t\tif ( !conversionApi.safeInsert( bookmark, data.modelCursor ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconversionApi.consumable.consume( viewItem, match );\n\n\t\tif ( anchorId === anchorName ) {\n\t\t\tconversionApi.consumable.consume( viewItem, { attributes: [ 'name' ] } );\n\t\t}\n\n\t\tconversionApi.updateConversionResult( bookmark, data );\n\n\t\t// Convert children uses the result of `bookmark` insertion to convert the `anchor` content\n\t\t// after the bookmark element (not inside it).\n\t\tconst { modelCursor, modelRange } = conversionApi.convertChildren( viewItem, data.modelCursor );\n\n\t\tdata.modelCursor = modelCursor;\n\t\tdata.modelRange = modelWriter.createRange( data.modelRange!.start, modelRange!.end );\n\t};\n}\n\n/**\n * Normalize the bookmark configuration option `enableNonEmptyAnchorConversion`.\n */\nfunction isEnabledNonEmptyAnchorConversion( editor: Editor ): boolean {\n\tconst enableNonEmptyAnchorConversion = editor.config.get( 'bookmark.enableNonEmptyAnchorConversion' );\n\n\t// When not defined, option `enableNonEmptyAnchorConversion` by default is set to `true`.\n\treturn enableNonEmptyAnchorConversion !== undefined ? enableNonEmptyAnchorConversion : true;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/bookmarkui\n */\n\nimport type { LinksProviderDetailedItem, LinksProviderListItem } from '@ckeditor/ckeditor5-link';\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tButtonView,\n\tContextualBalloon,\n\tCssTransitionDisablerMixin,\n\tMenuBarMenuListItemButtonView,\n\tclickOutsideHandler,\n\tLabelView,\n\tBalloonPanelView,\n\ttype ViewWithCssTransitionDisabler\n} from 'ckeditor5/src/ui.js';\nimport { IconBookmark, IconRemove, IconBookmarkMedium, IconBookmarkSmall, IconPencil } from 'ckeditor5/src/icons.js';\nimport {\n\ttype Element,\n\ttype ViewDocumentSelection,\n\ttype ViewElement\n} from 'ckeditor5/src/engine.js';\n\nimport type { PositionOptions } from 'ckeditor5/src/utils.js';\nimport type { DeleteCommand } from 'ckeditor5/src/typing.js';\nimport { isWidget, WidgetToolbarRepository } from 'ckeditor5/src/widget.js';\n\nimport BookmarkFormView, { type BookmarkFormViewCancelEvent, type BookmarkFormValidatorCallback } from './ui/bookmarkformview.js';\nimport type UpdateBookmarkCommand from './updatebookmarkcommand.js';\nimport type InsertBookmarkCommand from './insertbookmarkcommand.js';\n\nimport BookmarkEditing from './bookmarkediting.js';\n\nimport '../theme/bookmarktoolbar.css';\n\nconst VISUAL_SELECTION_MARKER_NAME = 'bookmark-ui';\n\n/**\n * The UI plugin of the bookmark feature.\n *\n * It registers the `'bookmark'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * which inserts the `bookmark` element upon selection.\n */\nexport default class BookmarkUI extends Plugin {\n\t/**\n\t * The form view displayed inside the balloon.\n\t */\n\tpublic formView: BookmarkFormView & ViewWithCssTransitionDisabler | null = null;\n\n\t/**\n\t * The contextual balloon plugin instance.\n\t */\n\tprivate _balloon!: ContextualBalloon;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ BookmarkEditing, ContextualBalloon, WidgetToolbarRepository ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'BookmarkUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tthis._balloon = editor.plugins.get( ContextualBalloon );\n\n\t\t// Register the link provider in link plugin to display the link form.\n\t\tif ( editor.plugins.has( 'LinkUI' ) ) {\n\t\t\tthis._registerLinkProvider();\n\t\t}\n\n\t\t// Create toolbar buttons.\n\t\tthis._registerComponents();\n\n\t\t// Renders a fake visual selection marker on an expanded selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToHighlight( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: {\n\t\t\t\tclasses: [ 'ck-fake-bookmark-selection' ]\n\t\t\t}\n\t\t} );\n\n\t\t// Renders a fake visual selection marker on a collapsed selection.\n\t\teditor.conversion.for( 'editingDowncast' ).markerToElement( {\n\t\t\tmodel: VISUAL_SELECTION_MARKER_NAME,\n\t\t\tview: ( data, { writer } ) => {\n\t\t\t\tif ( !data.markerRange.isCollapsed ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst markerElement = writer.createUIElement( 'span' );\n\n\t\t\t\twriter.addClass(\n\t\t\t\t\t[ 'ck-fake-bookmark-selection', 'ck-fake-bookmark-selection_collapsed' ],\n\t\t\t\t\tmarkerElement\n\t\t\t\t);\n\n\t\t\t\treturn markerElement;\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.locale.t;\n\t\tconst widgetToolbarRepository = this.editor.plugins.get( WidgetToolbarRepository );\n\t\tconst defaultPositions = BalloonPanelView.defaultPositions;\n\n\t\twidgetToolbarRepository.register( 'bookmark', {\n\t\t\tariaLabel: t( 'Bookmark toolbar' ),\n\t\t\titems: editor.config.get( 'bookmark.toolbar' )!,\n\n\t\t\tgetRelatedElement: getSelectedBookmarkWidget,\n\t\t\tballoonClassName: 'ck-bookmark-balloon ck-toolbar-container',\n\n\t\t\t// Override positions to the same list as for balloon panel default\n\t\t\t// so widget toolbar will try to use same position as form view.\n\t\t\tpositions: [\n\t\t\t\tdefaultPositions.southArrowNorth,\n\t\t\t\tdefaultPositions.southArrowNorthMiddleWest,\n\t\t\t\tdefaultPositions.southArrowNorthMiddleEast,\n\t\t\t\tdefaultPositions.southArrowNorthWest,\n\t\t\t\tdefaultPositions.southArrowNorthEast,\n\t\t\t\tdefaultPositions.northArrowSouth,\n\t\t\t\tdefaultPositions.northArrowSouthMiddleWest,\n\t\t\t\tdefaultPositions.northArrowSouthMiddleEast,\n\t\t\t\tdefaultPositions.northArrowSouthWest,\n\t\t\t\tdefaultPositions.northArrowSouthEast,\n\t\t\t\tdefaultPositions.viewportStickyNorth\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\t// Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n\t\tif ( this.formView ) {\n\t\t\tthis.formView.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * Creates views.\n\t */\n\tprivate _createViews() {\n\t\tthis.formView = this._createFormView();\n\n\t\t// Attach lifecycle actions to the the balloon.\n\t\tthis._enableUserBalloonInteractions();\n\t}\n\n\t/**\n\t * Creates the {@link module:bookmark/ui/bookmarkformview~BookmarkFormView} instance.\n\t */\n\tprivate _createFormView(): BookmarkFormView & ViewWithCssTransitionDisabler {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst t = locale.t;\n\t\tconst insertBookmarkCommand: InsertBookmarkCommand = editor.commands.get( 'insertBookmark' )!;\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst commands = [ insertBookmarkCommand, updateBookmarkCommand ];\n\n\t\tconst formView = new ( CssTransitionDisablerMixin( BookmarkFormView ) )( locale, getFormValidators( editor ) );\n\n\t\tformView.idInputView.fieldView.bind( 'value' ).to( updateBookmarkCommand, 'value' );\n\t\tformView.saveButtonView.bind( 'label' ).to( updateBookmarkCommand, 'value', value => value ? t( 'Save' ) : t( 'Insert' ) );\n\n\t\t// Form elements should be read-only when corresponding commands are disabled.\n\t\tformView.idInputView.bind( 'isEnabled' ).toMany(\n\t\t\tcommands,\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\t// Disable the \"save\" button if the command is disabled.\n\t\tformView.saveButtonView.bind( 'isEnabled' ).toMany(\n\t\t\tcommands,\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\t// Close the panel on form after clicking back button.\n\t\tthis.listenTo<BookmarkFormViewCancelEvent>( formView, 'cancel', () => {\n\t\t\tthis._hideFormView();\n\t\t} );\n\n\t\t// Execute link command after clicking the \"Save\" button.\n\t\tthis.listenTo( formView, 'submit', () => {\n\t\t\tif ( formView.isValid() ) {\n\t\t\t\tconst value = formView.id!;\n\n\t\t\t\tif ( this._getSelectedBookmarkElement() ) {\n\t\t\t\t\teditor.execute( 'updateBookmark', { bookmarkId: value } );\n\t\t\t\t} else {\n\t\t\t\t\teditor.execute( 'insertBookmark', { bookmarkId: value } );\n\t\t\t\t}\n\n\t\t\t\tthis._hideFormView();\n\t\t\t}\n\t\t} );\n\n\t\t// Update balloon position when form error changes.\n\t\tthis.listenTo( formView.idInputView, 'change:errorText', () => {\n\t\t\teditor.ui.update();\n\t\t} );\n\n\t\treturn formView;\n\t}\n\n\t/**\n\t * Creates link form menu list entry, so it'll be possible to access\n\t * the list of the bookmarks from the link form.\n\t */\n\tprivate _registerLinkProvider() {\n\t\tconst t = this.editor.locale.t;\n\t\tconst linksUI = this.editor.plugins.get( 'LinkUI' )!;\n\t\tconst bookmarkEditing = this.editor.plugins.get( BookmarkEditing );\n\n\t\tconst getListItems = () => Array\n\t\t\t.from( bookmarkEditing.getAllBookmarkNames() )\n\t\t\t.sort( ( a, b ) => a.localeCompare( b ) )\n\t\t\t.map( ( bookmarkId ): LinksProviderListItem => ( {\n\t\t\t\tid: bookmarkId,\n\t\t\t\thref: `#${ bookmarkId }`,\n\t\t\t\tlabel: bookmarkId,\n\t\t\t\ticon: IconBookmarkMedium\n\t\t\t} ) );\n\n\t\tconst getItem = ( href: string ): LinksProviderDetailedItem | null => {\n\t\t\tconst bookmark = [ ...bookmarkEditing.getAllBookmarkNames() ].find( item => `#${ item }` === href );\n\n\t\t\tif ( !bookmark ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thref,\n\t\t\t\tlabel: bookmark,\n\t\t\t\ticon: IconBookmarkSmall,\n\t\t\t\ttooltip: t( 'Scroll to bookmark' )\n\t\t\t};\n\t\t};\n\n\t\tlinksUI.registerLinksListProvider( {\n\t\t\tlabel: t( 'Bookmarks' ),\n\t\t\temptyListPlaceholder: t( 'No bookmarks available.' ),\n\t\t\tnavigate: ( { href }: LinksProviderDetailedItem ) => this._scrollToBookmark( href ),\n\t\t\tgetListItems,\n\t\t\tgetItem\n\t\t} );\n\t}\n\n\t/**\n\t * Scrolls the editor to the bookmark with the given id.\n\t */\n\tprivate _scrollToBookmark( href: string ) {\n\t\tconst bookmarkEditing = this.editor.plugins.get( BookmarkEditing );\n\t\tconst bookmarkElement = bookmarkEditing.getElementForBookmarkId( href.slice( 1 ) );\n\n\t\tif ( !bookmarkElement ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.editor.model.change( writer => {\n\t\t\twriter.setSelection( bookmarkElement!, 'on' );\n\t\t} );\n\n\t\tthis.editor.editing.view.scrollToTheSelection( {\n\t\t\talignToTop: true,\n\t\t\tforceScroll: true\n\t\t} );\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Creates a toolbar Bookmark button. Clicking this button will show\n\t * a {@link #_balloon} attached to the selection.\n\t */\n\tprivate _registerComponents() {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'bookmark', () => {\n\t\t\tconst buttonView = this._createBookmarkButton( ButtonView );\n\n\t\t\tbuttonView.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\treturn buttonView;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'menuBar:bookmark', () => {\n\t\t\treturn this._createBookmarkButton( MenuBarMenuListItemButtonView );\n\t\t} );\n\n\t\t// Bookmark toolbar buttons.\n\n\t\teditor.ui.componentFactory.add( 'bookmarkPreview', locale => {\n\t\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\t\tconst label = new LabelView( locale );\n\n\t\t\tlabel.extendTemplate( {\n\t\t\t\tattributes: {\n\t\t\t\t\tclass: [ 'ck-bookmark-toolbar__preview' ]\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tlabel.bind( 'text' ).to( updateBookmarkCommand, 'value' );\n\n\t\t\treturn label;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'editBookmark', locale => {\n\t\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\t\tconst button = new ButtonView( locale );\n\t\t\tconst t = locale.t;\n\n\t\t\tbutton.set( {\n\t\t\t\tlabel: t( 'Edit bookmark' ),\n\t\t\t\ticon: IconPencil,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tbutton.bind( 'isEnabled' ).to( updateBookmarkCommand );\n\n\t\t\tthis.listenTo( button, 'execute', () => {\n\t\t\t\tthis._showFormView();\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\teditor.ui.componentFactory.add( 'removeBookmark', locale => {\n\t\t\tconst deleteCommand: DeleteCommand = editor.commands.get( 'delete' )!;\n\t\t\tconst button = new ButtonView( locale );\n\t\t\tconst t = locale.t;\n\n\t\t\tbutton.set( {\n\t\t\t\tlabel: t( 'Remove bookmark' ),\n\t\t\t\ticon: IconRemove,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tbutton.bind( 'isEnabled' ).to( deleteCommand );\n\n\t\t\tthis.listenTo( button, 'execute', () => {\n\t\t\t\teditor.execute( 'delete' );\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a button for `bookmark` command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createBookmarkButton<T extends typeof ButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst insertCommand: InsertBookmarkCommand = editor.commands.get( 'insertBookmark' )!;\n\t\tconst updateCommand: UpdateBookmarkCommand = editor.commands.get( 'updateBookmark' )!;\n\t\tconst t = locale.t;\n\n\t\tview.set( {\n\t\t\tlabel: t( 'Bookmark' ),\n\t\t\ticon: IconBookmark\n\t\t} );\n\n\t\t// Execute the command.\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.editing.view.scrollToTheSelection();\n\t\t\tthis._showFormView();\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).toMany(\n\t\t\t[ insertCommand, updateCommand ],\n\t\t\t'isEnabled',\n\t\t\t( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )\n\t\t);\n\n\t\tview.bind( 'isOn' ).to( updateCommand, 'value', value => !!value );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Attaches actions that control whether the balloon panel containing the\n\t * {@link #formView} is visible or not.\n\t */\n\tprivate _enableUserBalloonInteractions(): void {\n\t\t// Close the panel on the Esc key press when the editable has focus and the balloon is visible.\n\t\tthis.editor.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tif ( this._isFormVisible ) {\n\t\t\t\tthis._hideFormView();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\n\t\t// Close on click outside of balloon panel element.\n\t\tclickOutsideHandler( {\n\t\t\temitter: this.formView!,\n\t\t\tactivator: () => this._isFormInPanel,\n\t\t\tcontextElements: () => [ this._balloon.view.element! ],\n\t\t\tcallback: () => {\n\t\t\t\t// Focusing on the editable during a click outside the balloon panel might\n\t\t\t\t// cause the selection to move to the beginning of the editable, so we avoid\n\t\t\t\t// focusing on it during this action.\n\t\t\t\t// See: https://github.com/ckeditor/ckeditor5/issues/18253\n\t\t\t\tthis._hideFormView( false );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Adds the {@link #formView} to the {@link #_balloon}.\n\t */\n\tprivate _addFormView(): void {\n\t\tif ( !this.formView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\tif ( this._isFormInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst updateBookmarkCommand: UpdateBookmarkCommand = this.editor.commands.get( 'updateBookmark' )!;\n\n\t\tthis.formView!.disableCssTransitions();\n\t\tthis.formView!.resetFormStatus();\n\n\t\tthis._balloon.add( {\n\t\t\tview: this.formView!,\n\t\t\tposition: this._getBalloonPositionData()\n\t\t} );\n\n\t\tthis.formView!.backButtonView.isVisible = updateBookmarkCommand.isEnabled;\n\t\tthis.formView!.idInputView.fieldView.value = updateBookmarkCommand.value || '';\n\n\t\t// Select input when form view is currently visible.\n\t\tif ( this._balloon.visibleView === this.formView ) {\n\t\t\tthis.formView!.idInputView.fieldView.select();\n\t\t}\n\n\t\tthis.formView!.enableCssTransitions();\n\t}\n\n\t/**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */\n\tprivate _removeFormView( updateFocus: boolean = true ): void {\n\t\t// Blur the input element before removing it from DOM to prevent issues in some browsers.\n\t\t// See https://github.com/ckeditor/ckeditor5/issues/1501.\n\t\tthis.formView!.saveButtonView.focus();\n\n\t\t// Reset the ID field to update the state of the submit button.\n\t\tthis.formView!.idInputView.fieldView.reset();\n\n\t\tthis._balloon.remove( this.formView! );\n\n\t\t// Because the form has an input which has focus, the focus must be brought back\n\t\t// to the editor. Otherwise, it would be lost.\n\t\tif ( updateFocus ) {\n\t\t\tthis.editor.editing.view.focus();\n\t\t}\n\n\t\tthis._hideFakeVisualSelection();\n\t}\n\n\t/**\n\t * Shows the {@link #formView}.\n\t */\n\tprivate _showFormView(): void {\n\t\tif ( !this.formView ) {\n\t\t\tthis._createViews();\n\t\t}\n\n\t\tif ( !this._getSelectedBookmarkElement() ) {\n\t\t\tthis._showFakeVisualSelection();\n\t\t}\n\n\t\tthis._addFormView();\n\n\t\t// Be sure panel with bookmark is visible.\n\t\tthis._balloon.showStack( 'main' );\n\n\t\t// Begin responding to ui#update once the UI is added.\n\t\tthis._startUpdatingUI();\n\t}\n\n\t/**\n\t * Removes the {@link #formView} from the {@link #_balloon}.\n\t */\n\tprivate _hideFormView( updateFocus: boolean = true ): void {\n\t\tif ( !this._isFormInPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = this.editor;\n\n\t\tthis.stopListening( editor.ui, 'update' );\n\t\tthis.stopListening( this._balloon, 'change:visibleView' );\n\n\t\t// Make sure the focus always gets back to the editable _before_ removing the focused form view.\n\t\t// Doing otherwise causes issues in some browsers. See https://github.com/ckeditor/ckeditor5-link/issues/193.\n\t\tif ( updateFocus ) {\n\t\t\teditor.editing.view.focus();\n\t\t}\n\n\t\t// Remove form first because it's on top of the stack.\n\t\tthis._removeFormView( updateFocus );\n\n\t\tthis._hideFakeVisualSelection();\n\t}\n\n\t/**\n\t * Makes the UI react to the {@link module:ui/editorui/editorui~EditorUI#event:update} event to\n\t * reposition itself when the editor UI should be refreshed.\n\t *\n\t * See: {@link #_hideFormView} to learn when the UI stops reacting to the `update` event.\n\t */\n\tprivate _startUpdatingUI(): void {\n\t\tconst editor = this.editor;\n\t\tconst viewDocument = editor.editing.view.document;\n\n\t\tlet prevSelectedBookmark = this._getSelectedBookmarkElement();\n\t\tlet prevSelectionParent = getSelectionParent();\n\n\t\tconst update = () => {\n\t\t\tconst selectedBookmark = this._getSelectedBookmarkElement();\n\t\t\tconst selectionParent = getSelectionParent();\n\n\t\t\t// Hide the panel if:\n\t\t\t//\n\t\t\t// * the selection went out of the EXISTING bookmark element. E.g. user moved the caret out\n\t\t\t// of the bookmark,\n\t\t\t// * the selection went to a different parent when creating a NEW bookmark. E.g. someone\n\t\t\t// else modified the document.\n\t\t\t// * the selection has expanded (e.g. displaying bookmark actions then pressing SHIFT+Right arrow).\n\t\t\t//\n\t\t\tif (\n\t\t\t\tprevSelectedBookmark && !selectedBookmark ||\n\t\t\t\t!prevSelectedBookmark && selectionParent !== prevSelectionParent\n\t\t\t) {\n\t\t\t\tthis._hideFormView();\n\t\t\t}\n\t\t\t// Update the position of the panel when:\n\t\t\t// * bookmark panel is in the visible stack\n\t\t\t// * the selection remains on the original bookmark element,\n\t\t\t// * there was no bookmark element in the first place, i.e. creating a new bookmark\n\t\t\telse if ( this._isFormVisible ) {\n\t\t\t\t// If still in a bookmark element, simply update the position of the balloon.\n\t\t\t\t// If there was no bookmark (e.g. inserting one), the balloon must be moved\n\t\t\t\t// to the new position in the editing view (a new native DOM range).\n\t\t\t\tthis._balloon.updatePosition( this._getBalloonPositionData() );\n\t\t\t}\n\n\t\t\tprevSelectedBookmark = selectedBookmark;\n\t\t\tprevSelectionParent = selectionParent;\n\t\t};\n\n\t\tfunction getSelectionParent() {\n\t\t\treturn viewDocument.selection.focus!.getAncestors()\n\t\t\t\t.reverse()\n\t\t\t\t.find( ( node ): node is ViewElement => node.is( 'element' ) );\n\t\t}\n\n\t\tthis.listenTo( editor.ui, 'update', update );\n\t\tthis.listenTo( this._balloon, 'change:visibleView', update );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n\t */\n\tprivate get _isFormInPanel(): boolean {\n\t\treturn !!this.formView && this._balloon.hasView( this.formView );\n\t}\n\n\t/**\n\t * Returns `true` when {@link #formView} is in the {@link #_balloon} and it is currently visible.\n\t */\n\tprivate get _isFormVisible(): boolean {\n\t\treturn !!this.formView && this._balloon.visibleView == this.formView;\n\t}\n\n\t/**\n\t * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n\t * to the target element or selection.\n\t */\n\tprivate _getBalloonPositionData(): Partial<PositionOptions> | undefined {\n\t\tconst view = this.editor.editing.view;\n\t\tconst model = this.editor.model;\n\t\tlet target: PositionOptions[ 'target' ] | undefined;\n\n\t\tconst bookmarkElement = this._getSelectedBookmarkElement();\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t// There are cases when we highlight selection using a marker (#7705, #4721).\n\t\t\tconst markerViewElements = Array.from( this.editor.editing.mapper.markerNameToElements( VISUAL_SELECTION_MARKER_NAME )! );\n\t\t\tconst newRange = view.createRange(\n\t\t\t\tview.createPositionBefore( markerViewElements[ 0 ] ),\n\t\t\t\tview.createPositionAfter( markerViewElements[ markerViewElements.length - 1 ] )\n\t\t\t);\n\n\t\t\ttarget = view.domConverter.viewRangeToDom( newRange );\n\t\t}\n\t\telse if ( bookmarkElement ) {\n\t\t\ttarget = () => {\n\t\t\t\tconst mapper = this.editor.editing.mapper;\n\t\t\t\tconst domConverter = view.domConverter;\n\t\t\t\tconst viewElement = mapper.toViewElement( bookmarkElement )!;\n\n\t\t\t\treturn domConverter.mapViewToDom( viewElement )!;\n\t\t\t};\n\t\t}\n\n\t\tif ( !target ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn {\n\t\t\ttarget\n\t\t};\n\t}\n\n\t/**\n\t * Returns the bookmark {@link module:engine/view/attributeelement~AttributeElement} under\n\t * the {@link module:engine/view/document~Document editing view's} selection or `null`\n\t * if there is none.\n\t */\n\tprivate _getSelectedBookmarkElement(): Element | null {\n\t\tconst selection = this.editor.model.document.selection;\n\t\tconst element = selection.getSelectedElement();\n\n\t\tif ( element && element.is( 'element', 'bookmark' ) ) {\n\t\t\treturn element;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Displays a fake visual selection when the contextual balloon is displayed.\n\t *\n\t * This adds a 'bookmark-ui' marker into the document that is rendered as a highlight on selected text fragment.\n\t */\n\tprivate _showFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tconst range = model.document.selection.getFirstRange()!;\n\n\t\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\t\twriter.updateMarker( VISUAL_SELECTION_MARKER_NAME, { range } );\n\t\t\t} else {\n\t\t\t\tif ( range.start.isAtEnd ) {\n\t\t\t\t\tconst startPosition = range.start.getLastMatchingPosition(\n\t\t\t\t\t\t( { item } ) => !model.schema.isContent( item ),\n\t\t\t\t\t\t{ boundaries: range }\n\t\t\t\t\t);\n\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange: writer.createRange( startPosition, range.end )\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\twriter.addMarker( VISUAL_SELECTION_MARKER_NAME, {\n\t\t\t\t\t\tusingOperation: false,\n\t\t\t\t\t\taffectsData: false,\n\t\t\t\t\t\trange\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Hides the fake visual selection created in {@link #_showFakeVisualSelection}.\n\t */\n\tprivate _hideFakeVisualSelection(): void {\n\t\tconst model = this.editor.model;\n\n\t\tif ( model.markers.has( VISUAL_SELECTION_MARKER_NAME ) ) {\n\t\t\tmodel.change( writer => {\n\t\t\t\twriter.removeMarker( VISUAL_SELECTION_MARKER_NAME );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Returns bookmark form validation callbacks.\n */\nfunction getFormValidators( editor: Editor ): Array<BookmarkFormValidatorCallback> {\n\tconst { t } = editor;\n\tconst bookmarkEditing = editor.plugins.get( BookmarkEditing );\n\n\treturn [\n\t\tform => {\n\t\t\tif ( !form.id ) {\n\t\t\t\treturn t( 'Bookmark must not be empty.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tif ( form.id && /\\s/.test( form.id ) ) {\n\t\t\t\treturn t( 'Bookmark name cannot contain space characters.' );\n\t\t\t}\n\t\t},\n\t\tform => {\n\t\t\tconst selectedElement = editor.model.document.selection.getSelectedElement();\n\t\t\tconst existingBookmarkForId = bookmarkEditing.getElementForBookmarkId( form.id! );\n\n\t\t\t// Accept change of bookmark ID if no real change is happening (edit -> submit, without changes).\n\t\t\tif ( selectedElement === existingBookmarkForId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( existingBookmarkForId ) {\n\t\t\t\treturn t( 'Bookmark name already exists.' );\n\t\t\t}\n\t\t}\n\t];\n}\n\n/**\n * Returns the currently selected bookmark view element.\n */\nfunction getSelectedBookmarkWidget( selection: ViewDocumentSelection ): ViewElement | null {\n\tconst element = selection.getSelectedElement();\n\n\tif ( !element || !isWidget( element ) || !element.getCustomProperty( 'bookmark' ) ) {\n\t\treturn null;\n\t}\n\n\treturn element;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module bookmark/bookmark\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { Widget } from 'ckeditor5/src/widget.js';\nimport BookmarkUI from './bookmarkui.js';\nimport BookmarkEditing from './bookmarkediting.js';\n\n/**\n * The bookmark feature.\n *\n * For a detailed overview, check the {@glink features/bookmarks Bookmarks} feature guide.\n */\nexport default class Bookmark extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Bookmark' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ BookmarkEditing, BookmarkUI, Widget ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-bookmark",
3
- "version": "45.2.0-alpha.7",
3
+ "version": "45.2.1-alpha.0",
4
4
  "description": "Bookmark feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,13 +13,13 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "ckeditor5": "45.2.0-alpha.7",
17
- "@ckeditor/ckeditor5-core": "45.2.0-alpha.7",
18
- "@ckeditor/ckeditor5-icons": "45.2.0-alpha.7",
19
- "@ckeditor/ckeditor5-widget": "45.2.0-alpha.7",
20
- "@ckeditor/ckeditor5-utils": "45.2.0-alpha.7",
21
- "@ckeditor/ckeditor5-ui": "45.2.0-alpha.7",
22
- "@ckeditor/ckeditor5-link": "45.2.0-alpha.7"
16
+ "ckeditor5": "45.2.1-alpha.0",
17
+ "@ckeditor/ckeditor5-core": "45.2.1-alpha.0",
18
+ "@ckeditor/ckeditor5-icons": "45.2.1-alpha.0",
19
+ "@ckeditor/ckeditor5-widget": "45.2.1-alpha.0",
20
+ "@ckeditor/ckeditor5-utils": "45.2.1-alpha.0",
21
+ "@ckeditor/ckeditor5-ui": "45.2.1-alpha.0",
22
+ "@ckeditor/ckeditor5-link": "45.2.1-alpha.0"
23
23
  },
24
24
  "author": "CKSource (http://cksource.com/)",
25
25
  "license": "SEE LICENSE IN LICENSE.md",